// All material copyright Esri, All Rights Reserved, unless otherwise specified. // See https://js.arcgis.com/4.30/esri/copyright.txt for details. //>>built require({cache:{"esri/layers/mixins/ArcGISImageService":function(){define("exports ../../chunks/tslib.es6 ../../geometry ../../Graphic ../../rasterRenderers ../../request ../../core/deprecate ../../core/Error ../../core/lang ../../core/Logger ../../core/reactiveUtils ../../core/urlUtils ../../core/accessorSupport/decorators/property ../../core/accessorSupport/ensureType ../../core/accessorSupport/decorators/reader ../../core/accessorSupport/decorators/subclass ../../core/accessorSupport/decorators/writer ../../geometry/support/spatialReferenceUtils ../support/commonProperties ../support/DimensionalDefinition ../support/ExportImageServiceParameters ../support/Field ../support/FieldsIndex ../support/imageBitmapUtils ../support/imageryRendererUtils ../support/MosaicRule ../support/MultidimensionalSubset ../support/PixelBlock ../support/rasterEnums ../support/RasterFunction ../support/RasterInfo ../support/RasterJobHandler ../support/rasterDatasets/multidimensionalUtils ../support/rasterFormats/RasterCodec ../support/rasterFunctions/vectorFieldUtils ../../renderers/support/rasterRendererHelper ../../renderers/support/RasterSymbolizer ../../rest/imageService ../../core/has ../support/source/DataLayerSource ../../rest/query/executeQueryJSON ../../config ../../kernel ../../core/unitUtils ../../geometry/ellipsoidUtils ../../geometry/support/aaBoundingBox ../../core/mathUtils ../../geometry/Extent ../../geometry/Geometry ../../geometry/Multipoint ../../geometry/Point ../../geometry/Polygon ../../geometry/Polyline ../../geometry/support/normalizeUtilsCommon ../../geometry/SpatialReference ../../geometry/support/Ellipsoid ../../core/pbf ../../rest/support/FeatureSet ../../rest/support/Query ../../rest/query/support/AttachmentInfo ../../rest/support/AttachmentQuery ../../rest/query/executeForCount ../../rest/query/executeForIds ../../rest/support/RelationshipQuery ../../rest/support/TopFeaturesQuery ../../rest/imageService/fetchRasterInfo ../../rest/imageService/getCatalogItemRasterInfo ../../rest/support/ImageIdentifyParameters ../../views/2d/engine/flow/dataUtils".split(" "), function(C,F,N,I,x,S,X,Y,L,R,Q,h,f,g,n,k,D,v,t,a,d,e,l,c,b,m,r,u,p,q,y,z,H,E,K,w,A,G,P,U,V,T,J,O,Z,aa,W,da,ca,fa,ha,na,ma,ia,ua,pa,ta,ra,ya,xa,Aa,za,Da,Ea,Ja,Ma,Qa,Ra,Sa){function Ta(ka){return ka?(ka=JSON.stringify(ka).match(/"rasterFunction":"(.*?")/gi)?.map(Ca=>Ca.slice(18,-1)))?ka.join("/"):null:null}const Ua=new Set("png png8 png24 png32 jpg bmp gif jpgpng lerc tiff".split(" ")),Va=f.ensureRange(g.ensureNumber,{min:0,max:255});C.ArcGISImageService=ka=>{function Ca(B){return B?.path??""}ka=class extends ka{constructor(){super(...arguments); this._functionRasterInfos={};this._rasterJobHandler={instance:null,refCount:0,connectionPromise:null};this._serviceSupportsMosaicRule=this._cachedRendererJson=null;this._rasterAttributeTableFieldPrefix="Raster.";this.adjustAspectRatio=null;this.bandIds=void 0;this.capabilities=null;this.compressionQuality=void 0;this.compressionTolerance=.01;this.fullExtent=this.fields=this.rasterInfo=this.exportImageServiceParameters=this.definitionExpression=this.defaultMosaicRule=this.copyright=null;this.hasMultidimensions= !1;this.imageMaxWidth=this.imageMaxHeight=4100;this.interpolation=void 0;this.maxScale=this.minScale=0;this.noData=this.multidimensionalSubset=this.multidimensionalInfo=null;this.noDataInterpretation=void 0;this.objectIdField=null;this.geometryType="polygon";this.typeIdField=null;this.types=[];this.pixelFilter=null;this.raster=void 0;this.sourceType=null;this.viewId=void 0;this.url=this.sourceJSON=this.serviceRasterInfo=this.pixelType=this.spatialReference=this.serviceDataType=this.rasterFunctionInfos= this.symbolizer=null;this.version=void 0}initialize(){this._set("exportImageServiceParameters",new d.ExportImageServiceParameters({layer:this}))}readServiceSupportsMosaicRule(B,M){return this._isMosaicRuleSupported(M)}get _rasterFunctionNamesIndex(){const B=new Map;if(!this.rasterFunctionInfos||null!=this.rasterFunctionInfos&&1>this.rasterFunctionInfos.length)return B;null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.forEach(M=>{B.set(M.name.toLowerCase().replaceAll(/ /gi,"_"),M.name)});return B}readBandIds(B, M){if(Array.isArray(B)&&0"number"===typeof ba))return B}readCapabilities(B,M){return this._readCapabilities(M)}writeCompressionQuality(B,M,ba){null!=B&&"lerc"!==this.format&&(M[ba]=B)}writeCompressionTolerance(B,M,ba){"lerc"===this.format&&null!=B&&(M[ba]=B)}readDefaultMosaicRule(B,M){return this._serviceSupportsMosaicRule?m.fromJSON(M):null}get fieldsIndex(){return this.fields?new l(this.fields):null}set format(B){B&&Ua.has(B.toLowerCase())&&this._set("format",B.toLowerCase())}readFormat(B, M){return"esriImageServiceDataTypeVector-UV"===M.serviceDataType||"esriImageServiceDataTypeVector-MagDir"===M.serviceDataType?"lerc":null!=this.pixelFilter?"lerc":"jpgpng"}readMinScale(B,M){return null!=M.minLOD&&null!=M.maxLOD?B:0}readMaxScale(B,M){return null!=M.minLOD&&null!=M.maxLOD?B:0}set mosaicRule(B){B?.mosaicMethod&&(B=m.fromJSON({...B.toJSON(),mosaicMethod:B.mosaicMethod,mosaicOperation:B.mosaicOperation}));this._set("mosaicRule",B)}readMosaicRule(B,M){return(B=B||M.mosaicRule)?m.fromJSON(B): this._isMosaicRuleSupported(M)?m.fromJSON(M):null}writeMosaicRule(B,M,ba){B=this.mosaicRule;const ea=this.definitionExpression;B?ea&&ea!==B.where&&(B=B.clone(),B.where=ea):ea&&(B=new m({where:ea}));this._isValidCustomizedMosaicRule(B)&&(M[ba]=B.toJSON())}writeNoData(B,M,ba){null!=B&&"number"===typeof B&&(M[ba]=Va(B))}readObjectIdField(B,M){B||=M.fields.find(ba=>"esriFieldTypeOID"===ba.type||"oid"===ba.type)?.name;return B}get parsedUrl(){return h.urlToObject(this.url)}readSourceType(B,M){return this._isMosaicDataset(M)? "mosaic-dataset":"raster-dataset"}set renderer(B){this.loaded&&(B=this._configRenderer(B));this._set("renderer",B)}readRenderer(B,M,ba){B=M?.layerDefinition?.drawingInfo?.renderer;ba=x.read(B,ba);if(null==ba)return null;"vector-field"===ba.type&&M.symbolTileSize&&!B.symbolTileSize&&(ba.symbolTileSize=M.symbolTileSize);b.isSupportedRendererType(ba)||R.getLogger(this).warn("ArcGISImageService","Imagery layer doesn't support given renderer type.");return ba}writeRenderer(B,M,ba){M.layerDefinition=M.layerDefinition|| {};M.layerDefinition.drawingInfo=M.layerDefinition.drawingInfo||{};M.layerDefinition.drawingInfo.renderer=B.toJSON();"vector-field"===B.type&&(M.symbolTileSize=B.symbolTileSize)}get rasterFields(){const B=this._rasterAttributeTableFieldPrefix;var M=new e({name:"Raster.ItemPixelValue",alias:"Item Pixel Value",domain:null,editable:!1,length:50,type:"string"});const ba=new e({name:"Raster.ServicePixelValue",alias:"Service Pixel Value",domain:null,editable:!1,length:50,type:"string"}),ea=new e({name:"Raster.ServicePixelValue.Raw", alias:"Raw Service Pixel Value",domain:null,editable:!1,length:50,type:"string"});let la=this.fields?L.clone(this.fields):[];la.push(ba);this.capabilities?.operations.supportsQuery&&this.fields&&0"none"===ja.name.toLowerCase())&&la.push(ea);null!=this.rasterFunctionInfos&&this.rasterFunctionInfos.filter(ja=>"none"!==ja.name.toLowerCase()).forEach(ja=>{la.push(new e({name:"Raster.ServicePixelValue."+ ja.name,alias:ja.name,domain:null,editable:!1,length:50,type:"string"}))});this._isVectorDataSet()&&(la.push(new e({name:"Raster.Magnitude",alias:"Magnitude",domain:null,editable:!1,type:"double"})),la.push(new e({name:"Raster.Direction",alias:"Direction",domain:null,editable:!1,type:"double"})));({attributeTable:M}=this.rasterInfo??{});null!=M&&(M=M.fields.filter(ja=>"esriFieldTypeOID"!==ja.type&&"value"!==ja.name.toLowerCase()).map(ja=>{const sa=L.clone(ja);sa.name=B+ja.name;return sa}),la=la.concat(M)); return la}get renderingRule(){X.deprecatedProperty(R.getLogger(this),"renderingRule",{replacement:"rasterFunction",version:"4.27",warnOnce:!0});return this.rasterFunction}set renderingRule(B){X.deprecatedProperty(R.getLogger(this),"renderingRule",{replacement:"rasterFunction",version:"4.27",warnOnce:!0});this._set("rasterFunction",B)}set rasterFunction(B){B?.rasterFunction&&(B=q.fromJSON({...B.toJSON(),rasterFunction:B.rasterFunction,rasterFunctionArguments:B.rasterFunctionArguments}));this._set("rasterFunction", B)}readRasterFunction(B,M){B=M.rasterFunctionInfos;return M.renderingRule||B?.length&&"None"!==B[0].name?this._isRFTJson(M.renderingRule)?q.fromJSON({rasterFunctionDefinition:M.renderingRule}):q.fromJSON(M.renderingRule||{rasterFunctionInfos:M.rasterFunctionInfos}):null}readSpatialReference(B,M){return(B=B||M.extent.spatialReference)?ua.fromJSON(B):null}readPixelType(B){return p.pixelTypeKebabDict.fromJSON(B)||B}writePixelType(B,M,ba){if(null==this.serviceRasterInfo||this.pixelType!==this.serviceRasterInfo.pixelType)M[ba]= p.pixelTypeKebabDict.toJSON(B)}readVersion(B,M){(B=M.currentVersion)||(B=M.hasOwnProperty("fields")||M.hasOwnProperty("timeInfo")?10:9.3);return B}applyFilter(B){let M=B;this.pixelFilter&&(M=this._clonePixelData(B),this.pixelFilter(M));return M}async applyRenderer(B,M){var ba=B;const {renderer:ea,symbolizer:la,pixelFilter:ja,bandIds:sa}=this;if(!this._isPicture()&&ea&&la&&!ja){ba=JSON.stringify(this._cachedRendererJson)!==JSON.stringify(ea.toJSON());const oa=this._rasterJobHandler.instance;oa?(ba&& (la.bind(),await oa.updateSymbolizer(la,M),this._cachedRendererJson=ea.toJSON()),M=await oa.symbolize({bandIds:sa,...B},M),ba={extent:B.extent,pixelBlock:M}):ba={extent:B.extent,pixelBlock:la.symbolize({bandIds:sa,...B})}}return ba}destroy(){this._shutdownJobHandler()}increaseRasterJobHandlerUsage(){this._rasterJobHandler.refCount++}decreaseRasterJobHandlerUsage(){this._rasterJobHandler.refCount--;0>=this._rasterJobHandler.refCount&&this._shutdownJobHandler()}async computeAngles(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsComputeAngles)throw new Y("imagery-layer:compute-angles", "this operation is not supported on the input image service");return G.computeAngles(this.url,B,this._getRequestOptions(M))}async computePixelSpaceLocations(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsComputePixelLocation)throw new Y("imagery-layer:compute-pixel-space-locations","this operation is not supported on the input image service");return G.computePixelSpaceLocations(this.url,B,this._getRequestOptions(M))}async computeHistograms(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsComputeHistograms)throw new Y("imagery-layer:compute-histograms", "this operation is not supported on the input image service");B=L.clone(B);this._applyMosaicAndRenderingRules(B);return G.computeHistograms(this.url,B,this._getRequestOptions(M))}async computeStatisticsHistograms(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsComputeStatisticsHistograms)throw new Y("imagery-layer:compute-statistics-histograms","this operation is not supported on the input image service");B=L.clone(B);this._applyMosaicAndRenderingRules(B);return G.computeStatisticsHistograms(this.url, B,this._getRequestOptions(M))}async measureHeight(B,M){const ba=await this._fetchCapabilities(M?.signal);if(!("base-and-top"===B.operationType?ba.mensuration.supportsHeightFromBaseAndTop:"base-and-top-shadow"===B.operationType?ba.mensuration.supportsHeightFromBaseAndTopShadow:ba.mensuration.supportsHeightFromTopAndTopShadow))throw new Y("imagery-layer:measure-height","this operation is not supported on the input image service");B=L.clone(B);this._applyMosaicAndRenderingRules(B);return G.measureHeight(this.url, B,this._getRequestOptions(M))}async measureAreaAndPerimeter(B,M){const ba=await this._fetchCapabilities(M?.signal);if(!ba.mensuration.supportsAreaAndPerimeter||B.is3D&&!ba.mensuration.supports3D)throw new Y("imagery-layer:measure-area-and-perimeter","this operation is not supported on the input image service");B=L.clone(B);this._applyMosaicAndRenderingRules(B);return G.measureAreaAndPerimeter(this.url,B,this._getRequestOptions(M))}async measureDistanceAndAngle(B,M){const ba=await this._fetchCapabilities(M?.signal); if(!ba.mensuration.supportsDistanceAndAngle||B.is3D&&!ba.mensuration.supports3D)throw new Y("imagery-layer:measure-distance-and-angle","this operation is not supported on the input image service");B=L.clone(B);this._applyMosaicAndRenderingRules(B);return G.measureDistanceAndAngle(this.url,B,this._getRequestOptions(M))}async measurePointOrCentroid(B,M){const ba=await this._fetchCapabilities(M?.signal);if(!ba.mensuration.supportsPointOrCentroid||B.is3D&&!ba.mensuration.supports3D)throw new Y("imagery-layer:measure-point-or-centroid", "this operation is not supported on the input image service");B=L.clone(B);this._applyMosaicAndRenderingRules(B);return G.measurePointOrCentroid(this.url,B,this._getRequestOptions(M))}async measureLengthFromImage(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsMeasureFromImage)throw new Y("imagery-layer:measure-length-from-image","this operation is not supported on the input image service");if("polyline"!==B.geometry.type)throw new Y("imagery-layer:measure-length-from-image", "this input geometry must be a polyline");return G.measureLengthFromImage(this.url,B,this._getRequestOptions(M))}async measureAreaFromImage(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsMeasureFromImage)throw new Y("imagery-layer:measure-area-from-image","this operation is not supported on the input image service");if("polygon"!==B.geometry.type)throw new Y("imagery-layer:measure-area-from-image","this input geometry must be a polygon");return G.measureAreaFromImage(this.url, B,this._getRequestOptions(M))}getField(B){const {fieldsIndex:M}=this;return null!=M?M.get(B):void 0}getFieldDomain(B,M){return(B=this.getField(B))?B.domain:null}async fetchImage(B,M,ba,ea={}){if(null==B||null==M||null==ba)throw new Y("imagery-layer:fetch-image","Insufficient parameters for requesting an image. A valid extent, width and height values are required.");if(this.renderer||this.symbolizer){var la=await this._generateRasterInfo(this.rasterFunction,{signal:ea.signal});la&&(this.rasterInfo= la)}la=this.getExportImageServiceParameters(B,M,ba,ea.timeExtent);if(null==la){if(ea.requestAsImageElement&&this._canRequestImageElement(this.format))return B=document.createElement("canvas"),B.width=M,B.height=ba,ea.returnImageBitmap?{imageBitmap:await c.createBitmap(B,`${Ca(this.parsedUrl)}/exportImage`,ea.signal)}:{imageOrCanvasElement:B};const {bandIds:sa,rasterInfo:oa}=this;ea=(sa?.length||oa.bandCount)??0;la=M*ba;var ja=oa.pixelType;const va=[];for(let qa=0;qaM.data)}fetchRasterAttributeTable(B){return 10.1>this.version?Promise.reject(new Y("#fetchRasterAttributeTable()","Failed to get rasterAttributeTable")):S(Ca(this.parsedUrl)+"/rasterAttributeTable",{query:this._getQueryParams({renderingRule:10.3<=this.version?B?.rasterFunction:null})}).then(M=>ra.fromJSON(M.data))}getCatalogItemRasterInfo(B,M){const ba=this._getQueryParams();M={...M,query:ba};return Qa.getCatalogItemRasterInfo(Ca(this.parsedUrl),B,M)}async getCatalogItemICSInfo(B, M){var {data:ba}=await S(Ca(this.parsedUrl)+"/"+B+"/info/ics",{query:this._getQueryParams(),...M});if(ba=ba?.ics){var ea=null;try{ea=(await S(Ca(this.parsedUrl)+"/"+B+"/info",{query:this._getQueryParams(),...M})).data.extent}catch{}if(!ea?.spatialReference)return{ics:ba,icsToPixelTransform:null,icsExtent:null,northDirection:null};var la=10.7<=this.version?S(Ca(this.parsedUrl)+"/"+B+"/info/icstopixel",{query:this._getQueryParams(),...M}).then(wa=>wa.data).catch(()=>({})):{},ja=ea.spatialReference, sa={geometries:JSON.stringify({geometryType:"esriGeometryEnvelope",geometries:[ea]}),inSR:v.srToRESTValue(ja),outSR:"0:"+B};sa=S(Ca(this.parsedUrl)+"/project",{query:this._getQueryParams(sa),...M}).then(wa=>wa.data).catch(()=>({}));var oa=(ea.xmin+ea.xmax)/2,va=(ea.ymax-ea.ymin)/6;ea=ea.ymin+va;var qa=[];for(let wa=0;5>wa;wa++)qa.push({x:oa,y:ea+va*wa});B={geometries:JSON.stringify({geometryType:"esriGeometryPoint",geometries:qa}),inSR:v.srToRESTValue(ja),outSR:"0:"+B};M=S(Ca(this.parsedUrl)+"/project", {query:this._getQueryParams(B),...M}).then(wa=>wa.data).catch(()=>({}));B=await Promise.all([la,sa,M]);M=B[0].ipxf;null==M&&(la=ba.geodataXform?.xf_0,"topup"===la?.name?.toLowerCase()&&6===la?.coefficients?.length&&(M={affine:{name:"ics [sensor: Frame] to pixel (column, row) transformation",coefficients:la.coefficients,cellsizeRatio:0,type:"GeometricXform"}}));if(la=da.fromJSON(B[1]?.geometries?.[0]))la.spatialReference=new ua({wkid:0,imageCoordinateSystem:ba});B=B[2].geometries?B[2].geometries.filter(wa=> null!=wa?.x&&null!=wa.y&&"NaN"!==wa.x&&"NaN"!==wa.y):[];sa=B.length;if(3>sa)return{ics:ba,icsToPixelTransform:M,icsExtent:la,northDirection:null};ea=va=oa=ja=0;for(qa=0;qaB[0].x;B=B[4].y>B[0].y;Infinity===sa?ja=B?90:270:0===sa?ja=oa?0:180:0sa&&(ja=B?180+180*Math.atan(sa)/Math.PI:360+180*Math.atan(sa)/Math.PI);return{ics:ba, icsToPixelTransform:M,icsExtent:la,northDirection:ja}}}async generateRasterInfo(B,M){B=g.ensureClass(q,B);if(this.serviceRasterInfo&&(!B||"none"===B.functionName?.toLowerCase()||this._isVectorFieldResampleFunction(B)))return this.serviceRasterInfo;const ba=Ta(B);if(!ba)throw new Y("imagery-layer:generate-raster-info","the rendering rule is not supported");if(this._functionRasterInfos[ba])return this._functionRasterInfos[ba];const ea=this._getQueryParams();M={...M,query:ea};B=Ma.generateRasterInfo(Ca(this.parsedUrl), B,M);this._functionRasterInfos[ba]=B;try{return await B}catch(la){throw this._functionRasterInfos[ba]=null,la;}}getExportImageServiceParameters(B,M,ba,ea){B=B.clone().shiftCentralMeridian();const la=G.getImageSpatialReferenceQueryParameter(B.spatialReference,Ca(this.parsedUrl));this.pixelType!==this.serviceRasterInfo.pixelType&&(this.exportImageServiceParameters.pixelType=this.pixelType);const ja=this.exportImageServiceParameters.toJSON(),{bandIds:sa,noData:oa}=ja;var {renderingRule:va}=ja,qa=this.rasterFunction?.rasterFunctionDefinition, wa=!this.renderer||"raster-stretch"===this.renderer.type;sa?.length&&this._hasRasterFunction(this.rasterFunction)&&!qa&&wa?(qa={rasterFunction:"ExtractBand",rasterFunctionArguments:{BandIds:sa}},"Stretch"===va.rasterFunction?(qa.rasterFunctionArguments.Raster=va.rasterFunctionArguments.Raster,va.rasterFunctionArguments.Raster=qa):"Colormap"===va.rasterFunction?(wa=va.rasterFunctionArguments.Raster,"Stretch"===wa?.rasterFunction?(qa.rasterFunctionArguments.Raster=wa.rasterFunctionArguments.Raster, wa.rasterFunctionArguments.Raster=qa):(qa.rasterFunctionArguments.Raster=wa,va.rasterFunctionArguments.Raster=qa)):(qa.rasterFunctionArguments.Raster=va,va=qa),ja.bandIds=void 0):ja.bandIds=sa?.join(",");Array.isArray(oa)&&0this.version&&"extent"===B.geometry?.type&&(B.geometry=na.fromExtent(B.geometry));const ba=this._processMultidimensionalIntersection(B.geometry,B.timeExtent,B.mosaicRule||this.mosaicRule); if(ba.isOutSide)throw new Y("imagery-layer:identify","the request cannot be fulfilled when falling outside of the multidimensional subset");B.timeExtent=ba.timeExtent;B.mosaicRule=ba.mosaicRule;const {raster:ea,rasterFunction:la}=this;la&&null==B.rasterFunction&&(B.rasterFunction=la);ea&&null==B.raster&&(B.raster=ea);return G.identify(this.url,B,this._getRequestOptions(M))}async imageToMap(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsImageToMap)throw new Y("imagery-layer:image-to-map", "imageToMap operation is not supported on the input image service");return G.imageToMap(Ca(this.parsedUrl),B,this._getRequestOptions(M))}async imageToMapMultiray(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsImageToMapMultiray)throw new Y("imagery-layer:image-to-map-multiray","imageToMapMultiray operation is not supported on the input image service");return G.imageToMapMultiray(Ca(this.parsedUrl),B,this._getRequestOptions(M))}async mapToImage(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsMapToImage)throw new Y("imagery-layer:map-to-image", "mapToImage operation is not supported on the input image service");return G.mapToImage(Ca(this.parsedUrl),B,this._getRequestOptions(M))}async findImages(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsFindImages)throw new Y("imagery-layer:find-images","findImages operation is not supported on the input image service");return G.findImages(Ca(this.parsedUrl),B,this._getRequestOptions(M))}async getImageUrl(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsGetImageUrl)throw new Y("imagery-layer:get-image-url", "getImageUrl operation is not supported on the input image service");return G.getImageUrl(Ca(this.parsedUrl),B,this._getRequestOptions(M))}createQuery(){return new ya({outFields:["*"],returnGeometry:!0,where:this.definitionExpression||"1\x3d1"})}async queryBoundary(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsQueryBoundary)throw new Y("imagery-layer:query-boundary","queryBoundary operation is not supported on the input image service");B=B??{outSpatialReference:this.spatialReference}; return G.queryBoundary(Ca(this.parsedUrl),B,this._getRequestOptions(M))}async queryRasters(B,M){({query:B,requestOptions:M}=await this._prepareForQuery(B,M));return V.executeQueryJSON(this.url,B,M)}async queryObjectIds(B,M){({query:B,requestOptions:M}=await this._prepareForQuery(B,M));return Da.executeForIds(this.url,B,M)}async queryGPSInfo(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsQueryGPSInfo)throw new Y("imagery-layer:query-gps-info","queryGPSInfo operation is not supported on the input image service"); B=B??{where:"1\x3d1"};return G.queryGPSInfo(Ca(this.parsedUrl),B,this._getRequestOptions(M))}async queryRasterCount(B,M){({query:B,requestOptions:M}=await this._prepareForQuery(B,M));return za.executeForCount(this.url,B,M)}async queryVisibleRasters(B,M){if(!B)throw new Y("imagery-layer: query-visible-rasters","missing query parameter");await this.load();const {pixelSize:ba,returnDomainValues:ea,returnTopmostRaster:la,showNoDataRecords:ja}=M||{pixelSize:null,returnDomainValues:!1,returnTopmostRaster:!1, showNoDataRecords:!1};let sa=!1;var oa=null,va=null;const qa=this._rasterFunctionNamesIndex;if(null!=B.outFields&&(sa=B.outFields.some(Ha=>!Ha.toLowerCase().includes("raster.servicepixelvalue")),10.4<=this.version)){va=B.outFields.filter(Ga=>Ga.toLowerCase().includes("raster.servicepixelvalue")&&24{Ga=Ga.slice(25);return[this._updateRenderingRulesFunctionName(Ga,qa),Ga]});oa=va.map(Ga=>new q({functionName:Ga[0]}));va=va.map(Ga=>Ga[1]);const {rasterFunction:Ha}=this;0===oa.length? Ha?.functionName?(oa.push(Ha),va.push(Ha.functionName)):oa=null:Ha?.functionName&&!oa.some(Ga=>Ga.functionName===Ha.functionName)&&(oa.push(Ha),va.push(Ha.functionName))}const wa=null==B.outSpatialReference||B.outSpatialReference.equals(this.spatialReference);var {multidimensionalSubset:Ba}=this;let Fa=B.timeExtent||this.timeExtent;if(Ba){const {isOutside:Ha,intersection:Ga}=H.intersectMultimensionalSubset(Ba,{geometry:B.geometry,timeExtent:B.timeExtent,multidimensionalDefinition:this.exportImageServiceParameters.mosaicRule?.multidimensionalDefinition}); if(Ha)throw new Y("imagery-layer:query-visible-rasters","the request cannot be fulfilled when falling outside of the multidimensional subset");null!=Ga?.timeExtent&&(Fa=Ga.timeExtent)}Ba=this._combineMosaicRuleWithTimeExtent(this.exportImageServiceParameters.mosaicRule,Fa);let Ia=B.geometry;10.91>this.version&&"extent"===Ia?.type&&(Ia=na.fromExtent(Ia));oa=this._getQueryParams({geometry:Ia,timeExtent:Fa,mosaicRule:Ba,rasterFunction:10.4>this.version?this.rasterFunction:null,rasterFunctions:oa,pixelSize:ba, returnCatalogItems:sa,returnGeometry:wa,raster:this.raster,maxItemCount:la?1:null});delete oa.f;oa=new Ra(oa);try{await this._generateRasterInfo(this.rasterFunction);const Ha=await G.identify(this.url,oa,{signal:M?.signal,query:{...this.customParameters}}),Ga=B.outFields,Wa=null!=Ha.value&&Ha.value.toLowerCase().includes("nodata");if(!sa||wa||!Ha?.catalogItems?.features.length||!ja&&Wa)return this._processVisibleRastersResponse(Ha,{returnDomainValues:ea,templateRRFunctionNames:va,showNoDataRecords:ja, templateFields:Ga});const Ka=this.objectIdField||"ObjectId",Oa=Ha.catalogItems?.features??[],Xa=Oa.map(La=>La.attributes?.[Ka]),Ya=new ya({objectIds:Xa,returnGeometry:!0,outSpatialReference:B.outSpatialReference,outFields:[Ka]}),Pa=await this.queryRasters(Ya);Pa?.features?.length&&Pa.features.forEach(La=>{Oa.forEach(Na=>{Na.attributes[Ka]===La.attributes[Ka]&&(Na.geometry=new na(La.geometry),null!=B.outSpatialReference&&(Na.geometry.spatialReference=B.outSpatialReference))})});return this._processVisibleRastersResponse(Ha, {returnDomainValues:ea,templateRRFunctionNames:va,showNoDataRecords:ja,templateFields:Ga})}catch{throw new Y("imagery-layer:query-visible-rasters","encountered error when querying visible rasters");}}async fetchVariableStatisticsHistograms(B,M){var ba=S(Ca(this.parsedUrl)+"/statistics",{query:this._getQueryParams({variable:B}),signal:M}).then(ea=>ea.data?.statistics);B=S(Ca(this.parsedUrl)+"/histograms",{query:this._getQueryParams({variable:B}),signal:M}).then(ea=>ea.data?.histograms);ba=await Promise.all([ba, B]);ba[0]&&ba[0].forEach(ea=>{ea.avg=ea.mean;ea.stddev=ea.standardDeviation});return{statistics:ba[0]||null,histograms:ba[1]||null}}async createFlowMesh(B,M){const ba=this._rasterJobHandler.instance;return ba?ba.createFlowMesh(B,M):Sa.createFlowMesh(B.meshType,B.simulationSettings,B.flowData,null!=M.signal?M.signal:(new AbortController).signal)}getMultidimensionalSubsetVariables(B){return H.getSubsetVariablesFromMdInfo(this.multidimensionalSubset,B??this.serviceRasterInfo.multidimensionalInfo)}async _fetchService(B){await this._fetchServiceInfo(B); this.rasterInfo||(this.rasterInfo=this.serviceRasterInfo);const M=this.sourceJSON,ba=null!=this.serviceRasterInfo?Promise.resolve(this.serviceRasterInfo):Ma.fetchServiceRasterInfo(Ca(this.parsedUrl),M,{signal:B,query:this._getQueryParams()}).then(la=>{this._set("serviceRasterInfo",la);this._set("multidimensionalInfo",la.multidimensionalInfo);Ma.patchServiceInfo(la,M);return la});B=this._hasRasterFunction(this.rasterFunction)?this._generateRasterInfo(this.rasterFunction,{signal:B}):null;const ea=this._getRasterFunctionInfos(); return Promise.all([ba,B,ea]).then(la=>{la[1]?this._set("rasterInfo",la[1]):this._set("rasterInfo",la[0]);la[2]&&this._set("rasterFunctionInfos",la[2]);this.renderer&&!this._isSupportedRenderer(this.renderer)&&(this._set("renderer",null),R.getLogger(this).warn("ArcGISImageService","Switching to the default renderer. Renderer applied is not valid for this Imagery Layer"));this._set("renderer",this._configRenderer(this.renderer));this.addHandles([Q.watch(()=>this.rasterFunction,ja=>{(this.renderer|| this.symbolizer||this.popupEnabled&&this.popupTemplate)&&this._generateRasterInfo(ja).then(sa=>{sa&&(this.rasterInfo=sa)})})]);({serviceRasterInfo:la}=this);null!=la.multidimensionalInfo&&this._updateMultidimensionalDefinition(la)})}_combineMosaicRuleWithTimeExtent(B,M){var ba=this.timeInfo,{multidimensionalInfo:ea}=this.serviceRasterInfo;if(null==B||null==ea||null==M||null==ba?.startField)return B;const {startField:la}=ba,ja=ea.variables.some(qa=>qa.dimensions.some(wa=>wa.name===la))?la:"StdTime"; B=B.clone();if("mosaic-dataset"===this.sourceType)return B.multidimensionalDefinition=B.multidimensionalDefinition?.filter(qa=>qa.dimensionName!==ja),this._cleanupMultidimensionalDefinition(B);B.multidimensionalDefinition=B.multidimensionalDefinition||[];ba=B.multidimensionalDefinition.filter(qa=>qa.dimensionName===ja);ea=null!=M.start?M.start.getTime():null;M=null!=M.end?M.end.getTime():null;const sa=null==ea||null==M||ea===M,oa=sa?[ea||M]:[[ea,M]],va=10.8<=this.version;ba.length?ba.forEach(qa=> {qa.dimensionName===ja&&(va?(qa.dimensionName=null,qa.isSlice=!1,qa.values=[]):(qa.isSlice=sa,qa.values=oa))}):va||(M=B.multidimensionalDefinition.filter(qa=>null!=qa.variableName&&null==qa.dimensionName),M.length?M.forEach(qa=>{qa.dimensionName=ja;qa.isSlice=sa;qa.values=oa}):B.multidimensionalDefinition.push(new a({variableName:"",dimensionName:ja,isSlice:sa,values:oa})));return this._cleanupMultidimensionalDefinition(B)}_cleanupMultidimensionalDefinition(B){if(null==B)return null;B.multidimensionalDefinition&& (B.multidimensionalDefinition=B.multidimensionalDefinition.filter(M=>!(!M.variableName&&!M.dimensionName)),0===B.multidimensionalDefinition.length&&(B.multidimensionalDefinition=null));return"mosaic-dataset"!==this.sourceType&&null==B.multidimensionalDefinition?null:B}async _prepareForQuery(B,M){if(!(await this._fetchCapabilities(M?.signal)).operations.supportsQuery)throw new Y("imagery-layer:query-rasters","query operation is not supported on the input image service");B=null!=B?g.ensureClass(ya, B):this.createQuery();M=this._getRequestOptions(M);this.raster&&(M.query={...M.query,raster:this.raster});return{query:B,requestOptions:M}}async _initJobHandler(){if(null!=this._rasterJobHandler.connectionPromise)return this._rasterJobHandler.connectionPromise;const B=new z;this._rasterJobHandler.connectionPromise=B.initialize().then(()=>{this._rasterJobHandler.instance=B},()=>{});await this._rasterJobHandler.connectionPromise}_shutdownJobHandler(){this._rasterJobHandler.instance&&this._rasterJobHandler.instance.destroy(); this._rasterJobHandler.instance=null;this._rasterJobHandler.connectionPromise=null;this._rasterJobHandler.refCount=0;this._cachedRendererJson=null}_isSupportedRenderer(B){const {rasterInfo:M,rasterFunction:ba}=this;return"unique-value"===B.type&&this._hasRasterFunction(ba)&&1===M?.bandCount&&["u8","s8"].includes(M.pixelType)||null!=M&&null!=B&&w.getSupportedRendererTypes(M).includes(B.type)}async _fetchCapabilities(B){if(this.capabilities)return this.capabilities;await this._fetchServiceInfo(B);return this.capabilities}async _fetchServiceInfo(B){let M= this.sourceJSON;if(!M){const {data:ba,ssl:ea}=await S(Ca(this.parsedUrl),{query:this._getQueryParams(),signal:B});this.sourceJSON=M=ba;ea&&(this.url=this.url.replace(/^http:/i,"https:"))}if(-1ba.trim()).indexOf("tilesonly"))throw new Y("imagery-layer:fetch-service-info","use ImageryTileLayer to open tiles-only image services");this.read(M,{origin:"service",url:this.parsedUrl})}_isMosaicDataset(B){return B.serviceSourceType?"esriImageServiceSourceTypeMosaicDataset"=== B.serviceSourceType:0null)}_isValidCustomizedMosaicRule(B){return B&&JSON.stringify(B.toJSON())!==JSON.stringify(this.defaultMosaicRule?.toJSON())}_updateMultidimensionalDefinition(B){if(!this._isValidCustomizedMosaicRule(this.mosaicRule)&&(B=H.getDefaultMultidimensionalDefinition(B, {multidimensionalSubset:this.multidimensionalSubset}),null!=B&&0ba.variableName="");B=B.filter(({variableName:ba,dimensionName:ea})=>ba&&"*"!==ba||ea);!M?.length&&B.length&&(this.mosaicRule.multidimensionalDefinition=B)}}_processVisibleRastersResponse(B,M){M=M||{};const ba= B.value,{templateRRFunctionNames:ea,showNoDataRecords:la,returnDomainValues:ja,templateFields:sa}=M;M=B.processedValues;var oa=B.catalogItems?.features;let va=B.properties?.Values?.map(Ia=>Ia.replaceAll(/ /gi,", "))||[];var qa=this.objectIdField||"ObjectId",wa="string"===typeof ba&&ba.toLowerCase().includes("nodata");B=[];!ba||oa||wa||(oa={},oa[qa]=0,oa=new I({geometry:this.fullExtent,attributes:oa}),va=[ba],oa=[oa]);if(!oa)return[];this._updateResponseFieldNames(oa,sa);wa&&!la&&(oa=[]);for(qa=0;qa< oa.length;qa++){wa=oa[qa];if(null!=ba){var Ba=va[qa];var Fa=this.rasterFunction&&M&&0oa.name).find(oa=>"value"===oa.toLowerCase());if(ja){var sa=ea.filter(oa=>oa.attributes[ja]===(null!=M?parseInt(M,10):null));sa&&sa[0]&&la.forEach(oa=>{B.attributes[this._rasterAttributeTableFieldPrefix+oa.name]=sa[0].attributes[oa.name]})}}}_updateFeatureWithMagDirValues(B,M){if(this._isVectorDataSet()){var ba=M.split(/,\s*/).map(ea=>parseFloat(ea));M=ba.map(ea=> [ea]);ba=ba.map(ea=>({minValue:ea,maxValue:ea,noDataValue:null}));M=new u({height:1,width:1,pixelType:"f32",pixels:M,statistics:ba});null!=this.pixelFilter&&this.pixelFilter({pixelBlock:M,extent:new da(0,0,0,0,this.spatialReference)});M="esriImageServiceDataTypeVector-MagDir"===this.serviceDataType?[M.pixels[0][0],M.pixels[1][0]]:K.uvComponentToVector([M.pixels[0][0],M.pixels[1][0]]);B.attributes["Raster.Magnitude"]=M[0];B.attributes["Raster.Direction"]=M[1]}}_updateFeatureWithDomainValues(B){const M= this.fields&&this.fields.filter(ba=>ba.domain&&"coded-value"===ba.domain.type);null!=M&&M.forEach(ba=>{const ea=B.attributes[ba.name];if(null!=ea){const la=ba.domain.codedValues.find(ja=>ja.code===ea);la&&(B.attributes[ba.name]=la.name)}})}_updateResponseFieldNames(B,M){if(M&&!(1>M.length)){var ba=this.fieldsIndex;null!=ba&&B.forEach(ea=>{if(ea?.attributes)for(const la of M){const ja=ba.get(la)?.name;ja&&ja!==la&&(ea.attributes[la]=ea.attributes[ja],delete ea.attributes[ja])}})}}_getRenderingRuleString(B){if(B){B= B.toJSON();B=B.rasterFunctionDefinition??B;if(B.thumbnail||B.thumbnailEx)B.thumbnail=B.thumbnailEx=null;return JSON.stringify(B)}return null}_hasRasterFunction(B){return null!=B?.functionName&&"none"!==B.functionName.toLowerCase()}_updateRenderingRulesFunctionName(B,M){if(B&&!(1>B.length)){if("Raw"===B)return B.replace("Raw","None");var ba=B.toLowerCase().replaceAll(/ /gi,"_");return M.has(ba)?M.get(ba):B}}_isRFTJson(B){return B?.name&&B.arguments&&B.function&&B.hasOwnProperty("functionType")}_isVectorDataSet(){return"esriImageServiceDataTypeVector-UV"=== this.serviceDataType||"esriImageServiceDataTypeVector-MagDir"===this.serviceDataType}_applyMosaicAndRenderingRules(B){const {raster:M,mosaicRule:ba,rasterFunction:ea}=this;ea&&"rasterFunction"in B&&null==B.rasterFunction&&(B.rasterFunction=ea);ba&&null==B.mosaicRule&&(B.mosaicRule=ba);M&&null==B.raster&&(B.raster=M)}_readCapabilities(B){var M=B.capabilities?B.capabilities.toLowerCase().split(",").map(Fa=>Fa.trim()):["image","catalog"];const {currentVersion:ba,advancedQueryCapabilities:ea,maxRecordCount:la}= B,ja=M.includes("image"),sa="esriImageServiceDataTypeElevation"===B.serviceDataType;var oa=!(!B.spatialReference&&!B.extent?.spatialReference);const va=M.includes("edit");oa=M.includes("mensuration")&&oa;const qa=null==B.mensurationCapabilities?[]:B.mensurationCapabilities.toLowerCase().split(",").map(Fa=>Fa.trim()),wa=oa&&qa.includes("basic"),Ba=this._isMosaicDataset(B)&&M.includes("catalog");M=M.includes("download");return{data:{supportsAttachment:!1},operations:{supportsComputeHistograms:ja,supportsExportImage:ja, supportsIdentify:ja,supportsImageToMap:11.2<=ba&&Ba,supportsImageToMapMultiray:11.2<=ba&&Ba,supportsMapToImage:11.2<=ba&&Ba,supportsFindImages:11.2<=ba&&Ba,supportsGetImageUrl:11.3<=ba&&M,supportsMeasure:oa,supportsMeasureFromImage:11.2<=ba,supportsDownload:M,supportsQuery:Ba&&B.fields&&0p.clone()),r=this.authoringInfo?.clone(),u=this.legendOptions?.clone();return new n({density:k,color:b,maxPathLength:D,trailWidth:v,flowSpeed:t,trailLength:a,trailCap:l,background:c,smoothing:d,flowRepresentation:e,visualVariables:m,authoringInfo:r,legendOptions:u})}getSymbol(k,D){}async getSymbolAsync(k,D){}getSymbols(){return[]}};C.__decorate([S.property({type:Number, json:{write:!0}})],I.prototype,"density",void 0);C.__decorate([S.property({type:F,json:{write:{allowNull:!0}}})],I.prototype,"color",void 0);C.__decorate([S.property({type:Number,cast:x.toPt,json:{write:!0}})],I.prototype,"maxPathLength",void 0);C.__decorate([S.property({type:Number,cast:x.toPt,json:{write:!0}})],I.prototype,"trailWidth",void 0);C.__decorate([S.property({type:Number,json:{write:!0}})],I.prototype,"flowSpeed",void 0);C.__decorate([S.property({type:Number,json:{write:!0}})],I.prototype, "trailLength",void 0);C.__decorate([S.property({type:Number,cast:x.toPt,json:{write:!1}})],I.prototype,"smoothing",void 0);C.__decorate([S.property({type:N.apiValues,json:{type:N.jsonValues,read:{reader:N.read},write:{writer:N.write}}})],I.prototype,"flowRepresentation",void 0);C.__decorate([R.enumeration({flowRenderer:"flow"})],I.prototype,"type",void 0);C.__decorate([S.property({type:f,json:{write:!0}})],I.prototype,"authoringInfo",void 0);C.__decorate([S.property({type:g.LegendOptions,json:{write:!0}})], I.prototype,"legendOptions",void 0);C.__decorate([S.property({type:String,json:{write:!0}})],I.prototype,"trailCap",void 0);C.__decorate([S.property({type:String,json:{write:!0}})],I.prototype,"background",void 0);return I=n=C.__decorate([Q.subclass("esri.renderers.FlowRenderer")],I)})},"esri/renderers/RasterColormapRenderer":function(){define("../chunks/tslib.es6 ../core/JSONSupport ../core/accessorSupport/decorators/property ../core/has ../core/Logger ../core/RandomLCG ../core/accessorSupport/decorators/enumeration ../core/accessorSupport/decorators/subclass ./support/ColormapInfo ./support/colorRampUtils".split(" "), function(C,F,N,I,x,S,X,Y,L,R){var Q;F=Q=class extends F.JSONSupport{constructor(h){super(h);this.colormapInfos=null;this.type="raster-colormap"}static createFromColormap(h,f){if(!h)return null;const g=5===h[0].length;h=[...h].sort((n,k)=>n[0]-k[0]).map(n=>L.fromJSON({value:n[0],color:g?n.slice(1,5):n.slice(1,4).concat([255]),label:f?f[n[0]]??"":n[0]}));return new Q({colormapInfos:h})}static createFromColorramp(h){h=R.convertColorRampToColormap(h);return Q.createFromColormap(h)}clone(){return new Q({colormapInfos:this.colormapInfos.map(h=> h.toJSON())})}extractColormap(){return this.colormapInfos.map(({value:h,color:f})=>[h,f.r,f.g,f.b,1h[0]-f[0])}};C.__decorate([N.property({type:[L],json:{write:!0}})],F.prototype,"colormapInfos",void 0);C.__decorate([X.enumeration({rasterColormap:"raster-colormap"})],F.prototype,"type",void 0);return F=Q=C.__decorate([Y.subclass("esri.renderers.RasterColormapRenderer")],F)})},"esri/renderers/support/ColormapInfo":function(){define("../../chunks/tslib.es6 ../../Color ../../core/JSONSupport ../../core/accessorSupport/decorators/property ../../core/accessorSupport/ensureType ../../core/RandomLCG ../../core/has ../../core/accessorSupport/decorators/subclass".split(" "), function(C,F,N,I,x,S,X,Y){N=class extends N.JSONSupport{constructor(){super(...arguments);this.color=this.label=this.value=null}};C.__decorate([I.property({type:Number,json:{write:!0}})],N.prototype,"value",void 0);C.__decorate([I.property({type:String,json:{write:!0}})],N.prototype,"label",void 0);C.__decorate([I.property({type:F,json:{type:[x.Integer],write:!0}})],N.prototype,"color",void 0);return N=C.__decorate([Y.subclass("esri.renderers.support.ColormapInfo")],N)})},"esri/renderers/support/colorRampUtils":function(){define(["exports", "../../Color","../../core/colorUtils","../../core/jsonMap","../../core/JSONSupport"],function(C,F,N,I,x){function S(a,d){if(!a||!d||a.length!==d.length)return!1;for(let e=0;ed[e]+2||a[e]X(d));return a}return X(a)}function L(a, d){if(a){d=d??v;var e=null;"algorithmic"===a.type?d.some(l=>{if(S(a.fromColor.toRgb(),l.fromColor)&&S(a.toColor.toRgb(),l.toColor))return e=l.id,!0}):"multipart"===a.type&&d.some(l=>{const c=a.colorRamps,b=l.colorRamps;if(c&&b&&c.length===b.length&&!b.some((m,r)=>{if(!S(c[r].fromColor.toRgb(),(new F(m.fromColor)).toRgb())||!S(c[r].toColor.toRgb(),(new F(m.toColor)).toRgb()))return!0})){if(e)return!0;e=l.id}});return e}}function R(a,d,e=!1){if(a){var l=!1,c=L(a,d);null!=c||e||(l=!0,a=Y(a),c=L(a,d)); return c?{id:c,inverted:l}:void 0}}function Q(a,d=!1){return(a="string"===typeof a?a:R(a,void 0,d)?.id)?t.toJSON(a):null}function h(a){a=a||{};const d=a.numColors||256;return{...a,numColors:d,distanceOffset:a.distanceOffset||0,interpolateAlpha:!!a.interpolateAlpha,distanceInterval:a.distanceInterval||1/(d-1),isCustomInterval:null!=a.isCustomInterval?a.isCustomInterval:null!==a.distanceInterval&&a.distanceInterval!==1/(d-1),weights:a.weights}}function f(a,d){let {fromColor:e,toColor:l}=a;e=[...e]; l=[...l];3===e.length&&(e=e.concat([255]));3===l.length&&(l=l.concat([255]));a=a.algorithm||"esriCIELabAlgorithm";var c=h(d);const {numColors:b,distanceOffset:m,isCustomInterval:r,interpolateAlpha:u}=c;if(1===b&&0===m)return[e];if(2===b&&0===m&&!r)return[e,l];var p={r:e[0],g:e[1],b:e[2]};d={r:l[0],g:l[1],b:l[2]};if("esriCIELabAlgorithm"===a){a=N.toLAB(p);d=N.toLAB(d);const {numColors:H,distanceOffset:E,distanceInterval:K,isCustomInterval:w}=c;let {l:A,a:G,b:P}=a;a=(d.l-A)*K;p=(d.a-G)*K;c=(d.b-P)* K;var q=[];if(E){var y=E/K;A+=y*a;G+=y*p;P+=y*c}for(y=0;yq?c=(c-p)*K:(q=360-q,c=p>c?q*K:-q*K);q=(d.s-a.s)*K;y=(d.v-a.v)*K;let {s:A,v:G}=a;a=p;E&&(p=E/K,a=(a+p*c+360)%360,A+=p*q,G+=p*y);p=[];for(var z=0;z< H-1;z++)p.push({h:a,s:A,v:G}),a=(a+c+360)%360,A+=q,G+=y;p.push(w?{h:a,s:A,v:G}:d);d=p}else{p=N.toLCH(p);d=N.toLCH(d);const {numColors:H,distanceOffset:E,distanceInterval:K,isCustomInterval:w}=c;c=p.h;q=d.h;a=2*Math.PI;c<=q?(y=q-c,c=q-c-a,c=Math.abs(c)y+z);d=d.map(y=>y/q)}else{d=[];for(var c=0;c{l.unshift(c);e||l.pop()}); return a};C.convertColorRampToColors=n;C.convertRGBATo32Bit=function(a){a=a.reverse().map(d=>{d=d.toString(16);return 2>d.length?"0"+d:d});return 4294967295&Number.parseInt(a.join(""),16)};C.getColorRampId=R;C.getColorRampJSON=function(a,d="esriCIELabAlgorithm"){const e=v.find(({id:l})=>l===a);return e?e.colorRamps?{type:"multipart",colorRamps:e.colorRamps.map(l=>({type:"algorithmic",algorithm:d,fromColor:[...l.fromColor],toColor:[...l.toColor]}))}:{type:"algorithmic",algorithm:d,fromColor:[...e.fromColor], toColor:[...e.toColor]}:null};C.getColorRampName=Q;C.getRFxArgColorRampValue=function(a){const d=Q(a);return d?"algorithmic"===a.type?{...D(a),Name:d}:a.colorRamps?(a=a.colorRamps.map(D),{type:"MultiPartColorRamp",NumColorRamps:a.length,ArrayOfColorRamp:a,Name:d}):null:null};C.predefinedJsonColorRamps=v;C.rasterColormapNames="random ndvi ndvi2 ndvi3 elevation gray hillshade".split(" ");Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/renderers/RasterShadedReliefRenderer":function(){define("../chunks/tslib.es6 ../core/JSONSupport ../core/lang ../core/accessorSupport/decorators/property ../core/has ../core/Logger ../core/accessorSupport/decorators/enumeration ../core/accessorSupport/decorators/reader ../core/accessorSupport/decorators/subclass ../rest/support/colorRamps".split(" "), function(C,F,N,I,x,S,X,Y,L,R){var Q;F=Q=class extends F.JSONSupport{constructor(h){super(h);this.altitude=45;this.azimuth=315;this.colorRamp=null;this.hillshadeType="traditional";this.pixelSizePower=.664;this.pixelSizeFactor=.024;this.scalingType="none";this.type="raster-shaded-relief";this.zFactor=1}readColorRamp(h){return R.fromJSON(h)}clone(){return new Q({hillshadeType:this.hillshadeType,altitude:this.altitude,azimuth:this.azimuth,zFactor:this.zFactor,scalingType:this.scalingType,pixelSizeFactor:this.pixelSizeFactor, pixelSizePower:this.pixelSizePower,colorRamp:N.clone(this.colorRamp)})}};C.__decorate([I.property({type:Number,json:{write:!0}})],F.prototype,"altitude",void 0);C.__decorate([I.property({type:Number,json:{write:!0}})],F.prototype,"azimuth",void 0);C.__decorate([I.property({types:R.types,json:{write:!0}})],F.prototype,"colorRamp",void 0);C.__decorate([Y.reader("colorRamp")],F.prototype,"readColorRamp",null);C.__decorate([I.property({type:["traditional","multi-directional"],json:{write:!0}})],F.prototype, "hillshadeType",void 0);C.__decorate([I.property({type:Number,json:{write:!0}})],F.prototype,"pixelSizePower",void 0);C.__decorate([I.property({type:Number,json:{write:!0}})],F.prototype,"pixelSizeFactor",void 0);C.__decorate([I.property({type:["none","adjusted"],json:{write:!0}})],F.prototype,"scalingType",void 0);C.__decorate([X.enumeration({rasterShadedRelief:"raster-shaded-relief"})],F.prototype,"type",void 0);C.__decorate([I.property({type:Number,json:{write:!0}})],F.prototype,"zFactor",void 0); return F=Q=C.__decorate([L.subclass("esri.renderers.RasterShadedReliefRenderer")],F)})},"esri/renderers/RasterStretchRenderer":function(){define("../chunks/tslib.es6 ../core/JSONSupport ../core/lang ../core/accessorSupport/decorators/property ../core/has ../core/Logger ../core/accessorSupport/decorators/enumeration ../core/accessorSupport/decorators/reader ../core/accessorSupport/decorators/subclass ../core/accessorSupport/decorators/writer ./support/stretchRendererUtils ../rest/support/colorRamps".split(" "), function(C,F,N,I,x,S,X,Y,L,R,Q,h){var f;F=f=class extends F.JSONSupport{constructor(g){super(g);this.colorRamp=null;this.dynamicRangeAdjustment=this.computeGamma=!1;this.gamma=[];this.sigmoidStrengthLevel=this.outputMin=this.outputMax=this.numberOfStandardDeviations=this.minPercent=this.maxPercent=null;this.statistics=[];this.histograms=null;this.useGamma=!1;this.stretchType="none";this.type="raster-stretch"}readColorRamp(g){if(g)return h.fromJSON(g)}writeStatistics(g,n,k){g?.length&&(Array.isArray(g[0])|| (g=g.map(D=>[D.min,D.max,D.avg,D.stddev])),n[k]=g)}readStretchType(g,n){g=n.stretchType;"number"===typeof g&&(g=Q.stretchTypeFunctionEnum[g]);return Q.stretchTypeJSONDict.read(g)}clone(){return new f({stretchType:this.stretchType,outputMin:this.outputMin,outputMax:this.outputMax,useGamma:this.useGamma,computeGamma:this.computeGamma,statistics:N.clone(this.statistics),gamma:N.clone(this.gamma),sigmoidStrengthLevel:this.sigmoidStrengthLevel,numberOfStandardDeviations:this.numberOfStandardDeviations, minPercent:this.minPercent,maxPercent:this.maxPercent,colorRamp:N.clone(this.colorRamp),histograms:N.clone(this.histograms),dynamicRangeAdjustment:this.dynamicRangeAdjustment})}};C.__decorate([I.property({types:h.types,json:{write:!0}})],F.prototype,"colorRamp",void 0);C.__decorate([Y.reader("colorRamp")],F.prototype,"readColorRamp",null);C.__decorate([I.property({type:Boolean,json:{write:!0}})],F.prototype,"computeGamma",void 0);C.__decorate([I.property({type:Boolean,json:{write:{target:"dra"},read:{source:"dra"}}})], F.prototype,"dynamicRangeAdjustment",void 0);C.__decorate([I.property({type:[Number],json:{write:!0}})],F.prototype,"gamma",void 0);C.__decorate([I.property({type:Number,json:{write:!0}})],F.prototype,"maxPercent",void 0);C.__decorate([I.property({type:Number,json:{write:!0}})],F.prototype,"minPercent",void 0);C.__decorate([I.property({type:Number,json:{write:!0}})],F.prototype,"numberOfStandardDeviations",void 0);C.__decorate([I.property({type:Number,json:{read:{source:"max"},write:{target:"max"}}})], F.prototype,"outputMax",void 0);C.__decorate([I.property({type:Number,json:{read:{source:"min"},write:{target:"min"}}})],F.prototype,"outputMin",void 0);C.__decorate([I.property({type:Number,json:{write:!0}})],F.prototype,"sigmoidStrengthLevel",void 0);C.__decorate([I.property({json:{type:[[Number]],write:!0}})],F.prototype,"statistics",void 0);C.__decorate([I.property()],F.prototype,"histograms",void 0);C.__decorate([R.writer("statistics")],F.prototype,"writeStatistics",null);C.__decorate([I.property({type:Boolean, json:{write:!0}})],F.prototype,"useGamma",void 0);C.__decorate([I.property({type:Q.stretchTypeJSONDict.apiValues,json:{type:Q.stretchTypeJSONDict.jsonValues,write:Q.stretchTypeJSONDict.write}})],F.prototype,"stretchType",void 0);C.__decorate([Y.reader("stretchType",["stretchType"])],F.prototype,"readStretchType",null);C.__decorate([X.enumeration({rasterStretch:"raster-stretch"})],F.prototype,"type",void 0);return F=f=C.__decorate([L.subclass("esri.renderers.RasterStretchRenderer")],F)})},"esri/renderers/support/stretchRendererUtils":function(){define(["exports", "../../core/jsonMap"],function(C,F){F=new F.JSONMap({none:"none",standardDeviation:"standard-deviation",histogramEqualization:"histogram-equalization",minMax:"min-max",percentClip:"percent-clip",sigmoid:"sigmoid"});C.stretchTypeFunctionEnum={0:"none",3:"standardDeviation",4:"histogramEqualization",5:"minMax",6:"percentClip",9:"sigmoid"};C.stretchTypeJSONDict=F;Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/renderers/VectorFieldRenderer":function(){define("../chunks/tslib.es6 ../Color ../geometry ../Graphic ../symbols ../core/jsonMap ../core/JSONSupport ../core/lang ../core/accessorSupport/decorators/property ../core/has ../core/Logger ../core/accessorSupport/decorators/enumeration ../core/accessorSupport/decorators/reader ../core/accessorSupport/decorators/subclass ../geometry/support/normalizeUtils ../layers/support/rasterFunctions/vectorFieldUtils ./ClassBreaksRenderer ./mixins/VisualVariablesMixin ./support/ClassBreakInfo ./visualVariables/RotationVariable ./visualVariables/SizeVariable ./visualVariables/support/visualVariableUtils ../symbols/SimpleLineSymbol ../symbols/SimpleMarkerSymbol ../symbols/support/utils ../geometry/Point ../symbols/PictureMarkerSymbol".split(" "), function(C,F,N,I,x,S,X,Y,L,R,Q,h,f,g,n,k,D,v,t,a,d,e,l,c,b,m,r){var u;const p=new Set(["esriMetersPerSecond","esriKilometersPerHour","esriKnots","esriFeetPerSecond","esriMilesPerHour"]);N=new S.JSONMap({beaufort_ft:"beaufort-ft",beaufort_km:"beaufort-km",beaufort_kn:"beaufort-kn",beaufort_m:"beaufort-m",beaufort_mi:"beaufort-mi",classified_arrow:"classified-arrow",ocean_current_kn:"ocean-current-kn",ocean_current_m:"ocean-current-m",simple_scalar:"simple-scalar",single_arrow:"single-arrow",wind_speed:"wind-barb"}); S=new S.JSONMap({flow_from:"flow-from",flow_to:"flow-to"});X=u=class extends v.VisualVariablesMixin(X.JSONSupport){constructor(q){super(q);this.attributeField="Magnitude";this.flowRepresentation="flow-from";this.rotationType="arithmetic";this.style="single-arrow";this.symbolTileSize=50;this.type="vector-field"}readInputUnit(q,y){return p.has(q)?k.unitKebabDict.fromJSON(q):null}readOutputUnit(q,y){return p.has(q)?k.unitKebabDict.fromJSON(q):null}get styleRenderer(){const q=this.attributeField,y=this._createStyleRenderer(this.style); y.field=q;return y}get sizeVariables(){const q=[];if(this.visualVariables)for(var y of this.visualVariables)"size"===y.type&&q.push(y);0===q.length&&(y=new d({field:"Magnitude",minSize:.2*this.symbolTileSize,maxSize:.8*this.symbolTileSize}),this.visualVariables?this.visualVariables.push(y):this._set("visualVariables",[y]),q.push(y));return q}get rotationVariables(){const q=[];if(this.visualVariables)for(var y of this.visualVariables)"rotation"===y.type&&q.push(y);0===q.length&&(y=new a({field:"Direction", rotationType:this.rotationType}),this.visualVariables?this.visualVariables.push(y):this._set("visualVariables",[y]),q.push(y));return q}clone(){return new u({attributeField:this.attributeField,flowRepresentation:this.flowRepresentation,rotationType:this.rotationType,symbolTileSize:this.symbolTileSize,style:this.style,visualVariables:Y.clone(this.visualVariables),inputUnit:this.inputUnit,outputUnit:this.outputUnit})}async getGraphicsFromPixelData(q,y=!1,z=[]){const H=[];var E=k.getUnitConversionFactor(this.inputUnit, this.outputUnit),K=this.rotationVariables[0]?.rotationType||this.rotationType;y=y?k.convertVectorFieldData(q.pixelBlock,"vector-uv",K,E):k.convertVectorFieldUnit(q.pixelBlock,"vector-magdir",E);if(null==y)return H;q=q.extent;E=null!=y.mask&&0T.intersects(V));E&&!y.mask[K]||G||(G={Magnitude:y.pixels[0][K],Direction:y.pixels[1][K]},G=new I({geometry:new m({x:V.x,y:V.y,spatialReference:q.spatialReference}),attributes:G}),G.symbol=this._getVisualVariablesAppliedSymbol(G),H.push(G))}return H}getSymbol(q,y){}async getSymbolAsync(q,y){}getSymbols(){return[]}getClassBreakInfos(){return this.styleRenderer?.classBreakInfos}getDefaultSymbol(){return this.styleRenderer?.defaultSymbol}_getDefaultSymbol(q){return new c({path:"M14,32 14,18 9,23 16,3 22,23 17,18 17,32 z", outline:new l({width:0}),size:20,color:q||new F([0,92,230])})}_getVisualVariablesAppliedSymbol(q){if(q){var y=this.styleRenderer?.getSymbol(q)?.clone(),z=this.sizeVariables,H=this.rotationVariables;z&&z.length&&this.sizeVariables.forEach(E=>b.applySizesToSymbol(y,e.getAllSizes([E],q)));H&&H.length&&(q.attributes.Direction+="flow-to"===this.flowRepresentation===("ocean-current-kn"===this.style||"ocean-current-m"===this.style)?0:180,this.rotationVariables.forEach(E=>b.applyRotationToSymbol(y,e.getRotationAngle(E, q),E.axis)));return y}}_createStyleRenderer(q){let y={defaultSymbol:this._getDefaultSymbol(),classBreakInfos:[]};switch(q){case "single-arrow":y=this._createSingleArrowRenderer();break;case "beaufort-kn":y=this._createBeaufortKnotsRenderer();break;case "beaufort-m":y=this._createBeaufortMeterRenderer();break;case "beaufort-ft":y=this._createBeaufortFeetRenderer();break;case "beaufort-mi":y=this._createBeaufortMilesRenderer();break;case "beaufort-km":y=this._createBeaufortKilometersRenderer();break; case "ocean-current-m":y=this._createCurrentMeterRenderer();break;case "ocean-current-kn":y=this._createCurrentKnotsRenderer();break;case "simple-scalar":y=this._createSimpleScalarRenderer();break;case "wind-barb":y=this._createWindBarbsRenderer();break;case "classified-arrow":y=this._createClassifiedArrowRenderer()}return new D(y)}_createSingleArrowRenderer(){return{defaultSymbol:this._getDefaultSymbol()}}_createBeaufortKnotsRenderer(){const q=this._getDefaultSymbol(new F([214,47,39])),y=this._getClassBreaks([0, 1,3,6,10,16,21,27,33,40,47,55,63],[[40,146,199],[89,162,186],[129,179,171],[160,194,155],[191,212,138],[218,230,119],[250,250,100],[252,213,83],[252,179,102],[250,141,52],[247,110,42],[240,71,29]]);return{defaultSymbol:q,classBreakInfos:y}}_createBeaufortMeterRenderer(){const q=this._getDefaultSymbol(new F([214,47,39])),y=this._getClassBreaks([0,.2,1.8,3.3,5.4,8.5,11,14.1,17.2,20.8,24.4,28.6,32.7],[[69,117,181],[101,137,184],[132,158,186],[162,180,189],[192,204,190],[222,227,191],[255,255,191],[255, 220,161],[250,185,132],[245,152,105],[237,117,81],[232,21,21]]);return{defaultSymbol:q,classBreakInfos:y}}_createBeaufortFeetRenderer(){const q=this._getDefaultSymbol(new F([214,47,39]));var y=[0,.2,1.8,3.3,5.4,8.5,11,14.1,17.2,20.8,24.4,28.6,32.7];y=y.map(z=>3.28084*z);y=this._getClassBreaks(y,[[69,117,181],[101,137,184],[132,158,186],[162,180,189],[192,204,190],[222,227,191],[255,255,191],[255,220,161],[250,185,132],[245,152,105],[237,117,81],[232,21,21]]);return{defaultSymbol:q,classBreakInfos:y}}_createBeaufortMilesRenderer(){const q= this._getDefaultSymbol(new F([214,47,39]));var y=[0,.2,1.8,3.3,5.4,8.5,11,14.1,17.2,20.8,24.4,28.6,32.7];y=y.map(z=>2.23694*z);y=this._getClassBreaks(y,[[69,117,181],[101,137,184],[132,158,186],[162,180,189],[192,204,190],[222,227,191],[255,255,191],[255,220,161],[250,185,132],[245,152,105],[237,117,81],[232,21,21]]);return{defaultSymbol:q,classBreakInfos:y}}_createBeaufortKilometersRenderer(){const q=this._getDefaultSymbol(new F([214,47,39]));var y=[0,.2,1.8,3.3,5.4,8.5,11,14.1,17.2,20.8,24.4,28.6, 32.7];y=y.map(z=>3.6*z);y=this._getClassBreaks(y,[[69,117,181],[101,137,184],[132,158,186],[162,180,189],[192,204,190],[222,227,191],[255,255,191],[255,220,161],[250,185,132],[245,152,105],[237,117,81],[232,21,21]]);return{defaultSymbol:q,classBreakInfos:y}}_createCurrentMeterRenderer(){const q=this._getDefaultSymbol(new F([177,177,177])),y=this._getClassBreaks([0,.5,1,1.5,2],[[78,26,153],[179,27,26],[202,128,26],[177,177,177]]);return{defaultSymbol:q,classBreakInfos:y}}_createCurrentKnotsRenderer(){const q= this._getDefaultSymbol(new F([177,177,177])),y=this._getClassBreaks([0,.25,.5,1,1.5,2,2.5,3,3.5,4],[[0,0,0],[0,37,100],[78,26,153],[151,0,100],[179,27,26],[177,78,26],[202,128,26],[177,179,52],[177,177,177]]);return{defaultSymbol:q,classBreakInfos:y}}_createClassifiedArrowRenderer(){const q=this._getDefaultSymbol(new F([56,168,0]));var y=[0,1E-6,3.5,7,10.5,14];if(this.sizeVariables?.length){const z=this.sizeVariables[0].minDataValue,H=this.sizeVariables[0].maxDataValue;if(z&&H){const E=(H-z)/5;y= Array.from(Array(6).keys()).map(K=>z+E*K)}}y=this._getClassBreaks(y,[[56,168,0],[139,309,0],[255,255,0],[255,128,0],[255,0,0]]);return{defaultSymbol:q,classBreakInfos:y}}_createSimpleScalarRenderer(){return{defaultSymbol:r.fromJSON({imageData:"iVBORw0KGgoAAAANSUhEUgAAACsAAAArCAQAAABLVLlLAAAABGdBTUEAAYagMeiWXwAAAAJiS0dEAACqjSMyAAAACXBIWXMAAABIAAAASABGyWs+AAAC3ElEQVRIx9XXvW4cVRQH8N982btpsIREJECyiCXsxX4DKh6AliqGKCBBE2SlwlHgAbBD/AKmyEYUeQ1KahPZSZQvBCkQLTHZ7KGY8Xodz4w3a1NwbzVzz/znfJ//zbStVC5q3icKak9GAs2QIdDx3PtW/S011NW3p+M5Eomh11ipTIKe6+4LQzHaQ+G+63pIZNJJQXMpljwTwj1brpgx5w1zZlyx5Z4QnllEIm2xeeSUHBf0hV0bejo1Uh09G3aFvgXk7cCJFBc9EdaRVuHJJaOdKyTV2TVhYLMduNR0Q9gxL5GaaTDw8GzejrDRBpxWoGsySRW0dttKuattwNkIlFw2YXgzOdYq4Ox49PlM+JrKd5OusjTWhBuVxUfMX/KXXZ3WEmkuqa67wspR4BTbwtKr/5u4fFgStse/T7EifFPnnYl9zPq4vmUOPrRndgoHjDti1gOPqlyXoifcRNGQzUd31lDyfHmob1Gp35vSr+P6vilcQ5Egtyd8YF/ySg9NhPM+9M/IOaHwp5+PSZayXTvCogEUwlatC3J8LLwYtcWB8EuDXQVuCkV5/B4eNHb7wGBs87LBDS+xjdVSn09wq1G8dFM+9tSUhIGneLvUdniKxKpTYljCpu3j7rVWlHj/P23v4NPGUEyeCQnexe9lJjzEQqMjJs+EzNAX6B98dBZVRmroJx95x/A/6gln18EyfCUsl+qdXb/tjvfbw+mwforpUOBz4XLVoBwAn3aWnfeH246NyBXhrq7TTN5lNSP9RkU+puUJm3W2Tsdq0nZWM07srk7MwQrZSRysjjGWBLRJNsNbfj2JMR4AbxpU1XLAb9Mxfpsq5EjMuuiR8L0JiHOOBX3hiUvOmavN0nMueSzcceFk0BK4pMqLo7vDD1Z0qrtDx7Itt4Xwm9UqbMmk8S0Dtuzb2pvOU99Z1nLTOfleNmvfZfP2pYZmPfajwosKdDBNpacNpVGGsWX9CyDI8Xq/Sj6QAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE0LTExLTEwVDAzOjE3OjU4LTA1OjAwF+tHyQAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNC0xMS0xMFQwMzoxNzo1OC0wNTowMGa2/3UAAAAASUVORK5CYII\x3d", height:20,width:20,type:"esriPMS",angle:0})}}_createWindBarbsRenderer(){const q=Array.from(Array(31).keys()).map(E=>5*E),y=[{range:"0-5",path:"M20 20 M5 20 A15 15 0 1 0 35 20 A15 15 0 1 0 5 20 M20 20 M10 20 A10 10 0 1 0 30 20 A10 10 0 1 0 10 20",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMzJweCIgd2lkdGg9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTIwIDIwIE01IDIwIEExNSAxNSAwIDEgMCAzNSAyMCBBMTUgMTUgMCAxIDAgNSAyMCBNMjAgMjAgTTEwIDIwIEExMCAxMCAwIDEgMCAzMCAyMCBBMTAgMTAgMCAxIDAgMTAgMjAiIHN0eWxlPSJzdHJva2U6cmdiKDAsMCwwKTtzdHJva2Utd2lkdGg6MS41Ii8+CiA8L3N2Zz4\x3d"}, {range:"5-10",path:"M25 0 L25 40 M25 35 L17.5 37.5",imageData:"PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjkgMCAyNyA0NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMjUgMCBMMjUgNDAgTTI1IDM1IEwxNy41IDM3LjUiIHN0eWxlPSJzdHJva2U6cmdiKDAsMCwwKTtzdHJva2Utd2lkdGg6MS41Ii8+CiA8L3N2Zz4\x3d"},{range:"10-15",path:"M25 0 L25 40 L10 45 L25 40",imageData:"PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjkgMCAyNyA0NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMjUgMCBMMjUgNDAgTDEwIDQ1IEwyNSA0MCIgc3R5bGU9InN0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS13aWR0aDoxLjUiLz4KIDwvc3ZnPg\x3d\x3d"}, {range:"15-20",path:"M25 0 L25 40 L10 45 L25 40 M25 35 L17.5 37.5",imageData:"PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjEyIDAgMTUgNDUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0NSBMMjUgNDAgTTI1IDM1IEwxNy41IDM3LjUiIHN0eWxlPSJzdHJva2U6cmdiKDAsMCwwKTtzdHJva2Utd2lkdGg6MS41Ii8+CiA8L3N2Zz4\x3d"},{range:"20-25",path:"M25 0 L25 40 L10 45 L25 40 M25 35 L10 40",imageData:"PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjkgMCAyNiA0NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMjUgMCBMMjUgNDAgTDEwIDQ1IEwyNSA0MCBNMjUgMzUgTDEwIDQwIiBzdHlsZT0ic3Ryb2tlOnJnYigwLDAsMCk7c3Ryb2tlLXdpZHRoOjEuNSIvPgogPC9zdmc+"}, {range:"25-30",path:"M25 0 L25 40 L10 45 L25 40 M25 35 L10 40 L25 35 M25 30 L17.5 32.5",imageData:"PHN2ZyB3aWR0aD0iMjAiIGhlaWdodD0iMjAiIHZpZXdCb3g9IjkgMCAyNiA0NiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aCBkPSJNMjUgMCBMMjUgNDAgTDEwIDQ1IEwyNSA0MCBNMjUgMzUgTDEwIDQwIEwyNSAzNSBNMjUgMzAgTDE3LjUgMzIuNSIgc3R5bGU9InN0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS13aWR0aDoxLjUiLz4KIDwvc3ZnPg\x3d\x3d"},{range:"30-35",path:"M25 0 L25 40 L10 45 L25 40 M25 35 L10 40 L25 35 M25 30 L10 35",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMHB4IiBoZWlnaHQ9IjIwcHgiIHZpZXdCb3g9IjkgMCAyNiA0NiI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0NSBMMjUgNDAgTTI1IDM1IEwxMCA0MCBMMjUgMzUgTTI1IDMwIEwxMCAzNSIgc3R5bGU9InN0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS13aWR0aDoxLjUiLz4KIDwvc3ZnPg\x3d\x3d"}, {range:"35-40",path:"M25 0 L25 40 L10 45 L25 40 M25 35 L10 40 L25 35 M25 30 L10 35 L25 30 M25 25 L17.5 27.5",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMHB4IiBoZWlnaHQ9IjIwcHgiIHZpZXdCb3g9IjkgMCAyNiA0NiI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0NSBMMjUgNDAgTTI1IDM1IEwxMCA0MCBMMjUgMzUgTTI1IDMwIEwxMCAzNSBMMjUgMzAgTTI1IDI1IEwxNy41IDI3LjUiIHN0eWxlPSJzdHJva2U6cmdiKDAsMCwwKTtzdHJva2Utd2lkdGg6MS41Ii8+CiA8L3N2Zz4\x3d"},{range:"40-45",path:"M25 0 L25 40 L10 45 L25 40 M25 35 L10 40 L25 35 M25 30 L10 35 L25 30 M25 25 L10 30", imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMHB4IiBoZWlnaHQ9IjIwcHgiIHZpZXdCb3g9IjkgMCAyNiA0NiI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0NSBMMjUgNDAgTTI1IDM1IEwxMCA0MCBMMjUgMzUgTTI1IDMwIEwxMCAzNSBMMjUgMzAgTTI1IDI1IEwxMCAzMCIgc3R5bGU9InN0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS13aWR0aDoxLjUiLz4KIDwvc3ZnPg\x3d\x3d"},{range:"45-50",path:"M25 0 L25 40 L10 45 L25 40 M25 35 L10 40 L25 35 M25 30 L10 35 L25 30 M25 25 L10 30 L25 25 M25 20 L17.5 22.5",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMHB4IiBoZWlnaHQ9IjIwcHgiIHZpZXdCb3g9IjkgMCAyNiA0NiI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0NSBMMjUgNDAgTTI1IDM1IEwxMCA0MCBMMjUgMzUgTTI1IDMwIEwxMCAzNSBMMjUgMzAgTTI1IDI1IEwxMCAzMCBMMjUgMjUgTTI1IDIwIEwxNy41IDIyLjUiIHN0eWxlPSJzdHJva2U6cmdiKDAsMCwwKTtzdHJva2Utd2lkdGg6MS41Ii8+CiA8L3N2Zz4\x3d"}, {range:"50-55",path:"M25 0 L25 40 L10 40 L25 35",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMHB4IiBoZWlnaHQ9IjIwcHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUiIHN0eWxlPSJzdHJva2U6cmdiKDAsMCwwKTtzdHJva2Utd2lkdGg6MS41Ii8+CiA8L3N2Zz4\x3d"},{range:"55-60",path:"M25 0 L25 40 L10 40 L25 35 M25 30 L17.5 32.5",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMHB4IiBoZWlnaHQ9IjIwcHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTTI1IDMwIEwxNy41IDMyLjUiIHN0eWxlPSJzdHJva2U6cmdiKDAsMCwwKTtzdHJva2Utd2lkdGg6MS41Ii8+CiA8L3N2Zz4\x3d"}, {range:"60-65",path:"M25 0 L25 40 L10 40 L25 35 M25 30 L10 35",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMnB4IiBoZWlnaHQ9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTTI1IDMwIEwxMCAzNSIgc3R5bGU9InN0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS13aWR0aDoxLjUiLz4KIDwvc3ZnPg\x3d\x3d"},{range:"65-70",path:"M25 0 L25 40 L10 40 L25 35 M25 30 L10 35 L25 30 M25 25 L17.5 27.5",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMnB4IiBoZWlnaHQ9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTTI1IDMwIEwxMCAzNSBMMjUgMzAgTTI1IDI1IEwxNy41IDI3LjUiIHN0eWxlPSJzdHJva2U6cmdiKDAsMCwwKTtzdHJva2Utd2lkdGg6MS41Ii8+CiA8L3N2Zz4\x3d"}, {range:"70-75",path:"M25 0 L25 40 L10 40 L25 35 M25 30 L10 35 L25 30 M25 25 L10 30",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMnB4IiBoZWlnaHQ9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTTI1IDMwIEwxMCAzNSBMMjUgMzAgTTI1IDI1IEwxMCAzMCIgc3R5bGU9InN0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS13aWR0aDoxLjUiLz4KIDwvc3ZnPg\x3d\x3d"},{range:"75-80",path:"M25 0 L25 40 L10 40 L25 35 M25 30 L10 35 L25 30 M25 25 L10 30 L25 25 M25 20 L17.5 22.5", imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMnB4IiBoZWlnaHQ9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTTI1IDMwIEwxMCAzNSBMMjUgMzAgTTI1IDI1IEwxMCAzMCBMMjUgMjUgTTI1IDIwIEwxNy41IDIyLjUiIHN0eWxlPSJzdHJva2U6cmdiKDAsMCwwKTtzdHJva2Utd2lkdGg6MS41Ii8+CiA8L3N2Zz4\x3d"},{range:"80-85",path:"M25 0 L25 40 L10 40 L25 35 M25 30 L10 35 L25 30 M25 25 L10 30 L25 25 M25 20 L10 25",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMnB4IiBoZWlnaHQ9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTTI1IDMwIEwxMCAzNSBMMjUgMzAgTTI1IDI1IEwxMCAzMCBMMjUgMjUgTTI1IDIwIEwxMCAyNSIgc3R5bGU9InN0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS13aWR0aDoxLjUiLz4KIDwvc3ZnPg\x3d\x3d"}, {range:"85-90",path:"M25 0 L25 40 L10 40 L25 35 M25 30 L10 35 L25 30 M25 25 L10 30 L25 25 M25 20 L10 25 L25 20 M25 15 L17.5 17.5",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMnB4IiBoZWlnaHQ9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTTI1IDMwIEwxMCAzNSBMMjUgMzAgTTI1IDI1IEwxMCAzMCBMMjUgMjUgTTI1IDIwIEwxMCAyNSBMMjUgMjAgTTI1IDE1IEwxNy41IDE3LjUiIHN0eWxlPSJzdHJva2U6cmdiKDAsMCwwKTtzdHJva2Utd2lkdGg6MS41Ii8+CiA8L3N2Zz4\x3d"},{range:"90-95", path:"M25 0 L25 40 L10 40 L25 35 M25 30 L10 35 L25 30 M25 25 L10 30 L25 25 M25 20 L10 25 L25 20 M25 15 L10 20",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMnB4IiBoZWlnaHQ9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTTI1IDMwIEwxMCAzNSBMMjUgMzAgTTI1IDI1IEwxMCAzMCBMMjUgMjUgTTI1IDIwIEwxMCAyNSBMMjUgMjAgTTI1IDE1IEwxMCAyMCIgc3R5bGU9InN0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS13aWR0aDoxLjUiLz4KIDwvc3ZnPg\x3d\x3d"},{range:"95-100",path:"M25 0 L25 40 L10 40 L25 35 M25 30 L10 35 L25 30 M25 25 L10 30 L25 25 M25 20 L10 25 L25 20 M25 15 L10 20 L25 15 M25 10 L17.5 12.5", imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMnB4IiBoZWlnaHQ9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTTI1IDMwIEwxMCAzNSBMMjUgMzAgTTI1IDI1IEwxMCAzMCBMMjUgMjUgTTI1IDIwIEwxMCAyNSBMMjUgMjAgTTI1IDE1IEwxMCAyMCBMMjUgMTUgTTI1IDEwIEwxNy41IDEyLjUiIHN0eWxlPSJzdHJva2U6cmdiKDAsMCwwKTtzdHJva2Utd2lkdGg6MS41Ii8+CiA8L3N2Zz4\x3d"},{range:"100-105",path:"M25 0 L25 40 L10 40 L25 35 L10 35 L25 30",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMnB4IiBoZWlnaHQ9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTDEwIDM1IEwyNSAzMCIgc3R5bGU9InN0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS13aWR0aDoxLjUiLz4KIDwvc3ZnPg\x3d\x3d"}, {range:"105-110",path:"M25 0 L25 40 L10 40 L25 35 L10 35 L25 30 M25 25 L17.5 27.5",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMzJweCIgd2lkdGg9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTDEwIDM1IEwyNSAzMCBNMjUgMjUgTDE3LjUgMjcuNSIgc3R5bGU9InN0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS13aWR0aDoxLjUiLz4KIDwvc3ZnPg\x3d\x3d"},{range:"110-115",path:"M25 0 L25 40 L10 40 L25 35 L10 35 L25 30 M25 25 L10 30",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMzJweCIgd2lkdGg9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTDEwIDM1IEwyNSAzMCBNMjUgMjUgTDEwIDMwIiBzdHlsZT0ic3Ryb2tlOnJnYigwLDAsMCk7c3Ryb2tlLXdpZHRoOjEuNSIvPgogPC9zdmc+"}, {range:"115-120",path:"M25 0 L25 40 L10 40 L25 35 L10 35 L25 30 M25 25 L10 30 M25 25 M25 20 L17.5 22.5",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMzJweCIgd2lkdGg9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTDEwIDM1IEwyNSAzMCBNMjUgMjUgTDEwIDMwIE0yNSAyNSBNMjUgMjAgTDE3LjUgMjIuNSIgc3R5bGU9InN0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS13aWR0aDoxLjUiLz4KIDwvc3ZnPg\x3d\x3d"},{range:"120-125",path:"M25 0 L25 40 L10 40 L25 35 L10 35 L25 30 M25 25 L10 30 M25 25 M25 20 L10 25", imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMzJweCIgd2lkdGg9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTDEwIDM1IEwyNSAzMCBNMjUgMjUgTDEwIDMwIE0yNSAyNSBNMjUgMjAgTDEwIDI1IiBzdHlsZT0ic3Ryb2tlOnJnYigwLDAsMCk7c3Ryb2tlLXdpZHRoOjEuNSIvPgogPC9zdmc+"},{range:"125-130",path:"M25 0 L25 40 L10 40 L25 35 L10 35 L25 30 M25 25 L10 30 M25 25 M25 20 L10 25 M25 20 M25 15 L17.5 17.5",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMzJweCIgd2lkdGg9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTDEwIDM1IEwyNSAzMCBNMjUgMjUgTDEwIDMwIE0yNSAyNSBNMjUgMjAgTDEwIDI1IE0yNSAyMCBNMjUgMTUgTDE3LjUgMTcuNSIgc3R5bGU9InN0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS13aWR0aDoxLjUiLz4KIDwvc3ZnPg\x3d\x3d"}, {range:"130-135",path:"M25 0 L25 40 L10 40 L25 35 L10 35 L25 30 M25 25 L10 30 M25 25 M25 20 L10 25 M25 20 M25 15 L10 20",imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMzJweCIgd2lkdGg9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTDEwIDM1IEwyNSAzMCBNMjUgMjUgTDEwIDMwIE0yNSAyNSBNMjUgMjAgTDEwIDI1IE0yNSAyMCBNMjUgMTUgTDEwIDIwIiBzdHlsZT0ic3Ryb2tlOnJnYigwLDAsMCk7c3Ryb2tlLXdpZHRoOjEuNSIvPgogPC9zdmc+"},{range:"135-140",path:"M25 0 L25 40 L10 40 L25 35 L10 35 L25 30 M25 25 L10 30 M25 25 M25 20 L10 25 M25 20 M25 15 L10 20 M25 15 M25 10 L17.5 12.5", imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMzJweCIgd2lkdGg9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTDEwIDM1IEwyNSAzMCBNMjUgMjUgTDEwIDMwIE0yNSAyNSBNMjUgMjAgTDEwIDI1IE0yNSAyMCBNMjUgMTUgTDEwIDIwIE0yNSAxNSBNMjUgMTAgTDE3LjUgMTIuNSIgc3R5bGU9InN0cm9rZTpyZ2IoMCwwLDApO3N0cm9rZS13aWR0aDoxLjUiLz4KIDwvc3ZnPg\x3d\x3d"},{range:"140-145",path:"M25 0 L25 40 L10 40 L25 35 L10 35 L25 30 M25 25 L10 30 M25 25 M25 20 L10 25 M25 20 M25 15 L10 20 M25 15 M25 10 L17.5 12.5", imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMzJweCIgd2lkdGg9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTDEwIDM1IEwyNSAzMCBNMjUgMjUgTDEwIDMwIE0yNSAyNSBNMjUgMjAgTDEwIDI1IE0yNSAyMCBNMjUgMTUgTDEwIDIwIE0yNSAxNSBNMjUgMTAgTDEwIDE1IiBzdHlsZT0ic3Ryb2tlOnJnYigwLDAsMCk7c3Ryb2tlLXdpZHRoOjEuNSIvPgogPC9zdmc+"},{range:"145-150",path:"M25 0 L25 40 L10 40 L25 35 L10 35 L25 30 M25 25 L10 30 M25 25 M25 20 L10 25 M25 20 M25 15 L10 20 M25 15 M25 10 L17.5 12.5", imageData:"PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMzJweCIgd2lkdGg9IjMycHgiIHZpZXdCb3g9IjkgMCAyNiA0MSI+CiAgPHBhdGggZD0iTTI1IDAgTDI1IDQwIEwxMCA0MCBMMjUgMzUgTDEwIDM1IEwyNSAzMCBNMjUgMjUgTDEwIDMwIE0yNSAyNSBNMjUgMjAgTDEwIDI1IE0yNSAyMCBNMjUgMTUgTDEwIDIwIE0yNSAxNSBNMjUgMTAgTDEwIDE1IE0yNSAxMCBNMjUgNSBMMTcuNSA3LjUiIHN0eWxlPSJzdHJva2U6cmdiKDAsMCwwKTtzdHJva2Utd2lkdGg6MS41Ii8+CiA8L3N2Zz4\x3d"}],z=r.fromJSON({imageData:"iVBORw0KGgoAAAANSUhEUgAAACgAAAApCAQAAADtq6NDAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAJiS0dEAP+Hj8y/AAAACXBIWXMAAA7DAAAOwwHHb6hkAAAEY0lEQVRIx5XXWWxWRRQH8N+d+31tUdGAVjGglYJABFEBY91jfDAg7piYaFTccA++uMQEFRcSXlATtxiXqMQt4G4iisYl0ai4sIQYtVFZ1KIFKdTS0l4f7vRCS5fPebozc+bM/2z/Mzcx0AgSiUxXnKfIdMn875FIhX53U2n/B/s+kKM4UINTjTBZImixxnrv+9a2iL6zEoUBXcoudrWj/OtHm3wt02lfU9Qao9OnHvIhgmww84MEl1qnxfNmGrqHxAizLdPpC6chGcAxKGGcL+30gOERf1BSpUqVslQSV8d5ReZFe8VQ9avufJn31cWwlJV7iafKStGOE/1qvfH9qUxxu8ydUdmuSKbGO8YUdT2inKLG69pM70tliktl5qIkCAJGmusDG7Vqsc0WjZa4UBlBiA5YZIcjYzB7qDtH5kaUJFLs7RGZTZ42W4PRRmtwvbdt1+wGiaS4drEtDttdZYIDNVuAclR3vA3+dI3qHqmVSy7U6Tv1MScCPvPR7nIpFlsdCy3FdTLPGhK92e2CUITjMJ9ocwKxnsZqc3O3JwMma3d6UVLnyVxB4aXemZqvPqLdpJhW3KVVbY4yYImPo6M5Urv50fj+0z/FG9YaEiENs8UtMfXUaTeTePNHlhXfA1UU+2lyD1Il3Gtt9+adfpNG7dNlpg2U/T3KYLZ2dUWFdTgp3/rQ4sK973qnInV5TIf40x3dhvrJPBiqyWUo4wAtLqhQYS71qK+QKOFRywmGK/kpikzV6WMKhh58vGWs4TIJNjiEYLIuP8Tt4/zmLyqk+AyrJSbF+Qq1DgqRUPMxyl+9q3IQhX/rMCJ6tEunriDs1oSyQZKlr9AkhT2ZIARbJfaJS1vtVbHB+Rgi0RK/y1q1BWsEEyLoz40xtGKcARPVWB1BTPO7f4LNtpkUl1aoMbViLyZo0GRjPD3BxnxjqXeLYlvhqYrzMMG3HoyJXa3JjfnGlbYYFlP7Jh3qKsKY4hQ7TY0nG+xwRL61n63mxHtqNHosigyMLmClNwvuecFnOZB88nNBDzNkzhxEZaKMBVoKapggMzvHHXBEpNSSFAvtcFRsVn0bW8LlMmcXs+c0Kne3gRR32+zg4uXwjC6zit6Wt4a8LXVfcp/MtQXHn2ynGbuCmb8GvvFeJLEE82ReU9/n6+dkq2x3buG9Wn94smcgAw631RPR7BTH+kbmHReZoEpOdEe7zWqZl40s0JWs9Hmv7hjBHqPDwsjGKVJnWWqjbdZp1KhJi0aPmxYZsIRhlttgeF+Jlke41QcOQKoqilSb6HJzSvNG3G/UoWnxwsmt+sVaYwd63dRbqdnMyCPVeyRPvpYgdavM22oGKoMUVRbJfOWMwidJ8Zzb1UvmWK/VVUXzHaTjjrVYh1897HT7xxYEVUaa5SWb/WO+YUWa9SrwvigzM8YlzlYv2GSdVCYxxlBtVnnFq5olwp5/BEk/OLsf5LUmG2+inRJdVvjZ97ZH9/zP34ug1O91pf4p+D+JYBpvrKxfbwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxNC0xMS0xMFQwMzoxMjowOS0wNTowMB9ViV0AAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTQtMTEtMTBUMDM6MTI6MDktMDU6MDBuCDHhAAAAAElFTkSuQmCC", height:20,width:20,type:"esriPMS",angle:0}),H=q.map((E,K)=>{if(K!==q.length-1)if(0===K)var w={minValue:E,maxValue:q[K+1],symbol:z};else w=r.fromJSON({type:"esriPMS",imageData:y[K].imageData,contentType:"image/svg+xml",height:32,width:32,angle:0}),w={minValue:E,maxValue:q[K+1],symbol:w};return new t(w)});return{defaultSymbol:z,classBreakInfos:H}}_getClassBreaks(q,y){return y.map((z,H)=>new t({minValue:q[H],maxValue:q[H+1],symbol:this._getDefaultSymbol(new F(z))}))}};C.__decorate([L.property({type:["Magnitude"], json:{write:!0}})],X.prototype,"attributeField",void 0);C.__decorate([L.property({type:S.apiValues,json:{type:S.jsonValues,read:{reader:S.read},write:{writer:S.write}}})],X.prototype,"flowRepresentation",void 0);C.__decorate([L.property({type:["geographic","arithmetic"],json:{write:!0}})],X.prototype,"rotationType",void 0);C.__decorate([L.property({type:N.apiValues,json:{type:N.jsonValues,read:{reader:N.read},write:{writer:N.write}}})],X.prototype,"style",void 0);C.__decorate([L.property({json:{write:!0}})], X.prototype,"symbolTileSize",void 0);C.__decorate([L.property({type:k.unitKebabDict.apiValues,json:{type:k.unitKebabDict.jsonValues,write:{writer:k.unitKebabDict.write}}})],X.prototype,"inputUnit",void 0);C.__decorate([f.reader("inputUnit")],X.prototype,"readInputUnit",null);C.__decorate([L.property({type:k.unitKebabDict.apiValues,json:{type:k.unitKebabDict.jsonValues,read:{reader:k.unitKebabDict.read},write:{writer:k.unitKebabDict.write}}})],X.prototype,"outputUnit",void 0);C.__decorate([f.reader("outputUnit")], X.prototype,"readOutputUnit",null);C.__decorate([h.enumeration({vectorField:"vector-field"})],X.prototype,"type",void 0);C.__decorate([L.property({type:D})],X.prototype,"styleRenderer",null);C.__decorate([L.property({type:d})],X.prototype,"sizeVariables",null);C.__decorate([L.property({type:a})],X.prototype,"rotationVariables",null);return X=u=C.__decorate([g.subclass("esri.renderers.VectorFieldRenderer")],X)})},"esri/layers/support/rasterFunctions/vectorFieldUtils":function(){define(["exports","../../../core/jsonMap", "../PixelBlock","./pixelUtils"],function(C,F,N,I){function x(c,b){return k.get(c)/k.get(b)||1}function S(c,b="geographic"){const [m,r]=c;c=Math.sqrt(m*m+r*r);let u=Math.atan2(r,m)*D;u=(360+u)%360;"geographic"===b&&(u=(450-u)%360);return[c,u]}function X(c,b="geographic"){let m=c[1];"geographic"===b&&(m=(450-m)%360);m%=360;c=c[0];return[c*Math.cos(m/D),c*Math.sin(m/D)]}function Y(c,b,m="geographic",r=1){if(!I.isValidPixelBlock(c))return c;const {pixels:u,width:p,height:q}=c;var y=p*q;const z=u[0],H= u[1],E=c.pixelType.startsWith("f")?c.pixelType:"f32",K=N.createEmptyBand(E,y);y=N.createEmptyBand(E,y);let w=0;for(let A=0;A=J&&1===T%2&&ma===(T-1)/2&&(G=0,U=G+0*y,P=(P+H)/2,V=P-r);const [ia,ua]=Q(G,P,b,45);if(00A;A++)y[m++]=(w+.5)/u,y[m++]=(K+.5)/p,y[m++]=2>A?-.5:.5,y[m++]=0===A%2?-.5:.5,y[m++]=0,y[m++]=E;E=4*(m/24-1);z[r++]=E;z[r++]=E+1;z[r++]=E+2;z[r++]=E+1;z[r++]=E+2;z[r++]=E+3}}return{vertexData:new Float32Array(y), indexData:new Uint32Array(z)}}const k=new Map;k.set("meter-per-second",1);k.set("kilometer-per-hour",.277778);k.set("knots",.514444);k.set("feet-per-second",.3048);k.set("mile-per-hour",.44704);const D=180/Math.PI,v=new F.JSONMap({esriMetersPerSecond:"meter-per-second",esriKilometersPerHour:"kilometer-per-hour",esriKnots:"knots",esriFeetPerSecond:"feet-per-second",esriMilesPerHour:"mile-per-hour"}),t=L(0,0,0),a=[0,1,3,6,10,16,21,27,33,40,47,55,63],d=[0,.5,1,1.5,2],e=[0,.25,.5,1,1.5,2,2.5,3,3.5,4], l=[];C.convertToLocalDirections=function(c,b,m,r="geographic"){if(!I.isValidPixelBlock(c)||null==m)return c;c="vector-magdir"===b?c.clone():Y(c,b);const u=c.pixels[1];for(let p=0;pm;m++)l.push(R(5*m,0,!b.invertDirection));b=v.fromJSON(b.inputUnit);b=x(b,"knots");const {width:q,height:y,mask:z}=c;m=c.pixels[0];c=c.pixels[1];const H=[],E=[];let K=0,w=0;for(let A=0;A=(aa-O)*(W-Z)*(1-u)){w[J]=1;const [da,ca]=S([A[J]/T,G[J]/T]);A[J]=da;G[J]=ca}else w[J]=0,A[J]=0,G[J]=0}m=new N({width:c,height:r,pixels:[A,G],mask:w});m.updateStatistics(); return m};C.snapImageToSymbolTile=function(c,b,m,r,u){if(null==u||!u.spatialReference.equals(c.spatialReference))return{extent:c,width:Math.round(b/r),height:Math.round(m/r),resolution:c.width/b};const p=u.xmin;u=u.ymax;b=(c.xmax-c.xmin)/b*r;m=(c.ymax-c.ymin)/m*r;c.xmin=p+Math.floor((c.xmin-p)/b)*b;c.xmax=p+Math.ceil((c.xmax-p)/b)*b;c.ymin=u+Math.floor((c.ymin-u)/m)*m;c.ymax=u+Math.ceil((c.ymax-u)/m)*m;return{extent:c,width:Math.round(c.width/b),height:Math.round(c.height/m),resolution:(b+m)/2}}; C.unitKebabDict=v;C.uvComponentToVector=S;Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/PixelBlock":function(){define("../../chunks/tslib.es6 ../../core/Error ../../core/JSONSupport ../../core/lang ../../core/Logger ../../core/accessorSupport/decorators/property ../../core/accessorSupport/decorators/cast ../../core/accessorSupport/decorators/subclass ./SimpleBandStatistics ./rasterFormats/pixelRangeUtils".split(" "),function(C,F,N,I,x,S,X,Y,L,R){var Q;N=Q=class extends N.JSONSupport{static createEmptyBand(h, f){return new (Q.getPixelArrayConstructor(h))(f)}static combineBandMasks(h){if(2>h.length)return h[0];const f=h[0].length,g=(new Uint8Array(f)).fill(255);for(let n=0;n{var n=this.mask;let k=Infinity,D=-Infinity;const v=g.length;let t,a=0;if(null!=n)for(t=0;tD?a:D);else for(t=0;tD?a:D;return new L.SimpleBandStatistics(k,D)});var h=this.mask,f=0;if(null!=h)for(let g= 0;gg?g:de>=f.length),D=n===h.length&&!h.some((e,l)=>e!==l);if(k||D)return this;n=this.bandMasks?.length===n?h.map(e=>this.bandMasks[e]):void 0;let {mask:v,validPixelCount:t}=this;const {width:a,height:d}=this;n?.length&&(v=Q.combineBandMasks(n),t=v.filter(e=>!!e).length);return new Q({pixelType:this.pixelType,width:a,height:d,mask:v,bandMasks:n,validPixelCount:t,maskIsAlpha:this.maskIsAlpha,pixels:h.map(e=>f[e]),statistics:g&&h.map(e=>g[e])})}clone(){const h=new Q({width:this.width,height:this.height, pixelType:this.pixelType,maskIsAlpha:this.maskIsAlpha,validPixelCount:this.validPixelCount});null!=this.mask&&(h.mask=new Uint8Array(this.mask));this.bandMasks&&(h.bandMasks=this.bandMasks.map(n=>new Uint8Array(n)));let f;const g=Q.getPixelArrayConstructor(this.pixelType);if(this.pixels&&0v+Number.EPSILON||nI?-128<=I&&128>x?"s8":-32768<=I&&32768>x?"s16":"s32":256>x?"u8":65536>x?"u16":"u32"};C.getPixelValueRange=F;C.isIntegerPixelType=function(I){return(I?.startsWith("s")||I?.startsWith("u"))??!1};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/rasterFunctions/pixelUtils":function(){define(["exports","../PixelBlock","../rasterFormats/pixelRangeUtils"], function(C,F,N){function I(a){return null!=a&&"esri.layers.support.PixelBlock"===a.declaredClass&&a.pixels&&0=d[p]&&r<= d[p+1]){u=!0;break}u||(l[m]=0)}l[m]&&(r===e||c?.has(r))&&(l[m]=0)}}function X(a,d){const e=a[0].length;for(let l=0;lE?H=b.rightPadding:w>=E&&(z=b.leftMargin-b.rightPadding,H=0)}e.xmax-=H;if("number"===typeof d)for(b=e.ymin;bI(P));if(null==r)return null;e=c?c.width:d.width;const u=c?c.height:d.height;var p=r.width,q=r.height;const y=d.width/p,z=d.height/q;d={offset:l||{x:0,y:0},mosaic:c||d,block:{width:p,height:q}};p=r.pixelType;var H=F.getPixelArrayConstructor(p);r=r.pixels.length;q=[];for(var E=0;Enull==P||null!=P.mask&&0P?.bandMasks&&1null!=w);if(null==l)return null;var c=a.some(w=>null!=w?!!w.mask:!0);const {width:b,height:m}=d;d=c?new Uint8Array(b*m):null;({blockWidths:e}=e);const r=[],u=l.getPlaneCount(),p=F.getPixelArrayConstructor(l.pixelType);if(c)for(let w=0,A=0;ww?.bandMasks&&1u;u++){const y=r*e+u;k(q,b[y],a?a[y]:1)}m[p*e]=g(q);m[p*e+1]=m[p*e+2]=m[p*e];for(r=3;rd&&(e=b.value,d=l),b=c.next();return e}function n(a,d,e){0!==e&&(e=a.get(d),1===e?a.delete(d):a.set(d,e-1))}function k(a,d,e){0!==e&&a.set(d,a.has(d)?a.get(d)+ 1:1)}function D(a,d,e){let {x:l,y:c}=d;const {width:b,height:m}=e;if(0===l&&0===c&&m===a.height&&b===a.width)return a;const {width:r,height:u}=a;d=Math.max(0,c);const p=Math.max(0,l),q=Math.min(l+b,r),y=Math.min(c+m,u);if(0>q||0>y||!I(a))return null;l=Math.max(0,-l);c=Math.max(0,-c);var {pixels:z}=a,H=b*m,E=z.length;const K=[];for(var w=0;w{const W=J instanceof Float32Array||J instanceof Float64Array?0:.5;for(let da=0;daw[V]||0>A[V])J[da*H+ca]=0;else if(aa)J[da*H+ca]=O[G[V]+P[V]*p];else{const fa=Math.floor(w[V]),ha=Math.floor(A[V]),na=Math.ceil(w[V]),ma=Math.ceil(A[V]),ia=w[V]-fa,ua=A[V]-ha;J[da*H+ca]=!Z||Z[fa+ha*p]&&Z[na+ha*p]&&Z[fa+ma*p]&&Z[na+ma*p]?(1-ua)*((1-ia)*O[fa+ha*p]+ia*O[na+ha*p])+ua*((1-ia)*O[fa+ma*p]+ia*O[na+ma*p])+W:O[G[V]+P[V]*p]}V++}}};e=[];l=r?.length===z;q=[];for(K=0;Kw[a]||0>A[a]?0:1;c.updateStatistics();return c};C.clip=D;C.clipTile=function(a){const {pixelBlock:d,tileSize:e,level:l,row:c,col:b,useBilinear:m}=a;if(!I(d))return null;const {width:r,height:u}=e;var p=2**l;a=p*r;p*=u;a=D(d, {y:c*p,x:b*a},{width:a,height:p});if(!a)return null;for(p=l;0H?c[a]=0:(d[a]=m[z],q[a]=m[z+1],y[a]=m[z+2],c[a]=m[z+3]));else{c=new Uint8Array(b);for(a=0;aH?c[a]=0:(d[a]=m[z],q[a]=m[z+1],y[a]=m[z+2],c[a]=m[z+3]);e.mask=c}}else if(r)if(null!=c)for(a=0;a!I(u)))return null;if(1===a.length)return a[0]?.clone()??null;const {width:d,height:e,pixelType:l}=a[0];if(a.some(u=>u.width!==d||u.height!==e))return null;const c=a.map(({mask:u})=>u).filter(u=>null!=u);let b=null;c.length&&(b=new Uint8Array(d*e),b.set(c[0]),1m.push(...u));const r=[];a.map(({statistics:u})=>u).filter(u=>u?.length).forEach(u=>r.push(...u));return new F({pixelType:l,width:d,height:e,mask:b,pixels:m,statistics:r.length? r:null})};C.createColormapLUT=function(a){if(a){var d=a.colormap;if(d&&0!==d.length){d=d.sort((p,q)=>p[0]-q[0]);var e=0;0>d[0][0]&&(e=d[0][0]);var l=Math.max(256,d[d.length-1][0]-e+1),c=new Uint8Array(4*l),b=[],m=0,r=0,u=5===d[0].length;if(65536{b[p[0]-e]=u?p.slice(1):p.slice(1).concat([255])}),{indexed2DColormap:b,offset:e,alphaSpecified:u};if(a.fillUnspecified)for(a=d[r],m=a[0]-e;mw-1E-6);z[0]=e[0];m&&(z[z.length-1]=e[e.length-1]);for(var H= 0;Hy?y:l[H]b));const r=[];d=d.outputPixelType|| "u8";for(let u=0;uy.pixelBlock);if(null==e?.pixelBlock)return null;var l=(e.extent.xmax-e.extent.xmin)/e.pixelBlock.width; const c=(e.extent.ymax-e.extent.ymin)/e.pixelBlock.height,b=.01*Math.min(l,c),m=a.sort((y,z)=>Math.abs(y.extent.ymax-z.extent.ymax)>b?z.extent.ymax-y.extent.ymax:Math.abs(y.extent.xmin-z.extent.xmin)>b?y.extent.xmin-z.extent.xmin:0);var r=Math.min.apply(null,m.map(y=>y.extent.xmin));const u=Math.min.apply(null,m.map(y=>y.extent.ymin)),p=Math.max.apply(null,m.map(y=>y.extent.xmax)),q=Math.max.apply(null,m.map(y=>y.extent.ymax));a={x:Math.round((d.xmin-r)/l),y:Math.round((q-d.ymax)/c)};r={width:Math.round((p- r)/l),height:Math.round((q-u)/c)};l={width:Math.round((d.xmax-d.xmin)/l),height:Math.round((d.ymax-d.ymin)/c)};if(Math.round(r.width/e.pixelBlock.width)*Math.round(r.height/e.pixelBlock.height)!==m.length||0>a.x||0>a.y||r.widthy.pixelBlock);e=Q(e,r,{clipOffset:a,clipSize:l});return{extent:d,pixelBlock:e}};C.remap=function(a,d){if(!I(a))return null;const {width:e,height:l}=a,{inputRanges:c,outputValues:b,outputPixelType:m,noDataRanges:r,allowUnmatched:u, isLastInputRangeInclusive:p}=d;d=a.pixels[0];const q=F.createEmptyBand(m,d.length),y=a.mask,z=new Uint8Array(e*l);y?z.set(y):z.fill(255);const H=a.pixelType.startsWith("f")?1E-6:0;a=c.map(V=>V-H);a[0]=c[0];a[a.length-1]=c[c.length-1]+(p?1E-6:0);var E=c.length/2;const [K,w]=N.getPixelValueRange(m);for(var A=0;Aa[2*T]&&Uw?w:U=r[U]&&P<=r[U+1]){q[G]=0;z[G]=0;break}return new F({width:e,height:l,pixelType:m,pixels:[q],mask:z})};C.remapColor=function(a,d){if(!I(a))return null;a=a.clone();var {pixels:e}=a;const l=a.width*a.height,c=d.length,b=Math.floor(c/2),m=d[Math.floor(b)];e=e[0];let r,u,p,q,y,z,H=!1;const E=new Uint8Array(l),K=new Uint8Array(l),w=new Uint8Array(l);let A=a.mask;const G=4===d[0].mappedColor.length;A||(A=new Uint8Array(l),A.fill(G? 255:1),a.mask=A);for(y=0;yu.value?p=z:q=z;z=Math.floor((p+q)/2);u=d[Math.floor(z)]}H||(r===d[p].value?(u=d[p],H=!0):r===d[q].value?(u=d[q],H=!0):rd[p].value&&(rb||0>d||m>l||e>c||0===b&&0===d&&m===l&&e===c)return a;a.mask||(a.mask=new Uint8Array(l*c));const r=a.mask;for(let u=0;u=e||q=m?0:1}a.updateStatistics();return a};C.split=function(a,d,e=0,l=!0){if(!I(a))return null;const {width:c,height:b}=d;let {width:m,height:r}=a;const u=new Map, p={x:0,y:0};e=1+e;for(let q=0;q{"object"===m.type&&m.resource?.href||(b="water"===m.type?m.color:m.material?m.material.color:null)});return b?new N(b):null}function g(c,b){if(null==b||null==c)return c;c=c.toRgba();c[3]*=b;return new N(c)}function n(c,b,m){if(c=c.symbolLayers){var r=u=>{b=b??u??(null!=m?l:null);return g(b,m)};c.forEach(u=>{if("object"!==u.type||!u.resource?.href||b)if("water"===u.type)u.color=r(u.color);else{const p= r(null!=u.material?u.material.color:null);null==u.material?u.material=new h.Symbol3DMaterial({color:p}):u.material.color=p;null!=m&&"outline"in u&&null!=u.outline?.color&&(u.outline.color=g(u.outline.color,m))}})}}async function k(c,b){(c=c.symbolLayers)&&await x.forEach(c,async m=>D(m,b))}async function D(c,b){switch(c.type){case "extrude":c.size="number"===typeof b[2]?b[2]:0;break;case "icon":case "line":case "text":b=v(b);null!=b&&(c.size=b);break;case "path":const m=a(b,Y.ONES,[c.width,void 0, c.height]);c.width=e(b[0],c.width,1,m);c.height=e(b[2],c.height,1,m);break;case "object":await t(c,b)}}function v(c){for(const b of c)if("number"===typeof b)return b;return null}async function t(c,b){const {resourceSize:m,symbolSize:r}=await d(c),u=a(b,m,r);c.width=e(b[0],r[0],m[0],u);c.depth=e(b[1],r[1],m[1],u);c.height=e(b[2],r[2],m[2],u)}function a(c,b,m){for(let r=0;3>r;r++){const u=c[r];switch(u){case "symbol-value":return c=m[r],null!=c?c/b[r]:1;case "proportional":break;default:if(u&&b[r])return u/ b[r]}}return 1}async function d(c){var {computeObjectLayerResourceSize:b}=await new Promise((y,z)=>C(["./symbolLayerUtils"],y,z));b=await b(c,10);const {width:m,height:r,depth:u}=c;c=[m,u,r];let p=1;for(var q=0;3>q;q++){const y=c[q];if(null!=y){p=y/b[q];break}}for(q=0;3>q;q++)null==c[q]&&(c[q]=b[q]*p);return{resourceSize:b,symbolSize:c}}function e(c,b,m,r){switch(c){case "proportional":return m*r;case "symbol-value":return null!=b?b:m;default:return c}}const l=new N("white");F.applyColorToSymbol= function(c,b,m){if(c&&(b||null!=m))if(b&&=new N(b),I.isSymbol3D(c))n(c,b,m);else if(I.isSymbol2D(c)){if(b=b??c.color)c.color=g(b,m);null!=m&&"outline"in c&&c.outline?.color&&(c.outline.color=g(c.outline.color,m))}};F.applyOpacityToColor=g;F.applyRotationToSymbol=function(c,b,m){c&&null!=b&&(I.isSymbol3D(c)?(c=c.symbolLayers)&&c.forEach(r=>{if(r&&"object"===r.type)switch(m){case "tilt":r.tilt=(r.tilt??0)+b;break;case "roll":r.roll=(r.roll??0)+b;break;default:r.heading=(r.heading??0)+b}}):!I.isSymbol2D(c)|| "simple-marker"!==c.type&&"picture-marker"!==c.type&&"text"!==c.type||(c.angle+=b))};F.applySizesToSymbol=async function(c,b){if(c&&b){if(I.isSymbol3D(c))return k(c,b);if(I.isSymbol2D(c)&&(b=v(b),null!=b))switch(c.type){case "simple-marker":c.size=b;break;case "picture-marker":const m=c.width/c.height;1"bloom"!==b.type).map(b=>b.toJSON());return L.effectFunctionsFromJSON(c)};F.getColorFromSymbol=function(c,b){if(!c)return null;let m=null;I.isSymbol3D(c)?m=f(c):I.isSymbol2D(c)&&(m="cim"===c.type?R.getCIMSymbolColor(c):c.color?new N(c.color):null);return m?g(m,b):null};F.getIconHref=function(c){return c.resource?.href??""};F.getSymbolOutlineSize=function(c){return c?I.isSymbol3D(c)?(c=(c=c.symbolLayers?.at(-1))&& "outline"in c?c?.outline?.size:void 0,null!=c?c:0):X.px2pt(Q.getStroke(c)?.width):0};F.isVolumetricSymbol=function(c){if(null==c||!("symbolLayers"in c)||null==c.symbolLayers)return!1;switch(c.type){case "point-3d":return c.symbolLayers.some(b=>"object"===b.type);case "line-3d":return c.symbolLayers.some(b=>"path"===b.type);case "polygon-3d":return c.symbolLayers.some(b=>"object"===b.type||"extrude"===b.type);default:return!1}};F.symbolHasExtrudeSymbolLayer=function(c){return null!=c&&"polygon-3d"=== c.type&&c.symbolLayers.some(b=>"extrude"===b.type)};Object.defineProperty(F,Symbol.toStringTag,{value:"Module"})})},"esri/symbols/support/cimSymbolUtils":function(){define(["exports","../../Color","../cim/utils"],function(C,F,N){function I(h){h=N.toCIMSymbolJSON(h);if("CIMTextSymbol"===h?.type)return h.height??0;let f=0;if(h?.symbolLayers)for(const g of h.symbolLayers)N.isCIMMarker(g)&&null!=g.size&&g.size>f?f=g.size:N.isCIMStroke(g)&&null!=g.width&&g.width>f?f=g.width:N.isCIMFill(g);return f}function x(h, f,g,n){if(h)if("CIMTextSymbol"===h.type)null!=h.height&&(h.height*=f);else{if(g&&h.effects)for(const k of h.effects)Y(k,f);if(h.symbolLayers)for(const k of h.symbolLayers)switch(k.type){case "CIMPictureMarker":case "CIMVectorMarker":S(k,f,n);break;case "CIMPictureStroke":case "CIMSolidStroke":!n?.preserveOutlineWidth&&k.width&&(k.width*=f);break;case "CIMPictureFill":k.height&&(k.height*=f);k.offsetX&&(k.offsetX*=f);k.offsetY&&(k.offsetY*=f);break;case "CIMHatchFill":x(k.lineSymbol,f,!0,{...n,preserveOutlineWidth:!1}), k.offsetX&&(k.offsetX*=f),k.offsetY&&(k.offsetY*=f),k.separation&&(k.separation*=f)}}}function S(h,f,g){if(h&&(h.markerPlacement&&X(h.markerPlacement,f),h.offsetX&&(h.offsetX*=f),h.offsetY&&(h.offsetY*=f),h.anchorPoint&&"Absolute"===h.anchorPointUnits&&(h.anchorPoint={x:h.anchorPoint.x*f,y:h.anchorPoint.y*f}),h.size=null!=h.size?h.size*f:0,"CIMVectorMarker"===h.type&&h.markerGraphics))for(const n of h.markerGraphics)h.scaleSymbolsProportionally||x(n.symbol,f,!0,g)}function X(h,f){N.isCIMMarkerStrokePlacement(h)&& h.offset&&(h.offset*=f);switch(h.type){case "CIMMarkerPlacementAlongLineRandomSize":case "CIMMarkerPlacementAlongLineSameSize":h.customEndingOffset&&(h.customEndingOffset*=f);h.offsetAlongLine&&(h.offsetAlongLine*=f);if(h.placementTemplate&&h.placementTemplate.length){var g=h.placementTemplate.map(n=>n*f);h.placementTemplate=g}break;case "CIMMarkerPlacementAlongLineVariableSize":h.maxRandomOffset&&(h.maxRandomOffset*=f);h.placementTemplate&&h.placementTemplate.length&&(g=h.placementTemplate.map(n=> n*f),h.placementTemplate=g);break;case "CIMMarkerPlacementOnLine":h.startPointOffset&&(h.startPointOffset*=f);break;case "CIMMarkerPlacementAtExtremities":h.offsetAlongLine&&(h.offsetAlongLine*=f);break;case "CIMMarkerPlacementAtRatioPositions":h.beginPosition&&(h.beginPosition*=f);h.endPosition&&(h.endPosition*=f);break;case "CIMMarkerPlacementPolygonCenter":h.offsetX&&(h.offsetX*=f);h.offsetY&&(h.offsetY*=f);break;case "CIMMarkerPlacementInsidePolygon":h.offsetX&&(h.offsetX*=f),h.offsetY&&(h.offsetY*= f),h.stepX&&(h.stepX*=f),h.stepY&&(h.stepY*=f)}}function Y(h,f){switch(h.type){case "CIMGeometricEffectArrow":case "CIMGeometricEffectDonut":h.width&&(h.width*=f);break;case "CIMGeometricEffectBuffer":h.size&&(h.size*=f);break;case "CIMGeometricEffectCut":h.beginCut&&(h.beginCut*=f);h.endCut&&(h.endCut*=f);h.middleCut&&(h.middleCut*=f);break;case "CIMGeometricEffectDashes":h.customEndingOffset&&(h.customEndingOffset*=f);h.offsetAlongLine&&(h.offsetAlongLine*=f);if(h.dashTemplate&&h.dashTemplate.length){const g= h.dashTemplate.map(n=>n*f);h.dashTemplate=g}break;case "CIMGeometricEffectExtension":case "CIMGeometricEffectJog":case "CIMGeometricEffectRadial":h.length&&(h.length*=f);break;case "CIMGeometricEffectMove":h.offsetX&&(h.offsetX*=f);h.offsetY&&(h.offsetY*=f);break;case "CIMGeometricEffectOffset":case "CIMGeometricEffectOffsetTangent":h.offset&&(h.offset*=f);break;case "CIMGeometricEffectRegularPolygon":h.radius&&(h.radius*=f);break;case "CIMGeometricEffectTaperedPolygon":h.fromWidth&&(h.fromWidth*= f);h.length&&(h.length*=f);h.toWidth&&(h.toWidth*=f);break;case "CIMGeometricEffectWave":h.amplitude&&(h.amplitude*=f),h.period&&(h.period*=f)}}function L(h,f){if(h){var g="CIMTextSymbol"===h.type?h.symbol:h;h="CIMPolygonSymbol"===h.type;if(g?.symbolLayers)for(const n of g.symbolLayers)if(!(n.colorLocked||h&&(N.isCIMStroke(n)||N.isCIMMarker(n)&&n.markerPlacement&&N.isCIMMarkerStrokePlacement(n.markerPlacement))))switch(n.type){case "CIMPictureMarker":case "CIMPictureStroke":case "CIMPictureFill":n.tintColor&& R(f,n.tintColor);break;case "CIMVectorMarker":n.markerGraphics?.forEach(k=>{L(k.symbol,f)});break;case "CIMSolidStroke":case "CIMSolidFill":R(f,n.color);break;case "CIMHatchFill":L(n.lineSymbol,f)}}}function R(h,f){for(const g of h)if(g.join(".")===f.join("."))return;h.push(f)}function Q(h,f,g){if(h){var n="CIMTextSymbol"===h.type?h.symbol:h;h="CIMPolygonSymbol"===n?.type;if(n?.symbolLayers)for(const k of n.symbolLayers)if(!k.colorLocked){if(h)if(g){if({layersToColor:n}=g,(N.isCIMStroke(k)||N.isCIMMarker(k)&& k.markerPlacement&&N.isCIMMarkerStrokePlacement(k.markerPlacement))&&"fill"===n||N.isCIMFill(k)&&"outline"===n)continue}else if(N.isCIMStroke(k)||N.isCIMMarker(k)&&k.markerPlacement&&N.isCIMMarkerStrokePlacement(k.markerPlacement))continue;n=f.toArray();switch(k.type){case "CIMPictureMarker":case "CIMPictureStroke":case "CIMPictureFill":k.tintColor=n;break;case "CIMVectorMarker":k.markerGraphics?.forEach(D=>{Q(D.symbol,f,g)});break;case "CIMSolidStroke":case "CIMSolidFill":k.color=n;break;case "CIMHatchFill":Q(k.lineSymbol, f,g)}}}}C.applyCIMSymbolColor=function(h,f,g){f instanceof F||(f=new F(f));(h=N.toCIMSymbolJSON(h))&&Q(h,f,g)};C.applyCIMSymbolRotation=function(h,f,g=!1){h=N.toCIMSymbolJSON(h);g&&(f=360-f);if("CIMTextSymbol"===h?.type)h.angle=f;else if("CIMPointSymbol"===h?.type&&h.symbolLayers){g=f-(h.angle||0);for(const n of h.symbolLayers)if(N.isCIMMarker(n)){let k=n.rotation||0;k=n.rotateClockwise?k-g:k+g;n.rotation=k}h.angle=f}};C.getCIMSymbolColor=function(h){h=N.toCIMSymbolJSON(h);const f=[];L(h,f);return f.length? new F(N.normalizeAlpha(f[0])):null};C.getCIMSymbolRotation=function(h,f=!1){h=N.toCIMSymbolJSON(h);return"CIMTextSymbol"===h?.type||"CIMPointSymbol"===h?.type?(h=h.angle,null!=h&&f?360-h:h??0):0};C.getCIMSymbolSize=I;C.getCIMSymbolType=function(h){h=N.toCIMSymbolJSON(h);if(!h)return null;switch(h.type){case "CIMPointSymbol":return"CIMPointSymbol";case "CIMLineSymbol":return"CIMLineSymbol";case "CIMPolygonSymbol":return"CIMPolygonSymbol";case "CIMTextSymbol":return"CIMTextSymbol";case "CIMMeshSymbol":return"CIMMeshSymbol"; default:return null}};C.scaleCIMMarker=S;C.scaleCIMSymbol=x;C.scaleCIMSymbolTo=function(h,f,g){if(h){var n=N.toCIMSymbolJSON(h);h=I(h);if(0===h){if(n)if("CIMTextSymbol"===n.type)n.height=f;else if(n.symbolLayers)for(const k of n.symbolLayers)switch(k.type){case "CIMPictureMarker":case "CIMVectorMarker":k.size=f;break;case "CIMPictureStroke":case "CIMSolidStroke":k.width=f}}else x(n,f/h,!1,g)}};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/symbols/support/gfxUtils":function(){define("exports ../../assets ../../Color ../../request ../../core/LRUCache ../../core/screenUtils ./cimSymbolUtils".split(" "), function(C,F,N,I,x,S,X){function Y(f){if(!f)return null;let g=null;switch(f.type){case "simple-fill":case "picture-fill":case "simple-marker":g=Y(f.outline);break;case "simple-line":const n=S.pt2px(f.width);null!=f.style&&"none"!==f.style&&0!==n&&(g={color:f.color,style:h(f.style),width:n,cap:f.cap,join:"miter"===f.join?S.pt2px(f.miterLimit):f.join},g.dashArray=L(g).join(",")||"none");break;default:g=null}return g}function L(f){if(!f?.style)return[];const {dashArray:g,style:n,width:k}=f;if("string"=== typeof g&&"none"!==g)return g.split(",").map(t=>Number(t));const D=k??0,v=R.has(n)?R.get(n).map(t=>t*D):[];if("butt"!==f.cap)for(const [t,a]of v.entries())v[t]=1===t%2?a+D:Math.max(a-D,1);return v}const R=new Map([["dash",[4,3]],["dashdot",[4,3,1,3]],["dot",[1,3]],["longdash",[8,3]],["longdashdot",[8,3,1,3]],["longdashdotdot",[8,3,1,3,1,3]],["shortdash",[4,1]],["shortdashdot",[4,1,1,1]],["shortdashdotdot",[4,1,1,1,1,1]],["shortdot",[1,1]],["solid",[]]]),Q=new x.LRUCache(1E3),h=(()=>{const f={};return g=> {if(f[g])return f[g];const n=g.replaceAll("-","");return f[g]=n}})();N=new N([128,128,128]);C.defaultThematicColor=N;C.dekebabifyLineStyle=h;C.getDashArray=L;C.getFill=function(f){const g=f.style;let n=null;if(f)switch(f.type){case "simple-marker":"cross"!==g&&"x"!==g&&(n=f.color);break;case "simple-fill":g&&"solid"!==g?"none"!==g&&(n={type:"pattern",x:0,y:0,src:F.getAssetUrl(`esri/symbols/patterns/${g}.png`),width:5,height:5}):n=f.color;break;case "picture-fill":n={type:"pattern",src:f.url,width:S.pt2px(f.width)* f.xscale,height:S.pt2px(f.height)*f.yscale,x:S.pt2px(f.xoffset),y:S.pt2px(f.yoffset)};break;case "text":n=f.color;break;case "cim":n=X.getCIMSymbolColor(f)}return n};C.getPatternUrlWithColor=function(f,g){const n=f+"-"+g;return void 0!==Q.get(n)?Promise.resolve(Q.get(n)):I(f,{responseType:"image"}).then(k=>{k=k.data;const D=k.naturalWidth,v=k.naturalHeight,t=document.createElement("canvas");t.width=D;t.height=v;const a=t.getContext("2d");a.fillStyle=g;a.fillRect(0,0,D,v);a.globalCompositeOperation= "destination-in";a.drawImage(k,0,0);k=t.toDataURL();Q.put(n,k);return k})};C.getStroke=Y;Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/ExportImageServiceParameters":function(){define("exports ../../chunks/tslib.es6 ../../core/JSONSupport ../../core/accessorSupport/decorators/property ../../core/has ../../core/Logger ../../core/RandomLCG ../../core/accessorSupport/decorators/subclass ../../core/accessorSupport/decorators/writer ./imageryRendererUtils ./MosaicRule ./rasterEnums ./RasterFunction".split(" "), function(C,F,N,I,x,S,X,Y,L,R,Q,h,f){C.ExportImageServiceParameters=class extends N.JSONSupport{constructor(){super(...arguments);this.layer=null;this.pixelType=this.compression=void 0;this.lercVersion=2}get adjustAspectRatio(){return this.layer.adjustAspectRatio}writeAdjustAspectRatio(g,n,k){10.3>this.layer.version||(n[k]=g)}get bandIds(){return this.layer.bandIds}get compressionQuality(){return this.layer.compressionQuality}writeCompressionQuality(g,n,k){this.format&&this.format.toLowerCase().includes("jpg")&& null!=g&&(n[k]=g)}get compressionTolerance(){return this.layer.compressionTolerance}writeCompressionTolerance(g,n,k){"lerc"===this.format&&null!=g&&(n[k]=g)}get format(){return"vector-field"===this.layer.renderer?.type?"lerc":this.layer.format}get interpolation(){return this.layer.interpolation}get noData(){return this.layer.noData}get noDataInterpretation(){return this.layer.noDataInterpretation}writeLercVersion(g,n,k){"lerc"===this.format&&10.5<=this.layer.version&&(n[k]=g)}get version(){const g= this.layer;g.commitProperty("bandIds");g.commitProperty("format");g.commitProperty("compressionQuality");g.commitProperty("compressionTolerance");g.commitProperty("interpolation");g.commitProperty("noData");g.commitProperty("noDataInterpretation");g.commitProperty("mosaicRule");g.commitProperty("rasterFunction");g.commitProperty("adjustAspectRatio");g.commitProperty("pixelFilter");g.commitProperty("definitionExpression");g.commitProperty("multidimensionalSubset");return(this._get("version")||0)+1}set version(g){this._set("version", g)}get mosaicRule(){var g=this.layer;let n=g.mosaicRule;g=g.definitionExpression;n?g&&g!==n.where&&(n=n.clone(),n.where=g):g&&(n=new Q({where:g}));return n}get rasterFunction(){const g=this.layer;var {rasterFunction:n}=g;const k=g.pixelFilter,D=!g.format||g.format.includes("jpg")||g.format.includes("png");n=this._addResampleRasterFunction(n);var v=g.multidimensionalSubset?.areaOfInterest;v&&(v=new f({functionName:"Clip",functionArguments:{ClippingGeometry:v.toJSON(),ClippingType:1}}),n=R.combineRenderingRules(v, n));D&&!k&&"vector-field"!==g.renderer?.type&&(n=this.combineRendererWithRenderingRule(n));return n}combineRendererWithRenderingRule(g){const n=this.layer,{rasterInfo:k,renderer:D}=n;g=g||n.rasterFunction;return D&&R.isSupportedRendererType(D)?R.combineRenderingRules(R.convertRendererToRenderingRule(D,{rasterAttributeTable:k.attributeTable,pixelType:k.pixelType,dataType:k.dataType,bandNames:k.bandInfos.map(({name:v})=>v),convertColorRampToColormap:10.6>n.version,convertToRFT:!!g?.rasterFunctionDefinition, bandCount:k.bandCount}),g):g}_addResampleRasterFunction(g){if("vector-field"!==this.layer.renderer?.type||"Resample"===g?.functionName)return g;let n=new f({functionName:"Resample",functionArguments:{ResamplingType:"esriImageServiceDataTypeVector-UV"===this.layer.serviceDataType?7:10,InputCellSize:this.layer.serviceRasterInfo.pixelSize}});n=g?.rasterFunctionDefinition?new f({rasterFunctionDefinition:R.convertRenderingRuleToRFT(n)}):n;return R.combineRenderingRules(n,g)}};F.__decorate([I.property()], C.ExportImageServiceParameters.prototype,"layer",void 0);F.__decorate([I.property({json:{write:!0}})],C.ExportImageServiceParameters.prototype,"adjustAspectRatio",null);F.__decorate([L.writer("adjustAspectRatio")],C.ExportImageServiceParameters.prototype,"writeAdjustAspectRatio",null);F.__decorate([I.property({json:{write:!0}})],C.ExportImageServiceParameters.prototype,"bandIds",null);F.__decorate([I.property({json:{write:!0}})],C.ExportImageServiceParameters.prototype,"compression",void 0);F.__decorate([I.property({json:{write:!0}})], C.ExportImageServiceParameters.prototype,"compressionQuality",null);F.__decorate([L.writer("compressionQuality")],C.ExportImageServiceParameters.prototype,"writeCompressionQuality",null);F.__decorate([I.property({json:{write:!0}})],C.ExportImageServiceParameters.prototype,"compressionTolerance",null);F.__decorate([L.writer("compressionTolerance")],C.ExportImageServiceParameters.prototype,"writeCompressionTolerance",null);F.__decorate([I.property({json:{write:!0}})],C.ExportImageServiceParameters.prototype, "format",null);F.__decorate([I.property({type:String,json:{read:{reader:h.interpolationKebab.read},write:{writer:h.interpolationKebab.write}}})],C.ExportImageServiceParameters.prototype,"interpolation",null);F.__decorate([I.property({json:{write:!0}})],C.ExportImageServiceParameters.prototype,"noData",null);F.__decorate([I.property({type:String,json:{read:{reader:h.noDataInterpretationKebab.read},write:{writer:h.noDataInterpretationKebab.write}}})],C.ExportImageServiceParameters.prototype,"noDataInterpretation", null);F.__decorate([I.property({json:{write:!0}})],C.ExportImageServiceParameters.prototype,"pixelType",void 0);F.__decorate([I.property({json:{write:!0}})],C.ExportImageServiceParameters.prototype,"lercVersion",void 0);F.__decorate([L.writer("lercVersion")],C.ExportImageServiceParameters.prototype,"writeLercVersion",null);F.__decorate([I.property({type:Number})],C.ExportImageServiceParameters.prototype,"version",null);F.__decorate([I.property({json:{write:!0}})],C.ExportImageServiceParameters.prototype, "mosaicRule",null);F.__decorate([I.property({json:{write:!0,name:"renderingRule"}})],C.ExportImageServiceParameters.prototype,"rasterFunction",null);C.ExportImageServiceParameters=F.__decorate([Y.subclass("esri.layers.support.ExportImageServiceParameters")],C.ExportImageServiceParameters);Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/imageryRendererUtils":function(){define("exports ../../core/lang ./RasterFunction ./rasterFormats/pixelRangeUtils ./rasterFunctions/rasterFunctionSchema ../../renderers/support/colorRampUtils ../../renderers/support/stretchRendererUtils ../../renderers/visualVariables/SizeVariable".split(" "), function(C,F,N,I,x,S,X,Y){function L(b,m){for(const r in b)"raster"===r.toLowerCase()&&("RasterFunctionVariable"===b[r].type?(b[r]=m.rasterFunctionDefinition,b[r].type="RasterFunctionTemplate"):"RasterFunctionTemplate"===b[r].type&&L(b[r].arguments,m))}function R(b){const m=F.clone(x.schema[b.functionName+"Function"]);b=b.functionArguments;for(const r in b)"raster"===r.toLowerCase()?(m.arguments[r]=R(b[r]),m.arguments[r].type="RasterFunctionTemplate"):"colormap"===r.toLowerCase()?(m.arguments[r].value= a(b[r]),m.arguments.ColorSchemeType.value=0):m.arguments[r].value=b[r];return m}function Q(b){const m=b?.Raster??b?.raster;return m&&"esri.layers.support.RasterFunction"===m.declaredClass?Q(m.functionArguments):b}function h(b,m){const r=new N;r.functionName="VectorFieldRenderer";const {dataType:u,bandNames:p}=m,q="vector-uv"===u;let y;if(p&&2===p.length){var z=p.map(w=>w.toLowerCase());y=z.indexOf("magnitude");z=z.indexOf("direction")}if(-1===y||null===y)y=0,z=1;const H="arithmetic"===b.rotationType? 1:2,E="flow-from"===b.flowRepresentation?0:1,K=b.visualVariables?b.visualVariables.find(w=>"Magnitude"===w.field):new Y;b={magnitudeBandID:y,directionBandID:z,isUVComponents:q,referenceSystem:H,massFlowAngleRepresentation:E,symbolTileSize:50,symbolTileSizeUnits:100,calculationMethod:"Vector Average",symbologyName:e[b.style.toLowerCase().replace("-","_")],minimumMagnitude:K.minDataValue,maximumMagnitude:K.maxDataValue,minimumSymbolSize:K.minSize,maximumSymbolSize:K.maxSize};r.functionArguments=b;b= R(r);return m.convertToRFT?N.fromJSON({rasterFunctionDefinition:b}):r}function f(b,m){const r=m.convertToRFT,u=new N;u.functionName="Stretch";var p=c[X.stretchTypeJSONDict.toJSON(b.stretchType)],q=t(b.statistics??[]);q={StretchType:p,Statistics:q,DRA:b.dynamicRangeAdjustment,UseGamma:b.useGamma,Gamma:b.gamma,ComputeGamma:b.computeGamma};null!=b.outputMin&&(q.Min=b.outputMin);null!=b.outputMax&&(q.Max=b.outputMax);p===c.standardDeviation?(q.NumberOfStandardDeviations=b.numberOfStandardDeviations,u.outputPixelType= "u8"):p===c.percentClip?(q.MinPercent=b.minPercent,q.MaxPercent=b.maxPercent,u.outputPixelType="u8"):p===c.minMax?u.outputPixelType="u8":p===c.sigmoid&&(q.SigmoidStrengthLevel=b.sigmoidStrengthLevel);u.functionArguments=q;u.variableName="Raster";if(b.colorRamp){q=b.colorRamp;p=new N;if(r)p.functionArguments={ColorRamp:S.getRFxArgColorRampValue(q)};else{const y=S.getColorRampName(q,!0);y?p.functionArguments={colorRampName:y}:!m.convertColorRampToColormap||"algorithmic"!==q.type&&"multipart"!==q.type? (b=b.colorRamp.toJSON(),"algorithmic"===b.type?b.algorithm=b.algorithm||"esriCIELabAlgorithm":"multipart"===b.type&&b.colorRamps?.length&&b.colorRamps.forEach(z=>z.algorithm=z.algorithm||"esriCIELabAlgorithm"),p.functionArguments={colorRamp:b}):p.functionArguments={Colormap:S.convertColorRampToColormap(q)}}p.variableName="Raster";p.functionName="Colormap";p.functionArguments.Raster=u;return r?new N({rasterFunctionDefinition:R(p)}):p}return r?new N({rasterFunctionDefinition:R(u)}):u}function g(b,m){const r= [],u=[],p=[],q=[],{pixelType:y,rasterAttributeTable:z}=m,H=null==z?null:z.features,E=k(z);if(E&&H&&Array.isArray(H)&&b.classBreakInfos){b.classBreakInfos.forEach((G,P)=>{const U=G.symbol?.color;let V;U?.a&&null!=G.minValue&&null!=G.maxValue&&H.forEach(T=>{null!=G.minValue&&null!=G.maxValue&&(V=T.attributes[b.field],(V>=G.minValue&&V=G.minValue)&&q.push([T.attributes[E],U.r,U.g,U.b]))})});var K=y?n(q,y):q,w=new N;w.functionName="Colormap";w.functionArguments= {};w.functionArguments.Colormap=K;w.variableName="Raster";return m.convertToRFT?new N({rasterFunctionDefinition:R(w)}):w}b.classBreakInfos.forEach((G,P)=>{if(null!=G.minValue&&null!=G.maxValue){var U=G.symbol&&G.symbol.color;U?.a?(0===P?r.push(G.minValue,G.maxValue+1E-4):r.push(G.minValue+1E-4,G.maxValue+1E-4),u.push(P),q.push([P,U.r,U.g,U.b])):p.push(G.minValue,G.maxValue)}});K=y?n(q,y):q;w=new N;w.functionName="Remap";w.functionArguments={InputRanges:r,OutputValues:u,NoDataRanges:p};w.variableName= "Raster";const A=new N;A.functionName="Colormap";A.functionArguments={Colormap:K,Raster:w};return m.convertToRFT?new N({rasterFunctionDefinition:R(A)}):A}function n(b,m){(m=d.has(m)?I.getPixelValueRange(m):null)&&b.push([Math.floor(m[0]-1),0,0,0],[Math.ceil(m[1]+1),0,0,0]);return b}function k(b){if(null!=b)return{fields:b}=b,b?.find(m=>m?.name&&"value"===m.name.toLowerCase())?.name}function D(b,m){const r=[],{pixelType:u,rasterAttributeTable:p}=m;var q=null==p?null:p.features;const y=k(p),z=b.defaultSymbol?.color?.toRgb(); var H=b.uniqueValueInfos;if(H)if(!q)for(b=0;b{const G=A.value;A=v(A);null!=G&&A?.a&&K.set(String(G),A.toRgb())});const w=b.field;w&&q.forEach(({attributes:A})=>{const G=A[y];(A=K.get(String(A[w])))?r.push([G,...A]):z&&r.push([G,...z])})}H=u?n(r,u):r;b=new N;b.functionName="Colormap";b.functionArguments={};b.functionArguments.Colormap=H;b.variableName="Raster"; return m.convertToRFT?new N({rasterFunctionDefinition:R(b)}):b}function v(b){return"polygon-3d"===b.symbol?.type?b.symbol.symbolLayers?.find(m=>"fill"===m.type)?.material?.color:b.symbol?.color}function t(b){const m=[];b?.forEach(r=>{Array.isArray(r)?m.push(r):null!=r.min&&null!=r.max&&m.push([r.min,r.max,r.avg||0,r.stddev||0])});return m}function a(b){const m=[],r=[];b.forEach(u=>{m.push(u[0]);r.push(S.convertRGBATo32Bit([...u.slice(1),255]))});return{type:"RasterColormap",values:m,colors:r}}const d= new Set("u1 u2 u4 u8 s8 u16 s16".split(" ")),e={simple_scalar:"Simple Scalar",wind_barb:"Wind Barb",single_arrow:"Single Arrow",beaufort_kn:"Beaufort Wind (Knots)",beaufort_m:"Beaufort Wind (MetersPerSecond)",ocean_current_m:"Ocean Current (MetersPerSecond)",ocean_current_kn:"Ocean Current (Knots)"},l=new Set("raster-stretch unique-value class-breaks raster-shaded-relief vector-field raster-colormap".split(" ")),c={none:0,standardDeviation:3,histogramEqualization:4,minMax:5,percentClip:6,sigmoid:9}; C.combineRenderingRules=function(b,m){if(!b||!m)return F.clone(b||m);b=F.clone(b);if(b.functionDefinition&&m.rasterFunctionDefinition){const r=m.rasterFunctionDefinition;if(r.thumbnail||r.thumbnailEx)r.thumbnail=r.thumbnailEx=void 0;L(b.functionDefinition.arguments,m);b.rasterFunctionDefinition=b.functionDefinition.toJSON()}else"none"!==m.functionName?.toLowerCase()&&(Q(b.functionArguments).Raster=m);return b};C.convertRendererToRenderingRule=function(b,m){m=m||{};switch(b.type){case "raster-stretch":return f(b, m);case "class-breaks":return g(b,m);case "unique-value":return D(b,m);case "raster-colormap":var r=m;(m=b.extractColormap())&&0!==m.length?({pixelType:b}=r,b=b?n(m,b):m,m=new N,m.functionName="Colormap",m.functionArguments={},m.functionArguments.Colormap=b,b=r.convertToRFT?new N({rasterFunctionDefinition:R(m)}):m):b=null;return b;case "vector-field":return h(b,m);case "raster-shaded-relief":r=m.convertToRFT;if("elevation"!==m.dataType&&("generic"!==m.dataType||1!==m.bandCount||"s16"!==m.pixelType&& "s32"!==m.pixelType&&"f32"!==m.pixelType&&"f64"!==m.pixelType))b=new N;else{m=new N;m.functionName="Hillshade";var u="traditional"===b.hillshadeType?0:1,p="none"===b.scalingType?1:3,q={HillshadeType:u,SlopeType:p,ZFactor:b.zFactor};0===u&&(q.Azimuth=b.azimuth,q.Altitude=b.altitude);3===p&&(q.PSPower=b.pixelSizePower,q.PSZFactor=b.pixelSizeFactor);m.functionArguments=q;m.variableName="Raster";b.colorRamp&&(m.functionName="ShadedRelief",r?q.ColorRamp=S.getRFxArgColorRampValue(b.colorRamp):q.Colormap= S.convertColorRampToColormap(b.colorRamp));b=r?new N({rasterFunctionDefinition:R(m)}):m}return b;case "flow":throw Error("Unsupported rendering rule.");}};C.convertRenderingRuleToRFT=R;C.isSupportedRendererType=function(b){return l.has(b.type)};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/rasterFunctions/rasterFunctionSchema":function(){define(["exports"],function(C){C.schema={StretchFunction:{arguments:{ComputeGamma:{isDataset:!1,isPublic:!1,name:"ComputeGamma", type:"RasterFunctionVariable",value:!1},DRA:{isDataset:!1,isPublic:!1,name:"DRA",type:"RasterFunctionVariable",value:!1},EstimateStatsHistogram:{isDataset:!1,isPublic:!1,name:"EstimateStatsHistogram",type:"RasterFunctionVariable",value:!1},Gamma:{displayName:"Gamma",isDataset:!1,isPublic:!1,name:"Gamma",type:"RasterFunctionVariable"},Histograms:{isDataset:!1,isPublic:!1,name:"Histograms",type:"RasterFunctionVariable"},Max:{isDataset:!1,isPublic:!1,name:"Max",type:"RasterFunctionVariable",value:255}, MaxPercent:{isDataset:!1,isPublic:!1,name:"MaxPercent",type:"RasterFunctionVariable",value:.5},Min:{isDataset:!1,isPublic:!1,name:"Min",type:"RasterFunctionVariable",value:0},MinPercent:{isDataset:!1,isPublic:!1,name:"MinPercent",type:"RasterFunctionVariable",value:.25},NumberOfStandardDeviations:{isDataset:!1,isPublic:!1,name:"NumberOfStandardDeviation",type:"RasterFunctionVariable",value:2},Raster:{isDataset:!0,isPublic:!1,name:"Raster",type:"RasterFunctionVariable"},SigmoidStrengthLevel:{isDataset:!1, isPublic:!1,name:"SigmoidStrengthLevel",type:"RasterFunctionVariable",value:2},Statistics:{isDataset:!1,isPublic:!1,name:"Statistics",type:"RasterFunctionVariable"},StretchType:{isDataset:!1,isPublic:!1,name:"StretchType",type:"RasterFunctionVariable",value:0},type:"StretchFunctionArguments",UseGamma:{isDataset:!1,isPublic:!1,name:"UseGamma",type:"RasterFunctionVariable",value:!1}},description:"Enhances an image by adjusting the range of values displayed. This does not alter the underlying pixel values. If a pixel has a value outside of the specified range, it will appear as either the minimum or maximum value.", function:{description:"Enhances an image by adjusting the range of values displayed. This does not alter the underlying pixel values. If a pixel has a value outside of the specified range, it will appear as either the minimum or maximum value.",name:"Stretch",pixelType:"UNKNOWN",type:"StretchFunction"},functionType:0,name:"Stretch",thumbnail:""},RemapFunction:{name:"Remap",description:"Changes pixel values by assigning new values to ranges of pixel values or using an external table.",function:{type:"RemapFunction", pixelType:"UNKNOWN",name:"Remap",description:"Changes pixel values by assigning new values to ranges of pixel values or using an external table."},arguments:{Raster:{name:"Raster",isPublic:!1,isDataset:!0,type:"RasterFunctionVariable"},UseTable:{name:"UseTable",isPublic:!1,isDataset:!1,value:!1,type:"RasterFunctionVariable"},InputRanges:{name:"InputRanges",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable",displayName:"Input Ranges"},OutputValues:{name:"OutputValues",isPublic:!1,isDataset:!1, type:"RasterFunctionVariable",displayName:"Output Values"},NoDataRanges:{name:"NoDataRanges",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable",displayName:"NoData Ranges"},Table:{name:"Table",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},InputField:{name:"InputField",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},OutputField:{name:"OutputField",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},InputMaxField:{name:"InputMaxField",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"}, RemapTableType:{name:"RemapTableType",isPublic:!1,isDataset:!1,value:1,type:"RasterFunctionVariable"},AllowUnmatched:{name:"AllowUnmatched",isPublic:!1,isDataset:!1,value:!0,type:"RasterFunctionVariable"},type:"RemapFunctionArguments"},functionType:0,thumbnail:""},ColormapFunction:{name:"Colormap",description:"Changes pixel values to display the raster data as either a grayscale or a red, green, blue (RGB) image, based on a colormap or a color ramp.",function:{type:"ColormapFunction",pixelType:"UNKNOWN", name:"Colormap",description:"Changes pixel values to display the raster data as either a grayscale or a red, green, blue (RGB) image, based on a colormap or a color ramp."},arguments:{Raster:{name:"Raster",isPublic:!1,isDataset:!0,type:"RasterFunctionVariable"},ColorSchemeType:{name:"ColorSchemeType",isPublic:!1,isDataset:!1,value:1,type:"RasterFunctionVariable"},Colormap:{name:"Colormap",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},ColormapName:{name:"ColormapName",isPublic:!1,isDataset:!1, value:"Gray",type:"RasterFunctionVariable"},ColorRamp:{name:"ColorRamp",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},type:"ColormapFunctionArguments"},functionType:0,thumbnail:""},ShadedReliefFunction:{name:"Shaded Relief",description:"Creates a multiband, color coded, 3D representation of the surface, with the sun's relative position taken into account for shading the image.",function:{type:"ShadedReliefFunction",pixelType:"UNKNOWN",name:"Shaded Relief",description:"Creates a multiband, color coded, 3D representation of the surface, with the sun's relative position taken into account for shading the image."}, arguments:{Raster:{name:"Raster",isPublic:!1,isDataset:!0,type:"RasterFunctionVariable"},ColorSchemeType:{name:"ColorSchemeType",isPublic:!1,isDataset:!1,value:1,type:"RasterFunctionVariable"},ColorRamp:{name:"ColorRamp",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},HillshadeType:{name:"HillshadeType",isPublic:!1,isDataset:!1,value:0,type:"RasterFunctionVariable"},Colormap:{name:"Colormap",isPublic:!1,isDataset:!1,type:"RasterFunctionVariable"},Azimuth:{name:"Azimuth",isPublic:!1,isDataset:!1, value:315,type:"RasterFunctionVariable"},Altitude:{name:"Altitude",isPublic:!1,isDataset:!1,value:45,type:"RasterFunctionVariable"},SlopeType:{name:"SlopeType",isPublic:!1,isDataset:!1,value:1,type:"RasterFunctionVariable"},ZFactor:{name:"ZFactor",isPublic:!1,isDataset:!1,value:1,type:"RasterFunctionVariable"},PSPower:{name:"PSPower",isPublic:!1,isDataset:!1,value:.664,type:"RasterFunctionVariable"},PSZFactor:{name:"PSZFactor",isPublic:!1,isDataset:!1,value:.024,type:"RasterFunctionVariable"},RemoveEdgeEffect:{name:"RemoveEdgeEffect", isPublic:!1,isDataset:!1,value:!1,type:"RasterFunctionVariable"},type:"ShadedReliefFunctionArguments"},functionType:0,thumbnail:""},HillshadeFunction:{name:"Hillshade",description:"Creates a 3D representation of the surface, with the sun's relative position taken into account for shading the image",function:{type:"HillshadeFunction",pixelType:"UNKNOWN",name:"Hillshade",description:"Creates a 3D representation of the surface, with the sun's relative position taken into account for shading the image"}, arguments:{DEM:{name:"DEM",isPublic:!1,isDataset:!0,type:"RasterFunctionVariable"},HillshadeType:{name:"HillshadeType",isPublic:!1,isDataset:!1,value:0,type:"RasterFunctionVariable"},Azimuth:{name:"Azimuth",isPublic:!1,isDataset:!1,value:315,type:"RasterFunctionVariable"},Altitude:{name:"Altitude",isPublic:!1,isDataset:!1,value:45,type:"RasterFunctionVariable"},SlopeType:{name:"SlopeType",isPublic:!1,isDataset:!1,value:1,type:"RasterFunctionVariable"},ZFactor:{name:"ZFactor",isPublic:!1,isDataset:!1, value:1,type:"RasterFunctionVariable"},PSPower:{name:"PSPower",isPublic:!1,isDataset:!1,value:.664,type:"RasterFunctionVariable"},PSZFactor:{name:"PSZFactor",isPublic:!1,isDataset:!1,value:.024,type:"RasterFunctionVariable"},RemoveEdgeEffect:{name:"RemoveEdgeEffect",isPublic:!1,isDataset:!1,value:!1,type:"RasterFunctionVariable"},type:"HillshadeFunctionArguments"},functionType:0,thumbnail:""},ResampleFunction:{name:"Resample",description:"Changes the cell size of a raster.",function:{type:"ResampleFunction", pixelType:"UNKNOWN",name:"Resample",description:"Changes the cell size of a raster."},arguments:{Raster:{name:"Raster",isPublic:!1,isDataset:!0,type:"RasterFunctionVariable"},ResamplingType:{name:"ResamplingType",isPublic:!1,isDataset:!1,value:0,type:"RasterFunctionVariable"},InputCellSize:{name:"InputCellsize",isPublic:!1,isDataset:!1,value:{x:0,y:0},type:"RasterFunctionVariable"},OutputCellSize:{name:"OutputCellsize",isPublic:!1,isDataset:!1,value:{x:0,y:0},type:"RasterFunctionVariable"},type:"ResampleFunctionArguments"}, functionType:0,thumbnail:""}};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/imageBitmapUtils":function(){define(["exports","../../core/Error","../../core/promiseUtils"],function(C,F,N){C.createBitmap=async function(I,x,S){let X;try{X=await createImageBitmap(I)}catch(Y){throw new F("request:server",`Unable to load ${x}`,{url:x,error:Y});}N.throwIfAborted(S);return X};C.createTileBitmap=async function(I,x,S,X,Y){let L;try{L=await createImageBitmap(I)}catch(R){throw new F("request:server", `Unable to load tile ${x}/${S}/${X}`,{error:R,level:x,row:S,col:X});}N.throwIfAborted(Y);return L};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/MultidimensionalSubset":function(){define("../../chunks/tslib.es6 ../../geometry ../../core/JSONSupport ../../core/accessorSupport/decorators/property ../../core/has ../../core/Logger ../../core/RandomLCG ../../core/accessorSupport/decorators/subclass ../../geometry/Extent ../../geometry/Polygon ../../geometry/support/jsonUtils ./DimensionalDefinition ../../geometry/Geometry".split(" "), function(C,F,N,I,x,S,X,Y,L,R,Q,h,f){var g;F={base:f,key:"type",typeMap:{extent:L,polygon:R}};N=g=class extends N.JSONSupport{constructor(n){super(n);this.subsetDefinitions=this.areaOfInterest=null}get dimensions(){var {subsetDefinitions:n}=this;if(null==n||0===n.length)return[];const k=new Map;n.forEach(D=>{if(D.dimensionName){if(Array.isArray(D.values[0])){var v=D.values;var t=v[0][0];v=v[D.values.length-1][1]}else v=D.values,t=v[0],v=v[D.values.length-1];k.has(D.dimensionName)?(D=k.get(D.dimensionName), D[0]=Math.min(t,D[0]),D[1]=Math.max(v,D[1])):k.set(D.dimensionName,[t,v])}});n=[];for(const D of k)n.push({name:D[0],extent:D[1]});return n}get variables(){const {subsetDefinitions:n}=this;if(null==n||0===n.length)return[];const k=new Set;n.forEach(D=>{D.variableName&&k.add(D.variableName)});return[...k]}clone(){const n=this.subsetDefinitions?.map(D=>D.clone()),k=this.areaOfInterest?this.areaOfInterest.clone():this.areaOfInterest;return new g({areaOfInterest:k,subsetDefinitions:n})}};C.__decorate([I.property({types:F, json:{read:Q.fromJSON,write:!0}})],N.prototype,"areaOfInterest",void 0);C.__decorate([I.property({readOnly:!0})],N.prototype,"dimensions",null);C.__decorate([I.property({readOnly:!0})],N.prototype,"variables",null);C.__decorate([I.property({type:[h],json:{write:!0}})],N.prototype,"subsetDefinitions",void 0);return N=g=C.__decorate([Y.subclass("esri.layers.support.MultidimensionalSubset")],N)})},"esri/layers/support/RasterInfo":function(){define("../../chunks/tslib.es6 ../../core/JSONSupport ../../core/lang ../../core/accessorSupport/decorators/property ../../core/has ../../core/Logger ../../core/accessorSupport/decorators/subclass ../../geometry/Extent ../../geometry/SpatialReference ./RasterBandInfo ./RasterSensorInfo ./RasterStorageInfo".split(" "), function(C,F,N,I,x,S,X,Y,L,R,Q,h){var f;F=f=class extends F.JSONSupport{constructor(g){super(g);this.extent=this.colormap=this.bandCount=this.attributeTable=null;this.format=void 0;this.histograms=this.width=this.height=null;this.keyProperties={};this.pixelType=this.pixelSize=this.noDataValue=this.multidimensionalInfo=null;this.isPseudoSpatialReference=!1;this.transform=this.storageInfo=this.statistics=this.spatialReference=null}get bandInfos(){var g=this.keyProperties.BandProperties,{bandCount:n}= this;if(!g?.length||g.lengthR.fromJSON(k));for(g=0;gnull!=X?X.toJSON():null),primaryPixelBlocks:x.primaryPixelBlocks.map(X=>null!=X?X.toJSON():null),primaryRasterIds:x.primaryRasterIds},S))?new N(x):null}async stretch(x,S){if(!this._workerThread)throw new C("raster-jobhandler:no-connection","no available worker connection"); if(!x?.pixelBlock)return null;x={srcPixelBlock:x.pixelBlock.toJSON(),stretchParams:x.stretchParams};return(S=await this._workerThread.invoke("stretch",x,S))?new N(S):null}async split(x,S){if(!this._workerThread)throw new C("raster-jobhandler:no-connection","no available worker connection");if(!x?.pixelBlock)return null;x={srcPixelBlock:x.pixelBlock.toJSON(),tileSize:x.tileSize,maximumPyramidLevel:x.maximumPyramidLevel,useBilinear:x.useBilinear};const X=await this._workerThread.invoke("split",x,S); X&&X.forEach((Y,L)=>{X.set(L,Y?N.fromJSON(Y):null)});return X}async clipTile(x,S){if(!this._workerThread)throw new C("raster-jobhandler:no-connection","no available worker connection");if(!x?.pixelBlock)return null;x={...x,pixelBlock:x.pixelBlock.toJSON()};return(S=await this._workerThread.invoke("clipTile",x,S))?N.fromJSON(S):null}async estimateStatisticsHistograms(x,S){if(!this._workerThread)throw new C("raster-jobhandler:no-connection","no available worker connection");if(!x?.pixelBlock)return null; x={srcPixelBlock:x.pixelBlock.toJSON()};return await this._workerThread.invoke("estimateStatisticsHistograms",x,S)}async mosaicAndTransform(x,S){if(!this._workerThread)throw new C("raster-jobhandler:no-connection","no available worker connection");if(!x?.srcPixelBlocks?.length)return{pixelBlock:null};x={...x,srcPixelBlocks:x.srcPixelBlocks.map(X=>null!=X?X.toJSON():null)};S=await this._workerThread.invoke("mosaicAndTransform",x,S);return{pixelBlock:S.pixelBlock?new N(S.pixelBlock):null,localNorthDirections:S.localNorthDirections}}async createFlowMesh(x, S){if(!this._workerThread)throw new C("raster-jobhandler:no-connection","no available worker connection");const X={buffer:x.flowData.data.buffer,maskBuffer:x.flowData.mask.buffer,width:x.flowData.width,height:x.flowData.height},{meshType:Y,simulationSettings:L}=x;x=await this._workerThread.invoke("createFlowMesh",{meshType:Y,flowData:X,simulationSettings:L},{...S,transferList:[X.buffer,X.maskBuffer]});return{vertexData:new Float32Array(x.vertexBuffer),indexData:new Uint32Array(x.indexBuffer)}}getProjectionOffsetGrid(x, S){if(!this._workerThread)throw new C("raster-jobhandler:no-connection","no available worker connection");const X=null!=x.datumTransformation?x.datumTransformation.steps.map(L=>({wkid:L.wkid,wkt:L.wkt,isInverse:L.isInverse})):null,Y=null!=x.rasterTransform?x.rasterTransform.toJSON():null;x={projectedExtent:x.projectedExtent.toJSON(),srcBufferExtent:x.srcBufferExtent.toJSON(),pixelSize:x.pixelSize,hasWrapAround:x.hasWrapAround,spacing:x.spacing,datumTransformationSteps:X,rasterTransform:Y,isAdaptive:x.isAdaptive, includeGCSGrid:x.includeGCSGrid};return this._workerThread.invoke("getProjectionOffsetGrid",x,S)}}return I})},"esri/layers/support/rasterDatasets/multidimensionalUtils":function(){define(["exports","../../../core/arrayUtils","../DimensionalDefinition"],function(C,F,N){function I(g,n,k){const D=n.shift();0===k.length&&k.push({sliceId:-1,multidimensionalDefinition:[]});const v=k.length;for(let t=0;t{k.push({sliceId:-1,multidimensionalDefinition:[...a, {variableName:g,dimensionName:D.name,values:[d]}]})})}n.length&&I(g,n,k)}function x(g,n){return Array.isArray(g)?n[0]===n[1]?g[0]===n[0]||g[1]===n[0]:g[0]>=n[0]&&g[0]<=n[1]&&g[1]>=n[0]&&g[1]<=n[1]:g>=n[0]&&g<=n[1]}function S(g,n){return g[0]<=n[0]&&g[1]>=n[0]||g[0]<=n[1]&&g[1]>=n[1]||g[0]>=n[0]&&g[1]<=n[1]}function X(g){return 1===g.length?[g[0],g[0]]:[g[0],g[g.length-1]]}function Y(g,n,k){if(!n?.subsetDefinitions?.length)return g;if(k){const {variables:v}=n;if(v.length&&!v.includes(k))return null; n=n.subsetDefinitions.find(t=>t.dimensionName===g.name&&t.variableName===k);if(!n?.values?.length)return g;n=X(n.values)}else n=n.dimensions.find(({name:v})=>v===g.name)?.extent;const D=n;if(!D?.length)return g;n=g.values.filter(v=>x(v,D));return{...g,extent:[...D],values:n}}function L(g,n,k){if(!n?.subsetDefinitions?.length)return!1;const {variables:D}=n;if(D.length&&g.some(({variableName:v})=>v&&!D.includes(v)))return!0;for(let v=0;v(""=== t.variableName||d.variableName===t.variableName)&&d.dimensionName===t.dimensionName);if(a?.values.length){const d=X(a.values);if(!t.isSlice&&2===t.values.length&&!Array.isArray(t.values[0])&&t.values[0]!==t.values[1]&&k){if(!S(t.values,d))return!0}else if(t.values.some(e=>!x(e,d)))return!0}}return!1}function R(g,n){var k=g.dimensions.find(({name:a})=>"StdTime"===a);if(null==k||null==n.start&&null==n.end)return n;n=n.clone();const {start:D,end:v}=n.toJSON(),t=D===v?[D]:null!=D&&null!=v?[D,v]:[D??v]; if(2===t.length&&k?.extent.length&&(t[0]=Math.max(t[0],k.extent[0]),t[1]=Math.min(t[1],k.extent[1]??k.extent[0]),t[1]t.variables.includes(e)));return d?g.find(({name:e})=>e===d)??g[0]:g[0]}function h(g,n){var {values:k}=n;if(k?.length){n=Array.isArray(k[0]);var D=Array.isArray(g);return n!==D?-1:n&&D?k.findIndex(t=>t[0]===g[0]&&t[1]===g[1]):k.indexOf(g)}({extent:D}=n);if(Array.isArray(g)||!D||gD[1])return-1;k=n.interval||1;if("ISO8601"!==n.unit)return Math.round((g-D[0])/k);D=D[0];let v=-1;switch(n.intervalUnit?.toLowerCase()|| "seconds"){case "seconds":v=Math.round((g-D)/1E3/k);break;case "minutes":v=Math.round((g-D)/6E4/k);break;case "hours":v=Math.round((g-D)/36E5/k);break;case "days":v=Math.round((g-D)/864E5/k);break;case "months":n=(new Date(g)).getUTCFullYear()-(new Date(D)).getUTCFullYear();k=(new Date(D)).getUTCMonth();D=(new Date(g)).getUTCMonth();v=0===n?D-k:D+11-k+12*(n-1);break;case "years":v=Math.round(((new Date(g)).getUTCFullYear()-(new Date(D)).getUTCFullYear())/k);break;case "decades":v=Math.round(((new Date(g)).getUTCFullYear()- (new Date(D)).getUTCFullYear())/10/k)}return v}function f(g){var n=g.values?.length;if(n)return n;const {extent:k,unit:D}=g;n=g.interval||1;var v=k?k[1]-k[0]:0;if("ISO8601"!==D)return Math.round(v/n);switch(g.intervalUnit?.toLowerCase()??"seconds"){case "seconds":n=Math.round(v/1E3/n);break;case "minutes":n=Math.round(v/6E4/n);break;case "hours":n=Math.round(v/36E5/n);break;case "days":n=Math.round(v/864E5/n);break;case "months":k?(g=(new Date(k[1])).getUTCFullYear()-(new Date(k[0])).getUTCFullYear(), n=(new Date(k[0])).getUTCMonth(),v=(new Date(k[1])).getUTCMonth(),n=0===g?v-n+1:v+11-n+12*(g-1)+1):n=0;break;case "years":n=k?Math.round(((new Date(k[1])).getUTCFullYear()-(new Date(k[0])).getUTCFullYear())/n):0;break;case "decades":n=k?Math.round(((new Date(k[1])).getUTCFullYear()-(new Date(k[0])).getUTCFullYear())/10/n):0;break;default:n=0}return n}C.createSlices=function(g,n){const k=[];let D=0;(n?g.variables.filter(v=>v.name.toLowerCase()===n.toLowerCase()):[...g.variables].sort((v,t)=>v.name> t.name?1:-1)).forEach(v=>{const t=[],a=[...v.dimensions].sort((d,e)=>d.name>e.name?-1:1);I(v.name,a,t);t.forEach(d=>{k.push({...d,sliceId:D++})})});return k};C.getDefaultMultidimensionalDefinition=function(g,n={}){var k=Q(g,n);if(!k)return null;g=[];const {dimensions:D,name:v}=k;if(0===D.length)return[new N({variableName:v,dimensionName:"",values:[],isSlice:!0})];for(k=0;kv.dimensionName{t.length&&(D=D.filter(d=>{d=d.multidimensionalDefinition.find(l=>l.dimensionName===v); if(null==d)return!1;const e=d.values[0];return"number"===typeof e?"number"===typeof t[0]?t.includes(e):t.some(l=>l[0]<=e&&l[1]>=e):"number"===typeof t[0]?t.some(l=>e[0]<=l&&e[1]>=l):a?t.some(l=>l[0]===e[0]&&l[0]===e[1]):t.some(l=>l[0]>=e[0]&&l[0]<=e[1]||l[1]>=e[0]&&l[1]<=e[1]||l[0]e[1])}))}));if(D.length&&null!=k?.start&&null!=k.end){const v=k.start.getTime(),t=k.end.getTime(),a=D[0].multidimensionalDefinition.findIndex(d=>"StdTime"===d.dimensionName);-1{d=d.multidimensionalDefinition[a].values[0]; return v<=d&&t>=d}))}return D.map(v=>v.sliceId)};C.getSliceIndex=function(g,n){let k=0;var D=g[0].variableName;n=[...n.variables].sort((t,a)=>t.name>a.name?1:-1);for(var v=0;vd.name>e.name?-1:1);if(t.name!==D)k+=a.map(d=>f(d)).reduce((d,e)=>d*e);else{D=a.map(d=>f(d));n=a.length;for(let d=0;de.dimensionName===a[d].name);if(null==v)return null;v=h(v.values[0],a[d]);if(-1===v)return null;D.shift();k=d===n-1?k+v:k+v*D.reduce((e, l)=>e*l)}break}}return k};C.getSubsetVariablesFromMdInfo=function(g,n){if(null==n||null==g)return null;n=n.variables.map(k=>({...k}));g?.variables?.length&&(n=n.filter(({name:k})=>g.variables.includes(k)),n.forEach(k=>{k.dimensions=k.dimensions.map(D=>Y(D,g,k.name)).filter(F.isSome)}));return n};C.hasExcludedVariableOrDimension=L;C.intersectMultimensionalSubset=function(g,n){if(null==g)return{isOutside:!1};const {geometry:k,timeExtent:D,multidimensionalDefinition:v}=n;n=null;if(null!=D&&(n=R(g,D), null==n))return{isOutside:!0};const {areaOfInterest:t}=g;if(t&&k){const a="point"===k.type?k:"extent"===k.type?k.center:"polygon"===k.type?k.centroid:null;if(a&&!t.contains(a))return{isOutside:!0}}return null!=v&&v.length&&L(v,g,!0)?{isOutside:!0}:{isOutside:!1,intersection:{geometry:k,timeExtent:n,multidimensionalDefinition:v}}};C.isMultiSliceOrRangeDefinition=function(g){return g?.length?g.some(n=>{if(null==n.values)return!0;const k=n.values.length;return 0===k||1new x.SimpleBandStatistics(V,T)),bandMasks:G,depthCount:w,noDataValues:A});K?.length||p.updateStatistics();return p}async function k(p,q){p=await f.decode(p,{...q,noDataValue:null});N.assertIsSome(p); p=new I({width:p.width,height:p.height,pixels:p.pixels,pixelType:p.pixelType.toLowerCase(),mask:p.mask,bandMasks:p.bandMasks,statistics:null});p.updateStatistics();return p}async function D(p,q){p=await f.decodeTileOrStrip(p,q.customOptions);p=new I({width:p.width,height:p.height,pixels:p.pixels,pixelType:p.pixelType.toLowerCase(),mask:p.mask,statistics:null});p.updateStatistics();return p}function v(p,q){const y=q.pixelType||"u8",z=I.getPixelArrayConstructor(y),H="u8"===y?p:new z(p.buffer),E=[], K=q.planes||1;if(1===K)E.push(H);else for(let w=0;wH;H++){K=new Uint8Array(q);for(E=0;E{var H=z.pixelType,E=null;let K= null;switch(H?H.toLowerCase():"f32"){case "u1":case "u2":case "u4":case "u8":K=255;E=Uint8Array;break;case "u16":K=K||65535;E=Uint16Array;break;case "u32":K=K||2**32-1;E=Uint32Array;break;case "s8":K=K||-128;E=Int8Array;break;case "s16":K=K||-32768;E=Int16Array;break;case "s32":K=K||-(2**31);E=Int32Array;break;default:E=Float32Array}({pixelTypeCtor:H}={pixelTypeCtor:E,noDataValue:K});E=h.decode;y=E(y,{width:z.width,height:z.height,pixelType:H,format:p});z=new I({width:z.width,height:z.height,pixels:y.pixels, pixelType:z.pixelType,mask:y.mask,statistics:null});z.updateStatistics();return z};break;case "tiff":q=k;break;case "deflate":q=t;break;case "lzw":q=a;break;case "error":q=()=>{throw new F("rasterCodec:decode","input data contains error");};break;default:q=()=>{throw new F("rasterCodec:decode","unsupported raster format");}}return q}function m(p,q=1){if(p){var {pixels:y,width:z,height:H,mask:E}=p;if(y&&0!==y.length){var K=y.length,w=z-1,A=H-1,G=[],P,U,V=null,T=I.getPixelArrayConstructor(p.pixelType); if(0===q){for(q=0;qG;++G)E.push(String.fromCharCode(this.data[this.pos++]));E=E.join("");switch(E){case "IHDR":this.width=this.readUInt32();this.height=this.readUInt32();this.bits=this.data[this.pos++];this.colorType=this.data[this.pos++];this.compressionMethod=this.data[this.pos++]; this.filterMethod=this.data[this.pos++];this.interlaceMethod=this.data[this.pos++];break;case "acTL":this.animation={numFrames:this.readUInt32(),numPlays:this.readUInt32()||Infinity,frames:[]};break;case "PLTE":this.palette=this.read(A);break;case "fcTL":w&&this.animation.frames.push(w);this.pos+=4;w={width:this.readUInt32(),height:this.readUInt32(),xOffset:this.readUInt32(),yOffset:this.readUInt32()};E=this.readUInt16();A=this.readUInt16()||100;w.delay=1E3*E/A;w.disposeOp=this.data[this.pos++];w.blendOp= this.data[this.pos++];w.data=[];break;case "IDAT":case "fdAT":"fdAT"===E&&(this.pos+=4,A-=4);E=(null!=w?w.data:void 0)||this.imgData;for(G=0;0<=A?GA;0<=A?++G:--G)E.push(this.data[this.pos++]);break;case "tRNS":this.transparency={};switch(this.colorType){case 3:this.transparency.indexed=this.read(A);A=255-this.transparency.indexed.length;if(0A;0<=A?++E:--E)this.transparency.indexed.push(255);break;case 0:this.transparency.grayscale=this.read(A)[0];break;case 2:this.transparency.rgb= this.read(A)}break;case "tEXt":G=this.read(A);A=G.indexOf(0);E=String.fromCharCode.apply(String,G.slice(0,A));this.text[E]=String.fromCharCode.apply(String,G.slice(A+1));break;case "IEND":w&&this.animation.frames.push(w);a:{switch(this.colorType){case 0:case 3:case 4:w=1;break a;case 2:case 6:w=3;break a}w=void 0}this.colors=w;this.hasAlphaChannel=4===(K=this.colorType)||6===K;K=this.colors+(this.hasAlphaChannel?1:0);this.pixelBitlength=this.bits*K;a:{switch(this.colors){case 1:K="DeviceGray";break a; case 3:K="DeviceRGB";break a}K=void 0}this.colorSpace=K;this.imgData=new Uint8Array(this.imgData);return;default:this.pos+=A}this.pos+=4;if(this.pos>this.data.length)throw Error("Incomplete or corrupt PNG file");}}var y;q.load=function(E,K,w){"function"===typeof K&&(w=K);var A=new XMLHttpRequest;A.open("GET",E,!0);A.responseType="arraybuffer";A.onload=function(){var G=new Uint8Array(A.response||A.mozResponseArrayBuffer);G=new q(G);"function"===typeof(null!=K?K.getContext:void 0)&&G.render(K);return"function"=== typeof w?w(G):void 0};return A.send(null)};q.prototype.read=function(E){var K;var w=[];for(K=0;0<=E?KE;0<=E?++K:--K)w.push(this.data[this.pos++]);return w};q.prototype.readUInt32=function(){var E=this.data[this.pos++]<<24;var K=this.data[this.pos++]<<16;var w=this.data[this.pos++]<<8;var A=this.data[this.pos++];return E|K|w|A};q.prototype.readUInt16=function(){var E=this.data[this.pos++]<<8;var K=this.data[this.pos++];return E|K};q.prototype.decodePixels=function(E){var K,w,A,G,P,U,V,T;null== E&&(E=this.imgData);if(0===E.length)return new Uint8Array(0);E=new Q.Zlib(E);E=E.getBytes();var J=this.pixelBitlength/8;var O=J*this.width;var Z=new Uint8Array(O*this.height);var aa=E.length;for(w=G=P=0;GH(p.slice(A,K[G+1]),q));y=await Promise.all(y);E=y[0];E.pixels=y.map(A=>A.pixels[0]);const w=y.map(A=>A.mask);y.some(A=>null!=A)&&(w.forEach((A,G)=>{null==A&&(w[G]=(new Uint8Array(E.width*E.height)).fill(255))}),E.bandMasks=w,E.mask=I.combineBandMasks(w));E.updateStatistics()}else E=await H(p,{...q,offset:K?.[0]??q.offset});"jpg"!== z&&null!=q.noDataValue&&1===E.depthCount&&R.convertNoDataToMask(E,q.noDataValue,{customFloatTolerance:q.tolerance});q.isPoint&&m(E);return E};C.getFormat=function(p){p=c(p);"lerc2"===p?p="lerc":"error"===p&&(p="");return p};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/rasterFormats/ImageCanvasDecoder":function(){define(["../../../core/Error","../../../core/promiseUtils","../../../chunks/Zlib"],function(C,F,N){class I{constructor(x){this._ctx=this._canvas=null; x&&(this._canvas=x.canvas,this._ctx=x.ctx||x.canvas&&x.canvas.getContext("2d"))}decode(x,S,X){if(!x||10>x.byteLength)throw new C("imagecanvasdecoder: decode","required a valid encoded data as input.");let {width:Y=0,height:L=0,format:R}=S;const {applyJpegMask:Q}=S;if(Q&&(!Y||!L))throw new C("imagecanvasdecoder: decode","image width and height are needed to apply jpeg mask directly to canvas");return new Promise((h,f)=>{let g=null;"jpg"===R&&Q&&(g=I._getMask(x,{width:Y,height:L}));const n=new Blob([new Uint8Array(x)], {type:"jpg"==="image/"+R?"jpeg":R}),k=URL.createObjectURL(n),D=new Image;let v;D.src=k;D.onload=()=>{URL.revokeObjectURL(k);if(F.isAborted(X))f(F.createAbortError());else{Y=D.width;L=D.height;if(this._canvas&&this._ctx){if(this._canvas.width!==Y||this._canvas.height!==L)this._canvas.width=Y,this._canvas.height=L;this._ctx.clearRect(0,0,Y,L)}else this._canvas=document.createElement("canvas"),this._canvas.width=Y,this._canvas.height=L,this._ctx=this._canvas.getContext("2d");this._ctx.drawImage(D,0, 0);var t=this._ctx.getImageData(0,0,Y,L);v=t.data;var a;if(S.renderOnCanvas){if(g)for(a=0;a{URL.revokeObjectURL(k);f("cannot load image")}})}static _getMask(x, S){let X=null;try{var Y=new Uint8Array(x);x=0;var L=Y.length-2;for(x=Math.ceil(Y.length/2);x>L&1}}catch(R){}return X}}return I})},"esri/chunks/Zlib":function(){define(["exports","./_commonjsHelpers"],function(C,F){var N={exports:{}};(function(I){(function(x){x=x();void 0!==x&&(I.exports=x)})(function(){var x= function(){function S(){this.bufferLength=this.pos=0;this.eof=!1;this.buffer=null}S.prototype={ensureBuffer:function(X){var Y=this.buffer,L=Y?Y.byteLength:0;if(XL&&(X=L)}else{for(;!this.eof;)this.readBlock();X=this.bufferLength}this.pos=X;return this.buffer.subarray(Y,X)},lookChar:function(){for(var X=this.pos;this.bufferLength<=X;){if(this.eof)return null;this.readBlock()}return String.fromCharCode(this.buffer[this.pos])},getChar:function(){for(var X=this.pos;this.bufferLength<=X;){if(this.eof)return null;this.readBlock()}return String.fromCharCode(this.buffer[this.pos++])},makeSubStream:function(X,Y,L){for(var R= X+Y;this.bufferLength<=R&&!this.eof;)this.readBlock();return new Stream(this.buffer,X,Y,L)},skip:function(X){X||=1;this.pos+=X},reset:function(){this.pos=0}};return S}();return function(){function S(f){throw Error(f);}function X(f){var g=0,n=f[g++],k=f[g++];-1!=n&&-1!=k||S("Invalid header in flate stream");8!=(n&15)&&S("Unknown compression method in flate stream");0!=((n<<8)+k)%31&&S("Bad FCHECK in flate stream");k&32&&S("FDICT bit set in flate stream");this.bytes=f;this.bytesPos=g;this.codeBuf=this.codeSize= 0;x.call(this)}if(!self||!self.Uint32Array)return null;var Y=new Uint32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),L=new Uint32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),R=new Uint32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721, 868353,876545]),Q=[new Uint32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59E4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306, 524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321, 589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315, 589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328, 590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310, 524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325, 589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319, 589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],h=[new Uint32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5];X.prototype=Object.create(x.prototype);X.prototype.getBits=function(f){for(var g=this.codeSize,n=this.codeBuf,k=this.bytes,D=this.bytesPos,v;g>f;this.codeSize=g-=f;this.bytesPos=D;return n&(1<>16;n&=65535;(0==f||f>g;this.codeSize=f-g;this.bytesPos=v;return n};X.prototype.generateHuffmanTable= function(f){for(var g=f.length,n=0,k=0;kn&&(n=f[k]);for(var D=1<>=1;for(k=l;k>=1;if(0==g){var n=this.bytes,k=this.bytesPos,D;"undefined"==typeof(D=n[k++])&&S("Bad block header in flate stream"); var v=D;"undefined"==typeof(D=n[k++])&&S("Bad block header in flate stream");v|=D<<8;"undefined"==typeof(D=n[k++])&&S("Bad block header in flate stream");g=D;"undefined"==typeof(D=n[k++])&&S("Bad block header in flate stream");(g|D<<8)!=(~v&65535)&&S("Bad uncompressed block length in flate stream");this.codeSize=this.codeBuf=0;D=this.bufferLength;g=this.ensureBuffer(D+v);this.bufferLength=v=D+v;for(var t=D;td)t+1>=v&&(g=this.ensureBuffer(t+1),v=g.length),g[t++]=d;else{if(256==d){this.bufferLength=t;break}d-=257;d=L[d];var e=d>>16;0>16;0=v&&(g=this.ensureBuffer(t+n),v=g.length);for(e=0;e>n&1}catch{}if(1===L&&Q.length===X*Y)k=new Uint8Array(Q.buffer),k=[k,k,k];else{k=[];for(f=0;3>f;f++)k.push(new Uint8Array(h));for(g=n=0;gf;f++)k[f][g]= Q[n++]}return{width:X,height:Y,pixels:k,mask:I}}}return N})},"esri/chunks/Jpg":function(){define(["exports","./_commonjsHelpers"],function(C,F){var N={exports:{}};(function(I){(function(x){x=x();void 0!==x&&(I.exports=x)})(function(){var x=function(){function S(X){this.message="JPEG error: "+X}S.prototype=Error();S.prototype.name="JpegError";return S.constructor=S}();return function(){function S(){this.decodeTransform=null;this.colorTransform=-1}function X(h,f){for(var g=0,n=[],k,D,v=16;0>H&1;z=h[f++];if(255===z){var W=h[f++];if(W)throw new x("unexpected marker "+(z<<8|W).toString(16)); }H=7;return z>>>7}function e(W){for(;;){W=W[d()];if("number"===typeof W)return W;if("object"!==typeof W)throw new x("invalid huffman sequence");}}function l(W){for(var da=0;0=1<ca;){var fa=e(W.huffmanTableAC),ha=fa&15;fa>>=4;if(0===ha){if(15>fa)break;ca+=16}else ca+=fa,W.blockData[da+ Q[ca]]=c(ha),ca++}}function m(W,da){var ca=e(W.huffmanTableDC);ca=0===ca?0:c(ca)<>=4;if(0===ha){if(15>fa){E=l(fa)+(1<>=4;if(0===ha)15>fa?(E=l(fa)+(1<=aa)throw new x("marker was not found");if(65488<=aa&&65495>=aa)f+=2;else break}(aa=R(h,f))&&aa.invalid&&(console.log("decodeScan - unexpected Scan data, next marker is: "+aa.invalid),f=aa.offset);return f-y}function L(h,f){h=f.blocksPerLine;for(var g=f.blocksPerColumn,n=new Int16Array(64),k=0;kE;E+=8)v=H[q+E],b=H[q+E+1],c=H[q+E+2],l=H[q+E+3],e=H[q+E+4],d=H[q+E+5],a=H[q+E+6],t=H[q+E+7],v*=z[E],0===(b|c|l|e|d|a|t)?(v=5793*v+512>>10,y[E]=v,y[E+1]=v,y[E+2]=v,y[E+3]=v,y[E+4]=v,y[E+5]=v,y[E+6]=v,y[E+7]=v):(b*=z[E+1],c*=z[E+2],l*=z[E+3],e*=z[E+4],d*=z[E+5],a*=z[E+6],t*=z[E+7],p=5793*v+128>>8,u=5793*e+128>>8,r=c,m=a,e=2896*(b-t)+128>>8,t=2896*(b+t)+128>>8,l<<=4,d<<=4,p=p+u+1>>1,u=p-u,v=3784*r+1567*m+128>>8,r= 1567*r-3784*m+128>>8,m=v,e=e+d+1>>1,d=e-d,t=t+l+1>>1,l=t-l,p=p+m+1>>1,m=p-m,u=u+r+1>>1,r=u-r,v=2276*e+3406*t+2048>>12,e=3406*e-2276*t+2048>>12,t=v,v=799*l+4017*d+2048>>12,l=4017*l-799*d+2048>>12,d=v,y[E]=p+t,y[E+7]=p-t,y[E+1]=u+d,y[E+6]=u-d,y[E+2]=r+l,y[E+5]=r-l,y[E+3]=m+e,y[E+4]=m-e);for(z=0;8>z;++z)v=y[z],b=y[z+8],c=y[z+16],l=y[z+24],e=y[z+32],d=y[z+40],a=y[z+48],t=y[z+56],0===(b|c|l|e|d|a|t)?(v=5793*v+8192>>14,v=-2040>v?0:2024<=v?255:v+2056>>4,H[q+z]=v,H[q+z+8]=v,H[q+z+16]=v,H[q+z+24]=v,H[q+z+ 32]=v,H[q+z+40]=v,H[q+z+48]=v,H[q+z+56]=v):(p=5793*v+2048>>12,u=5793*e+2048>>12,r=c,m=a,e=2896*(b-t)+2048>>12,t=2896*(b+t)+2048>>12,p=(p+u+1>>1)+4112,u=p-u,v=3784*r+1567*m+2048>>12,r=1567*r-3784*m+2048>>12,m=v,e=e+d+1>>1,d=e-d,t=t+l+1>>1,l=t-l,p=p+m+1>>1,m=p-m,u=u+r+1>>1,r=u-r,v=2276*e+3406*t+2048>>12,e=3406*e-2276*t+2048>>12,t=v,v=799*l+4017*d+2048>>12,l=4017*l-799*d+2048>>12,d=v,v=p+t,t=p-t,b=u+d,a=u-d,c=r+l,d=r-l,l=m+e,e=m-e,v=16>v?0:4080<=v?255:v>>4,b=16>b?0:4080<=b?255:b>>4,c=16>c?0:4080<=c? 255:c>>4,l=16>l?0:4080<=l?255:l>>4,e=16>e?0:4080<=e?255:e>>4,d=16>d?0:4080<=d?255:d>>4,a=16>a?0:4080<=a?255:a>>4,t=16>t?0:4080<=t?255:t>>4,H[q+z]=v,H[q+z+8]=b,H[q+z+16]=c,H[q+z+24]=l,H[q+z+32]=e,H[q+z+40]=d,H[q+z+48]=a,H[q+z+56]=t)}return f.blockData}function R(h,f,g){var n=h.length-1;g=g=n)return null;var k=h[f]<<8|h[f+1];if(65472<=k&&65534>=k)return{invalid:null,marker:k,offset:f};for(f=h[g]<<8|h[g+1];!(65472<=f&&65534>=f);){if(++g>=n)return null;f=h[g]<<8|h[g+1]}return{invalid:k.toString(16), marker:f,offset:g}}if(!self||!self.Uint8ClampedArray)return null;var Q=new Uint8Array([0,1,8,16,9,2,3,10,17,24,32,25,18,11,4,5,12,19,26,33,40,48,41,34,27,20,13,6,7,14,21,28,35,42,49,56,57,50,43,36,29,22,15,23,30,37,44,51,58,59,52,45,38,31,39,46,53,60,61,54,47,55,62,63]);S.prototype={parse:function(h){function f(){var z=h[k]<<8|h[k+1];k+=2;return z}function g(){var z=f();z=k+z-2;var H=R(h,z,k);H&&H.invalid&&(console.log("readDataBlock - incorrect length, next marker is: "+H.invalid),z=H.offset);z= h.subarray(k,z);k+=z.length;return z}function n(z){for(var H=Math.ceil(z.samplesPerLine/8/z.maxH),E=Math.ceil(z.scanLines/8/z.maxV),K=0;K>4)for(l=0;64>l;l++)c=Q[l],m[c]=h[k++];else if(1===b>>4)for(l=0;64>l;l++)c=Q[l],m[c]=f();else throw new x("DQT - invalid table spec");t[b&15]=m}break;case 65472:case 65473:case 65474:if(r)throw new x("Only single frame JPEGs supported");f();var r={};r.extended=65473===e;r.progressive=65474===e;r.precision= h[k++];r.scanLines=f();r.samplesPerLine=f();r.components=[];r.componentIds={};l=h[k++];for(e=m=b=0;e>4;var p=h[k+1]&15;bl;l++,k++)u+=m[l]=h[k];p=new Uint8Array(u);for(l=0;l>4?d:a)[b&15]=X(m,p)}break;case 65501:f(); var q=f();break;case 65498:f();c=h[k++];l=[];for(e=0;e>4];y.huffmanTableAC=a[b&15];l.push(y)}e=h[k++];c=h[k++];b=h[k++];e=Y(h,k,r,l,q,e,c,b>>4,b&15);k+=e;break;case 65535:255!==h[k]&&k--;break;default:if(255===h[k-3]&&192<=h[k-2]&&254>=h[k-2])k-=3;else throw new x("unknown marker "+e.toString(16));}e=f()}this.width=r.samplesPerLine;this.height=r.scanLines;this.jfif=D;this.eof=k;this.adobe=v;this.components=[];for(e= 0;e>8)+f[h+1];return d},_isColorConversionNeeded:function(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0===this.colorTransform?!1:!0:1===this.colorTransform?!0:!1},_convertYccToRgb:function(h){for(var f, g,n,k=0,D=h.length;kt&&"buffer"in t&&t.buffer===L.HEAPU8.buffer),v=t=>{t=t.map(e=>(e>>3<<3)+16);var a=t.reduce((e,l)=>e+l),d=R(a);k=new Uint8Array(D.buffer);a=t[0];t[0]=d;for(d=1;d{var a=new Uint8Array(48),d=new Uint8Array(24);const [e,l,c]=v([t.length,a.length,d.length]);k.set(t,e);k.set(a,l);k.set(d,c);var b=h(e,t.length,l,c,12,3);if(b)throw Q(e),Error(`lerc-getBlobInfo: error code is ${b}`);k=new Uint8Array(D.buffer);I(k,l,a);I(k,c,d);a=new Uint32Array(a.buffer);var m=new Float64Array(d.buffer);const [r,u,,p,q,y,z,H,E,K,w]=a;d={version:r,depthCount:K,width:p,height:q,validPixelCount:z,bandCount:y,blobSize:H,maskCount:E,dataType:u, minValue:m[0],maxValue:m[1],maxZerror:m[2],statistics:[],bandCountWithNoData:w};if(w&&1{const {maskCount:d,depthCount:e,bandCount:l,width:c,height:b,dataType:m,bandCountWithNoData:r}=a;var u=S[m],p=c*b;a=new Uint8Array(p*l);u=new Uint8Array(p* e*l*u.size);p=new Uint8Array(l);var q=new Uint8Array(8*l);const [y,z,H,E,K]=v([t.length,a.length,u.length,p.length,q.length]);k.set(t,y);k.set(a,z);k.set(u,H);k.set(p,E);k.set(q,K);if(t=g(y,t.length,d,z,e,c,b,l,m,H,E,K))throw Q(y),Error(`lerc-decode: error code is ${t}`);k=new Uint8Array(D.buffer);I(k,H,u);I(k,z,a);t=null;if(r){I(k,E,p);I(k,K,q);t=[];q=new Float64Array(q.buffer);for(let w=0;wp)break a;const q=new e.ctor(u*p);for(let y=0,z=0;y=R;if(0C(["../../../chunks/lerc-wasm"],L,R))).then(L=>L.lercWasm).then(({default:L})=>L({locateFile:R=>N.getAssetUrl(`esri/layers/support/rasterFormats/${R}`)})).then(L=>{x(L)})};F.pixelTypeInfoMap=S;Object.defineProperty(F,Symbol.toStringTag,{value:"Module"})})}, "esri/layers/support/rasterFormats/Lzw":function(){define(["exports"],function(C){function F(S,X,Y,L=!0){if(0!==X%4||0!==Y%4){var R=new ArrayBuffer(4*Math.ceil(Y/4));R=new Uint8Array(R);S=new Uint8Array(S,X,Y);if(L)for(L=0;L=X;X++)S[X]=[X];return S}function I(S,X){for(let Y=0;Y=X)R-=X,n=g>>>32-X,g<<=X;else{n=g>>>32-R;g=S[f++];var v=X-R;R=32-v;n=(n<>>R);g<<=v}if(257===n)break;if(256===n)X=9,L=N(),Q=L.length,h=[];else{v= L[n];if(null==v){if(n>L.length)throw Error("data integrity issue: code does not exist on code page");h.push(h[0]);L[Q++]=h.slice();I(D,h)}else I(D,v),h.push(v[0]),1k||f===k&&R<=Y)break}}return new Uint8Array(D)};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/rasterFormats/Raw":function(){define(function(){const C=N=>{let I=1;switch(N){case Uint8Array:case Int8Array:I=1;break;case Uint16Array:case Int16Array:I= 2;break;case Uint32Array:case Int32Array:case Float32Array:I=4;break;case Float64Array:I=8}return I};class F{static decode(N,I){var x=I.pixelType;const S=[],X=I.width*I.height;var Y=Math.floor(N.byteLength/(I.width*I.height*C(I.pixelType)));const {bandIds:L,format:R}=I;I=L?.length||Math.floor(N.byteLength/(I.width*I.height*C(I.pixelType)));var Q=N.byteLength-N.byteLength%(X*C(x)),h=new x(N,0,X*Y);let f,g,n,k,D=null;if("bip"===R)for(f=0;f>h&1;for(h=7;Y>h&1,h--;D=x}return{pixels:S,mask:D}}}return F})},"esri/layers/support/rasterFormats/TiffDecoder":function(){define("exports ../../../core/has ../rasterDatasets/byteStreamUtils ../../../chunks/Jpg ./Lerc ./Lzw ./pixelRangeUtils ./TiffTags ./utils ../../../chunks/Zlib".split(" "), function(C,F,N,I,x,S,X,Y,L,R){function Q(w,A){let G="unknown";3===w?G=64===A?"f64":"f32":1===w?1===A?G="u1":2===A?G="u2":4===A?G="u4":8>=A?G="u8":16>=A?G="u16":32>=A&&(G="u32"):2===w&&(8>=A?G="s8":16>=A?G="s16":32>=A&&(G="s32"));return G}function h(w){let A=null;switch(w?w.toLowerCase():"f32"){case "u1":case "u2":case "u4":case "u8":A=Uint8Array;break;case "u16":A=Uint16Array;break;case "u32":A=Uint32Array;break;case "s8":A=Int8Array;break;case "s16":A=Int16Array;break;case "s32":A=Int32Array;break; case "f64":A=Float64Array;break;default:A=Float32Array}return A}function f(w,A){return{x:A[0]*w.x+A[1]*w.y+A[2],y:A[3]*w.x+A[4]*w.y+A[5]}}function g(w,A){return w.get(A)?.values?.[0]}function n(w,A,G,P=0,U=Y.tiffTags,V=4){var T=8===V;const J=T?r(new DataView(w,G,8),0,A):(new DataView(w,G,2)).getUint16(0,A),O=4+2*V;var Z=T?8:2;T=Z+J*O;if(G+T>w.byteLength)return{success:!1,ifd:null,nextIFD:null,requiredBufferSize:T};const aa=G+T+4<=w.byteLength?u(new DataView(w,G+T,8===V?8:4),0,A,8===V):null;G+=Z;Z= new Map;let W,da,ca,fa=0,ha=0;for(let ma=0;ma>>8-A&V}return w.buffer}function D(w,A,G){const P=new I.JpegImage;P.parse(w);P.colorTransform=6===G?-1:0;w=P.getData(P.width,P.height,1!==A&&4!==A);return new Uint8Array(w.buffer)}function v(w){w=(new R.Zlib(w)).getBytes();var A=new ArrayBuffer(w.length);A=new Uint8Array(A);A.set(w);return A} async function t(w,A,G,P,U){var V=L.isPlatformLittleEndian===A,T=g(G,"BITSPERSAMPLE"),J=g(G,"SAMPLESPERPIXEL")??1,O=g(G,"PHOTOMETRICINTERPRETATION"),Z=g(G,"SAMPLEFORMAT")??1,aa=Q(Z,T),W=g(G,"COMPRESSION")??1,da=h(aa);if(34887===W)return await x.load(),x.decode(w,{inputOffset:P}).pixels[0];if(1===W)O=w.slice(P,P+U),A=new Uint8Array(O);else if(8===W||32946===W)A=new Uint8Array(w,P,U),A=v(A),O=A.buffer;else if(6===W)A=new Uint8Array(w,P,U),A=D(A,J,O),O=A.buffer;else if(7===W){const ca=G.get("JPEGTABLES").values, fa=ca.length-2;A=new Uint8Array(fa+U-2);for(let ha=0;hafa&&da>(U?w.byteLength:w?w.byteLength-O+P:0))return G.offlineOffsetSize=[O,da],G.values=null,!1;if(ca<=fa)if(A||(32>=fa?O>>>=32-ca:(w=V?.length?V[0]:O>>>0,A=V?.length?V[1]:Math.round((O-w)/4294967296),32>=ca?(O=w>>>32-ca,V[0]=O):(O=w*2**(32-ca)+(A>>>32-ca),V[0]=w,V[1]=A>>>32-ca))),1===J&&W===fa)Z=[O];else if(64===fa)for(w=V?.length?V[0]:O>>>0,O=V?.length?V[1]:Math.round((O-w)/4294967296),A=w,aa=32,w=1;w<=J;w++)da=32-W*w%32,aa>>32-aa,ca=O<< 32-aa>>>32-aa,A=O,Z.push(da+ca*2**(W-aa)),aa-=32-(W-aa)):(Z.push(A<>>32-W),aa-=W),0===aa&&(aa=32,A=O);else for(w=1;w<=J;w++)Z.push(O<<32-W*w>>>32-W);else for(O-=P,U&&(O=0),J=O;JparseFloat(za)),da.some(za=>isNaN(za))&&(da=null));var ca=g(A,"COMPRESSION")??1;switch(ca){case 1:W="NONE";break;case 2:case 3:case 4:case 32771:W="CCITT";break;case 5:W="LZW";break;case 6:case 7:W="JPEG";break;case 32773:W="PACKBITS";break;case 8:case 32946:W="DEFLATE";break;case 34712:W="JPEG2000";break;case 34887:W="LERC";break;default:W=String(ca)}let fa=!0,ha="";H.has(ca)||(fa=!1, ha+="unsupported tag compression "+ca);3za.includes("ESRI PE String \x3d ")))?T.replace("ESRI PE String \x3d ",""):"";var na=T.startsWith("COMPD_CS")||T.startsWith("PROJCS")||T.startsWith("GEOGCS")?{wkid:null,wkt:T}:null}O=A.get("GEOTIEPOINTS")?.values;T=A.get("GEOPIXELSCALE")?.values;ca=A.get("GEOTRANSMATRIX")?.values; var ma=A.has("GEOKEYDIRECTORY")?A.get("GEOKEYDIRECTORY").data:null,ia=!1;A=!1;if(ma){ia=2===g(ma,"GTRasterTypeGeoKey");var ua=g(ma,"GTModelTypeGeoKey");2===ua?(ma=g(ma,"GeographicTypeGeoKey"),1024<=ma&&32766>=ma&&(na={wkid:ma}),na||32767!==ma||(A=!0,na={wkid:4326})):1===ua&&(ma=g(ma,"ProjectedCSTypeGeoKey"),1024<=ma&&32766>=ma&&(na={wkid:ma}))}let pa;T&&O&&6<=O.length?(pa=[T[0],0,O[3]-O[0]*T[0],0,-Math.abs(T[1]),O[4]-O[1]*T[1]],ia&&(pa[2]-=.5*pa[0]+.5*pa[1],pa[5]-=.5*pa[3]+.5*pa[4])):ca&&16===ca.length&& (pa=ia?[ca[0],ca[1],ca[3]-.5*ca[0],ca[4],ca[5],ca[7]-.5*ca[5]]:[ca[0],ca[1],ca[3],ca[4],ca[5],ca[7]]);if(pa){O=[{x:0,y:V},{x:0,y:0},{x:U,y:V},{x:U,y:0}];ma=ia=Number.POSITIVE_INFINITY;let za=ua=Number.NEGATIVE_INFINITY;for(let Da=0;Daia?ia:ca.x,ua=ca.xma?ma:ca.y,za=ca.y{Aa.push({maxCol:Math.ceil(g(za,"IMAGEWIDTH")/g(za,"TILEWIDTH"))-1,maxRow:Math.ceil(g(za,"IMAGELENGTH")/g(za,"TILELENGTH"))- 1,minRow:0,minCol:0})}));ca=w[0].get("GDAL_METADATA")?.values?.[0];ca=K(ca);ha+=" "+y({width:U,height:V,tileWidth:G,tileHeight:P,planes:J,ifds:w});w=b(w).length===na.length+1;na=na?.length?na.map(za=>{const Da=U/g(za,"IMAGEWIDTH");za=V/g(za,"IMAGELENGTH");return{x:Da,y:za}}):void 0;return{width:U,height:V,tileWidth:G,tileHeight:P,planes:J,isBSQ:aa,pixelType:Z,compression:W,noData:da,hasMaskBand:w,isSupported:fa,pyramidResolutions:na,message:ha,extent:O,isPseudoGeographic:A,affine:T?null:pa,firstPyramidLevel:ra, maximumPyramidLevel:ya,pyramidBlockWidth:ta,pyramidBlockHeight:xa,tileBoundary:Aa,metadata:ca}}function l(w,A){return(w=w.get("PLANARCONFIGURATION")?.values)?2===w[0]:A?A.isBSQ:!1}function c(w){return w.filter(A=>1===g(A,"NEWSUBFILETYPE"))}function b(w){return w.filter(A=>{const G=4===((g(A,"NEWSUBFILETYPE")??0)&4);A=4===g(A,"PHOTOMETRICINTERPRETATION");return G&&A})}function m(w){const {littleEndian:A,isBigTiff:G,firstIFDPos:P}=p(w);var U=P;const V=[];do if(U=q(w,A,U,0,Y.tiffTags,G?8:4),U.success)V.push(U.ifd), U=U.nextIFD;else break;while(0{J.has(Z)&&(T=J.get(Z),T.data=n(w,A,T.valueOffset-P,P,O).ifd)}),J.has("GEOKEYDIRECTORY")&&(T=J.get("GEOKEYDIRECTORY"),(U=T.values)&&42**30/(8{if(!(w&&0V?0:1;else for(Z=0;ZV?0:1);return O},K=w=>{if(!w)return null;var A=w.match(//gi);if(!A||0===A.length)return null;w=new Map;var G;for(var P=0;Pma.min):null;aa=aa?aa.map(ma=>ma.max):null;J={pixelType:J,width:O,height:da,pixels:w,noDataValue:T};null!=T?X.convertNoDataToMask(J,T):Z&&aa&&A.applyMinMaxConstraint&&(J.mask=E(w,Z,aa));return J};C.getImageInfo=e;C.getMaskIFDs=b;C.getPyramidIFDs=c;C.isBSQConfig=l;C.parseFieldValues= d;C.parseHeader=m;C.parseIFD=q;C.parseSignature=p;Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/rasterDatasets/byteStreamUtils":function(){define(["exports"],function(C){C.bytesToUTF8=function(F,N){let I=0,x="",S=0,X=0;const Y=F.length;for(;I>4,8>S?S=1:15===S?(S=4,X=(X&7)<<18|(F[I++]&63)<<12|(F[I++]&63)<<6|F[I++]&63):14===S?(S=3,X=(X&15)<<12|(F[I++]&63)<<6|F[I++]&63):(S=2,X=(X&31)<<6|F[I++]&63),0!==X||N)x+=String.fromCharCode(X);return x}; Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/rasterFormats/TiffTags":function(){define(function(){const C=(()=>{const x=[];x[254]="NEWSUBFILETYPE";x[255]="SUBFILETYPE";x[256]="IMAGEWIDTH";x[257]="IMAGELENGTH";x[258]="BITSPERSAMPLE";x[259]="COMPRESSION";x[262]="PHOTOMETRICINTERPRETATION";x[263]="THRESHHOLDING";x[264]="CELLWIDTH";x[265]="CELLLENGTH";x[266]="FILLORDER";x[269]="DOCUMENTNAME";x[270]="IMAGEDESCRIPTION";x[271]="MAKE";x[272]="MODEL";x[273]="STRIPOFFSETS"; x[274]="ORIENTATION";x[277]="SAMPLESPERPIXEL";x[278]="ROWSPERSTRIP";x[279]="STRIPBYTECOUNTS";x[280]="MINSAMPLEVALUE";x[281]="MAXSAMPLEVALUE";x[282]="XRESOLUTION";x[283]="YRESOLUTION";x[284]="PLANARCONFIGURATION";x[285]="PAGENAME";x[286]="XPOSITION";x[287]="YPOSITION";x[288]="FREEOFFSETS";x[289]="FREEBYTECOUNTS";x[290]="GRAYRESPONSEUNIT";x[291]="GRAYRESPONSECURVE";x[292]="T4OPTIONS";x[293]="T6OPTIONS";x[296]="RESOLUTIONUNIT";x[297]="PAGENUMBER";x[300]="COLORRESPONSEUNIT";x[301]="TRANSFERFUNCTION"; x[305]="SOFTWARE";x[306]="DATETIME";x[315]="ARTIST";x[316]="HOSTCOMPUTER";x[317]="PREDICTOR";x[318]="WHITEPOINT";x[319]="PRIMARYCHROMATICITIES";x[320]="COLORMAP";x[321]="HALFTONEHINTS";x[322]="TILEWIDTH";x[323]="TILELENGTH";x[324]="TILEOFFSETS";x[325]="TILEBYTECOUNTS";x[326]="BADFAXLINES";x[327]="CLEANFAXDATA";x[328]="CONSECUTIVEBADFAXLINES";x[330]="SUBIFD";x[332]="INKSET";x[333]="INKNAMES";x[334]="NUMBEROFINKS";x[336]="DOTRANGE";x[337]="TARGETPRINTER";x[338]="EXTRASAMPLES";x[339]="SAMPLEFORMAT"; x[340]="SMINSAMPLEVALUE";x[341]="SMAXSAMPLEVALUE";x[342]="TRANSFERRANGE";x[347]="JPEGTABLES";x[512]="JPEGPROC";x[513]="JPEGIFOFFSET";x[514]="JPEGIFBYTECOUNT";x[515]="JPEGRESTARTINTERVAL";x[517]="JPEGLOSSLESSPREDICTORS";x[518]="JPEGPOINTTRANSFORM";x[519]="JPEGQTABLES";x[520]="JPEGDCTABLES";x[521]="JPEGACTABLES";x[529]="YCBCRCOEFFICIENTS";x[530]="YCBCRSUBSAMPLING";x[531]="YCBCRPOSITIONING";x[532]="REFERENCEBLACKWHITE";x[700]="XMP";x[33550]="GEOPIXELSCALE";x[33922]="GEOTIEPOINTS";x[33432]="COPYRIGHT"; x[42112]="GDAL_METADATA";x[42113]="GDAL_NODATA";x[50844]="RPCCOEFFICIENT";x[34264]="GEOTRANSMATRIX";x[34735]="GEOKEYDIRECTORY";x[34736]="GEODOUBLEPARAMS";x[34737]="GEOASCIIPARAMS";x[34665]="EXIFIFD";x[34853]="GPSIFD";x[40965]="INTEROPERABILITYIFD";return x})(),F=(()=>{const x=C.slice();x[36864]="ExifVersion";x[40960]="FlashpixVersion";x[40961]="ColorSpace";x[42240]="Gamma";x[37121]="ComponentsConfiguration";x[37122]="CompressedBitsPerPixel";x[40962]="PixelXDimension";x[40963]="PixelYDimension";x[37500]= "MakerNote";x[37510]="UserComment";x[40964]="RelatedSoundFile";x[36867]="DateTimeOriginal";x[36868]="DateTimeDigitized";x[36880]="OffsetTime";x[36881]="OffsetTimeOriginal";x[36882]="OffsetTimeDigitized";x[37520]="SubSecTime";x[37521]="SubSecTimeOriginal";x[37522]="SubSecTimeDigitized";x[37888]="Temperature";x[37889]="Humidity";x[37890]="Pressure";x[37891]="WaterDepth";x[37892]="Acceleration";x[37893]="CameraElevationAngle";x[42016]="ImageUniqueID";x[42032]="CameraOwnerName";x[42033]="BodySerialNumber"; x[42034]="LensSpecification";x[42035]="LensMake";x[42036]="LensModel";x[42037]="LensSerialNumber";x[33434]="ExposureTime";x[33437]="FNumber";x[34850]="ExposureProgram";x[34852]="SpectralSensitivity";x[34855]="PhotographicSensitivity";x[34856]="OECF";x[34864]="SensitivityType";x[34865]="StandardOutputSensitivity";x[34866]="RecommendedExposureIndex";x[34867]="ISOSpeed";x[34868]="ISOSpeedLatitudeyyy";x[34869]="ISOSpeedLatitudezzz";x[37377]="ShutterSpeedValue";x[37378]="ApertureValue";x[37379]="BrightnessValue"; x[37380]="ExposureBiasValue";x[37381]="MaxApertureValue";x[37382]="SubjectDistance";x[37383]="MeteringMode";x[37384]="LightSource";x[37385]="Flash";x[37386]="FocalLength";x[37396]="SubjectArea";x[41483]="FlashEnergy";x[41484]="SpatialFrequencyResponse";x[41486]="FocalPlaneXResolution";x[41487]="FocalPlaneYResolution";x[41488]="FocalPlaneResolutionUnit";x[41492]="SubjectLocation";x[41493]="ExposureIndex";x[41495]="SensingMethod";x[41728]="FileSource";x[41729]="SceneType";x[41730]="CFAPattern";x[41985]= "CustomRendered";x[41986]="ExposureMode";x[41987]="WhiteBalance";x[41988]="DigitalZoomRatio";x[41989]="FocalLengthIn35mmFilm";x[41990]="SceneCaptureType";x[41991]="GainControl";x[41992]="Contrast";x[41993]="Saturation";x[41994]="Sharpness";x[41995]="DeviceSettingDescription";x[41996]="SubjectDistanceRange";return x})(),N=(()=>{const x=[];x[1024]="GTModelTypeGeoKey";x[1025]="GTRasterTypeGeoKey";x[1026]="GTCitationGeoKey";x[2048]="GeographicTypeGeoKey";x[2049]="GeogCitationGeoKey";x[2050]="GeogGeodeticDatumGeoKey"; x[2051]="GeogPrimeMeridianGeoKey";x[2052]="GeogLinearUnitsGeoKey";x[2053]="GeogLinearUnitSizeGeoKey";x[2054]="GeogAngularUnitsGeoKey";x[2055]="GeogAngularUnitSizeGeoKey";x[2056]="GeogEllipsoidGeoKey";x[2057]="GeogSemiMajorAxisGeoKey";x[2058]="GeogSemiMinorAxisGeoKey";x[2059]="GeogInvFlatteningGeoKey";x[2061]="GeogPrimeMeridianLongGeoKey";x[2060]="GeogAzimuthUnitsGeoKey";x[3072]="ProjectedCSTypeGeoKey";x[3073]="PCSCitationGeoKey";x[3074]="ProjectionGeoKey";x[3075]="ProjCoordTransGeoKey";x[3076]="ProjLinearUnitsGeoKey"; x[3077]="ProjLinearUnitSizeGeoKey";x[3078]="ProjStdParallel1GeoKey";x[3079]="ProjStdParallel2GeoKey";x[3080]="ProjNatOriginLongGeoKey";x[3081]="ProjNatOriginLatGeoKey";x[3082]="ProjFalseEastingGeoKey";x[3083]="ProjFalseNorthingGeoKey";x[3084]="ProjFalseOriginLongGeoKey";x[3085]="ProjFalseOriginLatGeoKey";x[3086]="ProjFalseOriginEastingGeoKey";x[3087]="ProjFalseOriginNorthingGeoKey";x[3088]="ProjCenterLongGeoKey";x[3090]="ProjCenterEastingGeoKey";x[3091]="ProjCenterNorthingGeoKey";x[3092]="ProjScaleAtNatOriginGeoKey"; x[3093]="ProjScaleAtCenterGeoKey";x[3094]="ProjAzimuthAngleGeoKey";x[3095]="ProjStraightVertPoleLongGeoKey";x[4096]="VerticalCSTypeGeoKey";x[4097]="VerticalCitationGeoKey";x[4098]="VerticalDatumGeoKey";x[4099]="VerticalUnitsGeoKey";return x})(),I=new Map;I.set("EXIFIFD",F);I.set("GPSIFD","GPSVersionID GPSLatitudeRef GPSLatitude GPSLongitudeRef GPSLongitude GPSAltitudeRef GPSAltitude GPSTimeStamp GPSSatellites GPSStatus GPSMeasureMode GPSDOP GPSSpeedRef GPSSpeed GPSTrackRef GPSTrack GPSImgDirectionRef GPSImgDirection GPSMapDatum GPSDestLatitudeRef GPSDestLatitude GPSDestLongitudeRef GPSDestLongitude GPSDestBearingRef GPSDestBearing GPSDestDistanceRef GPSDestDistance GPSProcessingMethod GPSAreaInformation GPSDateStamp GPSDifferential GPSHPositioningError".split(" ")); return{tiffTags:C,ifdTags:I,geoKeys:N,getTagName:(x,S)=>{S=(S||C)[x];void 0===S&&(S="unknown"+String(x));return S}}})},"esri/layers/support/rasterFormats/utils":function(){define(["exports"],function(C){const F=new ArrayBuffer(4),N=new Uint8Array(F);(new Uint32Array(F))[0]=1;C.isPlatformLittleEndian=1===N[0];Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/renderers/support/rasterRendererHelper":function(){define("exports ../../Color ../../rasterRenderers ../../core/unitUtils ../../layers/support/Field ../FlowRenderer ./AuthoringInfo ./ClassBreakInfo ./colorRampUtils ./rasterRendererChecks ./UniqueValueInfo ../visualVariables/ColorVariable ../visualVariables/SizeVariable ../visualVariables/support/ColorStop ../../rest/support/ClassBreaksDefinition ../../rest/support/generateRendererUtils ../../rest/support/MultipartColorRamp ../../symbols/SimpleFillSymbol ../RasterStretchRenderer ../UniqueValueRenderer ../RasterColormapRenderer ../RasterShadedReliefRenderer ../ClassBreaksRenderer ../VectorFieldRenderer".split(" "), function(C,F,N,I,x,S,X,Y,L,R,Q,h,f,g,n,k,D,v,t,a,d,e,l,c){function b(J,O){J=m(J,O?.variableName);const {bandCount:Z}=J;let {bandIds:aa,stretchType:W}=O||{};aa?.some(na=>na>=Z)&&(aa=null);let da=J.statistics,ca=J.histograms;1da[na]),ca=null==ca?null:aa?.map(na=>ca[na])):aa=[0];null==W&&(W=p(J));let fa=!1;switch(W){case "none":fa=!1;break;case "percent-clip":fa=!ca?.length;break;default:fa=!da?.length}var {dataType:ha}=J;ha=1===aa?.length&&V.has(ha)? P:null;ha=new t({stretchType:W,dynamicRangeAdjustment:fa,colorRamp:ha,outputMin:0,outputMax:255,gamma:1===aa?.length?[1]:[1,1,1],useGamma:!1});"percent-clip"===W?ha.maxPercent=ha.minPercent=.25:"standard-deviation"===W&&(ha.numberOfStandardDeviations=2);if(!fa&&(null!=J.multidimensionalInfo||O?.includeStatisticsInStretch))if("percent-clip"===W)ha.histograms=ca;else if("min-max"===W||"standard-deviation"===W)ha.statistics=da;return ha}function m(J,O){var {multidimensionalInfo:Z}=J;if(!O||!Z)return J; Z=Z.variables.find(aa=>aa.name===O);if(!Z)return J;J=J.clone();if(Z){const {statistics:aa,histograms:W}=Z;aa?.length&&(J.statistics=aa.map(da=>({min:da.min,max:da.max,avg:da.avg,stddev:da.stddev})));W?.length&&(J.histograms=W)}return J}function r(J){const O=J.bandCount;if(1===O)return null;if(2===O)return[0];({bandInfos:J}=J);let Z;if(J.length===O){const {red:aa,green:W,blue:da,nir:ca}=u(J);null!=aa&&null!=W&&null!=da?Z=[aa,W,da]:null!=ca&&null!=aa&&null!=W&&(Z=[ca,aa,W])}!Z&&3<=O&&(Z=[0,1,2]);return Z} function u(J){const O={};for(let W=0;W=aa&&480<=Z&&540>=Z?O.blue=W:null==O.green&&490<=aa&&560>=aa&&560<=Z&&610>=Z?O.green=W:null==O.red&&595<=aa&&670>=aa&&660<=Z&&730>=Z?O.red=W:null==O.nir&&700<=aa&&860>=aa&&800<=Z&&950>=Z&& (O.nir=W))}return O}function p(J){let O="percent-clip";const {pixelType:Z,dataType:aa,histograms:W,statistics:da,multidimensionalInfo:ca}=J;J=V.has(aa)||"generic"===aa&&null!=ca;"u8"!==Z||"processed"!==aa&&null!=W&&null!=da?"u8"===Z||"elevation"===aa||J?O="min-max":null!=W?O="percent-clip":null!=da&&(O="min-max"):O="none";return O}function q(J,O,Z,aa){if(!R.isUVRendererSupported(J,O))return null;const {attributeTable:W,statistics:da}=J,ca=y(W,O),fa=H(W,"red"),ha=H(W,"green"),na=H(W,"blue");J=new X; const ma=[],ia=new Set,ua=!!(fa&&ha&&na);if(null!=W)W.features.forEach(pa=>{var ta=pa.attributes[ca.name];ia.has(pa.attributes[ca.name])||null==ta||(ia.add(ta),ta=!ua||"single"!==fa.type&&"double"!==fa.type||"single"!==ha.type&&"double"!==ha.type||"single"!==na.type&&"double"!==na.type||W.features.some(ra=>1pa.value&&"string"===typeof pa.value.valueOf()?0:pa.value>ta.value?1:-1);if(!ua){const pa=L.convertColorRampToColormap(U,{numColors:ma.length});ma.forEach((ta,ra)=>ta.symbol.color=new F(pa[ra].slice(1, 4)));J.colorRamp=U}if(Z||aa){const pa=Z||L.convertColorRampToColormap(aa,{numColors:ma.length}).map(ta=>ta.slice(1));ma.forEach((ta,ra)=>ta.symbol.color=new F(pa[ra]));J.colorRamp=aa}return new a({field:ca.name,uniqueValueInfos:ma,authoringInfo:J})}function y(J,O,Z){let aa;null!=J?(aa=O?J.fields.find(W=>O.toLowerCase()===W.name.toLowerCase()):z(J.fields),aa||(Z||(aa=J.fields.find(W=>"string"===W.type)),aa||=H(J,"value"))):aa=new x({name:"value"});return aa}function z(J){let O;for(let Z=0;ZZ.name.toLowerCase()===O)}function E(J){if(!R.isColormapRendererSupported(J))return null;let O;const {attributeTable:Z,colormap:aa}=J;if(null!=Z){const W=H(Z,"value"),da=y(Z,null,!0);"string"===da.type&&(O={},Z.features.forEach(ca=>{ca=ca.attributes;O[ca[W.name]]=da?ca[da.name]:ca[W.name]}))}return d.createFromColormap(aa, O)}function K(J,O,Z){let aa=0,W=0;null!=J.attributeTable?(J=J.attributeTable,aa=W=J.features[0].attributes[O.name],J.features.forEach(da=>{da=da.attributes[O.name];daW&&(W=da)})):null!=J.histograms&&(J=J.histograms,aa=J[0].min,W=J[0].max);return(W-aa)/Z}function w(J){if(!R.isVectorFieldRendererSupported(J))return null;if(null!=J.statistics&&J.statistics.length&&("vector-magdir"===J.dataType||"vector-uv"===J.dataType)){const {minMagnitude:Z,maxMagnitude:aa}=G(J.dataType,J.statistics); var O=[new f({field:"Magnitude",minSize:10,maxSize:40,minDataValue:Z,maxDataValue:aa})]}J=null!=J.multidimensionalInfo?T.get(J.multidimensionalInfo.variables[0].unit):void 0;O=new c({visualVariables:O,inputUnit:J,rotationType:"geographic"});O.visualVariables=[...O.sizeVariables,...O.rotationVariables];return O}function A(J){return{color:J.symbolLayers[0].material?.color,type:"esriSFS",style:"esriSFSSolid"}}function G(J,O){if("vector-magdir"===J)J=O[0].min,O=O[0].max;else{const Z=O[0].min,aa=O[0].max, W=O[1].min;O=O[1].max;J=0;O=Math.max(Math.abs(Z),Math.abs(W),Math.abs(aa),Math.abs(O))}return{minMagnitude:J,maxMagnitude:O}}const P=D.fromJSON({type:"multipart",colorRamps:[{fromColor:[0,0,255],toColor:[0,255,255]},{fromColor:[0,255,255],toColor:[255,255,0]},{fromColor:[255,255,0],toColor:[255,0,0]}]}),U=D.fromJSON(L.predefinedJsonColorRamps[0]),V=new Set("scientific standard-time vector-uv vector-magdir vector-u vector-v vector-magnitude vector-direction".split(" ")),T=new Map([["m/s","meter-per-second"], ["km/h","kilometer-per-hour"],["knots","knots"],["ft/s","feet-per-second"],["mph","mile-per-hour"]]);C.createClassBreaksRenderer=function(J,O){J=m(J,O?.variableName);const {attributeTable:Z}=J;if(!R.isClassBreaksSupported(J))return null;const aa=null!=J.histograms?J.histograms[0]:null,W=null!=O?.numClasses&&isFinite(O?.numClasses)?O.numClasses:5,da=new X({classificationMethod:O?.classificationMethod,colorRamp:O?.colorRamp});let ca=O?.field||"value";const fa=[],ha=[],na=null!=Z,ma=na&&Z.fields.find(ra=> "count"===ra.name.toLowerCase()),ia=na?Z.fields.find(ra=>ra.name.toLowerCase()===ca.toLowerCase()):void 0;if(ia&&na){ca=ia.name;const ra=Z.features.length;let ya=0;Z.features.forEach(xa=>ya+=(ma?xa.attributes[ma.name]:50)/ra);Z.features.forEach(xa=>{const Aa=xa.attributes[ia.name];xa=ma?xa.attributes[ma.name]:50;if(0za+=Ea/Aa);aa.counts.forEach((Ea,Ja)=>{if(0ra.slice(1)));O=J.classBreaks.map((ra,ya)=>new Y({minValue:ra.minValue,maxValue:ra.maxValue,label:ra.label,symbol:new v({color:ta[ya]})}));return new l({field:ca,classBreakInfos:O,authoringInfo:da})};C.createColormapRenderer=E;C.createDefaultRenderer= function(J,O){const {attributeTable:Z,colormap:aa}=J;if(R.isVectorFieldRendererSupported(J)){var W=w(J);if(null!=W)return W}return O?.rasterFunctionColorRamp?(J=b(J,O),J.colorRamp=O.rasterFunctionColorRamp,J):null!=aa&&(W=E(J),null!=W)||null!=Z&&(W=q(J),null!=W)?W:b(J,O)};C.createFlowRenderer=function(J){if(!R.isFlowRendererSupported(J))return null;let O;if(null!=J.statistics&&0aa);return O?.length?O.map(aa=>Z[aa]):Z};C.getClassField=y;C.getDefaultBandCombination=r;C.getDefaultInterpolation=function(J,O,Z){const aa=Z?.toLowerCase().replace("bicubic","cubic");Z=["nearest","bilinear","cubic","majority"].find(W=>W===aa);return"Map"===O?Z??"bilinear":"standard-time"===J.dataType?Z??"nearest":"thematic"===J.dataType||J.attributeTable||J.colormap?"nearest"===Z||"majority"===Z?Z:"nearest":Z??"bilinear"};C.getDefinedInterval= K;C.getField=H;C.getFunctionColorramp=function(J){return"Function"===J.datasetFormat&&"Colormap"===J.rasterFunction.functionName?J.rasterFunction.colorRamp:void 0};C.getSupportedRendererTypes=function(J,O=!1){const Z=["raster-stretch"];R.isColormapRendererSupported(J,O)&&Z.push("raster-colormap");R.isUVRendererSupported(J)&&Z.push("unique-value");R.isClassBreaksSupported(J,O)&&Z.push("class-breaks");R.isShadedReliefRendererSupported(J)&&Z.push("raster-shaded-relief");R.isVectorFieldRendererSupported(J)&& Z.push("vector-field");R.isFlowRendererSupported(J)&&Z.push("flow");return Z};C.getVariableRasterInfo=m;C.getWellKnownBandIndexes=u;C.normalizeRendererJSON=function(J){if("uniqueValue"===J.type){var O=J.uniqueValueInfos;O?.[0].symbol?.symbolLayers?.length&&(J.uniqueValueInfos=O?.map(Z=>({value:Z.value,label:Z.label,symbol:Z.symbol?A(Z.symbol):null})));return J}"classBreaks"===J.type&&(O=J.classBreakInfos,O[0].symbol?.symbolLayers?.length&&(J.classBreakInfos=O.map(Z=>({classMinValue:Z.classMinValue, classMaxValue:Z.classMaxValue,label:Z.label,symbol:Z.symbol?A(Z.symbol):null}))));return J};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/renderers/support/rasterRendererChecks":function(){define(["exports"],function(C){function F(N){return["u8","s8"].includes(N.pixelType)&&null!=N.statistics?.[0]?.min&&null!=N.statistics[0]?.max&&1===N.bandCount}C.isClassBreaksSupported=function(N,I=!1){const {attributeTable:x,bandCount:S}=N;return 1===S&&(!I||null!=x||null!=N.histograms)}; C.isColormapRendererSupported=function(N,I=!1){const {bandCount:x,colormap:S,pixelType:X}=N;return 1===x&&(!!S?.length||!I&&"u8"===X)};C.isFlowRendererSupported=function(N){({dataType:N}=N);return"vector-uv"===N||"vector-magdir"===N};C.isShadedReliefRendererSupported=function(N){const {bandCount:I,dataType:x,pixelType:S}=N;return"elevation"===x||"generic"===x&&1===I&&("s16"===S||"s32"===S||"f32"===S||"f64"===S)};C.isSingleBand8BitRasterWithStats=F;C.isUVRendererSupported=function(N,I){const {attributeTable:x, bandCount:S}=N;return null==x&&F(N)?!0:null==x||1X.name.toLowerCase()===I.toLowerCase())?!1:!0};C.isVectorFieldRendererSupported=function(N){({dataType:N}=N);return"vector-uv"===N||"vector-magdir"===N};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/rest/support/ClassBreaksDefinition":function(){define("../../chunks/tslib.es6 ../../core/jsonMap ../../core/JSONSupport ../../core/accessorSupport/decorators/property ../../core/has ../../core/Logger ../../core/RandomLCG ../../core/accessorSupport/decorators/enumeration ../../core/accessorSupport/decorators/subclass".split(" "), function(C,F,N,I,x,S,X,Y,L){x=new F.JSONMap({esriClassifyEqualInterval:"equal-interval",esriClassifyManual:"manual",esriClassifyNaturalBreaks:"natural-breaks",esriClassifyQuantile:"quantile",esriClassifyStandardDeviation:"standard-deviation",esriClassifyDefinedInterval:"defined-interval"});F=new F.JSONMap({esriNormalizeByLog:"log",esriNormalizeByPercentOfTotal:"percent-of-total",esriNormalizeByField:"field"});N=class extends N.JSONSupport{constructor(R){super(R);this.type="class-breaks-definition"; this.normalizationType=this.normalizationField=this.classificationMethod=this.classificationField=this.breakCount=null}set standardDeviationInterval(R){"standard-deviation"===this.classificationMethod&&this._set("standardDeviationInterval",R)}set definedInterval(R){"defined-interval"===this.classificationMethod&&this._set("definedInterval",R)}};C.__decorate([Y.enumeration({classBreaksDef:"class-breaks-definition"})],N.prototype,"type",void 0);C.__decorate([I.property({json:{write:!0}})],N.prototype, "breakCount",void 0);C.__decorate([I.property({json:{write:!0}})],N.prototype,"classificationField",void 0);C.__decorate([I.property({type:String,json:{read:x.read,write:x.write}})],N.prototype,"classificationMethod",void 0);C.__decorate([I.property({json:{write:!0}})],N.prototype,"normalizationField",void 0);C.__decorate([I.property({json:{read:F.read,write:F.write}})],N.prototype,"normalizationType",void 0);C.__decorate([I.property({value:null,json:{write:!0}})],N.prototype,"standardDeviationInterval", null);C.__decorate([I.property({value:null,json:{write:!0}})],N.prototype,"definedInterval",null);return N=C.__decorate([L.subclass("esri.rest.support.ClassBreaksDefinition")],N)})},"esri/rest/support/generateRendererUtils":function(){define(["exports","../../core/Logger"],function(C,F){function N(h){var f=h.definition;const {classificationMethod:g,normalizationType:n,definedInterval:k}=f;f=f.breakCount??1;const D=[];var v=h.values;if(0===v.length)return[];v=v.sort((c,b)=>c-b);var t=v[0],a=v[v.length- 1];if("equal-interval"===g)if(v.length>=f){v=(a-t)/f;h=t;for(var d=1;d{D.push({minValue:c,maxValue:c,label:I(c,c,n)})});else if("natural-breaks"===g){v=x(v);h=S(v.uniqueValues,h.valueFrequency||v.valueFrequency,f);for(d=1;dd&&(e=Number(v.uniqueValues[h[d]].toFixed(6)),D.push({minValue:t,maxValue:e,label:I(t,e,n)}), t=e);D.push({minValue:t,maxValue:a,label:I(t,a,n)})}else if("quantile"===g)if(v.length>=f&&t!==a){h=Math.ceil(v.length/f);d=0;for(e=1;ev.length&&(l=v.length-1);0>l&&(l=0);D.push({minValue:t,maxValue:v[l],label:I(t,v[l],n)});t=v[l];d+=h;h=Math.ceil((v.length-d)/(f-e))}D.push({minValue:t,maxValue:a,label:I(t,a,n)})}else for(f=-1,a=0;an&& (g=n);for(var D=0;Db&&l;b++){0===b&&(l=!1);for(var c=0;cMath.abs(D-a[v-1]))h[v]=l;else if(vMath.abs(D-a[v+1])){h[v+1]=l-1;break}l=t;t=0; D=[];v=[];for(let c=0;cl){for(f=0;f=D&&F.getLogger("esri.rest.support.generateRendererUtils").warn("Exception in Natural Breaks calculation");k/=D;D=0;for(v=f[h]+1;v<=f[h+1];v++)D+=n[v]*(g[v]-k)**2;return{sbMean:k,sbSdcm:D}}C.createGenerateRendererClassBreaks=function(h){const {normalizationTotal:f}=h;return{classBreaks:N(h),normalizationTotal:f}};C.createGenerateRendererUniqueValues=function(h){h=x(h);const f=[],g=h.uniqueValues.length;for(let n=0;n=a.length}function k(a){return"percentClip"===a||"histogramEqualization"===a}function D(a){return null!=a&&0r.lut[q]),offset:r.offset});p=R.lookupPixels(a,r)}else u=Q.getStretchCutoff(b,{rasterInfo:e,pixelBlock:a,bandIds:d}),p=Q.stretch(a,{...u,gamma:p,isRenderer:!0});if(b.colorRamp){if(this._isLUTChanged(!0)&& !this.bind().success)return a;p=R.colorize(p,this.lookup?.colormapLut)}return p}_symbolizeShadedRelief(a,d){var e=this.rendererJSON;d=h.hillshade(a,{...e,...d});if(!e.colorRamp||this._isLUTChanged(!0)&&!this.bind().success)return d;e=this.lookup?this.lookup.hsvMap:null;if(!e)return d;h.tintHillshade(d,a,e,this.rasterInfo.statistics?.[0]??{min:0,max:8E3});return d}_isVectorFieldData(){const {bandCount:a,dataType:d}=this.rasterInfo;return 2===a&&("vector-magdir"===d||"vector-uv"===d)}_updateVectorFieldRenderer(){return this._isVectorFieldData()? {success:!0}:{success:!1,error:`Unsupported data type "${this.rasterInfo.dataType}"; VectorFieldRenderer only supports "vector-magdir" and "vector-uv".`}}_updateFlowRenderer(){return this._isVectorFieldData()?{success:!0}:{success:!1,error:`Unsupported data type "${this.rasterInfo.dataType}"; FlowRenderer only supports "vector-magdir" and "vector-uv".`}}_updateUVRenderer(a){const {bandCount:d,attributeTable:e,pixelType:l}=this.rasterInfo,c=a.field1;if(!c)return{success:!1,error:"Unsupported renderer; missing UniqueValueRenderer.field."}; const b=a.defaultSymbol;var m=1===d&&["u8","s8"].includes(l);if(!g.isUVRendererSupported(this.rasterInfo,c)&&!m)return{success:!1,error:"Unsupported data; UniqueValueRenderer is only supported on single band data with a valid raster attribute table."};const r=[];if(null!=e){const u=e.fields.find(p=>"value"===p.name.toLowerCase());if(!u)return{success:!1,error:"Unsupported data; the data's raster attribute table does not have a value field."};e.features.forEach(p=>{const q=a.uniqueValueInfos?.find(y=> String(y.value)===String(p.attributes[c]))?.symbol?.color;q?r.push([p.attributes[u.name]].concat(q)):b&&r.push([p.attributes[u.name]].concat(b.color))})}else{if("value"!==c.toLowerCase())return{success:!1,error:'Unsupported renderer; UniqueValueRenderer.field must be "Value" when raster attribute table is not available.'};a.uniqueValueInfos?.forEach(u=>{const p=u?.symbol?.color;p?r.push([parseInt(""+u.value,10)].concat(p)):b&&r.push([parseInt(""+u.value,10)].concat(b?.color))})}if(0===r.length)return{success:!1, error:"Invalid UniqueValueRenderer. Cannot find matching records in the raster attribute table."};m=R.createColormapLUT({colormap:r});this.lookup={rendererJSON:a,colormapLut:m};this.canRenderInWebGL=n(m?.indexedColormap);return{success:!0}}_updateColormapRenderer(a){if(!g.isColormapRendererSupported(this.rasterInfo))return{success:!1,error:"Unsupported data; the data source does not have a colormap."};var d=a.colormapInfos.map(e=>[e.value].concat(e.color)).sort((e,l)=>e[0]-l[0]);if(!d||0===d.length)return{success:!1, error:"Unsupported renderer; ColormapRenderer must have meaningful colormapInfos."};d=R.createColormapLUT({colormap:d});this.lookup={rendererJSON:a,colormapLut:d};this.canRenderInWebGL=n(d?.indexedColormap);return{success:!0}}_updateShadedReliefRenderer(a){if(!g.isShadedReliefRendererSupported(this.rasterInfo))return{success:!1,error:`Unsupported data type "${this.rasterInfo.dataType}"; ShadedReliefRenderer only supports "elevation", or single band float/s16 data.`};if(a.colorRamp){var d=f.convertColorRampToColormap(a.colorRamp, {interpolateAlpha:!0});d=R.createColormapLUT({colormap:d});const e=[],l=d.indexedColormap;for(let c=0;c"value"===m.name.toLowerCase()):null,c=null!=d?d.fields.find(m=>m.name.toLowerCase()=== a.field.toLowerCase()):null,b=null!=l&&null!==c;return{canUseIndexedLUT:["u8","u16","s8","s16"].includes(e)||b,tableValueField:l,tableBreakField:c}}_updateClassBreaksRenderer(a){var {attributeTable:d}=this.rasterInfo;const {canUseIndexedLUT:e,tableValueField:l,tableBreakField:c}=this._analyzeClassBreaks(a);var b=a.classBreakInfos;if(!b?.length)return{success:!1,error:"Unsupported renderer; missing or invalid ClassBreaksRenderer.classBreakInfos."};b=b.sort((q,y)=>q.classMaxValue-y.classMaxValue);var m= b[b.length-1],r=a.minValue;if(!e){var u=[];for(var p=0;p K>H);E&&u.push([d].concat(E.symbol.color))}}else{r=Math.floor(a.minValue);for(p=0;pQ.createHistogramEqualizationLUT(q)),this.lookup={rendererJSON:a,histogramLut:u}):p&&(l=Q.getStretchCutoff(a,{rasterInfo:this.rasterInfo}),u=Q.createStretchLUT({pixelType:u,...l,gamma:b?r:null,rounding:"floor"}),this.lookup={rendererJSON:a,stretchLut:u});m&&!t(m)&&(u=f.convertColorRampToColormap(m,{interpolateAlpha:!0}),this.lookup||(this.lookup={rendererJSON:a}),this.lookup.colormapLut=R.createColormapLUT({colormap:u}),this.lookup.rendererJSON= a);this.lookup.gamma=b&&r?.length?r:null;this.canRenderInWebGL=!0;return{success:!0}}_generateStretchWebGLParams(a,d,e){let l=null,c=null;var b=this.lookup?.colormapLut;d.colorRamp&&b&&(l=b.indexedColormap,c=b.offset);"histogramEqualization"===d.stretchType&&(d={...d,stretchType:"minMax"});({gamma:b}=this.lookup);const m=!(!d.useGamma||!b?.some(E=>1!==E)),{minCutOff:r,maxCutOff:u,outMin:p,outMax:q}=Q.getStretchCutoff(d,{rasterInfo:this.rasterInfo,pixelBlock:a,bandIds:e});var y=0;null!=a&&(y=a.getPlaneCount(), 2===y&&(a=a.clone(),a.statistics=[a.statistics[0]],a.pixels=[a.pixels[0]]));({bandCount:a}=this.rasterInfo);e=Math.min(3,e?.length||y||a,a);a=new Float32Array(e);y=l||m?1:255;let z;for(z=0;z"sizeInfo"===H.type)??{type:"sizeInfo",field:"Magnitude",maxDataValue:p,maxSize:.8*b,minDataValue:u,minSize:.2*b},y=q.minDataValue??u,z=q.maxDataValue??p;p=null!=q.maxSize&&null!=q.minSize?[q.minSize/b,q.maxSize/b]:[.2,.8];"wind_speed"===d&&(p[0]=p[1]=(p[0]+p[1])/2);u=null!=y&&null!=z?[y,z]:null;if("classified_arrow"===d)if(null!=y&&null!= z&&null!=q)for(r=[],y=(q.maxDataValue-q.minDataValue)/5,z=0;6>z;z++)r.push(q.minDataValue+y*z);else r=[0,1E-6,3.5,7,10.5,14];q="flow_to"===m===("ocean_current_kn"===d||"ocean_current_m"===d)?0:Math.PI;y=c?.find(H=>"rotationInfo"===H.type);return{breakValues:r,dataRange:u,inputUnit:e,outputUnit:l,symbolTileSize:b,symbolPercentRange:p,style:d||"single_arrow",rotation:q,rotationType:this.rasterInfo.storageInfo?.tileInfo&&"vector-uv"===this.rasterInfo.dataType?"geographic":y?.rotationType||a.rotationType, type:"vectorField"}}};C.__decorate([x.property({json:{write:!0}})],N.prototype,"rendererJSON",void 0);C.__decorate([x.property({type:L,json:{write:!0}})],N.prototype,"rasterInfo",void 0);C.__decorate([x.property({json:{write:!0}})],N.prototype,"lookup",void 0);C.__decorate([x.property()],N.prototype,"canRenderInWebGL",void 0);return N=C.__decorate([Y.subclass("esri.renderers.support.RasterSymbolizer")],N)})},"esri/layers/support/rasterFunctions/stretchUtils":function(){define(["exports","../../../core/maybe", "../PixelBlock","../rasterFormats/pixelRangeUtils","../../../renderers/support/stretchRendererUtils"],function(C,F,N,I,x){function S(f,g=256){g=Math.min(g,256);const {size:n,counts:k}=f;f=new Uint8Array(n);var D=k.reduce((e,l)=>e+l/g,0);let v=0;var t=0;let a=0,d=D;for(let e=0;en;n++)0f?k=(200*n-25500+510*g)/(2*(100-f))+128:0>=f&&-100k?0:k;return D}function Y(f,g,n,k){k=Infinity;let D=-Infinity;var v=0,t=0,a=0,d=0;const e=f.length;var l=new Map,c=[];for(let b=0;bd&&(d=r,a=m);k=mD?m:D;v+=m;t++}}if(0===t)return{statistics:{min:0, max:0,avg:0,stddev:0,mode:0,median:0},histogram:null};v/=t;d=0;for(l=0;lb).length:e;d=1>=l?0:Math.sqrt(d/(l-1));c.sort((b,m)=>b-m);l=t>>>1;a={min:k,max:D,avg:v,stddev:d,mode:a,median:t%2?c[Math.floor(l)]:(c[l-1]+c[l])/2};if(["u8","s8","u4","u2","u1"].includes(n)){t=D-k+1;n=new Uint32Array(t);for(c=0;cf;f++)n[f]=t[f];n[255]=t[255]+t[256];return{statistics:a,histogram:{min:k,max:D,size:256,counts:n}}}function L(f){if(!f?.pixels?.length)return null;const {pixels:g,mask:n,bandMasks:k,pixelType:D}=f,v=f.width*f.height,t=g.length,a=[],d=[];let e,l;for(let y=0;yl?u:l;c[u]++}}else for(m=0;ml?r:l,c[r]++;c=c.slice(e,l+1)}else{u=!1;f.statistics||(f.updateStatistics(),u=!0);var p=f.statistics;e=p[y].minValue;l=p[y].maxValue;r=(l-e)/256;if(0===r)for(!p||f.validPixelCount||u||f.updateStatistics(),b=(f.validPixelCount||f.width*f.height)/256,m=0;256>m;m++)c[m]=Math.round(b*(m+1))-Math.round(b*m);else{u=new Uint32Array(257);for(p=0;pb;b++)c[b]= u[b];c[255]=u[255]+u[256]}}r="u8"===D?e-.5:e;u="u8"===D?l+.5:l;a.push({min:r,max:u,size:c.length,counts:c});m=p=b=0;for(var q=0;qk[d]),maxCutOff:g.map(d=>D[d]),histogramLut:a?g.map(d=>a[d]):null,outMin:v,outMax:t}}function Q(f,g){const n=new Float32Array(f);for(let k=0;k=t||255<=t)t=1;else{var a=0;150!==t&&(a=150>=t?45*Math.cos(.01047*t):17*Math.sin(.021*t));a=Math.log((t+a)/255);0===a?t=1:(t=Math.log(t/255)/a,t=isNaN(t)?1:Math.min(9.9,Math.max(.01,t)))}v.call(D,t)}return k};C.computeStatisticsHistograms=function(f){const {pixels:g,mask:n,pixelType:k,bandMasks:D}=f;var v=g.map((t,a)=>Y(t,D?.[a]??n,k));f=v.map(({statistics:t})=>t);v=v.map(({histogram:t})=>t);return{statistics:f,histograms:v}};C.createContrastBrightnessLUT=X;C.createHistogramEqualizationLUT= S;C.createStretchLUT=function(f){const {minCutOff:g,maxCutOff:n,gamma:k,pixelType:D,rounding:v}=f,t=f.outMin||0,a=f.outMax||255;if(!["u8","u16","s8","s16"].includes(D))return null;const d=g.length;let e,l,c=0;"s8"===D?c=-127:"s16"===D&&(c=-32767);let b=256;["u16","s16"].includes(D)&&(b=65536);var m=[],r=[];const u=a-t;for(e=0;e=d)for(m=Q(d,k),e=0;eg[e]?(H=y*u*p**(1/k[e])+t,z[l]="floor"===v?Math.floor(H):"round"===v?Math.round(H):H):z[l]=H>=n[e]?a:t}q[e]=z}else for(e=0;e=n[e]?z[l]=a:(r=(H-g[e])*m[e]+t,z[l]="floor"===v?Math.floor(r):"round"===v?Math.round(r):r);q[e]=z}if(null!=f.contrastOffset)for(f=X(f.contrastOffset,f.brightnessOffset),e=0;e[H.minValue,H.maxValue,0,0]):(g=L(n),t=null!=g?g.statistics:null,g=null!=g?g.histograms:null):(t=f.statistics?.length?f.statistics:v.statistics,g="histograms"in f?f.histograms:void 0,g||(g=v.histograms));"percentClip"!==a&&"histogramEqualization"!==a||g?.length||(a="minMax");var d=t?.length||g?.length||v.bandCount;const e=[],l=[];let c,b,m;t&&!Array.isArray(t[0])&&(t=t.map(H=>[H.min,H.max,H.avg,H.stddev]));const [r,u]=I.getPixelValueRange(v.pixelType); if(!t?.length){t=[];for(b=0;bq[1]&&(l[b]=q[1])}break;case "histogramEqualization":F.assertIsSome(g);for(b=0;by){e[b]=t.min+d*(m+c);break}y=(1-(f.maxPercent||0)/100)*p;l[b]=t.max+c;for(m=t.size-2;0<=m;m--)if(q[m]S(H)))):(a=f.max||255,f=f.min||0);return R({minCutOff:e,maxCutOff:l,outMax:a,outMin:f,histogramLut:z},k)};C.stretch=function(f,g){if(!f?.pixels?.length)return f;const {mask:n,bandMasks:k,width:D,height:v,pixels:t}=f,{minCutOff:a,maxCutOff:d,gamma:e}=g;var l=g.outMin||0;const c=g.outMax||255,b=D*v,m=g.outputPixelType||"u8";f=f.pixels.map(()=>N.createEmptyBand(m,b));const r=f.length;var u=c- l,p=[],q=[];for(var y=0;y=r){p=Q(r,e);for(var z=0;za[z]?(E=A*u*w**(1/e[z])+l,f[z][K]=g?Math.floor(E):y?Math.round(E):E):f[z][K]=E>=d[z]?c:l}}}else for(u=0;ua[u]?(H=(H-a[u])*p[u]+l,f[u][z]=g?Math.floor(H):y?Math.round(H):H):f[u][z]=H>=d[u]?c:l;l=new N({width:D,height:v,mask:n,bandMasks:k,pixels:f,pixelType:m});l.updateStatistics();return l};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/layers/support/rasterFunctions/surfaceUtils":function(){define(["exports","../PixelBlock","../SimpleBandStatistics","./pixelUtils"],function(C,F,N,I){function x(L){let {altitude:R,azimuth:Q}=L;const {hillshadeType:h,pixelSizePower:f= 1,pixelSizeFactor:g=1,scalingType:n,isGCS:k,resolution:D}=L;var v="multi-directional"===h?2*L.zFactor:L.zFactor;const {x:t,y:a}=D;L=v/(8*t);var d=v/(8*a);k&&.001H+E);r=r.map(H=>H/u);const p="multi-directional"===h?b.length:1,q=new Float32Array(6),y=new Float32Array(6),z=new Float32Array(6);if("multi-directional"===h)for(let H=0;H k[z-Q-1]+k[z-Q]+k[z-Q+1]+k[z-1]+k[z+1]+k[z+Q-1]+k[z+Q]+k[z+Q+1]){g[z]=0;continue}var l=k[z-Q-1]?L[z-Q-1]:L[z];var c=k[z-Q]?L[z-Q]:L[z];var b=k[z-Q+1]?L[z-Q+1]:L[z];var m=k[z-1]?L[z-1]:L[z];var r=k[z+1]?L[z+1]:L[z];d=k[z+Q-1]?L[z+Q-1]:L[z];var u=k[z+Q]?L[z+Q]:L[z];e=k[z+Q+1]?L[z+Q+1]:L[z]}else l=L[z-Q-1],c=L[z-Q],b=L[z-Q+1],m=L[z-1],r=L[z+1],d=L[z+Q-1],u=L[z+Q],e=L[z+Q+1];D[z]=b+r+r+e-(l+m+m+d);v[z]=d+u+u+e-(l+c+c+b);if(null!=a){var p=L[z];const H=.5*(m+r)-p;p=.5*(c+u)-p;"standard"===R?a[z]=-t*(H+ p):(l=(-l+b+d-e)/4,m=(-m+r)/2,c=(c-u)/2,u=m*m,r=c*c,(b=u+r)&&(a[z]="profile"===R?t*(H*u+p*r+l*m*c)/b:-t*(H*r+p*u-l*m*c)/b))}}}}return{outMask:n?g:null,dzxs:D,dzys:v,curvatures:a}}function X(L,R,Q){for(var h=0;hl&&(l+=360),360===l?l=0:360r&&(r=0),E=r;else{const K=k.length;for(let w=0;wA&&(A=0);E+=A*v[w]}}l[y]=E&255}}}X(l,d,e);return new F({width:d,height:e,pixels:[l],mask:m,pixelType:"u8",validPixelCount:L.validPixelCount,statistics:[new N.SimpleBandStatistics(0,255)]})};C.slope=function(L,R){if(!I.isValidPixelBlock(L))return L;var Q=R.zFactor,h=R.pixelSizePower??1,f=R.pixelSizeFactor?? 1;const g=R.slopeType;var n=R.isGCS;const {x:k,y:D}=R.resolution;R=Q/(8*k);let v=Q/(8*D);n&&1E-4>Math.abs(Q-1)&&(R/=Y,v/=Y);"adjusted"===g&&(R=(Q+k**h*f)/(8*k),v=(Q+D**h*f)/(8*D));const {dzxs:t,dzys:a,outMask:d}=S(L),{width:e,height:l}=L;Q=new Float32Array(e*l);for(h=1;he?0:e>d?d:e];var l=h[c];e=l*m;const r=e*(1-Math.abs(b%2-1));l-=e;switch(Math.floor(b)){case 0:v[c]= e+l;t[c]=r+l;a[c]=l;break;case 1:v[c]=r+l;t[c]=e+l;a[c]=l;break;case 2:v[c]=l;t[c]=e+l;a[c]=r+l;break;case 3:v[c]=l;t[c]=r+l;a[c]=e+l;break;case 4:v[c]=r+l;t[c]=l;a[c]=e+l;break;case 5:case 6:v[c]=e+l,t[c]=l,a[c]=r+l}}L.pixels=[v,t,a];L.updateStatistics()}};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/rest/query/support/AttachmentInfo":function(){define("../../../chunks/tslib.es6 ../../../core/JSONSupport ../../../core/accessorSupport/decorators/property ../../../core/accessorSupport/ensureType ../../../core/RandomLCG ../../../core/has ../../../core/accessorSupport/decorators/subclass ../../../layers/support/exifUtils".split(" "), function(C,F,N,I,x,S,X,Y){var L;const R={1:{id:1,rotation:0,mirrored:!1},2:{id:2,rotation:0,mirrored:!0},3:{id:3,rotation:180,mirrored:!1},4:{id:4,rotation:180,mirrored:!0},5:{id:5,rotation:-90,mirrored:!0},6:{id:6,rotation:90,mirrored:!1},7:{id:7,rotation:90,mirrored:!0},8:{id:8,rotation:-90,mirrored:!1}};F=L=class extends F.JSONSupport{constructor(Q){super(Q);this.url=this.size=this.parentObjectId=this.parentGlobalId=this.name=this.keywords=this.globalId=this.id=this.exifInfo=this.contentType=null}get orientationInfo(){var {exifInfo:Q}= this;Q=Y.getExifValue({exifName:"Exif IFD0",tagName:"Orientation",exifInfo:Q});return R[Q]||null}clone(){return new L({contentType:this.contentType,exifInfo:this.exifInfo,id:this.id,globalId:this.globalId,keywords:this.keywords,name:this.name,parentGlobalId:this.parentGlobalId,parentObjectId:this.parentObjectId,size:this.size,url:this.url})}};C.__decorate([N.property({type:String})],F.prototype,"contentType",void 0);C.__decorate([N.property()],F.prototype,"exifInfo",void 0);C.__decorate([N.property({readOnly:!0})], F.prototype,"orientationInfo",null);C.__decorate([N.property({type:I.Integer})],F.prototype,"id",void 0);C.__decorate([N.property({type:String})],F.prototype,"globalId",void 0);C.__decorate([N.property({type:String})],F.prototype,"keywords",void 0);C.__decorate([N.property({type:String})],F.prototype,"name",void 0);C.__decorate([N.property({json:{read:!1}})],F.prototype,"parentGlobalId",void 0);C.__decorate([N.property({json:{read:!1}})],F.prototype,"parentObjectId",void 0);C.__decorate([N.property({type:I.Integer})], F.prototype,"size",void 0);C.__decorate([N.property({json:{read:!1}})],F.prototype,"url",void 0);return F=L=C.__decorate([X.subclass("esri.rest.query.support.AttachmentInfo")],F)})},"esri/layers/support/exifUtils":function(){define(["exports"],function(C){function F(N){const {tagName:I,tags:x}=N;return x&&I?x.find(S=>S.name===I)?.value||null:null}C.getExifValue=function(N){const {exifInfo:I,exifName:x,tagName:S}=N;return I&&x&&S?(N=I.find(X=>X.name===x))?F({tagName:S,tags:N.tags}):null:null};Object.defineProperty(C, Symbol.toStringTag,{value:"Module"})})},"esri/rest/imageService/fetchRasterInfo":function(){define("exports ../../request ../../geometry/Extent ../../geometry/Point ../../geometry/SpatialReference ../../layers/support/RasterInfo ../../layers/support/RasterStorageInfo ../utils ../support/FeatureSet".split(" "),function(C,F,N,I,x,S,X,Y,L){async function R(Q,h,f){Q=Y.parseUrl(Q);const {rasterFunction:g,sourceJSON:n}=h||{};h=g?JSON.stringify(g.rasterFunctionDefinition||g):null;h=Y.encode({...Q.query, renderingRule:h,f:"json"});h=Y.asValidOptions(h,f);Q=Q.path;f=n||await F(Q,h).then(r=>r.data);var k=f.hasRasterAttributeTable?F(`${Q}/rasterAttributeTable`,h):null,D=f.hasColormap?F(`${Q}/colormap`,h):null,v=f.hasHistograms?F(`${Q}/histograms`,h):null,t=10.3<=f.currentVersion?F(`${Q}/keyProperties`,h):null;Q=f.hasMultidimensions?F(`${Q}/multidimensionalInfo`,h):null;v=await Promise.allSettled([k,D,v,t,Q]);Q=null;if(f.minValues&&f.minValues.length===f.bandCount)for(Q=[],h=0;h{r.statistics?.length&&r.statistics.forEach(u=>{u.avg=u.mean;u.stddev=u.standardDeviation})});const {defaultVariable:l,serviceDataType:c}=f;l&&l!==e.DefaultVariable&&(e.DefaultVariable=l);c?.includes("esriImageServiceDataTypeVector")&&!c.includes(e.DataType)&&(e.DataType=c.replace("esriImageServiceDataType",""));let b=f.noDataValue;f.noDataValues?.length&& f.noDataValues.some(r=>r!==b)&&(b=f.noDataValues);const m=f.transposeInfo?new X({blockWidth:256,blockHeight:256,pyramidBlockWidth:256,pyramidBlockHeight:256,pyramidScalingFactor:2,compression:"lerc",origin:new I({x:f.extent.xmin,y:f.extent.ymax,spatialReference:D}),firstPyramidLevel:1,maximumPyramidLevel:Math.max(0,Math.round(Math.log(Math.max(h,k))/Math.LN2-8)),transposeInfo:f.transposeInfo}):void 0;return new S({width:h,height:k,bandCount:f.bandCount,extent:N.fromJSON(f.extent),spatialReference:D, pixelSize:new I({x:f.pixelSizeX,y:f.pixelSizeY,spatialReference:D}),pixelType:f.pixelType.toLowerCase(),statistics:Q,attributeTable:t,colormap:a,histograms:d,keyProperties:e,noDataValue:b,multidimensionalInfo:v,storageInfo:m})}C.fetchServiceRasterInfo=function(Q,h,f){return R(Q,{sourceJSON:h},f)};C.generateRasterInfo=function(Q,h,f){return R(Q,{rasterFunction:h},f)};C.patchServiceInfo=function(Q,h){Q.attributeTable||(h.hasRasterAttributeTable=!1);Q.histograms||(h.hasHistograms=!1);Q.colormap||(h.hasColormap= !1);Q.multidimensionalInfo||(h.hasMultidimensions=!1)};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/rest/imageService/getCatalogItemRasterInfo":function(){define("exports ../../request ../../geometry/Extent ../../geometry/Point ../../layers/support/RasterInfo ../../layers/support/RasterStorageInfo ../utils".split(" "),function(C,F,N,I,x,S,X){C.getCatalogItemRasterInfo=async function(Y,L,R){Y=X.parseUrl(Y);var Q=X.encode({...Y?.query,f:"json"});R=X.asValidOptions(Q,R);Y=`${Y?.path}/${L}/info`; L=F(`${Y}`,R);R=F(`${Y}/keyProperties`,R);R=await Promise.allSettled([L,R]);L="fulfilled"===R[0].status?R[0].value.data:null;R="fulfilled"===R[1].status?R[1].value.data:null;Y=null;L.statistics?.length&&(Y=L.statistics.map(v=>({min:v[0],max:v[1],avg:v[2],stddev:v[3]})));Q=N.fromJSON(L.extent);const h=Math.ceil(Q.width/L.pixelSizeX-.1),f=Math.ceil(Q.height/L.pixelSizeY-.1),g=Q.spatialReference,n=new I({x:L.pixelSizeX,y:L.pixelSizeY,spatialReference:g}),k=L.histograms?.length?L.histograms:null,D=new S({origin:L.origin, blockWidth:L.blockWidth,blockHeight:L.blockHeight,firstPyramidLevel:L.firstPyramidLevel,maximumPyramidLevel:L.maxPyramidLevel});return new x({width:h,height:f,bandCount:L.bandCount,extent:Q,spatialReference:g,pixelSize:n,pixelType:L.pixelType.toLowerCase(),statistics:Y,histograms:k,keyProperties:R,storageInfo:D})};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"esri/views/2d/engine/flow/dataUtils":function(){define("exports ../../../../geometry ../../../../core/has ../../../../core/Logger ../../../../core/mathUtils ../../../../core/promiseUtils ../../../../core/RandomLCG ../../../../geometry/support/spatialReferenceUtils ../../../../geometry/Extent".split(" "), function(C,F,N,I,x,S,X,Y,L){function R(a,d){const e=f(d.data,d.width,d.height,a.smoothing);return a.interpolate?(l,c)=>{const b=Math.floor(l),m=Math.floor(c);if(0>b||b>=d.width||0>m||m>=d.height)return[0,0];l-=b;c-=m;const r=b{l=Math.round(l); c=Math.round(c);return 0>l||l>=d.width||0>c||c>=d.height?[0,0]:[e[2*(c*d.width+l)],e[2*(c*d.width+l)+1]]}}function Q(a,d,e,l,c,b,m,r,u){const p=[];let q=0,[y,z]=d(e,l);y*=a.velocityScale;z*=a.velocityScale;p.push({x:e,y:l,t:q,speed:Math.sqrt(y*y+z*z)});for(let K=0;Ka.maxTurnAngle)break;if(a.collisions){var H=Math.round(e*u);var E=Math.round(l*u);if(0>H||H>m-1||0>E||E>r-1)break;const V=b[E*m+H];if(-1!==V&&V!==c)break;b[E*m+H]=c}p.push({x:e,y:l,t:q,speed:G});H=P;E=U}return p}function h(a,d,e,l){const c=[],b=new X,m=1/Math.max(a.lineCollisionWidth,1),r=Math.round(e*m),u=Math.round(l*m),p=new Int32Array(r*u);for(var q=0;qy.sort-z.sort);for(const {x:y,y:z}of q)b.getFloat()e.length||c.push(e));return c}function f(a,d,e,l){if(0===l)return a;const c=Math.round(3*l),b=Array(2*c+1);var m=0;for(var r=-c;r<=c;r++){var u=Math.exp(-r*r/(l*l));b[r+c]=u;m+=u}for(l=-c;l<=c;l++)b[l+c]/=m;m=new Float32Array(a.length);for(l=0;lr+q||r+q>=d)){var y=b[q+c];u+=y*a[2*(l*d+(r+q))];p+=y*a[2*(l*d+(r+q))+1]}m[2*(l*d+r)]=u;m[2*(l* d+r)+1]=p}a=new Float32Array(a.length);for(l=0;lr+q||r+q>=e||(y=b[q+c],u+=y*m[2*((r+q)*d+l)],p+=y*m[2*((r+q)*d+l)+1]);a[2*(r*d+l)]=u;a[2*(r*d+l)+1]=p}return a}function g(a,d){const e=new X;var l=a.reduce((r,u)=>r+u.length,0);l=new Float32Array(4*l);const c=Array(a.length);let b=0,m=0;for(const r of a){a=b;for(const u of r)l[4*b]=u.x,l[4*b+1]=u.y,l[4*b+2]=u.t,l[4*b+3]=u.speed,b++;c[m++]={startVertex:a,numberOfVertices:r.length,totalTime:r[r.length- 1].t,timeSeed:d?e.getFloat():0}}return{lineVertices:l,lineDescriptors:c}}function n(a,d){function e(H,E,K,w,A,G,P,U){const V=9*u;let T=0;r[V+T++]=H;r[V+T++]=E;r[V+T++]=1;r[V+T++]=K;r[V+T++]=G;r[V+T++]=P;r[V+T++]=w/2;r[V+T++]=A/2;r[V+T++]=U;u++;r[V+T++]=H;r[V+T++]=E;r[V+T++]=-1;r[V+T++]=K;r[V+T++]=G;r[V+T++]=P;r[V+T++]=-w/2;r[V+T++]=-A/2;r[V+T++]=U;u++}const {lineVertices:l,lineDescriptors:c}=a;var b=a=0;for(var m of c)a+=2*m.numberOfVertices,b+=6*(m.numberOfVertices-1);const r=new Float32Array(9* a);m=new Uint32Array(b);let u=0;a=0;for(const H of c){const {totalTime:E,timeSeed:K}=H;let w=b=null,A=null;var p=null,q=null,y=null;for(let G=0;GI.getLogger("esri.views.2d.engine.flow.dataUtils");C.createAnimatedLinesData=g;C.createFlowMesh=async function(a,d,e,l){const c=performance.now();var b=R(d,e);const m=performance.now();e=h(d,b,e.width,e.height);d=performance.now();b=g(e,!0);e=performance.now();a="Streamlines"===a?n(b,10):k(b);b=performance.now();N("esri-2d-profiler")&&(t().info("I.1","_createFlowFieldFromData (ms)",Math.round(m-c)),t().info("I.2","_getStreamlines (ms)", Math.round(d-m)),t().info("I.3","createAnimatedLinesData (ms)",Math.round(e-d)),t().info("I.4","create{Streamlines|Particles}Mesh (ms)",Math.round(b-e)),t().info("I.5","createFlowMesh (ms)",Math.round(b-c)),t().info("I.6","Mesh size (bytes)",a.vertexData.buffer.byteLength+a.indexData.buffer.byteLength));await Promise.resolve();S.throwIfAborted(l);return a};C.createParticlesMesh=k;C.createStreamlinesMesh=n;C.loadImagery=async function(a,d,e,l,c,b){const m=performance.now();var r=Y.getInfo(d.spatialReference); if(!r)return e=await v(a,d,e,l,c,b),N("esri-2d-profiler")&&t().info("I.7","loadImagery, early exit (ms)",Math.round(performance.now()-m)),N("esri-2d-profiler")&&t().info("I.9","Number of parts",1),e;const [u,p]=r.valid,q=Math.ceil(d.width/(p-u)),y=d.width/q,z=Math.round(e/q);let H=d.xmin;const E=[];r=performance.now();for(let K=0;K=e||(l.data[2*(a*e+d+c)]=K.data[2*(a*K.width+c)],l.data[2*(a*e+d+c)+1]=K.data[2*(a*K.width+c)+1],l.mask[a*e+d+c]=K.mask[a*K.width+c]);d+=K.width}N("esri-2d-profiler")&&t().info("I.10","loadImagery, general exit (ms)", Math.round(performance.now()-m));return l};Object.defineProperty(C,Symbol.toStringTag,{value:"Module"})})},"*noref":1}}); define("require ../chunks/tslib.es6 ../PopupTemplate ../core/Clonable ../core/Error ../core/MultiOriginJSONSupport ../core/promiseUtils ../core/accessorSupport/decorators/property ../core/has ../core/Logger ../core/RandomLCG ../core/accessorSupport/decorators/subclass ../core/accessorSupport/decorators/writer ./Layer ./mixins/ArcGISImageService ./mixins/ArcGISService ./mixins/BlendLayer ./mixins/CustomParametersMixin ./mixins/OperationalLayer ./mixins/PortalLayer ./mixins/RefreshableLayer ./mixins/ScaleRangeLayer ./mixins/TemporalLayer ./support/commonProperties ./support/versionUtils ../support/popupUtils ../webdoc/interfaces".split(" "),function(C, F,N,I,x,S,X,Y,L,R,Q,h,f,g,n,k,D,v,t,a,d,e,l,c,b,m,r){I=class extends D.BlendLayer(l.TemporalLayer(e.ScaleRangeLayer(t.OperationalLayer(a.PortalLayer(n.ArcGISImageService(d.RefreshableLayer(v.CustomParametersMixin(k.ArcGISService(S.MultiOriginJSONMixin(I.ClonableMixin(g))))))))))){constructor(...u){super(...u);this.isReference=null;this.operationalLayerType="ArcGISImageServiceLayer";this.popupEnabled=!0;this.popupTemplate=null;this.type="imagery";this._debouncedSaveOperations=X.debounce(async(p,q, y)=>{const {save:z,saveAs:H}=await new Promise((E,K)=>C(["./save/imageryUtils"],E,K));switch(p){case r.SaveOperationType.SAVE:return z(this,q);case r.SaveOperationType.SAVE_AS:return H(this,y,q)}})}normalizeCtorArgs(u,p){return"string"===typeof u?{url:u,...p}:u}load(u){const p=null!=u?u.signal:null;this.addResolvingPromise(this.loadFromPortal({supportedTypes:["Image Service"]},u).catch(X.throwIfAbortError).then(()=>this._fetchService(p)));return Promise.resolve(this)}get legendEnabled(){return this._isPreviewLayer? !1:this._get("legendEnabled")??!0}set legendEnabled(u){this._set("legendEnabled",u)}get listMode(){return this._isPreviewLayer?"hide":this._get("listMode")}set listMode(u){this._set("listMode",u)}writeOperationalLayerType(u,p,q){p[q]="vector-field"===this.renderer?.type?"ArcGISImageServiceVectorLayer":"ArcGISImageServiceLayer"}get defaultPopupTemplate(){return this.createPopupTemplate()}get _isPreviewLayer(){return!(!this.raster||!this.url?.toLowerCase().includes("/rasterrendering/imageserver"))}createPopupTemplate(u){const p= this.rasterFields,q=this.title,y=new Set;var z=!1;let H=!1;this.capabilities&&(z=this.capabilities.operations.supportsQuery&&this.fields&&0{K&&w&&/^raster\.(item|service)pixelvalue/i.test(w)&&(K.places=2)});return u}queryFeatures(u,p){return this.queryRasters(u,p).then(q=>{if(q?.features)for(const y of q.features)y.layer=y.sourceLayer=this;return q})}queryFeatureCount(u,p){return this.queryRasterCount(u,p)}redraw(){this.emit("redraw")}async save(u){return this._debouncedSaveOperations(r.SaveOperationType.SAVE, u)}async saveAs(u,p){return this._debouncedSaveOperations(r.SaveOperationType.SAVE_AS,p,u)}serviceSupportsSpatialReference(u){return b.serviceSupportsSpatialReference(this,u)}write(u,p){if(!this._isPreviewLayer)return super.write(u,p);p?.messages&&p.messages.push(new x("layer:unsupported",`Imagery preview layer (${this.title}, ${this.id}) of type '${this.declaredClass}' are not supported in the context of '${`${p.origin}/${p.layerContainerType||"operational-layers"}`}'`,{layer:this}));return null}}; F.__decorate([Y.property(c.legendEnabled)],I.prototype,"legendEnabled",null);F.__decorate([Y.property({type:["show","hide"]})],I.prototype,"listMode",null);F.__decorate([Y.property({type:Boolean,json:{read:!1,write:{enabled:!0,overridePolicy:()=>({enabled:!1})}}})],I.prototype,"isReference",void 0);F.__decorate([Y.property({type:["ArcGISImageServiceLayer"],json:{origins:{"web-map":{type:["ArcGISImageServiceLayer","ArcGISImageServiceVectorLayer"],read:!1,write:{target:"layerType",ignoreOrigin:!0}}}}})], I.prototype,"operationalLayerType",void 0);F.__decorate([f.writer("web-map","operationalLayerType")],I.prototype,"writeOperationalLayerType",null);F.__decorate([Y.property(c.popupEnabled)],I.prototype,"popupEnabled",void 0);F.__decorate([Y.property({type:N,json:{read:{source:"popupInfo"},write:{target:"popupInfo"}}})],I.prototype,"popupTemplate",void 0);F.__decorate([Y.property({readOnly:!0})],I.prototype,"defaultPopupTemplate",null);F.__decorate([Y.property({readOnly:!0,json:{read:!1}})],I.prototype, "type",void 0);F.__decorate([Y.property({readOnly:!0})],I.prototype,"_isPreviewLayer",null);return I=F.__decorate([h.subclass("esri.layers.ImageryLayer")],I)});