????

Your IP : 18.189.13.48


Current Path : C:/inetpub/vhost/bcvt.kontum.gov.vn/www/
Upload File :
Current File : C:/inetpub/vhost/bcvt.kontum.gov.vn/www/27-es2015.js.map

{"version":3,"sources":["./node_modules/arcgis-js-api/core/Quantity.js","./node_modules/arcgis-js-api/core/quantityUtils.js","./node_modules/arcgis-js-api/core/tsSupport/makeTemplateObjectHelper.js","./node_modules/arcgis-js-api/core/tsSupport/restHelper.js","./node_modules/arcgis-js-api/views/3d/interactive/manipulatorUtils.js","./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/directLineMeasurement3D/LaserLineRenderer.js","./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/support/Label.js","./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/support/LabelSegment.js","./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/support/PathSegmentInterpolator.js","./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/support/UnitNormalizer.js","./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/support/labelUtils.js","./node_modules/arcgis-js-api/views/3d/interactive/measurementTools/support/viewUtils.js","./node_modules/arcgis-js-api/views/3d/layers/graphics/graphicUtils.js","./node_modules/arcgis-js-api/views/3d/support/imageUtils.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/collections/Component/Material/shader/DecodeSymbolColor.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/DiscardOrAdjustAlpha.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/Offset.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/Transform.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/attributes/NormalAttribute.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/attributes/PositionAttribute.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexColor.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTextureCoordinates.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/AnalyticalSkyModel.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateMainLighting.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/Gamma.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/HighlightData.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/Normals.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/PiUtils.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/Water.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/util/ColorConversion.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/util/DecodeNormal.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/util/DoublePrecision.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/util/MixExternalColor.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderLibrary/util/TextureAtlasLookup.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderModules/interfaces.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderTechnique/ReloadableShaderModule.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderTechnique/ShaderTechnique.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/AutoDisposable.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/BoundingInfo.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/DefaultTextureUnits.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/DefaultVertexAttributeLocations.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/DefaultVertexBufferLayouts.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/GLMaterial.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/GLMaterialTexture.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/Geometry.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/GeometryData.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/GeometryRecord.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/GeometryUtil.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/HighlightUtils.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/IdGen.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/Intersector.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/IntervalUtilities.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/Layer.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/Material.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/Object3D.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/Octree.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/ResizableFloat32Array.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/WebGLDriverTest.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/doublePrecisionUtils.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/glUtil3D.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/intersectorUtils.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/lib/screenSizePerspectiveUtils.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/DefaultMaterial.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/RibbonLineMaterial.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/VisualVariableMaterialParameters.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/WaterGLMaterial.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/WaterTechnique.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/internal/DefaultBufferWriter.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/internal/MaterialUtil.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/internal/waterMaterialUtils.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/lineStippleUtils.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/renderers/Instance.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/renderers/InstancedRenderer.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/renderers/MergedRenderer.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/materials/renderers/utils.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/LaserLinePrograms.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/RibbonLine.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/RibbonLineTechnique.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/WaterSurface.glsl.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/sources/resolver.js","./node_modules/arcgis-js-api/views/3d/webgl-engine/shaders/sources/shaderRepository.js","./node_modules/arcgis-js-api/views/interactive/Manipulator3D.js","./node_modules/arcgis-js-api/views/overlay/LineOverlayItem.js","./node_modules/arcgis-js-api/views/overlay/TextOverlayItem.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,oGAAmB,CAAC,wFAAa,CAAC,mCAAC,kBAAkB,kBAAkB,gBAAgB,0DAA0D,uDAAuD,eAAe,+BAA+B,+BAA+B,iCAAiC,sDAAsD,mCAAmC,iDAAiD,2CAA2C,mEAAmE,GAAG,GAAG;AAAA,oGAAC,C;;;;;;;;;;;ACxBjlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,oGAAmB,CAAC,mCAAC,gBAAgB,oBAAoB,yFAAyF,kBAAkB,6GAA6G,gDAAgD,kBAAkB,6GAA6G,wDAAwD,kBAAkB,0GAA0G,8CAA8C,kBAAkB,6GAA6G,kDAAkD,kBAAkB,6GAA6G,0DAA0D,kBAAkB,0GAA0G,gDAAgD,cAAc,mEAAmE,mCAAmC,sCAAsC,SAAS,8LAA8L;AAAA,oGAAC,C;;;;;;;;;;;ACxBtjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,EAAE,mCAAC,WAAW,qBAAqB,4DAA4D,QAAQ,eAAe;AAAA,oGAAC,C;;;;;;;;;;;ACxB9H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,EAAE,mCAAC,WAAW,qBAAqB,SAAS,sFAAsF,0GAA0G,WAAW,yCAAyC,UAAU;AAAA,oGAAC,C;;;;;;;;;;;ACxBlT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,4FAAqB,CAAC,4HAAqC,CAAC,4HAAqC,CAAC,4IAA6C,CAAC,mIAAiC,CAAC,qGAAkB,CAAC,6HAA8B,CAAC,qIAAkC,CAAC,uJAA2C,CAAC,6HAAiC,CAAC,mCAAC,kCAAkC,gBAAgB,qBAAqB,+FAA+F,gBAAgB,4BAA4B,kBAAkB,4BAA4B,uBAAuB,8EAA8E,EAAE,EAAE,oBAAoB,iGAAiG,mBAAmB,6CAA6C,6BAA6B,oBAAoB,2GAA2G,mKAAmK,gBAAgB,yIAAyI,yDAAyD,gBAAgB,iBAAiB,2BAA2B,gDAAgD,sCAAsC,SAAS,oKAAoK;AAAA,oGAAC,C;;;;;;;;;;;ACxBjuD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,sIAA6C,CAAC,wIAA8C,CAAC,kIAA2C,CAAC,wIAA8C,CAAC,kIAA2C,CAAC,wIAA8C,CAAC,mIAAoC,CAAC,2HAAgC,CAAC,yKAAuD,CAAC,6JAAiD,CAAC,mHAA+B,CAAC,mCAAC,oCAAoC,oBAAoB,YAAY,8HAA8H,iDAAiD,gFAAgF,kBAAkB,gBAAgB,iBAAiB,ujBAAujB,wDAAwD,eAAe,WAAW,+BAA+B,wDAAwD,eAAe,SAAS,+BAA+B,wDAAwD,eAAe,8BAA8B,iBAAiB,6EAA6E,+BAA+B,yDAAyD,eAAe,+BAA+B,iBAAiB,+EAA+E,+BAA+B,qDAAqD,eAAe,2BAA2B,iBAAiB,uEAAuE,+BAA+B,qDAAqD,eAAe,2BAA2B,iBAAiB,yDAAyD,+BAA+B,2DAA2D,eAAe,iCAAiC,iBAAiB,+DAA+D,+BAA+B,4DAA4D,eAAe,kCAAkC,iBAAiB,gEAAgE,+BAA+B,0DAA0D,eAAe,gCAAgC,iBAAiB,8DAA8D,+BAA+B,6CAA6C,0DAA0D,iDAAiD,oBAAoB,aAAa,6IAA6I,4EAA4E,EAAE,kDAAkD,2FAA2F,gCAAgC,4GAA4G,4VAA4V,4DAA4D,+EAA+E,gDAAgD,4BAA4B,sCAAsC,qNAAqN,iDAAiD,wBAAwB,wFAAwF,uTAAuT,kDAAkD,QAAQ,sIAAsI,QAAQ,8NAA8N,0BAA0B,oUAAoU,uCAAuC,qDAAqD,GAAG,GAAG;AAAA,oGAAC,C;;;;;;;;;;;ACxB35L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+HAAqC,CAAC,+HAAqC,CAAC,mCAAC,kBAAkB,kBAAkB,cAAc,sBAAsB,WAAW,2BAA2B,mBAAmB,gEAAgE,qDAAqD,eAAe,sBAAsB,+BAA+B,mDAAmD,eAAe,yBAAyB,+BAA+B,4CAA4C,eAAe,2BAA2B,iBAAiB,sBAAsB,+BAA+B,gDAAgD,eAAe,+BAA+B,iBAAiB,0BAA0B,+BAA+B,+CAA+C,eAAe,qBAAqB,iBAAiB,yCAAyC,+BAA+B,oCAAoC,4DAA4D,wCAAwC,gGAAgG,0CAA0C,MAAM,4BAA4B,sOAAsO,gGAAgG,0CAA0C,mGAAmG,GAAG,GAAG;AAAA,oGAAC,C;;;;;;;;;;;ACxB3xD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,kIAA2C,CAAC,wIAA8C,CAAC,iIAAa,CAAC,mCAAC,oBAAoB,kBAAkB,aAAa,yFAAyF,0CAA0C,iEAAiE,gDAAgD,MAAM,2CAA2C,MAAM,4CAA4C,MAAM,mCAAmC,mCAAmC,GAAG,GAAG;AAAA,oGAAC,C;;;;;;;;;;;ACxBnmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,kIAA2C,CAAC,wIAA8C,CAAC,mHAA4B,CAAC,+HAAkC,CAAC,mCAAC,sBAAsB,MAAM,mBAAmB,iBAAiB,gBAAgB,gJAAgJ,sCAAsC,uDAAuD,GAAG,GAAG,WAAW,iBAAiB,oBAAoB,6OAA6O,sCAAsC,sHAAsH,GAAG,GAAG,cAAc,SAAS,KAAK;AAAA,oGAAC,C;;;;;;;;;;;ACxBv9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,0GAA+B,CAAC,mCAAC,gBAAgB,kBAAkB,cAAc,8EAA8E,6DAA6D,eAAe,8BAA8B,iBAAiB,0FAA0F,+BAA+B,4CAA4C,qCAAqC,4CAA4C,sCAAsC,uCAAuC,uCAAuC,oDAAoD,mPAAmP,GAAG,GAAG;AAAA,oGAAC,C;;;;;;;;;;;ACxB98B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,8GAAiC,CAAC,kIAA2C,CAAC,kIAA2C,CAAC,wIAA8C,CAAC,iIAAa,CAAC,mCAAC,wBAAwB,cAAc,UAAU,yBAAyB,yBAAyB,yBAAyB,0BAA0B,kBAAkB,yEAAyE,kBAAkB,eAAe,qCAAqC,wBAAwB,eAAe,iEAAiE,SAAS,UAAU,mBAAmB,MAAM,sBAAsB,MAAM,oBAAoB,MAAM,qBAAqB,wDAAwD,iBAAiB,MAAM,qBAAqB,MAAM,mBAAmB,MAAM,mBAAmB,yJAAyJ,sBAAsB,qBAAqB,kCAAkC,wBAAwB,6SAA6S,wBAAwB,qPAAqP,sBAAsB,qBAAqB,kCAAkC,sCAAsC,SAAS,8OAA8O,oQAAoQ;AAAA,oGAAC,C;;;;;;;;;;;ACxBtyE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,gGAA0B,CAAC,8GAAiC,CAAC,kIAA2C,CAAC,kIAA2C,CAAC,kIAA2C,CAAC,wIAA8C,CAAC,mCAAC,0BAA0B,gBAAgB,gBAAgB,iBAAiB,sBAAsB,oBAAoB,KAAK,WAAW,aAAa,UAAU,WAAW,EAAE,cAAc,KAAK,gBAAgB,kBAAkB,mFAAmF,gBAAgB,mCAAmC,YAAY,WAAW,yBAAyB,8BAA8B,oBAAoB,qFAAqF,kBAAkB,2BAA2B,0FAA0F,kBAAkB,8CAA8C,kBAAkB,qCAAqC,sCAAsC,SAAS,EAAE,yBAAyB,iLAAiL,oOAAoO;AAAA,oGAAC,C;;;;;;;;;;;ACxBtgD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,uGAA4B,CAAC,+FAAwB,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,qIAA2C,CAAC,qIAA2C,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,uIAA4C,CAAC,yIAA6C,CAAC,6HAAuC,CAAC,mIAA0C,CAAC,+IAAgD,CAAC,4HAA+B,CAAC,mCAAC,0CAA0C,gBAAgB,qCAAqC,0CAA0C,qCAAqC,wCAAwC,mCAAmC,0CAA0C,oBAAoB,iCAAiC,kCAAkC,oCAAoC,cAAc,iBAAiB,gCAAgC,+CAA+C,gEAAgE,cAAc,yBAAyB,mHAAmH,cAAc,iBAAiB,gCAAgC,sCAAsC,gEAAgE,kBAAkB,0BAA0B,2CAA2C,kBAAkB,MAAM,kBAAkB,+CAA+C,0HAA0H,YAAY,gBAAgB,YAAY,sBAAsB,KAAK,wDAAwD,iEAAiE,gBAAgB,sCAAsC,8GAA8G,wBAAwB,0BAA0B,YAAY,IAAI,kFAAkF,yDAAyD,oBAAoB,iDAAiD,mBAAmB,yCAAyC,KAAK,yBAAyB,KAAK,KAAK,qDAAqD,0IAA0I,YAAY,KAAK,8CAA8C,YAAY,KAAK,YAAY,8BAA8B,gBAAgB,4DAA4D,0DAA0D,4CAA4C,IAAI,KAAK,WAAW,YAAY,SAAS,OAAO,YAAY,IAAI,8BAA8B,SAAS,cAAc,2BAA2B,cAAc,gGAAgG,cAAc,qBAAqB,gBAAgB,WAAW,KAAK,qBAAqB,SAAS,qBAAqB,oBAAoB,mCAAmC,yBAAyB,qIAAqI,gBAAgB,sHAAsH,sCAAsC,SAAS,uTAAuT,kUAAkU;AAAA,oGAAC,C;;;;;;;;;;;ACxBl0I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,8HAAsC,CAAC,sFAAkB,CAAC,mCAAC,kBAAkB,cAAc,wEAAwE,0DAA0D,WAAW,yBAAyB,qBAAqB,OAAO,EAAE,gBAAgB,cAAc,qBAAqB,sBAAsB,cAAc,EAAE,sCAAsC,SAAS,qCAAqC;AAAA,oGAAC,C;;;;;;;;;;;ACxBze;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,kKAA8D,CAAC,2JAA2C,CAAC,mCAAC,kBAAkB,cAAc,yGAAyG,gCAAgC,qCAAqC,uCAAuC,qCAAqC,2CAA2C,6BAA6B,kEAAkE,SAAS,oCAAoC,6BAA6B,+DAA+D,SAAS,gCAAgC,6BAA6B,mDAAmD,SAAS,OAAO,6BAA6B,4BAA4B,SAAS,gFAAgF,OAAO,+EAA+E,gCAAgC,qCAAqC,uCAAuC,qCAAqC,2CAA2C,6BAA6B,kEAAkE,SAAS,oCAAoC,6BAA6B,+DAA+D,SAAS,gCAAgC,6BAA6B,mDAAmD,SAAS,OAAO,6BAA6B,4BAA4B,SAAS,gFAAgF,OAAO,mEAAmE,sCAAsC,SAAS,wBAAwB,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxB73D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,4JAAwD,CAAC,6IAA6B,CAAC,mCAAC,kBAAkB,gBAAgB,iBAAiB,2BAA2B,2FAA2F,qEAAqE,eAAe,MAAM,0FAA0F,0BAA0B,WAAW,oEAAoE,0BAA0B,WAAW,eAAe,MAAM,+HAA+H,oCAAoC,SAAS,EAAE,OAAO,eAAe,EAAE,EAAE,4DAA4D,oCAAoC,SAAS,EAAE,OAAO,eAAe,EAAE,EAAE,eAAe,MAAM,iJAAiJ,oCAAoC,SAAS,EAAE,EAAE,4DAA4D,oCAAoC,SAAS,EAAE,EAAE,gBAAgB,sCAAsC,SAAS,6DAA6D,YAAY;AAAA,oGAAC,C;;;;;;;;;;;ACxB94C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,4JAAwD,CAAC,6IAA6B,CAAC,mCAAC,kBAAkB,gBAAgB,4IAA4I,6BAA6B,EAAE,8CAA8C,6BAA6B,EAAE,qMAAqM,2GAA2G,SAAS,8CAA8C,2GAA2G,SAAS,qFAAqF,+CAA+C,aAAa,sCAAsC,SAAS,yBAAyB,UAAU;AAAA,oGAAC,C;;;;;;;;;;;ACxB7kC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,4JAAwD,CAAC,6IAA6B,CAAC,mCAAC,kBAAkB,cAAc,6IAA6I,gDAAgD,8DAA8D,yBAAyB,6CAA6C,SAAS,uBAAuB,OAAO,mHAAmH,gDAAgD,8DAA8D,yBAAyB,6CAA6C,SAAS,uBAAuB,OAAO,WAAW,sCAAsC,SAAS,aAAa,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxBx5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,4JAAwD,CAAC,kIAA2C,CAAC,wIAA8C,CAAC,6IAA6B,CAAC,mCAAC,sBAAsB,gBAAgB,gSAAgS,sBAAsB,sBAAsB,sBAAsB,sBAAsB,sBAAsB,UAAU,wDAAwD,4CAA4C,+EAA+E,uEAAuE,uEAAuE,qEAAqE,yDAAyD,uDAAuD,8OAA8O,SAAS,qDAAqD,6KAA6K,SAAS,uCAAuC,4DAA4D,SAAS,0DAA0D,4DAA4D,0CAA0C,yBAAyB,WAAW,8CAA8C,gEAAgE,6EAA6E,2EAA2E,2EAA2E,2EAA2E,2EAA2E,6PAA6P,uGAAuG,SAAS,+FAA+F,kCAAkC,EAAE,0CAA0C,sBAAsB,sBAAsB,sBAAsB,sBAAsB,sBAAsB,UAAU,wDAAwD,4CAA4C,+EAA+E,uEAAuE,uEAAuE,qEAAqE,yDAAyD,uDAAuD,8OAA8O,SAAS,qDAAqD,6KAA6K,SAAS,uCAAuC,4DAA4D,SAAS,0DAA0D,4DAA4D,0CAA0C,yBAAyB,WAAW,8CAA8C,gEAAgE,6EAA6E,2EAA2E,2EAA2E,2EAA2E,2EAA2E,6PAA6P,uGAAuG,SAAS,+FAA+F,kCAAkC,EAAE,sjBAAsjB,qJAAqJ,qEAAqE,sCAAsC,SAAS,wBAAwB,kBAAkB,0CAA0C,oBAAoB,sOAAsO,4CAA4C,uBAAuB,GAAG,iCAAiC;AAAA,oGAAC,C;;;;;;;;;;;ACxBl+M;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,4JAAwD,CAAC,kIAA2C,CAAC,wIAA8C,CAAC,6IAA6B,CAAC,mCAAC,sBAAsB,gBAAgB,uJAAuJ,yCAAyC,mEAAmE,0BAA0B,OAAO,iHAAiH,yCAAyC,mEAAmE,0BAA0B,OAAO,8GAA8G,wIAAwI,OAAO,yEAAyE,wIAAwI,OAAO,aAAa,sCAAsC,SAAS,4BAA4B,gBAAgB,4GAA4G,iBAAiB,+BAA+B,GAAG,6BAA6B;AAAA,oGAAC,C;;;;;;;;;;;ACxBjhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,uJAA2B,CAAC,gJAAgC,CAAC,mCAAC,oBAAoB,gBAAgB,oHAAoH,wBAAwB,SAAS,uCAAuC,wBAAwB,SAAS,sKAAsK,gDAAgD,SAAS,uCAAuC,gDAAgD,SAAS,cAAc,sCAAsC,SAAS,sBAAsB,QAAQ;AAAA,oGAAC,C;;;;;;;;;;;ACxBlzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,cAAc,mGAAmG,iBAAiB,EAAE,qCAAqC,iBAAiB,EAAE,WAAW,sCAAsC,SAAS,wBAAwB,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxBja;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,gBAAgB,4VAA4V,2HAA2H,OAAO,kCAAkC,2HAA2H,OAAO,yGAAyG,sCAAsC,OAAO,iCAAiC,sCAAsC,OAAO,8MAA8M,qDAAqD,gDAAgD,0CAA0C,uCAAuC,SAAS,yBAAyB,kBAAkB,OAAO,4CAA4C,mGAAmG,0EAA0E,WAAW,SAAS,sDAAsD,OAAO,wCAAwC,4EAA4E,OAAO,6DAA6D,qDAAqD,gDAAgD,0CAA0C,uCAAuC,SAAS,yBAAyB,kBAAkB,OAAO,4CAA4C,mGAAmG,0EAA0E,WAAW,SAAS,sDAAsD,OAAO,wCAAwC,4EAA4E,OAAO,uFAAuF,qBAAqB,OAAO,iDAAiD,qBAAqB,OAAO,mMAAmM,6CAA6C,8CAA8C,wCAAwC,kCAAkC,SAAS,yBAAyB,gBAAgB,OAAO,0CAA0C,6FAA6F,gEAAgE,WAAW,SAAS,+CAA+C,OAAO,wBAAwB,qEAAqE,OAAO,yDAAyD,6CAA6C,8CAA8C,wCAAwC,kCAAkC,SAAS,yBAAyB,gBAAgB,OAAO,0CAA0C,6FAA6F,gEAAgE,WAAW,SAAS,+CAA+C,OAAO,wBAAwB,qEAAqE,OAAO,yGAAyG,mCAAmC,OAAO,iCAAiC,mCAAmC,OAAO,cAAc,sCAAsC,SAAS,2BAA2B,gBAAgB;AAAA,oGAAC,C;;;;;;;;;;;ACxBl+I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,gBAAgB,8KAA8K,qBAAqB,SAAS,qDAAqD,qBAAqB,SAAS,mQAAmQ,qBAAqB,+BAA+B,SAAS,qDAAqD,qBAAqB,+BAA+B,SAAS,+HAA+H,sDAAsD,aAAa,sCAAsC,SAAS,iCAAiC,UAAU;AAAA,oGAAC,C;;;;;;;;;;;ACxB1oC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,gBAAgB,yJAAyJ,gBAAgB,EAAE,8CAA8C,gBAAgB,EAAE,6FAA6F,oCAAoC,EAAE,wDAAwD,oCAAoC,EAAE,qFAAqF,8CAA8C,+CAA+C,8CAA8C,aAAa,sCAAsC,SAAS,kBAAkB,UAAU;AAAA,oGAAC,C;;;;;;;;;;;ACxBj6B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,6JAAwB,CAAC,gJAAgC,CAAC,mCAAC,oBAAoB,gBAAgB,gVAAgV,0EAA0E,uEAAuE,SAAS,yCAAyC,0EAA0E,uEAAuE,SAAS,gFAAgF,0CAA0C,aAAa,sCAAsC,SAAS,+BAA+B,gBAAgB,oDAAoD,iBAAiB,qCAAqC,GAAG,QAAQ;AAAA,oGAAC,C;;;;;;;;;;;ACxB/rC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,mLAAmC,CAAC,mKAAiC,CAAC,gJAAgC,CAAC,mCAAC,sBAAsB,gBAAgB,kHAAkH,cAAc,cAAc,KAAK,4CAA4C,cAAc,cAAc,KAAK,2CAA2C,yJAAyJ,2CAA2C,SAAS,qFAAqF,2CAA2C,SAAS,8LAA8L,4EAA4E,SAAS,mFAAmF,4EAA4E,SAAS,cAAc,sCAAsC,SAAS,+BAA+B,UAAU;AAAA,oGAAC,C;;;;;;;;;;;ACxBz2C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,yKAAoC,CAAC,gJAAgC,CAAC,mCAAC,oBAAoB,gBAAgB,oBAAoB,ySAAyS,sEAAsE,gFAAgF,sEAAsE,mHAAmH,wEAAwE,mFAAmF,0DAA0D,2IAA2I,0JAA0J,mFAAmF,0JAA0J,gGAAgG,uEAAuE,wKAAwK,yCAAyC,OAAO,+IAA+I,yCAAyC,OAAO,cAAc,sCAAsC,SAAS,qBAAqB,gBAAgB;AAAA,oGAAC,C;;;;;;;;;;;ACxBvtE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,iKAAgC,CAAC,gJAAgC,CAAC,mCAAC,oBAAoB,gBAAgB,2LAA2L,wEAAwE,8CAA8C,iFAAiF,wDAAwD,4CAA4C,SAAS,gDAAgD,uEAAuE,SAAS,oEAAoE,wEAAwE,8CAA8C,iFAAiF,wDAAwD,4CAA4C,SAAS,gDAAgD,uEAAuE,SAAS,+GAA+G,kDAAkD,SAAS,yDAAyD,kDAAkD,SAAS,aAAa,sCAAsC,SAAS,kBAAkB,QAAQ;AAAA,oGAAC,C;;;;;;;;;;;ACxB3pD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,cAAc,8KAA8K,sCAAsC,+HAA+H,8CAA8C,kDAAkD,SAAS,cAAc,kDAAkD,SAAS,OAAO,uCAAuC,sCAAsC,+HAA+H,8CAA8C,kDAAkD,SAAS,cAAc,kDAAkD,SAAS,OAAO,WAAW,sCAAsC,SAAS,kCAAkC,kBAAkB,qJAAqJ,wBAAwB,2CAA2C,GAAG,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxB33C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,cAAc,sBAAsB,iIAAiI,oFAAoF,OAAO,qHAAqH,oFAAoF,OAAO,2GAA2G,qFAAqF,OAAO,kFAAkF,qFAAqF,OAAO,gKAAgK,gDAAgD,qEAAqE,gKAAgK,iCAAiC,iEAAiE,OAAO,uIAAuI,gDAAgD,qEAAqE,gKAAgK,iCAAiC,iEAAiE,OAAO,aAAa,sCAAsC,SAAS,yBAAyB,UAAU;AAAA,oGAAC,C;;;;;;;;;;;ACxBplE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,2LAA6C,CAAC,gJAAgC,CAAC,mCAAC,oBAAoB,gBAAgB,iBAAiB,oRAAoR,gEAAgE,iCAAiC,SAAS,+EAA+E,gEAAgE,iCAAiC,SAAS,8GAA8G,8EAA8E,kFAAkF,sEAAsE,kDAAkD,SAAS,0DAA0D,8EAA8E,kFAAkF,sEAAsE,kDAAkD,SAAS,wFAAwF,+CAA+C,iDAAiD,sEAAsE,kDAAkD,SAAS,0DAA0D,+CAA+C,iDAAiD,sEAAsE,kDAAkD,SAAS,2JAA2J,8BAA8B,4BAA4B,8BAA8B,4BAA4B,oDAAoD,2CAA2C,2DAA2D,yEAAyE,+FAA+F,6FAA6F,2FAA2F,yEAAyE,8BAA8B,4BAA4B,8BAA8B,4BAA4B,oDAAoD,2CAA2C,2DAA2D,yEAAyE,+FAA+F,6FAA6F,2FAA2F,iLAAiL,oBAAoB,sFAAsF,wCAAwC,OAAO,sEAAsE,oBAAoB,sFAAsF,wCAAwC,OAAO,8DAA8D,QAAQ,sCAAsC,SAAS,2BAA2B,cAAc;AAAA,oGAAC,C;;;;;;;;;;;ACxB1tI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,gBAAgB,kGAAkG,kWAAkW,4DAA4D,yDAAyD,SAAS,8RAA8R,4DAA4D,yDAAyD,SAAS,sQAAsQ,0JAA0J,4KAA4K,yDAAyD,SAAS,yFAAyF,0JAA0J,4KAA4K,yDAAyD,SAAS,qoBAAqoB,4DAA4D,kLAAkL,uPAAuP,2KAA2K,2KAA2K,yDAAyD,SAAS,8RAA8R,4DAA4D,kLAAkL,uPAAuP,2KAA2K,2KAA2K,yDAAyD,SAAS,4iBAA4iB,2EAA2E,uEAAuE,gHAAgH,2EAA2E,sgBAAsgB,2EAA2E,uEAAuE,gHAAgH,2EAA2E,gBAAgB,sCAAsC,SAAS,8BAA8B,YAAY;AAAA,oGAAC,C;;;;;;;;;;;ACxB5rN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,gBAAgB,iBAAiB,gLAAgL,yGAAyG,SAAS,mDAAmD,yGAAyG,sDAAsD,SAAS,qDAAqD,yGAAyG,SAAS,mDAAmD,yGAAyG,sDAAsD,SAAS,oFAAoF,YAAY,EAAE,iEAAiE,YAAY,EAAE,qDAAqD,YAAY,EAAE,iEAAiE,YAAY,EAAE,aAAa,sCAAsC,SAAS,+BAA+B,QAAQ;AAAA,oGAAC,C;;;;;;;;;;;ACxBn9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,cAAc,iBAAiB,8OAA8O,mFAAmF,sHAAsH,sEAAsE,OAAO,+EAA+E,mFAAmF,sHAAsH,sEAAsE,OAAO,WAAW,sCAAsC,SAAS,2BAA2B,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxBhnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,0KAAgC,CAAC,4KAAiC,CAAC,oKAA6B,CAAC,4KAAiC,CAAC,0IAAgB,CAAC,sJAAsB,CAAC,gJAAgC,CAAC,mCAAC,8BAA8B,gBAAgB,iBAAiB,+ZAA+Z,6CAA6C,oIAAoI,6WAA6W,wCAAwC,wCAAwC,gPAAgP,2FAA2F,oIAAoI,2EAA2E,qEAAqE,mHAAmH,0HAA0H,uDAAuD,iEAAiE,gHAAgH,0BAA0B,OAAO,4CAA4C,6CAA6C,oIAAoI,6WAA6W,wCAAwC,wCAAwC,gPAAgP,2FAA2F,oIAAoI,2EAA2E,qEAAqE,mHAAmH,0HAA0H,uDAAuD,iEAAiE,gHAAgH,0BAA0B,OAAO,gHAAgH,yDAAyD,uEAAuE,qEAAqE,SAAS,gEAAgE,yDAAyD,uEAAuE,qEAAqE,SAAS,8FAA8F,wEAAwE,mEAAmE,SAAS,gEAAgE,wEAAwE,mEAAmE,SAAS,0HAA0H,0EAA0E,uIAAuI,SAAS,4FAA4F,0EAA0E,uIAAuI,SAAS,wLAAwL,gHAAgH,+CAA+C,qKAAqK,gHAAgH,+CAA+C,kUAAkU,2GAA2G,2DAA2D,iEAAiE,kCAAkC,4EAA4E,4EAA4E,yDAAyD,gEAAgE,sEAAsE,yEAAyE,6EAA6E,gEAAgE,8DAA8D,6BAA6B,2EAA2E,wCAAwC,iRAAiR,2GAA2G,2DAA2D,iEAAiE,kCAAkC,4EAA4E,4EAA4E,yDAAyD,gEAAgE,sEAAsE,yEAAyE,6EAA6E,gEAAgE,8DAA8D,6BAA6B,2EAA2E,wCAAwC,0KAA0K,gFAAgF,gJAAgJ,4IAA4I,gFAAgF,gJAAgJ,sWAAsW,6DAA6D,sLAAsL,8GAA8G,qMAAqM,mOAAmO,+VAA+V,wUAAwU,6DAA6D,sLAAsL,8GAA8G,qMAAqM,mOAAmO,+VAA+V,wHAAwH,wEAAwE,2DAA2D,2IAA2I,yLAAyL,gGAAgG,ySAAyS,qVAAqV,gQAAgQ,4FAA4F,wEAAwE,2DAA2D,2IAA2I,yLAAyL,gGAAgG,ySAAyS,qVAAqV,gQAAgQ,8HAA8H,0GAA0G,oEAAoE,qHAAqH,uGAAuG,0BAA0B,SAAS,4FAA4F,0GAA0G,oEAAoE,qHAAqH,uGAAuG,0BAA0B,SAAS,4LAA4L,iFAAiF,2FAA2F,mFAAmF,6DAA6D,0FAA0F,6EAA6E,yDAAyD,oEAAoE,+GAA+G,4BAA4B,SAAS,+JAA+J,iFAAiF,2FAA2F,mFAAmF,6DAA6D,0FAA0F,6EAA6E,yDAAyD,oEAAoE,+GAA+G,4BAA4B,SAAS,gBAAgB,sCAAsC,SAAS,4BAA4B,0BAA0B;AAAA,oGAAC,C;;;;;;;;;;;ACxBtslB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,cAAc,mEAAmE,2CAA2C,iFAAiF,8DAA8D,OAAO,yCAAyC,uCAAuC,OAAO,yCAAyC,2CAA2C,iFAAiF,8DAA8D,OAAO,yCAAyC,uCAAuC,OAAO,aAAa,sCAAsC,SAAS,YAAY,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxBr4B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,cAAc,2HAA2H,+GAA+G,8CAA8C,0CAA0C,SAAS,cAAc,0CAA0C,SAAS,OAAO,+FAA+F,+GAA+G,8CAA8C,0CAA0C,SAAS,cAAc,0CAA0C,SAAS,OAAO,WAAW,sCAAsC,SAAS,oBAAoB,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxBz/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,gBAAgB,6IAA6I,gBAAgB,uXAAuX,wEAAwE,yGAAyG,KAAK,kCAAkC,wEAAwE,yGAAyG,KAAK,+GAA+G,oIAAoI,mKAAmK,uOAAuO,SAAS,EAAE,8LAA8L,SAAS,EAAE,oGAAoG,cAAc,kEAAkE,YAAY,EAAE,mEAAmE,2FAA2F,YAAY,EAAE,mEAAmE,gEAAgE,sCAAsC,SAAS,kBAAkB,YAAY;AAAA,oGAAC,C;;;;;;;;;;;ACxB98E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,gBAAgB,2GAA2G,2CAA2C,SAAS,iEAAiE,2CAA2C,SAAS,sGAAsG,uCAAuC,4CAA4C,iEAAiE,uCAAuC,4CAA4C,0GAA0G,gEAAgE,8CAA8C,mCAAmC,WAAW,mDAAmD,gEAAgE,8CAA8C,mCAAmC,WAAW,wFAAwF,2CAA2C,8CAA8C,mCAAmC,WAAW,mDAAmD,2CAA2C,8CAA8C,mCAAmC,WAAW,aAAa,sCAAsC,SAAS,kBAAkB,YAAY;AAAA,oGAAC,C;;;;;;;;;;;ACxBtsD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,gBAAgB,iBAAiB,kEAAkE,wBAAwB,2BAA2B,OAAO,eAAe,iDAAiD,wBAAwB,2BAA2B,OAAO,eAAe,2HAA2H,mIAAmI,SAAS,uEAAuE,mIAAmI,SAAS,2HAA2H,+FAA+F,SAAS,uEAAuE,+FAA+F,SAAS,qGAAqG,8CAA8C,SAAS,uEAAuE,8CAA8C,SAAS,aAAa,sCAAsC,SAAS,cAAc,YAAY;AAAA,oGAAC,C;;;;;;;;;;;ACxB/oD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gKAA2B,CAAC,0IAAgB,CAAC,gJAAgC,CAAC,mCAAC,sBAAsB,gBAAgB,sBAAsB,iGAAiG,sBAAsB,wEAAwE,uEAAuE,oEAAoE,4EAA4E,6EAA6E,gEAAgE,gCAAgC,8CAA8C,sBAAsB,wEAAwE,uEAAuE,oEAAoE,4EAA4E,6EAA6E,gEAAgE,gCAAgC,8IAA8I,uDAAuD,OAAO,0EAA0E,uDAAuD,OAAO,4GAA4G,yCAAyC,qCAAqC,yEAAyE,0BAA0B,OAAO,mFAAmF,yCAAyC,qCAAqC,yEAAyE,0BAA0B,OAAO,2FAA2F,oCAAoC,OAAO,kEAAkE,oCAAoC,OAAO,gIAAgI,4DAA4D,kEAAkE,yDAAyD,2BAA2B,OAAO,wCAAwC,wEAAwE,OAAO,uGAAuG,4DAA4D,kEAAkE,yDAAyD,2BAA2B,OAAO,wCAAwC,wEAAwE,OAAO,kHAAkH,sBAAsB,uFAAuF,sFAAsF,mFAAmF,2FAA2F,kGAAkG,4FAA4F,gIAAgI,yHAAyH,2HAA2H,+IAA+I,8IAA8I,sGAAsG,sGAAsG,kGAAkG,uEAAuE,+DAA+D,2DAA2D,kFAAkF,4FAA4F,uGAAuG,oEAAoE,kDAAkD,6CAA6C,sBAAsB,uFAAuF,sFAAsF,mFAAmF,2FAA2F,kGAAkG,4FAA4F,gIAAgI,yHAAyH,2HAA2H,+IAA+I,8IAA8I,sGAAsG,sGAAsG,kGAAkG,uEAAuE,+DAA+D,2DAA2D,kFAAkF,4FAA4F,uGAAuG,oEAAoE,kDAAkD,gFAAgF,6GAA6G,+IAA+I,+FAA+F,qIAAqI,6GAA6G,+IAA+I,+FAA+F,qLAAqL,sCAAsC,8DAA8D,gCAAgC,OAAO,8EAA8E,sCAAsC,8DAA8D,gCAAgC,OAAO,8FAA8F,0DAA0D,wCAAwC,qEAAqE,uCAAuC,uEAAuE,kCAAkC,OAAO,qEAAqE,0DAA0D,wCAAwC,qEAAqE,uCAAuC,uEAAuE,kCAAkC,OAAO,uGAAuG,qJAAqJ,qKAAqK,+IAA+I,6IAA6I,oEAAoE,kEAAkE,wDAAwD,OAAO,8EAA8E,qJAAqJ,qKAAqK,+IAA+I,6IAA6I,oEAAoE,kEAAkE,wDAAwD,OAAO,gFAAgF,0FAA0F,OAAO,uMAAuM,sBAAsB,sVAAsV,iGAAiG,mDAAmD,mDAAmD,0BAA0B,OAAO,uDAAuD,0FAA0F,OAAO,uMAAuM,sBAAsB,sVAAsV,iGAAiG,mDAAmD,mDAAmD,0BAA0B,OAAO,cAAc,sCAAsC,SAAS,+BAA+B,0BAA0B;AAAA,oGAAC,C;;;;;;;;;;;ACxB1+a;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,2LAA6C,CAAC,gJAAgC,CAAC,mCAAC,oBAAoB,gBAAgB,kGAAkG,4RAA4R,sBAAsB,sBAAsB,oBAAoB,sBAAsB,mCAAmC,sBAAsB,sBAAsB,oBAAoB,sBAAsB,iRAAiR,iFAAiF,2CAA2C,yCAAyC,OAAO,kFAAkF,iFAAiF,2CAA2C,yCAAyC,OAAO,qOAAqO,2DAA2D,OAAO,oEAAoE,2DAA2D,OAAO,mPAAmP,2DAA2D,OAAO,mCAAmC,yBAAyB,OAAO,qEAAqE,2DAA2D,OAAO,mCAAmC,yBAAyB,OAAO,2EAA2E,YAAY,EAAE,4CAA4C,YAAY,EAAE,iFAAiF,wCAAwC,oCAAoC,oCAAoC,kCAAkC,wBAAwB,mDAAmD,uCAAuC,wCAAwC,oCAAoC,oCAAoC,kCAAkC,wBAAwB,mDAAmD,0BAA0B,mGAAmG,kCAAkC,oCAAoC,6EAA6E,oBAAoB,sBAAsB,+EAA+E,qBAAqB,uBAAuB,OAAO,sCAAsC,SAAS,qDAAqD,gBAAgB,kNAAkN,iBAAiB,iFAAiF,GAAG,gBAAgB;AAAA,oGAAC,C;;;;;;;;;;;ACxBhgI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,cAAc,4EAA4E,kDAAkD,yFAAyF,iDAAiD,8CAA8C,8CAA8C,oDAAoD,iDAAiD,8CAA8C,8CAA8C,aAAa,sCAAsC,SAAS,cAAc,QAAQ;AAAA,oGAAC,C;;;;;;;;;;;ACxBlxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,iKAAgC,CAAC,gJAAgC,CAAC,mCAAC,oBAAoB,cAAc,kYAAkY,+CAA+C,0CAA0C,mCAAmC,kIAAkI,kCAAkC,YAAY,EAAE,kIAAkI,2CAA2C,sBAAsB,kGAAkG,6BAA6B,YAAY,EAAE,+EAA+E,YAAY,EAAE,oIAAoI,8CAA8C,wGAAwG,uHAAuH,oHAAoH,mHAAmH,oHAAoH,qEAAqE,OAAO,6EAA6E,+CAA+C,0CAA0C,mCAAmC,kIAAkI,kCAAkC,YAAY,EAAE,kIAAkI,2CAA2C,sBAAsB,kGAAkG,6BAA6B,YAAY,EAAE,+EAA+E,YAAY,EAAE,oIAAoI,8CAA8C,wGAAwG,uHAAuH,oHAAoH,mHAAmH,oHAAoH,qEAAqE,OAAO,WAAW,sCAAsC,SAAS,gCAAgC,gBAAgB,yDAAyD,iBAAiB,uCAAuC,GAAG,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxBv5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,gBAAgB,6dAA6d,gHAAgH,6FAA6F,SAAS,oFAAoF,gHAAgH,6FAA6F,SAAS,0FAA0F,sEAAsE,sHAAsH,uEAAuE,SAAS,4CAA4C,sEAAsE,SAAS,gCAAgC,yEAAyE,SAAS,qDAAqD,sEAAsE,sHAAsH,uEAAuE,SAAS,4CAA4C,sEAAsE,SAAS,gCAAgC,yEAAyE,SAAS,+EAA+E,4BAA4B,EAAE,4CAA4C,2BAA2B,EAAE,yCAAyC,4BAA4B,EAAE,4CAA4C,2BAA2B,EAAE,mJAAmJ,+CAA+C,qGAAqG,2CAA2C,mCAAmC,6BAA6B,WAAW,2BAA2B,gBAAgB,OAAO,qCAAqC,0EAA0E,oDAAoD,aAAa,WAAW,wCAAwC,SAAS,0BAA0B,oFAAoF,SAAS,2DAA2D,+CAA+C,qGAAqG,2CAA2C,mCAAmC,6BAA6B,WAAW,2BAA2B,gBAAgB,OAAO,qCAAqC,0EAA0E,oDAAoD,aAAa,WAAW,wCAAwC,SAAS,0BAA0B,oFAAoF,SAAS,yEAAyE,kBAAkB,EAAE,mCAAmC,kBAAkB,EAAE,aAAa,sCAAsC,SAAS,kCAAkC,gBAAgB,yUAAyU,gBAAgB,6IAA6I,gBAAgB,sJAAsJ,uDAAuD,2CAA2C,GAAG,cAAc;AAAA,oGAAC,C;;;;;;;;;;;ACxB9kK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,sIAAc,CAAC,4KAAiC,CAAC,gJAAgC,CAAC,mCAAC,sBAAsB,gBAAgB,oJAAoJ,sEAAsE,kEAAkE,qDAAqD,kDAAkD,oCAAoC,ycAAyc,8DAA8D,6CAA6C,OAAO,yoBAAyoB,qDAAqD,8FAA8F,uDAAuD,yDAAyD,yDAAyD,uDAAuD,uDAAuD,uDAAuD,2GAA2G,gTAAgT,sDAAsD,2EAA2E,wIAAwI,uLAAuL,qMAAqM,kcAAkc,ySAAyS,oCAAoC,uRAAuR,wLAAwL,+KAA+K,uEAAuE,SAAS,kIAAkI,OAAO,6DAA6D,sEAAsE,kEAAkE,qDAAqD,kDAAkD,oCAAoC,ycAAyc,8DAA8D,6CAA6C,OAAO,yoBAAyoB,qDAAqD,8FAA8F,uDAAuD,yDAAyD,yDAAyD,uDAAuD,uDAAuD,uDAAuD,2GAA2G,gTAAgT,sDAAsD,2EAA2E,wIAAwI,uLAAuL,qMAAqM,kcAAkc,ySAAyS,oCAAoC,uRAAuR,wLAAwL,+KAA+K,uEAAuE,SAAS,kIAAkI,OAAO,WAAW,sCAAsC,SAAS,YAAY,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxB3mT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,cAAc,oVAAoV,4JAA4J,wCAAwC,2DAA2D,gEAAgE,qDAAqD,SAAS,8CAA8C,uDAAuD,SAAS,gEAAgE,sDAAsD,SAAS,sDAAsD,6BAA6B,SAAS,oDAAoD,qDAAqD,iDAAiD,SAAS,oGAAoG,6CAA6C,2CAA2C,gFAAgF,qEAAqE,+DAA+D,6BAA6B,yDAAyD,gCAAgC,kDAAkD,wCAAwC,SAAS,yDAAyD,+CAA+C,yGAAyG,6CAA6C,wPAAwP,wGAAwG,mOAAmO,iGAAiG,gFAAgF,8EAA8E,sLAAsL,uCAAuC,oEAAoE,6BAA6B,SAAS,wDAAwD,kDAAkD,iHAAiH,SAAS,uDAAuD,4JAA4J,wCAAwC,2DAA2D,gEAAgE,qDAAqD,SAAS,8CAA8C,uDAAuD,SAAS,gEAAgE,sDAAsD,SAAS,sDAAsD,6BAA6B,SAAS,oDAAoD,qDAAqD,iDAAiD,SAAS,oGAAoG,6CAA6C,2CAA2C,gFAAgF,qEAAqE,+DAA+D,6BAA6B,yDAAyD,gCAAgC,kDAAkD,wCAAwC,SAAS,yDAAyD,+CAA+C,yGAAyG,6CAA6C,wPAAwP,wGAAwG,mOAAmO,iGAAiG,gFAAgF,8EAA8E,sLAAsL,uCAAuC,oEAAoE,6BAA6B,SAAS,wDAAwD,kDAAkD,iHAAiH,SAAS,aAAa,sCAAsC,SAAS,sBAAsB,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxBxvN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,gBAAgB,+DAA+D,wCAAwC,SAAS,kDAAkD,wCAAwC,SAAS,2DAA2D,0DAA0D,mEAAmE,mEAAmE,0CAA0C,4BAA4B,4FAA4F,SAAS,yCAAyC,0DAA0D,mEAAmE,mEAAmE,0CAA0C,4BAA4B,4FAA4F,SAAS,2DAA2D,wDAAwD,2DAA2D,mEAAmE,SAAS,yCAAyC,wDAAwD,2DAA2D,mEAAmE,SAAS,0DAA0D,yCAAyC,SAAS,wCAAwC,yCAAyC,SAAS,aAAa,iBAAiB,6BAA6B,4BAA4B,EAAE,MAAM,6BAA6B,8BAA8B,EAAE,MAAM,8BAA8B,4BAA4B,wBAAwB,8BAA8B,GAAG,sCAAsC,SAAS,sBAAsB,YAAY;AAAA,oGAAC,C;;;;;;;;;;;ACxBxrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,cAAc,wDAAwD,4CAA4C,kDAAkD,OAAO,0CAA0C,4CAA4C,kDAAkD,OAAO,UAAU,4CAA4C,sCAAsC,SAAS,mBAAmB,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxBrkB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,iGAA4B,CAAC,gJAAgC,CAAC,oIAA8B,CAAC,mCAAC,sBAAsB,gBAAgB,gHAAgH,2DAA2D,SAAS,2CAA2C,2DAA2D,SAAS,kIAAkI,wCAAwC,uCAAuC,wFAAwF,yBAAyB,SAAS,mDAAmD,2DAA2D,SAAS,2CAA2C,2DAA2D,SAAS,kIAAkI,wCAAwC,uCAAuC,wFAAwF,yBAAyB,SAAS,4GAA4G,8BAA8B,4BAA4B,+DAA+D,yBAAyB,SAAS,uEAAuE,8BAA8B,4BAA4B,+DAA+D,yBAAyB,SAAS,aAAa,cAAc,yGAAyG,sCAAsC,SAAS,6DAA6D,QAAQ;AAAA,oGAAC,C;;;;;;;;;;;ACxB7lE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,uJAAwB,CAAC,gJAAgC,CAAC,mCAAC,oBAAoB,gBAAgB,+BAA+B,yHAAyH,oMAAoM,sDAAsD,4BAA4B,0BAA0B,SAAS,+BAA+B,+BAA+B,SAAS,+BAA+B,+BAA+B,SAAS,cAAc,mFAAmF,gDAAgD,oEAAoE,iCAAiC,SAAS,OAAO,gHAAgH,yMAAyM,yDAAyD,4BAA4B,+BAA+B,SAAS,+BAA+B,iCAAiC,SAAS,cAAc,8EAA8E,SAAS,OAAO,2GAA2G,oMAAoM,sDAAsD,4BAA4B,0BAA0B,SAAS,+BAA+B,+BAA+B,SAAS,+BAA+B,+BAA+B,SAAS,cAAc,mFAAmF,gDAAgD,oEAAoE,iCAAiC,SAAS,OAAO,gHAAgH,yMAAyM,yDAAyD,4BAA4B,+BAA+B,SAAS,+BAA+B,iCAAiC,SAAS,cAAc,8EAA8E,SAAS,OAAO,gFAAgF,iBAAiB,4BAA4B,MAAM,8BAA8B,MAAM,qDAAqD,sCAAsC,SAAS,uBAAuB,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxBn1G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,cAAc,2TAA2T,qLAAqL,4CAA4C,iIAAiI,wZAAwZ,yJAAyJ,4CAA4C,OAAO,oPAAoP,qCAAqC,8OAA8O,OAAO,6SAA6S,qLAAqL,4CAA4C,iIAAiI,wZAAwZ,yJAAyJ,4CAA4C,OAAO,oPAAoP,qCAAqC,8OAA8O,OAAO,UAAU,4CAA4C,sCAAsC,SAAS,wBAAwB,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxB9yH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,cAAc,sGAAsG,kDAAkD,qYAAqY,OAAO,4EAA4E,kDAAkD,qYAAqY,OAAO,4HAA4H,uDAAuD,OAAO,uFAAuF,uDAAuD,OAAO,mJAAmJ,wJAAwJ,OAAO,8GAA8G,wJAAwJ,OAAO,+HAA+H,qGAAqG,OAAO,0FAA0F,qGAAqG,OAAO,+JAA+J,yIAAyI,OAAO,0HAA0H,yIAAyI,OAAO,4HAA4H,uHAAuH,OAAO,uFAAuF,uHAAuH,OAAO,4JAA4J,wIAAwI,OAAO,uHAAuH,wIAAwI,OAAO,WAAW,sCAAsC,SAAS,4BAA4B,kBAAkB;AAAA,oGAAC,C;;;;;;;;;;;ACxBzqI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+JAA2D,CAAC,gJAAgC,CAAC,mCAAC,kBAAkB,cAAc,yOAAyO,gEAAgE,mDAAmD,SAAS,6HAA6H,4FAA4F,+EAA+E,yMAAyM,2DAA2D,4GAA4G,6IAA6I,yCAAyC,wFAAwF,oGAAoG,8EAA8E,qBAAqB,+GAA+G,gEAAgE,mDAAmD,SAAS,6HAA6H,4FAA4F,+EAA+E,yMAAyM,2DAA2D,4GAA4G,6IAA6I,yCAAyC,wFAAwF,oGAAoG,8EAA8E,qBAAqB,WAAW,sCAAsC,SAAS,yBAAyB,MAAM;AAAA,oGAAC,C;;;;;;;;;;;ACxB9hG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,kHAAmC,CAAC,oGAA4B,CAAC,mCAAC,kBAAkB,sCAAsC,SAAS,EAAE,8FAA8F,aAAa,uJAAuJ,yCAAyC,yKAAyK,mFAAmF,wCAAwC,oSAAoS,qIAAqI,GAAG,GAAG,kBAAkB,iBAAiB,aAAa,0CAA0C,uCAAuC,oBAAoB,6EAA6E,uCAAuC,kBAAkB,uBAAuB,qCAAqC,yCAAyC,EAAE,EAAE,GAAG,gBAAgB,aAAa,wBAAwB,mCAAmC,sBAAsB,uCAAuC,qBAAqB,GAAG,gBAAgB,aAAa,uDAAuD,SAAS,gBAAgB,aAAa,wBAAwB,qCAAqC,0BAA0B,wCAAwC,sDAAsD,mCAAmC,EAAE,EAAE,GAAG,gBAAgB,aAAa,wBAAwB,qCAAqC,0BAA0B,uCAAuC,qCAAqC,iCAAiC,EAAE,EAAE,GAAG,gBAAgB,aAAa,sBAAsB,mCAAmC,qBAAqB,wCAAwC,2DAA2D,uDAAuD,uBAAuB,kBAAkB,kCAAkC,EAAE,0GAA0G,gBAAgB,aAAa,sBAAsB,wCAAwC,uCAAuC,uBAAuB,oCAAoC,uCAAuC,uBAAuB,uCAAuC,mDAAmD,+BAA+B,EAAE,GAAG,iEAAiE,8BAA8B,mCAAmC,gCAAgC,mCAAmC,4BAA4B,EAAE;AAAA,oGAAC,C;;;;;;;;;;;ACxB7yG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mCAAC,cAAc,cAAc,iBAAiB,mBAAmB,wBAAwB,iBAAiB,WAAW,iBAAiB,wBAAwB,sCAAsC,SAAS,uBAAuB,cAAc,gCAAgC,QAAQ,qBAAqB,GAAG;AAAA,oGAAC,C;;;;;;;;;;;ACxB/U;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,gHAAkC,CAAC,mCAAC,gBAAgB,sCAAsC,SAAS,EAAE,iBAAiB,kBAAkB,0DAA0D,kCAAkC,oBAAoB,+BAA+B,2DAA2D,oGAAoG,+CAA+C,gBAAgB,EAAE,EAAE,2DAA2D,sDAAsD,yCAAyC,MAAM,aAAa,YAAY,gBAAgB,WAAW,KAAK,WAAW,iEAAiE,GAAG,GAAG,2BAA2B;AAAA,oGAAC,C;;;;;;;;;;;ACxB51B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mCAAC,cAAc,cAAc,iDAAiD,YAAY,gBAAgB,WAAW,KAAK,WAAW,UAAU,SAAS,sCAAsC,SAAS,EAAE,iBAAiB,gBAAgB,2MAA2M,sCAAsC,uHAAuH,gCAAgC,qMAAqM,8CAA8C,eAAe,qBAAqB,+BAA+B,gDAAgD,eAAe,sBAAsB,+BAA+B,2CAA2C,eAAe,wBAAwB,+BAA+B,qDAAqD,eAAe,oBAAoB,+BAA+B,wCAAwC,yCAAyC,mCAAmC,GAAG,GAAG,oBAAoB;AAAA,oGAAC,C;;;;;;;;;;;ACxB/6C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,0GAA+B,CAAC,mCAAC,gBAAgB,cAAc,wBAAwB,gBAAgB,QAAQ,gGAAgG,YAAY,sFAAsF,gGAAgG,2UAA2U,2BAA2B,eAAe,eAAe,iBAAiB,uCAAuC,GAAG,sCAAsC,SAAS,EAAE,iBAAiB,aAAa,WAAW,SAAS,GAAG,+CAA+C;AAAA,oGAAC,C;;;;;;;;;;;ACxBlgC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,iJAAiD,CAAC,qIAA2C,CAAC,yIAA6C,CAAC,mCAAC,oBAAoB,aAAa,qBAAqB,wFAAwF,sCAAsC,SAAS,oCAAoC,mBAAmB,aAAa,8CAA8C,0BAA0B,6CAA6C,iEAAiE,KAAK,KAAK,WAAW,4EAA4E,oBAAoB,iDAAiD,eAAe,wBAAwB,+BAA+B,4EAA4E,iBAAiB,kBAAkB,aAAa,+CAA+C,mFAAmF,6CAA6C,cAAc,SAAS,MAAM,mCAAmC;AAAA,oGAAC,C;;;;;;;;;;;ACxBxrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,2GAA8B,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,mGAAQ,CAAC,mCAAC,sBAAsB,iBAAiB,oBAAoB,8SAA8S,kHAAkH,yIAAyI,IAAI,kDAAkD,6BAA6B,KAAK,kCAAkC,WAAW,kQAAkQ,2KAA2K,kCAAkC,QAAQ,sBAAsB,KAAK,uBAAuB,wFAAwF,YAAY,0CAA0C,4DAA4D,UAAU,6DAA6D,qBAAqB,wCAAwC,mBAAmB,oCAAoC,qBAAqB,iCAAiC,kBAAkB,iCAAiC,kBAAkB,4CAA4C,6BAA6B,mCAAmC,oBAAoB,oCAAoC,sBAAsB,oCAAoC,wCAAwC,oDAAoD,yIAAyI,IAAI,WAAW,kEAAkE,IAAI,KAAK,qHAAqH,6BAA6B,KAAK,wBAAwB,6BAA6B,iCAAiC,2DAA2D,gBAAgB,IAAI,gBAAgB,cAAc,2BAA2B,IAAI,6CAA6C,YAAY,IAAI,WAAW,YAAY,IAAI,KAAK,WAAW,sCAAsC,4BAA4B,YAAY,IAAI,0GAA0G,sBAAsB,GAAG,GAAG,mBAAmB,oBAAoB,iBAAiB,EAAE,SAAS,KAAK;AAAA,oGAAC,C;;;;;;;;;;;ACxB3qG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mCAAC,cAAc,sCAAsC,SAAS,yBAAyB,kFAAkF;AAAA,oGAAC,C;;;;;;;;;;;ACxBtM;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mCAAC,cAAc,sCAAsC,SAAS,eAAe,0PAA0P;AAAA,oGAAC,C;;;;;;;;;;;ACxBpW;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mCAAC,cAAc,sCAAsC,SAAS,WAAW,mEAAmE,cAAc,mEAAmE,EAAE,+DAA+D,oBAAoB,mEAAmE,EAAE,kEAAkE,EAAE,+DAA+D,cAAc,mEAAmE,EAAE,iEAAiE,WAAW,kEAAkE,cAAc,mEAAmE,EAAE,8DAA8D,EAAE;AAAA,oGAAC,C;;;;;;;;;;;ACxB34B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,iJAAiD,CAAC,qIAA2C,CAAC,yIAA6C,CAAC,uHAAkB,CAAC,mCAAC,sBAAsB,sCAAsC,SAAS,EAAE,kBAAkB,cAAc,yBAAyB,uFAAuF,+CAA+C,iCAAiC,yCAAyC,wCAAwC,oCAAoC,0BAA0B,oCAAoC,SAAS,yCAAyC,SAAS,kDAAkD,8DAA8D,kEAAkE,+BAA+B,eAAe;AAAA,oGAAC,C;;;;;;;;;;;ACxBl7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,iIAAyC,CAAC,mIAA0C,CAAC,iIAAuB,CAAC,+GAAc,CAAC,sJAAoC,CAAC,mCAAC,wBAAwB,kBAAkB,cAAc,0CAA0C,oFAAoF,kBAAkB,uDAAuD,qVAAqV,6CAA6C,wDAAwD,uCAAuC,8LAA8L,uCAAuC,m5BAAm5B,4CAA4C,0DAA0D,0LAA0L,GAAG,eAAe,mBAAmB,gBAAgB,WAAW,MAAM,uBAAuB,SAAS,KAAK;AAAA,oGAAC,C;;;;;;;;;;;ACxBl6E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mHAAgB,CAAC,uHAAkB,CAAC,6HAAqB,CAAC,qGAAS,CAAC,mGAAQ,CAAC,mGAAQ,CAAC,mCAAC,0BAA0B,kBAAkB,kBAAkB,gIAAgI,+CAA+C,eAAe,gBAAgB,+BAA+B,4CAA4C,eAAe,kBAAkB,+BAA+B,qCAAqC,+BAA+B,iDAAiD,eAAe,4BAA4B,+BAA+B,uCAAuC,iCAAiC,qDAAqD,eAAe,oDAAoD,+BAA+B,wDAAwD,eAAe,kCAAkC,+BAA+B,mDAAmD,eAAe,4BAA4B,+BAA+B,iDAAiD,eAAe,8BAA8B,+BAA+B,oDAAoD,eAAe,uGAAuG,+BAA+B,kDAAkD,0HAA0H,0DAA0D,0GAA0G,iDAAiD,uDAAuD,0GAA0G,8CAA8C,+CAA+C,kDAAkD,4CAA4C,iFAAiF,YAAY,IAAI,qCAAqC,SAAS,+CAA+C,0DAA0D,IAAI,iCAAiC,SAAS,4CAA4C,yQAAyQ,IAAI,KAAK,uDAAuD,gGAAgG,oDAAoD,+CAA+C,+JAA+J,iBAAiB,qBAAqB,YAAY,IAAI,WAAW,eAAe,mFAAmF,uCAAuC,sBAAsB,yBAAyB,GAAG;AAAA,oGAAC,C;;;;;;;;;;;ACxB18G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,uHAAkB,CAAC,6HAAqB,CAAC,mGAAQ,CAAC,mCAAC,oBAAoB,cAAc,+BAA+B,sCAAsC,sCAAsC,SAAS,EAAE,iBAAiB,oBAAoB,oHAAoH,SAAS,gBAAgB,6BAA6B,MAAM,uCAAuC,yBAAyB,4CAA4C,KAAK,sBAAsB,+HAA+H,+CAA+C,eAAe,gBAAgB,+BAA+B,wDAAwD,eAAe,8BAA8B,+BAA+B,+CAA+C,eAAe,qBAAqB,+BAA+B,wDAAwD,eAAe,8BAA8B,+BAA+B,kDAAkD,eAAe,2CAA2C,0BAA0B,+BAA+B,qDAAqD,eAAe,2BAA2B,+BAA+B,uCAAuC,6BAA6B,qCAAqC,OAAO,kGAAkG,oCAAoC,wBAAwB,sCAAsC,iCAAiC,+CAA+C,QAAQ,kDAAkD,QAAQ,4DAA4D,gDAAgD,QAAQ,0DAA0D,6CAA6C,QAAQ,uDAAuD,+CAA+C,QAAQ,yDAAyD,SAAS,oBAAoB,uCAAuC,GAAG,iBAAiB;AAAA,oGAAC,C;;;;;;;;;;;ACxBr3E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,yGAA6B,CAAC,+HAAwC,CAAC,qGAAS,CAAC,mCAAC,oBAAoB,kBAAkB,wBAAwB,wJAAwJ,sDAAsD,2BAA2B,gDAAgD,oGAAoG,iDAAiD,+MAA+M,2CAA2C,GAAG;AAAA,oGAAC,C;;;;;;;;;;;ACxBx1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,qIAA2C,CAAC,wHAA6B,CAAC,2HAAoB,CAAC,mHAAgB,CAAC,mGAAQ,CAAC,mCAAC,4BAA4B,sBAAsB,aAAa,cAAc,8BAA8B,mCAAmC,IAAI,oEAAoE,SAAS,wJAAwJ,SAAS,0CAA0C,cAAc,kCAAkC,gCAAgC,+BAA+B,gCAAgC,yBAAyB,4PAA4P,IAAI,gBAAgB,IAAI,eAAe,4BAA4B,IAAI,sEAAsE,mBAAmB,SAAS,GAAG,MAAM,aAAa,cAAc,8BAA8B,mCAAmC,IAAI,oEAAoE,SAAS,wGAAwG,SAAS,0CAA0C,cAAc,kCAAkC,gCAAgC,yBAAyB,sOAAsO,mBAAmB,SAAS,GAAG,MAAM,aAAa,cAAc,8BAA8B,mCAAmC,IAAI,oEAAoE,SAAS,wGAAwG,SAAS,0CAA0C,cAAc,kCAAkC,gCAAgC,yBAAyB,8OAA8O,wQAAwQ,gIAAgI,mBAAmB,SAAS,GAAG,MAAM,aAAa,0BAA0B,2GAA2G,yKAAyK,KAAK,KAAK,6CAA6C,KAAK,KAAK,iEAAiE,sGAAsG,UAAU,mCAAmC,IAAI,YAAY,IAAI,gBAAgB,IAAI,KAAK,oDAAoD,gIAAgI,uBAAuB,SAAS,qGAAqG,SAAS,0CAA0C,cAAc,kCAAkC,cAAc,+BAA+B,cAAc,yBAAyB,kBAAkB,gBAAgB,MAAM,6BAA6B,oCAAoC,oBAAoB,eAAe,qFAAqF,YAAY,qHAAqH,KAAK,2BAA2B,+OAA+O,YAAY,WAAW,kCAAkC,YAAY,KAAK,IAAI,KAAK,8CAA8C,IAAI,MAAM,8DAA8D,4GAA4G,SAAS,kCAAkC,WAAW,sBAAsB,SAAS,sEAAsE,SAAS,0CAA0C,gCAAgC,kCAAkC,cAAc,yBAAyB,4BAA4B,0WAA0W,sCAAsC,cAAc,kCAAkC,cAAc,+BAA+B,qBAAqB,iCAAiC,cAAc,gCAAgC,cAAc,UAAU,8CAA8C,kCAAkC,eAAe,YAAY,8CAA8C,kCAAkC,eAAe,0MAA0M,4BAA4B,yBAAyB,YAAY,2CAA2C,8BAA8B,YAAY,6CAA6C,8BAA8B,YAAY,0CAA0C,wCAAwC,YAAY,yCAAyC,oBAAoB,YAAY,4CAA4C,wCAAwC,YAAY,wCAAwC,oBAAoB,YAAY,4CAA4C,wCAAwC,SAAS,gBAAgB,sIAAsI,WAAW,yHAAyH,0BAA0B,0BAA0B,cAAc,SAAS,yGAAyG,SAAS,0CAA0C,cAAc,kCAAkC,cAAc,+BAA+B,cAAc,+DAA+D,aAAa,4LAA4L,qGAAqG,SAAS,0CAA0C,cAAc,kCAAkC,cAAc,+BAA+B,cAAc,yBAAyB,cAAc,2BAA2B,iBAAiB,IAAI,gBAAgB,IAAI,qBAAqB,+FAA+F,iLAAiL,sIAAsI,SAAS,0CAA0C,cAAc,kCAAkC,cAAc,+BAA+B,cAAc,iCAAiC,cAAc,yBAAyB,wBAAwB,sCAAsC,2IAA2I,kIAAkI,+CAA+C,mBAAmB,KAAK,KAAK,4EAA4E,UAAU,iEAAiE,UAAU,iBAAiB,IAAI,KAAK,4EAA4E,UAAU,gEAAgE,UAAU,sEAAsE,MAAM,YAAY,WAAW,4DAA4D,+DAA+D,MAAM,YAAY,WAAW,8DAA8D,wEAAwE,oCAAoC,IAAI,qDAAqD,oCAAoC,IAAI,qDAAqD,SAAS,sEAAsE,SAAS,0CAA0C,cAAc,kCAAkC,cAAc,yBAAyB,wBAAwB,+IAA+I,sBAAsB,yBAAyB,8BAA8B,yBAAyB,wCAAwC,kCAAkC,oDAAoD,yBAAyB,8DAA8D,oKAAoK,+TAA+T,0BAA0B,cAAc,mDAAmD,IAAI,KAAK,sBAAsB,6UAA6U,cAAc,wEAAwE,MAAM,YAAY,IAAI,KAAK,cAAc,yCAAyC,YAAY,IAAI,KAAK,cAAc,8CAA8C,SAAS,qGAAqG,SAAS,0CAA0C,cAAc,kCAAkC,cAAc,+BAA+B,cAAc,yBAAyB,sBAAsB,0CAA0C,kCAAkC,IAAI,KAAK,4BAA4B,oBAAoB,sCAAsC,kDAAkD,wBAAwB,4CAA4C,0hBAA0hB,6LAA6L,YAAY,WAAW,4IAA4I,uCAAuC,YAAY,WAAW,sKAAsK,oCAAoC,WAAW,KAAK,SAAS,QAAQ,iMAAiM,yLAAyL,gDAAgD,YAAY,IAAI,kOAAkO,cAAc,wEAAwE,YAAY,IAAI,sBAAsB,KAAK,4BAA4B,WAAW,yIAAyI,UAAU,oCAAoC,kBAAkB,WAAW,0JAA0J,SAAS,sEAAsE,SAAS,0CAA0C,cAAc,YAAY,cAAc,kCAAkC,cAAc,yBAAyB,gBAAgB,uVAAuV,qFAAqF,WAAW,KAAK,YAAY,IAAI,mBAAmB,2BAA2B,QAAQ,MAAM,0EAA0E,cAAc,IAAI,+CAA+C,WAAW,gBAAgB,IAAI,mBAAmB,mEAAmE,eAAe,oEAAoE,oBAAoB,gKAAgK,IAAI,qDAAqD,WAAW,gEAAgE,oCAAoC,cAAc,IAAI,+BAA+B,gBAAgB,sEAAsE,WAAW,MAAM,6BAA6B,mFAAmF,gBAAgB,uCAAuC,uEAAuE,QAAQ,qBAAqB,yBAAyB,gCAAgC,eAAe,SAAS,yCAAyC,+CAA+C,sHAAsH,cAAc,kLAAkL,WAAW,MAAM,gGAAgG,UAAU,6DAA6D,iCAAiC,sCAAsC,mCAAmC,gBAAgB,kBAAkB,gHAAgH,iBAAiB,WAAW,MAAM,aAAa,wBAAwB,iBAAiB,WAAW,MAAM,aAAa,wBAAwB,SAAS,sBAAsB,+HAA+H,0BAA0B,gDAAgD,6kBAA6kB,SAAS,GAAG,6DAA6D,SAAS;AAAA,oGAAC,C;;;;;;;;;;;ACxBpqlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,qGAAS,CAAC,mCAAC,gBAAgB,aAAa,0BAA0B,sCAAsC,SAAS,EAAE,kBAAkB,wBAAwB;AAAA,oGAAC,C;;;;;;;;;;;ACxB1L;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mCAAC,cAAc,sCAAsC,SAAS,EAAE,iBAAiB,aAAa,cAAc,mCAAmC,4CAA4C,GAAG,GAAG,UAAU;AAAA,oGAAC,C;;;;;;;;;;;ACxBxO;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,2FAAsB,CAAC,+FAAwB,CAAC,2FAAsB,CAAC,qIAA2C,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,wHAA6B,CAAC,2HAAoB,CAAC,mCAAC,8BAA8B,sCAAsC,kBAAkB,cAAc,4IAA4I,mCAAmC,6BAA6B,uDAAuD,qKAAqK,gDAAgD,eAAe,iBAAiB,+BAA+B,qDAAqD,eAAe,wBAAwB,+BAA+B,mDAAmD,eAAe,yBAAyB,+BAA+B,kCAAkC,mDAAmD,sCAAsC,gKAAgK,6CAA6C,WAAW,6EAA6E,wFAAwF,WAAW,oBAAoB,2BAA2B,aAAa,sBAAsB,iCAAiC,WAAW,KAAK,gFAAgF,0NAA0N,sCAAsC,WAAW,KAAK,WAAW,MAAM,8HAA8H,yCAAyC,WAAW,yBAAyB,wBAAwB,gJAAgJ,WAAW,KAAK,WAAW,aAAa,qDAAqD,6BAA6B,wPAAwP,4BAA4B,iKAAiK,SAAS,sFAAsF,0HAA0H,kBAAkB,oCAAoC,wUAAwU,sCAAsC,6BAA6B,yBAAyB,KAAK,oCAAoC,oCAAoC,iXAAiX,EAAE,yBAAyB,GAAG;AAAA,oGAAC,C;;;;;;;;;;;ACxBjrI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mCAAC,cAAc,kBAAkB,cAAc,mCAAmC,iBAAiB,WAAW,KAAK,WAAW,oBAAoB,SAAS,yCAAyC,YAAY,WAAW,KAAK,WAAW,+BAA+B,6BAA6B,4BAA4B,yEAAyE,EAAE,oCAAoC,wBAAwB,iBAAiB,WAAW,KAAK,WAAW,4BAA4B,kBAAkB,yDAAyD,SAAS,8BAA8B,wBAAwB,SAAS,qCAAqC,YAAY,WAAW,KAAK,oBAAoB,2EAA2E,SAAS,iCAAiC,qBAAqB,WAAW,KAAK,WAAW,oCAAoC,6BAA6B,iCAAiC,iBAAiB,WAAW,KAAK,WAAW,wBAAwB,SAAS,GAAG,GAAG;AAAA,oGAAC,C;;;;;;;;;;;ACxBjnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mIAA0C,CAAC,yGAA6B,CAAC,mGAA0B,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,qGAAS,CAAC,uGAAU,CAAC,mCAAC,4BAA4B,mBAAmB,kBAAkB,yBAAyB,wGAAwG,2SAA2S,qDAAqD,+BAA+B,kCAAkC,gDAAgD,EAAE,6BAA6B,2CAA2C,gCAAgC,sFAAsF,gCAAgC,iBAAiB,iCAAiC,kBAAkB,uCAAuC,wBAAwB,qCAAqC,8CAA8C,YAAY,EAAE,mCAAmC,mCAAmC,kCAAkC,yCAAyC,mCAAmC,2IAA2I,mCAAmC,6BAA6B,sCAAsC,iKAAiK,iDAAiD,uCAAuC,kCAAkC,qBAAqB,yBAAyB,yDAAyD,oCAAoC,gFAAgF,mDAAmD,+EAA+E,oDAAoD,qDAAqD,0DAA0D,yDAAyD,2CAA2C,OAAO,iBAAiB,kCAAkC,qBAAqB,sCAAsC,mCAAmC,IAAI,kCAAkC,yBAAyB,wDAAwD,sBAAsB,uBAAuB,uBAAuB,sBAAsB,gDAAgD,0CAA0C,qBAAqB,sCAAsC,WAAW,sBAAsB,4FAA4F,WAAW,mCAAmC,kCAAkC,iBAAiB,IAAI,kGAAkG,+CAA+C,kBAAkB,wBAAwB,IAAI;AAAA,oGAAC,C;;;;;;;;;;;ACxBtgH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,qGAAS,CAAC,mCAAC,gBAAgB,sCAAsC,SAAS,EAAE,iBAAiB,cAAc,oIAAoI,sCAAsC,SAAS,kDAAkD,eAAe,yBAAyB,+BAA+B,yCAAyC,oBAAoB,0CAA0C,uBAAuB,8CAA8C,eAAe,qBAAqB,iBAAiB,oEAAoE,+BAA+B,sDAAsD,eAAe,4BAA4B,iBAAiB,kFAAkF,+BAA+B,sDAAsD,eAAe,4BAA4B,iBAAiB,kFAAkF,+BAA+B,0CAA0C,SAAS,kCAAkC,qBAAqB,qCAAqC,uDAAuD,wBAAwB,GAAG,aAAa;AAAA,oGAAC,C;;;;;;;;;;;ACxB56C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mIAA0C,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,gHAAyB,CAAC,uHAAkB,CAAC,uHAAkB,CAAC,uHAAkB,CAAC,qGAAS,CAAC,mGAAQ,CAAC,mCAAC,oCAAoC,4BAA4B,cAAc,iBAAiB,miBAAmiB,4DAA4D,eAAe,6BAA6B,+BAA+B,kDAAkD,eAAe,wBAAwB,+BAA+B,4DAA4D,eAAe,kCAAkC,iBAAiB,kHAAkH,+BAA+B,iCAAiC,oCAAoC,WAAW,KAAK,WAAW,kBAAkB,iDAAiD,0DAA0D,+EAA+E,mNAAmN,YAAY,WAAW,KAAK,SAAS,mFAAmF,mCAAmC,kDAAkD,eAAe,yBAAyB,iBAAiB,uGAAuG,+BAA+B,+CAA+C,oCAAoC,6CAA6C,iBAAiB,0BAA0B,8DAA8D,SAAS,2CAA2C,8HAA8H,+CAA+C,mEAAmE,gCAAgC,MAAM,4GAA4G,+BAA+B,kJAAkJ,wCAAwC,2CAA2C,gGAAgG,+BAA+B,iLAAiL,4CAA4C,KAAK,+BAA+B,wBAAwB,oDAAoD,kGAAkG,+CAA+C,mCAAmC,+DAA+D,oCAAoC,WAAW,KAAK,2FAA2F,wBAAwB,6BAA6B,QAAQ,iCAAiC,gDAAgD,oCAAoC,iEAAiE,oCAAoC,WAAW,KAAK,2FAA2F,yBAAyB,8BAA8B,QAAQ,kCAAkC,sCAAsC,iBAAiB,0BAA0B,KAAK,0BAA0B,oDAAoD,SAAS,oDAAoD,sHAAsH,2JAA2J,qCAAqC,yEAAyE,kCAAkC,oCAAoC,kDAAkD,iDAAiD,4BAA4B,0CAA0C,+DAA+D,oCAAoC,WAAW,KAAK,iFAAiF,6CAA6C,wKAAwK,4CAA4C,iEAAiE,oCAAoC,WAAW,KAAK,mFAAmF,6CAA6C,wKAAwK,sDAAsD,yEAAyE,2CAA2C,mDAAmD,8BAA8B,6FAA6F,gDAAgD,8DAA8D,WAAW,KAAK,WAAW,wCAAwC,wDAAwD,0CAA0C,oCAAoC,WAAW,KAAK,mFAAmF,wBAAwB,+CAA+C,sDAAsD,kGAAkG,kEAAkE,8BAA8B,qDAAqD,iGAAiG,+BAA+B,kBAAkB,oFAAoF,2GAA2G,2DAA2D,0GAA0G,2DAA2D,0GAA0G,kDAAkD,uCAAuC,oCAAoC,qBAAqB,kCAAkC,2FAA2F,kCAAkC,2FAA2F,mCAAmC,6FAA6F,qCAAqC,iGAAiG,gDAAgD,mDAAmD,qDAAqD,YAAY,+BAA+B,KAAK,sEAAsE,mMAAmM,2LAA2L,8FAA8F,+BAA+B,KAAK,gHAAgH,wCAAwC,wEAAwE,4HAA4H,yDAAyD,sEAAsE,kBAAkB,iEAAiE,4EAA4E,wDAAwD,YAAY,IAAI,wFAAwF,YAAY,IAAI,KAAK,8GAA8G,YAAY,IAAI,yFAAyF,kDAAkD,kFAAkF,oEAAoE,EAAE,4CAA4C,sBAAsB,OAAO,cAAc,wCAAwC,2CAA2C,eAAe,WAAW,OAAO,wBAAwB,mCAAmC,8BAA8B,kCAAkC,+BAA+B,yBAAyB,gBAAgB,aAAa,2KAA2K,sCAAsC,6FAA6F,GAAG,iBAAiB,aAAa,yBAAyB,kDAAkD,0CAA0C,qMAAqM,kCAAkC,mBAAmB,oCAAoC,qBAAqB,GAAG,IAAI,SAAS;AAAA,oGAAC,C;;;;;;;;;;;ACxB5wX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,yGAA6B,CAAC,2GAA8B,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,wHAA6B,CAAC,mGAAQ,CAAC,mCAAC,0BAA0B,kBAAkB,iFAAiF,kBAAkB,iFAAiF,kBAAkB,oDAAoD,kBAAkB,+DAA+D,kBAAkB,yBAAyB,IAAI,YAAY,mBAAmB,EAAE,YAAY,IAAI,KAAK,WAAW,8CAA8C,qBAAqB,6BAA6B,YAAY,YAAY,IAAI,4BAA4B,gBAAgB,yBAAyB,IAAI,KAAK,kBAAkB,kBAAkB,SAAS,kBAAkB,yCAAyC,iBAAiB,oBAAoB,qaAAqa,mDAAmD,eAAe,yBAAyB,+BAA+B,4CAA4C,eAAe,6BAA6B,+BAA+B,4CAA4C,eAAe,uBAAuB,+BAA+B,6DAA6D,eAAe,mCAAmC,+BAA+B,oDAAoD,eAAe,0BAA0B,+BAA+B,mDAAmD,eAAe,yBAAyB,+BAA+B,iCAAiC,qGAAqG,+BAA+B,oCAAoC,0DAA0D,0BAA0B,IAAI,KAAK,WAAW,uFAAuF,aAAa,kCAAkC,oCAAoC,4BAA4B,0BAA0B,WAAW,KAAK,oDAAoD,yGAAyG,4BAA4B,kCAAkC,sFAAsF,6CAA6C,6BAA6B,yCAAyC,oCAAoC,aAAa,uCAAuC,+BAA+B,sDAAsD,+BAA+B,KAAK,EAAE,iEAAiE,6BAA6B,yCAAyC,gDAAgD,aAAa,uCAAuC,2CAA2C,sDAAsD,2CAA2C,KAAK,EAAE,iCAAiC,yCAAyC,aAAa,4EAA4E,qCAAqC,iDAAiD,mCAAmC,6CAA6C,2DAA2D,2DAA2D,kEAAkE,qCAAqC,yCAAyC,uCAAuC,EAAE,2CAA2C,qGAAqG,uDAAuD,0HAA0H,6CAA6C,gDAAgD,mGAAmG,yDAAyD,gDAAgD,6GAA6G,wCAAwC,oCAAoC,aAAa,EAAE,2CAA2C,yBAAyB,KAAK,yBAAyB,0CAA0C,cAAc,wDAAwD,kBAAkB,gCAAgC,aAAa,aAAa,EAAE,2CAA2C,KAAK,KAAK,gBAAgB,iCAAiC,yBAAyB,2CAA2C,cAAc,8CAA8C,yDAAyD,iBAAiB,sFAAsF,kBAAkB,2BAA2B,sBAAsB,4DAA4D,0BAA0B,0CAA0C,6EAA6E,aAAa,uCAAuC,KAAK,sDAAsD,KAAK,KAAK,QAAQ,4DAA4D,2BAA2B,qBAAqB,gGAAgG,cAAc,sDAAsD,iBAAiB,+GAA+G,gCAAgC,qDAAqD,0BAA0B,0CAA0C,+EAA+E,+EAA+E,aAAa,uCAAuC,KAAK,sDAAsD,KAAK,KAAK,MAAM,+CAA+C,qCAAqC,qCAAqC,UAAU,kCAAkC,yBAAyB,wCAAwC,0DAA0D,KAAK,MAAM,8BAA8B,4BAA4B,sCAAsC,mCAAmC,oDAAoD,YAAY,oBAAoB,8BAA8B,SAAS,kCAAkC,mGAAmG,UAAU,OAAO,gCAAgC,qMAAqM,gCAAgC,uBAAuB,sBAAsB,YAAY,WAAW,KAAK,0BAA0B,qCAAqC,iCAAiC,WAAW,UAAU,wDAAwD,wCAAwC,IAAI,2KAA2K,KAAK,kBAAkB,4IAA4I,wCAAwC,WAAW,mDAAmD,0DAA0D,SAAS,mCAAmC,iFAAiF,6IAA6I,eAAe,sDAAsD,QAAQ,gDAAgD,gCAAgC,2EAA2E,uDAAuD,mFAAmF,IAAI,KAAK,8JAA8J,sCAAsC,YAAY,IAAI,KAAK,wCAAwC,iCAAiC,mBAAmB,eAAe,gCAAgC,4CAA4C,sBAAsB,oMAAoM,gCAAgC,MAAM,EAAE,8BAA8B,gBAAgB,0CAA0C,yCAAyC,sEAAsE,kDAAkD,oBAAoB,cAAc,KAAK,WAAW,oBAAoB,SAAS,uCAAuC,gDAAgD,8BAA8B,wCAAwC,wCAAwC,yCAAyC,yDAAyD,uGAAuG,qDAAqD,4HAA4H,0DAA0D,UAAU,gBAAgB,iDAAiD,KAAK,yDAAyD,YAAY,IAAI,KAAK,gBAAgB,+EAA+E,gFAAgF,SAAS,GAAG,gBAAgB,kBAAkB,wEAAwE,oCAAoC,yDAAyD,wCAAwC,sLAAsL,iCAAiC,4BAA4B,6FAA6F,WAAW,qHAAqH,uCAAuC,wBAAwB,EAAE,iDAAiD,6CAA6C,0CAA0C,0BAA0B,8BAA8B,+BAA+B,iCAAiC,uCAAuC,gCAAgC,qCAAqC,yCAAyC,IAAI,yBAAyB,SAAS,8BAA8B,OAAO,oEAAoE,UAAU,mBAAmB,UAAU,GAAG,sBAAsB,yBAAyB,uBAAuB,mBAAmB,wBAAwB,gBAAgB,oBAAoB,0lBAA0lB,mCAAmC,IAAI,mCAAmC,IAAI,mCAAmC,IAAI,mCAAmC,KAAK,YAAY,EAAE,YAAY,EAAE,YAAY,kBAAkB,SAAS;AAAA,oGAAC,C;;;;;;;;;;;ACxB//a;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,uGAA4B,CAAC,mCAAC,gBAAgB,sCAAsC,SAAS,EAAE,iBAAiB,cAAc,kGAAkG,wCAAwC,+CAA+C,gCAAgC,aAAa,MAAM,0BAA0B,8CAA8C,mBAAmB,0BAA0B,6BAA6B,KAAK,mBAAmB,0BAA0B,4DAA4D,SAAS,gCAAgC,iBAAiB,yDAAyD,iCAAiC,YAAY,IAAI,qBAAqB,4CAA4C,eAAe,mBAAmB,+BAA+B,4CAA4C,eAAe,kBAAkB,+BAA+B,IAAI,GAAG,0BAA0B;AAAA,oGAAC,C;;;;;;;;;;;ACxB1jC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+FAAwB,CAAC,qIAA2C,CAAC,wFAAgB,CAAC,mIAAwB,CAAC,mGAAQ,CAAC,wJAAqC,CAAC,mCAAC,0BAA0B,cAAc,mDAAmD,gBAAgB,iCAAiC,mCAAmC,EAAE,6FAA6F,yGAAyG,QAAQ,EAAE,WAAW,+DAA+D,EAAE,EAAE,WAAW,+JAA+J,qBAAqB,oBAAoB,2HAA2H,2BAA2B,2BAA2B,wBAAwB,yBAAyB,wBAAwB,2BAA2B,2LAA2L,8FAA8F,0CAA0C,6HAA6H,8YAA8Y,mJAAmJ,0CAA0C,KAAK,mBAAmB,2DAA2D,2CAA2C,wDAAwD,KAAK,qDAAqD,2BAA2B,mBAAmB,6BAA6B,KAAK,OAAO,QAAQ,wBAAwB,2BAA2B,0BAA0B,uNAAuN,yDAAyD,+EAA+E,wBAAwB,oFAAoF,4CAA4C,qBAAqB,sCAAsC,SAAS,EAAE,iBAAiB,cAAc,6DAA6D,+EAA+E,eAAe,uDAAuD,8CAA8C,+DAA+D,gDAAgD,+BAA+B,IAAI,UAAU,oBAAoB;AAAA,oGAAC,C;;;;;;;;;;;ACxBtiH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mCAAC,cAAc,gBAAgB,uCAAuC,kBAAkB,YAAY,IAAI,qCAAqC,kBAAkB,YAAY,IAAI,yBAAyB,oBAAoB,YAAY,IAAI,2CAA2C,sCAAsC,SAAS,0FAA0F,gDAAgD;AAAA,oGAAC,C;;;;;;;;;;;ACxB7e;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,yJAAmC,CAAC,+IAA8B,CAAC,kHAA6B,CAAC,wGAAwB,CAAC,4HAAkC,CAAC,mCAAC,wBAAwB,kBAAkB,mDAAmD,WAAW,UAAU,iFAAiF,MAAM,8DAA8D,MAAM,yEAAyE,MAAM,8DAA8D,kBAAkB,WAAW,EAAE,mCAAmC,EAAE,gBAAgB,kCAAkC,8EAA8E,EAAE,kBAAkB,kBAAkB,oCAAoC,WAAW,qEAAqE,gBAAgB,8EAA8E,IAAI,sCAAsC,SAAS,oBAAoB,QAAQ,8CAA8C;AAAA,oGAAC,C;;;;;;;;;;;ACxB9oC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+FAAwB,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,qIAA2C,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,wHAA6B,CAAC,kJAA0C,CAAC,sIAAoC,CAAC,2GAAY,CAAC,mCAAC,8CAA8C,cAAc,uBAAuB,4DAA4D,gBAAgB,wJAAwJ,gBAAgB,2BAA2B,aAAa,2BAA2B,uHAAuH,uCAAuC,mBAAmB,EAAE,qBAAqB,gBAAgB,8MAA8M,gBAAgB,0BAA0B,4CAA4C,cAAc,kCAAkC,sCAAsC,SAAS,2BAA2B,iBAAiB,aAAa,6JAA6J,SAAS,GAAG,uBAAuB,iBAAiB,aAAa,iEAAiE,sBAAsB,iKAAiK,sBAAsB,0EAA0E,sBAAsB,+CAA+C,uDAAuD,mKAAmK,gDAAgD,eAAe,uBAAuB,+BAA+B,+CAA+C,eAAe,oCAAoC,+BAA+B,wDAAwD,eAAe,6CAA6C,+BAA+B,uDAAuD,eAAe,4CAA4C,+BAA+B,iDAAiD,eAAe,sCAAsC,+BAA+B,6CAA6C,+BAA+B,2CAA2C,mDAAmD,6BAA6B,+DAA+D,0DAA0D,qFAAqF,GAAG,GAAG,yBAAyB,iBAAiB,kBAAkB,+DAA+D,yCAAyC,cAAc,4CAA4C,eAAe,kGAAkG,+BAA+B,IAAI,gBAAgB,aAAa,gEAAgE,oCAAoC,oFAAoF,GAAG,GAAG,uBAAuB,iBAAiB,cAAc,4GAA4G,gDAAgD,eAAe,iBAAiB,+BAA+B,4DAA4D,eAAe,uBAAuB,+BAA+B,6DAA6D,eAAe,wFAAwF,+BAA+B,+CAA+C,qHAAqH,8CAA8C,gIAAgI,+CAA+C,oBAAoB,mBAAmB,uOAAuO,kCAAkC,qZAAqZ,8BAA8B,6PAA6P,iCAAiC,4BAA4B,yBAAyB,sDAAsD,wCAAwC,4CAA4C,kFAAkF,kDAAkD,YAAY,mCAAmC,4BAA4B,yBAAyB,sDAAsD,wCAAwC,0CAA0C,mFAAmF,YAAY,GAAG,GAAG,sBAAsB,iBAAiB,cAAc,gDAAgD,iDAAiD,iHAAiH,8FAA8F,qCAAqC,2MAA2M,8BAA8B,yCAAyC,uCAAuC,GAAG,GAAG,2CAA2C,iBAAiB,cAAc,wHAAwH,uEAAuE,wDAAwD,gBAAgB,yEAAyE,+BAA+B,4CAA4C,qFAAqF,8FAA8F,qCAAqC,mJAAmJ,8BAA8B,yCAAyC,uCAAuC,oCAAoC,+DAA+D,4HAA4H,oCAAoC,sEAAsE,sNAAsN,2JAA2J,yeAAye,GAAG,GAAG,uCAAuC,iBAAiB,cAAc,uEAAuE,iDAAiD,kKAAkK,qBAAqB,mCAAmC,8JAA8J,yCAAyC,2DAA2D,uCAAuC,2DAA2D,uCAAuC,qCAAqC,2DAA2D,uCAAuC,2DAA2D,gDAAgD,iDAAiD,+DAA+D,8JAA8J,GAAG,GAAG,4CAA4C,iBAAiB,cAAc,+DAA+D,SAAS,GAAG,8DAA8D,wFAAwF;AAAA,oGAAC,C;;;;;;;;;;;ACxBjnW;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,uGAA4B,CAAC,kHAA0B,CAAC,mCAAC,kBAAkB,cAAc,qCAAqC,cAAc,yHAAyH,gBAAgB,oBAAoB,KAAK,mHAAmH,MAAM,oHAAoH,8DAA8D,EAAE,cAAc,uBAAuB,oBAAoB,kBAAkB,6CAA6C,kHAAkH,gBAAgB,mEAAmE,gBAAgB,qDAAqD,kBAAkB,sBAAsB,mDAAmD,6EAA6E,kBAAkB,eAAe,iDAAiD,oBAAoB,sHAAsH,kBAAkB,sBAAsB,mDAAmD,iCAAiC,oBAAoB,qBAAqB,aAAa,OAAO,QAAQ,kBAAkB,oDAAoD,gBAAgB,6IAA6I,sCAAsC,SAAS,uNAAuN,iBAAiB,oBAAoB,icAAic,kEAAkE,eAAe,kEAAkE,+BAA+B,iCAAiC,+JAA+J,yCAAyC,sGAAsG,+CAA+C,6TAA6T,qGAAqG,sEAAsE,yKAAyK,uEAAuE,kBAAkB,qMAAqM,gIAAgI,4DAA4D,kCAAkC,6DAA6D,2JAA2J,uEAAuE,GAAG,GAAG,sBAAsB,oBAAoB,KAAK,sEAAsE,MAAM,uEAAuE,qDAAqD,OAAO,oBAAoB,KAAK,sBAAsB,MAAM,wBAAwB,kBAAkB,mBAAmB,OAAO,gDAAgD,IAAI,kCAAkC;AAAA,oGAAC,C;;;;;;;;;;;ACxB77J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mIAA0C,CAAC,iIAAyC,CAAC,+FAAwB,CAAC,qIAA2C,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,8IAAwC,CAAC,gLAAiD,CAAC,kIAA0B,CAAC,gHAAiB,CAAC,wGAAa,CAAC,qJAA8B,CAAC,2IAAyB,CAAC,uJAA+B,CAAC,iJAA4B,CAAC,wJAAqC,CAAC,gHAA4B,CAAC,gHAA4B,CAAC,mCAAC,kDAAkD,gBAAgB,iBAAiB,cAAc,wFAAwF,6BAA6B,gBAAgB,2BAA2B,4PAA4P,sDAAsD,sCAAsC,kCAAkC,kBAAkB,kEAAkE,uLAAuL,wDAAwD,4CAA4C,kBAAkB,0UAA0U,+BAA+B,sCAAsC,mBAAmB,4CAA4C,wkEAAwkE,+CAA+C,sCAAsC,eAAe,gCAAgC,WAAW,sBAAsB,qCAAqC,MAAM,+BAA+B,QAAQ,sCAAsC,mFAAmF,yJAAyJ,4HAA4H,qHAAqH,uCAAuC,OAAO,uDAAuD,0CAA0C,qEAAqE,2CAA2C,gEAAgE,qCAAqC,gKAAgK,0IAA0I,uCAAuC,oBAAoB,4UAA4U,GAAG,2BAA2B,cAAc,4CAA4C,4EAA4E,eAAe,gMAAgM,qDAAqD,oCAAoC,wCAAwC,mCAAmC,SAAS,yFAAyF,EAAE,mCAAmC,qBAAqB,mCAAmC,8BAA8B,oCAAoC,YAAY,yCAAyC,mUAAmU,4CAA4C,wFAAwF,sCAAsC,2BAA2B,gCAAgC,kBAAkB,2BAA2B,6BAA6B,+MAA+M,iCAAiC,kCAAkC,iKAAiK,2NAA2N,sCAAsC,6BAA6B,4GAA4G,oCAAoC,SAAS,GAAG,kBAAkB,cAAc,wBAAwB,6FAA6F,gDAAgD,qBAAqB,mCAAmC,8BAA8B,oCAAoC,YAAY,uCAAuC,kBAAkB,wCAAwC,wBAAwB,SAAS,yFAAyF,EAAE,mCAAmC,4DAA4D,yCAAyC,wRAAwR,gCAAgC,2CAA2C,+MAA+M,iCAAiC,kCAAkC,iKAAiK,kMAAkM,sCAAsC,qEAAqE,oCAAoC,SAAS,GAAG,kBAAkB,cAAc,4BAA4B,sDAAsD,wRAAwR,GAAG,kBAAkB,cAAc,4CAA4C,qPAAqP,gDAAgD,qBAAqB,mCAAmC,8BAA8B,oCAAoC,YAAY,uCAAuC,kBAAkB,wCAAwC,wBAAwB,SAAS,yFAAyF,EAAE,mCAAmC,4DAA4D,yCAAyC,wRAAwR,gCAAgC,2CAA2C,+MAA+M,iCAAiC,kCAAkC,iKAAiK,sPAAsP,sCAAsC,6BAA6B,4GAA4G,oCAAoC,SAAS,GAAG,kBAAkB,cAAc,wBAAwB,6FAA6F,gDAAgD,qBAAqB,mCAAmC,8BAA8B,oCAAoC,YAAY,uCAAuC,kBAAkB,wCAAwC,wBAAwB,SAAS,yFAAyF,EAAE,mCAAmC,4DAA4D,yCAAyC,wRAAwR,gCAAgC,2CAA2C,+MAA+M,iCAAiC,kCAAkC,iKAAiK,kMAAkM,sCAAsC,6BAA6B,4GAA4G,oCAAoC,SAAS,GAAG,IAAI,aAAa,kBAAkB,SAAS,GAAG,OAAO,mqCAAmqC,cAAc,gBAAgB,sDAAsD,wCAAwC,+CAA+C,sCAAsC,iCAAiC,qCAAqC,mGAAmG,GAAG,iBAAiB,8DAA8D,eAAe,cAAc,yCAAyC,6JAA6J,SAAS;AAAA,oGAAC,C;;;;;;;;;;;ACxBrrgB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mIAA0C,CAAC,iIAAyC,CAAC,iGAAyB,CAAC,uGAA4B,CAAC,+FAAwB,CAAC,2GAA8B,CAAC,+HAAwC,CAAC,+HAAwC,CAAC,qIAA2C,CAAC,wHAA6B,CAAC,8IAAwC,CAAC,4HAAuB,CAAC,kIAA0B,CAAC,oHAAmB,CAAC,gHAAiB,CAAC,wGAAa,CAAC,iKAAoC,CAAC,2IAAyB,CAAC,iJAA4B,CAAC,8IAAgC,CAAC,8IAAgC,CAAC,mCAAC,wDAAwD,sBAAsB,YAAY,IAAI,kBAAkB,SAAS,2FAA2F,gBAAgB,2BAA2B,6MAA6M,8CAA8C,4CAA4C,6BAA6B,eAAe,gDAAgD,UAAU,iDAAiD,UAAU,yBAAyB,gCAAgC,UAAU,yDAAyD,UAAU,oBAAoB,qDAAqD,qDAAqD,sCAAsC,mBAAmB,0CAA0C,mBAAmB,4CAA4C,8BAA8B,2CAA2C,42BAA42B,mDAAmD,yHAAyH,yDAAyD,wFAAwF,mGAAmG,yFAAyF,8BAA8B,uEAAuE,gIAAgI,qGAAqG,mBAAmB,uBAAuB,8CAA8C,oIAAoI,YAAY,IAAI,gCAAgC,wJAAwJ,4EAA4E,IAAI,MAAM,oDAAoD,qBAAqB,kTAAkT,2DAA2D,uBAAuB,uFAAuF,0DAA0D,wBAAwB,uBAAuB,uFAAuF,0DAA0D,gCAAgC,cAAc,iEAAiE,8CAA8C,sCAAsC,UAAU,uBAAuB,6GAA6G,uBAAuB,uBAAuB,+CAA+C,SAAS,mDAAmD,wFAAwF,kBAAkB,uDAAuD,gDAAgD,qCAAqC,yQAAyQ,oXAAoX,2CAA2C,sCAAsC,0CAA0C,wDAAwD,uCAAuC,OAAO,sEAAsE,uCAAuC,iJAAiJ,GAAG,2BAA2B,cAAc,2BAA2B,gDAAgD,sDAAsD,+IAA+I,mCAAmC,oBAAoB,yDAAyD,aAAa,mCAAmC,8BAA8B,oCAAoC,YAAY,gCAAgC,yIAAyI,iCAAiC,kCAAkC,2BAA2B,sCAAsC,+BAA+B,oCAAoC,SAAS,GAAG,6BAA6B,cAAc,uBAAuB,IAAI,SAAS,SAAS,gBAAgB,kBAAkB,cAAc,uBAAuB,IAAI,SAAS,SAAS,gBAAgB,SAAS,8NAA8N,yBAAyB,gBAAgB,oIAAoI,qCAAqC,MAAM,uCAAuC,MAAM,sCAAsC,yBAAyB,sEAAsE,MAAM,wCAAwC,wCAAwC,+CAA+C,sCAAsC,uJAAuJ,8IAA8I,IAAI,KAAK,WAAW,SAAS,KAAK,oCAAoC,YAAY,qCAAqC,wJAAwJ,4FAA4F,WAAW,kIAAkI,YAAY,6NAA6N,oBAAoB,8NAA8N,QAAQ,iHAAiH,sIAAsI,0SAA0S,iEAAiE,2BAA2B,MAAM,iBAAiB,gEAAgE,KAAK,6EAA6E,YAAY,0BAA0B,KAAK,kCAAkC,+BAA+B,iEAAiE,8BAA8B,IAAI,KAAK,gBAAgB,iGAAiG,8CAA8C,IAAI,KAAK,kBAAkB,+BAA+B,iEAAiE,MAAM,mBAAmB,KAAK,+BAA+B,YAAY,0BAA0B,KAAK,oCAAoC,gCAAgC,gCAAgC,GAAG,+nBAA+nB,SAAS;AAAA,oGAAC,C;;;;;;;;;;;ACxBv1X;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,qIAA2C,CAAC,qIAA2C,CAAC,mCAAC,kBAAkB,MAAM,mBAAmB,WAAW,ogBAAogB,SAAS,KAAK;AAAA,oGAAC,C;;;;;;;;;;;ACxB9rB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mIAA0C,CAAC,oHAAmB,CAAC,6HAAkB,CAAC,2IAAyB,CAAC,uJAA+B,CAAC,mCAAC,wBAAwB,sCAAsC,SAAS,EAAE,kBAAkB,cAAc,2BAA2B,kFAAkF,sDAAsD,kFAAkF,uCAAuC,uXAAuX,mCAAmC,QAAQ,qEAAqE,mCAAmC,8BAA8B,oCAAoC,YAAY,uCAAuC,+HAA+H,0CAA0C,0VAA0V,wCAAwC,2DAA2D,4CAA4C,wFAAwF,sCAAsC,2BAA2B,yCAAyC,sHAAsH,gCAAgC,6RAA6R,iCAAiC,kCAAkC,6BAA6B,uQAAuQ,sCAAsC,qEAAqE,oCAAoC,SAAS,GAAG,eAAe,oBAAoB,kBAAkB,aAAa,+CAA+C,sDAAsD,kFAAkF,8BAA8B,uJAAuJ,kCAAkC,gHAAgH,mCAAmC,eAAe,GAAG,IAAI,0BAA0B,kBAAkB,aAAa,+CAA+C,sDAAsD,kFAAkF,8BAA8B,6LAA6L,kCAAkC,gHAAgH,mCAAmC,cAAc,GAAG,IAAI,0BAA0B;AAAA,oGAAC,C;;;;;;;;;;;ACxB/tI;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mIAA0C,CAAC,qIAA2C,CAAC,iIAAyC,CAAC,8KAAgD,CAAC,gKAAyC,CAAC,0LAAsD,CAAC,8JAAwC,CAAC,0IAA8B,CAAC,wGAAwB,CAAC,gHAA4B,CAAC,mCAAC,kCAAkC,sCAAsC,SAAS,EAAE,kBAAkB,aAAa,+CAA+C,wDAAwD,qDAAqD,0LAA0L,EAAE,yFAAyF,2CAA2C,yBAAyB,yCAAyC,WAAW,SAAS,yFAAyF,uBAAuB,2EAA2E,SAAS,yFAAyF,EAAE,2CAA2C,kCAAkC,6EAA6E,oBAAoB,mBAAmB,kBAAkB,aAAa,8CAA8C,oFAAoF,8BAA8B,QAAQ,8OAA8O,iCAAiC,gCAAgC;AAAA,oGAAC,C;;;;;;;;;;;ACxBziE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,iJAA2C,CAAC,2GAAgB,CAAC,4IAAqB,CAAC,mCAAC,oBAAoB,sCAAsC,SAAS,6RAA6R,iBAAiB,cAAc,0BAA0B,wCAAwC,+CAA+C,sCAAsC,wDAAwD,qCAAqC,mGAAmG,GAAG,GAAG,wBAAwB;AAAA,oGAAC,C;;;;;;;;;;;ACxBr2B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,oIAA4C,CAAC,0GAA+B,CAAC,kGAA2B,CAAC,kIAA2C,CAAC,wIAA8C,CAAC,wIAA8C,CAAC,kIAA2C,CAAC,wIAA8C,CAAC,kIAA2C,CAAC,0IAA+C,CAAC,+HAA0B,CAAC,2IAAgC,CAAC,uJAAsC,CAAC,2GAAgB,CAAC,mCAAC,0CAA0C,0BAA0B,+CAA+C,uCAAuC,2HAA2H,KAAK,yEAAyE,2BAA2B,wBAAwB,eAAe,+FAA+F,yFAAyF,SAAS,sBAAsB,eAAe,YAAY,IAAI,qCAAqC,QAAQ,sBAAsB,0BAA0B,gIAAgI,gHAAgH,IAAI,iCAAiC,uBAAuB,8BAA8B,sDAAsD,wBAAwB,2BAA2B,8BAA8B,UAAU,iCAAiC,mHAAmH,IAAI,KAAK,0CAA0C,aAAa,6BAA6B,aAAa,6BAA6B,yJAAyJ,oFAAoF,sBAAsB,qCAAqC,QAAQ,uBAAuB,4BAA4B,uDAAuD,QAAQ,0BAA0B,+BAA+B,0BAA0B,UAAU,4BAA4B,8BAA8B,mHAAmH,IAAI,KAAK,uDAAuD,aAAa,6BAA6B,WAAW,6BAA6B,yJAAyJ,oFAAoF,sBAAsB,qCAAqC,QAAQ,uBAAuB,4BAA4B,uDAAuD,QAAQ,0BAA0B,+BAA+B,0BAA0B,UAAU,4BAA4B,0BAA0B,2FAA2F,kBAAkB,+DAA+D,oBAAoB,sBAAsB,sBAAsB,wHAAwH,4CAA4C,4CAA4C,8CAA8C,oFAAoF,kBAAkB,qDAAqD,oBAAoB,+DAA+D,oBAAoB,0FAA0F,gBAAgB,0CAA0C,oBAAoB,wBAAwB,sBAAsB,uCAAuC,kBAAkB,8CAA8C,oFAAoF,kBAAkB,oCAAoC,gBAAgB,yBAAyB,kBAAkB,2FAA2F,kBAAkB,wDAAwD,gBAAgB,0GAA0G,kBAAkB,gKAAgK,kBAAkB,MAAM,kDAAkD,mGAAmG,kBAAkB,qJAAqJ,oBAAoB,kKAAkK,kBAAkB,uDAAuD,6CAA6C,uDAAuD,gBAAgB,gBAAgB,gBAAgB,WAAW,iDAAiD,SAAS,gBAAgB,SAAS,gBAAgB,WAAW,0DAA0D,SAAS,sBAAsB,4BAA4B,oJAAoJ,aAAa,MAAM,+HAA+H,WAAW,YAAY,cAAc,SAAS,6BAA6B,iBAAiB,IAAI,gBAAgB,UAAU,SAAS,sEAAsE,sCAAsC,SAAS,EAAE,8DAA8D,8BAA8B,gEAAgE,uBAAuB,8CAA8C,qSAAqS,0BAA0B,4BAA4B,gDAAgD,yBAAyB,0BAA0B,2IAA2I,aAAa,gBAAgB,iBAAiB,IAAI,gBAAgB,IAAI,KAAK,SAAS,6CAA6C,OAAO,4DAA4D,EAAE,cAAc,sDAAsD,EAAE,OAAO,8BAA8B,eAAe,iBAAiB,gBAAgB,2BAA2B,cAAc,kBAAkB,cAAc,uDAAuD,mCAAmC,6CAA6C,0DAA0D,sCAAsC,eAAe,gEAAgE,gCAAgC,yDAAyD,qCAAqC,wDAAwD,qCAAqC;AAAA,oGAAC,C;;;;;;;;;;;ACxBtzQ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mIAAoC,CAAC,2GAAgB,CAAC,mCAAC,kBAAkB,sBAAsB,qDAAqD,mCAAmC,IAAI,KAAK,aAAa,6BAA6B,iBAAiB,IAAI,yBAAyB,IAAI,iCAAiC,sBAAsB,qDAAqD,mCAAmC,IAAI,KAAK,aAAa,2CAA2C,iBAAiB,IAAI,yBAAyB,IAAI,+CAA+C,sBAAsB,qDAAqD,mCAAmC,IAAI,KAAK,aAAa,yDAAyD,iBAAiB,IAAI,yBAAyB,IAAI,6DAA6D,oBAAoB,qDAAqD,KAAK,YAAY,IAAI,KAAK,qBAAqB,IAAI,kBAAkB,MAAM,oBAAoB,qDAAqD,KAAK,YAAY,IAAI,KAAK,sBAAsB,KAAK,kBAAkB,MAAM,wBAAwB,MAAM,yDAAyD,mCAAmC,IAAI,KAAK,sCAAsC,0GAA0G,iBAAiB,IAAI,0IAA0I,IAAI,kCAAkC,kBAAkB,wBAAwB,MAAM,yDAAyD,mCAAmC,IAAI,KAAK,sCAAsC,wFAAwF,iBAAiB,IAAI,wHAAwH,IAAI,kCAAkC,kBAAkB,wBAAwB,qDAAqD,wBAAwB,qBAAqB,IAAI,KAAK,aAAa,yDAAyD,0BAA0B,IAAI,KAAK,aAAa,uDAAuD,0BAA0B,IAAI,yBAAyB,IAAI,6DAA6D,0BAA0B,IAAI,yBAAyB,IAAI,0DAA0D,0BAA0B,qDAAqD,wBAAwB,qBAAqB,IAAI,KAAK,aAAa,6EAA6E,qCAAqC,IAAI,KAAK,aAAa,oEAAoE,0BAA0B,IAAI,yBAAyB,IAAI,iFAAiF,qCAAqC,IAAI,yBAAyB,IAAI,uEAAuE,wBAAwB,2BAA2B,WAAW,KAAK,4CAA4C,kBAAkB,yDAAyD,sCAAsC,qBAAqB,MAAM,uDAAuD,sCAAsC,qBAAqB,MAAM,oDAAoD,sCAAsC,mBAAmB,MAAM,uDAAuD,wCAAwC,mBAAmB,MAAM,kEAAkE,uCAAuC,0BAA0B,MAAM,wEAAwE,uCAAuC,0BAA0B,MAAM,wDAAwD,sCAAsC,qBAAqB,sCAAsC,SAAS,6MAA6M;AAAA,oGAAC,C;;;;;;;;;;;ACxBz+I;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,0IAA+C,CAAC,sIAA6C,CAAC,oGAA4B,CAAC,wIAA8C,CAAC,qHAA6B,CAAC,2GAA2B,CAAC,mCAAC,0BAA0B,sCAAsC,SAAS,EAAE,sFAAsF,+BAA+B,wZAAwZ,gBAAgB,cAAc,6EAA6E,kBAAkB,4EAA4E,iBAAiB,2EAA2E,mBAAmB,4EAA4E,gBAAgB,+EAA+E,mBAAmB,8EAA8E,kBAAkB,4EAA4E,oBAAoB,2EAA2E,eAAe,yEAAyE,kBAAkB,4EAA4E,iBAAiB,2EAA2E,mBAAmB,6EAA6E,iBAAiB,aAAa,qDAAqD,+CAA+C,uCAAuC,QAAQ,0BAA0B,gBAAgB,qCAAqC,0DAA0D,iGAAiG,yIAAyI,uCAAuC,EAAE,EAAE,6CAA6C,2BAA2B,0HAA0H,8BAA8B,qGAAqG,gCAAgC,6BAA6B,sCAAsC,YAAY,WAAW,+BAA+B,oBAAoB,kCAAkC,YAAY,mBAAmB,kCAAkC,GAAG,GAAG,yBAAyB;AAAA,oGAAC,C;;;;;;;;;;;ACxBhpG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+FAAwB,CAAC,wFAAgB,CAAC,mCAAC,kBAAkB,cAAc,iBAAiB,cAAc,YAAY,sCAAsC,SAAS,EAAE,iBAAiB,aAAa,mBAAmB,sCAAsC,+BAA+B,0DAA0D,qBAAqB,iCAAiC,2BAA2B,4CAA4C,gCAAgC,qDAAqD,2CAA2C,wDAAwD,0FAA0F,oCAAoC,kCAAkC,iCAAiC,iBAAiB,4CAA4C,sFAAsF,gCAAgC,sBAAsB,yBAAyB,sCAAsC,wCAAwC,2FAA2F,mCAAmC,mBAAmB,gDAAgD,iCAAiC,WAAW,yCAAyC,WAAW,KAAK,mBAAmB,MAAM,mBAAmB,KAAK,SAAS,GAAG,GAAG,qFAAqF;AAAA,oGAAC,C;;;;;;;;;;;ACxBrlD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,kIAA2C,CAAC,wIAA8C,CAAC,mCAAC,kBAAkB,kBAAkB,8BAA8B,qWAAqW,SAAS,GAAG;AAAA,oGAAC,C;;;;;;;;;;;ACxB5iB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,wIAA8C,CAAC,2HAAgC,CAAC,iKAA2C,CAAC,2HAAY,CAAC,qHAAS,CAAC,qHAAgC,CAAC,qGAAwB,CAAC,+HAAqC,CAAC,mCAAC,8BAA8B,gBAAgB,8BAA8B,yCAAyC,OAAO,6CAA6C,aAAa,+BAA+B,OAAO,uCAAuC,6DAA6D,6BAA6B,QAAQ,wBAAwB,QAAQ,IAAI,kBAAkB,wCAAwC,UAAU,4BAA4B,kBAAkB,oBAAoB,gTAAgT,sCAAsC,qDAAqD,8CAA8C,eAAe,mCAAmC,+BAA+B,qDAAqD,eAAe,8BAA8B,+BAA+B,kCAAkC,SAAS,uCAAuC,qCAAqC,gCAAgC,8GAA8G,kDAAkD,kGAAkG,wBAAwB,eAAe,OAAO,wDAAwD,qDAAqD,8BAA8B,0BAA0B,yCAAyC,uBAAuB,EAAE,iCAAiC,mDAAmD,yHAAyH,kBAAkB,4BAA4B,yBAAyB,qCAAqC,4KAA4K,kEAAkE,iCAAiC,uBAAuB,2DAA2D,yCAAyC,EAAE,0CAA0C,8CAA8C,sBAAsB,mIAAmI,sUAAsU,EAAE,6CAA6C,WAAW,8DAA8D,2BAA2B,QAAQ,qCAAqC,2BAA2B,QAAQ,gCAAgC,8BAA8B,qBAAqB,oBAAoB,qBAAqB,oCAAoC,EAAE,sCAAsC,qEAAqE,sEAAsE,YAAY,SAAS,8CAA8C,+FAA+F,kEAAkE,GAAG,gCAAgC,+CAA+C,2DAA2D,2CAA2C,SAAS,uCAAuC,4BAA4B,qGAAqG,IAAI,iDAAiD,2DAA2D,yBAAyB,2CAA2C,SAAS,uCAAuC,+BAA+B,oBAAoB,kBAAkB,YAAY,WAAW,KAAK,sEAAsE,+BAA+B,KAAK,GAAG,GAAG;AAAA,oGAAC,C;;;;;;;;;;;ACxB74J;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,kIAA2C,CAAC,wIAA8C,CAAC,2HAAgC,CAAC,iKAA2C,CAAC,qIAA6B,CAAC,6IAAiC,CAAC,2GAAgB,CAAC,gIAAoB,CAAC,2HAAY,CAAC,qHAAS,CAAC,qHAAgC,CAAC,qGAAwB,CAAC,+HAAqC,CAAC,mCAAC,wCAAwC,oBAAoB,kEAAkE,2CAA2C,aAAa,6GAA6G,gBAAgB,+BAA+B,8FAA8F,SAAS,WAAW,KAAK,WAAW,QAAQ,gBAAgB,WAAW,KAAK,WAAW,QAAQ,SAAS,iBAAiB,oBAAoB,6SAA6S,sCAAsC,qDAAqD,8CAA8C,eAAe,mCAAmC,+BAA+B,qDAAqD,eAAe,8BAA8B,+BAA+B,kCAAkC,SAAS,6CAA6C,oCAAoC,IAAI,uCAAuC,qCAAqC,gCAAgC,eAAe,kJAAkJ,uCAAuC,EAAE,oDAAoD,sGAAsG,wBAAwB,YAAY,gDAAgD,+HAA+H,6FAA6F,sJAAsJ,QAAQ,4FAA4F,mCAAmC,2EAA2E,KAAK,sBAAsB,QAAQ,iCAAiC,uBAAuB,iEAAiE,EAAE,4CAA4C,qEAAqE,WAAW,KAAK,sHAAsH,aAAa,8LAA8L,6BAA6B,gDAAgD,2CAA2C,mNAAmN,oDAAoD,0BAA0B,SAAS,gCAAgC,oLAAoL,yEAAyE,6CAA6C,WAAW,8DAA8D,2BAA2B,QAAQ,gCAAgC,8BAA8B,qBAAqB,oCAAoC,EAAE,qCAAqC,gCAAgC,sCAAsC,yEAAyE,6HAA6H,YAAY,qBAAqB,uIAAuI,SAAS,8CAA8C,6HAA6H,gBAAgB,+CAA+C,4DAA4D,4BAA4B,yFAAyF,KAAK,yDAAyD,wBAAwB,SAAS,iDAAiD,2CAA2C,2CAA2C,SAAS,uCAAuC,+BAA+B,+BAA+B,WAAW,KAAK,4FAA4F,8BAA8B,IAAI,wCAAwC,OAAO,uEAAuE,uBAAuB,EAAE,0CAA0C,kFAAkF,kDAAkD,gBAAgB,WAAW,KAAK,+CAA+C,sDAAsD,yBAAyB,kBAAkB,kBAAkB,gCAAgC,8BAA8B,8FAA8F,0CAA0C,+CAA+C,uBAAuB,0BAA0B,WAAW,KAAK,mEAAmE,6IAA6I,2BAA2B,wCAAwC,gCAAgC,qCAAqC,WAAW,KAAK,oBAAoB,+EAA+E,YAAY,SAAS,2CAA2C,mEAAmE,gCAAgC,8CAA8C,iGAAiG,2BAA2B,oDAAoD,iGAAiG,2CAA2C,eAAe,OAAO,yBAAyB,+BAA+B,IAAI,MAAM,4CAA4C,0EAA0E,SAAS;AAAA,oGAAC,C;;;;;;;;;;;ACxBpsP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,kIAA2C,CAAC,wIAA8C,CAAC,+HAA0B,CAAC,2GAAgB,CAAC,qGAAwB,CAAC,mCAAC,wBAAwB,cAAc,wCAAwC,sEAAsE,yCAAyC,cAAc,2CAA2C,iHAAiH,+CAA+C,cAAc,wCAAwC,iHAAiH,8BAA8B,cAAc,wCAAwC,sEAAsE,0BAA0B,sBAAsB,+DAA+D,wBAAwB,8BAA8B,qEAAqE,sBAAsB,oBAAoB,WAAW,KAAK,kCAAkC,yBAAyB,oDAAoD,wBAAwB,8CAA8C,WAAW,KAAK,kCAAkC,+BAA+B,qDAAqD,gBAAgB,cAAc,6KAA6K,gBAAgB,sIAAsI,kBAAkB,oBAAoB,iIAAiI,sCAAsC,SAAS,uTAAuT,yBAAyB;AAAA,oGAAC,C;;;;;;;;;;;ACxB33E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,yJAAqD,CAAC,gNAAiE,CAAC,gLAAiD,CAAC,4KAA+C,CAAC,oJAAmC,CAAC,kJAAkC,CAAC,0JAAsC,CAAC,gMAAyD,CAAC,kNAAkE,CAAC,oLAAmD,CAAC,sLAAoD,CAAC,0LAAsD,CAAC,4KAA+C,CAAC,gMAAyD,CAAC,wMAA6D,CAAC,kMAA0D,CAAC,kLAAkD,CAAC,sKAA4C,CAAC,wMAA6D,CAAC,4NAAuE,CAAC,kLAAkD,CAAC,sLAAoD,CAAC,gLAAiD,CAAC,kLAAkD,CAAC,kJAAkC,CAAC,wJAAqC,CAAC,mCAAC,kEAAkE,cAAc,6DAA6D,6/BAA6/B,2CAA2C,OAAO,uCAAuC,2CAA2C,OAAO,iEAAiE,6CAA6C,OAAO,uCAAuC,6CAA6C,OAAO,iFAAiF,eAAe,0qBAA0qB,yCAAyC,oCAAoC,8CAA8C,oCAAoC,yCAAyC,oCAAoC,8CAA8C,wDAAwD,8EAA8E,8FAA8F,YAAY,yDAAyD,0FAA0F,8FAA8F,YAAY,yDAAyD,oIAAoI,sDAAsD,WAAW,gBAAgB,mCAAmC,2CAA2C,6DAA6D,sDAAsD,WAAW,gBAAgB,mCAAmC,2CAA2C,uKAAuK,oGAAoG,yIAAyI,gCAAgC,8GAA8G,gCAAgC,gJAAgJ,sGAAsG,oIAAoI,0BAA0B,+BAA+B,sCAAsC,SAAS,uGAAuG,0BAA0B,+BAA+B,sCAAsC,SAAS,uFAAuF,gEAAgE,8HAA8H,qqBAAqqB,SAAS,wEAAwE,iCAAiC,kCAAkC,iCAAiC,yGAAyG,8DAA8D,6GAA6G,wDAAwD,sFAAsF,0DAA0D,gFAAgF,qDAAqD,4GAA4G,gFAAgF,gIAAgI,uFAAuF,yFAAyF,qDAAqD,+DAA+D,qDAAqD,mEAAmE,uBAAuB,wFAAwF,sCAAsC,qFAAqF,mIAAmI,oEAAoE,sCAAsC,qFAAqF,mIAAmI,6HAA6H,uEAAuE,qJAAqJ,4FAA4F,iFAAiF,0CAA0C,uFAAuF,2DAA2D,yKAAyK,6HAA6H,8HAA8H,6HAA6H,8IAA8I,kHAAkH,iHAAiH,kHAAkH,0GAA0G,gCAAgC,8BAA8B,8BAA8B,aAAa,sEAAsE,gCAAgC,8BAA8B,8BAA8B,aAAa,0IAA0I,yEAAyE,iHAAiH,qFAAqF,kHAAkH,oFAAoF,+EAA+E,kDAAkD,2GAA2G,yBAAyB,wEAAwE,+FAA+F,yFAAyF,6CAA6C,gHAAgH,qEAAqE,4DAA4D,yBAAyB,wEAAwE,+FAA+F,yFAAyF,6CAA6C,gHAAgH,qEAAqE,2JAA2J,4DAA4D,uOAAuO,wHAAwH,4DAA4D,uOAAuO,wJAAwJ,4HAA4H,oHAAoH,SAAS,sFAAsF,SAAS,kEAAkE,eAAe,mTAAmT,iCAAiC,oCAAoC,iCAAiC,iKAAiK,8BAA8B,4GAA4G,8BAA8B,8HAA8H,0EAA0E,6HAA6H,sCAAsC,SAAS,gGAAgG,sCAAsC,SAAS,oGAAoG,+BAA+B,oCAAoC,+BAA+B,yGAAyG,yCAAyC,4DAA4D,yCAAyC,sEAAsE,SAAS,wCAAwC,SAAS,sHAAsH,eAAe,ySAAyS,iCAAiC,oCAAoC,iCAAiC,qMAAqM,gIAAgI,yIAAyI,8BAA8B,4GAA4G,8BAA8B,6JAA6J,iHAAiH,gIAAgI,0EAA0E,oGAAoG,sCAAsC,SAAS,uEAAuE,sCAAsC,SAAS,qHAAqH,+BAA+B,gCAAgC,+BAA+B,2GAA2G,2CAA2C,8DAA8D,2CAA2C,4IAA4I,+FAA+F,yFAAyF,wDAAwD,6DAA6D,wDAAwD,sGAAsG,SAAS,wEAAwE,SAAS,oDAAoD,eAAe,2LAA2L,iCAAiC,oCAAoC,iCAAiC,iKAAiK,8BAA8B,4GAA4G,8BAA8B,8HAA8H,0EAA0E,oGAAoG,sCAAsC,SAAS,uEAAuE,sCAAsC,SAAS,2PAA2P,+BAA+B,gCAAgC,+BAA+B,yGAAyG,yCAAyC,4DAA4D,yCAAyC,kIAAkI,SAAS,oGAAoG,SAAS,gBAAgB,sCAAsC,SAAS,YAAY,kKAAkK;AAAA,oGAAC,C;;;;;;;;;;;ACxB5/qB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mIAA0C,CAAC,qIAA2C,CAAC,oLAAmD,CAAC,4NAAuE,CAAC,sLAAoD,CAAC,gLAAiD,CAAC,8KAAgD,CAAC,gKAAyC,CAAC,0LAAsD,CAAC,8JAAwC,CAAC,sJAAoC,CAAC,uIAAwB,CAAC,wGAAwB,CAAC,mCAAC,wCAAwC,sCAAsC,SAAS,EAAE,kBAAkB,aAAa,+CAA+C,wDAAwD,qDAAqD,8xCAA8xC,EAAE,yFAAyF,sCAAsC,gCAAgC,8xBAA8xB,2CAA2C,YAAY,uEAAuE,oBAAoB,6BAA6B,kBAAkB,aAAa,8CAA8C,mkBAAmkB,8BAA8B,QAAQ,gDAAgD,QAAQ,0DAA0D,QAAQ,y3CAAy3C,iCAAiC,0CAA0C;AAAA,oGAAC,C;;;;;;;;;;;ACxB9/K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,8JAAwC,CAAC,+HAAoB,CAAC,mCAAC,kBAAkB,sCAAsC,SAAS,aAAa,0BAA0B,uHAAuH,yBAAyB;AAAA,oGAAC,C;;;;;;;;;;;ACxBpV;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,yJAAqD,CAAC,kJAAkC,CAAC,sMAA4D,CAAC,8KAAgD,CAAC,sKAA4C,CAAC,kJAAkC,CAAC,wJAAqC,CAAC,mCAAC,4BAA4B,cAAc,0BAA0B,ooBAAooB,0HAA0H,0CAA0C,OAAO,sCAAsC,yBAAyB,yBAAyB,mCAAmC,qBAAqB,OAAO,sDAAsD,0HAA0H,0CAA0C,OAAO,sCAAsC,yBAAyB,yBAAyB,mCAAmC,qBAAqB,OAAO,kFAAkF,iCAAiC,uMAAuM,sBAAsB,OAAO,6CAA6C,iCAAiC,uMAAuM,sBAAsB,OAAO,kJAAkJ,mCAAmC,yFAAyF,+BAA+B,2EAA2E,2DAA2D,yBAAyB,aAAa,OAAO,6CAA6C,aAAa,WAAW,6DAA6D,qCAAqC,2DAA2D,yBAAyB,aAAa,OAAO,6CAA6C,aAAa,WAAW,SAAS,OAAO,uGAAuG,0DAA0D,WAAW,+DAA+D,0DAA0D,WAAW,SAAS,qCAAqC,qCAAqC,qCAAqC,OAAO,6GAA6G,mCAAmC,yFAAyF,+BAA+B,2EAA2E,2DAA2D,yBAAyB,aAAa,OAAO,6CAA6C,aAAa,WAAW,6DAA6D,qCAAqC,2DAA2D,yBAAyB,aAAa,OAAO,6CAA6C,aAAa,WAAW,SAAS,OAAO,uGAAuG,0DAA0D,WAAW,+DAA+D,0DAA0D,WAAW,SAAS,qCAAqC,qCAAqC,qCAAqC,OAAO,iEAAiE,2BAA2B,+CAA+C,4OAA4O,yFAAyF,OAAO,YAAY,wDAAwD,2CAA2C,mDAAmD,4EAA4E,+BAA+B,0BAA0B,SAAS,8EAA8E,2EAA2E,2EAA2E,2DAA2D,yCAAyC,wCAAwC,uCAAuC,uCAAuC,8BAA8B,2BAA2B,+CAA+C,4OAA4O,yFAAyF,OAAO,YAAY,wDAAwD,2CAA2C,mDAAmD,4EAA4E,+BAA+B,0BAA0B,SAAS,8EAA8E,2EAA2E,2EAA2E,2DAA2D,yCAAyC,wCAAwC,uCAAuC,uCAAuC,qXAAqX,0DAA0D,2HAA2H,gUAAgU,0DAA0D,2HAA2H,+GAA+G,mEAAmE,6CAA6C,4CAA4C,wCAAwC,qBAAqB,0LAA0L,oGAAoG,iEAAiE,qFAAqF,yDAAyD,wEAAwE,8EAA8E,wFAAwF,WAAW,SAAS,sEAAsE,0EAA0E,mEAAmE,6CAA6C,4CAA4C,wCAAwC,qBAAqB,0LAA0L,oGAAoG,iEAAiE,qFAAqF,yDAAyD,wEAAwE,8EAA8E,wFAAwF,WAAW,SAAS,sEAAsE,qFAAqF,sBAAsB,kCAAkC,6BAA6B,WAAW,eAAe,4BAA4B,WAAW,yCAAyC,6CAA6C,mCAAmC,0BAA0B,WAAW,eAAe,2BAA2B,WAAW,qCAAqC,yCAAyC,gFAAgF,mGAAmG,qCAAqC,sBAAsB,kCAAkC,6BAA6B,WAAW,eAAe,4BAA4B,WAAW,yCAAyC,6CAA6C,mCAAmC,0BAA0B,WAAW,eAAe,2BAA2B,WAAW,qCAAqC,yCAAyC,gFAAgF,mGAAmG,8IAA8I,wCAAwC,WAAW,sCAAsC,uCAAuC,WAAW,gBAAgB,+DAA+D,WAAW,+DAA+D,mEAAmE,qGAAqG,wCAAwC,WAAW,sCAAsC,uCAAuC,WAAW,gBAAgB,+DAA+D,WAAW,+DAA+D,mEAAmE,oFAAoF,SAAS,OAAO,OAAO,qGAAqG,oCAAoC,OAAO,kCAAkC,mCAAmC,OAAO,YAAY,2DAA2D,OAAO,2DAA2D,+DAA+D,kCAAkC,2DAA2D,+CAA+C,SAAS,OAAO,OAAO,qGAAqG,oCAAoC,OAAO,kCAAkC,mCAAmC,OAAO,YAAY,2DAA2D,OAAO,2DAA2D,+DAA+D,kCAAkC,2DAA2D,uGAAuG,wCAAwC,uCAAuC,wDAAwD,wCAAwC,uCAAuC,8FAA8F,yDAAyD,qDAAqD,oEAAoE,mDAAmD,cAAc,oEAAoE,mDAAmD,wEAAwE,gcAAgc,gFAAgF,kBAAkB,gcAAgc,gFAAgF,wLAAwL,4FAA4F,4DAA4D,qHAAqH,4FAA4F,4DAA4D,uGAAuG,4KAA4K,wHAAwH,WAAW,OAAO,mCAAmC,WAAW,SAAS,gEAAgE,4KAA4K,wHAAwH,WAAW,OAAO,mCAAmC,WAAW,SAAS,oIAAoI,yCAAyC,qHAAqH,8BAA8B,6BAA6B,4BAA4B,OAAO,KAAK,sFAAsF,8BAA8B,6BAA6B,4BAA4B,OAAO,KAAK,qJAAqJ,6BAA6B,+CAA+C,yEAAyE,0CAA0C,+EAA+E,OAAO,8BAA8B,6BAA6B,+CAA+C,yEAAyE,0CAA0C,+EAA+E,OAAO,sFAAsF,+BAA+B,oFAAoF,kDAAkD,SAAS,gCAAgC,+BAA+B,oFAAoF,kDAAkD,SAAS,eAAe,sCAAsC,SAAS,YAAY,wCAAwC;AAAA,oGAAC,C;;;;;;;;;;;ACxBhgmB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mIAA0C,CAAC,qIAA2C,CAAC,iIAAyC,CAAC,+FAAwB,CAAC,+FAAwB,CAAC,kJAAkC,CAAC,0JAAsC,CAAC,oLAAmD,CAAC,sLAAoD,CAAC,8KAAgD,CAAC,gKAAyC,CAAC,0LAAsD,CAAC,6HAAmB,CAAC,wGAAwB,CAAC,gHAA4B,CAAC,mCAAC,4CAA4C,sCAAsC,SAAS,oCAAoC,0SAA0S,mCAAmC,kJAAkJ,kBAAkB,gBAAgB,6BAA6B,+GAA+G,wDAAwD,qDAAqD,2YAA2Y,EAAE,8GAA8G,gCAAgC,gJAAgJ,sCAAsC,2hBAA2hB,uBAAuB,wGAAwG,sCAAsC,oFAAoF,+JAA+J,kCAAkC,gFAAgF,kCAAkC,2GAA2G,sCAAsC,2DAA2D,2CAA2C,yBAAyB,yCAAyC,6FAA6F,SAAS,yGAAyG,uBAAuB,4CAA4C,SAAS,yGAAyG,EAAE,2CAA2C,kCAAkC,kEAAkE,oBAAoB,wBAAwB,OAAO,kBAAkB,eAAe,aAAa,8CAA8C,sSAAsS,8BAA8B,QAAQ,8xBAA8xB,iCAAiC,qCAAqC;AAAA,oGAAC,C;;;;;;;;;;;ACxB93K;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,yJAAqD,CAAC,4KAA+C,CAAC,kJAAkC,CAAC,0JAAsC,CAAC,8KAAgD,CAAC,kLAAkD,CAAC,kKAA0C,CAAC,sLAAoD,CAAC,kJAAkC,CAAC,wJAAqC,CAAC,mCAAC,kCAAkC,cAAc,0BAA0B,8BAA8B,eAAe,mbAAmb,oBAAoB,mDAAmD,oDAAoD,6CAA6C,8DAA8D,+BAA+B,SAAS,oCAAoC,oBAAoB,mDAAmD,oDAAoD,6CAA6C,8DAA8D,+BAA+B,SAAS,oWAAoW,+BAA+B,iCAAiC,qHAAqH,6IAA6I,6CAA6C,qDAAqD,oCAAoC,+BAA+B,iCAAiC,qHAAqH,6IAA6I,6CAA6C,qDAAqD,uIAAuI,6EAA6E,iFAAiF,0CAA0C,4KAA4K,gFAAgF,4DAA4D,SAAS,mIAAmI,gFAAgF,4DAA4D,SAAS,qOAAqO,sBAAsB,qDAAqD,8DAA8D,WAAW,sCAAsC,sBAAsB,qDAAqD,8DAA8D,WAAW,wHAAwH,iCAAiC,yHAAyH,qDAAqD,wEAAwE,WAAW,kCAAkC,iCAAiC,yHAAyH,qDAAqD,wEAAwE,WAAW,oJAAoJ,qDAAqD,8DAA8D,WAAW,sCAAsC,qDAAqD,8DAA8D,WAAW,sHAAsH,sCAAsC,WAAW,kCAAkC,sCAAsC,WAAW,gBAAgB,sCAAsC,SAAS,YAAY,sBAAsB;AAAA,oGAAC,C;;;;;;;;;;;ACxB/tL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,uIAAoB,CAAC,yHAAkC,CAAC,mCAAC,kBAAkB,cAAc,QAAQ,wCAAwC,YAAY,IAAI,cAAc,4BAA4B,sCAAsC,SAAS,EAAE,eAAe,oBAAoB;AAAA,oGAAC,C;;;;;;;;;;;ACxBpT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,mCAAC,cAAc,OAAO,aAAa,4JAA4J,6BAA6B,mCAAmC,6BAA6B,6BAA6B,qBAAqB,wFAAwF,4BAA4B,wQAAwQ,kCAAkC,6BAA6B,sLAAsL,uBAAuB,0BAA0B,yKAAyK,oCAAoC,kDAAkD,8BAA8B,wBAAwB,mBAAmB,4BAA4B,2BAA2B,qDAAqD,oDAAoD,uDAAuD,mEAAmE,GAAG,mEAAmE,+CAA+C,2CAA2C,2CAA2C,GAAG,mCAAmC,yBAAyB,iFAAiF,GAAG,eAAe,6CAA6C,uDAAuD,gCAAgC,sCAAsC,4BAA4B,2CAA2C,kCAAkC,wBAAwB,6DAA6D,4DAA4D,+BAA+B,iCAAiC,OAAO,+DAA+D,sEAAsE,6EAA6E,kFAAkF,qEAAqE,0BAA0B,oCAAoC,eAAe,OAAO,6DAA6D,KAAK,6BAA6B,kEAAkE,+BAA+B,8BAA8B,4CAA4C,2FAA2F,mBAAmB,gCAAgC,mDAAmD,gDAAgD,2CAA2C,mCAAmC,4DAA4D,2EAA2E,gDAAgD,sDAAsD,yCAAyC,iEAAiE,wDAAwD,oDAAoD,yFAAyF,sCAAsC,kDAAkD,0DAA0D,iGAAiG,kEAAkE,SAAS,OAAO,qDAAqD,8CAA8C,8BAA8B,kDAAkD,oCAAoC,wCAAwC,+BAA+B,0FAA0F,eAAe,+BAA+B,+BAA+B,OAAO,qEAAqE,sEAAsE,oCAAoC,kDAAkD,wDAAwD,gCAAgC,uCAAuC,mCAAmC,OAAO,sEAAsE,4BAA4B,iDAAiD,0DAA0D,0DAA0D,gCAAgC,oCAAoC,sCAAsC,4BAA4B,SAAS,uDAAuD,+BAA+B,SAAS,OAAO,2DAA2D,oDAAoD,OAAO,YAAY,sDAAsD,OAAO,gFAAgF,0CAA0C,+CAA+C,qDAAqD,oDAAoD,iDAAiD,8EAA8E,kDAAkD,+DAA+D,gEAAgE,yDAAyD,2EAA2E,oEAAoE,kDAAkD,4EAA4E,0CAA0C,sCAAsC,iCAAiC,qCAAqC,kBAAkB,cAAc,OAAO,2CAA2C,mDAAmD,0DAA0D,6EAA6E,oFAAoF,qEAAqE,uEAAuE,2EAA2E,kEAAkE,8DAA8D,0CAA0C,kDAAkD,iCAAiC,OAAO,uFAAuF,0CAA0C,iHAAiH,kDAAkD,0DAA0D,kGAAkG,6HAA6H,oFAAoF,gGAAgG,8DAA8D,2CAA2C,2CAA2C,8CAA8C,8BAA8B,2CAA2C,yBAAyB,4BAA4B,4DAA4D,2CAA2C,6CAA6C,4DAA4D,uHAAuH,iCAAiC,qCAAqC,2CAA2C,gCAAgC,kGAAkG,yIAAyI,+BAA+B,qEAAqE,OAAO,kEAAkE,aAAa,OAAO,+BAA+B,KAAK,GAAG,+FAA+F,wBAAwB,2BAA2B,yBAAyB,kCAAkC,0BAA0B,qBAAqB,wBAAwB,mBAAmB,mCAAmC,2BAA2B,0BAA0B,cAAc,2CAA2C,6FAA6F,4FAA4F,2FAA2F,mCAAmC,GAAG,mFAAmF,mBAAmB,wBAAwB,gDAAgD,4BAA4B,uBAAuB,wCAAwC,wDAAwD,qDAAqD,uEAAuE,uFAAuF,WAAW,+GAA+G,oBAAoB,0DAA0D,8CAA8C,+BAA+B,2BAA2B,2BAA2B,oBAAoB,2BAA2B,4BAA4B,6CAA6C,0BAA0B,mBAAmB,wBAAwB,mBAAmB,iDAAiD,0CAA0C,mCAAmC,qCAAqC,sDAAsD,gEAAgE,uEAAuE,4FAA4F,0FAA0F,iDAAiD,8DAA8D,mEAAmE,qDAAqD,kCAAkC,GAAG,oFAAoF,eAAe,yBAAyB,GAAG,yFAAyF,qCAAqC,8BAA8B,qCAAqC,qBAAqB,mBAAmB,yEAAyE,kEAAkE,uDAAuD,8CAA8C,GAAG,sEAAsE,sBAAsB,eAAe,oBAAoB,0BAA0B,uEAAuE,oDAAoD,wCAAwC,2CAA2C,+CAA+C,mCAAmC,GAAG,qGAAqG,oBAAoB,qBAAqB,wBAAwB,2BAA2B,0BAA0B,uBAAuB,uBAAuB,sBAAsB,sBAAsB,mBAAmB,iEAAiE,2DAA2D,kCAAkC,yBAAyB,oCAAoC,yBAAyB,GAAG,EAAE,YAAY,KAAK,wEAAwE,0CAA0C,4HAA4H,wCAAwC,eAAe,qGAAqG,8CAA8C,KAAK,OAAO,8CAA8C,KAAK,0FAA0F,WAAW,uMAAuM,yBAAyB,4CAA4C,qEAAqE,mEAAmE,6BAA6B,uBAAuB,sBAAsB,yBAAyB,sBAAsB,mBAAmB,qBAAqB,6DAA6D,2BAA2B,6BAA6B,kDAAkD,6CAA6C,mDAAmD,aAAa,KAAK,mBAAmB,iKAAiK,gKAAgK,4BAA4B,2CAA2C,gEAAgE,uDAAuD,gCAAgC,6GAA6G,6EAA6E,4CAA4C,qCAAqC,2BAA2B,+GAA+G,oGAAoG,mCAAmC,kCAAkC,2DAA2D,OAAO,oCAAoC,8CAA8C,mFAAmF,gCAAgC,uBAAuB,OAAO,qBAAqB,uFAAuF,aAAa,kCAAkC,gFAAgF,kCAAkC,WAAW,8KAA8K,6BAA6B,4BAA4B,4BAA4B,sBAAsB,mBAAmB,qBAAqB,6DAA6D,mEAAmE,gGAAgG,iDAAiD,+BAA+B,yCAAyC,oDAAoD,uEAAuE,0DAA0D,6BAA6B,oDAAoD,6BAA6B,4CAA4C,+DAA+D,yFAAyF,kGAAkG,yJAAyJ,0DAA0D,KAAK,UAAU,sDAAsD,KAAK,+FAA+F,+LAA+L,0EAA0E,uCAAuC,cAAc,KAAK,6EAA6E,eAAe,yBAAyB,GAAG,kKAAkK,uBAAuB,wCAAwC,+BAA+B,oDAAoD,+DAA+D,sCAAsC,gCAAgC,uDAAuD,OAAO,KAAK,UAAU,qDAAqD,KAAK,gCAAgC,uBAAuB,GAAG,EAAE,cAAc,yEAAyE,2BAA2B,gCAAgC,yBAAyB,eAAe,0GAA0G,6DAA6D,4CAA4C,yDAAyD,8CAA8C,cAAc,KAAK,qFAAqF,8CAA8C,WAAW,kKAAkK,yBAAyB,0BAA0B,2BAA2B,4BAA4B,gCAAgC,yBAAyB,mBAAmB,6BAA6B,mDAAmD,oCAAoC,8BAA8B,gDAAgD,aAAa,KAAK,yDAAyD,gDAAgD,aAAa,KAAK,2LAA2L,yGAAyG,kDAAkD,sEAAsE,mFAAmF,gDAAgD,mEAAmE,qDAAqD,iDAAiD,oEAAoE,gEAAgE,sIAAsI,+FAA+F,kFAAkF,2GAA2G,mGAAmG,mIAAmI,uGAAuG,2CAA2C,wCAAwC,uDAAuD,2DAA2D,uDAAuD,oFAAoF,2DAA2D,2CAA2C,yGAAyG,gGAAgG,8CAA8C,kDAAkD,kEAAkE,qGAAqG,uEAAuE,wOAAwO,uDAAuD,oCAAoC,GAAG,EAAE,mBAAmB,qFAAqF,4BAA4B,6BAA6B,+BAA+B,8BAA8B,mBAAmB,wBAAwB,wBAAwB,4EAA4E,6CAA6C,qDAAqD,gCAAgC,kBAAkB,uBAAuB,KAAK,4BAA4B,0BAA0B,KAAK,OAAO,kGAAkG,KAAK,GAAG,mBAAmB,4CAA4C,oDAAoD,yBAAyB,cAAc,KAAK,yBAAyB,GAAG,+EAA+E,oBAAoB,qBAAqB,sBAAsB,0BAA0B,wBAAwB,qBAAqB,0BAA0B,mBAAmB,wBAAwB,wBAAwB,mBAAmB,4BAA4B,cAAc,sBAAsB,0BAA0B,iGAAiG,6BAA6B,GAAG,EAAE,aAAa,yHAAyH,yBAAyB,sBAAsB,0BAA0B,mBAAmB,eAAe,iCAAiC,oCAAoC,kFAAkF,+DAA+D,wEAAwE,wEAAwE,yCAAyC,6CAA6C,yJAAyJ,GAAG,yEAAyE,oBAAoB,qBAAqB,0BAA0B,qBAAqB,mBAAmB,mBAAmB,cAAc,6EAA6E,GAAG,GAAG,gBAAgB,yKAAyK,wCAAwC,iDAAiD,4DAA4D,2BAA2B,kDAAkD,qCAAqC,oBAAoB,cAAc,KAAK,wDAAwD,kHAAkH,4CAA4C,WAAW,+GAA+G,wBAAwB,gCAAgC,iCAAiC,iCAAiC,2BAA2B,wBAAwB,wBAAwB,0CAA0C,sBAAsB,6BAA6B,2BAA2B,sLAAsL,0CAA0C,yBAAyB,aAAa,KAAK,mCAAmC,0CAA0C,yBAAyB,aAAa,KAAK,0DAA0D,oCAAoC,+CAA+C,mEAAmE,iDAAiD,oEAAoE,6DAA6D,wDAAwD,uCAAuC,iEAAiE,iGAAiG,8FAA8F,4CAA4C,6CAA6C,2BAA2B,oFAAoF,2BAA2B,WAAW,EAAE,WAAW,WAAW,sEAAsE,2BAA2B,qBAAqB,yBAAyB,4BAA4B,yBAAyB,yBAAyB,kBAAkB,eAAe,iGAAiG,+DAA+D,yDAAyD,sCAAsC,gBAAgB,OAAO,gDAAgD,6BAA6B,0BAA0B,8DAA8D,sDAAsD,+CAA+C,OAAO,YAAY,sDAAsD,+CAA+C,OAAO,4CAA4C,yDAAyD,yEAAyE,2FAA2F,2GAA2G,gFAAgF,aAAa,0EAA0E,kBAAkB,iDAAiD,kCAAkC,uBAAuB,kGAAkG,2DAA2D,kCAAkC,iBAAiB,SAAS,8CAA8C,iBAAiB,eAAe,0DAA0D,2BAA2B,kCAAkC,iBAAiB,SAAS,gEAAgE,qCAAqC,GAAG;AACju9B,qEAAqE,oDAAoD,gCAAgC,0DAA0D,uBAAuB,8DAA8D,uCAAuC,oCAAoC,8BAA8B,OAAO,YAAY,6BAA6B,oEAAoE,qEAAqE,qEAAqE,sEAAsE,qEAAqE,qEAAqE,qEAAqE,qEAAqE,sEAAsE,qEAAqE,qEAAqE,qEAAqE,qEAAqE,4DAA4D,4DAA4D,sEAAsE,gEAAgE,gEAAgE,gEAAgE,gEAAgE,gEAAgE,gEAAgE,4DAA4D,4DAA4D,yCAAyC,OAAO,oCAAoC,4FAA4F,6DAA6D,6DAA6D,8FAA8F,6DAA6D,6DAA6D,6DAA6D,6DAA6D,8FAA8F,6DAA6D,6DAA6D,6DAA6D,6DAA6D,yDAAyD,yDAAyD,8FAA8F,6DAA6D,6DAA6D,6DAA6D,6DAA6D,yDAAyD,yDAAyD,yDAAyD,yDAAyD,qCAAqC,aAAa,yEAAyE,qBAAqB,4DAA4D,gCAAgC,iCAAiC,mDAAmD,uBAAuB,2CAA2C,yEAAyE,yBAAyB,gCAAgC,OAAO,+EAA+E,qDAAqD,+DAA+D,sDAAsD,sDAAsD,iEAAiE,sDAAsD,sDAAsD,sDAAsD,sDAAsD,iEAAiE,sDAAsD,sDAAsD,sDAAsD,sDAAsD,iDAAiD,iDAAiD,iEAAiE,sDAAsD,sDAAsD,sDAAsD,sDAAsD,iDAAiD,iDAAiD,iDAAiD,iDAAiD,yBAAyB,6EAA6E,iCAAiC,eAAe,qDAAqD,uCAAuC,4CAA4C,oDAAoD,GAAG,+EAA+E,eAAe,4DAA4D,GAAG,EAAE,YAAY,kJAAkJ,uBAAuB,wBAAwB,sBAAsB,iCAAiC,0BAA0B,2BAA2B,4BAA4B,4BAA4B,0BAA0B,yBAAyB,0BAA0B,0BAA0B,2BAA2B,4BAA4B,kBAAkB,oFAAoF,gGAAgG,GAAG,mDAAmD,+CAA+C,+BAA+B,yCAAyC,qBAAqB,GAAG,qDAAqD,sDAAsD,+BAA+B,yCAAyC,qBAAqB,GAAG,mDAAmD,+CAA+C,qHAAqH,GAAG,kDAAkD,oCAAoC,GAAG,qCAAqC,2BAA2B,uBAAuB,KAAK,iEAAiE,iEAAiE,mIAAmI,GAAG,eAAe,qDAAqD,+BAA+B,cAAc,KAAK,2DAA2D,iCAAiC,iFAAiF,yDAAyD,oEAAoE,uEAAuE,qCAAqC,4DAA4D,kEAAkE,kDAAkD,gEAAgE,+DAA+D,KAAK,gEAAgE,kEAAkE,0DAA0D,6FAA6F,gHAAgH,4FAA4F,mKAAmK,iEAAiE,GAAG,EAAE,YAAY,0EAA0E,mBAAmB,eAAe,uCAAuC,GAAG,iGAAiG,wBAAwB,mBAAmB,eAAe,0DAA0D,2CAA2C,GAAG,sGAAsG,mBAAmB,eAAe,qDAAqD,GAAG,8EAA8E,mBAAmB,mBAAmB,8CAA8C,kCAAkC,GAAG,GAAG,OAAO,8EAA8E,8DAA8D,2CAA2C,8DAA8D,uDAAuD,sCAAsC,GAAG,6DAA6D,yDAAyD,2CAA2C,iEAAiE,uDAAuD,sCAAsC,GAAG,+CAA+C,kCAAkC,GAAG,wBAAwB,oDAAoD,6DAA6D,6DAA6D,kCAAkC,sBAAsB,sFAAsF,GAAG,wBAAwB,kDAAkD,qDAAqD,6DAA6D,GAAG,uBAAuB,mCAAmC,GAAG,6GAA6G,2FAA2F,GAAG,6CAA6C,kCAAkC,wCAAwC,sDAAsD,kDAAkD,sCAAsC,GAAG,wGAAwG,qDAAqD,GAAG,mCAAmC,qDAAqD,GAAG,sDAAsD,kCAAkC,iCAAiC,kFAAkF,mBAAmB,GAAG,6DAA6D,wBAAwB,sBAAsB,yDAAyD,mBAAmB,GAAG,uUAAuU,wFAAwF,sCAAsC,iEAAiE,qFAAqF,0CAA0C,sCAAsC,GAAG,0KAA0K,+BAA+B,yCAAyC,GAAG,+EAA+E,4BAA4B,iCAAiC,8BAA8B,4GAA4G,2GAA2G,0CAA0C,sCAAsC,KAAK,UAAU,sCAAsC,KAAK,GAAG,kFAAkF,wBAAwB,yBAAyB,oBAAoB,oBAAoB,0BAA0B,qBAAqB,2BAA2B,wBAAwB,sBAAsB,8BAA8B,qCAAqC,2BAA2B,sCAAsC,sDAAsD,sFAAsF,iDAAiD,qDAAqD,wBAAwB,kBAAkB,iBAAiB,iBAAiB,2BAA2B,sBAAsB,IAAI,8GAA8G,sDAAsD,iCAAiC,6CAA6C,KAAK,kEAAkE,6BAA6B,qDAAqD,kEAAkE,oDAAoD,iCAAiC,0BAA0B,OAAO,YAAY,0BAA0B,OAAO,KAAK,0BAA0B,GAAG,gGAAgG,6CAA6C,uEAAuE,wEAAwE,gEAAgE,4BAA4B,0BAA0B,GAAG,kDAAkD,oCAAoC,0CAA0C,qDAAqD,uDAAuD,wDAAwD,yEAAyE,+CAA+C,4DAA4D,uDAAuD,oCAAoC,0OAA0O,+LAA+L,+DAA+D,gJAAgJ,iDAAiD,gCAAgC,gEAAgE,8BAA8B,uCAAuC,yHAAyH,iGAAiG,gCAAgC,6DAA6D,KAAK,yDAAyD,2KAA2K,gDAAgD,2GAA2G,oEAAoE,mBAAmB,GAAG,gDAAgD,wCAAwC,kEAAkE,wGAAwG,gDAAgD,mHAAmH,KAAK,gFAAgF,GAAG,yEAAyE,kBAAkB,mBAAmB,wDAAwD,kCAAkC,GAAG,6FAA6F,8CAA8C,oJAAoJ,GAAG,0EAA0E,mDAAmD,GAAG,iGAAiG,oJAAoJ,GAAG,6EAA6E,iGAAiG,GAAG,6GAA6G,qIAAqI,GAAG,0EAA0E,mHAAmH,GAAG,0GAA0G,oIAAoI,GAAG,4DAA4D,gCAAgC,gCAAgC,uBAAuB,gBAAgB,gBAAgB,gBAAgB,gBAAgB,gBAAgB,IAAI,gDAAgD,sCAAsC,uEAAuE,iEAAiE,+DAA+D,+DAA+D,iDAAiD,iDAAiD,kMAAkM,GAAG,6CAA6C,+IAA+I,GAAG,+BAA+B,sDAAsD,GAAG,6EAA6E,sDAAsD,kCAAkC,mBAAmB,KAAK,sCAAsC,0DAA0D,qEAAqE,qEAAqE,qEAAqE,qEAAqE,qEAAqE,6NAA6N,+FAA+F,GAAG,kGAAkG,kCAAkC,EAAE,2PAA2P,sIAAsI,0CAA0C,GAAG,kGAAkG,qCAAqC,+DAA+D,sBAAsB,GAAG,6GAA6G,2CAA2C,uDAAuD,+BAA+B,8BAA8B,8BAA8B,wCAAwC,gCAAgC,4CAA4C,mGAAmG,KAAK,oEAAoE,8GAA8G,KAAK,gEAAgE,uFAAuF,KAAK,wHAAwH,uCAAuC,+BAA+B,yBAAyB,OAAO,qBAAqB,gBAAgB,OAAO,iCAAiC,sEAAsE,gDAAgD,SAAS,OAAO,oCAAoC,KAAK,oDAAoD,4BAA4B,IAAI;AAAA,oGAAC,C;;;;;;;;;;;ACzBvwwB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,+HAAqC,CAAC,2IAA2C,CAAC,2HAAmC,CAAC,+FAAqB,CAAC,yGAA0B,CAAC,6FAAoB,CAAC,yFAAkB,CAAC,qGAAwB,CAAC,mIAAuC,CAAC,mIAAuC,CAAC,yHAAkC,CAAC,+HAAqC,CAAC,yHAAkC,CAAC,+HAAqC,CAAC,yHAAkC,CAAC,+HAAqC,CAAC,yHAAkC,CAAC,+HAAqC,CAAC,mIAAuC,CAAC,yIAA0C,CAAC,wHAA6B,CAAC,4HAA+B,CAAC,wGAAqB,CAAC,sIAAoC,CAAC,gJAAyC,CAAC,0HAA8B,CAAC,gIAAiC,CAAC,mCAAC,oEAAoE,cAAc,uCAAuC,sCAAsC,SAAS,EAAE,kBAAkB,cAAc,2BAA2B,2EAA2E,aAAa,8PAA8P,SAAS,gfAAgf,kCAAkC,GAAG,gDAAgD,WAAW,wJAAwJ,iBAAiB,EAAE,gCAAgC,qGAAqG,gDAAgD,eAAe,8BAA8B,iBAAiB,mEAAmE,+BAA+B,+CAA+C,gBAAgB,8EAA8E,+BAA+B,8CAA8C,eAAe,oBAAoB,iBAAiB,8DAA8D,+BAA+B,kDAAkD,eAAe,wBAAwB,iBAAiB,sEAAsE,+BAA+B,uDAAuD,eAAe,6BAA6B,iBAAiB,wBAAwB,+BAA+B,uDAAuD,eAAe,6BAA6B,iBAAiB,wBAAwB,+BAA+B,sDAAsD,eAAe,4BAA4B,iBAAiB,oGAAoG,+BAA+B,gDAAgD,eAAe,sBAAsB,iBAAiB,wHAAwH,+BAA+B,gDAAgD,eAAe,sBAAsB,iBAAiB,uDAAuD,+BAA+B,gDAAgD,gBAAgB,2GAA2G,+BAA+B,gDAAgD,gBAAgB,gFAAgF,+BAA+B,gDAAgD,gBAAgB,gFAAgF,+BAA+B,6CAA6C,gBAAgB,0EAA0E,+BAA+B,kEAAkE,eAAe,wCAAwC,+BAA+B,mDAAmD,eAAe,kEAAkE,+BAA+B,+CAA+C,eAAe,qBAAqB,+BAA+B,gDAAgD,eAAe,oDAAoD,+BAA+B,mDAAmD,eAAe,kEAAkE,+BAA+B,yDAAyD,eAAe,uEAAuE,+BAA+B,+DAA+D,eAAe,6EAA6E,+BAA+B,+DAA+D,eAAe,6EAA6E,+BAA+B,wDAAwD,eAAe,sEAAsE,+BAA+B,sDAAsD,8BAA8B,8GAA8G,gCAAgC,MAAM,6CAA6C,iCAAiC,sBAAsB,saAAsa,gDAAgD,qCAAqC,wGAAwG,gCAAgC,6GAA6G,MAAM,iMAAiM,WAAW,KAAK,WAAW,6DAA6D,WAAW,KAAK,4GAA4G,mBAAmB,mCAAmC,qBAAqB,iDAAiD,6CAA6C,kBAAkB,MAAM,yRAAyR,qCAAqC,QAAQ,yGAAyG,MAAM,yUAAyU,qCAAqC,QAAQ,sCAAsC,gBAAgB,WAAW,KAAK,WAAW,6DAA6D,WAAW,KAAK,kGAAkG,mBAAmB,mCAAmC,qBAAqB,iDAAiD,6CAA6C,kBAAkB,MAAM,2CAA2C,YAAY,8BAA8B,oBAAoB,kDAAkD,sVAAsV,wCAAwC,wLAAwL,gCAAgC,mBAAmB,iBAAiB,oBAAoB,sBAAsB,sEAAsE,8BAA8B,cAAc,EAAE,kHAAkH,0cAA0c,gCAAgC,gBAAgB,iBAAiB,EAAE,sBAAsB,0BAA0B,kCAAkC,oLAAoL,qCAAqC,4FAA4F,2CAA2C,0IAA0I,0CAA0C,0CAA0C,iBAAiB,2FAA2F,sCAAsC,mBAAmB,MAAM,uCAAuC,gKAAgK,4CAA4C,uDAAuD,0EAA0E,8CAA8C,6CAA6C,yDAAyD,oCAAoC,yCAAyC,kKAAkK,WAAW,KAAK,qCAAqC,qBAAqB,WAAW,KAAK,WAAW,sBAAsB,KAAK,2FAA2F,wBAAwB,WAAW,KAAK,WAAW,qFAAqF,qBAAqB,WAAW,KAAK,WAAW,0BAA0B,+CAA+C,oCAAoC,kFAAkF,uCAAuC,iBAAiB,+BAA+B,EAAE,oBAAoB,4CAA4C,uCAAuC,4BAA4B,uBAAuB,WAAW,uCAAuC,aAAa,qBAAqB,EAAE,OAAO,oCAAoC,qBAAqB,EAAE,SAAS,wBAAwB,QAAQ,sBAAsB,EAAE,yBAAyB,sCAAsC,yDAAyD,6CAA6C,WAAW,yEAAyE,yDAAyD,gCAAgC,yDAAyD,8CAA8C,wBAAwB,8BAA8B,sCAAsC,EAAE,wCAAwC,mDAAmD,WAAW,2FAA2F,uEAAuE,sBAAsB,8BAA8B,+CAA+C,EAAE,wBAAwB,sDAAsD,oEAAoE,2EAA2E,6CAA6C,mFAAmF,2CAA2C,qCAAqC,qDAAqD,gDAAgD,0DAA0D,gFAAgF,uCAAuC,wDAAwD,+CAA+C,2CAA2C,qDAAqD,oLAAoL,gBAAgB,gCAAgC,6CAA6C,4BAA4B,8PAA8P,eAAe,0DAA0D,iBAAiB,oHAAoH,SAAS,uYAAuY,SAAS,+FAA+F,SAAS,+CAA+C,SAAS,+CAA+C,QAAQ,4CAA4C,kCAAkC,2FAA2F,gBAAgB,kBAAkB,OAAO,iBAAiB,4BAA4B,oVAAoV;AAAA,oGAAC,C;;;;;;;;;;;ACxBj9hB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,2IAA2C,CAAC,+HAAqC,CAAC,+FAAqB,CAAC,mIAAuC,CAAC,2GAA2B,CAAC,mCAAC,wBAAwB,kBAAkB,cAAc,2BAA2B,2FAA2F,iEAAiE,eAAe,gCAAgC,iBAAiB,kDAAkD,+BAA+B,mDAAmD,eAAe,4BAA4B,iBAAiB,8CAA8C,+BAA+B,mDAAmD,eAAe,iBAAiB,qDAAqD,+BAA+B,+CAA+C,eAAe,cAAc,+BAA+B,gCAAgC,qIAAqI,8BAA8B,kCAAkC,EAAE,kBAAkB,SAAS,4BAA4B,SAAS,8FAA8F,aAAa,iBAAiB,cAAc,4BAA4B,MAAM,sCAAsC,iBAAiB,6EAA6E,mCAAmC,4FAA4F,8CAA8C,yJAAyJ,4JAA4J,oMAAoM,8BAA8B,oDAAoD,0BAA0B,2LAA2L,gCAAgC,6FAA6F,mBAAmB,mDAAmD,SAAS;AAAA,oGAAC,C;;;;;;;;;;;ACxBxwF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,iCAAO,CAAC,kCAAS,CAAC,OAAS,CAAC,2IAA2C,CAAC,+HAAqC,CAAC,+FAAqB,CAAC,mIAAuC,CAAC,2GAA2B,CAAC,mCAAC,wBAAwB,WAAW,0bAA0b,eAAe,cAAc,2BAA2B,qLAAqL,4DAA4D,eAAe,sBAAsB,iBAAiB,wCAAwC,+BAA+B,+CAA+C,eAAe,uBAAuB,+BAA+B,gCAAgC,kBAAkB,mCAAmC,0XAA0X,cAAc,sCAAsC,iBAAiB,oCAAoC,6BAA6B,oGAAoG,6CAA6C,kDAAkD,wEAAwE,4CAA4C,8FAA8F,iDAAiD,6IAA6I,sCAAsC,WAAW,KAAK,yBAAyB,2BAA2B,+CAA+C,wMAAwM,oCAAoC,OAAO,6BAA6B,uCAAuC,SAAS,kGAAkG,oBAAoB,wOAAwO,uBAAuB,yFAAyF,mBAAmB,QAAQ,oDAAoD,gBAAgB,gDAAgD,iBAAiB,kDAAkD,SAAS,qDAAqD,OAAO,iDAAiD,QAAQ,mDAAmD,MAAM,gDAAgD,aAAa,4CAA4C,cAAc,+CAA+C,UAAU,MAAM,kEAAkE,SAAS;AAAA,oGAAC,C","file":"27-es2015.js","sourcesContent":["// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"./unitFormatUtils\",\"./unitUtils\"],function(t,i,n,e){return function(){function t(t,i){this.measure=e.measureForUnit(i),this.value=t,this.unit=i}return Object.defineProperty(t.prototype,\"isBaseUnit\",{get:function(){return e.isBaseUnit(this.unit)},enumerable:!0,configurable:!0}),t.prototype.toUnit=function(i){return new t(e.convertUnit(this.value,this.unit,i),i)},t.prototype.toBaseUnit=function(){return this.toUnit(e.baseUnitForUnit(this.unit))},t.prototype.toDecimalString=function(t,i){return void 0===t&&(t=2),n.formatDecimal(this.value,this.unit,t,i)},t}()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"./unitFormatUtils\"],function(r,t,e){function a(r,t,a,n){return void 0===a&&(a=2),void 0===n&&(n=\"abbr\"),e.formatDecimal(r.toUnit(t).value,t,a,n)}function n(r,t,a){if(void 0===t&&(t=2),void 0===a&&(a=\"abbr\"),\"length\"!==r.measure)throw new Error(\"quantity is not a length\");return e.formatMetricLength(r.value,r.unit,t,a)}function i(r,t,a){if(void 0===t&&(t=2),void 0===a&&(a=\"abbr\"),\"length\"!==r.measure)throw new Error(\"quantity is not a length\");return e.formatMetricVerticalLength(r.value,r.unit,t,a)}function o(r,t,a){if(void 0===t&&(t=2),void 0===a&&(a=\"abbr\"),\"area\"!==r.measure)throw new Error(\"quantity is not an area\");return e.formatMetricArea(r.value,r.unit,t,a)}function u(r,t,a){if(void 0===t&&(t=2),void 0===a&&(a=\"abbr\"),\"length\"!==r.measure)throw new Error(\"quantity is not a length\");return e.formatImperialLength(r.value,r.unit,t,a)}function f(r,t,a){if(void 0===t&&(t=2),void 0===a&&(a=\"abbr\"),\"length\"!==r.measure)throw new Error(\"quantity is not a length\");return e.formatImperialVerticalLength(r.value,r.unit,t,a)}function l(r,t,a){if(void 0===t&&(t=2),void 0===a&&(a=\"abbr\"),\"area\"!==r.measure)throw new Error(\"quantity is not an area\");return e.formatImperialArea(r.value,r.unit,t,a)}function m(r){if(\"angle\"!==r.measure)throw new Error(\"quantity is not an angle\");return e.formatDMS(r.value,r.unit)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.formatDecimal=a,t.formatMetricLength=n,t.formatMetricVerticalLength=i,t.formatMetricArea=o,t.formatImperialLength=u,t.formatImperialVerticalLength=f,t.formatImperialArea=l,t.formatDMS=m});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([],function(){return function(e,r){return Object.defineProperty?Object.defineProperty(e,\"raw\",{value:r}):(e.raw=r,e)}});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([],function(){return function(e,n){var t={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&n.indexOf(r)<0&&(t[r]=e[r]);if(null!=e&&\"function\"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)n.indexOf(r[o])<0&&(t[r[o]]=e[r[o]]);return t}});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../core/maybe\",\"../../../core/libs/gl-matrix-2/mat4\",\"../../../core/libs/gl-matrix-2/vec3\",\"../../../layers/graphics/dehydratedFeatures\",\"../layers/graphics/graphicUtils\",\"../support/stack\",\"../webgl-engine/lib/Geometry\",\"../webgl-engine/lib/GeometryUtil\",\"../webgl-engine/materials/DefaultMaterial\",\"../../interactive/Manipulator3D\"],function(e,t,a,r,i,n,o,c,l,s,u,m){function p(e,t){var a=1!==t,r=new u({diffuse:e,transparent:a,writeDepth:!a,cullFace:2,opacity:t,castShadows:!1,softwareInstanced:!0},\"manipulator\");return r.renderOccluded=4,r}function v(e,t,a){return new m.Manipulator3D({view:e,renderObjects:[{geometry:new l(s.createSphereGeometry(1,32,32),\"manipulator\"),material:p(t,a)}]})}function g(e,t,a,n){var o=i.vec3.subtract(c.sv3d.get(),e,a),l=i.vec3.cross(c.sv3d.get(),n,o),s=d(o,l,a,c.sm4d.get());r.mat4.invert(s,s);var u=i.vec3.transformMat4(c.sv3d.get(),t,s);return Math.atan2(u[1],u[0])}function d(e,t,a,r){var n=i.vec3.normalize(c.sv3d.get(),e),o=i.vec3.normalize(c.sv3d.get(),t),l=i.vec3.cross(c.sv3d.get(),n,o);return r[0]=n[0],r[1]=n[1],r[2]=n[2],r[3]=0,r[4]=o[0],r[5]=o[1],r[6]=o[2],r[7]=0,r[8]=l[0],r[9]=l[1],r[10]=l[2],r[11]=0,r[12]=a[0],r[13]=a[1],r[14]=a[2],r[15]=1,r}function f(e,t){var r=e.view.getViewForGraphic(t),i=a.isSome(r)&&\"computeAttachmentOrigin\"in r?r.computeAttachmentOrigin(t,e.view.spatialReference):null;a.isSome(i)?e.elevationAlignedLocation=i:h(e,t.geometry)}function h(e,t){if(!a.isNone(t)){var r=o.computeCentroid(t);a.isNone(r)||(e.location=n.hydrateGeometry(r))}}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createManipulatorMaterial=p,t.createSphereManipulator=v,t.calculateInputRotationTransform=g,t.calculateTranslateRotateFromBases=d,t.placeManipulatorAtGraphic=f});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/tsSupport/extendsHelper\",\"../../../../../core/libs/gl-matrix-2/vec2f64\",\"../../../../../core/libs/gl-matrix-2/vec3\",\"../../../../../core/libs/gl-matrix-2/vec3f64\",\"../../../../../core/libs/gl-matrix-2/vec4\",\"../../../../../core/libs/gl-matrix-2/vec4f64\",\"../../../webgl-engine/lib/glUtil3D\",\"../../../webgl-engine/lib/Util\",\"../../../webgl-engine/materials/internal/MaterialUtil\",\"../../../webgl-engine/shaders/LaserLinePrograms\",\"../../../../webgl/renderState\"],function(e,t,i,r,n,o,s,c,a,f,l,p,h){function u(e,t,i,r){var o=m,c=v;n.vec3.transformMat4(o,t,r),n.vec3.copy(c,i),c[3]=0,s.vec4.transformMat4(c,c,r),s.vec4.set(e,c[0],c[1],c[2],-n.vec3.dot(c,o))}var m=o.vec3f64.create(),v=c.vec4f64.create(),_={glowColor:[1,.5,0],glowWidth:8,innerColor:[1,1,1],innerWidth:1,globalAlpha:.75};return function(){function e(e,t){void 0===t&&(t={}),this._projInfo=c.vec4f64.create(),this._zScale=r.vec2f64.create(),this._focusPlaneActive=!1,this._focusSphereActive=!1,this._segmentActive=!1,this._focusPosition=o.vec3f64.create(),this._focusSpherePosition=o.vec3f64.create(),this._segmentStartPosition=o.vec3f64.create(),this._segmentEndPosition=o.vec3f64.create(),this.canRender=!0,this._tempNormal=o.vec3f64.create(),this._tempDir=o.vec3f64.create(),this._tempUp=o.vec3f64.create(),this._tempVec3=o.vec3f64.create(),this._tempVec4=c.vec4f64.create(),this._renderCoordsHelper=e,this._params=l.copyParameters(t,_)}return Object.defineProperty(e.prototype,\"renderSlots\",{get:function(){return[14]},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"needsLinearDepth\",{get:function(){return!0},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"focusPlaneActive\",{get:function(){return this._focusPlaneActive},set:function(e){e!==this._focusPlaneActive&&(this._focusPlaneActive=e,this._requestRender())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"focusSphereActive\",{get:function(){return this._focusSphereActive},set:function(e){e!==this._focusSphereActive&&(this._focusSphereActive=e,this._requestRender())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"segmentActive\",{get:function(){return this._segmentActive},set:function(e){e!==this._segmentActive&&(this._segmentActive=e,this._requestRender())},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"focusPosition\",{get:function(){return this._focusPosition},set:function(e){n.vec3.copy(this._focusPosition,e),this._requestRender()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"focusSpherePosition\",{get:function(){return this._focusSpherePosition},set:function(e){n.vec3.copy(this._focusSpherePosition,e),this._requestRender()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"segmentStartPosition\",{get:function(){return this._segmentStartPosition},set:function(e){n.vec3.copy(this._segmentStartPosition,e),this._requestRender()},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"segmentEndPosition\",{get:function(){return this._segmentEndPosition},set:function(e){n.vec3.copy(this._segmentEndPosition,e),this._requestRender()},enumerable:!0,configurable:!0}),e.prototype.setParameterValues=function(e){l.updateParameters(this._params,e)&&this._requestRender()},e.prototype.initializeRenderContext=function(e){this._initContext=e;var t=e.rctx;this._quadVAO=a.createQuadVAO(t),this._laserLineProgram=e.programRep.getProgram(p.program),this._laserLinePipelineState=h.makePipelineState({blending:h.simpleBlendingParams(1,771),colorWrite:h.defaultColorWriteParams})},e.prototype.uninitializeRenderContext=function(){this._quadVAO.dispose(),this._quadVAO=null,this._laserLineProgram=null,this._projInfo=null},e.prototype.render=function(e){var t=e.rctx,i=e.camera,r=this._renderCoordsHelper,o=this._laserLineProgram,s=this._projInfo,c=this._zScale;if(t.bindProgram(o),t.setPipelineState(this._laserLinePipelineState),f.inverseProjectionInfo(i.projectionMatrix,i.fullWidth,i.fullHeight,s,c),o.setUniform4fv(\"projInfo\",s),o.setUniform2fv(\"zScale\",c),o.setUniform2f(\"nearFar\",i.near,i.far),o.setUniform1f(\"maxPixelDistance\",2*i.computeScreenPixelSizeAt(this._focusPosition)),this._focusPlaneActive){var a=this._focusPosition,l=this._tempVec3,p=this._tempVec4;r.worldUpAtPosition(a,l),u(p,a,l,i.viewMatrix),o.setUniform4fv(\"focusPlane\",p)}else o.setUniform4fv(\"focusPlane\",[0,0,0,1e10]);if(this._focusSphereActive){var h=this._tempVec4,a=this._tempVec3;n.vec3.copy(h,this._focusSpherePosition),n.vec3.transformMat4(h,h,i.viewMatrix),n.vec3.copy(a,this._focusPosition),n.vec3.transformMat4(a,a,i.viewMatrix),h[3]=n.vec3.distance(h,a),o.setUniform4fv(\"focusSphere\",h)}else o.setUniform4fv(\"focusSphere\",[0,0,0,1e10]);if(this._segmentActive){var v=this._tempVec4,_=this._tempVec3,g=this._tempUp,d=this._tempDir,P=this._tempNormal;n.vec3.lerp(_,this._segmentStartPosition,this._segmentEndPosition,.5),r.worldUpAtPosition(_,g),n.vec3.subtract(d,this._segmentEndPosition,this._segmentStartPosition),n.vec3.normalize(d,d),n.vec3.cross(P,g,d),n.vec3.normalize(P,P),u(v,this._segmentStartPosition,P,i.viewMatrix),o.setUniform4fv(\"segmentPlane\",v)}else o.setUniform4fv(\"segmentPlane\",[0,0,0,1e10]);var b=m;n.vec3.copy(b,this._segmentStartPosition),r.setAltitude(0,b),n.vec3.transformMat4(b,b,i.viewMatrix),o.setUniform3fv(\"segmentStart\",b);var y=m;n.vec3.copy(y,this._segmentEndPosition),r.setAltitude(0,y),n.vec3.transformMat4(y,y,i.viewMatrix),o.setUniform3fv(\"segmentEnd\",y),o.setUniform1i(\"depthMap\",0),t.bindTexture(e.offscreenRenderingHelper.linearDepthTexture,0);var S=e.camera.pixelRatio;return o.setUniform3fv(\"innerColor\",this._params.innerColor),o.setUniform1f(\"innerWidth\",this._params.innerWidth*S),o.setUniform3fv(\"glowColor\",this._params.glowColor),o.setUniform1f(\"glowWidth\",this._params.glowWidth*S),o.setUniform1f(\"globalAlpha\",this._params.globalAlpha),t.bindVAO(this._quadVAO),t.drawArrays(5,0,4),!0},e.prototype._requestRender=function(){this._initContext&&this._initContext.requestRender()},e}()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../overlay/LineOverlayItem\",\"../../../../overlay/TextOverlayItem\"],function(t,e,i,o){return function(){function t(t){this._textItem=new o({visible:!1}),this._calloutItem=new i({visible:!1,width:2}),this._visible=!1,this._calloutVisible=!0,t&&(this.fontSize=t)}return Object.defineProperty(t.prototype,\"textItem\",{get:function(){return this._textItem},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"calloutItem\",{get:function(){return this._calloutItem},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"text\",{get:function(){return this._textItem.text},set:function(t){this._textItem.text=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"fontSize\",{get:function(){return this._textItem.fontSize},set:function(t){this._textItem.fontSize=t},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"visible\",{get:function(){return this._visible},set:function(t){this._visible=t,this._updateVisibility()},enumerable:!0,configurable:!0}),t.prototype.addToView=function(t){t.overlay.items.addMany([this._textItem,this._calloutItem])},t.prototype.removeFromView=function(t){t.overlay&&!t.overlay.destroyed&&t.overlay.items.removeMany([this._textItem,this._calloutItem])},t.prototype.updatePosition=function(t,e){if(e){var i=e[0]-t[0],o=e[1]-t[1];this._textItem.position=[e[0],e[1]],this._textItem.anchor=Math.abs(i)>Math.abs(o)?i>0?\"left\":\"right\":o>0?\"top\":\"bottom\",this._calloutItem.startPosition=[t[0],t[1]],this._calloutItem.endPosition=[e[0],e[1]],this._calloutVisible=!0}else this._textItem.position=[t[0],t[1]],this._textItem.anchor=\"center\",this._calloutVisible=!1},t.prototype._updateVisibility=function(){this._textItem.visible=this._visible,this._calloutItem.visible=this._visible&&this._calloutVisible},t}()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/libs/gl-matrix-2/vec3\",\"../../../../../core/libs/gl-matrix-2/vec3f64\",\"./viewUtils\"],function(e,i,t,c,r){return function(){function e(){this.origin=c.vec3f64.create(),this.start=c.vec3f64.create(),this.end=c.vec3f64.create()}return e.prototype.update=function(e,i,c){if(t.vec3.copy(this.start,e),t.vec3.copy(this.end,i),c)switch(c){case\"start\":t.vec3.copy(this.origin,this.start);break;case\"center\":r.midpoint([e,i],this.origin);break;case\"end\":t.vec3.copy(this.origin,this.end);break;default:t.vec3.copy(this.origin,c)}else r.midpoint([e,i],this.origin)},e}()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/libs/gl-matrix-2/vec3\",\"../../../../../core/libs/gl-matrix-2/vec3f64\",\"../../../support/mathUtils\",\"../../../support/projectionUtils\"],function(t,e,i,o,r,n){var s;return function(t){var e=function(){function t(t,e){this._startPosition=o.vec3f64.create(),this._endPosition=o.vec3f64.create(),i.vec3.copy(this._startPosition,t),i.vec3.copy(this._endPosition,e)}return t.prototype.eval=function(t,e){i.vec3.lerp(e,this._startPosition,this._endPosition,t)},t}();t.Linear=e;var s=function(){function t(t,e,i,r){this._startPosition=o.vec3f64.create(),this._endPosition=o.vec3f64.create(),n.vectorToVector(t,i,this._startPosition,n.SphericalECEFSpatialReference),n.vectorToVector(e,i,this._endPosition,n.SphericalECEFSpatialReference),this._destSR=r}return t.prototype.eval=function(t,e){r.slerp(this._startPosition,this._endPosition,t,e),n.vectorToVector(e,n.SphericalECEFSpatialReference,e,this._destSR)},t}();t.Spherical=s}(s||(s={})),s});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/unitUtils\"],function(e,t,r){return function(){function e(e){void 0===e&&(e=null),this.spatialReference=e,this._updateNormalizationFactors}return Object.defineProperty(e.prototype,\"spatialReference\",{get:function(){return this._spatialReference},set:function(e){e!==this._spatialReference&&(this._spatialReference=e,this._updateNormalizationFactors())},enumerable:!0,configurable:!0}),e.prototype.normalizeDistance=function(e){return e*this._metersPerDistanceUnit},e.prototype.normalizeElevation=function(e){return e*this._metersPerElevationUnit},e.prototype.normalizeArea=function(e){return e*this._squareMetersPerAreaUnit},e.prototype._updateNormalizationFactors=function(){this._metersPerDistanceUnit=r.getMetersPerUnitForSR(this._spatialReference,1),this._metersPerElevationUnit=r.getMetersPerUnitForSR(this._spatialReference,1),this._squareMetersPerAreaUnit=this._metersPerDistanceUnit*this._metersPerDistanceUnit},e}()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/screenUtils\",\"../../../../../core/libs/gl-matrix-2/vec2\",\"../../../../../core/libs/gl-matrix-2/vec3\",\"../../../../../core/libs/gl-matrix-2/vec3f64\",\"./viewUtils\"],function(e,r,t,n,o,c,a){function i(e){switch(e){case\"top\":return\"bottom\";case\"right\":return\"left\";case\"bottom\":return\"top\";case\"left\":return\"right\"}}function s(e,r,t){return e.projectPoint(r,S),!(S[2]<0||S[2]>1)&&(e.renderToScreen(S,t),!0)}function l(e,r,t){var n=s(t,r,h);return n&&e.updatePosition(h,null),n}function u(e,r,t,o,c,i){if(!r)return!1;a.screenSpaceTangent(r.start,r.end,b,e),n.vec2.set(f,-b[1],b[0]);var s=!1;switch(o){case\"top\":s=f[1]<0;break;case\"bottom\":s=f[1]>0;break;case\"left\":s=f[0]>0;break;case\"right\":s=f[0]<0}if(s&&n.vec2.negate(f,f),0===n.vec2.length(f))switch(o){case\"top\":f[1]=1;break;case\"bottom\":f[1]=-1;break;case\"left\":f[0]=-1;break;case\"right\":f[0]=1}return e.projectPoint(r.origin,S),!(S[2]<0||S[2]>1)&&(e.renderToScreen(S,c),n.vec2.scale(f,f,t*e.pixelRatio),n.vec2.add(f,f,S),e.renderToScreen(f,i),!0)}function d(e,r,t,n,o){var c=u(o,r,t,n,h,y);return c&&e.updatePosition(h,y),c}function p(e,r,t,o,c,i){return!(!r||!t)&&(a.screenSpaceTangent(r.end,r.start,b,e),a.screenSpaceTangent(t.start,t.end,m,e),n.vec2.add(f,b,m),n.vec2.negate(f,f),n.vec2.normalize(f,f),e.projectPoint(r.end,S),!(S[2]<0||S[2]>1)&&(e.renderToScreen(S,c),n.vec2.scale(f,f,o*e.pixelRatio),n.vec2.add(f,f,S),e.renderToScreen(f,i),!0))}function v(e,r,t,c,a,i){return e.projectPoint(r,S),o.vec3.add(T,r,t),e.projectPoint(T,g),!(S[2]<0||S[2]>1||g[2]<0||g[2]>1)&&(n.vec2.subtract(f,g,S),n.vec2.normalize(f,f),e.renderToScreen(S,a),n.vec2.scale(f,f,c*e.pixelRatio),n.vec2.add(f,f,S),e.renderToScreen(f,i),!0)}function P(e,r,t,n,o){var c=p(o,r,t,n,h,y);return c&&e.updatePosition(h,y),c}Object.defineProperty(r,\"__esModule\",{value:!0}),r.mirrorPosition=i,r.computeLabelPositionFromPoint=s,r.positionLabelOnPoint=l,r.computeLabelPositionFromSegment=u,r.positionLabelOnSegment=d,r.computeLabelPositionFromCorner=p,r.computeLabelPositionFromPlane=v,r.positionLabelOnCorner=P;var b=t.createRenderScreenPointArray(),m=t.createRenderScreenPointArray(),f=t.createRenderScreenPointArray(),S=t.createRenderScreenPointArray3(),g=t.createRenderScreenPointArray3(),T=c.vec3f64.create(),h=t.createScreenPointArray(),y=t.createScreenPointArray()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/lang\",\"../../../../../core/screenUtils\",\"../../../../../core/libs/gl-matrix-2/mat4\",\"../../../../../core/libs/gl-matrix-2/vec2\",\"../../../../../core/libs/gl-matrix-2/vec3\",\"../../../../../core/libs/gl-matrix-2/vec3f64\"],function(e,r,t,n,c,a,i,o){function s(e,r){var n=t.mixin({},e),c=t.clone(r);return t.mixin(n,c),n}function l(e,r,t,n){for(;e.length<r;)e.push(t());if(n)for(;e.length>r;){var c=e.pop();n(c)}else e.length=r}function v(e,r,t){c.mat4.identity(t),c.mat4.translate(t,t,r),i.vec3.set(m,e,e,e),c.mat4.scale(t,t,m)}function f(e,r){if(i.vec3.set(r,0,0,0),e.length>0){for(var t=0;t<e.length;++t)i.vec3.add(r,r,e[t]);i.vec3.scale(r,r,1/e.length)}}function d(e,r,t,n){n.projectPoint(e,S),n.projectPoint(r,A),a.vec2.subtract(t,h,x),a.vec2.normalize(t,t)}function u(e,r,t){var c=t._stage.getCamera();t.renderCoordsHelper.toRenderCoords(e,P),c.projectPoint(P,y),n.renderArrayToScreen(t,y,r)}function p(e,r,t){return u(e,j,t),u(r,T,t),a.vec2.distance(j,T)}function g(e,r,t){return u(e,b,t),a.vec2.distance(b,r)}Object.defineProperty(r,\"__esModule\",{value:!0});var m=o.vec3f64.create();r.copyParameter=s,r.resizeArray=l,r.scaleTranslateMatrix=v,r.midpoint=f,r.screenSpaceTangent=d,r.projectPoint=u,r.pointToPointScreenDistance=p,r.pointToScreenPositionDistance=g;var P=o.vec3f64.create(),y=n.createRenderScreenPointArray3(),S=n.createRenderScreenPointArray3(),x=S,A=n.createRenderScreenPointArray3(),h=A,b=n.createScreenPointArray(),j=n.createScreenPointArray(),T=n.createScreenPointArray()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/mathUtils\",\"../../../../core/maybe\",\"../../../../core/libs/gl-matrix-2/mat4\",\"../../../../core/libs/gl-matrix-2/mat4f64\",\"../../../../core/libs/gl-matrix-2/vec2f64\",\"../../../../core/libs/gl-matrix-2/vec3f64\",\"../../../../core/libs/gl-matrix-2/vec4\",\"../../../../core/libs/gl-matrix-2/vec4f64\",\"../../../../geometry/support/aaBoundingBox\",\"../../../../geometry/support/aaBoundingRect\",\"../../../../geometry/support/centroid\",\"../../../../geometry/support/coordsUtils\",\"../../../../layers/graphics/dehydratedFeatures\",\"../../support/projectionUtils\"],function(e,t,r,n,i,o,a,l,u,s,m,c,f,v,d,h){function p(e,t){if(\"point\"===e.type)return b(e,t,!1);if(d.isHydratedGeometry(e))switch(e.type){case\"extent\":return b(e.center,t,!1);case\"polygon\":return b(e.centroid,t,!1);case\"polyline\":return b(g(e),t,!0);case\"mesh\":return b(e.extent.center,t,!1)}else switch(e.type){case\"extent\":return b(y(e),t,!0);case\"polygon\":return b(x(e),t,!0);case\"polyline\":return b(g(e),t,!0)}}function g(e){var t=e.paths[0];if(!t||0===t.length)return null;var r=v.getPointOnPath(t,v.getPathLength(t)/2);return d.makeDehydratedPoint(r[0],r[1],r[2],e.spatialReference)}function y(e){var t=r.isFinite(e.zmin);return d.makeDehydratedPoint(.5*(e.xmax+e.xmin),.5*(e.ymax+e.ymin),t?.5*(e.zmax+e.zmin):void 0,e.spatialReference)}function x(e){var t=e.rings[0];if(!t||0===t.length)return null;var r=f.ringsCentroid(e.rings,e.hasZ);return d.makeDehydratedPoint(r[0],r[1],r[2],e.spatialReference)}function b(e,t,r){var n=r?e:d.clonePoint(e);return t&&e?h.pointToPoint(e,n,t)?n:null:n}function P(e,t,r){if(e){t||(t=c.create());var n=e,i=.5*n.width*(r-1),o=.5*n.height*(r-1);return n.width<1e-7*n.height?i+=o/20:n.height<1e-7*n.width&&(o+=i/20),u.vec4.set(t,n.xmin-i,n.ymin-o,n.xmax+i,n.ymax+o),t}return null}function S(e,t){for(var r=0;r<e.geometries.length;++r){var n=e.geometries[r].data,i=n.vertexAttributes.auxpos1;i&&i.data[3]!==t&&(i.data[3]=t,e.geometryVertexAttrsUpdated(r))}}function V(e,t){var r=s.vec4f64.clone(s.vec4f64.ONES);return n.isSome(e)&&(r[0]=e[0],r[1]=e[1],r[2]=e[2]),n.isSome(t)?r[3]=t:n.isSome(e)&&e.length>3&&(r[3]=e[3]),r}function A(e,t,r,i,o,a){void 0===a&&(a=[0,0,0,0]);for(var l=0;l<3;++l)n.isSome(e)&&null!=e[l]?a[l]=e[l]:n.isSome(r)&&null!=r[l]?a[l]=r[l]:a[l]=o[l];return n.isSome(t)?a[3]=t:n.isSome(i)?a[3]=i:a[3]=o[3],a}function R(e,t,r,n){void 0===e&&(e=l.vec3f64.ONES),void 0===n&&(n=1);var i=new Array(3);if(null==t||null==r)i[0]=1,i[1]=1,i[2]=1;else{for(var o=void 0,a=0,u=2;u>=0;u--){var s=e[u],m=void 0,c=null!=s,f=0===u&&!o&&!c,v=r[u];\"symbolValue\"===s||f?m=0!==v?t[u]/v:1:c&&\"proportional\"!==s&&isFinite(s)&&(m=0!==v?s/v:1),null!=m&&(i[u]=m,o=m,a=Math.max(a,Math.abs(m)))}for(var u=2;u>=0;u--)null==i[u]?i[u]=o:0===i[u]&&(i[u]=.001*a)}for(var u=2;u>=0;u--)i[u]/=n;return l.vec3f64.fromArray(i)}function w(e,t){var r=t.isPrimitive,n=t.width,i=t.depth,o=t.height,a=r?10:1;if(null==n&&null==o&&null==i)return[a*e[0],a*e[1],a*e[2]];for(var u,s=l.vec3f64.fromValues(n,i,o),m=0;m<3;m++){var c=s[m];if(null!=c){u=c/e[m];break}}for(var m=0;m<3;m++)null==s[m]&&(s[m]=e[m]*u);return s}function z(e){return null!=e.isPrimitive}function D(e){return z(e)&&(e=[e.width,e.depth,e.height]),M(e)?null:\"Symbol sizes may not be negative values\"}function M(e){if(Array.isArray(e)){for(var t=0,r=e;t<r.length;t++){if(!M(r[t]))return!1}return!0}return null==e||e>=0}function O(e,t,r,n){void 0===n&&(n=o.mat4f64.create());var a=e||0,l=t||0,u=r||0;return 0!==a&&i.mat4.rotateZ(n,n,-a/180*Math.PI),0!==l&&i.mat4.rotateX(n,n,l/180*Math.PI),0!==u&&i.mat4.rotateY(n,n,u/180*Math.PI),n}function B(e,t){return null!=t.minDemResolution?t.minDemResolution:m.isPoint(e)?t.minDemResolutionForPoints:.01*m.maximumDimension(e)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.computeCentroid=p,t.enlargeExtent=P,t.updateVertexAttributeAuxpos1w=S,t.mixinColorAndOpacity=V,t.overrideColor=A,t.computeObjectScale=R,t.computeSizeWithResourceSize=w,t.validateSymbolLayerSize=D,t.isValidSize=M,t.computeObjectRotation=O,t.demResolutionForBoundingBox=B,t.namedAnchorToHUDMaterialAnchorPos={\"bottom-left\":a.vec2f64.fromValues(0,0),bottom:a.vec2f64.fromValues(.5,0),\"bottom-right\":a.vec2f64.fromValues(1,0),left:a.vec2f64.fromValues(0,.5),center:a.vec2f64.fromValues(.5,.5),right:a.vec2f64.fromValues(1,.5),\"top-left\":a.vec2f64.fromValues(0,1),top:a.vec2f64.fromValues(.5,1),\"top-right\":a.vec2f64.fromValues(1,1)}});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../core/tsSupport/assignHelper\",\"../../../request\"],function(e,t,r,n){function o(e){for(var t=atob(e.split(\",\")[1]),r=e.split(\",\")[0].split(\":\")[1].split(\";\")[0],n=new ArrayBuffer(t.length),o=new Uint8Array(n),i=0;i<t.length;i++)o[i]=t.charCodeAt(i);return new Blob([n],{type:r})}function i(e,t){return n(e,r({responseType:\"image\"},t)).then(function(e){return e.data})}Object.defineProperty(t,\"__esModule\",{value:!0}),t.dataURItoBlob=o,t.requestImage=i});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../../../core/shaderModules/interfaces\"],function(o,l,e,n){function a(o){o.vertex.code.add(n.glsl(s||(s=e([\"\\n    vec4 decodeSymbolColor(vec4 symbolColor, out int colorMixMode) {\\n      float symbolAlpha = 0.0;\\n\\n      const float maxTint = 85.0;\\n      const float maxReplace = 170.0;\\n      const float scaleAlpha = 3.0;\\n\\n      if (symbolColor.a > maxReplace) {\\n        colorMixMode = \",\";\\n        symbolAlpha = scaleAlpha * (symbolColor.a - maxReplace);\\n      } else if (symbolColor.a > maxTint) {\\n        colorMixMode = \",\";\\n        symbolAlpha = scaleAlpha * (symbolColor.a - maxTint);\\n      } else if (symbolColor.a > 0.0) {\\n        colorMixMode = \",\";\\n        symbolAlpha = scaleAlpha * symbolColor.a;\\n      } else {\\n        colorMixMode = \",\";\\n        symbolAlpha = 0.0;\\n      }\\n\\n      return vec4(symbolColor.r, symbolColor.g, symbolColor.b, symbolAlpha);\\n    }\\n  \"],[\"\\n    vec4 decodeSymbolColor(vec4 symbolColor, out int colorMixMode) {\\n      float symbolAlpha = 0.0;\\n\\n      const float maxTint = 85.0;\\n      const float maxReplace = 170.0;\\n      const float scaleAlpha = 3.0;\\n\\n      if (symbolColor.a > maxReplace) {\\n        colorMixMode = \",\";\\n        symbolAlpha = scaleAlpha * (symbolColor.a - maxReplace);\\n      } else if (symbolColor.a > maxTint) {\\n        colorMixMode = \",\";\\n        symbolAlpha = scaleAlpha * (symbolColor.a - maxTint);\\n      } else if (symbolColor.a > 0.0) {\\n        colorMixMode = \",\";\\n        symbolAlpha = scaleAlpha * symbolColor.a;\\n      } else {\\n        colorMixMode = \",\";\\n        symbolAlpha = 0.0;\\n      }\\n\\n      return vec4(symbolColor.r, symbolColor.g, symbolColor.b, symbolAlpha);\\n    }\\n  \"])),n.glsl.int(1),n.glsl.int(3),n.glsl.int(4),n.glsl.int(1)))}Object.defineProperty(l,\"__esModule\",{value:!0}),l.DecodeSymbolColor=a;var s});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../shaderModules/interfaces\"],function(e,d,r,a){function o(e,d){var o=e.fragment;switch(d.alphaDiscardMode){case 0:o.code.add(a.glsl(c||(c=r([\"\\n        void discardOrAdjustAlpha(inout vec4 color) {}\\n      \"],[\"\\n        void discardOrAdjustAlpha(inout vec4 color) {}\\n      \"]))));break;case 1:o.code.add(a.glsl(l||(l=r([\"\\n        void discardOrAdjustAlpha(inout vec4 color) {\\n          color.a = 1.0;\\n        }\\n      \"],[\"\\n        void discardOrAdjustAlpha(inout vec4 color) {\\n          color.a = 1.0;\\n        }\\n      \"]))));break;case 2:o.uniforms.add(\"textureAlphaCutoff\",\"float\"),o.code.add(a.glsl(t||(t=r([\"\\n        #define discardOrAdjustAlpha(color) { if (color.a < textureAlphaCutoff) { discard; } else { color.a = 1.0; } }\\n      \"],[\"\\n        #define discardOrAdjustAlpha(color) { if (color.a < textureAlphaCutoff) { discard; } else { color.a = 1.0; } }\\n      \"]))));break;case 3:e.fragment.uniforms.add(\"textureAlphaCutoff\",\"float\"),e.fragment.code.add(a.glsl(s||(s=r([\"\\n        #define discardOrAdjustAlpha(color) { if (color.a < textureAlphaCutoff) { discard; } }\\n      \"],[\"\\n        #define discardOrAdjustAlpha(color) { if (color.a < textureAlphaCutoff) { discard; } }\\n      \"]))))}}Object.defineProperty(d,\"__esModule\",{value:!0}),d.DiscardOrAdjustAlpha=o,d.TEXTURE_ALPHA_CUTOFF_DEFAULT=.1;var c,l,t,s});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../shaderModules/interfaces\"],function(e,r,a,n){function i(e,r){0===r.output&&r.receiveShadows?(e.varyings.add(\"linearDepth\",\"float\"),e.vertex.code.add(n.glsl(o||(o=a([\"\\n      void forwardLinearDepth() { linearDepth = gl_Position.w; }\\n    \"],[\"\\n      void forwardLinearDepth() { linearDepth = gl_Position.w; }\\n    \"]))))):1===r.output||3===r.output?(e.varyings.add(\"linearDepth\",\"float\"),e.vertex.uniforms.add(\"uCameraNearFar\",\"vec2\"),e.vertex.code.add(n.glsl(t||(t=a([\"\\n      void forwardLinearDepth() {\\n        linearDepth = (-position_view().z - uCameraNearFar[0]) / (uCameraNearFar[1] - uCameraNearFar[0]);\\n      }\\n    \"],[\"\\n      void forwardLinearDepth() {\\n        linearDepth = (-position_view().z - uCameraNearFar[0]) / (uCameraNearFar[1] - uCameraNearFar[0]);\\n      }\\n    \"]))))):e.vertex.code.add(n.glsl(d||(d=a([\"\\n      void forwardLinearDepth() {}\\n    \"],[\"\\n      void forwardLinearDepth() {}\\n    \"]))))}Object.defineProperty(r,\"__esModule\",{value:!0}),r.ForwardLinearDepth=i;var o,t,d});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../shaderModules/interfaces\"],function(o,e,c,n){function r(o){o.vertex.code.add(n.glsl(l||(l=c([\"\\n    vec4 offsetBackfacingClipPosition(vec4 posClip, vec3 posWorld, vec3 normalWorld, vec3 camPosWorld) {\\n      vec3 camToVert = posWorld - camPosWorld;\\n\\n      bool isBackface = dot(camToVert, normalWorld) > 0.0;\\n      if (isBackface) {\\n        posClip.z += 0.0000003 * posClip.w;\\n      }\\n      return posClip;\\n    }\\n  \"],[\"\\n    vec4 offsetBackfacingClipPosition(vec4 posClip, vec3 posWorld, vec3 normalWorld, vec3 camPosWorld) {\\n      vec3 camToVert = posWorld - camPosWorld;\\n\\n      bool isBackface = dot(camToVert, normalWorld) > 0.0;\\n      if (isBackface) {\\n        posClip.z += 0.0000003 * posClip.w;\\n      }\\n      return posClip;\\n    }\\n  \"]))))}Object.defineProperty(e,\"__esModule\",{value:!0}),e.Offset=r;var l});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../../../../core/libs/gl-matrix-2/vec3\",\"../../../../../core/libs/gl-matrix-2/vec3f64\",\"../shaderModules/interfaces\"],function(s,e,n,i,c,o){function a(s,e){e.slicePlaneEnabled?(s.extensions.add(\"GL_OES_standard_derivatives\"),s.fragment.uniforms.add(\"slicePlaneOrigin\",\"vec3\"),s.fragment.uniforms.add(\"slicePlaneBasis1\",\"vec3\"),s.fragment.uniforms.add(\"slicePlaneBasis2\",\"vec3\"),s.fragment.code.add(o.glsl(l||(l=n([\"\\n      struct SliceFactors {\\n        float front;\\n        float side0;\\n        float side1;\\n        float side2;\\n        float side3;\\n      };\\n\\n      SliceFactors calculateSliceFactors(vec3 pos) {\\n        vec3 rel = pos - slicePlaneOrigin;\\n\\n        vec3 slicePlaneNormal = -cross(slicePlaneBasis1, slicePlaneBasis2);\\n        float slicePlaneW = -dot(slicePlaneNormal, slicePlaneOrigin);\\n\\n        float basis1Len2 = dot(slicePlaneBasis1, slicePlaneBasis1);\\n        float basis2Len2 = dot(slicePlaneBasis2, slicePlaneBasis2);\\n\\n        float basis1Dot = dot(slicePlaneBasis1, rel);\\n        float basis2Dot = dot(slicePlaneBasis2, rel);\\n\\n        return SliceFactors(\\n          dot(slicePlaneNormal, pos) + slicePlaneW,\\n          -basis1Dot - basis1Len2,\\n          basis1Dot - basis1Len2,\\n          -basis2Dot - basis2Len2,\\n          basis2Dot - basis2Len2\\n        );\\n      }\\n\\n      bool sliceByFactors(SliceFactors factors) {\\n        return factors.front < 0.0\\n          && factors.side0 < 0.0\\n          && factors.side1 < 0.0\\n          && factors.side2 < 0.0\\n          && factors.side3 < 0.0;\\n      }\\n\\n      bool sliceByPlane(vec3 pos) {\\n        return sliceByFactors(calculateSliceFactors(pos));\\n      }\\n\\n      vec4 applySliceHighlight(vec4 color, vec3 pos) {\\n        SliceFactors factors = calculateSliceFactors(pos);\\n\\n        if (sliceByFactors(factors)) {\\n          return color;\\n        }\\n\\n        const float HIGHLIGHT_WIDTH = 1.0;\\n        const vec4 HIGHLIGHT_COLOR = vec4(0.0, 0.0, 0.0, 0.3);\\n\\n        factors.front /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.front);\\n        factors.side0 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side0);\\n        factors.side1 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side1);\\n        factors.side2 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side2);\\n        factors.side3 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side3);\\n\\n        float highlightFactor = (1.0 - step(0.5, factors.front))\\n          * (1.0 - step(0.5, factors.side0))\\n          * (1.0 - step(0.5, factors.side1))\\n          * (1.0 - step(0.5, factors.side2))\\n          * (1.0 - step(0.5, factors.side3));\\n\\n        return mix(color, vec4(HIGHLIGHT_COLOR.rgb, color.a), highlightFactor * HIGHLIGHT_COLOR.a);\\n      }\\n      #define rejectBySlice(_pos_) sliceByPlane(_pos_)\\n      #define discardBySlice(_pos_) { if (sliceByPlane(_pos_)) discard; }\\n      \"],[\"\\n      struct SliceFactors {\\n        float front;\\n        float side0;\\n        float side1;\\n        float side2;\\n        float side3;\\n      };\\n\\n      SliceFactors calculateSliceFactors(vec3 pos) {\\n        vec3 rel = pos - slicePlaneOrigin;\\n\\n        vec3 slicePlaneNormal = -cross(slicePlaneBasis1, slicePlaneBasis2);\\n        float slicePlaneW = -dot(slicePlaneNormal, slicePlaneOrigin);\\n\\n        float basis1Len2 = dot(slicePlaneBasis1, slicePlaneBasis1);\\n        float basis2Len2 = dot(slicePlaneBasis2, slicePlaneBasis2);\\n\\n        float basis1Dot = dot(slicePlaneBasis1, rel);\\n        float basis2Dot = dot(slicePlaneBasis2, rel);\\n\\n        return SliceFactors(\\n          dot(slicePlaneNormal, pos) + slicePlaneW,\\n          -basis1Dot - basis1Len2,\\n          basis1Dot - basis1Len2,\\n          -basis2Dot - basis2Len2,\\n          basis2Dot - basis2Len2\\n        );\\n      }\\n\\n      bool sliceByFactors(SliceFactors factors) {\\n        return factors.front < 0.0\\n          && factors.side0 < 0.0\\n          && factors.side1 < 0.0\\n          && factors.side2 < 0.0\\n          && factors.side3 < 0.0;\\n      }\\n\\n      bool sliceByPlane(vec3 pos) {\\n        return sliceByFactors(calculateSliceFactors(pos));\\n      }\\n\\n      vec4 applySliceHighlight(vec4 color, vec3 pos) {\\n        SliceFactors factors = calculateSliceFactors(pos);\\n\\n        if (sliceByFactors(factors)) {\\n          return color;\\n        }\\n\\n        const float HIGHLIGHT_WIDTH = 1.0;\\n        const vec4 HIGHLIGHT_COLOR = vec4(0.0, 0.0, 0.0, 0.3);\\n\\n        factors.front /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.front);\\n        factors.side0 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side0);\\n        factors.side1 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side1);\\n        factors.side2 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side2);\\n        factors.side3 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side3);\\n\\n        float highlightFactor = (1.0 - step(0.5, factors.front))\\n          * (1.0 - step(0.5, factors.side0))\\n          * (1.0 - step(0.5, factors.side1))\\n          * (1.0 - step(0.5, factors.side2))\\n          * (1.0 - step(0.5, factors.side3));\\n\\n        return mix(color, vec4(HIGHLIGHT_COLOR.rgb, color.a), highlightFactor * HIGHLIGHT_COLOR.a);\\n      }\\n      #define rejectBySlice(_pos_) sliceByPlane(_pos_)\\n      #define discardBySlice(_pos_) { if (sliceByPlane(_pos_)) discard; }\\n      \"])))),e.sliceHighlightDisabled?s.fragment.code.add(o.glsl(t||(t=n([\"\\n        #define highlightSlice(_color_, _pos_) (_color_)\\n      \"],[\"\\n        #define highlightSlice(_color_, _pos_) (_color_)\\n      \"])))):s.fragment.code.add(o.glsl(r||(r=n([\"\\n      #define highlightSlice(_color_, _pos_) applySliceHighlight(_color_, _pos_)\\n    \"],[\"\\n      #define highlightSlice(_color_, _pos_) applySliceHighlight(_color_, _pos_)\\n    \"]))))):s.fragment.code.add(o.glsl(f||(f=n([\"\\n      #define rejectBySlice(_pos_) false\\n      #define discardBySlice(_pos_) {}\\n      #define highlightSlice(_color_, _pos_) (_color_)\\n    \"],[\"\\n      #define rejectBySlice(_pos_) false\\n      #define discardBySlice(_pos_) {}\\n      #define highlightSlice(_color_, _pos_) (_color_)\\n    \"]))))}Object.defineProperty(e,\"__esModule\",{value:!0}),e.Slice=a,function(s){function e(e,n,i){s.bindUniforms(e,n,i.slicePlane,i.origin)}function n(s,e,n,c){e.slicePlaneEnabled&&(c?(i.vec3.subtract(d,n.origin,c),s.setUniform3fv(\"slicePlaneOrigin\",d)):s.setUniform3fv(\"slicePlaneOrigin\",n.origin),s.setUniform3fv(\"slicePlaneBasis1\",n.basis1),s.setUniform3fv(\"slicePlaneBasis2\",n.basis2))}s.bindUniformsWithOrigin=e,s.bindUniforms=n}(a=e.Slice||(e.Slice={}));var l,t,r,f,d=c.vec3f64.create()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../../../../core/libs/gl-matrix-2/mat4\",\"../../../../../core/libs/gl-matrix-2/mat4f32\",\"../shaderModules/interfaces\"],function(e,r,n,t,o,a){function i(e,r){r.linearDepth?e.vertex.code.add(a.glsl(s||(s=n([\"\\n    vec4 transformPositionWithDepth(mat4 proj, mat4 view, vec3 pos, vec2 nearFar, out float depth) {\\n      vec4 eye = view * vec4(pos, 1.0);\\n      depth = (-eye.z - nearFar[0]) / (nearFar[1] - nearFar[0]) ;\\n      return proj * eye;\\n    }\\n    \"],[\"\\n    vec4 transformPositionWithDepth(mat4 proj, mat4 view, vec3 pos, vec2 nearFar, out float depth) {\\n      vec4 eye = view * vec4(pos, 1.0);\\n      depth = (-eye.z - nearFar[0]) / (nearFar[1] - nearFar[0]) ;\\n      return proj * eye;\\n    }\\n    \"])))):e.vertex.code.add(a.glsl(p||(p=n([\"\\n    vec4 transformPosition(mat4 proj, mat4 view, vec3 pos) {\\n      // Make sure the order of operations is the same as in transformPositionWithDepth.\\n      return proj * (view * vec4(pos, 1.0));\\n    }\\n    \"],[\"\\n    vec4 transformPosition(mat4 proj, mat4 view, vec3 pos) {\\n      // Make sure the order of operations is the same as in transformPositionWithDepth.\\n      return proj * (view * vec4(pos, 1.0));\\n    }\\n    \"]))))}Object.defineProperty(r,\"__esModule\",{value:!0}),r.Transform=i,function(e){function r(e,r){t.mat4.translate(v,r.view,r.origin),e.setUniform3fv(\"localOrigin\",r.origin),e.setUniformMatrix4fv(\"view\",v)}e.bindUniforms=r}(i=r.Transform||(r.Transform={}));var s,p,v=o.mat4f32.create()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../util/DecodeNormal.glsl\",\"../../shaderModules/interfaces\"],function(e,r,n,o,l){function a(e,r){0===r.normalType&&(e.attributes.add(\"normal\",\"vec3\"),e.vertex.code.add(l.glsl(d||(d=n([\"\\n      vec3 normalModel() {\\n        return normal;\\n      }\\n    \"],[\"\\n      vec3 normalModel() {\\n        return normal;\\n      }\\n    \"]))))),1===r.normalType&&(e.include(o.DecodeNormal),e.attributes.add(\"normalCompressed\",\"vec2\"),e.vertex.code.add(l.glsl(t||(t=n([\"\\n      vec3 normalModel() {\\n        return decodeNormal(normalCompressed);\\n      }\\n    \"],[\"\\n      vec3 normalModel() {\\n        return decodeNormal(normalCompressed);\\n      }\\n    \"])))))}Object.defineProperty(r,\"__esModule\",{value:!0}),r.NormalAttribute=a;var d,t});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,t,o,i){function n(e){e.attributes.add(\"position\",\"vec3\"),e.vertex.code.add(i.glsl(r||(r=o([\"\\n    vec3 positionModel() { return position; }\\n  \"],[\"\\n    vec3 positionModel() { return position; }\\n  \"]))))}Object.defineProperty(t,\"__esModule\",{value:!0}),t.PositionAttribute=n;var r});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,t,i,n){function o(e,t){e.vertex.uniforms.add(\"symbolLineWidth\",\"float\"),t.vvSize?(e.attributes.add(\"sizeFeatureAttribute\",\"float\"),e.vertex.uniforms.add(\"vvSizeMinSize\",\"vec3\"),e.vertex.uniforms.add(\"vvSizeMaxSize\",\"vec3\"),e.vertex.uniforms.add(\"vvSizeOffset\",\"vec3\"),e.vertex.uniforms.add(\"vvSizeFactor\",\"vec3\"),e.vertex.code.add(n.glsl(r||(r=i([\"\\n    float getSize() {\\n      return symbolLineWidth * clamp(vvSizeOffset + sizeFeatureAttribute * vvSizeFactor, vvSizeMinSize, vvSizeMaxSize).x;\\n    }\\n    \"],[\"\\n    float getSize() {\\n      return symbolLineWidth * clamp(vvSizeOffset + sizeFeatureAttribute * vvSizeFactor, vvSizeMinSize, vvSizeMaxSize).x;\\n    }\\n    \"]))))):(e.attributes.add(\"size\",\"float\"),e.vertex.code.add(n.glsl(a||(a=i([\"\\n    float getSize(){\\n      return symbolLineWidth * size;\\n    }\\n    \"],[\"\\n    float getSize(){\\n      return symbolLineWidth * size;\\n    }\\n    \"]))))),t.vvOpacity?(e.attributes.add(\"opacityFeatureAttribute\",\"float\"),e.vertex.defines.addInt(\"VV_OPACITY_N\",8),e.vertex.code.add(n.glsl(v||(v=i([\"\\n    uniform float vvOpacityValues[VV_OPACITY_N];\\n    uniform float vvOpacityOpacities[VV_OPACITY_N];\\n\\n    float interpolateOpacity( float value ){\\n      if (value <= vvOpacityValues[0]) {\\n        return vvOpacityOpacities[0];\\n      }\\n\\n      for (int i = 1; i < VV_OPACITY_N; ++i) {\\n        if (vvOpacityValues[i] >= value) {\\n          float f = (value - vvOpacityValues[i-1]) / (vvOpacityValues[i] - vvOpacityValues[i-1]);\\n          return mix(vvOpacityOpacities[i-1], vvOpacityOpacities[i], f);\\n        }\\n      }\\n\\n      return vvOpacityOpacities[VV_OPACITY_N - 1];\\n    }\\n\\n    vec4 applyOpacity( vec4 color ){\\n      return vec4(color.xyz, interpolateOpacity(opacityFeatureAttribute));\\n    }\\n    \"],[\"\\n    uniform float vvOpacityValues[VV_OPACITY_N];\\n    uniform float vvOpacityOpacities[VV_OPACITY_N];\\n\\n    float interpolateOpacity( float value ){\\n      if (value <= vvOpacityValues[0]) {\\n        return vvOpacityOpacities[0];\\n      }\\n\\n      for (int i = 1; i < VV_OPACITY_N; ++i) {\\n        if (vvOpacityValues[i] >= value) {\\n          float f = (value - vvOpacityValues[i-1]) / (vvOpacityValues[i] - vvOpacityValues[i-1]);\\n          return mix(vvOpacityOpacities[i-1], vvOpacityOpacities[i], f);\\n        }\\n      }\\n\\n      return vvOpacityOpacities[VV_OPACITY_N - 1];\\n    }\\n\\n    vec4 applyOpacity( vec4 color ){\\n      return vec4(color.xyz, interpolateOpacity(opacityFeatureAttribute));\\n    }\\n    \"]))))):e.vertex.code.add(n.glsl(l||(l=i([\"\\n    vec4 applyOpacity( vec4 color ){\\n      return color;\\n    }\\n    \"],[\"\\n    vec4 applyOpacity( vec4 color ){\\n      return color;\\n    }\\n    \"])))),t.vvColor?(e.attributes.add(\"colorFeatureAttribute\",\"float\"),e.vertex.defines.addInt(\"VV_COLOR_N\",8),e.vertex.code.add(n.glsl(u||(u=i([\"\\n    uniform float vvColorValues[VV_COLOR_N];\\n    uniform vec4 vvColorColors[VV_COLOR_N];\\n\\n    vec4 interpolateColor( float value ) {\\n      if (value <= vvColorValues[0]) {\\n        return vvColorColors[0];\\n      }\\n\\n      for (int i = 1; i < VV_COLOR_N; ++i) {\\n        if (vvColorValues[i] >= value) {\\n          float f = (value - vvColorValues[i-1]) / (vvColorValues[i] - vvColorValues[i-1]);\\n          return mix(vvColorColors[i-1], vvColorColors[i], f);\\n        }\\n      }\\n\\n      return vvColorColors[VV_COLOR_N - 1];\\n    }\\n\\n    vec4 getColor(){\\n      return applyOpacity(interpolateColor(colorFeatureAttribute));\\n    }\\n    \"],[\"\\n    uniform float vvColorValues[VV_COLOR_N];\\n    uniform vec4 vvColorColors[VV_COLOR_N];\\n\\n    vec4 interpolateColor( float value ) {\\n      if (value <= vvColorValues[0]) {\\n        return vvColorColors[0];\\n      }\\n\\n      for (int i = 1; i < VV_COLOR_N; ++i) {\\n        if (vvColorValues[i] >= value) {\\n          float f = (value - vvColorValues[i-1]) / (vvColorValues[i] - vvColorValues[i-1]);\\n          return mix(vvColorColors[i-1], vvColorColors[i], f);\\n        }\\n      }\\n\\n      return vvColorColors[VV_COLOR_N - 1];\\n    }\\n\\n    vec4 getColor(){\\n      return applyOpacity(interpolateColor(colorFeatureAttribute));\\n    }\\n    \"]))))):(e.attributes.add(\"color\",\"vec4\"),e.vertex.code.add(n.glsl(c||(c=i([\"\\n    vec4 getColor(){\\n      return applyOpacity(color);\\n    }\\n    \"],[\"\\n    vec4 getColor(){\\n      return applyOpacity(color);\\n    }\\n    \"])))))}Object.defineProperty(t,\"__esModule\",{value:!0}),t.RibbonVertexPosition=o;var r,a,v,l,u,c});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,r,t,o){function d(e,r){1===r.attributeTextureCoordinates&&(e.attributes.add(\"uv0\",\"vec2\"),e.varyings.add(\"vuv0\",\"vec2\"),e.vertex.code.add(o.glsl(n||(n=t([\"\\n      void forwardTextureCoordinates() {\\n        vuv0 = uv0;\\n      }\\n    \"],[\"\\n      void forwardTextureCoordinates() {\\n        vuv0 = uv0;\\n      }\\n    \"]))))),2===r.attributeTextureCoordinates&&(e.attributes.add(\"uv0\",\"vec2\"),e.varyings.add(\"vuv0\",\"vec2\"),e.attributes.add(\"uvRegion\",\"vec4\"),e.varyings.add(\"vuvRegion\",\"vec4\"),e.vertex.code.add(o.glsl(v||(v=t([\"\\n      void forwardTextureCoordinates() {\\n        vuv0 = uv0;\\n        vuvRegion = uvRegion;\\n      }\\n    \"],[\"\\n      void forwardTextureCoordinates() {\\n        vuv0 = uv0;\\n        vuvRegion = uvRegion;\\n      }\\n    \"]))))),0===r.attributeTextureCoordinates&&e.vertex.code.add(o.glsl(u||(u=t([\"\\n      void forwardTextureCoordinates() {}\\n    \"],[\"\\n      void forwardTextureCoordinates() {}\\n    \"]))))}Object.defineProperty(r,\"__esModule\",{value:!0}),r.TextureCoordinateAttribute=d;var n,v,u});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(o,r,e,d){function l(o,r){r.attributeColor?(o.attributes.add(\"color\",\"vec4\"),o.varyings.add(\"vColor\",\"vec4\"),o.vertex.code.add(d.glsl(t||(t=e([\"\\n      void forwardVertexColor() { vColor = color; }\\n    \"],[\"\\n      void forwardVertexColor() { vColor = color; }\\n    \"])))),o.vertex.code.add(d.glsl(a||(a=e([\"\\n      void forwardNormalizedVertexColor() { vColor = color * 0.003921568627451; }\\n    \"],[\"\\n      void forwardNormalizedVertexColor() { vColor = color * 0.003921568627451; }\\n    \"]))))):o.vertex.code.add(d.glsl(n||(n=e([\"\\n      void forwardVertexColor() {}\\n      void forwardNormalizedVertexColor() {}\\n    \"],[\"\\n      void forwardVertexColor() {}\\n      void forwardNormalizedVertexColor() {}\\n    \"]))))}Object.defineProperty(r,\"__esModule\",{value:!0}),r.VertexColor=l;var t,a,n});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"./NormalAttribute.glsl\",\"../../shaderModules/interfaces\"],function(r,o,a,l,e){function m(r,o){0===o.normalType||1===o.normalType?(r.include(l.NormalAttribute,o),r.varyings.add(\"vNormalWorld\",\"vec3\"),r.varyings.add(\"vNormalView\",\"vec3\"),r.vertex.uniforms.add(\"uTransformNormal_GlobalFromModel\",\"mat3\"),r.vertex.uniforms.add(\"uTransformNormal_ViewFromGlobal\",\"mat3\"),r.vertex.code.add(e.glsl(n||(n=a([\"\\n      void forwardNormal() {\\n        vNormalWorld = uTransformNormal_GlobalFromModel * normalModel();\\n        vNormalView = uTransformNormal_ViewFromGlobal * vNormalWorld;\\n      }\\n    \"],[\"\\n      void forwardNormal() {\\n        vNormalWorld = uTransformNormal_GlobalFromModel * normalModel();\\n        vNormalView = uTransformNormal_ViewFromGlobal * vNormalWorld;\\n      }\\n    \"]))))):r.vertex.code.add(e.glsl(d||(d=a([\"\\n      void forwardNormal() {}\\n    \"],[\"\\n      void forwardNormal() {}\\n    \"]))))}Object.defineProperty(o,\"__esModule\",{value:!0}),o.VertexNormal=m,function(r){function o(r,o){r.setUniformMatrix4fv(\"viewNormal\",o.viewInvTransp)}r.bindUniforms=o}(m=o.VertexNormal||(o.VertexNormal={}));var n,d});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"./TextureCoordinateAttribute.glsl\",\"../util/TextureAtlasLookup.glsl\",\"../../shaderModules/interfaces\"],function(e,t,r,u,a,o){function n(e,t){e.include(u.TextureCoordinateAttribute,t),e.fragment.code.add(o.glsl(s||(s=r([\"\\n  struct TextureLookupParameter {\\n    vec2 uv;\\n    \",\"\\n  } vtc;\\n  \"],[\"\\n  struct TextureLookupParameter {\\n    vec2 uv;\\n    \",\"\\n  } vtc;\\n  \"])),t.supportsTextureAtlas?\"vec2 size;\":\"\")),1===t.attributeTextureCoordinates&&e.fragment.code.add(o.glsl(p||(p=r([\"\\n      vec4 textureLookup(sampler2D tex, TextureLookupParameter params) {\\n        return texture2D(tex, params.uv);\\n      }\\n    \"],[\"\\n      vec4 textureLookup(sampler2D tex, TextureLookupParameter params) {\\n        return texture2D(tex, params.uv);\\n      }\\n    \"])))),2===t.attributeTextureCoordinates&&(e.include(a.TextureAtlasLookup),e.fragment.code.add(o.glsl(x||(x=r([\"\\n    vec4 textureLookup(sampler2D tex, TextureLookupParameter params) {\\n        return textureAtlasLookup(tex, params.size, params.uv, vuvRegion);\\n      }\\n    \"],[\"\\n    vec4 textureLookup(sampler2D tex, TextureLookupParameter params) {\\n        return textureAtlasLookup(tex, params.size, params.uv, vuvRegion);\\n      }\\n    \"])))))}Object.defineProperty(t,\"__esModule\",{value:!0}),t.VertexTextureCoordinates=n;var s,p,x});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../util/ScreenSizePerspective.glsl\",\"../../shaderModules/interfaces\"],function(e,l,t,r,c){function n(e,l){var n=e.vertex.code;l.verticalOffsetEnabled&&(e.vertex.uniforms.add(\"verticalOffset\",\"vec4\"),l.screenSizePerspectiveEnabled&&(e.include(r.ScreenSizePerspective),e.vertex.uniforms.add(\"screenSizePerspectiveAlignment\",\"vec4\")),n.add(c.glsl(i||(i=t([\"\\n    vec3 calculateVerticalOffset(vec3 worldPos, vec3 localOrigin) {\\n      float viewDistance = length((view * vec4(worldPos, 1.0)).xyz);\\n    \"],[\"\\n    vec3 calculateVerticalOffset(vec3 worldPos, vec3 localOrigin) {\\n      float viewDistance = length((view * vec4(worldPos, 1.0)).xyz);\\n    \"])))),0===l.viewingMode?n.add(c.glsl(a||(a=t([\"\\n      vec3 worldNormal = normalize(worldPos + localOrigin);\\n    \"],[\"\\n      vec3 worldNormal = normalize(worldPos + localOrigin);\\n    \"])))):n.add(c.glsl(s||(s=t([\"\\n      vec3 worldNormal = vec3(0.0, 0.0, 1.0);\\n    \"],[\"\\n      vec3 worldNormal = vec3(0.0, 0.0, 1.0);\\n    \"])))),l.screenSizePerspectiveEnabled?n.add(c.glsl(o||(o=t([\"\\n      float cosAngle = dot(worldNormal, normalize(worldPos - camPos));\\n      float verticalOffsetScreenHeight = screenSizePerspectiveScaleFloat(verticalOffset.x, abs(cosAngle), viewDistance, screenSizePerspectiveAlignment);\\n    \"],[\"\\n      float cosAngle = dot(worldNormal, normalize(worldPos - camPos));\\n      float verticalOffsetScreenHeight = screenSizePerspectiveScaleFloat(verticalOffset.x, abs(cosAngle), viewDistance, screenSizePerspectiveAlignment);\\n    \"])))):n.add(c.glsl(f||(f=t([\"\\n      float verticalOffsetScreenHeight = verticalOffset.x;\\n    \"],[\"\\n      float verticalOffsetScreenHeight = verticalOffset.x;\\n    \"])))),n.add(c.glsl(v||(v=t([\"\\n      float worldOffset = clamp(verticalOffsetScreenHeight * verticalOffset.y * viewDistance, verticalOffset.z, verticalOffset.w);\\n      return worldNormal * worldOffset;\\n    }\\n    \"],[\"\\n      float worldOffset = clamp(verticalOffsetScreenHeight * verticalOffset.y * viewDistance, verticalOffset.z, verticalOffset.w);\\n      return worldNormal * worldOffset;\\n    }\\n    \"])))))}Object.defineProperty(l,\"__esModule\",{value:!0}),l.VerticalOffset=n;var i,a,s,o,f,v});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../util/RgbaFloatEncoding.glsl\",\"../../shaderModules/interfaces\"],function(t,e,a,n,l){function o(t,e){t.include(n.RgbaFloatEncoding),3===e.output?(t.extensions.add(\"GL_OES_standard_derivatives\"),t.fragment.code.add(l.glsl(r||(r=a([\"\\n      float _calculateFragDepth(const in float depth) {\\n        // calc polygon offset\\n        const float SLOPE_SCALE = 2.0;\\n        const float BIAS = 2.0 * .000015259;    // 1 / (2^16 - 1)\\n        float m = max(abs(dFdx(depth)), abs(dFdy(depth)));\\n        float result = depth + SLOPE_SCALE * m + BIAS;\\n        return clamp(result, .0, .999999);\\n      }\\n\\n      void outputDepth(float _linearDepth) {\\n        gl_FragColor = float2rgba(_calculateFragDepth(_linearDepth));\\n      }\\n    \"],[\"\\n      float _calculateFragDepth(const in float depth) {\\n        // calc polygon offset\\n        const float SLOPE_SCALE = 2.0;\\n        const float BIAS = 2.0 * .000015259;    // 1 / (2^16 - 1)\\n        float m = max(abs(dFdx(depth)), abs(dFdy(depth)));\\n        float result = depth + SLOPE_SCALE * m + BIAS;\\n        return clamp(result, .0, .999999);\\n      }\\n\\n      void outputDepth(float _linearDepth) {\\n        gl_FragColor = float2rgba(_calculateFragDepth(_linearDepth));\\n      }\\n    \"]))))):1===e.output&&t.fragment.code.add(l.glsl(p||(p=a([\"\\n      void outputDepth(float _linearDepth) {\\n        gl_FragColor = float2rgba(_linearDepth);\\n      }\\n    \"],[\"\\n      void outputDepth(float _linearDepth) {\\n        gl_FragColor = float2rgba(_linearDepth);\\n      }\\n    \"]))))}Object.defineProperty(e,\"__esModule\",{value:!0}),e.OutputDepth=o;var r,p});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,t,i,r){function o(e){e.fragment.uniforms.add(\"depthTex\",\"sampler2D\"),e.fragment.uniforms.add(\"highlightViewportPixelSz\",\"vec4\"),e.fragment.code.add(r.glsl(g||(g=i([\"\\n    void outputHighlight() {\\n      vec4 fragCoord = gl_FragCoord;\\n\\n      float sceneDepth = texture2D(depthTex, (fragCoord.xy - highlightViewportPixelSz.xy) * highlightViewportPixelSz.zw).r;\\n      if (fragCoord.z > sceneDepth + 5e-6) {\\n        gl_FragColor = vec4(1.0, 1.0, 0.0, 1.0);\\n      }\\n      else {\\n        gl_FragColor = vec4(1.0, 0.0, 1.0, 1.0);\\n      }\\n    }\\n  \"],[\"\\n    void outputHighlight() {\\n      vec4 fragCoord = gl_FragCoord;\\n\\n      float sceneDepth = texture2D(depthTex, (fragCoord.xy - highlightViewportPixelSz.xy) * highlightViewportPixelSz.zw).r;\\n      if (fragCoord.z > sceneDepth + 5e-6) {\\n        gl_FragColor = vec4(1.0, 1.0, 0.0, 1.0);\\n      }\\n      else {\\n        gl_FragColor = vec4(1.0, 0.0, 1.0, 1.0);\\n      }\\n    }\\n  \"]))))}Object.defineProperty(t,\"__esModule\",{value:!0}),t.OutputHighlight=o,function(e){function t(e,t,i){e.bindTexture(i.highlightDepthTexture,5),t.setUniform1i(\"depthTex\",5),t.setUniform4f(\"highlightViewportPixelSz\",0,0,1/i.viewport[2],1/i.viewport[3])}e.bindOutputHighlight=t}(o=t.OutputHighlight||(t.OutputHighlight={}));var g});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,n,t,a){function o(e){var n=e.fragment.code;n.add(a.glsl(r||(r=t([\"\\n    vec3 evaluateDiffuseIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float NdotNG)\\n    {\\n      return ((1.0 - NdotNG) * ambientGround + (1.0 + NdotNG) * ambientSky) * 0.5;\\n    }\\n    \"],[\"\\n    vec3 evaluateDiffuseIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float NdotNG)\\n    {\\n      return ((1.0 - NdotNG) * ambientGround + (1.0 + NdotNG) * ambientSky) * 0.5;\\n    }\\n    \"])))),n.add(a.glsl(d||(d=t([\"\\n    float integratedRadiance(float cosTheta2, float roughness)\\n    {\\n      return (cosTheta2 - 1.0) / (cosTheta2 * (1.0 - roughness * roughness) - 1.0);\\n    }\\n    \"],[\"\\n    float integratedRadiance(float cosTheta2, float roughness)\\n    {\\n      return (cosTheta2 - 1.0) / (cosTheta2 * (1.0 - roughness * roughness) - 1.0);\\n    }\\n    \"])))),n.add(a.glsl(i||(i=t([\"\\n    vec3 evaluateSpecularIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float RdotNG, float roughness)\\n    {\\n      float cosTheta2 = 1.0 - RdotNG * RdotNG;\\n      float intRadTheta = integratedRadiance(cosTheta2, roughness);\\n\\n      // Calculate the integrated directional radiance of the ground and the sky\\n      float ground = RdotNG < 0.0 ? 1.0 - intRadTheta : 1.0 + intRadTheta;\\n      float sky = 2.0 - ground;\\n      return (ground * ambientGround + sky * ambientSky) * 0.5;\\n    }\\n    \"],[\"\\n    vec3 evaluateSpecularIlluminationHemisphere(vec3 ambientGround, vec3 ambientSky, float RdotNG, float roughness)\\n    {\\n      float cosTheta2 = 1.0 - RdotNG * RdotNG;\\n      float intRadTheta = integratedRadiance(cosTheta2, roughness);\\n\\n      // Calculate the integrated directional radiance of the ground and the sky\\n      float ground = RdotNG < 0.0 ? 1.0 - intRadTheta : 1.0 + intRadTheta;\\n      float sky = 2.0 - ground;\\n      return (ground * ambientGround + sky * ambientSky) * 0.5;\\n    }\\n    \"]))))}Object.defineProperty(n,\"__esModule\",{value:!0}),n.AnalyticalSkyModel=o;var r,d,i});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../attributes/VertexTextureCoordinates.glsl\",\"../../shaderModules/interfaces\"],function(n,e,t,a,o){function r(n,e){var r=n.fragment;r.uniforms.add(\"normalTexture\",\"sampler2D\"),r.uniforms.add(\"normalTextureSize\",\"vec2\"),e.vertexTangets?(n.attributes.add(\"tangent\",\"vec4\"),n.varyings.add(\"vTangent\",\"vec4\"),n.vertex.code.add(o.glsl(s||(s=t([\"\\n      void transformVertexTangent(mat3 modelTransformForNormals) {\\n        vTangent.xyz = modelTransformForNormals * tangent.xyz;\\n        vTangent.w = tangent.w;\\n      }\\n    \"],[\"\\n      void transformVertexTangent(mat3 modelTransformForNormals) {\\n        vTangent.xyz = modelTransformForNormals * tangent.xyz;\\n        vTangent.w = tangent.w;\\n      }\\n    \"])))),2===e.doubleSidedMode?r.code.add(o.glsl(g||(g=t([\"\\n      mat3 computeTangentSpace(vec3 normal) {\\n        float tangentHeadedness = gl_FrontFacing ? vTangent.w : -vTangent.w;\\n        vec3 tangent = normalize(gl_FrontFacing ? vTangent.xyz : -vTangent.xyz);\\n        vec3 bitangent = cross(normal, tangent) * tangentHeadedness;\\n        return mat3(tangent, bitangent, normal);\\n      }\\n    \"],[\"\\n      mat3 computeTangentSpace(vec3 normal) {\\n        float tangentHeadedness = gl_FrontFacing ? vTangent.w : -vTangent.w;\\n        vec3 tangent = normalize(gl_FrontFacing ? vTangent.xyz : -vTangent.xyz);\\n        vec3 bitangent = cross(normal, tangent) * tangentHeadedness;\\n        return mat3(tangent, bitangent, normal);\\n      }\\n    \"])))):r.code.add(o.glsl(d||(d=t([\"\\n      mat3 computeTangentSpace(vec3 normal) {\\n        float tangentHeadedness = vTangent.w;\\n        vec3 tangent = normalize(vTangent.xyz);\\n        vec3 bitangent = cross(normal, tangent) * tangentHeadedness;\\n        return mat3(tangent, bitangent, normal);\\n      }\\n    \"],[\"\\n      mat3 computeTangentSpace(vec3 normal) {\\n        float tangentHeadedness = vTangent.w;\\n        vec3 tangent = normalize(vTangent.xyz);\\n        vec3 bitangent = cross(normal, tangent) * tangentHeadedness;\\n        return mat3(tangent, bitangent, normal);\\n      }\\n    \"]))))):(n.extensions.add(\"GL_OES_standard_derivatives\"),r.code.add(o.glsl(m||(m=t(['\\n    mat3 computeTangentSpace(vec3 normal, vec3 pos, vec2 st) {\\n\\n      vec3 Q1 = dFdx(pos);\\n      vec3 Q2 = dFdy(pos);\\n\\n      vec2 stx = dFdx(st);\\n      vec2 sty = dFdy(st);\\n\\n      float det = stx.t * sty.s - sty.t * stx.s;\\n\\n      vec3 T = stx.t * Q2 - sty.t * Q1; // compute tangent\\n      T = T - normal * dot(normal, T); // orthogonalize tangent\\n      T *= inversesqrt(max(dot(T,T), 1.e-10)); // \"soft\" normalize - goes to 0 when T goes to 0\\n      vec3 B = sign(det) * cross(normal, T); // assume normal is normalized, B has the same lenght as B\\n      return mat3(T, B, normal); // T and B go to 0 when the tangent space is not well defined by the uv coordinates\\n    }\\n  '],['\\n    mat3 computeTangentSpace(vec3 normal, vec3 pos, vec2 st) {\\n\\n      vec3 Q1 = dFdx(pos);\\n      vec3 Q2 = dFdy(pos);\\n\\n      vec2 stx = dFdx(st);\\n      vec2 sty = dFdy(st);\\n\\n      float det = stx.t * sty.s - sty.t * stx.s;\\n\\n      vec3 T = stx.t * Q2 - sty.t * Q1; // compute tangent\\n      T = T - normal * dot(normal, T); // orthogonalize tangent\\n      T *= inversesqrt(max(dot(T,T), 1.e-10)); // \"soft\" normalize - goes to 0 when T goes to 0\\n      vec3 B = sign(det) * cross(normal, T); // assume normal is normalized, B has the same lenght as B\\n      return mat3(T, B, normal); // T and B go to 0 when the tangent space is not well defined by the uv coordinates\\n    }\\n  ']))))),0!==e.attributeTextureCoordinates&&(n.include(a.VertexTextureCoordinates,e),r.code.add(o.glsl(l||(l=t([\"\\n    vec3 computeTextureNormal(mat3 tangentSpace, vec2 uv) {\\n      vtc.uv = uv;\\n      \",\"\\n      vec3 rawNormal = textureLookup(normalTexture, vtc).rgb * 2.0 - 1.0;\\n      return tangentSpace * rawNormal;\\n    }\\n  \"],[\"\\n    vec3 computeTextureNormal(mat3 tangentSpace, vec2 uv) {\\n      vtc.uv = uv;\\n      \",\"\\n      vec3 rawNormal = textureLookup(normalTexture, vtc).rgb * 2.0 - 1.0;\\n      return tangentSpace * rawNormal;\\n    }\\n  \"])),e.supportsTextureAtlas?\"vtc.size = normalTextureSize;\":\"\")))}Object.defineProperty(e,\"__esModule\",{value:!0}),e.ComputeNormalTexture=r;var s,g,d,m,l});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(n,i,e,t){function a(n,i){var a=n.fragment,r=void 0!==i.lightingSphericalHarmonicsOrder?i.lightingSphericalHarmonicsOrder:2;0===r?(a.uniforms.add(\"lightingAmbientSH0\",\"vec3\"),a.code.add(t.glsl(l||(l=e([\"\\n      /**\\n       * @param normal            shading normal in global coordinate space\\n       * @param ambientOcclusion  amount of occlusion of the ambient light (1 => full occlusion)\\n       */\\n      vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {\\n        vec3 ambientLight = 0.282095 * lightingAmbientSH0;\\n        return ambientLight * (1.0 - ambientOcclusion);\\n      }\\n    \"],[\"\\n      /**\\n       * @param normal            shading normal in global coordinate space\\n       * @param ambientOcclusion  amount of occlusion of the ambient light (1 => full occlusion)\\n       */\\n      vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {\\n        vec3 ambientLight = 0.282095 * lightingAmbientSH0;\\n        return ambientLight * (1.0 - ambientOcclusion);\\n      }\\n    \"]))))):1===r?(a.uniforms.add(\"lightingAmbientSH_R\",\"vec4\"),a.uniforms.add(\"lightingAmbientSH_G\",\"vec4\"),a.uniforms.add(\"lightingAmbientSH_B\",\"vec4\"),a.code.add(t.glsl(o||(o=e([\"\\n      vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {\\n        vec4 sh0 = vec4(\\n          0.282095,\\n          0.488603 * normal.x,\\n          0.488603 * normal.z,\\n          0.488603 * normal.y\\n        );\\n        vec3 ambientLight = vec3(\\n          dot(lightingAmbientSH_R, sh0),\\n          dot(lightingAmbientSH_G, sh0),\\n          dot(lightingAmbientSH_B, sh0)\\n        );\\n        return ambientLight * (1.0 - ambientOcclusion);\\n      }\\n    \"],[\"\\n      vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {\\n        vec4 sh0 = vec4(\\n          0.282095,\\n          0.488603 * normal.x,\\n          0.488603 * normal.z,\\n          0.488603 * normal.y\\n        );\\n        vec3 ambientLight = vec3(\\n          dot(lightingAmbientSH_R, sh0),\\n          dot(lightingAmbientSH_G, sh0),\\n          dot(lightingAmbientSH_B, sh0)\\n        );\\n        return ambientLight * (1.0 - ambientOcclusion);\\n      }\\n    \"]))))):2===r&&(a.uniforms.add(\"lightingAmbientSH0\",\"vec3\"),a.uniforms.add(\"lightingAmbientSH_R1\",\"vec4\"),a.uniforms.add(\"lightingAmbientSH_G1\",\"vec4\"),a.uniforms.add(\"lightingAmbientSH_B1\",\"vec4\"),a.uniforms.add(\"lightingAmbientSH_R2\",\"vec4\"),a.uniforms.add(\"lightingAmbientSH_G2\",\"vec4\"),a.uniforms.add(\"lightingAmbientSH_B2\",\"vec4\"),a.code.add(t.glsl(c||(c=e([\"\\n      /**\\n       * @param normal            shading normal in global coordinate space\\n       * @param ambientOcclusion  amount of occlusion of the ambient light (1 => full occlusion)\\n       */\\n      vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {\\n        vec3 ambientLight = 0.282095 * lightingAmbientSH0;\\n\\n        vec4 sh1 = vec4(\\n          0.488603 * normal.x,\\n          0.488603 * normal.z,\\n          0.488603 * normal.y,\\n          1.092548 * normal.x * normal.y\\n        );\\n        vec4 sh2 = vec4(\\n          1.092548 * normal.y * normal.z,\\n          0.315392 * (3.0 * normal.z * normal.z - 1.0),\\n          1.092548 * normal.x * normal.z,\\n          0.546274 * (normal.x * normal.x - normal.y * normal.y)\\n        );\\n        ambientLight += vec3(\\n          dot(lightingAmbientSH_R1, sh1),\\n          dot(lightingAmbientSH_G1, sh1),\\n          dot(lightingAmbientSH_B1, sh1)\\n        );\\n        ambientLight += vec3(\\n          dot(lightingAmbientSH_R2, sh2),\\n          dot(lightingAmbientSH_G2, sh2),\\n          dot(lightingAmbientSH_B2, sh2)\\n        );\\n        return ambientLight * (1.0 - ambientOcclusion);\\n      }\\n    \"],[\"\\n      /**\\n       * @param normal            shading normal in global coordinate space\\n       * @param ambientOcclusion  amount of occlusion of the ambient light (1 => full occlusion)\\n       */\\n      vec3 calculateAmbientIrradiance(vec3 normal, float ambientOcclusion) {\\n        vec3 ambientLight = 0.282095 * lightingAmbientSH0;\\n\\n        vec4 sh1 = vec4(\\n          0.488603 * normal.x,\\n          0.488603 * normal.z,\\n          0.488603 * normal.y,\\n          1.092548 * normal.x * normal.y\\n        );\\n        vec4 sh2 = vec4(\\n          1.092548 * normal.y * normal.z,\\n          0.315392 * (3.0 * normal.z * normal.z - 1.0),\\n          1.092548 * normal.x * normal.z,\\n          0.546274 * (normal.x * normal.x - normal.y * normal.y)\\n        );\\n        ambientLight += vec3(\\n          dot(lightingAmbientSH_R1, sh1),\\n          dot(lightingAmbientSH_G1, sh1),\\n          dot(lightingAmbientSH_B1, sh1)\\n        );\\n        ambientLight += vec3(\\n          dot(lightingAmbientSH_R2, sh2),\\n          dot(lightingAmbientSH_G2, sh2),\\n          dot(lightingAmbientSH_B2, sh2)\\n        );\\n        return ambientLight * (1.0 - ambientOcclusion);\\n      }\\n    \"])))),i.usePBR&&a.code.add(t.glsl(m||(m=e([\"\\n        // calculateAmbientRadiance is used calculate specular radiance of the sky\\n        // - in the night calculateAmbientRadiance gives darker color compared to calculateAmbientComponent which integrates contributions of the moon\\n        // - calculateAmbientRadiance gives more predictable color compared to calculateAmbientIrradiance that depends on normal\\n        // - in future more physically accurate model should be established\\n        vec3 calculateAmbientRadiance(float ssao)\\n        {\\n          // evaluate the sh ambient light\\n          vec3 ambientLight ;\\n          ambientLight = 1.2 * (0.282095 * lightingAmbientSH0) - 0.2; // returning the darker value in the night\\n\\n          return ambientLight *= (1.0 - ssao) * skyTransmittance; // skyTransmittance is slightly bluish giving more natural look\\n        }\\n      \"],[\"\\n        // calculateAmbientRadiance is used calculate specular radiance of the sky\\n        // - in the night calculateAmbientRadiance gives darker color compared to calculateAmbientComponent which integrates contributions of the moon\\n        // - calculateAmbientRadiance gives more predictable color compared to calculateAmbientIrradiance that depends on normal\\n        // - in future more physically accurate model should be established\\n        vec3 calculateAmbientRadiance(float ssao)\\n        {\\n          // evaluate the sh ambient light\\n          vec3 ambientLight ;\\n          ambientLight = 1.2 * (0.282095 * lightingAmbientSH0) - 0.2; // returning the darker value in the night\\n\\n          return ambientLight *= (1.0 - ssao) * skyTransmittance; // skyTransmittance is slightly bluish giving more natural look\\n        }\\n      \"])))))}Object.defineProperty(i,\"__esModule\",{value:!0}),i.EvaluateAmbientLighting=a;var l,o,c,m});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,n,t,o){function r(e,n){var r=e.fragment;n.receiveAmbientOcclusion?(r.uniforms.add(\"ssaoTex\",\"sampler2D\"),r.uniforms.add(\"viewportPixelSz\",\"vec4\"),r.code.add(o.glsl(a||(a=t([\"\\n      float evaluateAmbientOcclusion() {\\n        return 1.0 - texture2D(ssaoTex, (gl_FragCoord.xy - viewportPixelSz.xy) * viewportPixelSz.zw).a;\\n      }\\n\\n      float evaluateAmbientOcclusionInverse() {\\n        float ssao = texture2D(ssaoTex, (gl_FragCoord.xy - viewportPixelSz.xy) * viewportPixelSz.zw).a;\\n        return viewportPixelSz.z < 0.0 ? 1.0 : ssao;\\n      }\\n    \"],[\"\\n      float evaluateAmbientOcclusion() {\\n        return 1.0 - texture2D(ssaoTex, (gl_FragCoord.xy - viewportPixelSz.xy) * viewportPixelSz.zw).a;\\n      }\\n\\n      float evaluateAmbientOcclusionInverse() {\\n        float ssao = texture2D(ssaoTex, (gl_FragCoord.xy - viewportPixelSz.xy) * viewportPixelSz.zw).a;\\n        return viewportPixelSz.z < 0.0 ? 1.0 : ssao;\\n      }\\n    \"]))))):r.code.add(o.glsl(l||(l=t([\"\\n      float evaluateAmbientOcclusion() { return 0.0; } // no occlusion\\n      float evaluateAmbientOcclusionInverse() { return 1.0; }\\n    \"],[\"\\n      float evaluateAmbientOcclusion() { return 0.0; } // no occlusion\\n      float evaluateAmbientOcclusionInverse() { return 1.0; }\\n    \"]))))}Object.defineProperty(n,\"__esModule\",{value:!0}),n.EvaluateAmbientOcclusion=r;var a,l});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(n,i,t,a){function e(n){var i=n.fragment;i.uniforms.add(\"lightingMainDirection\",\"vec3\"),i.uniforms.add(\"lightingMainIntensity\",\"vec3\"),i.uniforms.add(\"lightingFixedFactor\",\"float\"),i.code.add(a.glsl(o||(o=t([\"\\n    vec3 evaluateMainLighting(vec3 normal_global, float shadowing) {\\n      float dotVal = clamp(-dot(normal_global, lightingMainDirection), 0.0, 1.0);\\n\\n      // move lighting towards (1.0, 1.0, 1.0) if requested\\n      dotVal = mix(dotVal, 1.0, lightingFixedFactor);\\n\\n      return lightingMainIntensity * ((1.0 - shadowing) * dotVal);\\n    }\\n  \"],[\"\\n    vec3 evaluateMainLighting(vec3 normal_global, float shadowing) {\\n      float dotVal = clamp(-dot(normal_global, lightingMainDirection), 0.0, 1.0);\\n\\n      // move lighting towards (1.0, 1.0, 1.0) if requested\\n      dotVal = mix(dotVal, 1.0, lightingFixedFactor);\\n\\n      return lightingMainIntensity * ((1.0 - shadowing) * dotVal);\\n    }\\n  \"]))))}Object.defineProperty(i,\"__esModule\",{value:!0}),i.EvaluateMainLighting=e;var o});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"./EvaluateAmbientLighting.glsl\",\"./EvaluateAmbientOcclusion.glsl\",\"./EvaluateMainLighting.glsl\",\"./PhysicallyBasedRendering.glsl\",\"./PiUtils.glsl\",\"./ReadShadowMap.glsl\",\"../../shaderModules/interfaces\"],function(n,e,t,i,a,o,l,r,c,d){function s(n,e){var s=n.fragment;n.include(o.EvaluateMainLighting),n.include(a.EvaluateAmbientOcclusion,e),e.usePBR&&n.include(l.PhysicallyBasedRendering,e),n.include(i.EvaluateAmbientLighting,e),e.receiveShadows&&n.include(c.ReadShadowMap,e),s.uniforms.add(\"lightingGlobalFactor\",\"float\"),s.uniforms.add(\"ambientBoostFactor\",\"float\"),e.useOldSceneLightInterface?(n.include(r.PiUtils),s.code.add(d.glsl(m||(m=t([\"\\n    const float GAMMA_SRGB = 2.1;\\n    const float INV_GAMMA_SRGB = 0.4761904;  // 1 / GAMMA_SRGB\\n\\n    vec3 evaluateSceneLightingExt(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight) {\\n      // evaluate the main light\\n      #if defined(TREE_RENDERING)\\n        // Special case for tree rendering:\\n        // We shift the Lambert lobe to the back, allowing it to reach part of the hemisphere\\n        // facing away from the light. The idea is to get an effect where light is transmitted\\n        // through the tree.\\n        float minDot = -0.5;\\n        float dotRange = 1.0 - minDot;\\n        float dotNormalization = 0.66; // guessed & hand tweaked value, for an exact value we could precompute an integral over the sphere\\n\\n        float dotVal = dotNormalization * (clamp(-dot(normal, lightingMainDirection), 1.0 - dotRange, 1.0) - minDot) * (1.0 / dotRange);\\n      #else\\n        float dotVal = clamp(-dot(normal, lightingMainDirection), 0.0, 1.0);\\n      #endif\\n\\n      // move lighting towards (1.0, 1.0, 1.0) if requested\\n      dotVal = mix(dotVal, 1.0, lightingFixedFactor);\\n\\n      vec3 mainLight = (1.0 - shadow) * lightingMainIntensity * dotVal;\\n      vec3 ambientLight = calculateAmbientIrradiance(normal, ssao);\\n\\n      // inverse gamma correction on the albedo color\\n      vec3 albedoGammaC = pow(albedo, vec3(GAMMA_SRGB));\\n\\n      // physically correct BRDF normalizes by PI\\n      vec3 totalLight = mainLight + ambientLight + additionalLight;\\n      totalLight = min(totalLight, vec3(PI, PI, PI));\\n      vec3 outColor = vec3((albedoGammaC / PI) * (totalLight));\\n\\n      // apply gamma correction to the computed color\\n      outColor = pow(outColor, vec3(1.0/GAMMA_SRGB));\\n\\n      return outColor;\\n    }\\n  \"],[\"\\n    const float GAMMA_SRGB = 2.1;\\n    const float INV_GAMMA_SRGB = 0.4761904;  // 1 / GAMMA_SRGB\\n\\n    vec3 evaluateSceneLightingExt(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight) {\\n      // evaluate the main light\\n      #if defined(TREE_RENDERING)\\n        // Special case for tree rendering:\\n        // We shift the Lambert lobe to the back, allowing it to reach part of the hemisphere\\n        // facing away from the light. The idea is to get an effect where light is transmitted\\n        // through the tree.\\n        float minDot = -0.5;\\n        float dotRange = 1.0 - minDot;\\n        float dotNormalization = 0.66; // guessed & hand tweaked value, for an exact value we could precompute an integral over the sphere\\n\\n        float dotVal = dotNormalization * (clamp(-dot(normal, lightingMainDirection), 1.0 - dotRange, 1.0) - minDot) * (1.0 / dotRange);\\n      #else\\n        float dotVal = clamp(-dot(normal, lightingMainDirection), 0.0, 1.0);\\n      #endif\\n\\n      // move lighting towards (1.0, 1.0, 1.0) if requested\\n      dotVal = mix(dotVal, 1.0, lightingFixedFactor);\\n\\n      vec3 mainLight = (1.0 - shadow) * lightingMainIntensity * dotVal;\\n      vec3 ambientLight = calculateAmbientIrradiance(normal, ssao);\\n\\n      // inverse gamma correction on the albedo color\\n      vec3 albedoGammaC = pow(albedo, vec3(GAMMA_SRGB));\\n\\n      // physically correct BRDF normalizes by PI\\n      vec3 totalLight = mainLight + ambientLight + additionalLight;\\n      totalLight = min(totalLight, vec3(PI, PI, PI));\\n      vec3 outColor = vec3((albedoGammaC / PI) * (totalLight));\\n\\n      // apply gamma correction to the computed color\\n      outColor = pow(outColor, vec3(1.0/GAMMA_SRGB));\\n\\n      return outColor;\\n    }\\n  \"]))))):(0===e.viewingMode?s.code.add(d.glsl(h||(h=t([\"\\n      float _oldHeuristicLighting(vec3 vPosWorld) {\\n        vec3 shadingNormalWorld = normalize(vPosWorld);\\n        float vndl = -dot(shadingNormalWorld, lightingMainDirection);\\n\\n        return smoothstep(0.0, 1.0, clamp(vndl * 2.5, 0.0, 1.0));\\n      }\\n    \"],[\"\\n      float _oldHeuristicLighting(vec3 vPosWorld) {\\n        vec3 shadingNormalWorld = normalize(vPosWorld);\\n        float vndl = -dot(shadingNormalWorld, lightingMainDirection);\\n\\n        return smoothstep(0.0, 1.0, clamp(vndl * 2.5, 0.0, 1.0));\\n      }\\n    \"])))):s.code.add(d.glsl(g||(g=t([\"\\n      float _oldHeuristicLighting(vec3 vPosWorld) {\\n        float vndl = -dot(vec3(0.0, 0.0, 1.0), lightingMainDirection);\\n        return smoothstep(0.0, 1.0, clamp(vndl * 2.5, 0.0, 1.0));\\n      }\\n    \"],[\"\\n      float _oldHeuristicLighting(vec3 vPosWorld) {\\n        float vndl = -dot(vec3(0.0, 0.0, 1.0), lightingMainDirection);\\n        return smoothstep(0.0, 1.0, clamp(vndl * 2.5, 0.0, 1.0));\\n      }\\n    \"])))),s.code.add(d.glsl(u||(u=t([\"\\n      vec3 evaluateAdditionalLighting(float ambientOcclusion, vec3 vPosWorld) {\\n        float additionalAmbientScale = _oldHeuristicLighting(vPosWorld);\\n        return (1.0 - ambientOcclusion) * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor * lightingMainIntensity;\\n      }\\n    \"],[\"\\n      vec3 evaluateAdditionalLighting(float ambientOcclusion, vec3 vPosWorld) {\\n        float additionalAmbientScale = _oldHeuristicLighting(vPosWorld);\\n        return (1.0 - ambientOcclusion) * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor * lightingMainIntensity;\\n      }\\n    \"])))),e.usePBR?(s.code.add(d.glsl(v||(v=t([\"\\n      // The albedo color of the ground used in the environment illumination algorithm\\n      const float GROUND_REFLECTANCE = 0.2; //This is the set value of the diffuse reflectance of the ground surface\\n\\n      const float GAMMA_SRGB = 2.1;\\n      const float INV_GAMMA_SRGB = 0.4761904;  // 1 / GAMMA_SRGB\\n      \"],[\"\\n      // The albedo color of the ground used in the environment illumination algorithm\\n      const float GROUND_REFLECTANCE = 0.2; //This is the set value of the diffuse reflectance of the ground surface\\n\\n      const float GAMMA_SRGB = 2.1;\\n      const float INV_GAMMA_SRGB = 0.4761904;  // 1 / GAMMA_SRGB\\n      \"])))),s.code.add(d.glsl(f||(f=t([\"\\n      vec3 evaluateSceneLightingPBR(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight, vec3 viewDir, vec3 normalGround, float _roughness, float _metalness, vec3 _emission, float _reflectance, float additionalAmbientIrradiance)\\n      {\\n        // Calculate half vector between view and light direction\\n        vec3 viewDirection = -viewDir;\\n        vec3 mainLightDirection = -lightingMainDirection;\\n        vec3 h = normalize(viewDirection + mainLightDirection);\\n\\n        PBRShadingInfo inputs;\\n        inputs.NdotL = clamp(dot(normal, mainLightDirection), 0.001, 1.0);\\n        inputs.NdotV = clamp(abs(dot(normal, viewDirection)), 0.001, 1.0);\\n        inputs.NdotH = clamp(dot(normal, h), 0.0, 1.0);\\n        inputs.VdotH = clamp(dot(viewDirection, h), 0.0, 1.0);\\n        inputs.NdotNG = clamp(dot(normal, normalGround), -1.0, 1.0);\\n        vec3 reflectedView = normalize(reflect(viewDirection, normal));\\n        inputs.RdotNG = clamp(dot(reflectedView, normalGround), -1.0, 1.0);\\n\\n        inputs.albedoLinear = pow(albedo, vec3(GAMMA_SRGB));\\n        inputs.groundReflectance = vec3(GROUND_REFLECTANCE);\\n        inputs.ssao = ssao;\\n\\n        inputs.roughness = clamp(_roughness * _roughness, 0.001, 0.99);\\n        inputs.metalness = _metalness;\\n      \"],[\"\\n      vec3 evaluateSceneLightingPBR(vec3 normal, vec3 albedo, float shadow, float ssao, vec3 additionalLight, vec3 viewDir, vec3 normalGround, float _roughness, float _metalness, vec3 _emission, float _reflectance, float additionalAmbientIrradiance)\\n      {\\n        // Calculate half vector between view and light direction\\n        vec3 viewDirection = -viewDir;\\n        vec3 mainLightDirection = -lightingMainDirection;\\n        vec3 h = normalize(viewDirection + mainLightDirection);\\n\\n        PBRShadingInfo inputs;\\n        inputs.NdotL = clamp(dot(normal, mainLightDirection), 0.001, 1.0);\\n        inputs.NdotV = clamp(abs(dot(normal, viewDirection)), 0.001, 1.0);\\n        inputs.NdotH = clamp(dot(normal, h), 0.0, 1.0);\\n        inputs.VdotH = clamp(dot(viewDirection, h), 0.0, 1.0);\\n        inputs.NdotNG = clamp(dot(normal, normalGround), -1.0, 1.0);\\n        vec3 reflectedView = normalize(reflect(viewDirection, normal));\\n        inputs.RdotNG = clamp(dot(reflectedView, normalGround), -1.0, 1.0);\\n\\n        inputs.albedoLinear = pow(albedo, vec3(GAMMA_SRGB));\\n        inputs.groundReflectance = vec3(GROUND_REFLECTANCE);\\n        inputs.ssao = ssao;\\n\\n        inputs.roughness = clamp(_roughness * _roughness, 0.001, 0.99);\\n        inputs.metalness = _metalness;\\n      \"])))),s.code.add(d.glsl(L||(L=t([\"\\n        inputs.f0 = (0.16 * _reflectance * _reflectance) * (1.0 - inputs.metalness) + inputs.albedoLinear * inputs.metalness;\\n        inputs.f90 = vec3(clamp(dot(inputs.f0, vec3(50.0 * 0.33)), 0.0, 1.0)); // more accurate then using  f90 = 1.0\\n        inputs.diffuseColor = inputs.albedoLinear * (vec3(1.0) - inputs.f0) * (1.0 - inputs.metalness);\\n      \"],[\"\\n        inputs.f0 = (0.16 * _reflectance * _reflectance) * (1.0 - inputs.metalness) + inputs.albedoLinear * inputs.metalness;\\n        inputs.f90 = vec3(clamp(dot(inputs.f0, vec3(50.0 * 0.33)), 0.0, 1.0)); // more accurate then using  f90 = 1.0\\n        inputs.diffuseColor = inputs.albedoLinear * (vec3(1.0) - inputs.f0) * (1.0 - inputs.metalness);\\n      \"])))),s.code.add(d.glsl(b||(b=t([\"\\n        vec3 ambientDir = normalize(vec3(5.0 * normalGround[1] - normalGround[0] * normalGround[2],\\n                                      - 5.0 * normalGround[0] - normalGround[2] * normalGround[1],\\n                                        normalGround[1] * normalGround[1] + normalGround[0] * normalGround[0]));\\n\\n        inputs.NdotAmbDir = abs(dot(normal, ambientDir));\\n\\n        // Calculate the irradiance components: sun, fill lights and the sky.\\n        vec3 mainLightIrradianceComponent  = inputs.NdotL * (1.0 - shadow) * lightingMainIntensity;\\n        vec3 fillLightsIrradianceComponent = inputs.NdotAmbDir * lightingMainIntensity * fillLightIntensity;\\n        // calculateAmbientIrradiance for localView and additionalLight for gloabalView\\n        vec3 ambientLightIrradianceComponent = calculateAmbientIrradiance(normal, ssao) + additionalLight;\\n\\n        // Assemble the overall irradiance of the sky that illuminates the surface\\n        inputs.skyIrradianceToSurface    = ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;\\n        // Assemble the overall irradiance of the ground that illuminates the surface. for this we use the simple model that changes only the sky irradiance by the groundReflectance\\n        inputs.groundIrradianceToSurface = inputs.groundReflectance * ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;\\n      \"],[\"\\n        vec3 ambientDir = normalize(vec3(5.0 * normalGround[1] - normalGround[0] * normalGround[2],\\n                                      - 5.0 * normalGround[0] - normalGround[2] * normalGround[1],\\n                                        normalGround[1] * normalGround[1] + normalGround[0] * normalGround[0]));\\n\\n        inputs.NdotAmbDir = abs(dot(normal, ambientDir));\\n\\n        // Calculate the irradiance components: sun, fill lights and the sky.\\n        vec3 mainLightIrradianceComponent  = inputs.NdotL * (1.0 - shadow) * lightingMainIntensity;\\n        vec3 fillLightsIrradianceComponent = inputs.NdotAmbDir * lightingMainIntensity * fillLightIntensity;\\n        // calculateAmbientIrradiance for localView and additionalLight for gloabalView\\n        vec3 ambientLightIrradianceComponent = calculateAmbientIrradiance(normal, ssao) + additionalLight;\\n\\n        // Assemble the overall irradiance of the sky that illuminates the surface\\n        inputs.skyIrradianceToSurface    = ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;\\n        // Assemble the overall irradiance of the ground that illuminates the surface. for this we use the simple model that changes only the sky irradiance by the groundReflectance\\n        inputs.groundIrradianceToSurface = inputs.groundReflectance * ambientLightIrradianceComponent + mainLightIrradianceComponent + fillLightsIrradianceComponent ;\\n      \"])))),s.code.add(d.glsl(R||(R=t([\"\\n        vec3 horizonRingDir = inputs.RdotNG * normalGround - reflectedView;\\n        vec3 horizonRingH = normalize(viewDirection + horizonRingDir);\\n        inputs.NdotH_Horizon = dot(normal, horizonRingH);\\n\\n        vec3 mainLightRadianceComponent  = normalDistribution(inputs.NdotH, inputs.roughness) * lightingMainIntensity * (1.0 - shadow);\\n        vec3 horizonLightRadianceComponent = normalDistribution(inputs.NdotH_Horizon, min(inputs.roughness + horizonLightDiffusion, 1.0)) * lightingMainIntensity * fillLightIntensity;\\n        vec3 ambientLightRadianceComponent = calculateAmbientRadiance(ssao) + additionalLight; // calculateAmbientRadiance for localView and additionalLight for gloabalView\\n\\n        // Assemble the overall radiance of the sky that illuminates the surface\\n        inputs.skyRadianceToSurface    =  ambientLightRadianceComponent + mainLightRadianceComponent + horizonLightRadianceComponent;\\n        // Assemble the overall radiance of the ground that illuminates the surface. for this we use the simple model that changes only the sky radince by the groundReflectance\\n        inputs.groundRadianceToSurface = inputs.groundReflectance * (ambientLightRadianceComponent + horizonLightRadianceComponent) + mainLightRadianceComponent;\\n\\n        // Calculate average ambient radiance - this is used int the gamut mapping part to deduce the black level that is soft compressed\\n        inputs.averageAmbientRadiance = ambientLightIrradianceComponent[1] * (1.0 + inputs.groundReflectance[1]);\\n        \"],[\"\\n        vec3 horizonRingDir = inputs.RdotNG * normalGround - reflectedView;\\n        vec3 horizonRingH = normalize(viewDirection + horizonRingDir);\\n        inputs.NdotH_Horizon = dot(normal, horizonRingH);\\n\\n        vec3 mainLightRadianceComponent  = normalDistribution(inputs.NdotH, inputs.roughness) * lightingMainIntensity * (1.0 - shadow);\\n        vec3 horizonLightRadianceComponent = normalDistribution(inputs.NdotH_Horizon, min(inputs.roughness + horizonLightDiffusion, 1.0)) * lightingMainIntensity * fillLightIntensity;\\n        vec3 ambientLightRadianceComponent = calculateAmbientRadiance(ssao) + additionalLight; // calculateAmbientRadiance for localView and additionalLight for gloabalView\\n\\n        // Assemble the overall radiance of the sky that illuminates the surface\\n        inputs.skyRadianceToSurface    =  ambientLightRadianceComponent + mainLightRadianceComponent + horizonLightRadianceComponent;\\n        // Assemble the overall radiance of the ground that illuminates the surface. for this we use the simple model that changes only the sky radince by the groundReflectance\\n        inputs.groundRadianceToSurface = inputs.groundReflectance * (ambientLightRadianceComponent + horizonLightRadianceComponent) + mainLightRadianceComponent;\\n\\n        // Calculate average ambient radiance - this is used int the gamut mapping part to deduce the black level that is soft compressed\\n        inputs.averageAmbientRadiance = ambientLightIrradianceComponent[1] * (1.0 + inputs.groundReflectance[1]);\\n        \"])))),s.code.add(d.glsl(C||(C=t([\"\\n        vec3 reflectedColorComponent = evaluateEnvironmentIllumination(inputs);\\n        vec3 additionalMaterialReflectanceComponent = inputs.albedoLinear * additionalAmbientIrradiance;\\n        vec3 emissionComponent = pow(_emission, vec3(GAMMA_SRGB));\\n        vec3 outColorLinear = reflectedColorComponent + additionalMaterialReflectanceComponent + emissionComponent;\\n        vec3 outColor = pow(blackLevelSoftCompression(outColorLinear, inputs), vec3(INV_GAMMA_SRGB));\\n        return outColor;\\n      }\\n    \"],[\"\\n        vec3 reflectedColorComponent = evaluateEnvironmentIllumination(inputs);\\n        vec3 additionalMaterialReflectanceComponent = inputs.albedoLinear * additionalAmbientIrradiance;\\n        vec3 emissionComponent = pow(_emission, vec3(GAMMA_SRGB));\\n        vec3 outColorLinear = reflectedColorComponent + additionalMaterialReflectanceComponent + emissionComponent;\\n        vec3 outColor = pow(blackLevelSoftCompression(outColorLinear, inputs), vec3(INV_GAMMA_SRGB));\\n        return outColor;\\n      }\\n    \"]))))):s.code.add(d.glsl(p||(p=t([\"\\n      vec3 evaluateSceneLighting(vec3 normalWorld, vec3 baseColor, float mainLightShadow, float ambientOcclusion, vec3 additionalLight)\\n      {\\n        vec3 mainLighting = evaluateMainLighting(normalWorld, mainLightShadow);\\n        vec3 ambientLighting = calculateAmbientIrradiance(normalWorld, ambientOcclusion);\\n        // inverse gamma correction on the base color\\n        float gamma = 2.1;\\n        vec3 baseColorLinear = pow(baseColor, vec3(gamma));\\n\\n        // physically correct BRDF normalizes by PI\\n        const float PI = 3.14159;\\n        vec3 totalLight = mainLighting + ambientLighting + additionalLight;\\n        totalLight = min(totalLight, vec3(PI, PI, PI));\\n        vec3 outColor = vec3((baseColorLinear / PI) * totalLight);\\n\\n        // apply gamma correction to the computed color\\n        outColor = pow(outColor, vec3(1.0/gamma));\\n\\n        return outColor;\\n      }\\n      \"],[\"\\n      vec3 evaluateSceneLighting(vec3 normalWorld, vec3 baseColor, float mainLightShadow, float ambientOcclusion, vec3 additionalLight)\\n      {\\n        vec3 mainLighting = evaluateMainLighting(normalWorld, mainLightShadow);\\n        vec3 ambientLighting = calculateAmbientIrradiance(normalWorld, ambientOcclusion);\\n        // inverse gamma correction on the base color\\n        float gamma = 2.1;\\n        vec3 baseColorLinear = pow(baseColor, vec3(gamma));\\n\\n        // physically correct BRDF normalizes by PI\\n        const float PI = 3.14159;\\n        vec3 totalLight = mainLighting + ambientLighting + additionalLight;\\n        totalLight = min(totalLight, vec3(PI, PI, PI));\\n        vec3 outColor = vec3((baseColorLinear / PI) * totalLight);\\n\\n        // apply gamma correction to the computed color\\n        outColor = pow(outColor, vec3(1.0/gamma));\\n\\n        return outColor;\\n      }\\n      \"])))))}Object.defineProperty(e,\"__esModule\",{value:!0}),e.EvaluateSceneLighting=s;var m,h,g,u,p,v,f,L,b,R,C});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,n,o,r){function c(e){e.fragment.code.add(r.glsl(a||(a=o([\"\\n    const float GAMMA = 2.2;\\n    const float INV_GAMMA = 0.4545454545; // 1 / GAMMA\\n\\n    // gamma correction\\n    vec4 delinearizeGamma(vec4 color) {\\n      return vec4(pow(color.rgb, vec3(INV_GAMMA)), color.w);\\n    }\\n\\n    vec3 linearizeGamma(vec3 color) {\\n      return pow(color, vec3(GAMMA));\\n    }\\n    \"],[\"\\n    const float GAMMA = 2.2;\\n    const float INV_GAMMA = 0.4545454545; // 1 / GAMMA\\n\\n    // gamma correction\\n    vec4 delinearizeGamma(vec4 color) {\\n      return vec4(pow(color.rgb, vec3(INV_GAMMA)), color.w);\\n    }\\n\\n    vec3 linearizeGamma(vec3 color) {\\n      return pow(color, vec3(GAMMA));\\n    }\\n    \"]))))}Object.defineProperty(n,\"__esModule\",{value:!0}),n.Gamma=c;var a});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,r,t,n){function i(e){e.fragment.code.add(n.glsl(o||(o=t([\"\\n    vec4 highlightData(vec4 fragCoord, sampler2D depthTex, vec4 viewportPixelSize) {\\n      float sceneDepth = texture2D(depthTex, (fragCoord.xy - viewportPixelSize.xy) * viewportPixelSize.zw).r;\\n      if (fragCoord.z > sceneDepth + 5e-7) {\\n        return vec4(1.0, 1.0, 0.0, 1.0);\\n      }\\n      else {\\n        return vec4(1.0, 0.0, 1.0, 1.0);\\n      }\\n    }\\n  \"],[\"\\n    vec4 highlightData(vec4 fragCoord, sampler2D depthTex, vec4 viewportPixelSize) {\\n      float sceneDepth = texture2D(depthTex, (fragCoord.xy - viewportPixelSize.xy) * viewportPixelSize.zw).r;\\n      if (fragCoord.z > sceneDepth + 5e-7) {\\n        return vec4(1.0, 1.0, 0.0, 1.0);\\n      }\\n      else {\\n        return vec4(1.0, 0.0, 1.0, 1.0);\\n      }\\n    }\\n  \"]))))}Object.defineProperty(r,\"__esModule\",{value:!0}),r.HighlightData=i;var o});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,l,p,t){function a(e,l){e.defines.addFloat(\"STIPPLE_ALPHA_COLOR_DISCARD\",.001),e.defines.addFloat(\"STIPPLE_ALPHA_HIGHLIGHT_DISCARD\",.5),l.stippleEnabled?n(e,l):i(e)}function n(e,l){e.vertex.uniforms.add(\"stipplePatternPixelSizeInv\",\"float\"),l.stippleUVMaxEnabled&&e.varyings.add(\"stipplePatternUvMax\",\"float\"),e.varyings.add(\"stipplePatternUv\",\"float\"),e.fragment.uniforms.add(\"stipplePatternTexture\",\"sampler2D\"),l.stippleOffColorEnabled&&e.fragment.uniforms.add(\"stippleOffColor\",\"vec4\"),e.fragment.code.add(t.glsl(r||(r=p([\"\\n  float getStippleAlpha() {\\n    float stipplePatternUvClamped = stipplePatternUv * gl_FragCoord.w;\\n    \",\"\\n\\n    return texture2D(stipplePatternTexture, vec2(mod(stipplePatternUvClamped, 1.0), 0.5)).a;\\n  }\"],[\"\\n  float getStippleAlpha() {\\n    float stipplePatternUvClamped = stipplePatternUv * gl_FragCoord.w;\\n    \",\"\\n\\n    return texture2D(stipplePatternTexture, vec2(mod(stipplePatternUvClamped, 1.0), 0.5)).a;\\n  }\"])),l.stippleUVMaxEnabled?\"stipplePatternUvClamped = clamp(stipplePatternUvClamped, 0.0, stipplePatternUvMax);\":\"\")),l.stippleOffColorEnabled?e.fragment.code.add(t.glsl(d||(d=p([\"\\n    #define discardByStippleAlpha(stippleAlpha, threshold) {}\\n    #define blendStipple(color, stippleAlpha) mix(color, stippleOffColor, stippleAlpha)\\n    \"],[\"\\n    #define discardByStippleAlpha(stippleAlpha, threshold) {}\\n    #define blendStipple(color, stippleAlpha) mix(color, stippleOffColor, stippleAlpha)\\n    \"])))):e.fragment.code.add(t.glsl(o||(o=p([\"\\n    #define discardByStippleAlpha(stippleAlpha, threshold) if (stippleAlpha < threshold) { discard; }\\n    #define blendStipple(color, stippleAlpha) vec4(color.rgb, color.a * stippleAlpha)\\n    \"],[\"\\n    #define discardByStippleAlpha(stippleAlpha, threshold) if (stippleAlpha < threshold) { discard; }\\n    #define blendStipple(color, stippleAlpha) vec4(color.rgb, color.a * stippleAlpha)\\n    \"]))))}function i(e){e.fragment.code.add(t.glsl(s||(s=p([\"\\n  float getStippleAlpha() { return 1.0; }\\n\\n  #define discardByStippleAlpha(_stippleAlpha_, _threshold_) {}\\n  #define blendStipple(color, _stippleAlpha_) color\\n  \"],[\"\\n  float getStippleAlpha() { return 1.0; }\\n\\n  #define discardByStippleAlpha(_stippleAlpha_, _threshold_) {}\\n  #define blendStipple(color, _stippleAlpha_) color\\n  \"]))))}Object.defineProperty(l,\"__esModule\",{value:!0}),l.LineStipple=a;var r,d,o,s});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,n,t,r){function c(e,n){0===n.viewingMode?e.vertex.code.add(r.glsl(i||(i=t([\"\\n      vec3 getLocalUp(in vec3 pos, in vec3 origin) {\\n          return normalize(pos + origin);\\n      }\\n    \"],[\"\\n      vec3 getLocalUp(in vec3 pos, in vec3 origin) {\\n          return normalize(pos + origin);\\n      }\\n    \"])))):e.vertex.code.add(r.glsl(o||(o=t([\"\\n      vec3 getLocalUp(in vec3 pos, in vec3 origin) {\\n          return vec3(0.0, 0.0, 1.0); // WARNING: up-axis dependent code\\n      }\\n    \"],[\"\\n      vec3 getLocalUp(in vec3 pos, in vec3 origin) {\\n          return vec3(0.0, 0.0, 1.0); // WARNING: up-axis dependent code\\n      }\\n    \"])))),0===n.viewingMode?e.vertex.code.add(r.glsl(v||(v=t([\"\\n        mat3 getTBNMatrix(in vec3 n) {\\n            vec3 t = normalize(cross(vec3(0.0, 0.0, 1.0), n));\\n            vec3 b = normalize(cross(n, t));\\n            return mat3(t, b, n);\\n        }\\n    \"],[\"\\n        mat3 getTBNMatrix(in vec3 n) {\\n            vec3 t = normalize(cross(vec3(0.0, 0.0, 1.0), n));\\n            vec3 b = normalize(cross(n, t));\\n            return mat3(t, b, n);\\n        }\\n    \"])))):e.vertex.code.add(r.glsl(a||(a=t([\"\\n        mat3 getTBNMatrix(in vec3 n) {\\n            vec3 t = vec3(1.0, 0.0, 0.0);\\n            vec3 b = normalize(cross(n, t));\\n            return mat3(t, b, n);\\n        }\\n    \"],[\"\\n        mat3 getTBNMatrix(in vec3 n) {\\n            vec3 t = vec3(1.0, 0.0, 0.0);\\n            vec3 b = normalize(cross(n, t));\\n            return mat3(t, b, n);\\n        }\\n    \"]))))}Object.defineProperty(n,\"__esModule\",{value:!0}),n.NormalUtils=c;var i,o,v,a});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(a,r,e,n){function m(a,r){var m=a.fragment;m.code.add(n.glsl(o||(o=e([\"\\n    struct ShadingNormalParameters {\\n      vec3 normalView;\\n      vec3 viewDirection;\\n    } shadingParams;\\n    \"],[\"\\n    struct ShadingNormalParameters {\\n      vec3 normalView;\\n      vec3 viewDirection;\\n    } shadingParams;\\n    \"])))),1===r.doubleSidedMode?m.code.add(n.glsl(i||(i=e([\"\\n      vec3 shadingNormal(ShadingNormalParameters params) {\\n        return dot(params.normalView, params.viewDirection) > 0.0 ? normalize(-params.normalView) : normalize(params.normalView);\\n      }\\n    \"],[\"\\n      vec3 shadingNormal(ShadingNormalParameters params) {\\n        return dot(params.normalView, params.viewDirection) > 0.0 ? normalize(-params.normalView) : normalize(params.normalView);\\n      }\\n    \"])))):2===r.doubleSidedMode?m.code.add(n.glsl(l||(l=e([\"\\n      vec3 shadingNormal(ShadingNormalParameters params) {\\n        return gl_FrontFacing ? normalize(params.normalView) : normalize(-params.normalView);\\n      }\\n    \"],[\"\\n      vec3 shadingNormal(ShadingNormalParameters params) {\\n        return gl_FrontFacing ? normalize(params.normalView) : normalize(-params.normalView);\\n      }\\n    \"])))):m.code.add(n.glsl(s||(s=e([\"\\n      vec3 shadingNormal(ShadingNormalParameters params) {\\n        return normalize(params.normalView);\\n      }\\n    \"],[\"\\n      vec3 shadingNormal(ShadingNormalParameters params) {\\n        return normalize(params.normalView);\\n      }\\n    \"]))))}Object.defineProperty(r,\"__esModule\",{value:!0}),r.Normals=m;var o,i,l,s});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"./AnalyticalSkyModel.glsl\",\"./PiUtils.glsl\",\"../../shaderModules/interfaces\"],function(e,n,o,t,a,l){function r(e,n){var r=e.fragment.code;e.include(a.PiUtils),n.usePBRforWater?(r.add(l.glsl(i||(i=o([\"\\n    struct PBRShadingWater\\n    {\\n        float NdotL;   // cos angle between normal and light direction\\n        float NdotV;   // cos angle between normal and view direction\\n        float NdotH;   // cos angle between normal and half vector\\n        float VdotH;   // cos angle between view direction and half vector\\n        float LdotH;   // cos angle between light direction and half vector\\n        float VdotN;   // cos angle between view direction and normal vector\\n    };\\n\\n    float dtrExponent = \",\";\\n    \"],[\"\\n    struct PBRShadingWater\\n    {\\n        float NdotL;   // cos angle between normal and light direction\\n        float NdotV;   // cos angle between normal and view direction\\n        float NdotH;   // cos angle between normal and half vector\\n        float VdotH;   // cos angle between view direction and half vector\\n        float LdotH;   // cos angle between light direction and half vector\\n        float VdotN;   // cos angle between view direction and normal vector\\n    };\\n\\n    float dtrExponent = \",\";\\n    \"])),n.useCustomDTRExponentForWater?\"2.2\":\"2.0\")),r.add(l.glsl(c||(c=o([\"\\n    vec3 fresnelReflection(float angle, vec3 f0, float f90) {\\n      return f0 + (f90 - f0) * pow(1.0 - angle, 5.0);\\n    }\\n    \"],[\"\\n    vec3 fresnelReflection(float angle, vec3 f0, float f90) {\\n      return f0 + (f90 - f0) * pow(1.0 - angle, 5.0);\\n    }\\n    \"])))),r.add(l.glsl(d||(d=o([\"\\n    float normalDistributionWater(float NdotH, float roughness)\\n    {\\n      float r2 = roughness * roughness;\\n      float NdotH2 = NdotH * NdotH;\\n      float denom = pow((NdotH2 * (r2 - 1.0) + 1.0), dtrExponent) * PI;\\n      return r2 / denom;\\n    }\\n    \"],[\"\\n    float normalDistributionWater(float NdotH, float roughness)\\n    {\\n      float r2 = roughness * roughness;\\n      float NdotH2 = NdotH * NdotH;\\n      float denom = pow((NdotH2 * (r2 - 1.0) + 1.0), dtrExponent) * PI;\\n      return r2 / denom;\\n    }\\n    \"])))),r.add(l.glsl(s||(s=o([\"\\n    float geometricOcclusionKelemen(float LoH)\\n    {\\n        return 0.25 / (LoH * LoH);\\n    }\\n    \"],[\"\\n    float geometricOcclusionKelemen(float LoH)\\n    {\\n        return 0.25 / (LoH * LoH);\\n    }\\n    \"])))),r.add(l.glsl(f||(f=o([\"\\n    vec3 brdfWater(in PBRShadingWater props, float roughness, vec3 F0, float F0Max)\\n    {\\n      vec3  F = fresnelReflection(props.VdotH, F0, F0Max);\\n      float D = normalDistributionWater(props.NdotH, roughness);\\n      float V = geometricOcclusionKelemen(props.LdotH);\\n      return (D * V) * F;\\n    }\\n\\n    vec3 tonemapACES(const vec3 x) {\\n      return (x * (2.51 * x + 0.03)) / (x * (2.43 * x + 0.59) + 0.14);\\n    }\\n    \"],[\"\\n    vec3 brdfWater(in PBRShadingWater props, float roughness, vec3 F0, float F0Max)\\n    {\\n      vec3  F = fresnelReflection(props.VdotH, F0, F0Max);\\n      float D = normalDistributionWater(props.NdotH, roughness);\\n      float V = geometricOcclusionKelemen(props.LdotH);\\n      return (D * V) * F;\\n    }\\n\\n    vec3 tonemapACES(const vec3 x) {\\n      return (x * (2.51 * x + 0.03)) / (x * (2.43 * x + 0.59) + 0.14);\\n    }\\n    \"]))))):n.usePBR&&(e.include(t.AnalyticalSkyModel),r.add(l.glsl(u||(u=o([\"\\n    struct PBRShadingInfo\\n    {\\n        float NdotL;                  // cos angle between normal and light direction\\n        float NdotV;                  // cos angle between normal and view direction\\n        float NdotH;                  // cos angle between normal and half vector\\n        float VdotH;                  // cos angle between view direction and half vector\\n        float LdotH;                  // cos angle between view light direction and half vector\\n        float NdotNG;                 // cos angle between normal and normal of the ground\\n        float RdotNG;                 // cos angle between view direction reflected of the normal and normal of the ground\\n        float NdotAmbDir;             // cos angle between view direction and the fill light in ambient illumination\\n        float NdotH_Horizon;          // cos angle between normal and half vector defined with horizon illumination\\n        vec3 skyRadianceToSurface;         // integrated radiance of the sky based on the surface roughness (used for specular reflection)\\n        vec3 groundRadianceToSurface;      // integrated radiance of the ground based on the surface roughness (used for specular reflection)\\n        vec3 skyIrradianceToSurface;       // irradiance of the sky (used for diffuse reflection)\\n        vec3 groundIrradianceToSurface;    // irradiance of the ground (used for diffuse reflection)\\n\\n        float averageAmbientRadiance;      // average ambient radiance used to deduce black level in gamut mapping\\n        float ssao;                   // ssao coefficient\\n        vec3 groundReflectance;       // reflectance of the ground\\n        vec3 albedoLinear;            // linear color of the albedo\\n        vec3 f0;                      // fresnel value at normal incident light\\n        vec3 f90;                     // fresnel value at 90o of incident light\\n\\n        vec3 diffuseColor;            // diffuse color of the material used in environment illumination\\n        float metalness;              // metalness of the material\\n        float roughness;              // roughness of the material\\n    };\\n    \"],[\"\\n    struct PBRShadingInfo\\n    {\\n        float NdotL;                  // cos angle between normal and light direction\\n        float NdotV;                  // cos angle between normal and view direction\\n        float NdotH;                  // cos angle between normal and half vector\\n        float VdotH;                  // cos angle between view direction and half vector\\n        float LdotH;                  // cos angle between view light direction and half vector\\n        float NdotNG;                 // cos angle between normal and normal of the ground\\n        float RdotNG;                 // cos angle between view direction reflected of the normal and normal of the ground\\n        float NdotAmbDir;             // cos angle between view direction and the fill light in ambient illumination\\n        float NdotH_Horizon;          // cos angle between normal and half vector defined with horizon illumination\\n        vec3 skyRadianceToSurface;         // integrated radiance of the sky based on the surface roughness (used for specular reflection)\\n        vec3 groundRadianceToSurface;      // integrated radiance of the ground based on the surface roughness (used for specular reflection)\\n        vec3 skyIrradianceToSurface;       // irradiance of the sky (used for diffuse reflection)\\n        vec3 groundIrradianceToSurface;    // irradiance of the ground (used for diffuse reflection)\\n\\n        float averageAmbientRadiance;      // average ambient radiance used to deduce black level in gamut mapping\\n        float ssao;                   // ssao coefficient\\n        vec3 groundReflectance;       // reflectance of the ground\\n        vec3 albedoLinear;            // linear color of the albedo\\n        vec3 f0;                      // fresnel value at normal incident light\\n        vec3 f90;                     // fresnel value at 90o of incident light\\n\\n        vec3 diffuseColor;            // diffuse color of the material used in environment illumination\\n        float metalness;              // metalness of the material\\n        float roughness;              // roughness of the material\\n    };\\n    \"])))),r.add(l.glsl(g||(g=o([\"\\n    const float fillLightIntensity = 0.25;              // intensity of the directional ambient component\\n    const float horizonLightDiffusion = 0.4;            // diffusion value describing the area and smoothness of the horizon light\\n    const vec3  skyTransmittance = vec3(0.9, 0.9, 1.0);  // bluish transmittance of the sky\\n    const float additionalAmbientIrradianceFactor = 0.02;// Additional irradiance factor - making everything brighter and more colorful\\n    \"],[\"\\n    const float fillLightIntensity = 0.25;              // intensity of the directional ambient component\\n    const float horizonLightDiffusion = 0.4;            // diffusion value describing the area and smoothness of the horizon light\\n    const vec3  skyTransmittance = vec3(0.9, 0.9, 1.0);  // bluish transmittance of the sky\\n    const float additionalAmbientIrradianceFactor = 0.02;// Additional irradiance factor - making everything brighter and more colorful\\n    \"])))),r.add(l.glsl(h||(h=o([\"\\n    float normalDistribution(float NdotH, float roughness)\\n    {\\n        float a = NdotH * roughness;\\n        float b = roughness / (1.0 - NdotH * NdotH + a * a);\\n        return b * b * INV_PI;\\n    }\\n    \"],[\"\\n    float normalDistribution(float NdotH, float roughness)\\n    {\\n        float a = NdotH * roughness;\\n        float b = roughness / (1.0 - NdotH * NdotH + a * a);\\n        return b * b * INV_PI;\\n    }\\n    \"])))),r.add(l.glsl(m||(m=o([\"\\n    const vec4 c0 = vec4(-1.0, -0.0275, -0.572,  0.022);\\n    const vec4 c1 = vec4( 1.0,  0.0425,  1.040, -0.040);\\n    const vec2 c2 = vec2(-1.04, 1.04);\\n\\n    vec2 prefilteredDFGAnalytical(float roughness, float NdotV) {\\n        vec4 r = roughness * c0 + c1;\\n        float a004 = min(r.x * r.x, exp2(-9.28 * NdotV)) * r.x + r.y;\\n        return c2 * a004 + r.zw;\\n    }\\n    \"],[\"\\n    const vec4 c0 = vec4(-1.0, -0.0275, -0.572,  0.022);\\n    const vec4 c1 = vec4( 1.0,  0.0425,  1.040, -0.040);\\n    const vec2 c2 = vec2(-1.04, 1.04);\\n\\n    vec2 prefilteredDFGAnalytical(float roughness, float NdotV) {\\n        vec4 r = roughness * c0 + c1;\\n        float a004 = min(r.x * r.x, exp2(-9.28 * NdotV)) * r.x + r.y;\\n        return c2 * a004 + r.zw;\\n    }\\n    \"])))),r.add(l.glsl(p||(p=o([\"\\n    vec3 evaluateEnvironmentIllumination(PBRShadingInfo inputs) {\\n      vec3 indirectDiffuse = evaluateDiffuseIlluminationHemisphere(inputs.groundIrradianceToSurface, inputs.skyIrradianceToSurface, inputs.NdotNG);\\n      vec3 indirectSpecular = evaluateSpecularIlluminationHemisphere(inputs.groundRadianceToSurface, inputs.skyRadianceToSurface, inputs.RdotNG, inputs.roughness);\\n\\n      // From diffuse illumination calculate reflected color\\n      vec3 diffuseComponent = inputs.diffuseColor * indirectDiffuse * INV_PI;\\n\\n      // From specular illumination calculate reflected color\\n      vec2 dfg = prefilteredDFGAnalytical(inputs.roughness, inputs.NdotV);\\n      vec3 specularColor = inputs.f0 * dfg.x + inputs.f90 * dfg.y;\\n      vec3 specularComponent = specularColor * indirectSpecular;\\n\\n      return (diffuseComponent + specularComponent);\\n    }\\n    \"],[\"\\n    vec3 evaluateEnvironmentIllumination(PBRShadingInfo inputs) {\\n      vec3 indirectDiffuse = evaluateDiffuseIlluminationHemisphere(inputs.groundIrradianceToSurface, inputs.skyIrradianceToSurface, inputs.NdotNG);\\n      vec3 indirectSpecular = evaluateSpecularIlluminationHemisphere(inputs.groundRadianceToSurface, inputs.skyRadianceToSurface, inputs.RdotNG, inputs.roughness);\\n\\n      // From diffuse illumination calculate reflected color\\n      vec3 diffuseComponent = inputs.diffuseColor * indirectDiffuse * INV_PI;\\n\\n      // From specular illumination calculate reflected color\\n      vec2 dfg = prefilteredDFGAnalytical(inputs.roughness, inputs.NdotV);\\n      vec3 specularColor = inputs.f0 * dfg.x + inputs.f90 * dfg.y;\\n      vec3 specularComponent = specularColor * indirectSpecular;\\n\\n      return (diffuseComponent + specularComponent);\\n    }\\n    \"])))),r.add(l.glsl(v||(v=o([\"\\n    float gamutMapChanel(float x, vec2 p){\\n      return (x < p.x) ? mix(0.0, p.y, x/p.x) : mix(p.y, 1.0, (x - p.x) / (1.0 - p.x) );\\n    }\\n\\n    // Because of the fresnel refletion the image might be too bright we apply black level soft compression gamut mapping\\n    vec3 blackLevelSoftCompression(vec3 inColor, PBRShadingInfo inputs){\\n      vec3 outColor;\\n      // based on the average ambient radiance we approximate the black level for a specific time of a day\\n      // p.x - the deduced black level\\n      // p.y - the value to which we map the black level (around 1/3 of the black level)\\n      vec2 p = vec2(0.02 * (inputs.averageAmbientRadiance), 0.0075 * (inputs.averageAmbientRadiance));\\n      // gamut map individual color changels\\n      outColor.x = gamutMapChanel(inColor.x, p) ;\\n      outColor.y = gamutMapChanel(inColor.y, p) ;\\n      outColor.z = gamutMapChanel(inColor.z, p) ;\\n\\n      return outColor;\\n    }\\n    \"],[\"\\n    float gamutMapChanel(float x, vec2 p){\\n      return (x < p.x) ? mix(0.0, p.y, x/p.x) : mix(p.y, 1.0, (x - p.x) / (1.0 - p.x) );\\n    }\\n\\n    // Because of the fresnel refletion the image might be too bright we apply black level soft compression gamut mapping\\n    vec3 blackLevelSoftCompression(vec3 inColor, PBRShadingInfo inputs){\\n      vec3 outColor;\\n      // based on the average ambient radiance we approximate the black level for a specific time of a day\\n      // p.x - the deduced black level\\n      // p.y - the value to which we map the black level (around 1/3 of the black level)\\n      vec2 p = vec2(0.02 * (inputs.averageAmbientRadiance), 0.0075 * (inputs.averageAmbientRadiance));\\n      // gamut map individual color changels\\n      outColor.x = gamutMapChanel(inColor.x, p) ;\\n      outColor.y = gamutMapChanel(inColor.y, p) ;\\n      outColor.z = gamutMapChanel(inColor.z, p) ;\\n\\n      return outColor;\\n    }\\n    \"])))))}Object.defineProperty(n,\"__esModule\",{value:!0}),n.PhysicallyBasedRendering=r;var i,c,d,s,f,u,g,h,m,p,v});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../attributes/VertexTextureCoordinates.glsl\",\"../../shaderModules/interfaces\"],function(e,s,n,o,t){function a(e,s){var a=e.fragment,p=s.hasMetalnessAndRoughnessTexture||s.hasEmissionTexture||s.hasOcclusionTexture;s.usePBR&&p&&e.include(o.VertexTextureCoordinates,s),s.usePBR&&(a.uniforms.add(\"roughnessFactor\",\"float\"),a.uniforms.add(\"metalnessFactor\",\"float\"),a.uniforms.add(\"emissionFactor\",\"vec3\"),a.uniforms.add(\"reflectanceFactor\",\"float\"),a.code.add(t.glsl(r||(r=n([\"\\n    float reflectance;\\n    float roughness;\\n    float metalness;\\n    vec3 emission;\\n    float occlusion;\\n    \"],[\"\\n    float reflectance;\\n    float roughness;\\n    float metalness;\\n    vec3 emission;\\n    float occlusion;\\n    \"])))),s.hasMetalnessAndRoughnessTexture&&(a.uniforms.add(\"texMetallicRoughness\",\"sampler2D\"),s.supportsTextureAtlas&&a.uniforms.add(\"texMetallicRoughnessSize\",\"vec2\"),a.code.add(t.glsl(l||(l=n([\"\\n    void applyMetallnessAndRoughness(TextureLookupParameter params) {\\n      vec3 metallicRoughness = textureLookup(texMetallicRoughness, params).rgb;\\n\\n      roughness *= metallicRoughness.g;\\n      metalness *= metallicRoughness.b;\\n    }\\n    \"],[\"\\n    void applyMetallnessAndRoughness(TextureLookupParameter params) {\\n      vec3 metallicRoughness = textureLookup(texMetallicRoughness, params).rgb;\\n\\n      roughness *= metallicRoughness.g;\\n      metalness *= metallicRoughness.b;\\n    }\\n    \"]))))),s.hasEmissionTexture&&(a.uniforms.add(\"texEmission\",\"sampler2D\"),s.supportsTextureAtlas&&a.uniforms.add(\"texEmissionSize\",\"vec2\"),a.code.add(t.glsl(c||(c=n([\"\\n    void applyEmission(TextureLookupParameter params) {\\n      emission *= textureLookup(texEmission, params).rgb;\\n    }\\n    \"],[\"\\n    void applyEmission(TextureLookupParameter params) {\\n      emission *= textureLookup(texEmission, params).rgb;\\n    }\\n    \"])))))),s.usePBR&&s.hasOcclusionTexture?(a.uniforms.add(\"texOcclusion\",\"sampler2D\"),s.supportsTextureAtlas&&a.uniforms.add(\"texOcclusionSize\",\"vec2\"),a.code.add(t.glsl(i||(i=n([\"\\n    void applyOcclusion(TextureLookupParameter params) {\\n      occlusion *= textureLookup(texOcclusion, params).r;\\n    }\\n\\n    float getBakedOcclusion() {\\n      return occlusion;\\n    }\\n    \"],[\"\\n    void applyOcclusion(TextureLookupParameter params) {\\n      occlusion *= textureLookup(texOcclusion, params).r;\\n    }\\n\\n    float getBakedOcclusion() {\\n      return occlusion;\\n    }\\n    \"]))))):a.code.add(t.glsl(u||(u=n([\"\\n    float getBakedOcclusion() { return 1.0; }\\n    \"],[\"\\n    float getBakedOcclusion() { return 1.0; }\\n    \"])))),s.usePBR&&a.code.add(t.glsl(m||(m=n([\"\\n    void applyPBRFactors() {\\n      reflectance = reflectanceFactor;\\n      roughness = roughnessFactor;\\n      metalness = metalnessFactor;\\n      emission = emissionFactor;\\n      occlusion = 1.0;\\n      \",\"\\n      \",\"\\n      \",\"\\n      \",\"\\n    }\\n  \"],[\"\\n    void applyPBRFactors() {\\n      reflectance = reflectanceFactor;\\n      roughness = roughnessFactor;\\n      metalness = metalnessFactor;\\n      emission = emissionFactor;\\n      occlusion = 1.0;\\n      \",\"\\n      \",\"\\n      \",\"\\n      \",\"\\n    }\\n  \"])),p?\"vtc.uv = vuv0;\":\"\",s.hasMetalnessAndRoughnessTexture?s.supportsTextureAtlas?\"vtc.size = texMetallicRoughnessSize; applyMetallnessAndRoughness(vtc);\":\"applyMetallnessAndRoughness(vtc);\":\"\",s.hasEmissionTexture?s.supportsTextureAtlas?\"vtc.size = texEmissionSize; applyEmission(vtc);\":\"applyEmission(vtc);\":\"\",s.hasOcclusionTexture?s.supportsTextureAtlas?\"vtc.size = texOcclusionSize; applyOcclusion(vtc);\":\"applyOcclusion(vtc);\":\"\"))}Object.defineProperty(s,\"__esModule\",{value:!0}),s.PhysicallyBasedRenderingParameters=a,function(e){function s(e,s){e.setUniform1f(\"metalnessFactor\",s.metallicFactor),e.setUniform1f(\"roughnessFactor\",s.roughnessFactor),e.setUniform3fv(\"emissionFactor\",s.emissiveFactor),e.setUniform1f(\"reflectanceFactor\",s.reflectanceFactor)}e.bindUniforms=s}(a=s.PhysicallyBasedRenderingParameters||(s.PhysicallyBasedRenderingParameters={}));var r,l,c,i,u,m});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(t,n,o,e){function l(t){t.vertex.code.add(e.glsl(a||(a=o([\"\\n    const float PI = 3.141592653589793;\\n  \"],[\"\\n    const float PI = 3.141592653589793;\\n  \"])))),t.fragment.code.add(e.glsl(s||(s=o([\"\\n    const float PI = 3.141592653589793;\\n    const float LIGHT_NORMALIZATION = 1.0 / PI;\\n    const float INV_PI = 0.3183098861837907;\\n    const float HALF_PI = 1.570796326794897;\\n    \"],[\"\\n    const float PI = 3.141592653589793;\\n    const float LIGHT_NORMALIZATION = 1.0 / PI;\\n    const float INV_PI = 0.3183098861837907;\\n    const float HALF_PI = 1.570796326794897;\\n    \"]))))}Object.defineProperty(n,\"__esModule\",{value:!0}),n.PiUtils=l;var a,s});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../util/RgbaFloatEncoding.glsl\",\"../../shaderModules/interfaces\"],function(e,a,t,l,i){function n(e){e.include(l.RgbaFloatEncoding),e.fragment.uniforms.add(\"depthTex\",\"sampler2D\"),e.fragment.uniforms.add(\"shadowMapNum\",\"int\"),e.fragment.uniforms.add(\"shadowMapDistance\",\"vec4\"),e.fragment.uniforms.add(\"shadowMapMatrix\",\"mat4\",4),e.fragment.uniforms.add(\"depthHalfPixelSz\",\"float\"),e.fragment.code.add(i.glsl(o||(o=t([\"\\n    float readShadowMap(const in vec3 _vpos, float _linearDepth) {\\n      float halfPixelSize = depthHalfPixelSz;\\n      vec4 distance = shadowMapDistance;\\n      float depth = _linearDepth;\\n\\n      //choose correct cascade\\n      int i = depth < distance[1] ? 0 : depth < distance[2] ? 1 : depth < distance[3] ? 2 : 3;\\n\\n      if (i >= shadowMapNum) { return 0.0; }\\n\\n      mat4 mat = i == 0 ? shadowMapMatrix[0] : i == 1 ? shadowMapMatrix[1] : i == 2 ? shadowMapMatrix[2] : shadowMapMatrix[3];\\n\\n      vec4 lv = mat * vec4(_vpos, 1.0);\\n      lv.xy /= lv.w;\\n\\n      // vertex completely outside? -> no shadow\\n      vec3 lvpos = 0.5 * lv.xyz + vec3(0.5);\\n      if (lvpos.z >= 1.0) { return 0.0; }\\n      if (lvpos.x < 0.0 || lvpos.x > 1.0 || lvpos.y < 0.0 || lvpos.y > 1.0) { return 0.0; }\\n\\n      // calc coord in cascade texture\\n      vec2 uv = vec2(float(i - 2 * (i / 2)) * 0.5, float(i / 2) * 0.5) + 0.5 * lvpos.xy;\\n\\n      float texSize = 0.5 / halfPixelSize;\\n\\n      // filter, offset by half pixels\\n      vec2 st = fract((vec2(halfPixelSize) + uv) * texSize);\\n\\n      float s00 = rgba2float(texture2D(depthTex, uv + vec2(-halfPixelSize, -halfPixelSize))) < lvpos.z ? 1.0 : 0.0;\\n      float s10 = rgba2float(texture2D(depthTex, uv + vec2(halfPixelSize, -halfPixelSize))) < lvpos.z ? 1.0 : 0.0;\\n      float s11 = rgba2float(texture2D(depthTex, uv + vec2(halfPixelSize, halfPixelSize))) < lvpos.z ? 1.0 : 0.0;\\n      float s01 = rgba2float(texture2D(depthTex, uv + vec2(-halfPixelSize, halfPixelSize))) < lvpos.z ? 1.0 : 0.0;\\n\\n      return mix(mix(s00, s10, st.x), mix(s01, s11, st.x), st.y);\\n    }\\n  \"],[\"\\n    float readShadowMap(const in vec3 _vpos, float _linearDepth) {\\n      float halfPixelSize = depthHalfPixelSz;\\n      vec4 distance = shadowMapDistance;\\n      float depth = _linearDepth;\\n\\n      //choose correct cascade\\n      int i = depth < distance[1] ? 0 : depth < distance[2] ? 1 : depth < distance[3] ? 2 : 3;\\n\\n      if (i >= shadowMapNum) { return 0.0; }\\n\\n      mat4 mat = i == 0 ? shadowMapMatrix[0] : i == 1 ? shadowMapMatrix[1] : i == 2 ? shadowMapMatrix[2] : shadowMapMatrix[3];\\n\\n      vec4 lv = mat * vec4(_vpos, 1.0);\\n      lv.xy /= lv.w;\\n\\n      // vertex completely outside? -> no shadow\\n      vec3 lvpos = 0.5 * lv.xyz + vec3(0.5);\\n      if (lvpos.z >= 1.0) { return 0.0; }\\n      if (lvpos.x < 0.0 || lvpos.x > 1.0 || lvpos.y < 0.0 || lvpos.y > 1.0) { return 0.0; }\\n\\n      // calc coord in cascade texture\\n      vec2 uv = vec2(float(i - 2 * (i / 2)) * 0.5, float(i / 2) * 0.5) + 0.5 * lvpos.xy;\\n\\n      float texSize = 0.5 / halfPixelSize;\\n\\n      // filter, offset by half pixels\\n      vec2 st = fract((vec2(halfPixelSize) + uv) * texSize);\\n\\n      float s00 = rgba2float(texture2D(depthTex, uv + vec2(-halfPixelSize, -halfPixelSize))) < lvpos.z ? 1.0 : 0.0;\\n      float s10 = rgba2float(texture2D(depthTex, uv + vec2(halfPixelSize, -halfPixelSize))) < lvpos.z ? 1.0 : 0.0;\\n      float s11 = rgba2float(texture2D(depthTex, uv + vec2(halfPixelSize, halfPixelSize))) < lvpos.z ? 1.0 : 0.0;\\n      float s01 = rgba2float(texture2D(depthTex, uv + vec2(-halfPixelSize, halfPixelSize))) < lvpos.z ? 1.0 : 0.0;\\n\\n      return mix(mix(s00, s10, st.x), mix(s01, s11, st.x), st.y);\\n    }\\n  \"]))))}Object.defineProperty(a,\"__esModule\",{value:!0}),a.ReadShadowMap=n,function(e){function a(e,a){a.shadowMappingEnabled&&a.shadowMap.bindView(e,a.origin)}e.bindUniforms=a}(n=a.ReadShadowMap||(a.ReadShadowMap={}));var o});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,v,o,n){function r(e,v){(v.vvSize||v.vvColor)&&e.attributes.add(\"instanceFeatureAttribute\",\"vec4\"),v.vvSize?(e.vertex.uniforms.add(\"vvSizeMinSize\",\"vec3\"),e.vertex.uniforms.add(\"vvSizeMaxSize\",\"vec3\"),e.vertex.uniforms.add(\"vvSizeOffset\",\"vec3\"),e.vertex.uniforms.add(\"vvSizeFactor\",\"vec3\"),e.vertex.uniforms.add(\"vvSymbolRotationMatrix\",\"mat3\"),e.vertex.uniforms.add(\"vvSymbolAnchor\",\"vec3\"),e.vertex.code.add(n.glsl(t||(t=o([\"\\n      vec4 vvTransformPosition(vec3 position, vec4 _featureAttribute) {\\n        vec3 vvScale = clamp(vvSizeOffset + _featureAttribute.x * vvSizeFactor, vvSizeMinSize, vvSizeMaxSize);\\n        return vec4(vvSymbolRotationMatrix * (vvScale * (position + vvSymbolAnchor)), 1.0);\\n      }\\n    \"],[\"\\n      vec4 vvTransformPosition(vec3 position, vec4 _featureAttribute) {\\n        vec3 vvScale = clamp(vvSizeOffset + _featureAttribute.x * vvSizeFactor, vvSizeMinSize, vvSizeMaxSize);\\n        return vec4(vvSymbolRotationMatrix * (vvScale * (position + vvSymbolAnchor)), 1.0);\\n      }\\n    \"])))),e.vertex.code.add(n.glsl(i||(i=o([\"\\n      const float eps = 1.192092896e-07;\\n      vec4 vvTransformNormal(vec3 _normal, vec4 _featureAttribute) {\\n        vec3 vvScale = clamp(vvSizeOffset + _featureAttribute.x * vvSizeFactor, vvSizeMinSize + eps, vvSizeMaxSize);\\n        return vec4(vvSymbolRotationMatrix * _normal / vvScale, 1.0);\\n      }\\n\\n      vec4 vvLocalNormal(vec3 _normal) {\\n        return vvTransformNormal(_normal, instanceFeatureAttribute);\\n      }\\n\\n      vec4 localPosition() {\\n        return vvTransformPosition(position, instanceFeatureAttribute);\\n      }\\n    \"],[\"\\n      const float eps = 1.192092896e-07;\\n      vec4 vvTransformNormal(vec3 _normal, vec4 _featureAttribute) {\\n        vec3 vvScale = clamp(vvSizeOffset + _featureAttribute.x * vvSizeFactor, vvSizeMinSize + eps, vvSizeMaxSize);\\n        return vec4(vvSymbolRotationMatrix * _normal / vvScale, 1.0);\\n      }\\n\\n      vec4 vvLocalNormal(vec3 _normal) {\\n        return vvTransformNormal(_normal, instanceFeatureAttribute);\\n      }\\n\\n      vec4 localPosition() {\\n        return vvTransformPosition(position, instanceFeatureAttribute);\\n      }\\n    \"]))))):e.vertex.code.add(n.glsl(a||(a=o([\"\\n      vec4 localPosition() { return vec4(position, 1.0); }\\n\\n      vec4 vvLocalNormal(vec3 _normal) { return vec4(_normal, 1.0); }\\n    \"],[\"\\n      vec4 localPosition() { return vec4(position, 1.0); }\\n\\n      vec4 vvLocalNormal(vec3 _normal) { return vec4(_normal, 1.0); }\\n    \"])))),v.vvColor?(e.vertex.defines.addInt(\"VV_COLOR_N\",8),e.vertex.code.add(n.glsl(l||(l=o([\"\\n      uniform float vvColorValues[VV_COLOR_N];\\n      uniform vec4 vvColorColors[VV_COLOR_N];\\n\\n      vec4 vvGetColor(vec4 featureAttribute, float values[VV_COLOR_N], vec4 colors[VV_COLOR_N]) {\\n        float value = featureAttribute.y;\\n        if (value <= values[0]) {\\n          return colors[0];\\n        }\\n\\n        for (int i = 1; i < VV_COLOR_N; ++i) {\\n          if (values[i] >= value) {\\n            float f = (value - values[i-1]) / (values[i] - values[i-1]);\\n            return mix(colors[i-1], colors[i], f);\\n          }\\n        }\\n        return colors[VV_COLOR_N - 1];\\n      }\\n\\n      vec4 vvColor() {\\n        return vvGetColor(instanceFeatureAttribute, vvColorValues, vvColorColors);\\n      }\\n    \"],[\"\\n      uniform float vvColorValues[VV_COLOR_N];\\n      uniform vec4 vvColorColors[VV_COLOR_N];\\n\\n      vec4 vvGetColor(vec4 featureAttribute, float values[VV_COLOR_N], vec4 colors[VV_COLOR_N]) {\\n        float value = featureAttribute.y;\\n        if (value <= values[0]) {\\n          return colors[0];\\n        }\\n\\n        for (int i = 1; i < VV_COLOR_N; ++i) {\\n          if (values[i] >= value) {\\n            float f = (value - values[i-1]) / (values[i] - values[i-1]);\\n            return mix(colors[i-1], colors[i], f);\\n          }\\n        }\\n        return colors[VV_COLOR_N - 1];\\n      }\\n\\n      vec4 vvColor() {\\n        return vvGetColor(instanceFeatureAttribute, vvColorValues, vvColorColors);\\n      }\\n    \"]))))):e.vertex.code.add(n.glsl(c||(c=o([\"\\n      vec4 vvColor() { return vec4(1.0); }\\n    \"],[\"\\n      vec4 vvColor() { return vec4(1.0); }\\n    \"]))))}Object.defineProperty(v,\"__esModule\",{value:!0}),v.VisualVariables=r,function(e){function v(e,v){v.vvSizeEnabled&&(e.setUniform3fv(\"vvSizeMinSize\",v.vvSizeMinSize),e.setUniform3fv(\"vvSizeMaxSize\",v.vvSizeMaxSize),e.setUniform3fv(\"vvSizeOffset\",v.vvSizeOffset),e.setUniform3fv(\"vvSizeFactor\",v.vvSizeFactor)),v.vvColorEnabled&&(e.setUniform1fv(\"vvColorValues\",v.vvColorValues),e.setUniform4fv(\"vvColorColors\",v.vvColorColors))}function o(e,o){v(e,o),o.vvOpacityEnabled&&(e.setUniform1fv(\"vvOpacityValues\",o.vvOpacityValues),e.setUniform1fv(\"vvOpacityOpacities\",o.vvOpacityOpacities))}function n(e,o){v(e,o),o.vvSizeEnabled&&(e.setUniform3fv(\"vvSymbolAnchor\",o.vvSymbolAnchor),e.setUniformMatrix3fv(\"vvSymbolRotationMatrix\",o.vvSymbolRotationMatrix))}e.bindUniformsWithOpacity=o,e.bindUniformsForSymbols=n}(r=v.VisualVariables||(v.VisualVariables={}));var t,i,a,l,c});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"./Gamma.glsl\",\"./PhysicallyBasedRendering.glsl\",\"../../shaderModules/interfaces\"],function(e,n,o,t,r,a){function i(e,n){e.include(r.PhysicallyBasedRendering,n),e.include(t.Gamma),e.fragment.code.add(a.glsl(s||(s=o([\"\\n    const vec3 fresnelSky =  vec3(0.02, 1.0, 5.0); // f0, f0max, exp\\n    const vec2 fresnelMaterial =  vec2(0.02, 0.1); // f0, f0max for specular term\\n    const float roughness = 0.06;\\n\\n    const vec3 skyZenitColor = vec3(0, 0.6, 0.9);\\n    const vec3 skyColor = vec3(0.72, 0.92, 1.0);\\n\\n    PBRShadingWater shadingInfo;\\n\\n    /*\\n    *   This function is an approximation for the sky gradient reflected\\n    *   the water surface and describes a combination of two fresnel terms.\\n    *   @parameter: cosTheta = is the result of max(dot(n,v), 0.0)\\n    *   @parameter: horizon = the dominant color of the sky horizon\\n    *   @parameter: cosTheta = the dominant color of the sky zenit\\n    */\\n    vec3 getSkyGradientColor(in float cosTheta, in vec3 horizon, in vec3 zenit) {\\n      float exponent = pow((1.0 - cosTheta), fresnelSky[2]);\\n      return mix(zenit, horizon, exponent);\\n    }\\n\\n    /*\\n    *   This function determines the water color per pixel.\\n    *   @parameter: n = normal facing away from the surface\\n    *   @parameter: v = view direction facing away from the surface.\\n    *   @parameter: l = light direction facing away from the surface\\n    *   @parameter: lightIntensity = light intensity, currently between 0...PI\\n    *   @parameter: localUp = a normal for the general direction of the surface\\n    *   @parameter: shadow = the amount of shadow at this pixel (0 = no shadow)\\n    */\\n    vec3 getSeaColor(in vec3 n, in vec3 v, in vec3 l, vec3 color, in vec3 lightIntensity, in vec3 localUp, in float shadow) {\\n\\n      vec3 seaWaterColor = linearizeGamma(color);\\n      // using half vector to determine the specular light\\n      vec3 h = normalize(l + v);\\n      shadingInfo.NdotL = clamp(dot(n, l), 0.0, 1.0);\\n      shadingInfo.NdotV = clamp(dot(n, v), 0.001, 1.0);\\n      shadingInfo.VdotN = clamp(dot(v, n), 0.001, 1.0);\\n      shadingInfo.NdotH = clamp(dot(n, h), 0.0, 1.0);\\n      shadingInfo.VdotH = clamp(dot(v, h), 0.0, 1.0);\\n      shadingInfo.LdotH = clamp(dot(l, h), 0.0, 1.0);\\n\\n      // angle between vertex normal and view direction\\n      float upDotV = max(dot(localUp,v), 0.0);\\n      // reflected sky color: the reflected sky color consists of two main colors, the\\n      // reflected color at the horizon and the reflected color of the zenit.\\n      // the reflected sky color is then an approximation based on the fresnel term.\\n      vec3 skyHorizon = linearizeGamma(skyColor);\\n      vec3 skyZenit = linearizeGamma(skyZenitColor);\\n      vec3 skyColor = getSkyGradientColor(upDotV, skyHorizon, skyZenit );\\n\\n      // we use the upDotL to smoothen out the\\n      // reflected color of the water\\n      float upDotL = max(dot(localUp,l),0.0);\\n\\n      // The approximated sky color is adjusted according to the sun position.\\n      // This is done as approximation for e.g. night views.\\n      skyColor *= 0.1 + upDotL * 0.9;\\n\\n      // If a water surface is in shadow we just use a slight darkening of the\\n      // water surface expressed with this shadowModifier.\\n      float shadowModifier = clamp(shadow, 0.8, 1.0);\\n\\n      // The reflected sky color consists of the fresnel reflection multiplied with the approximated sky color.\\n      // The shadow is influencing the frensel term to keep the shadow impression for really near views. As long\\n      // as reflection are absent there is a need to have a slight shadow for depth perception.\\n      vec3 reflSky = fresnelReflection(shadingInfo.VdotN, vec3(fresnelSky[0]), fresnelSky[1]) * skyColor * shadowModifier;\\n\\n      // The reflected sea color is the input water color combined with the reflected sky color.\\n      // The reflected sky color is modified by the incoming light.\\n      vec3 reflSea = seaWaterColor * mix(skyColor, upDotL * lightIntensity * LIGHT_NORMALIZATION, 2.0 / 3.0) * shadowModifier;\\n\\n      vec3 specular = vec3(0.0);\\n      // This prevents the specular light to be rendered when:\\n      // - sun is behind a polygon (e.g. sundown for elevated polygons where nDotL might be still ok)\\n      // - viewer is under water (for this localUp is better than n)\\n      if(upDotV > 0.0 && upDotL > 0.0) {\\n        // calculate the cook torrance BRDF but with simplified occlusion\\n        vec3 specularSun = brdfWater(shadingInfo, roughness, vec3(fresnelMaterial[0]), fresnelMaterial[1]);\\n        // Normalize light intensity to be between 0...1. Shadow cancels out specular light here\\n        vec3 incidentLight = lightIntensity * LIGHT_NORMALIZATION * shadow;\\n\\n        specular = shadingInfo.NdotL * incidentLight * specularSun;\\n      }\\n      // combining reflected sky, reflected sea and specular highlight.\\n      return tonemapACES(reflSky + reflSea + specular);\\n    }\\n  \"],[\"\\n    const vec3 fresnelSky =  vec3(0.02, 1.0, 5.0); // f0, f0max, exp\\n    const vec2 fresnelMaterial =  vec2(0.02, 0.1); // f0, f0max for specular term\\n    const float roughness = 0.06;\\n\\n    const vec3 skyZenitColor = vec3(0, 0.6, 0.9);\\n    const vec3 skyColor = vec3(0.72, 0.92, 1.0);\\n\\n    PBRShadingWater shadingInfo;\\n\\n    /*\\n    *   This function is an approximation for the sky gradient reflected\\n    *   the water surface and describes a combination of two fresnel terms.\\n    *   @parameter: cosTheta = is the result of max(dot(n,v), 0.0)\\n    *   @parameter: horizon = the dominant color of the sky horizon\\n    *   @parameter: cosTheta = the dominant color of the sky zenit\\n    */\\n    vec3 getSkyGradientColor(in float cosTheta, in vec3 horizon, in vec3 zenit) {\\n      float exponent = pow((1.0 - cosTheta), fresnelSky[2]);\\n      return mix(zenit, horizon, exponent);\\n    }\\n\\n    /*\\n    *   This function determines the water color per pixel.\\n    *   @parameter: n = normal facing away from the surface\\n    *   @parameter: v = view direction facing away from the surface.\\n    *   @parameter: l = light direction facing away from the surface\\n    *   @parameter: lightIntensity = light intensity, currently between 0...PI\\n    *   @parameter: localUp = a normal for the general direction of the surface\\n    *   @parameter: shadow = the amount of shadow at this pixel (0 = no shadow)\\n    */\\n    vec3 getSeaColor(in vec3 n, in vec3 v, in vec3 l, vec3 color, in vec3 lightIntensity, in vec3 localUp, in float shadow) {\\n\\n      vec3 seaWaterColor = linearizeGamma(color);\\n      // using half vector to determine the specular light\\n      vec3 h = normalize(l + v);\\n      shadingInfo.NdotL = clamp(dot(n, l), 0.0, 1.0);\\n      shadingInfo.NdotV = clamp(dot(n, v), 0.001, 1.0);\\n      shadingInfo.VdotN = clamp(dot(v, n), 0.001, 1.0);\\n      shadingInfo.NdotH = clamp(dot(n, h), 0.0, 1.0);\\n      shadingInfo.VdotH = clamp(dot(v, h), 0.0, 1.0);\\n      shadingInfo.LdotH = clamp(dot(l, h), 0.0, 1.0);\\n\\n      // angle between vertex normal and view direction\\n      float upDotV = max(dot(localUp,v), 0.0);\\n      // reflected sky color: the reflected sky color consists of two main colors, the\\n      // reflected color at the horizon and the reflected color of the zenit.\\n      // the reflected sky color is then an approximation based on the fresnel term.\\n      vec3 skyHorizon = linearizeGamma(skyColor);\\n      vec3 skyZenit = linearizeGamma(skyZenitColor);\\n      vec3 skyColor = getSkyGradientColor(upDotV, skyHorizon, skyZenit );\\n\\n      // we use the upDotL to smoothen out the\\n      // reflected color of the water\\n      float upDotL = max(dot(localUp,l),0.0);\\n\\n      // The approximated sky color is adjusted according to the sun position.\\n      // This is done as approximation for e.g. night views.\\n      skyColor *= 0.1 + upDotL * 0.9;\\n\\n      // If a water surface is in shadow we just use a slight darkening of the\\n      // water surface expressed with this shadowModifier.\\n      float shadowModifier = clamp(shadow, 0.8, 1.0);\\n\\n      // The reflected sky color consists of the fresnel reflection multiplied with the approximated sky color.\\n      // The shadow is influencing the frensel term to keep the shadow impression for really near views. As long\\n      // as reflection are absent there is a need to have a slight shadow for depth perception.\\n      vec3 reflSky = fresnelReflection(shadingInfo.VdotN, vec3(fresnelSky[0]), fresnelSky[1]) * skyColor * shadowModifier;\\n\\n      // The reflected sea color is the input water color combined with the reflected sky color.\\n      // The reflected sky color is modified by the incoming light.\\n      vec3 reflSea = seaWaterColor * mix(skyColor, upDotL * lightIntensity * LIGHT_NORMALIZATION, 2.0 / 3.0) * shadowModifier;\\n\\n      vec3 specular = vec3(0.0);\\n      // This prevents the specular light to be rendered when:\\n      // - sun is behind a polygon (e.g. sundown for elevated polygons where nDotL might be still ok)\\n      // - viewer is under water (for this localUp is better than n)\\n      if(upDotV > 0.0 && upDotL > 0.0) {\\n        // calculate the cook torrance BRDF but with simplified occlusion\\n        vec3 specularSun = brdfWater(shadingInfo, roughness, vec3(fresnelMaterial[0]), fresnelMaterial[1]);\\n        // Normalize light intensity to be between 0...1. Shadow cancels out specular light here\\n        vec3 incidentLight = lightIntensity * LIGHT_NORMALIZATION * shadow;\\n\\n        specular = shadingInfo.NdotL * incidentLight * specularSun;\\n      }\\n      // combining reflected sky, reflected sea and specular highlight.\\n      return tonemapACES(reflSky + reflSea + specular);\\n    }\\n  \"]))))}Object.defineProperty(n,\"__esModule\",{value:!0}),n.Water=i;var s});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,t,n,r){function a(e){e.fragment.uniforms.add(\"texWaveNormal\",\"sampler2D\"),e.fragment.uniforms.add(\"texWavePerturbation\",\"sampler2D\"),e.fragment.uniforms.add(\"octaveTextureRepeat\",\"vec3\"),e.fragment.uniforms.add(\"waveParams\",\"vec4\"),e.fragment.uniforms.add(\"waveDirection\",\"vec2\"),e.fragment.code.add(r.glsl(o||(o=n([\"\\n      // uniform vec3 octaveTextureRepeat;\\n\\n      // // 0: waveStrength\\n      // // 1: waveTextureRepeat\\n      // // 2: flowStrength\\n      // // 3: flowOffset\\n      // uniform vec4 waveParams;\\n\\n      // uniform vec2 waveDirection;\\n\\n      const vec2  FLOW_JUMP = vec2(6.0/25.0, 5.0/24.0);\\n\\n      vec2 textureDenormalized2D(sampler2D _tex, vec2 _uv) {\\n        return 2.0 * texture2D(_tex, _uv).rg - 1.0;\\n      }\\n\\n      float sampleNoiseTexture(vec2 _uv) {\\n        return texture2D(texWavePerturbation, _uv).b;\\n      }\\n\\n      vec3 textureDenormalized3D(sampler2D _tex, vec2 _uv) {\\n        return 2.0 * texture2D(_tex, _uv).rgb - 1.0;\\n      }\\n\\n      float computeProgress(vec2 uv, float time) {\\n        return fract(time);\\n      }\\n\\n      float computeWeight(vec2 uv, float time) {\\n        float progress = computeProgress(uv, time);\\n        return 1.0 - abs(1.0 - 2.0 * progress);\\n      }\\n\\n      vec3 computeUVPerturbedWeigth(sampler2D texFlow, vec2 uv, float time, float phaseOffset) {\\n        float flowStrength = waveParams[2];\\n        float flowOffset = waveParams[3];\\n\\n        vec2 flowVector = textureDenormalized2D(texFlow, uv) * flowStrength;\\n\\n        float progress = computeProgress(uv, time + phaseOffset);\\n        float weight = computeWeight(uv, time + phaseOffset);\\n\\n        vec2 result = uv;\\n        result -= flowVector * (progress + flowOffset);\\n        result += phaseOffset;\\n        result += (time - progress) * FLOW_JUMP;\\n\\n        return vec3(result, weight);\\n      }\\n\\n      const float TIME_NOISE_TEXTURE_REPEAT = 0.3737;\\n      const float TIME_NOISE_STRENGTH = 7.77;\\n\\n      vec3 getWaveLayer(sampler2D _texNormal, sampler2D _dudv, vec2 _uv, vec2 _waveDir, float time) {\\n        float waveStrength = waveParams[0];\\n\\n        // overall directional shift in uv's for directional wave movement for\\n        // now we do a hard coded scale for wave speed such that a unit length\\n        // direction is not too fast.\\n        vec2 waveMovement = time * -_waveDir;\\n\\n        float timeNoise = sampleNoiseTexture(_uv * TIME_NOISE_TEXTURE_REPEAT) * TIME_NOISE_STRENGTH;\\n\\n        // compute two perturbed uvs and blend weights\\n        // then sample the wave normals at the two positions and blend\\n        vec3 uv_A = computeUVPerturbedWeigth(_dudv, _uv + waveMovement, time + timeNoise, 0.0);\\n        vec3 uv_B = computeUVPerturbedWeigth(_dudv, _uv + waveMovement, time + timeNoise, 0.5);\\n\\n        vec3 normal_A = textureDenormalized3D(_texNormal, uv_A.xy) * uv_A.z;\\n        vec3 normal_B = textureDenormalized3D(_texNormal, uv_B.xy) * uv_B.z;\\n\\n        // logic to flatten the wave pattern\\n        // scale xy components of the normal, then adjust z (up) component\\n        vec3 mixNormal = normalize(normal_A + normal_B);\\n        mixNormal.xy *= waveStrength;\\n        mixNormal.z = sqrt(1.0 - dot(mixNormal.xy, mixNormal.xy));\\n\\n        return mixNormal;\\n      }\\n\\n      vec3 getSurfaceNormal(vec2 _uv, float _time) {\\n        float waveTextureRepeat = waveParams[1];\\n        return getWaveLayer(texWaveNormal, texWavePerturbation, _uv * waveTextureRepeat, waveDirection, _time);\\n      }\\n    \"],[\"\\n      // uniform vec3 octaveTextureRepeat;\\n\\n      // // 0: waveStrength\\n      // // 1: waveTextureRepeat\\n      // // 2: flowStrength\\n      // // 3: flowOffset\\n      // uniform vec4 waveParams;\\n\\n      // uniform vec2 waveDirection;\\n\\n      const vec2  FLOW_JUMP = vec2(6.0/25.0, 5.0/24.0);\\n\\n      vec2 textureDenormalized2D(sampler2D _tex, vec2 _uv) {\\n        return 2.0 * texture2D(_tex, _uv).rg - 1.0;\\n      }\\n\\n      float sampleNoiseTexture(vec2 _uv) {\\n        return texture2D(texWavePerturbation, _uv).b;\\n      }\\n\\n      vec3 textureDenormalized3D(sampler2D _tex, vec2 _uv) {\\n        return 2.0 * texture2D(_tex, _uv).rgb - 1.0;\\n      }\\n\\n      float computeProgress(vec2 uv, float time) {\\n        return fract(time);\\n      }\\n\\n      float computeWeight(vec2 uv, float time) {\\n        float progress = computeProgress(uv, time);\\n        return 1.0 - abs(1.0 - 2.0 * progress);\\n      }\\n\\n      vec3 computeUVPerturbedWeigth(sampler2D texFlow, vec2 uv, float time, float phaseOffset) {\\n        float flowStrength = waveParams[2];\\n        float flowOffset = waveParams[3];\\n\\n        vec2 flowVector = textureDenormalized2D(texFlow, uv) * flowStrength;\\n\\n        float progress = computeProgress(uv, time + phaseOffset);\\n        float weight = computeWeight(uv, time + phaseOffset);\\n\\n        vec2 result = uv;\\n        result -= flowVector * (progress + flowOffset);\\n        result += phaseOffset;\\n        result += (time - progress) * FLOW_JUMP;\\n\\n        return vec3(result, weight);\\n      }\\n\\n      const float TIME_NOISE_TEXTURE_REPEAT = 0.3737;\\n      const float TIME_NOISE_STRENGTH = 7.77;\\n\\n      vec3 getWaveLayer(sampler2D _texNormal, sampler2D _dudv, vec2 _uv, vec2 _waveDir, float time) {\\n        float waveStrength = waveParams[0];\\n\\n        // overall directional shift in uv's for directional wave movement for\\n        // now we do a hard coded scale for wave speed such that a unit length\\n        // direction is not too fast.\\n        vec2 waveMovement = time * -_waveDir;\\n\\n        float timeNoise = sampleNoiseTexture(_uv * TIME_NOISE_TEXTURE_REPEAT) * TIME_NOISE_STRENGTH;\\n\\n        // compute two perturbed uvs and blend weights\\n        // then sample the wave normals at the two positions and blend\\n        vec3 uv_A = computeUVPerturbedWeigth(_dudv, _uv + waveMovement, time + timeNoise, 0.0);\\n        vec3 uv_B = computeUVPerturbedWeigth(_dudv, _uv + waveMovement, time + timeNoise, 0.5);\\n\\n        vec3 normal_A = textureDenormalized3D(_texNormal, uv_A.xy) * uv_A.z;\\n        vec3 normal_B = textureDenormalized3D(_texNormal, uv_B.xy) * uv_B.z;\\n\\n        // logic to flatten the wave pattern\\n        // scale xy components of the normal, then adjust z (up) component\\n        vec3 mixNormal = normalize(normal_A + normal_B);\\n        mixNormal.xy *= waveStrength;\\n        mixNormal.z = sqrt(1.0 - dot(mixNormal.xy, mixNormal.xy));\\n\\n        return mixNormal;\\n      }\\n\\n      vec3 getSurfaceNormal(vec2 _uv, float _time) {\\n        float waveTextureRepeat = waveParams[1];\\n        return getWaveLayer(texWaveNormal, texWavePerturbation, _uv * waveTextureRepeat, waveDirection, _time);\\n      }\\n    \"]))))}Object.defineProperty(t,\"__esModule\",{value:!0}),t.WaterDistortion=a;var o});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,c,n,r){function v(e,c){var v=[r.glsl(a||(a=n([\"\\n      vec4 premultiplyAlpha(vec4 v) {\\n        return vec4(v.rgb * v.a, v.a);\\n      }\\n    \"],[\"\\n      vec4 premultiplyAlpha(vec4 v) {\\n        return vec4(v.rgb * v.a, v.a);\\n      }\\n    \"]))),r.glsl(x||(x=n([\"\\n      vec3 rgb2hsv(vec3 c) {\\n        vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\\n        vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);\\n        vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);\\n\\n        float d = q.x - min(q.w, q.y);\\n        float e = 1.0e-10;\\n        return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), min(d / (q.x + e), 1.0), q.x);\\n      }\\n    \"],[\"\\n      vec3 rgb2hsv(vec3 c) {\\n        vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\\n        vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);\\n        vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);\\n\\n        float d = q.x - min(q.w, q.y);\\n        float e = 1.0e-10;\\n        return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), min(d / (q.x + e), 1.0), q.x);\\n      }\\n    \"]))),r.glsl(t||(t=n([\"\\n      vec3 hsv2rgb(vec3 c) {\\n        vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\\n        vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\\n        return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\\n      }\\n    \"],[\"\\n      vec3 hsv2rgb(vec3 c) {\\n        vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\\n        vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\\n        return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\\n      }\\n    \"]))),r.glsl(o||(o=n([\"\\n      float rgb2v(vec3 c) {\\n        return max(c.x, max(c.y, c.z));\\n      }\\n    \"],[\"\\n      float rgb2v(vec3 c) {\\n        return max(c.x, max(c.y, c.z));\\n      }\\n    \"])))];switch(c.stages){case 0:v.forEach(function(c){return e.vertex.code.add(c)});break;case 1:v.forEach(function(c){return e.fragment.code.add(c)});break;default:v.forEach(function(c){return e.vertex.code.add(c)}),v.forEach(function(c){return e.fragment.code.add(c)})}}Object.defineProperty(c,\"__esModule\",{value:!0}),c.ColorConversion=v;var a,x,t,o});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,n,r,a){function f(e){var n=a.glsl(o||(o=r([\"\\n    vec3 decodeNormal(vec2 f) {\\n      float z = 1.0 - abs(f.x) - abs(f.y);\\n      return vec3(f + sign(f) * min(z, 0.0), z);\\n    }\\n  \"],[\"\\n    vec3 decodeNormal(vec2 f) {\\n      float z = 1.0 - abs(f.x) - abs(f.y);\\n      return vec3(f + sign(f) * min(z, 0.0), z);\\n    }\\n  \"])));e.fragment.code.add(n),e.vertex.code.add(n)}Object.defineProperty(n,\"__esModule\",{value:!0}),n.DecodeNormal=f;var o});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../../../../../core/has\",\"../../shaderModules/interfaces\",\"../../../lib/WebGLDriverTest\"],function(e,n,c,i,t,r){function v(e,n){n.doublePrecisionRequiresObfuscation?e.vertex.code.add(t.glsl(l||(l=c([\"\\n      vec3 dpPlusFrc(vec3 a, vec3 b) {\\n        return mix(a, a + b, vec3(notEqual(b, vec3(0))));\\n      }\\n\\n      vec3 dpMinusFrc(vec3 a, vec3 b) {\\n        return mix(vec3(0), a - b, vec3(notEqual(a, b)));\\n      }\\n\\n      // based on https://www.thasler.com/blog/blog/glsl-part2-emu\\n      vec3 dpAdd(vec3 hiA, vec3 loA, vec3 hiB, vec3 loB) {\\n        vec3 t1 = dpPlusFrc(hiA, hiB);\\n        vec3 e = dpMinusFrc(t1, hiA);\\n        vec3 t2 = dpMinusFrc(hiB, e) + dpMinusFrc(hiA, dpMinusFrc(t1, e)) + loA + loB;\\n        return t1 + t2;\\n      }\\n    \"],[\"\\n      vec3 dpPlusFrc(vec3 a, vec3 b) {\\n        return mix(a, a + b, vec3(notEqual(b, vec3(0))));\\n      }\\n\\n      vec3 dpMinusFrc(vec3 a, vec3 b) {\\n        return mix(vec3(0), a - b, vec3(notEqual(a, b)));\\n      }\\n\\n      // based on https://www.thasler.com/blog/blog/glsl-part2-emu\\n      vec3 dpAdd(vec3 hiA, vec3 loA, vec3 hiB, vec3 loB) {\\n        vec3 t1 = dpPlusFrc(hiA, hiB);\\n        vec3 e = dpMinusFrc(t1, hiA);\\n        vec3 t2 = dpMinusFrc(hiB, e) + dpMinusFrc(hiA, dpMinusFrc(t1, e)) + loA + loB;\\n        return t1 + t2;\\n      }\\n    \"])))):e.vertex.code.add(t.glsl(u||(u=c([\"\\n      vec3 dpAdd(vec3 hiA, vec3 loA, vec3 hiB, vec3 loB) {\\n        vec3 t1 = hiA + hiB;\\n        vec3 e = t1 - hiA;\\n        vec3 t2 = ((hiB - e) + (hiA - (t1 - e))) + loA + loB;\\n        return t1 + t2;\\n      }\\n    \"],[\"\\n      vec3 dpAdd(vec3 hiA, vec3 loA, vec3 hiB, vec3 loB) {\\n        vec3 t1 = hiA + hiB;\\n        vec3 e = t1 - hiA;\\n        vec3 t2 = ((hiB - e) + (hiA - (t1 - e))) + loA + loB;\\n        return t1 + t2;\\n      }\\n    \"]))))}function o(e){return!!i(\"force-double-precision-obfuscation\")||r.testWebGLDriver(e).doublePrecisionRequiresObfuscation}Object.defineProperty(n,\"__esModule\",{value:!0}),n.DoublePrecision=v,n.doublePrecisionRequiresObfuscation=o;var l,u});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"./ColorConversion.glsl\",\"../../shaderModules/interfaces\"],function(e,n,t,r,i){function l(e,n){e.include(r.ColorConversion,n);var l=i.glsl(a||(a=t([\"\\n    vec3 mixExternalColor(vec3 internalColor, vec3 textureColor, vec3 externalColor, int mode) {\\n      // workaround for artifacts in OSX using Intel Iris Pro\\n      // see: https://devtopia.esri.com/WebGIS/arcgis-js-api/issues/10475\\n      vec3 internalMixed = internalColor * textureColor;\\n      vec3 allMixed = internalMixed * externalColor;\\n\\n      if (mode == \",\") {\\n        return allMixed;\\n      }\\n      else if (mode == \",\") {\\n        return internalMixed;\\n      }\\n      else if (mode == \",\") {\\n        return externalColor;\\n      }\\n      else {\\n        // tint (or something invalid)\\n        float vIn = rgb2v(internalMixed);\\n        vec3 hsvTint = rgb2hsv(externalColor);\\n        vec3 hsvOut = vec3(hsvTint.x, hsvTint.y, vIn * hsvTint.z);\\n        return hsv2rgb(hsvOut);\\n      }\\n    }\\n\\n    float mixExternalOpacity(float internalOpacity, float textureOpacity, float externalOpacity, int mode) {\\n      // workaround for artifacts in OSX using Intel Iris Pro\\n      // see: https://devtopia.esri.com/WebGIS/arcgis-js-api/issues/10475\\n      float internalMixed = internalOpacity * textureOpacity;\\n      float allMixed = internalMixed * externalOpacity;\\n\\n      if (mode == \",\") {\\n        return internalMixed;\\n      }\\n      else if (mode == \",\") {\\n        return externalOpacity;\\n      }\\n      else {\\n        // multiply or tint (or something invalid)\\n        return allMixed;\\n      }\\n    }\\n  \"],[\"\\n    vec3 mixExternalColor(vec3 internalColor, vec3 textureColor, vec3 externalColor, int mode) {\\n      // workaround for artifacts in OSX using Intel Iris Pro\\n      // see: https://devtopia.esri.com/WebGIS/arcgis-js-api/issues/10475\\n      vec3 internalMixed = internalColor * textureColor;\\n      vec3 allMixed = internalMixed * externalColor;\\n\\n      if (mode == \",\") {\\n        return allMixed;\\n      }\\n      else if (mode == \",\") {\\n        return internalMixed;\\n      }\\n      else if (mode == \",\") {\\n        return externalColor;\\n      }\\n      else {\\n        // tint (or something invalid)\\n        float vIn = rgb2v(internalMixed);\\n        vec3 hsvTint = rgb2hsv(externalColor);\\n        vec3 hsvOut = vec3(hsvTint.x, hsvTint.y, vIn * hsvTint.z);\\n        return hsv2rgb(hsvOut);\\n      }\\n    }\\n\\n    float mixExternalOpacity(float internalOpacity, float textureOpacity, float externalOpacity, int mode) {\\n      // workaround for artifacts in OSX using Intel Iris Pro\\n      // see: https://devtopia.esri.com/WebGIS/arcgis-js-api/issues/10475\\n      float internalMixed = internalOpacity * textureOpacity;\\n      float allMixed = internalMixed * externalOpacity;\\n\\n      if (mode == \",\") {\\n        return internalMixed;\\n      }\\n      else if (mode == \",\") {\\n        return externalOpacity;\\n      }\\n      else {\\n        // multiply or tint (or something invalid)\\n        return allMixed;\\n      }\\n    }\\n  \"])),i.glsl.int(1),i.glsl.int(2),i.glsl.int(3),i.glsl.int(2),i.glsl.int(3));switch(n.stages){case 0:e.vertex.code.add(l);break;case 1:e.fragment.code.add(l);break;default:e.vertex.code.add(l),e.fragment.code.add(l)}}Object.defineProperty(n,\"__esModule\",{value:!0}),n.MixExternalColor=l;var a});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(n,t,e,o){function a(n){var t=o.glsl(r||(r=e([\"\\n    // This is the maximum float value representable as 32bit fixed point,\\n    // it is rgba2float(vec4(1)) inlined.\\n    const float MAX_RGBA_FLOAT =\\n      255.0 / 256.0 +\\n      255.0 / 256.0 / 256.0 +\\n      255.0 / 256.0 / 256.0 / 256.0 +\\n      255.0 / 256.0 / 256.0 / 256.0 / 256.0;\\n\\n    // Factors to convert to fixed point, i.e. factors (256^0, 256^1, 256^2, 256^3)\\n    const vec4 FIXED_POINT_FACTORS = vec4(1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0);\\n\\n    vec4 float2rgba(const float value) {\\n      // Make sure value is in the domain we can represent\\n      float valueInValidDomain = clamp(value, 0.0, MAX_RGBA_FLOAT);\\n\\n      // Decompose value in 32bit fixed point parts represented as\\n      // uint8 rgba components. Decomposition uses the fractional part after multiplying\\n      // by a power of 256 (this removes the bits that are represented in the previous\\n      // component) and then converts the fractional part to 8bits.\\n      vec4 fixedPointU8 = floor(fract(valueInValidDomain * FIXED_POINT_FACTORS) * 256.0);\\n\\n      // Convert uint8 values (from 0 to 255) to floating point representation for\\n      // the shader\\n      const float toU8AsFloat = 1.0 / 255.0;\\n\\n      return fixedPointU8 * toU8AsFloat;\\n    }\\n\\n    // Factors to convert rgba back to float\\n    const vec4 RGBA_2_FLOAT_FACTORS = vec4(\\n      255.0 / (256.0),\\n      255.0 / (256.0 * 256.0),\\n      255.0 / (256.0 * 256.0 * 256.0),\\n      255.0 / (256.0 * 256.0 * 256.0 * 256.0)\\n    );\\n\\n    float rgba2float(vec4 rgba) {\\n      // Convert components from 0->1 back to 0->255 and then\\n      // add the components together with their corresponding\\n      // fixed point factors, i.e. (256^1, 256^2, 256^3, 256^4)\\n      return dot(rgba, RGBA_2_FLOAT_FACTORS);\\n    }\\n  \"],[\"\\n    // This is the maximum float value representable as 32bit fixed point,\\n    // it is rgba2float(vec4(1)) inlined.\\n    const float MAX_RGBA_FLOAT =\\n      255.0 / 256.0 +\\n      255.0 / 256.0 / 256.0 +\\n      255.0 / 256.0 / 256.0 / 256.0 +\\n      255.0 / 256.0 / 256.0 / 256.0 / 256.0;\\n\\n    // Factors to convert to fixed point, i.e. factors (256^0, 256^1, 256^2, 256^3)\\n    const vec4 FIXED_POINT_FACTORS = vec4(1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0);\\n\\n    vec4 float2rgba(const float value) {\\n      // Make sure value is in the domain we can represent\\n      float valueInValidDomain = clamp(value, 0.0, MAX_RGBA_FLOAT);\\n\\n      // Decompose value in 32bit fixed point parts represented as\\n      // uint8 rgba components. Decomposition uses the fractional part after multiplying\\n      // by a power of 256 (this removes the bits that are represented in the previous\\n      // component) and then converts the fractional part to 8bits.\\n      vec4 fixedPointU8 = floor(fract(valueInValidDomain * FIXED_POINT_FACTORS) * 256.0);\\n\\n      // Convert uint8 values (from 0 to 255) to floating point representation for\\n      // the shader\\n      const float toU8AsFloat = 1.0 / 255.0;\\n\\n      return fixedPointU8 * toU8AsFloat;\\n    }\\n\\n    // Factors to convert rgba back to float\\n    const vec4 RGBA_2_FLOAT_FACTORS = vec4(\\n      255.0 / (256.0),\\n      255.0 / (256.0 * 256.0),\\n      255.0 / (256.0 * 256.0 * 256.0),\\n      255.0 / (256.0 * 256.0 * 256.0 * 256.0)\\n    );\\n\\n    float rgba2float(vec4 rgba) {\\n      // Convert components from 0->1 back to 0->255 and then\\n      // add the components together with their corresponding\\n      // fixed point factors, i.e. (256^1, 256^2, 256^3, 256^4)\\n      return dot(rgba, RGBA_2_FLOAT_FACTORS);\\n    }\\n  \"])));n.fragment.code.add(t),n.vertex.code.add(t)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.RgbaFloatEncoding=a;var r});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,a,n,r){function s(e){e.vertex.code.add(r.glsl(c||(c=n([\"\\n    float screenSizePerspectiveMinSize(float size, vec4 factor) {\\n      float nonZeroSize = 1.0 - step(size, 0.0);\\n\\n      return (\\n        factor.z * (\\n          1.0 +\\n          nonZeroSize *                // Multiply by nzs ensures if size is 0, then we ignore\\n                                      // proportionally scaled padding\\n          2.0 * factor.w / (\\n            size + (1.0 - nonZeroSize) // Adding 1 - nzs ensures we divide either by size, or by 1\\n          )\\n        )\\n      );\\n    }\\n  \"],[\"\\n    float screenSizePerspectiveMinSize(float size, vec4 factor) {\\n      float nonZeroSize = 1.0 - step(size, 0.0);\\n\\n      return (\\n        factor.z * (\\n          1.0 +\\n          nonZeroSize *                // Multiply by nzs ensures if size is 0, then we ignore\\n                                      // proportionally scaled padding\\n          2.0 * factor.w / (\\n            size + (1.0 - nonZeroSize) // Adding 1 - nzs ensures we divide either by size, or by 1\\n          )\\n        )\\n      );\\n    }\\n  \"])))),e.vertex.code.add(r.glsl(t||(t=n([\"\\n    float screenSizePerspectiveViewAngleDependentFactor(float absCosAngle) {\\n      return absCosAngle * absCosAngle * absCosAngle;\\n    }\\n  \"],[\"\\n    float screenSizePerspectiveViewAngleDependentFactor(float absCosAngle) {\\n      return absCosAngle * absCosAngle * absCosAngle;\\n    }\\n  \"])))),e.vertex.code.add(r.glsl(i||(i=n([\"\\n    vec4 screenSizePerspectiveScaleFactor(float absCosAngle, float distanceToCamera, vec4 params) {\\n      return vec4(min(params.x / (distanceToCamera - params.y), 1.0), screenSizePerspectiveViewAngleDependentFactor(absCosAngle), params.z, params.w);\\n    }\\n  \"],[\"\\n    vec4 screenSizePerspectiveScaleFactor(float absCosAngle, float distanceToCamera, vec4 params) {\\n      return vec4(min(params.x / (distanceToCamera - params.y), 1.0), screenSizePerspectiveViewAngleDependentFactor(absCosAngle), params.z, params.w);\\n    }\\n  \"])))),e.vertex.code.add(r.glsl(o||(o=n([\"\\n    float applyScreenSizePerspectiveScaleFactorFloat(float size, vec4 factor) {\\n      return max(mix(size * factor.x, size, factor.y), screenSizePerspectiveMinSize(size, factor));\\n    }\\n  \"],[\"\\n    float applyScreenSizePerspectiveScaleFactorFloat(float size, vec4 factor) {\\n      return max(mix(size * factor.x, size, factor.y), screenSizePerspectiveMinSize(size, factor));\\n    }\\n  \"])))),e.vertex.code.add(r.glsl(l||(l=n([\"\\n    float screenSizePerspectiveScaleFloat(float size, float absCosAngle, float distanceToCamera, vec4 params) {\\n      return applyScreenSizePerspectiveScaleFactorFloat(size, screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params));\\n    }\\n  \"],[\"\\n    float screenSizePerspectiveScaleFloat(float size, float absCosAngle, float distanceToCamera, vec4 params) {\\n      return applyScreenSizePerspectiveScaleFactorFloat(size, screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params));\\n    }\\n  \"])))),e.vertex.code.add(r.glsl(p||(p=n([\"\\n    vec2 applyScreenSizePerspectiveScaleFactorVec2(vec2 size, vec4 factor) {\\n      return mix(size * clamp(factor.x, screenSizePerspectiveMinSize(size.y, factor) / size.y, 1.0), size, factor.y);\\n    }\\n  \"],[\"\\n    vec2 applyScreenSizePerspectiveScaleFactorVec2(vec2 size, vec4 factor) {\\n      return mix(size * clamp(factor.x, screenSizePerspectiveMinSize(size.y, factor) / size.y, 1.0), size, factor.y);\\n    }\\n  \"])))),e.vertex.code.add(r.glsl(z||(z=n([\"\\n    vec2 screenSizePerspectiveScaleVec2(vec2 size, float absCosAngle, float distanceToCamera, vec4 params) {\\n      return applyScreenSizePerspectiveScaleFactorVec2(size, screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params));\\n    }\\n  \"],[\"\\n    vec2 screenSizePerspectiveScaleVec2(vec2 size, float absCosAngle, float distanceToCamera, vec4 params) {\\n      return applyScreenSizePerspectiveScaleFactorVec2(size, screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params));\\n    }\\n  \"]))))}Object.defineProperty(a,\"__esModule\",{value:!0}),a.ScreenSizePerspective=s;var c,t,i,o,l,p,z});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../../core/tsSupport/makeTemplateObjectHelper\",\"../../shaderModules/interfaces\"],function(e,t,a,d){function n(e){e.extensions.add(\"GL_EXT_shader_texture_lod\"),e.extensions.add(\"GL_OES_standard_derivatives\"),e.fragment.code.add(d.glsl(r||(r=a([\"\\n    #ifndef GL_EXT_shader_texture_lod\\n      float calcMipMapLevel(const vec2 ddx, const vec2 ddy) {\\n        float deltaMaxSqr = max(dot(ddx, ddx), dot(ddy, ddy));\\n        return max(0.0, 0.5 * log2(deltaMaxSqr));\\n      }\\n    #endif\\n\\n    vec4 textureAtlasLookup(sampler2D texture, vec2 textureSize, vec2 textureCoordinates, vec4 atlasRegion) {\\n      //[umin, vmin, umax, vmax]\\n      vec2 atlasScale = atlasRegion.zw - atlasRegion.xy;\\n      vec2 uvAtlas = fract(textureCoordinates) * atlasScale + atlasRegion.xy;\\n\\n      // calculate derivative of continuous texture coordinate\\n      // to avoid mipmapping artifacts caused by manual wrapping in shader\\n      vec2 dUVdx = dFdx(textureCoordinates) * atlasScale;\\n      vec2 dUVdy = dFdy(textureCoordinates) * atlasScale;\\n\\n      #ifdef GL_EXT_shader_texture_lod\\n        return texture2DGradEXT(texture, uvAtlas, dUVdx, dUVdy);\\n      #else\\n        // use bias to compensate for difference in automatic vs desired mipmap level\\n        vec2 dUVdxAuto = dFdx(uvAtlas);\\n        vec2 dUVdyAuto = dFdy(uvAtlas);\\n        float mipMapLevel = calcMipMapLevel(dUVdx * textureSize, dUVdy * textureSize);\\n        float autoMipMapLevel = calcMipMapLevel(dUVdxAuto * textureSize, dUVdyAuto * textureSize);\\n\\n        return texture2D(texture, uvAtlas, mipMapLevel - autoMipMapLevel);\\n      #endif\\n    }\\n  \"],[\"\\n    #ifndef GL_EXT_shader_texture_lod\\n      float calcMipMapLevel(const vec2 ddx, const vec2 ddy) {\\n        float deltaMaxSqr = max(dot(ddx, ddx), dot(ddy, ddy));\\n        return max(0.0, 0.5 * log2(deltaMaxSqr));\\n      }\\n    #endif\\n\\n    vec4 textureAtlasLookup(sampler2D texture, vec2 textureSize, vec2 textureCoordinates, vec4 atlasRegion) {\\n      //[umin, vmin, umax, vmax]\\n      vec2 atlasScale = atlasRegion.zw - atlasRegion.xy;\\n      vec2 uvAtlas = fract(textureCoordinates) * atlasScale + atlasRegion.xy;\\n\\n      // calculate derivative of continuous texture coordinate\\n      // to avoid mipmapping artifacts caused by manual wrapping in shader\\n      vec2 dUVdx = dFdx(textureCoordinates) * atlasScale;\\n      vec2 dUVdy = dFdy(textureCoordinates) * atlasScale;\\n\\n      #ifdef GL_EXT_shader_texture_lod\\n        return texture2DGradEXT(texture, uvAtlas, dUVdx, dUVdy);\\n      #else\\n        // use bias to compensate for difference in automatic vs desired mipmap level\\n        vec2 dUVdxAuto = dFdx(uvAtlas);\\n        vec2 dUVdyAuto = dFdy(uvAtlas);\\n        float mipMapLevel = calcMipMapLevel(dUVdx * textureSize, dUVdy * textureSize);\\n        float autoMipMapLevel = calcMipMapLevel(dUVdxAuto * textureSize, dUVdyAuto * textureSize);\\n\\n        return texture2D(texture, uvAtlas, mipMapLevel - autoMipMapLevel);\\n      #endif\\n    }\\n  \"]))))}Object.defineProperty(t,\"__esModule\",{value:!0}),t.TextureAtlasLookup=n;var r});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/iteratorUtils\",\"../../../../../core/Logger\"],function(e,n,t,r){Object.defineProperty(n,\"__esModule\",{value:!0});var i=r.getLogger(\"esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder\"),o=function(){function e(){this.vertex=new a,this.fragment=new a,this.attributes=new c,this.varyings=new d,this.extensions=new f,this.defines=new h,this._includedModules=new Map}return e.prototype.include=function(e,n){if(this._includedModules.has(e))return void(this._includedModules.get(e)!==n&&i.error(\"Trying to include shader module multiple times with different sets of options.\"));this._includedModules.set(e,n),\"shaderModule\"in e?e.shaderModule(this,n):e(this,n)},e.prototype.generateSource=function(e){var n=this.extensions.generateSource(e),t=this.attributes.generateSource(e),r=this.varyings.generateSource(),i=\"vertex\"===e?this.vertex:this.fragment,o=i.uniforms.generateSource(),s=i.code.generateSource(),u=\"vertex\"===e?_:p,a=this.defines.generateSource().concat(i.defines.generateSource());return\"\\n\"+n.join(\"\\n\")+\"\\n\\n\"+a.join(\"\\n\")+\"\\n\\n\"+u+\"\\n\\n\"+o.join(\"\\n\")+\"\\n\\n\"+t.join(\"\\n\")+\"\\n\\n\"+r.join(\"\\n\")+\"\\n\\n\"+s.join(\"\\n\")},e}();n.ShaderBuilder=o;var s=function(){function e(){this._entries=new Array,this._set=new Set}return e.prototype.add=function(e,n,t){var r=e+\"_\"+n+\"_\"+t;return this._set.has(r)||(this._entries.push([e,n,t]),this._set.add(r)),this},e.prototype.generateSource=function(){var e=function(e){return e?\"[\"+e+\"]\":\"\"};return this._entries.map(function(n){return\"uniform \"+n[1]+\" \"+n[0]+e(n[2])+\";\"})},e}(),u=function(){function e(){this._entries=new Array}return e.prototype.add=function(e){this._entries.push(e)},e.prototype.generateSource=function(){return this._entries},e}(),a=function(){function e(){this.uniforms=new s,this.code=new u,this.defines=new h}return e}(),c=function(){function e(){this._entries=new Array}return e.prototype.add=function(e,n){this._entries.push([e,n])},e.prototype.generateSource=function(e){return\"fragment\"===e?[]:this._entries.map(function(e){return\"attribute \"+e[1]+\" \"+e[0]+\";\"})},e}(),d=function(){function e(){this._entries=new Array}return e.prototype.add=function(e,n){this._entries.push([e,n])},e.prototype.generateSource=function(){return this._entries.map(function(e){return\"varying \"+e[1]+\" \"+e[0]+\";\"})},e}(),f=function(){function e(){this._entries=new Set}return e.prototype.add=function(e){this._entries.add(e)},e.prototype.generateSource=function(n){var r=\"vertex\"===n?e.WHITELIST_VERTEX:e.WHITELIST_FRAGMENT;return t.valuesOfSet(this._entries).filter(function(e){return r.indexOf(e)>=0}).map(function(e){return\"#extension \"+e+\" : enable\"})},e.WHITELIST_FRAGMENT=[\"GL_EXT_shader_texture_lod\",\"GL_OES_standard_derivatives\"],e.WHITELIST_VERTEX=[],e}(),h=function(){function e(){this._entries=new Map}return e.prototype.addInt=function(e,n){var t=n%1==0?n.toFixed(0):n.toString();this._entries.set(e,t)},e.prototype.addFloat=function(e,n){var t=n%1==0?n.toFixed(1):n.toString();this._entries.set(e,t)},e.prototype.generateSource=function(){return t.pairsOfMap(this._entries).map(function(e){return\"#define \"+e[0]+\" \"+e[1]})},e}(),p=\"#ifdef GL_FRAGMENT_PRECISION_HIGH\\n  precision highp float;\\n  precision highp sampler2D;\\n#else\\n  precision mediump float;\\n  precision mediump sampler2D;\\n#endif\",_=\"precision highp float;\\nprecision highp sampler2D;\"});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\"],function(n,e){function t(n){for(var e=[],t=1;t<arguments.length;t++)e[t-1]=arguments[t];for(var r=\"\",l=0;l<e.length;l++)r+=n[l]+e[l];return r+=n[n.length-1]}Object.defineProperty(e,\"__esModule\",{value:!0}),e.glsl=t,function(n){function e(n){return Math.round(n).toString()}n.int=e}(t=e.glsl||(e.glsl={}))});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/promiseUtils\"],function(e,i,r){Object.defineProperty(i,\"__esModule\",{value:!0});var t=function(){function e(e,i,r){this._relativePath=i,this._moduleRequire=r,this._module=e}return e.prototype.get=function(){return this._module},e.prototype.reload=function(){var e=this,i=this._moduleRequire.toUrl(this._relativePath);return i=i.slice(i.indexOf(\"esri/\")),this._recursivelyInvalidateModuleCache(i),r.create(function(i){e._moduleRequire([e._relativePath],function(r){e._module=r,i()})})},e.prototype._recursivelyInvalidateModuleCache=function(e){if(-1!==e.search(\"shader\")||-1!==e.search(\"shading\")){var i=this._moduleRequire.modules,r=i[e];if(r){var t=r.deps;delete i[e];for(var o=0,u=t;o<u.length;o++){var a=u[o];\"esri\"===a.pid&&this._recursivelyInvalidateModuleCache(a.mid)}}}},e}();i.ReloadableShaderModule=t});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\"],function(r,e){function o(r){var e=r.__proto__.__configurationParameters,o={};o.key=r.key;for(var i=0,t=e;i<t.length;i++){var n=t[i];o[n]=r[n]}return o}Object.defineProperty(e,\"__esModule\",{value:!0});var i=function(){function r(r,e){this._commonUniformStore=r.commonUniformStore,this._config=o(e),this._program=this.initializeProgram(r),this._commonUniformStore.subscribeProgram(this._program),this._pipeline=this.initializePipeline(r)}return r.prototype.dispose=function(){this._program&&(this._commonUniformStore.unsubscribeProgram(this._program),this._program.dispose(),this._program=null)},r.prototype.reload=function(r){this._program&&(this._commonUniformStore.unsubscribeProgram(this._program),this._program.dispose()),this._program=this.initializeProgram(r),this._commonUniformStore.subscribeProgram(this._program)},Object.defineProperty(r.prototype,\"program\",{get:function(){return this._program},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,\"pipeline\",{get:function(){return this._pipeline},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,\"key\",{get:function(){return this._config.key},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,\"configuration\",{get:function(){return this._config},enumerable:!0,configurable:!0}),r.prototype.bindPass=function(r,e,o){},r.prototype.bindMaterial=function(r,e){},r.prototype.bindDraw=function(r){},r}();e.ShaderTechnique=i});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/mathUtils\"],function(e,t,r){function i(e){return void 0===e&&(e={}),function(t,i){var o=t;o.__configurationParameters=o.__configurationParameters||[],o.__configurationParameters.push(i);var n=\"_\"+i;void 0===o.__configurationParameters__offset&&(o.__configurationParameters__offset=0);var a=o.__configurationParameters__offset,f=e.count||2,u=Math.ceil(r.log2(f)),s=(1<<u)-1,_=s<<a;if(o.__configurationParameters__offset+=u,o.__configurationParameters__offset>=32)throw new Error(\"ShaderTechniqueConfiguration is too complex, requiring more than 32 bits to encode.\\n      Either the configuration must be simplified, or this restriction must be relaxed.(Currently used: \"+o.__configurationParameters__offset+\")\");Object.defineProperty(o,i,{get:function(){return this[n]},set:function(e){this.key=this.key&~_|e<<a&_,this[n]=e}})}}Object.defineProperty(t,\"__esModule\",{value:!0});var o=function(){function e(){this.key=0}return e}();t.ShaderTechniqueConfiguration=o,t.parameter=i});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/declareExtendsHelper\",\"../../../../core/tsSupport/decorateHelper\",\"../../../../core/accessorSupport/decorators\"],function(e,s,i,o,t){function n(){return function(e,s){e.__managedDisposables__=e.__managedDisposables__||[],e.__managedDisposables__.push(s)}}Object.defineProperty(s,\"__esModule\",{value:!0}),s.AutoDisposableMixin=function(e){return function(e){function s(){var s=null!==e&&e.apply(this,arguments)||this;return s._isDisposed=!1,s}return i(s,e),s.prototype.dispose=function(){for(var e=this.__proto__.__managedDisposables__||[],s=e.length-1;s>=0;s--){var i=e[s];this[i]&&\"function\"==typeof this[i].dispose&&this[i].dispose(),this[i]=null}this._isDisposed=!0},Object.defineProperty(s.prototype,\"isDisposed\",{get:function(){return this._isDisposed},enumerable:!0,configurable:!0}),s=o([t.subclass(\"esri.views.3d.webgl-engine.lib.AutoDisposableMixin\")],s)}(t.declared(e))};var r=function(e){function s(){return null!==e&&e.apply(this,arguments)||this}return i(s,e),s=o([t.subclass(\"esri.views.3d.webgl-engine.lib.AutoDisposable\")],s)}(t.declared(s.AutoDisposableMixin(function(){function e(){}return e}())));s.AutoDisposable=r,s.autoDispose=n});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/PooledArray\",\"../../../../core/libs/gl-matrix-2/vec3\",\"../../../../core/libs/gl-matrix-2/vec3f64\",\"./Util\"],function(i,t,e,s,r,n){var h=function(){function i(t,e,h,a){this.primitiveIndices=t,this._numIndexPerPrimitive=e,this.indices=h,this._position=a,this.center=r.vec3f64.create(),n.assert(t.length>=1),n.assert(h.length%this._numIndexPerPrimitive==0),n.assert(h.length>=t.length*this._numIndexPerPrimitive),n.assert(3===this._position.size||4===this._position.size);var b=this._position,o=b.data,c=b.offsetIdx,d=b.strideIdx,u=0,v=t.length,m=c+d*h[this._numIndexPerPrimitive*t[u]];for(i.tmpIndices.clear(),i.tmpIndices.push(m),this.bbMin=r.vec3f64.fromValues(o[m],o[m+1],o[m+2]),this.bbMax=r.vec3f64.clone(this.bbMin);u<v;++u)for(var p=this._numIndexPerPrimitive*t[u],M=0;M<this._numIndexPerPrimitive;++M){m=c+d*h[p+M],i.tmpIndices.push(m);var f=o[m];this.bbMin[0]=Math.min(f,this.bbMin[0]),this.bbMax[0]=Math.max(f,this.bbMax[0]),f=o[m+1],this.bbMin[1]=Math.min(f,this.bbMin[1]),this.bbMax[1]=Math.max(f,this.bbMax[1]),f=o[m+2],this.bbMin[2]=Math.min(f,this.bbMin[2]),this.bbMax[2]=Math.max(f,this.bbMax[2])}s.vec3.lerp(this.center,this.bbMin,this.bbMax,.5),this.bsRadius=.5*Math.max(Math.max(this.bbMax[0]-this.bbMin[0],this.bbMax[1]-this.bbMin[1]),this.bbMax[2]-this.bbMin[2]);var x=this.bsRadius*this.bsRadius;for(u=0;u<i.tmpIndices.length;++u){m=i.tmpIndices.data[u];var l=o[m]-this.center[0],I=o[m+1]-this.center[1],P=o[m+2]-this.center[2],_=l*l+I*I+P*P;if(!(_<=x)){var g=Math.sqrt(_),y=.5*(g-this.bsRadius);this.bsRadius=this.bsRadius+y,x=this.bsRadius*this.bsRadius;var R=y/g;this.center[0]+=l*R,this.center[1]+=I*R,this.center[2]+=P*R}}i.tmpIndices.clear()}return i.prototype.getCenter=function(){return this.center},i.prototype.getBSRadius=function(){return this.bsRadius},i.prototype.getBBMin=function(){return this.bbMin},i.prototype.getBBMax=function(){return this.bbMax},i.prototype.getPrimitiveIndices=function(){return this.primitiveIndices},i.prototype.getIndices=function(){return this.indices},i.prototype.getPosition=function(){return this._position},i.prototype.getChildren=function(){if(this._children)return this._children;if(s.vec3.squaredDistance(this.bbMin,this.bbMax)>1){for(var t=s.vec3.lerp(r.vec3f64.create(),this.bbMin,this.bbMax,.5),e=this.primitiveIndices.length,n=new Uint8Array(e),h=new Array(8),a=0;a<8;++a)h[a]=0;for(var b=this._position,o=b.data,c=b.offsetIdx,d=b.strideIdx,a=0;a<e;++a){for(var u=0,v=this._numIndexPerPrimitive*this.primitiveIndices[a],m=c+d*this.indices[v],p=o[m],M=o[m+1],f=o[m+2],x=1;x<this._numIndexPerPrimitive;++x){m=c+d*this.indices[v+x];var l=o[m],I=o[m+1],P=o[m+2];l<p&&(p=l),I<M&&(M=I),P<f&&(f=P)}p<t[0]&&(u|=1),M<t[1]&&(u|=2),f<t[2]&&(u|=4),n[a]=u,++h[u]}for(var _=0,a=0;a<8;++a)h[a]>0&&++_;if(_<2)return;for(var g=new Array(8),a=0;a<8;++a)g[a]=h[a]>0?new Uint32Array(h[a]):void 0;for(var a=0;a<8;++a)h[a]=0;for(var a=0;a<e;++a){var u=n[a];g[u][h[u]++]=this.primitiveIndices[a]}this._children=new Array(8);for(var a=0;a<8;++a)void 0!==g[a]&&(this._children[a]=new i(g[a],this._numIndexPerPrimitive,this.indices,this._position))}return this._children},i}();return function(i){i.tmpIndices=new e({deallocator:null})}(h||(h={})),h});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\"],function(e,O){Object.defineProperty(O,\"__esModule\",{value:!0}),O.DefaultTextureUnits={DIFFUSE:0,COMPONENT_COLOR:1,NORMAL:2,EMISSION:3,OCCLUSION:4,METALLIC_ROUGHNESS:5}});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\"],function(e,o){Object.defineProperty(o,\"__esModule\",{value:!0}),o.Default3D={position:0,normal:1,normalCompressed:1,uv0:2,color:3,instanceColor:3,size:4,tangent:4,auxpos1:5,symbolColor:5,componentIndex:5,auxpos2:6,featureAttribute:6,instanceFeatureAttribute:6,region:7,model:8,modelNormal:12,modelOriginHi:11,modelOriginLo:15}});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\"],function(e,o){Object.defineProperty(o,\"__esModule\",{value:!0}),o.Pos3=[{name:\"position\",count:3,type:5126,offset:0,stride:12,normalized:!1}],o.Pos3Tex=[{name:\"position\",count:3,type:5126,offset:0,stride:20,normalized:!1},{name:\"uv0\",count:2,type:5126,offset:12,stride:20,normalized:!1}],o.Pos3NormalTex=[{name:\"position\",count:3,type:5126,offset:0,stride:32,normalized:!1},{name:\"normal\",count:3,type:5126,offset:12,stride:32,normalized:!1},{name:\"uv0\",count:2,type:5126,offset:24,stride:32,normalized:!1}],o.Pos3Col=[{name:\"position\",count:3,type:5126,offset:0,stride:16,normalized:!1},{name:\"color\",count:4,type:5121,offset:12,stride:16,normalized:!1}],o.Pos2=[{name:\"position\",count:2,type:5126,offset:0,stride:8,normalized:!1}],o.Pos2Tex=[{name:\"position\",count:2,type:5126,offset:0,stride:16,normalized:!1},{name:\"uv0\",count:2,type:5126,offset:8,stride:16,normalized:!1}]});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/declareExtendsHelper\",\"../../../../core/tsSupport/decorateHelper\",\"../../../../core/accessorSupport/decorators\",\"./AutoDisposable\"],function(e,t,r,o,i,s){Object.defineProperty(t,\"__esModule\",{value:!0});var n=function(e){function t(t){var r=e.call(this)||this;return r.material=t.material,r.programRep=t.programRep,r.techniqueRep=t.techniqueRep,r}return r(t,e),t.prototype.isVisible=function(){return this.material.isVisible()},t.prototype.isVisibleInPass=function(e){return this.material.isVisibleInPass(e)},t.prototype.getPrograms=function(){return[this.getProgram()]},t.prototype.getDrawMode=function(){return 4},t.prototype.ensureResources=function(e){return 0},t.prototype.ensureAttributeLocations=function(e){this.getProgram().assertCompatibleVertexAttributeLocations(e)},t=o([i.subclass(\"esri.views.3d.webgl-engine.lib.GLMaterial\")],t)}(i.declared(s.AutoDisposable));t.GLMaterial=n});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/assignHelper\",\"../../../../core/tsSupport/extendsHelper\",\"./DefaultTextureUnits\",\"./GLMaterial\",\"../materials/internal/MaterialUtil\"],function(e,t,r,i,u,n,s){var x=function(e){function t(t){var r=e.call(this,t)||this,i=t.textureRep;r.textureRep=i,r.textureId=t.textureId,r.initTransparent=!!t.initTextureTransparent;var u=function(e){return s.acquireIfNotUndefined(e,i,r.initTransparent)};return r.glTextureRef=u(r.textureId),t.normalTextureId&&(r.glTextureRefNormal=u(t.normalTextureId)),t.emissiveTextureId&&(r.glTextureRefEmission=u(t.emissiveTextureId)),t.occlusionTextureId&&(r.glTextureRefOcclusion=u(t.occlusionTextureId)),t.metallicRoughnessTextureId&&(r.glTextureRefRoughnessMetallness=u(t.metallicRoughnessTextureId)),r}return i(t,e),t.prototype.dispose=function(){s.releaseIfNotUndefined(this.textureId,this.textureRep)},t.prototype.updateTexture=function(e){e!==this.textureId&&(s.releaseIfNotUndefined(this.textureId,this.textureRep),this.textureId=e,this.glTextureRef=s.acquireIfNotUndefined(this.textureId,this.textureRep,this.initTransparent))},t.prototype.bindTexture=function(e,t){null!=this.glTextureRef&&(t.setUniform1i(\"tex\",u.DefaultTextureUnits.DIFFUSE),e.bindTexture(this.glTextureRef.getGLTexture(),u.DefaultTextureUnits.DIFFUSE)),this.glTextureRefNormal&&(t.setUniform1i(\"normalTexture\",u.DefaultTextureUnits.NORMAL),e.bindTexture(this.glTextureRefNormal.getGLTexture(),u.DefaultTextureUnits.NORMAL)),this.glTextureRefEmission&&(t.setUniform1i(\"texEmission\",u.DefaultTextureUnits.EMISSION),e.bindTexture(this.glTextureRefEmission.getGLTexture(),u.DefaultTextureUnits.EMISSION)),this.glTextureRefOcclusion&&(t.setUniform1i(\"texOcclusion\",u.DefaultTextureUnits.OCCLUSION),e.bindTexture(this.glTextureRefOcclusion.getGLTexture(),u.DefaultTextureUnits.OCCLUSION)),this.glTextureRefRoughnessMetallness&&(t.setUniform1i(\"texMetallicRoughness\",u.DefaultTextureUnits.METALLIC_ROUGHNESS),e.bindTexture(this.glTextureRefRoughnessMetallness.getGLTexture(),u.DefaultTextureUnits.METALLIC_ROUGHNESS))},t.prototype.bindTextureScale=function(e,t){var r=this.glTextureRef&&this.glTextureRef.getGLTexture();r&&r.descriptor.textureCoordinateScaleFactor?t.setUniform2fv(\"textureCoordinateScaleFactor\",r.descriptor.textureCoordinateScaleFactor):t.setUniform2f(\"textureCoordinateScaleFactor\",1,1)},t}(n.GLMaterial);return function(e){function t(e,t){return r({},e,t)}e.makeCtorParameters=t}(x||(x={})),x});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"./BoundingInfo\",\"./ComponentUtils\",\"./geometryDataUtils\",\"./IdGen\",\"./Util\",\"./Util\"],function(t,e,n,o,i,r,a,u){return function(){function t(e,n,o){this.singleUse=!1,this._boundingInfo=null,this._componentAABBs=null,this._id=t.__idGen.gen(n),this._data=e,this._boundingInfo=o}return Object.defineProperty(t.prototype,\"id\",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"data\",{get:function(){return this._data},enumerable:!0,configurable:!0}),t.prototype.getIndices=function(t){return this.data.getIndices(t)},Object.defineProperty(t.prototype,\"indexCount\",{get:function(){return this.data.indexCount},enumerable:!0,configurable:!0}),t.prototype.getAttribute=function(t){return this.data.getAttribute(t)},Object.defineProperty(t.prototype,\"componentCount\",{get:function(){return o.componentCount(this.data.componentOffsets)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"componentOffsets\",{get:function(){return this.data.componentOffsets},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"vertexCount\",{get:function(){return this.data.indexCount},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"faceCount\",{get:function(){return this.data.indexCount/3},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"boundingInfo\",{get:function(){return null==this._boundingInfo&&(this._boundingInfo=this._calculateBoundingInfo()),this._boundingInfo},enumerable:!0,configurable:!0}),t.prototype.computeAttachmentOrigin=function(t){return\"triangle\"===this.data.primitiveType?this.computeAttachmentOriginTriangles(t):this.computeAttachmentOriginPoints(t)},t.prototype.computeAttachmentOriginTriangles=function(t){var e=this.getIndices(u.VertexAttrConstants.POSITION),n=this.getAttribute(u.VertexAttrConstants.POSITION);return i.computeAttachmentOriginTriangles(n,e,t)},t.prototype.computeAttachmentOriginPoints=function(t){var e=this.getIndices(u.VertexAttrConstants.POSITION),n=this.getAttribute(u.VertexAttrConstants.POSITION);return i.computeAttachmentOriginPoints(n,e,t)},t.prototype.invalidateBoundingInfo=function(){this._boundingInfo=null,this._componentAABBs=null},t.prototype.getComponentAABB=function(t,e){null==this._componentAABBs&&(this._componentAABBs=this._computeComponentAABBs());for(var n=0;n<6;n++)e[n]=this._componentAABBs[6*t+n];return e},t.prototype._computeComponentAABBs=function(){for(var t=this.componentCount,e=new Float32Array(6*t),n=0;n<t;n++)this._calculateAABB(n,e,6*n);return e},t.prototype._calculateAABB=function(t,e,n){for(var o=this.data.getIndices(u.VertexAttrConstants.POSITION),i=this.data.getAttribute(u.VertexAttrConstants.POSITION),r=this.data.componentOffsets,a=r.length?r[t]:0,s=r.length?r[t+1]:o.length,c=1/0,p=1/0,d=1/0,f=-1/0,g=-1/0,h=-1/0,l=i.offsetIdx,m=i.strideIdx,A=a;A<s;A++){var b=l+m*o[A],I=i.data[b],O=i.data[b+1],y=i.data[b+2];c=Math.min(c,I),p=Math.min(p,O),d=Math.min(d,y),f=Math.max(f,I),g=Math.max(g,O),h=Math.max(h,y)}e[n]=c,e[n+1]=p,e[n+2]=d,e[n+3]=f,e[n+4]=g,e[n+5]=h},t.prototype._calculateBoundingInfo=function(){var t=this.data.getIndices(u.VertexAttrConstants.POSITION),e=this.data.getAttribute(u.VertexAttrConstants.POSITION),o=\"triangle\"===this.data.primitiveType?3:1;if(0===t.length){t=new Uint32Array(o);for(var r=0;r<o;++r)t[r]=r}var s=t.length;a.assert(s%o==0,\"Indexing error: \"+s.toFixed(0)+\" not divisible by \"+o.toFixed(0));var c=i.generateDefaultIndexArray(s/o);return new n(c,o,t,e)},t.__idGen=new r.IdGen,t}()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"./ComponentUtils\",\"./geometryDataUtils\",\"./Util\"],function(t,e,i,r,n){function s(t){var e=n.getFirstObjectValue(t);return null==e?0:e.data.length/e.size}Object.defineProperty(e,\"__esModule\",{value:!0});var o=function(){function t(e,n,o,a){void 0===n&&(n=t.DefaultIndices),void 0===o&&(o=t.DefaultOffsets),void 0===a&&(a=\"triangle\"),this.preinterleaved=!1;var u={};for(var f in e){var c=e[f],d=c.data,p=c.size;u[f]={data:d,size:p,offsetIdx:0,strideIdx:p}}if(n===t.DefaultIndices){var l=s(u),h=r.generateDefaultIndexArray(l);n={};for(var g in u)n[g]=h}this._id=r.getNewId(),this._vertexAttributes=u,this._indices=n,this._componentOffsets=i.createOffsets(o),this._primitiveType=a}return Object.defineProperty(t.prototype,\"id\",{get:function(){return this._id},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"vertexAttributes\",{get:function(){return this._vertexAttributes},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"indices\",{get:function(){return this._indices},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"componentOffsets\",{get:function(){return this._componentOffsets},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"indexCount\",{get:function(){var t=n.getFirstObjectValue(this._indices);return null==t?0:t.length},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"primitiveType\",{get:function(){return this._primitiveType},enumerable:!0,configurable:!0}),t.prototype.getVertexAttr=function(){return this.vertexAttributes},t.prototype.toRenderData=function(){return{id:this._id.toString(),preinterleaved:!1,indices:this._indices,vertexAttr:this._vertexAttributes}},t.prototype.getIndices=function(t){return this._indices[t]},t.prototype.getAttribute=function(t){return this._vertexAttributes[t]},t.prototype.estimateGpuMemoryUsage=function(){var t=0;if(this._indices[n.VertexAttrConstants.POSITION]){var e=3;t+=this._indices[n.VertexAttrConstants.POSITION].length*e*4}if(this._indices[n.VertexAttrConstants.NORMAL]){var e=3;t+=this._indices[n.VertexAttrConstants.NORMAL].length*e*4}if(this._indices[n.VertexAttrConstants.UV0]){var e=2;t+=this._indices[n.VertexAttrConstants.UV0].length*e*4}if(this._indices[n.VertexAttrConstants.COLOR]){var e=1;t+=this._indices[n.VertexAttrConstants.COLOR].length*e*4}return t},t.DefaultIndices={},t.DefaultOffsets=new Uint32Array(0),t}();e.GeometryData=o});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/ObjectPool\",\"../../../../core/libs/gl-matrix-2/vec3\",\"./IdGen\"],function(t,r,i,n,e){return function(){function t(r,i,n,e,o,a){this.id=t._idGen.gen(r&&r.id),this.geometry=r,this.material=i,this.transformation=n,this.instanceParameters=e,this.origin=o,this.shaderTransformation=a}return t.prototype.getStaticTransformation=function(){return this.transformation},t.prototype.getShaderTransformation=function(){return this.shaderTransformation?this.shaderTransformation(this.transformation):this.transformation},t.prototype.computeAttachmentOrigin=function(t){return!!(this.material.computeAttachmentOrigin?this.material.computeAttachmentOrigin(this.geometry,t):this.geometry.computeAttachmentOrigin(t))&&(n.vec3.transformMat4(t,t,this.getStaticTransformation()),!0)},t._idGen=new e.IdGen,t.pool=new i(t,!0),t}()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/libs/gl-matrix-2/vec3\",\"../../../../core/libs/gl-matrix-2/vec3f32\",\"../../../../core/libs/gl-matrix-2/vec3f64\",\"../../support/geometryUtils\",\"./BufferVectorMath\",\"./GeometryData\",\"./Util\"],function(t,e,r,a,n,o,s,c,v){var l,i=s.Vec3Compact;!function(t){function e(t){Array.isArray(t)||(t=[t,t,t]);for(var e=new Float32Array(24),r=0;r<8;r++)e[3*r]=a[r][0]*t[0],e[3*r+1]=a[r][1]*t[1],e[3*r+2]=a[r][2]*t[2];var i={};i[v.VertexAttrConstants.POSITION]=new Uint32Array(s),i[v.VertexAttrConstants.NORMAL]=new Uint32Array(l),i[v.VertexAttrConstants.UV0]=new Uint32Array(f);var A={};return A[v.VertexAttrConstants.POSITION]={size:3,data:e},A[v.VertexAttrConstants.NORMAL]={size:3,data:new Float32Array(n)},A[v.VertexAttrConstants.UV0]={size:2,data:new Float32Array(o)},new c.GeometryData(A,i)}for(var r=.5,a=[[-r,-r,r],[r,-r,r],[r,r,r],[-r,r,r],[-r,-r,-r],[r,-r,-r],[r,r,-r],[-r,r,-r]],n=[0,0,1,-1,0,0,1,0,0,0,-1,0,0,1,0,0,0,-1],o=[0,0,1,0,1,1,0,1],s=[0,1,2,2,3,0,4,0,3,3,7,4,1,5,6,6,2,1,1,0,4,4,5,1,3,2,6,6,7,3,5,4,7,7,6,5],l=new Array(36),i=0;i<6;i++)for(var A=0;A<6;A++)l[6*i+A]=i;for(var f=new Array(36),i=0;i<6;i++)f[6*i+0]=0,f[6*i+1]=1,f[6*i+2]=2,f[6*i+3]=2,f[6*i+4]=3,f[6*i+5]=0;t.createGeometry=e}(l||(l={}));var A;!function(t){function e(t){Array.isArray(t)||(t=[t,t,t]);for(var e=new Float32Array(18),r=0;r<6;r++)e[3*r]=a[r][0]*t[0],e[3*r+1]=a[r][1]*t[1],e[3*r+2]=a[r][2]*t[2];var l={};l[v.VertexAttrConstants.POSITION]=new Uint32Array(o),l[v.VertexAttrConstants.NORMAL]=new Uint32Array(s);var i={};return i[v.VertexAttrConstants.POSITION]={size:3,data:e},i[v.VertexAttrConstants.NORMAL]={size:3,data:new Float32Array(n)},new c.GeometryData(i,l)}var r=.5,a=[[-r,0,-r],[r,0,-r],[r,0,r],[-r,0,r],[0,-r,0],[0,r,0]],n=[0,1,-1,1,1,0,0,1,1,-1,1,0,0,-1,-1,1,-1,0,0,-1,1,-1,-1,0],o=[5,1,0,5,2,1,5,3,2,5,0,3,4,0,1,4,1,2,4,2,3,4,3,0],s=[0,0,0,1,1,1,2,2,2,3,3,3,4,4,4,5,5,5,6,6,6,7,7,7];t.createGeometry=e}(A||(A={}));var f;!function(t){function e(t){Array.isArray(t)||(t=[t,t,t]);for(var e=new Float32Array(12),r=0;r<4;r++)e[3*r]=u[r][0]*t[0],e[3*r+1]=u[r][1]*t[1],e[3*r+2]=u[r][2]*t[2];var a={};a[v.VertexAttrConstants.POSITION]=new Uint32Array(O),a[v.VertexAttrConstants.NORMAL]=new Uint32Array(h);var n={};return n[v.VertexAttrConstants.POSITION]={size:3,data:e},n[v.VertexAttrConstants.NORMAL]={size:3,data:new Float32Array(m)},new c.GeometryData(n,a)}var n=.5,o=a.vec3f32.fromValues(-n,0,-n),s=a.vec3f32.fromValues(n,0,-n),l=a.vec3f32.fromValues(0,0,n),i=a.vec3f32.fromValues(0,.5,0),A=a.vec3f32.create(),f=a.vec3f32.create(),y=a.vec3f32.create(),V=a.vec3f32.create(),d=a.vec3f32.create();r.vec3.subtract(A,o,i),r.vec3.subtract(f,o,s),r.vec3.cross(y,A,f),r.vec3.normalize(y,y),r.vec3.subtract(A,s,i),r.vec3.subtract(f,s,l),r.vec3.cross(V,A,f),r.vec3.normalize(V,V),r.vec3.subtract(A,l,i),r.vec3.subtract(f,l,o),r.vec3.cross(d,A,f),r.vec3.normalize(d,d);var u=[o,s,l,i],m=[0,-1,0,y[0],y[1],y[2],V[0],V[1],V[2],d[0],d[1],d[2]],O=[0,1,2,3,1,0,3,2,1,3,0,2],h=[0,0,0,1,1,1,2,2,2,3,3,3];t.createGeometry=e}(f||(f={}));var y;!function(t){function e(t,e,r,a,n,o,s){t=t||50,a=void 0!==a?a:-Math.PI,n=void 0!==n?n:2*Math.PI,o=void 0!==o?o:.5*-Math.PI,s=void 0!==s?s:Math.PI;for(var l=Math.max(3,Math.floor(e)||8),i=Math.max(2,Math.floor(r)||6),A=(l+1)*(i+1),f=new Float32Array(3*A),y=new Float32Array(3*A),V=new Float32Array(2*A),d=[],u=0,m=0;m<=i;m++){for(var O=[],h=m/i,x=o+h*s,C=Math.cos(x),w=0;w<=l;w++){var I=w/l,g=a+I*n,M=Math.cos(g)*C,z=Math.sin(x),N=-Math.sin(g)*C;f[3*u]=M*t,f[3*u+1]=z*t,f[3*u+2]=N*t,y[3*u]=M,y[3*u+1]=z,y[3*u+2]=N,V[2*u]=I,V[2*u+1]=h,O.push(u),++u}d.push(O)}var P=new Uint32Array(2*l*(i-1)*3);u=0;for(var m=0;m<i;m++)for(var w=0;w<l;w++){var U=d[m][w],G=d[m][w+1],F=d[m+1][w+1],S=d[m+1][w];0===m?(P[u++]=U,P[u++]=F,P[u++]=S):m===i-1?(P[u++]=U,P[u++]=G,P[u++]=F):(P[u++]=U,P[u++]=G,P[u++]=F,P[u++]=F,P[u++]=S,P[u++]=U)}v.assert(u===P.length);var p={};p[v.VertexAttrConstants.POSITION]=P,p[v.VertexAttrConstants.NORMAL]=P,p[v.VertexAttrConstants.UV0]=P;var T={};return T[v.VertexAttrConstants.POSITION]={size:3,data:f},T[v.VertexAttrConstants.NORMAL]={size:3,data:y},T[v.VertexAttrConstants.UV0]={size:2,data:V},new c.GeometryData(T,p)}function y(t,e,r){function a(e,r){var a;e>r&&(a=[r,e],e=a[0],r=a[1]);var o=e.toString()+\".\"+r.toString();if(f[o])return f[o];var s=n.length;return n.length+=3,i.add(n,3*e,n,3*r,n,s),i.scale(n,s,t/i.length(n,s)),s/=3,f[o]=s,s}var n,o,s=t;if(r)n=[0,-1,0,1,0,0,0,0,1,-1,0,0,0,0,-1,0,1,0],o=new Uint32Array([0,1,2,0,2,3,0,3,4,0,4,1,1,5,2,2,5,3,3,5,4,4,5,1]);else{var l=s*(1+Math.sqrt(5))/2;n=[-s,l,0,s,l,0,-s,-l,0,s,-l,0,0,-s,l,0,s,l,0,-s,-l,0,s,-l,l,0,-s,l,0,s,-l,0,-s,-l,0,s],o=new Uint32Array([0,11,5,0,5,1,0,1,7,0,7,10,0,10,11,1,5,9,5,11,4,11,10,2,10,7,6,7,1,8,3,9,4,3,4,2,3,2,6,3,6,8,3,8,9,4,9,5,2,4,11,6,2,10,8,6,7,9,8,1])}for(var A=0;A<n.length;A+=3)i.scale(n,A,t/i.length(n,A));for(var f={},A=0;A<e;A++){for(var y=o.length,V=new Uint32Array(4*y),d=0;d<y;d+=3){var u=o[d],m=o[d+1],O=o[d+2],h=a(u,m),x=a(m,O),C=a(O,u),w=4*d;V[w]=u,V[w+1]=h,V[w+2]=C,V[w+3]=m,V[w+4]=x,V[w+5]=h,V[w+6]=O,V[w+7]=C,V[w+8]=x,V[w+9]=h,V[w+10]=x,V[w+11]=C}o=V,f={}}for(var I=new Float32Array(n),A=0;A<I.length;A+=3)i.normalize(I,A);var g={};g[v.VertexAttrConstants.POSITION]=o,g[v.VertexAttrConstants.NORMAL]=o;var M={};return M[v.VertexAttrConstants.POSITION]={size:3,data:new Float32Array(n)},M[v.VertexAttrConstants.NORMAL]={size:3,data:I},new c.GeometryData(M,g)}function m(t,e,r,a,n,o,s,l){var i=e?new Float64Array([e[0],e[1],e[2]]):new Float32Array([0,0,0]),A=t?new Float32Array([t[0],t[1],t[2]]):new Float32Array([0,0,1]),f=o?new Float32Array(o):new Float32Array([0,0]),y=r?new Uint8Array([255*r[0],255*r[1],255*r[2],r.length>3?255*r[3]:255]):new Uint8Array([255,255,255,255]),V=null!=a&&2===a.length?new Float32Array(a):new Float32Array([1,1]),d={};if(d[v.VertexAttrConstants.POSITION]={size:3,data:i},d[v.VertexAttrConstants.NORMAL]={size:3,data:A},d[v.VertexAttrConstants.UV0]={size:f.length,data:f},d[v.VertexAttrConstants.COLOR]={size:4,data:y},d[v.VertexAttrConstants.SIZE]={size:2,data:V},null!=n){var u=new Float32Array([n[0],n[1],n[2],n[3]]);d[v.VertexAttrConstants.AUXPOS1]={size:4,data:u}}if(null!=s){var m=new Float32Array([s[0],s[1],s[2],s[3]]);d[v.VertexAttrConstants.AUXPOS2]={size:4,data:m}}return null!=l?(c.GeometryData.call(l,d,c.GeometryData.DefaultIndices,c.GeometryData.DefaultOffsets,\"point\"),l):new c.GeometryData(d,c.GeometryData.DefaultIndices,c.GeometryData.DefaultOffsets,\"point\")}function O(t,e,r,a,n,o,s,c){var l=c.vertexAttributes;if(null!=t){var i=l[v.VertexAttrConstants.NORMAL].data;i[0]=t[0],i[1]=t[1],i[2]=t[2]}if(null!=e){var i=l[v.VertexAttrConstants.POSITION].data;i[0]=e[0],i[1]=e[1],i[2]=e[2]}if(null!=r){var i=l[v.VertexAttrConstants.COLOR].data;i[0]=r[0],i[1]=r[1],i[2]=r[2],i[3]=r[3]}if(null!=a){var i=l[v.VertexAttrConstants.SIZE].data;i[0]=a[0],i[1]=a[1]}if(null!=n){var i=l[v.VertexAttrConstants.AUXPOS1].data;i[0]=n[0],i[1]=n[1],i[2]=n[2],i[3]=n[3]}if(null!=o){var i=l[v.VertexAttrConstants.UV0].data;i[0]=o[0],i[1]=o[1]}if(null!=s){var i=l[v.VertexAttrConstants.AUXPOS2].data;i[0]=s[0],i[1]=s[1],i[2]=s[2],i[3]=s[3]}return c}function h(t,e){for(var r=new Float32Array(3*t.length),a=new Float32Array(e?3*t.length:3),n=new Uint32Array(t.length),o=new Uint32Array(t.length),s=0;s<t.length;s++)r[3*s]=t[s][0],r[3*s+1]=t[s][1],r[3*s+2]=t[s][2],e&&(a[3*s]=e[s][0],a[3*s+1]=e[s][1],a[3*s+2]=e[s][2]),n[s]=s,o[s]=0;e||(a[0]=0,a[1]=1,a[2]=0);var l=new Float32Array(2);l[0]=0,l[1]=0;var i={};i[v.VertexAttrConstants.POSITION]=n,i[v.VertexAttrConstants.NORMAL]=e?n:o,i[v.VertexAttrConstants.UV0]=o;var A={};return A[v.VertexAttrConstants.POSITION]={size:3,data:r},A[v.VertexAttrConstants.NORMAL]={size:3,data:a},A[v.VertexAttrConstants.UV0]={size:2,data:l},new c.GeometryData(A,i,c.GeometryData.DefaultOffsets,\"point\")}function x(){var t=new Float32Array([0,0,0,0,0,100,100,0,0]),e=new Uint32Array([0,1,2]),r=new Float32Array([0,1,0]),a=new Uint32Array([0,0,0]),n=new Float32Array([0,0]),o=new Uint32Array([0,0,0]),s={};s[v.VertexAttrConstants.POSITION]=e,s[v.VertexAttrConstants.NORMAL]=a,s[v.VertexAttrConstants.UV0]=o;var l={};return l[v.VertexAttrConstants.POSITION]={size:3,data:t},l[v.VertexAttrConstants.NORMAL]={size:3,data:r},l[v.VertexAttrConstants.UV0]={size:2,data:n},new c.GeometryData(l,s)}function C(t){var e=new Float32Array(12);if(t)for(var r=0;r<4;r++)for(var a=0;a<3;a++)e[3*r+a]=t[r][a];else e[0]=-1,e[1]=-1,e[2]=0,e[3]=1,e[4]=-1,e[5]=0,e[6]=1,e[7]=1,e[8]=0,e[9]=-1,e[10]=1,e[11]=0;var n=new Uint32Array([0,1,2,2,3,0]),o=new Float32Array([0,0,1]),s=new Uint32Array([0,0,0,0,0,0]),l=new Float32Array([0,0,1,0,1,1,0,1]),i=new Uint8Array([255,255,255,255]),A={};A[v.VertexAttrConstants.POSITION]=n,A[v.VertexAttrConstants.NORMAL]=s,A[v.VertexAttrConstants.UV0]=n,A[v.VertexAttrConstants.COLOR]=s;var f={};return f[v.VertexAttrConstants.POSITION]={size:3,data:e},f[v.VertexAttrConstants.NORMAL]={size:3,data:o},f[v.VertexAttrConstants.UV0]={size:2,data:l},f[v.VertexAttrConstants.COLOR]={size:4,data:i},new c.GeometryData(f,A)}function w(t,e,r,n,o,s){void 0===o&&(o=!0),void 0===s&&(s=!0);var l=0,i=e,A=t,f=a.vec3f32.fromValues(0,l,0),y=a.vec3f32.fromValues(0,l+A,0),V=a.vec3f32.fromValues(0,-1,0),d=a.vec3f32.fromValues(0,1,0);n&&(l=A,y=a.vec3f32.fromValues(0,0,0),f=a.vec3f32.fromValues(0,l,0),V=a.vec3f32.fromValues(0,1,0),d=a.vec3f32.fromValues(0,-1,0));var u=[y,f],m=[V,d],O=r+2,h=Math.sqrt(A*A+i*i);if(n)for(var x=r-1;x>=0;x--){var C=x*(2*Math.PI/r),w=a.vec3f32.fromValues(Math.cos(C)*i,l,Math.sin(C)*i);u.push(w);var I=a.vec3f32.fromValues(A*Math.cos(C)/h,-i/h,A*Math.sin(C)/h);m.push(I)}else for(var x=0;x<r;x++){var C=x*(2*Math.PI/r),w=a.vec3f32.fromValues(Math.cos(C)*i,l,Math.sin(C)*i);u.push(w);var I=a.vec3f32.fromValues(A*Math.cos(C)/h,i/h,A*Math.sin(C)/h);m.push(I)}var g=new Uint32Array(2*(r+2)*3),M=new Uint32Array(2*(r+2)*3),z=0,N=0;if(o){for(var x=3;x<u.length;x++)g[z++]=1,g[z++]=x-1,g[z++]=x,M[N++]=0,M[N++]=0,M[N++]=0;g[z++]=u.length-1,g[z++]=2,g[z++]=1,M[N++]=0,M[N++]=0,M[N++]=0}if(s){for(var x=3;x<u.length;x++)g[z++]=x,g[z++]=x-1,g[z++]=0,M[N++]=x,M[N++]=x-1,M[N++]=1;g[z++]=0,g[z++]=2,g[z++]=u.length-1,M[N++]=1,M[N++]=2,M[N++]=m.length-1}for(var P=new Float32Array(3*O),x=0;x<O;x++)P[3*x]=u[x][0],P[3*x+1]=u[x][1],P[3*x+2]=u[x][2];for(var U=new Float32Array(3*O),x=0;x<O;x++)U[3*x]=m[x][0],U[3*x+1]=m[x][1],U[3*x+2]=m[x][2];var G={};G[v.VertexAttrConstants.POSITION]=g,G[v.VertexAttrConstants.NORMAL]=M;var F={};return F[v.VertexAttrConstants.POSITION]={size:3,data:P},F[v.VertexAttrConstants.NORMAL]={size:3,data:U},new c.GeometryData(F,G)}function I(t,e,n,o,s,l){var i=o?a.vec3f32.clone(o):a.vec3f32.fromValues(1,0,0),A=s?a.vec3f32.clone(s):a.vec3f32.fromValues(0,0,0),f=void 0===l||l,y=a.vec3f32.create();r.vec3.normalize(y,i);var V=a.vec3f32.create();r.vec3.scale(V,y,Math.abs(t));var d=a.vec3f32.create();r.vec3.scale(d,V,-.5),r.vec3.add(d,d,A);var u=a.vec3f32.fromValues(0,1,0);Math.abs(1-r.vec3.dot(y,u))<.2&&r.vec3.set(u,0,0,1);var m=a.vec3f32.create();r.vec3.cross(m,y,u),r.vec3.normalize(m,m),r.vec3.cross(u,m,y);var O=2*n+(f?2:0),h=n+(f?2:0),x=new Float32Array(3*O),C=new Float32Array(3*h),w=new Float32Array(2*O),I=new Uint32Array(3*n*(f?4:2)),g=new Uint32Array(3*n*(f?4:2));f&&(x[3*(O-2)+0]=d[0],x[3*(O-2)+1]=d[1],x[3*(O-2)+2]=d[2],w[2*(O-2)]=0,w[2*(O-2)+1]=0,x[3*(O-1)+0]=x[3*(O-2)+0]+V[0],x[3*(O-1)+1]=x[3*(O-2)+1]+V[1],x[3*(O-1)+2]=x[3*(O-2)+2]+V[2],w[2*(O-1)]=1,w[2*(O-1)+1]=1,C[3*(h-2)+0]=-y[0],C[3*(h-2)+1]=-y[1],C[3*(h-2)+2]=-y[2],C[3*(h-1)+0]=y[0],C[3*(h-1)+1]=y[1],C[3*(h-1)+2]=y[2]);for(var M=function(t,e,r){I[t]=e,g[t]=r},z=0,N=a.vec3f32.create(),P=a.vec3f32.create(),U=0;U<n;U++){var G=U*(2*Math.PI/n);r.vec3.scale(N,u,Math.sin(G)),r.vec3.scale(P,m,Math.cos(G)),r.vec3.add(N,N,P),C[3*U+0]=N[0],C[3*U+1]=N[1],C[3*U+2]=N[2],r.vec3.scale(N,N,e),r.vec3.add(N,N,d),x[3*U+0]=N[0],x[3*U+1]=N[1],x[3*U+2]=N[2],w[2*U+0]=U/n,w[2*U+1]=0,x[3*(U+n)+0]=x[3*U+0]+V[0],x[3*(U+n)+1]=x[3*U+1]+V[1],x[3*(U+n)+2]=x[3*U+2]+V[2],w[2*(U+n)+0]=U/n,w[2*U+1]=1;var F=(U+1)%n;M(z++,U,U),M(z++,U+n,U),M(z++,F,F),M(z++,F,F),M(z++,U+n,U),M(z++,F+n,F)}if(f){for(var U=0;U<n;U++){var F=(U+1)%n;M(z++,O-2,h-2),M(z++,U,h-2),M(z++,F,h-2)}for(var U=0;U<n;U++){var F=(U+1)%n;M(z++,U+n,h-1),M(z++,O-1,h-1),M(z++,F+n,h-1)}}var S={};S[v.VertexAttrConstants.POSITION]=I,S[v.VertexAttrConstants.NORMAL]=g,S[v.VertexAttrConstants.UV0]=I;var p={};return p[v.VertexAttrConstants.POSITION]={size:3,data:x},p[v.VertexAttrConstants.NORMAL]={size:3,data:C},p[v.VertexAttrConstants.UV0]={size:2,data:w},new c.GeometryData(p,S)}function g(e,r,a,n,o){a=a||10,n=null==n||n,v.assert(e.length>1);for(var s=[[0,0,0]],c=[],l=[],i=0;i<a;i++){c.push([0,-i-1,-(i+1)%a-1]);var A=i/a*2*Math.PI;l.push([Math.cos(A)*r,Math.sin(A)*r])}return t.createPathExtrusionGeometry(l,e,s,c,n,o)}function M(t,e,s,l,i,A){void 0===A&&(A=a.vec3f32.fromValues(0,0,0));var f=t.length,y=new Float32Array(e.length*f*3+(6*s.length||0)),d=new Float32Array(e.length*f+(2*s.length||0)),u=new Float32Array(e.length*f*3+(s?6:0)),m=(e.length-1)*f*6+3*l.length*2,O=new Uint32Array(m),h=new Uint32Array(m),x=0,C=0,w=0,I=0,g=0,M=a.vec3f32.create(),z=a.vec3f32.create(),N=a.vec3f32.create(),P=a.vec3f32.create(),U=a.vec3f32.create(),G=a.vec3f32.create(),F=a.vec3f32.create(),S=n.vec3f64.create(),T=a.vec3f32.create(),R=a.vec3f32.create(),L=a.vec3f32.create(),D=a.vec3f32.create(),b=a.vec3f32.create(),E=o.plane.create();r.vec3.set(T,0,1,0),r.vec3.subtract(z,e[1],e[0]),r.vec3.normalize(z,z),i?(r.vec3.add(S,e[0],A),r.vec3.normalize(N,S)):r.vec3.set(N,0,0,1),p(z,N,T,T,U,N,V),r.vec3.copy(P,N),r.vec3.copy(D,U);for(var q=0;q<s.length;q++)r.vec3.scale(G,U,s[q][0]),r.vec3.scale(S,N,s[q][2]),r.vec3.add(G,G,S),r.vec3.add(G,G,e[0]),y[x++]=G[0],y[x++]=G[1],y[x++]=G[2],d[w++]=0;u[C++]=-z[0],u[C++]=-z[1],u[C++]=-z[2];for(var q=0;q<l.length;q++)O[I++]=l[q][0]>0?l[q][0]:-l[q][0]-1+s.length,O[I++]=l[q][1]>0?l[q][1]:-l[q][1]-1+s.length,O[I++]=l[q][2]>0?l[q][2]:-l[q][2]-1+s.length,h[g++]=0,h[g++]=0,h[g++]=0;for(var B=s.length,X=s.length-1,k=0;k<e.length;k++){var Z=!1;if(k>0){r.vec3.copy(M,z),k<e.length-1?(r.vec3.subtract(z,e[k+1],e[k]),r.vec3.normalize(z,z)):Z=!0,r.vec3.add(R,M,z),r.vec3.normalize(R,R),r.vec3.add(L,e[k-1],P),o.plane.fromPositionAndNormal(e[k],R,E);o.plane.intersectRay(E,o.ray.wrap(L,M),S)?(r.vec3.subtract(S,S,e[k]),r.vec3.normalize(N,S),r.vec3.cross(U,R,N),r.vec3.normalize(U,U)):p(R,P,D,T,U,N,V),r.vec3.copy(P,N),r.vec3.copy(D,U)}i&&(r.vec3.add(S,e[k],A),r.vec3.normalize(b,S));for(var j=0;j<f;j++)if(r.vec3.scale(G,U,t[j][0]),r.vec3.scale(S,N,t[j][1]),r.vec3.add(G,G,S),r.vec3.normalize(F,G),u[C++]=F[0],u[C++]=F[1],u[C++]=F[2],d[w++]=i?r.vec3.dot(G,b):G[2],r.vec3.add(G,G,e[k]),y[x++]=G[0],y[x++]=G[1],y[x++]=G[2],!Z){var H=(j+1)%f;O[I++]=B+j,O[I++]=B+f+j,O[I++]=B+H,O[I++]=B+H,O[I++]=B+f+j,O[I++]=B+f+H;for(var J=0;J<6;J++)h[g++]=O[I-6+J]-X}B+=f}for(var K=e[e.length-1],q=0;q<s.length;q++)r.vec3.scale(G,U,s[q][0]),r.vec3.scale(S,N,s[q][1]),r.vec3.add(G,G,S),r.vec3.add(G,G,K),y[x++]=G[0],y[x++]=G[1],y[x++]=G[2],d[w++]=0;var Q=C/3;u[C++]=z[0],u[C++]=z[1],u[C++]=z[2];for(var W=B-f,q=0;q<l.length;q++)O[I++]=l[q][0]>=0?B+l[q][0]:-l[q][0]-1+W,O[I++]=l[q][2]>=0?B+l[q][2]:-l[q][2]-1+W,O[I++]=l[q][1]>=0?B+l[q][1]:-l[q][1]-1+W,h[g++]=Q,h[g++]=Q,h[g++]=Q;var Y={};Y[v.VertexAttrConstants.POSITION]=O,Y[v.VertexAttrConstants.NORMAL]=h;var $={};return $[v.VertexAttrConstants.POSITION]={size:3,data:y},$.zOffset={size:1,data:d},$[v.VertexAttrConstants.NORMAL]={size:3,data:u},new c.GeometryData($,Y)}function z(t,e){v.assert(t.length>1,\"createPolylineGeometry(): polyline needs at least 2 points\"),v.assert(3===t[0].length,\"createPolylineGeometry(): malformed vertex\"),v.assert(void 0===e||e.length===t.length,\"createPolylineGeometry: need same number of points and normals\"),v.assert(void 0===e||3===e[0].length,\"createPolylineGeometry(): malformed normal\");for(var r=new Float32Array(3*t.length),a=new Uint32Array(2*(t.length-1)),n=0,o=0,s=0;s<t.length;s++){for(var l=0;l<3;l++)r[n++]=t[s][l];s>0&&(a[o++]=s-1,a[o++]=s)}var i={},A={};if(i[v.VertexAttrConstants.POSITION]=a,A[v.VertexAttrConstants.POSITION]={size:3,data:r},e){for(var f=new Float32Array(3*e.length),y=0,s=0;s<t.length;s++)for(var l=0;l<3;l++)f[y++]=e[s][l];i[v.VertexAttrConstants.NORMAL]=a,A[v.VertexAttrConstants.NORMAL]={size:3,data:f}}return new c.GeometryData(A,i,c.GeometryData.DefaultOffsets,\"line\")}function N(t,e,r,a){for(var n,o,s=new Float32Array(18),l=[[-e,0,a/2],[r,0,a/2],[0,t,a/2],[-e,0,-a/2],[r,0,-a/2],[0,t,-a/2]],i=[0,1,2,3,0,2,2,5,3,1,4,5,5,2,1,1,0,3,3,4,1,4,3,5],A=0;A<6;A++)s[3*A]=l[A][0],s[3*A+1]=l[A][1],s[3*A+2]=l[A][2];var f=(n={},n[v.VertexAttrConstants.POSITION]=new Uint32Array(i),n),y=(o={},o[v.VertexAttrConstants.POSITION]={size:3,data:s},o);return new c.GeometryData(y,f)}function P(t,e){for(var a=t.vertexAttributes[v.VertexAttrConstants.POSITION].data,n=0;n<a.length;n+=3){var o=a[n],s=a[n+1],c=a[n+2];r.vec3.set(d,o,s,c),r.vec3.transformMat4(d,d,e),a[n]=d[0],a[n+1]=d[1],a[n+2]=d[2]}}function U(t,e){var r=e||[1,1,1,1],a=new Uint8Array(4);a[0]=255*r[0],a[1]=255*r[1],a[2]=255*r[2],a[3]=255*(r.length>3?r[3]:1);var n={},o=t.getVertexAttr();for(var s in o)n[s]=o[s];n[v.VertexAttrConstants.COLOR]={size:4,data:a};var l={};for(var s in t.indices)l[s]=t.indices[s];var i=l[v.VertexAttrConstants.POSITION].length;return l[v.VertexAttrConstants.COLOR]=new Uint32Array(i),t=new c.GeometryData(n,l,t.componentOffsets,t.primitiveType)}function G(t){for(var e=t.getVertexAttr(),a=t.indices,n=s.Vec3Compact.subtract,o=a.position.length/3,c=new Float32Array(3*o),l=e.position.data,i=0,A=a.position,f=new Uint32Array(A.length),y=0;y<A.length;y+=3){n(l,3*A[y],l,3*A[y+2],u,0),n(l,3*A[y],l,3*A[y+1],d,0),r.vec3.cross(d,d,u),r.vec3.normalize(d,d);var V=i/3;c[i++]=d[0],c[i++]=d[1],c[i++]=d[2],f[y]=V,f[y+1]=V,f[y+2]=V}e[v.VertexAttrConstants.NORMAL]={size:3,data:c,offsetIdx:0,strideIdx:3},a[v.VertexAttrConstants.NORMAL]=f}function F(t,e){void 0===e&&(e=t);var r=t.getVertexAttr(),a=r.position.data,n=r.normal.data,o=e.getVertexAttr(),s=o.position.data,c=o.normal.data;if(n)for(var v=0;v<n.length;v+=3){var l=n[v+1];c[v+1]=-n[v+2],c[v+2]=l}if(a)for(var v=0;v<a.length;v+=3){var l=a[v+1];s[v+1]=-a[v+2],s[v+2]=l}return e}function S(t,e,a,n,o){return!(Math.abs(r.vec3.dot(e,t))>o)&&(r.vec3.cross(a,t,e),r.vec3.normalize(a,a),r.vec3.cross(n,a,t),r.vec3.normalize(n,n),!0)}function p(t,e,r,a,n,o,s){return S(t,e,n,o,s)||S(t,r,n,o,s)||S(t,a,n,o,s)}t.createBoxGeometry=l.createGeometry,t.createDiamondGeometry=A.createGeometry,t.createTetrahedronGeometry=f.createGeometry,t.createSphereGeometry=e,t.createPolySphereGeometry=y,t.createPointGeometry=m,t.updatePointGeometry=O,t.createPointArrayGeometry=h,t.createTriangleGeometry=x,t.createSquareGeometry=C,t.createConeGeometry=w,t.createCylinderGeometry=I,t.createTubeGeometry=g,t.createPathExtrusionGeometry=M,t.createPolylineGeometry=z,t.createExtrudedTriangle=N,t.transformInPlace=P,t.addVertexColors=U,t.addNormals=G,t.cgToGIS=F,t.makeOrthoBasisDirUp=S,t.makeOrthoBasisDirUpFallback=p}(y||(y={}));var V=.99619469809,d=a.vec3f32.create(),u=a.vec3f32.create();return y});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"./IdGen\"],function(e,n,i){function r(){return t.gen(\"highlight\")}Object.defineProperty(n,\"__esModule\",{value:!0});var t=new i.IdGen;n.generateHighlightId=r});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\"],function(e,n){Object.defineProperty(n,\"__esModule\",{value:!0});var t=function(){function e(){this._count=0}return e.prototype.gen=function(e){return null==e&&(e=\"a\"),e+\"_\"+this._count++},e}();n.IdGen=t});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/has\",\"../../../../core/maybe\",\"../../../../core/now\",\"../../../../core/libs/gl-matrix-2/mat4f64\",\"../../../../core/libs/gl-matrix-2/vec3\",\"../../../../core/libs/gl-matrix-2/vec3f64\",\"../../support/geometryUtils\",\"./intersectorUtils\"],function(r,e,t,i,s,n,a,o,d,c){var f=t(\"dojo-debug-messages\"),u=1e-5;return function(){function r(r){this.options=new c.IntersectorOptions,this.results=new c.IntersectorResults,this.transform=new c.IntersectorTransform,this.performanceInfo={queryDuration:0,numObjectsTested:0},this.tolerance=u,this._ray={origin:o.vec3f64.create(),direction:o.vec3f64.create()},this._rayEndPoint=o.vec3f64.create(),this._rayStartPointTransformed=o.vec3f64.create(),this._rayEndPointTransformed=o.vec3f64.create(),this.viewingMode=r||\"global\"}return Object.defineProperty(r.prototype,\"ray\",{get:function(){return this._ray},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,\"rayBeginPoint\",{get:function(){return this._ray.origin},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,\"rayEndPoint\",{get:function(){return this._rayEndPoint},enumerable:!0,configurable:!0}),r.prototype.reset=function(r,e){this.resetWithRay(d.ray.fromPoints(r,e,this._ray))},r.prototype.resetWithRay=function(r){r!==this._ray&&d.ray.copy(r,this._ray),a.vec3.add(this._rayEndPoint,this._ray.origin,this._ray.direction),this._numObjectsTested=0,this.results.init(this._ray)},r.prototype.intersect=function(r,e,t,n,a,o){var d=this;this.point=e,this.camera=t,this.filterPredicate=a,this.tolerance=null==n?u:n;var c,l=i.isSome(this.options.verticalOffset)?this.options.verticalOffset.object3D:null;f&&(c=s());var y=o?function(r){o(r)&&d.intersectObject(r)}:function(r){d.intersectObject(r)};if(r&&r.length>0)for(var h=0,m=r;h<m.length;h++){var p=m[h],v=p.getSpatialQueryAccelerator?p.getSpatialQueryAccelerator():void 0;if(v)l?v.forEachAlongRayWithVerticalOffset(this._ray.origin,this._ray.direction,y,l):v.forEachAlongRay(this._ray.origin,this._ray.direction,y),this.options.selectionMode&&this.options.hud&&v.forEachDegenerateObject(y);else for(var g=p.getObjects(),_=0,O=g;_<O.length;_++){var b=O[_];y(b)}}this.sortResults(),f&&(this.performanceInfo.queryDuration=s()-c,this.performanceInfo.numObjectsTested=this._numObjectsTested)},r.prototype.intersectObject=function(r){var e=this;this._numObjectsTested++;var t=r.geometryRecords;if(t)for(var s,o=r.id,d=r.objectTransformation,f=i.isSome(this.options.verticalOffset)?this.options.verticalOffset.object3D:null,u=this,l=0,y=t;l<y.length;l++){var h=y[l];!function(t){var l=t.geometry,y=t.material,h=t.instanceParameters;if(h.hidden)return\"continue\";s=l.id,u.transform.setAndInvalidateLazyTransforms(d,t.getShaderTransformation()),a.vec3.transformMat4(u._rayStartPointTransformed,u._ray.origin,u.transform.inverse),a.vec3.transformMat4(u._rayEndPointTransformed,u._rayEndPoint,u.transform.inverse);var m=u.transform.transform;i.isSome(f)&&(f.objectTransform=u.transform),y.intersect(l,h,u.transform.transform,u,u._rayStartPointTransformed,u._rayEndPointTransformed,function(t,i,a,d,f,u){if(t>=0){if(null!=e.filterPredicate&&!e.filterPredicate(e._ray.origin,e._rayEndPoint,t))return;if(f)return void((null==e.results.hud.dist||t<e.results.hud.dist)&&e.results.hud.set(r,o,t,i,n.mat4f64.IDENTITY,d,u,s,a));var l=function(e){return e.set(r,o,t,i,m,d,null,s,a)};if((null==e.results.min.drapedLayerOrder||d>=e.results.min.drapedLayerOrder)&&(null==e.results.min.dist||t<e.results.min.dist)&&l(e.results.min),0!==e.options.store&&(null==e.results.max.drapedLayerOrder||d<e.results.max.drapedLayerOrder)&&(null==e.results.max.dist||t>e.results.max.dist)&&l(e.results.max),2===e.options.store){var y=new c.IntersectorResult(e._ray);l(y),e.results.all.push(y)}}},t.shaderTransformation)}(h)}},r.prototype.sortResults=function(){this.results.all.sort(function(r,e){return r.dist!==e.dist?r.dist-e.dist:r.drapedLayerOrder!==e.drapedLayerOrder?(void 0!==r.drapedLayerOrder?r.drapedLayerOrder:Number.MAX_VALUE)-(void 0!==e.drapedLayerOrder?e.drapedLayerOrder:Number.MAX_VALUE):(void 0!==e.drapedLayerGraphicOrder?e.drapedLayerGraphicOrder:Number.MIN_VALUE)-(void 0!==r.drapedLayerGraphicOrder?r.drapedLayerGraphicOrder:Number.MIN_VALUE)})},r.DEFAULT_TOLERANCE=u,r}()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\"],function(r,n){return function(){function r(){}return r.copyIntervals=function(r){for(var n=[],t=0;t<r.length;t++){var e=r[t];n.push([e[0],e[1]])}return n},r.convertFaceToIndexRange=function(r,n){for(var t=0;t<r.length;t++){var e=r[t];e[0]=e[0]*n,e[1]=e[1]*n+(n-1)}},r.sortIntervals=function(r){return r.sort(function(r,n){return r[0]===n[0]?r[1]>n[1]?1:r[1]<n[1]?-1:0:r[0]>n[0]?1:r[0]<n[0]?-1:0})},r.intersectIntervals=function(r,n){if(r.length<=0)return[];for(var t=[],e=0;e<r.length;e++){var u=r[e];if(!(u[1]<n[0]||u[0]>n[1])){var o=[u[0],u[1]];o[0]<n[0]&&(o[0]=n[0]),o[1]>n[1]&&(o[1]=n[1]),t.push(o)}}return t},r.mergeIntervals=function(r){if(r.length<=0)return[];var n=[];r=this.sortIntervals(r),n.push(r[0]);for(var t=1;t<r.length;t++){var e=n[n.length-1];e[1]+1<r[t][0]?n.push(r[t]):e[1]<r[t][1]&&(e[1]=r[t][1],n.pop(),n.push(e))}return n},r.invertIntervals=function(r,n){for(var t=[],e=0,u=0;u<r.length;u++){var o=r[u];o[0]>e&&t.push([e,o[0]-1]),e=o[1]+1}return e<=n&&t.push([e,n]),t},r.offsetIntervals=function(r,n){for(var t=[],e=0;e<r.length;e++){var u=r[e];t.push([u[0]+n,u[1]+n])}return t},r}()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/extendsHelper\",\"../../../../core/arrayUtils\",\"../../../../core/Evented\",\"../../../../core/libs/gl-matrix-2/vec3\",\"../../../../core/libs/gl-matrix-2/vec3f64\",\"./IdGen\",\"./Octree\"],function(t,e,i,r,n,o,a,s,c){return function(t){function e(i,r,n){var o=t.call(this)||this;return o._parentStages=new Map,o._children=new Set,o.id=e._idGen.gen(i),o.apiLayerUid=n,o.name=i,r=r||{},o.group=r.group||\"\",o.isVisible=null==r.isVisible||r.isVisible,o.isPickable=null==r.isPickable||r.isPickable,o.isSliceable=!1,o.translation=r.translation?a.vec3f64.clone(r.translation):a.vec3f64.create(),o._extent=[a.vec3f64.fromValues(0,0,0),a.vec3f64.fromValues(1e3,1e3,1e3)],o._extentDirty=!0,o}return i(e,t),e.prototype.addParentStage=function(t){if(!this._parentStages.has(t)){var e=this.on(\"dirty\",function(e){t.notifyDirty(e.origin,e.dirtyType,e.subObject)});this._parentStages.set(t,e)}},e.prototype.removeParentStage=function(t){var e=this._parentStages.get(t);e&&(e.remove(),this._parentStages.delete(t)),this.invalidateSpatialQueryAccelerator()},e.prototype.getName=function(){return this.name},e.prototype.getGroup=function(){return this.group},e.prototype.getTranslation=function(){return this.translation},e.prototype.getObjectIds=function(){return r.keysOfSet(this._children,function(t){return t.id})},e.prototype.getObjects=function(){return r.keysOfSet(this._children)},e.prototype.getExtent=function(){return this._updateExtent(),this._extent},e.prototype.addObject=function(t){this._children.add(t),t.parentLayer=this,this.notifyDirty(\"layerObjectAdded\",t),this._invalidateExtent(),this._octree&&this._octree.add(t)},e.prototype.hasObject=function(t){return this._children.has(t)},e.prototype.removeObject=function(t){return!!this._children.delete(t)&&(t.parentLayer=null,this.notifyDirty(\"layerObjectRemoved\",t),this._invalidateExtent(),this._octree&&this._octree.remove(t),!0)},e.prototype.notifyObjectBBChanged=function(t,e){this._octree&&this._octree.update(t,e)},e.prototype.getCenter=function(){this._updateExtent();var t=a.vec3f64.create();return o.vec3.lerp(t,this._extent[0],this._extent[1],.5)},e.prototype.getBSRadius=function(){return this._updateExtent(),.5*o.vec3.distance(this._extent[0],this._extent[1])},e.prototype.getSpatialQueryAccelerator=function(){return!this._octree&&this._children.size>50&&this._createOctree(),this._octree},e.prototype.shaderTransformationChanged=function(){this.notifyDirty(\"shaderTransformationChanged\",null)},e.prototype.invalidateSpatialQueryAccelerator=function(){this._octree&&(this._octree.destroy(),this._octree=null)},e.prototype.notifyDirty=function(t,e,i,r){i=i||0;var n=r||this,o={origin:n,dirtyType:t,subObject:e};this.emit(\"dirty\",o)},e.prototype._createOctree=function(){for(var t=this.getExtent(),e=0,i=0;i<3;i++)e=Math.max(e,t[1][i]-t[0][i]);var n=a.vec3f64.create();o.vec3.lerp(n,t[0],t[1],.5),this._octree=new c(n,1.2*e,{getRadius:function(t){return t.getBSRadius()},getCenter:function(t){return t.getCenter()}}),this._octree.add(r.keysOfSet(this._children))},e.prototype._invalidateExtent=function(){this._extentDirty=!0},e.prototype._updateExtent=function(){var t=this;if(this._extentDirty){if(this._extentDirty=!1,0===this._children.size)return void(this._extent=[[0,0,0],[0,0,0]]);var e=null;this._children.forEach(function(i){var r=i.getBBMin(),n=i.getBBMax();if(e)for(var o=0;o<3;++o)t._extent[0][o]=Math.min(t._extent[0][o],r[o]),t._extent[1][o]=Math.max(t._extent[1][o],n[o]);else e=[a.vec3f64.clone(r),a.vec3f64.clone(n)]}),this._extent=e}},e._idGen=new s.IdGen,e}(n)});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"./IdGen\"],function(e,t,r){Object.defineProperty(t,\"__esModule\",{value:!0});var i=function(){function e(t){this.supportsEdges=!1,this._parentStage=null,this._visible=!0,this._renderOccluded=1,this._renderPriority=0,this.id=e._idGen.gen(t)}return e.prototype.update=function(e){return!1},Object.defineProperty(e.prototype,\"parentStage\",{get:function(){return this._parentStage},enumerable:!0,configurable:!0}),e.prototype.addParentStage=function(e){this._parentStage=e},e.prototype.removeParentStage=function(){this._parentStage=null},Object.defineProperty(e.prototype,\"visible\",{get:function(){return this._visible},set:function(e){e!==this._visible&&(this._visible=e,this.notifyDirty(\"matChanged\"))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"renderOccluded\",{get:function(){return this._renderOccluded},set:function(e){e!==this._renderOccluded&&(this._renderOccluded=e,this.notifyDirty(\"matChanged\"))},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"renderPriority\",{get:function(){return this._renderPriority},set:function(e){e!==this._renderPriority&&(this._renderPriority=e,this.notifyDirty(\"matChanged\"))},enumerable:!0,configurable:!0}),e.prototype.isVisibleInPass=function(e){return!0},e.prototype.isVisible=function(){return this._visible},e.prototype.notifyDirty=function(e){this.parentStage&&this.parentStage.notifyDirty(this,e)},e._idGen=new r.IdGen,e}();t.Material=i});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/extendsHelper\",\"../../../../core/libs/gl-matrix-2/mat4\",\"../../../../core/libs/gl-matrix-2/mat4f64\",\"../../../../core/libs/gl-matrix-2/vec3\",\"../../../../core/libs/gl-matrix-2/vec3f64\",\"../../support/mathUtils\",\"./ComponentUtils\",\"./GeometryRecord\",\"./HighlightUtils\",\"./IdGen\",\"./Util\"],function(t,e,i,o,n,r,s,a,l,m,h,c,p){var d=p.assert,b=function(){function t(e){void 0===e&&(e={}),this._objectTransformation=n.mat4f64.create(),this._bvObjectSpace=new g,this._bvWorldSpace=new g,this._bvDirty=!0,this._hasVolatileTransformation=!1,this._allComponentsHiddenDirty=!0,this._allComponentsVisibleDirty=!0,this.id=t._idGen.gen(e.idHint),this.castShadow=null==e.castShadow||e.castShadow,this.metadata=e.metadata,this.metadata&&this.metadata.isElevationSource&&(this.metadata.lastValidElevationBB=new u),this.objectTransformation=n.mat4f64.create(),this._initializeGeometryRecords(e.geometries,e.materials,e.transformations,e.origins)}return Object.defineProperty(t.prototype,\"geometryRecords\",{get:function(){return this._geometryRecords},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"geometries\",{get:function(){return this._geometries},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"objectTransformation\",{get:function(){return this._objectTransformation},set:function(t){o.mat4.copy(this._objectTransformation,t),this._invalidateBoundingVolume(),this._notifyDirty(\"objTransformation\")},enumerable:!0,configurable:!0}),t.prototype.dispose=function(){for(var t=0,e=this._geometryRecords;t<e.length;t++){var i=e[t];m.pool.release(i)}this._geometryRecords=null,this._geometries=null},t.prototype._initializeGeometryRecords=function(t,e,i,o){if(!Array.isArray(t))return this._geometryRecords=[],void(this._geometries=[]);d(e.length===t.length,\"Object3D: materials don't match geometries\"),d(i.length===t.length,\"Object3D: transformations don't match geometries\"),this._geometryRecords=new Array(t.length),this._geometries=t.slice();for(var r=0;r<t.length;r++){var s={};this._geometryRecords[r]=m.pool.acquire(t[r],e[r],n.mat4f64.clone(i[r]),s,o&&o[r])}this._hasVolatileTransformation=!1},Object.defineProperty(t.prototype,\"parentLayer\",{get:function(){return this._parentLayer},set:function(t){d(null==this._parentLayer||null==t,\"Object3D can only be added to a single Layer\"),this._parentLayer=t},enumerable:!0,configurable:!0}),t.prototype.getNumGeometryRecords=function(){return this._geometryRecords.length},t.prototype.findGeometryRecords=function(t){for(var e=[],i=0;i<this._geometries.length;i++)this._geometries[i]===t&&e.push(this._geometryRecords[i]);return e},t.prototype.getGeometryRecord=function(t){return d(t>=0&&t<this._geometryRecords.length,\"Object3d.getGeometryDataByIndex: index out of range\"),this._geometryRecords[t]},t.prototype.addGeometry=function(t,e,i,o,r,s){i=i?n.mat4f64.clone(i):n.mat4f64.IDENTITY,this._geometries.push(t);var a=m.pool.acquire(t,e,i,o||{},r,s);return this._geometryRecords.push(a),this._hasVolatileTransformation=this._geometryRecords.some(function(t){return!!t.shaderTransformation}),this._notifyDirty(\"objGeometryAdded\",a),this._invalidateBoundingVolume(),this._allComponentsHiddenDirty=!0,this._allComponentsVisibleDirty=!0,a},t.prototype.removeGeometry=function(t){var e=this._geometryRecords.splice(t,1)[0];return m.pool.release(e),this._hasVolatileTransformation=this._geometryRecords.some(function(t){return!!t.shaderTransformation}),this._geometries.splice(t,1),this._notifyDirty(\"objGeometryRemoved\",e),this._invalidateBoundingVolume(),this._allComponentsHiddenDirty=!0,this._allComponentsVisibleDirty=!0,e},t.prototype.removeAllGeometries=function(){for(;this.getNumGeometryRecords()>0;)this.removeGeometry(0)},t.prototype.geometryVertexAttrsUpdated=function(t){this._notifyDirty(\"vertexAttrsUpdated\",this._geometryRecords[t]),this._invalidateBoundingVolume()},t.prototype.areAllComponentsHidden=function(){if(this._allComponentsHiddenDirty){this._allComponentsHiddenDirty=!1,this._allComponentsHidden=!0;for(var t=0,e=this._geometryRecords;t<e.length;t++){var i=e[t],o=i.instanceParameters.componentVisibilities,n=i.geometry.data.componentOffsets;if(!l.isAllHidden(o,n)){this._allComponentsHidden=!1;break}}}return this._allComponentsHidden},t.prototype.areAllComponentsVisible=function(){if(this._allComponentsVisibleDirty){this._allComponentsVisibleDirty=!1,this._allComponentsVisible=!0;for(var t=0,e=this._geometryRecords;t<e.length;t++){var i=e[t],o=i.instanceParameters.componentVisibilities,n=i.geometry.data.componentOffsets;if(!l.isAllVisible(o,n)){this._allComponentsVisible=!1;break}}}return this._allComponentsVisible},t.prototype.hasComponents=function(){for(var t=!1,e=0;e<this._geometries.length;e++){var i=this._geometries[e];if(t=l.hasComponents(i.data.componentOffsets))break}return t},t.prototype.setComponentVisibility=function(t,e,i){var o=t.geometry,n=t.instanceParameters.componentVisibilities,r=o.data.componentOffsets,s=l.updateVisibility(n,r,e,i);t.instanceParameters.componentVisibilities=s,this._notifyDirty(\"visibilityChanged\",t),this._allComponentsHiddenDirty=!0,this._allComponentsVisibleDirty=!0},t.prototype.setHidden=function(t,e){t.instanceParameters.hidden=!!e,this._notifyDirty(\"visibilityChanged\",t)},t.prototype.isHidden=function(t){return!!t.instanceParameters.hidden},t.prototype.getComponentVisibility=function(t,e){var i=t.instanceParameters.componentVisibilities;return l.getVisibility(i,e)},t.prototype.hideAllComponents=function(){if(this._allComponentsHiddenDirty||!this._allComponentsHidden){for(var t=0,e=this._geometryRecords;t<e.length;t++){var i=e[t],o=i.instanceParameters.componentVisibilities,n=l.hideAllComponents(o);i.instanceParameters.componentVisibilities=n}this._notifyDirty(\"visibilityChanged\"),this._allComponentsHiddenDirty=!1,this._allComponentsVisibleDirty=!1,this._allComponentsHidden=!0,this._allComponentsVisible=!1}},t.prototype.unhideAllComponents=function(){if(this._allComponentsVisibleDirty||!this._allComponentsVisible){for(var t=0,e=this._geometryRecords;t<e.length;t++){var i=e[t],o=i.instanceParameters.componentVisibilities,n=l.unhideAllComponents(o);i.instanceParameters.componentVisibilities=n}this._notifyDirty(\"visibilityChanged\"),this._allComponentsHiddenDirty=!1,this._allComponentsVisibleDirty=!1,this._allComponentsHidden=!1,this._allComponentsVisible=!0}},t.prototype._setComponentHighlight=function(t,e,i,o){var n=t.instanceParameters.componentHighlights,r=l.addHighlight(n,e,i,o);t.instanceParameters.componentHighlights=r},t.prototype.setComponentHighlight=function(t,e,i){var o=h.generateHighlightId();return this._setComponentHighlight(t,e,i,o),this._notifyDirty(\"componentHighlightChanged\"),o},t.prototype.highlightAllComponents=function(t){for(var e=h.generateHighlightId(),i=0,o=this._geometryRecords;i<o.length;i++){var n=o[i];this._setComponentHighlight(n,null,t,e)}return this._notifyDirty(\"componentHighlightChanged\"),e},t.prototype.removeHighlights=function(t){for(var e=0,i=this._geometryRecords;e<i.length;e++){var o=i[e],n=o.instanceParameters,r=n.componentHighlights,s=l.removeHighlight(r,t);n.componentHighlights=s}this._notifyDirty(\"componentHighlightChanged\")},t.prototype.getComponentFromTriangleNr=function(t,e){d(t>=0&&t<this._geometryRecords.length,\"Object3d.getComponentFromTriangleNr: index out of range\");var i=this._geometryRecords[t],o=i.geometry.data.componentOffsets;return l.componentFind(o,3*e)},t.prototype.setGeometryTransformation=function(t,e){d(t>=0&&t<this._geometryRecords.length,\"Object3d.setGeometryTransformation: index out of range\");var i=this._geometryRecords[t];m.pool.release(i);var o=m.pool.acquire(i.geometry,i.material,n.mat4f64.clone(e),i.instanceParameters);this._geometryRecords[t]=o,this._notifyDirty(\"objGeometryReplaced\",[i,o]),this._invalidateBoundingVolume()},t.prototype.getCombinedStaticTransformation=function(t,e){return e=e||n.mat4f64.create(),o.mat4.multiply(e,this.objectTransformation,t.getStaticTransformation()),e},t.prototype.getCombinedShaderTransformation=function(t,e){return e=e||n.mat4f64.create(),o.mat4.multiply(e,this.objectTransformation,t.getShaderTransformation()),e},t.prototype.hasVolativeTransformation=function(){return this._hasVolatileTransformation},t.prototype.getMetadata=function(){return this.metadata},t.prototype.getBBMin=function(t){return this._validateBoundingVolume(),t?this._bvObjectSpace.bbMin:this._bvWorldSpace.bbMin},t.prototype.getBBMax=function(t){return this._validateBoundingVolume(),t?this._bvObjectSpace.bbMax:this._bvWorldSpace.bbMax},t.prototype.getCenter=function(t){return this._validateBoundingVolume(),t?this._bvObjectSpace.center:this._bvWorldSpace.center},t.prototype.getBSRadius=function(t){return this._validateBoundingVolume(),t?this._bvObjectSpace.bsRadius:this._bvWorldSpace.bsRadius},t.prototype._validateBoundingVolume=function(){if(this._bvDirty||this._hasVolatileTransformation){this._bvObjectSpace.init(),this._bvWorldSpace.init();for(var t=0;t<this._geometryRecords.length;++t){var e=this._geometries[t],i=this._geometryRecords[t],o=e.boundingInfo;this._calculateTransformedBoundingVolume(o,this._bvObjectSpace,i.getShaderTransformation()),this._calculateTransformedBoundingVolume(o,this._bvWorldSpace,this.getCombinedShaderTransformation(i))}r.vec3.lerp(this._bvObjectSpace.center,this._bvObjectSpace.bbMin,this._bvObjectSpace.bbMax,.5),r.vec3.lerp(this._bvWorldSpace.center,this._bvWorldSpace.bbMin,this._bvWorldSpace.bbMax,.5);for(var n=s.vec3f64.create(),l=s.vec3f64.create(),m=a.maxScale(this.objectTransformation),t=0;t<this._geometryRecords.length;++t){var e=this._geometries[t],h=this._geometryRecords[t].getShaderTransformation(),c=a.maxScale(h),o=e.boundingInfo;r.vec3.transformMat4(n,o.getCenter(),h);var p=r.vec3.distance(n,this._bvObjectSpace.center),d=o.getBSRadius()*c;this._bvObjectSpace.bsRadius=Math.max(this._bvObjectSpace.bsRadius,p+d),r.vec3.transformMat4(l,n,this.objectTransformation);var b=r.vec3.distance(l,this._bvWorldSpace.center),u=d*m;this._bvWorldSpace.bsRadius=Math.max(this._bvWorldSpace.bsRadius,b+u)}this._bvDirty=!1}},t.prototype._calculateTransformedBoundingVolume=function(t,e,i){var o=t.getBBMin(),n=t.getBBMax(),a=s.vec3f64.clone(o),l=s.vec3f64.clone(n);r.vec3.transformMat4(a,a,i),r.vec3.transformMat4(l,l,i);for(var m=0;m<3;++m)e.bbMin[m]=Math.min(e.bbMin[m],a[m],l[m]),e.bbMax[m]=Math.max(e.bbMax[m],a[m],l[m]);for(var m=0;m<3;++m){r.vec3.copy(a,o),r.vec3.copy(l,n),a[m]=n[m],l[m]=o[m],r.vec3.transformMat4(a,a,i),r.vec3.transformMat4(l,l,i);for(var h=0;h<3;++h)e.bbMin[h]=Math.min(e.bbMin[h],a[h],l[h]),e.bbMax[h]=Math.max(e.bbMax[h],a[h],l[h])}},t.prototype._invalidateBoundingVolume=function(){this._bvDirty=!0,this._parentLayer&&this._parentLayer.notifyObjectBBChanged(this,{center:this._bvWorldSpace.center,radius:this._bvWorldSpace.bsRadius})},t.prototype._notifyDirty=function(t,e,i,o){if(this._parentLayer){i=i||1;var n=o||this;this._parentLayer.notifyDirty(t,e,i,n)}},Object.defineProperty(t.prototype,\"test\",{get:function(){var t=this;return{hasGeometry:function(e){return t._geometries.indexOf(e)>-1},getGeometryIndex:function(e){return t._geometries.indexOf(e)}}},enumerable:!0,configurable:!0}),t._idGen=new c.IdGen,t}(),u=function(){function t(){this.bbMin=s.vec3f64.fromValues(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),this.bbMax=s.vec3f64.fromValues(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE)}return t.prototype.isEmpty=function(){return this.bbMax[0]<this.bbMin[0]&&this.bbMax[1]<this.bbMin[1]&&this.bbMax[2]<this.bbMin[2]},t}(),g=function(t){function e(){var e=t.call(this)||this;return e.center=s.vec3f64.create(),e.bsRadius=0,e}return i(e,t),e.prototype.init=function(){r.vec3.set(this.bbMin,Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),r.vec3.set(this.bbMax,-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),r.vec3.set(this.center,0,0,0),this.bsRadius=0},e.prototype.getCenter=function(){return this.center},e.prototype.getBSRadius=function(){return this.bsRadius},e}(u);return b});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/ObjectPool\",\"../../../../core/PooledArray\",\"../../../../core/libs/gl-matrix-2/vec3\",\"../../../../core/libs/gl-matrix-2/vec3f64\",\"../../support/geometryUtils\",\"./Util\"],function(e,t,r,n,i,o,a,s){function c(e,t,r){e[0]=Math.min(e[0],t[0]-r),e[1]=Math.min(e[1],t[1]-r),e[2]=Math.min(e[2],t[2]-r)}function u(e,t,r){e[0]=Math.max(e[0],t[0]+r),e[1]=Math.max(e[1],t[1]+r),e[2]=Math.max(e[2],t[2]+r)}function h(e,t,r){return r=r||e,r[0]=e[0]+t,r[1]=e[1]+t,r[2]=e[2]+t,r}function f(e,t,r){return!a.frustum.intersectsSphere(r.planes,a.sphere.wrap(t,e))}function d(e,t,r){if(!V.length)for(var n=0;n<8;++n)V.push({index:0,distance:0});for(var n=0;n<8;++n){var i=v[n];V.data[n].index=n,V.data[n].distance=p(e,t,i)}V.sort(function(e,t){return e.distance-t.distance}),r.clear();for(var n=0;n<8;++n)r.push(V.data[n].index)}function l(e,t){for(var r=1/0,n=null,i=0;i<8;++i){var o=p(e,t,g[i]);o<r&&(r=o,n=g[i])}return n}function p(e,t,r){return t*(e[0]*r[0]+e[1]*r[1]+e[2]*r[2])}var _=function(){function e(e,t,r,n){this._maximumObjectsPerNode=10,this._maximumDepth=20,this._degenerateObjects=new Set,this._objectCount=0,this._objectToBoundingSphere=r,n&&(void 0!==n.maximumObjectsPerNode&&(this._maximumObjectsPerNode=n.maximumObjectsPerNode),void 0!==n.maximumDepth&&(this._maximumDepth=n.maximumDepth)),isNaN(e[0])||isNaN(e[1])||isNaN(e[2])||isNaN(t)?this._root=new m(null,o.vec3f64.fromValues(0,0,0),.5):this._root=new m(null,e,t/2)}return Object.defineProperty(e.prototype,\"center\",{get:function(){return this._root.center},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"size\",{get:function(){return 2*this._root.halfSize},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"root\",{get:function(){return this._root.node},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"maximumObjectsPerNode\",{get:function(){return this._maximumObjectsPerNode},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"maximumDepth\",{get:function(){return this._maximumDepth},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"objectCount\",{get:function(){return this._objectCount},enumerable:!0,configurable:!0}),e.prototype.destroy=function(){this._degenerateObjects.clear(),this._root=null,m.clearPool(),y=[null],N.prune(),V.prune(),D.prune()},e.prototype.add=function(e,t){var r=this._objectOrObjectsArray(e);t=null==t?r.length:t,this._objectCount+=t,this._grow(r,t);for(var n=m.acquire(),i=0;i<t;i++){var o=r[i];n.init(this._root),this._isDegenerate(o)?this._degenerateObjects.add(o):this._add(o,n)}m.release(n)},e.prototype.remove=function(e,t){var r=this._objectOrObjectsArray(e);this._objectCount-=r.length;for(var n=m.acquire(),i=0;i<r.length;i++){var o=r[i],a=t||this._boundingSphereFromObject(o,E);this._isValidRadius(a.radius)?(n.init(this._root),this._remove(o,a,n)):this._degenerateObjects.delete(o)}m.release(n),this._shrink()},e.prototype.update=function(e,t){!this._isValidRadius(t.radius)&&this._isDegenerate(e)||(this.remove(e,t),this.add(e))},e.prototype.forEachAlongRay=function(e,t,r){var n=this,i=a.ray.wrap(e,t);this._forEachNode(this._root,function(e){if(!n._intersectsNode(i,e))return!1;var t=e.node;return t.terminals.forEach(function(e){n._intersectsObject(i,e)&&r(e)}),null!==t.residents&&t.residents.forEach(function(e){n._intersectsObject(i,e)&&r(e)}),!0})},e.prototype.forEachAlongRayWithVerticalOffset=function(e,t,r,n){var i=this,o=a.ray.wrap(e,t);this._forEachNode(this._root,function(e){if(!i._intersectsNodeWithOffset(o,e,n))return!1;var t=e.node;return t.terminals.forEach(function(e){i._intersectsObjectWithOffset(o,e,n)&&r(e)}),null!==t.residents&&t.residents.forEach(function(e){i._intersectsObjectWithOffset(o,e,n)&&r(e)}),!0})},e.prototype.forEach=function(e){this._forEachNode(this._root,function(t){var r=t.node;return r.terminals.forEach(e),null!==r.residents&&r.residents.forEach(e),!0}),this._degenerateObjects.forEach(e)},e.prototype.forEachDegenerateObject=function(e){this._degenerateObjects.forEach(e)},e.prototype.findClosest=function(e,t,r,n,i){return this._findClosest(e,\"front-to-back\"===t?1:-1,r,n,i)},e.prototype.forEachInDepthRange=function(e,t,r,n,i,o,a,s){this._forEachInDepthRange(e,t,\"front-to-back\"===r?1:-1,n,i,o,a,s)},e.prototype.forEachNode=function(e){this._forEachNode(this._root,function(t){return e(t.node,t.center,2*t.halfSize)})},e.prototype._intersectsNode=function(e,t){return h(t.center,2*-t.halfSize,O),h(t.center,2*t.halfSize,x),s.rayBoxTest(e.origin,e.direction,O,x)},e.prototype._intersectsNodeWithOffset=function(e,t,r){return h(t.center,2*-t.halfSize,O),h(t.center,2*t.halfSize,x),r.applyToMinMax(O,x),s.rayBoxTest(e.origin,e.direction,O,x)},e.prototype._intersectsObject=function(e,t){var r=this._objectToBoundingSphere.getRadius(t);return!(r>0)||a.sphere.intersectsRay(a.sphere.wrap(r,this._objectToBoundingSphere.getCenter(t)),e)},e.prototype._intersectsObjectWithOffset=function(e,t,r){var n=this._objectToBoundingSphere.getRadius(t);return!(n>0)||a.sphere.intersectsRay(r.applyToBoundingSphere(n,this._objectToBoundingSphere.getCenter(t)),e)},e.prototype._forEachNode=function(e,t){for(var r=m.acquire().init(e),n=[r];0!==n.length;){if(r=n.pop(),t(r)&&!r.isLeaf())for(var i=0;i<r.node.children.length;i++){var o=r.node.children[i];o&&n.push(m.acquire().init(r).advance(i))}m.release(r)}},e.prototype._forEachNodeDepthOrdered=function(e,t,r,n){void 0===n&&(n=1);var i=m.acquire().init(e),o=[i];for(d(r,n,D);0!==o.length;){if(i=o.pop(),t(i)&&!i.isLeaf())for(var a=7;a>=0;--a){var s=D.data[a];if(!(s>=i.node.children.length)){var c=i.node.children[s];c&&o.push(m.acquire().init(i).advance(s))}}m.release(i)}},e.prototype._findClosest=function(e,t,r,n,o){var a=this,s=1/0,c=1/0,u=null,h=l(e,t),d=0,_=function(i){if(++d,!n||n(i)){var o=a._objectToBoundingSphere.getCenter(i),h=a._objectToBoundingSphere.getRadius(i);if(!r||!f(o,h,r)){var l=p(e,t,o),_=l-h,m=l+h;_<s&&(s=_,c=m,u=i)}}};return this._forEachNodeDepthOrdered(this._root,function(n){if(null!=o&&d>=o)return!1;if(r&&f(n.center,n.halfSize*b,r))return!1;if(i.vec3.scale(S,h,n.halfSize),i.vec3.add(S,S,n.center),p(e,t,S)>c)return!1;var a=n.node;return a.terminals.forEach(function(e){_(e)}),null!==a.residents&&a.residents.forEach(function(e){_(e)}),!0},e,t),u},e.prototype._forEachInDepthRange=function(e,t,r,n,o,a,s,c){var u=this,h=-1/0,d=1/0,_={setRange:function(e){1===r?(h=Math.max(h,e.near),d=Math.min(d,e.far)):(h=Math.max(h,-e.far),d=Math.min(d,-e.near))}};_.setRange(n);var m=p(t,r,e),v=l(t,r),g=l(t,-1*r),y=0,j=function(e){if(++y,!s||s(e)){var n=u._objectToBoundingSphere.getCenter(e),i=u._objectToBoundingSphere.getRadius(e),c=p(t,r,n)-m,l=c-i,v=c+i;l>d||v<h||a&&f(n,i,a)||o(e,_)}};this._forEachNodeDepthOrdered(this._root,function(e){if(null!=c&&y>=c)return!1;if(a&&f(e.center,e.halfSize*b,a))return!1;if(i.vec3.scale(S,v,e.halfSize),i.vec3.add(S,S,e.center),p(t,r,S)-m>d)return!1;if(i.vec3.scale(S,g,e.halfSize),i.vec3.add(S,S,e.center),p(t,r,S)-m<h)return!1;var n=e.node;return n.terminals.forEach(function(e){j(e)}),null!==n.residents&&n.residents.forEach(function(e){j(e)}),!0},t,r)},e.prototype._objectOrObjectsArray=function(e){return Array.isArray(e)?e:(y[0]=e,y)},e.prototype._remove=function(e,t,r){N.clear();var n=r.advanceTo(t,function(e,t){N.push(e.node),N.push(t)}),i=n?r.node.terminals:r.node.residents;if(i.removeUnordered(e),0===i.length)for(var o=N.length-2;o>=0;o-=2){var a=N.data[o],s=N.data[o+1];if(!this._purge(a,s))break}},e.prototype._nodeIsEmpty=function(e){if(0!==e.terminals.length)return!1;if(null!==e.residents)return 0===e.residents.length;for(var t=0;t<e.children.length;t++)if(e.children[t])return!1;return!0},e.prototype._purge=function(e,t){return t>=0&&(e.children[t]=null),!!this._nodeIsEmpty(e)&&(null===e.residents&&(e.residents=new n({shrink:!0})),!0)},e.prototype._add=function(e,t){t.advanceTo(this._boundingSphereFromObject(e,E))?t.node.terminals.push(e):(t.node.residents.push(e),t.node.residents.length>this._maximumObjectsPerNode&&t.depth<this._maximumDepth&&this._split(t))},e.prototype._split=function(e){var t=e.node.residents;e.node.residents=null;for(var r=0;r<t.length;r++){var n=m.acquire().init(e);this._add(t.data[r],n),m.release(n)}},e.prototype._grow=function(e,t){var r=this;if(0!==t){var n=this._boundingSphereFromObjects(e,t,function(e,t){return r._boundingSphereFromObject(e,t)},M);if(this._isValidRadius(n.radius)&&!this._fitsInsideTree(n))if(this._nodeIsEmpty(this._root.node))i.vec3.copy(this._root.center,n.center),this._root.halfSize=1.25*n.radius;else{var o=m.acquire();this._rootBoundsForRootAsSubNode(n,o),this._placingRootViolatesMaxDepth(o)?this._rebuildTree(n,o):this._growRootAsSubNode(o),m.release(o)}}},e.prototype._rebuildTree=function(e,t){var r=this;i.vec3.copy(z.center,t.center),z.radius=t.halfSize;var n=this._boundingSphereFromObjects([e,z],2,function(e){return e},R),o=m.acquire().init(this._root);this._root.initFrom(null,n.center,1.25*n.radius),this._forEachNode(o,function(e){return r.add(e.node.terminals.data,e.node.terminals.length),null!==e.node.residents&&r.add(e.node.residents.data,e.node.residents.length),!0}),m.release(o)},e.prototype._placingRootViolatesMaxDepth=function(e){var t=0;return this._forEachNode(this._root,function(e){return t=Math.max(t,e.depth),!0}),t+Math.log(e.halfSize/this._root.halfSize)*Math.LOG2E>this._maximumDepth},e.prototype._rootBoundsForRootAsSubNode=function(e,t){for(var r=e.radius,n=e.center,i=-1/0,o=this._root.center,a=this._root.halfSize,s=0;s<3;s++){var c=o[s]-a-(n[s]-r),u=n[s]+r-(o[s]+a),h=Math.max(0,Math.ceil(c/(2*a))),f=Math.max(0,Math.ceil(u/(2*a)))+1,d=Math.pow(2,Math.ceil(Math.log(h+f)*Math.LOG2E));i=Math.max(i,d),T[s].min=h,T[s].max=f}for(var s=0;s<3;s++){var h=T[s].min,f=T[s].max,l=(i-(h+f))/2;h+=Math.ceil(l),f+=Math.floor(l);var p=o[s]-a-h*a*2;j[s]=p+(f+h)*a}return t.initFrom(null,j,i*a,0)},e.prototype._growRootAsSubNode=function(e){var t=this._root.node;i.vec3.copy(M.center,this._root.center),M.radius=this._root.halfSize,this._root.init(e),e.advanceTo(M,null,!0),e.node.children=t.children,e.node.residents=t.residents,e.node.terminals=t.terminals},e.prototype._shrink=function(){for(;;){var e=this._findShrinkIndex();if(-1===e)break;this._root.advance(e),this._root.depth=0}},e.prototype._findShrinkIndex=function(){if(0!==this._root.node.terminals.length||this._root.isLeaf())return-1;for(var e=null,t=this._root.node.children,r=0,n=0;n<t.length&&null==e;)r=n++,e=t[r];for(;n<t.length;)if(t[n++])return-1;return r},e.prototype._isDegenerate=function(e){var t=this._objectToBoundingSphere.getRadius(e);return!this._isValidRadius(t)},e.prototype._isValidRadius=function(e){return!isNaN(e)&&e!==-1/0&&e!==1/0&&e>0},e.prototype._fitsInsideTree=function(e){var t=this._root.center,r=this._root.halfSize,n=e.center;return e.radius<=r&&n[0]>=t[0]-r&&n[0]<=t[0]+r&&n[1]>=t[1]-r&&n[1]<=t[1]+r&&n[2]>=t[2]-r&&n[2]<=t[2]+r},e.prototype._boundingSphereFromObject=function(e,t){return i.vec3.copy(t.center,this._objectToBoundingSphere.getCenter(e)),t.radius=this._objectToBoundingSphere.getRadius(e),t},e.prototype._boundingSphereFromObjects=function(e,t,r,n){if(1===t){var o=r(e[0],M);i.vec3.copy(n.center,o.center),n.radius=o.radius}else{O[0]=1/0,O[1]=1/0,O[2]=1/0,x[0]=-1/0,x[1]=-1/0,x[2]=-1/0;for(var a=0;a<t;a++){var o=r(e[a],M);this._isValidRadius(o.radius)&&(c(O,o.center,o.radius),u(x,o.center,o.radius))}i.vec3.lerp(n.center,O,x,.5),n.radius=Math.max(x[0]-O[0],x[1]-O[1],x[2]-O[2])/2}return n},e}(),m=function(){function e(e,t,r){void 0===r&&(r=0),this.center=o.vec3f64.create(),this.initFrom(e,t,r,0)}return e.prototype.init=function(e){return this.initFrom(e.node,e.center,e.halfSize,e.depth)},e.prototype.initFrom=function(t,r,n,o){return void 0===t&&(t=null),void 0===n&&(n=this.halfSize),void 0===o&&(o=this.depth),this.node=t||e.createEmptyNode(),r&&i.vec3.copy(this.center,r),this.halfSize=n,this.depth=o,this},e.prototype.advance=function(t){var r=this.node.children[t];r||(r=e.createEmptyNode(),this.node.children[t]=r),this.node=r,this.halfSize/=2,this.depth++;var n=v[t];return this.center[0]+=n[0]*this.halfSize,this.center[1]+=n[1]*this.halfSize,this.center[2]+=n[2]*this.halfSize,this},e.prototype.advanceTo=function(e,t,r){for(void 0===r&&(r=!1);;){if(this.isTerminalFor(e))return t&&t(this,-1),!0;if(this.isLeaf()&&!r)return t&&t(this,-1),!1;this.isLeaf()&&(this.node.residents=null);var n=this._childIndex(e);t&&t(this,n),this.advance(n)}},e.prototype.isLeaf=function(){return null!=this.node.residents},e.prototype.isTerminalFor=function(e){return e.radius>this.halfSize/2},e.prototype._childIndex=function(e){for(var t=e.center,r=this.center,n=0,i=0;i<3;i++)r[i]<t[i]&&(n|=1<<i);return n},e.createEmptyNode=function(){return{children:[null,null,null,null,null,null,null,null],terminals:new n({shrink:!0}),residents:new n({shrink:!0})}},e.acquire=function(){return e._pool.acquire()},e.release=function(t){e._pool.release(t)},e.clearPool=function(){e._pool.prune()},e._pool=new r(e),e}(),v=[o.vec3f64.fromValues(-1,-1,-1),o.vec3f64.fromValues(1,-1,-1),o.vec3f64.fromValues(-1,1,-1),o.vec3f64.fromValues(1,1,-1),o.vec3f64.fromValues(-1,-1,1),o.vec3f64.fromValues(1,-1,1),o.vec3f64.fromValues(-1,1,1),o.vec3f64.fromValues(1,1,1)],g=[o.vec3f64.fromValues(-1,-1,-1),o.vec3f64.fromValues(-1,-1,1),o.vec3f64.fromValues(-1,1,-1),o.vec3f64.fromValues(-1,1,1),o.vec3f64.fromValues(1,-1,-1),o.vec3f64.fromValues(1,-1,1),o.vec3f64.fromValues(1,1,-1),o.vec3f64.fromValues(1,1,1)],b=Math.sqrt(3),y=[null],j=o.vec3f64.create(),S=o.vec3f64.create(),O=o.vec3f64.create(),x=o.vec3f64.create(),N=new n,E={center:o.vec3f64.create(),radius:0},M={center:o.vec3f64.create(),radius:0},z={center:o.vec3f64.create(),radius:0},R={center:o.vec3f64.create(),radius:0},T=[{min:0,max:0},{min:0,max:0},{min:0,max:0}],V=new n,D=new n;return _});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/mathUtils\"],function(r,e,t){Object.defineProperty(e,\"__esModule\",{value:!0});var a=function(){function r(r){null==r?r=16:r<65536&&(r=t.nextHighestPowerOfTwo(r)),this._array=new Float32Array(r),this._size=0}return r.prototype.resize=function(r,e){if(this._size=r,this._size>this._array.length){for(var t=this._array.length||1;t<this._size;)t*=2;var a=new Float32Array(t);return e&&a.set(this._array),this._array=a,!0}var i=2*this._size;if(i<=this._array.length){for(var t=this._array.length;t>=i;)t=Math.floor(t/2);var a=new Float32Array(t);return e&&a.set(this._array.subarray(0,t)),this._array=a,!0}return!1},r.prototype.append=function(r){var e=this._size;this.resize(this._size+r.length,!0),this._array.set(r,e)},r.prototype.erase=function(r,e){for(var t=r;t<e;++t)this._array[t]=0},Object.defineProperty(r.prototype,\"array\",{get:function(){return this._array},enumerable:!0,configurable:!0}),Object.defineProperty(r.prototype,\"size\",{get:function(){return this._size},enumerable:!0,configurable:!0}),r}();e.ResizableFloat32Array=a});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/maybe\",\"../../../../core/libs/gl-matrix-2/vec3f64\",\"../../../webgl\",\"./doublePrecisionUtils\",\"./Util\",\"../shaders/sources/shaderRepository\"],function(e,n,o,t,r,i,a,s){function u(e){return(o.isNone(f)||f.context!==e)&&(f=new c(e)),f}function l(e,n){var o=new r.FramebufferObject(e,{colorTarget:0,depthStencilTarget:0},{target:3553,wrapMode:33071,pixelFormat:6408,dataType:5121,samplingMode:9728,width:1,height:1}),u=r.BufferObject.createVertex(e,35044,new Uint16Array([0,0,1,0,0,1,1,1])),l=new r.VertexArrayObject(e,{a_pos:0},{geometry:[{name:\"a_pos\",count:2,type:5123,offset:0,stride:4,normalized:!1}]},{geometry:u}),c=t.vec3f64.fromValues(5633261.287538229,2626832.878767164,1434988.0495278358),f=t.vec3f64.fromValues(5633271.46742708,2626873.6381334523,1434963.231608387);e.bindFramebuffer(o);var d=function(o,t){var a=s.util[\"doublePrecision.glsl\"],u=n?\"#define DOUBLE_PRECISION_REQUIRES_OBFUSCATION\":\"\",l=\"\\n\\n  precision highp float;\\n\\n  attribute vec2 a_pos;\\n\\n  uniform vec3 u_highA;\\n  uniform vec3 u_lowA;\\n  uniform vec3 u_highB;\\n  uniform vec3 u_lowB;\\n\\n  varying vec4 v_color;\\n\\n  \"+u+\"\\n\\n  \"+a+\"\\n\\n  const float MAX_RGBA_FLOAT =\\n    255.0 / 256.0 +\\n    255.0 / 256.0 / 256.0 +\\n    255.0 / 256.0 / 256.0 / 256.0 +\\n    255.0 / 256.0 / 256.0 / 256.0 / 256.0;\\n\\n  const vec4 FIXED_POINT_FACTORS = vec4(1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0);\\n\\n  vec4 float2rgba(const float value) {\\n    // Make sure value is in the domain we can represent\\n    float valueInValidDomain = clamp(value, 0.0, MAX_RGBA_FLOAT);\\n\\n    // Decompose value in 32bit fixed point parts represented as\\n    // uint8 rgba components. Decomposition uses the fractional part after multiplying\\n    // by a power of 256 (this removes the bits that are represented in the previous\\n    // component) and then converts the fractional part to 8bits.\\n    vec4 fixedPointU8 = floor(fract(valueInValidDomain * FIXED_POINT_FACTORS) * 256.0);\\n\\n    // Convert uint8 values (from 0 to 255) to floating point representation for\\n    // the shader\\n    const float toU8AsFloat = 1.0 / 255.0;\\n\\n    return fixedPointU8 * toU8AsFloat;\\n  }\\n\\n  void main() {\\n    vec3 val = dpAdd(u_highA, u_lowA, -u_highB, -u_lowB);\\n\\n    v_color = float2rgba(val.z / 25.0);\\n\\n    gl_Position = vec4(a_pos * 2.0 - 1.0, 0.0, 1.0);\\n  }\\n  \",c=new r.Program(e,l,\"\\n  precision highp float;\\n\\n  varying vec4 v_color;\\n\\n  void main() {\\n    gl_FragColor = v_color;\\n  }\\n  \",{a_pos:0}),f=new Float32Array(6);i.encodeDoubleArray(o,f,3);var d=new Float32Array(6);return i.encodeDoubleArray(t,d,3),e.bindProgram(c),c.setUniform3f(\"u_highA\",f[0],f[2],f[4]),c.setUniform3f(\"u_lowA\",f[1],f[3],f[5]),c.setUniform3f(\"u_highB\",d[0],d[2],d[4]),c.setUniform3f(\"u_lowB\",d[1],d[3],d[5]),c}(c,f),p=e.getViewport(),v=p.x,h=p.y,_=p.width,b=p.height;e.setViewport(0,0,1,1),e.bindVAO(l),e.drawArrays(5,0,4),e.setViewport(v,h,_,b);var m=new Uint8Array(4);o.readPixels(0,0,1,1,6408,5121,m),d.dispose(),l.dispose(!1),u.dispose(),o.dispose();var g=(c[2]-f[2])/25,A=a.unpackFloatRGBA(m);return Math.abs(g-A)}Object.defineProperty(n,\"__esModule\",{value:!0});var c=function(){function e(e){this.context=e,this._doublePrecisionRequiresObfuscation=null}return Object.defineProperty(e.prototype,\"doublePrecisionRequiresObfuscation\",{get:function(){if(o.isNone(this._doublePrecisionRequiresObfuscation)){var e=l(this.context,!1),n=l(this.context,!0);this._doublePrecisionRequiresObfuscation=0!==e&&(0===n||e/n>5)}return this._doublePrecisionRequiresObfuscation},enumerable:!0,configurable:!0}),e}(),f=null;n.testWebGLDriver=u});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\"],function(e,r){function o(e,r){c[0]=e,c[1]=e-c[0],r[0]=c[0],r[1]=c[1]}function n(e,r,o){for(var n=0;n<o;++n)r[2*n]=e[n],r[2*n+1]=e[n]-r[2*n]}function a(e,r,o){for(var n=0;n<o;++n)r[n]=e[2*n]+e[2*n+1]}function u(e,r,o,a){for(var u=0;u<a;++u)t[0]=e[u],n(t,c,1),r[u]=c[0],o[u]=c[1]}Object.defineProperty(r,\"__esModule\",{value:!0}),r.encodeDouble=o,r.encodeDoubleArray=n,r.decodeDoubleArray=a,r.encodeDoubleArraySplit=u;var t=new Float64Array(1),c=new Float32Array(2)});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"./DefaultVertexAttributeLocations\",\"./DefaultVertexBufferLayouts\",\"../../../webgl/BufferObject\",\"../../../webgl/Texture\",\"../../../webgl/VertexArrayObject\"],function(e,t,r,a,o,n,i){function u(e,t,n){void 0===t&&(t=a.Pos2),void 0===n&&(n=r.Default3D);var u=null;switch(t){case a.Pos3Tex:u=new Float32Array([-1,-1,0,0,0,1,-1,0,1,0,-1,1,0,0,1,1,1,0,1,1]);break;case a.Pos3:u=new Float32Array([-1,-1,0,1,-1,0,-1,1,0,1,1,0]);break;case a.Pos2Tex:u=new Float32Array([-1,-1,0,0,1,-1,1,0,-1,1,0,1,1,1,1,1]);break;case a.Pos2:default:u=new Float32Array([-1,-1,1,-1,-1,1,1,1])}return new i(e,n,{geometry:t},{geometry:o.createVertex(e,35044,u)})}function l(e,t){return void 0===t&&(t=s),new n(e,{target:3553,pixelFormat:6408,dataType:5121,samplingMode:9728,width:t,height:t})}function c(e,t,r){void 0===r&&(r=s);for(var a=new Uint8Array(r*r*4),o=0;o<a.length;o+=4)a[o+0]=255*t[0],a[o+1]=255*t[1],a[o+2]=255*t[2],a[o+3]=255*t[3];return new n(e,{target:3553,pixelFormat:6408,dataType:5121,samplingMode:9728,width:r,height:r},a)}Object.defineProperty(t,\"__esModule\",{value:!0}),t.createQuadVAO=u;var s=4;t.createEmptyTexture=l,t.createColorTexture=c});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/maybe\",\"../../../../core/libs/gl-matrix-2/mat3\",\"../../../../core/libs/gl-matrix-2/mat3f64\",\"../../../../core/libs/gl-matrix-2/mat4\",\"../../../../core/libs/gl-matrix-2/mat4f64\",\"../../../../core/libs/gl-matrix-2/quat\",\"../../../../core/libs/gl-matrix-2/quatf64\",\"../../../../core/libs/gl-matrix-2/vec3\",\"../../../../core/libs/gl-matrix-2/vec3f32\",\"../../../../core/libs/gl-matrix-2/vec3f64\",\"../../../../core/libs/gl-matrix-2/vec4\",\"../../../../core/libs/gl-matrix-2/vec4f64\",\"../../support/geometryUtils\",\"../../support/geometryUtils/boundedPlane\",\"../../support/geometryUtils/sphere\",\"./Object3D\"],function(t,e,r,i,n,a,s,o,h,c,f,l,p,u,m,b,d,y){function g(t){return function(e,r,i){return c.vec3.lerp(P,e,r,i),!b.extrusionContainsPoint(t,P)}}function v(t,e){return r.isNone(t)||null==t.layerUid?null:r.isSome(e.graphicsView)&&t.layerUid===e.graphicsView.mockLayerId?e.graphics:e.map.findLayerByUid(t.layerUid)}function O(t,e){if(r.isNone(t))return null;var i=v(t,e);if(r.isNone(i))return null;if(i===e.graphics)return r.isSome(e.graphicsView)?r.expect(e.graphicsView.getGraphicFromGraphicUid(t.graphicUid)):null;var n=e.allLayerViews.find(function(t){return t.layer===i});return n?x(n,t):null}function x(t,e){return!t||t.suspended?null:\"getGraphicFromIntersectorMetadata\"in t&&e?t.getGraphicFromIntersectorMetadata(e):\"getGraphicFromGraphicUid\"in t&&null!=e.graphicUid?t.getGraphicFromGraphicUid(e.graphicUid):null}function T(t,e){var r=t.metadata.layerUid;return null!=r?e.map.findLayerByUid(r):null}function S(t){return t.metadata.createGraphic()}Object.defineProperty(e,\"__esModule\",{value:!0}),e.sliceFilterPredicate=g;var M=function(){function t(){this.selectionMode=!1,this.hud=!0,this.selectOpaqueTerrainOnly=!0,this.invisibleTerrain=!1,this.backfacesTerrain=!0,this.storeTerrainResults=!0,this.store=2}return t}();e.IntersectorOptions=M;var z=function(){function t(){this._transform=s.mat4f64.create(),this._transformInverse=new I({value:this._transform},a.mat4.invert,s.mat4f64.create),this._transformInverseTranspose=new I(this._transformInverse,a.mat4.transpose,s.mat4f64.create),this._transformTranspose=new I({value:this._transform},a.mat4.transpose,s.mat4f64.create),this._transformInverseRotation=new I({value:this._transform},i.mat3.normalFromMat4Legacy,n.mat3f64.create)}return t.prototype.invalidateLazyTransforms=function(){this._transformInverse.invalidate(),this._transformInverseTranspose.invalidate(),this._transformTranspose.invalidate(),this._transformInverseRotation.invalidate()},Object.defineProperty(t.prototype,\"transform\",{get:function(){return this._transform},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"inverse\",{get:function(){return this._transformInverse.value},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"inverseTranspose\",{get:function(){return this._transformInverseTranspose.value},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"inverseRotation\",{get:function(){return this._transformInverseRotation.value},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"transpose\",{get:function(){return this._transformTranspose.value},enumerable:!0,configurable:!0}),t.prototype.setTransformMatrix=function(t){a.mat4.copy(this._transform,t)},t.prototype.multiplyTransform=function(t){a.mat4.multiply(this._transform,this._transform,t)},t.prototype.set=function(t){a.mat4.copy(this._transform,t),this.invalidateLazyTransforms()},t.prototype.setAndInvalidateLazyTransforms=function(t,e){this.setTransformMatrix(t),this.multiplyTransform(e),this.invalidateLazyTransforms()},t}();e.IntersectorTransform=z;var I=function(){function t(t,e,r){this.original=t,this.update=e,this.dirty=!0,this.transform=r()}return t.prototype.invalidate=function(){this.dirty=!0},Object.defineProperty(t.prototype,\"value\",{get:function(){return this.dirty&&(this.update(this.transform,this.original.value),this.dirty=!1),this.transform},enumerable:!0,configurable:!0}),t}(),V=function(){function t(){this.min=new _,this.max=new _,this.hud=new _,this.terrain=new _}return t.prototype.init=function(t){this.min.init(t),this.max.init(t),this.hud.init(t),this.terrain.init(t),this.all=[]},t}();e.IntersectorResults=V;var _=function(){function t(t){this.normal=l.vec3f64.create(),this.transformation=s.mat4f64.create(),this._ray=m.ray.create(),this.init(t)}return Object.defineProperty(t.prototype,\"ray\",{get:function(){return this._ray},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"hasIntersectionPoint\",{get:function(){return null!=this.dist},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"distanceInRenderSpace\",{get:function(){if(null!=this.dist)return c.vec3.scale(G,this.ray.direction,this.dist),c.vec3.length(G)},enumerable:!0,configurable:!0}),t.prototype.getIntersectionPoint=function(t){return!!this.hasIntersectionPoint&&(c.vec3.scale(G,this.ray.direction,this.dist),c.vec3.add(t,this.ray.origin,G),!0)},t.prototype.getTransformedNormal=function(t){return c.vec3.copy(R,this.normal),R[3]=0,p.vec4.transformMat4(R,R,this.transformation),c.vec3.copy(t,R),c.vec3.normalize(t,t),t},t.prototype.set=function(t,e,r,i,n,s,o,h,f,p){t instanceof y&&(t={type:\"stage\",obj:t}),this.dist=r,c.vec3.copy(this.normal,i),a.mat4.copy(this.transformation,n),this.target=t,this.name=e,this.drapedLayerOrder=s,this.center=o?l.vec3f64.clone(o):null,this.geometryId=h,this.triangleNr=f,this.drapedLayerGraphicOrder=p},t.prototype.copyFrom=function(t){m.ray.copy(t._ray,this._ray),this.dist=t.dist,this.target=t.target,this.name=t.name,this.drapedLayerOrder=t.drapedLayerOrder,this.center=t.center?l.vec3f64.clone(t.center):null,this.geometryId=t.geometryId,this.triangleNr=t.triangleNr,this.intersector=t.intersector,this.drapedLayerGraphicOrder=t.drapedLayerGraphicOrder,c.vec3.copy(this.normal,t.normal),a.mat4.copy(this.transformation,t.transformation)},t.prototype.init=function(t){this.dist=void 0,this.target=void 0,this.name=void 0,this.drapedLayerOrder=void 0,this.drapedLayerGraphicOrder=void 0,this.center=null,this.geometryId=null,this.triangleNr=null,this.intersector=\"Stage\",t?m.ray.copy(t,this._ray):this._ray=m.ray.create()},t.prototype.toOwner=function(t){if(!this.target)return null;switch(this.target.type){case\"stage\":return v(this.target.obj.getMetadata(),t);case\"external\":switch(this.intersector){case\"PointRenderer\":return T(this.target,t);case\"I3S\":case\"LodRenderer\":case\"DrapedRenderer\":return v(this.target.metadata,t);case\"TerrainRenderer\":return t.map&&t.map.ground}}return null},t.prototype.toGraphic=function(t){if(!this.target)return null;switch(this.target.type){case\"stage\":return O(this.target.obj.getMetadata(),t);case\"external\":switch(this.intersector){case\"PointRenderer\":return S(this.target);case\"I3S\":case\"LodRenderer\":case\"DrapedRenderer\":return O(this.target.metadata,t)}}return null},t}();e.IntersectorResult=_;var L=function(){function t(t){this.offset=t,this.tmpVertex=l.vec3f64.create()}return t.prototype.applyToVertex=function(t,e,r){var i=t+this.localOrigin[0],n=e+this.localOrigin[1],a=r+this.localOrigin[2],s=this.offset/Math.sqrt(i*i+n*n+a*a);return this.tmpVertex[0]=t+i*s,this.tmpVertex[1]=e+n*s,this.tmpVertex[2]=r+a*s,this.tmpVertex},t.prototype.applyToAABB=function(t){var e=t[0]+this.localOrigin[0],r=t[1]+this.localOrigin[1],i=t[2]+this.localOrigin[2],n=t[3]+this.localOrigin[0],a=t[4]+this.localOrigin[1],s=t[5]+this.localOrigin[2],o=this.offset/Math.sqrt(e*e+r*r+i*i);t[0]+=e*o,t[1]+=r*o,t[2]+=i*o;var h=this.offset/Math.sqrt(n*n+a*a+s*s);return t[3]+=n*h,t[4]+=a*h,t[5]+=s*h,t},t}();e.TerrainVerticalOffsetGlobalViewingMode=L;var q=function(){function t(t){this.offset=t,this.componentLocalOriginLength=0,this.tmpVertex=l.vec3f64.create(),this.mbs=u.vec4f64.create(),this.obb={center:l.vec3f64.create(),halfSize:f.vec3f32.create(),quaternion:null}}return Object.defineProperty(t.prototype,\"localOrigin\",{set:function(t){this.componentLocalOriginLength=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2])},enumerable:!0,configurable:!0}),t.prototype.applyToVertex=function(t,e,r){var i=t,n=e,a=r+this.componentLocalOriginLength,s=this.offset/Math.sqrt(i*i+n*n+a*a);return this.tmpVertex[0]=t+i*s,this.tmpVertex[1]=e+n*s,this.tmpVertex[2]=r+a*s,this.tmpVertex},t.prototype.applyToAABB=function(t){var e=t[0],r=t[1],i=t[2]+this.componentLocalOriginLength,n=t[3],a=t[4],s=t[5]+this.componentLocalOriginLength,o=this.offset/Math.sqrt(e*e+r*r+i*i);t[0]+=e*o,t[1]+=r*o,t[2]+=i*o;var h=this.offset/Math.sqrt(n*n+a*a+s*s);return t[3]+=n*h,t[4]+=a*h,t[5]+=s*h,t},t.prototype.applyToMbs=function(t){var e=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]),r=this.offset/e;return this.mbs[0]=t[0]+t[0]*r,this.mbs[1]=t[1]+t[1]*r,this.mbs[2]=t[2]+t[2]*r,this.mbs[3]=t[3]+t[3]*this.offset/e,this.mbs},t.prototype.applyToObb=function(t){var e=t.center,r=this.offset/Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);this.obb.center[0]=e[0]+e[0]*r,this.obb.center[1]=e[1]+e[1]*r,this.obb.center[2]=e[2]+e[2]*r,c.vec3.transformQuat(this.obb.halfSize,t.halfSize,t.quaternion),c.vec3.add(this.obb.halfSize,this.obb.halfSize,t.center);var i=this.offset/Math.sqrt(this.obb.halfSize[0]*this.obb.halfSize[0]+this.obb.halfSize[1]*this.obb.halfSize[1]+this.obb.halfSize[2]*this.obb.halfSize[2]);return this.obb.halfSize[0]+=this.obb.halfSize[0]*i,this.obb.halfSize[1]+=this.obb.halfSize[1]*i,this.obb.halfSize[2]+=this.obb.halfSize[2]*i,c.vec3.subtract(this.obb.halfSize,this.obb.halfSize,t.center),o.quat.conjugate(U,t.quaternion),c.vec3.transformQuat(this.obb.halfSize,this.obb.halfSize,U),this.obb.halfSize[0]*=this.obb.halfSize[0]<0?-1:1,this.obb.halfSize[1]*=this.obb.halfSize[1]<0?-1:1,this.obb.halfSize[2]*=this.obb.halfSize[2]<0?-1:1,this.obb.quaternion=t.quaternion,this.obb},t}();e.I3SVerticalOffsetGlobalViewingMode=q;var w=function(){function t(t){this.offset=t,this.sphere=d.create(),this.tmpVertex=l.vec3f64.create()}return t.prototype.applyToVertex=function(t,e,r){var i=this.objectTransform.transform,n=i[0]*t+i[4]*e+i[8]*r+i[12],a=i[1]*t+i[5]*e+i[9]*r+i[13],s=i[2]*t+i[6]*e+i[10]*r+i[14],o=this.offset/Math.sqrt(n*n+a*a+s*s);n+=n*o,a+=a*o,s+=s*o;var h=this.objectTransform.inverse;return this.tmpVertex[0]=h[0]*n+h[4]*a+h[8]*s+h[12],this.tmpVertex[1]=h[1]*n+h[5]*a+h[9]*s+h[13],this.tmpVertex[2]=h[2]*n+h[6]*a+h[10]*s+h[14],this.tmpVertex},t.prototype.applyToMinMax=function(t,e){var r=this.offset/Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]+=t[0]*r,t[1]+=t[1]*r,t[2]+=t[2]*r;var i=this.offset/Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]);e[0]+=e[0]*i,e[1]+=e[1]*i,e[2]+=e[2]*i},t.prototype.applyToAABB=function(t){var e=this.offset/Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]+=t[0]*e,t[1]+=t[1]*e,t[2]+=t[2]*e;var r=this.offset/Math.sqrt(t[3]*t[3]+t[4]*t[4]+t[5]*t[5]);return t[3]+=t[3]*r,t[4]+=t[4]*r,t[5]+=t[5]*r,t},t.prototype.applyToBoundingSphere=function(t,e){var r=Math.sqrt(e[0]*e[0]+e[1]*e[1]+e[2]*e[2]),i=this.offset/r;return this.sphere.center[0]=e[0]+e[0]*i,this.sphere.center[1]=e[1]+e[1]*i,this.sphere.center[2]=e[2]+e[2]*i,this.sphere.radius=t+t*this.offset/r,this.sphere},t}();e.Object3DVerticalOffsetGlobalViewingMode=w;var j=function(){function t(t){this.terrain=new L(t),this.i3s=new q(t),this.object3D=new w(t)}return t}();e.VerticalOffsetForGlobalViewingMode=j,e.TERRAIN_ID=\"terrain\";var P=l.vec3f64.create(),G=l.vec3f64.create(),R=u.vec4f64.create(),U=h.quatf64.create()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/mathUtils\",\"../../support/earthUtils\"],function(e,a,t,r){function i(e){return new g(e,a.defaultDescription)}function n(e){var t=a.defaultDescription.curvatureDependent,r=a.defaultDescription.scaleStart,i=a.defaultDescription.scaleFallOffRange;return new g(e,{curvatureDependent:{min:{curvature:t.min.curvature,tiltAngle:t.min.tiltAngle,scaleFallOffFactor:P.curvatureDependent.min.scaleFallOffFactor},max:{curvature:t.max.curvature,tiltAngle:t.max.tiltAngle,scaleFallOffFactor:P.curvatureDependent.max.scaleFallOffFactor}},scaleStart:r,scaleFallOffRange:i,minPixelSize:P.minPixelSize})}function l(e){return Math.abs(e*e*e)}function c(e,a,t,r){void 0===r&&(r=x);var i=t.parameters,n=t.paddingPixelsOverride;return r.scale=Math.min(i.divisor/(a-i.offset),1),r.factor=l(e),r.minPixelSize=i.minPixelSize,r.paddingPixels=n,r}function s(e,a){return 0===e?a.minPixelSize:a.minPixelSize*(1+2*a.paddingPixels/e)}function o(e,a){return Math.max(t.lerp(e*a.scale,e,a.factor),s(e,a))}function u(e,a,r){void 0===r&&(r=[0,0]);var i=Math.min(Math.max(a.scale,s(e[1],a)/e[1]),1);return r[0]=t.lerp(e[0]*i,e[0],a.factor),r[1]=t.lerp(e[1]*i,e[1],a.factor),r}function d(e,a,t){var r=c(e,a,t);return r.minPixelSize=0,r.paddingPixels=0,o(1,r)}function f(e,a,t,r){return r.scale=d(e,a,t),r.factor=0,r.minPixelSize=t.parameters.minPixelSize,r.paddingPixels=t.paddingPixelsOverride,r}function p(e,a,t){void 0===t&&(t=[0,0]);var r=Math.min(Math.max(a.scale,s(e[1],a)/e[1]),1);return t[0]=e[0]*r,t[1]=e[1]*r,t}function m(e,a,t,r){return o(e,c(a,t,r))}function v(){return{camera:{distance:0,fovY:0},divisor:0,offset:0,minPixelSize:0,paddingPixels:0}}function h(e,a){return a.camera.distance=e.camera.distance,a.camera.fovY=e.camera.fovY,a.divisor=e.divisor,a.offset=e.offset,a.minPixelSize=e.minPixelSize,a}Object.defineProperty(a,\"__esModule\",{value:!0}),a.getSettings=i,a.getLabelSettings=n,a.perspectiveFactor=l,a.scaleFactor=c,a.applyScaleFactor=o,a.applyScaleFactorVec2=u,a.precomputeScale=d,a.precomputeScaleFactor=f,a.applyPrecomputedScaleFactorVec2=p,a.scale=m;var g=function(){function e(e,a,t,r){void 0===t&&(t=v()),this.viewingMode=e,this.description=a,this.parameters=t,this._paddingPixelsOverride=r,\"local\"===this.viewingMode?(this.coverageCompensation=this.surfaceCoverageCompensationLocal,this.calculateCurvatureDependentParameters=this.calculateCurvatureDependentParametersLocal):(this.coverageCompensation=this.surfaceCoverageCompensationGlobal,this.calculateCurvatureDependentParameters=this.calculateCurvatureDependentParametersGlobal)}return Object.defineProperty(e.prototype,\"paddingPixelsOverride\",{get:function(){return this._paddingPixelsOverride||this.parameters.paddingPixels},enumerable:!0,configurable:!0}),e.prototype.update=function(e){return(!this.parameters||this.parameters.camera.fovY!==e.fovY||this.parameters.camera.distance!==e.distance)&&(this.calculateParameters(e,this.parameters),!0)},e.prototype.overridePadding=function(a){return a!==this.paddingPixelsOverride?new e(this.viewingMode,this.description,this.parameters,a):this},e.prototype.calculateParameters=function(e,a){var t=this.description,r=t.scaleStart,i=t.scaleFallOffRange,n=t.minPixelSize,l=e.fovY,c=e.distance,s=this.calculateCurvatureDependentParameters(e),o=this.coverageCompensation(e,s),u=s.tiltAngle,d=s.scaleFallOffFactor,f=Math.sin(u)*c,p=.5*Math.PI-u-l*(.5-r*o),m=f/Math.cos(p),v=p+l*i*o,h=f/Math.cos(v),g=(m-d*h)/(1-d);return a.camera.fovY=e.fovY,a.camera.distance=e.distance,a.offset=g,a.divisor=m-g,a.minPixelSize=n,a},e.prototype.calculateCurvatureDependentParametersLocal=function(e,a){return void 0===a&&(a=F),a.tiltAngle=this.description.curvatureDependent.min.tiltAngle,a.scaleFallOffFactor=this.description.curvatureDependent.min.scaleFallOffFactor,a},e.prototype.calculateCurvatureDependentParametersGlobal=function(e,a){void 0===a&&(a=F);var i=this.description.curvatureDependent,n=1+e.distance/r.earthRadius,l=Math.sqrt(n*n-1),c=[i.min.curvature,i.max.curvature],s=c[0],o=c[1],u=t.clamp((l-s)/(o-s),0,1),d=[i.min,i.max],f=d[0],p=d[1];return a.tiltAngle=t.lerp(f.tiltAngle,p.tiltAngle,u),a.scaleFallOffFactor=t.lerp(f.scaleFallOffFactor,p.scaleFallOffFactor,u),a},e.prototype.surfaceCoverageCompensationLocal=function(e,a){return(e.fovY-a.tiltAngle)/e.fovY},e.prototype.surfaceCoverageCompensationGlobal=function(e,a){var t=r.earthRadius*r.earthRadius,i=a.tiltAngle+.5*Math.PI,n=e.fovY,l=e.distance,c=l*l,s=c+t-2*Math.cos(i)*l*r.earthRadius,o=Math.sqrt(s),u=Math.sqrt(s-t);return(Math.acos(u/o)-Math.asin(r.earthRadius/(o/Math.sin(i)))+.5*n)/n},e}();a.defaultDescription={curvatureDependent:{min:{curvature:t.deg2rad(10),tiltAngle:t.deg2rad(12),scaleFallOffFactor:.5},max:{curvature:t.deg2rad(70),tiltAngle:t.deg2rad(40),scaleFallOffFactor:.8}},scaleStart:.3,scaleFallOffRange:.65,minPixelSize:0};var P={curvatureDependent:{min:{scaleFallOffFactor:.7},max:{scaleFallOffFactor:.95}},minPixelSize:14};a.copyParameters=h;var x={scale:0,factor:0,minPixelSize:0,paddingPixels:0},F={tiltAngle:0,scaleFallOffFactor:0}});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/extendsHelper\",\"../../../../core/tsSupport/assignHelper\",\"../../../../core/maybe\",\"../../../../core/libs/gl-matrix-2/mat3f64\",\"../../../../core/libs/gl-matrix-2/vec3\",\"../../../../core/libs/gl-matrix-2/vec3f64\",\"../../support/buffer/InterleavedLayout\",\"../core/shaderLibrary/DiscardOrAdjustAlpha.glsl\",\"../lib/GLMaterialTexture\",\"../lib/Material\",\"../lib/Util\",\"./internal/bufferWriterUtils\",\"./internal/MaterialUtil\",\"./renderers/InstancedRenderer\",\"./renderers/MergedRenderer\",\"../shaders/DefaultMaterialTechnique\",\"../../../webgl/renderState\",\"../../../webgl/renderState\"],function(e,t,i,r,a,n,s,o,c,l,u,p,h,f,m,d,v,g,b,P){function y(e,t){return e?t?6:9:4}function x(e){return e.cullFace?0!==e.cullFace:!e.slicePlaneEnabled&&(!e.transparent&&!e.doubleSided)}var q=h.assert,S=function(e){function t(i,r){var a=e.call(this,r)||this;return a.supportsEdges=!0,a.techniqueConfig=new g.DefaultMaterialTechniqueConfiguration,a.params=m.copyParameters(i,I),a.vertexBufferLayout=t.getVertexBufferLayout(a.params),a.instanceBufferLayout=i.instanced?t.getInstanceBufferLayout(a.params):null,a}return i(t,e),t.prototype.isVisibleInPass=function(e){return 3!==e||this.params.castShadows},t.prototype.isVisible=function(){var t=this.params;if(!e.prototype.isVisible.call(this)||0===t.layerOpacity)return!1;var i=t.instanced,r=t.vertexColors,a=t.symbolColors,n=!!i&&i.indexOf(\"color\")>-1,s=t.vvColorEnabled,o=\"replace\"===t.colorMixMode,c=t.opacity>0,l=t.externalColor&&t.externalColor[3]>0;return r&&(n||s||a)?!!o||c:r?o?l:c:n||s||a?!!o||c:o?l:c},t.prototype.setParameterValues=function(e){var t=this.params;for(var i in e)\"instanced\"===i&&q(e.instanced===t.instanced,\"Can not change instanced attributes\"),\"textureId\"===i&&q(t.textureId,\"Can only change texture of material that already has a texture\"),\"vertexColors\"===i&&!0===e[i]&&e[i]!==t[i]&&q(t.vertexColors,\"Can not enable vertex colors after DefaultMaterial creation\"),t[i]=e[i];this.notifyDirty(\"matChanged\")},t.prototype.getParameters=function(){return this.params},t.prototype.getTechniqueConfig=function(e){return this.techniqueConfig.output=e,this.techniqueConfig.hasNormalTexture=!!this.params.normalTextureId,this.techniqueConfig.hasColorTexture=!!this.params.textureId,this.techniqueConfig.vertexTangents=this.params.vertexTangents,this.techniqueConfig.instanced=!!this.params.instanced,this.techniqueConfig.instancedDoublePrecision=this.params.instancedDoublePrecision,this.techniqueConfig.vvSize=this.params.vvSizeEnabled,this.techniqueConfig.verticalOffset=null!==this.params.verticalOffset,this.techniqueConfig.screenSizePerspective=null!==this.params.screenSizePerspective,this.techniqueConfig.slice=this.params.slicePlaneEnabled,this.techniqueConfig.sliceHighlightDisabled=this.params.sliceHighlightDisabled,this.techniqueConfig.alphaDiscardMode=\"opaque\"===this.params.textureAlphaMode?1:\"mask\"===this.params.textureAlphaMode?2:\"maskBlend\"===this.params.textureAlphaMode?3:0,this.techniqueConfig.normalsTypeDerivate=\"screenDerivative\"===this.params.normals,0===e&&(this.techniqueConfig.treeRendering=!!this.params.treeRendering,this.techniqueConfig.vertexColors=this.params.vertexColors,this.techniqueConfig.symbolColors=this.params.symbolColors,this.techniqueConfig.doubleSidedMode=this.params.doubleSided&&\"normal\"===this.params.doubleSidedType?1:this.params.doubleSided&&\"winding-order\"===this.params.doubleSidedType?2:0,this.techniqueConfig.instancedColor=!!this.params.instanced&&this.params.instanced.indexOf(\"color\")>-1,this.techniqueConfig.receiveShadows=this.params.receiveShadows,this.techniqueConfig.receiveAmbientOcclusion=this.params.receiveSSAO,this.techniqueConfig.vvColor=this.params.vvColorEnabled,this.techniqueConfig.textureAlphaPremultiplied=!!this.params.textureAlphaPremultiplied,this.techniqueConfig.usePBR=this.params.usePBR,this.techniqueConfig.hasMetalnessAndRoughnessTexture=!!this.params.metallicRoughnessTextureId,this.techniqueConfig.hasEmissionTexture=!!this.params.emissiveTextureId,this.techniqueConfig.hasOcclusionTexture=!!this.params.occlusionTextureId,this.techniqueConfig.offsetBackfaces=!(!this.params.transparent||!this.params.offsetTransparentBackfaces)),this.techniqueConfig},t.prototype.intersect=function(e,t,i,r,n,o,c){if(null!==this.params.verticalOffset){var l=r.camera;s.vec3.set(W,i[12],i[13],i[14]);var u=null;switch(r.viewingMode){case\"global\":u=s.vec3.normalize(B,W);break;case\"local\":u=s.vec3.copy(B,E)}var p=0;if(null!==this.params.verticalOffset){var h=s.vec3.subtract(k,W,l.eye),f=s.vec3.length(h),d=s.vec3.scale(h,h,1/f),v=null;this.params.screenSizePerspective&&(v=s.vec3.dot(u,d)),p+=m.verticalOffsetAtDistance(l,f,this.params.verticalOffset,v,this.params.screenSizePerspective)}s.vec3.scale(u,u,p),s.vec3.transformMat3(L,u,r.transform.inverseRotation),n=s.vec3.subtract(R,n,L),o=s.vec3.subtract(z,o,L)}m.intersectTriangleGeometry(e,t,r,n,o,a.isSome(r.options.verticalOffset)?r.options.verticalOffset.object3D:void 0,c)},t.prototype.getGLMaterials=function(){return{color:C,depthShadowMap:w,normal:D,depth:T,highlight:M}},t.prototype.createRenderer=function(e,t){return this.params.softwareInstanced?new d(e,t,this):new v(e,t,this)},t.prototype.createBufferWriter=function(){return new O(this.vertexBufferLayout,this.instanceBufferLayout)},t.getVertexBufferLayout=function(e){var t=e.textureId||e.normalTextureId||e.metallicRoughnessTextureId||e.emissiveTextureId||e.occlusionTextureId,i=c.newLayout().vec3f(\"position\").vec3f(\"normal\");return e.vertexTangents&&i.vec4f(\"tangent\"),t&&i.vec2f(\"uv0\"),e.vertexColors&&i.vec4u8(\"color\"),e.symbolColors&&i.vec4u8(\"symbolColor\"),i},t.getInstanceBufferLayout=function(e){var t=c.newLayout();return t=e.instancedDoublePrecision?t.vec3f(\"modelOriginHi\").vec3f(\"modelOriginLo\").mat3f(\"model\").mat3f(\"modelNormal\"):t.mat4f(\"model\").mat4f(\"modelNormal\"),e.instanced&&e.instanced.indexOf(\"color\")>-1&&(t=t.vec4f(\"instanceColor\")),e.instanced&&e.instanced.indexOf(\"featureAttribute\")>-1&&(t=t.vec4f(\"instanceFeatureAttribute\")),t},t}(p.Material),C=function(e){function t(t){var i=this,r=t.material,a=r.getParameters();i=e.call(this,u.makeCtorParameters(t,a))||this,i.params=m.copyParameters(a);var n=i.params;return i.slot=y(n.transparent,n.writeDepth),i.technique=i.techniqueRep.acquireAndReleaseExisting(g.DefaultMaterialTechnique,i.material.getTechniqueConfig(0),i.technique),i.selectPipeline(0),i}return i(t,e),t.prototype.selectPipeline=function(e){var t=this.params,i=0===e?A(t):null;this.pipelineState=P.makePipelineState({blending:i,culling:V(t),depthTest:{func:513},depthWrite:t.writeDepth&&P.defaultDepthWriteParams,colorWrite:P.defaultColorWriteParams})},t.prototype.beginSlot=function(e){return e===this.slot},t.prototype.getProgram=function(){return this.technique.program},t.prototype.getPrograms=function(){return null},t.prototype.updateParameters=function(){this.params=m.copyParameters(this.material.getParameters()),this.slot=y(this.params.transparent,this.params.writeDepth),this.updateTexture(this.params.textureId),this.technique=this.techniqueRep.acquireAndReleaseExisting(g.DefaultMaterialTechnique,this.material.getTechniqueConfig(0),this.technique),this.selectPipeline(0)},t.prototype._updateShadowState=function(e){e.shadowMappingEnabled!==this.params.receiveShadows&&(this.material.setParameterValues({receiveShadows:e.shadowMappingEnabled}),this.updateParameters())},t.prototype.bind=function(e,t){var i=this.params;this._updateShadowState(t);var r=this.technique.program;e.bindProgram(r),e.setPipelineState(this.pipelineState),this.technique.bindPass(e,i,t),m.bindVerticalOffset(i.verticalOffset,t,r),m.bindScreenSizePerspective(i.screenSizePerspective,r),this.bindTexture(e,r)},t.prototype.release=function(){},t.prototype.bindView=function(e){var t=this.technique.program,i=this.params,r=i.instancedDoublePrecision?o.vec3f64.fromValues(e.viewInvTransp[3],e.viewInvTransp[7],e.viewInvTransp[11]):e.origin;m.bindView(r,e.view,t),m.bindCamPos(r,e.viewInvTransp,t),i.instancedDoublePrecision&&m.bindViewOriginDouble(r,t),i.slicePlaneEnabled&&m.bindSlicePlane(r,e.slicePlane,t),e.shadowMappingEnabled&&e.shadowMap.bindView(t,r)},t.prototype.bindInstance=function(e){var t=this.technique.program;t.setUniformMatrix4fv(\"model\",e.transformation),t.setUniformMatrix4fv(\"modelNormal\",e.transformationNormal)},t.prototype.getDrawMode=function(){return 4},t}(u),T=function(e){function t(t){var i=this,r=t.material;return i=e.call(this,u.makeCtorParameters(t,r.getParameters()))||this,i.updateParameters(),i}return i(t,e),t.prototype.beginSlot=function(e){return e===this.slot},t.prototype.getProgram=function(){return this.technique.program},t.prototype.getPrograms=function(){return null},t.prototype.selectPipeline=function(){var e=this.params;this.pipelineState=P.makePipelineState({culling:V(e),depthTest:{func:513},depthWrite:e.writeDepth&&P.defaultDepthWriteParams,colorWrite:P.defaultColorWriteParams})},t.prototype.selectSlot=function(){this.slot=y(this.params.transparent,this.params.writeDepth)},t.prototype.updateParameters=function(){this.params=m.copyParameters(this.material.getParameters()),this.technique=this.techniqueRep.acquireAndReleaseExisting(g.DefaultMaterialTechnique,this.material.getTechniqueConfig(1),this.technique),this.selectPipeline(),this.selectSlot(),this.updateTexture(this.params.textureId)},t.prototype.bind=function(e,t){var i=this.technique.program,r=this.params;e.bindProgram(i),e.setPipelineState(this.pipelineState),this.technique.bindPass(e,r,t),m.bindVerticalOffset(r.verticalOffset,t,i),m.bindScreenSizePerspective(r.screenSizePerspective,i),this.bindTexture(e,i)},t.prototype.release=function(){},t.prototype.bindView=function(e){var t=this.technique.program,i=this.params,r=i.instancedDoublePrecision?o.vec3f64.fromValues(e.viewInvTransp[3],e.viewInvTransp[7],e.viewInvTransp[11]):e.origin;m.bindView(r,e.view,t),i.slicePlaneEnabled&&m.bindSlicePlane(r,e.slicePlane,t),i.screenSizePerspective&&m.bindCamPos(r,e.viewInvTransp,t),i.instancedDoublePrecision&&m.bindViewOriginDouble(r,t)},t.prototype.bindInstance=function(e){this.technique.program.setUniformMatrix4fv(\"model\",e.transformation)},t.prototype.getDrawMode=function(){return 4},t}(u),w=function(e){function t(t){return e.call(this,t)||this}return i(t,e),t.prototype.updateParameters=function(){this.params=m.copyParameters(this.material.getParameters()),this.technique=this.techniqueRep.acquireAndReleaseExisting(g.DefaultMaterialTechnique,this.material.getTechniqueConfig(3),this.technique),this.selectPipeline(),this.selectSlot(),this.updateTexture(this.params.textureId)},t}(T),D=function(e){function t(t){var i=this,r=t.material,a=r.getParameters();return i=e.call(this,u.makeCtorParameters(t,a))||this,i.params=m.copyParameters(a),i.technique=i.techniqueRep.acquireAndReleaseExisting(g.DefaultMaterialTechnique,i.material.getTechniqueConfig(2),i.technique),i.selectPipeline(),i.selectSlot(),i}return i(t,e),t.prototype.beginSlot=function(e){return e===this.slot},t.prototype.getProgram=function(){return this.technique.program},t.prototype.getPrograms=function(){return null},t.prototype.selectPipeline=function(){var e=this.params;this.pipelineState=P.makePipelineState({culling:V(e),depthTest:{func:513},depthWrite:e.writeDepth&&P.defaultDepthWriteParams,colorWrite:P.defaultColorWriteParams})},t.prototype.selectSlot=function(){this.slot=y(this.params.transparent,this.params.writeDepth)},t.prototype.updateParameters=function(){this.params=m.copyParameters(this.material.getParameters()),this.technique=this.techniqueRep.acquireAndReleaseExisting(g.DefaultMaterialTechnique,this.material.getTechniqueConfig(2),this.technique),this.selectPipeline(),this.selectSlot(),this.updateTexture(this.params.textureId)},t.prototype.bind=function(e,t){var i=this.technique.program,r=this.params;e.bindProgram(i),e.setPipelineState(this.pipelineState),this.technique.bindPass(e,r,t),m.bindVerticalOffset(r.verticalOffset,t,i),m.bindScreenSizePerspective(r.screenSizePerspective,i),this.bindTexture(e,i)},t.prototype.release=function(){},t.prototype.bindView=function(e){var t=this.technique.program,i=this.params,r=i.instancedDoublePrecision?o.vec3f64.fromValues(e.viewInvTransp[3],e.viewInvTransp[7],e.viewInvTransp[11]):e.origin;m.bindView(r,e.view,t),t.setUniformMatrix4fv(\"viewNormal\",e.viewInvTransp),i.slicePlaneEnabled&&m.bindSlicePlane(r,e.slicePlane,t),i.screenSizePerspective&&m.bindCamPos(r,e.viewInvTransp,t),i.instancedDoublePrecision&&m.bindViewOriginDouble(r,t)},t.prototype.bindInstance=function(e){var t=this.technique.program;t.setUniformMatrix4fv(\"model\",e.transformation),t.setUniformMatrix4fv(\"modelNormal\",e.transformationNormal)},t.prototype.getDrawMode=function(){return 4},t}(u),M=function(e){function t(t){var i=this,r=t.material;return i=e.call(this,u.makeCtorParameters(t,r.getParameters()))||this,i.updateParameters(),i}return i(t,e),t.prototype.beginSlot=function(e){return e===this.slot},t.prototype.getProgram=function(){return this.technique.program},t.prototype.getPrograms=function(){return null},t.prototype.selectPipeline=function(){var e=this.params;this.pipelineState=P.makePipelineState({culling:V(e),depthTest:{func:513},depthWrite:e.writeDepth&&P.defaultDepthWriteParams,colorWrite:P.defaultColorWriteParams})},t.prototype.selectSlot=function(){this.slot=y(this.params.transparent,this.params.writeDepth)},t.prototype.updateParameters=function(){this.params=m.copyParameters(this.material.getParameters()),this.technique=this.techniqueRep.acquireAndReleaseExisting(g.DefaultMaterialTechnique,this.material.getTechniqueConfig(4),this.technique),this.selectPipeline(),this.selectSlot(),this.updateTexture(this.params.textureId)},t.prototype.bind=function(e,t){var i=this.technique.program,r=this.params;e.bindProgram(i),e.setPipelineState(this.pipelineState),this.technique.bindPass(e,r,t),m.bindVerticalOffset(r.verticalOffset,t,i),m.bindScreenSizePerspective(r.screenSizePerspective,i),this.bindTexture(e,i)},t.prototype.release=function(){},t.prototype.bindView=function(e){var t=this.technique.program,i=this.params,r=i.instancedDoublePrecision?o.vec3f64.fromValues(e.viewInvTransp[3],e.viewInvTransp[7],e.viewInvTransp[11]):e.origin;m.bindView(r,e.view,t),i.slicePlaneEnabled&&m.bindSlicePlane(r,e.slicePlane,t),i.screenSizePerspective&&m.bindCamPos(r,e.viewInvTransp,t),i.instancedDoublePrecision&&m.bindViewOriginDouble(r,t)},t.prototype.bindInstance=function(e){var t=this.technique.program;t.setUniformMatrix4fv(\"model\",e.transformation),t.setUniformMatrix4fv(\"modelNormal\",e.transformationNormal)},t.prototype.getDrawMode=function(){return 4},t}(u);!function(e){e.COLOR_GAMMA=2.1}(S||(S={}));var I={textureId:void 0,initTextureTransparent:!1,usePBR:!1,normalTextureId:void 0,vertexTangents:!1,occlusionTextureId:void 0,emissiveTextureId:void 0,metallicRoughnessTextureId:void 0,emissiveFactor:[0,0,0],metallicFactor:0,roughnessFactor:1,reflectanceFactor:.5,ambient:[.2,.2,.2],diffuse:[.8,.8,.8],specular:[0,0,0],externalColor:[1,1,1,1],colorMixMode:\"multiply\",opacity:1,layerOpacity:1,vertexColors:!1,symbolColors:!1,doubleSided:!1,doubleSidedType:\"normal\",cullFace:void 0,softwareInstanced:!1,instanced:void 0,instancedDoublePrecision:!1,normals:\"default\",receiveSSAO:!0,receiveShadows:!1,castShadows:!0,verticalOffset:null,screenSizePerspective:null,slicePlaneEnabled:!1,sliceHighlightDisabled:!1,offsetTransparentBackfaces:!1,vvSizeEnabled:!1,vvSizeMinSize:[1,1,1],vvSizeMaxSize:[100,100,100],vvSizeOffset:[0,0,0],vvSizeFactor:[1,1,1],vvSizeValue:[1,1,1],vvColorEnabled:!1,vvColorValues:[0,0,0,0,0,0,0,0],vvColorColors:[1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0],vvSymbolAnchor:[0,0,0],vvSymbolRotationMatrix:n.mat3f64.create(),transparent:!1,writeDepth:!0,textureAlphaMode:\"blend\",textureAlphaCutoff:l.TEXTURE_ALPHA_CUTOFF_DEFAULT,textureAlphaPremultiplied:!1},O=function(){function e(e,t){this.vertexBufferLayout=e,this.instanceBufferLayout=t}return e.prototype.allocate=function(e){return this.vertexBufferLayout.createBuffer(e)},e.prototype.elementCount=function(e){return e.indices.position.length},e.prototype.write=function(e,t,i,r){f.writeDefaultAttributes(t,this.vertexBufferLayout,e.transformation,e.invTranspTransformation,i,r)},e}(),A=function(e){return e.transparent&&b.separateBlendingParams(770,1,771,771)},V=function(e){return x(e)&&{face:1===e.cullFace?1028:1029,mode:2305}},R=o.vec3f64.create(),z=o.vec3f64.create(),E=o.vec3f64.fromValues(0,0,1),B=o.vec3f64.create(),L=o.vec3f64.create(),W=o.vec3f64.create(),k=o.vec3f64.create();return S});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/extendsHelper\",\"../../../../core/tsSupport/assignHelper\",\"../../../../core/Logger\",\"../../../../core/mathUtils\",\"../../../../core/maybe\",\"../../../../core/screenUtils\",\"../../../../core/libs/gl-matrix-2/vec2\",\"../../../../core/libs/gl-matrix-2/vec3\",\"../../../../core/libs/gl-matrix-2/vec3f64\",\"../../support/geometryUtils\",\"../../support/buffer/InterleavedLayout\",\"../lib/ComponentUtils\",\"../lib/geometryDataUtils\",\"../lib/GLMaterial\",\"../lib/Material\",\"../lib/Util\",\"./VisualVariableMaterialParameters\",\"./internal/MaterialUtil\",\"./renderers/MergedRenderer\",\"../shaders/RibbonLineTechnique\",\"../shaders/RibbonLineTechnique\"],function(t,e,i,n,r,a,s,o,c,p,u,l,h,v,b,f,d,m,g,C,A,S,y){function R(t,e,i,n,r){for(var a=0;a<r;a++)i[n++]=t[e++];return n}var x=r.getLogger(\"esri.views.3d.webgl-engine.materials.RibbonLineMaterial\"),P=function(t){function e(e,i){var n=t.call(this,i)||this;return n.techniqueConfig=new y.RibbonLineTechniqueConfiguration,n.params=C.copyParameters(e,V),n.validateParams(),n.params.transparent=n.params.color[3]<1||n.params.transparent,n.layout=n.createLayout(),n}return i(e,t),e.prototype.dispose=function(){},e.prototype.setParameterValues=function(t){for(var e in t)if(\"cap\"!==e){if(\"join\"===e){var i=\"round\"===this.params[e],n=\"round\"===t[e];if(i!==n){x.error(\"join cannot be changed after creation\");continue}}if(\"stipplePattern\"===e){var r=!!this.params[e],a=!!t[e];if(r!==a){x.error(\"stippledness cannot be changed after creation\");continue}}this.params[e]=t[e]}else x.error(\"cap cannot be changed after creation\");this.validateParams(),this.notifyDirty(\"matChanged\")},e.prototype.getParameters=function(){return this.params},e.prototype.getPassParameters=function(){return this.params},e.prototype.getTechniqueConfig=function(t){this.techniqueConfig.output=t;var e=s.isSome(this.params.stipplePattern);return this.techniqueConfig.stippleEnabled=e,this.techniqueConfig.stippleIntegerRepeatsEnabled=e&&this.params.stippleIntegerRepeats,this.techniqueConfig.stippleOffColorEnabled=e&&s.isSome(this.params.stippleOffColor),this.techniqueConfig.slicePlaneEnabled=this.params.slicePlaneEnabled,this.techniqueConfig.roundJoins=\"round\"===this.params.join,this.techniqueConfig.roundCaps=\"round\"===this.params.cap,this.techniqueConfig.transparent=this.params.transparent,this.techniqueConfig.polygonOffset=this.params.polygonOffset,this.techniqueConfig.writeDepth=this.params.writeDepth,this.techniqueConfig.vvColor=this.params.vvColorEnabled,this.techniqueConfig.vvOpacity=this.params.vvOpacityEnabled,this.techniqueConfig.vvSize=this.params.vvSizeEnabled,this.techniqueConfig.writeDepth=this.params.writeDepth,this.techniqueConfig.writeDepth=this.params.writeDepth,this.techniqueConfig},e.prototype.intersect=function(t,e,i,n,r,a,s,o,c){c?C.intersectDrapedRenderLineGeometry(t,n,a,this.params.width,s):this.intersectLineGeometry(t,e,i,n,this.params.width,s)},e.prototype.intersectLineGeometry=function(t,e,i,n,r,s){if(n.options.selectionMode&&!v.isAllHidden(e.componentVisibilities,t.componentOffsets)){if(!m.isTranslationMatrix(i))return void x.error(\"intersection assumes a translation-only matrix\");var o=t.data,u=o.getVertexAttr(),h=u[y.RibbonVertexAttributeConstants.POSITION].data,b=r;if(this.params.vvSizeEnabled){var f=u[y.RibbonVertexAttributeConstants.SIZEFEATUREATTRIBUTE].data[0];b*=a.clamp(this.params.vvSizeOffset[0]+f*this.params.vvSizeFactor[0],this.params.vvSizeMinSize[0],this.params.vvSizeMaxSize[0])}else u[y.RibbonVertexAttributeConstants.SIZE]&&(b*=u[y.RibbonVertexAttributeConstants.SIZE].data[0]);var d=n.camera,g=B;c.vec2.copy(g,n.point);var C=b*d.pixelRatio,A=4*d.pixelRatio,S=C/2+A;p.vec3.set(H[0],g[0]-S,g[1]+S,0),p.vec3.set(H[1],g[0]+S,g[1]+S,0),p.vec3.set(H[2],g[0]+S,g[1]-S,0),p.vec3.set(H[3],g[0]-S,g[1]-S,0);for(var R=0;R<4;R++)d.unprojectPoint(H[R],Y[R]);l.plane.fromPoints(d.eye,Y[0],Y[1],_),l.plane.fromPoints(d.eye,Y[1],Y[2],W),l.plane.fromPoints(d.eye,Y[2],Y[3],K),l.plane.fromPoints(d.eye,Y[3],Y[0],Q);for(var P=Number.MAX_VALUE,E=this.params.isClosed?h.length-2:h.length-5,R=0;R<E;R+=3){U[0]=h[R]+i[12],U[1]=h[R+1]+i[13],U[2]=h[R+2]+i[14];var I=(R+3)%h.length;if(w[0]=h[I]+i[12],w[1]=h[I+1]+i[13],w[2]=h[I+2]+i[14],!(l.plane.signedDistance(_,U)<0&&l.plane.signedDistance(_,w)<0||l.plane.signedDistance(W,U)<0&&l.plane.signedDistance(W,w)<0||l.plane.signedDistance(K,U)<0&&l.plane.signedDistance(K,w)<0||l.plane.signedDistance(Q,U)<0&&l.plane.signedDistance(Q,w)<0)){if(d.projectPoint(U,N),d.projectPoint(w,z),N[2]<0&&z[2]>0){p.vec3.subtract(D,U,w);var O=d.frustum,V=-l.plane.signedDistance(O.planes[4],U),T=V/p.vec3.dot(D,O.planes[4]);p.vec3.scale(D,D,T),p.vec3.add(U,U,D),d.projectPoint(U,N)}else if(N[2]>0&&z[2]<0){p.vec3.subtract(D,w,U);var O=d.frustum,V=-l.plane.signedDistance(O.planes[4],w),T=V/p.vec3.dot(D,O.planes[4]);p.vec3.scale(D,D,T),p.vec3.add(w,w,D),d.projectPoint(w,z)}else if(N[2]<0&&z[2]<0)continue;N[2]=0,z[2]=0;var q=l.lineSegment.distance2(l.lineSegment.fromPoints(N,z,Z),g);q<P&&(P=q,p.vec3.copy(j,U),p.vec3.copy(F,w))}}var L=n.rayBeginPoint,J=n.rayEndPoint;if(P<S*S){var X=Number.MAX_VALUE;if(l.lineSegment.closestLineSegmentPoint(l.lineSegment.fromPoints(j,F,Z),l.lineSegment.fromPoints(L,J,G),M)){p.vec3.subtract(M,M,L);var k=p.vec3.length(M);p.vec3.scale(M,M,1/k),X=k/p.vec3.distance(L,J)}s(X,M)}}},e.prototype.computeAttachmentOrigin=function(t,e){var i=t.data,n=\"getVertexAttr\"in i?i.getVertexAttr():\"vertexAttr\"in i?i.vertexAttr:null;if(!n)return null;var r=y.RibbonVertexAttributeConstants.POSITION,a=n[r];return b.computeAttachmentOriginLines(a,null,e)},e.prototype.createLayout=function(){var t=h.newLayout().vec3f(y.RibbonVertexAttributeConstants.POSITION).f32(y.RibbonVertexAttributeConstants.SUBDIVISIONFACTOR).vec2f(y.RibbonVertexAttributeConstants.UV0).vec3f(y.RibbonVertexAttributeConstants.AUXPOS1).vec3f(y.RibbonVertexAttributeConstants.AUXPOS2);return this.params.vvSizeEnabled?t.f32(y.RibbonVertexAttributeConstants.SIZEFEATUREATTRIBUTE):t.f32(y.RibbonVertexAttributeConstants.SIZE),this.params.vvColorEnabled?t.f32(y.RibbonVertexAttributeConstants.COLORFEATUREATTRIBUTE):t.vec4f(y.RibbonVertexAttributeConstants.COLOR),this.params.vvOpacityEnabled&&t.f32(y.RibbonVertexAttributeConstants.OPACITYFEATUREATTRIBUTE),t},e.prototype.createBufferWriter=function(){return new T(this.layout,this.params)},e.prototype.createRenderer=function(t,e){return new A(t,e,this,y.ribbonVertexAttributeLocations)},e.prototype.getGLMaterials=function(){return{color:I,depthShadowMap:void 0,normal:void 0,depth:void 0,highlight:O}},e.prototype.validateParams=function(){this.params.width&&this.params.width>1&&(this.params.width=Math.round(this.params.width)),\"miter\"!==this.params.join&&(this.params.miterLimit=0)},e}(d.Material),E=function(t){function e(e){var i=t.call(this,e)||this;return i.output=e.output,i.updateParameters(),i}return i(e,t),e.prototype.updateParameters=function(){this.technique=this.techniqueRep.acquireAndReleaseExisting(S.RibbonLineTechnique,this.material.getTechniqueConfig(this.output),this.technique)},e.prototype.beginSlot=function(t){if(0===this.output){return t===(this.technique.configuration.writeDepth?6:9)}return 4===t},e.prototype.getProgram=function(){return this.technique.program},e.prototype.getPrograms=function(){return null},e.prototype.bind=function(t,e){t.bindProgram(this.technique.program),this.technique.bindPipelineState(t),this.technique.bindPass(t,this.material.getPassParameters(),e)},e.prototype.release=function(){},e.prototype.bindView=function(t){this.technique.bindDraw(t)},e.prototype.bindInstance=function(t){this.technique.bindInstance(t)},e.prototype.getDrawMode=function(){return 5},e}(f.GLMaterial),I=function(t){function e(e){return t.call(this,n({},e,{output:0}))||this}return i(e,t),e}(E),O=function(t){function e(e){return t.call(this,n({},e,{output:4}))||this}return i(e,t),e}(E),V=n({width:0,color:[1,1,1,1],join:\"miter\",cap:\"butt\",miterLimit:5,writeDepth:!0,polygonOffset:!1,stipplePattern:null,stippleIntegerRepeats:!1,stippleOffColor:null,slicePlaneEnabled:!1,vvFastUpdate:!1,transparent:!1,isClosed:!1},g.Default),T=function(){function t(t,e){if(this.params=e,this.numCapSubdivisions=0,this.numJoinSubdivisions=0,this.vertexBufferLayout=t,!e.isClosed)switch(this.params.cap){case\"butt\":this.numCapSubdivisions=0;break;case\"square\":this.numCapSubdivisions=1;break;case\"round\":this.numCapSubdivisions=q}switch(this.params.join){case\"miter\":case\"bevel\":this.numJoinSubdivisions=e.stipplePattern?1:0;break;case\"round\":this.numJoinSubdivisions=L}}return t.prototype.allocate=function(t){return this.vertexBufferLayout.createBuffer(t)},t.prototype.elementCount=function(t){var e=2*this.numCapSubdivisions+2,i=t.indices[y.RibbonVertexAttributeConstants.POSITION].length/2+1,n=this.params.isClosed,r=n?2:2*e,a=n?0:1,s=n?i:i-1;if(t.vertexAttr[y.RibbonVertexAttributeConstants.SUBDIVISIONS])for(var o=t.vertexAttr[y.RibbonVertexAttributeConstants.SUBDIVISIONS].data,c=a;c<s;++c){var p=o[c];r+=4+2*p}else{r+=s*(2*this.numJoinSubdivisions+4)}return r+=2},t.prototype.write=function(t,e,i,n){var r=this,a=J,s=X,o=k,c=e.vertexAttr[y.RibbonVertexAttributeConstants.POSITION].data,u=e.indices&&e.indices[y.RibbonVertexAttributeConstants.POSITION];u&&u.length!==2*(c.length/3-1)&&console.warn(\"RibbonLineMaterial does not support indices\");var l=null;e.vertexAttr[y.RibbonVertexAttributeConstants.SUBDIVISIONS]&&(l=e.vertexAttr[y.RibbonVertexAttributeConstants.SUBDIVISIONS].data);var h=1,v=0;this.params.vvSizeEnabled?v=e.vertexAttr[y.RibbonVertexAttributeConstants.SIZEFEATUREATTRIBUTE].data[0]:e.vertexAttr[y.RibbonVertexAttributeConstants.SIZE]&&(h=e.vertexAttr[y.RibbonVertexAttributeConstants.SIZE].data[0]);var b=[1,1,1,1],f=0;this.params.vvColorEnabled?f=e.vertexAttr[y.RibbonVertexAttributeConstants.COLORFEATUREATTRIBUTE].data[0]:e.vertexAttr[y.RibbonVertexAttributeConstants.COLOR]&&(b=e.vertexAttr[y.RibbonVertexAttributeConstants.COLOR].data);var d=0;this.params.vvOpacityEnabled&&(d=e.vertexAttr[y.RibbonVertexAttributeConstants.OPACITYFEATUREATTRIBUTE].data[0]);var m=c.length/3,g=t.transformation,C=new Float32Array(i.buffer),A=this.vertexBufferLayout.stride/4,S=n*A,x=S,P=function(t,e,i,n,a,s){C[S++]=e[0],C[S++]=e[1],C[S++]=e[2],C[S++]=n,C[S++]=a,C[S++]=s,C[S++]=t[0],C[S++]=t[1],C[S++]=t[2],C[S++]=i[0],C[S++]=i[1],C[S++]=i[2],r.params.vvSizeEnabled?C[S++]=v:C[S++]=h,r.params.vvColorEnabled?C[S++]=f:(C[S++]=b[0],C[S++]=b[1],C[S++]=b[2],C[S++]=b[3]),r.params.vvOpacityEnabled&&(C[S++]=d)};S+=A,p.vec3.set(s,c[0],c[1],c[2]),g&&p.vec3.transformMat4(s,s,g);var E=this.params.isClosed;if(E){var I=c.length-3;p.vec3.set(a,c[I],c[I+1],c[I+2]),g&&p.vec3.transformMat4(a,a,g)}else{p.vec3.copy(a,s),p.vec3.set(o,c[3],c[4],c[5]),g&&p.vec3.transformMat4(o,o,g);for(var O=0;O<this.numCapSubdivisions;++O){var V=1-O/this.numCapSubdivisions;P(a,s,o,V,1,-4),P(a,s,o,V,1,4)}P(a,s,o,0,0,-4),P(a,s,o,0,0,4),p.vec3.copy(a,s),p.vec3.copy(s,o)}for(var T=E?0:1,q=E?m:m-1,O=T;O<q;O++){var L=(O+1)%m*3;p.vec3.set(o,c[L+0],c[L+1],c[L+2]),g&&p.vec3.transformMat4(o,o,g),P(a,s,o,0,1,-1),P(a,s,o,0,1,1);for(var U=l?l[O]:this.numJoinSubdivisions,w=0;w<U;++w){var V=(w+1)/(U+1);P(a,s,o,V,1,-2),P(a,s,o,V,1,2)}P(a,s,o,1,0,-2),P(a,s,o,1,0,2),p.vec3.copy(a,s),p.vec3.copy(s,o)}if(E){S=R(C,x+A,C,S,2*A)}else{P(a,s,o,0,1,-5),P(a,s,o,0,1,5);for(var O=0;O<this.numCapSubdivisions;++O){var V=(O+1)/this.numCapSubdivisions;P(a,s,o,V,1,-5),P(a,s,o,V,1,5)}}R(C,x+A,C,x,A),S=R(C,S-A,C,S,A)},t}(),q=3,L=1,U=u.vec3f64.create(),w=u.vec3f64.create(),D=u.vec3f64.create(),M=u.vec3f64.create(),B=u.vec3f64.create(),N=o.createRenderScreenPointArray3(),z=o.createRenderScreenPointArray3(),j=u.vec3f64.create(),F=u.vec3f64.create(),Z=l.lineSegment.create(),G=l.lineSegment.create(),J=u.vec3f64.create(),X=u.vec3f64.create(),k=u.vec3f64.create(),H=[o.createRenderScreenPointArray3(),o.createRenderScreenPointArray3(),o.createRenderScreenPointArray3(),o.createRenderScreenPointArray3()],Y=[u.vec3f64.create(),u.vec3f64.create(),u.vec3f64.create(),u.vec3f64.create()],_=l.plane.create(),W=l.plane.create(),K=l.plane.create(),Q=l.plane.create();return P});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/libs/gl-matrix-2/mat3f64\",\"../../../../core/libs/gl-matrix-2/vec3f32\"],function(e,v,a,i){var o;return function(e){e.Default={vvSizeEnabled:!1,vvSizeMinSize:i.vec3f32.fromValues(1,1,1),vvSizeMaxSize:i.vec3f32.fromValues(100,100,100),vvSizeOffset:i.vec3f32.fromValues(0,0,0),vvSizeFactor:i.vec3f32.fromValues(1,1,1),vvSizeValue:i.vec3f32.fromValues(1,1,1),vvColorEnabled:!1,vvColorValues:[0,0,0,0,0,0,0,0],vvColorColors:[1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0],vvOpacityEnabled:!1,vvOpacityValues:[0,0,0,0,0,0,0,0],vvOpacityOpacities:[1,1,1,1,1,1,1,1],vvSymbolAnchor:[0,0,0],vvSymbolRotationMatrix:a.mat3f64.create()}}(o||(o={})),o});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/extendsHelper\",\"../lib/GLMaterial\",\"./WaterTechnique\",\"./internal/MaterialUtil\",\"./internal/waterMaterialUtils\"],function(e,t,i,r,a,n,o){Object.defineProperty(t,\"__esModule\",{value:!0});var s=function(e){function t(t){var i=e.call(this,t)||this;return i.techniqueConfig=new a.WaterTechniqueConfiguration,i.updateParameters(),i}return i(t,e),t.prototype.updateParameters=function(){this.params=n.copyParameters(this.material.getParameters()),this.selectProgram(0)},t.prototype.selectProgram=function(e){this.techniqueConfig.output=e,this.techniqueConfig.writeDepth=this.params.writeDepth,this.techniqueConfig.receiveShadows=this.params.receiveShadows,this.techniqueConfig.slice=this.params.slicePlaneEnabled,this.techniqueConfig.transparent=this.params.transparent,this.technique=this.techniqueRep.acquireAndReleaseExisting(a.WaterTechnique,this.techniqueConfig,this.technique)},t.prototype.beginSlot=function(e){var t=4;return this.params.transparent&&(t=this.params.writeDepth?6:9),e===t},t.prototype.getProgram=function(){return this.technique.program},t.prototype.getPrograms=function(){return null},t.prototype._initTextures=function(e){this.texturePaths=[this.params.waveTexture,this.params.perturbationTexture],o.waterTextureRepo.initialize(e,this.texturePaths)},t.prototype._setWaveUniforms=function(e){e.setUniform1i(\"texWaveNormal\",0),e.setUniform1i(\"texWavePerturbation\",1),e.setUniform4f(\"waveParams\",this.params.waveStrength,this.params.waveTextureRepeat,this.params.flowStrength,this.params.flowOffset),e.setUniform2f(\"waveDirection\",this.params.waveDirection[0]*this.params.waveVelocity,this.params.waveDirection[1]*this.params.waveVelocity);var t=.001*this.material.animation.time;e.setUniform1f(\"timeElapsed\",t*this.params.animationSpeed)},t.prototype._updateShadowState=function(e){e.shadowMappingEnabled!==this.params.receiveShadows&&(this.material.setParameterValues({receiveShadows:e.shadowMappingEnabled}),this.updateParameters())},t.prototype.ensureResources=function(e){return o.waterTextureRepo.ready()||o.waterTextureRepo.loading()||this._initTextures(e),o.waterTextureRepo.ready()?2:1},t.prototype.bind=function(e,t){o.waterTextureRepo.ready()&&(this._updateShadowState(t),e.bindProgram(this.technique.program),e.setPipelineState(this.technique.pipeline),o.waterTextureRepo.bindRepo(e),this.technique.program.setUniform4fv(\"waterColor\",this.params.color),this._setWaveUniforms(this.technique.program))},t.prototype.release=function(){},t.prototype.bindView=function(e){var t=this.technique.program;t.setUniform3fv(\"localOrigin\",e.origin),n.bindView(e.origin,e.view,t),n.bindCamPos(e.origin,e.viewInvTransp,t),this.params.slicePlaneEnabled&&n.bindSlicePlane(e.origin,e.slicePlane,t),e.shadowMappingEnabled&&(e.shadowMap.bind(t),e.shadowMap.bindView(t,e.origin))},t.prototype.bindInstance=function(e){this.technique.program.setUniformMatrix4fv(\"model\",e.transformation)},t.prototype.getDrawMode=function(){return 4},t}(r.GLMaterial);t.WaterGLMaterial=s;var p=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.updateParameters=function(){this.params=n.copyParameters(this.material.getParameters()),this.selectProgram(5)},t.prototype.bind=function(e){e.bindProgram(this.technique.program),e.setPipelineState(this.technique.pipeline),this.technique.program.setUniform4fv(\"waterColor\",this.params.color)},t.prototype.bindView=function(e){this.technique.program.setUniform3fv(\"localOrigin\",e.origin),n.bindView(e.origin,e.view,this.technique.program)},t.prototype.beginSlot=function(e){return null==e},t}(s);t.WaterDrapedGLMaterial=p;var h=function(e){function t(){return null!==e&&e.apply(this,arguments)||this}return i(t,e),t.prototype.updateParameters=function(){this.params=n.copyParameters(this.material.getParameters()),this.selectProgram(2)},t.prototype.bind=function(e){o.waterTextureRepo.ready()&&(e.bindProgram(this.technique.program),e.setPipelineState(this.technique.pipeline),o.waterTextureRepo.bindRepo(e),this._setWaveUniforms(this.technique.program))},t.prototype.bindView=function(e){this.technique.program.setUniform3fv(\"localOrigin\",e.origin),n.bindView(e.origin,e.view,this.technique.program)},t.prototype.beginSlot=function(e){return 19===e},t}(s);t.WaterNormalGLMaterial=h});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/extendsHelper\",\"../../../../core/tsSupport/decorateHelper\",\"../../../../core/tsSupport/assignHelper\",\"../core/shaderTechnique/ReloadableShaderModule\",\"../core/shaderTechnique/ShaderTechnique\",\"../core/shaderTechnique/ShaderTechniqueConfiguration\",\"../lib/DefaultVertexAttributeLocations\",\"../shaders/WaterSurface.glsl\",\"../../../webgl/Program\",\"../../../webgl/renderState\"],function(e,t,r,i,a,o,n,u,p,l,s,d){Object.defineProperty(t,\"__esModule\",{value:!0});var c=function(t){function i(){return null!==t&&t.apply(this,arguments)||this}return r(i,t),i.prototype.initializeProgram=function(e){var t=i.shader.get(),r=this.configuration,a=t.build({output:r.output,viewingMode:e.viewingMode,slicePlaneEnabled:r.slice,sliceHighlightDisabled:!1,receiveShadows:r.receiveShadows,usePBR:!1,usePBRforWater:!0,useCustomDTRExponentForWater:!0});return new s(e.rctx,a.generateSource(\"vertex\"),a.generateSource(\"fragment\"),p.Default3D)},i.prototype.initializePipeline=function(){var e=this.configuration;return 2===e.output?d.makePipelineState({depthTest:{func:513},depthWrite:e.writeDepth&&d.defaultDepthWriteParams,colorWrite:d.defaultColorWriteParams}):d.makePipelineState({blending:e.transparent&&d.separateBlendingParams(770,1,771,771),depthTest:{func:513},depthWrite:e.writeDepth&&d.defaultDepthWriteParams,colorWrite:d.defaultColorWriteParams})},i.prototype.bindPipelineState=function(e){e.setPipelineState(this.pipeline)},i.shader=new o.ReloadableShaderModule(l,\"../shaders/WaterSurface.glsl\",e),i}(n.ShaderTechnique);t.WaterTechnique=c;var h=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.output=0,t.receiveShadows=!1,t.slice=!1,t.transparent=!1,t.writeDepth=!1,t}return r(t,e),i([u.parameter({count:6})],t.prototype,\"output\",void 0),i([u.parameter()],t.prototype,\"receiveShadows\",void 0),i([u.parameter()],t.prototype,\"slice\",void 0),i([u.parameter()],t.prototype,\"transparent\",void 0),i([u.parameter()],t.prototype,\"writeDepth\",void 0),t}(u.ShaderTechniqueConfiguration);t.WaterTechniqueConfiguration=h});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../support/buffer/InterleavedLayout\",\"../../lib/Util\",\"./bufferWriterUtils\"],function(t,e,r,n,o){Object.defineProperty(e,\"__esModule\",{value:!0}),e.PositionLayout=r.newLayout().vec3f(n.VertexAttrConstants.POSITION),e.PositionUVLayout=r.newLayout().vec3f(n.VertexAttrConstants.POSITION).vec2f(n.VertexAttrConstants.UV0),e.PositionColorLayout=r.newLayout().vec3f(n.VertexAttrConstants.POSITION).vec4u8(n.VertexAttrConstants.COLOR);var u=function(){function t(t){this.vertexBufferLayout=t}return t.prototype.allocate=function(t){return this.vertexBufferLayout.createBuffer(t)},t.prototype.elementCount=function(t){return t.indices[n.VertexAttrConstants.POSITION].length},t.prototype.write=function(t,e,r,n){o.writeDefaultAttributes(e,this.vertexBufferLayout,t.transformation,t.invTranspTransformation,r,n)},t}();e.DefaultBufferWriter=u});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/tsSupport/assignHelper\",\"../../../../../core/mathUtils\",\"../../../../../core/maybe\",\"../../../../../core/libs/gl-matrix-2/mat4\",\"../../../../../core/libs/gl-matrix-2/mat4f32\",\"../../../../../core/libs/gl-matrix-2/mat4f64\",\"../../../../../core/libs/gl-matrix-2/vec3\",\"../../../../../core/libs/gl-matrix-2/vec3f64\",\"../../../../../core/libs/gl-matrix-2/vec4\",\"../../../../../geometry/support/aaBoundingBox\",\"../../lib/ComponentUtils\",\"../../lib/doublePrecisionUtils\",\"../../lib/screenSizePerspectiveUtils\",\"../../lib/Util\"],function(e,t,r,i,n,a,o,c,s,f,l,u,v,m,d,g){function p(e,t,r,i,n,a,o){var c=t&&t.componentVisibilities,s=r.tolerance;if(e.componentCount>1)b(e,c,i,n,s,a,o);else if(!c||v.getVisibility(c,0))if(e.boundingInfo)g.assert(\"triangle\"===e.data.primitiveType),h(e.boundingInfo,i,n,s,a,o);else{var f=e.getIndices(X.POSITION),l=e.getAttribute(X.POSITION),u=f.length/3;x(i,n,0,u,f,l,void 0,a,o)}}function h(e,t,r,i,a,o){var c=B(t,r,Z);if(u.setMin(k,e.getBBMin()),u.setMax(k,e.getBBMax()),n.isSome(a)&&a.applyToAABB(k),S(k,t,c,i)){var s=e.getPrimitiveIndices(),f=e.getIndices(),l=e.getPosition(),v=s?s.length:f.length/3;if(v>ne){var m=e.getChildren();if(void 0!==m){for(var d=0;d<8;++d)void 0!==m[d]&&h(m[d],t,r,i,a,o);return}}x(t,r,0,v,f,l,s,a,o)}}function b(e,t,r,i,a,o,c){var s=B(r,i,Z),f=e.componentCount,l=e.componentOffsets,m=e.getIndices(X.POSITION),d=e.getAttribute(X.POSITION),g=e.boundingInfo;if(!g||(u.setMin(k,g.getBBMin()),u.setMax(k,g.getBBMax()),n.isSome(o)&&o.applyToAABB(k),S(k,r,s,a)))for(var p=0;p<f;p++)if(!t||v.getVisibility(t,p)){if(e.getComponentAABB){var h=e.getComponentAABB(p,k);if(n.isSome(o)&&o.applyToAABB(h),!S(h,r,s,a))continue}var b=l[p]/3,M=l[p+1]/3;x(r,i,b,M,m,d,void 0,o,c)}}function x(e,t,r,i,a,o,c,s,f){var l,u,v;if(c)return M(e,t,r,i,a,o,c,s,f);for(var m=o.data,d=o.offsetIdx,g=o.strideIdx,p=e[0],h=e[1],b=e[2],x=t[0],B=t[1],S=t[2],A=x-p,I=B-h,T=S-b,y=r,O=3*r;y<i;++y){var U=d+g*a[O++],L=m[U++],V=m[U++],w=m[U];U=d+g*a[O++];var D=m[U++],W=m[U++],R=m[U];U=d+g*a[O++];var E=m[U++],N=m[U++],C=m[U];n.isSome(s)&&(l=s.applyToVertex(L,V,w),L=l[0],V=l[1],w=l[2],u=s.applyToVertex(D,W,R),D=u[0],W=u[1],R=u[2],v=s.applyToVertex(E,N,C),E=v[0],N=v[1],C=v[2]);var z=D-L,F=W-V,H=R-w,q=E-L,_=N-V,j=C-w,G=I*j-_*T,Y=T*q-j*A,k=A*_-q*I,X=z*G+F*Y+H*k;if(!(Math.abs(X)<=J)){var Z=p-L,Q=h-V,$=b-w,ee=Z*G+Q*Y+$*k;if(X>0){if(ee<0||ee>X)continue}else if(ee>0||ee<X)continue;var te=Q*H-F*$,re=$*z-H*Z,ie=Z*F-z*Q,ne=A*te+I*re+T*ie;if(X>0){if(ne<0||ee+ne>X)continue}else if(ne>0||ee+ne<X)continue;var ae=(q*te+_*re+j*ie)/X;if(ae>=0){f(ae,P(z,F,H,q,_,j,K),y)}}}}function M(e,t,r,i,a,o,c,s,f){for(var l,u,v,m=o.data,d=o.offsetIdx,g=o.strideIdx,p=e[0],h=e[1],b=e[2],x=t[0],M=t[1],B=t[2],S=x-p,A=M-h,I=B-b,T=r;T<i;++T){var y=c[T],O=3*y,U=d+g*a[O++],L=m[U++],V=m[U++],w=m[U];U=d+g*a[O++];var D=m[U++],W=m[U++],R=m[U];U=d+g*a[O];var E=m[U++],N=m[U++],C=m[U];n.isSome(s)&&(l=s.applyToVertex(L,V,w),L=l[0],V=l[1],w=l[2],u=s.applyToVertex(D,W,R),D=u[0],W=u[1],R=u[2],v=s.applyToVertex(E,N,C),E=v[0],N=v[1],C=v[2]);var z=D-L,F=W-V,H=R-w,q=E-L,_=N-V,j=C-w,G=A*j-_*I,Y=I*q-j*S,k=S*_-q*A,X=z*G+F*Y+H*k;if(!(Math.abs(X)<=J)){var Z=p-L,Q=h-V,$=b-w,ee=Z*G+Q*Y+$*k;if(X>0){if(ee<0||ee>X)continue}else if(ee>0||ee<X)continue;var te=Q*H-F*$,re=$*z-H*Z,ie=Z*F-z*Q,ne=S*te+A*re+I*ie;if(X>0){if(ne<0||ee+ne>X)continue}else if(ne>0||ee+ne<X)continue;var ae=(q*te+_*re+j*ie)/X;if(ae>=0){f(ae,P(z,F,H,q,_,j,K),y)}}}}function P(e,t,r,i,n,a,o){return s.vec3.set(Q,e,t,r),s.vec3.set($,i,n,a),s.vec3.cross(o,Q,$),s.vec3.normalize(o,o),o}function B(e,t,r){return s.vec3.set(r,1/(t[0]-e[0]),1/(t[1]-e[1]),1/(t[2]-e[2]))}function S(e,t,r,i){return A(e,t,r,i,1/0)}function A(e,t,r,i,n){var a=(e[0]-i-t[0])*r[0],o=(e[3]+i-t[0])*r[0],c=Math.min(a,o),s=Math.max(a,o),f=(e[1]-i-t[1])*r[1],l=(e[4]+i-t[1])*r[1];if((s=Math.min(s,Math.max(f,l)))<0)return!1;if((c=Math.max(c,Math.min(f,l)))>s)return!1;var u=(e[2]-i-t[2])*r[2],v=(e[5]+i-t[2])*r[2];return!((s=Math.min(s,Math.max(u,v)))<0)&&(!((c=Math.max(c,Math.min(u,v)))>s)&&c<n)}function I(e,t,r){return l.vec4.set(r,e[0]-t[0],e[1]-t[1],e[2]-t[2],1)}function T(e,t,r,i){return a.mat4.translate(Y,r,t),r=Y,l.vec4.transformMat4(i,e,r)}function y(e,t,r,i){return i[0]=e[0]+r[0],i[1]=e[1]+r[1],i[2]=e[2]+r[2],i[3]=e[3],l.vec4.transformMat4(i,i,t)}function O(e,t){return l.vec4.scale(t,e,1/Math.abs(e[3]))}function U(e,t,r,i){return d.scale(e,r,t,i)}function L(e,t,r,n,a){var o=(r.screenLength||0)*e.pixelRatio;a&&(o=U(o,t,n,a));var c=o*Math.tan(.5*e.fovY)/(.5*e.fullHeight);return i.clamp(c*t,r.minWorldLength||0,null!=r.maxWorldLength?r.maxWorldLength:1/0)}function V(e,t,r){if(void 0!==e)return t.acquire(e,r)}function w(e,t){void 0!==e&&t.release(e)}function D(e,t,r){a.mat4.translate(ee,t,e),r.setUniform3fv(\"localOrigin\",e),r.setUniformMatrix4fv(\"view\",ee)}function W(e,t,r){r.setUniform3f(\"camPos\",t[3]-e[0],t[7]-e[1],t[11]-e[2])}function R(e,t){m.encodeDoubleArraySplit(e,te,re,3),t.setUniform3fv(\"viewOriginHi\",te),t.setUniform3fv(\"viewOriginLo\",re)}function E(e,t,r){s.vec3.subtract(ie,t.origin,e),r.setUniform3fv(\"slicePlaneOrigin\",ie),r.setUniform3fv(\"slicePlaneBasis1\",t.basis1),r.setUniform3fv(\"slicePlaneBasis2\",t.basis2)}function N(e,t,r){if(e){var i=z(e,t.fovY,t.viewport[3]),n=t.pixelRatio||1;r.setUniform4f(\"verticalOffset\",i.screenLength*n,i.perDistance,i.minWorldLength,i.maxWorldLength)}}function C(e,t,r){e.bindTexture(t.highlightDepthTexture,5),r.setUniform1i(\"depthTex\",5),r.setUniform4f(\"highlightViewportPixelSz\",0,0,1/t.viewport[2],1/t.viewport[3])}function z(e,t,r,i){return void 0===i&&(i=ae),i.screenLength=e.screenLength,i.perDistance=Math.tan(.5*t)/(.5*r),i.minWorldLength=e.minWorldLength,i.maxWorldLength=e.maxWorldLength,i}function F(e,t,r){if(void 0===r&&(r=\"screenSizePerspectiveAlignment\"),e){var i=e.parameters,n=e.paddingPixelsOverride;t.setUniform4f(r,i.divisor,i.offset,i.minPixelSize,n)}}function H(e,t){var r=t?H(t):{};for(var i in e){var n=e[i];n&&n.forEach&&(n=j(n)),null==n&&i in r||(r[i]=n)}return r}function q(e,t){var r=!1;for(var i in t){var n=t[i];void 0!==n&&(r=!0,Array.isArray(n)?e[i]=n.slice():e[i]=n)}return r}function _(e,t,r,n,a){if(t.options.selectionMode){for(var o=e.getAttribute(X.POSITION).data,c=e.getAttribute(X.SIZE),s=c&&c.data[0],f=r[0],l=r[1],u=s+n,v=(u/2+4)*e.pixelRatio,m=Number.MAX_VALUE,d=0;d<o.length-5;d+=3){var g=o[d],p=o[d+1],h=o[d+3],b=o[d+4],x=f-g,M=l-p,P=h-g,B=b-p,S=P*x+B*M,A=P*P+B*B,I=i.clamp(S/A,0,1),T=P*I-x,y=B*I-M,O=T*T+y*y;O<m&&(m=O)}m<v*v&&a()}}function j(e){var t=[];return e.forEach(function(e){return t.push(e)}),t}function G(e,i){return r({usePBR:e},i?t.defaultPBRTreeMaterialParameters:t.defaultPBRMaterialParameters)}Object.defineProperty(t,\"__esModule\",{value:!0});var Y=c.mat4f64.create(),k=u.create(),X=g.VertexAttrConstants;t.intersectTriangleGeometry=p;var Z=f.vec3f64.create(),J=Math.pow(2,-52),K=f.vec3f64.create();t.intersectTriangles=x;var Q=f.vec3f64.create(),$=f.vec3f64.create();t.computeNormal=P,t.computeInvDir=B,t.intersectAabbInvDir=S,t.intersectAabbInvDirBefore=A,t.transformToWorld=I,t.transformToView=T,t.transformToProjection=y,t.transformToNDC=O,t.applyScreenSizePerspectiveScale=U,t.verticalOffsetAtDistance=L,t.acquireIfNotUndefined=V,t.releaseIfNotUndefined=w;var ee=o.mat4f32.create();t.bindView=D,t.bindCamPos=W;var te=f.vec3f64.create(),re=f.vec3f64.create();t.bindViewOriginDouble=R;var ie=f.vec3f64.create();t.bindSlicePlane=E,t.bindVerticalOffset=N,t.bindHighlightRendering=C,t.bindScreenSizePerspective=F,t.copyParameters=H,t.updateParameters=q;!function(e){function t(e,t){for(var r=[],i=0;i<2;i++)for(var a=0;a<2;a++){var o=n({shadowMappingEnabled:1===i,ssaoEnabled:1===a}),c=n({shadowMappingEnabled:1===i,ssaoEnabled:1===a&&e.receiveSSAO});r[o]=r[c]||t({receiveShadows:1===i,receiveSSAO:1===a&&e.receiveSSAO})}return{programs:r.filter(function(e){return null!=e}),byParameter:r}}function r(e,t){return e.byParameter[n(t)]}function i(e){return e.programs}function n(e){return(e.shadowMappingEnabled?1:0)|(e.ssaoEnabled?2:0)}e.create=t,e.lookup=r,e.programs=i}(t.BindParametersMap||(t.BindParametersMap={})),t.intersectDrapedRenderLineGeometry=_,t.colorMixModes={multiply:1,ignore:2,replace:3,tint:4};var ne=1e3,ae={screenLength:0,perDistance:0,minWorldLength:0,maxWorldLength:0};t.defaultPBRMaterialParameters={roughnessFactor:.6,metallicFactor:0,reflectanceFactor:.2},t.defaultPBRTreeMaterialParameters={roughnessFactor:1,metallicFactor:0,reflectanceFactor:.2},t.getDefaultPBRMaterialParameters=G});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../support/buffer/BufferView\",\"../../lib/Util\"],function(e,r,f,t){function a(e,r,f,t,a){var i=f.typedBuffer,s=f.typedBufferStride,o=e.length;if(t*=s,null==a||1===a)for(var u=0;u<o;++u){var v=2*e[u];i[t]=r[v],i[t+1]=r[v+1],t+=s}else for(var u=0;u<o;++u)for(var v=2*e[u],n=0;n<a;++n)i[t]=r[v],i[t+1]=r[v+1],t+=s}function i(e,r,f,t,a){var i=f.typedBuffer,s=f.typedBufferStride,o=e.length;if(t*=s,null==a||1===a)for(var u=0;u<o;++u){var v=3*e[u];i[t]=r[v],i[t+1]=r[v+1],i[t+2]=r[v+2],t+=s}else for(var u=0;u<o;++u)for(var v=3*e[u],n=0;n<a;++n)i[t]=r[v],i[t+1]=r[v+1],i[t+2]=r[v+2],t+=s}function s(e,r,f,t,a){var i=f.typedBuffer,s=f.typedBufferStride,o=e.length;if(t*=s,null==a||1===a)for(var u=0;u<o;++u){var v=4*e[u];i[t]=r[v],i[t+1]=r[v+1],i[t+2]=r[v+2],i[t+3]=r[v+3],t+=s}else for(var u=0;u<o;++u)for(var v=4*e[u],n=0;n<a;++n)i[t]=r[v],i[t+1]=r[v+1],i[t+2]=r[v+2],i[t+3]=r[v+3],t+=s}function o(e,r,f,t){var a=f.typedBuffer,i=f.typedBufferStride,s=e.length;t*=i;for(var o=0;o<s;++o){for(var u=9*e[o],v=0;v<9;++v)a[t+v]=r[u+v];t+=i}}function u(e,r,f,t){var a=f.typedBuffer,i=f.typedBufferStride,s=e.length;t*=i;for(var o=0;o<s;++o){for(var u=16*e[o],v=0;v<16;++v)a[t+v]=r[u+v];t+=i}}function v(e,r,f,t,a,s){if(f){var o=f,u=t.typedBuffer,v=t.typedBufferStride,n=e.length;if(a*=v,null==s||1===s)for(var l=0;l<n;++l){var d=3*e[l],B=r[d],c=r[d+1],V=r[d+2];u[a]=o[0]*B+o[4]*c+o[8]*V+o[12],u[a+1]=o[1]*B+o[5]*c+o[9]*V+o[13],u[a+2]=o[2]*B+o[6]*c+o[10]*V+o[14],a+=v}else for(var l=0;l<n;++l)for(var d=3*e[l],B=r[d],c=r[d+1],V=r[d+2],p=o[0]*B+o[4]*c+o[8]*V+o[12],w=o[1]*B+o[5]*c+o[9]*V+o[13],y=o[2]*B+o[6]*c+o[10]*V+o[14],g=0;g<s;++g)u[a]=p,u[a+1]=w,u[a+2]=y,a+=v}else i(e,r,t,a,s)}function n(e,r,f,t,a,s){if(f){var o=f,u=t.typedBuffer,v=t.typedBufferStride,n=e.length;if(a*=v,null==s||1===s)for(var l=0;l<n;++l){var d=3*e[l],B=r[d],c=r[d+1],V=r[d+2];u[a]=o[0]*B+o[4]*c+o[8]*V,u[a+1]=o[1]*B+o[5]*c+o[9]*V,u[a+2]=o[2]*B+o[6]*c+o[10]*V,a+=v}else for(var l=0;l<n;++l)for(var d=3*e[l],B=r[d],c=r[d+1],V=r[d+2],p=o[0]*B+o[4]*c+o[8]*V,w=o[1]*B+o[5]*c+o[9]*V,y=o[2]*B+o[6]*c+o[10]*V,g=0;g<s;++g)u[a]=p,u[a+1]=w,u[a+2]=y,a+=v}else i(e,r,t,a,s)}function l(e,r,f,t,a,i){var s=t.typedBuffer,o=t.typedBufferStride,u=e.length;if(a*=o,null==i||1===i){if(4===f)for(var v=0;v<u;++v){var n=4*e[v];s[a]=r[n],s[a+1]=r[n+1],s[a+2]=r[n+2],s[a+3]=r[n+3],a+=o}else if(3===f)for(var v=0;v<u;++v){var n=3*e[v];s[a]=r[n],s[a+1]=r[n+1],s[a+2]=r[n+2],s[a+3]=255,a+=o}}else if(4===f)for(var v=0;v<u;++v)for(var n=4*e[v],l=0;l<i;++l)s[a]=r[n],s[a+1]=r[n+1],s[a+2]=r[n+2],s[a+3]=r[n+3],a+=o;else if(3===f)for(var v=0;v<u;++v)for(var n=3*e[v],l=0;l<i;++l)s[a]=r[n],s[a+1]=r[n+1],s[a+2]=r[n+2],s[a+3]=255,a+=o}function d(e,r,f,t,a,i,s){var o=a.typedBuffer,u=a.typedBufferStride,v=e.length;if(i*=u,null==s||1===s){if(4===f)for(var n=0;n<v;++n){var l=4*e[n];o[i]=r[l]*t[0],o[i+1]=r[l+1]*t[1],o[i+2]=r[l+2]*t[2],o[i+3]=r[l+3]*t[3],i+=u}else if(3===f)for(var d=255*t[3],n=0;n<v;++n){var l=3*e[n];o[i]=r[l]*t[0],o[i+1]=r[l+1]*t[1],o[i+2]=r[l+2]*t[2],o[i+3]=d,i+=u}}else if(4===f)for(var n=0;n<v;++n)for(var l=4*e[n],B=0;B<s;++B)o[i]=r[l]*t[0],o[i+1]=r[l+1]*t[1],o[i+2]=r[l+2]*t[2],o[i+3]=r[l+3]*t[3],i+=u;else if(3===f)for(var d=255*t[3],n=0;n<v;++n)for(var l=3*e[n],B=0;B<s;++B)o[i]=r[l]*t[0],o[i+1]=r[l+1]*t[1],o[i+2]=r[l+2]*t[2],o[i+3]=d,i+=u}function B(e,r,i,o,u,d){for(var B=0,c=r.fieldNames;B<c.length;B++){var V=c[B],p=e.vertexAttr[V],w=e.indices[V];if(p&&w)switch(V){case t.VertexAttrConstants.POSITION:t.assert(3===p.size);var y=u.getField(V,f.BufferViewVec3f);y&&v(w,p.data,i,y,d);break;case t.VertexAttrConstants.NORMAL:t.assert(3===p.size);var g=u.getField(V,f.BufferViewVec3f);g&&n(w,p.data,o,g,d);break;case t.VertexAttrConstants.UV0:t.assert(2===p.size);var h=u.getField(V,f.BufferViewVec2f);h&&a(w,p.data,h,d);break;case t.VertexAttrConstants.REGION:t.assert(4===p.size);var z=u.getField(V,f.BufferViewVec4u16);z&&s(w,p.data,z,d);break;case t.VertexAttrConstants.COLOR:t.assert(3===p.size||4===p.size);var A=u.getField(V,f.BufferViewVec4u8);A&&l(w,p.data,p.size,A,d);break;case t.VertexAttrConstants.SYMBOLCOLOR:t.assert(3===p.size||4===p.size);var C=u.getField(V,f.BufferViewVec4u8);C&&l(w,p.data,p.size,C,d);break;case t.VertexAttrConstants.TANGENT:t.assert(4===p.size);var S=u.getField(V,f.BufferViewVec4f);S&&s(w,p.data,S,d)}}}Object.defineProperty(r,\"__esModule\",{value:!0}),r.writeBufferVec2=a,r.writeBufferVec3=i,r.writeBufferVec4=s,r.writeBufferMat3f=o,r.writeBufferMat4f=u,r.writePosition=v,r.writeNormal=n,r.writeColor=l,r.writeMultipliedColor=d,r.writeDefaultAttributes=B});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/tsSupport/generatorHelper\",\"../../../../../core/tsSupport/awaiterHelper\",\"../../../../../core/Logger\",\"../../../../../core/libs/gl-matrix-2/vec2f64\",\"../../../support/imageUtils\",\"../../../../webgl/Texture\"],function(e,t,r,a,i,n,o,l){Object.defineProperty(t,\"__esModule\",{value:!0});var u=i.getLogger(\"esri.views.3d.webgl-engine.materials.internal.waterMaterialUtils\");t.waterParameterDefaultsLocal={waveTexture:e.toUrl(\"../../../../../images/materials/water/normals.jpg\"),perturbationTexture:e.toUrl(\"../../../../../images/materials/water/perturbation.jpg\"),waveStrength:.06,waveTextureRepeat:32,waveDirection:n.vec2f64.fromValues(1,0),waveVelocity:.05,flowStrength:.015,flowOffset:-.5,animationSpeed:.35,color:[0,.35686,.4,1],transparent:!1,writeDepth:!0,slicePlaneEnabled:!1,isDraped:!1,receiveShadows:!0},t.wavePresets={\"calm-small\":{waveStrength:.005,perturbationStrength:.02,textureRepeat:12,waveVelocity:.01},\"rippled-small\":{waveStrength:.02,perturbationStrength:.09,textureRepeat:32,waveVelocity:.07},\"slight-small\":{waveStrength:.05,perturbationStrength:.07,textureRepeat:28,waveVelocity:.1},\"moderate-small\":{waveStrength:.075,perturbationStrength:.07,textureRepeat:24,waveVelocity:.1},\"calm-medium\":{waveStrength:.003125,perturbationStrength:.01,textureRepeat:8,waveVelocity:.02},\"rippled-medium\":{waveStrength:.035,perturbationStrength:.015,textureRepeat:12,waveVelocity:.07},\"slight-medium\":{waveStrength:.06,perturbationStrength:.015,textureRepeat:8,waveVelocity:.12},\"moderate-medium\":{waveStrength:.09,perturbationStrength:.03,textureRepeat:4,waveVelocity:.12},\"calm-large\":{waveStrength:.01,perturbationStrength:0,textureRepeat:4,waveVelocity:.05},\"rippled-large\":{waveStrength:.025,perturbationStrength:.01,textureRepeat:8,waveVelocity:.11},\"slight-large\":{waveStrength:.06,perturbationStrength:.02,textureRepeat:3,waveVelocity:.13},\"moderate-large\":{waveStrength:.14,perturbationStrength:.03,textureRepeat:2,waveVelocity:.15}};var p=function(){function e(){this.loadingCount=0,this.data=[],this.loadingState=0}return e.prototype.loadTexture=function(e,t,i){return a(this,void 0,void 0,function(){var a,n;return r(this,function(r){switch(r.label){case 0:this.loadingCount++,r.label=1;case 1:return r.trys.push([1,3,,4]),[4,o.requestImage(i)];case 2:return a=r.sent(),this.data[t]=new l(e,this.getTextureProps(a.width,a.height,!0),a),[3,4];case 3:return n=r.sent(),u.warn(\"Failed to load texture for water material.\",n),this.data[t]=new l(e,this.getTextureProps(1,1,!0)),[3,4];case 4:return this.loadingCount--,[2]}})})},e.prototype.getTextureProps=function(e,t,r){return void 0===r&&(r=!1),{target:3553,pixelFormat:6408,dataType:5121,wrapMode:10497,samplingMode:9987,hasMipmap:r,maxAnisotropy:8,width:e,height:t}},e.prototype.ready=function(){return 2===this.loadingState||1===this.loadingState&&0===this.loadingCount&&(this.loadingState=2,!0)},e.prototype.loading=function(){return 1===this.loadingState},e.prototype.initialize=function(e,t){for(var r=0;r<t.length;r++)this.loadTexture(e,r,t[r]);this.loadingState=1},e.prototype.bindRepo=function(e){for(var t=0;t<this.data.length;t++)e.bindTexture(this.data[t],t)},e}();t.waterTextureRepo=new p});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/maybe\",\"../../../webgl\"],function(e,t,r,n){function i(e){return e.slice()}function o(e){return[e,e]}Object.defineProperty(t,\"__esModule\",{value:!0});var u=function(){function e(){this.cache=new Map}return e.prototype.dispose=function(){this.cache.forEach(function(e){r.isSome(e.texture)&&(e.texture.dispose(),e.texture=null)}),this.cache.clear()},e.prototype.acquire=function(e){if(r.isNone(e))return null;var t=this.patternId(e),i=this.cache.get(t);if(i)return i.refCount++,i.bind;var o=this.patternToTextureData(e,2),u=o.length/2,a={refCount:1,texture:null,bind:function(e,t){return r.isNone(a.texture)&&(a.texture=new n.Texture(e,{width:o.length,height:1,internalFormat:6406,pixelFormat:6406,dataType:5121,wrapMode:33071},o)),e.bindTexture(a.texture,t),u}};return this.cache.set(t,a),a.bind},e.prototype.release=function(e){if(!r.isNone(e)){var t=this.patternId(e),n=this.cache.get(t);n&&0===--n.refCount&&(r.isSome(n.texture)&&n.texture.dispose(),this.cache.delete(t))}},e.prototype.swap=function(e,t){var r=this.acquire(t);return this.release(e),r},e.prototype.bind=function(e,t,n,i,o){var u=r.isSome(i)?i(e,o)*t.pixelRatio:1;n.setUniform1i(\"stipplePatternTexture\",o),n.setUniform1f(\"stipplePatternPixelSizeInv\",1/u)},e.prototype.patternId=function(e){return e.join(\",\")},e.prototype.patternToTextureData=function(e,t){for(var r=e.reduce(function(e,t){return e+t})*t,n=new Uint8Array(r),i=!0,o=0,u=0,a=e;u<a.length;u++){for(var p=a[u],c=0;c<p*t;c++)n[o++]=i?255:0;i=!i}return n},e}();t.StippleTextureRepository=u,t.createStipplePattern=i,t.createStipplePatternSimple=o});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/libs/gl-matrix-2/mat4\",\"../../../../../core/libs/gl-matrix-2/mat4f64\"],function(t,i,a,r){return function(){function t(t,i,n,s,o,e,m,h,l){this.name=t,this.from=i,this.to=n,this.displayedIndexRange=s,this.highlightedIndexRanges=o,this.transformation=e,this.instanceParameters=m,this.idx=h,this.dataId=l,null!=e&&(this.transformationNormal=r.mat4f64.clone(e),a.mat4.invert(this.transformationNormal,this.transformationNormal),a.mat4.transpose(this.transformationNormal,this.transformationNormal))}return t}()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/libs/gl-matrix-2/mat4f64\",\"../../../support/buffer/glUtil\",\"../../lib/DefaultVertexAttributeLocations\",\"./Instance\",\"./utils\",\"../../../../webgl/BufferObject\",\"../../../../webgl/Util\",\"../../../../webgl/VertexArrayObject\"],function(e,t,r,i,n,a,o,h,g,s){function u(e,t){var r=new Map,i=function(e,t){var i=e.origin.id,n=e.data.id,a=r.get(i);a||(a={origin:e.origin.vec3,deltaByGeometry:new Map},r.set(i,a));var o=a.deltaByGeometry.get(n);o||(o={renderData:e.data,toAdd:[],toRemove:[]},a.deltaByGeometry.set(n,o)),(t?o.toAdd:o.toRemove).push(e)};return e.forEach(function(e){i(e,!0)}),t.forEach(function(e){i(e,!1)}),r}function l(e,t,r){var i=t.elementCount(e),n=t.allocate(i);t.write({},e,n,0),r.setData(n.buffer)}return function(){function e(e,t,r,i){void 0===i&&(i=n.Default3D),this.type=\"InstancedRenderer\",this._dataByOrigin=new Map,this._highlightCount=0,this._rctx=e,this._vertexAttributeLocations=i,this._material=r,this._materialRep=t,this._glMaterials=o.acquireMaterials(this._material,this._materialRep),this._bufferWriter=r.createBufferWriter()}return e.prototype.dispose=function(){o.releaseMaterials(this._material,this._materialRep)},Object.defineProperty(e.prototype,\"isEmpty\",{get:function(){return 0===this._dataByOrigin.size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"hasHighlights\",{get:function(){return this._highlightCount>0},enumerable:!0,configurable:!0}),e.prototype.hasWater=function(){return!1},e.prototype.renderPriority=function(){return this._material.renderPriority},e.prototype.modify=function(e){this.updateGeometries(e.toUpdate),this.addAndRemoveGeometries(e.toAdd,e.toRemove),this.updateHighlightCount()},e.prototype.addAndRemoveGeometries=function(e,t){var n=this,d=this._rctx,f=this._bufferWriter,c=this._dataByOrigin,y=u(e,t),m=f.vertexBufferLayout;y.forEach(function(e,t){var u=c.get(t);u||(u={origin:e.origin,highlightCount:0,dataByGeometry:new Map},c.set(t,u)),e.deltaByGeometry.forEach(function(e,t){var c=u.dataByGeometry.get(t);!c&&e.toAdd.length>0&&(c={vao:new s(d,n._vertexAttributeLocations,{geometry:i.glLayout(m)},{geometry:h.createVertex(d,35044)}),vertexCount:0,instances:new Map,highlightCount:0},l(e.renderData,f,c.vao.vertexBuffers.geometry),c.vertexCount=g.vertexCount(c.vao,\"geometry\"),u.dataByGeometry.set(t,c));var y=c.instances;e.toAdd.forEach(function(e){var t=r.mat4f64.create();o.calculateTransformRelToOrigin(e,t);var i=o.generateRenderGeometryVisibleIndexRanges(e),n=o.generateRenderGeometryHighlightRanges(e),h=new a(e.name,0,c.vertexCount,i,n,t,e.instanceParameters,e.idx,e.data.id);y.set(e.uniqueName,h),u.highlightCount=null,c.highlightCount=null}),e.toRemove.forEach(function(e){y.delete(e.uniqueName)}),0===y.size&&(c.vao.dispose(),u.dataByGeometry.delete(t))}),0===u.dataByGeometry.size&&c.delete(t)})},e.prototype.updateGeometries=function(e){var t=this._dataByOrigin,r=this._bufferWriter;e.forEach(function(e){var i=e.updateType,n=e.renderGeometry,a=t.get(n.origin.id),h=a&&a.dataByGeometry.get(n.data.id),g=h&&h.instances.get(n.uniqueName);g&&(1&i&&(g.displayedIndexRange=o.generateRenderGeometryVisibleIndexRanges(n)),17&i&&(g.highlightedIndexRanges=o.generateRenderGeometryHighlightRanges(n),a.highlightCount=null,h.highlightCount=null),2&i&&l(n.data,r,h.vao.vertexBuffers.geometry),4&i&&o.calculateTransformRelToOrigin(n,g.transformation,g.transformationNormal))})},e.prototype.updateHighlightCount=function(){var e=this;this._highlightCount=0,this._dataByOrigin.forEach(function(t){if(null==t.highlightCount){var r=0;t.dataByGeometry.forEach(function(e){if(null==e.highlightCount){var t=0;e.instances.forEach(function(e){e.highlightedIndexRanges&&++t}),e.highlightCount=t}r+=e.highlightCount}),t.highlightCount=r}e._highlightCount+=t.highlightCount})},e.prototype.render=function(e,t,r,i){var n=this,a=this._rctx,o=this._glMaterials.get(t.pass),h=4===t.pass;if(!o||null!=e&&!o.beginSlot(e)||h&&0===this._highlightCount)return!1;o.bind(a,r);var g=!1;return this._dataByOrigin.forEach(function(e){h&&0===e.highlightCount||(r.origin=e.origin,o.bindView(r),e.dataByGeometry.forEach(function(e){g=h?n.renderHighlightPass(o,e,i)||g:n.renderDefaultPass(o,e,i)||g}))}),a.bindVAO(null),o.release(),g},e.prototype.renderDefaultPass=function(e,t,r){var i=this._rctx,n=e.getDrawMode(),a=t.vao,h=t.vertexCount;e.ensureAttributeLocations(a),i.bindVAO(a);var g=!1;return t.instances.forEach(function(t){var a=t.displayedIndexRange;a&&0===a.length||(e.bindInstance(t),a?o.drawArraysFaceRange(i,a,0,n,r):o.drawArrays(i,n,0,h,r),g=!0)}),g},e.prototype.renderHighlightPass=function(e,t,r){var i=this._rctx,n=e.getDrawMode(),a=t.vao,h=t.vertexCount;if(0!==t.highlightCount){e.ensureAttributeLocations(a),i.bindVAO(a);var g=!1;return t.instances.forEach(function(t){var a=t.highlightedIndexRanges;if(a&&0!==a.length){e.bindInstance(t);for(var s=0;s<a.length;s++){var u=a[s],l=u.range?u.range[0]:0,d=u.range?u.range[1]-u.range[0]+1:h;o.drawArrays(i,n,l,d,r),g=!0}}}),g}},e}()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/libs/gl-matrix-2/mat4\",\"../../../../../core/libs/gl-matrix-2/mat4f64\",\"../../../support/buffer/glUtil\",\"../../lib/DefaultVertexAttributeLocations\",\"../../lib/IntervalUtilities\",\"../../lib/ResizableFloat32Array\",\"../../lib/Util\",\"../WaterGLMaterial\",\"./Instance\",\"./utils\",\"../../../../webgl/BufferObject\",\"../../../../webgl/Util\",\"../../../../webgl/VertexArrayObject\"],function(e,t,r,a,n,i,o,s,u,d,l,f,g,h,p){function m(e,t,r,a){for(var n=new Map,i=t.vertexBufferLayout.stride/4,o=function(r,a){var o=r.origin,s=e.get(o.id),u=n.get(o.id);null==u&&(u={optimalCount:null==s?0:s.optimalCount,sparseCount:null==s?0:s.buffer.size,toAdd:[],toRemove:[],origin:o.vec3},n.set(o.id,u));var d=t.elementCount(r.data)*i;a?(u.optimalCount+=d,u.sparseCount+=d,u.toAdd.push(r)):(u.optimalCount-=d,u.toRemove.push(r))},s=0,u=r;s<u.length;s++){var d=u[s];o(d,!0)}for(var l=0,f=a;l<f.length;l++){var d=f[l];o(d,!1)}return n}var c=function(){function e(e,t,r,a){void 0===a&&(a=i.Default3D),this.type=\"MergedRenderer\",this._dataByOrigin=new Map,this._highlightCount=0,this._rctx=e,this._vertexAttributeLocations=a,this._material=r,this._materialRep=t,this._glMaterials=f.acquireMaterials(this._material,this._materialRep),this._bufferWriter=r.createBufferWriter()}return e.prototype.dispose=function(){f.releaseMaterials(this._material,this._materialRep)},Object.defineProperty(e.prototype,\"isEmpty\",{get:function(){return 0===this._dataByOrigin.size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"hasHighlights\",{get:function(){return this._highlightCount>0},enumerable:!0,configurable:!0}),e.prototype.hasWater=function(){var e=!1;return this._glMaterials.forEach(function(t){e=e||t instanceof d.WaterGLMaterial}),e},e.prototype.renderPriority=function(){return this._material.renderPriority},e.prototype.modify=function(e){var t=this,r=R;r.clear(),this.updateGeometries(e.toUpdate,r),this.addAndRemoveGeometries(e.toAdd,e.toRemove,r),this.updateHighlightCount(),r.forEach(function(e){return t.updateDisplayedIndexRanges(e)})},e.prototype.addAndRemoveGeometries=function(e,t,r){var a=this,n=this._bufferWriter,i=n.vertexBufferLayout,o=i.stride/4,s=this._dataByOrigin,d=m(s,n,e,t);d.forEach(function(e,t){d.delete(t);var n=e.optimalCount,l=e.sparseCount,f=s.get(t);if(null==f&&(u.assert(n>0),f=a.createData(i,n,e.origin),s.set(t,f)),0===n)return f.vao.dispose(!0),f.vao=null,void s.delete(t);var g=n<e.sparseCount/2,h=g?n:l,p=y,m=f.buffer.size,c=f.buffer.array,b=f.buffer.resize(h,!1);g||b?a.removeAndRebuild(f,e.toRemove,o,c,p):e.toRemove.length>0?(a.removeByErasing(f,e.toRemove,o,p),e.toAdd.length>0&&(p.end=m)):(p.begin=m,p.end=m);var x=v;u.setMatrixTranslation3(x,-e.origin[0],-e.origin[1],-e.origin[2]),a.append(f,e.toAdd,o,x,p);var R=f.vao.vertexBuffers.geometry;if(R.byteSize!==f.buffer.array.buffer.byteLength)R.setData(f.buffer.array);else{var _=p.begin,C=p.end;if(_<C){var I=f.buffer.array,A=4*_,w=4*C;R.setSubData(I,A,A,w)}}(p.updatedDisplayedIndexRange||f.displayedIndexRanges)&&r.add(f)})},e.prototype.updateGeometries=function(e,t){for(var r=this._bufferWriter,a=r.vertexBufferLayout.stride/4,n=0,i=e;n<i.length;n++){var o=i[n],s=o.updateType,d=o.renderGeometry,l=this._dataByOrigin.get(d.origin.id),g=l&&l.instances.get(d.uniqueName);if(!g)return;if(1&s&&(g.displayedIndexRange=f.generateRenderGeometryVisibleIndexRanges(d),t.add(l)),17&s&&(g.highlightedIndexRanges=f.generateRenderGeometryHighlightRanges(d),l.highlightCount=null),6&s){var h=l.buffer.array,p=l.vao;f.calculateTransformRelToOrigin(d,b,x),r.write({transformation:b,invTranspTransformation:x},d.data,r.vertexBufferLayout.createView(h.buffer),g.from),u.assert(g.from+r.elementCount(d.data)===g.to,\"material VBO layout has changed\"),p.vertexBuffers.geometry.setSubData(h,g.from*a*4,g.from*a*4,g.to*a*4)}}},e.prototype.updateDisplayedIndexRanges=function(e){e.displayedIndexRanges=[];var t=!0;e.instances.forEach(function(r){r.displayedIndexRange?(e.displayedIndexRanges.push.apply(e.displayedIndexRanges,o.offsetIntervals(r.displayedIndexRange,r.from)),t=!1):e.displayedIndexRanges.push([r.from,r.to-1])}),e.displayedIndexRanges=t?null:o.mergeIntervals(e.displayedIndexRanges)},e.prototype.updateHighlightCount=function(){var e=this;this._highlightCount=0,this._dataByOrigin.forEach(function(t){if(null==t.highlightCount){var r=0;t.instances.forEach(function(e){e.highlightedIndexRanges&&++r}),t.highlightCount=r}e._highlightCount+=t.highlightCount})},e.prototype.updateLogic=function(e){return this._material.update(e)},e.prototype.render=function(e,t,r,n){var i=this,o=this._rctx,s=this._glMaterials.get(t.pass),u=4===t.pass,d=e;if(2===t.pass&&null===d&&(d=19),!s||1===s.ensureResources(o)||null!=d&&!s.beginSlot(d)||u&&0===this._highlightCount)return!1;s.bind(o,r);var l=s.getProgram();l.setUniformMatrix4fv(\"model\",a.mat4f64.IDENTITY),l.hasUniform(\"modelNormal\")&&l.setUniformMatrix4fv(\"modelNormal\",a.mat4f64.IDENTITY);var f=!1;return this._dataByOrigin.forEach(function(e){u&&0===e.highlightCount||(r.origin=e.origin,s.bindView(r),f=u?i.renderHighlightPass(s,e,n)||f:i.renderDefaultPass(s,e,n)||f)}),s.release(),f},e.prototype.renderDefaultPass=function(e,t,r){var a=this._rctx,n=e.getDrawMode(),i=t.displayedIndexRanges;if(i&&0===i.length)return!1;if(e.ensureAttributeLocations(t.vao),a.bindVAO(t.vao),i)f.drawArraysFaceRange(a,i,0,n,r);else{var o=4*t.buffer.size/h.getStride(t.vao.layout.geometry);f.drawArrays(a,n,0,o,r)}return!0},e.prototype.renderHighlightPass=function(e,t,r){var a=this._rctx,n=e.getDrawMode(),i=t.vao;e.ensureAttributeLocations(i),a.bindVAO(i);var o=!1;return t.instances.forEach(function(e){var t=e.highlightedIndexRanges;if(t&&0!==t.length)for(var i=0;i<t.length;i++){var s=t[i],u=s.range?s.range[0]+e.from:e.from,d=s.range?s.range[1]-s.range[0]+1:e.to-e.from;f.drawArrays(a,n,u,d,r),o=!0}}),o},e.prototype.createData=function(e,t,r){return{instances:new Map,vao:new p(this._rctx,this._vertexAttributeLocations,{geometry:n.glLayout(e)},{geometry:g.createVertex(this._rctx,35044)}),buffer:new s.ResizableFloat32Array(t),optimalCount:0,origin:r,highlightCount:0}},e.prototype.removeAndRebuild=function(e,t,r,a,n){for(var i=0,o=t;i<o.length;i++){var s=o[i],u=s.uniqueName,d=e.instances.get(u);e.optimalCount-=(d.to-d.from)*r,e.instances.delete(u)}var l=0,f=e.buffer.array;n.begin=0,n.end=0;var g=-1,h=-1,p=0;e.instances.forEach(function(e){var t=e.from*r,n=e.to*r,i=n-t;g!==h&&h!==t?(f.set(a.subarray(g,h),p),p+=h-g,g=t):-1===g&&(g=t),h=n,e.from=l/r,l+=i,e.to=l/r}),g!==h&&f.set(a.subarray(g,h),p),n.end=l},e.prototype.removeByErasing=function(e,t,r,a){a.begin=1/0,a.end=-1/0;for(var n=-1,i=-1,o=0,s=t;o<s.length;o++){var u=s[o],d=u.uniqueName,l=e.instances.get(d),f=l.from*r,g=l.to*r;n!==i&&i!==f?(e.buffer.erase(n,i),n=f):-1===n&&(n=f),i=g,e.instances.delete(d),e.optimalCount-=g-f,f<a.begin&&(a.begin=f),g>a.end&&(a.end=g)}n!==i&&e.buffer.erase(n,i)},e.prototype.append=function(e,t,a,n,i){i.updatedDisplayedIndexRange=!1;for(var o=this._bufferWriter,s=0,d=t;s<d.length;s++){var g=d[s],h=g.data;r.mat4.multiply(b,n,g.transformation),r.mat4.invert(x,b),r.mat4.transpose(x,x);var p=i.end;o.write({transformation:b,invTranspTransformation:x},h,o.vertexBufferLayout.createView(e.buffer.array.buffer),i.end/a);var m=o.elementCount(h)*a,c=p+m;u.assert(null==e.instances.get(g.uniqueName));var y=f.generateRenderGeometryVisibleIndexRanges(g),v=f.generateRenderGeometryHighlightRanges(g);v&&(e.highlightCount=null);var R=new l(g.name,p/a,c/a,y,v,void 0,void 0,g.idx);e.instances.set(g.uniqueName,R),y&&(i.updatedDisplayedIndexRange=!0),e.optimalCount+=m,i.end+=m}},Object.defineProperty(e.prototype,\"test\",{get:function(){return{material:this._material}},enumerable:!0,configurable:!0}),e}(),y={updatedDisplayedIndexRange:!1,begin:0,end:0},v=a.mat4f64.create(),b=a.mat4f64.create(),x=a.mat4f64.create(),R=new Set;return c});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../../core/libs/gl-matrix-2/mat4\",\"../../../../../core/libs/gl-matrix-2/mat4f64\",\"../../lib/ComponentUtils\",\"../../lib/Util\",\"../../../../webgl/Util\"],function(e,t,r,n,a,i,s){function l(e){if(e.instanceParameters.hidden)return[];var t=e.instanceParameters.componentVisibilities,r=e.componentOffsets;return a.generateVisibleIndexRanges(t,r)}function o(e){if(e.instanceParameters.hidden)return null;var t=e.instanceParameters.componentVisibilities,r=e.instanceParameters.componentHighlights,n=e.componentOffsets;return a.generateHighlightedIndexRanges(t,r,n)}function c(e){if(e.instanceParameters.hidden)return!1;var t=e.instanceParameters.componentVisibilities,r=e.instanceParameters.componentHighlights,n=e.componentOffsets;return a.hasHighlights(t,r,n)}function d(e){if(e.instanceParameters.hidden)return!0;var t=e.instanceParameters.componentVisibilities,r=e.componentOffsets;return a.isAllHidden(t,r)}function m(e,t,r,n,a){e.drawArrays(t,r,n),a&&(a.drawCalls++,4===t&&(a.triangles+=n))}function g(e,t,r,n,a,i){var l=s.getBytesPerElement(r);e.drawElements(t,a,r,n*l),i&&(i.drawCalls++,4===t&&(i.triangles+=a))}function h(e,t,r,n,a){for(var i=0,s=0,l=t;s<l.length;s++){var o=l[s],c=o[0]+r,d=o[1]-o[0]+1;i+=d,e.drawArrays(n,c,d)}a&&(a.drawCalls+=t.length,4===n&&(a.triangles=i/3))}function u(e,t,r,n,a,i){for(var l=s.getBytesPerElement(a),o=0,c=0,d=t;c<d.length;c++){var m=d[c],g=m[0]+r,h=m[1]-m[0]+1;o+=h,e.drawElements(n,h,a,g*l)}i&&(i.drawCalls+=t.length,4===n&&(i.triangles+=o/3))}function f(e,t){var r=new Map;return r.set(0,t.acquire(e,\"color\")),r.set(3,t.acquire(e,\"depthShadowMap\")),r.set(2,t.acquire(e,\"normal\")),r.set(1,t.acquire(e,\"depth\")),r.set(4,t.acquire(e,\"highlight\")),r}function p(e,t){t.release(e.id,\"color\"),t.release(e.id,\"depthShadowMap\"),t.release(e.id,\"normal\"),t.release(e.id,\"depth\"),t.release(e.id,\"highlight\")}function v(e,t,n){var a=e.origin.vec3;i.setMatrixTranslation3(w,-a[0],-a[1],-a[2]),r.mat4.multiply(t,w,e.transformation),n&&(r.mat4.invert(n,t),r.mat4.transpose(n,n))}Object.defineProperty(t,\"__esModule\",{value:!0}),t.generateRenderGeometryVisibleIndexRanges=l,t.generateRenderGeometryHighlightRanges=o,t.doesRenderGeometryHaveHighlights=c,t.isRenderGeometryHidden=d,t.drawArrays=m,t.drawElements=g,t.drawArraysFaceRange=h,t.drawElementsFaceRange=u,t.acquireMaterials=f,t.releaseMaterials=p,t.calculateTransformRelToOrigin=v;var w=n.mat4f64.create()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/makeTemplateObjectHelper\",\"../collections/Component/Material/shader/DecodeSymbolColor.glsl\",\"../core/shaderLibrary/DiscardOrAdjustAlpha.glsl\",\"../core/shaderLibrary/ForwardLinearDepth.glsl\",\"../core/shaderLibrary/Offset.glsl\",\"../core/shaderLibrary/Slice.glsl\",\"../core/shaderLibrary/Transform.glsl\",\"../core/shaderLibrary/attributes/PositionAttribute.glsl\",\"../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl\",\"../core/shaderLibrary/attributes/VertexColor.glsl\",\"../core/shaderLibrary/attributes/VertexNormal.glsl\",\"../core/shaderLibrary/attributes/VerticalOffset.glsl\",\"../core/shaderLibrary/output/OutputDepth.glsl\",\"../core/shaderLibrary/shading/ComputeNormalTexture.glsl\",\"../core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl\",\"../core/shaderLibrary/shading/EvaluateSceneLighting.glsl\",\"../core/shaderLibrary/shading/HighlightData.glsl\",\"../core/shaderLibrary/shading/Normals.glsl\",\"../core/shaderLibrary/shading/PhysicallyBasedRendering.glsl\",\"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl\",\"../core/shaderLibrary/shading/ReadShadowMap.glsl\",\"../core/shaderLibrary/shading/VisualVariables.glsl\",\"../core/shaderLibrary/util/DoublePrecision.glsl\",\"../core/shaderLibrary/util/MixExternalColor.glsl\",\"../core/shaderModules/interfaces\",\"../core/shaderModules/ShaderBuilder\"],function(o,e,a,n,l,i,r,t,d,s,c,v,m,g,u,p,h,x,f,b,y,C,O,w,P,L,D,M){function N(o){var e=new M.ShaderBuilder,N=e.vertex.code,Bo=e.fragment.code;return N.add(D.glsl(A||(A=a([\"\\n    // --- Default Material:\\n    // \",\"\\n    // ---\\n  \"],[\"\\n    // --- Default Material:\\n    // \",\"\\n    // ---\\n  \"])),JSON.stringify(o))),Bo.add(D.glsl(S||(S=a([\"\\n    // --- Default Material:\\n    // \",\"\\n    // ---\\n  \"],[\"\\n    // --- Default Material:\\n    // \",\"\\n    // ---\\n  \"])),JSON.stringify(o))),e.vertex.uniforms.add(\"proj\",\"mat4\").add(\"view\",\"mat4\").add(\"camPos\",\"vec3\").add(\"localOrigin\",\"vec3\"),e.include(s.PositionAttribute),e.varyings.add(\"vpos\",\"vec3\"),e.include(w.VisualVariables,o),o.instanced&&o.instancedDoublePrecision?(e.attributes.add(\"modelOriginHi\",\"vec3\"),e.attributes.add(\"modelOriginLo\",\"vec3\"),e.attributes.add(\"model\",\"mat3\"),e.attributes.add(\"modelNormal\",\"mat3\")):(e.vertex.uniforms.add(\"model\",\"mat4\"),e.vertex.uniforms.add(\"modelNormal\",\"mat4\")),o.instancedDoublePrecision?(e.include(P.DoublePrecision,o),e.vertex.uniforms.add(\"viewOriginHi\",\"vec3\"),e.vertex.uniforms.add(\"viewOriginLo\",\"vec3\"),N.add(D.glsl(F||(F=a([\"\\n    vec3 calculateVPos() {\\n      return model * localPosition().xyz;\\n    }\\n    \"],[\"\\n    vec3 calculateVPos() {\\n      return model * localPosition().xyz;\\n    }\\n    \"]))))):N.add(D.glsl(T||(T=a([\"\\n    vec3 calculateVPos() {\\n      return (model * localPosition()).xyz;\\n    }\\n    \"],[\"\\n    vec3 calculateVPos() {\\n      return (model * localPosition()).xyz;\\n    }\\n    \"])))),e.include(g.VerticalOffset,o),0===o.output&&(e.include(d.Transform,{linearDepth:!1}),0===o.normalType&&o.offsetBackfaces&&e.include(r.Offset),e.include(p.ComputeNormalTexture,o),e.include(m.VertexNormal,o),o.instancedColor&&e.attributes.add(\"instanceColor\",\"vec4\"),e.varyings.add(\"localvpos\",\"vec3\"),e.include(c.TextureCoordinateAttribute,o),e.include(i.ForwardLinearDepth,o),o.symbolColor?(e.include(n.DecodeSymbolColor),e.attributes.add(\"symbolColor\",\"vec4\"),e.varyings.add(\"colorMixMode\",\"mediump float\")):e.fragment.uniforms.add(\"colorMixMode\",\"int\"),e.include(v.VertexColor,o),e.vertex.uniforms.add(\"externalColor\",\"vec4\"),e.varyings.add(\"vcolorExt\",\"vec4\"),e.vertex.defines.addFloat(\"SYMBOL_ALPHA_CUTOFF\",.001),N.add(D.glsl(_||(_=a([\"\\n      void main(void) {\\n        forwardNormalizedVertexColor();\\n        vcolorExt = externalColor;\\n        \",\"\\n        vcolorExt *= vvColor();\\n    \"],[\"\\n      void main(void) {\\n        forwardNormalizedVertexColor();\\n        vcolorExt = externalColor;\\n        \",\"\\n        vcolorExt *= vvColor();\\n    \"])),o.instancedColor?\"vcolorExt *= instanceColor;\":\"\")),o.symbolColor&&N.add(D.glsl(V||(V=a([\"\\n        int symbolColorMixMode;\\n        vcolorExt *= decodeSymbolColor(symbolColor, symbolColorMixMode) * 0.003921568627451; // = 1/255;\\n        colorMixMode = float(symbolColorMixMode) + 0.5; // add 0.5 to avoid interpolation artifacts\\n      \"],[\"\\n        int symbolColorMixMode;\\n        vcolorExt *= decodeSymbolColor(symbolColor, symbolColorMixMode) * 0.003921568627451; // = 1/255;\\n        colorMixMode = float(symbolColorMixMode) + 0.5; // add 0.5 to avoid interpolation artifacts\\n      \"])))),N.add(D.glsl(z||(z=a([\"\\n        if (vcolorExt.a < SYMBOL_ALPHA_CUTOFF) {\\n          gl_Position = vec4(1e38, 1e38, 1e38, 1.0);\\n        }\\n        else {\\n          vpos = calculateVPos();\\n          localvpos = vpos - view[3].xyz;\\n    \"],[\"\\n        if (vcolorExt.a < SYMBOL_ALPHA_CUTOFF) {\\n          gl_Position = vec4(1e38, 1e38, 1e38, 1.0);\\n        }\\n        else {\\n          vpos = calculateVPos();\\n          localvpos = vpos - view[3].xyz;\\n    \"])))),o.instancedDoublePrecision?(0===o.normalType&&N.add(D.glsl(E||(E=a([\"\\n          vNormalWorld = normalize(modelNormal * vvLocalNormal(normalModel()).xyz);\\n        \"],[\"\\n          vNormalWorld = normalize(modelNormal * vvLocalNormal(normalModel()).xyz);\\n        \"])))),N.add(D.glsl(B||(B=a([\"\\n          vec3 originDelta = dpAdd(viewOriginHi, viewOriginLo, -modelOriginHi, -modelOriginLo);\\n          vpos -= originDelta;\\n      \"],[\"\\n          vec3 originDelta = dpAdd(viewOriginHi, viewOriginLo, -modelOriginHi, -modelOriginLo);\\n          vpos -= originDelta;\\n      \"]))))):0===o.normalType&&N.add(D.glsl(H||(H=a([\"\\n          vNormalWorld = normalize((modelNormal * vvLocalNormal(normalModel())).xyz);\\n        \"],[\"\\n          vNormalWorld = normalize((modelNormal * vvLocalNormal(normalModel())).xyz);\\n        \"])))),N.add(D.glsl(j||(j=a([\"\\n          \",\"\\n          \",\"\\n          gl_Position = transformPosition(proj, view, vpos);\\n          \",\"\\n        }\\n        forwardLinearDepth();\\n        forwardTextureCoordinates();\\n      }\\n    \"],[\"\\n          \",\"\\n          \",\"\\n          gl_Position = transformPosition(proj, view, vpos);\\n          \",\"\\n        }\\n        forwardLinearDepth();\\n        forwardTextureCoordinates();\\n      }\\n    \"])),o.verticalOffsetEnabled?\"vpos += calculateVerticalOffset(vpos, localOrigin);\":\"\",o.vertexTangets?\"transformVertexTangent(mat3(modelNormal));\":\"\",0===o.normalType&&o.offsetBackfaces?\"gl_Position = offsetBackfacingClipPosition(gl_Position, vpos, vNormalWorld, camPos);\":\"\")),e.include(t.Slice,o),e.include(x.EvaluateSceneLighting,o),e.include(h.EvaluateAmbientOcclusion,o),e.include(l.DiscardOrAdjustAlpha,o),o.receiveShadows&&e.include(O.ReadShadowMap,o),e.fragment.uniforms.add(\"camPos\",\"vec3\").add(\"localOrigin\",\"vec3\").add(\"ambient\",\"vec3\").add(\"diffuse\",\"vec3\").add(\"specular\",\"vec3\").add(\"opacity\",\"float\").add(\"layerOpacity\",\"float\"),o.treeRendering&&e.fragment.uniforms.add(\"view\",\"mat4\"),o.hasColorTexture&&e.fragment.uniforms.add(\"tex\",\"sampler2D\"),3===o.normalType&&e.extensions.add(\"GL_OES_standard_derivatives\"),e.include(C.PhysicallyBasedRenderingParameters,o),e.include(y.PhysicallyBasedRendering,o),e.include(L.MixExternalColor,{stages:1}),e.include(b.Normals,o),Bo.add(D.glsl(R||(R=a([\"\\n        void main() {\\n          discardBySlice(vpos);\\n    \"],[\"\\n        void main() {\\n          discardBySlice(vpos);\\n    \"])))),o.hasColorTexture?(Bo.add(D.glsl(W||(W=a([\"\\n          vec4 texColor = texture2D(tex, vuv0);\\n      \"],[\"\\n          vec4 texColor = texture2D(tex, vuv0);\\n      \"])))),o.textureAlphaPremultiplied&&Bo.add(D.glsl(I||(I=a([\"\\n            texColor.rgb /= texColor.a;\\n        \"],[\"\\n            texColor.rgb /= texColor.a;\\n        \"])))),Bo.add(D.glsl(k||(k=a([\"\\n            discardOrAdjustAlpha(texColor);\\n      \"],[\"\\n            discardOrAdjustAlpha(texColor);\\n      \"]))))):Bo.add(D.glsl(G||(G=a([\"\\n            vec4 texColor = vec4(1.0);\\n      \"],[\"\\n            vec4 texColor = vec4(1.0);\\n      \"])))),Bo.add(D.glsl(U||(U=a([\"\\n            shadingParams.viewDirection = normalize(vpos - camPos);\\n    \"],[\"\\n            shadingParams.viewDirection = normalize(vpos - camPos);\\n    \"])))),3===o.normalType?Bo.add(D.glsl(Y||(Y=a([\"\\n        vec3 normal = normalize(cross(dFdx(localvpos),dFdy(localvpos)));\\n      \"],[\"\\n        vec3 normal = normalize(cross(dFdx(localvpos),dFdy(localvpos)));\\n      \"])))):Bo.add(D.glsl(J||(J=a([\"\\n        shadingParams.normalView = vNormalWorld;\\n        vec3 normal = shadingNormal(shadingParams);\\n      \"],[\"\\n        shadingParams.normalView = vNormalWorld;\\n        vec3 normal = shadingNormal(shadingParams);\\n      \"])))),o.usePBR&&Bo.add(D.glsl(q||(q=a([\"applyPBRFactors();\"],[\"applyPBRFactors();\"])))),Bo.add(D.glsl(K||(K=a([\"\\n        float ssao = evaluateAmbientOcclusionInverse();\\n        ssao *= getBakedOcclusion();\\n\\n        float additionalAmbientScale = _oldHeuristicLighting(vpos + localOrigin);\\n        vec3 additionalLight = ssao * lightingMainIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;\\n    \"],[\"\\n        float ssao = evaluateAmbientOcclusionInverse();\\n        ssao *= getBakedOcclusion();\\n\\n        float additionalAmbientScale = _oldHeuristicLighting(vpos + localOrigin);\\n        vec3 additionalLight = ssao * lightingMainIntensity * additionalAmbientScale * ambientBoostFactor * lightingGlobalFactor;\\n    \"])))),o.receiveShadows?e.fragment.code.add(D.glsl(Q||(Q=a([\"\\n        float shadow = readShadowMap(vpos, linearDepth);\\n      \"],[\"\\n        float shadow = readShadowMap(vpos, linearDepth);\\n      \"])))):0===o.viewingMode?e.fragment.code.add(D.glsl(X||(X=a([\"\\n        float shadow = lightingGlobalFactor * (1.0 - additionalAmbientScale);\\n      \"],[\"\\n        float shadow = lightingGlobalFactor * (1.0 - additionalAmbientScale);\\n      \"])))):e.fragment.code.add(D.glsl(Z||(Z=a([\"\\n        float shadow = 0.0;\\n      \"],[\"\\n        float shadow = 0.0;\\n      \"])))),Bo.add(D.glsl($||($=a([\"\\n        vec3 matColor = max(ambient, diffuse);\\n    \"],[\"\\n        vec3 matColor = max(ambient, diffuse);\\n    \"])))),o.attributeColor?Bo.add(D.glsl(oo||(oo=a([\"\\n        vec3 albedo_ = mixExternalColor(vColor.rgb * matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));\\n        float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, int(colorMixMode));\\n      \"],[\"\\n        vec3 albedo_ = mixExternalColor(vColor.rgb * matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));\\n        float opacity_ = layerOpacity * mixExternalOpacity(vColor.a * opacity, texColor.a, vcolorExt.a, int(colorMixMode));\\n      \"])))):(Bo.add(D.glsl(eo||(eo=a([\"\\n        vec3 albedo_ = mixExternalColor(matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));\\n        float opacity_ = layerOpacity * mixExternalOpacity(opacity, texColor.a, vcolorExt.a, int(colorMixMode));\\n      \"],[\"\\n        vec3 albedo_ = mixExternalColor(matColor, texColor.rgb, vcolorExt.rgb, int(colorMixMode));\\n        float opacity_ = layerOpacity * mixExternalOpacity(opacity, texColor.a, vcolorExt.a, int(colorMixMode));\\n      \"])))),o.usePBR&&Bo.add(D.glsl(ao||(ao=a([\"\\n          if (int(colorMixMode) == 3 /* replace */) {\\n            reflectance = 0.2;\\n            roughness = 0.6;\\n            metalness = 0.0;\\n          }\\n        \"],[\"\\n          if (int(colorMixMode) == 3 /* replace */) {\\n            reflectance = 0.2;\\n            roughness = 0.6;\\n            metalness = 0.0;\\n          }\\n        \"]))))),o.hasNormalTexture?(o.vertexTangets?Bo.add(D.glsl(no||(no=a([\"\\n        mat3 tangentSpace = computeTangentSpace(normal);\\n        \"],[\"\\n        mat3 tangentSpace = computeTangentSpace(normal);\\n        \"])))):Bo.add(D.glsl(lo||(lo=a([\"\\n        mat3 tangentSpace = computeTangentSpace(normal, vpos, vuv0);\\n        \"],[\"\\n        mat3 tangentSpace = computeTangentSpace(normal, vpos, vuv0);\\n        \"])))),Bo.add(D.glsl(io||(io=a([\"\\n        vec3 shadedNormal = computeTextureNormal(tangentSpace, vuv0);\\n      \"],[\"\\n        vec3 shadedNormal = computeTextureNormal(tangentSpace, vuv0);\\n      \"]))))):Bo.add(D.glsl(ro||(ro=a([\"\\n        vec3 shadedNormal = normal;\\n      \"],[\"\\n        vec3 shadedNormal = normal;\\n      \"])))),o.treeRendering&&Bo.add(D.glsl(to||(to=a([\"\\n        shadedNormal = normalize(vNormalWorld);\\n        albedo_ *= 1.2;\\n        vec3 viewForward = - vec3(view[0][2], view[1][2], view[2][2]);\\n        float alignmentLightView = clamp(dot(-viewForward, lightingMainDirection), 0.0, 1.0);\\n\\n        float transmittance = 1.0 - clamp(dot(-viewForward, shadedNormal), 0.0, 1.0);\\n        float treeRadialFalloff = vColor.r;\\n        float backLightFactor = 0.5 * treeRadialFalloff * alignmentLightView * transmittance * (1.0 - shadow);\\n        additionalLight += backLightFactor * lightingMainIntensity;\\n    \"],[\"\\n        shadedNormal = normalize(vNormalWorld);\\n        albedo_ *= 1.2;\\n        vec3 viewForward = - vec3(view[0][2], view[1][2], view[2][2]);\\n        float alignmentLightView = clamp(dot(-viewForward, lightingMainDirection), 0.0, 1.0);\\n\\n        float transmittance = 1.0 - clamp(dot(-viewForward, shadedNormal), 0.0, 1.0);\\n        float treeRadialFalloff = vColor.r;\\n        float backLightFactor = 0.5 * treeRadialFalloff * alignmentLightView * transmittance * (1.0 - shadow);\\n        additionalLight += backLightFactor * lightingMainIntensity;\\n    \"])))),o.usePBR?Bo.add(D.glsl(so||(so=a([\"\\n        float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * lightingMainIntensity[2];\\n        vec3 normalGround = normalize(vpos + localOrigin);\\n        vec3 shadedColor = evaluateSceneLightingPBR(shadedNormal, albedo_, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, roughness, metalness, emission, reflectance, additionalAmbientIrradiance);\\n      \"],[\"\\n        float additionalAmbientIrradiance = additionalAmbientIrradianceFactor * lightingMainIntensity[2];\\n        vec3 normalGround = normalize(vpos + localOrigin);\\n        vec3 shadedColor = evaluateSceneLightingPBR(shadedNormal, albedo_, shadow, 1.0 - ssao, additionalLight, shadingParams.viewDirection, normalGround, roughness, metalness, emission, reflectance, additionalAmbientIrradiance);\\n      \"])))):Bo.add(D.glsl(co||(co=a([\"\\n        vec3 shadedColor = evaluateSceneLighting(shadedNormal, albedo_, shadow, 1.0 - ssao, additionalLight);\\n      \"],[\"\\n        vec3 shadedColor = evaluateSceneLighting(shadedNormal, albedo_, shadow, 1.0 - ssao, additionalLight);\\n      \"])))),Bo.add(D.glsl(vo||(vo=a([\"\\n        gl_FragColor = highlightSlice(vec4(shadedColor, opacity_), vpos);\\n      }\\n    \"],[\"\\n        gl_FragColor = highlightSlice(vec4(shadedColor, opacity_), vpos);\\n      }\\n    \"]))))),1!==o.output&&3!==o.output||(e.include(d.Transform,{linearDepth:!0}),e.include(c.TextureCoordinateAttribute,o),e.include(w.VisualVariables,o),e.include(u.OutputDepth,o),e.include(t.Slice,o),e.vertex.uniforms.add(\"nearFar\",\"vec2\"),e.varyings.add(\"depth\",\"float\"),o.hasColorTexture&&e.fragment.uniforms.add(\"tex\",\"sampler2D\"),N.add(D.glsl(mo||(mo=a([\"\\n      void main(void) {\\n        vpos = calculateVPos();\\n    \"],[\"\\n      void main(void) {\\n        vpos = calculateVPos();\\n    \"])))),o.instancedDoublePrecision&&N.add(D.glsl(go||(go=a([\"\\n        vec3 originDelta = dpAdd(viewOriginHi, viewOriginLo, -modelOriginHi, -modelOriginLo);\\n        vpos -= originDelta;\\n      \"],[\"\\n        vec3 originDelta = dpAdd(viewOriginHi, viewOriginLo, -modelOriginHi, -modelOriginLo);\\n        vpos -= originDelta;\\n      \"])))),o.verticalOffsetEnabled&&N.add(D.glsl(uo||(uo=a([\"\\n        vpos += calculateVerticalOffset(vpos, localOrigin);\\n      \"],[\"\\n        vpos += calculateVerticalOffset(vpos, localOrigin);\\n      \"])))),N.add(D.glsl(po||(po=a([\"\\n        gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth);\\n        forwardTextureCoordinates();\\n      }\\n    \"],[\"\\n        gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth);\\n        forwardTextureCoordinates();\\n      }\\n    \"])))),e.include(l.DiscardOrAdjustAlpha,o),Bo.add(D.glsl(ho||(ho=a([\"\\n      void main(void) {\\n        discardBySlice(vpos);\\n    \"],[\"\\n      void main(void) {\\n        discardBySlice(vpos);\\n    \"])))),o.hasColorTexture&&Bo.add(D.glsl(xo||(xo=a([\"\\n        vec4 texColor = texture2D(tex, vuv0);\\n        discardOrAdjustAlpha(texColor);\\n      \"],[\"\\n        vec4 texColor = texture2D(tex, vuv0);\\n        discardOrAdjustAlpha(texColor);\\n      \"])))),Bo.add(D.glsl(fo||(fo=a([\"\\n        outputDepth(depth);\\n      }\\n    \"],[\"\\n        outputDepth(depth);\\n      }\\n    \"]))))),2===o.output&&(3===o.normalType&&e.extensions.add(\"GL_OES_standard_derivatives\"),e.include(d.Transform,{linearDepth:!1}),e.include(m.VertexNormal,o),e.include(c.TextureCoordinateAttribute,o),e.include(w.VisualVariables,o),o.hasColorTexture&&e.fragment.uniforms.add(\"tex\",\"sampler2D\"),e.vertex.uniforms.add(\"viewNormal\",\"mat4\"),e.varyings.add(\"vPositionView\",\"vec3\"),N.add(D.glsl(bo||(bo=a([\"\\n      void main(void) {\\n        vpos = calculateVPos();\\n    \"],[\"\\n      void main(void) {\\n        vpos = calculateVPos();\\n    \"])))),o.instancedDoublePrecision?(0===o.normalType&&N.add(D.glsl(yo||(yo=a([\"\\n        vNormalWorld = normalize((viewNormal * vec4(modelNormal * vvLocalNormal(normalModel()).xyz, 1.0)).xyz);\\n        \"],[\"\\n        vNormalWorld = normalize((viewNormal * vec4(modelNormal * vvLocalNormal(normalModel()).xyz, 1.0)).xyz);\\n        \"])))),N.add(D.glsl(Co||(Co=a([\"\\n        vec3 originDelta = dpAdd(viewOriginHi, viewOriginLo, -modelOriginHi, -modelOriginLo);\\n        vpos -= originDelta;\\n      \"],[\"\\n        vec3 originDelta = dpAdd(viewOriginHi, viewOriginLo, -modelOriginHi, -modelOriginLo);\\n        vpos -= originDelta;\\n      \"]))))):0===o.normalType&&N.add(D.glsl(Oo||(Oo=a([\"\\n        vNormalWorld = normalize((viewNormal * modelNormal * vvLocalNormal(normalModel())).xyz);\\n        \"],[\"\\n        vNormalWorld = normalize((viewNormal * modelNormal * vvLocalNormal(normalModel())).xyz);\\n        \"])))),o.verticalOffsetEnabled&&N.add(D.glsl(wo||(wo=a([\"\\n        vpos += calculateVerticalOffset(vpos, localOrigin);\\n      \"],[\"\\n        vpos += calculateVerticalOffset(vpos, localOrigin);\\n      \"])))),N.add(D.glsl(Po||(Po=a([\"\\n        gl_Position = transformPosition(proj, view, vpos);\\n        forwardTextureCoordinates();\\n      }\\n    \"],[\"\\n        gl_Position = transformPosition(proj, view, vpos);\\n        forwardTextureCoordinates();\\n      }\\n    \"])))),e.include(t.Slice,o),e.include(l.DiscardOrAdjustAlpha,o),Bo.add(D.glsl(Lo||(Lo=a([\"\\n      void main() {\\n        discardBySlice(vpos);\\n    \"],[\"\\n      void main() {\\n        discardBySlice(vpos);\\n    \"])))),o.hasColorTexture&&Bo.add(D.glsl(Do||(Do=a([\"\\n          vec4 texColor = texture2D(tex, vuv0);\\n          discardOrAdjustAlpha(texColor);\\n      \"],[\"\\n          vec4 texColor = texture2D(tex, vuv0);\\n          discardOrAdjustAlpha(texColor);\\n      \"])))),3===o.normalType?Bo.add(D.glsl(Mo||(Mo=a([\"\\n        vec3 normal = normalize(cross(dFdx(vPositionView),dFdy(vPositionView)));\\n      \"],[\"\\n        vec3 normal = normalize(cross(dFdx(vPositionView),dFdy(vPositionView)));\\n      \"])))):Bo.add(D.glsl(No||(No=a([\"\\n        vec3 normal = normalize(vNormalWorld);\\n        if (gl_FrontFacing == false) normal = -normal;\\n      \"],[\"\\n        vec3 normal = normalize(vNormalWorld);\\n        if (gl_FrontFacing == false) normal = -normal;\\n      \"])))),Bo.add(D.glsl(Ao||(Ao=a([\"\\n        gl_FragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);\\n      }\\n    \"],[\"\\n        gl_FragColor = vec4(vec3(0.5) + 0.5 * normal, 1.0);\\n      }\\n    \"]))))),4===o.output&&(e.include(d.Transform,{linearDepth:!1}),e.include(c.TextureCoordinateAttribute,o),e.include(w.VisualVariables,o),o.hasColorTexture&&e.fragment.uniforms.add(\"tex\",\"sampler2D\"),N.add(D.glsl(So||(So=a([\"\\n      void main(void) {\\n        vpos = calculateVPos();\\n    \"],[\"\\n      void main(void) {\\n        vpos = calculateVPos();\\n    \"])))),o.instancedDoublePrecision&&N.add(D.glsl(Fo||(Fo=a([\"\\n        vec3 originDelta = dpAdd(viewOriginHi, viewOriginLo, -modelOriginHi, -modelOriginLo);\\n        vpos -= originDelta;\\n      \"],[\"\\n        vec3 originDelta = dpAdd(viewOriginHi, viewOriginLo, -modelOriginHi, -modelOriginLo);\\n        vpos -= originDelta;\\n      \"])))),o.verticalOffsetEnabled&&N.add(D.glsl(To||(To=a([\"\\n        vpos += calculateVerticalOffset(vpos, localOrigin);\\n      \"],[\"\\n        vpos += calculateVerticalOffset(vpos, localOrigin);\\n      \"])))),N.add(D.glsl(_o||(_o=a([\"\\n        gl_Position = transformPosition(proj, view, vpos);\\n        forwardTextureCoordinates();\\n      }\\n    \"],[\"\\n        gl_Position = transformPosition(proj, view, vpos);\\n        forwardTextureCoordinates();\\n      }\\n    \"])))),e.include(t.Slice,o),e.include(l.DiscardOrAdjustAlpha,o),e.include(f.HighlightData),e.fragment.uniforms.add(\"depthTex\",\"sampler2D\"),e.fragment.uniforms.add(\"highlightViewportPixelSz\",\"vec4\"),Bo.add(D.glsl(Vo||(Vo=a([\"\\n      void main() {\\n        discardBySlice(vpos);\\n    \"],[\"\\n      void main() {\\n        discardBySlice(vpos);\\n    \"])))),o.hasColorTexture&&Bo.add(D.glsl(zo||(zo=a([\"\\n        vec4 texColor = texture2D(tex, vuv0);\\n        discardOrAdjustAlpha(texColor);\\n      \"],[\"\\n        vec4 texColor = texture2D(tex, vuv0);\\n        discardOrAdjustAlpha(texColor);\\n      \"])))),Bo.add(D.glsl(Eo||(Eo=a([\"\\n        gl_FragColor = highlightData(gl_FragCoord, depthTex, highlightViewportPixelSz);\\n      }\\n    \"],[\"\\n        gl_FragColor = highlightData(gl_FragCoord, depthTex, highlightViewportPixelSz);\\n      }\\n    \"]))))),e}Object.defineProperty(e,\"__esModule\",{value:!0}),e.build=N;var A,S,F,T,_,V,z,E,B,H,j,R,W,I,k,G,U,Y,J,q,K,Q,X,Z,$,oo,eo,ao,no,lo,io,ro,to,so,co,vo,mo,go,uo,po,ho,xo,fo,bo,yo,Co,Oo,wo,Po,Lo,Do,Mo,No,Ao,So,Fo,To,_o,Vo,zo,Eo});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/extendsHelper\",\"../../../../core/tsSupport/decorateHelper\",\"../core/shaderLibrary/output/OutputHighlight.glsl\",\"../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl\",\"../core/shaderLibrary/shading/VisualVariables.glsl\",\"../core/shaderLibrary/util/DoublePrecision.glsl\",\"../core/shaderTechnique/ReloadableShaderModule\",\"../core/shaderTechnique/ShaderTechnique\",\"../core/shaderTechnique/ShaderTechniqueConfiguration\",\"../lib/DefaultVertexAttributeLocations\",\"../materials/internal/MaterialUtil\",\"./DefaultMaterial.glsl\",\"../../../webgl/Program\"],function(e,r,t,o,a,i,s,n,l,u,p,d,c,h,m){Object.defineProperty(r,\"__esModule\",{value:!0});var v=function(r){function o(){return null!==r&&r.apply(this,arguments)||this}return t(o,r),o.prototype.initializeProgram=function(e){var r=o.shader.get(),t=this.configuration,a=r.build({output:t.output,viewingMode:e.viewingMode,receiveShadows:t.receiveShadows,slicePlaneEnabled:t.slice,sliceHighlightDisabled:t.sliceHighlightDisabled,symbolColor:t.symbolColors,vvSize:t.vvSize,vvColor:t.vvColor,instanced:t.instanced,instancedColor:t.instancedColor,instancedDoublePrecision:t.instancedDoublePrecision,useOldSceneLightInterface:!1,usePBR:t.usePBR,hasMetalnessAndRoughnessTexture:t.hasMetalnessAndRoughnessTexture,hasEmissionTexture:t.hasEmissionTexture,hasOcclusionTexture:t.hasOcclusionTexture,hasNormalTexture:t.hasNormalTexture,hasColorTexture:t.hasColorTexture,receiveAmbientOcclusion:t.receiveAmbientOcclusion,usePBRforWater:!1,useCustomDTRExponentForWater:!1,normalType:t.normalsTypeDerivate?3:0,doubleSidedMode:t.doubleSidedMode,vertexTangets:t.vertexTangents,attributeTextureCoordinates:t.hasMetalnessAndRoughnessTexture||t.hasEmissionTexture||t.hasOcclusionTexture||t.hasNormalTexture||t.hasColorTexture?1:0,textureAlphaPremultiplied:t.textureAlphaPremultiplied,attributeColor:t.vertexColors,screenSizePerspectiveEnabled:t.screenSizePerspective,verticalOffsetEnabled:t.verticalOffset,offsetBackfaces:t.offsetBackfaces,doublePrecisionRequiresObfuscation:n.doublePrecisionRequiresObfuscation(e.rctx),alphaDiscardMode:t.alphaDiscardMode,treeRendering:t.treeRendering,supportsTextureAtlas:!1});return new m(e.rctx,a.generateSource(\"vertex\"),a.generateSource(\"fragment\"),d.Default3D)},o.prototype.bindPass=function(e,r,t){var o=this.configuration.output;0===o?(this.program.setUniform3fv(\"ambient\",r.ambient),this.program.setUniform3fv(\"diffuse\",r.diffuse),this.program.setUniform3fv(\"specular\",r.specular),this.program.setUniform4fv(\"externalColor\",r.externalColor),this.program.setUniform1i(\"colorMixMode\",c.colorMixModes[r.colorMixMode]),this.program.setUniform1f(\"opacity\",r.opacity),this.program.setUniform1f(\"layerOpacity\",r.layerOpacity),this.configuration.usePBR&&i.PhysicallyBasedRenderingParameters.bindUniforms(this.program,r)):1===o||3===o?this.program.setUniform2fv(\"nearFar\",t.nearFar):4===o&&a.OutputHighlight.bindOutputHighlight(e,this.program,t),s.VisualVariables.bindUniformsForSymbols(this.program,r),\"mask\"!==r.textureAlphaMode&&\"maskBlend\"!==r.textureAlphaMode||this.program.setUniform1f(\"textureAlphaCutoff\",r.textureAlphaCutoff)},o.prototype.initializePipeline=function(){return null},o.shader=new l.ReloadableShaderModule(h,\"./DefaultMaterial.glsl\",e),o}(u.ShaderTechnique);r.DefaultMaterialTechnique=v;var f=function(e){function r(){var r=null!==e&&e.apply(this,arguments)||this;return r.output=0,r.alphaDiscardMode=1,r.doubleSidedMode=0,r.vertexColors=!1,r.offsetBackfaces=!1,r.symbolColors=!1,r.vvSize=!1,r.vvColor=!1,r.verticalOffset=!1,r.receiveShadows=!1,r.slice=!1,r.sliceHighlightDisabled=!1,r.receiveAmbientOcclusion=!1,r.screenSizePerspective=!1,r.textureAlphaPremultiplied=!1,r.treeRendering=!1,r.hasColorTexture=!1,r.usePBR=!1,r.hasMetalnessAndRoughnessTexture=!1,r.hasEmissionTexture=!1,r.hasOcclusionTexture=!1,r.hasNormalTexture=!1,r.instanced=!1,r.instancedColor=!1,r.instancedDoublePrecision=!1,r.vertexTangents=!1,r.normalsTypeDerivate=!1,r}return t(r,e),o([p.parameter({count:6})],r.prototype,\"output\",void 0),o([p.parameter({count:4})],r.prototype,\"alphaDiscardMode\",void 0),o([p.parameter({count:3})],r.prototype,\"doubleSidedMode\",void 0),o([p.parameter()],r.prototype,\"vertexColors\",void 0),o([p.parameter()],r.prototype,\"offsetBackfaces\",void 0),o([p.parameter()],r.prototype,\"symbolColors\",void 0),o([p.parameter()],r.prototype,\"vvSize\",void 0),o([p.parameter()],r.prototype,\"vvColor\",void 0),o([p.parameter()],r.prototype,\"verticalOffset\",void 0),o([p.parameter()],r.prototype,\"receiveShadows\",void 0),o([p.parameter()],r.prototype,\"slice\",void 0),o([p.parameter()],r.prototype,\"sliceHighlightDisabled\",void 0),o([p.parameter()],r.prototype,\"receiveAmbientOcclusion\",void 0),o([p.parameter()],r.prototype,\"screenSizePerspective\",void 0),o([p.parameter()],r.prototype,\"textureAlphaPremultiplied\",void 0),o([p.parameter()],r.prototype,\"treeRendering\",void 0),o([p.parameter()],r.prototype,\"hasColorTexture\",void 0),o([p.parameter()],r.prototype,\"usePBR\",void 0),o([p.parameter()],r.prototype,\"hasMetalnessAndRoughnessTexture\",void 0),o([p.parameter()],r.prototype,\"hasEmissionTexture\",void 0),o([p.parameter()],r.prototype,\"hasOcclusionTexture\",void 0),o([p.parameter()],r.prototype,\"hasNormalTexture\",void 0),o([p.parameter()],r.prototype,\"instanced\",void 0),o([p.parameter()],r.prototype,\"instancedColor\",void 0),o([p.parameter()],r.prototype,\"instancedDoublePrecision\",void 0),o([p.parameter()],r.prototype,\"vertexTangents\",void 0),o([p.parameter()],r.prototype,\"normalsTypeDerivate\",void 0),r}(p.ShaderTechniqueConfiguration);r.DefaultMaterialTechniqueConfiguration=f});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../lib/DefaultVertexAttributeLocations\",\"./sources/resolver\"],function(e,r,t,a){Object.defineProperty(r,\"__esModule\",{value:!0}),r.program={name:\"laserline\",shaders:{vertexShader:a.resolveIncludes(\"util/quad.vert\"),fragmentShader:a.resolveIncludes(\"renderer/laserLine/laserLine.frag\")},attributes:t.Default3D}});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/makeTemplateObjectHelper\",\"../core/shaderLibrary/Slice.glsl\",\"../core/shaderLibrary/attributes/RibbonVertexPosition.glsl\",\"../core/shaderLibrary/shading/LineStipple.glsl\",\"../core/shaderLibrary/shading/PiUtils.glsl\",\"../core/shaderModules/interfaces\",\"../core/shaderModules/ShaderBuilder\"],function(e,n,t,i,o,r,s,l,a){function p(e){var n=new a.ShaderBuilder;return n.extensions.add(\"GL_OES_standard_derivatives\"),n.include(s.PiUtils),n.include(o.RibbonVertexPosition,e),n.include(r.LineStipple,e),n.vertex.uniforms.add(\"proj\",\"mat4\").add(\"view\",\"mat4\").add(\"model\",\"mat4\").add(\"nearPlane\",\"float\").add(\"pixelRatio\",\"float\").add(\"miterLimit\",\"float\").add(\"screenSize\",\"vec2\"),n.attributes.add(\"position\",\"vec3\"),n.attributes.add(\"subdivisionFactor\",\"float\"),n.attributes.add(\"uv0\",\"vec2\"),n.attributes.add(\"auxpos1\",\"vec3\"),n.attributes.add(\"auxpos2\",\"vec3\"),n.varyings.add(\"vColor\",\"vec4\"),n.varyings.add(\"vpos\",\"vec3\"),n.vertex.code.add(l.glsl(c||(c=t([\"\\n\\t\\t#define PERPENDICULAR(v) vec2(v.y, -v.x);\\n\\t\\t#define ISOUTSIDE (left.x * right.y - left.y * right.x)*uv0.y > 0.0\\n\\n\\t\\tfloat interp(float ncp, vec4 a, vec4 b) {\\n\\t\\t\\treturn (-ncp - a.z) / (b.z - a.z);\\n\\t\\t}\\n\\n\\t\\tvec2 rotate(vec2 v, float a) {\\n\\t\\t\\tfloat s = sin(a);\\n\\t\\t\\tfloat c = cos(a);\\n\\t\\t\\tmat2 m = mat2(c, -s, s, c);\\n\\t\\t\\treturn m * v;\\n\\t\\t}\\n\"],[\"\\n\\t\\t#define PERPENDICULAR(v) vec2(v.y, -v.x);\\n\\t\\t#define ISOUTSIDE (left.x * right.y - left.y * right.x)*uv0.y > 0.0\\n\\n\\t\\tfloat interp(float ncp, vec4 a, vec4 b) {\\n\\t\\t\\treturn (-ncp - a.z) / (b.z - a.z);\\n\\t\\t}\\n\\n\\t\\tvec2 rotate(vec2 v, float a) {\\n\\t\\t\\tfloat s = sin(a);\\n\\t\\t\\tfloat c = cos(a);\\n\\t\\t\\tmat2 m = mat2(c, -s, s, c);\\n\\t\\t\\treturn m * v;\\n\\t\\t}\\n\"])))),n.vertex.code.add(l.glsl(d||(d=t([\"\\n    vec4 projectAndScale(vec4 pos) {\\n      vec4 posNdc = proj * pos;\\n\\n      // Note that posNdc is in -1:1, scaling by screenSize converts this to a coordinate system\\n      // that is twice scaled (going from -size:size).\\n      posNdc.xy *= screenSize / posNdc.w;\\n      return posNdc;\\n    }\\n\"],[\"\\n    vec4 projectAndScale(vec4 pos) {\\n      vec4 posNdc = proj * pos;\\n\\n      // Note that posNdc is in -1:1, scaling by screenSize converts this to a coordinate system\\n      // that is twice scaled (going from -size:size).\\n      posNdc.xy *= screenSize / posNdc.w;\\n      return posNdc;\\n    }\\n\"])))),n.vertex.code.add(l.glsl(v||(v=t([\"\\n    void clipAndTransform(inout vec4 pos, inout vec4 prev, inout vec4 next, in bool isStartVertex) {\\n      float vnp = nearPlane*0.99;\\n\\n      //current pos behind ncp --\\x3e we need to clip\\n      if(pos.z > -nearPlane) {\\n        if (!isStartVertex) {\\n          //previous in front of ncp\\n          if(prev.z < -nearPlane) {\\n            pos = mix(prev, pos, interp(vnp, prev, pos));\\n            next = pos;\\n          } else {\\n            pos = vec4(0.0, 0.0, 0.0, 1.0);\\n          }\\n        }\\n        //next in front of ncp\\n        if(isStartVertex) {\\n          if(next.z < -nearPlane) {\\n            pos = mix(pos, next, interp(vnp, pos, next));\\n            prev = pos;\\n          } else {\\n            pos = vec4(0.0, 0.0, 0.0, 1.0);\\n          }\\n        }\\n      } else {\\n        //current position visible\\n        //previous behind ncp\\n        if (prev.z > -nearPlane) {\\n          prev = mix(pos, prev, interp(vnp, pos, prev));\\n        }\\n        //next behind ncp\\n        if (next.z > -nearPlane) {\\n          next = mix(next, pos, interp(vnp, next, pos));\\n        }\\n      }\\n\\n      pos = projectAndScale(pos);\\n      next = projectAndScale(next);\\n      prev = projectAndScale(prev);\\n    }\\n\"],[\"\\n    void clipAndTransform(inout vec4 pos, inout vec4 prev, inout vec4 next, in bool isStartVertex) {\\n      float vnp = nearPlane*0.99;\\n\\n      //current pos behind ncp --\\x3e we need to clip\\n      if(pos.z > -nearPlane) {\\n        if (!isStartVertex) {\\n          //previous in front of ncp\\n          if(prev.z < -nearPlane) {\\n            pos = mix(prev, pos, interp(vnp, prev, pos));\\n            next = pos;\\n          } else {\\n            pos = vec4(0.0, 0.0, 0.0, 1.0);\\n          }\\n        }\\n        //next in front of ncp\\n        if(isStartVertex) {\\n          if(next.z < -nearPlane) {\\n            pos = mix(pos, next, interp(vnp, pos, next));\\n            prev = pos;\\n          } else {\\n            pos = vec4(0.0, 0.0, 0.0, 1.0);\\n          }\\n        }\\n      } else {\\n        //current position visible\\n        //previous behind ncp\\n        if (prev.z > -nearPlane) {\\n          prev = mix(pos, prev, interp(vnp, pos, prev));\\n        }\\n        //next behind ncp\\n        if (next.z > -nearPlane) {\\n          next = mix(next, pos, interp(vnp, next, pos));\\n        }\\n      }\\n\\n      pos = projectAndScale(pos);\\n      next = projectAndScale(next);\\n      prev = projectAndScale(prev);\\n    }\\n\"])))),n.vertex.code.add(l.glsl(m||(m=t([\"\\n  void main(void) {\\n    float coverage = 1.0;\\n    vpos = (model * vec4(position, 1.0)).xyz;\\n\\n    // Check for special value of uv0.y which is used by the Renderer when graphics\\n    // are removed before the VBO is recompacted. If this is the case, then we just\\n    // project outside of clip space.\\n    if (uv0.y == 0.0) {\\n      // Project out of clip space\\n      gl_Position = vec4(1e038, 1e038, 1e038, 1.0);\\n    }\\n    else {\\n      bool isStartVertex = abs(abs(uv0.y)-3.0) == 1.0;\\n      bool isJoin = abs(uv0.y)-3.0 < 0.0;\\n\\n      float lineWidth = getSize() * pixelRatio;\\n\\n      // convert sub-pixel coverage to alpha\\n      if( lineWidth<1.0 ){\\n        coverage = lineWidth;\\n        lineWidth = 1.0;\\n      }\\n\\n      vec4 pos  = view * vec4((model * vec4(position.xyz, 1.0)).xyz, 1.0);\\n      vec4 prev = view * vec4((model * vec4(auxpos1.xyz, 1.0)).xyz, 1.0);\\n      vec4 next = view * vec4((model * vec4(auxpos2.xyz, 1.0)).xyz, 1.0);\\n\\n      clipAndTransform(pos, prev, next, isStartVertex);\\n\\n      vec2 left = (pos.xy - prev.xy);\\n      vec2 right = (next.xy - pos.xy);\\n\\n      float leftLen = length(left);\\n      float rightLen = length(right);\\n  \"],[\"\\n  void main(void) {\\n    float coverage = 1.0;\\n    vpos = (model * vec4(position, 1.0)).xyz;\\n\\n    // Check for special value of uv0.y which is used by the Renderer when graphics\\n    // are removed before the VBO is recompacted. If this is the case, then we just\\n    // project outside of clip space.\\n    if (uv0.y == 0.0) {\\n      // Project out of clip space\\n      gl_Position = vec4(1e038, 1e038, 1e038, 1.0);\\n    }\\n    else {\\n      bool isStartVertex = abs(abs(uv0.y)-3.0) == 1.0;\\n      bool isJoin = abs(uv0.y)-3.0 < 0.0;\\n\\n      float lineWidth = getSize() * pixelRatio;\\n\\n      // convert sub-pixel coverage to alpha\\n      if( lineWidth<1.0 ){\\n        coverage = lineWidth;\\n        lineWidth = 1.0;\\n      }\\n\\n      vec4 pos  = view * vec4((model * vec4(position.xyz, 1.0)).xyz, 1.0);\\n      vec4 prev = view * vec4((model * vec4(auxpos1.xyz, 1.0)).xyz, 1.0);\\n      vec4 next = view * vec4((model * vec4(auxpos2.xyz, 1.0)).xyz, 1.0);\\n\\n      clipAndTransform(pos, prev, next, isStartVertex);\\n\\n      vec2 left = (pos.xy - prev.xy);\\n      vec2 right = (next.xy - pos.xy);\\n\\n      float leftLen = length(left);\\n      float rightLen = length(right);\\n  \"])))),e.stippleEnabled&&n.vertex.code.add(l.glsl(f||(f=t([\"\\n      // uv0.x is either 0 or 1, depending on whether this is considered the start of a line segment\\n      // or the end. If start, then use pos->next, otherwise use prev->pos to define the line segment\\n      // vector\\n      vec4 stippleSegmentInfo = mix(vec4(pos.xy, right), vec4(prev.xy, left), uv0.x);\\n      vec2 stippleSegmentOrigin = stippleSegmentInfo.xy;\\n\\n      // Scale s.t. it's in units of stipple pattern size.\\n      vec2 stippleSegmentDirection = stippleSegmentInfo.zw;\\n    \"],[\"\\n      // uv0.x is either 0 or 1, depending on whether this is considered the start of a line segment\\n      // or the end. If start, then use pos->next, otherwise use prev->pos to define the line segment\\n      // vector\\n      vec4 stippleSegmentInfo = mix(vec4(pos.xy, right), vec4(prev.xy, left), uv0.x);\\n      vec2 stippleSegmentOrigin = stippleSegmentInfo.xy;\\n\\n      // Scale s.t. it's in units of stipple pattern size.\\n      vec2 stippleSegmentDirection = stippleSegmentInfo.zw;\\n    \"])))),n.vertex.code.add(l.glsl(h||(h=t(['\\n    left = (leftLen > 0.001) ? left/leftLen : vec2(0.0, 0.0);\\n    right = (rightLen > 0.001) ? right/rightLen : vec2(0.0, 0.0);\\n\\n    vec2 capDisplacementDir = vec2(0, 0);\\n    vec2 joinDisplacementDir = vec2(0, 0);\\n    float displacementLen = lineWidth;\\n\\n    if (isJoin) {\\n\\n      // JOIN handling ---------------------------------------------------\\n      // determine if vertex is on the \"outside or \"inside\" of the join\\n      bool isOutside = ISOUTSIDE;\\n\\n      // compute miter join position first\\n      joinDisplacementDir = normalize(left + right);\\n      joinDisplacementDir = PERPENDICULAR(joinDisplacementDir);\\n\\n      // computer miter stretch\\n      if (leftLen > 0.001 && rightLen > 0.001) {\\n        float nDotSeg = dot(joinDisplacementDir, left);\\n        displacementLen /= length(nDotSeg*left - joinDisplacementDir);\\n\\n        // limit displacement of inner vertices\\n        if (!isOutside) {\\n          displacementLen = min(displacementLen, min(leftLen, rightLen)/abs(nDotSeg));\\n        }\\n      }\\n\\n      if (isOutside && (displacementLen > miterLimit*lineWidth)) {\\n    '],['\\n    left = (leftLen > 0.001) ? left/leftLen : vec2(0.0, 0.0);\\n    right = (rightLen > 0.001) ? right/rightLen : vec2(0.0, 0.0);\\n\\n    vec2 capDisplacementDir = vec2(0, 0);\\n    vec2 joinDisplacementDir = vec2(0, 0);\\n    float displacementLen = lineWidth;\\n\\n    if (isJoin) {\\n\\n      // JOIN handling ---------------------------------------------------\\n      // determine if vertex is on the \"outside or \"inside\" of the join\\n      bool isOutside = ISOUTSIDE;\\n\\n      // compute miter join position first\\n      joinDisplacementDir = normalize(left + right);\\n      joinDisplacementDir = PERPENDICULAR(joinDisplacementDir);\\n\\n      // computer miter stretch\\n      if (leftLen > 0.001 && rightLen > 0.001) {\\n        float nDotSeg = dot(joinDisplacementDir, left);\\n        displacementLen /= length(nDotSeg*left - joinDisplacementDir);\\n\\n        // limit displacement of inner vertices\\n        if (!isOutside) {\\n          displacementLen = min(displacementLen, min(leftLen, rightLen)/abs(nDotSeg));\\n        }\\n      }\\n\\n      if (isOutside && (displacementLen > miterLimit*lineWidth)) {\\n    '])))),e.roundJoins?n.vertex.code.add(l.glsl(g||(g=t([\"\\n        vec2 startDir;\\n        vec2 endDir;\\n\\n        if (leftLen < 0.001) {\\n          startDir = right;\\n        }\\n        else{\\n          startDir = left;\\n        }\\n        startDir = normalize(startDir);\\n        startDir = PERPENDICULAR(startDir);\\n\\n        if (rightLen < 0.001) {\\n          endDir = left;\\n        }\\n        else{\\n          endDir = right;\\n        }\\n        endDir = normalize(endDir);\\n        endDir = PERPENDICULAR(endDir);\\n\\n        float rotationAngle = acos(clamp(dot(startDir, endDir), -1.0, 1.0));\\n        joinDisplacementDir = rotate(startDir, -sign(uv0.y) * subdivisionFactor * rotationAngle);\\n      \"],[\"\\n        vec2 startDir;\\n        vec2 endDir;\\n\\n        if (leftLen < 0.001) {\\n          startDir = right;\\n        }\\n        else{\\n          startDir = left;\\n        }\\n        startDir = normalize(startDir);\\n        startDir = PERPENDICULAR(startDir);\\n\\n        if (rightLen < 0.001) {\\n          endDir = left;\\n        }\\n        else{\\n          endDir = right;\\n        }\\n        endDir = normalize(endDir);\\n        endDir = PERPENDICULAR(endDir);\\n\\n        float rotationAngle = acos(clamp(dot(startDir, endDir), -1.0, 1.0));\\n        joinDisplacementDir = rotate(startDir, -sign(uv0.y) * subdivisionFactor * rotationAngle);\\n      \"])))):n.vertex.code.add(l.glsl(D||(D=t([\"\\n        // convert to bevel join if miterLimit is exceeded\\n        if (leftLen < 0.001) {\\n          joinDisplacementDir = right;\\n        }\\n        else if (rightLen < 0.001) {\\n          joinDisplacementDir = left;\\n        }\\n        else {\\n          joinDisplacementDir = isStartVertex ? right : left;\\n        }\\n        joinDisplacementDir = normalize(joinDisplacementDir);\\n        joinDisplacementDir = PERPENDICULAR(joinDisplacementDir);\\n  \"],[\"\\n        // convert to bevel join if miterLimit is exceeded\\n        if (leftLen < 0.001) {\\n          joinDisplacementDir = right;\\n        }\\n        else if (rightLen < 0.001) {\\n          joinDisplacementDir = left;\\n        }\\n        else {\\n          joinDisplacementDir = isStartVertex ? right : left;\\n        }\\n        joinDisplacementDir = normalize(joinDisplacementDir);\\n        joinDisplacementDir = PERPENDICULAR(joinDisplacementDir);\\n  \"])))),n.vertex.code.add(l.glsl(x||(x=t([\"\\n        displacementLen = lineWidth;\\n      }\\n    } else {\\n    // CAP handling ---------------------------------------------------\\n    if (leftLen < 0.001) {\\n      joinDisplacementDir = right;\\n    }\\n    else if (rightLen < 0.001) {\\n      joinDisplacementDir = left;\\n    }\\n    else {\\n      joinDisplacementDir = isStartVertex ? right : left;\\n    }\\n    joinDisplacementDir = normalize(joinDisplacementDir);\\n    joinDisplacementDir = PERPENDICULAR(joinDisplacementDir);\\n    displacementLen = lineWidth;\\n\\n    capDisplacementDir = isStartVertex ? -right : left;\\n  \"],[\"\\n        displacementLen = lineWidth;\\n      }\\n    } else {\\n    // CAP handling ---------------------------------------------------\\n    if (leftLen < 0.001) {\\n      joinDisplacementDir = right;\\n    }\\n    else if (rightLen < 0.001) {\\n      joinDisplacementDir = left;\\n    }\\n    else {\\n      joinDisplacementDir = isStartVertex ? right : left;\\n    }\\n    joinDisplacementDir = normalize(joinDisplacementDir);\\n    joinDisplacementDir = PERPENDICULAR(joinDisplacementDir);\\n    displacementLen = lineWidth;\\n\\n    capDisplacementDir = isStartVertex ? -right : left;\\n  \"])))),e.roundCaps?n.vertex.code.add(l.glsl(u||(u=t([\"\\n    float angle = subdivisionFactor*PI*0.5;\\n    joinDisplacementDir *= cos(angle);\\n    capDisplacementDir *= sin(angle);\\n    \"],[\"\\n    float angle = subdivisionFactor*PI*0.5;\\n    joinDisplacementDir *= cos(angle);\\n    capDisplacementDir *= sin(angle);\\n    \"])))):n.vertex.code.add(l.glsl(S||(S=t([\"\\n    capDisplacementDir *= subdivisionFactor;\\n    \"],[\"\\n    capDisplacementDir *= subdivisionFactor;\\n    \"])))),n.vertex.code.add(l.glsl(L||(L=t([\"\\n  }\\n\\n  pos.xy += joinDisplacementDir * sign(uv0.y) * displacementLen;\\n  pos.xy += capDisplacementDir * displacementLen;\\n  \"],[\"\\n  }\\n\\n  pos.xy += joinDisplacementDir * sign(uv0.y) * displacementLen;\\n  pos.xy += capDisplacementDir * displacementLen;\\n  \"])))),e.stippleEnabled&&(n.vertex.code.add(l.glsl(b||(b=t([\"\\n    {\\n      // Compute the stipple pattern UV coordinate from the actual position, based on the origin\\n      // and direction of the line segment on which the stipple pattern is based.\\n\\n      // Project the vector from the origin of the segment to the vertex onto the line segment.\\n      // Note the 0.5 factor due to projected positions being at twice the screen size scale (see projectAndScale)\\n      vec2 posVec = pos.xy - stippleSegmentOrigin;\\n\\n      float stippleSegmentDirectionLength = length(stippleSegmentDirection);\\n    \"],[\"\\n    {\\n      // Compute the stipple pattern UV coordinate from the actual position, based on the origin\\n      // and direction of the line segment on which the stipple pattern is based.\\n\\n      // Project the vector from the origin of the segment to the vertex onto the line segment.\\n      // Note the 0.5 factor due to projected positions being at twice the screen size scale (see projectAndScale)\\n      vec2 posVec = pos.xy - stippleSegmentOrigin;\\n\\n      float stippleSegmentDirectionLength = length(stippleSegmentDirection);\\n    \"])))),e.stippleIntegerRepeatsEnabled&&n.vertex.code.add(l.glsl(P||(P=t([\"\\n      float numberOfPatternRepeats = stippleSegmentDirectionLength * 0.5 * stipplePatternPixelSizeInv;\\n      float roundedNumberOfPatternRepeats = max(1.0, floor(numberOfPatternRepeats + 0.5));\\n      stipplePatternUvMax = roundedNumberOfPatternRepeats;\\n      \"],[\"\\n      float numberOfPatternRepeats = stippleSegmentDirectionLength * 0.5 * stipplePatternPixelSizeInv;\\n      float roundedNumberOfPatternRepeats = max(1.0, floor(numberOfPatternRepeats + 0.5));\\n      stipplePatternUvMax = roundedNumberOfPatternRepeats;\\n      \"])))),n.vertex.code.add(l.glsl(y||(y=t([\"\\n      if (stippleSegmentDirectionLength >= 0.001) {\\n        // Project the vertex position onto the line segment.\\n        float projectedLength = dot(stippleSegmentDirection, posVec) / stippleSegmentDirectionLength * 0.5;\\n     \",\"\\n        stipplePatternUv = projectedLength * wholeNumberOfRepeatsScale * stipplePatternPixelSizeInv * pos.w;\\n        } else {\\n          stipplePatternUv = 1.0;\\n        }\\n      }\\n    \"],[\"\\n      if (stippleSegmentDirectionLength >= 0.001) {\\n        // Project the vertex position onto the line segment.\\n        float projectedLength = dot(stippleSegmentDirection, posVec) / stippleSegmentDirectionLength * 0.5;\\n     \",\"\\n        stipplePatternUv = projectedLength * wholeNumberOfRepeatsScale * stipplePatternPixelSizeInv * pos.w;\\n        } else {\\n          stipplePatternUv = 1.0;\\n        }\\n      }\\n    \"])),e.stippleIntegerRepeatsEnabled?\"float wholeNumberOfRepeatsScale = roundedNumberOfPatternRepeats / numberOfPatternRepeats;\":\"float wholeNumberOfRepeatsScale = 1.0;\"))),n.vertex.code.add(l.glsl(j||(j=t([\"\\n      // Convert back into NDC\\n      pos.xy = pos.xy / screenSize * pos.w;\\n\\n      vColor = getColor();\\n      vColor.a *= coverage;\\n\\n      gl_Position = pos;\\n    }\\n  }\\n  \"],[\"\\n      // Convert back into NDC\\n      pos.xy = pos.xy / screenSize * pos.w;\\n\\n      vColor = getColor();\\n      vColor.a *= coverage;\\n\\n      gl_Position = pos;\\n    }\\n  }\\n  \"])))),n.include(i.Slice,e),0===e.output&&(n.fragment.uniforms.add(\"symbolColor\",\"vec4\"),n.fragment.code.add(l.glsl(z||(z=t([\"\\n    void main() {\\n      discardBySlice(vpos);\\n      float stippleAlpha = getStippleAlpha();\\n      discardByStippleAlpha(stippleAlpha, STIPPLE_ALPHA_COLOR_DISCARD);\\n      vec4 color = symbolColor * vColor;\\n      gl_FragColor = highlightSlice(blendStipple(color, stippleAlpha), vpos);\\n    }\\n    \"],[\"\\n    void main() {\\n      discardBySlice(vpos);\\n      float stippleAlpha = getStippleAlpha();\\n      discardByStippleAlpha(stippleAlpha, STIPPLE_ALPHA_COLOR_DISCARD);\\n      vec4 color = symbolColor * vColor;\\n      gl_FragColor = highlightSlice(blendStipple(color, stippleAlpha), vpos);\\n    }\\n    \"]))))),4===e.output&&n.fragment.code.add(l.glsl(A||(A=t([\"\\n      void main() {\\n        discardBySlice(vpos);\\n        discardByStippleAlpha(getStippleAlpha(), STIPPLE_ALPHA_HIGHLIGHT_DISCARD);\\n        gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\\n      }\\n    \"],[\"\\n      void main() {\\n        discardBySlice(vpos);\\n        discardByStippleAlpha(getStippleAlpha(), STIPPLE_ALPHA_HIGHLIGHT_DISCARD);\\n        gl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\\n      }\\n    \"])))),n}Object.defineProperty(n,\"__esModule\",{value:!0}),n.build=p;var c,d,v,m,f,h,g,D,x,u,S,L,b,P,y,j,z,A});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/extendsHelper\",\"../../../../core/tsSupport/decorateHelper\",\"../../../../core/tsSupport/assignHelper\",\"../../../../core/maybe\",\"../../../../core/maybe\",\"../core/shaderLibrary/Slice.glsl\",\"../core/shaderLibrary/Transform.glsl\",\"../core/shaderLibrary/output/OutputHighlight.glsl\",\"../core/shaderLibrary/shading/VisualVariables.glsl\",\"../core/shaderTechnique/ReloadableShaderModule\",\"../core/shaderTechnique/ShaderTechnique\",\"../core/shaderTechnique/ShaderTechniqueConfiguration\",\"./RibbonLine.glsl\",\"../../../webgl/Program\",\"../../../webgl/renderState\"],function(e,t,i,r,o,p,a,n,s,l,u,d,h,f,c,b,g){Object.defineProperty(t,\"__esModule\",{value:!0}),t.RibbonVertexAttributeConstants={POSITION:\"position\",SUBDIVISIONFACTOR:\"subdivisionFactor\",UV0:\"uv0\",AUXPOS1:\"auxpos1\",AUXPOS2:\"auxpos2\",SUBDIVISIONS:\"subdivisions\",COLOR:\"color\",COLORFEATUREATTRIBUTE:\"colorFeatureAttribute\",SIZE:\"size\",SIZEFEATUREATTRIBUTE:\"sizeFeatureAttribute\",OPACITYFEATUREATTRIBUTE:\"opacityFeatureAttribute\"},t.ribbonVertexAttributeLocations={position:0,subdivisionFactor:1,uv0:2,auxpos1:3,auxpos2:4,size:6,sizeFeatureAttribute:6,color:5,colorFeatureAttribute:5,opacityFeatureAttribute:7};var m=function(r){function o(e,t){var i=r.call(this,e,t)||this;return i.stipplePattern=null,i.stippleTextureBind=null,i.stippleTextureRepository=e.stippleTextureRepository,i}return i(o,r),o.prototype.initializeProgram=function(e){var i=o.shader.get(),r=this.configuration,p=i.build({output:r.output,slicePlaneEnabled:r.slicePlaneEnabled,sliceHighlightDisabled:r.sliceHighlightDisabled,stippleEnabled:r.stippleEnabled,stippleOffColorEnabled:r.stippleOffColorEnabled,stippleUVMaxEnabled:r.stippleIntegerRepeatsEnabled,stippleIntegerRepeatsEnabled:r.stippleIntegerRepeatsEnabled,roundCaps:r.roundCaps,roundJoins:r.roundJoins,vvColor:r.vvColor,vvSize:r.vvSize,vvOpacity:r.vvOpacity});return new b(e.rctx,p.generateSource(\"vertex\"),p.generateSource(\"fragment\"),t.ribbonVertexAttributeLocations)},o.prototype.dispose=function(){r.prototype.dispose.call(this),this.stippleTextureRepository.release(this.stipplePattern),this.stipplePattern=null,this.stippleTextureBind=null},o.prototype.bindPass=function(e,t,i){if(4===this.configuration.output&&l.OutputHighlight.bindOutputHighlight(e,this.program,i),this.program.setUniform1f(\"symbolLineWidth\",t.width),this.program.setUniform4fv(\"symbolColor\",t.color),this.program.setUniform1f(\"miterLimit\",\"miter\"!==t.join?0:t.miterLimit),this.program.setUniform1f(\"nearPlane\",i.nearFar[0]),this.program.setUniform1f(\"pixelRatio\",i.pixelRatio),this.program.setUniform2fv(\"screenSize\",[i.viewport[2],i.viewport[3]]),u.VisualVariables.bindUniformsWithOpacity(this.program,t),this.stipplePattern!==t.stipplePattern){var r=t.stipplePattern;this.stippleTextureBind=this.stippleTextureRepository.swap(this.stipplePattern,r),this.stipplePattern=r}if(this.configuration.stippleEnabled){var o=a.isSome(this.stippleTextureBind)?this.stippleTextureBind(e,0)*i.pixelRatio:1;if(this.program.setUniform1i(\"stipplePatternTexture\",0),this.program.setUniform1f(\"stipplePatternPixelSizeInv\",1/o),this.configuration.stippleOffColorEnabled){var n=p.expect(t.stippleOffColor);this.program.setUniform4f(\"stippleOffColor\",n[0],n[1],n[2],n.length>3?n[3]:1)}}},o.prototype.bindDraw=function(e){s.Transform.bindUniforms(this.program,e),n.Slice.bindUniformsWithOrigin(this.program,this.configuration,e)},o.prototype.bindInstance=function(e){this.program.setUniformMatrix4fv(\"model\",e.transformation)},o.prototype.initializePipeline=function(){var e=this.configuration;return 0===e.output?g.makePipelineState({blending:g.separateBlendingParams(770,1,771,771),polygonOffset:e.polygonOffset&&v,depthTest:{func:513},depthWrite:!e.transparent&&e.writeDepth&&g.defaultDepthWriteParams,colorWrite:g.defaultColorWriteParams}):g.makePipelineState({polygonOffset:e.polygonOffset&&v,depthTest:{func:513},depthWrite:!e.transparent&&e.writeDepth&&g.defaultDepthWriteParams,colorWrite:g.defaultColorWriteParams})},o.prototype.bindPipelineState=function(e){e.setPipelineState(this.pipeline)},o.shader=new d.ReloadableShaderModule(c,\"./RibbonLine.glsl\",e),o}(h.ShaderTechnique);t.RibbonLineTechnique=m;var v={factor:0,units:-4},y=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.output=0,t.slicePlaneEnabled=!1,t.sliceHighlightDisabled=!1,t.vertexColors=!1,t.transparent=!1,t.polygonOffset=!1,t.writeDepth=!1,t.stippleEnabled=!1,t.stippleOffColorEnabled=!1,t.stippleIntegerRepeatsEnabled=!1,t.roundCaps=!1,t.roundJoins=!1,t.vvSize=!1,t.vvColor=!1,t.vvOpacity=!1,t}return i(t,e),r([f.parameter({count:6})],t.prototype,\"output\",void 0),r([f.parameter()],t.prototype,\"slicePlaneEnabled\",void 0),r([f.parameter()],t.prototype,\"sliceHighlightDisabled\",void 0),r([f.parameter()],t.prototype,\"vertexColors\",void 0),r([f.parameter()],t.prototype,\"transparent\",void 0),r([f.parameter()],t.prototype,\"polygonOffset\",void 0),r([f.parameter()],t.prototype,\"writeDepth\",void 0),r([f.parameter()],t.prototype,\"stippleEnabled\",void 0),r([f.parameter()],t.prototype,\"stippleOffColorEnabled\",void 0),r([f.parameter()],t.prototype,\"stippleIntegerRepeatsEnabled\",void 0),r([f.parameter()],t.prototype,\"roundCaps\",void 0),r([f.parameter()],t.prototype,\"roundJoins\",void 0),r([f.parameter()],t.prototype,\"vvSize\",void 0),r([f.parameter()],t.prototype,\"vvColor\",void 0),r([f.parameter()],t.prototype,\"vvOpacity\",void 0),t}(f.ShaderTechniqueConfiguration);t.RibbonLineTechniqueConfiguration=y});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../../../core/tsSupport/makeTemplateObjectHelper\",\"../core/shaderLibrary/ForwardLinearDepth.glsl\",\"../core/shaderLibrary/Slice.glsl\",\"../core/shaderLibrary/Transform.glsl\",\"../core/shaderLibrary/shading/NormalUtils.glsl\",\"../core/shaderLibrary/shading/ReadShadowMap.glsl\",\"../core/shaderLibrary/shading/Water.glsl\",\"../core/shaderLibrary/shading/WaterDistortion.glsl\",\"../core/shaderModules/interfaces\",\"../core/shaderModules/ShaderBuilder\"],function(n,a,e,o,r,i,t,l,d,v,s,c){function g(n){var a=new c.ShaderBuilder;return a.include(i.Transform,{linearDepth:!1}),a.attributes.add(\"position\",\"vec3\"),a.attributes.add(\"uv0\",\"vec2\"),a.vertex.uniforms.add(\"proj\",\"mat4\").add(\"view\",\"mat4\").add(\"model\",\"mat4\").add(\"localOrigin\",\"vec3\"),0===n.output&&(a.include(t.NormalUtils,n),a.include(o.ForwardLinearDepth,n),a.varyings.add(\"vuv\",\"vec2\"),a.varyings.add(\"vpos\",\"vec3\"),a.varyings.add(\"vnormal\",\"vec3\"),a.varyings.add(\"vtbnMatrix\",\"mat3\"),a.vertex.code.add(s.glsl(m||(m=e([\"\\n      void main(void) {\\n        vuv = uv0;\\n        vpos = (model * vec4(position, 1.0)).xyz;\\n\\n        vnormal = getLocalUp(vpos, localOrigin);\\n        vtbnMatrix = getTBNMatrix(vnormal);\\n\\n        gl_Position = transformPosition(proj, view, vpos);\\n        forwardLinearDepth();\\n      }\\n    \"],[\"\\n      void main(void) {\\n        vuv = uv0;\\n        vpos = (model * vec4(position, 1.0)).xyz;\\n\\n        vnormal = getLocalUp(vpos, localOrigin);\\n        vtbnMatrix = getTBNMatrix(vnormal);\\n\\n        gl_Position = transformPosition(proj, view, vpos);\\n        forwardLinearDepth();\\n      }\\n    \"])))),a.include(v.WaterDistortion,n),a.include(r.Slice,n),n.receiveShadows&&a.include(l.ReadShadowMap,n),a.include(d.Water,n),a.fragment.uniforms.add(\"waterColor\",\"vec4\").add(\"lightingMainDirection\",\"vec3\").add(\"lightingMainIntensity\",\"vec3\").add(\"camPos\",\"vec3\").add(\"timeElapsed\",\"float\"),a.fragment.code.add(s.glsl(p||(p=e([\"\\n      void main() {\\n        discardBySlice(vpos);\\n        vec3 localUp = vnormal;\\n        // the created normal is in tangent space\\n        vec3 tangentNormal = getSurfaceNormal(vuv, timeElapsed);\\n\\n        // we rotate the normal according to the tangent-bitangent-normal-Matrix\\n        vec3 n = normalize(vtbnMatrix * tangentNormal);\\n        vec3 v = -normalize(vpos - camPos);\\n        vec3 l = normalize(-lightingMainDirection);\\n        \"],[\"\\n      void main() {\\n        discardBySlice(vpos);\\n        vec3 localUp = vnormal;\\n        // the created normal is in tangent space\\n        vec3 tangentNormal = getSurfaceNormal(vuv, timeElapsed);\\n\\n        // we rotate the normal according to the tangent-bitangent-normal-Matrix\\n        vec3 n = normalize(vtbnMatrix * tangentNormal);\\n        vec3 v = -normalize(vpos - camPos);\\n        vec3 l = normalize(-lightingMainDirection);\\n        \"])))),n.receiveShadows?a.fragment.code.add(s.glsl(h||(h=e([\"\\n        float shadow = 1.0 - readShadowMap(vpos, linearDepth);\\n      \"],[\"\\n        float shadow = 1.0 - readShadowMap(vpos, linearDepth);\\n      \"])))):a.fragment.code.add(s.glsl(u||(u=e([\"\\n        float shadow = 1.0;\\n      \"],[\"\\n        float shadow = 1.0;\\n      \"])))),a.fragment.code.add(s.glsl(f||(f=e([\"\\n        vec4 final = vec4(getSeaColor(n, v, l, waterColor.rgb, lightingMainIntensity, localUp, shadow), waterColor.w);\\n\\n        // gamma correction\\n        gl_FragColor = delinearizeGamma(final);\\n        gl_FragColor = highlightSlice(gl_FragColor, vpos);\\n      }\\n    \"],[\"\\n        vec4 final = vec4(getSeaColor(n, v, l, waterColor.rgb, lightingMainIntensity, localUp, shadow), waterColor.w);\\n\\n        // gamma correction\\n        gl_FragColor = delinearizeGamma(final);\\n        gl_FragColor = highlightSlice(gl_FragColor, vpos);\\n      }\\n    \"]))))),2===n.output&&(a.include(t.NormalUtils,n),a.include(v.WaterDistortion,n),a.include(r.Slice,n),a.varyings.add(\"vpos\",\"vec3\"),a.varyings.add(\"vuv\",\"vec2\"),a.vertex.code.add(s.glsl(w||(w=e([\"\\n        void main(void) {\\n          vuv = uv0;\\n          vpos = (model * vec4(position, 1.0)).xyz;\\n          gl_Position = transformPosition(proj, view, vpos);\\n        }\\n    \"],[\"\\n        void main(void) {\\n          vuv = uv0;\\n          vpos = (model * vec4(position, 1.0)).xyz;\\n          gl_Position = transformPosition(proj, view, vpos);\\n        }\\n    \"])))),a.fragment.uniforms.add(\"timeElapsed\",\"float\"),a.fragment.code.add(s.glsl(y||(y=e([\"\\n        void main() {\\n          discardBySlice(vpos);\\n          // the created normal is in tangent space\\n          vec3 tangentNormal = getSurfaceNormal(vuv, timeElapsed);\\n          tangentNormal = normalize(tangentNormal);\\n          gl_FragColor = vec4((tangentNormal + vec3(1.0)) * 0.5, 0.0);\\n        }\\n    \"],[\"\\n        void main() {\\n          discardBySlice(vpos);\\n          // the created normal is in tangent space\\n          vec3 tangentNormal = getSurfaceNormal(vuv, timeElapsed);\\n          tangentNormal = normalize(tangentNormal);\\n          gl_FragColor = vec4((tangentNormal + vec3(1.0)) * 0.5, 0.0);\\n        }\\n    \"]))))),5===n.output&&(a.include(t.NormalUtils,n),a.varyings.add(\"vpos\",\"vec3\"),a.vertex.code.add(s.glsl(S||(S=e([\"\\n        void main(void) {\\n          vpos = (model * vec4(position, 1.0)).xyz;\\n          gl_Position = transformPosition(proj, view, vpos);\\n        }\\n    \"],[\"\\n        void main(void) {\\n          vpos = (model * vec4(position, 1.0)).xyz;\\n          gl_Position = transformPosition(proj, view, vpos);\\n        }\\n    \"])))),a.fragment.uniforms.add(\"waterColor\",\"vec4\"),a.fragment.code.add(s.glsl(M||(M=e([\"\\n        void main() {\\n          gl_FragColor = waterColor;\\n        }\\n    \"],[\"\\n        void main() {\\n          gl_FragColor = waterColor;\\n        }\\n    \"]))))),a}Object.defineProperty(a,\"__esModule\",{value:!0}),a.build=g;var m,p,h,u,f,w,y,S,M});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"./shaderRepository\",\"../../../../webgl/ShaderCompiler\"],function(e,r,n,o){function t(e){var r=n;return e.split(\"/\").forEach(function(e){r&&(r=r[e])}),r}function u(e){return i.resolveIncludes(e)}Object.defineProperty(r,\"__esModule\",{value:!0});var i=new o(t);r.resolveIncludes=u});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\"],function(e,n){return{environment:{\"realisticAtmosphere.frag\":\"#include <util/fsPrecision.glsl>\\n#include <util/encoding.glsl>\\n#include <util/color.glsl>\\nuniform vec3 lightingMainDirection;\\nuniform vec3 invWavelength;\\nuniform vec3 invWavelengthScaled;\\nconst float krESun = 0.075;\\nconst float kmESun = 0.015;\\nuniform vec2 radii;\\n#define innerRadius radii[0]\\n#define outerRadius radii[1]\\nuniform vec4 atmosParams1;\\nuniform vec4 atmosParams2;\\n#define shellScale atmosParams1.x\\n#define shellDepth vec2(atmosParams1.y, atmosParams2.y)\\n#define scaleOverScaleDepth vec2(atmosParams1.z, atmosParams2.z)\\n#define oneOverScaleDepth vec2(atmosParams1.w, atmosParams2.w)\\n#ifndef HAZE\\nuniform vec3 atmosParams3;\\nuniform float innerFadeDistance;\\nuniform float altitudeFade;\\n#define g atmosParams2.x\\n#define gSq atmosParams3.x\\n#define miePhaseCoefficients atmosParams3.y\\n#define lowerAlphaBlendBound atmosParams3.z\\n#endif\\nuniform vec3 cameraPosition;\\nuniform vec2 nearFar;\\nuniform vec4 sphereComp;\\n#define cameraHeight sphereComp[0]\\n#define cameraHeightSq sphereComp[1]\\n#define C sphereComp[2]\\n#define CSur sphereComp[3]\\n#ifdef HAZE\\nconst float exposure = 1.5;\\n#else\\nconst float exposure = 2.0;\\n#endif\\n#ifdef HAZE\\nuniform sampler2D depthTex;\\n#endif\\nvarying vec3 eyeDir;\\nvarying vec3 worldRay;\\nvarying vec2 vtc;\\nconst float samples = 5.0;\\nconst int maxSamples = 5;\\n#ifdef HAZE\\n  const vec3 oneOverGamma = vec3(1.0);\\n#else\\n  const vec3 oneOverGamma = vec3(0.454545);\\n#endif\\nvec3 expTM(vec3 inputColor,float _exposure) {\\n    return pow(1.0 - exp(inputColor * -_exposure), oneOverGamma);\\n}\\n#ifndef HAZE\\nvec3 reinhardTM(vec3 inputColor, float _exposure) {\\n  vec3 intermediate = inputColor * _exposure;\\n  intermediate /= ( 1.0 + intermediate );\\n  return pow(intermediate, oneOverGamma);\\n}\\n#endif\\nfloat scale(float _cos) {\\n  float x = 1.0 - _cos;\\n  return exp( -0.00287 + x * ( 0.459 + x * ( 3.83 + x * (-6.80 + x * 5.25 ))));\\n}\\nvoid main() {\\n  vec3 worldSpaceRay = normalize(worldRay);\\n  float B = 2.0 * dot(cameraPosition, worldSpaceRay);\\n  float det = B * B - 4.0 * C;\\n  float detSur = B * B - 4.0 * CSur;\\n  float minRayStart = 0.0;\\n#ifndef HAZE\\n  float surfaceBlend = 0.0;\\n  vec4 surfaceColor = vec4(0.0);\\n  if (detSur >= 0.0) {\\n    float nearSurface = max(0.0, 0.5 *(-B - sqrt(detSur)));\\n    float farSurface = max(0.0, 0.5 *(-B + sqrt(detSur)));\\n    if (nearSurface == 0.0) {\\n      minRayStart = farSurface;\\n    }\\n    vec3 vPos = cameraPosition + worldSpaceRay * nearSurface;\\n    float lightAngle = dot(-lightingMainDirection, normalize(vPos));\\n    float brightness = max(0.0, (smoothstep(-1.0, 0.8, 2.0 * lightAngle)));\\n    surfaceColor = vec4(brightness, brightness, brightness, 1.0 - altitudeFade);\\n    float relDist = (farSurface - nearSurface) / innerFadeDistance;\\n    if (relDist > 1.0) {\\n      gl_FragColor = surfaceColor;\\n      return;\\n    }\\n    surfaceBlend = smoothstep(0.0, 1.0, relDist * relDist);\\n  }\\n#endif\\n  if (det >= 0.0) {\\n#ifdef HAZE\\n    float depthSample = texture2D(depthTex, vtc).r;\\n    float zNear = nearFar[0];\\n    float zFar = nearFar[1];\\n    float zNorm = 2.0 * depthSample - 1.0;\\n    float linDepth = 2.0 * zNear * zFar /\\n      (zFar + zNear - zNorm * (zFar - zNear));\\n    float rayEnd;\\n    float altitudeAlpha = 1.0;\\n    if (depthSample < 1.0 && depthSample > 0.0) {\\n      vec3 cameraSpaceRay = normalize(eyeDir);\\n      cameraSpaceRay /= cameraSpaceRay.z;\\n      cameraSpaceRay *= linDepth;\\n      float cameraSpaceRayLength = length(cameraSpaceRay);\\n      vec3 world = cameraPosition + worldSpaceRay * cameraSpaceRayLength;\\n      float worldRadiusSq = dot(world, world);\\n      float transitionStart = innerRadius + 20000.0;\\n      float transitionHeight = 25000.0;\\n      float transitionEnd = transitionStart + transitionHeight;\\n      float edge0 = transitionStart * transitionStart;\\n      float edge1 = transitionEnd * transitionEnd;\\n      altitudeAlpha = 1.0 - clamp((worldRadiusSq - edge0) / (edge1 - edge0), 0.0, 1.0);\\n      rayEnd = cameraSpaceRayLength;\\n      if (altitudeAlpha > 0.0 && detSur > 0.0) {\\n        float nearSurface = 0.5 * ( -B - sqrt(detSur) );\\n        float interp = clamp(((cameraHeight - innerRadius) - 2000000.0) / 6000000.0, 0.0, 1.0);\\n        rayEnd = mix(cameraSpaceRayLength, nearSurface, interp);\\n      }\\n    }\\n#endif\\n    float rayStart = 0.5 *(-B - sqrt(det));\\n#ifdef HAZE\\n    float near = abs(rayStart);\\n    float far = abs(rayEnd);\\n#else\\n    float rayEnd = 0.5 *(-B + sqrt(det));\\n#endif\\n    float scatterDistance;\\n    if (rayStart < minRayStart)\\n    {\\n      rayStart = minRayStart;\\n#ifndef HAZE\\n      scatterDistance = shellScale * min(0.0, innerRadius - cameraHeight);\\n#endif\\n    }\\n#ifndef HAZE\\n    else\\n    {\\n      scatterDistance = -1.0;\\n    }\\n#endif\\n    vec3 start = cameraPosition + worldSpaceRay * rayStart;\\n#ifdef HAZE\\n    vec3 end = cameraPosition + worldSpaceRay * rayEnd;\\n    float endLength = length(end);\\n    float altitudeEnd = endLength - innerRadius;\\n    float altitudeStart = length(start) - innerRadius;\\n    if (altitudeStart < 0.0) {\\n      altitudeStart = -altitudeStart;\\n      altitudeEnd = -altitudeEnd;\\n    }\\n    float lightAngle = dot(-lightingMainDirection, end) / endLength;\\n    if (near > far)\\n    {\\n      if (altitudeStart < altitudeEnd)\\n      {\\n        end = cameraPosition + worldSpaceRay * rayStart;\\n        start = cameraPosition + worldSpaceRay * rayEnd;\\n        worldSpaceRay *= -1.0;\\n        float tmp = altitudeStart;\\n        altitudeStart = altitudeEnd;\\n        altitudeEnd = tmp;\\n      }\\n      else if (altitudeStart == altitudeEnd)\\n      {\\n        altitudeStart += 1.0;\\n      }\\n    }\\n    if (altitudeStart > outerRadius - innerRadius)\\n    {\\n      scatterDistance = innerRadius - outerRadius;\\n    } else\\n    {\\n      scatterDistance = altitudeEnd - altitudeStart;\\n    }\\n#endif\\n    vec2 opticalStartDepth = exp(scatterDistance * oneOverScaleDepth);\\n    float rayLength = rayEnd - rayStart;\\n    float sampleLength = rayLength / samples;\\n    float scaledLength = sampleLength * shellScale;\\n    vec3 sampleRay = worldSpaceRay * sampleLength;\\n    vec3 samplePoint = start + sampleRay * 0.5;\\n#ifdef HAZE\\n    float cameraAngle = dot(-worldSpaceRay, end) / length(end);\\n    float scaleCameraAngle = scale(cameraAngle);\\n    vec2 cameraOffset = scaleCameraAngle * opticalStartDepth;\\n    float scaledValues = scale(lightAngle) + scaleCameraAngle;\\n    vec2 scaledValuesDepth = scaledValues * shellDepth;\\n#else\\n    float cameraAngle = dot(worldSpaceRay, start / length(start));\\n    float angleMultiplier = cameraAngle > 0.0 ? cameraAngle : 0.0;\\n    float scaleCameraAngle = scale(cameraAngle);\\n    vec2 cameraOffset = scaleCameraAngle * opticalStartDepth * shellDepth;\\n#endif\\n    vec3 frontColor = vec3(0.0);\\n    vec3 frontColorBlue = vec3(0.0);\\n    vec3 attenuate = vec3(0.0);\\n    vec3 attenuateBlue = vec3(0.0);\\n    for(int i=0; i<maxSamples; i++) {\\n      float height = length(samplePoint);\\n      float altitude = abs(height - innerRadius);\\n      vec2 depth = exp(-altitude * scaleOverScaleDepth);\\n#ifdef HAZE\\n      vec2 scatter = depth * scaledValuesDepth - cameraOffset;\\n#else\\n      float lightAngle = dot(-lightingMainDirection, samplePoint) / height;\\n      float cameraAngle = dot(worldSpaceRay, samplePoint) / height;\\n      float tmpScaledValues = scale(lightAngle) - scale(cameraAngle);\\n      vec2 scatter = cameraOffset + tmpScaledValues * depth * shellDepth;\\n#endif\\n      attenuate = exp(-scatter.x * invWavelengthScaled);\\n      attenuateBlue = exp(-scatter.y * invWavelengthScaled);\\n      frontColor += attenuate * depth.x;\\n      frontColorBlue += attenuateBlue * depth.y;\\n      samplePoint += sampleRay;\\n    }\\n    float LdotR = clamp(dot(-lightingMainDirection, -worldSpaceRay ),-0.9999999,1.0);\\n    float LdotRSq = LdotR * LdotR + 1.0;\\n#ifdef HAZE\\n    vec3 colorCoefficients = (scaledLength * 0.75 * LdotRSq) * (krESun * invWavelength + kmESun );\\n    vec3 color = colorCoefficients * frontColor;\\n    vec3 colorBlue = colorCoefficients * frontColorBlue;\\n#else\\n    vec3 rayleighCoefficients = (scaledLength * 0.75 * LdotRSq * krESun) * invWavelength;\\n    float mieCoefficients = scaledLength * kmESun * miePhaseCoefficients * LdotRSq / pow(1.0 + gSq - 2.0 * g * LdotR, 1.5);\\n    vec3 color = rayleighCoefficients * frontColor + mieCoefficients * frontColor;\\n    vec3 colorBlue = rayleighCoefficients * frontColorBlue + mieCoefficients * frontColorBlue;\\n#endif\\n    vec3 ldrBlue = expTM(colorBlue, 2.0 * exposure);\\n    vec3 ldrRed = expTM(color, exposure);\\n    vec3 LDR = mix(ldrBlue, ldrRed, 0.2);\\n#ifdef HAZE\\n    LDR *= (1.0 - cameraAngle);\\n    vec3 hsv = rgb2hsv(LDR);\\n    hsv.y = clamp(hsv.y * 1.5, 0.0, 1.0);\\n    LDR = hsv2rgb(hsv);\\n    vec3 finalColor = LDR;\\n#else\\n    vec3 ldrReinhard = reinhardTM(color, exposure);\\n    LDR += angleMultiplier * ldrReinhard;\\n    float side = (rayEnd + rayStart) * 0.5;\\n    float atmoHeight = sqrt(cameraHeightSq - side * side);\\n    float h2 = clamp(1.0 - ( atmoHeight - lowerAlphaBlendBound ) / ( outerRadius - lowerAlphaBlendBound ), 0.0, 1.0);\\n    vec3 finalColor = LDR * h2;\\n    vec3 hsv = rgb2hsv(finalColor);\\n    hsv.y = clamp(hsv.y * 1.5, 0.0, 1.0);\\n    finalColor = hsv2rgb(hsv);\\n#endif\\n#ifndef HAZE\\n    float atmosStrength = clamp((length(ldrRed) - 0.05) * 1.05, 0.0, 1.0);\\n    gl_FragColor = vec4(finalColor, atmosStrength * clamp(1.0 - ( atmoHeight - innerRadius ) / (outerRadius - innerRadius), 0.0, 1.0));\\n    if (surfaceBlend > 0.0) {\\n      gl_FragColor = mix(gl_FragColor, surfaceColor, surfaceBlend);\\n    }\\n#else\\n    gl_FragColor = vec4(finalColor, 1.0) * altitudeAlpha;\\n#endif\\n  } else {\\n    gl_FragColor = vec4(0.0);\\n  }\\n}\",\"realisticAtmosphere.vert\":\"#include <util/vsPrecision.glsl>\\nuniform vec2 halfSizeNearPlane;\\nuniform vec3 cameraUp;\\nuniform vec3 cameraRight;\\nuniform vec3 cameraDir;\\nuniform vec2 cameraCenterOffset;\\nattribute vec3 position;\\nattribute vec2 uv0;\\nvarying vec3 worldRay;\\nvarying vec2 vtc;\\n#ifdef HAZE\\nvarying vec3 eyeDir;\\n#endif\\nvoid main(void) {\\n  vec3 v3Pos = position;\\n  vtc = uv0;\\n  vec2 rayvtc = uv0 - cameraCenterOffset;\\n#ifdef HAZE\\n  eyeDir = vec3((2.0 * halfSizeNearPlane * rayvtc) - halfSizeNearPlane, -1.0);\\n#else\\n  vec3 eyeDir = vec3((2.0 * halfSizeNearPlane * rayvtc) - halfSizeNearPlane, -1.0);\\n#endif\\n  worldRay = eyeDir.z * cameraDir + eyeDir.y * cameraUp + eyeDir.x * cameraRight;\\n  gl_Position = vec4(v3Pos, 1.0);\\n}\",\"simpleAtmosphere.frag\":\"#include <util/fsPrecision.glsl>\\nuniform sampler2D tex;\\nvarying vec2 vtc;\\nvarying float falloff;\\n#ifndef PANORAMIC\\nuniform float altitudeFade;\\nvarying float innerFactor;\\n#endif\\nvoid main() {\\n  vec4 texColor = texture2D(tex, vtc);\\n#ifdef PANORAMIC\\n  gl_FragColor = texColor * falloff;\\n#else\\n  vec4 atmosphereColor = texColor * falloff;\\n  vec4 innerColor = vec4(texColor.rgb * falloff, 1.0 - altitudeFade);\\n  gl_FragColor = mix(atmosphereColor, innerColor, smoothstep(0.0, 1.0, innerFactor));\\n#endif\\n}\",\"simpleAtmosphere.vert\":\"#include <util/vsPrecision.glsl>\\n#include <util/transform.glsl>\\nuniform mat4 proj;\\nuniform mat4 view;\\n#ifndef PANORAMIC\\nconst float TWICEPI = 2.0*3.14159265;\\nconst float ATMOSPHERE_RIM_SEGMENTS = 128.0;\\nuniform vec3 silCircleCenter;\\nuniform vec3 silCircleV1;\\nuniform vec3 silCircleV2;\\nuniform vec2 texV;\\nuniform float innerScale;\\nvarying float innerFactor;\\n#endif\\nuniform vec3 lightingMainDirection;\\nattribute vec3 position;\\nvarying vec2 vtc;\\nvarying float falloff;\\nvoid main(void) {\\n  vec3 lightDirection = -lightingMainDirection;\\n#ifdef PANORAMIC\\n  vec3 pos = position;\\n  float ndotl = lightDirection.z;\\n  vtc = vec2(0.0, position.z+0.05);\\n#else\\n  innerFactor = clamp(-position.z, 0.0, 1.0);\\n  float scale = position.y * (1.0 + innerFactor * innerScale);\\n  float phi = position.x * (TWICEPI / ATMOSPHERE_RIM_SEGMENTS) + 1.0;\\n  vec3 pos =  (silCircleCenter + sin(phi) * silCircleV1 + cos(phi) * silCircleV2) * scale;\\n  float ndotl = dot(normalize(position.y > 0.0 ? pos: silCircleCenter), lightDirection);\\n  vtc.x = position.x / ATMOSPHERE_RIM_SEGMENTS;\\n  vtc.y = texV.x * (1.0 - position.z) + texV.y * position.z;\\n#endif\\n  falloff = max(0.0, smoothstep(-1.0, 0.8, 2.0 * ndotl));\\n  gl_Position = transformPosition(proj, view, pos);\\n  gl_Position.z = gl_Position.w;\\n}\",\"simpleAtmosphereFade.frag\":\"#include <util/fsPrecision.glsl>\\nvarying vec4 color;\\nvoid main() {\\n  gl_FragColor = color;\\n}\",\"simpleAtmosphereFade.vert\":\"#include <util/vsPrecision.glsl>\\nattribute vec2 position;\\nuniform vec3 lightingMainDirection;\\nuniform vec3 cameraPosition;\\nuniform float undergroundFadeAlpha;\\nvarying vec4 color;\\nvoid main(void) {\\n  float ndotl = dot(normalize(cameraPosition), -lightingMainDirection);\\n  float lighting = max(0.0, smoothstep(-1.0, 0.8, 2.0 * ndotl));\\n  color = vec4(vec3(lighting), undergroundFadeAlpha);\\n  gl_Position = vec4(position.xy, 1.0, 1.0);\\n}\",\"stars.frag\":\"#include <util/fsPrecision.glsl>\\nvarying vec4 vcolor;\\nvarying float vsize;\\nvoid main() {\\n  float cap = 0.7;\\n  float scale = 1.0/cap;\\n  float helper = clamp(length(abs(gl_PointCoord-vec2(0.5))),0.0,cap);\\n  float alpha = clamp((cap-helper)*scale,0.0,1.0);\\n  float intensity = alpha*alpha*alpha;\\n  if (vsize < 3.0)\\n    intensity *= 0.5;\\n  gl_FragColor = vec4(1.0,1.0,1.0,intensity);\\n  gl_FragColor.xyz *= vcolor.xyz;\\n}\",\"stars.vert\":\"#include <util/vsPrecision.glsl>\\n#include <util/alignPixel.glsl>\\nuniform mat4 proj;\\nuniform mat4 view;\\nuniform mat4 model;\\nuniform vec4 viewport;\\nuniform float pixelRatio;\\nattribute vec3 position;\\nattribute vec4 color;\\nattribute float size;\\nvarying vec4 vcolor;\\nvarying float vsize;\\nvoid main(void) {\\n  vec4 posProj = proj * view * model*vec4(position*1.0e25,1.0);\\n  gl_Position = alignToPixelCenter(posProj, viewport.zw);\\n  gl_Position.z = gl_Position.w;\\n  vcolor = color / 1.2;\\n  vsize = size * 5.0 * pixelRatio;\\n  gl_PointSize = vsize;\\n}\"},materials:{hud:{\"colorPass.frag\":\"#include <materials/hud/hudHeader.glsl>\\nvoid main() {\\n#include <materials/hud/hudMain.glsl>\\n}\",\"highlightPass.frag\":\"#include <materials/hud/hudHeader.glsl>\\n#include <util/highlight.glsl>\\nuniform sampler2D depthTex;\\nuniform vec4 highlightViewportPixelSz;\\nvoid main() {\\n#include <materials/hud/hudMain.glsl>\\n#ifdef BINARY_HIGHLIGHT_OCCLUSION\\n  if (voccluded == 1.0) {\\n    gl_FragColor = vec4(1.0, 1.0, 0.0, 1.0);\\n  } else {\\n    gl_FragColor = vec4(1.0, 0.0, 1.0, 1.0);\\n  }\\n#else\\n  gl_FragColor = highlightData(gl_FragCoord, depthTex, highlightViewportPixelSz);\\n#endif\\n}\",\"hud.vert\":\"#include <util/vsPrecision.glsl>\\n#include <util/alignPixel.glsl>\\n#include <util/hud.glsl>\\n#include <util/visualVariables.glsl>\\n#include <util/slice.glsl>\\nuniform vec2 screenOffset;\\nuniform vec2 anchorPos;\\nuniform vec2 textureCoordinateScaleFactor;\\n#ifdef SCREEN_SIZE_PERSPECTIVE\\nuniform vec4 screenSizePerspective;\\n#endif\\n#ifdef DEBUG_DRAW_BORDER\\nvarying vec4 debugBorderCoords;\\n#endif\\nattribute vec2 uv0;\\nattribute vec4 color;\\nattribute vec2 size;\\nattribute vec4 auxpos2;\\nvarying vec4 vcolor;\\nvarying vec2 vtc;\\nvarying vec2 vsize;\\n#ifdef BINARY_HIGHLIGHT_OCCLUSION\\nvarying float voccluded;\\n#endif\\nvoid main(void) {\\n  ProjectHUDAux projectAux;\\n  vec4 posProj = projectPositionHUD(projectAux);\\n  if (rejectBySlice(projectAux.posModel)) {\\n    gl_Position = vec4(1e038, 1e038, 1e038, 1.0);\\n    return;\\n  }\\n  vec2 inputSize;\\n#ifdef SCREEN_SIZE_PERSPECTIVE\\n  inputSize = screenSizePerspectiveScaleVec2(size, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspective);\\n  vec2 screenOffsetScaled = screenSizePerspectiveScaleVec2(screenOffset, projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspectiveAlignment);\\n#else\\n  inputSize = size;\\n  vec2 screenOffsetScaled = screenOffset;\\n#endif\\n#ifdef VV_SIZE\\n  inputSize *= vvGetScale(auxpos2).xx;\\n#endif\\n  vec2 combinedSize = inputSize * pixelRatio;\\n  vec4 quadOffset = vec4(0.0);\\n#if defined(OCCL_TEST) || defined(BINARY_HIGHLIGHT_OCCLUSION)\\n  bool visible = testVisibilityHUD(posProj);\\n#endif\\n#ifdef BINARY_HIGHLIGHT_OCCLUSION\\nvoccluded = visible ? 0.0 : 1.0;\\n#endif\\n#ifdef OCCL_TEST\\n  if (visible) {\\n#endif\\n    vec2 uv01 = floor(uv0);\\n    vec2 uv = uv0 - uv01;\\n    quadOffset.xy = ((uv01 - anchorPos) * 2.0 * combinedSize + screenOffsetScaled) / viewport.zw * posProj.w;\\n#ifdef SIGNED_DISTANCE_FIELD\\n    posProj = alignToPixelOrigin(posProj, viewport.zw) + quadOffset;\\n#else\\n    posProj += quadOffset;\\n    if (inputSize.x == size.x) {\\n      posProj = alignToPixelOrigin(posProj, viewport.zw);\\n    }\\n#endif\\n    gl_Position = posProj;\\n    vtc = uv * textureCoordinateScaleFactor;\\n#ifdef DEBUG_DRAW_BORDER\\n    debugBorderCoords = vec4(uv01, 1.5 / combinedSize);\\n#endif\\n    vsize = inputSize;\\n#ifdef OCCL_TEST\\n  } else {\\n    vtc = vec2(.0);\\n#ifdef DEBUG_DRAW_BORDER\\n    debugBorderCoords = vec4(0.5, 0.5, 1.5 / combinedSize);\\n#endif\\n  }\\n#endif\\n  gl_Position = posProj;\\n#ifdef VV_COLOR\\n  vcolor = vvGetColor(auxpos2, vvColorValues, vvColorColors);\\n#else\\n  vcolor = color / 255.0;\\n#endif\\n}\",\"hudHeader.glsl\":\"#include <util/enableExtensions.glsl>\\n#include <util/fsPrecision.glsl>\\n#include <util/encoding.glsl>\\n#include <util/color.glsl>\\nuniform sampler2D tex;\\nuniform vec4 overrideColor;\\nuniform vec4 outlineColor;\\nuniform float outlineSize;\\nvarying vec4 vcolor;\\nvarying vec2 vtc;\\nvarying vec2 vsize;\\n#ifdef BINARY_HIGHLIGHT_OCCLUSION\\nvarying float voccluded;\\n#endif\\n#ifdef DEBUG_DRAW_BORDER\\nvarying vec4 debugBorderCoords;\\n#endif\",\"hudMain.glsl\":\"#ifdef SIGNED_DISTANCE_FIELD\\n  vec4 color = vec4(0.0, 0.0, 0.0, 0.0);\\n  vec4 fillPixelColor = overrideColor * vcolor;\\n  const float txSize = 128.0;\\n  const float texelSize = 1.0 / txSize;\\n  vec2 scaleFactor = (vsize - txSize) * texelSize;\\n  vec2 samplePos = vtc + (vec2(1.0, -1.0) * texelSize) * scaleFactor;\\n  float d = rgba2float(texture2D(tex, samplePos)) - 0.5;\\n  float dist = d * vsize.x;\\n  fillPixelColor.a *= clamp(0.5 - dist, 0.0, 1.0);\\n  if (outlineSize > 0.25) {\\n    vec4 outlinePixelColor = outlineColor;\\n    float clampedOutlineSize = min(outlineSize, 0.5*vsize.x);\\n    outlinePixelColor.a *= clamp(0.5 - (abs(dist) - 0.5*clampedOutlineSize), 0.0, 1.0);\\n    float compositeAlpha = outlinePixelColor.a + fillPixelColor.a * (1.0 - outlinePixelColor.a);\\n    vec3 compositeColor = vec3(outlinePixelColor) * outlinePixelColor.a +\\n      vec3(fillPixelColor) * fillPixelColor.a * (1.0 - outlinePixelColor.a);\\n    gl_FragColor = vec4(compositeColor, compositeAlpha);\\n  }\\n  else {\\n    gl_FragColor = premultiplyAlpha(fillPixelColor);\\n  }\\n#else\\n  gl_FragColor = texture2D(tex, vtc, -0.5) * premultiplyAlpha(overrideColor * vcolor);\\n#endif\\n#ifdef DEBUG_DRAW_BORDER\\n   float isBorder = float(any(lessThan(debugBorderCoords.xy, debugBorderCoords.zw)) || any(greaterThan(debugBorderCoords.xy, 1.0 - debugBorderCoords.zw)));\\n   gl_FragColor = mix(gl_FragColor, vec4(1.0, 0.0, 1.0, 1.0), isBorder);\\n#endif\\n  if (gl_FragColor.a < 0.1) {\\n    discard;\\n  }\",\"occlusionTest.frag\":\"#include <util/fsPrecision.glsl>\\nuniform vec4 color;\\nvoid main() {\\n  gl_FragColor = color;\\n}\",\"occlusionTest.vert\":\"#include <util/vsPrecision.glsl>\\n#include <util/alignPixel.glsl>\\n#include <util/hud.glsl>\\n#include <util/slice.glsl>\\nvoid main(void) {\\n  vec4 posProjCenter;\\n  if (dot(position, position) > 0.0) {\\n    ProjectHUDAux projectAux;\\n    vec4 posProj = projectPositionHUD(projectAux);\\n    posProjCenter = alignToPixelCenter(posProj, viewport.zw);\\n    vec3 vpos = projectAux.posModel;\\n    if (rejectBySlice(vpos)) {\\n      posProjCenter = vec4(1e038, 1e038, 1e038, 1.0);\\n    }\\n  }\\n  else {\\n    posProjCenter = vec4(1e038, 1e038, 1e038, 1.0);\\n  }\\n  gl_Position = posProjCenter;\\n  gl_PointSize = 1.0;\\n}\"},lineCallout:{\"lineCallout.frag\":\"#include <util/fsPrecision.glsl>\\nuniform vec4 color;\\nuniform vec4 borderColor;\\nvarying vec4 coverageSampling;\\nvarying vec2 lineSizes;\\nvoid main() {\\n  vec2 coverage = min(1.0 - clamp(abs(coverageSampling.xy) - coverageSampling.zw, 0.0, 1.0), lineSizes);\\n  float borderAlpha = color.a * borderColor.a * coverage.y;\\n  float colorAlpha = color.a * coverage.x;\\n  float finalAlpha = mix(borderAlpha, 1.0, colorAlpha);\\n#ifdef DEPTH_HUD\\n  if (finalAlpha < 0.01) {\\n    discard;\\n  }\\n#else\\n  vec3 finalRgb = mix(borderColor.rgb * borderAlpha, color.rgb, colorAlpha);\\n  gl_FragColor = vec4(finalRgb, finalAlpha);\\n#endif\\n}\",\"lineCallout.vert\":\"#include <util/vsPrecision.glsl>\\n#include <util/alignPixel.glsl>\\n#include <util/hud.glsl>\\n#include <util/slice.glsl>\\nattribute vec2 uv0;\\nuniform float lineSize;\\nuniform vec2 pixelToNDC;\\nuniform float borderSize;\\nuniform vec2 screenOffset;\\nvarying vec4 coverageSampling;\\nvarying vec2 lineSizes;\\nvoid main(void) {\\n  ProjectHUDAux projectAux;\\n  vec4 endPoint = projectPositionHUD(projectAux);\\n  vec3 vpos = projectAux.posModel;\\n  if (rejectBySlice(vpos)) {\\n    gl_Position = vec4(1e38, 1e38, 1e38, 1.0);\\n    return;\\n  }\\n#ifdef OCCL_TEST\\n  if (!testVisibilityHUD(endPoint)) {\\n    gl_Position = vec4(1e38, 1e38, 1e38, 1.0);\\n    return;\\n  }\\n#endif\\n#ifdef SCREEN_SIZE_PERSPECTIVE\\n  vec4 perspectiveFactor = screenSizePerspectiveScaleFactor(projectAux.absCosAngle, projectAux.distanceToCamera, screenSizePerspectiveAlignment);\\n  vec2 screenOffsetScaled = applyScreenSizePerspectiveScaleFactorVec2(screenOffset, perspectiveFactor);\\n#else\\n  vec2 screenOffsetScaled = screenOffset;\\n#endif\\n  vec3 posView = (view * (model * vec4(position, 1.0))).xyz;\\n  applyHUDViewDependentPolygonOffset(auxpos1.w, projectAux.absCosAngle, posView);\\n  vec4 startPoint = proj * vec4(posView, 1.0);\\n  vec2 screenOffsetNorm = screenOffsetScaled * 2.0 / viewport.zw;\\n  startPoint.xy += screenOffsetNorm * startPoint.w;\\n  endPoint.xy += screenOffsetNorm * endPoint.w;\\n  vec4 startAligned = alignToPixelOrigin(startPoint, viewport.zw);\\n  vec4 endAligned = alignToPixelOrigin(endPoint, viewport.zw);\\n#ifdef DEPTH_HUD\\n#ifdef DEPTH_HUD_ALIGN_START\\n  endAligned = vec4(endAligned.xy / endAligned.w * startAligned.w, startAligned.zw);\\n#else\\n  startAligned = vec4(startAligned.xy / startAligned.w * endAligned.w, endAligned.zw);\\n#endif\\n#endif\\n  vec4 projectedPosition = mix(startAligned, endAligned, uv0.y);\\n  vec2 screenSpaceDirection = normalize(endAligned.xy / endAligned.w - startAligned.xy / startAligned.w);\\n  vec2 perpendicularScreenSpaceDirection = vec2(screenSpaceDirection.y, -screenSpaceDirection.x);\\n#ifdef SCREEN_SIZE_PERSPECTIVE\\n  float lineSizeScaled = applyScreenSizePerspectiveScaleFactorFloat(lineSize, perspectiveFactor);\\n  float borderSizeScaled = applyScreenSizePerspectiveScaleFactorFloat(borderSize, perspectiveFactor);\\n#else\\n  float lineSizeScaled = lineSize;\\n  float borderSizeScaled = borderSize;\\n#endif\\n  float halfPixelSize = lineSizeScaled * 0.5;\\n  float halfWholePixelSize = floor(lineSizeScaled) * 0.5;\\n  float halfPixelSizeInt = floor(halfWholePixelSize);\\n  float subpixelOffset = -fract(lineSizeScaled) * float(halfWholePixelSize > 0.0);\\n  float pixelOffset = -halfPixelSizeInt + subpixelOffset;\\n  float padding = 1.0 + borderSizeScaled;\\n  vec2 ndcOffset = (pixelOffset - padding + uv0.x * (lineSizeScaled + padding + padding)) * pixelToNDC;\\n  projectedPosition.xy += perpendicularScreenSpaceDirection * ndcOffset * projectedPosition.w;\\n  float edgeDirection = (uv0.x * 2.0 - 1.0);\\n  float halfBorderSize = 0.5 * borderSizeScaled;\\n  float halfPixelSizeAndBorder = halfPixelSize + halfBorderSize;\\n  float outerEdgeCoverageSampler = edgeDirection * (halfPixelSizeAndBorder + halfBorderSize + 1.0);\\n  float isOneSided = float(lineSizeScaled < 2.0 && borderSize < 2.0);\\n  coverageSampling = vec4(\\n    outerEdgeCoverageSampler,\\n    outerEdgeCoverageSampler - halfPixelSizeAndBorder * isOneSided,\\n    halfPixelSize - 0.5,\\n    halfBorderSize - 0.5 + halfPixelSizeAndBorder * (1.0 - isOneSided)\\n  );\\n  lineSizes = vec2(lineSizeScaled, borderSizeScaled);\\n  gl_Position = projectedPosition;\\n}\"},measurementArrow:{\"measurementArrow.frag\":\"#include <util/fsPrecision.glsl>\\nuniform float outlineSize;\\nuniform vec4 outlineColor;\\nuniform float stripeLength;\\nuniform vec4 stripeEvenColor;\\nuniform vec4 stripeOddColor;\\nvarying vec2 vtc;\\nvarying float vlength;\\nvarying float vradius;\\n#define INV_SQRT2 (1.0 / sqrt(2.0))\\nvec4 arrowColor(vec2 tc, float len) {\\n  float d = INV_SQRT2 * (tc.x - abs(tc.y));\\n  d = min(d, INV_SQRT2 * (len - tc.x - abs(tc.y)));\\n  d = min(d, 1.0 - abs(tc.y));\\n  if (d < 0.0) {\\n    return vec4(0.0);\\n  } else if (d < outlineSize) {\\n    return outlineColor;\\n  } else {\\n    return fract(0.5 / stripeLength * tc.x * vradius) >= 0.5 ? stripeOddColor : stripeEvenColor;\\n  }\\n}\\nvoid main(void) {\\n  vec2 ntc = vec2(vtc.x / vradius, vtc.y);\\n  vec4 color = arrowColor(ntc, vlength / vradius);\\n  if (color.a == 0.0) {\\n    discard;\\n  }\\n  gl_FragColor = color;\\n}\",\"measurementArrow.vert\":\"#include <util/vsPrecision.glsl>\\nuniform mat4 proj;\\nuniform mat4 view;\\nuniform mat4 model;\\nuniform float width;\\nattribute vec3 position;\\nattribute vec3 normal;\\nattribute vec2 uv0;\\nattribute float auxpos1;\\nvarying vec2 vtc;\\nvarying float vlength;\\nvarying float vradius;\\nvoid main(void) {\\n  vec3 bitangent = normal;\\n  vtc = uv0;\\n  vlength = auxpos1;\\n  vradius = 0.5 * width;\\n  vec4 pos = view * vec4((model * vec4(position + vradius * bitangent * uv0.y, 1.0)).xyz, 1.0);\\n  gl_Position = proj * pos;\\n}\"},slicePlane:{\"slicePlane.frag\":\"#include <util/enableExtensions.glsl>\\n#include <util/fsPrecision.glsl>\\nuniform vec4 backgroundColor;\\nuniform vec4 gridColor;\\nuniform float ratio;\\nuniform float gridWidth;\\nvarying vec2 vUV;\\nvoid main() {\\n  const float LINE_WIDTH = 1.0;\\n  vec2 uvScaled = vUV * gridWidth;\\n  vec2 gridUV = (fract(uvScaled + 0.5) - 0.5) / (LINE_WIDTH * fwidth(uvScaled));\\n  vec2 grid = (1.0 - step(0.5, gridUV)) * step(-0.5, gridUV);\\n  grid.x *= step(0.5, uvScaled.x) * step(uvScaled.x, gridWidth - 0.5);\\n  grid.y *= step(0.5, uvScaled.y) * step(uvScaled.y, gridWidth - 0.5);\\n  float gridFade = max(grid.x, grid.y);\\n  float gridAlpha = gridColor.a * gridFade;\\n  gl_FragColor =\\n    vec4(backgroundColor.rgb * backgroundColor.a, backgroundColor.a) * (1.0 - gridAlpha) +\\n    vec4(gridColor.rgb, 1.0) * gridAlpha;\\n}\",\"slicePlane.vert\":\"#include <util/vsPrecision.glsl>\\nuniform mat4 proj;\\nuniform mat4 view;\\nuniform mat4 model;\\nattribute vec3 position;\\nattribute vec2 uv0;\\nvarying vec2 vUV;\\nvoid main(void) {\\n  vUV = uv0;\\n  gl_Position = proj * view * vec4((model * vec4(position, 1.0)).xyz, 1.0);\\n}\"}},pointRenderer:{\"pointRenderer.frag\":\"#include <util/fsPrecision.glsl>\\n#include <util/encoding.glsl>\\n#ifdef HIGHLIGHT_PASS\\n#include <util/highlight.glsl>\\nuniform sampler2D depthTex;\\nuniform vec4 highlightViewportPixelSz;\\n#endif\\n#ifdef DEPTH_PASS\\nvarying float depth;\\n#elif defined(HIGHLIGHT_PASS)\\n#else\\nvarying vec3 vColor;\\n#endif\\nvoid main(void) {\\n  vec2 vOffset = gl_PointCoord - vec2(0.5, 0.5);\\n  float r2 = dot(vOffset, vOffset);\\n  if (r2 > 0.25) {\\n    discard;\\n  }\\n#ifdef DEPTH_PASS\\n  gl_FragColor = float2rgba(depth);\\n#elif defined(HIGHLIGHT_PASS)\\n  gl_FragColor = highlightData(gl_FragCoord, depthTex, highlightViewportPixelSz);\\n#else\\n  gl_FragColor = vec4(vColor, 1.0);\\n#endif\\n}\",\"pointRenderer.vert\":\"#include <util/slice.glsl>\\n#include <util/vsPrecision.glsl>\\nattribute vec3 aPosition;\\nattribute vec3 aColor;\\nuniform mat4 uModelViewMatrix;\\nuniform mat4 uProjectionMatrix;\\nuniform vec2 uScreenMinMaxSize;\\nuniform vec2 uPointScale;\\nuniform vec3 uClipMin;\\nuniform vec3 uClipMax;\\n#ifdef DEPTH_PASS\\nuniform vec2 nearFar;\\nvarying float depth;\\n#else\\nvarying vec3 vColor;\\n#endif\\nvoid main(void) {\\n  if (aPosition.x < uClipMin.x || aPosition.y < uClipMin.y || aPosition.z < uClipMin.z ||\\n      aPosition.x > uClipMax.x || aPosition.y > uClipMax.y || aPosition.z > uClipMax.z) {\\n    gl_Position = vec4(0.0,0.0,0.0,2.0);\\n    gl_PointSize = 0.0;\\n    return;\\n  }\\n  if (rejectBySlice(aPosition)) {\\n    gl_Position = vec4(0.0,0.0,0.0,2.0);\\n    gl_PointSize = 0.0;\\n    return;\\n  }\\n  vec4 camera = uModelViewMatrix * vec4(aPosition, 1.0);\\n  float pointSize = uPointScale.x;\\n  vec4 position = uProjectionMatrix * camera;\\n#ifdef DRAW_SCREEN_SIZE\\n    float clampedScreenSize = pointSize;\\n#else\\n    float pointRadius = 0.5 * pointSize;\\n    vec4 cameraOffset = camera + vec4(0.0, pointRadius, 0.0, 0.0);\\n    vec4 positionOffset = uProjectionMatrix * cameraOffset;\\n    float radius = abs(positionOffset.y - position.y);\\n    float viewHeight = uPointScale.y;\\n    float screenPointSize = (radius / position.w) * viewHeight;\\n    float clampedScreenSize = clamp(screenPointSize, uScreenMinMaxSize.x, uScreenMinMaxSize.y);\\n    camera.xyz -= normalize(camera.xyz) * pointRadius * clampedScreenSize / screenPointSize;\\n    position = uProjectionMatrix * camera;\\n#endif\\n  gl_PointSize = clampedScreenSize;\\n  gl_Position = position;\\n#ifdef DEPTH_PASS\\n  depth = (-camera.z - nearFar[0]) / (nearFar[1] - nearFar[0]);\\n#else\\n  vColor = aColor;\\n#endif\\n}\"},renderer:{highlight:{\"apply.frag\":\"#include <util/fsPrecision.glsl>\\nuniform sampler2D tex;\\nuniform sampler2D origin;\\nuniform vec4 color;\\nuniform vec4 haloColor;\\nuniform float outlineSize;\\nuniform float blurSize;\\nuniform vec4 opacities;\\nvarying vec2 uv;\\nvoid main() {\\n  #if defined(GRID_OPTIMIZATION) && defined(GRID_DEBUG)\\n    gl_FragColor = vec4(uv, 0.0, 1.0);\\n  #else\\n    vec4 blurredHighlightValue = texture2D(tex, uv);\\n    float highlightIntensity = blurredHighlightValue.a;\\n    if (highlightIntensity == 0.0) {\\n      discard;\\n    }\\n    vec4 origin_color = texture2D(origin, uv);\\n    float outlineIntensity;\\n    float fillIntensity;\\n    if (blurredHighlightValue.g > blurredHighlightValue.b) {\\n      outlineIntensity = haloColor.w * opacities[1];\\n      fillIntensity = color.w * opacities[3];\\n    }\\n    else {\\n      outlineIntensity = haloColor.w * opacities[0];\\n      fillIntensity = color.w * opacities[2];\\n    }\\n    float inner = 1.0 - outlineSize / 9.0;\\n    float outer = 1.0 - (outlineSize + blurSize) / 9.0;\\n    float outlineFactor = smoothstep(outer, inner, highlightIntensity);\\n    float fillFactor = any(notEqual(origin_color, vec4(0.0, 0.0, 0.0, 0.0))) ? 1.0 : 0.0;\\n    float intensity = outlineIntensity * outlineFactor * (1.0 - fillFactor) + fillIntensity * fillFactor;\\n    gl_FragColor = vec4(mix(haloColor.rgb, color.rgb, fillFactor), intensity);\\n  #endif\\n}\",\"apply.vert\":\"#include <util/vsPrecision.glsl>\\nattribute vec2 position;\\nvarying vec2 uv;\\n#ifdef GRID_OPTIMIZATION\\n  attribute vec2 uv0;\\n  uniform sampler2D coverageTex;\\n#endif\\nvoid main() {\\n  #ifdef GRID_OPTIMIZATION\\n    #ifdef GRID_DEBUG\\n      vec4 cov = texture2D(coverageTex, uv0);\\n      if (cov.r == 0.0 || cov.g == 1.0 || cov.b == 1.0) {\\n        gl_Position = vec4(0.0);\\n        return;\\n      }\\n      gl_Position = vec4(position, .0, 1.0);\\n      uv = uv0;\\n      return;\\n    #else\\n      vec4 cov = texture2D(coverageTex, uv0);\\n      if (cov.r == 0.0) {\\n        gl_Position = vec4(0.0);\\n        return;\\n      }\\n    #endif\\n  #endif\\n  gl_Position = vec4(position, .0, 1.0);\\n  uv = position.xy * .5 + vec2(.5);\\n}\",\n\"blur.frag\":\"#include <util/fsPrecision.glsl>\\nuniform sampler2D tex;\\n#ifdef GRID_OPTIMIZATION\\n  uniform vec2 blurSize;\\n  varying vec3 blurCoordinate;\\n#else\\n  varying vec2 blurCoordinates[GAUSSIAN_SAMPLES];\\n#endif\\nvoid main() {\\n  #ifdef GRID_OPTIMIZATION\\n    vec2 uv = blurCoordinate.xy;\\n    vec4 center = texture2D(tex, uv);\\n    if (blurCoordinate.z == 1.0) {\\n      gl_FragColor = center;\\n    }\\n    else {\\n      vec4 sum = vec4(0.0);\\n      #if GAUSSIAN_SAMPLES == 3\\n        sum += center * 0.204164;\\n        sum += texture2D(tex, uv + blurSize * 1.407333) * 0.304005;\\n        sum += texture2D(tex, uv - blurSize * 1.407333) * 0.304005;\\n      #elif GAUSSIAN_SAMPLES == 5\\n        sum += center * 0.204164;\\n        sum += texture2D(tex, uv + blurSize * 1.407333) * 0.304005;\\n        sum += texture2D(tex, uv - blurSize * 1.407333) * 0.304005;\\n        sum += texture2D(tex, uv + blurSize * 3.294215) * 0.093913;\\n        sum += texture2D(tex, uv - blurSize * 3.294215) * 0.093913;\\n      #elif GAUSSIAN_SAMPLES == 7\\n        sum += center * 0.204164;\\n        sum += texture2D(tex, uv + blurSize * 1.407333) * 0.304005;\\n        sum += texture2D(tex, uv - blurSize * 1.407333) * 0.304005;\\n        sum += texture2D(tex, uv + blurSize * 3.294215) * 0.093913;\\n        sum += texture2D(tex, uv - blurSize * 3.294215) * 0.093913;\\n        sum += texture2D(tex, uv + blurSize * 5.1) * 0.03;\\n        sum += texture2D(tex, uv - blurSize * 5.1) * 0.03;\\n      #elif GAUSSIAN_SAMPLES == 9\\n        sum += center * 0.154164;\\n        sum += texture2D(tex, uv + blurSize * 1.5) * 0.204005;\\n        sum += texture2D(tex, uv - blurSize * 1.5) * 0.204005;\\n        sum += texture2D(tex, uv + blurSize * 3.5) * 0.123913;\\n        sum += texture2D(tex, uv - blurSize * 3.5) * 0.123913;\\n        sum += texture2D(tex, uv + blurSize * 5.5) * 0.123913;\\n        sum += texture2D(tex, uv - blurSize * 5.5) * 0.123913;\\n        sum += texture2D(tex, uv + blurSize * 7.5) * 0.05;\\n        sum += texture2D(tex, uv - blurSize * 7.5) * 0.05;\\n      #endif\\n      gl_FragColor = sum;\\n    }\\n  #else\\n    vec4 sum = vec4(0.0);\\n    #if GAUSSIAN_SAMPLES == 3\\n      sum += texture2D(tex, blurCoordinates[0]) * 0.204164;\\n      sum += texture2D(tex, blurCoordinates[1]) * 0.304005;\\n      sum += texture2D(tex, blurCoordinates[2]) * 0.304005;\\n    #elif GAUSSIAN_SAMPLES == 5\\n      sum += texture2D(tex, blurCoordinates[0]) * 0.204164;\\n      sum += texture2D(tex, blurCoordinates[1]) * 0.304005;\\n      sum += texture2D(tex, blurCoordinates[2]) * 0.304005;\\n      sum += texture2D(tex, blurCoordinates[3]) * 0.093913;\\n      sum += texture2D(tex, blurCoordinates[4]) * 0.093913;\\n    #elif GAUSSIAN_SAMPLES == 7\\n      sum += texture2D(tex, blurCoordinates[0]) * 0.204164;\\n      sum += texture2D(tex, blurCoordinates[1]) * 0.304005;\\n      sum += texture2D(tex, blurCoordinates[2]) * 0.304005;\\n      sum += texture2D(tex, blurCoordinates[3]) * 0.093913;\\n      sum += texture2D(tex, blurCoordinates[4]) * 0.093913;\\n      sum += texture2D(tex, blurCoordinates[5]) * 0.03;\\n      sum += texture2D(tex, blurCoordinates[6]) * 0.03;\\n    #elif GAUSSIAN_SAMPLES == 9\\n      sum += texture2D(tex, blurCoordinates[0]) * 0.154164;\\n      sum += texture2D(tex, blurCoordinates[1]) * 0.204005;\\n      sum += texture2D(tex, blurCoordinates[2]) * 0.204005;\\n      sum += texture2D(tex, blurCoordinates[3]) * 0.123913;\\n      sum += texture2D(tex, blurCoordinates[4]) * 0.123913;\\n      sum += texture2D(tex, blurCoordinates[5]) * 0.09;\\n      sum += texture2D(tex, blurCoordinates[6]) * 0.09;\\n      sum += texture2D(tex, blurCoordinates[7]) * 0.05;\\n      sum += texture2D(tex, blurCoordinates[8]) * 0.05;\\n    #endif\\n    gl_FragColor = sum;\\n  #endif\\n}\",\"blur.vert\":\"#include <util/vsPrecision.glsl>\\nattribute vec2 position;\\nattribute vec2 uv0;\\n#ifdef GRID_OPTIMIZATION\\n  uniform sampler2D coverageTex;\\n  varying vec3 blurCoordinate;\\n#else\\n  uniform vec2 blurSize;\\n  varying vec2 blurCoordinates[GAUSSIAN_SAMPLES];\\n#endif\\nvoid main() {\\n  gl_Position = vec4(position, 0.0, 1.0);\\n  #ifdef GRID_OPTIMIZATION\\n    vec4 cov = texture2D(coverageTex, uv0);\\n    if (cov.r == 0.0) {\\n      gl_Position = vec4(0.0);\\n    }\\n    blurCoordinate = vec3(gl_Position.xy * .5 + vec2(.5), max(cov.g, cov.b));\\n  #else\\n    vec2 uv = position.xy * .5 + vec2(.5);\\n    #if GAUSSIAN_SAMPLES == 3\\n      blurCoordinates[0] = uv;\\n      blurCoordinates[1] = uv + blurSize * 1.407333;\\n      blurCoordinates[2] = uv - blurSize * 1.407333;\\n    #elif GAUSSIAN_SAMPLES == 5\\n      blurCoordinates[0] = uv;\\n      blurCoordinates[1] = uv + blurSize * 1.407333;\\n      blurCoordinates[2] = uv - blurSize * 1.407333;\\n      blurCoordinates[3] = uv + blurSize * 3.294215;\\n      blurCoordinates[4] = uv - blurSize * 3.294215;\\n    #elif GAUSSIAN_SAMPLES == 7\\n      blurCoordinates[0] = uv;\\n      blurCoordinates[1] = uv + blurSize * 1.407333;\\n      blurCoordinates[2] = uv - blurSize * 1.407333;\\n      blurCoordinates[3] = uv + blurSize * 3.294215;\\n      blurCoordinates[4] = uv - blurSize * 3.294215;\\n      blurCoordinates[5] = uv + blurSize * 5.1;\\n      blurCoordinates[6] = uv - blurSize * 5.1;\\n    #elif GAUSSIAN_SAMPLES == 9\\n      blurCoordinates[0] = uv;\\n      blurCoordinates[1] = uv + blurSize * 1.407333;\\n      blurCoordinates[2] = uv - blurSize * 1.407333;\\n      blurCoordinates[3] = uv + blurSize * 3.294215;\\n      blurCoordinates[4] = uv - blurSize * 3.294215;\\n      blurCoordinates[5] = uv + blurSize * 5.1;\\n      blurCoordinates[6] = uv - blurSize * 5.1;\\n      blurCoordinates[7] = uv + blurSize * 7.1;\\n      blurCoordinates[8] = uv - blurSize * 7.1;\\n    #endif\\n  #endif\\n}\",\"downsample.frag\":\"#include <util/fsPrecision.glsl>\\nuniform sampler2D tex;\\nuniform vec2 invFramebufferDim;\\nvoid main() {\\n  vec2 coord = gl_FragCoord.xy * invFramebufferDim;\\n  vec4 value = texture2D(tex, coord);\\n  float mx = floor(max(value.g, value.b));\\n  gl_FragColor = vec4(ceil(value.r), mx, mx, 1.0);\\n}\",\"downsample.vert\":\"#include <util/vsPrecision.glsl>\\nattribute vec2 position;\\nvoid main() {\\n  gl_Position = vec4(vec2(1.0) - position * 2.0, .0, 1.0);\\n}\"},laserLine:{\"laserLine.frag\":\"#include <util/enableExtensions.glsl>\\n#include <util/fsPrecision.glsl>\\n#include <util/depth.glsl>\\nuniform sampler2D depthMap;\\nuniform vec2 nearFar;\\nuniform vec4 projInfo;\\nuniform vec2 zScale;\\nuniform float maxPixelDistance;\\nuniform vec4 focusPlane;\\nuniform vec4 focusSphere;\\nuniform vec4 segmentPlane;\\nuniform vec3 segmentStart;\\nuniform vec3 segmentEnd;\\nuniform vec3 glowColor;\\nuniform float glowWidth;\\nuniform vec3 innerColor;\\nuniform float innerWidth;\\nuniform float globalAlpha;\\nvarying vec2 uv;\\n#define INFINITY 100000.0\\nvec3 reconstructPosition(vec2 fragCoord, float depth) {\\n  return vec3((fragCoord * projInfo.xy + projInfo.zw) * (zScale.x * depth + zScale.y), depth);\\n}\\nfloat planeDistancePixels(vec4 plane, vec3 pos) {\\n  float dist = dot(plane.xyz, pos) + plane.w;\\n  float width = fwidth(dist);\\n  dist /= min(width, maxPixelDistance);\\n  return abs(dist);\\n}\\nfloat sphereDistancePixels(vec4 sphere, vec3 pos) {\\n  float dist = distance(sphere.xyz, pos) - sphere.w;\\n  float width = fwidth(dist);\\n  dist /= min(width, maxPixelDistance);\\n  return abs(dist);\\n}\\nvec4 blendPremultiplied(vec4 source, vec4 dest) {\\n  float oneMinusSourceAlpha = 1.0 - source.a;\\n  return vec4(\\n    source.rgb + dest.rgb * oneMinusSourceAlpha,\\n    source.a + dest.a * oneMinusSourceAlpha\\n  );\\n}\\nvec4 premultipliedColor(vec3 rgb, float alpha) {\\n  return vec4(rgb * alpha, alpha);\\n}\\nvec4 laserLineProfile(float dist) {\\n  if (dist > glowWidth) {\\n    return vec4(0.0);\\n  }\\n  float innerAlpha = (1.0 - smoothstep(0.0, innerWidth, dist));\\n  float glowAlpha = pow(max(0.0, 1.0 - dist / glowWidth), 8.0);\\n  return blendPremultiplied(\\n    premultipliedColor(innerColor, innerAlpha),\\n    premultipliedColor(glowColor, glowAlpha)\\n  );\\n}\\nvoid main() {\\n  float depth = linearDepth(depthMap, uv, nearFar);\\n  if (-depth == nearFar[0]) {\\n    discard;\\n  }\\n  vec3 pos = reconstructPosition(gl_FragCoord.xy, depth);\\n  float ddepth = fwidth(depth);\\n  float depthDiscontinuityAlpha = 1.0 - smoothstep(0.0, 0.01, -ddepth / depth);\\n  vec3 normal = normalize(cross(dFdx(pos), dFdy(pos)));\\n  float focusPlaneDistance = planeDistancePixels(focusPlane, pos);\\n  float focusSphereDistance = sphereDistancePixels(focusSphere, pos);\\n  float segmentDistance = INFINITY;\\n  float segmentLength = length(segmentEnd - segmentStart);\\n  vec3 segmentDir = (segmentEnd - segmentStart) / segmentLength;\\n  float t = dot(segmentDir, pos - segmentStart);\\n  if (segmentLength > 0.0 && t >= 0.0 && t <= segmentLength) {\\n    segmentDistance = planeDistancePixels(segmentPlane, pos);\\n  }\\n  vec4 focusPlaneColor = laserLineProfile(focusPlaneDistance);\\n  vec4 focusSphereColor = laserLineProfile(focusSphereDistance);\\n  vec4 segmentColor = laserLineProfile(segmentDistance);\\n  float focusPlaneAlpha = 1.0 - smoothstep(0.995, 0.999, abs(dot(normal, focusPlane.xyz)));\\n  float focusSphereAlpha = 1.0 - smoothstep(0.995, 0.999, abs(dot(normal, normalize(pos - focusSphere.xyz))));\\n  float segmentAlpha = 1.0 - smoothstep(0.995, 0.999, abs(dot(normal, segmentPlane.xyz)));\\n  vec4 color = max(\\n    focusPlaneColor * focusPlaneAlpha,\\n    max(\\n      focusSphereColor * focusSphereAlpha,\\n      segmentColor * segmentAlpha\\n    )\\n  );\\n  gl_FragColor = color * globalAlpha * depthDiscontinuityAlpha;\\n}\"},offscreen:{\"composite.frag\":\"#include <util/fsPrecision.glsl>\\nuniform sampler2D tex;\\nvarying vec2 vtc;\\nvoid main() {\\n  gl_FragColor = texture2D(tex, vtc);\\n}\",\"compositeOccluded.frag\":\"#include <util/fsPrecision.glsl>\\nuniform sampler2D occludedColorMap;\\nuniform float opacity;\\nvarying vec2 vtc;\\nvoid main() {\\n  vec4 occludedColor = texture2D(occludedColorMap, vtc);\\n  gl_FragColor = occludedColor * opacity;\\n}\",\"compositeTransparentToHUDVisibility.frag\":\"#include <util/fsPrecision.glsl>\\nuniform sampler2D tex;\\nvarying vec2 vtc;\\nvoid main() {\\n  gl_FragColor = vec4(1.0 - texture2D(tex, vtc).a);\\n}\",\"offscreen.vert\":\"#include <util/vsPrecision.glsl>\\nattribute vec2 position;\\nvarying vec2 vtc;\\nvoid main(void) {\\n  gl_Position = vec4(position.xy, 0.0, 1.0);\\n  vtc = position.xy * 0.5 + 0.5;\\n}\"}},util:{\"alignPixel.glsl\":\"vec4 alignToPixelCenter(vec4 clipCoord, vec2 widthHeight) {\\n  vec2 xy = vec2(.500123) + .5 * clipCoord.xy / clipCoord.w;\\n  vec2 pixelSz = vec2(1.0) / widthHeight;\\n  vec2 ij = (floor(xy * widthHeight) + vec2(0.5)) * pixelSz;\\n  vec2 result = (ij * 2.0 - vec2(1.0)) * clipCoord.w;\\n  return vec4(result, clipCoord.zw);\\n}\\nvec4 alignToPixelOrigin(vec4 clipCoord, vec2 widthHeight) {\\n  vec2 xy = vec2(.5) + .5 * clipCoord.xy / clipCoord.w;\\n  vec2 pixelSz = vec2(1.0) / widthHeight;\\n  vec2 ij = floor((xy + .5 * pixelSz) * widthHeight) * pixelSz;\\n  vec2 result = (ij * 2.0 - vec2(1.0)) * clipCoord.w;\\n  return vec4(result, clipCoord.zw);\\n}\",\"color.glsl\":\"vec4 premultiplyAlpha(vec4 v) {\\n  return vec4(v.rgb * v.a, v.a);\\n}\\nvec3 rgb2hsv(vec3 c) {\\n  vec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\\n  vec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);\\n  vec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);\\n  float d = q.x - min(q.w, q.y);\\n  float e = 1.0e-10;\\n  return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), min(d / (q.x + e), 1.0), q.x);\\n}\\nvec3 hsv2rgb(vec3 c) {\\n  vec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\\n  vec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\\n  return c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\\n}\\nfloat rgb2v(vec3 c) {\\n  return max(c.x, max(c.y, c.z));\\n}\",\"depth.glsl\":\"#include <util/encoding.glsl>\\nfloat linearDepth(sampler2D depthTex, vec2 uv, vec2 nearFar) {\\n  return -(rgba2float(texture2D(depthTex, uv)) * (nearFar[1] - nearFar[0]) + nearFar[0]);\\n}\\nfloat calcFragDepth(const in float depth) {\\n  const float SLOPE_SCALE = 2.0;\\n  const float BIAS = 2.0 * .000015259;\\n  float m = max(abs(dFdx(depth)), abs(dFdy(depth)));\\n  float result = depth + SLOPE_SCALE * m + BIAS;\\n  return clamp(result, .0, .999999);\\n}\",\"doublePrecision.glsl\":\"#ifdef DOUBLE_PRECISION_REQUIRES_OBFUSCATION\\nvec3 dpPlusFrc(vec3 a, vec3 b) {\\n  return mix(a, a + b, vec3(notEqual(b, vec3(0))));\\n}\\nvec3 dpMinusFrc(vec3 a, vec3 b) {\\n  return mix(vec3(0), a - b, vec3(notEqual(a, b)));\\n}\\nvec3 dpAdd(vec3 hiA, vec3 loA, vec3 hiB, vec3 loB) {\\n  vec3 t1 = dpPlusFrc(hiA, hiB);\\n  vec3 e = dpMinusFrc(t1, hiA);\\n  vec3 t2 = dpMinusFrc(hiB, e) + dpMinusFrc(hiA, dpMinusFrc(t1, e)) + loA + loB;\\n  return t1 + t2;\\n}\\n#else\\nvec3 dpAdd(vec3 hiA, vec3 loA, vec3 hiB, vec3 loB) {\\n  vec3 t1 = hiA + hiB;\\n  vec3 e = t1 - hiA;\\n  vec3 t2 = ((hiB - e) + (hiA - (t1 - e))) + loA + loB;\\n  return t1 + t2;\\n}\\n#endif\",\"enableExtensions.glsl\":\"#define EXTENSIONS_ENABLED\\n#extension GL_OES_standard_derivatives : enable\\n#extension GL_EXT_shader_texture_lod : enable\",\"encoding.glsl\":\"const float MAX_RGBA_FLOAT =\\n  255.0 / 256.0 +\\n  255.0 / 256.0 / 256.0 +\\n  255.0 / 256.0 / 256.0 / 256.0 +\\n  255.0 / 256.0 / 256.0 / 256.0 / 256.0;\\nconst vec4 fixedPointFactors = vec4(1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0);\\nvec4 float2rgba(const float value) {\\n  float valueInValidDomain = clamp(value, 0.0, MAX_RGBA_FLOAT);\\n  vec4 fixedPointU8 = floor(fract(valueInValidDomain * fixedPointFactors) * 256.0);\\n  const float toU8AsFloat = 1.0 / 255.0;\\n  return fixedPointU8 * toU8AsFloat;\\n}\\nconst vec4 rgba2float_factors = vec4(\\n  255.0 / (256.0),\\n  255.0 / (256.0 * 256.0),\\n  255.0 / (256.0 * 256.0 * 256.0),\\n  255.0 / (256.0 * 256.0 * 256.0 * 256.0)\\n);\\nfloat rgba2float(vec4 rgba) {\\n  return dot(rgba, rgba2float_factors);\\n}\",\"fsPrecision.glsl\":\"#ifdef GL_FRAGMENT_PRECISION_HIGH\\nprecision highp float;\\nprecision highp sampler2D;\\n#else\\nprecision mediump float;\\nprecision mediump sampler2D;\\n#endif\",\"highlight.glsl\":\"vec4 highlightData(vec4 fragCoord, sampler2D depthTex, vec4 viewportPixelSize) {\\n  float sceneDepth = texture2D(depthTex, (fragCoord.xy - viewportPixelSize.xy) * viewportPixelSize.zw).r;\\n  if (fragCoord.z > sceneDepth + 5e-7) {\\n    return vec4(1.0, 1.0, 0.0, 1.0);\\n  }\\n  else {\\n    return vec4(1.0, 0.0, 1.0, 1.0);\\n  }\\n}\",\"hud.glsl\":\"#include <util/screenSizePerspective.glsl>\\nattribute vec3 position;\\nattribute vec3 normal;\\nattribute vec4 auxpos1;\\nuniform mat4 proj;\\nuniform mat4 view;\\nuniform mat4 viewNormal;\\nuniform mat4 model;\\nuniform mat4 modelNormal;\\nuniform vec4 viewport;\\nuniform vec3 camPos;\\nuniform float polygonOffset;\\nuniform float cameraGroundRelative;\\nuniform float pixelRatio;\\nuniform float perDistancePixelRatio;\\n#ifdef VERTICAL_OFFSET\\nuniform vec4 verticalOffset;\\n#endif\\n#ifdef SCREEN_SIZE_PERSPECTIVE\\nuniform vec4 screenSizePerspectiveAlignment;\\n#endif\\nuniform sampler2D hudVisibilityTexture;\\nconst float SMALL_OFFSET_ANGLE = 0.984807753012208;\\nstruct ProjectHUDAux {\\n  vec3 posModel;\\n  vec3 posView;\\n  vec3 vnormal;\\n  float distanceToCamera;\\n  float absCosAngle;\\n};\\nfloat applyHUDViewDependentPolygonOffset(float pointGroundDistance, float absCosAngle, inout vec3 posView) {\\n  float pointGroundSign = sign(pointGroundDistance);\\n  if (pointGroundSign == 0.0) {\\n    pointGroundSign = cameraGroundRelative;\\n  }\\n  float groundRelative = cameraGroundRelative * pointGroundSign;\\n  if (polygonOffset > .0) {\\n    float cosAlpha = clamp(absCosAngle, 0.01, 1.0);\\n    float tanAlpha = sqrt(1.0 - cosAlpha * cosAlpha) / cosAlpha;\\n    float factor = (1.0 - tanAlpha / viewport[2]);\\n    if (groundRelative > 0.0) {\\n      posView *= factor;\\n    }\\n    else {\\n      posView /= factor;\\n    }\\n  }\\n  return groundRelative;\\n}\\nvoid applyHUDVerticalGroundOffset(vec3 normalModel, inout vec3 posModel, inout vec3 posView) {\\n  float distanceToCamera = length(posView);\\n  float pixelOffset = distanceToCamera * perDistancePixelRatio * 0.5;\\n  vec3 modelOffset = normalModel * cameraGroundRelative * pixelOffset;\\n  vec3 viewOffset = (viewNormal * vec4(modelOffset, 1.0)).xyz;\\n  posModel += modelOffset;\\n  posView += viewOffset;\\n}\\nvec4 projectPositionHUD(out ProjectHUDAux aux) {\\n  vec3 centerOffset = auxpos1.xyz;\\n  float pointGroundDistance = auxpos1.w;\\n  aux.posModel = (model * vec4(position, 1.0)).xyz;\\n  aux.posView = (view * vec4(aux.posModel, 1.0)).xyz;\\n  aux.vnormal = (modelNormal * vec4(normal, 1.0)).xyz;\\n  applyHUDVerticalGroundOffset(aux.vnormal, aux.posModel, aux.posView);\\n  aux.distanceToCamera = length(aux.posView);\\n  vec3 viewDirObjSpace = normalize(camPos - aux.posModel);\\n  float cosAngle = dot(aux.vnormal, viewDirObjSpace);\\n  aux.absCosAngle = abs(cosAngle);\\n#ifdef SCREEN_SIZE_PERSPECTIVE\\n#if defined(VERTICAL_OFFSET) || defined(CENTER_OFFSET_UNITS_SCREEN)\\n  vec4 perspectiveFactor = screenSizePerspectiveScaleFactor(aux.absCosAngle, aux.distanceToCamera, screenSizePerspectiveAlignment);\\n#endif\\n#endif\\n#ifdef VERTICAL_OFFSET\\n#ifdef SCREEN_SIZE_PERSPECTIVE\\n  float verticalOffsetScreenHeight = applyScreenSizePerspectiveScaleFactorFloat(verticalOffset.x, perspectiveFactor);\\n#else\\n  float verticalOffsetScreenHeight = verticalOffset.x;\\n#endif\\n  float worldOffset = clamp(verticalOffsetScreenHeight * verticalOffset.y * aux.distanceToCamera, verticalOffset.z, verticalOffset.w);\\n  vec3 modelOffset = aux.vnormal * worldOffset;\\n  aux.posModel += modelOffset;\\n  vec3 viewOffset = (viewNormal * vec4(modelOffset, 1.0)).xyz;\\n  aux.posView += viewOffset;\\n  pointGroundDistance += worldOffset;\\n#endif\\n  float groundRelative = applyHUDViewDependentPolygonOffset(pointGroundDistance, aux.absCosAngle, aux.posView);\\n#ifndef CENTER_OFFSET_UNITS_SCREEN\\n  aux.posView += vec3(centerOffset.x, centerOffset.y, 0.0);\\n  if (centerOffset.z != 0.0) {\\n    aux.posView -= normalize(aux.posView) * centerOffset.z;\\n  }\\n#endif\\n  vec4 posProj = proj * vec4(aux.posView, 1.0);\\n#ifdef CENTER_OFFSET_UNITS_SCREEN\\n#ifdef SCREEN_SIZE_PERSPECTIVE\\n  float centerOffsetY = applyScreenSizePerspectiveScaleFactorFloat(centerOffset.y, perspectiveFactor);\\n#else\\n  float centerOffsetY = centerOffset.y;\\n#endif\\n  posProj.xy += vec2(centerOffset.x, centerOffsetY) * pixelRatio * 2.0 / viewport.zw * posProj.w;\\n#endif\\n  posProj.z -= groundRelative * polygonOffset * posProj.w;\\n  return posProj;\\n}\\nuniform float uRenderTransparentlyOccludedHUD;\\nbool testVisibilityHUD(vec4 posProj) {\\n  vec4 posProjCenter = alignToPixelCenter(posProj, viewport.zw);\\n  vec4 occlusionPixel = texture2D(hudVisibilityTexture, .5 + .5 * posProjCenter.xy / posProjCenter.w);\\n  if (uRenderTransparentlyOccludedHUD > 0.5) {\\n    return occlusionPixel.r * occlusionPixel.g > 0.0 && occlusionPixel.g * uRenderTransparentlyOccludedHUD < 1.0;\\n  }\\n  return occlusionPixel.r * occlusionPixel.g > 0.0 && occlusionPixel.g == 1.0;\\n}\",\"quad.vert\":\"#include <util/vsPrecision.glsl>\\nattribute vec2 position;\\nvarying vec2 uv;\\nvoid main(void) {\\n  gl_Position = vec4(position.x, position.y, .0, 1.0);\\n  uv = position * .5 + vec2(.5);\\n}\",\"screenSizePerspective.glsl\":\"float screenSizePerspectiveMinSize(float size, vec4 factor) {\\n  float nonZeroSize = 1.0 - step(size, 0.0);\\n  return (\\n    factor.z * (\\n      1.0 +\\n      nonZeroSize *\\n      2.0 * factor.w / (\\n        size + (1.0 - nonZeroSize)\\n      )\\n    )\\n  );\\n}\\nfloat screenSizePerspectiveViewAngleDependentFactor(float absCosAngle) {\\n  return absCosAngle * absCosAngle * absCosAngle;\\n}\\nvec4 screenSizePerspectiveScaleFactor(float absCosAngle, float distanceToCamera, vec4 params) {\\n  return vec4(min(params.x / (distanceToCamera - params.y), 1.0), screenSizePerspectiveViewAngleDependentFactor(absCosAngle), params.z, params.w);\\n}\\nfloat applyScreenSizePerspectiveScaleFactorFloat(float size, vec4 factor) {\\n  return max(mix(size * factor.x, size, factor.y), screenSizePerspectiveMinSize(size, factor));\\n}\\nfloat screenSizePerspectiveScaleFloat(float size, float absCosAngle, float distanceToCamera, vec4 params) {\\n  return applyScreenSizePerspectiveScaleFactorFloat(size, screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params));\\n}\\nvec2 applyScreenSizePerspectiveScaleFactorVec2(vec2 size, vec4 factor) {\\n  return mix(size * clamp(factor.x, screenSizePerspectiveMinSize(size.y, factor) / size.y, 1.0), size, factor.y);\\n}\\nvec2 screenSizePerspectiveScaleVec2(vec2 size, float absCosAngle, float distanceToCamera, vec4 params) {\\n  return applyScreenSizePerspectiveScaleFactorVec2(size, screenSizePerspectiveScaleFactor(absCosAngle, distanceToCamera, params));\\n}\",\"slice.glsl\":\"#ifdef SLICE\\nuniform vec3 slicePlaneOrigin;\\nuniform vec3 slicePlaneBasis1;\\nuniform vec3 slicePlaneBasis2;\\nstruct SliceFactors {\\n  float front;\\n  float side0;\\n  float side1;\\n  float side2;\\n  float side3;\\n};\\nSliceFactors calculateSliceFactors(vec3 pos) {\\n  vec3 rel = pos - slicePlaneOrigin;\\n  vec3 slicePlaneNormal = -cross(slicePlaneBasis1, slicePlaneBasis2);\\n  float slicePlaneW = -dot(slicePlaneNormal, slicePlaneOrigin);\\n  float basis1Len2 = dot(slicePlaneBasis1, slicePlaneBasis1);\\n  float basis2Len2 = dot(slicePlaneBasis2, slicePlaneBasis2);\\n  float basis1Dot = dot(slicePlaneBasis1, rel);\\n  float basis2Dot = dot(slicePlaneBasis2, rel);\\n  return SliceFactors(\\n    dot(slicePlaneNormal, pos) + slicePlaneW,\\n    -basis1Dot - basis1Len2,\\n    basis1Dot - basis1Len2,\\n    -basis2Dot - basis2Len2,\\n    basis2Dot - basis2Len2\\n  );\\n}\\nbool sliceByFactors(SliceFactors factors) {\\n  return factors.front < 0.0\\n    && factors.side0 < 0.0\\n    && factors.side1 < 0.0\\n    && factors.side2 < 0.0\\n    && factors.side3 < 0.0;\\n}\\nbool sliceByPlane(vec3 pos) {\\n  return sliceByFactors(calculateSliceFactors(pos));\\n}\\n#ifdef EXTENSIONS_ENABLED\\nvec4 applySliceHighlight(vec4 color, vec3 pos) {\\n  SliceFactors factors = calculateSliceFactors(pos);\\n  if (sliceByFactors(factors)) {\\n    return color;\\n  }\\n  const float HIGHLIGHT_WIDTH = 1.0;\\n  const vec4 HIGHLIGHT_COLOR = vec4(0.0, 0.0, 0.0, 0.3);\\n  factors.front /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.front);\\n  factors.side0 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side0);\\n  factors.side1 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side1);\\n  factors.side2 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side2);\\n  factors.side3 /= (2.0 * HIGHLIGHT_WIDTH) * fwidth(factors.side3);\\n  float highlightFactor = (1.0 - step(0.5, factors.front))\\n    * (1.0 - step(0.5, factors.side0))\\n    * (1.0 - step(0.5, factors.side1))\\n    * (1.0 - step(0.5, factors.side2))\\n    * (1.0 - step(0.5, factors.side3));\\n  return mix(color, vec4(HIGHLIGHT_COLOR.rgb, color.a), highlightFactor * HIGHLIGHT_COLOR.a);\\n}\\n#else\\n#endif\\n#define rejectBySlice(_pos_) sliceByPlane(_pos_)\\n#define discardBySlice(_pos_) { if (sliceByPlane(_pos_)) discard; }\\n#ifdef SLICE_HIGHLIGHT_DISABLED\\n#define highlightSlice(_color_, _pos_) (_color_)\\n#else\\n#define highlightSlice(_color_, _pos_) applySliceHighlight(_color_, _pos_)\\n#endif\\n#else\\n#define rejectBySlice(_pos_) false\\n#define discardBySlice(_pos_) {}\\n#define highlightSlice(_color_, _pos_) (_color_)\\n#endif\",\"transform.glsl\":\"vec4 transformPosition(mat4 proj, mat4 view, vec3 pos) {\\n  return proj * (view * vec4(pos, 1.0));\\n}\\nvec4 transformPositionWithDepth(mat4 proj, mat4 view, vec3 pos, vec2 nearFar, out float depth) {\\n  vec4 eye = view * vec4(pos, 1.0);\\n  depth = (-eye.z - nearFar[0]) / (nearFar[1] - nearFar[0]) ;\\n  return proj * eye;\\n}\",\"visualVariables.glsl\":\"#ifdef VV_COLOR\\n  #define VV_COLOR_N 8\\n  uniform float vvColorValues[VV_COLOR_N];\\n  uniform vec4 vvColorColors[VV_COLOR_N];\\n#endif\\n#ifdef VV_SIZE\\n  uniform vec3 vvSizeMinSize;\\n  uniform vec3 vvSizeMaxSize;\\n  uniform vec3 vvSizeOffset;\\n  uniform vec3 vvSizeFactor;\\n  uniform mat3 vvSymbolRotationMatrix;\\n  uniform vec3 vvSymbolAnchor;\\n  vec3 vvGetScale(vec4 featureAttribute) {\\n    return clamp(vvSizeOffset + featureAttribute.x * vvSizeFactor, vvSizeMinSize, vvSizeMaxSize);\\n  }\\n  vec4 vvTransformPosition(vec3 position, vec4 featureAttribute) {\\n    return vec4(vvSymbolRotationMatrix * (vvGetScale(featureAttribute) * (position + vvSymbolAnchor)), 1.0);\\n  }\\n  vec4 vvTransformNormal(vec3 normal, vec4 featureAttribute) {\\n    return vec4(vvSymbolRotationMatrix * normal / vvGetScale(featureAttribute), 1.0);\\n  }\\n#endif\\n#ifdef VV_COLOR\\n  vec4 vvGetColor(vec4 featureAttribute, float values[VV_COLOR_N], vec4 colors[VV_COLOR_N]) {\\n    float value = featureAttribute.y;\\n    if (value <= values[0]) {\\n      return colors[0];\\n    }\\n    for (int i = 1; i < VV_COLOR_N; ++i) {\\n      if (values[i] >= value) {\\n        float f = (value - values[i-1]) / (values[i] - values[i-1]);\\n        return mix(colors[i-1], colors[i], f);\\n      }\\n    }\\n    return colors[VV_COLOR_N - 1];\\n  }\\n#endif\",\"vsPrecision.glsl\":\"precision highp float;\\nprecision highp sampler2D;\"}}});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../core/tsSupport/decorateHelper\",\"../../core/tsSupport/declareExtendsHelper\",\"../../core/tsSupport/assignHelper\",\"../../core/Accessor\",\"../../core/compilerUtils\",\"../../core/Evented\",\"../../core/maybe\",\"../../core/screenUtils\",\"../../core/accessorSupport/decorators\",\"../../core/accessorSupport/ensureType\",\"../../core/libs/gl-matrix-2/mat3\",\"../../core/libs/gl-matrix-2/mat3f64\",\"../../core/libs/gl-matrix-2/mat4\",\"../../core/libs/gl-matrix-2/mat4f64\",\"../../core/libs/gl-matrix-2/vec2\",\"../../core/libs/gl-matrix-2/vec2f32\",\"../../core/libs/gl-matrix-2/vec3\",\"../../core/libs/gl-matrix-2/vec3f64\",\"../../geometry/support/aaBoundingRect\",\"../../layers/graphics/dehydratedFeatures\",\"../3d/support/geometryUtils\",\"../3d/support/projectionUtils\",\"../3d/support/stack\",\"../3d/webgl-engine/lib/Intersector\",\"../3d/webgl-engine/lib/intersectorUtils\",\"../3d/webgl-engine/lib/Layer\",\"../3d/webgl-engine/lib/Object3D\"],function(e,t,r,i,n,o,s,a,c,l,p,u,d,h,f,g,_,y,b,m,v,P,S,O,j,R,T,A,w){function M(e){return 0!==e[12]||0!==e[13]||0!==e[14]}Object.defineProperty(t,\"__esModule\",{value:!0});var E=function(e){function t(t){var r=e.call(this,t)||this;return r.hideOnGrab=!1,r.moveOnDrag=!0,r.snapToPointer=!0,r.collisionType={type:\"point\"},r.collisionPriority=0,r.renderObjects=[],r.autoScaleRenderObjects=!0,r._radius=10,r._worldSized=!1,r._focusMultiplier=2,r._touchMultiplier=2.5,r.interactive=!0,r.selectable=!1,r.cursor=null,r.dragging=!1,r._areAnyEngineObjectsVisible=!1,r.events=new a({target:r}),r._position=m.vec3f64.create(),r._modelTransform=g.mat4f64.create(),r._dragOffset=null,r._dirtyScreenPoint=l.createScreenPoint(),r._dirtyScreenPointArray=l.createScreenPointArray(),r._dirtyRenderScreenPointArray=l.createRenderScreenPointArray3(),r._dirtyOriginScreenPointArray=l.createScreenPointArray(),r._dirtyScreenPixelSize=1,r._screenPositionDirty=!0,r._engineResourcesAddedToStage=!1,r._engineResources=null,r._attached=!1,r._engineLayerId=null,r._materialIdReferences=null,r._hitResult={onSurface:!1,surfaceType:\"ground\"},r}return i(t,e),t.prototype.initialize=function(){var e=this;this._intersector=new R(this.view.viewingMode),this._mapPoint=P.makeDehydratedPoint(0,0,0,this.view.spatialReference),this.events.on(\"drag\",function(t){return e.drag(t)})},t.prototype.destroy=function(){this._removeResourcesFromStage(),this._engineResources=null,this._set(\"view\",null),this._camera=null},Object.defineProperty(t.prototype,\"alignment\",{get:function(){return this._get(\"alignment\")},set:function(e){this._set(\"alignment\",e),this.constructed&&this._refreshMapPoint()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"visible\",{set:function(e){e!==this._get(\"visible\")&&(this._set(\"visible\",e),this._updateEngineObject())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"radius\",{get:function(){return this._radius},set:function(e){e!==this._radius&&(this._radius=e,this._updateEngineObject())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"worldSized\",{get:function(){return this._worldSized},set:function(e){e!==this._worldSized&&(this._worldSized=e,this._updateEngineObject())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"focusMultiplier\",{get:function(){return this._focusMultiplier},set:function(e){this._focusMultiplier=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"touchMultiplier\",{get:function(){return this._touchMultiplier},set:function(e){this._touchMultiplier=e},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"modelTransform\",{get:function(){return this._modelTransform},set:function(e){M(e)&&(this._screenPositionDirty=!0),f.mat4.copy(this._modelTransform,e),this._updateEngineObject()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"position\",{get:function(){return this._position},set:function(e){this.view.renderCoordsHelper.fromRenderCoords(e,this._mapPoint,this._mapPoint.spatialReference),this._refreshMapPoint()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"mapPoint\",{get:function(){return this._mapPoint},set:function(e){P.clonePoint(e,this._mapPoint),this._refreshMapPoint()},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"grabbing\",{set:function(e){e!==this._get(\"grabbing\")&&(this._set(\"grabbing\",e),this._updateEngineObject()),e||(this._dragOffset=null)},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"hovering\",{set:function(e){e!==this._get(\"hovering\")&&(this._set(\"hovering\",e),this._updateEngineObject())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"selected\",{set:function(e){e!==this._get(\"selected\")&&(this._set(\"selected\",e),this._updateEngineObject())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"state\",{set:function(e){e!==this._get(\"state\")&&(this._set(\"state\",e),this._updateEngineObject())},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"areAnyEngineObjectsVisible\",{get:function(){return this._areAnyEngineObjectsVisible},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"surfaceType\",{get:function(){return this._hitResult.onSurface?this._hitResult.surfaceType:null},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"focused\",{get:function(){return this._focused},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"_focused\",{get:function(){return this._get(\"hovering\")||this._get(\"grabbing\")},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"screenPoint\",{get:function(){return this._updateScreenSpaceProperties(),this._dirtyScreenPoint},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"_screenPointArray\",{get:function(){return this._updateScreenSpaceProperties(),this._dirtyScreenPointArray},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"_renderScreenPointArray\",{get:function(){return this._updateScreenSpaceProperties(),this._dirtyRenderScreenPointArray},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"_originScreenPointArray\",{get:function(){return this._updateScreenSpaceProperties(),this._dirtyOriginScreenPointArray},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,\"_screenPixelSize\",{get:function(){return this._updateScreenSpaceProperties(),this._dirtyScreenPixelSize},enumerable:!0,configurable:!0}),t.prototype._updateScreenSpaceProperties=function(){if(this._screenPositionDirty){this._screenPositionDirty=!1,this._dirtyScreenPixelSize=this._camera.computeScreenPixelSizeAt(this._position);var e,t=M(this._modelTransform);if(t){var r=this._calculateModelTransformOffset(U);e=b.vec3.add(r,r,this._position)}else e=this._position;this._camera.projectPoint(e,this._dirtyRenderScreenPointArray),this._camera.renderToScreen(this._dirtyRenderScreenPointArray,this._dirtyScreenPointArray),l.screenPointArrayToObject(this._dirtyScreenPointArray,this._dirtyScreenPoint),t?(this._camera.projectPoint(this._position,D),this._camera.renderToScreen(D,this._dirtyOriginScreenPointArray)):_.vec2.copy(this._dirtyOriginScreenPointArray,this._dirtyScreenPointArray)}},t.prototype.intersectionDistance=function(e,t){if(!this._get(\"visible\"))return null;var r=l.screenPointObjectToArray(e,x),i=this._getCollisionRadius(t),n=-1*this._get(\"collisionPriority\");switch(this.collisionType.type){case\"point\":if(_.vec2.squaredDistance(this._screenPointArray,r)<i*i)return this._renderScreenPointArray[2]+n;break;case\"line\":for(var o=this.collisionType.paths,a=this._getWorldToScreenObjectScale(),c=this._calculateObjectTransform(a,N),p=i*this._screenPixelSize,u=S.ray.fromScreen(this._camera,r,C),h=0,f=o;h<f.length;h++){var g=f[h];if(0!==g.length)for(var y=b.vec3.transformMat4(H,g[0],c),m=1;m<g.length;m++){var v=b.vec3.transformMat4(V,g[m],c),P=S.lineSegment.closestRayDistance2(S.lineSegment.fromPoints(y,v,z),u);if(null!=P&&P<p*p){var O=b.vec3.add(j.sv3d.get(),y,v);b.vec3.scale(O,O,.5);var R=l.castRenderScreenPointArray(j.sv3d.get());return this._camera.projectPoint(O,R),R[2]+n}b.vec3.copy(y,v)}}break;case\"disc\":var T=this.collisionType.direction,a=this._getWorldToScreenObjectScale(),c=this._calculateObjectTransform(a,N),p=i*this._screenPixelSize,u=S.ray.fromScreen(this._camera,r,C),A=d.mat3.fromMat4(k,c),w=b.vec3.transformMat3(B,T,A),M=this._calculateModelTransformPosition(G);S.plane.fromPositionAndNormal(M,w,F);var E=W;if(S.plane.intersectRay(F,u,E)&&b.vec3.squaredDistance(E,M)<p*p)return this._renderScreenPointArray[2]+n;break;case\"ribbon\":var I=this.collisionType,o=I.paths,T=I.direction,a=this._getWorldToScreenObjectScale(),c=this._calculateObjectTransform(a,N),p=i*this._camera.computeScreenPixelSizeAt(this._position),u=S.ray.fromScreen(this._camera,r,C),A=d.mat3.fromMat4(k,c),w=b.vec3.transformMat3(B,T,A),M=this._calculateModelTransformPosition(G);S.plane.fromPositionAndNormal(M,w,F);var E=W;if(!S.plane.intersectRay(F,u,E))break;for(var D=0,L=o;D<L.length;D++){var g=L[D];if(0!==g.length)for(var y=b.vec3.transformMat4(H,g[0],c),m=1;m<g.length;m++){var v=b.vec3.transformMat4(V,g[m],c),P=S.lineSegment.distance2(S.lineSegment.fromPoints(y,v,z),E);if(null!=P&&P<p*p){var O=b.vec3.add(j.sv3d.get(),y,v);b.vec3.scale(O,O,.5);var R=l.castRenderScreenPointArray(j.sv3d.get());return this._camera.projectPoint(O,R),R[2]+n}b.vec3.copy(y,v)}}break;default:s.neverReached(this.collisionType)}return null},t.prototype.drag=function(e){if(this.moveOnDrag){var t=l.screenPointObjectToArray(e.screenPoint,x);c.isNone(this._dragOffset)&&this.grabbing&&!this.snapToPointer&&(this._dragOffset=_.vec2.subtract(y.vec2f32.create(),t,this._originScreenPointArray)),c.isSome(this._dragOffset)&&_.vec2.subtract(t,t,this._dragOffset),this.view.sceneIntersectionHelper.intersectToolIntersectorScreen(t,this._intersector,\"on-the-ground\"===this.alignment?I:null);var r=this._intersector.results.min,i=W;r.getIntersectionPoint(i)?(this.position=i,this._hitResult.onSurface=!0,this._hitResult.surfaceType=\"TerrainRenderer\"===r.intersector?\"ground\":\"feature\"):this._hitResult.onSurface=!1}},t.prototype.attach=function(e){if(void 0===e&&(e={manipulator3D:{}}),this.view._stage){var t=e.manipulator3D;if(this._engineLayerId=t.engineLayerId,c.isNone(this._engineLayerId)){var r=new A(\"manipulator-3d\",{isPickable:!1});this.view._stage.add(0,r),this.view._stage.addToViewContent([r.id]),this._engineLayerId=r.id,t.engineLayerId=r.id}t.engineLayerReferences=(t.engineLayerReferences||0)+1,this._materialIdReferences=t.materialIdReferences,c.isNone(this._materialIdReferences)&&(this._materialIdReferences=new Map,t.materialIdReferences=this._materialIdReferences),this._camera=this.view.state.camera,this._attached=!0,this._updateEngineObject(),O.canProject(this._mapPoint.spatialReference,this.view.spatialReference)||(this.mapPoint=P.makeDehydratedPoint(0,0,0,this.view.spatialReference))}},t.prototype.detach=function(e){void 0===e&&(e={manipulator3D:{}});var t=e.manipulator3D;t.engineLayerReferences--;var r=0===t.engineLayerReferences;r&&(t.engineLayerId=null),this._removeResourcesFromStage(r),this._engineResources=null,this._engineLayerId=null,this._materialIdReferences=null,this._camera=null,this._attached=!1},t.prototype.onViewChange=function(){this._camera=this.view.state.camera,this._screenPositionDirty=!0,this._updateEngineObject()},t.prototype.onElevationChange=function(e){this.view.renderCoordsHelper.fromRenderCoords(this.position,q,e.spatialReference)&&v.containsPoint(e.extent,q)&&this._refreshMapPoint(!0)},t.prototype._refreshMapPoint=function(e){switch(void 0===e&&(e=!1),this.alignment){case\"none\":break;case\"on-the-ground\":var t=this.view.elevationProvider.getElevation(this.mapPoint,\"ground\");if(!(t!==this._mapPoint.z||!e))return;this._mapPoint.z=t;break;default:s.neverReached(this.alignment)}this._screenPositionDirty=!0,this._hitResult.onSurface=!1,this.view.renderCoordsHelper.toRenderCoords(this._mapPoint,this._position),this._updateEngineObject()},t.prototype._updateEngineObject=function(){if(this._areAnyEngineObjectsVisible=!1,this._attached){if(!1===this._get(\"visible\"))return void this._removeResourcesFromStage();var e=this._getWorldToScreenObjectScale(),t=N;if(!0===this._get(\"autoScaleRenderObjects\")){var r=this._getFocusedSize(this._radius,this._focused)*e;this._calculateObjectTransform(r,t)}else this._calculateObjectTransform(e,t);for(var i=this._ensureEngineResources().objectsByState,n=(this._focused?2:1)|(this._get(\"selected\")?8:4),o=this._get(\"hideOnGrab\")&&this._get(\"grabbing\"),s=0,a=i;s<a.length;s++){var c=a[s],l=c.stateMask,p=c.objects;if(o)for(var u=0,d=p;u<d.length;u++){var h=d[u];h.hideAllComponents()}else{var f=0!=(15&l),g=0!=(65520&l),_=!f||(n&l)==(15&l),y=!g||(this._get(\"state\")&l)==(65520&l);if(_&&y)for(var b=0,m=p;b<m.length;b++){var h=m[b];h.unhideAllComponents(),h.objectTransformation=t,this._areAnyEngineObjectsVisible=!0}else for(var v=0,P=p;v<P.length;v++){var h=P[v];h.hideAllComponents()}}}}},t.prototype._ensureEngineResources=function(){if(c.isNone(this._engineResources)){var e=this.view._stage.getContent(0,c.expect(this._engineLayerId)),t=[],r=new Set;this.renderObjects.forEach(function(e){var i=e.material;r.has(i)||(t.push(i),r.add(i))});var i=function(e,t){var r=t.geometry,i=t.material,n=t.transform;Array.isArray(r)?r.forEach(function(t){return e.addGeometry(t,i,n)}):e.addGeometry(r,i,n)},n=new Map;this.renderObjects.forEach(function(e){var t=new w({idHint:\"manipulator\"});i(t,e);var r=e.stateMask||0,o=n.get(r)||[];o.push(t),n.set(r,o)});var o=[];n.forEach(function(e,t){o.push({stateMask:t,objects:e})}),this._engineResources={objectsByState:o,layer:e,materials:t}}return this._addResourcesToStage(),this._engineResources},t.prototype._addResourcesToStage=function(){var e=this;if(!this._engineResourcesAddedToStage&&!c.isNone(this._engineResources)){var t=this._engineResources,r=t.objectsByState,i=t.layer;t.materials.forEach(function(t){var r=c.expect(e._materialIdReferences),i=r.get(t.id)||0;0===i&&e.view._stage.add(3,t),r.set(t.id,i+1)}),r.forEach(function(t){t.objects.forEach(function(t){i.addObject(t),e.view._stage.add(1,t)})}),this._engineResourcesAddedToStage=!0}},t.prototype._removeResourcesFromStage=function(e){var t=this;if(void 0===e&&(e=!1),this._engineResourcesAddedToStage&&!c.isNone(this._engineResources)){var r=this._engineResources,i=r.objectsByState,n=r.layer,o=r.materials;i.forEach(function(e){e.objects.forEach(function(e){n.removeObject(e),t.view._stage.remove(1,e.id)})}),o.forEach(function(e){var r=c.expect(t._materialIdReferences),i=r.get(e.id);1===i?(t.view._stage.remove(3,e.id),r.delete(e.id)):r.set(e.id,i-1)}),e&&this.view._stage.remove(0,n.id),this._engineResourcesAddedToStage=!1}},t.prototype._getCollisionRadius=function(e){return this._getFocusedSize(this._radius,!0)*(\"touch\"===e?this._touchMultiplier:1)},t.prototype._getFocusedSize=function(e,t){return e*(t?this._focusMultiplier:1)},t.prototype._getWorldToScreenObjectScale=function(){return this._worldSized?1:this._screenPixelSize},t.prototype._calculateModelTransformPosition=function(e){var t=this._getWorldToScreenObjectScale(),r=this._calculateObjectTransform(t,L);return b.vec3.set(e,r[12],r[13],r[14])},t.prototype._calculateModelTransformOffset=function(e){var t=this._calculateModelTransformPosition(e);return b.vec3.subtract(e,t,this._position)},t.prototype._calculateObjectTransform=function(e,t){return f.mat4.set(t,e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1),f.mat4.multiply(t,t,this._modelTransform),t[12]+=this._position[0],t[13]+=this._position[1],t[14]+=this._position[2],t[15]=1,t},r([p.property({constructOnly:!0,nonNullable:!0})],t.prototype,\"view\",void 0),r([p.property({value:\"none\",nonNullable:!0})],t.prototype,\"alignment\",null),r([p.property()],t.prototype,\"hideOnGrab\",void 0),r([p.property()],t.prototype,\"moveOnDrag\",void 0),r([p.property()],t.prototype,\"snapToPointer\",void 0),r([p.property()],t.prototype,\"collisionType\",void 0),r([p.property({type:u.Integer})],t.prototype,\"collisionPriority\",void 0),r([p.property({constructOnly:!0})],t.prototype,\"renderObjects\",void 0),r([p.property()],t.prototype,\"autoScaleRenderObjects\",void 0),r([p.property({value:!0})],t.prototype,\"visible\",null),r([p.property()],t.prototype,\"radius\",null),r([p.property()],t.prototype,\"worldSized\",null),r([p.property()],t.prototype,\"focusMultiplier\",null),r([p.property()],t.prototype,\"touchMultiplier\",null),r([p.property()],t.prototype,\"interactive\",void 0),r([p.property()],t.prototype,\"selectable\",void 0),r([p.property()],t.prototype,\"cursor\",void 0),r([p.property({value:!1})],t.prototype,\"grabbing\",null),r([p.property()],t.prototype,\"dragging\",void 0),r([p.property({value:!1})],t.prototype,\"hovering\",null),r([p.property({value:!1})],t.prototype,\"selected\",null),r([p.property({value:0})],t.prototype,\"state\",null),r([p.property({dependsOn:[\"hovering\",\"grabbing\"]})],t.prototype,\"focused\",null),t=r([p.subclass(\"esri.views.interactive.Manipulator3D\")],t)}(p.declared(o));t.Manipulator3D=E;var I={include:new Set};I.include.add(T.TERRAIN_ID);var x=l.createScreenPointArray(),D=l.createRenderScreenPointArray3(),z=S.lineSegment.create(),C=S.ray.create(),k=h.mat3f64.create(),L=g.mat4f64.create(),N=g.mat4f64.create(),F=S.plane.create(),H=m.vec3f64.create(),V=m.vec3f64.create(),W=m.vec3f64.create(),B=m.vec3f64.create(),G=m.vec3f64.create(),U=m.vec3f64.create(),q=m.vec3f64.create()});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../core/tsSupport/declareExtendsHelper\",\"../../core/tsSupport/decorateHelper\",\"../../core/Accessor\",\"../../core/accessorSupport/decorators\",\"../../libs/maquette/index\"],function(t,e,r,i,o,s,n){var p=function(t){function e(e){var r=t.call(this,e)||this;return r.startX=0,r.startY=0,r.endX=0,r.endY=0,r.width=1,r.color=[0,0,0,.5],r.visible=!0,r}return r(e,t),Object.defineProperty(e.prototype,\"startPosition\",{get:function(){return[this.startX,this.startY]},set:function(t){this._set(\"startX\",t[0]),this._set(\"startY\",t[1])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"endPosition\",{get:function(){return[this.endX,this.endY]},set:function(t){this._set(\"endX\",t[0]),this._set(\"endY\",t[1])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"strokeStyle\",{get:function(){var t=this.color;return\"rgba(\"+t[0]+\", \"+t[1]+\", \"+t[2]+\", \"+t[3]+\")\"},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"lineCap\",{get:function(){return\"round\"},enumerable:!0,configurable:!0}),e.prototype.render=function(){var t=this.calculateCoordinates(a),e=t.height,r=t.left,i=t.top,o=t.width,s=t.x1,p=t.x2,h=t.y1,d=t.y2,l=\"stroke: \"+this.strokeStyle+\"; stroke-width: \"+this.width+\"; stroke-linecap: \"+this.lineCap+\";\";return n.h(\"div\",{classes:{\"esri-line-overlay-item\":!0},styles:{left:r+\"px\",top:i+\"px\",width:o+\"px\",height:e+\"px\",visibility:this.visible?\"visible\":\"hidden\"}},[n.h(\"svg\",{width:o,height:e},[n.h(\"line\",{x1:s,y1:h,x2:p,y2:d,style:l})])])},e.prototype.renderCanvas=function(t){if(this.visible){t.strokeStyle=this.strokeStyle,t.lineWidth=this.width,t.lineCap=this.lineCap;var e=this.calculateCoordinates(a);t.beginPath(),t.moveTo(e.left+e.x1,e.top+e.y1),t.lineTo(e.left+e.x2,e.top+e.y2),t.stroke()}},e.prototype.calculateCoordinates=function(t){var e=Math.min(this.startX,this.endX),r=Math.max(this.startX,this.endX),i=Math.min(this.startY,this.endY),o=Math.max(this.startY,this.endY),s=this.width;return t.left=e-s,t.top=i-s,t.width=r-e+2*s,t.height=Math.max(20,o-i+2*s),t.x1=this.startX-e+s,t.y1=this.startY-i+s,t.x2=this.endX-e+s,t.y2=this.endY-i+s,t},i([s.property()],e.prototype,\"startX\",void 0),i([s.property()],e.prototype,\"startY\",void 0),i([s.property()],e.prototype,\"endX\",void 0),i([s.property()],e.prototype,\"endY\",void 0),i([s.property({dependsOn:[\"startX\",\"startY\"]})],e.prototype,\"startPosition\",null),i([s.property({dependsOn:[\"endX\",\"endY\"]})],e.prototype,\"endPosition\",null),i([s.property()],e.prototype,\"width\",void 0),i([s.property()],e.prototype,\"color\",void 0),i([s.property()],e.prototype,\"visible\",void 0),i([s.property({readOnly:!0,dependsOn:[\"color\"]})],e.prototype,\"strokeStyle\",null),e=i([s.subclass(\"esri.views.overlay.LineOverlayItem\")],e)}(s.declared(o)),a={left:0,top:0,width:0,height:0,x1:0,y1:0,x2:0,y2:0};return p});","// COPYRIGHT © 2019 Esri\n//\n// All rights reserved under the copyright laws of the United States\n// and applicable international laws, treaties, and conventions.\n//\n// This material is licensed for use under the Esri Master License\n// Agreement (MLA), and is bound by the terms of that agreement.\n// You may redistribute and use this code without modification,\n// provided you adhere to the terms of the MLA and include this\n// copyright notice.\n//\n// See use restrictions at http://www.esri.com/legal/pdfs/mla_e204_e300/english\n//\n// For additional information, contact:\n// Environmental Systems Research Institute, Inc.\n// Attn: Contracts and Legal Services Department\n// 380 New York Street\n// Redlands, California, USA 92373\n// USA\n//\n// email: contracts@esri.com\n//\n// See http://js.arcgis.com/4.14/esri/copyright.txt for details.\n\ndefine([\"require\",\"exports\",\"../../core/tsSupport/declareExtendsHelper\",\"../../core/tsSupport/decorateHelper\",\"../../core/Accessor\",\"../../core/accessorSupport/decorators\",\"../../libs/maquette/index\"],function(t,e,o,r,i,n,l){for(var s={bottom:\"esri-text-overlay-item-anchor-bottom\",\"bottom-right\":\"esri-text-overlay-item-anchor-bottom-right\",\"bottom-left\":\"esri-text-overlay-item-anchor-bottom-left\",top:\"esri-text-overlay-item-anchor-top\",\"top-right\":\"esri-text-overlay-item-anchor-top-right\",\"top-left\":\"esri-text-overlay-item-anchor-top-left\",center:\"esri-text-overlay-item-anchor-center\",right:\"esri-text-overlay-item-anchor-right\",left:\"esri-text-overlay-item-anchor-left\"},a=function(t){function e(e){var o=t.call(this,e)||this;return o.x=0,o.y=0,o.text=\"-\",o.fontSize=14,o.anchor=\"center\",o.visible=!0,o.backgroundColor=\"rgba(0, 0, 0, 0.6)\",o.textColor=\"white\",o.textShadowColor=[0,0,0],o.textShadowSize=1,o}return o(e,t),Object.defineProperty(e.prototype,\"position\",{get:function(){return[this.x,this.y]},set:function(t){this._set(\"x\",t[0]),this._set(\"y\",t[1])},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,\"padding\",{get:function(){return.5*this.fontSize},enumerable:!0,configurable:!0}),e.prototype.render=function(){return l.h(\"div\",{classes:this._cssClasses(),styles:{left:Math.floor(this.x)+\"px\",top:Math.floor(this.y)+\"px\",visibility:this.visible?\"visible\":\"hidden\",fontSize:this.fontSize+\"px\",backgroundColor:this.backgroundColor,color:this.textColor,padding:this.padding+\"px\",borderRadius:this.padding+\"px\",textShadow:\"0 0 \"+this.textShadowSize+\"px rgb(\"+this.textShadowColor[0]+\", \"+this.textShadowColor[1]+\", \"+this.textShadowColor[2]+\")\"}},[this.text])},e.prototype.renderCanvas=function(t){if(this.visible){var e=t.font.replace(/^(.*?)px/,\"\");t.font=this.fontSize+\"px \"+e;var o=this.padding,r=this.padding,i=t.measureText(this.text).width,n=this.fontSize,l=h[this.anchor];t.textAlign=\"center\",t.textBaseline=\"middle\";var s=i+2*o,a=n+2*o,p=this.x+l.x*s,x=this.y+l.y*a;this.roundedRect(t,p,x,s,a,r),t.fillStyle=this.backgroundColor,t.fill();var d=this.x+(l.x+.5)*s,c=this.y+(l.y+.5)*a;this._renderTextShadow(t,this.text,d,c),t.fillStyle=this.textColor,t.fillText(this.text,d,c)}},e.prototype._renderTextShadow=function(t,e,o,r){t.lineJoin=\"miter\",t.fillStyle=\"rgba(\"+this.textShadowColor[0]+\", \"+this.textShadowColor[1]+\", \"+this.textShadowColor[2]+\", \"+1/p.length+\")\";for(var i=this.textShadowSize,n=0,l=p;n<l.length;n++){var s=l[n],a=s[0],h=s[1];t.fillText(e,o+i*a,r+i*h)}},e.prototype.roundedRect=function(t,e,o,r,i,n){t.beginPath(),t.moveTo(e,o+n),t.arcTo(e,o,e+n,o,n),t.lineTo(e+r-n,o),t.arcTo(e+r,o,e+r,o+n,n),t.lineTo(e+r,o+i-n),t.arcTo(e+r,o+i,e+r-n,o+i,n),t.lineTo(e+n,o+i),t.arcTo(e,o+i,e,o+i-n,n),t.closePath()},e.prototype._cssClasses=function(){var t={\"esri-text-overlay-item\":!0};for(var e in s)t[s[e]]=this.anchor===e;return t},r([n.property()],e.prototype,\"x\",void 0),r([n.property()],e.prototype,\"y\",void 0),r([n.property({dependsOn:[\"x\",\"y\"]})],e.prototype,\"position\",null),r([n.property()],e.prototype,\"text\",void 0),r([n.property()],e.prototype,\"fontSize\",void 0),r([n.property()],e.prototype,\"anchor\",void 0),r([n.property()],e.prototype,\"visible\",void 0),r([n.property({dependsOn:[\"fontSize\"]})],e.prototype,\"padding\",null),e=r([n.subclass(\"esri.views.overlay.TextOverlayItem\")],e)}(n.declared(i)),h={bottom:{x:-.5,y:-1,textAlign:\"center\",textBaseline:\"bottom\"},\"bottom-left\":{x:0,y:-1,textAlign:\"left\",textBaseline:\"bottom\"},\"bottom-right\":{x:-1,y:-1,textAlign:\"right\",textBaseline:\"bottom\"},center:{x:-.5,y:-.5,textAlign:\"center\",textBaseline:\"middle\"},left:{x:0,y:-.5,textAlign:\"left\",textBaseline:\"middle\"},right:{x:-1,y:-.5,textAlign:\"right\",textBaseline:\"middle\"},top:{x:-.5,y:0,textAlign:\"center\",textBaseline:\"top\"},\"top-left\":{x:0,y:0,textAlign:\"left\",textBaseline:\"top\"},\"top-right\":{x:-1,y:0,textAlign:\"right\",textBaseline:\"top\"}},p=[],x=0;x<360;x+=22.5)p.push([Math.cos(Math.PI*x/180),Math.sin(Math.PI*x/180)]);return a});"],"sourceRoot":"webpack:///"}