diff --git a/.github/workflows/deploy-docs.yml b/.github/workflows/deploy-docs.yml new file mode 100644 index 0000000..ca48c56 --- /dev/null +++ b/.github/workflows/deploy-docs.yml @@ -0,0 +1,53 @@ +name: Build and deploy docs + +on: + push: + branches: + - main + - dev + pull_request: + branches: + - "*" + +jobs: + build: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: "3.11" + + - name: Install package + run: pip install -e . + + - name: Install dependencies + run: pip install -r requirements.docs.txt + + - name: Build docs + run: mkdocs build -d dist + + - name: Upload artifact + uses: actions/upload-pages-artifact@v3 + with: + path: ./dist + + deploy: + needs: build + if: github.ref == 'refs/heads/main' + permissions: + pages: write + id-token: write + + environment: + name: github-pages + url: ${{ steps.deployment.outputs.page_url }} + + runs-on: ubuntu-latest + steps: + - name: Deploy to GitHub Pages + id: deployment + uses: actions/deploy-pages@v4 diff --git a/.github/workflows/pytest.yml b/.github/workflows/pytest.yml new file mode 100644 index 0000000..b8ea26e --- /dev/null +++ b/.github/workflows/pytest.yml @@ -0,0 +1,31 @@ +name: Test package + +on: [push] + +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + python-version: ["3.10", "3.11", "3.12"] + + steps: + - uses: actions/checkout@v4 + + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.python-version }} + + # You can test your matrix by printing the current Python version + - name: Display Python version + run: python -c "import sys; print(sys.version)" + + - name: Install package + run: pip install -e . + + - name: Install dev dependencies + run: pip install -r requirements.dev.txt + + - name: Test package + run: pytest diff --git a/README.md b/README.md index 6a5e143..99a0611 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,38 @@ -# OpenLayers for Python +# py-openlayers: OpenLayers for Python + +[![Release](https://img.shields.io/github/v/release/eoda-dev/py-openlayers)](https://img.shields.io/github/v/release/eoda-dev/py-openlayers) +[![pypi](https://img.shields.io/pypi/v/openlayers.svg)](https://pypi.python.org/pypi/openlayers) +[![License](https://img.shields.io/github/license/eoda-dev/py-openlayers)](https://img.shields.io/github/license/eoda-dev/py-openlayers) +[![OpenLayers JS](https://img.shields.io/badge/OpenLayers-v10.5.0-blue.svg)](https://github.com/openlayers/openlayers/releases//tag/v10.5.0) + +Provides Python bindings for [Openlayers](https://openlayers.org/), a high-performance, full-featured web mapping library that displays maps from various sources and formats. It makes it a easy to create interactive maps in [Marimo](https://marimo.io/) and [Jupyter](https://jupyter.org/) notebbooks with a few lines of code in a pydantic way. + +## Features + +### Tiled Layers + +Pull tiles from OSM, CartoDB, MapTiler and any other XYZ source. + + +### Vector Layers + +Render vector data from GeoJSON, TopoJSON, KML, GML and other formats. + +### Controls + +Add geocoding, draw, full screen and other controls to your map. + +### WebGL + +Render large data sets using WebGL. + +### PMTiles + +Render PMTiles from vector and raster sources. + +### Interactions + +Drag and drop GPX, GeoJSON, KML or TopoJSON files on to the map. Modify, draw and select features. ## Installation @@ -7,3 +41,21 @@ uv init uv add "git+https://github.com/eoda-dev/py-openlayers@main" ``` + +## Quickstart + +```python +import openlayers as ol + +# Jupyter or Marimo +m = ol.MapWidget() +m # Display map + +# Standalone +m = ol.Map() +m.save() +``` + +## Note + +The documentation is still in an early stage, more examples will be added as soon as possible. diff --git a/TODOS.md b/TODOS.md new file mode 100644 index 0000000..068acc9 --- /dev/null +++ b/TODOS.md @@ -0,0 +1,5 @@ +# TODOS + +## STAC layers + +https://openlayers.org/en/latest/examples/stac-item.html diff --git a/docs/api/basemaps.md b/docs/api/basemaps.md new file mode 100644 index 0000000..52b03d3 --- /dev/null +++ b/docs/api/basemaps.md @@ -0,0 +1,7 @@ +# Basemaps + +::: openlayers.basemaps.BasemapLayer + +::: openlayers.basemaps.CartoBasemapLayer + +::: openlayers.basemaps.MapTilerBasemapLayer diff --git a/docs/api/controls.md b/docs/api/controls.md new file mode 100644 index 0000000..8b79d15 --- /dev/null +++ b/docs/api/controls.md @@ -0,0 +1,3 @@ +# Controls + +::: openlayers.controls diff --git a/docs/api/express.md b/docs/api/express.md new file mode 100644 index 0000000..31870f9 --- /dev/null +++ b/docs/api/express.md @@ -0,0 +1,3 @@ +# OpenLayersExpress + +::: openlayers.express.GeoJSONLayer \ No newline at end of file diff --git a/docs/api/geopandas.md b/docs/api/geopandas.md new file mode 100644 index 0000000..a75ec8e --- /dev/null +++ b/docs/api/geopandas.md @@ -0,0 +1,5 @@ +# GeoPandas + +::: openlayers.geopandas.OLAccessor + +::: openlayers.geopandas.GeoDataFrame diff --git a/docs/api/layers.md b/docs/api/layers.md new file mode 100644 index 0000000..1b068cb --- /dev/null +++ b/docs/api/layers.md @@ -0,0 +1,15 @@ +# Layers + +::: openlayers.layers.Layer + +::: openlayers.layers.VectorLayer + +::: openlayers.layers.VectorTileLayer + +::: openlayers.layers.TileLayer + +::: openlayers.layers.WebGLVectorLayer + +::: openlayers.layers.WebGLVectorTileLayer + +::: openlayers.layers.WebGLTileLayer diff --git a/docs/api/map.md b/docs/api/map.md new file mode 100644 index 0000000..a7e88f9 --- /dev/null +++ b/docs/api/map.md @@ -0,0 +1,8 @@ +# Map + +::: openlayers.Map + +::: openlayers.view.View + +::: openlayers.MapWidget + diff --git a/docs/api/sources.md b/docs/api/sources.md new file mode 100644 index 0000000..980b581 --- /dev/null +++ b/docs/api/sources.md @@ -0,0 +1,3 @@ +# Sources + +::: openlayers.sources diff --git a/docs/api/styles.md b/docs/api/styles.md new file mode 100644 index 0000000..4d43d83 --- /dev/null +++ b/docs/api/styles.md @@ -0,0 +1,5 @@ +# Styles + +::: openlayers.styles.FlatStyle + +::: openlayers.styles.default_style diff --git a/docs/concepts/controls.md b/docs/concepts/controls.md new file mode 100644 index 0000000..eec0bc1 --- /dev/null +++ b/docs/concepts/controls.md @@ -0,0 +1,9 @@ +# Controls + +Controls are user interface elements that you can add to your map: + +```python +-8<-- "concepts/controls.py" +``` + +> See [Controls API](../../api/controls/) diff --git a/docs/concepts/geopandas.md b/docs/concepts/geopandas.md new file mode 100644 index 0000000..786f254 --- /dev/null +++ b/docs/concepts/geopandas.md @@ -0,0 +1,7 @@ +# GeoPandas + +Python-OpenLayers shipes with a [GeoPandas](https://geopandas.org/) extension: + +```python +-8<-- "concepts/geopandas.py" +``` diff --git a/source b/docs/concepts/interactions.md similarity index 100% rename from source rename to docs/concepts/interactions.md diff --git a/docs/concepts/layers.md b/docs/concepts/layers.md new file mode 100644 index 0000000..978cc18 --- /dev/null +++ b/docs/concepts/layers.md @@ -0,0 +1,48 @@ +# Layers and sources + +Sources and layers are used to display _raster_ or _vector_ data on your map. + +## Sources + +Sources state which data the map should display. + +```python +-8<-- "concepts/sources.py" +``` + +> See [Sources API](../../api/sources/) + +## Layers + + A layer defines how a source is displayed on the map: + +```python +-8<-- "concepts/layers.py" +``` + +> See [Layers API](../../api/layers/) + +## Styles + +Vector layers are styled with an object containing properties for the different styles, such as _stroke_, _fill_, _circle_ or _icon_: + +```python +style = ol.FlatStyle( + stroke_color = "yellow", + stroke_width = 1.5, + fill_color = "orange" +) +``` + +It is also possible to use a simple dictonary instead. In this case property names must use hyphens instead +of underscores: + +```python +const style = { + "stroke-color": "yellow", + "stroke-width": 1.5, + "fill-color": "orange", +} +``` + +> See [Styles API](../../api/styles/) and [ol/style/flat](https://openlayers.org/en/latest/apidoc/module-ol_style_flat.html) for details. diff --git a/docs/concepts/map.md b/docs/concepts/map.md new file mode 100644 index 0000000..a705fff --- /dev/null +++ b/docs/concepts/map.md @@ -0,0 +1,31 @@ +# Map + +The [Map](../../api/map/#openlayers.Map) is the core component of your visualization, to which other components such as [controls](../controls), [layers](../layers) or overlays are added. Components can be added either during initialization or afterwards: + +```python +-8<-- "concepts/basic_map.py" +``` + +## View state + +Properties such as _center_, _zoom level_ and _projection_ are managed by the [View](../../api/map/#openlayers.view.View) instance: + +```python +-8<-- "concepts/view.py" +``` + +## Basemaps + +A basemap in openlayers consists of one or more layers from your layer stack: + +```python +-8<-- "concepts/basemaps.py" +``` + +> See [BasemapLayer API](../../api/basemaps/#openlayers.Basemaps.BasemapLayer) + +If you hand over an empty layer stack to your map, a blank background is displayed: + +```python +m = ol.Map(layers=[]) +``` diff --git a/docs/examples/concepts/basemaps.py b/docs/examples/concepts/basemaps.py new file mode 100644 index 0000000..b493ed3 --- /dev/null +++ b/docs/examples/concepts/basemaps.py @@ -0,0 +1,8 @@ +import openlayers as ol +from openlayers.basemaps import CartoBasemapLayer, Carto + +# Use default OSM basemap +m = ol.Map(layers=[ol.BasemapLayer()]) + +# Use a CartoDB basemap +m = ol.Map(layers=[CartoBasemapLayer(Carto.DARK_NO_LABELS)]) diff --git a/docs/examples/concepts/basic_map.py b/docs/examples/concepts/basic_map.py new file mode 100644 index 0000000..905bba8 --- /dev/null +++ b/docs/examples/concepts/basic_map.py @@ -0,0 +1,7 @@ +import openlayers as ol + +# Add components during initialization +m = ol.Map(controls=[ol.ZoomSliderControl()]) + +# Add components after initialization +m.add_control(ol.FullScreenControl()) diff --git a/docs/examples/concepts/controls.py b/docs/examples/concepts/controls.py new file mode 100644 index 0000000..904cd2a --- /dev/null +++ b/docs/examples/concepts/controls.py @@ -0,0 +1,7 @@ +import openlayers as ol + +# Add controls during initialization +m = ol.Map(controls=[ol.ZoomSliderControl(), ol.OverviewMapControl()]) + +# Add components after initialization +m.add_control(ol.ScaleLineControl(units="degrees")) diff --git a/docs/examples/concepts/geopandas.py b/docs/examples/concepts/geopandas.py new file mode 100644 index 0000000..e5c8fe5 --- /dev/null +++ b/docs/examples/concepts/geopandas.py @@ -0,0 +1,7 @@ +import openlayers as ol +from openlayers.geopandas import GeoDataFrame + +data = "https://openlayers.org/en/latest/examples/data/geojson/roads-seoul.geojson" + +m = GeoDataFrame.from_file(data).ol.explore(tooltip=True) +m.add_control(ol.ScaleLineControl()) diff --git a/docs/examples/concepts/layers.py b/docs/examples/concepts/layers.py new file mode 100644 index 0000000..b93e2e1 --- /dev/null +++ b/docs/examples/concepts/layers.py @@ -0,0 +1,16 @@ +import openlayers as ol + +data = "https://openlayers.org/en/latest/examples/data/geojson/roads-seoul.geojson" + +vector = ol.VectorLayer( + id="roads", + source=ol.VectorSource(url=data), + fit_bounds=True, +) + + +m = ol.Map( + ol.View(rotation=3.14 / 8), + layers=[ol.BasemapLayer(), vector] +) +m.add_default_tooltip() diff --git a/docs/examples/concepts/sources.py b/docs/examples/concepts/sources.py new file mode 100644 index 0000000..129ef4c --- /dev/null +++ b/docs/examples/concepts/sources.py @@ -0,0 +1,14 @@ +import openlayers as ol + +geojson = ol.VectorSource( + url="https://openlayers.org/en/latest/examples/data/geojson/roads-seoul.geojson" +) + +geotiff = ol.GeoTIFFSource( + sources=[{"url": "https://s2downloads.eox.at/demo/EOxCloudless/2020/rgbnir/s2cloudless2020-16bits_sinlge-file_z0-4.tif"}] +) + +pmtiles = ol.PMTilesVectorSource( + url="https://r2-public.protomaps.com/protomaps-sample-datasets/nz-buildings-v3.pmtiles", + attributions=["© Land Information New Zealand"] +) diff --git a/docs/examples/concepts/view.py b/docs/examples/concepts/view.py new file mode 100644 index 0000000..b2e960c --- /dev/null +++ b/docs/examples/concepts/view.py @@ -0,0 +1,11 @@ +import openlayers as ol + +initial_view = ol.View(center=(9.5, 51.31667), zoom=14) + +m = ol.Map(initial_view) + +# Change view settings afterwards +m.set_center(lon=172.606201, lat=-43.556510) +m.set_zoom(14) + +m.set_view(ol.View(center=(172.606201, -43.556510), zoom=12)) diff --git a/docs/index.md b/docs/index.md index fa13b38..37b54c2 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,5 +1,18 @@ # Get started ```python -import openlayers as ol +-8<-- "concepts/basic_map.py" +``` + +Use the `Map` class if you just want to create an HTML document and the `MapWidget` class for an interactive +widget in _Marimo_ or _Jupyter_ notebooks: + +```python +# Widget +m = ol.MapWidget(controls=[ol.ZoomSliderControl()]) +m + +# Standalone +m = Map(controls=[ol.ZoomSliderControl()]) +m.save() ``` diff --git a/examples/standalone/basemaps.py b/examples/standalone/basemaps.py new file mode 100644 index 0000000..6dee417 --- /dev/null +++ b/examples/standalone/basemaps.py @@ -0,0 +1,5 @@ +import openlayers as ol +from openlayers.basemaps import Carto + +m = ol.Map(layers=[ol.BasemapLayer(Carto.DARK_ALL)]) +m.save() diff --git a/examples/standalone/circles.py b/examples/standalone/circles.py index 9a15634..37d0b18 100644 --- a/examples/standalone/circles.py +++ b/examples/standalone/circles.py @@ -29,7 +29,10 @@ } gdf = ol.GeoDataFrame.from_features(features, crs=Projection.MERCATOR) -m = gdf.ol.explore(style=style, controls=[ol.controls.ZoomSliderControl()]) -# m.add_default_tooltip() -m.add_tooltip("{{ name }}: {{ pop_max }}") +m = gdf.ol.explore( + style=style, + tooltip="{{ name }}", + controls=[ol.controls.ZoomSliderControl()]) +m.add_default_tooltip() +# m.add_tooltip("{{ name }}: {{ pop_max }}") m.save(preview=True) diff --git a/examples/standalone/gpd_fit_bounds.py b/examples/standalone/gpd_fit_bounds.py new file mode 100644 index 0000000..0d7cd87 --- /dev/null +++ b/examples/standalone/gpd_fit_bounds.py @@ -0,0 +1,13 @@ +import openlayers as ol + +data = "zip+https://github.com/Toblerity/Fiona/files/11151652/coutwildrnp.zip" + +gdf = ol.GeoDataFrame.from_file(data) +print(gdf.crs) + +# print(gdf) +m = gdf.ol.color_category("STATE").explore() +# m.add_call("fitBoundsFromLonLat", list(gdf.total_bounds)) +# m.fit_bounds(list(gdf.total_bounds)) +m.set_view(ol.View(extent=list(gdf.total_bounds))) +m.save() diff --git a/examples/standalone/gpd_multiple_layers.py b/examples/standalone/gpd_multiple_layers.py new file mode 100644 index 0000000..4e86f39 --- /dev/null +++ b/examples/standalone/gpd_multiple_layers.py @@ -0,0 +1,17 @@ +import openlayers as ol +from openlayers.basemaps import BasemapLayer +from openlayers.styles import FlatStyle + +# url = "https://openlayers.org/en/v4.6.5/examples/data/geojson/countries.geojson" +url = "https://openlayers.org/en/latest/examples/data/geojson/roads-seoul.geojson" + +style = FlatStyle(fill_color="green", stroke_color="steelblue") + +gpd = ol.GeoDataFrame.from_file(url) + +# countries_layer = gpd.ol.to_layer(style=style, opacity=0.5) +countries_layer = gpd.ol.color_category("name").to_layer(opacity=0.5, webgl=False) + +m = ol.Map(layers=[BasemapLayer.carto()]) +m.add_layer(countries_layer) +m.save() diff --git a/examples/standalone/gpd_polygons.py b/examples/standalone/gpd_polygons.py new file mode 100644 index 0000000..656931d --- /dev/null +++ b/examples/standalone/gpd_polygons.py @@ -0,0 +1,13 @@ +import openlayers as ol +# from openlayers.basemaps import BasemapLayer + +url = "https://openlayers.org/en/v4.6.5/examples/data/geojson/countries.geojson" + +gdf = ol.GeoDataFrame.from_file(url) +m = gdf.ol.color_category("name").explore(controls=[ol.OverviewMapControl()]) + +m.set_opacity("geopandas", 0.5) +# m.set_visible("geopandas", False) +m.add_call("addOverlay", (9.5, 51.31667), "Kassel", "background-color: white; padding: 5px; border-radius: 4px;") +m.set_center((9.5, 51.31667)) +m.save() diff --git a/examples/standalone/icons.py b/examples/standalone/icons.py index 08e3cd1..1e3969e 100644 --- a/examples/standalone/icons.py +++ b/examples/standalone/icons.py @@ -1,20 +1,39 @@ import openlayers as ol -from openlayers.styles import FlatStyle +from openlayers.styles import FlatStyle, IconStyle from openlayers.basemaps import BasemapLayer from openlayers.utils import create_icon_src_from_file url="https://openlayers.org/data/vector/populated-places.json" -style = FlatStyle( +icon = "https://maplibre.org/maplibre-gl-js/docs/assets/osgeo-logo.png" +# icon = "https://upload.wikimedia.org/wikipedia/commons/7/7c/201408_cat.png" + +style = IconStyle( # icon_src="https://openlayers.org/en/latest/examples/data/icon.png", - icon_src=create_icon_src_from_file("notebooks/data/icon.png"), - icon_color="steelblue", - icon_opacity=0.7 + # icon_src=create_icon_src_from_file("notebooks/data/icon.png"), + icon_src=icon, + # icon_color="steelblue", + # icon_opacity=0.7, + # icon_scale=0.2 ) +icon_style = FlatStyle( + icon_src="https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/icon-atlas.png", + icon_color="green", + icon_width=64, + icon_height=64, + # icon_anchor_x_units="pixels", + # icon_anchor_y_units="pixels", + # icon_anchor=[128, 0] + icon_offset=[128, 0], + icon_size=[128, 128] +) +print(icon_style.model_dump()) + icon_layer = ol.VectorLayer(style=style, source=ol.VectorSource(url=url)) m = ol.Map(layers=[BasemapLayer.carto(), icon_layer]) -# m.add_tooltip() +m.add_tooltip() m.add_control(ol.controls.OverviewMapControl()) +print(m.options) m.save() diff --git a/examples/standalone/kml_layer.py b/examples/standalone/kml_layer.py new file mode 100644 index 0000000..7297c6a --- /dev/null +++ b/examples/standalone/kml_layer.py @@ -0,0 +1,22 @@ +# See https://openlayers.org/en/latest/examples/data/kml/2012-02-10.kml +import openlayers as ol + +from openlayers.models.formats import KML +from openlayers.utils import crs_transformer + +url = "https://openlayers.org/en/latest/examples/data/kml/2012-02-10.kml" +center = crs_transformer().transform(876970.8463461736, 5859807.853963373) + +url ="https://openlayers.org/en/latest/examples/data/kml/2012_Earthquakes_Mag5.kml" + +layer = ol.VectorLayer( + style=ol.FlatStyle(circle_fill_color="green", circle_radius=7), + source=ol.VectorSource(url=url,format=KML(extract_styles=False)) +) + + +# m = ol.Map(ol.View(center=center, zoom=10)) +m = ol.Map() +m.add_layer(layer) +m.add_tooltip() +m.save() diff --git a/examples/standalone/layers/express_vector_layer.py b/examples/standalone/layers/express_vector_layer.py new file mode 100644 index 0000000..e7647b8 --- /dev/null +++ b/examples/standalone/layers/express_vector_layer.py @@ -0,0 +1,17 @@ +import openlayers as ol +import openlayers.express as ox + +data = "https://openlayers.org/data/vector/populated-places.json" + +m = ox.Vector( + data, fit_bounds=False, style=ox.default_style(circle_fill_color="red") +).explore() +# m.save() + +m = ox.Vector( + data="https://openlayers.org/en/latest/examples/data//kml/states.kml", + # style=None, + webgl=True + # data="https://openlayers.org/en/latest/examples/data/gpx/fells_loop.gpx" +).explore() +m.save() diff --git a/examples/standalone/layers/geojson_vector_layer.py b/examples/standalone/layers/geojson_vector_layer.py new file mode 100644 index 0000000..836eb63 --- /dev/null +++ b/examples/standalone/layers/geojson_vector_layer.py @@ -0,0 +1,27 @@ +import openlayers as ol + +data = "https://openlayers.org/en/latest/examples/data/geojson/roads-seoul.geojson" + +geojson_layer = ol.VectorLayer( + id="roads", + source=ol.VectorSource(url=data, format=ol.formats.GeoJSON()), + style=ol.FlatStyle( + fill_color="rgba(255,210,120,0.5)", + stroke_color="green", + stroke_width=3, + circle_radius=5, + ), + fit_bounds=True, +) + +zoom_slider = ol.ZoomSliderControl() + +m = ol.Map(ol.View(rotation=3.14 / 8), layers=[ol.BasemapLayer.carto()]) +m.add_control(zoom_slider) +m.add_layer(geojson_layer) +m.add_tooltip() +m.add_control(ol.DrawControl()) +# m.remove_control(zoom_slider.id) +# m.add_call("addModifyInteraction", geojson_layer.id) +# m.add_modify_interaction(geojson_layer.id) +m.save("/tmp/ol-example.html") diff --git a/examples/standalone/layers/geotiff_tile_layer.py b/examples/standalone/layers/geotiff_tile_layer.py new file mode 100644 index 0000000..f38b5d5 --- /dev/null +++ b/examples/standalone/layers/geotiff_tile_layer.py @@ -0,0 +1,17 @@ +# See https://openlayers.org/en/latest/examples/cog-overviews.html +import openlayers as ol + +layer = ol.WebGLTileLayer( + source=ol.GeoTIFFSource( + sources=[ + dict( + url="https://openlayers.org/data/raster/no-overviews.tif", + overviews=["https://openlayers.org/data/raster/no-overviews.tif.ovr"], + ) + ] + ) +) + +m = ol.Map(layers=[layer]) +m.set_view_from_source(layer.id) +m.save() diff --git a/examples/standalone/layers/gpx_vector_layer.py b/examples/standalone/layers/gpx_vector_layer.py new file mode 100644 index 0000000..b856ca9 --- /dev/null +++ b/examples/standalone/layers/gpx_vector_layer.py @@ -0,0 +1,16 @@ +import openlayers as ol + +data = "https://openlayers.org/en/latest/examples/data/gpx/fells_loop.gpx" + +gpx_layer = ol.WebGLVectorLayer( + fit_bounds=True, + source=ol.VectorSource(url=data, format=ol.formats.GPX()), + style=ol.FlatStyle( + circle_fill_color="red", stroke_color="green", stroke_width=3, circle_radius=5 + ), +) + +m = ol.Map() +m.add_layer(gpx_layer) +m.add_tooltip() +m.save("/tmp/ol-example.html") diff --git a/examples/standalone/layers/kml_vector_layer.py b/examples/standalone/layers/kml_vector_layer.py new file mode 100644 index 0000000..c5a3fb3 --- /dev/null +++ b/examples/standalone/layers/kml_vector_layer.py @@ -0,0 +1,20 @@ +import openlayers as ol + +data = "https://openlayers.org/en/latest/examples/data//kml/states.kml" + +kml_layer = ol.VectorLayer( + source=ol.VectorSource(url=data, format=ol.formats.KML()), + # style=ol.FlatStyle(fill_color="rgba(255,210,120,0.5)", stroke_color="green", stroke_width=3, circle_radius=5) +) + +m = ol.Map() +m.add_layer(kml_layer) +# m.add_tooltip() +# m.add_call("addDragAndDropVectorLayers") +m.add_drag_and_drop_interaction( + formats=[ol.formats.KML(extract_styles=False)], + style=ol.FlatStyle( + stroke_color="red", stroke_width=3, circle_radius=5, circle_stroke_color="green" + ), +) +m.save("/tmp/ol-example.html") diff --git a/examples/standalone/layers/maptiler_basemap.py b/examples/standalone/layers/maptiler_basemap.py new file mode 100644 index 0000000..9b5276c --- /dev/null +++ b/examples/standalone/layers/maptiler_basemap.py @@ -0,0 +1,10 @@ +import openlayers as ol +from openlayers.basemaps import MapTilerBasemapLayer, MapTiler, CartoBasemapLayer, Carto + +m = ol.Map(layers=[]) +m.set_zoom(2) +m.add_layer(ol.BasemapLayer()) +# m.add_layer(MapTilerBasemapLayer(MapTiler.AQUARELLE)) +# m.add_layer(CartoBasemapLayer(Carto.VOYAGER_LABELS_UNDER)) +m.add_control(ol.MapTilerGeocodingControl(country="de")) +m.save() diff --git a/examples/standalone/layers/mvt_vector_layer.py b/examples/standalone/layers/mvt_vector_layer.py new file mode 100644 index 0000000..a8c62ae --- /dev/null +++ b/examples/standalone/layers/mvt_vector_layer.py @@ -0,0 +1,13 @@ +# VectorTileLayer: https://unpkg.com/world-atlas@1.1.4/world/50m.json +import openlayers as ol + +mvt_layer = ol.layers.VectorTileLayer( + source=ol.sources.VectorTileSource( + url='https://basemaps.arcgis.com/arcgis/rest/services/World_Basemap_v2/VectorTileServer/tile/{z}/{y}/{x}.pbf', + format=ol.formats.MVT() + ) +) + +m = ol.Map(layers=[mvt_layer]) +m.add_default_tooltip() +m.save() diff --git a/examples/standalone/layers/pmtiles_raster_layer.py b/examples/standalone/layers/pmtiles_raster_layer.py new file mode 100644 index 0000000..5149855 --- /dev/null +++ b/examples/standalone/layers/pmtiles_raster_layer.py @@ -0,0 +1,20 @@ +import openlayers as ol +from openlayers.models.sources import PMTilesRasterSource + +url = "https://r2-public.protomaps.com/protomaps-sample-datasets/terrarium_z9.pmtiles" + +pmtiles = ol.WebGLTileLayer( + id="pmtiles-raster", + source=PMTilesRasterSource( + url=url, + attributions=[ + "https://github.com/tilezen/joerd/blob/master/docs/attribution.md" + ], + tile_size=[512, 512], + ), +) + +view = ol.View(center=(0, 0), zoom=1) + +m = ol.Map(view=view, layers=[pmtiles]) +m.save() diff --git a/examples/standalone/layers/pmtiles_vector_layer.py b/examples/standalone/layers/pmtiles_vector_layer.py new file mode 100644 index 0000000..0ffe08c --- /dev/null +++ b/examples/standalone/layers/pmtiles_vector_layer.py @@ -0,0 +1,21 @@ +import openlayers as ol +from openlayers.models.sources import PMTilesVectorSource +from openlayers.styles import default_style + +url = ( + "https://r2-public.protomaps.com/protomaps-sample-datasets/nz-buildings-v3.pmtiles" +) + +pmtiles = ol.layers.VectorTileLayer( + id="pmtiles-vector", + style=default_style(stroke_color="green", stroke_width=2), + source=PMTilesVectorSource( + url=url, attributions=["© Land Information New Zealand"] + ), +) + +view = ol.View(center=(172.606201, -43.556510), zoom=12) + +m = ol.Map(view=view, layers=[pmtiles]) +m.add_tooltip() +m.save() diff --git a/examples/standalone/layers/tilejson_layer.py b/examples/standalone/layers/tilejson_layer.py new file mode 100644 index 0000000..c1387ea --- /dev/null +++ b/examples/standalone/layers/tilejson_layer.py @@ -0,0 +1,12 @@ +# See https://openlayers.org/en/latest/examples/tilejson.html + +import openlayers as ol + +layer = ol.TileLayer( + source=ol.TileJSONSource( + url="https://maps.gnosis.earth/ogcapi/collections/NaturalEarth:raster:HYP_HR_SR_OB_DR/map/tiles/WebMercatorQuad?f=tilejson" + ) +) + +m = ol.Map(layers=[layer]) +m.save() diff --git a/examples/standalone/layers/topojson_vector_layer.py b/examples/standalone/layers/topojson_vector_layer.py new file mode 100644 index 0000000..704e0bf --- /dev/null +++ b/examples/standalone/layers/topojson_vector_layer.py @@ -0,0 +1,19 @@ +import openlayers as ol + +data = "https://openlayers.org/en/latest/examples/data/topojson/fr-departments.json" + +topojson_layer = ol.VectorLayer( + source=ol.VectorSource(url=data, format=ol.formats.TopoJSON()), + style=ol.FlatStyle( + fill_color="rgba(255,210,120,0.5)", + stroke_color="green", + stroke_width=3, + circle_radius=5, + ), + fit_bounds=True, +) + +m = ol.Map() +m.add_layer(topojson_layer) +m.add_tooltip() +m.save("/tmp/ol-example.html") diff --git a/examples/standalone/layers/vector_image_layer.py b/examples/standalone/layers/vector_image_layer.py new file mode 100644 index 0000000..275c0ff --- /dev/null +++ b/examples/standalone/layers/vector_image_layer.py @@ -0,0 +1,19 @@ +# See https://openlayers.org/en/latest/examples/image-vector-layer.html + +import openlayers as ol + +data = "https://openlayers.org/data/vector/ecoregions.json" + +style = ol.FlatStyle( + fill_color=['string', ['get', 'COLOR'], '#eee'] +) + +layer = ol.VectorImageLayer( + background="#1a2b39", + image_ratio=2, + source=ol.VectorSource(url=data), + style=style +) + +m = ol.Map(layers=[layer]) +m.save() diff --git a/examples/standalone/maptiler_geocoding_control.py b/examples/standalone/maptiler_geocoding_control.py new file mode 100644 index 0000000..e20131e --- /dev/null +++ b/examples/standalone/maptiler_geocoding_control.py @@ -0,0 +1,13 @@ +import openlayers as ol + +ctrl = ol.MapTilerGeocodingControl( + collapsed=True, + country="de", + limit=2 + ) + +m = ol.Map() +m.add_control(ctrl) +m.save() + +# print(ctrl.model_dump()) \ No newline at end of file diff --git a/examples/standalone/ol_express.py b/examples/standalone/ol_express.py new file mode 100644 index 0000000..e859de0 --- /dev/null +++ b/examples/standalone/ol_express.py @@ -0,0 +1,59 @@ +# import json +# import openlayers as ol +import openlayers.express as ox +from openlayers.basemaps import BasemapLayer +from openlayers import View + +icon_layer = ox.IconLayer( + # id="icon-layer", + data="https://openlayers.org/data/vector/populated-places.json", + icon_src="https://openlayers.org/en/latest/examples/data/icon.png", + ) +# print(icon_layer.model.model_dump()) + +""" +polygon_layer = olx.PolygonLayer( + url="https://openlayers.org/en/v4.6.5/examples/data/geojson/countries.geojson", + fill_color="steelblue", + stroke_width=3 + ) +""" + +line_data = "https://raw.githubusercontent.com/visgl/deck.gl-data/master/website/bart.geo.json" + +generic_geojson_layer = ox.GeoJSONLayer( + data = line_data, + #stroke_width = 5, + #stroke_color = "green", + #circle_fill_color = "red", + #circle_stroke_color = "steelblue", + #circle_stroke_width = 3, + #circle_radius = 7 +) + +circle_layer = ox.CircleLayer( + data="https://openlayers.org/data/vector/populated-places.json", + circle_fill_color="yellow" + ) + +fill_layer = ox.FillLayer( + data=None ,#"https://openlayers.org/en/v4.6.5/examples/data/geojson/countries.geojson", + stroke_width=4, + fill_color="yellow", + id="fill" + ) +# m = fill_layer.to_map() +m = generic_geojson_layer.to_map(lon=-122.4, lat=37.74, zoom=11, layers=[BasemapLayer.carto()]) +# m.add_call("setExtentFromSource", "fill") +# m = circle_layer.to_map() +# m = ol.Map(layers=[fill_layer, circle_layer]) +m.add_tooltip() +# m = ol.Map() +# m.add_layer(icon_layer) + +# print(json.dumps(m.calls)) +# print(json.dumps(m.map_options)) + +# m.set_center((9.5, 51.31667)) +# m.set_view(View(center=(9.5, 51.31667), zoom=14)) +m.save() diff --git a/examples/standalone/ol_express_geotiff.py b/examples/standalone/ol_express_geotiff.py new file mode 100644 index 0000000..a183c97 --- /dev/null +++ b/examples/standalone/ol_express_geotiff.py @@ -0,0 +1,10 @@ +import openlayers.express as ox + +url = "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/Q/WD/2020/7/S2A_36QWD_20200701_0_L2A/TCI.tif" +url = "https://github.com/opengeos/datasets/releases/download/raster/Libya-2023-09-13.tif" +url = "https://maplibre.org/maplibre-gl-js/docs/assets/cog.tif" + +m = ox.GeoTIFFTileLayer(url=url, opacity=0.7).to_map(layers=[]) +print(m.options) +print(m.calls) +m.save() diff --git a/examples/standalone/polygons.py b/examples/standalone/polygons.py index b5932ed..bf012f2 100644 --- a/examples/standalone/polygons.py +++ b/examples/standalone/polygons.py @@ -5,11 +5,14 @@ countries = ol.WebGLVectorLayer(source=ol.VectorSource(url=url)) -m = ol.Map(layers=[BasemapLayer.carto(), countries]) +m = ol.Map(ol.View(projection="EPSG:4326"), layers=[BasemapLayer.osm(), countries]) m.add_tooltip("{{ name }}") # m.add_tooltip() +m.remove_control("zoom") +m.add_control(ol.controls.ZoomControl(zoom_in_label="I", zoom_out_label="O")) m.add_control(ol.controls.ZoomSliderControl()) m.add_control(ol.controls.InfoBox( - html="OpenLayers4Py", + html="PyOL", css_text="right: .5em; top: .5em; background: white; padding: 5px;")) +m.add_control(ol.controls.ZoomToExtentControl()) m.save() diff --git a/examples/standalone/select_features.py b/examples/standalone/select_features.py new file mode 100644 index 0000000..6455d7a --- /dev/null +++ b/examples/standalone/select_features.py @@ -0,0 +1,7 @@ +import openlayers.express as ox + +url = "https://openlayers.org/data/vector/us-states.json" + +m = ox.GeoJSONLayer(data=url, webgl=False).to_map() +m.add_call("addSelectFeatures") +m.save() diff --git a/mkdocs.yml b/mkdocs.yml index 98e5416..a8a73dd 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -33,5 +33,19 @@ markdown_extensions: nav: - Get started: index.md - # - Concepts: concept.md + - Concepts: + - Map: concepts/map.md + - Controls: concepts/controls.md + - Layers and sources: concepts/layers.md + # - Interactions: concepts/interactions.md + - GeoPandas: concepts/geopandas.md + - API documentation: + - Map: api/map.md + - Controls: api/controls.md + - Layers: api/layers.md + - Sources: api/sources.md + - Styles: api/styles.md + - Basemaps: api/basemaps.md + - GeoPandas: api/geopandas.md + # - Express: api/express.md - Changelog: changelog.md diff --git a/notebooks/Untitled.ipynb b/notebooks/Untitled.ipynb deleted file mode 100644 index bca8df4..0000000 --- a/notebooks/Untitled.ipynb +++ /dev/null @@ -1,344 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "id": "ea1efd9a-adcc-4ceb-9d66-1f2436bf0bf1", - "metadata": {}, - "outputs": [], - "source": [ - "from openlayers.anywidget import MapWidget\n", - "from openlayers.json_defs import (\n", - "WebGLTileLayer, GeoTIFFSource, WebGLVectorLayer,VectorSource, TileLayer)" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "id": "5f0015f6-9f02-4fcc-9949-a4d9d46515d3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "GeoTIFFSource(normalize=None, sources=[{'url': 'https://s2downloads.eox.at/demo/EOxCloudless/2020/rgbnir/s2cloudless2020-16bits_sinlge-file_z0-4.tif'}], type='GeoTIFFSource')" - ] - }, - "execution_count": 2, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "source = GeoTIFFSource(\n", - " sources=[\n", - " {\n", - " \"url\": 'https://s2downloads.eox.at/demo/EOxCloudless/2020/rgbnir/s2cloudless2020-16bits_sinlge-file_z0-4.tif',\n", - " }\n", - " ]\n", - ")\n", - "source" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "bf927816-1ce2-4929-8b9e-aeed7680be42", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'id': 'a0ccb9af-caa2-447f-8a78-5472a940af9c',\n", - " 'source': {'sources': [{'url': 'https://s2downloads.eox.at/demo/EOxCloudless/2020/rgbnir/s2cloudless2020-16bits_sinlge-file_z0-4.tif'}],\n", - " '@@type': 'GeoTIFFSource'},\n", - " '@@type': 'WebGLTileLayer'}" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "layer = WebGLTileLayer(source=source)\n", - "layer.model_dump()" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "7ad0cc6a-c508-44b6-83d1-8f03eb6a7e72", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'viewOptions': {'center': (0, 0), 'zoom': 0},\n", - " 'layers': [{'id': 'osm', 'source': {'@@type': 'OSM'}, '@@type': 'TileLayer'}]}" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "m = MapWidget()\n", - "m.map_options" - ] - }, - { - "cell_type": "code", - "execution_count": 9, - "id": "4241d0b7-ab89-4cbd-a60b-988b6896bbd7", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "cd289b72e61b403ca446bb082e6143f0", - "version_major": 2, - "version_minor": 1 - }, - "text/plain": [ - "MapWidget(height='400px', map_options={'viewOptions': {'center': (0, 0), 'zoom': 0}, 'layers': [{'id': 'osm', …" - ] - }, - "execution_count": 9, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "m" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "id": "8ca96e77-dbad-4958-8bac-4b92cbd1acbb", - "metadata": {}, - "outputs": [], - "source": [ - "m.add_layer(layer)" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "e80b179d-9ce6-410c-b28b-9d232e478685", - "metadata": {}, - "outputs": [], - "source": [ - "m.remove_layer(\"osm\")" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "b7dfdd78-ec19-4e72-9d82-3ed96fce30d3", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'id': 'populated-places',\n", - " 'source': {'url': 'https://openlayers.org/data/vector/populated-places.json',\n", - " 'format': {'@@type': 'GeoJSON'},\n", - " '@@type': 'VectorSource'},\n", - " 'style': {'circle-fill-color': 'red',\n", - " 'circle-stroke-color': 'yellow',\n", - " 'circle-stroke-width': 0.75,\n", - " 'circle-radius': 5},\n", - " '@@type': 'WebGLVectorLayer'}" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "vector_layer = WebGLVectorLayer(\n", - " id=\"populated-places\",\n", - " source=VectorSource(url=\"https://openlayers.org/data/vector/populated-places.json\",\n", - " # format = {\"@@type\": \"KML\"}\n", - " ),\n", - " style={\n", - " \"circle-fill-color\": \"red\",\n", - " \"circle-stroke-color\": \"yellow\",\n", - " \"circle-stroke-width\": 0.75,\n", - " \"circle-radius\": 5\n", - " }\n", - ")\n", - "vector_layer.model_dump()" - ] - }, - { - "cell_type": "code", - "execution_count": 13, - "id": "e7c33cde-06ff-4b50-be93-f049c0a4ab90", - "metadata": {}, - "outputs": [], - "source": [ - "m.add_layer(vector_layer)" - ] - }, - { - "cell_type": "code", - "execution_count": 12, - "id": "760e2fed-21f4-48ea-b18c-c3335ed0b1f6", - "metadata": {}, - "outputs": [], - "source": [ - "m.remove_layer(\"populated-places\")" - ] - }, - { - "cell_type": "code", - "execution_count": 20, - "id": "a764abe9-9ed9-4983-af27-ea5ae744e97a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'sources': [{'url': 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/Q/WD/2020/7/S2A_36QWD_20200701_0_L2A/TCI.tif'}],\n", - " '@@type': 'GeoTIFFSource'}" - ] - }, - "execution_count": 20, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "gts = GeoTIFFSource(**{\n", - " \"sources\": [\n", - " {\n", - " \"url\": 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/Q/WD/2020/7/S2A_36QWD_20200701_0_L2A/TCI.tif',\n", - " },\n", - " ],\n", - "})\n", - "gts.model_dump()" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "id": "a873206b-ea50-4429-bac6-3c2f2e78b13a", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'id': 'c932c990-a7dd-41e7-98dc-a5e22b1f2bdc',\n", - " 'source': {'sources': [{'url': 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/Q/WD/2020/7/S2A_36QWD_20200701_0_L2A/TCI.tif'}],\n", - " '@@type': 'GeoTIFFSource'},\n", - " 'opacity': 0.5,\n", - " '@@type': 'WebGLTileLayer'}" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "layer_cog = WebGLTileLayer(\n", - " opacity=0.5,\n", - " source=GeoTIFFSource(\n", - " sources=[\n", - " dict(url=\"https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/Q/WD/2020/7/S2A_36QWD_20200701_0_L2A/TCI.tif\")\n", - " ]\n", - " )\n", - ")\n", - "layer_cog.model_dump()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "88afc1ab-8703-4274-bb45-c077442b05fe", - "metadata": {}, - "outputs": [], - "source": [ - "m.add_layer(layer_cog)" - ] - }, - { - "cell_type": "code", - "execution_count": 10, - "id": "cd30ee6a-19aa-4e4b-adcb-d62753900397", - "metadata": {}, - "outputs": [], - "source": [ - "m.add_layer(layer)" - ] - }, - { - "cell_type": "code", - "execution_count": 18, - "id": "7b503c6b-2e65-42c2-a9b7-ab4ba5b03636", - "metadata": {}, - "outputs": [], - "source": [ - "m.remove_layer(\"a0ccb9af-caa2-447f-8a78-5472a940af9c\")" - ] - }, - { - "cell_type": "code", - "execution_count": 14, - "id": "e5504daa-5247-4639-bd3f-3eeef7f21ef2", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'center': [2277691.9989565676, 4319146.43440363],\n", - " 'projection': 'EPSG:3857',\n", - " 'zoom': 2.3511503777393847,\n", - " 'lnglat': [33.90658774726085, 19.582580137237215]}" - ] - }, - "execution_count": 14, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "m.map_clicked" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "256ce21f-d81c-4d9a-a709-401ce0041366", - "metadata": {}, - "outputs": [], - "source": [] - } - ], - "metadata": { - "kernelspec": { - "display_name": "Python 3 (ipykernel)", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.11.11" - } - }, - "nbformat": 4, - "nbformat_minor": 5 -} diff --git a/notebooks/cog-layer.ipynb b/notebooks/cog-layer.ipynb index fa140a9..42f122e 100644 --- a/notebooks/cog-layer.ipynb +++ b/notebooks/cog-layer.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": 6, + "execution_count": 1, "id": "a3f75a57-a0a5-45ca-995f-28bc6f15bfc4", "metadata": {}, "outputs": [], @@ -15,7 +15,7 @@ }, { "cell_type": "code", - "execution_count": 23, + "execution_count": 2, "id": "8ca5c312-612e-4880-9b26-fe7148d0eebd", "metadata": {}, "outputs": [], @@ -32,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 24, + "execution_count": 5, "id": "d997f086-4879-4532-8608-566c4dc37dc3", "metadata": {}, "outputs": [], @@ -42,47 +42,52 @@ }, { "cell_type": "code", - "execution_count": 25, + "execution_count": 6, "id": "7a409621-b7b5-4c22-ba39-c5b88cc77ab3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'viewOptions': {'center': (0, 0), 'zoom': 0},\n", - " 'layers': [{'type': 'WebGLTileLayer',\n", - " 'options': {'source': {'type': 'GeoTIFFSource',\n", - " 'options': {'sources': [{'url': 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/Q/WD/2020/7/S2A_36QWD_20200701_0_L2A/TCI.tif'}]}},\n", - " 'opacity': 0.5}}]}" + "{'view': {'center': (0.0, 0.0),\n", + " 'zoom': 0,\n", + " 'projection': 'EPSG:3857',\n", + " '@@type': 'View'},\n", + " 'layers': [{'id': '1a64a2d303',\n", + " 'source': {'sources': [{'url': 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/Q/WD/2020/7/S2A_36QWD_20200701_0_L2A/TCI.tif'}],\n", + " '@@type': 'GeoTIFFSource'},\n", + " 'opacity': 0.5,\n", + " 'visible': True,\n", + " '@@type': 'WebGLTileLayer'}]}" ] }, - "execution_count": 25, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "m.map_options" + "m.options" ] }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 7, "id": "250913c3-707d-48c2-8c88-2b522a97e6f9", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "1b02723f6b2146069702f0966165b914", + "model_id": "5ed8df4bc8ef4189aa12e6ffaf135eb9", "version_major": 2, "version_minor": 1 }, "text/plain": [ - "MapWidget(height='400px', map_options={'viewOptions': {'center': (0, 0), 'zoom': 0}, 'layers': [{'type': 'WebG…" + "MapWidget(height='400px', options={'view': {'center': (0.0, 0.0), 'zoom': 0, 'projection': 'EPSG:3857', '@@typ…" ] }, - "execution_count": 26, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -93,16 +98,47 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 9, "id": "d7377233-0af7-4f0d-988e-11f6d05da0f1", "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'layers': [{'id': '1a64a2d303', 'type': 'WebGLTileLayer'}], 'controls': []}" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "10bb9b42", + "metadata": {}, + "outputs": [], + "source": [ + "m.add_call(\"setViewFromSource\", m.metadata[\"layers\"][0][\"id\"])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "bd8dff46", + "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": ".venv", "language": "python", "name": "python3" }, diff --git a/notebooks/controls.ipynb b/notebooks/controls.ipynb index 8b3fcc8..f13d3f3 100644 --- a/notebooks/controls.ipynb +++ b/notebooks/controls.ipynb @@ -7,8 +7,7 @@ "metadata": {}, "outputs": [], "source": [ - "from openlayers.anywidget import MapWidget, View\n", - "from openlayers.controls import FullScreenControl, ScaleLineControl, ZoomSliderControl, MousePositionControl" + "import openlayers as ol" ] }, { @@ -19,12 +18,8 @@ "outputs": [], "source": [ "controls = [\n", - " # FullScreenControl(),\n", - " # ScaleLineControl(bar=True, text=True, units=\"degrees\"),\n", - " ZoomSliderControl(),\n", - " MousePositionControl()\n", - " # dict(type=\"FullScreenControl\"),\n", - " # dict(type=\"ScaleLineControl\", options=dict(bar=True, text=True))\n", + " ol.ZoomSliderControl(),\n", + " ol.MousePositionControl()\n", "]" ] }, @@ -35,7 +30,7 @@ "metadata": {}, "outputs": [], "source": [ - "m = MapWidget(View(), layers=[], controls=controls)" + "m = ol.MapWidget(controls=controls)" ] }, { @@ -47,10 +42,17 @@ { "data": { "text/plain": [ - "{'viewOptions': {'center': (0, 0), 'zoom': 0},\n", - " 'controls': [{'type': 'ZoomSliderControl', 'options': {}},\n", - " {'type': 'MousePositionControl', 'options': {'projection': 'EPSG:4326'}}],\n", - " 'layers': []}" + "{'view': {'center': (0.0, 0.0),\n", + " 'zoom': 0,\n", + " 'projection': 'EPSG:3857',\n", + " '@@type': 'View'},\n", + " 'controls': [{'id': '1978f58242', '@@type': 'ZoomSliderControl'},\n", + " {'id': '7e8c00fcd0', '@@type': 'MousePositionControl'}],\n", + " 'layers': [{'id': 'osm',\n", + " 'source': {'@@type': 'OSM'},\n", + " 'opacity': 1.0,\n", + " 'visible': True,\n", + " '@@type': 'TileLayer'}]}" ] }, "execution_count": 4, @@ -59,8 +61,7 @@ } ], "source": [ - "# m.map_options[\"layers\"] = None\n", - "m.map_options" + "m.options" ] }, { @@ -72,12 +73,12 @@ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "a8892ce37f384c5e8d1b7a1c9f5753fe", + "model_id": "c0a19bca9e894a5ab03da5faa497dfcc", "version_major": 2, "version_minor": 1 }, "text/plain": [ - "MapWidget(height='400px', map_options={'viewOptions': {'center': (0, 0), 'zoom': 0}, 'controls': [{'type': 'Zo…" + "MapWidget(height='400px', options={'view': {'center': (0.0, 0.0), 'zoom': 0, 'projection': 'EPSG:3857', '@@typ…" ] }, "execution_count": 5, @@ -98,7 +99,7 @@ { "data": { "text/plain": [ - "{}" + "{'center': (0.0, 0.0), 'zoom': 0, 'projection': 'EPSG:3857'}" ] }, "execution_count": 6, @@ -107,21 +108,133 @@ } ], "source": [ - "m.map_clicked" + "m.initial_view_state" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "4062f78a-d8d2-4c26-87ac-3cd530cc7c5b", "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'center': [36.2630317905983, -1.5858331267923234],\n", + " 'projection': 'EPSG:3857',\n", + " 'zoom': 2.958559395848007,\n", + " 'extent': [-68.38974994395485,\n", + " -35.29598845521411,\n", + " 140.91581352515144,\n", + " 32.66607588460435]}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m.view_state" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "1dffcd4d", + "metadata": {}, + "outputs": [], + "source": [ + "# m.set_view(ol.View(projection=\"EPSG:4326\"))" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "dfd1f19e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'layers': [{'id': 'osm', 'type': 'TileLayer'}],\n", + " 'controls': [{'id': '1978f58242', 'type': 'ZoomSliderControl'},\n", + " {'id': '7e8c00fcd0', 'type': 'MousePositionControl'}]}" + ] + }, + "execution_count": 8, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "810fc555", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "True" + ] + }, + "execution_count": 9, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m.created" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "6c4945b0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "[]" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m.calls" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "8e713794", + "metadata": {}, + "outputs": [], + "source": [ + "m.add_control(ol.MousePositionControl())" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "c0a2026d", + "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3 (ipykernel)", + "display_name": ".venv", "language": "python", "name": "python3" }, diff --git a/notebooks/data/fells_loop.gpx b/notebooks/data/fells_loop.gpx new file mode 100644 index 0000000..d8a1df5 --- /dev/null +++ b/notebooks/data/fells_loop.gpx @@ -0,0 +1,1077 @@ + + + + + + 44.586548 + + 5066 + + Crossing + + + + 57.607200 + + 5067 + + Dot + + + + 44.826904 + + 5096 + + Dot + + + + 50.594727 + + 5142 + + Dot + + + + 127.711200 + + 5156 + + Dot + + + + 96.926400 + + 5224 + + Dot + + + + 82.600800 + + 5229 + + Dot + + + + 82.905600 + + 5237 + + Dot + + + + 66.696655 + + 5254 + + Dot + + + + 74.627442 + + 5258 + + Dot + + + + 65.254761 + + 5264 + + Dot + + + + 77.419200 + + 526708 + + Dot + + + + 74.676000 + + 526750 + + Dot + + + + 78.713135 + + 527614 + + Dot + + + + 78.713135 + + 527631 + + Dot + + + + 68.275200 + + 5278 + + Dot + + + + 64.008000 + + 5289 + + Dot + + + + 52.997925 + + 5374FIRE + + Dot + + + + 56.388000 + + 5376 + + Dot + + + + 56.388000 + + 6006 + + Dot + + + + 46.028564 + + 6006BLUE + + Dot + + + + 37.616943 + + 6014MEADOW + + Dot + + + + 56.388000 + + 6029 + + Dot + + + + 50.292000 + + 6053 + + Dot + + + + 25.603200 + + 6066 + + Dot + + + + 34.442400 + + 6067 + + Dot + + + + 30.480000 + + 6071 + + Dot + + + + 15.240000 + + 6073 + + Dot + + + + 37.795200 + + 6084 + + Dot + + + + 64.008000 + + 6130 + + Dot + + + + 64.008000 + + 6131 + + Dot + + + + 62.788800 + + 6153 + + Dot + + + + 55.473600 + + 6171 + + Dot + + + + 62.484000 + + 6176 + + Dot + + + + 62.179200 + + 6177 + + Dot + + + + 69.799200 + + 6272 + + Dot + + + + 73.152000 + + 6272 + + Dot + + + + 70.104000 + + 6278 + + Dot + + + + 57.564209 + + 6280 + + Dot + + + + 66.696655 + + 6283 + + Dot + + + + 72.945191 + + 6289 + + Dot + + + + 72.847200 + + 6297 + + Dot + + + + 53.644800 + + 6328 + + Dot + + + + 43.891200 + + 6354 + + Dot + + + + 48.768000 + + 635722 + + Dot + + + + 49.072800 + + 635783 + + Dot + + + + 62.484000 + + 6373 + + Dot + + + + 3.962400 + + 6634 + + Dot + + + + 13.411200 + + 6979 + + Dot + + + + 34.012085 + + 6997 + + Dot + + + + 87.782400 + + BEAR HILL + BEAR HILL TOWER + + Tall Tower + + + + 23.469600 + + BELLEVUE + BELLEVUE + + Parking Area + + + + 43.384766 + + 6016 + + Trailhead + + + + 89.916000 + + 5236BRIDGE + + Bridge + + + + 55.473600 + + 5376BRIDGE + + Bridge + + + + 52.730400 + + 6181CROSS + + Crossing + + + + 45.110400 + + 6042CROSS + + Crossing + + + + DARKHOLLPO + + Fishing Area + + + 56.083200 + + 6121DEAD + + Danger Area + + + + 117.043200 + + 5179DEAD + + Danger Area + + + + 69.494400 + + 5299DEAD + + Danger Area + + + + 56.997600 + + 5376DEAD + + Danger Area + + + + 46.939200 + + 6353DEAD + + Danger Area + + + + 61.264800 + + 6155DEAD + + Danger Area + + + + 110.947200 + + GATE14 + + Truck Stop + + + + 77.724000 + + GATE16 + + Truck Stop + + + + 65.836800 + + GATE17 + + Truck Stop + + + + 57.302400 + + GATE19 + + Truck Stop + + + + 49.377600 + + GATE21 + + Truck Stop + + + + 81.076800 + + GATE24 + + Truck Stop + + + + 21.515015 + + GATE5 + + Truck Stop + + + + 26.561890 + + GATE6 + + Trailhead + + + + 32.004000 + + 6077LOGS + + Amusement Park + + + + 119.809082 + + 5148NANEPA + + Trailhead + + + + 73.761600 + + 5267OBSTAC + + Amusement Park + + + + 45.307495 + + PANTHRCAVE + + Tunnel + + + + 77.992066 + + 5252PURPLE + + Summit + + + + 67.970400 + + 5287WATER + + Swimming Area + + + + 81.076800 + + 5239ROAD + + Truck Stop + + + + 67.360800 + + 5278ROAD + + Truck Stop + + + + 53.949600 + + 5058ROAD + ROAD CROSSING + + Dot + + + + 69.799200 + + SHEEPFOLD + + Parking Area + + + + 64.008000 + + SOAPBOX + + Cemetery + + + + 64.533692 + + 5376STREAM + + Bridge + + + + 61.649902 + + 5144SUMMIT + + Summit + + + + 67.360800 + + 5150TANK + WATER TANK + + Museum + + + + BELLEVUE + + 1 + + 23.469600 + + BELLEVUE + BELLEVUE + + Parking Area + + + + 26.561890 + + GATE6 + + Trailhead + + + + 45.307495 + + PANTHRCAVE + + Tunnel + + + + 37.616943 + + 6014MEADOW + + Dot + + + + 56.388000 + + 6006 + + Dot + + + + 46.028564 + + 6006BLUE + + Dot + + + + 44.826904 + + 5096 + + Dot + + + + 44.586548 + + 5066 + + Crossing + + + + 57.607200 + + 5067 + + Dot + + + + 53.949600 + + 5058ROAD + ROAD CROSSING + + Dot + + + + 67.360800 + + 5150TANK + WATER TANK + + Museum + + + + 50.594727 + + 5142 + + Dot + + + + 61.649902 + + 5144SUMMIT + + Summit + + + + 127.711200 + + 5156 + + Dot + + + + 119.809082 + + 5148NANEPA + + Trailhead + + + + 74.627442 + + 5258 + + Dot + + + + 77.992066 + + 5252PURPLE + + Summit + + + + 78.713135 + + 527631 + + Dot + + + + 78.713135 + + 527614 + + Dot + + + + 73.761600 + + 5267OBSTAC + + Amusement Park + + + + 68.275200 + + 5278 + + Dot + + + + 64.008000 + + 5289 + + Dot + + + + 52.997925 + + 5374FIRE + + Dot + + + + 56.388000 + + 5376 + + Dot + + + + 64.533692 + + 5376STREAM + + Bridge + + + + 53.644800 + + 6328 + + Dot + + + + 48.768000 + + 635722 + + Dot + + + + 49.072800 + + 635783 + + Dot + + + + 62.484000 + + 6373 + + Dot + + + + 87.782400 + + BEAR HILL + BEAR HILL TOWER + + Tall Tower + + + + 72.945191 + + 6289 + + Dot + + + + 72.847200 + + 6297 + + Dot + + + + 66.696655 + + 6283 + + Dot + + + + 57.564209 + + 6280 + + Dot + + + + 62.179200 + + 6177 + + Dot + + + + 62.484000 + + 6176 + + Dot + + + + 62.788800 + + 6153 + + Dot + + + + 55.473600 + + 6171 + + Dot + + + + 64.008000 + + 6131 + + Dot + + + + 64.008000 + + 6130 + + Dot + + + + 56.388000 + + 6029 + + Dot + + + + 56.388000 + + 6006 + + Dot + + + + 37.616943 + + 6014MEADOW + + Dot + + + + 45.307495 + + PANTHRCAVE + + Tunnel + + + + 26.561890 + + GATE6 + + Trailhead + + + + 23.469600 + + BELLEVUE + BELLEVUE + + Parking Area + + + + \ No newline at end of file diff --git a/notebooks/data/fr-departments.topo.json b/notebooks/data/fr-departments.topo.json new file mode 100644 index 0000000..1ceda83 --- /dev/null +++ b/notebooks/data/fr-departments.topo.json @@ -0,0 +1 @@ +{"type":"Topology","transform":{"scale":[0.0012781599895488503,0.0008731329749103904],"translate":[-5.115416999999923,41.349029000000144]},"arcs":[[[9931,7737],[-56,53],[-26,62],[-96,43],[-64,87],[-51,9]],[[9638,7991],[-83,37],[15,78],[-13,81]],[[9557,8187],[9,41]],[[9566,8228],[73,3],[63,110],[12,169],[-39,31],[-93,24],[-120,64],[-13,47],[54,53],[15,69],[45,-9],[56,-52],[96,-28],[203,8],[62,114]],[[9980,8831],[178,-25],[46,14],[111,-44],[100,-63],[-42,-66],[-33,-99],[-100,-59],[-3,-38],[-93,-88],[-35,-75],[1,-75],[-28,-27],[-29,-108],[11,-78],[-37,-29],[-22,-95],[-57,-83],[-17,-56]],[[9588,7050],[-12,85],[-76,55],[28,94],[-133,55],[-35,49]],[[9360,7388],[82,211],[78,97],[18,100],[60,70],[40,125]],[[9931,7737],[1,-85],[31,-79],[-50,-96],[-25,-249],[53,-56],[-6,-34],[-65,-44],[9,-49],[-100,-74],[-168,16],[-23,63]],[[4973,4689],[47,-100],[-43,-63],[46,-50],[-17,-127],[59,18],[50,-144]],[[5115,4223],[1,-166],[-54,-45],[-11,-83],[-39,-47],[-74,-41],[-82,-118]],[[4856,3723],[-87,62],[-101,-47],[-8,94],[-46,14],[-72,-34],[-37,40],[-132,-25],[-42,-39],[-62,-9],[-26,60],[28,50],[-41,59]],[[4230,3948],[16,96],[-46,11],[-102,-44],[-87,35],[-6,94],[27,65],[18,103],[-76,39]],[[3974,4347],[72,99]],[[4046,4446],[72,4],[91,103],[7,120],[146,127],[56,125],[64,41]],[[4482,4966],[41,16],[69,-54],[-6,-47],[78,-21],[22,30],[106,12],[38,-59],[54,-33],[-25,-65],[21,-30],[93,-26]],[[3443,4550],[115,43],[20,-45],[108,-80],[3,-88],[43,18],[105,-87],[137,36]],[[4230,3948],[-74,-45],[-49,17],[-35,-44],[73,-46],[-22,-90],[-60,0],[-83,-134],[6,-97],[28,-48],[-73,-17],[15,-61],[-32,-66],[-45,-33]],[[3879,3284],[-49,16],[-53,-40],[-45,5],[-25,79],[-97,103],[-92,56],[-56,53],[-116,-35],[-81,35],[-89,-10],[35,98],[-71,17],[-69,-49],[-47,-8]],[[3024,3604],[-1,59],[47,130],[84,-20],[31,63],[-85,78],[-77,-61],[22,169],[48,505],[8,212],[65,40],[208,-202],[33,-78],[13,-91],[58,-35],[-35,177]],[[3879,3284],[43,-75],[74,5],[106,-24],[-35,-79],[2,-62]],[[4069,3049],[-27,-16],[1,-81],[-65,8],[-17,87],[-48,-59],[-59,0],[-38,-45],[23,-85],[-4,-111],[-25,-81],[-35,-38],[21,-61]],[[3796,2567],[-43,-42],[-74,7],[-41,30],[-84,-53],[-60,21],[-73,-8],[-21,29],[-117,-4],[-62,-57],[-58,-10],[-87,21],[-30,34],[-98,-50],[-87,-7],[-45,30]],[[2816,2508],[53,116],[8,72],[53,261],[47,256],[47,391]],[[4856,3723],[-41,-31],[-46,8],[5,-93],[35,-60],[-4,-67]],[[4805,3480],[-126,-58],[45,-37],[3,-78],[-43,-23],[0,-63],[-45,6],[-53,-84]],[[4586,3143],[-67,-16],[-43,28],[-86,-34],[-41,-45],[-101,-35],[-59,7],[-60,-31],[-60,32]],[[3882,2560],[64,-93],[60,-136],[-41,-39],[-5,-98],[-56,-97],[-76,-90],[-7,-48],[-75,-46],[18,-61],[-59,-56],[12,-115]],[[3717,1681],[-63,-24],[-44,36],[-52,-52],[-27,57],[-102,76],[-15,79],[-45,-18],[-106,3],[-49,42],[-98,20],[-90,40],[-77,55],[-6,-72],[-69,21],[-23,52],[44,42],[24,71],[0,72],[-95,46],[-127,24],[-47,-21],[-32,89],[81,29],[52,38],[65,122]],[[3796,2567],[86,-7]],[[3919,2350],[-28,-81],[53,5],[-25,76]],[[3865,2241],[13,-84],[42,27],[-55,57]],[[6831,6163],[61,-132],[27,-96],[173,-72],[34,-199],[-59,-47]],[[7067,5617],[-116,-24],[38,-262],[-78,-26],[-29,-33]],[[6882,5272],[-86,68],[-46,0],[-76,53],[-59,6],[-143,-15],[-46,10],[-22,55],[-80,10],[-49,60],[18,98],[-65,9],[-79,-55],[-77,-100],[-77,2]],[[5995,5473],[-30,88],[-66,71],[-35,64],[-46,-4],[-27,81]],[[5791,5773],[5,62],[83,97],[141,9],[14,33],[-16,96],[36,65],[61,23],[60,-25],[104,76],[100,40]],[[6379,6249],[4,-68],[107,-79],[53,38],[63,-18],[45,27],[59,-68],[121,82]],[[6413,4612],[5,-78],[94,-13],[56,-87],[31,-121],[-1,-97],[33,-58]],[[6631,4158],[-70,-41],[-36,-50],[-75,2],[-69,-111],[-16,-79],[-47,-95]],[[6318,3784],[-34,46],[-10,124],[-61,66],[-82,25],[5,63],[-46,19],[-33,-55],[-59,-155],[-76,-121],[-196,17],[-20,-52]],[[5706,3761],[-42,82],[21,133],[-67,155],[0,44]],[[5618,4175],[44,10],[-14,77],[48,85],[8,64],[46,78],[96,108],[97,38],[30,90]],[[5973,4725],[93,-22],[67,-62],[76,-7],[84,-89],[47,-22],[73,89]],[[7024,4597],[64,6],[40,-26],[149,51],[53,-47],[67,-10],[22,-93],[73,-12]],[[7492,4466],[-9,-79],[-72,-138],[-74,-116],[-68,-69],[-92,-36],[-103,-99],[-44,-21],[16,-78]],[[7046,3830],[-50,38],[-3,63],[-40,29],[-69,3],[-157,-28],[-96,223]],[[6413,4612],[163,60],[74,-33],[59,35],[132,-96],[46,40],[51,-51],[40,43],[46,-13]],[[6882,5272],[36,-60],[-27,-115],[64,-137],[115,-113],[44,-92],[-4,-47],[-56,-44],[-30,-67]],[[5973,4725],[0,97],[-36,92],[36,58],[-45,82]],[[5928,5054],[-47,107],[86,43],[11,64],[44,31],[12,51],[-39,123]],[[3103,9177],[-1,0]],[[3102,9177],[1,0]],[[3103,9178],[0,-1]],[[3103,9177],[0,1]],[[4258,9265],[-13,-133],[94,-98],[19,-92],[-1,-97],[18,-80]],[[4375,8765],[-72,-25],[-99,13],[-26,-34],[-64,1],[-137,-123],[-13,-33],[-84,33],[-81,11],[-24,-52],[-88,72],[-79,-23],[-97,6],[-103,-96],[-45,2]],[[3363,8517],[-32,-6],[-86,47],[-46,-24],[-87,60],[84,81],[-44,20],[19,59],[110,27],[41,45],[18,68],[-58,57],[38,63],[-88,4],[-68,49],[-49,104]],[[3115,9171],[49,39],[97,6],[91,-43],[185,-21],[143,-5],[90,-45],[112,-11],[139,58],[82,75],[127,39]],[[4230,9263],[28,2]],[[3103,9178],[12,-7]],[[3363,8517],[97,-97],[-13,-86],[-84,-112]],[[3363,8222],[-34,-10],[-145,35]],[[3184,8247],[-117,37],[-64,-60],[-75,-43],[-52,7],[-77,104],[24,48]],[[2823,8340],[2,61],[-55,82],[-7,108],[17,90],[-38,170],[14,68],[-90,208],[-79,61],[-34,158],[9,74],[-27,97],[-50,14],[13,64],[76,-41],[153,-36],[96,3],[55,43],[116,-8],[46,-83],[-59,-54],[2,-45],[95,-127],[24,-70]],[[4660,8401],[1,-47],[57,-101],[34,-22],[-8,-98],[-34,-81],[-77,-29],[-16,-80],[8,-80]],[[4625,7863],[-76,-7],[-47,59],[-97,16],[-74,75],[-19,127],[-152,45],[-85,-77],[-83,27]],[[3992,8128],[-9,31],[-80,-2],[-53,139],[-49,-55],[-76,-39],[-162,19],[-45,-30],[-139,-21],[-16,52]],[[4375,8765],[-19,-80],[76,-53],[47,20],[41,-62],[88,-77],[-1,-63],[53,-49]],[[7713,7626],[46,-4],[33,-46],[-14,-47],[98,-81],[-1,-65],[-34,-20],[52,-120],[167,-20],[155,-57]],[[8215,7166],[61,-4],[24,-78],[-29,-60],[-47,-11],[57,-117],[31,-2],[-3,-87]],[[8309,6807],[-77,-160],[-26,-79],[-92,-43],[-13,-66]],[[8101,6459],[-101,-41],[-51,23],[-169,-41],[-125,-55],[-65,63],[-33,61],[-152,60],[-21,49],[-99,64],[-59,-15]],[[7226,6627],[67,50],[-66,128],[-16,81]],[[7211,6886],[17,176],[45,39],[74,176],[-29,77],[39,51],[-34,55],[10,104]],[[7333,7564],[19,29],[79,-9],[126,8],[41,77],[115,-43]],[[7226,6627],[-49,-18],[-8,-91],[-32,-46],[65,-134],[-34,-133],[-60,-25],[-41,-49],[-92,-21],[-37,46],[-107,7]],[[6379,6249],[18,64],[-1,122],[-39,132],[-29,171],[-80,120],[12,173],[-22,37]],[[6238,7068],[115,75]],[[6353,7143],[77,24],[40,-76],[142,-73],[44,46],[76,-5],[119,-47],[28,-64],[95,-14],[59,-57],[46,18],[73,-78],[59,69]],[[8101,6459],[57,-117],[110,-56],[-61,-37],[34,-214],[-34,-102],[35,-36],[-77,-57]],[[8165,5840],[-55,-32],[-83,72],[-61,-2],[-78,29],[-57,-37],[-30,-126],[-63,-200]],[[7738,5544],[-48,-8],[-36,121],[-199,-12],[-36,-96]],[[7419,5549],[-7,-44],[-110,-2],[-17,46],[-111,-5],[-60,-22],[-76,53],[29,42]],[[6641,8067],[89,-42],[81,-99],[-29,-98],[139,-56],[50,-41],[59,-91],[52,-28],[-19,-64],[36,-23],[94,14],[77,31],[63,-6]],[[6353,7143],[-53,44],[0,50],[-45,69],[-10,56],[78,11],[33,40],[21,117],[73,45],[-32,111],[-16,114],[-28,46],[-51,3]],[[6323,7849],[31,55],[36,146],[50,9],[170,-9],[31,17]],[[2317,8321],[113,-101],[18,28]],[[2448,8248],[18,6]],[[2466,8254],[51,-27],[6,-52],[-46,-37],[6,-153],[-45,-27],[-83,21],[-61,-42],[-64,-130]],[[2230,7807],[-62,-17],[-44,70],[-75,-38],[-24,-82],[-40,-37],[-56,9],[-30,84],[-124,19],[-121,41],[-47,41],[-40,-81],[-35,17],[-175,-11],[-38,42],[-61,1]],[[1258,7865],[-28,66],[44,28],[-44,82],[-21,117],[6,73],[46,63],[-111,89]],[[1150,8383],[51,2],[-6,116],[17,43],[70,34],[39,-46],[105,37],[72,8],[84,37],[15,-57],[49,2],[-1,-63],[48,-2],[19,-64],[85,-68],[-1,-64],[84,-48],[86,2],[84,63],[130,74],[33,-6],[66,-97],[38,35]],[[1258,7865],[-138,-44],[-28,-45],[19,-45],[91,-94],[62,8],[52,-24],[45,16],[15,-61],[-19,-66],[-109,-118]],[[1248,7392],[-10,-42],[-112,10],[-137,28],[-45,74],[-104,-20],[-56,28],[-38,-25],[-23,-62],[-81,-4],[-40,50],[-13,61],[-48,85],[-227,80],[33,33],[232,56],[54,-24],[28,52],[-36,79],[-103,36],[-89,1],[8,66],[111,-21],[79,25],[-1,47],[-102,-14],[-29,65],[-102,-52],[-120,40],[-27,49],[24,60],[-9,59],[56,59],[72,3],[37,56],[69,2],[120,61],[38,-31],[67,39],[168,17],[21,-53],[65,20],[18,43],[82,2],[72,-47]],[[2317,8321],[77,30],[54,-103]],[[3184,8247],[12,-190],[-38,-89],[12,-84],[56,-123],[-5,-126],[-77,-27],[-58,-160]],[[3086,7448],[-33,-42]],[[3053,7406],[-83,0],[-36,40],[-64,2],[-133,-87],[-50,-59],[-152,4],[-159,-48]],[[2376,7258],[-41,77],[29,66],[56,64],[-37,118],[-74,57],[-80,3],[23,94],[-22,70]],[[2466,8254],[-50,97],[31,50],[98,20],[-4,-69],[69,-41],[110,14],[66,31],[37,-16]],[[1458,6920],[75,-33],[64,-87],[-113,8],[-36,67],[10,45]],[[2376,7258],[13,-27],[-24,-138],[-32,2],[-155,-73],[-66,17],[-38,-53]],[[2074,6986],[-44,89],[-111,-8],[-118,-39],[-5,66],[62,1],[13,58],[-45,30],[-268,-62],[-128,152],[-68,24],[-62,-28],[-37,40],[-15,83]],[[5791,5773],[-101,42]],[[5690,5815],[18,48],[-20,68],[-4,225],[-45,116],[57,67],[-54,59],[-2,81],[-66,133],[-76,-30],[-83,25],[-36,31],[59,80]],[[5438,6718],[48,-12],[13,83],[63,-15],[108,24],[7,163],[79,37],[-10,97],[-53,5],[-5,59],[74,28]],[[5762,7187],[110,-37],[45,25],[76,-54],[65,-87],[70,39],[65,-24],[45,19]],[[5515,8143],[29,-7],[33,-105],[4,-76]],[[5581,7955],[-27,-75],[1,-63],[-36,-65],[-128,-41],[-47,3],[-132,-111]],[[5212,7603],[-65,30],[-35,-40],[-80,12],[-66,-15],[-70,123],[-53,21],[-23,45],[-60,-40],[-86,2]],[[4674,7741],[33,60],[-82,62]],[[4660,8401],[111,50],[117,29],[13,32],[83,-24],[79,9],[25,52],[72,59],[-3,84]],[[5157,8692],[50,-21],[56,-102],[18,-96],[-19,-52],[67,-151],[52,-49],[27,-61],[50,-28],[57,11]],[[5690,5815],[-86,-13],[-110,36],[-33,-18],[-63,23],[-34,-46],[-184,-11],[-80,-35]],[[5100,5751],[-33,25],[-56,-29],[-94,20]],[[4917,5767],[-1,47],[45,54],[-97,92],[-127,30],[-20,61],[21,118]],[[4738,6169],[73,47],[-17,52],[51,218],[79,25],[48,-15],[49,83],[46,16],[9,79]],[[5076,6674],[82,63],[169,51],[46,1],[65,-71]],[[4487,7280],[57,-42],[132,-26],[33,-54],[118,23],[55,-209],[-1,-97],[-21,-49],[41,-41],[62,9],[33,-60],[80,-60]],[[4738,6169],[-58,23],[-15,62],[-96,101],[-44,109],[-79,50],[15,-93],[-100,0],[-60,-28],[-65,29],[-23,45],[2,82],[-169,103]],[[4046,6652],[35,151],[65,141],[38,227],[-11,24]],[[4173,7195],[86,-49],[15,49],[169,46],[44,39]],[[5904,7963],[69,-114],[-28,-65],[82,-26],[161,54],[120,11],[15,26]],[[5762,7187],[-15,33],[-103,24],[-93,-13],[-81,25],[-26,-33],[-68,26],[-43,63],[-86,18],[-42,91],[21,52],[-35,44],[21,86]],[[5581,7955],[91,11],[61,33],[44,-35],[46,19],[81,-20]],[[4487,7280],[43,82],[76,29],[0,116],[65,18],[-8,125],[-34,22],[45,69]],[[8205,9477],[-51,-87],[-78,7],[-54,36],[-55,-99],[22,-61],[0,-82],[-34,-44],[-8,-72],[-47,-36]],[[7900,9039],[-30,27],[-57,-40],[-50,30],[-145,-15],[-47,42],[-80,-10],[-48,57],[-66,16],[-41,45],[-158,37]],[[7178,9228],[11,116],[36,186],[48,20],[62,84],[-32,46],[42,145],[-41,39]],[[7304,9864],[82,5],[108,-35],[98,49],[66,8],[15,110],[100,89],[40,-60],[-36,-45],[-9,-90],[56,-102],[-24,-41],[49,-84],[54,16],[86,-52],[59,-71],[75,-2],[82,-82]],[[7636,8220],[1,-87],[101,-74],[82,-125],[7,-112],[-16,-82],[-111,8],[25,-71],[-12,-51]],[[6641,8067],[-2,97],[40,77],[87,111]],[[6766,8352],[115,-116],[133,-37],[130,147],[178,99],[40,-27],[4,-96],[130,-114],[140,12]],[[8253,8113],[-24,-41],[37,-58],[80,-19],[119,-156],[-31,-20],[-55,-101],[110,-72],[43,-87],[76,21]],[[8608,7580],[21,-68],[-52,-67],[-64,1],[-43,-41],[-27,-136],[-68,-42],[-48,24],[-66,-6],[-46,-79]],[[7636,8220],[106,-17],[44,42],[-9,59],[64,-10],[-18,68],[102,16]],[[7925,8378],[17,-43],[139,-36],[99,-100],[65,-39],[8,-47]],[[7900,9039],[-32,-98],[26,-77],[-11,-69],[56,-30],[-19,-81],[-64,-24],[-35,-83],[42,-92],[48,-11],[14,-96]],[[6766,8352],[-70,43],[-31,92],[33,37],[-18,45],[36,40]],[[6716,8609],[76,82],[37,83],[-31,51],[33,46],[-16,46],[98,42],[-58,119],[32,71],[54,24],[65,-12],[60,43],[88,-21],[24,45]],[[10712,1179],[142,-83],[44,7],[20,-63],[129,-71],[85,-171],[57,-32],[19,-99],[-7,-81],[66,-50],[88,51]],[[11355,587],[8,-109],[-17,-121],[-52,-64],[-25,-136],[-35,-45],[10,-41],[-33,-49],[-96,41],[11,28],[-88,63],[-55,13],[-106,72],[13,88],[53,13],[5,57],[-71,14],[-58,60],[45,57],[25,92],[-141,41],[26,96],[67,35],[-41,80],[-51,14],[-43,52],[4,82],[90,27],[-88,132]],[[10712,1179],[59,41],[13,118],[48,53],[58,7],[5,41],[54,27],[111,16],[80,103],[104,-16],[23,-50],[47,69],[-2,70],[-26,42],[35,95],[-9,96],[92,-14],[24,-222],[-16,-29],[-17,-127],[61,-107],[11,-124],[-7,-98],[22,-102],[-4,-180],[-116,-201],[-7,-100]],[[9351,7104],[66,-24],[32,-44],[-11,-64]],[[9438,6972],[-47,-66],[40,-21],[82,15],[10,-43],[-82,-47],[5,-57],[-82,-96],[-88,-57],[-83,-132],[-103,-27],[-39,-45],[16,-88],[-7,-81],[-155,-131],[-112,-118]],[[8793,5978],[-48,39],[-6,97],[77,52],[-2,65],[-94,45],[-63,174],[-65,17],[-70,70],[27,26],[4,94],[-42,33],[-8,72]],[[8503,6762],[173,82],[62,8],[158,100],[52,73],[93,36],[22,-30],[94,4],[87,86],[63,-40],[44,23]],[[9360,7388],[-62,-72],[42,-109],[-12,-57],[23,-46]],[[8503,6762],[-134,-4],[-60,49]],[[8608,7580],[66,-11],[78,52],[58,-14],[30,-78],[32,-12],[128,34],[49,-58],[47,-12],[98,33],[102,-102],[64,-24]],[[8793,5978],[24,-35],[-62,-81],[-3,-50]],[[8752,5812],[-131,-183],[-30,-13],[-123,22],[-4,31],[-75,45],[-87,-75],[-126,118],[-11,83]],[[9588,7050],[-120,-11],[-30,-67]],[[5358,9257],[59,-173],[-80,-49]],[[5337,9035],[-21,-78],[-43,-62]],[[5273,8895],[-97,-48],[-15,-48],[16,-84],[-20,-23]],[[4258,9265],[131,27],[94,-57],[134,-1],[81,-34],[-3,-44],[102,-83],[50,61],[159,37],[69,109],[283,-23]],[[5367,9671],[-35,-94],[17,-48],[-18,-67],[30,-79],[56,-56],[-59,-70]],[[4230,9263],[-106,23],[-69,75],[108,220],[89,31],[196,123],[153,26],[199,50],[146,66],[165,131]],[[5111,10008],[244,-229],[12,-108]],[[5831,8472],[80,-42],[31,17],[95,-37]],[[6037,8410],[-9,-57],[-50,-60],[-50,-166],[56,-65],[-69,-61],[-11,-38]],[[5515,8143],[44,91],[62,73],[-37,60],[7,47],[57,10],[96,91]],[[5744,8515],[87,-43]],[[5744,8515],[-38,39],[1,68]],[[5707,8622],[85,75]],[[5792,8697],[-3,-60]],[[5789,8637],[-9,-41],[58,-40]],[[5838,8556],[-7,-84]],[[6037,8410],[22,54],[-2,88]],[[6057,8552],[-29,89],[36,49],[-3,87],[-33,7]],[[6028,8784],[-19,87]],[[6009,8871],[64,16],[35,-45],[49,0],[29,43],[115,-31],[133,40]],[[6434,8894],[40,-14],[82,-171],[89,-45],[71,-55]],[[6057,8552],[-81,54],[-68,5]],[[5908,8611],[-22,30],[-97,-4]],[[5792,8697],[77,49],[66,-21],[64,11],[29,48]],[[5838,8556],[90,-3],[-20,58]],[[5337,9035],[36,-52],[121,-22],[146,51],[120,-48],[65,35],[84,-41],[100,-87]],[[5707,8622],[17,127],[-55,46],[-48,-13],[-99,28],[-66,-21],[-98,15],[-18,64],[-67,27]],[[6001,2387],[11,-34],[-27,-81],[82,-3],[23,-49],[60,-24],[71,127],[30,-60],[73,4],[17,-46],[107,-30],[78,-66]],[[6526,2125],[-113,-147],[-59,45],[-32,-52],[75,-70],[-23,-53],[23,-49],[-83,-88]],[[6314,1711],[-22,46],[-72,39],[-141,-110],[-161,30],[-102,2],[8,-81],[-33,-78],[-119,-72]],[[5672,1487],[-87,94],[-68,-22],[-18,93],[-49,75],[71,30],[16,65],[-4,93],[-49,125],[-173,52],[10,145]],[[5321,2237],[14,49],[57,26],[44,82],[61,-33],[96,7]],[[5593,2368],[46,-30],[72,9],[44,53],[104,-36],[142,23]],[[7619,3362],[46,-117],[1,-97],[52,-54],[29,-61],[-39,-80]],[[7708,2953],[-72,-28],[-40,-40],[12,-78],[-29,-95],[-84,-22],[-51,-47],[6,-78],[-70,-66],[-72,-31],[-24,-45]],[[7284,2423],[-64,49],[-27,56]],[[7193,2528],[51,49],[16,51],[-45,95],[-89,77],[-59,10],[0,47],[-51,38],[-58,-25],[10,94],[-46,35],[-75,-23],[-18,-63],[-44,-6],[-13,-82],[-71,65],[-96,28]],[[6605,2918],[55,132],[-103,101],[79,83]],[[6636,3234],[58,-34],[107,-19],[58,25],[5,79],[74,-9],[67,-90],[98,61],[-28,21],[-16,99],[8,66],[-29,55],[44,18],[29,97]],[[7111,3603],[41,-62],[-14,-95],[122,-69],[140,60],[17,-62],[51,59],[75,-22],[76,-50]],[[7193,2528],[-62,-7],[-89,-50],[-66,-73],[-113,-60],[-110,-133],[-65,18],[-50,-12],[-112,-86]],[[6001,2387],[57,26],[12,47],[-38,92],[18,48],[103,-5],[86,37],[8,51]],[[6247,2683],[102,-25],[27,93],[-15,61],[30,37],[76,-39],[71,48],[-9,46],[76,14]],[[7046,3830],[1,-97],[51,-57],[13,-73]],[[6636,3234],[-44,44],[-89,-5],[-11,46],[-84,64],[46,131],[-45,123],[-1,63],[-90,84]],[[6314,1711],[16,-44],[50,12],[-4,-202],[18,-117],[63,-23],[20,-59],[-53,-46],[-48,57],[-91,-21],[-61,4],[-32,-47],[-64,3],[-36,-39],[3,-51],[-81,18],[-69,-21],[-54,60],[-124,53],[-99,-28],[-10,-35],[-82,-35],[-75,107],[-87,50],[-58,3],[7,83],[40,15]],[[5403,1408],[84,30],[69,46],[103,-14],[13,17]],[[5618,4175],[-116,-15],[-32,17],[-61,-68],[-47,25],[-71,72],[-100,42],[-76,-25]],[[4973,4689],[126,60],[17,49],[51,42],[90,17],[146,90],[75,8],[-14,53]],[[5464,5008],[92,7],[54,57],[159,-98],[59,29],[12,48],[88,3]],[[5464,5008],[15,67],[-49,40],[-52,90],[-43,-44],[-93,18],[-59,95],[25,27],[6,83],[-28,44],[-22,124],[-85,34],[35,66],[-14,99]],[[4482,4966],[11,51],[66,113],[32,-19],[74,100],[-2,63],[62,-13],[24,43],[-28,44],[-64,26],[-22,45],[13,64]],[[4648,5483],[-19,111],[97,88],[47,-9],[50,70],[62,-4],[32,28]],[[8640,9332],[32,-205],[63,-74],[-38,-160],[-31,-47],[97,-138],[48,-24],[113,2],[33,-18],[-21,-91],[36,-52],[65,-12],[39,-39],[100,-30],[110,-70],[23,-50],[67,-24],[48,23],[64,-31],[78,-64]],[[9557,8187],[-124,-76],[-64,-14],[-47,-38],[-48,9],[-97,95],[-28,-47],[-79,-45],[-102,4],[-48,21],[-88,-39],[-31,-48],[-134,-12],[-103,175],[-60,-7]],[[8504,8165],[8,50],[-25,93],[28,32],[-25,102],[33,85],[-10,125],[50,54],[1,78],[-22,93],[-36,43],[-12,78],[13,100],[-41,83],[-8,68],[-82,17],[-74,-21],[4,102]],[[8306,9347],[116,46],[139,2],[14,-36],[65,-27]],[[8504,8165],[-203,-59],[-48,7]],[[8205,9477],[40,-26],[61,-104]],[[8640,9332],[38,-48],[117,13],[38,42],[53,6],[77,-51],[62,21],[91,-55],[50,-84],[-19,-24],[64,-62],[16,-65],[49,-63],[74,-6],[7,56],[85,-1],[82,-42],[14,-52],[179,-7],[95,68],[91,-105],[77,-42]],[[5403,1408],[-76,51],[-69,0],[-42,34],[-57,-20],[-24,-40],[-70,138],[-151,-13],[-44,71],[-116,39],[-27,-18],[-97,58]],[[4630,1708],[-10,94],[37,47],[72,16],[66,119],[34,85],[58,8],[85,-83],[34,47],[-55,33],[19,52],[59,-8],[52,55],[50,-14],[59,36],[75,-25],[56,67]],[[6247,2683],[-10,30],[-90,19],[-60,-16],[-113,111],[13,82],[-45,54],[14,63],[-115,127],[-112,89],[-80,32],[-85,-44],[-45,2]],[[5519,3232],[-35,76],[33,75],[-66,7],[6,54]],[[5457,3444],[-6,119],[71,56],[43,66],[136,23],[5,53]],[[4586,3143],[60,-1],[-6,-72],[-51,-99],[19,-24],[89,5],[21,-45],[-23,-112],[29,-4]],[[4724,2791],[56,-67],[24,-76],[61,-26],[32,-76],[-86,-33],[-24,-131],[-23,-49],[-58,-5],[-119,26],[-92,-96]],[[4495,2258],[-76,-1],[-208,70],[-85,7],[-26,92],[-65,72],[-53,89],[-71,8],[-29,-35]],[[4630,1708],[-74,24],[-44,-109],[19,-86],[-118,13],[-45,-9]],[[4368,1541],[-27,127],[22,90],[72,-3],[42,99],[-13,49],[-49,-11],[-4,116],[-58,38],[22,49],[55,37],[65,126]],[[4724,2791],[171,38],[60,-45],[114,44],[-1,94],[64,-29],[80,45]],[[5212,2938],[40,-66],[84,-185],[-19,-58],[93,-74],[64,-73],[87,7],[32,-121]],[[4368,1541],[-56,-1],[-28,34],[-51,-57],[-28,49],[-59,22],[-143,-58],[-84,41],[-42,69],[-115,69],[-45,-28]],[[5457,3444],[-26,-24],[-133,-1],[-43,-29],[-112,-9],[-23,-49],[-67,-50],[-47,25],[-26,63],[-41,-35],[-76,56],[-58,89]],[[5212,2938],[105,137],[-31,101],[43,16],[76,-25],[69,68],[45,-3]],[[7251,9908],[-89,-32],[-46,76],[-81,-26],[-39,48],[-69,6],[-53,-52],[-148,-14],[-50,19],[-81,-20],[-50,16],[-72,-19]],[[6473,9910],[-27,70]],[[6446,9980],[25,129],[38,87],[-156,162],[61,32],[-61,118],[-82,-20],[-62,40],[-13,92],[-106,-12],[-117,11],[-52,31],[-60,140],[-89,25],[-127,253]],[[5645,11068],[179,46],[29,-12],[151,58],[17,-103],[39,-60],[-25,-36],[23,-121],[71,-3],[53,-95],[84,-33],[41,55],[79,30],[79,5],[43,-71],[56,-139],[6,-77],[66,-43],[76,35],[110,-36],[40,-50],[1,-99],[72,-20],[71,6],[56,-29],[95,37],[37,-47],[106,-71],[-44,-48],[-3,-53],[55,-105],[-49,-28],[-8,-53]],[[6446,9980],[-98,35],[-51,-75],[-66,53],[-125,-5],[-130,70],[-94,32],[56,47],[-14,49],[-130,-33],[-67,14],[-81,-12],[-32,64],[-120,57],[-64,52],[-113,-33],[-61,38]],[[5256,10333],[-37,35],[18,142],[-15,200],[37,77],[-22,99],[112,93],[170,75],[126,14]],[[3053,7406],[-20,-109],[83,-32],[84,-75],[-3,-29],[-96,-14],[-3,-31],[59,-47],[97,-24],[22,-114],[-120,-26],[-97,-1],[-78,-31],[113,-170],[-54,-53],[27,-44],[48,-4],[7,-62]],[[3122,6540],[-34,-10],[-59,53],[-99,-34],[4,-94],[-62,-32],[-33,125],[-44,-24],[10,-84],[27,-44],[-34,-89],[-80,19],[-66,84],[-50,0],[-150,94]],[[2452,6504],[-56,75],[-150,42],[53,31],[4,125],[-94,-37],[-107,68],[-97,88],[69,90]],[[3705,7350],[4,-41],[96,-9],[39,-71],[65,-19],[88,37],[52,-45],[78,-27],[46,20]],[[4046,6652],[-64,-50],[-48,4]],[[3934,6606],[-36,-47],[-42,52],[-113,1],[-59,-34],[-34,25],[-80,-15],[-1,-47],[-72,-58],[-108,-15],[-74,18],[-74,48]],[[3241,6534],[-65,-32],[-54,38]],[[3086,7448],[1,-41],[162,-30],[118,-6],[65,-40],[142,2],[34,38],[97,-21]],[[3992,8128],[-74,-54],[-48,-158],[-63,-101],[2,-119],[-46,-11],[30,-81],[-94,-44],[20,-64],[-43,-46],[41,-64],[-12,-36]],[[3241,6534],[61,-100],[81,-51],[3,-66],[62,-56],[-9,-33],[40,-108],[51,-77],[-20,-131],[11,-80],[43,-59],[-82,-68],[-77,4]],[[3405,5709],[-55,19],[-79,-18],[-42,49],[-96,-69]],[[3133,5690],[-79,-44],[-66,13],[-49,61],[-85,-1],[-28,64],[-96,16],[-149,99],[-29,119],[-71,104],[-155,143],[11,86],[55,66],[23,67],[37,21]],[[7251,9908],[53,-44]],[[6434,8894],[36,51],[-42,57],[-47,-18],[4,94],[-51,28],[56,44],[23,51],[-2,81],[50,-16],[-27,111],[-2,200]],[[6432,9577],[-2,84],[-33,4],[-12,90],[88,155]],[[5367,9671],[75,-82],[80,30],[110,-30],[179,-22],[50,-19],[53,-59],[65,8],[29,-36],[103,22],[66,-12],[26,49],[144,58],[85,-1]],[[5111,10008],[29,26],[70,174],[7,115],[39,10]],[[4046,4446],[-143,13],[-10,65],[-149,98],[45,43],[-14,48],[34,83],[-98,99],[-21,64],[2,126],[104,36],[25,-41],[75,17],[21,65],[20,144]],[[3937,5306],[38,113],[62,0],[57,41],[49,1]],[[4143,5461],[78,-46],[298,31],[63,53],[66,-16]],[[2902,5383],[71,-63],[52,-4],[16,-83],[32,-37],[-6,-64],[-39,-23],[-18,80],[-94,84],[-14,110]],[[2819,5624],[64,-61],[107,-20],[-15,-54],[-117,70],[-58,-2],[19,67]],[[3405,5709],[-7,-61],[99,-115],[24,-57],[45,14],[34,-37],[169,2],[69,-49],[35,-75],[64,-25]],[[3443,4550],[-27,88],[-63,104],[-67,70],[-253,187],[-5,79],[70,22],[59,113],[-1,111],[23,16],[-38,94],[-102,65],[25,72],[59,58],[10,61]],[[3934,6606],[8,-106],[32,-9],[27,-92],[3,-119],[-16,-67],[-2,-167],[49,2],[-20,-109],[-45,-49],[37,-125],[36,-56],[59,0],[-42,-146],[95,-32],[-12,-70]],[[9401,3455],[-79,-37],[-43,-82],[-41,-32],[-16,-116],[45,-96],[16,-78],[104,-52],[18,-62],[-203,-19],[-27,-104]],[[9175,2777],[-159,-16],[-25,-47],[-44,2],[-60,52],[-44,-10],[-141,-120],[-30,12],[-52,93],[-128,-13]],[[8492,2730],[-115,97],[-44,1],[36,99],[-58,51],[7,79],[-27,30],[1,75]],[[8292,3162],[40,30],[7,62],[83,19]],[[8422,3273],[169,-14],[-37,55],[4,63],[78,-14],[-7,47],[57,80],[73,55],[126,-76],[2,69],[59,14],[38,57],[108,-85],[104,2],[37,100],[127,112],[84,43]],[[9444,3781],[-11,-85],[-58,-52],[31,-127],[-5,-62]],[[9414,2404],[-33,26],[17,109],[-118,55],[-7,78],[-39,46],[-59,15],[0,44]],[[9401,3455],[80,-99],[16,-64],[40,9],[95,-38],[66,-67],[118,-29],[59,36],[85,10],[78,-76],[-11,-49],[-59,-94],[-105,-116],[27,-89],[-42,-37],[-51,7],[-28,-40],[-96,-37],[-28,-49],[-61,-22],[-6,-63],[-58,-31],[-48,3],[-42,-40],[-16,-76]],[[8492,2730],[31,-81],[-58,-36],[-18,-79],[21,-46],[16,-156],[-55,-11],[-13,-82],[51,-55],[-43,-26],[-17,-54]],[[8407,2104],[-23,-29],[-54,59],[-149,0],[31,56],[-17,64],[-51,49],[-54,-37],[-152,6],[-49,107],[-35,7],[-57,-40],[12,-62],[-162,3],[-62,19],[0,82],[-64,26],[-53,-9],[-184,18]],[[7708,2953],[140,-35],[73,-57],[37,-77],[46,-33],[102,4],[135,-83],[74,-20],[134,36],[43,42]],[[9190,4306],[44,-101],[41,3],[18,-125],[49,-48],[69,-31],[28,21],[57,-46],[2,-87],[-54,-111]],[[8422,3273],[-8,62],[-46,68],[-62,-18],[-82,54],[4,78],[42,95],[61,-42],[59,-7],[26,51],[-61,39],[38,126],[105,-3],[45,81]],[[8543,3857],[18,30],[104,22],[-13,46],[89,12],[59,39],[75,-27],[42,33],[60,-2],[1,62],[-47,109],[-60,11],[34,120]],[[8905,4312],[51,1],[31,-78],[61,-14],[20,47],[59,33],[63,5]],[[9414,2404],[-52,-43],[-99,-16],[-7,-57],[-103,-80],[82,-5],[-18,-71],[-232,-84],[-3,-59],[-69,40],[-75,-14],[-24,-51],[-112,46],[-56,2],[-83,-65],[-12,65],[-93,43],[-51,49]],[[7619,3362],[6,70]],[[7625,3432],[116,-2],[40,-108],[131,52],[57,-19],[61,-64],[59,8],[119,-17],[5,-66],[79,-54]],[[7928,3447],[-34,-48],[-74,-22],[-1,125],[73,31],[46,-54],[-10,-32]],[[8752,5812],[78,-63],[-35,-56],[-1,-77],[-81,-24],[-28,-101]],[[8685,5491],[-65,-75],[-49,21],[-20,-66],[3,-103]],[[8554,5268],[-46,-240],[-41,-45],[-31,-79],[-30,-19]],[[8406,4885],[-19,2],[-127,200],[-20,62],[-59,32],[-79,-99],[-45,-5],[-96,34]],[[7961,5111],[-122,27],[-24,77],[-46,2],[-66,53],[8,113],[36,99],[-9,62]],[[7492,4466],[107,26],[19,55],[102,31]],[[7720,4578],[14,-49]],[[7734,4529],[19,-40],[-2,-188],[32,-61],[-6,-63],[35,-77],[-24,-63],[-71,-113],[-7,-125],[-71,-100],[9,-157],[-23,-110]],[[7734,4529],[72,3],[89,48],[58,-23],[29,-43],[88,-47],[-39,-183],[110,-50],[134,30],[41,29],[-34,-279],[6,-79],[59,12],[83,-79],[75,-23],[38,12]],[[9333,5070],[-65,-41],[-44,50],[-55,17],[-69,127],[-56,-113],[-56,-51],[-26,-104],[-63,-17],[-133,103],[-39,-19],[-47,77],[-62,20],[-14,94],[-50,55]],[[8685,5491],[150,18],[103,98],[-51,30],[-16,48],[88,104],[81,18],[60,42],[120,1],[120,-32],[-35,-85],[67,-69],[-53,-152],[21,-33],[63,-7],[1,-41],[108,-181],[-28,-66],[-102,-59],[-49,-55]],[[8406,4885],[14,-69],[69,-123],[138,-59],[10,82],[70,-14],[92,-48],[60,-2],[16,-46],[-32,-79],[-55,-86],[32,-78],[85,-51]],[[7720,4578],[-7,113]],[[7713,4691],[77,29],[14,31],[-57,73],[70,3],[139,93],[43,64],[-9,78],[-29,49]],[[7419,5549],[55,-54],[-14,-35],[-91,-16],[-19,-67],[-49,-71],[152,-109],[2,-141],[-20,-82],[102,-118],[60,-7],[68,-109],[48,-49]],[[9333,5070],[8,-62],[126,-114],[17,-128],[37,-12],[53,-71],[45,-28],[-52,-105],[12,-75],[-39,-39],[-80,-16],[-17,-37],[-74,-49],[-68,24],[-111,-52]]],"objects":{"FRA_adm2":{"type":"GeometryCollection","geometries":[{"arcs":[[0,1,2,3,4]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":989,"NAME_1":"Alsace","ID_2":13755,"NAME_2":"Bas-Rhin","VARNAME_2":"Unterelsaá","HASC_2":"FR.BR","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[5,6,-1,7]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":989,"NAME_1":"Alsace","ID_2":13756,"NAME_2":"Haut-Rhin","VARNAME_2":"Oberelsaá","HASC_2":"FR.HR","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[8,9,10,11,12,13,14]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":990,"NAME_1":"Aquitaine","ID_2":13757,"NAME_2":"Dordogne","VARNAME_2":"","HASC_2":"FR.DD","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[15,-12,16,17,18]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":990,"NAME_1":"Aquitaine","ID_2":13758,"NAME_2":"Gironde","VARNAME_2":"Bec-D'Ambes","HASC_2":"FR.GI","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[19,20,21,22,-18]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":990,"NAME_1":"Aquitaine","ID_2":13759,"NAME_2":"Landes","VARNAME_2":"Landas","HASC_2":"FR.LD","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-11,23,24,25,-20,-17]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":990,"NAME_1":"Aquitaine","ID_2":13760,"NAME_2":"Lot-Et-Garonne","VARNAME_2":"","HASC_2":"FR.LG","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[26,27,-22,28],[29],[30]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":990,"NAME_1":"Aquitaine","ID_2":13761,"NAME_2":"Pyrénées-Atlantiques","VARNAME_2":"Basses-Pyrénées|Pirinio Atlantiarrak","HASC_2":"FR.PA","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[31,32,33,34,35,36]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":991,"NAME_1":"Auvergne","ID_2":13762,"NAME_2":"Allier","VARNAME_2":"Basses-Alpes","HASC_2":"FR.AL","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[37,38,39,40,41,42]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":991,"NAME_1":"Auvergne","ID_2":13763,"NAME_2":"Cantal","VARNAME_2":"","HASC_2":"FR.CL","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[43,44,45,-38,46]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":991,"NAME_1":"Auvergne","ID_2":13764,"NAME_2":"Haute-Loire","VARNAME_2":"","HASC_2":"FR.HL","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[47,-47,-43,48,49,-34]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":991,"NAME_1":"Auvergne","ID_2":13765,"NAME_2":"Puy-De-Dôme","VARNAME_2":"","HASC_2":"FR.PD","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[54,55,56,57,58]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":992,"NAME_1":"Basse-Normandie","ID_2":13766,"NAME_2":"Calvados","VARNAME_2":"","HASC_2":"FR.CV","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-51,-53,59,-57,60,61,62,63]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":992,"NAME_1":"Basse-Normandie","ID_2":13767,"NAME_2":"Manche","VARNAME_2":"","HASC_2":"FR.MH","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[64,65,66,-61,-56,67]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":992,"NAME_1":"Basse-Normandie","ID_2":13768,"NAME_2":"Orne","VARNAME_2":"","HASC_2":"FR.OR","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[68,69,70,71,72,73,74]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":993,"NAME_1":"Bourgogne","ID_2":13769,"NAME_2":"Côte-d'Or","VARNAME_2":"","HASC_2":"FR.CO","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-73,75,-37,76,77,78]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":993,"NAME_1":"Bourgogne","ID_2":13770,"NAME_2":"Nièvre","VARNAME_2":"","HASC_2":"FR.NI","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[79,80,81,82,-32,-76,-72]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":993,"NAME_1":"Bourgogne","ID_2":13771,"NAME_2":"Saône-et-Loire","VARNAME_2":"","HASC_2":"FR.SL","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[83,-74,-79,84,85]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":993,"NAME_1":"Bourgogne","ID_2":13772,"NAME_2":"Yonne","VARNAME_2":"","HASC_2":"FR.YO","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[86,87,88,89,90,91]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":994,"NAME_1":"Bretagne","ID_2":13773,"NAME_2":"Côtes-d'Armor","VARNAME_2":"Cotes-Du-Nord","HASC_2":"FR.CA","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-91,92,93]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":994,"NAME_1":"Bretagne","ID_2":13774,"NAME_2":"Finistère","VARNAME_2":"","HASC_2":"FR.FI","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[[-87,94]],[[-63,95,96,97,98,-89,99]]],"type":"MultiPolygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":994,"NAME_1":"Bretagne","ID_2":13775,"NAME_2":"Ille-Et-Vilaine","VARNAME_2":"","HASC_2":"FR.IV","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[[100]],[[-99,101,102,-93,-90]]],"type":"MultiPolygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":994,"NAME_1":"Bretagne","ID_2":13776,"NAME_2":"Morbihan","VARNAME_2":"","HASC_2":"FR.MB","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-77,-36,103,104,105,106]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":995,"NAME_1":"Centre","ID_2":13777,"NAME_2":"Cher","VARNAME_2":"","HASC_2":"FR.CH","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[107,108,109,110,-65,111,112]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":995,"NAME_1":"Centre","ID_2":13778,"NAME_2":"Eure-Et-Loir","VARNAME_2":"","HASC_2":"FR.EL","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[113,114,115,116,117,-105]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":995,"NAME_1":"Centre","ID_2":13779,"NAME_2":"Indre","VARNAME_2":"","HASC_2":"FR.IN","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[118,-117,119,120,121]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":995,"NAME_1":"Centre","ID_2":13780,"NAME_2":"Indre-Et-Loire","VARNAME_2":"","HASC_2":"FR.IL","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[122,-85,-78,-107,123,-109,124]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":995,"NAME_1":"Centre","ID_2":13781,"NAME_2":"Loiret","VARNAME_2":"","HASC_2":"FR.LT","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-124,-106,-118,-119,125,-110]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":995,"NAME_1":"Centre","ID_2":13782,"NAME_2":"Loir-Et-Cher","VARNAME_2":"","HASC_2":"FR.LC","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[126,127,128,129]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":996,"NAME_1":"Champagne-Ardenne","ID_2":13783,"NAME_2":"Ardennes","VARNAME_2":"","HASC_2":"FR.AN","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[130,-75,-84,131,132]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":996,"NAME_1":"Champagne-Ardenne","ID_2":13784,"NAME_2":"Aube","VARNAME_2":"","HASC_2":"FR.AB","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[133,134,-69,-131,135,136]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":996,"NAME_1":"Champagne-Ardenne","ID_2":13785,"NAME_2":"Haute-Marne","VARNAME_2":"","HASC_2":"FR.HM","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-128,137,-136,-133,138,139]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":996,"NAME_1":"Champagne-Ardenne","ID_2":13786,"NAME_2":"Marne","VARNAME_2":"","HASC_2":"FR.MR","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[140,141]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":997,"NAME_1":"Corse","ID_2":13787,"NAME_2":"Corse-Du-Sud","VARNAME_2":"Corse Du Sud","HASC_2":"FR.CS","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-141,142]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":997,"NAME_1":"Corse","ID_2":13788,"NAME_2":"Haute-Corse","VARNAME_2":"","HASC_2":"FR.HC","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[143,144,145,146]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":998,"NAME_1":"Franche-Comté","ID_2":13789,"NAME_2":"Doubs","VARNAME_2":"","HASC_2":"FR.DB","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[147,-147,148,-70,-135,149]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":998,"NAME_1":"Franche-Comté","ID_2":13790,"NAME_2":"Haute-Saône","VARNAME_2":"","HASC_2":"FR.HN","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-146,150,151,-80,-71,-149]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":998,"NAME_1":"Franche-Comté","ID_2":13791,"NAME_2":"Jura","VARNAME_2":"","HASC_2":"FR.JU","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[152,-144,-148,-6]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":998,"NAME_1":"Franche-Comté","ID_2":13792,"NAME_2":"Territoire de Belfort","VARNAME_2":"","HASC_2":"FR.TB","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[153,154,155,-112,-68,-55,156]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":999,"NAME_1":"Haute-Normandie","ID_2":13793,"NAME_2":"Eure","VARNAME_2":"","HASC_2":"FR.EU","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[157,-157,-59,158,159]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":999,"NAME_1":"Haute-Normandie","ID_2":13794,"NAME_2":"Seine-Maritime","VARNAME_2":"Seine-Inférieure","HASC_2":"FR.SM","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[160,161,-125,-108,162,163]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1000,"NAME_1":"Île-de-France","ID_2":13795,"NAME_2":"Essonne","VARNAME_2":"","HASC_2":"FR.ES","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-164,164,165,166,167,168]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1000,"NAME_1":"Île-de-France","ID_2":13796,"NAME_2":"Hauts-De-Seine","VARNAME_2":"","HASC_2":"FR.HD","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-139,-132,-86,-123,-162,169,170,171,172,173]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1000,"NAME_1":"Île-de-France","ID_2":13797,"NAME_2":"Seine-Et-Marne","VARNAME_2":"","HASC_2":"FR.SE","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[174,175,-167,176,-171]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1000,"NAME_1":"Île-de-France","ID_2":13798,"NAME_2":"Seine-Saint-Denis","VARNAME_2":"","HASC_2":"FR.SS","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-170,-161,-169,177,-175]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1000,"NAME_1":"Île-de-France","ID_2":13799,"NAME_2":"Val-De-Marne","VARNAME_2":"","HASC_2":"FR.VM","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[178,-172,-177,-166,179,-155]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1000,"NAME_1":"Île-de-France","ID_2":13800,"NAME_2":"Val-D'Oise","VARNAME_2":"","HASC_2":"FR.VO","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-178,-168,-176]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1000,"NAME_1":"Île-de-France","ID_2":13801,"NAME_2":"Ville de Paris","VARNAME_2":"Paris|Siene","HASC_2":"FR.VP","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-165,-163,-113,-156,-180]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1000,"NAME_1":"Île-de-France","ID_2":13802,"NAME_2":"Yvelines","VARNAME_2":"","HASC_2":"FR.YV","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[180,181,182,183,184,185]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1001,"NAME_1":"Languedoc-Roussillon","ID_2":13803,"NAME_2":"Aude","VARNAME_2":"","HASC_2":"FR.AD","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[186,187,188,189,190,191,192]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1001,"NAME_1":"Languedoc-Roussillon","ID_2":13804,"NAME_2":"Gard","VARNAME_2":"","HASC_2":"FR.GA","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[193,-181,194,195,-190]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1001,"NAME_1":"Languedoc-Roussillon","ID_2":13805,"NAME_2":"Hérault","VARNAME_2":"","HASC_2":"FR.HE","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[196,-192,197,-39,-46]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1001,"NAME_1":"Languedoc-Roussillon","ID_2":13806,"NAME_2":"Lozère","VARNAME_2":"","HASC_2":"FR.LZ","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[198,199,-183]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1001,"NAME_1":"Languedoc-Roussillon","ID_2":13807,"NAME_2":"Pyrénées-Orientales","VARNAME_2":"","HASC_2":"FR.PO","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-49,-42,200,-9,201,202]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1002,"NAME_1":"Limousin","ID_2":13808,"NAME_2":"Corrèze","VARNAME_2":"","HASC_2":"FR.CZ","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-104,-35,-50,-203,203,-114]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1002,"NAME_1":"Limousin","ID_2":13809,"NAME_2":"Creuse","VARNAME_2":"","HASC_2":"FR.CR","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-204,-202,-15,204,205,-115]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1002,"NAME_1":"Limousin","ID_2":13810,"NAME_2":"Haute-Vienne","VARNAME_2":"","HASC_2":"FR.HV","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[206,-3,207,208,209]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1003,"NAME_1":"Lorraine","ID_2":13811,"NAME_2":"Meurthe-Et-Moselle","VARNAME_2":"","HASC_2":"FR.MM","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-209,210,-137,-138,-127,211]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1003,"NAME_1":"Lorraine","ID_2":13812,"NAME_2":"Meuse","VARNAME_2":"","HASC_2":"FR.MS","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-4,-207,212]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1003,"NAME_1":"Lorraine","ID_2":13813,"NAME_2":"Moselle","VARNAME_2":"Lothringen","HASC_2":"FR.MO","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-7,-150,-134,-211,-208,-2]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1003,"NAME_1":"Lorraine","ID_2":13814,"NAME_2":"Vosges","VARNAME_2":"","HASC_2":"FR.VG","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-184,-200,213,214]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1004,"NAME_1":"Midi-Pyrénées","ID_2":13815,"NAME_2":"Ariège","VARNAME_2":"","HASC_2":"FR.AG","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-198,-191,-196,215,216,217,-40]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1004,"NAME_1":"Midi-Pyrénées","ID_2":13816,"NAME_2":"Aveyron","VARNAME_2":"","HASC_2":"FR.AV","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[218,219,220,-29,-21,-26]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1004,"NAME_1":"Midi-Pyrénées","ID_2":13817,"NAME_2":"Gers","VARNAME_2":"","HASC_2":"FR.GE","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-185,-215,221,222,-220,223,224]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1004,"NAME_1":"Midi-Pyrénées","ID_2":13818,"NAME_2":"Haute-Garonne","VARNAME_2":"Alto Garona","HASC_2":"FR.HG","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[[-31]],[[-30]],[[-223,225,-27,-221]]],"type":"MultiPolygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1004,"NAME_1":"Midi-Pyrénées","ID_2":13819,"NAME_2":"Hautes-Pyrénées","VARNAME_2":"Altos Pirineos","HASC_2":"FR.HP","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-41,-218,226,-24,-10,-201]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1004,"NAME_1":"Midi-Pyrénées","ID_2":13820,"NAME_2":"Lot","VARNAME_2":"","HASC_2":"FR.LO","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-195,-186,-225,227,-216]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1004,"NAME_1":"Midi-Pyrénées","ID_2":13821,"NAME_2":"Tarn","VARNAME_2":"","HASC_2":"FR.TA","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-217,-228,-224,-219,-25,-227]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1004,"NAME_1":"Midi-Pyrénées","ID_2":13822,"NAME_2":"Tarn-Et-Garonne","VARNAME_2":"","HASC_2":"FR.TG","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[228,229,230,231]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1005,"NAME_1":"Nord-Pas-de-Calais","ID_2":13823,"NAME_2":"Nord","VARNAME_2":"","HASC_2":"FR.NO","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-231,232,233]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1005,"NAME_1":"Nord-Pas-de-Calais","ID_2":13824,"NAME_2":"Pas-De-Calais","VARNAME_2":"","HASC_2":"FR.PC","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[234,235,236,-102,-98]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1006,"NAME_1":"Pays de la Loire","ID_2":13825,"NAME_2":"Loire-Atlantique","VARNAME_2":"Loire-Inferieure","HASC_2":"FR.LA","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[237,-121,238,239,240,-235,-97,241]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1006,"NAME_1":"Pays de la Loire","ID_2":13826,"NAME_2":"Maine-Et-Loire","VARNAME_2":"Mayne Et Loire","HASC_2":"FR.ML","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[242,-242,-96,-62,-67]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1006,"NAME_1":"Pays de la Loire","ID_2":13827,"NAME_2":"Mayenne","VARNAME_2":"","HASC_2":"FR.MY","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-111,-126,-122,-238,-243,-66]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1006,"NAME_1":"Pays de la Loire","ID_2":13828,"NAME_2":"Sarthe","VARNAME_2":"","HASC_2":"FR.ST","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-241,243,244,245,-236]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1006,"NAME_1":"Pays de la Loire","ID_2":13829,"NAME_2":"Vendée","VARNAME_2":"Vendéia","HASC_2":"FR.VD","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[246,-129,-140,-174,247,248,-229]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1007,"NAME_1":"Picardie","ID_2":13830,"NAME_2":"Aisne","VARNAME_2":"","HASC_2":"FR.AS","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-248,-173,-179,-154,-158,249]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1007,"NAME_1":"Picardie","ID_2":13831,"NAME_2":"Oise","VARNAME_2":"","HASC_2":"FR.OI","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-230,-249,-250,-160,250,-233]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1007,"NAME_1":"Picardie","ID_2":13832,"NAME_2":"Somme","VARNAME_2":"","HASC_2":"FR.SO","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-14,251,252,253,-205]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1008,"NAME_1":"Poitou-Charentes","ID_2":13833,"NAME_2":"Charente","VARNAME_2":"","HASC_2":"FR.CT","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[[254]],[[255]],[[256,-252,-13,-16,257,-245]]],"type":"MultiPolygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1008,"NAME_1":"Poitou-Charentes","ID_2":13834,"NAME_2":"Charente-Maritime","VARNAME_2":"Charente-Inférieure","HASC_2":"FR.CM","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[258,-253,-257,-244,-240]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1008,"NAME_1":"Poitou-Charentes","ID_2":13835,"NAME_2":"Deux-Sèvres","VARNAME_2":"","HASC_2":"FR.DS","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-116,-206,-254,-259,-239,-120]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1008,"NAME_1":"Poitou-Charentes","ID_2":13836,"NAME_2":"Vienne","VARNAME_2":"","HASC_2":"FR.VN","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[259,260,261,262,263,264]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1009,"NAME_1":"Provence-Alpes-Côte-d'Azur","ID_2":13837,"NAME_2":"Alpes-De-Haute-Provence","VARNAME_2":"Alpes Da Alta Provença|Basses-Alpes","HASC_2":"FR.AP","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[265,-260,266]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1009,"NAME_1":"Provence-Alpes-Côte-d'Azur","ID_2":13838,"NAME_2":"Alpes-Maritimes","VARNAME_2":"","HASC_2":"FR.AM","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[267,268,-188,269]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1009,"NAME_1":"Provence-Alpes-Côte-d'Azur","ID_2":13839,"NAME_2":"Bouches-Du-Rhône","VARNAME_2":"","HASC_2":"FR.BD","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[270,-264,271,272,273]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1009,"NAME_1":"Provence-Alpes-Côte-d'Azur","ID_2":13840,"NAME_2":"Hautes-Alpes","VARNAME_2":"","HASC_2":"FR.HA","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[274,-268,-261,-266]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1009,"NAME_1":"Provence-Alpes-Côte-d'Azur","ID_2":13841,"NAME_2":"Var","VARNAME_2":"","HASC_2":"FR.VR","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[[-262,-270,-187,275,276]],[[277]]],"type":"MultiPolygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1009,"NAME_1":"Provence-Alpes-Côte-d'Azur","ID_2":13842,"NAME_2":"Vaucluse","VARNAME_2":"","HASC_2":"FR.VC","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-152,278,279,280,281,282,-81]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1010,"NAME_1":"Rhône-Alpes","ID_2":13843,"NAME_2":"Ain","VARNAME_2":"","HASC_2":"FR.AI","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-276,-193,-197,-45,283,284,285]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1010,"NAME_1":"Rhône-Alpes","ID_2":13844,"NAME_2":"Ardèche","VARNAME_2":"","HASC_2":"FR.AH","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-272,-263,-277,-286,286],[-278]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1010,"NAME_1":"Rhône-Alpes","ID_2":13845,"NAME_2":"Drôme","VARNAME_2":"","HASC_2":"FR.DM","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[287,-280,288]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1010,"NAME_1":"Rhône-Alpes","ID_2":13846,"NAME_2":"Haute-Savoie","VARNAME_2":"","HASC_2":"FR.HS","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[289,-273,-287,-285,290,291,-282]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1010,"NAME_1":"Rhône-Alpes","ID_2":13847,"NAME_2":"Isère","VARNAME_2":"","HASC_2":"FR.IS","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-83,292,-291,-284,-44,-48,-33]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1010,"NAME_1":"Rhône-Alpes","ID_2":13848,"NAME_2":"Loire","VARNAME_2":"","HASC_2":"FR.LR","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[-283,-292,-293,-82]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1010,"NAME_1":"Rhône-Alpes","ID_2":13849,"NAME_2":"Rhône","VARNAME_2":"","HASC_2":"FR.RH","TYPE_2":"Département","ENGTYPE_2":"Department"}},{"arcs":[[293,-274,-290,-281,-288]],"type":"Polygon","properties":{"ISO":"FRA","NAME_0":"France","ID_1":1010,"NAME_1":"Rhône-Alpes","ID_2":13850,"NAME_2":"Savoie","VARNAME_2":"Sabóia|Savoia","HASC_2":"FR.SV","TYPE_2":"Département","ENGTYPE_2":"Department"}}]}}} \ No newline at end of file diff --git a/notebooks/data/roads-seoul.geojson b/notebooks/data/roads-seoul.geojson new file mode 100644 index 0000000..84daf47 --- /dev/null +++ b/notebooks/data/roads-seoul.geojson @@ -0,0 +1,4139 @@ +{ + "type": "FeatureCollection", + "generator": "overpass-turbo", + "copyright": "The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.", + "timestamp": "2015-09-19T01:26:02Z", + "features": [ + { + "type": "Feature", + "id": "way/33803251", + "properties": { + "@id": "way/33803251", + "highway": "residential", + "name": "X Corps Boulevard" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.991594, + 37.5272773 + ], + [ + 126.990271, + 37.5271954 + ], + [ + 126.9896898, + 37.5271383 + ], + [ + 126.9884334, + 37.5270726 + ], + [ + 126.9881561, + 37.5270408 + ], + [ + 126.9878154, + 37.5269587 + ], + [ + 126.9870299, + 37.5267266 + ], + [ + 126.9869436, + 37.526707 + ], + [ + 126.9861981, + 37.5265093 + ], + [ + 126.9853379, + 37.5262743 + ], + [ + 126.985257, + 37.5262477 + ], + [ + 126.9850127, + 37.5261798 + ], + [ + 126.9846085, + 37.5260924 + ], + [ + 126.9842276, + 37.5260473 + ], + [ + 126.984073, + 37.5260544 + ], + [ + 126.9834486, + 37.5260829 + ], + [ + 126.9815485, + 37.5261698 + ], + [ + 126.9812511, + 37.5261739 + ], + [ + 126.9800453, + 37.5261904 + ], + [ + 126.978552, + 37.5262275 + ], + [ + 126.9784144, + 37.5262574 + ], + [ + 126.9782714, + 37.5262884 + ], + [ + 126.9779173, + 37.5264103 + ], + [ + 126.9775499, + 37.5265481 + ], + [ + 126.9774604, + 37.5265786 + ], + [ + 126.9773413, + 37.5266194 + ], + [ + 126.9773275, + 37.5266241 + ], + [ + 126.9770187, + 37.5266991 + ], + [ + 126.9766345, + 37.5267732 + ], + [ + 126.9759497, + 37.5269031 + ], + [ + 126.9742686, + 37.527135 + ], + [ + 126.9737761, + 37.5271869 + ], + [ + 126.9734752, + 37.5272186 + ], + [ + 126.9726221, + 37.5273085 + ], + [ + 126.9722279, + 37.5273499 + ], + [ + 126.9721949, + 37.5273534 + ], + [ + 126.9715703, + 37.527425 + ], + [ + 126.9712329, + 37.5275071 + ], + [ + 126.9710191, + 37.5275945 + ], + [ + 126.970812, + 37.5277111 + ], + [ + 126.9706516, + 37.5278303 + ], + [ + 126.9705247, + 37.5279442 + ], + [ + 126.9704512, + 37.5280211 + ], + [ + 126.9704315, + 37.5280517 + ], + [ + 126.9702442, + 37.5283407 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/33803254", + "properties": { + "@id": "way/33803254", + "highway": "residential", + "name": "25th Div Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.985257, + 37.5262477 + ], + [ + 126.9851751, + 37.5258518 + ], + [ + 126.9850561, + 37.5253082 + ], + [ + 126.9847989, + 37.523851 + ], + [ + 126.9847855, + 37.5235093 + ], + [ + 126.9848623, + 37.5233662 + ], + [ + 126.9856641, + 37.5228575 + ], + [ + 126.9863957, + 37.5224097 + ], + [ + 126.9872007, + 37.5219037 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/33803259", + "properties": { + "@id": "way/33803259", + "highway": "residential", + "name": "24th Div Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9862687, + 37.5203855 + ], + [ + 126.986095, + 37.5206611 + ], + [ + 126.9859514, + 37.5209207 + ], + [ + 126.9857175, + 37.5214771 + ], + [ + 126.9856307, + 37.5218454 + ], + [ + 126.9855872, + 37.5221951 + ], + [ + 126.9856039, + 37.5225475 + ], + [ + 126.9856641, + 37.5228575 + ], + [ + 126.9860933, + 37.5256172 + ], + [ + 126.9861384, + 37.5258168 + ], + [ + 126.9861857, + 37.5263503 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/33803260", + "properties": { + "@id": "way/33803260", + "highway": "residential", + "name": "40th Div Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9869436, + 37.526707 + ], + [ + 126.9870039, + 37.5265689 + ], + [ + 126.986956, + 37.5261401 + ], + [ + 126.9869168, + 37.5257904 + ], + [ + 126.9865994, + 37.5235675 + ], + [ + 126.9863957, + 37.5224097 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/33803261", + "properties": { + "@id": "way/33803261", + "highway": "residential", + "name": "Mission Loop" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9878555, + 37.5230959 + ], + [ + 126.9865994, + 37.5235675 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/33803262", + "properties": { + "@id": "way/33803262", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9869168, + 37.5257904 + ], + [ + 126.9861384, + 37.5258168 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/37401288", + "properties": { + "@id": "way/37401288", + "highway": "secondary", + "name": "서빙고로 (Seobinggoro)", + "name:en": "Seobinggoro", + "name:ja": "西氷庫路", + "name:ko": "서빙고로", + "name:ko_rm": "Seobinggoro", + "ncat": "광역시도로", + "review": "no", + "source": "NTIC" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9651645, + 37.5263314 + ], + [ + 126.96593, + 37.52586 + ], + [ + 126.96644, + 37.52556 + ], + [ + 126.96661, + 37.52546 + ], + [ + 126.96693, + 37.52526 + ], + [ + 126.96745, + 37.52496 + ], + [ + 126.9679, + 37.52469 + ], + [ + 126.9679758, + 37.5246448 + ], + [ + 126.96837, + 37.52441 + ], + [ + 126.96893, + 37.52406 + ], + [ + 126.96979, + 37.52358 + ], + [ + 126.96989, + 37.52352 + ], + [ + 126.97024, + 37.52336 + ], + [ + 126.97041, + 37.52331 + ], + [ + 126.97068, + 37.52327 + ], + [ + 126.97098, + 37.52322 + ], + [ + 126.9713724, + 37.523212 + ], + [ + 126.97212, + 37.52307 + ], + [ + 126.97258, + 37.52295 + ], + [ + 126.97301, + 37.52282 + ], + [ + 126.97324, + 37.52275 + ], + [ + 126.97368, + 37.52262 + ], + [ + 126.9743665, + 37.5224062 + ], + [ + 126.9749, + 37.52224 + ], + [ + 126.97618, + 37.52182 + ], + [ + 126.9771571, + 37.5215298 + ], + [ + 126.97826, + 37.52115 + ], + [ + 126.9784113, + 37.5211027 + ], + [ + 126.9787924, + 37.5209835 + ], + [ + 126.9789476, + 37.5209351 + ], + [ + 126.97938, + 37.5208 + ], + [ + 126.9796549, + 37.5207189 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/170207572", + "properties": { + "@id": "way/170207572", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9775128, + 37.5223707 + ], + [ + 126.9771252, + 37.5231299 + ], + [ + 126.9769541, + 37.5233868 + ], + [ + 126.9776013, + 37.5248524 + ], + [ + 126.9776779, + 37.5250212 + ], + [ + 126.9776013, + 37.5251563 + ], + [ + 126.9773799, + 37.5251563 + ], + [ + 126.9768179, + 37.52363 + ], + [ + 126.9769541, + 37.5233868 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/170207584", + "properties": { + "@id": "way/170207584", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9759497, + 37.5269031 + ], + [ + 126.9761451, + 37.5277154 + ], + [ + 126.9762203, + 37.5278197 + ], + [ + 126.9763139, + 37.5278992 + ], + [ + 126.9765878, + 37.5280343 + ], + [ + 126.9776533, + 37.5285181 + ], + [ + 126.9781745, + 37.528739 + ], + [ + 126.9787558, + 37.5289112 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/222019653", + "properties": { + "@id": "way/222019653", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9757655, + 37.534576 + ], + [ + 126.9753893, + 37.532649 + ], + [ + 126.975363, + 37.5325387 + ], + [ + 126.9751471, + 37.5314056 + ], + [ + 126.9751118, + 37.5312203 + ], + [ + 126.9750631, + 37.5309647 + ], + [ + 126.9750591, + 37.5304022 + ], + [ + 126.975055, + 37.5302671 + ], + [ + 126.9750288, + 37.5293996 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/222019654", + "properties": { + "@id": "way/222019654", + "highway": "residential", + "name": "한강대로40길 (Hangang-daero 40-gil)" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9690332, + 37.5303293 + ], + [ + 126.9698033, + 37.5302516 + ], + [ + 126.9704485, + 37.5301865 + ], + [ + 126.9705718, + 37.5301741 + ], + [ + 126.9709961, + 37.5301292 + ], + [ + 126.9718051, + 37.5300437 + ], + [ + 126.9726095, + 37.5299024 + ], + [ + 126.9734216, + 37.5296911 + ], + [ + 126.973727, + 37.5296117 + ], + [ + 126.9742229, + 37.5294918 + ], + [ + 126.9745984, + 37.5294345 + ], + [ + 126.9750288, + 37.5293996 + ], + [ + 126.9751449, + 37.5293413 + ], + [ + 126.9754331, + 37.5293101 + ], + [ + 126.9767486, + 37.5292938 + ], + [ + 126.9771802, + 37.5293346 + ], + [ + 126.9773241, + 37.5294405 + ], + [ + 126.9773036, + 37.5297258 + ], + [ + 126.9771894, + 37.5303967 + ], + [ + 126.9770503, + 37.5312138 + ], + [ + 126.9769027, + 37.5320813 + ], + [ + 126.9769027, + 37.5325866 + ], + [ + 126.9760189, + 37.532554 + ], + [ + 126.9757317, + 37.5325473 + ], + [ + 126.9756589, + 37.5325456 + ], + [ + 126.975363, + 37.5325387 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/229505082", + "properties": { + "@id": "way/229505082", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9763334, + 37.5340062 + ], + [ + 126.9763487, + 37.5339901 + ], + [ + 126.9764803, + 37.5338519 + ], + [ + 126.9767383, + 37.5336135 + ], + [ + 126.9769336, + 37.5335075 + ], + [ + 126.9769439, + 37.5333282 + ], + [ + 126.9768822, + 37.5332386 + ], + [ + 126.9767794, + 37.533206 + ], + [ + 126.9760551, + 37.5331878 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/229560083", + "properties": { + "@id": "way/229560083", + "highway": "residential", + "name": "8th Army Drive" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9803651, + 37.5332146 + ], + [ + 126.9803537, + 37.5329774 + ], + [ + 126.9803149, + 37.5321694 + ], + [ + 126.9803067, + 37.531998 + ], + [ + 126.9802956, + 37.5317676 + ], + [ + 126.9802421, + 37.5306555 + ], + [ + 126.9802306, + 37.5304158 + ], + [ + 126.9801841, + 37.5294468 + ], + [ + 126.9801688, + 37.5291283 + ], + [ + 126.9801677, + 37.5291006 + ], + [ + 126.9801207, + 37.5279451 + ], + [ + 126.9800453, + 37.5261904 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/229560084", + "properties": { + "@id": "way/229560084", + "bridge": "yes", + "highway": "residential", + "layer": "1" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9806401, + 37.5358475 + ], + [ + 126.9806723, + 37.5349531 + ], + [ + 126.9806666, + 37.5347233 + ], + [ + 126.9806365, + 37.5345459 + ], + [ + 126.9805497, + 37.5341008 + ], + [ + 126.9803651, + 37.5332146 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788905", + "properties": { + "@id": "way/256788905", + "highway": "residential", + "name": "IX Corps Blvd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9802306, + 37.5304158 + ], + [ + 126.9818391, + 37.530657 + ], + [ + 126.9818821, + 37.5306687 + ], + [ + 126.982073, + 37.5307206 + ], + [ + 126.982266, + 37.5308167 + ], + [ + 126.9834166, + 37.5313894 + ], + [ + 126.983957, + 37.5316584 + ], + [ + 126.9840807, + 37.5317315 + ], + [ + 126.9843635, + 37.5318988 + ], + [ + 126.9845617, + 37.532016 + ], + [ + 126.9851112, + 37.5324356 + ], + [ + 126.9854603, + 37.5327021 + ], + [ + 126.9856225, + 37.5328302 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788907", + "properties": { + "@id": "way/256788907", + "highway": "service", + "name": "Little St" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9833703, + 37.5321559 + ], + [ + 126.9837265, + 37.532061 + ], + [ + 126.9838669, + 37.5320452 + ], + [ + 126.9842042, + 37.532061 + ], + [ + 126.9842544, + 37.5320399 + ], + [ + 126.9842911, + 37.5319895 + ], + [ + 126.9843635, + 37.5318988 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788908", + "properties": { + "@id": "way/256788908", + "highway": "service", + "name": "1st Marine Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9833331, + 37.5324061 + ], + [ + 126.9849358, + 37.5325352 + ], + [ + 126.9850127, + 37.5325167 + ], + [ + 126.9851112, + 37.5324356 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788909", + "properties": { + "@id": "way/256788909", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9833331, + 37.5324061 + ], + [ + 126.9832121, + 37.5323922 + ], + [ + 126.9831085, + 37.5323419 + ], + [ + 126.9824939, + 37.5319895 + ], + [ + 126.9824037, + 37.5319604 + ], + [ + 126.9822634, + 37.5319657 + ], + [ + 126.9821465, + 37.5320187 + ], + [ + 126.9818926, + 37.5322783 + ], + [ + 126.9818091, + 37.5322995 + ], + [ + 126.9811309, + 37.5323339 + ], + [ + 126.9810608, + 37.532318 + ], + [ + 126.980867, + 37.5321988 + ], + [ + 126.9808036, + 37.5321803 + ], + [ + 126.9805163, + 37.5321564 + ], + [ + 126.9803149, + 37.5321694 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788911", + "properties": { + "@id": "way/256788911", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9861981, + 37.5265093 + ], + [ + 126.9862353, + 37.5269216 + ], + [ + 126.986419, + 37.5273561 + ], + [ + 126.9865485, + 37.5276727 + ], + [ + 126.9867832, + 37.5282462 + ], + [ + 126.9874412, + 37.5295788 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788912", + "properties": { + "@id": "way/256788912", + "highway": "residential", + "name": "Moor St" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9874412, + 37.5295788 + ], + [ + 126.9866863, + 37.5298914 + ], + [ + 126.9863689, + 37.5299841 + ], + [ + 126.9862286, + 37.5299974 + ], + [ + 126.9859556, + 37.5299745 + ], + [ + 126.9858812, + 37.5299682 + ], + [ + 126.9851129, + 37.5299099 + ], + [ + 126.9849926, + 37.5299126 + ], + [ + 126.9849124, + 37.5299364 + ], + [ + 126.9848289, + 37.53 + ], + [ + 126.9847888, + 37.5301616 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788913", + "properties": { + "@id": "way/256788913", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9840807, + 37.5317315 + ], + [ + 126.984261, + 37.5313829 + ], + [ + 126.9843345, + 37.5313352 + ], + [ + 126.9843746, + 37.5313352 + ], + [ + 126.9844381, + 37.5313352 + ], + [ + 126.9845784, + 37.531412 + ], + [ + 126.9846151, + 37.5314941 + ], + [ + 126.9845884, + 37.5315948 + ], + [ + 126.9843635, + 37.5318988 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788914", + "properties": { + "@id": "way/256788914", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9843746, + 37.5313352 + ], + [ + 126.9843379, + 37.5311445 + ], + [ + 126.9842811, + 37.5308107 + ], + [ + 126.9842944, + 37.5307338 + ], + [ + 126.9844581, + 37.5302994 + ], + [ + 126.9845383, + 37.5302305 + ], + [ + 126.9846519, + 37.5301802 + ], + [ + 126.9847888, + 37.5301616 + ], + [ + 126.9857242, + 37.5302278 + ], + [ + 126.9859447, + 37.5303656 + ], + [ + 126.9860048, + 37.5304663 + ], + [ + 126.9860716, + 37.5305351 + ], + [ + 126.9861752, + 37.5305643 + ], + [ + 126.9863055, + 37.5305616 + ], + [ + 126.987311, + 37.5303603 + ], + [ + 126.9873945, + 37.5303603 + ], + [ + 126.9874513, + 37.5303947 + ], + [ + 126.9875181, + 37.5306067 + ], + [ + 126.9875281, + 37.5306888 + ], + [ + 126.9875114, + 37.5307577 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788915", + "properties": { + "@id": "way/256788915", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9859556, + 37.5299745 + ], + [ + 126.9859814, + 37.5297907 + ], + [ + 126.9859781, + 37.5295735 + ], + [ + 126.9857142, + 37.5287205 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788916", + "properties": { + "@id": "way/256788916", + "highway": "residential", + "name": "Williams Ave" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9774604, + 37.5265786 + ], + [ + 126.9771056, + 37.5255201 + ], + [ + 126.9769953, + 37.5252472 + ], + [ + 126.9769319, + 37.5251386 + ], + [ + 126.9767381, + 37.5249187 + ], + [ + 126.976688, + 37.5248286 + ], + [ + 126.9765009, + 37.5244445 + ], + [ + 126.9764542, + 37.5244153 + ], + [ + 126.9756391, + 37.5242935 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788917", + "properties": { + "@id": "way/256788917", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9743665, + 37.5224062 + ], + [ + 126.9744194, + 37.5225564 + ], + [ + 126.97469, + 37.5231172 + ], + [ + 126.9747672, + 37.5232072 + ], + [ + 126.9753551, + 37.5236735 + ], + [ + 126.9754152, + 37.5237503 + ], + [ + 126.9756324, + 37.5242087 + ], + [ + 126.9756491, + 37.5242617 + ], + [ + 126.9756391, + 37.5242935 + ], + [ + 126.975599, + 37.5243306 + ], + [ + 126.975452, + 37.5244047 + ], + [ + 126.9753251, + 37.5244418 + ], + [ + 126.9745098, + 37.5246169 + ], + [ + 126.9736347, + 37.5248048 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788918", + "properties": { + "@id": "way/256788918", + "highway": "residential", + "name": "Vaughn Ave" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9730661, + 37.5240085 + ], + [ + 126.9731249, + 37.5240645 + ], + [ + 126.9732776, + 37.5242548 + ], + [ + 126.9734577, + 37.5244418 + ], + [ + 126.9735145, + 37.5245531 + ], + [ + 126.9736347, + 37.5248048 + ], + [ + 126.9737052, + 37.5251036 + ], + [ + 126.9737684, + 37.5253718 + ], + [ + 126.9741525, + 37.5266964 + ], + [ + 126.9742686, + 37.527135 + ], + [ + 126.9743429, + 37.5275733 + ], + [ + 126.9743463, + 37.5278383 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788923", + "properties": { + "@id": "way/256788923", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9724019, + 37.524431 + ], + [ + 126.9732539, + 37.5248445 + ], + [ + 126.9733174, + 37.5248525 + ], + [ + 126.9736347, + 37.5248048 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788924", + "properties": { + "@id": "way/256788924", + "highway": "residential", + "name": "Stoves Ave" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9784144, + 37.5262574 + ], + [ + 126.9784151, + 37.5264527 + ], + [ + 126.9783783, + 37.5266487 + ], + [ + 126.9782814, + 37.5269481 + ], + [ + 126.9780181, + 37.5276071 + ], + [ + 126.9777637, + 37.5282436 + ], + [ + 126.9776533, + 37.5285181 + ], + [ + 126.9774964, + 37.5289085 + ], + [ + 126.977463, + 37.5290463 + ], + [ + 126.9774964, + 37.5291602 + ], + [ + 126.9776141, + 37.5292391 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788925", + "properties": { + "@id": "way/256788925", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9780181, + 37.5276071 + ], + [ + 126.9775565, + 37.5275097 + ], + [ + 126.9775131, + 37.5274806 + ], + [ + 126.9774797, + 37.5271865 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/256788926", + "properties": { + "@id": "way/256788926", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9801207, + 37.5279451 + ], + [ + 126.9817122, + 37.5278833 + ], + [ + 126.9817623, + 37.52787 + ], + [ + 126.9817957, + 37.5278091 + ], + [ + 126.9818024, + 37.5276078 + ], + [ + 126.9817489, + 37.5275203 + ], + [ + 126.9816153, + 37.5274011 + ], + [ + 126.9815285, + 37.527274 + ], + [ + 126.9814483, + 37.5270143 + ], + [ + 126.9813681, + 37.5268633 + ], + [ + 126.9812913, + 37.5266381 + ], + [ + 126.9812746, + 37.5265083 + ], + [ + 126.9812511, + 37.5261739 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578698", + "properties": { + "@id": "way/257578698", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9851182, + 37.5333407 + ], + [ + 126.9847361, + 37.5331945 + ], + [ + 126.9844223, + 37.5331945 + ], + [ + 126.984028, + 37.5333073 + ], + [ + 126.9835801, + 37.5333222 + ], + [ + 126.9832502, + 37.5332817 + ], + [ + 126.9831134, + 37.5331669 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578699", + "properties": { + "@id": "way/257578699", + "highway": "residential", + "name": "7th Div Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9865666, + 37.5321665 + ], + [ + 126.98647, + 37.5319538 + ], + [ + 126.986513, + 37.5318603 + ], + [ + 126.9866632, + 37.5318517 + ], + [ + 126.9867061, + 37.5319709 + ], + [ + 126.9865666, + 37.5321665 + ], + [ + 126.9863091, + 37.5323622 + ], + [ + 126.9861053, + 37.5323537 + ], + [ + 126.985998, + 37.5324218 + ], + [ + 126.9856225, + 37.5328302 + ], + [ + 126.9851182, + 37.5333407 + ], + [ + 126.984968, + 37.5336044 + ], + [ + 126.9847495, + 37.5338794 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578700", + "properties": { + "@id": "way/257578700", + "highway": "residential", + "name": "Malloy Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9867832, + 37.5282462 + ], + [ + 126.9856844, + 37.5286416 + ], + [ + 126.9850191, + 37.5288613 + ], + [ + 126.9847749, + 37.5289419 + ], + [ + 126.9845067, + 37.529078 + ], + [ + 126.9834231, + 37.5297928 + ], + [ + 126.9827257, + 37.5303203 + ], + [ + 126.9823824, + 37.5306266 + ], + [ + 126.982266, + 37.5308167 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578701", + "properties": { + "@id": "way/257578701", + "highway": "residential", + "name": "Rodgers Ave" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9834486, + 37.5260829 + ], + [ + 126.9834635, + 37.526259 + ], + [ + 126.9834668, + 37.5262988 + ], + [ + 126.9834933, + 37.526612 + ], + [ + 126.9834982, + 37.5266701 + ], + [ + 126.9835079, + 37.5270722 + ], + [ + 126.9832192, + 37.5287888 + ], + [ + 126.9832192, + 37.5291801 + ], + [ + 126.9834231, + 37.5297928 + ], + [ + 126.9835194, + 37.5299205 + ], + [ + 126.9835194, + 37.5300053 + ], + [ + 126.9833892, + 37.5306703 + ], + [ + 126.9834226, + 37.5308292 + ], + [ + 126.9835428, + 37.5310809 + ], + [ + 126.9835428, + 37.5311286 + ], + [ + 126.9834166, + 37.5313894 + ], + [ + 126.9833524, + 37.5315498 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578702", + "properties": { + "@id": "way/257578702", + "highway": "residential", + "name": "Porter St" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9847749, + 37.5289419 + ], + [ + 126.9845356, + 37.5286495 + ], + [ + 126.9842945, + 37.5284105 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578703", + "properties": { + "@id": "way/257578703", + "highway": "residential", + "name": "Koelsch Grove" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9857142, + 37.5287205 + ], + [ + 126.9856844, + 37.5286416 + ], + [ + 126.985467, + 37.5280528 + ], + [ + 126.9850761, + 37.5272501 + ], + [ + 126.9850327, + 37.5271971 + ], + [ + 126.9849826, + 37.5271786 + ], + [ + 126.9849461, + 37.5271759 + ], + [ + 126.9837666, + 37.5270885 + ], + [ + 126.9837396, + 37.5270868 + ], + [ + 126.9835079, + 37.5270722 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578704", + "properties": { + "@id": "way/257578704", + "highway": "residential", + "name": "3rd Div Road" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9743463, + 37.5278383 + ], + [ + 126.9739667, + 37.5279182 + ], + [ + 126.9729366, + 37.528135 + ], + [ + 126.9720947, + 37.5283125 + ], + [ + 126.971597, + 37.5283761 + ], + [ + 126.9714166, + 37.528384 + ], + [ + 126.9713364, + 37.5283761 + ], + [ + 126.9712417, + 37.5283381 + ], + [ + 126.9704512, + 37.5280211 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578705", + "properties": { + "@id": "way/257578705", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9725325, + 37.526827 + ], + [ + 126.9725357, + 37.5266514 + ], + [ + 126.972529, + 37.5265772 + ], + [ + 126.972539, + 37.5265348 + ], + [ + 126.9728514, + 37.5261008 + ], + [ + 126.9735345, + 37.5251519 + ], + [ + 126.9735913, + 37.5251254 + ], + [ + 126.9737052, + 37.5251036 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578710", + "properties": { + "@id": "way/257578710", + "highway": "residential", + "name": "Matta Ave" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9875114, + 37.5307577 + ], + [ + 126.987458, + 37.5308133 + ], + [ + 126.9871974, + 37.5310438 + ], + [ + 126.987164, + 37.5311153 + ], + [ + 126.987164, + 37.5311842 + ], + [ + 126.9872275, + 37.5312478 + ], + [ + 126.9877452, + 37.5315763 + ], + [ + 126.9881094, + 37.5317087 + ], + [ + 126.988243, + 37.5317193 + ], + [ + 126.9885336, + 37.5317326 + ], + [ + 126.9886438, + 37.5317749 + ], + [ + 126.9891182, + 37.5320822 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578711", + "properties": { + "@id": "way/257578711", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9885478, + 37.5298717 + ], + [ + 126.9884562, + 37.52999 + ], + [ + 126.9885528, + 37.530241 + ], + [ + 126.9885421, + 37.5303644 + ], + [ + 126.9884777, + 37.5304622 + ], + [ + 126.9880593, + 37.5307387 + ], + [ + 126.9879359, + 37.5307643 + ], + [ + 126.9875818, + 37.5307813 + ], + [ + 126.9875114, + 37.5307577 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578712", + "properties": { + "@id": "way/257578712", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9884562, + 37.52999 + ], + [ + 126.9883329, + 37.5299645 + ], + [ + 126.9881827, + 37.52999 + ], + [ + 126.987555, + 37.5303006 + ], + [ + 126.9874513, + 37.5303947 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578716", + "properties": { + "@id": "way/257578716", + "highway": "residential", + "name": "80th Div Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9833524, + 37.5315498 + ], + [ + 126.9833257, + 37.5317034 + ], + [ + 126.9833825, + 37.5320743 + ], + [ + 126.9833703, + 37.5321559 + ], + [ + 126.9833331, + 37.5324061 + ], + [ + 126.9833056, + 37.5325909 + ], + [ + 126.9832522, + 37.532877 + ], + [ + 126.9831134, + 37.5331669 + ], + [ + 126.9829983, + 37.5334704 + ], + [ + 126.9829449, + 37.5336743 + ], + [ + 126.9829298, + 37.5338676 + ], + [ + 126.9829248, + 37.5339313 + ], + [ + 126.9829048, + 37.5343604 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578717", + "properties": { + "@id": "way/257578717", + "highway": "residential", + "name": "Hartell Rd" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9803067, + 37.531998 + ], + [ + 126.980195, + 37.5320192 + ], + [ + 126.9801575, + 37.5320745 + ], + [ + 126.9800985, + 37.5326233 + ], + [ + 126.9800502, + 37.5327594 + ], + [ + 126.9799107, + 37.5328615 + ], + [ + 126.9796801, + 37.5329594 + ], + [ + 126.9795567, + 37.5329636 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/257578718", + "properties": { + "@id": "way/257578718", + "highway": "residential", + "name": "Mayo St" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9802956, + 37.5317676 + ], + [ + 126.9796908, + 37.5317597 + ], + [ + 126.9794573, + 37.5317376 + ], + [ + 126.9790014, + 37.5316943 + ], + [ + 126.9787037, + 37.5316661 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/278444786", + "properties": { + "@id": "way/278444786", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9714407, + 37.5249871 + ], + [ + 126.9715769, + 37.5249797 + ], + [ + 126.9717072, + 37.5249134 + ], + [ + 126.9721983, + 37.5245425 + ], + [ + 126.9724019, + 37.524431 + ], + [ + 126.9725223, + 37.524365 + ], + [ + 126.9731249, + 37.5240645 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/291718868", + "properties": { + "@id": "way/291718868", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9756589, + 37.5325456 + ], + [ + 126.975813, + 37.5327276 + ], + [ + 126.9760551, + 37.5331878 + ], + [ + 126.9762985, + 37.5337571 + ], + [ + 126.9763334, + 37.5340062 + ], + [ + 126.9761189, + 37.5343208 + ], + [ + 126.9760701, + 37.534559 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/306203237", + "properties": { + "@id": "way/306203237", + "highway": "footway", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9787924, + 37.5209835 + ], + [ + 126.9793325, + 37.5220927 + ], + [ + 126.9789125, + 37.5222032 + ], + [ + 126.9785422, + 37.5224722 + ], + [ + 126.9785584, + 37.5227919 + ], + [ + 126.978757, + 37.5231044 + ], + [ + 126.9791289, + 37.5232328 + ], + [ + 126.9796518, + 37.5232462 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/306203238", + "properties": { + "@id": "way/306203238", + "highway": "footway", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9796518, + 37.5232462 + ], + [ + 126.9796605, + 37.5233854 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/307680313", + "properties": { + "@id": "way/307680313", + "highway": "footway", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9785422, + 37.5224722 + ], + [ + 126.9783115, + 37.522605 + ], + [ + 126.9779703, + 37.522593 + ], + [ + 126.9779632, + 37.5226765 + ], + [ + 126.9779507, + 37.5227611 + ], + [ + 126.9779169, + 37.522856 + ], + [ + 126.9777696, + 37.5229852 + ], + [ + 126.9775257, + 37.5232787 + ], + [ + 126.9776113, + 37.5236128 + ], + [ + 126.977757, + 37.5239472 + ], + [ + 126.9778337, + 37.5242948 + ], + [ + 126.9779672, + 37.5246758 + ], + [ + 126.9780578, + 37.5248589 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/307680314", + "properties": { + "@id": "way/307680314", + "highway": "footway", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9776013, + 37.5248524 + ], + [ + 126.9780578, + 37.5248589 + ], + [ + 126.9785777, + 37.524783 + ], + [ + 126.9791853, + 37.5246424 + ], + [ + 126.9793148, + 37.5245183 + ], + [ + 126.9794306, + 37.5243 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/347895541", + "properties": { + "@id": "way/347895541", + "highway": "footway", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9727332, + 37.5237686 + ], + [ + 126.9722336, + 37.5240852 + ], + [ + 126.9704043, + 37.5249753 + ], + [ + 126.9702002, + 37.5252178 + ], + [ + 126.9700956, + 37.525327 + ], + [ + 126.9702129, + 37.5254693 + ], + [ + 126.9703602, + 37.5256474 + ], + [ + 126.9704871, + 37.525947 + ], + [ + 126.9703782, + 37.526093 + ], + [ + 126.9698836, + 37.5263691 + ], + [ + 126.9695145, + 37.5263996 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/347895589", + "properties": { + "@id": "way/347895589", + "highway": "residential", + "name": "한강대로52길 (Hangang-daero 52-gil)", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.97111, + 37.53257 + ], + [ + 126.9721044, + 37.5320078 + ], + [ + 126.9725443, + 37.5317618 + ], + [ + 126.9733185, + 37.5312841 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/347895770", + "properties": { + "@id": "way/347895770", + "highway": "residential", + "name": "한강대로54길 (Hangang-daero 54-gil)", + "source": "survey" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9734955, + 37.5323787 + ], + [ + 126.9731539, + 37.5324506 + ], + [ + 126.9726141, + 37.5325642 + ], + [ + 126.9721187, + 37.5326842 + ], + [ + 126.9715014, + 37.5329762 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982501", + "properties": { + "@id": "way/363982501", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9739667, + 37.5279182 + ], + [ + 126.9737761, + 37.5271869 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982502", + "properties": { + "@id": "way/363982502", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9742229, + 37.5294918 + ], + [ + 126.9742023, + 37.5286833 + ], + [ + 126.9751296, + 37.5286946 + ], + [ + 126.9751449, + 37.5293413 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982508", + "properties": { + "@id": "way/363982508", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9734752, + 37.5272186 + ], + [ + 126.9732821, + 37.5265895 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982513", + "properties": { + "@id": "way/363982513", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9728514, + 37.5261008 + ], + [ + 126.9727111, + 37.5259835 + ], + [ + 126.9733477, + 37.5250968 + ], + [ + 126.9733174, + 37.5248525 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982514", + "properties": { + "@id": "way/363982514", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9733477, + 37.5250968 + ], + [ + 126.9735345, + 37.5251519 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982517", + "properties": { + "@id": "way/363982517", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9773413, + 37.5266194 + ], + [ + 126.9768713, + 37.5252941 + ], + [ + 126.9767381, + 37.5249187 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982518", + "properties": { + "@id": "way/363982518", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9768713, + 37.5252941 + ], + [ + 126.9757933, + 37.5255094 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982522", + "properties": { + "@id": "way/363982522", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9745098, + 37.5246169 + ], + [ + 126.9743605, + 37.5241625 + ], + [ + 126.973831, + 37.5237985 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982523", + "properties": { + "@id": "way/363982523", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9732776, + 37.5242548 + ], + [ + 126.9733611, + 37.524186 + ], + [ + 126.973831, + 37.5237985 + ], + [ + 126.9741509, + 37.5235154 + ], + [ + 126.9742067, + 37.5234661 + ], + [ + 126.9744429, + 37.5232572 + ], + [ + 126.97469, + 37.5231172 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982524", + "properties": { + "@id": "way/363982524", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9742067, + 37.5234661 + ], + [ + 126.9747724, + 37.5239198 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982525", + "properties": { + "@id": "way/363982525", + "highway": "service", + "service": "parking_aisle" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9733611, + 37.524186 + ], + [ + 126.9733014, + 37.5240131 + ], + [ + 126.9739545, + 37.5234158 + ], + [ + 126.9741509, + 37.5235154 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982529", + "properties": { + "@id": "way/363982529", + "access": "destination", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9767486, + 37.5292938 + ], + [ + 126.97641, + 37.5287461 + ], + [ + 126.9762133, + 37.5285741 + ], + [ + 126.9760711, + 37.5280813 + ], + [ + 126.9762333, + 37.5279849 + ], + [ + 126.9763139, + 37.5278992 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982535", + "properties": { + "@id": "way/363982535", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9802421, + 37.5306555 + ], + [ + 126.9798347, + 37.5306646 + ], + [ + 126.9789696, + 37.530684 + ], + [ + 126.9786264, + 37.5306356 + ], + [ + 126.9785682, + 37.5306274 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982536", + "properties": { + "@id": "way/363982536", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9798347, + 37.5306646 + ], + [ + 126.9798792, + 37.5312215 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982537", + "properties": { + "@id": "way/363982537", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9801841, + 37.5294468 + ], + [ + 126.9796196, + 37.5294692 + ], + [ + 126.9791301, + 37.5294887 + ], + [ + 126.9791301, + 37.5299909 + ], + [ + 126.9785682, + 37.530104 + ], + [ + 126.9782204, + 37.5301182 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982542", + "properties": { + "@id": "way/363982542", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9794573, + 37.5317376 + ], + [ + 126.9794292, + 37.5318735 + ], + [ + 126.979381, + 37.5321068 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982543", + "properties": { + "@id": "way/363982543", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9794292, + 37.5318735 + ], + [ + 126.9789626, + 37.5318431 + ], + [ + 126.9790014, + 37.5316943 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982544", + "properties": { + "@id": "way/363982544", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9786264, + 37.5306356 + ], + [ + 126.9786246, + 37.5309965 + ], + [ + 126.9786622, + 37.5312135 + ], + [ + 126.9788607, + 37.5312858 + ], + [ + 126.9791235, + 37.5312602 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982548", + "properties": { + "@id": "way/363982548", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9771894, + 37.5303967 + ], + [ + 126.9750591, + 37.5304022 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982549", + "properties": { + "@id": "way/363982549", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9751471, + 37.5314056 + ], + [ + 126.9760823, + 37.5312115 + ], + [ + 126.9765622, + 37.5311794 + ], + [ + 126.9770503, + 37.5312138 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982550", + "properties": { + "@id": "way/363982550", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9751118, + 37.5312203 + ], + [ + 126.9753118, + 37.5309757 + ], + [ + 126.9753523, + 37.5306058 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982552", + "properties": { + "@id": "way/363982552", + "highway": "footway" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9796196, + 37.5294692 + ], + [ + 126.979571, + 37.5286898 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982558", + "properties": { + "@id": "way/363982558", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9709961, + 37.5301292 + ], + [ + 126.9713413, + 37.5304982 + ], + [ + 126.9716321, + 37.5308136 + ], + [ + 126.9718768, + 37.5311384 + ], + [ + 126.9721767, + 37.5314723 + ], + [ + 126.9725443, + 37.5317618 + ], + [ + 126.9731539, + 37.5324506 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/363982559", + "properties": { + "@id": "way/363982559", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9733185, + 37.5312841 + ], + [ + 126.9734955, + 37.5323787 + ], + [ + 126.97363, + 37.5335631 + ], + [ + 126.9738495, + 37.5350167 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000333", + "properties": { + "@id": "way/364000333", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9808048, + 37.5347703 + ], + [ + 126.9806298, + 37.5338926 + ], + [ + 126.9805914, + 37.5338521 + ], + [ + 126.9806127, + 37.533798 + ], + [ + 126.9805744, + 37.5336832 + ], + [ + 126.9804637, + 37.5331599 + ], + [ + 126.9803537, + 37.5329774 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000334", + "properties": { + "@id": "way/364000334", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9805355, + 37.5347593 + ], + [ + 126.9804761, + 37.5343885 + ], + [ + 126.9804615, + 37.5342807 + ], + [ + 126.9804382, + 37.5340884 + ], + [ + 126.9803743, + 37.5340479 + ], + [ + 126.9804126, + 37.5339871 + ], + [ + 126.980353, + 37.5339432 + ], + [ + 126.9803956, + 37.5338858 + ], + [ + 126.9803871, + 37.5338453 + ], + [ + 126.9803786, + 37.5338014 + ], + [ + 126.9802849, + 37.5331937 + ], + [ + 126.9803537, + 37.5329774 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000355", + "properties": { + "@id": "way/364000355", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.975055, + 37.5302671 + ], + [ + 126.9729472, + 37.5302875 + ], + [ + 126.9727794, + 37.530093 + ], + [ + 126.9734119, + 37.5299344 + ], + [ + 126.9734216, + 37.5296911 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000358", + "properties": { + "@id": "way/364000358", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9776013, + 37.5251563 + ], + [ + 126.9779163, + 37.5251495 + ], + [ + 126.9815865, + 37.5249469 + ], + [ + 126.9818164, + 37.5247443 + ], + [ + 126.982685, + 37.5247241 + ], + [ + 126.9829149, + 37.5245687 + ], + [ + 126.9828809, + 37.5238663 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000370", + "properties": { + "@id": "way/364000370", + "highway": "residential" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9801677, + 37.5291006 + ], + [ + 126.9811437, + 37.52908 + ], + [ + 126.981825, + 37.5292353 + ], + [ + 126.982685, + 37.5294987 + ], + [ + 126.9834231, + 37.5297928 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000379", + "properties": { + "@id": "way/364000379", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9811328, + 37.5308649 + ], + [ + 126.9815781, + 37.5308854 + ], + [ + 126.9818821, + 37.5306687 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000380", + "properties": { + "@id": "way/364000380", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9888189, + 37.5279017 + ], + [ + 126.9878315, + 37.527743 + ], + [ + 126.9870636, + 37.5276611 + ], + [ + 126.9865485, + 37.5276727 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000381", + "properties": { + "@id": "way/364000381", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9851727, + 37.5297288 + ], + [ + 126.9851985, + 37.5292477 + ], + [ + 126.9850191, + 37.5288613 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000382", + "properties": { + "@id": "way/364000382", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9844241, + 37.5265505 + ], + [ + 126.9849146, + 37.5269855 + ], + [ + 126.9849461, + 37.5271759 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000383", + "properties": { + "@id": "way/364000383", + "highway": "service", + "service": "parking_aisle" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9849146, + 37.5269855 + ], + [ + 126.9851275, + 37.5269139 + ], + [ + 126.9851146, + 37.5268422 + ], + [ + 126.9854308, + 37.5267501 + ], + [ + 126.9854825, + 37.5268729 + ], + [ + 126.9851598, + 37.5269753 + ], + [ + 126.9851275, + 37.5269139 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000384", + "properties": { + "@id": "way/364000384", + "highway": "service", + "service": "parking_aisle" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9837396, + 37.5270868 + ], + [ + 126.9836755, + 37.5262792 + ], + [ + 126.9834635, + 37.526259 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000385", + "properties": { + "@id": "way/364000385", + "highway": "service", + "service": "parking_aisle" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9834668, + 37.5262988 + ], + [ + 126.9832237, + 37.5263662 + ], + [ + 126.9832409, + 37.5266174 + ], + [ + 126.9832689, + 37.5270265 + ], + [ + 126.9835079, + 37.5270722 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000386", + "properties": { + "@id": "way/364000386", + "highway": "service", + "service": "parking_aisle" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9832689, + 37.5270265 + ], + [ + 126.9829785, + 37.5269292 + ], + [ + 126.9829656, + 37.5266324 + ], + [ + 126.9832409, + 37.5266174 + ], + [ + 126.9834933, + 37.526612 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000393", + "properties": { + "@id": "way/364000393", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9878154, + 37.5269587 + ], + [ + 126.9878832, + 37.5267706 + ], + [ + 126.9879348, + 37.5257879 + ], + [ + 126.9880899, + 37.5258125 + ], + [ + 126.9882575, + 37.5258391 + ], + [ + 126.9882074, + 37.5265508 + ], + [ + 126.9881973, + 37.5266934 + ], + [ + 126.9881865, + 37.5268473 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000394", + "properties": { + "@id": "way/364000394", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9880899, + 37.5258125 + ], + [ + 126.9880316, + 37.5268218 + ], + [ + 126.9881865, + 37.5268473 + ], + [ + 126.9894643, + 37.5268985 + ], + [ + 126.9896837, + 37.5267808 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000402", + "properties": { + "@id": "way/364000402", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.984073, + 37.5260544 + ], + [ + 126.9841029, + 37.5257589 + ], + [ + 126.9838071, + 37.5253093 + ], + [ + 126.9836223, + 37.5253631 + ], + [ + 126.9838564, + 37.5257394 + ], + [ + 126.9841029, + 37.5257589 + ], + [ + 126.9845219, + 37.5257932 + ], + [ + 126.9846085, + 37.5260924 + ] + ] + } + }, + { + "type": "Feature", + "id": "way/364000403", + "properties": { + "@id": "way/364000403", + "highway": "service" + }, + "geometry": { + "type": "LineString", + "coordinates": [ + [ + 126.9838071, + 37.5253093 + ], + [ + 126.9838195, + 37.5249477 + ], + [ + 126.9836223, + 37.5249526 + ], + [ + 126.9835607, + 37.5252702 + ], + [ + 126.9836223, + 37.5253631 + ] + ] + } + } + ] +} \ No newline at end of file diff --git a/notebooks/data/states.kml b/notebooks/data/states.kml new file mode 100644 index 0000000..c4ca2a8 --- /dev/null +++ b/notebooks/data/states.kml @@ -0,0 +1,4661 @@ + + + + US States + 1 + + + Alabama + empty + + +states.AREA: + 51715.786 + + +states.STATE_NAME: +Alabama + + +states.STATE_FIPS: +01 + + +states.SUB_REGION: +E S Cen + + +states.STATE_ABBR: +AL + + +states.POP2000: + 4447100 + + +states.POP2001: + 4478538 + + +states.POP00_SQMI: + 86 + + +states.DEN_0_100: + 92 + + +USStates.ID: + 22 + + +USStates.State_Name: +Alabama + + +USStates.Date_Entered: +Dec. 14 1819 + + +USStates.Year_Entered: +1819 + + +USStates.Year_Settled: +1702 + +]]> + #Style_5 + + + -86.8263454497332,32.7948233460272,0 + + + + + + -85.0700671081992,31.9807030736301,0 -85.0567002477577,32.0173765203509,0 -85.0620107617352,32.0500102920991,0 -85.0566549357244,32.0696439454843,0 -85.046187259254,32.0908949913561,0 -85.0533136579289,32.1266376448382,0 -85.0243823514691,32.1662750781008,0 -85.0078260926386,32.1788785384061,0 -84.9603852752889,32.1919284376309,0 -84.9757438025875,32.2122487204353,0 -84.9283716437355,32.2179784387895,0 -84.9160041260552,32.2285563686775,0 -84.92367962799079,32.2473889995768,0 -84.9053609608961,32.2495557759674,0 -84.8940158788823,32.2591761298648,0 -84.8946035025639,32.2687353881118,0 -84.92107090555641,32.2931369847317,0 -85.0053324510846,32.3295925258289,0 -85.0020899980221,32.3470785227396,0 -84.97166353138461,32.3715031963467,0 -84.9844889642181,32.3870933241337,0 -84.970961884914,32.3968128124947,0 -84.9653850518902,32.4294501858587,0 -84.9898150430422,32.4548361836926,0 -84.9956522169706,32.518928479096,0 -85.0707744216369,32.5812538387594,0 -85.0841493949267,32.603004344931,0 -85.0863240406897,32.6284512647951,0 -85.10380371878141,32.6459103823229,0 -85.0904749305908,32.6761523261383,0 -85.10773330416841,32.6899723746491,0 -85.1138678519411,32.7343891188468,0 -85.1248851250497,32.7443832224212,0 -85.1333007048373,32.7563151798039,0 -85.1280898176054,32.7770703815279,0 -85.1623013377526,32.8074457725548,0 -85.1807197284529,32.8718130182966,0 -85.2335028922441,33.1201394011529,0 -85.2338462673976,33.129237260647,0 -85.2938249844532,33.425875708363,0 -85.3049800767665,33.4905940310641,0 -85.33528685109771,33.6549230949434,0 -85.38401093584911,33.9054097874599,0 -85.3957377905852,33.9598292697156,0 -85.4165672299404,34.0869203579979,0 -85.46028592417321,34.2901615301398,0 -85.5118559301513,34.5230148510197,0 -85.52583413117669,34.5846856151065,0 -85.5346925955902,34.6224884025546,0 -85.5830580356282,34.8623226551191,0 -85.6089602162505,34.9901641616199,0 -85.86956755804469,34.992384535053,0 -86.3035004132153,34.9954638721614,0 -86.31305264552989,34.9952731531874,0 -86.7823722148413,34.9970753222994,0 -86.8334221243196,34.9982460560253,0 -87.2075884780608,35.0079603909194,0 -87.2227639290321,35.0073462053491,0 -87.6078130632206,35.010546624408,0 -87.9860782705711,35.016033638512,0 -88.19496238143979,35.013543867744,0 -88.1939935775637,35.0044536440488,0 -88.1431049406294,34.9303124572945,0 -88.10888651427,34.8999364686021,0 -88.09046867570861,34.8956296636558,0 -88.13640162363011,34.5804972978314,0 -88.15125641336159,34.4652732358205,0 -88.1676133199948,34.3241474912554,0 -88.19934924265689,34.0904480664289,0 -88.20264467082561,34.0591222846376,0 -88.24819560524909,33.7427263969428,0 -88.2745866910838,33.5388014650338,0 -88.3048295831961,33.2888943469818,0 -88.33946633175739,32.9874972113755,0 -88.3480414662251,32.9247582205318,0 -88.3938325168417,32.5804702260594,0 -88.4257919971009,32.3092243032455,0 -88.4377242279507,32.2277556143888,0 -88.4729519210596,31.8888768167036,0 -88.465096841429,31.7022450293789,0 -88.4508031165511,31.4356176907354,0 -88.4345631161403,31.1208794693781,0 -88.4291990018716,31.0006950876596,0 -88.41724262810349,30.7364571156747,0 -88.40141515368251,30.3935517804008,0 -88.3203266415596,30.4042935926262,0 -88.1356811752465,30.3371585569903,0 -88.01978886193341,30.7441900319034,0 -87.9133851540991,30.6211844071927,0 -87.9034657641113,30.421296093483,0 -87.7575029474381,30.2994222307247,0 -87.77994170607489,30.2726382606338,0 -88.00256050399911,30.2336042721855,0 -87.7953306244775,30.23393165256,0 -87.59340480705509,30.2784153722344,0 -87.5875683536562,30.3192543333282,0 -87.46644036038791,30.3597214406638,0 -87.40525082190879,30.4403600660175,0 -87.4188166507341,30.4817007831404,0 -87.4453529644246,30.5313897036451,0 -87.4220673638826,30.5564936086287,0 -87.3932809670146,30.6200982640176,0 -87.3986449174521,30.6680153313996,0 -87.4188942719987,30.6928101858547,0 -87.4601404897836,30.7058026368688,0 -87.5266028694286,30.7484916966577,0 -87.54190013706391,30.7856953414756,0 -87.6159151545761,30.8482964233535,0 -87.62571159139399,30.8769019951762,0 -87.58986722899169,30.954361030582,0 -87.59858025629001,31.0026307736,0 -87.16311759320681,31.0031572312178,0 -86.7793617052065,30.9981918115755,0 -86.70185248868481,30.9980924099155,0 -86.38391974363719,30.9915383065212,0 -86.1814761680363,30.9952251256207,0 -86.0318217926755,30.993327601114,0 -85.4865971253016,31.0009980072958,0 -85.4850102049851,31.0010018399978,0 -85.00160719763341,31.0012534003007,0 -85.01699565076569,31.0801028338282,0 -85.038068227176,31.1267131739262,0 -85.06866250314511,31.1623640897378,0 -85.0933668734253,31.1722112527352,0 -85.1029571297253,31.1969220462589,0 -85.09360326113141,31.2270745000222,0 -85.1033613685017,31.2714361848353,0 -85.0812280506442,31.3030803697052,0 -85.0825631900095,31.33233449639,0 -85.0879419916334,31.3672341961667,0 -85.0614062661802,31.4406634414676,0 -85.0663120282063,31.4760895555663,0 -85.0426984349451,31.5196599288858,0 -85.04272135787051,31.5543898029988,0 -85.0592853056629,31.6212651525335,0 -85.1112049587349,31.6842421102739,0 -85.11867442354141,31.7085715963854,0 -85.11528693111811,31.731565957183,0 -85.1301648712312,31.778853672117,0 -85.1315611123421,31.7838145657199,0 -85.1355669344631,31.8548844137198,0 -85.11515025581549,31.9074247500776,0 -85.0700671081992,31.9807030736301,0 + + + + + + + + Alaska + empty + + +states.AREA: + 576594.104 + + +states.STATE_NAME: +Alaska + + +states.STATE_FIPS: +02 + + +states.SUB_REGION: +Pacific + + +states.STATE_ABBR: +AK + + +states.POP2000: + 626932 + + +states.POP2001: + 632783 + + +states.POP00_SQMI: + 1 + + +states.DEN_0_100: + 100 + + +USStates.ID: + 49 + + +USStates.State_Name: +Alaska + + +USStates.Date_Entered: +Jan. 3 1959 + + +USStates.Year_Entered: +1959 + + +USStates.Year_Settled: +1784 + +]]> + #Style_5 + + + -152.571308132839,64.31717179291989,0 + + + + + + + -161.333785152503,58.73324809322381,0 -161.265686026239,58.7746349508974,0 -161.29973001177,58.8092078992406,0 -160.898880078262,58.8847743885185,0 -160.835706338137,58.8360566348485,0 -160.328871281117,59.0589472427445,0 -160.255289421572,58.9814391788959,0 -160.322214368411,58.94977595668139,0 -160.251928933333,58.8947750733089,0 -160.018038770945,58.8847826021977,0 -159.921353250021,58.7703335410918,0 -159.764983266222,58.85339732881441,0 -159.770814017585,58.9336678800203,0 -159.629389451621,58.951728817063,0 -159.652767383695,58.8356144431094,0 -159.431907396554,58.78200378727071,0 -159.058839790045,58.4242303462786,0 -158.840482035485,58.40172569768509,0 -158.706325553629,58.4914573031936,0 -158.914412274631,58.768124706742,0 -158.847732874479,58.8147881781941,0 -158.804120274768,58.79007643944839,0 -158.886637897011,58.7328457311724,0 -158.781626705695,58.7703465789124,0 -158.764699341806,58.9173004051305,0 -158.825525121968,58.9703482280997,0 -158.746636639026,58.992299469629,0 -158.790794838837,58.9609108289104,0 -158.72911244469,58.87285089191919,0 -158.448018866607,59.0539656031184,0 -158.539151744527,59.17452613590309,0 -158.425528178316,59.0761984218428,0 -158.131606098439,59.0275871389339,0 -157.994937811845,58.904249899836,0 -158.025789747621,58.8700843445155,0 -158.181898629942,59.0086957979644,0 -158.494678300986,58.9986887872383,0 -158.422196166983,58.9711854751204,0 -158.496903135941,58.9484099616525,0 -158.566903585087,58.81174047286289,0 -158.368259112377,58.7472974611246,0 -158.335782570428,58.65867989733821,0 -158.201041727574,58.60619016044859,0 -157.15562321674,58.863481676262,0 -157.114088794183,58.8737057915319,0 -156.885486385519,59.0087124811514,0 -156.86715047004,59.1028830583024,0 -156.781337077422,59.1506598829204,0 -156.857424505391,58.9970702811005,0 -156.948271114567,58.898965473525,0 -157.073799361921,58.7634294950003,0 -156.940465365975,58.73509549838399,0 -157.227146003726,58.6403703663092,0 -157.26552143945,58.61099989520881,0 -157.551293782504,58.39230935566729,0 -157.567122696749,58.3028631268522,0 -157.467383404756,58.21147284622099,0 -157.337107162871,58.2384214399498,0 -157.140723498892,58.1617563507581,0 -157.395729459446,58.2059194349044,0 -157.612095158083,58.0889724688187,0 -157.708762826285,57.642579814095,0 -157.602372111932,57.62118856016901,0 -157.594584559286,57.4884098545335,0 -157.422370568788,57.49257944137811,0 -157.451242831187,57.5445286801005,0 -157.399057835422,57.5592475782682,0 -157.394324661818,57.4942511106634,0 -157.659313790987,57.4739582789334,0 -157.680712071643,57.56674949709691,0 -157.940146338779,57.4911808741641,0 -158.057084658874,57.3628493580549,0 -158.287372349061,57.3234001444386,0 -158.650976582544,57.052545680881,0 -158.702058683987,56.9764328167148,0 -158.642626518403,56.7603290977313,0 -158.798407929269,56.80097196103009,0 -158.948176855863,56.84004339569309,0 -159.027642308589,56.7942118101975,0 -158.864012311658,56.8925432463471,0 -159.2376011964,56.727251651604,0 -159.266255938373,56.6969773995724,0 -159.211232058542,56.6933620466209,0 -159.839280009922,56.54002916803709,0 -160.369545562978,56.2691753616262,0 -160.571495574202,55.92889738004299,0 -160.240612175007,55.8452847206279,0 -160.316754865376,55.821402903935,0 -160.251747074441,55.76972980426541,0 -160.466201133531,55.7927898869082,0 -160.503162720311,55.8663904588052,0 -160.789543128523,55.8791647494381,0 -160.760665773692,55.77583190214499,0 -160.661480434371,55.7308353579732,0 -160.798136884243,55.7099971367895,0 -160.948139923201,55.8230554861109,0 -160.930382830279,55.87527146206789,0 -161.027888121243,55.8958312292401,0 -160.863155388513,55.9319441282278,0 -160.87646436338,55.9897218164889,0 -161.246184916394,55.9416568129955,0 -161.370088134206,55.9505502490315,0 -161.198703521823,56.00582894445199,0 -161.783999074871,55.891092733739,0 -162.612011328844,55.4266227275852,0 -162.503704052287,55.44384484323831,0 -162.490058524205,55.37356947755129,0 -162.892307267167,55.2652303796606,0 -162.834778744668,55.226336390692,0 -162.880614120962,55.1855020887533,0 -163.075072766862,55.1727266321509,0 -163.018985653155,55.2432779859019,0 -163.325067791767,55.120781676687,0 -163.240312596218,54.9566141906158,0 -163.337815758332,54.9579995076703,0 -163.354198710481,54.9182724565595,0 -163.276713380764,54.9118844503472,0 -163.387823291606,54.85577077085231,0 -163.362248453471,54.81104837868569,0 -163.046468053829,54.9366094396024,0 -163.210901063576,55.01466386830321,0 -163.241178591562,55.0968868621753,0 -163.186461496505,55.1388346767614,0 -162.91951622862,55.0185578001535,0 -162.97670554716,54.9941114885713,0 -162.879777735911,54.93105442482131,0 -162.737537176281,54.9471652996602,0 -162.654501254855,55.0496709305591,0 -162.564497469772,54.95439441058279,0 -162.650351300767,55.06634162353811,0 -162.60698925691,55.1616203136746,0 -162.723662744298,55.2185644807848,0 -162.64813559177,55.2944031175309,0 -162.564241723022,55.29245926729391,0 -162.600342732401,55.2688454079785,0 -162.363397597136,55.1019064144312,0 -162.526723907637,55.1069029544622,0 -162.43792192466,55.0336527695807,0 -162.226160106285,55.023841561213,0 -162.225086063802,55.11022986289451,0 -162.102015333028,55.1652243665891,0 -162.14096098133,55.1124473313382,0 -162.089794404917,55.0780070068784,0 -161.969778363407,55.1010735983281,0 -162.04425843462,55.2318999694405,0 -161.908136327499,55.2096901239275,0 -161.701174942482,55.40469908465581,0 -161.713417473843,55.5133125057309,0 -161.564524528208,55.6219224278555,0 -161.140619787914,55.5322194472926,0 -161.375889759647,55.5719308099382,0 -161.487550344253,55.4802589363229,0 -161.505093667031,55.35859055447419,0 -161.245606142834,55.34803673372501,0 -160.901450202665,55.5180571296746,0 -160.812282930602,55.4508344758896,0 -160.673678646028,55.4611128174626,0 -160.65869461044,55.5025023768326,0 -160.762026681564,55.5436149376,0 -160.594244378424,55.6075070391802,0 -160.509799239654,55.47722062139179,0 -160.367289822086,55.6016730144438,0 -160.435921567478,55.6452826356233,0 -160.150100463074,55.65806440819991,0 -160.156196639475,55.73028669280341,0 -160.067023580057,55.69584118132489,0 -160.041480059015,55.78723691352259,0 -159.865655546791,55.7828003051536,0 -159.843160184257,55.8502987828938,0 -159.623997571039,55.8130754392236,0 -159.68182740582,55.7372354944145,0 -159.633763521754,55.69418181050791,0 -159.709595206964,55.6608466266932,0 -159.617099863445,55.6341826757826,0 -159.757958323373,55.6016786017979,0 -159.625702753951,55.5725134117704,0 -159.56444722997,55.6675696119233,0 -159.505743092783,55.7586358496787,0 -159.545629195873,55.8803024719076,0 -159.468402315572,55.8961424500525,0 -159.426523393594,55.7855851946283,0 -159.361718537439,55.8744682212367,0 -158.929489375146,55.913649286065,0 -158.856707899204,56.0100395520857,0 -158.672026415509,55.9542091455648,0 -158.649812533647,56.017816276671,0 -158.738127459087,56.036155798871,0 -158.66229565743,56.0597624975191,0 -158.698401408561,56.1444864288357,0 -158.6578731072,56.10893405662701,0 -158.565933519365,56.1603198605422,0 -158.63062848199,56.19921337359591,0 -158.475910642966,56.1839349326357,0 -158.604501408417,56.09337098777039,0 -158.597299257073,56.0353265622513,0 -158.510949590254,56.056713105801,0 -158.568435275547,56.0230969994927,0 -158.442033154921,55.9928266933291,0 -158.503440813723,56.09392968219971,0 -158.418133643957,56.06198819300339,0 -158.412582158765,56.17198902397929,0 -158.359506001416,56.1242151806531,0 -158.122575442007,56.23283281910391,0 -158.339520178038,56.1722731135264,0 -158.401781776975,56.2333830676346,0 -158.209248110013,56.2825589305505,0 -158.459802906216,56.3403232775806,0 -158.56230826884,56.2936594813065,0 -158.539815059838,56.24643375235849,0 -158.652025808424,56.263658716432,0 -158.425109648428,56.44309990175461,0 -158.142882552712,56.4586613057075,0 -158.137331109151,56.51199829491119,0 -157.878969772984,56.4667230394565,0 -157.850930570702,56.5564451637043,0 -158.125368944743,56.52505247965081,0 -158.112310036865,56.56728172314899,0 -157.789291610641,56.6775641184919,0 -157.687049228321,56.6083990265527,0 -157.483154811739,56.6150734109705,0 -157.481753538524,56.6686855455315,0 -157.602332905389,56.7181215981928,0 -157.398444314694,56.76452066637489,0 -157.45234430765,56.8486816726827,0 -157.218693133921,56.7706297462374,0 -157.149023983421,56.8181418198582,0 -157.190102649761,56.8473004074459,0 -157.089544356612,56.8228663550548,0 -156.946204230785,56.90730550252469,0 -156.957316996187,56.9781375977643,0 -156.815676111883,56.8970385623057,0 -156.781778579615,57.0442657888193,0 -156.550662398262,56.9767574935604,0 -156.647895951436,57.0523176397596,0 -156.509283408839,57.04815480310441,0 -156.475383840147,57.1206504256663,0 -156.370374663586,57.1412137444124,0 -156.345108649058,57.17899543635921,0 -156.382157694384,57.19522642686001,0 -156.448444338671,57.22426674886219,0 -156.337058323783,57.28371786195311,0 -156.560112290231,57.2706517564981,0 -156.547908383125,57.3151012445201,0 -156.204013805649,57.4767689054821,0 -156.031252083175,57.4387154200719,0 -156.105139656814,57.5256676083383,0 -156.017096225347,57.5278889954359,0 -156.036264823039,57.57289458496021,0 -155.738761208247,57.5484491430015,0 -155.772116905032,57.6428964424694,0 -155.589863307336,57.6684495062979,0 -155.637654619084,57.71900364639491,0 -155.605424772626,57.7901269537674,0 -155.313209888872,57.7337300300885,0 -155.329864010455,57.8351196866473,0 -155.082392625678,57.8817919802853,0 -155.122076480031,57.9498466148949,0 -155.036263615044,58.01901651886061,0 -154.784915463434,58.0015242707294,0 -154.6693745043,58.06874860389601,0 -154.577475297862,58.02152097435891,0 -154.542736181707,58.06318608427399,0 -154.602683197036,58.1237428043424,0 -154.464687576786,58.0912394264893,0 -154.493467970366,58.195408792331,0 -154.335544467235,58.076521074806,0 -154.338858209779,58.1551303092309,0 -154.226332467918,58.139025874853,0 -154.303822766377,58.18846581873181,0 -154.208806500557,58.1895815991094,0 -154.155733688479,58.2226352017764,0 -154.245420814585,58.2551439894471,0 -154.114293382021,58.2806980425376,0 -154.356521446324,58.2870875115718,0 -154.002646725717,58.3773658722835,0 -154.105387027067,58.48125560259759,0 -153.932061858385,58.5045959892085,0 -153.972890504162,58.5284831785518,0 -153.898185310175,58.61348358666779,0 -153.61068326709,58.6340492543883,0 -153.44985398374,58.7137727795236,0 -153.364832539309,58.8429417107663,0 -153.273557746057,58.8554624066591,0 -153.261534242756,58.85711048010789,0 -153.362056111899,58.8676613660462,0 -153.292631360869,58.8782135819054,0 -153.429022087772,58.9818267000574,0 -153.704883939862,59.0684898098592,0 -154.042661381181,59.0787554970255,0 -154.157370965954,59.0231941221256,0 -154.173498514142,59.1218045137184,0 -154.262948809218,59.1415330158652,0 -154.128492709467,59.2018092726682,0 -154.114066158873,59.3032000988927,0 -153.949637554903,59.3582157497182,0 -154.144651043452,59.3768103802015,0 -153.749350608612,59.43515850431751,0 -153.76715342528,59.5198853480745,0 -153.876835256794,59.54460710609381,0 -153.591094337494,59.5554610435647,0 -153.56529052404,59.60742170564599,0 -153.7077677386,59.63212213906429,0 -153.593590561736,59.6932442855167,0 -153.558099389461,59.6279782410784,0 -153.490537875191,59.6429817146384,0 -153.451034011489,59.788514869163,0 -153.325474023388,59.7201833609921,0 -153.427468957573,59.6507468501349,0 -153.228261155999,59.64324974738111,0 -153.046678397772,59.7063277032092,0 -153.01027369159,59.8293809376473,0 -153.274125155891,59.8332414104575,0 -153.220254584942,59.8674197160735,0 -152.709383935819,59.9216072262671,0 -152.582127278814,60.0810565939181,0 -152.92390161202,60.23334805462,0 -152.94003873109,60.283835571813,0 -153.105318627738,60.2888209744272,0 -152.914498420316,60.3074426802667,0 -152.888672743247,60.24994871215711,0 -152.623566405179,60.21938531787029,0 -152.424485688679,60.2913482476289,0 -152.244741438209,60.3932989208154,0 -152.33336982315,60.4299649111308,0 -152.324187650344,60.4982963133817,0 -152.060879059337,60.6702568219423,0 -151.869752276787,60.7527600317616,0 -151.712241218462,60.7227533678662,0 -151.8069672633,60.8333167797258,0 -151.745283678886,60.9158263142677,0 -151.170299447225,61.0494362619038,0 -150.971803022971,61.19443514678041,0 -150.952789955596,61.20832902923419,0 -150.589996572722,61.2838898032493,0 -150.572785589509,61.3644498997296,0 -150.501098165034,61.2522262842029,0 -149.998044706153,61.23972433979731,0 -149.88219241844,61.38194178181671,0 -149.69833315027,61.4716711128427,0 -149.244431173874,61.4922294375812,0 -149.244690583337,61.4921722234404,0 -149.688899347697,61.3938950506461,0 -150.066392163155,61.1538821236082,0 -149.35355602292,60.9274961555537,0 -149.164131930274,60.94414391284911,0 -149.030233992719,60.84719412510259,0 -149.031256391296,60.8473581579819,0 -149.817460656137,60.9738753404146,0 -150.055802984252,60.9049820972072,0 -150.441125056703,61.029716422926,0 -151.054174381277,60.7872102685368,0 -151.411145577038,60.7269253434777,0 -151.277527954686,60.538589425392,0 -151.30610807234,60.3849681995543,0 -151.393906354096,60.35968671163809,0 -151.434168395526,60.2060742580971,0 -151.721073010356,60.02133213170561,0 -151.87130095749,59.7432697182973,0 -151.411020611746,59.6024407095216,0 -151.473222538545,59.6335528029021,0 -151.429615432973,59.6593798124915,0 -150.994891148765,59.7766160796313,0 -151.194325829894,59.644665262138,0 -151.172373755852,59.5971640167154,0 -151.440432999921,59.5332703268026,0 -151.373191005141,59.4404885512437,0 -151.68518619413,59.4763225888683,0 -151.901267887832,59.4074275234718,0 -151.814594874271,59.35269704310421,0 -151.939328637694,59.3435208087696,0 -151.974035802241,59.2704359809586,0 -151.76075037891,59.2209870235803,0 -151.725442401128,59.16014497139561,0 -151.416827511337,59.2579726347623,0 -151.113463885909,59.2132702949236,0 -151.257942518028,59.31354129712781,0 -151.046535944978,59.2968882192378,0 -150.959468408548,59.2017798893775,0 -150.882900422449,59.2566178352259,0 -150.92345880736,59.3168976512654,0 -150.601818750295,59.4332904901038,0 -150.637372846165,59.4591302876502,0 -150.573198696892,59.48801818871599,0 -150.656820527631,59.5455181462851,0 -150.492372464406,59.5966342854004,0 -150.554892203734,59.5207951642239,0 -150.483751946228,59.46108167276329,0 -150.234610434769,59.7174743922216,0 -150.375967886488,59.46496858220271,0 -150.177957168347,59.5299760545595,0 -150.186568178919,59.5913620600161,0 -150.089068344022,59.5874737531167,0 -150.131279158927,59.6944203512125,0 -150.026572805093,59.6283085711905,0 -149.958795645119,59.6663736669455,0 -149.917964701058,59.7141495203082,0 -150.036312057431,59.7958151910466,0 -149.745725653872,59.6580445615074,0 -149.76687375455,59.7794301535473,0 -149.865749098572,59.8455311572584,0 -149.761044038397,59.835258968484,0 -149.725733852783,59.9624799470071,0 -149.649654701483,59.8997048950508,0 -149.632413768566,59.7430521316596,0 -149.527979014918,59.7161061893766,0 -149.630184937389,59.8241558519239,0 -149.392427191978,59.99692500620601,0 -149.419106339128,60.1177625682853,0 -149.297425849991,60.0149872235935,0 -149.27742488256,59.86693539618939,0 -149.109889568055,60.0505445840998,0 -149.039909034559,60.0480501444573,0 -149.118525530796,59.9844388664724,0 -149.072686356652,59.961110755894,0 -148.645732735282,59.9205553455863,0 -148.584838780207,59.9443183635439,0 -148.545431978257,59.9596933140987,0 -148.543775431703,60.02856277454679,0 -148.432069759509,59.9521654982814,0 -148.443751827642,60.0265934350966,0 -148.327872827252,60.1737736367389,0 -148.20473061572,60.1285935563073,0 -148.112311189492,60.2274263163939,0 -148.207873142985,60.14961256234051,0 -148.181753673558,60.1962918011757,0 -148.261756888472,60.2240371956002,0 -148.213149526906,60.2548997880003,0 -148.437875688356,60.1765645984425,0 -148.360649912604,60.2312630697471,0 -148.391233023641,60.2834972169101,0 -148.315658112001,60.251265128508,0 -148.215358388159,60.3379605640224,0 -148.252033968825,60.3771146586788,0 -148.13848080643,60.35329041049031,0 -148.182048393761,60.41382466439471,0 -148.086522057206,60.3894257803973,0 -147.939038435394,60.4616800092346,0 -148.096202802999,60.6007917073021,0 -148.16901726638,60.49827278078261,0 -148.182625054263,60.5568821805977,0 -148.236481371513,60.51464411648529,0 -148.248407357397,60.4440664370318,0 -148.453728463385,60.5404772618764,0 -148.662370737089,60.4572230831064,0 -148.686252636282,60.44770064102191,0 -148.655870348742,60.46750311616861,0 -148.489839167264,60.5757594787753,0 -148.334269745155,60.5338072453025,0 -148.199562326405,60.6254816107083,0 -148.232351327792,60.76689064543021,0 -148.423189909456,60.62464590669959,0 -148.373729433633,60.7741100557936,0 -148.656393799296,60.6732030138355,0 -148.670173154824,60.66828501340499,0 -148.643795450459,60.7263816501015,0 -148.633222448721,60.74967814460919,0 -148.44960635712,60.8035643503037,0 -148.70186875851,60.7891472536526,0 -148.342354826261,60.81328428583921,0 -148.39515893567,60.85412255705851,0 -148.314306930357,60.84078402297321,0 -148.276250313012,60.9180191103731,0 -148.333206253881,60.9638636687654,0 -148.24621788915,60.950524631916,0 -148.150694574815,61.0658189481316,0 -148.419891159865,60.982475096544,0 -148.35876601599,61.045265507278,0 -148.406292409212,61.0538727742567,0 -148.152073881692,61.1174925099543,0 -148.058728074477,61.0180288282359,0 -147.727589369721,61.2769501718819,0 -147.762033891342,61.2119502260391,0 -147.701464454691,61.20362336129689,0 -148.05427032011,60.9491353609803,0 -147.86733694704,60.8319667058086,0 -147.751499090674,60.8369802363913,0 -147.810973218779,60.873353881162,0 -147.716791759145,60.94891017392889,0 -147.731235092843,60.8869808213403,0 -147.600404620288,60.864474159109,0 -147.610959532568,61.0050354080108,0 -147.669575457536,61.0183582983929,0 -147.597071375163,61.0230848553715,0 -147.548721557266,61.15390437906311,0 -147.481227993569,61.0736399741854,0 -147.546232330737,60.9102973905737,0 -147.433746261722,61.01141449110691,0 -147.456509137478,60.9550268901559,0 -147.380674906894,60.983631907419,0 -147.452354453026,60.9019624271688,0 -147.364825833686,60.88391033304149,0 -147.253739447425,60.9308410661136,0 -147.274590726064,61.0013889229548,0 -147.202899879317,61.0136078504404,0 -147.159279204397,60.945279594455,0 -147.099832210281,61.0108324265117,0 -146.987303498882,61.0027809241622,0 -147.032896212862,60.9527767239131,0 -146.96480793758,60.9397266125377,0 -146.587025468714,61.1308545406382,0 -146.302870653031,61.1303006103218,0 -146.245607696804,61.0850266206628,0 -146.645096824727,61.0680740681633,0 -146.563700432409,61.0333532654964,0 -146.66258226107,61.0355783966212,0 -146.704238180203,60.9747326576475,0 -146.585322998139,60.9369525778928,0 -146.7562168937,60.949184341708,0 -146.618399066796,60.87583490026579,0 -146.62588869526,60.8191742022643,0 -146.365278513723,60.8199981043257,0 -146.233084037149,60.89223480194439,0 -146.091857444634,60.833693045447,0 -146.688635158716,60.7445853086664,0 -146.655375405815,60.6991705496384,0 -146.487809366452,60.6780530191874,0 -146.304472221854,60.7733383190817,0 -146.268413160245,60.72194984233029,0 -146.04283298469,60.79808589117061,0 -146.018662897232,60.7428002103088,0 -146.25562426106,60.6377755739876,0 -145.92504969477,60.705840050816,0 -145.990873322739,60.6286083262344,0 -145.849200623326,60.6961056188291,0 -145.873343048254,60.6497147445425,0 -145.806403418073,60.6572171447883,0 -145.874197219193,60.6205455692455,0 -145.627771366174,60.67138695048881,0 -145.942281314296,60.4674984661902,0 -145.65561811283,60.466944019527,0 -145.351399838659,60.3516582766124,0 -145.225314668621,60.3683449430158,0 -144.826036159745,60.5929111703319,0 -144.760308369237,60.6790815080476,0 -144.613385843632,60.7150275209425,0 -144.763678839838,60.6627982972541,0 -144.884181006322,60.4780630494153,0 -144.788382984825,60.493062458805,0 -144.796437648474,60.4516699301247,0 -144.938378311657,60.3011193475292,0 -144.700846219873,60.276921132217,0 -144.576127090857,60.18526840806369,0 -144.189751593955,60.202513503567,0 -144.252554271713,60.1450107532353,0 -144.003095619119,60.0425179326562,0 -144.148602290858,60.0316537314516,0 -143.888930954422,59.9900121498977,0 -142.719050852584,60.1094910039893,0 -141.717587599628,59.9520616401243,0 -141.386792900144,60.023759031075,0 -141.479017872918,60.1162520487878,0 -141.392656822796,60.13820036432251,0 -141.281518868868,60.0712681733343,0 -141.260950985684,59.9765422987742,0 -141.450329121867,59.8809698429882,0 -141.001709257282,59.8023163528928,0 -140.405055993657,59.69771114038931,0 -139.836132734893,59.82301987154829,0 -139.589471632915,59.9485724375873,0 -139.515348897886,60.0505251414152,0 -139.233071735342,59.8691286469081,0 -138.894496190512,59.8063403069422,0 -139.280313455814,59.8299667944861,0 -139.226120251616,59.6157996927196,0 -139.287244089715,59.5710816495799,0 -139.342230474863,59.6046948540387,0 -139.263927331067,59.6224601202984,0 -139.341134941066,59.72384997636281,0 -139.294474503019,59.85468855666269,0 -139.487815713058,59.9846913591901,0 -139.619467019731,59.8849653387388,0 -139.471418166652,59.7074669601951,0 -139.572510583172,59.6099758949173,0 -139.837482979524,59.5330346061365,0 -139.30031473563,59.3435971805834,0 -139.226984728521,59.3774866299124,0 -139.115023715578,59.306932608997,0 -139.198087518419,59.3144316200442,0 -138.627559421752,59.1391476018072,0 -138.445338735773,59.1913655645444,0 -138.500061358955,59.11941992797591,0 -138.605070145945,59.1169216985396,0 -138.29814747493,59.0763641655449,0 -137.966817544318,58.9043972139786,0 -137.928513867343,58.7966276745584,0 -137.66945254236,58.6221403538231,0 -137.442485485931,58.6593486025529,0 -137.628327290225,58.5985226331721,0 -137.094416411605,58.38184837053421,0 -136.951883908997,58.3957406555413,0 -136.89468891615,58.3404646811455,0 -136.866886134745,58.3812984446125,0 -136.844937966734,58.3171315305511,0 -136.679360288633,58.2982379511224,0 -136.716046479212,58.2518487488786,0 -136.656043454623,58.21489693173361,0 -136.561587965299,58.2557320307773,0 -136.655491495902,58.3387900196198,0 -136.603238898985,58.3568494581747,0 -136.363780310359,58.2982440101744,0 -136.410746371687,58.37434783255579,0 -136.483236094748,58.3335105766018,0 -136.557975974697,58.3735129010878,0 -136.494888770296,58.38435455110609,0 -136.507118846123,58.44129144693201,0 -136.318242970392,58.39907769897481,0 -136.278233993266,58.3090737928317,0 -136.08514299961,58.3379763670886,0 -136.031004489378,58.3829837409208,0 -136.082680065021,58.5113093137749,0 -136.2107255606,58.5129687825506,0 -136.120431815536,58.55380061969949,0 -136.29407268799,58.6621169742219,0 -136.333493995151,58.5943420072906,0 -136.525718697156,58.6110055800168,0 -136.339329003016,58.6834993232732,0 -136.497113187255,58.749883803814,0 -136.438229911546,58.6648894748485,0 -136.524357189501,58.699329244748,0 -136.63741457713,58.8218274483055,0 -136.482958192163,58.79238071316011,0 -136.575464362967,58.8382088268226,0 -136.990189990781,58.89458978618709,0 -137.12743032072,58.82153237612071,0 -137.031879326265,58.9126397725486,0 -136.905778407043,58.926812355003,0 -137.056011817366,59.0639419933536,0 -136.661318388864,58.89098638570339,0 -136.610202059726,58.90737638810539,0 -136.70854399634,59.0184893501142,0 -136.582706428563,58.9154339412163,0 -136.490763094364,58.96515754558769,0 -136.484612282788,58.8390423598058,0 -136.26714738786,58.8221080732546,0 -136.385180003962,58.804050032587,0 -136.223774352415,58.7490551480308,0 -136.097421550472,58.8559972664872,0 -136.111863342191,58.92904052508089,0 -136.226576550769,58.9243174424854,0 -136.137164285104,58.9501477784295,0 -136.164118346043,59.0332071986449,0 -136.036058980683,58.9159917107924,0 -136.044109918623,58.8540536632563,0 -135.965502899901,58.9159955148241,0 -135.771340291466,58.8998984467766,0 -136.070198300687,58.8173893403661,0 -135.822138819143,58.5993615155143,0 -135.890772635366,58.5765863516842,0 -135.845710273191,58.4688072573549,0 -135.948217732642,58.4574219642019,0 -135.874610269222,58.4602008134349,0 -135.917383717431,58.3827046058588,0 -135.636006152498,58.4218810052194,0 -135.474039904979,58.3718793195977,0 -135.482922268447,58.4763209989525,0 -135.482266105207,58.47529863497879,0 -135.345954522573,58.26466178943679,0 -135.087344560568,58.2327100623319,0 -135.093479471139,58.4363199785056,0 -135.223182566531,58.59216050625211,0 -135.164589259234,58.63632787603429,0 -135.391034925742,58.9588383273772,0 -135.378475725941,59.0907811532229,0 -135.552399810315,59.2285461698137,0 -135.414058965412,59.1968867345814,0 -135.306546396798,59.0832766696795,0 -135.357082067385,59.2049429105833,0 -135.554624990701,59.3180010587432,0 -135.400998972006,59.3049402002886,0 -135.383161843017,59.3585289384977,0 -135.346557009105,59.4685532642299,0 -135.360411007386,59.3436974793189,0 -135.368222902154,59.27327850648509,0 -135.163500430068,58.9927202255354,0 -135.161777868188,58.9745121701904,0 -135.149071419803,58.8407709473337,0 -135.031254630839,58.736614051915,0 -134.949036811615,58.8143887158517,0 -134.912621058313,58.6560578826969,0 -134.990691092216,58.6696692775995,0 -134.777641849428,58.490775534021,0 -134.763203482944,58.3818793937694,0 -134.511786337846,58.353556200747,0 -134.176469810883,58.1963268059925,0 -133.980913251872,58.4938387505342,0 -133.77091007828,58.5180117548619,0 -133.922590710653,58.4974560491895,0 -134.011765799984,58.39717028706351,0 -133.977853715933,58.3177321691036,0 -134.068158032297,58.2766153296601,0 -134.066201117339,58.085492514722,0 -133.900088363535,57.9760430283545,0 -133.672571190215,58.1471659171099,0 -133.768155453362,58.05576798228,0 -133.670892347204,58.0135539809575,0 -133.682854190577,57.9377083749998,0 -133.774534185107,57.99132643628581,0 -133.857575173935,57.9535439821041,0 -133.693105012499,57.78716267005141,0 -133.568958353096,57.9224356117366,0 -133.525942304262,57.91613784130279,0 -133.123080113048,57.8571686423433,0 -133.547015241979,57.9104879379811,0 -133.547011345063,57.76549624512461,0 -133.004774352576,57.50938403516341,0 -133.643418684621,57.70465696636439,0 -133.663955741524,57.6327098175619,0 -133.585339067243,57.5679869556373,0 -133.312833293853,57.5893738493547,0 -133.49698377267,57.5376995498935,0 -133.470866589226,57.4371423353252,0 -133.3367048496,57.43491848802081,0 -133.433945230402,57.3465912995632,0 -133.225868279786,57.3129816576288,0 -133.0453128552,57.3668719324843,0 -133.244213062915,57.2749262353772,0 -133.473650022802,57.2790896729504,0 -133.554796111527,57.17881921334719,0 -133.528137746568,57.170251028798,0 -133.298114295831,57.0963158766088,0 -133.244768478878,57.17270872708861,0 -133.158950021709,57.16409641561199,0 -133.116163961892,57.1441004284371,0 -133.160081643089,57.0796546192494,0 -132.886179757038,57.0168734472833,0 -132.793097026481,57.0877059207201,0 -132.769781207377,56.9621561828107,0 -132.925060074322,56.9765975021592,0 -132.77060165749,56.8435404168285,0 -132.504506657573,56.7502120617999,0 -132.363909724204,56.8199394689082,0 -132.526143458526,56.7143759920697,0 -132.456682008304,56.67159813085879,0 -132.549488281624,56.627429941292,0 -132.312511499064,56.6374344564457,0 -132.347785944665,56.5271493911447,0 -132.190860649546,56.460486259835,0 -132.15918463566,56.3768754871059,0 -131.971963857806,56.3568773710179,0 -131.908639483814,56.2285236212952,0 -131.49196109642,56.2204678107347,0 -131.961956594766,56.1651919004793,0 -131.945847095563,55.9682473279259,0 -132.06281616002,55.9368652538066,0 -132.049477778082,55.8054682220347,0 -132.175848740147,55.7996382519413,0 -132.175024615534,55.7187928571858,0 -132.225653768625,55.7389522101563,0 -132.267798804903,55.75573975353461,0 -132.177525196271,55.5899085257854,0 -131.964175227892,55.4982422809801,0 -131.929477941262,55.5915718596293,0 -132.00559059502,55.66184618144071,0 -131.881107426912,55.5982402209747,0 -131.81696127044,55.66907850019471,0 -131.864722435898,55.7249016673099,0 -131.754190046919,55.8074038123661,0 -131.917246144437,55.8579672442893,0 -131.411424423709,56.0051871828046,0 -131.324207044163,55.9646304343716,0 -131.011992434462,56.1060238799091,0 -131.202812661678,55.9735113533014,0 -131.00057503828,55.79852982115491,0 -130.917813018449,55.8113108695306,0 -130.95864420197,55.77659000836881,0 -130.887538437933,55.7049239048227,0 -130.865859720611,55.3082667153901,0 -130.65586893889,55.34549300042141,0 -130.61558486786,55.2957733803602,0 -130.945569927982,55.279656185401,0 -131.067513808675,55.191041008103,0 -131.057806417561,55.12243213845139,0 -130.930300099946,55.0871625863252,0 -130.818097932271,55.1424400006887,0 -130.755593228493,55.09243220066681,0 -130.463362816131,55.32744919212371,0 -130.720280373612,55.0766054154367,0 -130.84113305224,55.1027194775792,0 -131.010309645102,55.0038344595815,0 -130.93806720518,54.9629911841008,0 -130.927769495423,54.8090995257054,0 -130.849153266784,54.7671595142445,0 -130.741094710924,54.81854519831811,0 -130.743025470057,54.9660362133392,0 -130.687783687023,54.7616034528696,0 -130.577500820198,54.8574294814757,0 -130.588607500443,54.79354482071981,0 -130.361386873815,54.9077118520726,0 -130.103073100881,55.22747708596741,0 -129.992235346908,55.2813822850679,0 -130.145588531923,55.54108278046449,0 -130.176414642352,55.75409457662871,0 -130.176414642935,55.7541365380658,0 -130.016778867682,55.90888763330291,0 -130.090297948784,56.1177520762836,0 -130.415891262238,56.12855400436249,0 -130.4636519955,56.2349444356491,0 -130.628905377559,56.2582721135475,0 -130.776152935708,56.365766108773,0 -131.05670022424,56.39770273986309,0 -131.074613949113,56.404973833375,0 -131.559476014298,56.6018977381094,0 -131.825838856788,56.59660996812799,0 -131.863077410462,56.7993988358277,0 -132.104748626929,56.8663312886794,0 -132.029189648689,57.0360613881056,0 -132.338641933596,57.0879948891874,0 -132.228348190178,57.2043854032423,0 -132.363616524798,57.34275120064831,0 -133.138683114325,58.13550523558779,0 -133.171048403061,58.1564024746048,0 -133.36284284141,58.28022951617441,0 -133.431726284404,58.4588465909242,0 -133.828692257681,58.72578943348999,0 -134.247322305508,58.8566295232279,0 -134.334593994792,58.9656607746833,0 -134.463191460983,59.12634237687829,0 -134.568204634564,59.1302303298755,0 -134.689857898817,59.24300575590409,0 -134.953748774754,59.2796634610668,0 -134.977219328446,59.3489913196536,0 -134.990984023358,59.3896633545353,0 -135.093498782177,59.4266123149411,0 -135.022939901321,59.47077179961029,0 -135.016295777664,59.5671728987803,0 -135.475441013568,59.8016131035917,0 -135.724887415548,59.7445303048924,0 -136.345727332791,59.6024571115741,0 -136.235738083604,59.5255080235504,0 -136.465487356768,59.4693774502392,0 -136.464644290639,59.2890793693772,0 -136.48764146439,59.2651414114248,0 -136.585774848831,59.1629442147388,0 -136.810786536833,59.1648781936228,0 -137.467432086905,58.9057221041175,0 -137.59264851127,59.2382530122083,0 -138.617535247197,59.7738592247734,0 -138.691994847808,59.9066259646792,0 -139.190602985604,60.088577403015,0 -139.069786821278,60.3519106988025,0 -139.678416008967,60.340234263451,0 -139.981175300005,60.187447543304,0 -140.452638339038,60.3093672718473,0 -140.523190558165,60.2218651470663,0 -140.997156001225,60.30679108033339,0 -140.997384898733,60.3068292096332,0 -140.9989122007,61.89454136467249,0 -141.002434696908,65.8400896453574,0 -141.004723298928,68.4279151682059,0 -141.005660000708,69.6421178479071,0 -141.005660054685,69.6421941494167,0 -141.308508849567,69.69091524212401,0 -141.223482726229,69.67231295411629,0 -141.262940481944,69.6342572443014,0 -141.390999396873,69.6409265677094,0 -141.733781846539,69.775376516245,0 -142.271869100894,69.84843781902801,0 -142.59550303389,70.0040058794748,0 -143.28334909463,70.1181529041699,0 -143.297226611948,70.0417650546672,0 -143.351374419714,70.1087065079648,0 -143.777962651497,70.0997576111421,0 -144.067797268631,70.078983836275,0 -144.026684208822,70.0461921309344,0 -144.071935092264,69.9842381704767,0 -144.116960880923,70.0642423510304,0 -144.970585790948,69.9686710645029,0 -145.610610756659,70.06477802243209,0 -145.842334173811,70.1703248895754,0 -147.692718680802,70.2088996362636,0 -147.861627347452,70.3097296297568,0 -148.225819398389,70.35888695351581,0 -148.5080501403,70.3111025083206,0 -148.610273870989,70.3983395352289,0 -149.497860633081,70.5224866335161,0 -149.891211839655,70.5147096692296,0 -150.406769425655,70.4091151139595,0 -150.372026620749,70.4857944334787,0 -150.783174336724,70.501895326016,0 -151.200682373447,70.4343755922789,0 -151.175949595517,70.3752007889311,0 -151.223434155667,70.370759102962,0 -151.969284739825,70.4432335360395,0 -151.769616151248,70.49879835066341,0 -151.869017761123,70.51269675957811,0 -151.744024642706,70.5596379842346,0 -152.626007780726,70.552398020968,0 -152.075734774532,70.5801986512998,0 -152.497116638279,70.6435141514856,0 -152.510768227234,70.6935034074429,0 -152.218820221629,70.8107476401635,0 -152.43856610095,70.8696291630003,0 -152.743570744621,70.8815709360742,0 -152.665255121422,70.856852202534,0 -152.704675599734,70.8101726258035,0 -152.813581486565,70.8862998754055,0 -153.225833323108,70.92822411535801,0 -153.918350223885,70.88878057125589,0 -154.197785594756,70.7759936984677,0 -154.808937289101,70.8776399320848,0 -154.657816158098,70.9170891747174,0 -154.605861549042,71.01432209967661,0 -155.003416303882,71.1166302754546,0 -155.020061871138,71.0187557924905,0 -155.095626178,71.0162676012733,0 -155.043154972335,71.1309733291761,0 -155.104806867176,71.1484896874106,0 -155.098416547665,71.0840345419312,0 -155.290653808329,71.0851439877854,0 -155.196179617947,70.98902796042751,0 -155.390649819624,71.0031985705146,0 -155.538682998327,70.9353992810117,0 -155.586701416711,70.83929608756201,0 -155.897862446572,70.827357706288,0 -155.904779715577,70.7667935280225,0 -155.97698363289,70.7554086466204,0 -155.986163211433,70.89818973904271,0 -156.185905347499,70.9179013999896,0 -155.739227458931,70.9995911222166,0 -155.550403076765,71.11735082169091,0 -155.647916214362,71.1854052383941,0 -155.949285999619,71.21930586841791,0 -156.112887679407,71.17151117493481,0 -156.046516394757,71.20930936863719,0 -156.104842049165,71.2412459026805,0 -156.450429420198,71.26319772006229,0 -156.604859516191,71.3495767225857,0 -156.379581349744,71.3723459699897,0 -156.485694400001,71.4062353532712,0 -156.819884507406,71.2998439493377,0 -157.278741542101,71.0484374781428,0 -157.883886562967,70.85589649114201,0 -158.511804547629,70.8484055225624,0 -158.342330031307,70.817020707034,0 -158.684558004233,70.7850606362618,0 -159.080935755644,70.8131144628078,0 -159.002863057983,70.77173338606291,0 -159.28124324675,70.7561613759444,0 -159.22065153977,70.6872671403236,0 -159.448456253376,70.7792138080213,0 -159.151250301507,70.8195062260266,0 -159.372601948199,70.8433812641851,0 -159.165422422068,70.8803293300863,0 -159.671512028802,70.7975342513034,0 -160.121176350152,70.604459835988,0 -159.941735264203,70.63223879878581,0 -159.733354947947,70.4928046445493,0 -159.288948712844,70.5300483049591,0 -159.677474486079,70.4663385653533,0 -159.817552164174,70.49501504962841,0 -159.890038016111,70.3911425060827,0 -159.773067099661,70.19167406783259,0 -159.944720780534,70.36362867405241,0 -160.132216169229,70.3178005323508,0 -159.923659721887,70.48307943154801,0 -160.202017902804,70.47110955595581,0 -159.923124669538,70.53807409893339,0 -159.940900953165,70.59280878985111,0 -160.153715245688,70.6041812181133,0 -160.979187665469,70.32388374303331,0 -160.952509305412,70.289429020032,0 -161.616647732875,70.2549933462936,0 -161.703611199213,70.19247557272701,0 -162.124125734446,70.15497812132131,0 -162.008672104119,70.1924326557067,0 -161.786011341545,70.2214812719788,0 -161.898898001357,70.25581190497731,0 -161.713053075455,70.2702654509241,0 -161.955819123057,70.3030222649161,0 -162.965996220551,69.77771713088769,0 -163.029340432513,69.7279840400027,0 -162.944311598629,69.6921422055064,0 -163.14848731547,69.60186060984169,0 -163.068463274222,69.5674362017848,0 -163.123421742913,69.38409029468591,0 -163.273711383295,69.2932346877846,0 -163.187333330638,69.41823992217771,0 -163.563939763235,69.1443452503092,0 -164.32779116985,68.92987632865641,0 -166.235010188035,68.8742810818968,0 -166.201384380437,68.6959334731385,0 -166.228862705966,68.5717843322166,0 -166.369652054535,68.4384315371569,0 -166.314958875026,68.3987130638853,0 -166.830795430101,68.3500887639276,0 -166.290774089908,68.2914877128256,0 -165.922125938821,68.13009959492131,0 -165.364345329511,68.0384502500519,0 -165.287453127133,68.013679439299,0 -164.709865423311,67.8276306400944,0 -164.022903697848,67.5462514378527,0 -163.825364804985,67.3540229613532,0 -163.724744086595,67.1101264345733,0 -162.570866422574,67.0082179740804,0 -162.379205716413,67.162948038495,0 -162.33171920958,67.1490632816262,0 -162.455020849002,66.98821564805471,0 -162.299201905027,67.0026685070435,0 -162.300338359452,67.0682214691147,0 -162.237252423427,67.00656059689329,0 -161.87059056378,67.0512766368782,0 -161.519779273364,66.9865525982117,0 -161.803101442714,66.89907014715401,0 -161.900587916144,66.7276658508876,0 -161.509423316888,66.533223963712,0 -161.252175794063,66.5482244018648,0 -161.143058547956,66.646845617712,0 -160.841360014732,66.66212477606091,0 -160.544990511938,66.58629215016791,0 -160.243021527644,66.6435210713741,0 -160.324133827121,66.6024107500147,0 -160.212460528904,66.5237978147196,0 -160.233292042291,66.3990837318227,0 -160.825243848046,66.3776636662334,0 -161.188882504675,66.53794068690409,0 -161.575248550639,66.44654976984479,0 -162.078064891665,66.6573740140031,0 -162.017532983974,66.77627520968289,0 -162.326967822522,66.9565549707677,0 -162.483368243038,66.95543859566639,0 -162.634175502752,66.8620956907683,0 -162.50391768729,66.7373704214385,0 -162.226660792759,66.7098777879464,0 -161.908889249811,66.53460415958369,0 -161.875246406787,66.43682356722481,0 -161.964680770585,66.33209767334481,0 -161.912733198035,66.2737622600538,0 -161.859115274984,66.28127055439531,0 -161.912469642065,66.36571466792449,0 -161.724119114883,66.40377371027991,0 -161.12938575545,66.33905389843891,0 -161.004972397821,66.2510107806911,0 -161.067169548589,66.1320953929197,0 -161.178554771955,66.1168195592756,0 -161.110472747436,66.1340632209611,0 -161.089951455798,66.24099946752921,0 -161.533306771184,66.2671017911169,0 -161.784662174653,66.07793027450261,0 -161.725763139689,66.0798847355501,0 -161.841022369825,66.01237625837091,0 -161.819106958783,65.9743202145317,0 -162.154654855389,66.0768103047635,0 -162.667167184634,65.9967980821213,0 -162.760224888464,66.1065266000829,0 -163.659125509688,66.0698442485925,0 -163.833571407683,66.1115000863937,0 -163.924675827194,66.20734351040581,0 -164.190246195612,66.19038718515981,0 -163.857173915847,66.2762405458659,0 -163.896916647977,66.3918002644392,0 -163.75748704699,66.5173713450736,0 -163.940815454602,66.5801455403949,0 -163.627760207836,66.5665362934503,0 -163.936621240652,66.60772658673049,0 -164.356385629336,66.5940265602447,0 -164.399507625099,66.5886547571376,0 -164.720280120565,66.5487323991711,0 -165.036099581348,66.3934497068404,0 -165.163914831425,66.4426128043321,0 -165.769199906905,66.3170488599045,0 -165.879146743545,66.2217682512115,0 -165.503613034373,66.14427269394371,0 -165.809430693031,66.10231965425319,0 -166.269744905172,66.1784253346552,0 -166.717496665643,66.0614562164868,0 -166.796378730793,65.9803519034601,0 -166.967770183703,65.972567007919,0 -166.87553964833,65.9336722397271,0 -167.048880086976,65.8753330638621,0 -167.35638581219,65.8867416084715,0 -167.574432868243,65.79588269710401,0 -167.520558325044,65.729503911859,0 -167.820009598595,65.7172766919645,0 -168.044468397191,65.63393934428029,0 -168.034737884617,65.6883706248357,0 -167.84915959275,65.7606133668335,0 -168.124431940435,65.6736433077164,0 -168.067504530249,65.57949304435201,0 -167.459919804786,65.418078455472,0 -166.629617280485,65.3633803841433,0 -166.054064725808,65.25117483745891,0 -166.376548389171,65.2683811362611,0 -166.487111618295,65.2339383119977,0 -166.467666552838,65.18532305262571,0 -166.545727571163,65.13115063139971,0 -166.687118303051,65.11587233754921,0 -166.926288874932,65.14504322984931,0 -166.858525678542,65.2830956002842,0 -166.961299804006,65.2097568742482,0 -166.921831709077,65.13084459946551,0 -166.7004420196,64.9922584742082,0 -166.389879198323,64.8905961323627,0 -166.492626707689,64.73420457751681,0 -166.239555912154,64.59532018133039,0 -165.031230833568,64.4431039957143,0 -164.76985730063,64.4745127817353,0 -164.922898307521,64.45673254184889,0 -164.930956929916,64.53311916006609,0 -164.892627858084,64.48505397767531,0 -164.667902409601,64.5222905226501,0 -164.72621893355,64.48423363991429,0 -164.360088149756,64.5789666182623,0 -163.566205696598,64.5656390411616,0 -163.178409373869,64.4067532494104,0 -163.039813776722,64.5153662552039,0 -163.390642041058,64.5923137088889,0 -163.157027775966,64.6559144969642,0 -163.053148111811,64.55119385660301,0 -162.829792557313,64.4950871737036,0 -162.872303089195,64.4573044554495,0 -162.780647472204,64.3361938504371,0 -162.634219114342,64.3867663256485,0 -162.578957927831,64.52010491152809,0 -162.116745192736,64.7151129311906,0 -161.890367664551,64.7106765685019,0 -161.717861085005,64.7876176880861,0 -161.803708732124,64.821231576543,0 -161.550378624726,64.7448356215443,0 -161.377588763895,64.7873520304165,0 -161.197322318621,64.93430012455281,0 -160.992851544901,64.9379048745032,0 -161.158167193538,64.92262779752031,0 -160.784237176078,64.7157025586849,0 -160.82005359384,64.61485314137271,0 -161.085041870117,64.54957365399611,0 -161.004773522896,64.5215267284232,0 -161.402863614838,64.53401847446931,0 -161.540884660164,64.3856755455374,0 -161.196146256275,64.4148451063664,0 -161.253122387503,64.3920614493081,0 -160.963908335204,64.23705723654,0 -160.943322605701,64.06705330425601,0 -160.774996013091,63.8542813723546,0 -160.788870091555,63.7401106020972,0 -161.154124810184,63.5117640424884,0 -162.157183462979,63.425080499019,0 -162.016926528706,63.4809181406135,0 -162.314404291311,63.5403637706865,0 -162.275536472848,63.4886843315758,0 -162.618589626534,63.270582943221,0 -162.682750159309,63.22978735772389,0 -163.063844348813,63.0592267591378,0 -163.344118130336,63.0211689103926,0 -163.541358158858,63.10533542529459,0 -163.80551615622,62.98283178376531,0 -163.542732163212,63.1219983002693,0 -163.664405424513,63.1111696615313,0 -163.634103094497,63.1425580550469,0 -163.727736186373,63.2139459812552,0 -164.14721335406,63.2595048353859,0 -164.383022810676,63.2197671295211,0 -164.590232105296,63.1328248381903,0 -164.316630993268,63.0106029483316,0 -164.711072054192,63.0142131598764,0 -164.880213279511,62.8347568861368,0 -164.766624119603,62.7886461303061,0 -164.889943380609,62.7805875451643,0 -164.794929376261,62.6108725134766,0 -164.48158838506,62.74504087577081,0 -164.857394583844,62.56447720976451,0 -164.793520287693,62.5403158955948,0 -164.835721145313,62.4808670435066,0 -164.636049158562,62.51059436681111,0 -164.680204128676,62.4642069664149,0 -164.576015154411,62.4244823987194,0 -164.754354205867,62.371142501804,0 -164.610744322152,62.43087532939461,0 -164.853511922844,62.47058236424961,0 -164.869904389072,62.5344782474273,0 -165.08324973359,62.5289209698671,0 -165.705716462815,62.1128041493008,0 -165.758778373867,61.9919605151816,0 -165.591807823504,61.850299198507,0 -166.100962949819,61.8152870680091,0 -166.00207820638,61.7263975023978,0 -165.764863681812,61.6877873499975,0 -166.139583558096,61.63390258333181,0 -166.164858999094,61.71306605020099,0 -166.200126830561,61.5880649141168,0 -166.130110379656,61.4966733252918,0 -165.893180807874,61.5538942669146,0 -165.795402010725,61.5188993667325,0 -165.77983361165,61.4566828273615,0 -165.923994530034,61.4127872061197,0 -165.870920146754,61.3264012743009,0 -165.611214257849,61.28001818518799,0 -165.64984598049,61.23696549771101,0 -165.601745182151,61.11225119317889,0 -165.375369666424,61.0694763303264,0 -165.343697931293,61.1564124226045,0 -165.40983068472,61.20752779114689,0 -165.224257314548,61.27391186012021,0 -165.289840371332,61.3330759916334,0 -165.162901144922,61.4310980300113,0 -164.718443656801,61.6247573719369,0 -164.847615655754,61.4936433189985,0 -165.15290599402,61.41613685729461,0 -165.157055466112,61.358359866418,0 -165.259291727062,61.3275297756185,0 -165.202894312212,61.3230822474369,0 -165.210097154275,61.26281146318839,0 -165.37232516251,61.2000286586147,0 -165.153453777898,61.1553005565385,0 -165.085096336351,61.2130854087809,0 -165.140944081154,61.2558618009692,0 -165.06483272744,61.2105833219074,0 -165.187326936505,61.1228071785489,0 -165.048439437497,61.05689162083421,0 -164.995647599745,61.1119760267926,0 -164.767896969102,61.1103155125245,0 -165.192871886297,60.9597531730246,0 -165.110565059716,60.9225569496261,0 -165.07424859671,60.9061427127989,0 -164.990022768122,60.9348339588457,0 -164.938343200375,60.9524393274619,0 -164.870976580056,60.94695444386939,0 -164.639288416719,60.92808884666271,0 -164.559818808553,60.85004112677449,0 -163.960091115681,60.8547780661213,0 -163.679543441808,60.9911680892823,0 -163.758186260635,60.9331065650752,0 -163.560091826547,60.8878389749158,0 -163.931220897812,60.8514449018976,0 -163.410944450434,60.7497858290327,0 -163.471461733857,60.7506246110248,0 -163.453697030097,60.67783940319959,0 -163.801752052696,60.5806142387469,0 -163.806764049117,60.7439433073368,0 -163.947331988722,60.7800494837044,0 -164.431486477628,60.5525429587347,0 -164.220647905353,60.6881022253774,0 -164.271799002803,60.78309928468549,0 -164.658173653634,60.8192025899417,0 -164.69983094827,60.8466982886337,0 -164.645391085253,60.90975539016381,0 -164.841492573628,60.8661441668259,0 -164.939272561548,60.9266977060696,0 -164.872313502606,60.8425310236634,0 -165.033714451763,60.784759655869,0 -165.006763232977,60.7003109599568,0 -165.427583525104,60.5544745099766,0 -165.250887228003,60.49642462085681,0 -164.985912947372,60.5433696750612,0 -165.027871168689,60.46531341536729,0 -165.146457812405,60.4447516184619,0 -165.078405077892,60.3908727048524,0 -164.77731726895,60.2905990696946,0 -164.650650277534,60.32699099060361,0 -164.663977793575,60.2592109393254,0 -164.427008523946,60.09059993582769,0 -164.113954784651,60.0017211890513,0 -164.22088721234,59.9450478607126,0 -164.110318707835,59.8347714876634,0 -163.366445849479,59.8189419280352,0 -162.816730979116,59.9347749053035,0 -162.753957281201,60.00200647936831,0 -162.511461550551,59.999505071439,0 -162.451713306386,60.1867259781643,0 -162.702266889887,60.260341661936,0 -162.558680320138,60.2564512687932,0 -162.60754168599,60.32756567715741,0 -162.423123890546,60.37617448125431,0 -162.442290876367,60.4256212540744,0 -162.270359992283,60.6120116986623,0 -162.12671403156,60.6492369503414,0 -162.162027301326,60.734794119445,0 -162.085912055504,60.6578433423369,0 -161.881718318846,60.7014627008903,0 -162.224215651641,60.58090649195119,0 -162.226714982077,60.5056260984554,0 -162.474513570136,60.29701025698749,0 -162.335044056392,60.2086692928946,0 -162.352559135282,60.1400645901276,0 -162.271443303682,60.1661733845831,0 -162.287284487017,60.2381196130613,0 -162.153676990213,60.2447813425049,0 -162.253682896918,60.1970044098747,0 -162.199786446445,60.14367446192579,0 -162.238388964912,60.0597798671927,0 -161.707506703828,59.4958853579321,0 -161.960588954752,59.37921114630569,0 -161.988049768588,59.2430992003208,0 -162.001388499591,59.3064322123546,0 -162.051834723767,59.2715496909202,0 -161.994462599361,59.1433746207894,0 -161.867522698748,59.060323156935,0 -161.855021766726,59.1133762929031,0 -161.568055385322,59.10282725569901,0 -161.857245772622,59.0280973607437,0 -161.790573224394,58.9683720926518,0 -161.772791932609,58.78226412509401,0 -161.657795664346,58.7997592139068,0 -161.893609429912,58.6519811349219,0 -162.17360984368,58.64892445768451,0 -161.766586616578,58.5982743359903,0 -161.75108494486,58.6430943044085,0 -161.712753303332,58.6125383333076,0 -161.765272176137,58.5516995163179,0 -161.349468993896,58.6650323643257,0 -161.382490679071,58.7036527879563,0 -161.333785152503,58.73324809322381,0 + + + + + + + + + -172.282642546092,60.3017596593185,0 -172.211808221282,60.316204875602,0 -172.390441016854,60.3928679156909,0 -172.847101990595,60.4839652430026,0 -172.919346731,60.6028543719093,0 -173.04685088018,60.5370151919399,0 -173.051029558487,60.4933969080509,0 -172.601782006627,60.32397371434931,0 -172.282642546092,60.3017596593185,0 + + + + + + + + + -166.111439828761,60.4094701923102,0 -166.398665903988,60.3400243984304,0 -166.498123499017,60.37807097764811,0 -166.810311289524,60.27945769150159,0 -166.84143544507,60.20390387913589,0 -167.453133884145,60.2066788672344,0 -167.318112198797,60.0708487760817,0 -167.128929292756,59.9963962534805,0 -166.104757036993,59.75724250197069,0 -166.118919817195,59.8105716573949,0 -166.267815168744,59.84307908422521,0 -165.61446894417,59.9014123587901,0 -165.542848138141,59.9786315042928,0 -165.727850407447,60.065580817836,0 -165.675056652553,60.09668666622531,0 -165.732830243117,60.1650296963098,0 -165.683703756673,60.29392106600451,0 -166.066483978932,60.3275313579641,0 -166.111439828761,60.4094701923102,0 + + + + + + + + + -164.178091402927,54.603270997621,0 -163.601959088346,54.6099352379761,0 -163.43838539692,54.6574383835051,0 -163.370852896965,54.7535535436431,0 -163.050602984856,54.6674425084057,0 -163.147018537937,54.7652157933741,0 -163.36197296569,54.7754956428998,0 -163.531996342121,55.045514546807,0 -163.770614294094,55.0552237012459,0 -164.137822791485,54.9649533186511,0 -164.221436864885,54.8866229773527,0 -164.490015256965,54.9155065870599,0 -164.706139301228,54.6674315593203,0 -164.953642102217,54.5863095660578,0 -164.855307710372,54.4243657690961,0 -164.647263067171,54.3899305443965,0 -164.388378042911,54.44186867091009,0 -164.178091402927,54.603270997621,0 + + + + + + + + + -166.645219344046,53.5227419042544,0 -166.665820621025,53.5924680707072,0 -166.592700000167,53.5344165169026,0 -166.540213650459,53.6269111248818,0 -166.279117480897,53.67774993367021,0 -166.333594474453,53.7780194934209,0 -166.373841186087,53.7144229393544,0 -166.417176046642,53.7555359837067,0 -166.485803072549,53.6888628054882,0 -166.572714324989,53.70942188291101,0 -166.490200645502,53.7716311101511,0 -166.539118186291,53.7819062132675,0 -166.216945166038,53.9274617985556,0 -166.266407760674,53.90801483494799,0 -166.266410352278,53.9732868625415,0 -166.370790122255,53.9441198424631,0 -166.375514279585,54.0013433143627,0 -166.45804324334,53.8843995619921,0 -166.601616839153,53.8274713387543,0 -166.639401183119,53.91801033072401,0 -166.592988957257,53.9652332845629,0 -166.752505025875,54.0082995250664,0 -167.16275140807,53.85275148133551,0 -167.031908976724,53.7508013086076,0 -166.708269394922,53.7166312270129,0 -166.827438556642,53.6996858085774,0 -166.803267702595,53.6246880539486,0 -166.902450167445,53.7071921802858,0 -167.031906139022,53.70107786412571,0 -167.06553686635,53.6649653853783,0 -166.99796392085,53.61467889916051,0 -167.161883196575,53.5924583162256,0 -166.964120558706,53.5252292023674,0 -167.184096530186,53.5188386147913,0 -167.162732206163,53.46523104854949,0 -167.304952222225,53.469386166693,0 -167.326071744867,53.40465833799181,0 -167.478546905675,53.4346668217079,0 -167.485228139008,53.3716032751956,0 -167.693324181004,53.3838297493527,0 -167.844705227807,53.3032517050091,0 -167.666947527379,53.2365820132873,0 -167.50075883473,53.2557524931209,0 -167.14356568794,53.4157821216489,0 -166.887459704763,53.4766226296513,0 -166.754708870895,53.4455208405156,0 -166.79105953231,53.5627419533506,0 -166.667708117587,53.48107647241581,0 -166.711318988549,53.5463545080555,0 -166.645219344046,53.5227419042544,0 + + + + + + + + + -166.221353590988,53.7038670268488,0 -166.091950914115,53.83858209335401,0 -166.295237063513,53.7922020429164,0 -166.221353590988,53.7038670268488,0 + + + + + + + + + -167.797253013127,53.4946538567842,0 -168.007523477049,53.5627120027018,0 -168.353939273597,53.4746486015871,0 -168.430644994273,53.3321403605258,0 -168.360903481553,53.2587999987857,0 -168.623432287093,53.2712942239251,0 -168.795959122905,53.1465255981845,0 -168.770404081785,53.0668018455063,0 -168.882379232022,52.9373238815457,0 -169.109577418591,52.8181231444897,0 -168.472312004377,53.0459813460606,0 -168.287531521535,53.23518696940251,0 -167.850843433793,53.37991964170511,0 -167.797253013127,53.4946538567842,0 + + + + + + + + + -174.161329564352,52.4173465495761,0 -174.448532942333,52.3117757493222,0 -174.234619962323,52.2417876137923,0 -174.551313477007,52.17566515917311,0 -174.499368319093,52.1392730972652,0 -174.579630620407,52.0995416658609,0 -174.906888865781,52.1103733142569,0 -175.024350680111,52.0206351056977,0 -175.338269544757,52.0128409429971,0 -174.722148470263,52.00092135872171,0 -174.704053619483,52.0495316507539,0 -174.487641711105,52.0337075891309,0 -174.523535983743,52.0892664372186,0 -174.416045351001,52.03621340759939,0 -174.377077745685,52.0967649619891,0 -174.434361749071,52.1059411985406,0 -174.100971365385,52.1026192836313,0 -174.196532097681,52.2217757888947,0 -174.06545658121,52.22233613257221,0 -173.991825554761,52.32012612452709,0 -174.161329564352,52.4173465495761,0 + + + + + + + + + -176.941084144749,51.58303266917,0 -176.828880061621,51.7127571182365,0 -176.80054534901,51.6027616434207,0 -176.50913716743,51.75194463371049,0 -176.432198194148,51.7288916531697,0 -176.428853207589,51.8350038304907,0 -176.644714643839,51.8558373729491,0 -176.548588214125,51.9086069184368,0 -176.558365467237,51.9822217718073,0 -176.774177292602,51.9438835749084,0 -176.703036371825,51.8513940493333,0 -176.781649967396,51.8233284222627,0 -176.704950850264,51.7819488934334,0 -176.90775033863,51.8049815558199,0 -176.81802202772,51.7685915080144,0 -176.974723222411,51.65635992622221,0 -176.941084144749,51.58303266917,0 + + + + + + + + + -177.910314852892,51.59047529544791,0 -177.799758165034,51.7874482254509,0 -177.621987815149,51.85079803240011,0 -177.836720859072,51.830775770348,0 -177.948676873884,51.9177288521087,0 -178.217598362366,51.8752203024868,0 -177.957791024222,51.7632712434191,0 -178.103365061432,51.66325899768641,0 -177.910314852892,51.59047529544791,0 + + + + + + + + + -171.086945737084,63.43185606043301,0 -170.859425829076,63.4610308912222,0 -170.239896450231,63.2816032134783,0 -169.980209408864,63.1419868776933,0 -169.807940259649,63.1243792330727,0 -169.656273367952,62.9432742913594,0 -169.32793382688,63.1821787502079,0 -168.85259065308,63.1544119515347,0 -168.692896091647,63.3021915417681,0 -169.179314089792,63.2980215630981,0 -170.086003347132,63.484942545381,0 -170.034399159545,63.5357720440057,0 -170.068799574734,63.59466343990179,0 -170.302739504128,63.6932683461877,0 -170.654413587459,63.6768770732034,0 -170.91723822281,63.5704749460102,0 -171.328094629021,63.6329635223434,0 -171.491400520964,63.5957339193976,0 -171.547252137932,63.61379136182811,0 -171.511699513821,63.644074144151,0 -171.405583835479,63.6421242323055,0 -171.637259441321,63.6935021952506,0 -171.681458732656,63.79212811046511,0 -171.739231322516,63.7887922470365,0 -171.743067518046,63.6665666609663,0 -171.853626683584,63.50767023031001,0 -171.733920088359,63.3696018328806,0 -171.451643060199,63.3135104295428,0 -171.086945737084,63.43185606043301,0 + + + + + + + + + -146.098975435796,60.3922217464441,0 -146.582871711614,60.48194370056039,0 -146.72619700343,60.37415032487709,0 -146.488146622944,60.3669390883601,0 -146.679533099071,60.2872162096262,0 -146.604255056572,60.2374977564608,0 -146.098975435796,60.3922217464441,0 + + + + + + + + + -146.939832810504,60.2858229675231,0 -147.100356897737,60.2702597192698,0 -147.01098950104,60.3419328800713,0 -147.195544669344,60.3527127132998,0 -147.194998285425,60.2449363025279,0 -147.698932462331,59.998238098762,0 -147.669518563288,59.9696421838658,0 -147.802841413459,59.9207286473767,0 -147.74309966167,59.8932473711633,0 -147.912320410482,59.7901783714493,0 -147.471865010115,59.8679943519137,0 -147.482391033304,59.9457652379755,0 -147.354015157706,59.974650830779,0 -147.367591626069,60.0260343344061,0 -147.240862729524,60.1285426220118,0 -146.939832810504,60.2858229675231,0 + + + + + + + + + -152.09321930733,58.35956229239359,0 -152.349651908204,58.42067094368999,0 -152.401326751095,58.31511136769269,0 -152.528560208508,58.4128994516293,0 -152.499106717963,58.46206747514319,0 -152.660222888777,58.4765153273738,0 -152.694131998042,58.4217940259965,0 -152.886646268354,58.40679710194,0 -152.765246889149,58.3609633745851,0 -152.762196842929,58.2573461953387,0 -153.01497633051,58.3029033891128,0 -153.108024530252,58.2637421959406,0 -152.906919833977,58.1645579744275,0 -153.183316807584,58.2159594395233,0 -153.233588133808,58.168458272326,0 -152.789154474044,57.9917682947861,0 -152.774714666422,58.0715024038826,0 -152.628558681113,58.0778847599668,0 -152.561621560459,58.2070538088212,0 -152.544962572967,58.08454184222259,0 -152.276595530102,58.1270458940323,0 -152.369647245639,58.1962174010661,0 -152.301313966041,58.18677251900979,0 -152.321883041595,58.24011254350389,0 -152.249365374023,58.2667794628279,0 -152.193822971476,58.1737168446606,0 -152.082424400617,58.1556536633958,0 -151.964615099064,58.2803878924463,0 -151.997120091597,58.34677679987671,0 -152.148252357122,58.23177150573871,0 -152.09321930733,58.35956229239359,0 + + + + + + + + + -133.957575208106,57.2999306224556,0 -133.865044260443,57.3535430899502,0 -133.883659310324,57.4152037032697,0 -133.997003573255,57.4077030325642,0 -133.972832785889,57.4438132059959,0 -134.100063600429,57.463542418998,0 -134.043695992172,57.4749257045984,0 -134.081447329487,57.5010488811349,0 -133.842001299067,57.46020926928861,0 -133.938402776506,57.6207637999747,0 -134.076167554834,57.64493342002491,0 -134.045344599571,57.6832638054914,0 -134.238687661874,57.8585502171943,0 -134.287579179307,57.8268805599159,0 -134.320085300446,57.98799082518951,0 -134.225353387768,57.974655325656,0 -134.321765037636,58.0282670179866,0 -134.263442785345,58.0279929756026,0 -134.311482378999,58.0916001544724,0 -134.157877156027,57.9941038157857,0 -134.233686754406,58.02632246772971,0 -133.961997380694,57.6840954506611,0 -133.792284314077,57.5977071056083,0 -133.877550939366,57.6724301802958,0 -133.89370299145,57.79688143577161,0 -134.179548731905,58.0832706323707,0 -134.170914309207,58.15938399141051,0 -134.687603911476,58.1624308447263,0 -134.805685382384,58.32327545263111,0 -134.958465128962,58.40743493356641,0 -134.947080132696,58.28160068388051,0 -134.881769380662,58.25410422823561,0 -134.914301082702,58.2049317077546,0 -134.790697082353,58.1043764412874,0 -134.730117514791,58.1810463868189,0 -134.805405439918,58.04382140950121,0 -134.662594352631,57.6071637849037,0 -134.575094292963,57.505495352616,0 -134.357859751532,57.5460510439591,0 -134.574269688607,57.489382091108,0 -134.470349504382,57.393274254956,0 -134.306461608469,57.3885481901683,0 -134.342838724527,57.3279942587899,0 -134.55760262103,57.3913290945105,0 -134.45423266739,57.3121574803351,0 -134.583416871363,57.2704935569177,0 -134.513710948128,57.2185443306901,0 -134.635937658008,57.2154927423764,0 -134.580636527385,57.1488262554466,0 -134.614235652727,57.0091002773006,0 -134.361998589183,57.0799386200839,0 -134.083949258277,57.2541004899156,0 -134.176451166759,57.3840975295037,0 -133.957575208106,57.2999306224556,0 + + + + + + + + + -134.517615393878,58.3377167502683,0 -134.684859712071,58.3027160402146,0 -134.609812412179,58.237437904568,0 -134.261496532951,58.194662482636,0 -134.517615393878,58.3377167502683,0 + + + + + + + + + -135.887790019534,57.9876824539146,0 -135.889331207095,57.9882430923176,0 -135.236212858121,57.7796493127647,0 -135.012335588828,57.77660026735799,0 -134.932075089584,57.8066000013056,0 -135.206500034818,57.9418740205317,0 -134.919014995813,57.8393759635417,0 -134.971782736525,57.884930765569,0 -134.907636351669,57.9288225682191,0 -134.943165148215,58.0354884497242,0 -135.4009750495,58.13909549198129,0 -135.649597129609,57.94464407268,0 -135.794325162033,57.98158060065,0 -135.624033073476,58.0093735808823,0 -135.782393411932,58.04575466122969,0 -135.605691580464,58.0435393225676,0 -135.484289639407,58.1552080978682,0 -135.796830557982,58.27714750536251,0 -135.967636201305,58.1596378528532,0 -136.110984291937,58.2188002395108,0 -136.182119004846,58.1774107225691,0 -136.10347341886,58.0568425538623,0 -136.195972322399,58.0804538025948,0 -136.277403970115,58.21851559324281,0 -136.356820128045,58.2123990302342,0 -136.272389453395,58.1043396175859,0 -136.434066033051,58.1073845387818,0 -136.03307863316,57.8429310463068,0 -136.03268191772,57.84267169883249,0 -136.033109150469,57.8428890842789,0 -136.033200700432,57.84292722053191,0 -136.328220829736,57.99072088064611,0 -136.409571703536,57.8334729109361,0 -136.416300816942,57.8204538078362,0 -136.229612994502,57.78378952641571,0 -136.090418506153,57.6823979921437,0 -136.12041269733,57.6168392873428,0 -135.953475811742,57.61602290495031,0 -136.067643439514,57.5954556677553,0 -135.781246849774,57.435464274054,0 -136.012363357593,57.51157079074861,0 -135.841787219458,57.387967670077,0 -135.689838145018,57.36241620095001,0 -135.548754104396,57.45908431950561,0 -135.557639337521,57.53853639185691,0 -135.658474437208,57.55103174644039,0 -135.57235134096,57.58824961560939,0 -135.805428946777,57.6393615053637,0 -135.704866827443,57.67381154319519,0 -135.805980468833,57.76297352330549,0 -134.990080642635,57.4502057541453,0 -134.813441652987,57.4810400866218,0 -134.917057769523,57.7529884536511,0 -135.358714614183,57.7201980945745,0 -135.317878474532,57.7546539201374,0 -135.361765050058,57.7968742744678,0 -135.887790019534,57.9876824539146,0 + + + + + + + + + -153.392819106123,57.1578150625529,0 -153.391170767535,57.20643145913531,0 -152.958362818028,57.2530915629434,0 -153.175313931231,57.2994862801629,0 -153.164205488345,57.3478215097467,0 -152.882211445405,57.34642605123581,0 -152.840561469611,57.2680901886602,0 -152.636131502789,57.31697797220669,0 -152.605271069444,57.3791982816532,0 -152.806662878321,57.4678164159662,0 -153.045573136149,57.43060417565031,0 -152.912502640705,57.4831028238115,0 -152.958891001931,57.5200573093257,0 -152.347467689563,57.4233725014462,0 -152.153561812383,57.60366359353611,0 -152.437464170093,57.60394449275871,0 -152.400805617759,57.68506087717071,0 -152.490505713086,57.6478409937506,0 -152.448292455169,57.72173096290851,0 -152.553037029926,57.69784114934561,0 -152.328554767562,57.8134062911078,0 -152.621331654067,57.927871962996,0 -152.622462543378,57.8556448591787,0 -152.853869887682,57.8348096724795,0 -152.878595074408,57.7261858090174,0 -152.913904236528,57.8287000634449,0 -152.81916240733,57.9162077894716,0 -153.278079373008,58.0045596220204,0 -153.050572070951,57.8306516807021,0 -153.241955697199,57.8956661240209,0 -153.178085376612,57.70342007427299,0 -153.21528625835,57.7875988573807,0 -153.474187509253,57.84176827497921,0 -153.317541094234,57.7250855112453,0 -153.500326749315,57.7670427602638,0 -153.437007068276,57.69926213577829,0 -153.528411518411,57.7156570294804,0 -153.507884215038,57.62536334597479,0 -153.643955782997,57.8892778626483,0 -153.930628240722,57.81039103529171,0 -153.908972766982,57.70705144195041,0 -153.583414253509,57.6117656896339,0 -153.882578113507,57.6423280764322,0 -153.683969758275,57.5439876013445,0 -153.853680824701,57.5667719048222,0 -153.810354333225,57.3998115924684,0 -153.630341204806,57.2686845023703,0 -153.888450770344,57.4042583245669,0 -153.950638769381,57.5412125247074,0 -154.110069105169,57.5378795347469,0 -153.978684337287,57.5634302022874,0 -153.998396328922,57.6345471718585,0 -154.218708248182,57.6676118739352,0 -154.350634759544,57.6445602786002,0 -154.448969719914,57.5790065670673,0 -154.400933151543,57.5637231142094,0 -154.519284391994,57.57789414293061,0 -154.514835023176,57.514284345739,0 -154.550658594089,57.5437295848112,0 -154.730113883423,57.4215049203949,0 -154.707047934222,57.3348240788941,0 -154.809272715575,57.33899206357219,0 -154.755970360023,57.3000986106446,0 -154.803445837976,57.2853800893029,0 -154.609528562857,57.2598123939076,0 -154.529534664763,57.1470105342916,0 -154.532311757881,56.9897688397956,0 -154.32950219126,56.9264276977374,0 -154.30008016783,56.84808676436531,0 -154.238681036045,56.8817013332706,0 -154.294251443901,56.8619803181055,0 -154.297029874472,56.9069791491293,0 -154.163438203307,56.95613855306939,0 -154.103417429726,57.11559563450091,0 -154.268951525716,57.11616265938829,0 -154.386759559577,57.04476898169479,0 -154.465931144176,57.0644946605757,0 -154.468707260557,57.1261689271771,0 -153.967058894421,57.1158684043447,0 -154.111749493078,57.0433557293103,0 -154.098691977589,56.96251930086,0 -153.806771410885,57.1506098413568,0 -153.740073526689,57.1300487421621,0 -153.965662315076,56.9880731527465,0 -153.775662001517,56.9894807020229,0 -154.151738603834,56.745306297826,0 -153.982008831554,56.7378049963996,0 -153.696434400411,56.8658703808307,0 -153.776740001015,56.8894815558602,0 -153.683134178599,56.96836624630329,0 -153.611709562203,56.93336978070661,0 -153.555612176043,56.9775359323464,0 -153.673398711418,57.0089331435034,0 -153.600323689505,57.0472645321852,0 -153.758996313479,57.0453212757416,0 -153.502258936786,57.06309389275109,0 -153.547005002935,57.1706020458441,0 -153.463926171818,57.1105958833284,0 -153.392819106123,57.1578150625529,0 + + + + + + + + + -134.655390098823,56.16266193516189,0 -134.618144450901,56.72075296783309,0 -134.836198024378,57.2477098984344,0 -134.985066734427,57.2943739834285,0 -134.94786612865,57.3204912317811,0 -135.00090756226,57.3424242205839,0 -134.9076129914,57.3293810392095,0 -135.003993227617,57.39937824634809,0 -135.202063988419,57.4243667978265,0 -135.167614227587,57.4782546176544,0 -135.399577332086,57.43853182026469,0 -135.282362988664,57.50353572125369,0 -135.314560394456,57.5324206439867,0 -135.515980155977,57.50686692896049,0 -135.526763730078,57.4355063346253,0 -135.608993614038,57.3915869239882,0 -135.471227782637,57.35048074915841,0 -135.674301743083,57.3460283249175,0 -135.533996348433,57.2293590299236,0 -135.339528178816,57.24797514037449,0 -135.407892185235,57.149359849847,0 -135.265949930375,57.1635212027263,0 -135.368705279018,57.13768568696531,0 -135.366754331069,57.0799148721586,0 -135.166222094001,57.03435932771279,0 -135.353146706062,56.9657378769552,0 -135.290095163457,56.8915651144635,0 -135.37063531312,56.8326799981141,0 -135.267052599399,56.7829503719904,0 -135.121759003476,56.8271083988409,0 -135.190087704398,56.6746065599045,0 -134.993985703814,56.7559900047218,0 -135.124259832988,56.6643189364556,0 -135.117028453893,56.5982112952072,0 -134.982325180215,56.7165374337488,0 -134.938986731009,56.70959462499059,0 -134.967306048374,56.6243134079946,0 -134.849536248518,56.6851559009392,0 -135.04843148949,56.5279410141079,0 -134.655390098823,56.16266193516189,0 + + + + + + + + + -135.702071692228,57.31658350148879,0 -135.848737784871,57.3162950258433,0 -135.819830984012,57.1724005616461,0 -135.710673710214,57.16101811328251,0 -135.825941290601,57.08296744204201,0 -135.839567402382,56.98768513709851,0 -135.630940067482,57.0040823307003,0 -135.547885999691,57.1290749917056,0 -135.626468170496,57.2313048151095,0 -135.557617899884,57.2288021287352,0 -135.702071692228,57.31658350148879,0 + + + + + + + + + -133.053390351289,56.97714702524889,0 -133.295335943079,57.0035431619298,0 -133.263967207313,56.921597824843,0 -133.327012360802,56.99660004634231,0 -133.874777973322,57.0857684838486,0 -134.019794733821,57.0143800263991,0 -133.737848765029,56.8927133973155,0 -133.892286836687,56.89660507320559,0 -133.758142051845,56.8032670452989,0 -133.674524574542,56.8588218466323,0 -133.708694348619,56.6774253399436,0 -133.636774891098,56.5935236773375,0 -133.691770840668,56.5688039494711,0 -133.64678569721,56.5632491498276,0 -133.649284380709,56.44324265313329,0 -133.577317500634,56.4332418446354,0 -133.420628593758,56.4543573216183,0 -133.430916371492,56.5015848315803,0 -133.165638033928,56.4532574359425,0 -133.083664796878,56.5235347698413,0 -133.16869155086,56.6018765654634,0 -133.099228250559,56.6154861711796,0 -133.240900578007,56.6313190633306,0 -133.213402182837,56.7085454496965,0 -133.307307907679,56.7310369094801,0 -133.353662566436,56.8382616228604,0 -133.023660190709,56.60158768688681,0 -132.933113453353,56.62963672016491,0 -132.991442138356,56.8068656402117,0 -132.929514313144,56.85993278567031,0 -133.053390351289,56.97714702524889,0 + + + + + + + + + -133.965053500888,56.0812846387448,0 -133.949532594346,56.1993380950511,0 -133.889538107293,56.2229461297938,0 -133.985913933344,56.2685074429714,0 -133.975081289917,56.3557286565983,0 -133.855639708513,56.2787890098363,0 -133.911217854205,56.4249043104871,0 -133.827331752229,56.4354582647604,0 -133.919269867011,56.5007461483316,0 -133.84536471409,56.5715815218498,0 -133.922319509601,56.61380613150769,0 -133.740357493661,56.5601902175525,0 -133.693143667676,56.5993612801202,0 -133.777599003147,56.68408751817189,0 -133.71950858496,56.76632429300031,0 -133.870588709108,56.80798733009279,0 -133.863944657176,56.7232586211923,0 -134.026461131389,56.6468690221748,0 -133.924249122697,56.7146518323975,0 -133.927565910471,56.8015933528073,0 -133.995314810369,56.8740975598163,0 -134.265369544411,56.9365981258875,0 -134.108653970181,56.8427125267546,0 -134.323113030551,56.89354402635881,0 -134.275073004361,56.7952062642112,0 -134.401488715667,56.8524345106823,0 -134.39507837938,56.721027401109,0 -134.319237656557,56.6571429239125,0 -134.21922545052,56.68936574637091,0 -134.25313312881,56.61241667872861,0 -134.087853561236,56.6415889087553,0 -134.308129021304,56.55991421694611,0 -134.136176047703,56.4865748914152,0 -134.070057576607,56.5549111134315,0 -134.030355630414,56.4779613707181,0 -134.051178620872,56.3590608770302,0 -134.109756002829,56.404893993373,0 -134.162003776525,56.3668357027912,0 -134.181166136765,56.4362848660458,0 -134.282583452658,56.35572867521411,0 -134.282858184556,56.29100338056829,0 -134.161737695775,56.3071164027922,0 -134.266469746057,56.2557221446709,0 -134.19396891759,56.1554373413353,0 -134.222558799251,56.0662779394883,0 -134.10838665314,55.99877467092719,0 -134.098392346662,56.13405286884341,0 -134.187285962481,56.1762738974224,0 -134.100896606441,56.1743295187135,0 -134.054234375292,56.3121155888509,0 -134.037872866435,56.1051697427204,0 -133.965053500888,56.0812846387448,0 + + + + + + + + + -132.803653271279,56.7860406631428,0 -132.965623026439,56.7960384089399,0 -132.883371065593,56.63658603825431,0 -132.958107536577,56.5938039676218,0 -132.941722525003,56.5093749050577,0 -132.77478501171,56.4943701849766,0 -132.720307664077,56.51104060003691,0 -132.751711841031,56.5524291958232,0 -132.532549684115,56.5774334872854,0 -132.803653271279,56.7860406631428,0 + + + + + + + + + -132.337804742749,56.4796479168462,0 -132.351410271693,56.2779733052681,0 -132.303891788458,56.23185224300391,0 -132.057810279652,56.1110312765749,0 -131.923350207348,56.1968613620864,0 -132.005320495176,56.3363150729862,0 -132.162510728277,56.35271056708941,0 -132.337804742749,56.4796479168462,0 + + + + + + + + + -132.704770567567,56.4557558769931,0 -132.94199544313,56.4474232469974,0 -133.058116273752,56.34186597005931,0 -132.846704640205,56.2313025143395,0 -132.678911140644,56.265194266468,0 -132.615862536329,56.3960369708995,0 -132.704770567567,56.4557558769931,0 + + + + + + + + + -132.473629816734,55.4956310263753,0 -132.679719350735,55.45241862597041,0 -132.511407662042,55.54434856852371,0 -132.564164976718,55.56740551658349,0 -132.54167897639,55.62267443054111,0 -132.170838611909,55.4462957108967,0 -132.145846340898,55.48018516651531,0 -132.292514962732,55.5362972126054,0 -132.381658844606,55.6690745363953,0 -132.43750143704,55.62295141204839,0 -132.494455201912,55.8137888383967,0 -132.727249633493,55.9896261855393,0 -133.07977593669,56.0521307665152,0 -133.139777228451,56.1165798525176,0 -133.02560945371,56.17630236381051,0 -133.062263586948,56.2415816619357,0 -133.19004887376,56.3299235454034,0 -133.315357554346,56.268800793561,0 -133.325614659178,56.3260292056157,0 -133.61228727968,56.347965527419,0 -133.567024527926,56.2965818491482,0 -133.634501861361,56.2762929803267,0 -133.618961621055,56.2071307850696,0 -133.260081564169,56.1521335393027,0 -133.243074688433,55.9040773845479,0 -133.138127044496,55.8860245400076,0 -133.23754189305,55.7465804895886,0 -133.37615160236,55.7226835545753,0 -133.354775293627,55.6096422847126,0 -133.255343820772,55.5732672002313,0 -132.910012881953,55.62767934202989,0 -133.070291462572,55.57381871290261,0 -133.129162418082,55.48909814092829,0 -132.978863011846,55.4471413353351,0 -133.066673173097,55.42687676268089,0 -132.996925024154,55.37548237298839,0 -132.849146903782,55.3513096666384,0 -133.195557926044,55.3843846854707,0 -133.262237187007,55.338542897477,0 -133.224168561559,55.28270625695009,0 -132.902215409303,55.27936613145881,0 -133.00445539989,55.2027070068706,0 -132.805813469614,55.2676990584202,0 -132.780003734642,55.18214560133369,0 -132.668314485378,55.1376954523282,0 -132.6108193845,55.16770051950649,0 -132.643042098791,55.2499234651439,0 -132.561385789951,55.1651892675163,0 -132.616375834907,55.06102783419279,0 -132.558333985001,55.121579846662,0 -132.460284625051,55.0432598989252,0 -132.574447864736,55.03686586037011,0 -132.533892510768,55.0157557734575,0 -132.599167402473,54.9682495266191,0 -132.532244803687,54.9324231053301,0 -132.454455006163,54.9849207048602,0 -132.468890169137,54.9021439129136,0 -132.380539086856,55.0160426535456,0 -132.38972563036,54.9238205404531,0 -132.267215000166,54.8390908310718,0 -132.354993457072,54.7990961593044,0 -132.216372992666,54.7935437432705,0 -132.290567059779,54.7143740502258,0 -132.005588168986,54.6902065830742,0 -132.00808092862,54.77937406180979,0 -131.951107308284,54.7879884436014,0 -132.053591791598,54.88964696896679,0 -131.973584427767,54.8946508448921,0 -132.012494945198,54.9677027506031,0 -131.964713272955,55.0254793599214,0 -132.220242594699,54.9921503362437,0 -132.074439530657,55.0388147632961,0 -132.09666166884,55.1032539199795,0 -131.998898502072,55.1004760308858,0 -131.970272255287,55.2260267816124,0 -132.012233665231,55.27241195988161,0 -132.089163684845,55.2007477996744,0 -132.240833958891,55.1926907080504,0 -132.24111473813,55.254356826834,0 -132.086939465791,55.262141472882,0 -132.155026728468,55.36296879775981,0 -132.254761054598,55.4099105863851,0 -132.470277519184,55.38435982041161,0 -132.261689745631,55.44212929019011,0 -132.473629816734,55.4956310263753,0 + + + + + + + + + -132.391971869653,56.335755916154,0 -132.517527648792,56.33824914076529,0 -132.605023777277,56.2310204946758,0 -132.696154225093,56.22185739992919,0 -132.697527893107,56.1074122964528,0 -132.636704224386,56.0488018182385,0 -132.381659614072,56.0260228574646,0 -132.427256528788,55.9557383376468,0 -132.340003253304,55.91351910572829,0 -132.181674158052,55.9657578776832,0 -132.129461406089,55.9279855386802,0 -132.20165657928,56.0851990051386,0 -132.108892738952,56.1154780279142,0 -132.351103317239,56.2163019256758,0 -132.480018741747,56.1896282759591,0 -132.396698920251,56.2215729603744,0 -132.391971869653,56.335755916154,0 + + + + + + + + + -133.287273107465,56.1285193821479,0 -133.619502154891,56.1304525817666,0 -133.48671406159,56.0857359491733,0 -133.681447788994,56.0660107829683,0 -133.791729083627,55.9207261405941,0 -133.620043513236,55.919061854864,0 -133.478932635933,56.0223882122985,0 -133.319218200846,55.9935160016486,0 -133.287273107465,56.1285193821479,0 + + + + + + + + + -131.606390952927,55.3196460287417,0 -131.523626715678,55.2927065288402,0 -131.468332286741,55.3554813742488,0 -131.52170762436,55.4760277540251,0 -131.445019503467,55.528250482074,0 -131.463631605047,55.3277029912542,0 -131.334456177303,55.4196456731968,0 -131.350571344767,55.64464241181071,0 -131.271713839534,55.4371488045966,0 -131.460852754343,55.2810343109492,0 -131.294748784321,55.2735377996958,0 -131.2275245322,55.40575586235,0 -131.217511188806,55.3052092167966,0 -131.30835800415,55.23465101592841,0 -131.144480086509,55.1966008747307,0 -131.049755471481,55.2671577795751,0 -131.028368522801,55.40548407558649,0 -130.968096037624,55.39104255594939,0 -130.936975175112,55.6418758266987,0 -131.233359128882,55.9535154492386,0 -131.573925118381,55.9060133913691,0 -131.436689960392,55.8399076996699,0 -131.685586778521,55.8329621887154,0 -131.482526533927,55.7868537297797,0 -131.711127678552,55.731844891488,0 -131.514751885925,55.72601811835991,0 -131.693639807928,55.67629611216431,0 -131.705845849057,55.61935110632449,0 -131.616399342546,55.5971281281129,0 -131.645025074528,55.544914787606,0 -131.825290358462,55.4549105391298,0 -131.606390952927,55.3196460287417,0 + + + + + + + + + -131.821140484584,55.4124099903551,0 -131.866945741921,55.3679685469814,0 -131.824461228231,55.2113141461293,0 -131.726683471567,55.1343743438445,0 -131.761688966383,55.247423370327,0 -131.61832179154,55.28326142836379,0 -131.821140484584,55.4124099903551,0 + + + + + + + + + -131.468907428577,55.2354796515061,0 -131.585300708148,55.2515918113963,0 -131.518646304163,55.1282585208495,0 -131.594176648462,55.1063159605734,0 -131.59972753219,54.9949305405507,0 -131.521695860182,55.0327112599271,0 -131.537505218119,55.0907610434156,0 -131.476956765629,55.0004939338339,0 -131.356659978778,55.0352158428158,0 -131.375005668955,55.1965953318301,0 -131.468907428577,55.2354796515061,0 + + + + + + + + + -133.103853177495,55.24520299191451,0 -133.215824492689,55.1696372711329,0 -133.118282231733,55.1015854493073,0 -133.215270801953,55.09463634472111,0 -133.150270403124,54.94379737397,0 -132.90693534583,54.83630882934499,0 -132.955276675812,54.7918753410748,0 -132.841932044642,54.6890880966602,0 -132.670272461523,54.6638099069197,0 -132.758897152011,54.7393706689813,0 -132.716661409724,54.7646540373054,0 -132.756667768137,54.8218741407807,0 -133.081358213392,55.0854740462953,0 -132.957493060247,55.061865465254,0 -133.103853177495,55.24520299191451,0 + + + + + + + + + Arizona + empty + + +states.AREA: + 113712.679 + + +states.STATE_NAME: +Arizona + + +states.STATE_FIPS: +04 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +AZ + + +states.POP2000: + 5130632 + + +states.POP2001: + 5312024 + + +states.POP00_SQMI: + 45 + + +states.DEN_0_100: + 96 + + +USStates.ID: + 48 + + +USStates.State_Name: +Arizona + + +USStates.Date_Entered: +Feb. 14 1912 + + +USStates.Year_Entered: +1912 + + +USStates.Year_Settled: +1776 + +]]> + #Style_5 + + + -111.664591949232,34.2916834221835,0 + + + + + + -114.520627661734,33.0277074359678,0 -114.46838719789,32.9777894659032,0 -114.476443984447,32.9359088466692,0 -114.461436322021,32.8454225112401,0 -114.52621949202,32.8099123509472,0 -114.535077445153,32.7880470474354,0 -114.530095237266,32.7714115230303,0 -114.543187695964,32.7712322843312,0 -114.543004547133,32.7607497409074,0 -114.561582708233,32.7607536245719,0 -114.560751027253,32.7489359768297,0 -114.572210733513,32.7488292120028,0 -114.571958909536,32.7374388920444,0 -114.603522692176,32.7358864782619,0 -114.603942285241,32.7262851953269,0 -114.694040667724,32.7414255804573,0 -114.712695098447,32.7350133484495,0 -114.722048985451,32.7208574919907,0 -114.809393825306,32.6160446571158,0 -114.821761241294,32.4871692613767,0 -113.329111283827,32.0436210627154,0 -111.369520893713,31.4315316679729,0 -111.071964747137,31.335634013396,0 -110.45257840211,31.3376602308857,0 -109.045615049533,31.3434530504803,0 -109.049495308693,32.4420444958635,0 -109.051346155985,32.7795505537932,0 -109.050525833602,33.205164822801,0 -109.050349253456,33.7833019238717,0 -109.048652751175,34.5917805775226,0 -109.046640810431,34.9546462439613,0 -109.047846506598,35.9966639816639,0 -109.048480115363,36.9966409005893,0 -109.997076712711,36.9920675592929,0 -110.452235819472,36.9917463039985,0 -110.484088956249,37.0039260237973,0 -110.740062961138,37.002488042411,0 -111.356163994142,37.0017097524257,0 -112.2372578615,36.9954921751891,0 -112.542521578828,36.9979944864436,0 -112.899983474169,36.9962268765574,0 -114.043939384154,36.9965379371421,0 -114.043716435713,36.8418489458646,0 -114.037392074194,36.2160228969701,0 -114.045105557286,36.1939778840226,0 -114.107775185788,36.1210907070504,0 -114.12902308363,36.041730493896,0 -114.206768869568,36.0172554164833,0 -114.233472615347,36.0183310595898,0 -114.307587598189,36.0622330993642,0 -114.303857056018,36.0871084040611,0 -114.316095374696,36.1114380366653,0 -114.344233941709,36.1374802520567,0 -114.380803116644,36.1509912717764,0 -114.443945697733,36.1210532841896,0 -114.466613475422,36.1247112590538,0 -114.530573568745,36.1550902046726,0 -114.598935242024,36.1383354528833,0 -114.621610747198,36.1419666834504,0 -114.712761724737,36.1051810523675,0 -114.728150311069,36.0859627711603,0 -114.728966012834,36.0587530361082,0 -114.717673567756,36.0367580437019,0 -114.736212493583,35.9876483502758,0 -114.699275906446,35.9116119537411,0 -114.661600122152,35.8804735854241,0 -114.662462095522,35.870959907009,0 -114.689867343369,35.8474424944765,0 -114.682739704595,35.7647034175617,0 -114.688820027649,35.7325957399896,0 -114.665091345861,35.6930994107106,0 -114.668486064922,35.6563989882403,0 -114.654065925137,35.6465840800051,0 -114.6398667219,35.6113485698329,0 -114.653134321223,35.5848331056106,0 -114.649792053474,35.5466373866596,0 -114.672215155693,35.5157541647721,0 -114.645396168451,35.4507608261464,0 -114.589584275424,35.3583787306827,0 -114.587889840369,35.30476812919,0 -114.559583045727,35.2201828714608,0 -114.561039964055,35.1743461616312,0 -114.572255261053,35.1400677445931,0 -114.582616239058,35.1325604694084,0 -114.626440825485,35.1339067529871,0 -114.6359090842,35.1186557767895,0 -114.595631971944,35.0760579746697,0 -114.633779872695,35.0418633504303,0 -114.621068606189,34.9989144286133,0 -114.632276529502,34.9976517256292,0 -114.621007388662,34.9436098418844,0 -114.630475658748,34.9195012881626,0 -114.627263440015,34.8755338147028,0 -114.570216833129,34.8318604389449,0 -114.542040692552,34.7599586200401,0 -114.525553173554,34.7489115709666,0 -114.497804378448,34.744757644472,0 -114.465637688895,34.7098730189755,0 -114.422270356442,34.6108950917792,0 -114.434302240724,34.5989628909914,0 -114.409742349408,34.5837235617841,0 -114.376827822772,34.5365634767276,0 -114.38386203177,34.4770856153635,0 -114.376506947621,34.4596793685379,0 -114.332636412337,34.4548730796034,0 -114.302865366738,34.4357541377741,0 -114.283394304634,34.4120690064366,0 -114.257842521563,34.4054888215522,0 -114.182079822361,34.3652063649643,0 -114.153414997679,34.3364477645527,0 -114.134127057818,34.3145478754142,0 -114.125230507624,34.2726209662778,0 -114.149912368725,34.2669789901846,0 -114.235775821971,34.1862227475521,0 -114.285368523229,34.1712309584447,0 -114.322799430739,34.1412972664816,0 -114.410166357368,34.1026543641334,0 -114.424029195647,34.0783320579769,0 -114.428980324296,34.0298439872115,0 -114.518208552815,33.9650630904256,0 -114.525632127364,33.9524137553973,0 -114.49818809185,33.925036256846,0 -114.520962184241,33.8629263802443,0 -114.511722548733,33.84196501578,0 -114.521122162519,33.8260312846707,0 -114.504557871757,33.7717148133963,0 -114.510287510185,33.7432004976418,0 -114.49567644704,33.708369427689,0 -114.53643355935,33.6827352282095,0 -114.525263594507,33.6655047006994,0 -114.527170510583,33.6221365140121,0 -114.54024720611,33.5805077718081,0 -114.52942054662,33.5600729749772,0 -114.58706170624,33.5094455578288,0 -114.598086338819,33.4861269505736,0 -114.621089578986,33.4685989080523,0 -114.630573116436,33.4394249456214,0 -114.645092242143,33.4191160810556,0 -114.724936284952,33.4110596377436,0 -114.703603782165,33.3524180309387,0 -114.735426988668,33.3057084351637,0 -114.677693392037,33.2680165177413,0 -114.687711074888,33.2392582971895,0 -114.680050859029,33.2245949425206,0 -114.678120399612,33.1672499413879,0 -114.709463019649,33.122374935038,0 -114.711355133911,33.0953827798915,0 -114.663951695926,33.0389226888334,0 -114.645159759737,33.0444118730784,0 -114.633966945552,33.0335669165654,0 -114.609925720105,33.0270019226895,0 -114.559089057602,33.036782479158,0 -114.520627661734,33.0277074359678,0 + + + + + + + + Arkansas + empty + + +states.AREA: + 52913.232 + + +states.STATE_NAME: +Arkansas + + +states.STATE_FIPS: +05 + + +states.SUB_REGION: +W S Cen + + +states.STATE_ABBR: +AR + + +states.POP2000: + 2673400 + + +states.POP2001: + 2706444 + + +states.POP00_SQMI: + 51 + + +states.DEN_0_100: + 96 + + +USStates.ID: + 25 + + +USStates.State_Name: +Arkansas + + +USStates.Date_Entered: +June 15 1836 + + +USStates.Year_Entered: +1836 + + +USStates.Year_Settled: +1686 + +]]> + #Style_5 + + + -92.43380149123649,34.8979530772317,0 + + + + + + -94.4616914490383,34.1967651932869,0 -94.46858488730931,33.9393114556774,0 -94.4766912623089,33.6320818342933,0 -94.43611697644781,33.6365609097961,0 -94.43653636903311,33.6169611431123,0 -94.45175731380159,33.6044640316868,0 -94.4435324861232,33.5966212153736,0 -94.4286699913841,33.5972585244972,0 -94.4067726989127,33.573604181729,0 -94.39361925175989,33.5750768821217,0 -94.3793139265706,33.5934447272787,0 -94.3708297502542,33.5901604561683,0 -94.3725080674424,33.572780843886,0 -94.39546544841208,33.5604209193152,0 -94.37095896843239,33.5478024921997,0 -94.3289505742182,33.5732546607845,0 -94.3025824334982,33.5570543333588,0 -94.29901964868971,33.5799728047754,0 -94.2791827367037,33.5894525566594,0 -94.2722778801038,33.5847263352945,0 -94.2747420062796,33.5618574981634,0 -94.23743339566499,33.5925430254688,0 -94.22323450525521,33.5858408096426,0 -94.2355638087854,33.5616558979989,0 -94.21108015408862,33.5581084763103,0 -94.2055412868951,33.5852000838157,0 -94.15970992753351,33.5938939861439,0 -94.15536074810458,33.5672068241928,0 -94.0988935992895,33.5731199456262,0 -94.0868464522719,33.5840756635432,0 -94.06162268858441,33.5773354007315,0 -94.03611649002102,33.5560347014808,0 -94.0366915600887,33.2704528989066,0 -94.03893174127671,33.0234224077489,0 -93.80993110790152,33.0227288720053,0 -93.51191556362819,33.0212876651865,0 -93.47907035507552,33.0215281738969,0 -93.23254316119119,33.0193748877236,0 -92.9789895151482,33.018274750609,0 -92.7172364845049,33.0168395771589,0 -92.0634416757442,33.0101515495777,0 -91.45447032530612,33.0139992001305,0 -91.42764466910239,33.0135450807442,0 -91.25472755144671,33.0136011241739,0 -91.1622413295772,33.0131626211682,0 -91.16078409477549,33.0218332391698,0 -91.1567938514993,33.040555368368,0 -91.1240933135817,33.0473950555076,0 -91.1178981011678,33.0656937749518,0 -91.1468983565878,33.0907747749873,0 -91.19064668515279,33.1133457020205,0 -91.19561365046539,33.1405858277008,0 -91.1777374599034,33.1504085143774,0 -91.12143839042092,33.1311906845818,0 -91.09596309376539,33.1452056628518,0 -91.08642608991831,33.1617229779066,0 -91.09211028743471,33.2258161142148,0 -91.05464881790898,33.2459002185311,0 -91.0405340548071,33.2820400168761,0 -91.0539393519749,33.2936936328911,0 -91.07643152692042,33.2924766671242,0 -91.10301308177489,33.249329353099,0 -91.1226136683412,33.2686236274109,0 -91.1418557768241,33.3225012621225,0 -91.13053349445238,33.3595184071126,0 -91.107049532132,33.3935220665091,0 -91.0787969781513,33.4102951070005,0 -91.0616226774054,33.4319126666717,0 -91.0610886583117,33.4601256250454,0 -91.07386834518309,33.4663205040007,0 -91.08590793517429,33.4629711994008,0 -91.09923682479071,33.4150136902789,0 -91.13774359783101,33.3889939554845,0 -91.1850932093454,33.3919462343914,0 -91.2042742333541,33.414414252442,0 -91.19894113644132,33.4222266229444,0 -91.13062529226629,33.4432379167019,0 -91.11982172873771,33.4529461878788,0 -91.11906643910299,33.4697877493532,0 -91.12890876375178,33.4933048406628,0 -91.16508870848941,33.511893278083,0 -91.17429002799679,33.5044814214406,0 -91.1718407642763,33.4667586515282,0 -91.1818813238998,33.4475023901927,0 -91.23296184460889,33.4435578002255,0 -91.2272625589118,33.4595677906787,0 -91.20775358321031,33.4735103338542,0 -91.18051588058511,33.5121258753279,0 -91.1829574461633,33.5234628974492,0 -91.20421377208162,33.5386182116453,0 -91.21359825583821,33.539388695493,0 -91.2277437480702,33.5564627810534,0 -91.2268436629257,33.5905920919159,0 -91.18791706051998,33.5747923198036,0 -91.16813338054911,33.5773559141775,0 -91.15076092012042,33.6162728236941,0 -91.1545148512779,33.6371425699443,0 -91.20542010320271,33.670054473021,0 -91.21525485495199,33.690832533146,0 -91.2117911105934,33.7090740491267,0 -91.16341157255451,33.7184243604201,0 -91.1211582957132,33.6776390014341,0 -91.08387971624239,33.6626975706472,0 -91.03794174479148,33.6833276928149,0 -91.0389337685444,33.7056013490966,0 -91.0563218415079,33.7194673047115,0 -91.1046784705554,33.7083431494327,0 -91.129055226842,33.7125503367781,0 -91.1381116937944,33.7233341453239,0 -91.1430026284613,33.7719285490089,0 -91.1370973386382,33.7801949325541,0 -91.10552584181519,33.7765486562049,0 -91.06650027762299,33.7866351498749,0 -91.04351203531321,33.7696642449716,0 -91.01854016459431,33.7640838422967,0 -90.99548340691879,33.7716600260669,0 -90.9841458001964,33.7854500107548,0 -90.99047854078901,33.7990071442826,0 -91.0289626430975,33.8166950131436,0 -91.0549265134198,33.8436334807269,0 -91.06148054411389,33.8671886882777,0 -91.01857194440652,33.9364134475297,0 -91.075817398803,33.9747494464877,0 -91.08896340340431,33.9945738225001,0 -91.0698054890087,34.0062011888095,0 -91.03116883753491,33.9858050201095,0 -91.0096532951119,33.9906347187545,0 -91.0003678622968,33.9684795241317,0 -90.9869243510316,33.9609229307681,0 -90.96489758467079,33.9675683195034,0 -90.9612354430936,33.9789817484763,0 -90.9753809466784,33.9947130844006,0 -90.9734737113361,34.0111046201452,0 -90.95057738634012,34.0313950359426,0 -90.88645032093149,34.040818090639,0 -90.86643858092512,34.1010591014266,0 -90.90641792332421,34.1028552934255,0 -90.9423538254879,34.1260478667544,0 -90.9534553235284,34.1559087583442,0 -90.92902561447708,34.1857547898992,0 -90.84671660873281,34.1476512964452,0 -90.82897009057919,34.1487653755381,0 -90.80761499232,34.1662785963789,0 -90.8230272013098,34.1906501116551,0 -90.9215946009177,34.2049348828191,0 -90.93381765059741,34.2347805101336,0 -90.9285457793972,34.2502985218322,0 -90.86351805053698,34.2192670758548,0 -90.8314661258313,34.2296393889001,0 -90.82394433723711,34.277444457808,0 -90.80652652929172,34.2994512329978,0 -90.7926330280344,34.3000616903072,0 -90.75836020093259,34.2790815153021,0 -90.74786301501229,34.3178229839966,0 -90.7619638892818,34.364018026031,0 -90.75541794936311,34.3722691135712,0 -90.6875906711157,34.3779766258423,0 -90.6812424323426,34.3635040042302,0 -90.68948128142971,34.3202498232312,0 -90.6794406527353,34.3180794258637,0 -90.65791781402791,34.3301110369,0 -90.6573464859749,34.3660143325751,0 -90.60389412048508,34.4047029797656,0 -90.57922804447659,34.4331032095237,0 -90.57450570771368,34.4540494001334,0 -90.59015506208731,34.4966090201687,0 -90.5804501933474,34.5203246797393,0 -90.5657859528414,34.5326117672652,0 -90.53725095298539,34.5434303779675,0 -90.5307199720464,34.5557516818131,0 -90.5777188709607,34.6048453840045,0 -90.58809525009498,34.6279161438152,0 -90.57940507832259,34.6457114581828,0 -90.56116263432628,34.7003866360947,0 -90.53916630258439,34.6860476391663,0 -90.54765041882089,34.6519066940829,0 -90.5390670140484,34.6369954120314,0 -90.5089145701068,34.6381667803775,0 -90.4663261216033,34.6721400223716,0 -90.4700800044602,34.7043544473312,0 -90.5136680230595,34.702168426854,0 -90.53338308133611,34.7133527478315,0 -90.5478489155079,34.7904345448067,0 -90.5273632829947,34.8074211116658,0 -90.51614770215419,34.8057007952067,0 -90.5013843558158,34.7899313101001,0 -90.49883609775949,34.7658840525447,0 -90.5170709695817,34.7484702598375,0 -90.5045201438459,34.7299541802284,0 -90.48602595176961,34.7269330960027,0 -90.45153258063928,34.7412990973377,0 -90.4489690543041,34.7608489921917,0 -90.46680699538459,34.7997617150697,0 -90.45200553728539,34.8253158387959,0 -90.4748179857494,34.8578237977629,0 -90.47062930169579,34.8810204416072,0 -90.43818824405589,34.8862771531433,0 -90.4279417146019,34.8727391673229,0 -90.433648709805,34.83545134437,0 -90.4224103169264,34.8323653841601,0 -90.4040306027044,34.8411352642473,0 -90.34152127876421,34.8606740294564,0 -90.3229203349016,34.8503632334111,0 -90.30164901403768,34.851873932935,0 -90.2995432252211,34.8650572468814,0 -90.2963692858759,34.8827875862869,0 -90.2668045737091,34.8966081006537,0 -90.24293921036021,34.9208271417899,0 -90.24199312177619,34.9389999550718,0 -90.2482645856439,34.9498563938362,0 -90.2996040912406,34.9785763166455,0 -90.3054483329108,35.0007887668604,0 -90.2919059359036,35.0485515081083,0 -90.1958038569539,35.0409907485114,0 -90.16917671881551,35.077919742991,0 -90.17843898741448,35.1087380390639,0 -90.16456841965839,35.1297030327121,0 -90.1438236047204,35.1366264117644,0 -90.08301595591442,35.1251401960811,0 -90.0646285866633,35.1474746627476,0 -90.0625227286411,35.1670054991279,0 -90.07339477195561,35.1919226486873,0 -90.06905343928681,35.2128267350657,0 -90.09019489682149,35.2544862571621,0 -90.1060339420871,35.2639351079375,0 -90.15221595869851,35.2641450857902,0 -90.16984033490409,35.2826536313127,0 -90.15708359885721,35.3063308609086,0 -90.10643821193109,35.3147724206286,0 -90.0987932747814,35.3456783695846,0 -90.10571329777039,35.3660674829239,0 -90.08722669387278,35.3815928956868,0 -90.0755685711721,35.4066128988494,0 -90.0852505380296,35.4183657399664,0 -90.11233571142539,35.4177745418272,0 -90.1325618654474,35.4076849496077,0 -90.14026019209219,35.3831303299536,0 -90.16790994055501,35.3843396369312,0 -90.172769972754,35.423801771155,0 -90.1373684773254,35.4426077096675,0 -90.10205086268928,35.4736509299937,0 -90.0823206223606,35.4782894580097,0 -90.0749351519039,35.472426386111,0 -90.07402733802461,35.4265900144844,0 -90.06038559986169,35.4134944197412,0 -90.0468735226389,35.4171869306731,0 -89.9996536673638,35.4455370247156,0 -90.04190641166632,35.5125217072751,0 -90.0409909024943,35.5429279718505,0 -90.033140016861,35.5524950078149,0 -89.9896739843436,35.5617568588755,0 -89.96235991331029,35.5323728966608,0 -89.94763474177211,35.5269828473763,0 -89.9312615752134,35.5293135817598,0 -89.92174743757781,35.5461398658448,0 -89.95811786552559,35.5786747060615,0 -89.9571336550073,35.6031836149856,0 -89.8775260946092,35.6334146146124,0 -89.8639224643906,35.6298250835587,0 -89.84928118822251,35.6453010408611,0 -89.8573304296374,35.6711412777364,0 -89.8652652485346,35.6733842535304,0 -89.89348727560559,35.6560505384628,0 -89.92982722280721,35.6763442141411,0 -89.95212103232031,35.7125639320478,0 -89.9511215579288,35.7343453953471,0 -89.9098681003284,35.7549139790981,0 -89.8599549641379,35.7482691273072,0 -89.8271246329774,35.7583474945228,0 -89.7999860359764,35.7743003646228,0 -89.79046432453561,35.8056299093077,0 -89.7598771117723,35.817497369678,0 -89.7360192984694,35.807113985821,0 -89.70090799570041,35.8275908326828,0 -89.7015183934478,35.8421131136063,0 -89.757794357037,35.8714934051126,0 -89.7663548523295,35.8841769773396,0 -89.7629902111739,35.8968873309185,0 -89.7380566602412,35.9150869770193,0 -89.71476351078169,35.9115011809885,0 -89.6647286073305,35.8857218407663,0 -89.64941603650951,35.8943619363869,0 -89.6454792006079,35.9138737361357,0 -89.66427092678561,35.9378944702657,0 -89.71321482606381,35.9663974567816,0 -89.7218363447502,35.9999509241088,0 -89.9632916378976,35.9969088479974,0 -90.2835541915351,35.9912280026278,0 -90.3790621785177,35.9896564265848,0 -90.31533967165498,36.0917234028765,0 -90.284851770393,36.115972708427,0 -90.26380164514022,36.1188298079555,0 -90.2349388507527,36.1371551620637,0 -90.2323220265841,36.1612137930848,0 -90.219321206522,36.1726309521804,0 -90.16140488324341,36.1970066414864,0 -90.13131377418432,36.2121355814949,0 -90.1100122336982,36.2580597893355,0 -90.0661877402538,36.2723382893607,0 -90.04984511692381,36.3005360471466,0 -90.06772899503081,36.3253957469489,0 -90.05029531239092,36.3626684522717,0 -90.05215696164839,36.3826150505682,0 -90.08027223924928,36.397449931407,0 -90.1169251070973,36.4049759827803,0 -90.1239291860565,36.4226261953142,0 -90.1173219969686,36.4539556960145,0 -90.13737277191632,36.4574765175037,0 -90.15025942109908,36.4918729268599,0 -90.22447328203479,36.4928111285523,0 -90.5817321666723,36.4910222747631,0 -90.8044338516289,36.4892654684767,0 -91.13395636436511,36.4880156921504,0 -91.4117966736446,36.4911017707335,0 -91.4529890137038,36.4904380208107,0 -91.68856055219172,36.4910185604512,0 -92.1276422613294,36.4914354514783,0 -92.14631944771919,36.4916605516162,0 -92.52305071341618,36.4909213638459,0 -92.77763547121239,36.4899835156087,0 -92.8522757362601,36.4898845275616,0 -93.2973244136508,36.4906809019551,0 -93.32834621479771,36.4902614752819,0 -93.5964496696149,36.489958821283,0 -93.85751984136751,36.4897863700719,0 -94.08105216030801,36.4910242585195,0 -94.6172570958511,36.4894141614003,0 -94.60745283215459,36.4787903547,0 -94.55311361988042,36.1645252110653,0 -94.5424172738563,36.1068358038929,0 -94.48593482605899,35.7603104941298,0 -94.46848521103668,35.6410882624306,0 -94.4285520120899,35.4005462695086,0 -94.4393221493475,34.9291508772006,0 -94.44596107534362,34.7356081162875,0 -94.45262404592168,34.5084326818174,0 -94.4616914490383,34.1967651932869,0 + + + + + + + + California + empty + + +states.AREA: + 157776.31 + + +states.STATE_NAME: +California + + +states.STATE_FIPS: +06 + + +states.SUB_REGION: +Pacific + + +states.STATE_ABBR: +CA + + +states.POP2000: + 33871648 + + +states.POP2001: + 34516624 + + +states.POP00_SQMI: + 215 + + +states.DEN_0_100: + 81 + + +USStates.ID: + 31 + + +USStates.State_Name: +California + + +USStates.Date_Entered: +Sep. 9 1850 + + +USStates.Year_Entered: +1850 + + +USStates.Year_Settled: +1769 + +]]> + #Style_5 + + + -119.601147078817,37.2417411000423,0 + + + + + + + -121.66521992838,38.1692852818694,0 -121.659581042989,38.0964650614978,0 -121.554149383557,38.1373615489176,0 -121.57283385306,38.1137988310232,0 -121.54747307428,38.0634732081726,0 -121.56954517723,38.0636676710543,0 -121.576884968613,38.0941384853348,0 -121.657749868484,38.0861008670846,0 -121.69895609777,38.023495913425,0 -122.00062325051,38.0571514373297,0 -122.29552219684,38.0147955029917,0 -122.379683867535,37.9734454214081,0 -122.371497008527,37.9093451727425,0 -122.307553740948,37.8917635584725,0 -122.312413626844,37.7784626912758,0 -122.199732511343,37.7352008896292,0 -122.093023678359,37.4973135318613,0 -121.975337115714,37.4607202053584,0 -122.0893078249,37.4525414662326,0 -122.359671258087,37.6097867642997,0 -122.366331359286,37.7024501185469,0 -122.346471626615,37.725222881851,0 -122.400931117592,37.8086250993121,0 -122.498214530806,37.7829421062426,0 -122.498207824387,37.7002541028674,0 -122.505682180351,37.5229048519338,0 -122.441463098499,37.4794824747711,0 -122.389253147094,37.352412767888,0 -122.414637835197,37.2391263954339,0 -122.27463370965,37.1067818898449,0 -122.173442725658,37.000869414925,0 -122.061331831373,36.9475067701217,0 -121.883536569103,36.9620979743937,0 -121.791711902502,36.8503269997121,0 -121.761391229107,36.8189902052639,0 -121.808564715975,36.6482211428704,0 -121.867381727768,36.6077136052856,0 -121.911420522825,36.6404278449564,0 -121.955283154531,36.5827736715462,0 -121.882277424869,36.3069435009766,0 -121.689811557385,36.1811341987533,0 -121.445541577549,35.8798505213909,0 -121.329080662264,35.8010340350228,0 -121.270261538467,35.6635357486702,0 -121.146559303764,35.6293227396273,0 -120.991948024433,35.4565810726726,0 -120.875212388976,35.4277651422731,0 -120.849996140741,35.364537182949,0 -120.883597597517,35.259405384431,0 -120.861341970335,35.2092537379629,0 -120.638410219944,35.1400283496436,0 -120.61676526156,35.0748165782334,0 -120.644339564707,34.972636905425,0 -120.665946557296,34.9038095267432,0 -120.608158850435,34.8556158401941,0 -120.631673131148,34.7599067933633,0 -120.601627028389,34.7040225521134,0 -120.64129302919,34.5723378041175,0 -120.509405994936,34.5213738679268,0 -120.456202683517,34.4424994539303,0 -120.140162829175,34.4719023559641,0 -120.011495395442,34.4616616229627,0 -119.869433245661,34.4047962846548,0 -119.606293589682,34.4164349217076,0 -119.483009812349,34.3748618900045,0 -119.266767436277,34.2380982663749,0 -119.216334529765,34.1463406491736,0 -118.939360079521,34.0400813176585,0 -118.788115084851,34.0182570853964,0 -118.541854436649,34.0372517785732,0 -118.412110377564,33.8829675753282,0 -118.388175257182,33.8123248533334,0 -118.42895447882,33.7754482405051,0 -118.40508897256,33.7384507232421,0 -118.286892271712,33.7039074388935,0 -118.246616191662,33.7739249856028,0 -118.106717457478,33.7475645995891,0 -117.597331325999,33.3945339357493,0 -117.410144185265,33.2340894690021,0 -117.328439405751,33.1114819922089,0 -117.254867897998,32.8881728454755,0 -117.285325399413,32.8512204969457,0 -117.248206872978,32.6800939783651,0 -117.198774659986,32.7389343989236,0 -117.124529296561,32.6789314826057,0 -117.120606603881,32.6028724058295,0 -117.199812068273,32.7184424173816,0 -117.128098104758,32.5357813439163,0 -116.10697354631,32.6194706970554,0 -114.722048985451,32.7208574919907,0 -114.712695098447,32.7350133484495,0 -114.694040667724,32.7414255804573,0 -114.603942285241,32.7262851953269,0 -114.603522692176,32.7358864782619,0 -114.571958909536,32.7374388920444,0 -114.572210733513,32.7488292120028,0 -114.560751027253,32.7489359768297,0 -114.561582708233,32.7607536245719,0 -114.543004547133,32.7607497409074,0 -114.543187695964,32.7712322843312,0 -114.530095237266,32.7714115230303,0 -114.535077445153,32.7880470474354,0 -114.52621949202,32.8099123509472,0 -114.461436322021,32.8454225112401,0 -114.476443984447,32.9359088466692,0 -114.46838719789,32.9777894659032,0 -114.520627661734,33.0277074359678,0 -114.559089057602,33.036782479158,0 -114.609925720105,33.0270019226895,0 -114.633966945552,33.0335669165654,0 -114.645159759737,33.0444118730784,0 -114.663951695926,33.0389226888334,0 -114.711355133911,33.0953827798915,0 -114.709463019649,33.122374935038,0 -114.678120399612,33.1672499413879,0 -114.680050859029,33.2245949425206,0 -114.687711074888,33.2392582971895,0 -114.677693392037,33.2680165177413,0 -114.735426988668,33.3057084351637,0 -114.703603782165,33.3524180309387,0 -114.724936284952,33.4110596377436,0 -114.645092242143,33.4191160810556,0 -114.630573116436,33.4394249456214,0 -114.621089578986,33.4685989080523,0 -114.598086338819,33.4861269505736,0 -114.58706170624,33.5094455578288,0 -114.52942054662,33.5600729749772,0 -114.54024720611,33.5805077718081,0 -114.527170510583,33.6221365140121,0 -114.525263594507,33.6655047006994,0 -114.53643355935,33.6827352282095,0 -114.49567644704,33.708369427689,0 -114.510287510185,33.7432004976418,0 -114.504557871757,33.7717148133963,0 -114.521122162519,33.8260312846707,0 -114.511722548733,33.84196501578,0 -114.520962184241,33.8629263802443,0 -114.49818809185,33.925036256846,0 -114.525632127364,33.9524137553973,0 -114.518208552815,33.9650630904256,0 -114.428980324296,34.0298439872115,0 -114.424029195647,34.0783320579769,0 -114.410166357368,34.1026543641334,0 -114.322799430739,34.1412972664816,0 -114.285368523229,34.1712309584447,0 -114.235775821971,34.1862227475521,0 -114.149912368725,34.2669789901846,0 -114.125230507624,34.2726209662778,0 -114.134127057818,34.3145478754142,0 -114.153414997679,34.3364477645527,0 -114.182079822361,34.3652063649643,0 -114.257842521563,34.4054888215522,0 -114.283394304634,34.4120690064366,0 -114.302865366738,34.4357541377741,0 -114.332636412337,34.4548730796034,0 -114.376506947621,34.4596793685379,0 -114.38386203177,34.4770856153635,0 -114.376827822772,34.5365634767276,0 -114.409742349408,34.5837235617841,0 -114.434302240724,34.5989628909914,0 -114.422270356442,34.6108950917792,0 -114.465637688895,34.7098730189755,0 -114.497804378448,34.744757644472,0 -114.525553173554,34.7489115709666,0 -114.542040692552,34.7599586200401,0 -114.570216833129,34.8318604389449,0 -114.627263440015,34.8755338147028,0 -114.630475658748,34.9195012881626,0 -114.621007388662,34.9436098418844,0 -114.632276529502,34.9976517256292,0 -114.621068606189,34.9989144286133,0 -115.626197382816,35.7956983148418,0 -115.885769343921,36.0012259572722,0 -117.160423771838,36.9595941441766,0 -117.838686423167,37.4572982397149,0 -118.417419755966,37.886676748621,0 -119.152450421001,38.4118009590513,0 -119.318825070203,38.5271086243913,0 -119.575687062955,38.7029101298903,0 -119.8893416394,38.9222515603984,0 -119.995254694357,38.9941061536376,0 -119.995150114198,39.063491359469,0 -119.994541258334,39.1061318056706,0 -119.995527335641,39.1587132866354,0 -119.995304181493,39.3115454332125,0 -119.996011479298,39.443500976451,0 -119.996165311172,39.7206108077274,0 -119.996324660047,41.1775662656441,0 -119.993459369715,41.9892049531992,0 -120.871908519109,41.9876721779537,0 -121.441508911406,41.9943345308753,0 -122.284705082491,42.0007645525751,0 -123.222102653242,42.0021917751363,0 -123.513204633148,41.9978329178357,0 -123.819146438568,41.9929487728793,0 -124.206444444404,41.9976479131656,0 -124.207500961935,41.8483274144433,0 -124.243098913848,41.7767571816414,0 -124.144210356407,41.7271932569777,0 -124.057954769171,41.4581641678281,0 -124.071602469809,41.3138325813281,0 -124.149703258267,41.1288322470152,0 -124.109446186314,40.9782109511907,0 -124.39263784515,40.4352369107749,0 -124.336106834157,40.3275549107377,0 -124.34530627267,40.2524300107045,0 -124.094560484712,40.1003777878568,0 -124.007638557042,39.9985808401758,0 -123.83810841709,39.8263968822168,0 -123.783531916535,39.6871084901522,0 -123.754651576417,39.5518792569807,0 -123.813718039793,39.3478064499639,0 -123.68344758336,39.0418059048776,0 -123.721901388934,38.9247712251134,0 -123.523886601491,38.7576593190168,0 -123.297941065635,38.5473335471062,0 -123.121544682433,38.4335999361908,0 -123.048796644867,38.294141377341,0 -122.994649084682,38.2972271999883,0 -122.939271912039,38.1532649535683,0 -123.010730200117,37.9944662024876,0 -122.956597666482,37.9907574780998,0 -122.921180931798,38.0306229406578,0 -122.822193338167,38.0076725285282,0 -122.691723723162,37.894392667181,0 -122.666392804265,37.9069197438526,0 -122.515725410422,37.8221063020498,0 -122.45825944905,37.8342211915867,0 -122.490022339876,37.9317675511749,0 -122.441781116525,37.9829552338725,0 -122.506450380808,38.0186521772629,0 -122.474544986516,38.0854571240266,0 -122.528648754527,38.150671563432,0 -122.488935224967,38.1134142797201,0 -122.429202750633,38.1138071956154,0 -122.398463944831,38.1613370670847,0 -122.272771919253,38.0974845590887,0 -122.285354126349,38.1593115761927,0 -122.338907365688,38.1935818915881,0 -122.315759126632,38.2059335777619,0 -122.273001701246,38.1594183914711,0 -122.232243019261,38.0710797919834,0 -121.984548898952,38.1395004704755,0 -121.902765892076,38.0729095504444,0 -121.782362662585,38.066775850854,0 -121.66521992838,38.1692852818694,0 + + + + + + + + + -119.867823257171,34.0752286498425,0 -119.927690399321,34.0591802403193,0 -119.873986855978,34.0318755748591,0 -119.889061793831,34.004669718361,0 -119.847275401387,33.9684159348396,0 -119.712539718279,33.9652843614565,0 -119.539377455034,34.0064960649629,0 -119.523095554405,34.0345906142262,0 -119.572589325174,34.0557811654196,0 -119.667922334498,34.0213434372469,0 -119.867823257171,34.0752286498425,0 + + + + + + + + + -120.167386086026,33.9241621971016,0 -120.109179246126,33.8948139803303,0 -119.963385936243,33.9477631591643,0 -120.046801069367,34.0411052236375,0 -120.238548700773,34.0108852422559,0 -120.167386086026,33.9241621971016,0 + + + + + + + + + -118.594780502018,33.4808183566674,0 -118.556433880183,33.4344825457272,0 -118.481342626159,33.4195524387193,0 -118.455386785543,33.3247859794245,0 -118.304036434067,33.3074940443331,0 -118.294590834254,33.3344480915225,0 -118.362395805209,33.4110113285126,0 -118.594780502018,33.4808183566674,0 + + + + + + + + + -118.350958200555,32.8191952333517,0 -118.541585051028,32.9873842722853,0 -118.571485987943,33.0359715054548,0 -118.599517215117,33.0210219708047,0 -118.511676946737,32.8920762202556,0 -118.420105888582,32.8061145350339,0 -118.350958200555,32.8191952333517,0 + + + + + + + + + Colorado + empty + + +states.AREA: + 104101.231 + + +states.STATE_NAME: +Colorado + + +states.STATE_FIPS: +08 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +CO + + +states.POP2000: + 4301261 + + +states.POP2001: + 4432642 + + +states.POP00_SQMI: + 41 + + +states.DEN_0_100: + 96 + + +USStates.ID: + 38 + + +USStates.State_Name: +Colorado + + +USStates.Date_Entered: +Aug. 1 1876 + + +USStates.Year_Entered: +1876 + + +USStates.Year_Settled: +1858 + +]]> + #Style_5 + + + -105.547857280633,38.9972631547834,0 + + + + + + -102.044455910114,37.6414742210535,0 -102.04397657417,37.7343986213713,0 -102.046060904132,38.2538220806459,0 -102.045549640322,38.2633436193344,0 -102.047584160548,38.6154993640496,0 -102.047568440936,38.6925505149901,0 -102.048972538957,39.0370029188915,0 -102.047874719263,39.1267534832,0 -102.048801584447,39.5628035180916,0 -102.049442507662,39.5686933622379,0 -102.051535596434,39.9989182728278,0 -102.047544994516,40.3426445008284,0 -102.047620488242,40.4310777832961,0 -102.046031374616,40.6973192828138,0 -102.046992332576,40.7431303349332,0 -102.047739314394,40.9980708667063,0 -102.621257047371,41.00021481921,0 -102.652271070342,40.9981241668543,0 -103.382956653967,41.0003163565243,0 -103.572316302435,40.9996484311393,0 -104.05170553525,41.00321132686,0 -104.934492922627,40.9942891435778,0 -105.278797604523,40.9963491628159,0 -106.203471481278,41.0000850018961,0 -106.329125682765,41.001288969127,0 -106.865438763821,40.9984573861084,0 -107.304051053295,41.0001333468858,0 -107.918671336725,41.0033751160193,0 -109.048314704754,40.9984333935171,0 -109.046155726194,40.6652909436328,0 -109.051263150153,40.2105113710392,0 -109.052551712149,39.6573824204021,0 -109.053528662287,39.5181701484933,0 -109.051416838185,39.3609660838809,0 -109.053948502328,38.4946509132439,0 -109.055861120835,38.2449201643366,0 -109.043464000061,38.1529336954503,0 -109.043206408646,37.8874200608917,0 -109.045602480021,37.6308206068713,0 -109.048480115363,36.9966409005893,0 -108.372472924296,36.999471575633,0 -107.472460293817,36.9987767566937,0 -107.410820543541,36.9975257849804,0 -106.89037023567,36.9990837907051,0 -106.86124887722,36.9895015941857,0 -106.472176939021,36.9915042439681,0 -105.992000086492,36.992289650437,0 -105.713459997846,36.9945603614965,0 -105.213091465415,36.992604521715,0 -105.146172547082,36.9932073726899,0 -103.993635035945,36.9944690622369,0 -103.07786588474,36.9997601837273,0 -102.997709442614,36.9985238353847,0 -102.037207602599,36.9889939197762,0 -102.042010650289,37.3862794433515,0 -102.044455910114,37.6414742210535,0 + + + + + + + + Connecticut + empty + + +states.AREA: + 4976.566 + + +states.STATE_NAME: +Connecticut + + +states.STATE_FIPS: +09 + + +states.SUB_REGION: +N Eng + + +states.STATE_ABBR: +CT + + +states.POP2000: + 3405565 + + +states.POP2001: + 3434012 + + +states.POP00_SQMI: + 684 + + +states.DEN_0_100: + 39 + + +USStates.ID: + 5 + + +USStates.State_Name: +Connecticut + + +USStates.Date_Entered: +Jan. 9 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1634 + +]]> + #Style_5 + + + -72.7247699791,41.6180326565837,0 + + + + + + -73.5303920707175,41.5227455563004,0 -73.5442932536742,41.3652984767995,0 -73.5502596731917,41.2936207043954,0 -73.47812075689539,41.2107548889389,0 -73.72523765669671,41.1003542249946,0 -73.65372377552561,41.0126172825253,0 -73.65315146089949,40.9983924455247,0 -73.1044185740856,41.1610394427248,0 -72.906734323612,41.2700631991856,0 -72.5272448622889,41.2637025875984,0 -72.378152966058,41.2781022275496,0 -72.3784123498461,41.3583482711136,0 -72.3263548978381,41.2896412329135,0 -72.28141590252091,41.2811454708603,0 -71.86667844289499,41.3227696452715,0 -71.8477722040922,41.3253484832964,0 -71.8368696812943,41.3419614666217,0 -71.8459956537022,41.4038545416488,0 -71.80274343080561,41.4158290540058,0 -71.7901942031214,41.6013068793249,0 -71.792605218292,41.6417579304637,0 -71.78824886219491,41.7216033953237,0 -71.7978316087619,42.0042748046851,0 -71.80234071658769,42.0179769339478,0 -72.0949717608141,42.0257995069483,0 -72.1363467150764,42.0264020644269,0 -72.5075717905207,42.0307660006011,0 -72.57122589242989,42.0301249737628,0 -72.58190737022019,42.0216068944432,0 -72.60782527309461,42.0228008077559,0 -72.6095266969696,42.030536850941,0 -72.75589381790709,42.0338475230699,0 -72.7675750314897,42.0021671817802,0 -72.817679571843,41.9971850435429,0 -72.8164509949267,42.033507731778,0 -73.0060955098662,42.0360092024926,0 -73.0456324711282,42.0363103821922,0 -73.4842302844536,42.0474280500728,0 -73.51714741333279,41.6656861632365,0 -73.5303920707175,41.5227455563004,0 + + + + + + + + Delaware + empty + + +states.AREA: + 2054.586 + + +states.STATE_NAME: +Delaware + + +states.STATE_FIPS: +10 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +DE + + +states.POP2000: + 783600 + + +states.POP2001: + 797556 + + +states.POP00_SQMI: + 381 + + +states.DEN_0_100: + 66 + + +USStates.ID: + 1 + + +USStates.State_Name: +Delaware + + +USStates.Date_Entered: +Dec. 7 1787 + + +USStates.Year_Entered: +1787 + + +USStates.Year_Settled: +1638 + +]]> + #Style_5 + + + -75.5005536711258,38.9951144260073,0 + + + + + + -75.70707355672541,38.5575913668919,0 -75.6988024422464,38.4631827108939,0 -75.3498423227975,38.4553227905156,0 -75.0927212334893,38.4505638472484,0 -75.0679246646819,38.4500753640855,0 -75.0456230125111,38.4496021608759,0 -75.0827624797042,38.7999244622257,0 -75.1905708548595,38.8087822508359,0 -75.3075352508581,38.946023931106,0 -75.32448866541441,39.0124989256203,0 -75.3973682707713,39.0731489592767,0 -75.4021224709428,39.2577500046037,0 -75.5152174265202,39.3670516712081,0 -75.5898358410183,39.4638799793316,0 -75.56264295943861,39.5668352599053,0 -75.6103745921791,39.6129053117614,0 -75.4892806606894,39.7148582186458,0 -75.4759742683691,39.7200843842213,0 -75.47476845721459,39.7418320932776,0 -75.46039411885541,39.7633620274566,0 -75.4276473042606,39.7782429030536,0 -75.4117545704202,39.7897707547806,0 -75.42046794786501,39.7989830990632,0 -75.4699861133481,39.8265474993808,0 -75.58344324964349,39.8401190417149,0 -75.6439943147472,39.8383065472094,0 -75.6947708516454,39.8204574523468,0 -75.7455920038355,39.7749293983367,0 -75.77492719598079,39.7245527846646,0 -75.7910945763195,39.7238660373362,0 -75.77235374667779,39.3831185391944,0 -75.7643192412212,39.2959598236098,0 -75.7613129328181,39.2478639325384,0 -75.7525764003551,39.1416603330929,0 -75.7245906263035,38.8302832999716,0 -75.7107127327496,38.6496658557662,0 -75.70707355672541,38.5575913668919,0 + + + + + + + + Florida + empty + + +states.AREA: + 55814.731 + + +states.STATE_NAME: +Florida + + +states.STATE_FIPS: +12 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +FL + + +states.POP2000: + 15982378 + + +states.POP2001: + 16349220 + + +states.POP00_SQMI: + 286 + + +states.DEN_0_100: + 75 + + +USStates.ID: + 27 + + +USStates.State_Name: +Florida + + +USStates.Date_Entered: +Mar. 3 1845 + + +USStates.Year_Entered: +1845 + + +USStates.Year_Settled: +1565 + +]]> + #Style_5 + + + -82.4955741421186,28.6586764601475,0 + + + + + + + -80.7856624086309,28.7851940403771,0 -81.0970545706768,29.3517993174429,0 -81.1098802954354,29.4302392603555,0 -81.2337658332761,29.6690238932245,0 -81.2437844731636,29.7379431267216,0 -81.3164898837488,29.829240288196,0 -81.30275787447,29.9130520156593,0 -81.4327676635006,30.2467817590837,0 -81.4432599879591,30.3571873716918,0 -81.4807983040684,30.3805404131581,0 -81.4575287462075,30.4547642552716,0 -81.51811745977921,30.556212852111,0 -81.4987842593679,30.5986053568678,0 -81.52859548779161,30.7214526527694,0 -81.5365912711366,30.706577299159,0 -81.6011698908184,30.7248871300769,0 -81.6047710156425,30.7163212810582,0 -81.6279809976449,30.7317742622409,0 -81.64247751744411,30.7290809870991,0 -81.7167688183456,30.7453688965497,0 -81.7366750235978,30.7638888413088,0 -81.7577101754202,30.7696316702207,0 -81.77670793959879,30.7615846557533,0 -81.803198160572,30.7880849801985,0 -81.8730017876477,30.7990844044587,0 -81.899141093328,30.8283082947867,0 -81.9075183587545,30.8134750654558,0 -81.9438049950591,30.8242494271993,0 -81.95302920945851,30.8204309615747,0 -81.96155137217021,30.7960077712109,0 -81.9814798819521,30.7783517328393,0 -82.015538717102,30.7913192479577,0 -82.0129673359901,30.7642564144355,0 -82.0318811960902,30.75753276526,0 -82.044911618847,30.6509107642683,0 -82.0136526868731,30.5986905381626,0 -82.00580162815341,30.5709905104499,0 -82.0225094921996,30.4777178378262,0 -82.0351206760364,30.442878325233,0 -82.0460994945739,30.4340681576703,0 -82.0383547553639,30.3789045785554,0 -82.0527668135565,30.3637944548298,0 -82.1646391875519,30.3612918341259,0 -82.1802341078135,30.3686309203557,0 -82.2055648250395,30.4238531552503,0 -82.1991871719511,30.4900145014502,0 -82.2193674835883,30.5029705380916,0 -82.2383961480861,30.53144474306101,0 -82.2210395703097,30.5670760290347,0 -82.41209267091981,30.5773075208331,0 -82.46313488325031,30.5826898377285,0 -82.5829575782702,30.5890537915584,0 -82.6963559598951,30.5957200992445,0 -83.13244038033891,30.6213413987424,0 -83.30131548232799,30.6332849379512,0 -83.31060073866981,30.6343032375269,0 -83.6090560569222,30.6507845923385,0 -83.7378439398488,30.6604911909877,0 -84.00073015189621,30.6755376606981,0 -84.07556221707689,30.6785776000623,0 -84.2816633081929,30.6904191353307,0 -84.3744481609224,30.6940918759687,0 -84.8630037111776,30.7126645389724,0 -84.86458306959619,30.7145032030319,0 -84.8882887897453,30.7438893824889,0 -84.915343413445,30.7540898084089,0 -84.9268948431928,30.7760887042882,0 -84.93256395069341,30.802625045985,0 -84.9269262387193,30.8469221763844,0 -84.9377761495732,30.8949576392884,0 -84.9690122705718,30.9270937759378,0 -84.97356770002369,30.9636643794248,0 -85.0001419997276,30.9793194525836,0 -85.00160719763341,31.0012534003007,0 -85.4850102049851,31.0010018399978,0 -85.4865971253016,31.0009980072958,0 -86.0318217926755,30.993327601114,0 -86.1814761680363,30.9952251256207,0 -86.38391974363719,30.9915383065212,0 -86.70185248868481,30.9980924099155,0 -86.7793617052065,30.9981918115755,0 -87.16311759320681,31.0031572312178,0 -87.59858025629001,31.0026307736,0 -87.58986722899169,30.954361030582,0 -87.62571159139399,30.8769019951762,0 -87.6159151545761,30.8482964233535,0 -87.54190013706391,30.7856953414756,0 -87.5266028694286,30.7484916966577,0 -87.4601404897836,30.7058026368688,0 -87.4188942719987,30.6928101858547,0 -87.3986449174521,30.6680153313996,0 -87.3932809670146,30.6200982640176,0 -87.4220673638826,30.5564936086287,0 -87.4453529644246,30.5313897036451,0 -87.4188166507341,30.4817007831404,0 -87.34739512261361,30.45716912626,0 -87.3468074422634,30.4314987377927,0 -87.4092561498961,30.4022388615449,0 -87.42408011873,30.3236714953673,0 -87.27389760268,30.3573846203564,0 -87.160102583227,30.4650331854788,0 -87.17155505856,30.5577356138947,0 -87.12453365402951,30.5646667812171,0 -87.0692718433498,30.4505645464724,0 -87.0195804520243,30.5874666647957,0 -86.98619315326791,30.5904306090507,0 -87.01439989501139,30.5144345448102,0 -86.9325107849378,30.4635649387036,0 -87.1933820815507,30.3552218088262,0 -86.79034761148481,30.417963340528,0 -86.6102358163719,30.423651606622,0 -86.4526391026542,30.501237135688,0 -86.3878791046355,30.4621676047067,0 -86.21960829589411,30.4878542196163,0 -86.1229339842843,30.4264616798505,0 -86.114640755008,30.3858018718917,0 -86.24156647826339,30.4285277915735,0 -86.2400330396019,30.3998877870994,0 -86.38810807865301,30.4060128314707,0 -86.5053138173483,30.4099729095893,0 -86.38745959195791,30.3876588649199,0 -85.9870132562786,30.274430447424,0 -85.7263932601573,30.1288421882721,0 -85.7579191757177,30.228945499057,0 -85.8299426331719,30.2328139986745,0 -85.8504205348322,30.2803593792308,0 -85.752708285065,30.296929416945,0 -85.7171312674037,30.2650619320408,0 -85.5694755083714,30.3110040681735,0 -85.6001764366836,30.2511510570462,0 -85.6660583999623,30.2516894275641,0 -85.7098294679232,30.1787734448826,0 -85.5297167444586,30.1316864955678,0 -85.46431580583911,30.05116354875871,0 -85.39567230794491,30.0585673680019,0 -85.38265623679381,30.0362861989575,0 -85.3826943968843,30.0242701944309,0 -85.4323859451426,30.0457542840855,0 -85.41501336574611,30.0315524246978,0 -85.4713579556514,30.021863583452,0 -85.5685286533251,30.0982936773355,0 -85.6284974801284,30.092591247597,0 -85.3847925794656,29.9238014777072,0 -85.3005241314803,29.809796482644,0 -85.30658944207769,29.7017103324635,0 -85.358043047591,29.6912547238295,0 -85.4025465872846,29.7943649380265,0 -85.39299438160241,29.875413459683,0 -85.4140519942968,29.8630676261595,0 -85.4096039187485,29.7767663594786,0 -85.3648790697375,29.6830190693874,0 -85.2147599731812,29.7015576599036,0 -84.9882831153426,29.7199215009452,0 -84.9285133165353,29.7779718956361,0 -84.858030735784,29.746860644003,0 -84.4645378551553,29.9296272731811,0 -84.346911138444,29.9101687274893,0 -84.33893870217069,29.94714151388211,0 -84.4331041474675,29.9595452292823,0 -84.43769009148851,29.9917915151398,0 -84.3604166513926,29.9773907329364,0 -84.353924908203,30.0696244196511,0 -84.2330713099055,30.1081116975018,0 -84.1478548013806,30.0817249598013,0 -84.0746250590684,30.0999482141697,0 -83.9717383295973,30.0774831103292,0 -83.65418272250091,29.9109618275118,0 -83.5504482416698,29.7373231552771,0 -83.40497386127331,29.6696026010291,0 -83.38003129986259,29.5198747697928,0 -83.2343277851478,29.4339375053078,0 -83.17463281391611,29.3436792113098,0 -83.1089950735291,29.3281828439052,0 -83.1422065121976,29.2996514317714,0 -83.0739287228003,29.2656522892705,0 -83.0367477674175,29.17938775268111,0 -82.80215694869619,29.1551323838437,0 -82.7553222386037,29.008660342598,0 -82.63661917692581,28.8847079412874,0 -82.6365190150036,28.8142779635276,0 -82.68138067327411,28.8083822083402,0 -82.6360757732282,28.6927489136677,0 -82.6734759424042,28.4285106282973,0 -82.77914408680709,28.1730274345577,0 -82.8442855871409,27.8506413239551,0 -82.7410033447869,27.6858682776039,0 -82.72816288633671,27.71777322138721,0 -82.7938385725946,27.82965394385201,0 -82.6783265396172,27.7055878183437,0 -82.6446191370261,27.7157250804914,0 -82.623653104071,27.8485270486841,0 -82.5642645135043,27.8784619377409,0 -82.72548499781411,27.9405627845552,0 -82.6447412328194,27.9665839458658,0 -82.700665998164,27.9753535590083,0 -82.67271887892071,28.0105143110528,0 -82.6983389996622,28.0461689270521,0 -82.65068467202021,28.0071632485504,0 -82.6455652432514,28.0288470743089,0 -82.53899536357871,27.9357280906989,0 -82.5105981113627,27.8312320397799,0 -82.483131719607,27.821947512228,0 -82.4609984469958,27.9401552300599,0 -82.3988177254479,27.9062193926186,0 -82.4043795621193,27.7916278689045,0 -82.55249982929941,27.6440140810863,0 -82.5400408116316,27.6081060565737,0 -82.6263767381809,27.5551940586101,0 -82.55426231189991,27.5822396263396,0 -82.5696053404662,27.552713123606,0 -82.6387670919584,27.5366381336648,0 -82.5755716572461,27.5123247874474,0 -82.4271770498958,27.5228592370009,0 -82.5141997040709,27.5119896299127,0 -82.4882670113381,27.4780670468665,0 -82.6817060967643,27.5244293448953,0 -82.6658290426217,27.4935869887545,0 -82.638889133273,27.5034592572515,0 -82.6859253554227,27.4738446601839,0 -82.5655623022342,27.3866814664875,0 -82.5327402803326,27.3318018750555,0 -82.5699574997893,27.2742801857922,0 -82.514483358897,27.2104536946126,0 -82.53113078368141,27.260277268799,0 -82.5069299595387,27.2369915434566,0 -82.3800366684968,26.9472958619466,0 -82.3436286898397,26.9036327303149,0 -82.3686686110515,26.9479386066161,0 -82.39817177118719,26.9985156064124,0 -82.3554313078568,26.9488960497624,0 -82.2898406078895,26.8498858964476,0 -82.1538287055014,26.790128827623,0 -82.1764953546999,26.91369327650421,0 -82.2575818018979,26.997907071209,0 -82.2821793222444,27.0245573864093,0 -82.2574596818821,27.0044089537616,0 -82.1532097767663,26.937064868502,0 -82.0126882415853,26.9765506094598,0 -81.992851089122,27.0316764188246,0 -81.9791941742815,27.0316801758383,0 -81.9914399870855,26.9630565804492,0 -82.09787264732439,26.9217855253756,0 -82.0517675266414,26.8667090832592,0 -82.06827088488571,26.7669703280974,0 -82.08366009168979,26.7157906803202,0 -82.0214729222177,26.5246799114177,0 -81.94445196681861,26.5507196658666,0 -81.8971019671985,26.6637671605295,0 -81.77391439025691,26.7102658283511,0 -81.8842767455881,26.6429874247486,0 -81.9287732333451,26.5349808410994,0 -81.9681192314758,26.5173825540891,0 -81.9420187660068,26.4675625679953,0 -81.86421232186081,26.4395539803577,0 -81.8493509562169,26.3321969602063,0 -81.81385858095371,26.2844671116379,0 -81.79471711672559,26.1111624155724,0 -81.7056956434448,26.0001719707702,0 -81.7182927746014,25.9235815788374,0 -81.5307421662118,25.9146583461055,0 -81.2562071495919,25.803102822616,0 -81.1999471683642,25.7104222944241,0 -81.2583748028608,25.6811000537785,0 -81.14332280632461,25.3968273443257,0 -80.9742816356419,25.3224599988499,0 -80.9152746101809,25.246725347404,0 -80.9510271592913,25.2025375364347,0 -81.0115606647601,25.2144297033838,0 -81.1405692249725,25.3207650388025,0 -81.1837838752698,25.2688795915602,0 -81.14822996444551,25.164690234975,0 -81.119016169228,25.1341887870379,0 -80.9758769814422,25.1305013595143,0 -80.8568011499702,25.1856310402452,0 -80.69382490846441,25.1522990222937,0 -80.5518761310218,25.2123186665598,0 -80.4208071164753,25.1922194488631,0 -80.4168167134392,25.2499027837277,0 -80.30197564745031,25.4012007632131,0 -80.32999121816469,25.4900151159125,0 -80.3014558505665,25.6137517419595,0 -80.1930988333682,25.7600323804277,0 -80.1277808584683,25.9775364329027,0 -80.0846956378327,26.3263775730799,0 -80.0509107788816,26.79719774157,0 -80.1146101161258,26.973837535418,0 -80.0903632019365,26.9740436760055,0 -80.1479671747375,27.1090693324142,0 -80.2212733035668,27.2028422831826,0 -80.290420512647,27.2128533886563,0 -80.3267908949388,27.2482620290407,0 -80.28963484694501,27.2413386496822,0 -80.22398953706519,27.215066036106,0 -80.19009080193339,27.1856845506766,0 -80.2396382000622,27.2646476309897,0 -80.35737788115679,27.5556622412549,0 -80.4013770985618,27.7035855422849,0 -80.4818532136496,27.8457216392462,0 -80.5093579467615,27.8257087100619,0 -80.49224458768531,27.8701785816315,0 -80.7471898616394,28.3989923702075,0 -80.8507049706525,28.7856998655849,0 -80.8321039389462,28.7861861164729,0 -80.76241522498,28.73633464414,0 -80.7856624086309,28.7851940403771,0 + + + + + + + + + -86.8338822668909,30.3997351946409,0 -86.92912289596769,30.381394411765,0 -87.0476413823616,30.36940104488521,0 -87.13934916731981,30.3517658849312,0 -87.20214070012931,30.3348345829613,0 -87.2860896885903,30.3397725845478,0 -87.2903241050636,30.3327193793144,0 -87.2670458244246,30.3214318797522,0 -87.2423486031622,30.3214318477782,0 -86.8345841638274,30.3870382775534,0 -86.7929645335572,30.3905649446145,0 -86.73864164395199,30.4025581695707,0 -86.53264296831961,30.3933887813638,0 -86.522770294314,30.4011477363605,0 -86.5347563674129,30.4067913935205,0 -86.6208256693825,30.4145518175759,0 -86.7915530723426,30.4039694647944,0 -86.8338822668909,30.3997351946409,0 + + + + + + + + + -80.73583342138031,28.7888443728242,0 -80.8624380297225,28.9916256739697,0 -80.8990978307606,29.0615113380843,0 -80.9162872259714,29.0718222697753,0 -80.891079384763,29.0133938389067,0 -80.8171798101218,28.895390595308,0 -80.76333034164141,28.8220678253514,0 -80.73583342138031,28.7888443728242,0 + + + + + + + + + -80.7258997483759,28.7843659964936,0 -80.64119767311181,28.6573460126368,0 -80.7540684017207,28.7368838886358,0 -80.7349947909981,28.7066171587924,0 -80.7859302565314,28.6877162616962,0 -80.7804452685255,28.6189606122974,0 -80.6918815595558,28.5883502247698,0 -80.6600431301066,28.6186511090254,0 -80.5991290711823,28.6039228263252,0 -80.5774466899765,28.54865343771141,0 -80.6216302365325,28.4126591437007,0 -80.5876558561293,28.4092601916422,0 -80.5259480649338,28.4634626289081,0 -80.579689196541,28.5901540601732,0 -80.7258997483759,28.7843659964936,0 + + + + + + + + + -80.68862382465591,28.5817643631259,0 -80.7210434793205,28.3854010160234,0 -80.605571665409,28.14494461734,0 -80.66711056958739,28.301841271446,0 -80.6627305489283,28.4274102077487,0 -80.60919283666981,28.5735665270911,0 -80.6537947563473,28.6008904599418,0 -80.68862382465591,28.5817643631259,0 + + + + + + + + + -82.1019415480461,26.586077179011,0 -82.1286518307944,26.6936913317227,0 -82.1833101452127,26.6834323648282,0 -82.13570958489,26.6426298555739,0 -82.0974560861241,26.4939425477023,0 -82.06695301795411,26.4975643713843,0 -82.1019415480461,26.586077179011,0 + + + + + + + + + -80.24945367787321,25.354937643044,0 -80.3616011380102,25.2964992519179,0 -80.3302969914516,25.2679815350763,0 -80.3530636815586,25.2115321598761,0 -80.5878197219821,24.9563763998019,0 -80.355665273095,25.1582335995928,0 -80.24945367787321,25.354937643044,0 + + + + + + + + + Georgia + empty + + +states.AREA: + 58629.222 + + +states.STATE_NAME: +Georgia + + +states.STATE_FIPS: +13 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +GA + + +states.POP2000: + 8186453 + + +states.POP2001: + 8423422 + + +states.POP00_SQMI: + 140 + + +states.DEN_0_100: + 88 + + +USStates.ID: + 4 + + +USStates.State_Name: +Georgia + + +USStates.Date_Entered: +Jan. 2 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1733 + +]]> + #Style_5 + + + -83.4542258116492,32.6550957052741,0 + + + + + + + -85.1301648712312,31.778853672117,0 -85.11528693111811,31.731565957183,0 -85.11867442354141,31.7085715963854,0 -85.1112049587349,31.6842421102739,0 -85.0592853056629,31.6212651525335,0 -85.04272135787051,31.5543898029988,0 -85.0426984349451,31.5196599288858,0 -85.0663120282063,31.4760895555663,0 -85.0614062661802,31.4406634414676,0 -85.0879419916334,31.3672341961667,0 -85.0825631900095,31.33233449639,0 -85.0812280506442,31.3030803697052,0 -85.1033613685017,31.2714361848353,0 -85.09360326113141,31.2270745000222,0 -85.1029571297253,31.1969220462589,0 -85.0933668734253,31.1722112527352,0 -85.06866250314511,31.1623640897378,0 -85.038068227176,31.1267131739262,0 -85.01699565076569,31.0801028338282,0 -85.00160719763341,31.0012534003007,0 -85.0001419997276,30.9793194525836,0 -84.97356770002369,30.9636643794248,0 -84.9690122705718,30.9270937759378,0 -84.9377761495732,30.8949576392884,0 -84.9269262387193,30.8469221763844,0 -84.93256395069341,30.802625045985,0 -84.9268948431928,30.7760887042882,0 -84.915343413445,30.7540898084089,0 -84.8882887897453,30.7438893824889,0 -84.86458306959619,30.7145032030319,0 -84.8630037111776,30.7126645389724,0 -84.3744481609224,30.6940918759687,0 -84.2816633081929,30.6904191353307,0 -84.07556221707689,30.6785776000623,0 -84.00073015189621,30.6755376606981,0 -83.7378439398488,30.6604911909877,0 -83.6090560569222,30.6507845923385,0 -83.31060073866981,30.6343032375269,0 -83.30131548232799,30.6332849379512,0 -83.13244038033891,30.6213413987424,0 -82.6963559598951,30.5957200992445,0 -82.5829575782702,30.5890537915584,0 -82.46313488325031,30.5826898377285,0 -82.41209267091981,30.5773075208331,0 -82.2210395703097,30.5670760290347,0 -82.2383961480861,30.53144474306101,0 -82.2193674835883,30.5029705380916,0 -82.1991871719511,30.4900145014502,0 -82.2055648250395,30.4238531552503,0 -82.1802341078135,30.3686309203557,0 -82.1646391875519,30.3612918341259,0 -82.0527668135565,30.3637944548298,0 -82.0383547553639,30.3789045785554,0 -82.0460994945739,30.4340681576703,0 -82.0351206760364,30.442878325233,0 -82.0225094921996,30.4777178378262,0 -82.00580162815341,30.5709905104499,0 -82.0136526868731,30.5986905381626,0 -82.044911618847,30.6509107642683,0 -82.0318811960902,30.75753276526,0 -82.0129673359901,30.7642564144355,0 -82.015538717102,30.7913192479577,0 -81.9814798819521,30.7783517328393,0 -81.96155137217021,30.7960077712109,0 -81.95302920945851,30.8204309615747,0 -81.9438049950591,30.8242494271993,0 -81.9075183587545,30.8134750654558,0 -81.899141093328,30.8283082947867,0 -81.8730017876477,30.7990844044587,0 -81.803198160572,30.7880849801985,0 -81.77670793959879,30.7615846557533,0 -81.7577101754202,30.7696316702207,0 -81.7366750235978,30.7638888413088,0 -81.7167688183456,30.7453688965497,0 -81.64247751744411,30.7290809870991,0 -81.6279809976449,30.7317742622409,0 -81.6047710156425,30.7163212810582,0 -81.6011698908184,30.7248871300769,0 -81.5365912711366,30.706577299159,0 -81.52859548779161,30.7214526527694,0 -81.49838215972861,30.7575148369311,0 -81.529269052571,30.8647786931871,0 -81.4848273848571,30.9449000982573,0 -81.5285609645024,30.9621190260309,0 -81.4908554850397,30.9858121631104,0 -81.5354294328489,31.0767563036925,0 -81.4753376980902,31.0438233173066,0 -81.52525924876009,31.0865485378616,0 -81.52838810570471,31.1311281139373,0 -81.3810060604754,31.1489458440312,0 -81.31024963168881,31.2426949085912,0 -81.30083493289349,31.2758189009071,0 -81.3888131895834,31.2971490597463,0 -81.3947715908228,31.2640900090948,0 -81.4103443748257,31.3114801993601,0 -81.36558128684681,31.3445548526356,0 -81.3130659410716,31.3375975453654,0 -81.2085717415423,31.466897315876,0 -81.1947704996618,31.5051521393949,0 -81.23914509534541,31.5568831089359,0 -81.2407192840183,31.6401735904022,0 -81.1871897446126,31.5998982648136,0 -81.1349370156985,31.64607010904041,0 -81.2897291147454,31.799665157239,0 -81.1751775864286,31.7358025222833,0 -81.19636638291649,31.7848438785274,0 -81.1740127367476,31.7998108690079,0 -81.13682407277911,31.7270738398996,0 -81.06104273006601,31.7775429698153,0 -81.0390109744209,31.8233600040029,0 -81.1414678053095,31.8535166905114,0 -81.1802499193908,31.89767267427,0 -81.2201057693034,31.8931398643438,0 -81.2064883559565,31.9206507082445,0 -81.244947183707,31.8946916725745,0 -81.2842943640751,31.9494280109591,0 -81.23968322486699,31.9034156747495,0 -81.2039099248023,31.9284324409696,0 -81.19730252637351,31.9198956907679,0 -81.20725811895009,31.900120837565,0 -81.1799984795161,31.9058911046943,0 -81.13985081872011,31.8643404881217,0 -80.97087558424499,31.8903139501193,0 -80.9735561398863,31.9479287150516,0 -80.8947535795152,32.0059939238177,0 -81.10487575967311,32.1054460026813,0 -81.11911230742351,32.1176140300944,0 -81.1147177986615,32.1905932444351,0 -81.1476925517913,32.2244467846609,0 -81.1481731109993,32.2577131389355,0 -81.1240481751459,32.2766445515914,0 -81.131890044888,32.3326183284591,0 -81.1418842567213,32.348467456337,0 -81.15747907871371,32.3387404019195,0 -81.1791229158612,32.3717812943982,0 -81.17825274918771,32.3868294350367,0 -81.19992690502011,32.4203165559094,0 -81.19515724784431,32.4645607584348,0 -81.23623978837119,32.520613973536,0 -81.26798547886391,32.5339298482675,0 -81.2743023822226,32.5548140176008,0 -81.298983534041,32.567287009571,0 -81.3404038613665,32.5713602924434,0 -81.3514893657912,32.5835283490035,0 -81.36670254638879,32.5819794584472,0 -81.3662676134818,32.5883649179497,0 -81.3849063649096,32.5958830263814,0 -81.41210528286091,32.6256090136088,0 -81.3994783141749,32.6508153349079,0 -81.4071915250438,32.6867019963945,0 -81.4205354721022,32.7015669413645,0 -81.4076260787666,32.7418061601564,0 -81.4230377099309,32.7498126483616,0 -81.41607199831719,32.7567284399427,0 -81.4302403174263,32.7861535714108,0 -81.4208333313248,32.8094947304519,0 -81.4303092863297,32.8203050210012,0 -81.4239616394502,32.831771535068,0 -81.4323312938326,32.8416816085137,0 -81.4553190013329,32.8445766582975,0 -81.4585388413489,32.8714003875851,0 -81.4832049987009,32.876092075685,0 -81.4650317117614,32.8977282069894,0 -81.47704813306041,32.8975717263241,0 -81.5102366685686,32.9472214740899,0 -81.509839970123,32.9554188973732,0 -81.4978997781492,32.9596759183359,0 -81.49273484682441,33.0048133137248,0 -81.50874915476361,33.0127933490709,0 -81.5296007135576,33.0439278437875,0 -81.54765985031411,33.0436837254085,0 -81.56003498198071,33.0608149350319,0 -81.59582519226061,33.07079003117,0 -81.610962223749,33.087875452303,0 -81.7042792512713,33.1229388681766,0 -81.740374666284,33.1446970762157,0 -81.76340826403511,33.1698348857377,0 -81.7595935205582,33.1953809754874,0 -81.7698781322982,33.2138814847346,0 -81.7798346609471,33.2173679140961,0 -81.8015635396811,33.2079267401357,0 -81.8107647427681,33.2264425091539,0 -81.85396307448509,33.2435008646337,0 -81.83679654832591,33.2606131041944,0 -81.8398406003094,33.2733079499958,0 -81.826572899138,33.2694248257545,0 -81.86071475702811,33.2970915898305,0 -81.8401072844714,33.3083447178855,0 -81.86554408069119,33.3156684726899,0 -81.87687401673379,33.3068376679828,0 -81.893483278419,33.3352369460829,0 -81.9120917492517,33.3321965848843,0 -81.9114125905005,33.3494956248163,0 -81.9367121514194,33.3504376050416,0 -81.9450663328463,33.3771470802287,0 -81.9258093500634,33.3765598081382,0 -81.9403358095376,33.408163308089,0 -81.91356363208369,33.4154417359506,0 -81.9272738095671,33.4361432282633,0 -81.9166380824955,33.451332910189,0 -81.93638328061149,33.4710196640405,0 -81.9809170141647,33.4907366765445,0 -81.99653471071351,33.5204905181363,0 -82.02014061005811,33.5387321304637,0 -82.0385431417392,33.5475058176817,0 -82.0656815446151,33.5738649217255,0 -82.1164029880357,33.5947766297079,0 -82.1389789104035,33.5939068648655,0 -82.1671320836866,33.6152152043502,0 -82.1921876394497,33.6238399454958,0 -82.21420671543,33.6807345454544,0 -82.2348981721706,33.6903395482787,0 -82.2662179171499,33.7615957491367,0 -82.3055105866775,33.7826480434626,0 -82.3111185523946,33.8039143524229,0 -82.3513115818956,33.8353919365428,0 -82.3657086388162,33.8360097346945,0 -82.390596547794,33.8541402272832,0 -82.424525414299,33.8602546364245,0 -82.4566308989782,33.8782248379062,0 -82.51753847434971,33.931029734258,0 -82.576614784124,33.9592878315125,0 -82.5736087006275,33.9689044112754,0 -82.5961385808407,34.0134202383713,0 -82.6029437979289,34.0346366848087,0 -82.66035530356881,34.1083560439036,0 -82.73578078298991,34.1697961502507,0 -82.74259356012441,34.2055536194311,0 -82.7580279876581,34.2333729594522,0 -82.76416996771751,34.2809601537556,0 -82.78287043804779,34.2905157146731,0 -82.80858305350149,34.3398998890232,0 -82.8364394858077,34.3710462423795,0 -82.844092601526,34.4126753526629,0 -82.8680428963264,34.4575429723072,0 -82.9050550411483,34.4779853553029,0 -82.9819628115439,34.4764970914664,0 -83.0079495911058,34.4708283883787,0 -83.0549948395099,34.4900615932447,0 -83.0790212167266,34.5189724434825,0 -83.1081211059023,34.5350165151609,0 -83.13736602628759,34.5678676740658,0 -83.1589505272632,34.5768318282397,0 -83.1648789222652,34.5989373632901,0 -83.23698727342099,34.6133215989917,0 -83.29889480454101,34.6629454181783,0 -83.3397900149061,34.6776926363039,0 -83.3506851506329,34.7096474786312,0 -83.3503341394554,34.72738151575,0 -83.3234241306547,34.752233551772,0 -83.32269057154549,34.787244331982,0 -83.3027537558249,34.8055316318054,0 -83.2701139291264,34.8150795057964,0 -83.26777101073991,34.8392299311095,0 -83.25042127245131,34.8397104674801,0 -83.25030657832789,34.8501663657462,0 -83.23568791389251,34.8623846921569,0 -83.243073026274,34.8780818464701,0 -83.2328036461865,34.8738209511595,0 -83.21942855420581,34.8891824860544,0 -83.203513267742,34.8841701297206,0 -83.1821802554349,34.9106474165588,0 -83.1583528037159,34.9176510672928,0 -83.1550259840766,34.9322800740411,0 -83.13756183146759,34.9304757693624,0 -83.1256365359246,34.940790436291,0 -83.1131011728063,34.9361251832685,0 -83.1273147785663,34.9543742120639,0 -83.12140170134001,34.9608933437966,0 -83.1155422841629,34.9546869901268,0 -83.1004503495987,34.9841622888642,0 -83.1061569738507,35.000366708131,0 -83.5128876420542,34.9921157535224,0 -83.5492972918908,34.9896284845873,0 -83.93789913149431,34.9894775119032,0 -83.9884542500545,34.9891518047362,0 -84.118152397807,34.9883069959845,0 -84.3237734916339,34.989090556154,0 -84.61868470932861,34.9887597674461,0 -84.7711343281899,34.9907572255424,0 -84.8004169251833,34.9928322796908,0 -84.96785715657791,34.9926829480827,0 -84.97279353781779,34.9926295267483,0 -85.2677172911793,34.9891498087636,0 -85.3599438878245,34.9899781417047,0 -85.4673839007084,34.9901237462044,0 -85.6089602162505,34.9901641616199,0 -85.5830580356282,34.8623226551191,0 -85.5346925955902,34.6224884025546,0 -85.52583413117669,34.5846856151065,0 -85.5118559301513,34.5230148510197,0 -85.46028592417321,34.2901615301398,0 -85.4165672299404,34.0869203579979,0 -85.3957377905852,33.9598292697156,0 -85.38401093584911,33.9054097874599,0 -85.33528685109771,33.6549230949434,0 -85.3049800767665,33.4905940310641,0 -85.2938249844532,33.425875708363,0 -85.2338462673976,33.129237260647,0 -85.2335028922441,33.1201394011529,0 -85.1807197284529,32.8718130182966,0 -85.1623013377526,32.8074457725548,0 -85.1280898176054,32.7770703815279,0 -85.1333007048373,32.7563151798039,0 -85.1248851250497,32.7443832224212,0 -85.1138678519411,32.7343891188468,0 -85.10773330416841,32.6899723746491,0 -85.0904749305908,32.6761523261383,0 -85.10380371878141,32.6459103823229,0 -85.0863240406897,32.6284512647951,0 -85.0841493949267,32.603004344931,0 -85.0707744216369,32.5812538387594,0 -84.9956522169706,32.518928479096,0 -84.9898150430422,32.4548361836926,0 -84.9653850518902,32.4294501858587,0 -84.970961884914,32.3968128124947,0 -84.9844889642181,32.3870933241337,0 -84.97166353138461,32.3715031963467,0 -85.0020899980221,32.3470785227396,0 -85.0053324510846,32.3295925258289,0 -84.92107090555641,32.2931369847317,0 -84.8946035025639,32.2687353881118,0 -84.8940158788823,32.2591761298648,0 -84.9053609608961,32.2495557759674,0 -84.92367962799079,32.2473889995768,0 -84.9160041260552,32.2285563686775,0 -84.9283716437355,32.2179784387895,0 -84.9757438025875,32.2122487204353,0 -84.9603852752889,32.1919284376309,0 -85.0078260926386,32.1788785384061,0 -85.0243823514691,32.1662750781008,0 -85.0533136579289,32.1266376448382,0 -85.046187259254,32.0908949913561,0 -85.0566549357244,32.0696439454843,0 -85.0620107617352,32.0500102920991,0 -85.0567002477577,32.0173765203509,0 -85.0700671081992,31.9807030736301,0 -85.11515025581549,31.9074247500776,0 -85.1355669344631,31.8548844137198,0 -85.1315611123421,31.7838145657199,0 -85.1301648712312,31.778853672117,0 + + + + + + + + + -81.48505559674619,30.9038830704629,0 -81.50330537724329,30.8817350483411,0 -81.4698871419111,30.8602588644255,0 -81.4794603415988,30.7368833934474,0 -81.45571660482371,30.7164274298842,0 -81.4030527080982,30.9388031406114,0 -81.41640510474601,30.970600047506,0 -81.48505559674619,30.9038830704629,0 + + + + + + + + + Hawaii + empty + + +states.AREA: + 6380.614 + + +states.STATE_NAME: +Hawaii + + +states.STATE_FIPS: +15 + + +states.SUB_REGION: +Pacific + + +states.STATE_ABBR: +HI + + +states.POP2000: + 1211537 + + +states.POP2001: + 1211960 + + +states.POP00_SQMI: + 190 + + +states.DEN_0_100: + 83 + + +USStates.ID: + 50 + + +USStates.State_Name: +Hawaii + + +USStates.Date_Entered: +Aug. 21 1959 + + +USStates.Year_Entered: +1959 + + +USStates.Year_Settled: +1820 + +]]> + #Style_5 + + + -156.326917860547,20.2401578536914,0 + + + + + + + -159.335174733889,21.9483433404175,0 -159.327130348878,22.0446395507162,0 -159.295025589769,22.1248124949548,0 -159.343195828355,22.1970166285359,0 -159.391366885913,22.2291198667724,0 -159.576012589057,22.2131796383001,0 -159.712505933171,22.1490592515515,0 -159.800814224332,22.0366665967853,0 -159.736592652746,21.9644203111023,0 -159.640246973766,21.9483657695954,0 -159.576021285803,21.8841361312636,0 -159.439545188912,21.8680716835921,0 -159.335174733889,21.9483433404175,0 + + + + + + + + + -160.073803556017,22.0041773078075,0 -160.121962433575,21.9639787234984,0 -160.22633646805,21.8915919620539,0 -160.242406159206,21.8032804408925,0 -160.202259673133,21.7953086498352,0 -160.170137686564,21.8675963686431,0 -160.089858388217,21.9158698594272,0 -160.04970969565,21.9881641068501,0 -160.073803556017,22.0041773078075,0 + + + + + + + + + -157.673329876454,21.2980271804006,0 -157.713472767801,21.3863351682207,0 -157.761642948927,21.4585875674916,0 -157.809815119729,21.4345051589313,0 -157.849959026307,21.5067588029631,0 -157.914179741199,21.6352084806278,0 -157.986428112199,21.6994328594403,0 -158.042626247904,21.6753505680564,0 -158.114894071646,21.5790166217416,0 -158.267431808754,21.5870425200507,0 -158.243342775004,21.5388789757719,0 -158.235318726083,21.4746525812457,0 -158.130951115411,21.3542322862678,0 -158.098833012334,21.2900079773187,0 -157.946306402713,21.3060610107082,0 -157.898134535461,21.3301442923012,0 -157.825871692713,21.249863668784,0 -157.721501646872,21.2819711706226,0 -157.681371117927,21.2739428101649,0 -157.673329876454,21.2980271804006,0 + + + + + + + + + -156.717872676999,21.1374197607644,0 -156.942682512532,21.1615268671346,0 -156.958733487556,21.2096935134305,0 -157.006903742467,21.1856106379825,0 -157.167471487889,21.1936404563437,0 -157.23169415835,21.2337763231398,0 -157.247747506123,21.1615304515084,0 -157.303948796958,21.1374484326638,0 -157.287897522787,21.0812505718402,0 -157.071131928318,21.1053309568586,0 -156.886484099806,21.049134117125,0 -156.766048197649,21.0651768177371,0 -156.717872676999,21.1374197607644,0 + + + + + + + + + -156.196045412482,20.6316494073652,0 -156.131808903973,20.6236229186799,0 -156.043511542555,20.6557325999668,0 -155.98731705257,20.7520616316876,0 -156.011392452548,20.8002253216075,0 -156.260263363072,20.9286712687479,0 -156.356603503292,20.9447263610079,0 -156.477022052544,20.8965651391117,0 -156.525191645863,20.9848701637724,0 -156.597439619788,21.0410647054158,0 -156.653636007318,21.0169850495629,0 -156.693782634023,20.9126240100612,0 -156.637586604165,20.8082609120439,0 -156.525193571704,20.7761496574975,0 -156.493074740185,20.7922042815103,0 -156.460971893198,20.7279810872564,0 -156.436879230878,20.6236212173367,0 -156.396734942946,20.567426981473,0 -156.276317407393,20.5834838609152,0 -156.196045412482,20.6316494073652,0 + + + + + + + + + -157.039050670938,20.928706972385,0 -157.055098211979,20.880538425907,0 -156.982826322974,20.8323776268078,0 -156.990863465776,20.7922371514621,0 -156.96676559866,20.7280207316388,0 -156.886487178396,20.7360494091678,0 -156.814225697816,20.7922527172797,0 -156.806205341549,20.8404186121726,0 -156.910585845163,20.9287186176943,0 -157.039050670938,20.928706972385,0 + + + + + + + + + -155.666192321268,18.921786345087,0 -155.537729780537,19.0422106324423,0 -155.521678713445,19.1224845466533,0 -155.304899038619,19.234878398743,0 -155.152372136648,19.2669919638143,0 -155.015881706841,19.3312115354762,0 -154.927581824535,19.4195186485267,0 -154.815187460665,19.4596764207728,0 -154.791096018678,19.5399604106849,0 -154.975762475196,19.6523353631656,0 -154.975763078096,19.7406434419399,0 -155.072105964772,19.7245855257612,0 -155.096185006144,19.8771146284228,0 -155.200550212445,19.9975288183811,0 -155.561825953369,20.134006968001,0 -155.73844208468,20.2062567699811,0 -155.858857946276,20.2704795241864,0 -155.8909788308,20.1741490505645,0 -155.834786659291,20.0617574252623,0 -155.826761720261,20.0055628964617,0 -155.882958698574,19.9333119780873,0 -155.979300942813,19.8209225278706,0 -156.043524655521,19.7807832517673,0 -155.971258610598,19.6282527113542,0 -155.947178326912,19.4837502062815,0 -155.874927042962,19.3713586083673,0 -155.907031019716,19.1305132974745,0 -155.858861500485,19.0101009103203,0 -155.778585834471,19.01009268801,0 -155.666192321268,18.921786345087,0 + + + + + + + + + Idaho + empty + + +states.AREA: + 83343.643 + + +states.STATE_NAME: +Idaho + + +states.STATE_FIPS: +16 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +ID + + +states.POP2000: + 1293953 + + +states.POP2001: + 1323472 + + +states.POP00_SQMI: + 16 + + +states.DEN_0_100: + 99 + + +USStates.ID: + 43 + + +USStates.State_Name: +Idaho + + +USStates.Date_Entered: +July 3 1890 + + +USStates.Year_Entered: +1890 + + +USStates.Year_Settled: +1842 + +]]> + #Style_5 + + + -114.661865415542,44.3858954726855,0 + + + + + + -117.026295220045,43.6790312226004,0 -117.018864363596,41.9947941808341,0 -116.992313337997,41.9947945094663,0 -115.947544658193,41.9945994628996,0 -115.024862911148,41.9965064559528,0 -114.269471632825,41.9959242345073,0 -114.039072662345,41.9953908974688,0 -112.989575449033,42.0011467864027,0 -112.147116504391,41.9990540573659,0 -112.100514491537,42.0023005848578,0 -111.494586313343,42.0001709690538,0 -111.04869741386,41.9962033494069,0 -111.046780328328,42.503251870505,0 -111.04921566545,43.0198830902658,0 -111.047498202203,43.2847346290475,0 -111.046771181184,43.5155282322774,0 -111.050405173289,43.9825533508377,0 -111.051560651262,44.4733232643312,0 -111.094630553034,44.4861244421476,0 -111.128918633835,44.5007569482957,0 -111.134358940584,44.5279024352059,0 -111.170241896337,44.5451861352417,0 -111.178764521847,44.5648509025126,0 -111.219507505818,44.5731699249139,0 -111.234233165171,44.6025621977815,0 -111.219797798385,44.6179816965382,0 -111.223971342305,44.6269081075219,0 -111.270665480153,44.6422120666433,0 -111.270207923466,44.6738019972086,0 -111.295668417103,44.6829380106443,0 -111.315475367488,44.7051930233212,0 -111.31922172667,44.7278640397875,0 -111.349977174405,44.7261775679182,0 -111.372309536392,44.7450870429474,0 -111.384959585063,44.7376939086963,0 -111.395084047622,44.7088695111883,0 -111.44363207933,44.7131796185895,0 -111.475425113078,44.7021622259545,0 -111.480804007084,44.6914159868954,0 -111.460691885141,44.6700230655225,0 -111.458265515114,44.6525553200246,0 -111.470167827235,44.6407103470055,0 -111.50769070953,44.6376885788042,0 -111.501747128314,44.6159712293443,0 -111.514526468783,44.5931969532598,0 -111.492903869929,44.5511890986189,0 -111.462827429646,44.5499420909707,0 -111.459325300921,44.5379218382476,0 -111.482573106114,44.536143833035,0 -111.490240946754,44.5286973145766,0 -111.56723085062,44.5528666934207,0 -111.605248563607,44.542989843785,0 -111.684862667357,44.5507519238675,0 -111.716997718561,44.5337606582907,0 -111.766918095449,44.5188253853155,0 -111.792608215621,44.5184627416638,0 -111.80783730012,44.5039818716956,0 -111.872502337514,44.5562658469912,0 -111.940385892152,44.5497266545093,0 -111.977818321591,44.5296761932588,0 -112.023613199364,44.5350432018407,0 -112.027077158683,44.5228438141025,0 -112.059366916596,44.5286115853182,0 -112.099896990645,44.5182317486371,0 -112.124190576071,44.5282529189526,0 -112.19965792462,44.5314495370004,0 -112.217763617989,44.538495263148,0 -112.230398525049,44.5594913548598,0 -112.256675563109,44.5599718966745,0 -112.282341327877,44.5417028629559,0 -112.342507416987,44.5251001904491,0 -112.34057705949,44.4971802630882,0 -112.367583641487,44.4492705303202,0 -112.420753287455,44.4492848652432,0 -112.458519702915,44.4688346426366,0 -112.501839547759,44.4629973763857,0 -112.539324359313,44.4774975037791,0 -112.653189032213,44.4808022867295,0 -112.714325884719,44.4969354760903,0 -112.733712266678,44.4843203521209,0 -112.779863145228,44.473921967913,0 -112.796227919073,44.4580108762872,0 -112.826691426867,44.4210844413589,0 -112.818709940506,44.3948197608762,0 -112.817396542611,44.3642025255851,0 -112.844275309657,44.353639685816,0 -112.870781128928,44.3699785388203,0 -112.887307562786,44.392852037925,0 -112.938281270743,44.407192303823,0 -112.985249652408,44.4355404997863,0 -113.012014532,44.4377151798982,0 -113.006658758598,44.4526157258091,0 -113.020309135991,44.4817760622967,0 -113.007713096479,44.5106119571576,0 -113.037821112649,44.5329591224566,0 -113.039660671342,44.5562941508867,0 -113.083036889648,44.5826813811508,0 -113.054289194175,44.6242889653874,0 -113.073143949778,44.6755255639002,0 -113.098955981719,44.6959159515966,0 -113.101703254015,44.7151730541415,0 -113.127431313459,44.7373793502759,0 -113.138273905949,44.7614392171565,0 -113.24033835154,44.8118408943235,0 -113.257154262582,44.810486836588,0 -113.318680101131,44.7802285072048,0 -113.340631071319,44.7790001716196,0 -113.350024223891,44.8075686572204,0 -113.42137886332,44.8336996325871,0 -113.445573357454,44.8512398138089,0 -113.496190944735,44.9306703825127,0 -113.487348245354,44.9395739483575,0 -113.463413760979,44.9407755008957,0 -113.448764850883,44.9495226314899,0 -113.44102942911,44.9981947865069,0 -113.458853128792,45.0274494937816,0 -113.455435394093,45.0433489576732,0 -113.486305515199,45.0583215917022,0 -113.490158803375,45.07121894252819,0 -113.520609069994,45.08206385133451,0 -113.510225662875,45.1078357229334,0 -113.552272678027,45.1075492325193,0 -113.574375982832,45.1177112498262,0 -113.571583860449,45.1345453195545,0 -113.594099232644,45.149742661863,0 -113.600928342409,45.1809921888967,0 -113.64559265708,45.2067902002949,0 -113.690120087671,45.262281529236,0 -113.68870893801,45.2777882479016,0 -113.739080720354,45.3215307727051,0 -113.741309985249,45.3823864841092,0 -113.775025938091,45.4101724087205,0 -113.785662417081,45.4456336800122,0 -113.769167956071,45.4777077122394,0 -113.772304324589,45.5070541264418,0 -113.780933520736,45.5168654883577,0 -113.833715005823,45.5149081483478,0 -113.803754486689,45.5837295106944,0 -113.822485335827,45.6006361604291,0 -113.852027200864,45.60956236649611,0 -113.903305686338,45.6134911520045,0 -113.902199681462,45.6372529821309,0 -113.923532205814,45.6551247458339,0 -113.926698671543,45.6712113532369,0 -113.964144746081,45.67937838995221,0 -113.971148905291,45.6973761439766,0 -114.009472169193,45.6863322994531,0 -114.019878777802,45.6723780179129,0 -114.010990085379,45.6525110636154,0 -114.018032071357,45.6407731495898,0 -114.05651557884,45.6251440063411,0 -114.082966989764,45.5863787056049,0 -114.118139289111,45.57112721879371,0 -114.132047849072,45.550382696738,0 -114.172667788196,45.54392407099141,0 -114.194808749935,45.5279173495385,0 -114.241997909503,45.5352908283129,0 -114.247880062291,45.5029457876717,0 -114.26223890106,45.4858597041806,0 -114.326434503356,45.4574246659907,0 -114.350246661543,45.4633830586196,0 -114.371457222895,45.485740801367,0 -114.419051016147,45.4990079989286,0 -114.433555120266,45.5276335826489,0 -114.462708066367,45.547847634842,0 -114.49659127146,45.5466496233752,0 -114.527392140633,45.5581929137358,0 -114.56092431692,45.5487399822622,0 -114.540957804767,45.59639733862921,0 -114.564678473634,45.624271464153,0 -114.501741735013,45.65239374591759,0 -114.510706655448,45.6740575393162,0 -114.497560885022,45.6944015040476,0 -114.534976768211,45.7229965521011,0 -114.541958001694,45.7459993063995,0 -114.563542382615,45.76239875426181,0 -114.517375770656,45.8100678088233,0 -114.499164076216,45.8426838388298,0 -114.473803267544,45.8394681128492,0 -114.443231585826,45.8526214179583,0 -114.407525017428,45.84645312785811,0 -114.392838283787,45.870886524333,0 -114.413530117056,45.9106511998636,0 -114.429460795441,45.9214773546562,0 -114.405290578501,45.9539789286456,0 -114.412447296507,45.971972990138,0 -114.484455408522,45.9898066653888,0 -114.474529639485,46.0097653411895,0 -114.494321056653,46.0234105503775,0 -114.465756583121,46.05081557880481,0 -114.456029627256,46.0822298311072,0 -114.477370071638,46.1073573510943,0 -114.506568594996,46.116142578097,0 -114.518944233429,46.13606300379761,0 -114.509613705042,46.1574178541686,0 -114.467017880608,46.1552626443821,0 -114.440879403543,46.1689689930953,0 -114.439553093386,46.2202541051873,0 -114.472833625773,46.2437832404928,0 -114.473795189375,46.25296144733741,0 -114.431795791851,46.2847113519319,0 -114.409796078984,46.3929118282104,0 -114.397016905685,46.39954564895069,0 -114.384024894777,46.4281789078305,0 -114.410714938833,46.4873716679663,0 -114.360467827582,46.5061249643996,0 -114.350115003954,46.51738981557321,0 -114.343319528083,46.58788169279891,0 -114.324712393283,46.6228397420843,0 -114.334685197666,46.6542270306183,0 -114.384017731174,46.6615966222723,0 -114.441535907613,46.64571558739091,0 -114.48471804306,46.6235748090716,0 -114.54039089668,46.63789093313041,0 -114.610825986771,46.6290480359896,0 -114.644740120825,46.6608240472296,0 -114.645038012873,46.6709214874172,0 -114.625926712927,46.6871072963735,0 -114.673887229565,46.73472166479179,0 -114.698431226356,46.73376015783131,0 -114.748105478154,46.695132417127,0 -114.782919473288,46.7030400738234,0 -114.777832199076,46.7557169515489,0 -114.794030033961,46.7665316733836,0 -114.840791891296,46.7755381340251,0 -114.866603242816,46.7970455479343,0 -114.902324956243,46.7994334872257,0 -114.948408839876,46.85244681299441,0 -114.940566557467,46.8908879547799,0 -114.92412521448,46.9071654671376,0 -114.964730239693,46.9252129542069,0 -115.001574268432,46.9588093410594,0 -115.037334581308,46.9630013040754,0 -115.055638385326,46.97335809520661,0 -115.081336055121,47.0265244081573,0 -115.135507084528,47.0635505060209,0 -115.148683842445,47.09174197245919,0 -115.172496072325,47.097570775052,0 -115.193073569516,47.1240264397241,0 -115.296234653795,47.179550129713,0 -115.325227834205,47.2451499352386,0 -115.343661098271,47.25502252875,0 -115.40820774964,47.2635936928256,0 -115.42664105155,47.2743741901806,0 -115.501930155564,47.2816443931147,0 -115.523064072441,47.2919825693658,0 -115.555520671095,47.3346132613456,0 -115.599535907233,47.3700033411226,0 -115.638782326482,47.3800438733229,0 -115.666477789603,47.3991675172781,0 -115.750326632884,47.4224758337817,0 -115.75010555794,47.4339660678209,0 -115.732481530032,47.4453037682126,0 -115.656087137581,47.449179888517,0 -115.643185737842,47.45779380748271,0 -115.64014181996,47.47523519828921,0 -115.692770525831,47.4895405775821,0 -115.701522643005,47.5208936310403,0 -115.742829391272,47.5336915052907,0 -115.69208790895,47.59072095328569,0 -115.698284137246,47.616080699199,0 -115.734067407585,47.6398797756934,0 -115.733665317341,47.6955544944202,0 -115.775727256626,47.7097326241589,0 -115.790537518206,47.74483840017609,0 -115.836742105247,47.75628147907741,0 -115.849323962062,47.8051824706779,0 -115.869809516855,47.82745247882439,0 -115.90392118837,47.841074097063,0 -115.937842286573,47.86712411466291,0 -115.998932367501,47.92514082913019,0 -116.025316086924,47.9649391580749,0 -116.053492448537,47.9761917715222,0 -116.055497508913,48.2084837718549,0 -116.05669220337,48.4986651887118,0 -116.063531289275,48.99995046269709,0 -117.032049523854,48.99993132673121,0 -117.029111695195,48.8380752730768,0 -117.038868452187,48.0461859667744,0 -117.037471831606,47.9710924196381,0 -117.04179475453,47.3614417250081,0 -117.042391922165,47.2585012691796,0 -117.040968412195,47.11931911025491,0 -117.04192619733,46.536601774571,0 -117.038558547134,46.4279805738524,0 -117.044470505763,46.3885739799344,0 -117.064184656311,46.3486979530599,0 -117.027973590879,46.3354269634861,0 -117.001642419838,46.3024487520609,0 -116.972724840347,46.24930935868821,0 -116.967490477604,46.1975539420731,0 -116.929426274379,46.165483265634,0 -116.961637658488,46.0972742225682,0 -116.987211805214,46.07850889735371,0 -116.957723390605,46.06568768466321,0 -116.919132428078,45.995175487463,0 -116.89819704847,45.98051594169479,0 -116.856471818728,45.9035973451801,0 -116.791262487748,45.84586710608541,0 -116.773707129394,45.8197636132853,0 -116.703180308495,45.8191692439007,0 -116.654397936737,45.7806301604239,0 -116.560631908125,45.7474245686917,0 -116.52827492994,45.7107280103095,0 -116.514915090692,45.6644908956717,0 -116.470418797949,45.6062572703347,0 -116.478551260109,45.566058496306,0 -116.554503319145,45.4936471953906,0 -116.565771964133,45.4598636753961,0 -116.672265496083,45.335410289815,0 -116.688813374421,45.2623508428019,0 -116.736585294563,45.1373070907968,0 -116.761268252635,45.1063007182859,0 -116.77809192451,45.0994801033861,0 -116.787210028569,45.075752513234,0 -116.807307341613,45.0497552840876,0 -116.854513190899,45.0169452945603,0 -116.848097045025,45.0000421568822,0 -116.855887624852,44.9799657227584,0 -116.848158998462,44.9717412377244,0 -116.831396506105,44.9726336704264,0 -116.847556799088,44.9548499437335,0 -116.835396183444,44.9201440913313,0 -116.867076347262,44.8686084474449,0 -116.897366859846,44.8485551014903,0 -116.909620757374,44.8289402518746,0 -116.951494105467,44.7760351265198,0 -117.039572246368,44.749115712801,0 -117.066513051783,44.6975569657362,0 -117.079353923671,44.6893364257274,0 -117.130503910469,44.5725238664124,0 -117.143939864097,44.5592869485007,0 -117.1451606624,44.5346556241885,0 -117.187391126196,44.5118056022903,0 -117.203962567437,44.4857855049483,0 -117.224409907123,44.4729870546087,0 -117.217221802736,44.4278552410788,0 -117.236920894466,44.3899826429371,0 -117.201602017039,44.3394380033709,0 -117.217455714498,44.3006651372011,0 -117.213571878683,44.2847196851647,0 -117.170722952687,44.2533327374994,0 -117.143278940324,44.2506322436234,0 -117.112691921322,44.2698052758843,0 -117.100560675447,44.2670779004604,0 -117.081386867577,44.2438466037113,0 -117.052027613364,44.2315559603412,0 -117.030352023293,44.2493365546444,0 -116.99270711064,44.2470633967105,0 -116.976127235356,44.225182362645,0 -116.981871729265,44.1978422986385,0 -116.913051097385,44.1773044506484,0 -116.902254132599,44.1463138321419,0 -116.946886686949,44.0930258111951,0 -116.963443200146,44.090298169114,0 -116.976817765704,44.0738948202899,0 -116.933593484224,44.0142025695716,0 -116.967956848099,43.9631956105834,0 -116.959715844454,43.9285769433414,0 -116.978141228786,43.9044410423274,0 -116.978148119756,43.8734692305504,0 -116.985769945695,43.8593508862889,0 -117.016220426787,43.8529724419634,0 -117.010505344258,43.8397697264411,0 -117.027626548295,43.8315678483138,0 -117.037117330473,43.800141963624,0 -117.023794477971,43.7537015926794,0 -117.026295220045,43.6790312226004,0 + + + + + + + + Illinois + empty + + +states.AREA: + 56299.387 + + +states.STATE_NAME: +Illinois + + +states.STATE_FIPS: +17 + + +states.SUB_REGION: +E N Cen + + +states.STATE_ABBR: +IL + + +states.POP2000: + 12419293 + + +states.POP2001: + 12520522 + + +states.POP00_SQMI: + 221 + + +states.DEN_0_100: + 80 + + +USStates.ID: + 21 + + +USStates.State_Name: +Illinois + + +USStates.Date_Entered: +Dec. 3 1818 + + +USStates.Year_Entered: +1818 + + +USStates.Year_Settled: +1720 + +]]> + #Style_5 + + + -89.20376782672931,40.0640001695085,0 + + + + + + -88.0715914713672,37.5110386032244,0 -88.134202057652,37.5836204217666,0 -88.15766418948979,37.628526559458,0 -88.159404386901,37.6607335395919,0 -88.1336703044624,37.7007907786447,0 -88.0725039638053,37.7354461998767,0 -88.0356073439534,37.8057279050194,0 -88.0860624224551,37.8176568675887,0 -88.0892974561442,37.8312944778462,0 -88.04216892231911,37.8275671956745,0 -88.03427224647881,37.8437911301456,0 -88.0757701619268,37.8678545841173,0 -88.101489939404,37.895351144247,0 -88.10011663858219,37.9062154284197,0 -88.04490053507431,37.8960489721139,0 -88.0266198217967,37.9058031174197,0 -88.0304728445231,37.9176363841544,0 -88.084033312787,37.9237058057134,0 -88.07897489688909,37.9440458253834,0 -88.0646539089454,37.9298283441586,0 -88.0418029841928,37.9345432471494,0 -88.0425431233507,37.9563100133668,0 -88.0217369738459,37.9751012485706,0 -88.0292447284786,38.0082816708523,0 -88.0217296742097,38.0335770457263,0 -88.04150591052481,38.0383492879413,0 -88.0431234631707,38.0451661890239,0 -88.03476137876019,38.0541307602029,0 -87.9753264381124,38.0733527756694,0 -87.96489699678421,38.0967941055912,0 -88.0123608797262,38.092392337746,0 -88.018579177984,38.1033482133547,0 -87.97353404593839,38.1318056958815,0 -87.9505995597833,38.1369591387537,0 -87.932021762155,38.1575737007801,0 -87.9323194769958,38.1711770029956,0 -87.9779598594692,38.2007606004592,0 -87.9860398723023,38.2348604423061,0 -87.98005073657551,38.241131787639,0 -87.92595000854421,38.3048183818949,0 -87.9136816882386,38.3023921025994,0 -87.91413936139951,38.2810944074491,0 -87.8884965521701,38.3007057736598,0 -87.8834763762205,38.3155984794844,0 -87.8740691509129,38.3168343756391,0 -87.8630366972759,38.2854084473723,0 -87.85011225303271,38.2861445830363,0 -87.834532977994,38.3525705303994,0 -87.78404833397759,38.3781708227389,0 -87.7484565770349,38.4180116772378,0 -87.7389806672907,38.4455273875839,0 -87.75868794190011,38.4571433599795,0 -87.7561244372712,38.4661728281435,0 -87.6928444866203,38.4815804420218,0 -87.6799352433336,38.504053007157,0 -87.65355967551621,38.5004900554631,0 -87.65141571258729,38.5154169292116,0 -87.6729692972829,38.547471787341,0 -87.6528804379318,38.5739189952751,0 -87.6406195798681,38.5932251150025,0 -87.61985172548459,38.5992561043613,0 -87.6286714982266,38.6229644058157,0 -87.6252152154989,38.642857998943,0 -87.588501337721,38.6722157708788,0 -87.5439137139998,38.6860210401793,0 -87.50833650081,38.7366800091112,0 -87.5080237439807,38.7697683547433,0 -87.5190486024822,38.7767453485141,0 -87.50790945748121,38.7956049059644,0 -87.5505288034456,38.8579361229776,0 -87.559081635284,38.869856862415,0 -87.5392219544495,38.9049057469745,0 -87.5302039208332,38.9319629772649,0 -87.533492428354,38.9637465338765,0 -87.5479276301993,38.9771206273788,0 -87.5918815898562,38.9941261861117,0 -87.581772429957,38.9957855730057,0 -87.58534329877401,39.062476908506,0 -87.6120316181093,39.0846475088299,0 -87.630891938142,39.0890152076407,0 -87.6316931128207,39.1039838431484,0 -87.66228775754109,39.1135088826113,0 -87.6594801644014,39.1306938293312,0 -87.6703524034648,39.1467190724917,0 -87.64428222970631,39.1685465310611,0 -87.60795025538761,39.196107453445,0 -87.5942322592859,39.1981674228522,0 -87.58861691821311,39.2085051229499,0 -87.5845886371286,39.2487915548446,0 -87.60692047638401,39.2582021441748,0 -87.6158242074897,39.2814561230773,0 -87.61064369979241,39.2976988710138,0 -87.62526201039,39.307441385019,0 -87.5976886138014,39.3383057314831,0 -87.540237703126,39.3505623907844,0 -87.5385896158313,39.4774828667869,0 -87.5355977432246,39.6093761467476,0 -87.5357932746107,39.8873391886275,0 -87.53535686974401,40.1662317074521,0 -87.5356953046261,40.4832822109023,0 -87.5371908503425,40.4946461888117,0 -87.5326961499881,40.7454479031807,0 -87.53205270695879,41.0099629234772,0 -87.5317652032273,41.1737899174832,0 -87.53248451078061,41.3013387221503,0 -87.5326861745456,41.4697503872218,0 -87.5299063108434,41.7236260875045,0 -87.6126760323676,41.8473653861124,0 -87.67060590164419,42.0598519291133,0 -87.7603024221355,42.1564820299593,0 -87.837014916084,42.3142352747747,0 -87.7973819562241,42.4891528495242,0 -88.1947902657089,42.4896315487889,0 -88.29798928423431,42.4919886619727,0 -88.7066230964608,42.4896714789996,0 -88.76505788322029,42.4909223638021,0 -88.93918704924511,42.4908797705788,0 -89.35955888342031,42.4979178413637,0 -89.4006131996787,42.4975019535639,0 -89.8347389483978,42.5034685663175,0 -89.92369141557219,42.5041158651446,0 -90.42010292616368,42.5083649645861,0 -90.6384560963599,42.5093636839918,0 -90.6518991107146,42.4947005718712,0 -90.64847377380832,42.475647019796,0 -90.60595537042839,42.4605645940667,0 -90.5637116510656,42.4218436822154,0 -90.4911711742602,42.3887914637005,0 -90.44172508028031,42.3600836299974,0 -90.4278091232618,42.340644954386,0 -90.4181124359413,42.2639391318113,0 -90.4073017721273,42.2426617515853,0 -90.3678582678001,42.2102266723886,0 -90.3237299895918,42.1973374145764,0 -90.23106311278499,42.1597414854526,0 -90.19170240605,42.1227099310285,0 -90.1762144636605,42.1205242372018,0 -90.1667767223318,42.1037669165116,0 -90.1682262959709,42.0610667627835,0 -90.1506630602384,42.0334532086115,0 -90.1427967503368,41.9839895278463,0 -90.15464484512322,41.9308021367651,0 -90.19596566516668,41.8061669912383,0 -90.2554387407709,41.7817690413387,0 -90.30501586217991,41.756497081381,0 -90.32615702333789,41.722767950897,0 -90.34126241056562,41.6491222689255,0 -90.3394762639213,41.6028314888971,0 -90.34849427679229,41.5868824103659,0 -90.42313526378251,41.5673054184025,0 -90.43509834614001,41.5436125873014,0 -90.45512615442569,41.5275795523085,0 -90.5409754772051,41.5260034668008,0 -90.6008378029169,41.5096188031289,0 -90.6589297375422,41.4623507046517,0 -90.708354613045,41.4500936593358,0 -90.78004268318989,41.44985255988,0 -90.84428378227449,41.4446525356188,0 -90.949800649924,41.4212638456605,0 -91.0008427707096,41.4311127421861,0 -91.02763777623071,41.4235364759013,0 -91.05593554169049,41.4014073054416,0 -91.07342897262021,41.3349253706845,0 -91.10249645615799,41.2678481882471,0 -91.10167201924359,41.2315519929841,0 -91.0564663602341,41.176290257977,0 -91.0184022505193,41.1658577458188,0 -90.9904854657331,41.1444046114074,0 -90.95792988917549,41.1043932523764,0 -90.95479391031741,41.0703973298849,0 -90.96085093423019,40.9505415875963,0 -90.98341896936651,40.9239649616112,0 -91.0493536735639,40.8796233416421,0 -91.08905026959479,40.8337674861069,0 -91.09289515262361,40.7615871092817,0 -91.12013244580791,40.7054430853053,0 -91.1293030749525,40.6821889727746,0 -91.16264440347912,40.6563523669938,0 -91.2150599786405,40.643859446667,0 -91.2622111209491,40.6395869370641,0 -91.3757627300253,40.6034802448646,0 -91.4112710901028,40.5730126128812,0 -91.41302597331141,40.5480345602038,0 -91.38225565222849,40.5285383313692,0 -91.37494647812029,40.5036976293474,0 -91.38555116553908,40.4472940413254,0 -91.3729083225561,40.4030325886378,0 -91.38590919839099,40.3924048874231,0 -91.41896859131511,40.3869192694689,0 -91.44874715640491,40.3719466182637,0 -91.486849457272,40.309668416,0 -91.4990871746939,40.2514224267414,0 -91.50670141476959,40.2005039120117,0 -91.51628405060909,40.1345898206457,0 -91.50416020997871,40.0667571230242,0 -91.4874432777371,40.0057984567776,0 -91.4473948316692,39.9461098791871,0 -91.43054077302692,39.9218827311204,0 -91.4342030257459,39.9018745899127,0 -91.4511409854999,39.885288198019,0 -91.4493403590742,39.8630942448561,0 -91.381863132745,39.8038177672296,0 -91.3735696173857,39.7613181753518,0 -91.3672369870804,39.7246854919977,0 -91.31781179944051,39.6859625802781,0 -91.2033893787345,39.6000674783423,0 -91.15632949744598,39.5526394130489,0 -91.09375072632439,39.5289731742514,0 -91.064521543479,39.4740300232192,0 -91.03647490820309,39.4444585084789,0 -90.94802423776449,39.4006319007784,0 -90.8506238710589,39.3504997276601,0 -90.77946911185738,39.2968502329079,0 -90.7382075249523,39.2478582113647,0 -90.73246246782379,39.2247947417977,0 -90.71831723958958,39.1959215056912,0 -90.7168599355041,39.1442594879132,0 -90.6905224771304,39.0937493584583,0 -90.7077119263589,39.0582272816598,0 -90.70619359871029,39.0378416951969,0 -90.66899973918559,38.9353034194491,0 -90.6273348623125,38.8808451829242,0 -90.57044835788962,38.8713768681923,0 -90.5305451069931,38.8916590934777,0 -90.4699576683671,38.9592275775329,0 -90.41318604000151,38.9623782480884,0 -90.31985371572098,38.9249561810614,0 -90.2790431101957,38.9247652789138,0 -90.2440385800512,38.9145571194291,0 -90.13292049439282,38.8530794199913,0 -90.1132283291809,38.8305155786969,0 -90.1218345138212,38.8005591450278,0 -90.13528557177762,38.7855333244896,0 -90.1635076675385,38.7731473780178,0 -90.19668164834522,38.7240148841336,0 -90.2023506849595,38.7004136293542,0 -90.1836888738229,38.6588222213685,0 -90.1838189833793,38.610322629253,0 -90.24105709170181,38.5628573013572,0 -90.2613445745186,38.532820806846,0 -90.2658995864079,38.5187409219187,0 -90.30195808265761,38.4274101853512,0 -90.3397250925035,38.3909000937545,0 -90.35880701471911,38.365383796682,0 -90.36946594646452,38.3236130942444,0 -90.36488893881901,38.2343531960061,0 -90.3368353674101,38.1887672607723,0 -90.2897533449443,38.1668707739162,0 -90.25417712909579,38.1222235068627,0 -90.20764422452261,38.0889589210515,0 -90.13482705649538,38.0540042508408,0 -90.1194535601973,38.0323252746278,0 -90.04203572235682,37.9932585919637,0 -90.01092211725509,37.9693709792311,0 -89.95833872049469,37.9636867798315,0 -89.97902314782711,37.9119372642027,0 -89.93798377619601,37.8780970980944,0 -89.900659718619,37.8759567792384,0 -89.8669213710244,37.8919285019704,0 -89.8611532194338,37.9055391707122,0 -89.8518221998746,37.9051156711928,0 -89.728551127852,37.8410437278203,0 -89.6911585166015,37.8048461895875,0 -89.6759604497414,37.784021807452,0 -89.6665610141995,37.7455048947008,0 -89.58153539397119,37.7061554249312,0 -89.5216197606815,37.6948481923868,0 -89.51347129814729,37.6798905957089,0 -89.51927739008779,37.6504256791403,0 -89.5134636137585,37.6159786570251,0 -89.52506805859341,37.5720063661821,0 -89.4948777729593,37.4917750136486,0 -89.4537142750772,37.4532354416246,0 -89.4276653438195,37.4110680347262,0 -89.43582789426451,37.3557666795513,0 -89.46883367402491,37.3394589952529,0 -89.5006722080316,37.329491318765,0 -89.5139774032488,37.3050126842203,0 -89.51397668384681,37.276452254325,0 -89.48968358551591,37.2560512507203,0 -89.46539822681051,37.2537814318187,0 -89.4683040002904,37.2243166291394,0 -89.44060600449021,37.165367829282,0 -89.42388077877629,37.1372534192951,0 -89.3800701656133,37.0991331193152,0 -89.3830287336186,37.0492635096727,0 -89.3110577890705,37.0097321155337,0 -89.28284342367,36.9992571418446,0 -89.26207602720631,37.0087367322465,0 -89.26431960659031,37.0277834462293,0 -89.3097775142834,37.0609596218128,0 -89.30336936544271,37.0854347008365,0 -89.28431079352841,37.0912941061444,0 -89.26413039669779,37.0871742876795,0 -89.2377536103058,37.0417835282019,0 -89.2101262118458,37.0290237051986,0 -89.1935842098097,36.9868222806571,0 -89.1299298602513,36.9881656914537,0 -89.1503164771803,36.9984916525611,0 -89.1744039557536,37.0257625307982,0 -89.16962098937491,37.0642870560925,0 -89.14641970199381,37.0932369170363,0 -89.1168931380891,37.1121885561653,0 -89.0651040416988,37.1859115907085,0 -88.99324011836519,37.2200879803029,0 -88.9325677662407,37.2184595035745,0 -88.8633498471503,37.2022475575954,0 -88.7465598581524,37.1521615318569,0 -88.73916655930481,37.1412363376799,0 -88.6884212086995,37.1354651044129,0 -88.6142679530367,37.1091025287746,0 -88.5593190002438,37.0728714131831,0 -88.5173176378463,37.0648267364289,0 -88.4907432667963,37.0682371308779,0 -88.4768417264925,37.0722004387704,0 -88.4505110390145,37.0987273102449,0 -88.42255499105021,37.1569654245737,0 -88.450738961298,37.205724438504,0 -88.50146891523821,37.2578364471264,0 -88.511365178177,37.2969057632051,0 -88.4676859561995,37.4008084371049,0 -88.419893554403,37.4203432412273,0 -88.3592141681292,37.4093610567464,0 -88.3117424820464,37.4429033025395,0 -88.0879105655745,37.4763216973515,0 -88.0715914713672,37.5110386032244,0 + + + + + + + + Indiana + empty + + +states.AREA: + 36400.304 + + +states.STATE_NAME: +Indiana + + +states.STATE_FIPS: +18 + + +states.SUB_REGION: +E N Cen + + +states.STATE_ABBR: +IN + + +states.POP2000: + 6080485 + + +states.POP2001: + 6138368 + + +states.POP00_SQMI: + 167 + + +states.DEN_0_100: + 85 + + +USStates.ID: + 19 + + +USStates.State_Name: +Indiana + + +USStates.Date_Entered: +Dec. 11 1816 + + +USStates.Year_Entered: +1816 + + +USStates.Year_Settled: +1733 + +]]> + #Style_5 + + + -86.27615732038611,39.9127401204667,0 + + + + + + -86.3416058899801,38.1772881494571,0 -86.29767433252459,38.1503040958879,0 -86.29144007500941,38.0784895277861,0 -86.277698957837,38.058172975235,0 -86.2521549356747,38.0407215021446,0 -86.1906216841403,38.0177584307759,0 -86.104986573394,38.0113361451773,0 -86.05271568926411,37.9667844806183,0 -86.0316198158307,37.9929506600364,0 -86.0066633201115,38.0017670737263,0 -85.9585820940509,38.0118406095775,0 -85.93087193559511,38.034048876233,0 -85.9147511151841,38.0648748591422,0 -85.9120745452086,38.1800014838715,0 -85.8523357521911,38.238561041348,0 -85.8399076966583,38.2762914813239,0 -85.8065513133062,38.2861792248908,0 -85.7862108031498,38.2823915940124,0 -85.7469260083932,38.2703150949771,0 -85.681388997794,38.3009537036963,0 -85.654228238662,38.3377528692459,0 -85.64359297482039,38.3836879378367,0 -85.6126402894388,38.446670375764,0 -85.50720002378741,38.471419551854,0 -85.4663821281019,38.5181753628103,0 -85.432369780701,38.5370160928693,0 -85.41746171924881,38.5614756142213,0 -85.4244045991195,38.5848401599215,0 -85.4536792483365,38.6946745390103,0 -85.4466906213012,38.7248406803013,0 -85.41818661626441,38.7384171670398,0 -85.33500919580089,38.7370064025018,0 -85.2713939330139,38.7443767592676,0 -85.2051618437764,38.6958170413595,0 -85.16093321350211,38.6951765052421,0 -85.1196570780868,38.7141393628001,0 -85.06845466106159,38.750424603378,0 -85.0250730726016,38.764291113864,0 -84.9756111877111,38.7806410183922,0 -84.8187802303235,38.7934099982582,0 -84.82442619105041,38.8344629497042,0 -84.78744612597821,38.8666434823042,0 -84.7886668678083,38.8843852980114,0 -84.8032240050715,38.8971908595052,0 -84.8597435114244,38.9020425223312,0 -84.8752543860379,38.9094313024092,0 -84.8758801493223,38.9276041700824,0 -84.846315847352,38.9546310780086,0 -84.83444439657789,38.98277550246,0 -84.8442256667783,39.0058310025456,0 -84.8762931465368,39.0328954474865,0 -84.8899961256038,39.0506485732317,0 -84.8867079668198,39.0650450015205,0 -84.8278613547987,39.1036877674048,0 -84.81148058301,39.1025855115064,0 -84.8120705333745,39.3030292262759,0 -84.8120249021854,39.3123331649208,0 -84.8111048340875,39.5131632038426,0 -84.8110367793544,39.5640506850582,0 -84.808696532672,39.7332992702085,0 -84.8061497587903,39.9171665438967,0 -84.8035641264148,40.013990635484,0 -84.79538778828569,40.3195005333353,0 -84.7945562939653,40.3530507566997,0 -84.7932521538178,40.5887382366961,0 -84.7930613218788,40.7288603729197,0 -84.79102327254211,40.9377084936207,0 -84.79052709599461,40.9883412320642,0 -84.79158626712351,41.2531325315222,0 -84.7909755666301,41.2838180261002,0 -84.7918972237936,41.4278994604409,0 -84.79136990395649,41.5304919381552,0 -84.79037747295131,41.6974947329852,0 -84.7884777858482,41.7609594561938,0 -84.8260080463026,41.7618751066694,0 -85.1931406144237,41.7628675471372,0 -85.29720963584781,41.7635810035748,0 -85.65945882918869,41.7626275140628,0 -85.79922697228621,41.7635349679273,0 -86.0683022053847,41.7646284325784,0 -86.2345652919433,41.7648642479853,0 -86.5251809764443,41.7655403363901,0 -86.8348296412819,41.7655047552312,0 -86.9424598927725,41.7165034838214,0 -87.2338545044322,41.6261887207928,0 -87.3947466651328,41.6341912134461,0 -87.4419740387024,41.6581129712715,0 -87.41930696191859,41.6763663513711,0 -87.46371089171021,41.671624547774,0 -87.5299063108434,41.7236260875045,0 -87.5326861745456,41.4697503872218,0 -87.53248451078061,41.3013387221503,0 -87.5317652032273,41.1737899174832,0 -87.53205270695879,41.0099629234772,0 -87.5326961499881,40.7454479031807,0 -87.5371908503425,40.4946461888117,0 -87.5356953046261,40.4832822109023,0 -87.53535686974401,40.1662317074521,0 -87.5357932746107,39.8873391886275,0 -87.5355977432246,39.6093761467476,0 -87.5385896158313,39.4774828667869,0 -87.540237703126,39.3505623907844,0 -87.5976886138014,39.3383057314831,0 -87.62526201039,39.307441385019,0 -87.61064369979241,39.2976988710138,0 -87.6158242074897,39.2814561230773,0 -87.60692047638401,39.2582021441748,0 -87.5845886371286,39.2487915548446,0 -87.58861691821311,39.2085051229499,0 -87.5942322592859,39.1981674228522,0 -87.60795025538761,39.196107453445,0 -87.64428222970631,39.1685465310611,0 -87.6703524034648,39.1467190724917,0 -87.6594801644014,39.1306938293312,0 -87.66228775754109,39.1135088826113,0 -87.6316931128207,39.1039838431484,0 -87.630891938142,39.0890152076407,0 -87.6120316181093,39.0846475088299,0 -87.58534329877401,39.062476908506,0 -87.581772429957,38.9957855730057,0 -87.5918815898562,38.9941261861117,0 -87.5479276301993,38.9771206273788,0 -87.533492428354,38.9637465338765,0 -87.5302039208332,38.9319629772649,0 -87.5392219544495,38.9049057469745,0 -87.559081635284,38.869856862415,0 -87.5505288034456,38.8579361229776,0 -87.50790945748121,38.7956049059644,0 -87.5190486024822,38.7767453485141,0 -87.5080237439807,38.7697683547433,0 -87.50833650081,38.7366800091112,0 -87.5439137139998,38.6860210401793,0 -87.588501337721,38.6722157708788,0 -87.6252152154989,38.642857998943,0 -87.6286714982266,38.6229644058157,0 -87.61985172548459,38.5992561043613,0 -87.6406195798681,38.5932251150025,0 -87.6528804379318,38.5739189952751,0 -87.6729692972829,38.547471787341,0 -87.65141571258729,38.5154169292116,0 -87.65355967551621,38.5004900554631,0 -87.6799352433336,38.504053007157,0 -87.6928444866203,38.4815804420218,0 -87.7561244372712,38.4661728281435,0 -87.75868794190011,38.4571433599795,0 -87.7389806672907,38.4455273875839,0 -87.7484565770349,38.4180116772378,0 -87.78404833397759,38.3781708227389,0 -87.834532977994,38.3525705303994,0 -87.85011225303271,38.2861445830363,0 -87.8630366972759,38.2854084473723,0 -87.8740691509129,38.3168343756391,0 -87.8834763762205,38.3155984794844,0 -87.8884965521701,38.3007057736598,0 -87.91413936139951,38.2810944074491,0 -87.9136816882386,38.3023921025994,0 -87.92595000854421,38.3048183818949,0 -87.98005073657551,38.241131787639,0 -87.9860398723023,38.2348604423061,0 -87.9779598594692,38.2007606004592,0 -87.9323194769958,38.1711770029956,0 -87.932021762155,38.1575737007801,0 -87.9505995597833,38.1369591387537,0 -87.97353404593839,38.1318056958815,0 -88.018579177984,38.1033482133547,0 -88.0123608797262,38.092392337746,0 -87.96489699678421,38.0967941055912,0 -87.9753264381124,38.0733527756694,0 -88.03476137876019,38.0541307602029,0 -88.0431234631707,38.0451661890239,0 -88.04150591052481,38.0383492879413,0 -88.0217296742097,38.0335770457263,0 -88.0292447284786,38.0082816708523,0 -88.0217369738459,37.9751012485706,0 -88.0425431233507,37.9563100133668,0 -88.0418029841928,37.9345432471494,0 -88.0646539089454,37.9298283441586,0 -88.07897489688909,37.9440458253834,0 -88.084033312787,37.9237058057134,0 -88.0304728445231,37.9176363841544,0 -88.0266198217967,37.9058031174197,0 -88.04490053507431,37.8960489721139,0 -88.10011663858219,37.9062154284197,0 -88.101489939404,37.895351144247,0 -88.0757701619268,37.8678545841173,0 -88.03427224647881,37.8437911301456,0 -88.04216892231911,37.8275671956745,0 -88.0892974561442,37.8312944778462,0 -88.0860624224551,37.8176568675887,0 -88.0356073439534,37.8057279050194,0 -88.0112228968478,37.8013522474257,0 -87.9587380494242,37.7762242517409,0 -87.9396104384072,37.7995510678409,0 -87.9201699786944,37.8097285459625,0 -87.9102286413016,37.8386134566058,0 -87.93684884849461,37.8752235361624,0 -87.9344837893137,37.904203896365,0 -87.92189490993729,37.9199089300241,0 -87.89903644654829,37.9245969463054,0 -87.85718741424731,37.8909469157228,0 -87.8236471993993,37.8782550216566,0 -87.7537824326935,37.8981288619025,0 -87.72820001539741,37.8945849893321,0 -87.7094081501652,37.8997539244585,0 -87.6797209569085,37.8970493378792,0 -87.68471741164321,37.8363728161595,0 -87.6516958656896,37.8281751349818,0 -87.60758877766089,37.8438192895582,0 -87.59363445095011,37.8649107154254,0 -87.5947183783029,37.8907666463449,0 -87.6271375737057,37.9234546658806,0 -87.6043257240091,37.9711573198373,0 -87.5048029485417,37.9156270031471,0 -87.4522884037149,37.9365207505541,0 -87.3875506289597,37.9349692155165,0 -87.3105589119421,37.8937184166169,0 -87.27274593889131,37.8708194103053,0 -87.22676182555399,37.8491183470039,0 -87.1757806882666,37.8386401947759,0 -87.1580798741816,37.826967486048,0 -87.13187941921321,37.7897363615659,0 -87.1064270674831,37.7842511762003,0 -87.0713083041007,37.8071361431403,0 -87.03648000837271,37.9080054345509,0 -87.0131563777109,37.9247639268183,0 -86.989031549046,37.9306161664831,0 -86.93157291368379,37.938040724569,0 -86.900077899892,37.9536969879516,0 -86.8632727013398,37.9869202326586,0 -86.8263071552482,37.9915597077091,0 -86.80281549728009,37.9787998846179,0 -86.7538255847893,37.8983593638332,0 -86.7288765680828,37.8946214413437,0 -86.6891259363411,37.9118535383339,0 -86.6686555016737,37.9131967871253,0 -86.66030864545441,37.9025728769351,0 -86.67066979692341,37.8606408643363,0 -86.66592415784319,37.8473808714035,0 -86.645568203442,37.8460003365155,0 -86.6147824607846,37.8579754898858,0 -86.59830982177959,37.9210720274265,0 -86.5817839150946,37.9256653787747,0 -86.5410872028347,37.9215158308346,0 -86.5227377872978,37.9278716585056,0 -86.516901010803,37.9422420486058,0 -86.5308478759636,37.9874773037153,0 -86.52783439059689,38.0186932030166,0 -86.51909122836111,38.0470479141293,0 -86.5031147440645,38.0516487974382,0 -86.4583673572556,38.0591608698586,0 -86.4424675823122,38.0759953511702,0 -86.4425211885206,38.0886981996705,0 -86.4743369239623,38.1117076402344,0 -86.46484600102311,38.1291561416585,0 -86.4525242238683,38.1297552896484,0 -86.40718125377769,38.1082185848164,0 -86.39367710683101,38.1232944153849,0 -86.3440391531709,38.1342701851064,0 -86.3354178455955,38.1440282528917,0 -86.34312388818169,38.1555598192453,0 -86.3871010468,38.1680214834694,0 -86.3883069100136,38.1948080328253,0 -86.3643499429474,38.1932902325194,0 -86.3416058899801,38.1772881494571,0 + + + + + + + + Iowa + empty + + +states.AREA: + 56257.965 + + +states.STATE_NAME: +Iowa + + +states.STATE_FIPS: +19 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +IA + + +states.POP2000: + 2926324 + + +states.POP2001: + 2941287 + + +states.POP00_SQMI: + 52 + + +states.DEN_0_100: + 95 + + +USStates.ID: + 29 + + +USStates.State_Name: +Iowa + + +USStates.Date_Entered: +Dec. 28 1846 + + +USStates.Year_Entered: +1846 + + +USStates.Year_Settled: +1788 + +]]> + #Style_5 + + + -93.5010908992209,42.0759891389773,0 + + + + + + -91.12013244580791,40.7054430853053,0 -91.09289515262361,40.7615871092817,0 -91.08905026959479,40.8337674861069,0 -91.0493536735639,40.8796233416421,0 -90.98341896936651,40.9239649616112,0 -90.96085093423019,40.9505415875963,0 -90.95479391031741,41.0703973298849,0 -90.95792988917549,41.1043932523764,0 -90.9904854657331,41.1444046114074,0 -91.0184022505193,41.1658577458188,0 -91.0564663602341,41.176290257977,0 -91.10167201924359,41.2315519929841,0 -91.10249645615799,41.2678481882471,0 -91.07342897262021,41.3349253706845,0 -91.05593554169049,41.4014073054416,0 -91.02763777623071,41.4235364759013,0 -91.0008427707096,41.4311127421861,0 -90.949800649924,41.4212638456605,0 -90.84428378227449,41.4446525356188,0 -90.78004268318989,41.44985255988,0 -90.708354613045,41.4500936593358,0 -90.6589297375422,41.4623507046517,0 -90.6008378029169,41.5096188031289,0 -90.5409754772051,41.5260034668008,0 -90.45512615442569,41.5275795523085,0 -90.43509834614001,41.5436125873014,0 -90.42313526378251,41.5673054184025,0 -90.34849427679229,41.5868824103659,0 -90.3394762639213,41.6028314888971,0 -90.34126241056562,41.6491222689255,0 -90.32615702333789,41.722767950897,0 -90.30501586217991,41.756497081381,0 -90.2554387407709,41.7817690413387,0 -90.19596566516668,41.8061669912383,0 -90.15464484512322,41.9308021367651,0 -90.1427967503368,41.9839895278463,0 -90.1506630602384,42.0334532086115,0 -90.1682262959709,42.0610667627835,0 -90.1667767223318,42.1037669165116,0 -90.1762144636605,42.1205242372018,0 -90.19170240605,42.1227099310285,0 -90.23106311278499,42.1597414854526,0 -90.3237299895918,42.1973374145764,0 -90.3678582678001,42.2102266723886,0 -90.4073017721273,42.2426617515853,0 -90.4181124359413,42.2639391318113,0 -90.4278091232618,42.340644954386,0 -90.44172508028031,42.3600836299974,0 -90.4911711742602,42.3887914637005,0 -90.5637116510656,42.4218436822154,0 -90.60595537042839,42.4605645940667,0 -90.64847377380832,42.475647019796,0 -90.6518991107146,42.4947005718712,0 -90.6384560963599,42.5093636839918,0 -90.62570743484611,42.5285622838299,0 -90.6392190290607,42.5557141169534,0 -90.66438062716411,42.5713918079808,0 -90.69479111313748,42.6379287671111,0 -90.74561006958859,42.6570014302673,0 -90.8925456651592,42.6782400547389,0 -90.9194089569959,42.6806774289755,0 -90.9991821130899,42.7070587627347,0 -91.06616869540581,42.7449138543659,0 -91.08203032553689,42.7833648801814,0 -91.09342868782861,42.8714402959622,0 -91.13912173775438,42.9258937074417,0 -91.15221381349258,43.0013164133112,0 -91.15975182052971,43.0811827642084,0 -91.16857153421861,43.0828878927565,0 -91.16135406498178,43.1475759290793,0 -91.06905228836891,43.2578982275476,0 -91.0664279003866,43.2806829026437,0 -91.0784980300101,43.3132978076873,0 -91.1770487337014,43.3539461618861,0 -91.1982436244129,43.3705129909022,0 -91.2109165788835,43.4240510516753,0 -91.2359034673886,43.4646842675378,0 -91.22356677965871,43.5008086595185,0 -91.61109897494811,43.5006261853338,0 -91.7303661652997,43.4995717605756,0 -92.07753252302631,43.499153513998,0 -92.4531691122113,43.4994619143947,0 -92.5580084257835,43.5002595022348,0 -93.0272108293768,43.5012788635835,0 -93.0543803044398,43.5014574340012,0 -93.5008302025135,43.5004884829356,0 -93.653699466766,43.5007626988541,0 -93.97394980408042,43.5002988511065,0 -94.2467873911458,43.4989484742926,0 -94.4552382894281,43.4981020923778,0 -94.859839276263,43.5000304051637,0 -94.9204646838526,43.4993712448179,0 -95.3965585901372,43.5003340364673,0 -95.46477535859469,43.4995410217166,0 -95.8669120002192,43.4989439769817,0 -96.0610395014389,43.498533697461,0 -96.4604547078315,43.4997184756898,0 -96.59831542821901,43.4998490975791,0 -96.5837958978062,43.4819205535996,0 -96.58911295055751,43.4355391262275,0 -96.55770871701321,43.4007272259127,0 -96.52505354128429,43.3842252910413,0 -96.52289387443082,43.3569663195107,0 -96.54056327347691,43.307659139748,0 -96.5791308298904,43.2900740306766,0 -96.5707224965755,43.2636122914599,0 -96.55956777208898,43.2532633182258,0 -96.5669911071477,43.2396337909954,0 -96.55860577021591,43.2254892270262,0 -96.48724516897552,43.2179092697119,0 -96.4731145701049,43.2090821295544,0 -96.45150508806921,43.1263087732519,0 -96.460804816306,43.0878728592997,0 -96.4620939419638,43.075582202376,0 -96.47957324789761,43.0618840567811,0 -96.52001038580228,43.051508664474,0 -96.4990199957611,43.0120501064927,0 -96.5171478195164,42.9864580906085,0 -96.51493505198688,42.9523820814978,0 -96.54426346173439,42.9138663406581,0 -96.53751108901589,42.8969064560324,0 -96.5562111991181,42.8466606609486,0 -96.57312614067021,42.8343473823113,0 -96.5876454371957,42.8353813945249,0 -96.60087506115062,42.7995586266164,0 -96.63298055975349,42.7768356021372,0 -96.640709192144,42.7486038180978,0 -96.6265407804251,42.70835472382,0 -96.56303923913002,42.6685130300247,0 -96.5411650971666,42.6624053661285,0 -96.5128440201087,42.6297550903686,0 -96.4884981845359,42.5804806539459,0 -96.50094203466421,42.5738851852149,0 -96.48933750112329,42.5640279717967,0 -96.48024324420059,42.5171303049452,0 -96.4393947509647,42.4892408377156,0 -96.39607423274411,42.4674012772387,0 -96.39789028299531,42.441793101272,0 -96.41762830756179,42.4147774592562,0 -96.41176144867778,42.3809179971184,0 -96.42417517629991,42.3492788847348,0 -96.3897808818021,42.3287896719748,0 -96.3687003210519,42.2980237265253,0 -96.34288156417431,42.2820816955037,0 -96.33265786107282,42.260307132502,0 -96.33770844290801,42.2295223162304,0 -96.3635118431292,42.2140424887771,0 -96.35216576154041,42.168185405895,0 -96.2851229976765,42.123452670924,0 -96.2654831160455,42.0488969554024,0 -96.2387254806183,42.0284381681892,0 -96.2360928599206,42.0012580980752,0 -96.2028425096417,41.9966156076483,0 -96.1852176902909,41.9806854764309,0 -96.14732844184438,41.9662545016057,0 -96.14587078481939,41.9249070891742,0 -96.15997022208892,41.9041513852191,0 -96.1356235834612,41.8626208316748,0 -96.07641711811041,41.7914690785526,0 -96.09932098309402,41.7529750937888,0 -96.09977118044269,41.7315636680423,0 -96.08555733965541,41.7049872846604,0 -96.1222023396997,41.6949130712865,0 -96.12026446185681,41.6840948569989,0 -96.09930606920538,41.654680377786,0 -96.11130763394991,41.5990063360194,0 -96.08083512543558,41.5760003085601,0 -96.0919362332193,41.5631451632737,0 -96.0858402888059,41.537522447069,0 -96.0501720028408,41.5243351452143,0 -96.0045927729456,41.536663666234,0 -95.99396487163098,41.5281036385833,0 -95.99668867363272,41.5115177407886,0 -96.01345100342439,41.492994088652,0 -96.0068973653038,41.4819545344805,0 -95.9531857305245,41.4723872072953,0 -95.93506577909901,41.4623813790665,0 -95.94005632056519,41.3948054356641,0 -95.9428952016611,41.3400771149559,0 -95.88910711764841,41.301389068661,0 -95.89759135908018,41.2868630350679,0 -95.91120231965681,41.308469075071,0 -95.93023057200192,41.3020567682491,0 -95.91098130119039,41.225245096276,0 -95.922249965015,41.2078539506329,0 -95.9161002851104,41.1940638351955,0 -95.85919843702339,41.1805368728058,0 -95.85980096123291,41.1668650456103,0 -95.8766852492484,41.1642024105376,0 -95.85827413141659,41.1091870222413,0 -95.87880474120411,41.0658712509288,0 -95.8595394801997,41.0350028595074,0 -95.86089704288879,41.0026505190073,0 -95.83760323158589,40.9742580400834,0 -95.8365411444113,40.9011080428442,0 -95.8343965593688,40.8703008088672,0 -95.84643563182461,40.8483322047714,0 -95.85179043528299,40.7926000253044,0 -95.87661608382331,40.7304362884448,0 -95.76799926230059,40.6431173260368,0 -95.7575462791966,40.6209044050126,0 -95.7674795852398,40.5890479952096,0 -95.382555095884,40.5843340093787,0 -95.21742841469741,40.5818925987708,0 -94.92061587223311,40.5772183148122,0 -94.639876320884,40.575744856122,0 -94.4852311155788,40.5742048680883,0 -94.23839179788078,40.5709661436833,0 -94.0180588623528,40.5740221097314,0 -93.78630370096001,40.5784484988924,0 -93.56291046102329,40.580813860252,0 -93.37027134829388,40.5804911252976,0 -93.10093859117031,40.5843472673901,0 -92.71781545755509,40.5896671790964,0 -92.6464324165599,40.5914619056485,0 -92.3615131092551,40.5995762450555,0 -92.1931744167433,40.6000887188336,0 -91.946370183648,40.6082666211982,0 -91.7417117785904,40.6097843674944,0 -91.71697640482071,40.5934354677793,0 -91.68995975604149,40.5812025311316,0 -91.6920809036743,40.5516776256622,0 -91.62253651310201,40.5329033163068,0 -91.61686016131831,40.5048738271577,0 -91.5860286246556,40.4845194169649,0 -91.5793830849706,40.4637602088021,0 -91.533208268896,40.4554411066996,0 -91.5388465218747,40.441288675833,0 -91.52960695321359,40.4350861780817,0 -91.5276917691468,40.4101689010293,0 -91.50037749543139,40.4051606084008,0 -91.49031385163261,40.3908061091367,0 -91.4770381934818,40.3910121558996,0 -91.44874715640491,40.3719466182637,0 -91.41896859131511,40.3869192694689,0 -91.38590919839099,40.3924048874231,0 -91.3729083225561,40.4030325886378,0 -91.38555116553908,40.4472940413254,0 -91.37494647812029,40.5036976293474,0 -91.38225565222849,40.5285383313692,0 -91.41302597331141,40.5480345602038,0 -91.4112710901028,40.5730126128812,0 -91.3757627300253,40.6034802448646,0 -91.2622111209491,40.6395869370641,0 -91.2150599786405,40.643859446667,0 -91.16264440347912,40.6563523669938,0 -91.1293030749525,40.6821889727746,0 -91.12013244580791,40.7054430853053,0 + + + + + + + + Kansas + empty + + +states.AREA: + 82196.955 + + +states.STATE_NAME: +Kansas + + +states.STATE_FIPS: +20 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +KS + + +states.POP2000: + 2688418 + + +states.POP2001: + 2709422 + + +states.POP00_SQMI: + 33 + + +states.DEN_0_100: + 97 + + +USStates.ID: + 34 + + +USStates.State_Name: +Kansas + + +USStates.Date_Entered: +Jan. 29 1861 + + +USStates.Year_Entered: +1861 + + +USStates.Year_Settled: +1727 + +]]> + #Style_5 + + + -98.38325723326818,38.4826574728393,0 + + + + + + -95.07193109811,37.0014780674299,0 -95.0327450815612,37.0007794392778,0 -94.6203796376912,36.9970468237132,0 -94.6206638676799,37.0601475533797,0 -94.6189775221893,37.3277322857884,0 -94.61876444142401,37.360766482215,0 -94.61899604293861,37.650374321953,0 -94.6192936785187,37.6798689280977,0 -94.6167353371693,38.0303877411189,0 -94.61733032638759,38.055784837357,0 -94.61905349915152,38.3920320272517,0 -94.6187177065389,38.4714737258641,0 -94.6131481947747,38.7372224308096,0 -94.6124696654656,38.8371089096843,0 -94.6092813424634,39.0446676651878,0 -94.60813678641638,39.1128009586178,0 -94.60122430937619,39.1412276647328,0 -94.6126534522095,39.1516492526966,0 -94.6464068497116,39.158427841948,0 -94.6755137983894,39.1749223276416,0 -94.7305309461746,39.171256416042,0 -94.7900492914923,39.1968829757069,0 -94.8208192842533,39.2110046505539,0 -94.8334765331867,39.2617660205541,0 -94.8811077732328,39.2860458708519,0 -94.9076813995049,39.3230284700345,0 -94.9113435368246,39.3401217508395,0 -94.8982816593786,39.3806406678593,0 -94.9257480001496,39.3812661376612,0 -94.9584938855715,39.4114472233923,0 -94.9862042598468,39.4394616215765,0 -95.04051146086052,39.4629407284024,0 -95.04759928388671,39.4853288064319,0 -95.1020369987408,39.5328485478957,0 -95.10898807297042,39.5606920176429,0 -95.0536130925577,39.5867761785005,0 -95.0560171833566,39.625689733093,0 -95.02829206736421,39.6619134718391,0 -94.978570591812,39.6849880529496,0 -94.96178638302391,39.7320382320422,0 -94.9531421136041,39.7365014323348,0 -94.9308558369552,39.727025905148,0 -94.90567811071121,39.726755181953,0 -94.87786073247868,39.7393055627822,0 -94.87118503155682,39.7541179695705,0 -94.87706755967508,39.7606792157561,0 -94.9217999904165,39.7578408910459,0 -94.93511392079802,39.7754266104547,0 -94.93326765322591,39.7827737328809,0 -94.8993236192415,39.7937754306095,0 -94.88850514062642,39.8173998679665,0 -94.89832461315601,39.8283327692328,0 -94.9238762802993,39.833131624215,0 -94.9365111558861,39.8493860544701,0 -94.9382437203224,39.8960818279774,0 -94.9650237551983,39.900823541003,0 -95.0217725502981,39.8969786850066,0 -95.03350651062659,39.8778442881217,0 -95.06324626966109,39.8665379740374,0 -95.1007225558306,39.8698649954976,0 -95.1505514013284,39.9080546761413,0 -95.19396340225789,39.9101800936863,0 -95.20759760966379,39.9381762630214,0 -95.2409615197206,39.9421058384133,0 -95.30869720973901,39.9994075748966,0 -95.3297013527267,39.9925950320474,0 -95.7807002239152,39.9934894834034,0 -96.0012537321721,39.995158941643,0 -96.2405985632704,39.9945031906408,0 -96.45403830193989,39.9941727522704,0 -96.8014203269346,39.9944759681187,0 -96.90828756776931,39.996154802955,0 -97.36191186281762,39.9973802328794,0 -97.8165893210891,39.9997291896237,0 -97.9295887050275,39.9984528583572,0 -98.264165776521,39.9984347815801,0 -98.5044791617254,39.9971296815045,0 -98.72063235128408,39.9984613082759,0 -99.06474699472069,39.9983379848291,0 -99.1782010360044,39.9995770488454,0 -99.6278593903364,40.0029878613976,0 -100.180910663243,40.0004787238625,0 -100.191111650703,40.0005855247365,0 -100.735049472397,39.9991723116564,0 -100.754855877507,40.000198282162,0 -101.32214863482,40.0018210447365,0 -101.407393337781,40.0010037120327,0 -102.051535596434,39.9989182728278,0 -102.049442507662,39.5686933622379,0 -102.048801584447,39.5628035180916,0 -102.047874719263,39.1267534832,0 -102.048972538957,39.0370029188915,0 -102.047568440936,38.6925505149901,0 -102.047584160548,38.6154993640496,0 -102.045549640322,38.2633436193344,0 -102.046060904132,38.2538220806459,0 -102.04397657417,37.7343986213713,0 -102.044455910114,37.6414742210535,0 -102.042010650289,37.3862794433515,0 -102.037207602599,36.9889939197762,0 -102.024519464501,36.9888757490654,0 -101.55367610944,36.9966930458734,0 -101.071604192395,36.9974667126978,0 -100.950586859868,36.996661689339,0 -100.634245618228,36.9978323335316,0 -100.088573981101,36.9976524956006,0 -99.99926174794319,36.9954175257409,0 -99.5446396923613,36.9954629108102,0 -99.43747360824931,36.9945583965996,0 -98.99951613987589,36.9980727934686,0 -98.54021961843299,36.9983759139801,0 -98.34714359763062,36.9990615091091,0 -98.1045290729196,36.998671345032,0 -97.8042499377042,36.9985676282825,0 -97.46540491812472,36.9964671394098,0 -97.137692826494,36.9998082437565,0 -96.74869619591919,37.0001660629802,0 -96.5191876912757,37.0005778020035,0 -96.00604971220072,36.9983338098062,0 -95.9579609448337,37.0000828949687,0 -95.78574861213642,36.9981139405669,0 -95.5260187862325,37.0010188368678,0 -95.40662244594169,37.0006155845495,0 -95.07193109811,37.0014780674299,0 + + + + + + + + Kentucky + empty + + +states.AREA: + 40319.791 + + +states.STATE_NAME: +Kentucky + + +states.STATE_FIPS: +21 + + +states.SUB_REGION: +E S Cen + + +states.STATE_ABBR: +KY + + +states.POP2000: + 4041769 + + +states.POP2001: + 4081550 + + +states.POP00_SQMI: + 100 + + +states.DEN_0_100: + 91 + + +USStates.ID: + 15 + + +USStates.State_Name: +Kentucky + + +USStates.Date_Entered: +June 1 1792 + + +USStates.Year_Entered: +1792 + + +USStates.Year_Settled: +1774 + +]]> + #Style_5 + + + -85.29036641996581,37.5265035728688,0 + + + + + + + -86.5106681729942,36.6550742141329,0 -86.4154436379233,36.6509321366908,0 -86.19899252719389,36.6432906639691,0 -85.9806106782448,36.633112657611,0 -85.78547638470199,36.62668526607,0 -85.43737461759029,36.6181989810276,0 -85.3000946381889,36.6261009236939,0 -85.27249827730731,36.6256168039722,0 -84.9984611962111,36.6209826428203,0 -84.7910568723549,36.6054383594152,0 -84.781870784101,36.6050761598833,0 -84.2567774582751,36.5954983253834,0 -84.2544885948187,36.5954525757939,0 -84.0067465715187,36.5920881162625,0 -83.93559984653869,36.5912908042263,0 -83.695608633552,36.5842494058307,0 -83.6751767779422,36.59870387507,0 -83.64680262239961,36.6169769718214,0 -83.5308949469604,36.6614809602143,0 -83.46022130755151,36.6618325651555,0 -83.4041505851927,36.6723273909237,0 -83.3858547999664,36.6882196347474,0 -83.32138369861531,36.7095329501122,0 -83.203656562889,36.7342606278109,0 -83.1385135640831,36.7400592608854,0 -83.124390864088,36.7511676478044,0 -83.1282206506728,36.7791526938786,0 -83.06795192812881,36.8509961538949,0 -83.0466341524314,36.8587935503694,0 -82.9508056915213,36.8640784586876,0 -82.87804287271091,36.893694238085,0 -82.8606320841382,36.9321623718302,0 -82.8665598432633,36.9745857651711,0 -82.81222270855579,37.0056007595079,0 -82.7235981560209,37.0339923682353,0 -82.7200576547545,37.0659298172553,0 -82.7091701311092,37.075482281352,0 -82.7213772601893,37.0931177496069,0 -82.7190958255562,37.1100172914789,0 -82.56802270094001,37.1939190518144,0 -82.5500399164933,37.1993783814184,0 -82.4058850037637,37.2507041975685,0 -82.35384234347519,37.260519600467,0 -82.288950934185,37.3048612192352,0 -81.95957525592971,37.5311726196289,0 -81.9765742755516,37.5432534483332,0 -82.0263511693733,37.5305195250327,0 -82.0491341809237,37.5514538202535,0 -82.05566534081019,37.5253425321624,0 -82.0843920504403,37.5483099090524,0 -82.1425091726566,37.5574524979734,0 -82.1465225053321,37.5659208983498,0 -82.13747341918131,37.5698959116523,0 -82.1317814946938,37.5905369780361,0 -82.15931021996209,37.5935690802839,0 -82.1855494012877,37.6406677677666,0 -82.20544059754749,37.6240165335496,0 -82.2383711562884,37.656775872237,0 -82.2956247745408,37.6690580326702,0 -82.3294012031438,37.7441714871732,0 -82.3194978866149,37.7584268520686,0 -82.33984657596631,37.7844003083255,0 -82.4058057432277,37.8117197137467,0 -82.4215083258885,37.8723565285176,0 -82.4376072765301,37.8948548600619,0 -82.50020946921541,37.9222618980716,0 -82.49339635192651,37.9425137288734,0 -82.480174161688,37.9543964226939,0 -82.4757796712415,37.9759070493071,0 -82.52467860529801,38.0156623478137,0 -82.5932086977126,38.1099625844435,0 -82.64612798319701,38.1463307005486,0 -82.6471582603252,38.1694356505033,0 -82.6137636388564,38.1780948680894,0 -82.6066454186315,38.1938262489827,0 -82.616228731902,38.2388116463152,0 -82.5891132321387,38.2453880857478,0 -82.574578950842,38.2559737163217,0 -82.5800496260145,38.2925104464826,0 -82.57229805473899,38.3078110430161,0 -82.59823915716601,38.3684639621207,0 -82.5866043088359,38.4125194224537,0 -82.6137433379651,38.4726688337026,0 -82.6697603574158,38.5021407722218,0 -82.6955793642933,38.5391428294601,0 -82.7419448162975,38.5530662073486,0 -82.8023639107609,38.5572886775579,0 -82.8269924854152,38.5716621183892,0 -82.85385666395931,38.6004587371503,0 -82.8600294858941,38.6523951466567,0 -82.880011744564,38.6833013226062,0 -82.8731911677823,38.7190064779649,0 -82.8903122480228,38.7427754690297,0 -82.9213038087217,38.7464144846546,0 -82.97248310332699,38.7196429959584,0 -83.0269434347116,38.7145119991138,0 -83.0608799170539,38.6857264630017,0 -83.11124311365749,38.6648333651597,0 -83.1431499750977,38.6193396966029,0 -83.1819390743195,38.6098410346599,0 -83.24501356062839,38.6241723630441,0 -83.2727548748104,38.6092569222626,0 -83.2900435785732,38.5966379602472,0 -83.3065312653877,38.5963174248036,0 -83.3203257653401,38.6065634765907,0 -83.33002325645781,38.6319880306114,0 -83.37142194898451,38.6549977034897,0 -83.45361629995431,38.6637746596862,0 -83.5000734679638,38.690137357128,0 -83.526555981969,38.696111041032,0 -83.6183785196076,38.6779722718334,0 -83.63324094665769,38.6649719664098,0 -83.64318975618861,38.6358624635654,0 -83.6557556666292,38.6238806809261,0 -83.6785301000227,38.6209281353376,0 -83.712825428618,38.6355534097723,0 -83.77022323291369,38.650819405338,0 -83.79046498152741,38.6938445378462,0 -83.8375322435588,38.7118799039528,0 -83.8575526890278,38.7449183938572,0 -83.9125395047095,38.7579603800755,0 -83.9621627892472,38.7776474056309,0 -84.05380160129811,38.7637349934305,0 -84.0888671071979,38.7655047394295,0 -84.17675226261351,38.7884985944901,0 -84.2287021102685,38.8126904458503,0 -84.2352944474892,38.8745556222277,0 -84.2615250982177,38.9174773125027,0 -84.29013610301691,38.9445378637403,0 -84.3133151278336,39.014074138235,0 -84.3457790116403,39.0378123176184,0 -84.39131227398291,39.0357444360707,0 -84.4197401104714,39.0473368904498,0 -84.425683749535,39.0847240819073,0 -84.444918075979,39.1118269376755,0 -84.4920536098813,39.1073635038858,0 -84.5153007968991,39.0941952341113,0 -84.5930686595367,39.070265611257,0 -84.6226484760206,39.0749345727981,0 -84.6674874871449,39.0896244882795,0 -84.7428755878621,39.1420637748434,0 -84.7899269988898,39.1070335912354,0 -84.81148058301,39.1025855115064,0 -84.8278613547987,39.1036877674048,0 -84.8867079668198,39.0650450015205,0 -84.8899961256038,39.0506485732317,0 -84.8762931465368,39.0328954474865,0 -84.8442256667783,39.0058310025456,0 -84.83444439657789,38.98277550246,0 -84.846315847352,38.9546310780086,0 -84.8758801493223,38.9276041700824,0 -84.8752543860379,38.9094313024092,0 -84.8597435114244,38.9020425223312,0 -84.8032240050715,38.8971908595052,0 -84.7886668678083,38.8843852980114,0 -84.78744612597821,38.8666434823042,0 -84.82442619105041,38.8344629497042,0 -84.8187802303235,38.7934099982582,0 -84.9756111877111,38.7806410183922,0 -85.0250730726016,38.764291113864,0 -85.06845466106159,38.750424603378,0 -85.1196570780868,38.7141393628001,0 -85.16093321350211,38.6951765052421,0 -85.2051618437764,38.6958170413595,0 -85.2713939330139,38.7443767592676,0 -85.33500919580089,38.7370064025018,0 -85.41818661626441,38.7384171670398,0 -85.4466906213012,38.7248406803013,0 -85.4536792483365,38.6946745390103,0 -85.4244045991195,38.5848401599215,0 -85.41746171924881,38.5614756142213,0 -85.432369780701,38.5370160928693,0 -85.4663821281019,38.5181753628103,0 -85.50720002378741,38.471419551854,0 -85.6126402894388,38.446670375764,0 -85.64359297482039,38.3836879378367,0 -85.654228238662,38.3377528692459,0 -85.681388997794,38.3009537036963,0 -85.7469260083932,38.2703150949771,0 -85.7862108031498,38.2823915940124,0 -85.8065513133062,38.2861792248908,0 -85.8399076966583,38.2762914813239,0 -85.8523357521911,38.238561041348,0 -85.9120745452086,38.1800014838715,0 -85.9147511151841,38.0648748591422,0 -85.93087193559511,38.034048876233,0 -85.9585820940509,38.0118406095775,0 -86.0066633201115,38.0017670737263,0 -86.0316198158307,37.9929506600364,0 -86.05271568926411,37.9667844806183,0 -86.104986573394,38.0113361451773,0 -86.1906216841403,38.0177584307759,0 -86.2521549356747,38.0407215021446,0 -86.277698957837,38.058172975235,0 -86.29144007500941,38.0784895277861,0 -86.29767433252459,38.1503040958879,0 -86.3416058899801,38.1772881494571,0 -86.3643499429474,38.1932902325194,0 -86.3883069100136,38.1948080328253,0 -86.3871010468,38.1680214834694,0 -86.34312388818169,38.1555598192453,0 -86.3354178455955,38.1440282528917,0 -86.3440391531709,38.1342701851064,0 -86.39367710683101,38.1232944153849,0 -86.40718125377769,38.1082185848164,0 -86.4525242238683,38.1297552896484,0 -86.46484600102311,38.1291561416585,0 -86.4743369239623,38.1117076402344,0 -86.4425211885206,38.0886981996705,0 -86.4424675823122,38.0759953511702,0 -86.4583673572556,38.0591608698586,0 -86.5031147440645,38.0516487974382,0 -86.51909122836111,38.0470479141293,0 -86.52783439059689,38.0186932030166,0 -86.5308478759636,37.9874773037153,0 -86.516901010803,37.9422420486058,0 -86.5227377872978,37.9278716585056,0 -86.5410872028347,37.9215158308346,0 -86.5817839150946,37.9256653787747,0 -86.59830982177959,37.9210720274265,0 -86.6147824607846,37.8579754898858,0 -86.645568203442,37.8460003365155,0 -86.66592415784319,37.8473808714035,0 -86.67066979692341,37.8606408643363,0 -86.66030864545441,37.9025728769351,0 -86.6686555016737,37.9131967871253,0 -86.6891259363411,37.9118535383339,0 -86.7288765680828,37.8946214413437,0 -86.7538255847893,37.8983593638332,0 -86.80281549728009,37.9787998846179,0 -86.8263071552482,37.9915597077091,0 -86.8632727013398,37.9869202326586,0 -86.900077899892,37.9536969879516,0 -86.93157291368379,37.938040724569,0 -86.989031549046,37.9306161664831,0 -87.0131563777109,37.9247639268183,0 -87.03648000837271,37.9080054345509,0 -87.0713083041007,37.8071361431403,0 -87.1064270674831,37.7842511762003,0 -87.13187941921321,37.7897363615659,0 -87.1580798741816,37.826967486048,0 -87.1757806882666,37.8386401947759,0 -87.22676182555399,37.8491183470039,0 -87.27274593889131,37.8708194103053,0 -87.3105589119421,37.8937184166169,0 -87.3875506289597,37.9349692155165,0 -87.4522884037149,37.9365207505541,0 -87.5048029485417,37.9156270031471,0 -87.6043257240091,37.9711573198373,0 -87.6271375737057,37.9234546658806,0 -87.5947183783029,37.8907666463449,0 -87.59363445095011,37.8649107154254,0 -87.60758877766089,37.8438192895582,0 -87.6516958656896,37.8281751349818,0 -87.68471741164321,37.8363728161595,0 -87.6797209569085,37.8970493378792,0 -87.7094081501652,37.8997539244585,0 -87.72820001539741,37.8945849893321,0 -87.7537824326935,37.8981288619025,0 -87.8236471993993,37.8782550216566,0 -87.85718741424731,37.8909469157228,0 -87.89903644654829,37.9245969463054,0 -87.92189490993729,37.9199089300241,0 -87.9344837893137,37.904203896365,0 -87.93684884849461,37.8752235361624,0 -87.9102286413016,37.8386134566058,0 -87.9201699786944,37.8097285459625,0 -87.9396104384072,37.7995510678409,0 -87.9587380494242,37.7762242517409,0 -88.0112228968478,37.8013522474257,0 -88.0356073439534,37.8057279050194,0 -88.0725039638053,37.7354461998767,0 -88.1336703044624,37.7007907786447,0 -88.159404386901,37.6607335395919,0 -88.15766418948979,37.628526559458,0 -88.134202057652,37.5836204217666,0 -88.0715914713672,37.5110386032244,0 -88.0879105655745,37.4763216973515,0 -88.3117424820464,37.4429033025395,0 -88.3592141681292,37.4093610567464,0 -88.419893554403,37.4203432412273,0 -88.4676859561995,37.4008084371049,0 -88.511365178177,37.2969057632051,0 -88.50146891523821,37.2578364471264,0 -88.450738961298,37.205724438504,0 -88.42255499105021,37.1569654245737,0 -88.4505110390145,37.0987273102449,0 -88.4768417264925,37.0722004387704,0 -88.4907432667963,37.0682371308779,0 -88.5173176378463,37.0648267364289,0 -88.5593190002438,37.0728714131831,0 -88.6142679530367,37.1091025287746,0 -88.6884212086995,37.1354651044129,0 -88.73916655930481,37.1412363376799,0 -88.7465598581524,37.1521615318569,0 -88.8633498471503,37.2022475575954,0 -88.9325677662407,37.2184595035745,0 -88.99324011836519,37.2200879803029,0 -89.0651040416988,37.1859115907085,0 -89.1168931380891,37.1121885561653,0 -89.14641970199381,37.0932369170363,0 -89.16962098937491,37.0642870560925,0 -89.1744039557536,37.0257625307982,0 -89.1503164771803,36.9984916525611,0 -89.1299298602513,36.9881656914537,0 -89.1072162055416,36.9775040571059,0 -89.1050338653654,36.9539220770253,0 -89.1296537695887,36.8664945361285,0 -89.166565665821,36.8434768543693,0 -89.1735313341446,36.8294390146117,0 -89.1644441219421,36.804476214643,0 -89.1259067613141,36.7924680183802,0 -89.12554025828931,36.7680887738915,0 -89.15143504916961,36.7590975830134,0 -89.1772689322554,36.7609818762401,0 -89.19636559962321,36.7274780703555,0 -89.19756338990609,36.7134250574374,0 -89.1678993468083,36.6716284847978,0 -89.1771616076676,36.6530627654874,0 -89.2001876332973,36.6313576237861,0 -89.2101287779705,36.5819546744135,0 -89.2416846800885,36.569328370687,0 -89.2834948717057,36.5753095893361,0 -89.3223449681677,36.6220764759103,0 -89.3423955613942,36.6289083710958,0 -89.3636210686995,36.6257612726571,0 -89.37395149637661,36.616247637228,0 -89.4182103731204,36.5106251110882,0 -89.41478465486919,36.5026793108435,0 -89.3466676017908,36.5026108089583,0 -88.83037252103129,36.4998546765866,0 -88.8263593294413,36.4999080492987,0 -88.81071857599009,36.4990458143214,0 -88.51268114387869,36.4995467004194,0 -88.4960256220043,36.4982076026975,0 -88.04276340428341,36.4965703400273,0 -88.0350796382961,36.5381999052039,0 -88.0410910767903,36.5827211925188,0 -88.0713410698433,36.6796832563404,0 -87.8707114200773,36.6694231918372,0 -87.8535374192374,36.6415224035434,0 -87.6935284355087,36.6444886692232,0 -87.6406553976253,36.6452169761114,0 -87.3466109435594,36.6492773804525,0 -87.11270271488,36.6513077660911,0 -87.06818400985961,36.6508112445931,0 -86.7705352136402,36.6521007800576,0 -86.5106681729942,36.6550742141329,0 + + + + + + + + + -89.53327228843381,36.4981701441748,0 -89.4758977248385,36.4986089858186,0 -89.4817572743346,36.5047581085309,0 -89.47144975338379,36.5256163547986,0 -89.4817497774818,36.5478363630808,0 -89.49320183399099,36.5591771346443,0 -89.5304419073772,36.5646166211264,0 -89.55621466216709,36.5578036567361,0 -89.5682312249958,36.5414695145559,0 -89.56706382630919,36.5187993771114,0 -89.53327228843381,36.4981701441748,0 + + + + + + + + + Louisiana + empty + + +states.AREA: + 45835.844 + + +states.STATE_NAME: +Louisiana + + +states.STATE_FIPS: +22 + + +states.SUB_REGION: +W S Cen + + +states.STATE_ABBR: +LA + + +states.POP2000: + 4468976 + + +states.POP2001: + 4484853 + + +states.POP00_SQMI: + 97 + + +states.DEN_0_100: + 91 + + +USStates.ID: + 18 + + +USStates.State_Name: +Louisiana + + +USStates.Date_Entered: +Apr. 30 1812 + + +USStates.Year_Entered: +1812 + + +USStates.Year_Settled: +1699 + +]]> + #Style_5 + + + -92.0291541159725,31.0957346447301,0 + + + + + + + -93.70752396935821,30.2395787754494,0 -93.71500869987879,30.2205134179473,0 -93.7045256592734,30.1810684459083,0 -93.6963314287414,30.1758843689492,0 -93.6998258674993,30.1510169781729,0 -93.6833076816481,30.1484401694217,0 -93.68612303875779,30.1414613621588,0 -93.69880351731489,30.1414346905316,0 -93.6970869015193,30.1181389021031,0 -93.70854664486501,30.1149499108334,0 -93.71602374974782,30.0958787991307,0 -93.71264390010309,30.0607310199356,0 -93.76036751582601,30.0061764030649,0 -93.7914543306868,29.8505201111635,0 -93.8999018634907,29.8099813696096,0 -93.80182075717751,29.7258651715405,0 -93.7219916871518,29.7587936044957,0 -93.2336572894734,29.7889934364029,0 -92.6074254936111,29.5886265164795,0 -92.29737403028059,29.5415715040527,0 -92.05975722161792,29.6070148319983,0 -92.19969864009239,29.7631205249394,0 -92.1301011969117,29.77352598548,0 -92.13715124533631,29.7307416030464,0 -91.9733277804057,29.8060573844959,0 -91.96708656404368,29.8418880532248,0 -91.82750348017601,29.83904163461,0 -91.8239331429008,29.7868920393355,0 -91.8466310090991,29.8083970322938,0 -91.8811779880636,29.7659557971969,0 -91.86325627234939,29.7258395444023,0 -91.61576780432881,29.7691380608199,0 -91.6435472720068,29.6439645252622,0 -91.548490473012,29.64212942148721,0 -91.54786531626041,29.5316859482091,0 -91.43302486062962,29.5525818802979,0 -91.26272515553339,29.4895876171466,0 -91.2137357284937,29.4059235875496,0 -91.1021904671519,29.3141341810657,0 -91.07838568592221,29.3600181552563,0 -90.93652761481459,29.34351696991,0 -90.89734933840761,29.267664524716,0 -90.81855013451751,29.2568023186879,0 -90.8142929990499,29.2210068232971,0 -90.9204134488967,29.1819095184181,0 -90.8826392886342,29.1374120250384,0 -90.83937946259708,29.1823403523227,0 -90.77268943028361,29.1606256340265,0 -90.7828982382631,29.126943134736,0 -90.67679427561049,29.1402773960277,0 -90.68385856633408,29.1819208280557,0 -90.63811998544371,29.1625715477047,0 -90.6500512905196,29.2542925609165,0 -90.6212655974503,29.2229656385145,0 -90.5831330588569,29.2609283902067,0 -90.6110951867158,29.3050359294473,0 -90.4764721853395,29.3039418023868,0 -90.4505160207755,29.352441970778,0 -90.40682895562621,29.3259917752097,0 -90.39642997502899,29.272347594428,0 -90.34764606577039,29.3129516272311,0 -90.2840991281077,29.245534761538,0 -90.27881935962628,29.2751587278655,0 -90.2429144207612,29.254741245923,0 -90.2639572212598,29.1846496769349,0 -90.22776265023229,29.0986741752039,0 -90.0778023855037,29.1764419417217,0 -90.0431106708545,29.2236763677282,0 -90.07787873037648,29.2145745251002,0 -90.11163968342949,29.3217254399766,0 -90.0330015414231,29.3088725943322,0 -90.05594370870118,29.3514313577963,0 -90.02994209083532,29.3742080212967,0 -90.05532571465039,29.4282829342296,0 -90.03608391703379,29.4471572638847,0 -90.17413347979719,29.4959418083355,0 -90.2081459533198,29.54473034288331,0 -90.1517936118825,29.5953076758409,0 -90.1372900800924,29.533810903071,0 -90.11308130873671,29.5538488149916,0 -90.0066947961478,29.4939367839004,0 -89.97192676202729,29.5035417528626,0 -89.9667386971404,29.472678264347,0 -89.8175270453019,29.4776253094833,0 -89.8217465705316,29.420912297011,0 -89.7537065743465,29.3742883056524,0 -89.7949446658458,29.3225401726376,0 -89.61071851100481,29.3317581333263,0 -89.61959210384499,29.2795749078674,0 -89.4931976224217,29.2349951688689,0 -89.45911683804491,29.2557362316092,0 -89.46707349611449,29.2163212037448,0 -89.3931341574949,29.1462653489502,0 -89.38866232003031,29.1003787711429,0 -89.3397347549283,29.1044955958688,0 -89.3190905090885,29.1801886436367,0 -89.2632880326299,29.1482125721001,0 -89.3948923970965,28.9396556719073,0 -89.2574966003837,29.0594633924233,0 -89.2411621878536,29.1211691198757,0 -89.1443950464412,29.0166783927302,0 -89.15402386274,29.0572176399904,0 -89.1114049392751,29.0830170799367,0 -89.126542405823,29.1353090259359,0 -89.057753441514,29.0852787510888,0 -89.02180295398399,29.1471183731581,0 -89.09827479284481,29.1634431581992,0 -89.03326302685041,29.2234135733299,0 -89.120225502644,29.2118843139178,0 -89.1299376964562,29.2908873400227,0 -89.19340037828211,29.3490477860047,0 -89.26255595190629,29.2978092984492,0 -89.2647756568613,29.3506636449461,0 -89.33705849744059,29.3408933300114,0 -89.3845219191646,29.3979385143756,0 -89.53707638096201,29.4014533166444,0 -89.5446296667905,29.4716853008017,0 -89.77177826661171,29.6102468453431,0 -89.7232081312626,29.6060275376081,0 -89.74854567342401,29.6373780616568,0 -89.7283193961219,29.6461761343614,0 -89.6352610582353,29.626531674004,0 -89.69532824384351,29.6940792569962,0 -89.6767042461412,29.7029612576638,0 -89.5979517797373,29.66515763608991,0 -89.4791891047166,29.6361710061209,0 -89.5119430643629,29.6646147842026,0 -89.6118373558959,29.6977477154707,0 -89.5928776464669,29.710863889814,0 -89.65058726846451,29.7669009624638,0 -89.5405000002626,29.7547308719091,0 -89.48223840044381,29.8309485334183,0 -89.4174250907105,29.7829370017962,0 -89.3640397237488,29.7967741977645,0 -89.4211550530889,29.8280985416313,0 -89.4022024925418,29.8459451898735,0 -89.43104835838651,29.9402776070809,0 -89.3777929103821,29.9512862860095,0 -89.4536236043748,29.9857329961405,0 -89.43585410143341,30.0444055970455,0 -89.5743783317747,30.0089600024186,0 -89.58586286631579,29.8981569870418,0 -89.62741431072681,29.8756795494176,0 -89.71220220875109,29.8975277712431,0 -89.7150166093631,29.9694037201455,0 -89.82084822206799,29.9512905424199,0 -89.8489633570991,30.0106855130634,0 -89.7168401832138,30.0552263064586,0 -89.6493943583523,30.1224267965133,0 -89.66920137542461,30.1633821794677,0 -89.7249282260786,30.1210949796266,0 -89.7400887426727,30.15892815372281,0 -89.79826483529951,30.1053714259199,0 -89.8912258795383,30.1560914176022,0 -89.9905483943748,30.05366400615,0 -90.11154650531552,30.0416103319555,0 -90.27598037046252,30.0620534035407,0 -90.39556746391192,30.0920800540751,0 -90.42453056069171,30.1858772168737,0 -90.30902717710622,30.30384607327681,0 -90.2397510159792,30.3809509083452,0 -90.07556112940209,30.3689787565007,0 -89.9435365430685,30.2698534912004,0 -89.75921705647311,30.2310929413416,0 -89.728560482135,30.1810129000889,0 -89.5738839850623,30.1949353118833,0 -89.6100033159566,30.2414198536792,0 -89.6063106026528,30.247828412852,0 -89.6216616714494,30.2569643699525,0 -89.6259425171347,30.2903558515233,0 -89.6391725011899,30.29582979652721,0 -89.6370822520275,30.3118436964481,0 -89.6185880809724,30.323760747644,0 -89.620198293058,30.343429054806,0 -89.633451292423,30.3553078019512,0 -89.64668882303469,30.3552905752797,0 -89.6546699231165,30.37906533290621,0 -89.67536970065041,30.4000744263161,0 -89.6754620986314,30.4453524057824,0 -89.6834507334724,30.4627185730285,0 -89.6945978512597,30.4681868413409,0 -89.695681461547,30.4782460714929,0 -89.7131840947211,30.48141599910741,0 -89.719059260721,30.4960375437604,0 -89.73231974937779,30.4978380271641,0 -89.75517865909291,30.5156218767139,0 -89.7727961225489,30.5512468627469,0 -89.7908478814126,30.5539438185454,0 -89.8203071285261,30.6242705431171,0 -89.8055366119584,30.6494567398327,0 -89.81935389911089,30.6512457789506,0 -89.8295245363783,30.6708739896173,0 -89.8454474865972,30.6662525153547,0 -89.8353918067202,30.675882597152,0 -89.8417854969649,30.6795198391887,0 -89.8413433452435,30.7005499465483,0 -89.83072296372239,30.7037809798175,0 -89.8440520689247,30.7124249093943,0 -89.83561400018191,30.7293619382654,0 -89.8233990376437,30.7330545562641,0 -89.8255660189393,30.74264836900471,0 -89.813351089932,30.7481682046961,0 -89.8246894189972,30.7897246849283,0 -89.8109335655279,30.8116989081619,0 -89.7965669822497,30.8126526475249,0 -89.79609421512551,30.8291051373468,0 -89.77479992387271,30.8305319403895,0 -89.7850241384817,30.8615791361643,0 -89.76585085732459,30.8620847088871,0 -89.76331078881169,30.9004713517936,0 -89.7468002599141,30.9027945578147,0 -89.7457551089107,30.910107202755,0 -89.75805428152501,30.9210436978628,0 -89.7404756300233,30.9261095623025,0 -89.7485405475115,30.9498480428011,0 -89.7395225295214,30.965400256862,0 -89.7198229059406,30.9754936822636,0 -89.726781296615,30.9846164008972,0 -89.7236228724726,31.0015247201013,0 -89.7327174808554,31.00744501459671,0 -89.83355873794839,31.0071848554001,0 -90.2593768226071,31.0073700245843,0 -90.3436602569889,31.0053899463824,0 -90.5426536021385,31.0023300433606,0 -90.56025489707021,31.0017063331187,0 -90.82971390290152,31.00154581229931,0 -91.05701216426981,31.0004181174657,0 -91.17920745434212,31.0004616671834,0 -91.6322974277285,31.00136500740931,0 -91.6277732104017,31.0119601110946,0 -91.57278761694658,31.032647877549,0 -91.552081308545,31.0581597906819,0 -91.56497527228081,31.0821350184803,0 -91.6201139178138,31.1276943834946,0 -91.5914883087676,31.1784818992551,0 -91.6009643646854,31.2139296737496,0 -91.636998739959,31.241104186479,0 -91.6436824254271,31.2711178839201,0 -91.634214237565,31.2776940549104,0 -91.55691947736142,31.2704690710127,0 -91.5170781714622,31.2830696578166,0 -91.5024753378186,31.2988580123244,0 -91.5057561590215,31.3234567034819,0 -91.54279004566349,31.3469862680809,0 -91.5444076356665,31.3688746277826,0 -91.53457323759901,31.3827500700431,0 -91.5593769120174,31.3882304242528,0 -91.56773147230381,31.4214064364688,0 -91.5524724466605,31.4330997709492,0 -91.53480241584072,31.434335247521,0 -91.53416902145848,31.4092388142744,0 -91.52301453224139,31.3920917852495,0 -91.49470875734109,31.37524960980541,0 -91.48083803831911,31.3777805832693,0 -91.46592215694071,31.4040690532825,0 -91.4732924895748,31.4203746865528,0 -91.50790071721922,31.4530834240658,0 -91.506481902402,31.5256872825259,0 -91.50295705582839,31.5348804964065,0 -91.46447302857931,31.5428664076677,0 -91.42357803613481,31.5627464662349,0 -91.40425216217201,31.5863534317346,0 -91.4153838994301,31.6025923876789,0 -91.49715101609371,31.6043585245596,0 -91.50887776268431,31.621946112804,0 -91.50780965753789,31.6438707722357,0 -91.4977690885564,31.6508953247071,0 -91.45737763016589,31.6269660621133,0 -91.4084028346628,31.6255298775261,0 -91.3891838304294,31.6546051479529,0 -91.38794806501321,31.716682847539,0 -91.3650745397498,31.7517413813867,0 -91.3704992222101,31.75347510581861,0 -91.3399120227254,31.7585428158009,0 -91.28262100699412,31.7498875713679,0 -91.2639894905689,31.7597635597382,0 -91.26268491650518,31.7739271210982,0 -91.3362574528706,31.7636219421964,0 -91.36713463540391,31.7708677200763,0 -91.3472366701502,31.7958323053943,0 -91.33484640167582,31.8434784170896,0 -91.30347348797039,31.863144546493,0 -91.2926470392426,31.8614928392569,0 -91.27680008896378,31.8275334941804,0 -91.25072958285951,31.8188210015347,0 -91.24138341450281,31.8353877405104,0 -91.26469211768119,31.8655859136312,0 -91.2444813396436,31.8786718608009,0 -91.20154214815391,31.914448862447,0 -91.16314291993849,31.9884481049272,0 -91.10811063502561,31.9919842773777,0 -91.07248812939382,32.0212135515791,0 -91.07324347350119,32.0321499472516,0 -91.08699202272901,32.0438110998955,0 -91.1431229851656,32.0662598368965,0 -91.1456941711085,32.085828620503,0 -91.125727524233,32.0883996668359,0 -91.08941061986668,32.0569980949997,0 -91.06511798689969,32.0587070505858,0 -91.0739225856783,32.0941482900527,0 -91.04119164865929,32.1078235881288,0 -91.0113905060031,32.1342128745109,0 -91.00393646145051,32.1694138145198,0 -91.0245210933432,32.1700508264511,0 -91.0545816942883,32.1846835164502,0 -91.04541852022901,32.1588244987585,0 -91.05415436554129,32.1345446969889,0 -91.0831163105895,32.148731083052,0 -91.10882038739021,32.1351435271569,0 -91.15665029978031,32.1449354980044,0 -91.1669578883395,32.1721410581455,0 -91.15737514242458,32.2060145228895,0 -91.1160609494648,32.225755012482,0 -91.1006796950342,32.2150360650047,0 -91.08802223200981,32.2325373651522,0 -91.06256993823,32.2328921503996,0 -91.0417564572334,32.249588584805,0 -90.97732476193758,32.2235541462358,0 -90.97112198627711,32.2692145344565,0 -90.98392428988359,32.2872802390738,0 -90.9808724634335,32.2978007782368,0 -90.9717628039961,32.3038468581634,0 -90.9293503055389,32.2975529103154,0 -90.9164792854551,32.3054643188479,0 -90.8754551600106,32.3797948696303,0 -90.8852590969197,32.3814999498488,0 -90.91502958658171,32.3460435683761,0 -90.98467186569272,32.3565410587047,0 -90.99896957955122,32.3663787517009,0 -91.0093152122207,32.3972270178482,0 -90.9700917310243,32.41916079336,0 -90.96559027073792,32.4401789961165,0 -90.987555664684,32.4531064313693,0 -91.027015703315,32.4425591367523,0 -91.0586173128584,32.4471403993983,0 -91.1177919517207,32.4987093128914,0 -91.11885237927079,32.524205893418,0 -91.08889104990392,32.5487755489391,0 -91.03730785093811,32.4970957768502,0 -91.01979041957442,32.4909543534273,0 -90.9921562021718,32.4954212340256,0 -90.9951774336628,32.511781889744,0 -91.0631947408495,32.5422984158072,0 -91.07337249217869,32.5617489074888,0 -91.05897546705708,32.5765265579993,0 -91.03243221757509,32.5828091644492,0 -90.99876283398881,32.6156030444933,0 -90.99623739617641,32.6261121948604,0 -91.0079868510271,32.6428085554835,0 -91.02757194109799,32.6416374743549,0 -91.0477369807394,32.6144891676735,0 -91.06391930560149,32.6065243385273,0 -91.1111005222843,32.5976630747531,0 -91.1463718367631,32.6449866188679,0 -91.1396654000576,32.663308001886,0 -91.05913512287872,32.7236507270734,0 -91.0978169539142,32.7495287526143,0 -91.1365751786759,32.751256737741,0 -91.1564502239537,32.7628111152121,0 -91.1422592525615,32.8413420630697,0 -91.0796355518755,32.8772908363965,0 -91.075698595519,32.9538382302101,0 -91.09278126642242,32.9877460881529,0 -91.1119239712728,32.9874752104853,0 -91.13246289263051,32.9753485871396,0 -91.13004429846551,32.9375917893587,0 -91.13728478778282,32.9179123119183,0 -91.16980976931431,32.9051486450656,0 -91.19842078694131,32.9142883501159,0 -91.20927012576061,32.935978073614,0 -91.16197425997009,33.0004180010727,0 -91.1622413295772,33.0131626211682,0 -91.25472755144671,33.0136011241739,0 -91.42764466910239,33.0135450807442,0 -91.45447032530612,33.0139992001305,0 -92.0634416757442,33.0101515495777,0 -92.7172364845049,33.0168395771589,0 -92.9789895151482,33.018274750609,0 -93.23254316119119,33.0193748877236,0 -93.47907035507552,33.0215281738969,0 -93.51191556362819,33.0212876651865,0 -93.80993110790152,33.0227288720053,0 -94.03893174127671,33.0234224077489,0 -94.0417854266628,32.88248532849,0 -94.04038263770489,32.6949577639329,0 -94.0354184994672,32.3893811626287,0 -94.034954991874,32.1996091989861,0 -94.0352556158215,31.9946792606335,0 -94.01007792557169,31.9893006514689,0 -94.00458470012971,31.9781086259495,0 -93.977400745224,31.9463271084149,0 -93.97017571506122,31.923332670499,0 -93.9359189554272,31.9096246079882,0 -93.9181114839259,31.9098704820605,0 -93.9236506911527,31.8927620881712,0 -93.8994496012559,31.8946233843507,0 -93.8927128271358,31.8702347315503,0 -93.88145152988172,31.8715888085537,0 -93.87759108418349,31.8502823749578,0 -93.8650100628645,31.8174424499476,0 -93.8345145984519,31.8021876362787,0 -93.82225394974822,31.7748083120293,0 -93.83134856148179,31.7534524078687,0 -93.8101762985126,31.7305247069651,0 -93.8151354745431,31.7125237592659,0 -93.8089554592767,31.7077383245665,0 -93.7924526022363,31.7115680299756,0 -93.81203005382371,31.6747403534088,0 -93.8066129278975,31.6539413361717,0 -93.814913937485,31.6481413307007,0 -93.81977388303059,31.6182675045639,0 -93.8357655763902,31.6153647157252,0 -93.83280517658469,31.5903601395257,0 -93.81650822499059,31.5772874839387,0 -93.81070199496421,31.5592406874184,0 -93.78031303899668,31.5339136421144,0 -93.7634896740234,31.5309019449363,0 -93.74772687918352,31.5378958623322,0 -93.7318419000288,31.5220556426776,0 -93.70597743151249,31.5207469124279,0 -93.71917654856812,31.4955823387378,0 -93.75061823711359,31.4907363154173,0 -93.7514269339373,31.4856800971189,0 -93.72696607966452,31.4596548516254,0 -93.6985991018577,31.4616380816002,0 -93.70210859382031,31.4464313212695,0 -93.6871849424459,31.4383118184741,0 -93.6963098944214,31.4279172119793,0 -93.6946236330265,31.41610345391331,0 -93.687672937394,31.4063113595588,0 -93.6641964541721,31.3985102835404,0 -93.6612511619287,31.3725768736666,0 -93.6350357193475,31.3740089507347,0 -93.6772195877398,31.3285702210106,0 -93.68176670818659,31.3128637606543,0 -93.65630632190602,31.2868557345123,0 -93.6457698113848,31.290447047048,0 -93.6310062786126,31.274088104753,0 -93.6166320369568,31.2759895241098,0 -93.61205418900251,31.2702180322556,0 -93.61117651049739,31.2423735819701,0 -93.590721311811,31.229873054352,0 -93.6030963428191,31.1992536873053,0 -93.59411608931301,31.1803867599593,0 -93.5771171728735,31.1723283005144,0 -93.55076452872321,31.19111664787181,0 -93.52909629329709,31.1859610191746,0 -93.5271048967346,31.1782631971006,0 -93.53719127433351,31.17652768282541,0 -93.52850100567309,31.16313081887,0 -93.5443630058743,31.1593545819132,0 -93.53767923010742,31.1326296405497,0 -93.52826420267931,31.1261142412602,0 -93.53526050690408,31.1162612988914,0 -93.5568523341309,31.1095326773987,0 -93.560155897223,31.1007267939647,0 -93.54329435054569,31.0949417830783,0 -93.5442784766347,31.0825635248279,0 -93.51717031814428,31.0748615453994,0 -93.52591374615082,31.0571716007113,0 -93.5073888583872,31.0390998146532,0 -93.54729164502071,31.0143343101026,0 -93.5651144950651,31.0182559489662,0 -93.5680671206996,31.0131177730676,0 -93.571019691156,30.9974647272144,0 -93.5611240812853,30.99188382509841,0 -93.57262960901809,30.9763719448991,0 -93.5488480918319,30.9703845889675,0 -93.53751052673201,30.95707912219491,0 -93.53236051643211,30.9609260649172,0 -93.5257915242765,30.9360147750055,0 -93.5301557030665,30.9271668885028,0 -93.5497943369345,30.9250805769799,0 -93.5466891601929,30.9055307409998,0 -93.56464927132871,30.9021283630613,0 -93.56867012587068,30.886431356764,0 -93.56101768200369,30.8720769365654,0 -93.55297612475269,30.8604804672822,0 -93.5666178980145,30.8453462320886,0 -93.55581440053979,30.8425404652408,0 -93.5508552163389,30.8285427515982,0 -93.5820450640059,30.8022395755774,0 -93.5853487574266,30.772384673359,0 -93.61862893538731,30.7459898029865,0 -93.6078251665993,30.7322109750573,0 -93.6179648833938,30.7327489593371,0 -93.61258556438951,30.7105301555471,0 -93.61778080972511,30.6870030300823,0 -93.6601628136184,30.6730608176726,0 -93.6781450325558,30.6398941531481,0 -93.6930532338358,30.6402433971316,0 -93.6847595364861,30.62362646596801,0 -93.69286961844639,30.6159971853325,0 -93.6717582009901,30.598033475394,0 -93.6935940747548,30.5990370562763,0 -93.7179855982276,30.5875818830799,0 -93.71805386498711,30.5683558276656,0 -93.73547935399731,30.5457197108965,0 -93.70563196785041,30.5230599502648,0 -93.71480998363299,30.5053160515853,0 -93.70744722226021,30.4964430039086,0 -93.7150231758618,30.4888310205347,0 -93.6981459876763,30.4702496513421,0 -93.70359329230058,30.4627158297037,0 -93.6967413311132,30.4428357517593,0 -93.7217050902489,30.4331831686188,0 -93.7427315855636,30.4090272375555,0 -93.7551137307405,30.3819930042287,0 -93.74800248894391,30.3676155313151,0 -93.75950766664521,30.3543502302936,0 -93.7593470787815,30.3410771727413,0 -93.72994140928799,30.3051219729382,0 -93.6993768807844,30.2975935292891,0 -93.70752396935821,30.2395787754494,0 + + + + + + + + + -92.01636774779772,29.5964783637641,0 -91.8490888327989,29.4870829559889,0 -91.7581129254523,29.4945134800923,0 -91.7649642707533,29.5342538256937,0 -91.7016159510209,29.5772668066965,0 -91.7698472437407,29.578615482821,0 -91.9025489396354,29.6509308946661,0 -92.01636774779772,29.5964783637641,0 + + + + + + + + + -91.34131892626149,29.3419108937759,0 -91.2761625423135,29.25402793048981,0 -91.1283068078309,29.2269993791403,0 -91.13469314485428,29.2599248605,0 -91.1636630060186,29.2452673853848,0 -91.15259233129218,29.2665337371954,0 -91.1950590671176,29.2736729306416,0 -91.20046067885291,29.3079853608587,0 -91.1880244437628,29.2847581611053,0 -91.17122390642319,29.2836766605259,0 -91.16156452373758,29.3237204954792,0 -91.18927563760259,29.2976114923275,0 -91.2265537135592,29.3813995046563,0 -91.30049299545411,29.3164578525778,0 -91.34131892626149,29.3419108937759,0 + + + + + + + + + -90.93457446121511,29.2590942309103,0 -90.99895334439211,29.3238000878402,0 -91.0073689638633,29.29754411189,0 -91.12751345160631,29.2935143884148,0 -91.1225616613936,29.2270851971627,0 -91.0555572747286,29.1909157285932,0 -91.06768935479481,29.2531193516372,0 -91.03310393919099,29.2756292528086,0 -91.04444877298839,29.2112586059428,0 -90.9945661692945,29.2248021337252,0 -91.00324045917338,29.1843167033403,0 -90.96202532966269,29.18579944909,0 -90.9449811331143,29.226391967718,0 -90.980382600158,29.219952293402,0 -90.9813824092254,29.2763485829958,0 -90.95362571609181,29.2730571631618,0 -90.97084581220372,29.2420957472829,0 -90.93457446121511,29.2590942309103,0 + + + + + + + + + Maine + empty + + +states.AREA: + 32161.925 + + +states.STATE_NAME: +Maine + + +states.STATE_FIPS: +23 + + +states.SUB_REGION: +N Eng + + +states.STATE_ABBR: +ME + + +states.POP2000: + 1274923 + + +states.POP2001: + 1284576 + + +states.POP00_SQMI: + 40 + + +states.DEN_0_100: + 97 + + +USStates.ID: + 23 + + +USStates.State_Name: +Maine + + +USStates.Date_Entered: +Mar. 15 1820 + + +USStates.Year_Entered: +1820 + + +USStates.Year_Settled: +1624 + +]]> + #Style_5 + + + -69.2342803140978,45.3894093487898,0 + + + + + + + -69.7772762645906,44.0741483198713,0 -69.76675520614469,44.0477322592984,0 -69.8000128595467,44.0268667288672,0 -69.7776729844266,43.7912707228193,0 -69.7503594273371,43.7617041140593,0 -69.724671298031,43.7844771657636,0 -69.7485283916032,43.8933754295128,0 -69.7206355796789,43.9379795478678,0 -69.6129323231589,44.0336128548498,0 -69.65524480155101,43.980249889013,0 -69.6644528704785,43.8522244586918,0 -69.5893265387295,43.844862803005,0 -69.48323307140311,43.8871600746258,0 -69.3944884505371,44.0251280788842,0 -69.3464537674589,44.0159695598265,0 -69.2936504808219,43.942190755563,0 -69.21914072354279,43.946787577244,0 -69.0744584304863,44.0690660136479,0 -69.02148227181431,44.2440933416922,0 -68.98502777494591,44.2711126004819,0 -68.9591794578908,44.430331837978,0 -68.8116777653337,44.4945934426597,0 -68.80790287781549,44.5696542069791,0 -68.8606089070208,44.6109704067522,0 -68.8238128460999,44.6640894736035,0 -68.8235520702076,44.6089068403569,0 -68.7452790256047,44.5523206373911,0 -68.7413487051019,44.5072848958119,0 -68.81376776419771,44.4139901814304,0 -68.81285168429019,44.3274322783305,0 -68.7403098752916,44.3463301473607,0 -68.55942677798301,44.2598872456427,0 -68.5300756616285,44.289836101881,0 -68.55218617390599,44.3990492489601,0 -68.4285712497143,44.46530639124,0 -68.36376573615171,44.4313868490081,0 -68.2456142631336,44.4906479970509,0 -68.1362647391276,44.4752371654176,0 -68.07437917140879,44.3813743661084,0 -68.016392981954,44.3849566034442,0 -67.9865237153801,44.484812336461,0 -67.963436756976,44.5053274248743,0 -67.9683422249939,44.4712284165698,0 -67.9000417769437,44.4523993525841,0 -67.8585605178656,44.5360772002757,0 -67.8112189343998,44.5540098374308,0 -67.6188382504584,44.5402396193185,0 -67.5709936023128,44.5983332155118,0 -67.3885104425158,44.6914001984435,0 -67.30846816150439,44.6535210401791,0 -67.20036458721739,44.6537812351816,0 -67.00771875956821,44.7806250078979,0 -66.9692710360024,44.8286551272807,0 -67.1467066767694,44.9045811973885,0 -67.0653586269938,44.959295663853,0 -67.1506607784721,45.1219898963224,0 -67.1659056389324,45.1562643764959,0 -67.27409523064929,45.1827832977016,0 -67.3456056673913,45.1222522184808,0 -67.43943485449461,45.1895839538421,0 -67.4779500648077,45.2802804372187,0 -67.4185550809287,45.3758523506007,0 -67.5041066775521,45.4858160063971,0 -67.4160842487578,45.5035545265692,0 -67.4393007667661,45.59256143000579,0 -67.6151403322051,45.6051988982084,0 -67.7180345966414,45.6812994578214,0 -67.75295517982291,45.65928919420249,0 -67.80343280585819,45.6781136054575,0 -67.80305340237,45.7945081513461,0 -67.7593671369616,45.8277986058452,0 -67.794570844796,45.87847571695521,0 -67.7556150798964,45.91658019879411,0 -67.7802895888027,45.94706274217331,0 -67.7910107659324,47.0610036074639,0 -68.2308067781327,47.3521481908886,0 -68.33481376042521,47.3573741052975,0 -68.3912568256045,47.2850971351555,0 -68.5146730447092,47.2969643156636,0 -68.89487201197031,47.18225650927629,0 -69.036714506994,47.2573616071401,0 -69.04697642788111,47.4220306555512,0 -69.2302960300003,47.453334503029,0 -69.984977566148,46.6913656777797,0 -70.01414471134019,46.5705982633135,0 -70.0466075241071,46.42611554377889,0 -70.1910585034955,46.3348397522369,0 -70.2834966429549,46.1902492629794,0 -70.229325409987,46.1374343941084,0 -70.30484962968779,46.0666583336474,0 -70.2800225675015,46.0531540673207,0 -70.3102952668023,45.96878225759991,0 -70.2474646921772,45.9446197500614,0 -70.2539641026553,45.8990048630746,0 -70.4162139203836,45.7903089854213,0 -70.39638312280751,45.7220459930229,0 -70.5522701315346,45.660664152262,0 -70.7199105999252,45.51295436047651,0 -70.6349296434642,45.3919670337142,0 -70.7969669129234,45.42517217072471,0 -70.82913206776721,45.3907261617344,0 -70.8126658344856,45.3546780200798,0 -70.8428755371108,45.2781374154307,0 -70.87644406148471,45.2254453802794,0 -70.9593819235283,45.33886576902731,0 -71.0875092473499,45.3014692052699,0 -71.0287261250693,44.6685380945196,0 -71.008596512061,44.2821463668217,0 -70.9844425613652,43.7911635520181,0 -70.973874166771,43.5718298935058,0 -70.9565244088141,43.5641434705,0 -70.9496195233573,43.5489536133091,0 -70.9642682587516,43.5319898518146,0 -70.9592784003468,43.5163880057296,0 -70.97079121747591,43.4702114970827,0 -70.9614829099438,43.4381263706902,0 -70.97909946378989,43.3961839179203,0 -70.9696996092209,43.3663799823752,0 -70.9058011398795,43.3020692769929,0 -70.90108590067651,43.281020042684,0 -70.8132073721395,43.235222695474,0 -70.8305481365302,43.1591741298583,0 -70.8186681583247,43.1218710916248,0 -70.66567210512321,43.091050561352,0 -70.538941073876,43.3357181684913,0 -70.4569767880509,43.3494706682902,0 -70.365925612365,43.4303037212258,0 -70.3416106101908,43.5349087014933,0 -70.222239251928,43.5772404279461,0 -70.2357978254955,43.685796426524,0 -70.1566285119637,43.7898104908998,0 -70.0264027843525,43.8456010551567,0 -69.9873704560013,43.8457387629637,0 -69.9995001025524,43.7862077545854,0 -69.9729033991696,43.7688475582739,0 -69.90313220107561,43.7907323183889,0 -69.8867908767136,43.8767134346018,0 -69.8461556590995,43.8423439660335,0 -69.8517853541081,43.7443279848531,0 -69.8303921849006,43.7279862438606,0 -69.79152799355209,43.7560849940079,0 -69.859928458154,44.0000010562904,0 -69.7772762645906,44.0741483198713,0 + + + + + + + + + -68.3879209893914,44.3772530708835,0 -68.4028903244654,44.2708014569031,0 -68.3207117037137,44.2250794730622,0 -68.3047050923042,44.2900314435771,0 -68.1647687868107,44.3344957275365,0 -68.238709216076,44.4375633361586,0 -68.35544950530149,44.4288577749373,0 -68.3502537650533,44.3989509513447,0 -68.3879209893914,44.3772530708835,0 + + + + + + + + + Maryland + empty + + +states.AREA: + 9739.872 + + +states.STATE_NAME: +Maryland + + +states.STATE_FIPS: +24 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +MD + + +states.POP2000: + 5296486 + + +states.POP2001: + 5362491 + + +states.POP00_SQMI: + 544 + + +states.DEN_0_100: + 52 + + +USStates.ID: + 7 + + +USStates.State_Name: +Maryland + + +USStates.Date_Entered: +Apr. 28 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1634 + +]]> + #Style_5 + + + -76.8193852682105,39.0640555384767,0 + + + + + + + -75.7107127327496,38.6496658557662,0 -75.7245906263035,38.8302832999716,0 -75.7525764003551,39.1416603330929,0 -75.7613129328181,39.2478639325384,0 -75.7643192412212,39.2959598236098,0 -75.77235374667779,39.3831185391944,0 -75.7910945763195,39.7238660373362,0 -76.1392231665553,39.7222292808326,0 -76.23312186464131,39.7218535861041,0 -76.56983441657761,39.7202653698966,0 -76.79049160379709,39.7212561436081,0 -76.99681222135089,39.7208916577077,0 -77.2210508745187,39.7206793349451,0 -77.46443302065821,39.7200734721353,0 -77.4757933985606,39.7196232012639,0 -78.0959483136605,39.7254610687401,0 -78.3345500729087,39.7240962157241,0 -78.384783030143,39.7237485696748,0 -78.81775834663399,39.7231158128337,0 -78.9301730523848,39.7223369261357,0 -79.39661009295681,39.7193136035322,0 -79.480971113096,39.720274058077,0 -79.48986479564221,39.1973957510982,0 -79.4611919892215,39.2132646214775,0 -79.4492818447752,39.2120934820003,0 -79.3848476494521,39.2693006300669,0 -79.3461946154148,39.2920920071237,0 -79.29527324453819,39.3005409622397,0 -79.27982260452779,39.3252435708184,0 -79.2601680465127,39.3486416544713,0 -79.16301834698341,39.3934958538665,0 -79.1581275486525,39.4139606424208,0 -79.1314006491727,39.4170311916524,0 -79.1040784853939,39.4473068185213,0 -79.0967157288178,39.4646284760702,0 -79.104597173003,39.4708728556173,0 -79.0706297593098,39.4708498495391,0 -79.0644114910497,39.4858256028263,0 -79.04885455275689,39.4838153049718,0 -78.970436606663,39.438525300318,0 -78.9553908044919,39.4604587300207,0 -78.8708155126305,39.5257902221119,0 -78.8381145866481,39.5633182054468,0 -78.80655063800541,39.5668238139764,0 -78.8224126817224,39.5856984808976,0 -78.7984707782291,39.6154181040351,0 -78.7981503202116,39.6308329361782,0 -78.7727054582047,39.6442413593536,0 -78.7676164768578,39.6266140472135,0 -78.73238303982021,39.6269651904324,0 -78.73049853216,39.6215446407261,0 -78.73625116835829,39.608792329934,0 -78.7737430747891,39.6016168803692,0 -78.7614516806553,39.5817923449266,0 -78.73271861228101,39.5766427925479,0 -78.7163150181332,39.5595725682967,0 -78.6664251857124,39.5369295856868,0 -78.6491442196502,39.5379978698818,0 -78.6370818045276,39.5299491862748,0 -78.604366257192,39.5356829078104,0 -78.5641887564812,39.521073443727,0 -78.50878283764369,39.525159517656,0 -78.4812781842694,39.5199376222576,0 -78.4558109647124,39.5337352582767,0 -78.4458699009632,39.5483185504429,0 -78.4208220953532,39.5494097703543,0 -78.4618162122069,39.5808339965825,0 -78.4506314866027,39.592705125494,0 -78.4039995740291,39.5876131045842,0 -78.431893779582,39.6209523855928,0 -78.3846362229595,39.6144947493043,0 -78.37767072595661,39.6313171842384,0 -78.3567810297593,39.6323702224905,0 -78.3479232590728,39.6405907650805,0 -78.27301593703299,39.6184096414251,0 -78.2577267039254,39.6411676777696,0 -78.22923031045851,39.6585663745485,0 -78.2275978107419,39.6739888201001,0 -78.2043044442965,39.6759383682958,0 -78.1829721387067,39.6946416432551,0 -78.0943379340484,39.6756002259056,0 -78.02641818067529,39.6228676658044,0 -77.995205151108,39.5989693016707,0 -77.96423675783581,39.6113249804037,0 -77.94497955111849,39.5860111667727,0 -77.93545786949809,39.5919391289044,0 -77.9475432559036,39.6150137753716,0 -77.9386090344815,39.6182180888264,0 -77.903253436057,39.5961238764369,0 -77.8907409489792,39.6007014665387,0 -77.88843689880569,39.6165703160658,0 -77.855522813824,39.6021663910764,0 -77.8424075807765,39.6053745299037,0 -77.8398667728917,39.572740433055,0 -77.85295909355961,39.5654544565677,0 -77.885171166646,39.5644510981679,0 -77.8899167307584,39.5580921006877,0 -77.8695609560795,39.5459120760673,0 -77.86463209209241,39.5146512457229,0 -77.8438492144584,39.5319315749014,0 -77.83546428030221,39.5256107761519,0 -77.828925751391,39.5292537667709,0 -77.8252634740426,39.5120383875386,0 -77.84787748402169,39.5020058349846,0 -77.82518711275171,39.4939074430119,0 -77.771551216988,39.4981152221263,0 -77.79949832671841,39.4808271058573,0 -77.78510893810591,39.459102708835,0 -77.8041904928873,39.4631385518333,0 -77.7957979551353,39.4509164333512,0 -77.8046940179175,39.4400179505449,0 -77.8022754371077,39.4323161756799,0 -77.75698633951841,39.4251637984679,0 -77.74083452238931,39.4034394054792,0 -77.7372333565171,39.3961953951361,0 -77.7562233700037,39.3784762226869,0 -77.7454504163582,39.3603718912509,0 -77.7543007117046,39.3385939912988,0 -77.7500891970593,39.3268181439956,0 -77.72746748091871,39.3177965867944,0 -77.6793019175109,39.3187810010414,0 -77.616235785843,39.2998185774258,0 -77.5686729648781,39.298495090027,0 -77.5419007825367,39.2690420737433,0 -77.4937734776117,39.2500146595609,0 -77.4646672485749,39.2291606204918,0 -77.4617071219601,39.2187353607732,0 -77.4783476432128,39.1770378462932,0 -77.5163278483541,39.1575488653215,0 -77.51275784419811,39.1167594573458,0 -77.47895899133,39.1040646528751,0 -77.459404555923,39.0809444981026,0 -77.4327467353536,39.0668840135464,0 -77.3462265685837,39.0686200582469,0 -77.3243065775866,39.0626960558372,0 -77.2556927153402,39.0276818620407,0 -77.2434318664787,38.9759898010602,0 -77.15174771824201,38.9648893335594,0 -77.12232830291251,38.9321712762375,0 -77.0420882700669,38.9935411597528,0 -77.00793074386711,38.9666671332517,0 -76.9109046912897,38.8901000805306,0 -77.04514742259011,38.7882339432299,0 -77.0461695666273,38.7188957809267,0 -77.0568205142596,38.7121363148863,0 -77.08157873831389,38.7153939181929,0 -77.0928476424555,38.7040989116303,0 -77.12481562054811,38.6779155452061,0 -77.1296906932316,38.6482418914715,0 -77.2774587919105,38.4872207930521,0 -77.2555770674964,38.41371718721,0 -77.2206258675067,38.3907877017763,0 -77.00209178315311,38.4269772011524,0 -76.9727248648513,38.3311549876724,0 -76.9082699582989,38.2999784778825,0 -76.86387331328881,38.3914714190274,0 -76.7599276109587,38.2344093308613,0 -76.5769505272031,38.222764311271,0 -76.3298385406414,38.045830240005,0 -76.3434505132736,38.2131869285095,0 -76.6469375997288,38.4505479866903,0 -76.5197569015984,38.4102610484431,0 -76.471598574103,38.3357833947148,0 -76.421135969123,38.3206235821057,0 -76.4051288342195,38.3461435452093,0 -76.38548233996821,38.3914043684505,0 -76.50857122280399,38.522220870784,0 -76.52493097705791,38.7097512630869,0 -76.5488052362963,38.7590892616049,0 -76.47171855918209,38.9083512988567,0 -76.42361665438941,39.1184647232768,0 -76.5636056235403,39.1963744261278,0 -76.59482606965,39.1587962366193,0 -76.6070184386023,39.1810927544493,0 -76.5766676572233,39.1982282762434,0 -76.5648189147791,39.2315530428342,0 -76.6037153612334,39.2594608609242,0 -76.530981239764,39.2427262967213,0 -76.3987214377801,39.23125237193,0 -76.36371048044749,39.393387950291,0 -76.2263383547627,39.3749983931238,0 -76.1541997728595,39.4020462004049,0 -76.07817856597509,39.542475359461,0 -76.03108047888399,39.5700410038864,0 -75.9744299206522,39.5241368727679,0 -75.9523031535122,39.4712951808406,0 -75.9784646617012,39.3946638351226,0 -75.84939918573831,39.3792510141722,0 -76.03709097678841,39.3584799261141,0 -76.1120448111742,39.3214068908311,0 -76.2181125034375,39.2049624205434,0 -76.2385676859932,39.1309353125061,0 -76.22144635528851,39.0930291937215,0 -76.1109520010634,39.1187058442236,0 -76.199341894342,38.9734670026609,0 -76.1135363312758,38.9208289937164,0 -76.0951642657932,38.9482447165723,0 -76.10256436980529,38.8981319074412,0 -76.07553203210389,38.8896633042527,0 -76.11403931382679,38.8855703797452,0 -76.16552288981249,38.7887251297383,0 -76.19484328035701,38.7653724001326,0 -76.27208777077171,38.8341158634797,0 -76.35020456068629,38.6991431917132,0 -76.3372950814248,38.6794939962041,0 -76.2667911199833,38.7700039380465,0 -76.2229814834233,38.7629085069421,0 -76.17370840256589,38.7092130303982,0 -76.123703577538,38.7080947052705,0 -76.0756590311907,38.6109007702122,0 -76.0465823676188,38.5919759809806,0 -76.0277220313837,38.6221228840739,0 -76.0315976662875,38.5720404826446,0 -76.25072102933051,38.5952017233529,0 -76.1918807885951,38.5434629709824,0 -76.29165294584,38.4788511852767,0 -76.29394177820269,38.4370577153623,0 -76.0651198948853,38.259057093733,0 -76.0204640236521,38.3220175737297,0 -75.994942456991,38.2826466356901,0 -75.94958453518571,38.2821771251992,0 -75.8864815116298,38.3755815466837,0 -75.8720918837096,38.3573513417761,0 -75.89461301257011,38.2589952816564,0 -75.7938261188739,38.2637247654706,0 -75.86132498504991,38.2401659678014,0 -75.8377266864712,38.2317163388415,0 -75.89745125560199,38.1750572625645,0 -75.769206402107,38.0973712697568,0 -75.86538493141229,37.9797804654786,0 -75.64786661285071,37.9702549087239,0 -75.62608404746069,37.9965412351653,0 -75.37242058358361,38.0168338616125,0 -75.3730687313232,38.0690409029093,0 -75.2624990292677,38.2015335967299,0 -75.1506169090142,38.2738812082701,0 -75.1548735291952,38.3697395682799,0 -75.0927212334893,38.4505638472484,0 -75.3498423227975,38.4553227905156,0 -75.6988024422464,38.4631827108939,0 -75.70707355672541,38.5575913668919,0 -75.7107127327496,38.6496658557662,0 + + + + + + + + + -76.2928041305598,38.9078367280903,0 -76.27318950163161,38.9493434073476,0 -76.246408808548,38.9236940972491,0 -76.2478217695177,38.9790095805696,0 -76.2994902315763,39.0407073059323,0 -76.3564746271561,38.958299911005,0 -76.37524061903341,38.8542185416326,0 -76.32938725969851,38.8760038237182,0 -76.3422215756121,38.9241707280608,0 -76.3223079602806,38.9122005623908,0 -76.31412982025771,38.9420383665643,0 -76.3387433583291,38.9567741081102,0 -76.2941866944134,38.9676801350473,0 -76.2928041305598,38.9078367280903,0 + + + + + + + + + -75.0679246646819,38.4500753640855,0 -75.0873204261931,38.3230592800575,0 -75.0456230125111,38.4496021608759,0 -75.0679246646819,38.4500753640855,0 + + + + + + + + + -75.2703576848931,38.0277091732938,0 -75.2422192799713,38.0286475070447,0 -75.17281187763599,38.1243063358622,0 -75.0940269654088,38.3203165911443,0 -75.164373449629,38.2049624515,0 -75.2093886849695,38.0942969089551,0 -75.2440961931471,38.0380238346228,0 -75.2703576848931,38.0277091732938,0 + + + + + + + + + Massachusetts + empty + + +states.AREA: + 8172.561 + + +states.STATE_NAME: +Massachusetts + + +states.STATE_FIPS: +25 + + +states.SUB_REGION: +N Eng + + +states.STATE_ABBR: +MA + + +states.POP2000: + 6349097 + + +states.POP2001: + 6406858 + + +states.POP00_SQMI: + 777 + + +states.DEN_0_100: + 31 + + +USStates.ID: + 6 + + +USStates.State_Name: +Massachusetts + + +USStates.Date_Entered: +Feb. 6 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1620 + +]]> + #Style_5 + + + -71.80258992883,42.2568345174596,0 + + + + + + + -71.31932779027051,41.7721958646078,0 -71.2666285816007,41.7497430522047,0 -71.22897615917781,41.7076939683673,0 -71.1988086806704,41.6785003452843,0 -71.1412126344661,41.6552730544524,0 -71.1171327154705,41.4930619563068,0 -71.0011847867691,41.5201241035125,0 -70.8921284437165,41.6339125917583,0 -70.8394306808208,41.6266919415081,0 -70.6197608834614,41.7356361919149,0 -70.6648878020878,41.5561271066309,0 -70.6371390963447,41.5398046803128,0 -70.43291891916461,41.569755900056,0 -70.3976166138351,41.6125715907981,0 -69.9544232643854,41.6714951143766,0 -69.9177797984556,41.7676537960301,0 -69.9641706778297,41.9040941730569,0 -70.0504709879468,42.0262987126367,0 -70.13509049703229,42.0724940905303,0 -70.2551481598432,42.0601192659912,0 -70.1004972494064,42.0021938707637,0 -70.00044794743459,41.8563504070949,0 -70.0192146776447,41.7815193451751,0 -70.2052596214815,41.7125732892697,0 -70.3411271976759,41.7118130863329,0 -70.2738341329655,41.721663017485,0 -70.42351172103081,41.7436223850015,0 -70.5377048060198,41.8057620061259,0 -70.5403385173567,41.9309515217422,0 -70.6187030078313,41.9681898123452,0 -70.686037251662,42.1531665960055,0 -70.77459547590971,42.2486399423215,0 -70.8246609058028,42.2605069326982,0 -70.8926710305429,42.2657668652407,0 -70.9232041375729,42.2345170134159,0 -71.03416194900311,42.2856288096679,0 -70.9606220141229,42.4323935235108,0 -70.8936039190112,42.4480681190628,0 -70.81312837940889,42.5464364349616,0 -70.6334520465019,42.5826421345195,0 -70.59319925007451,42.6463050999637,0 -70.7396954300213,42.6635235535106,0 -70.8138807202681,42.8670649720671,0 -70.84973977624399,42.8634293009967,0 -70.8981116667382,42.8868774762984,0 -70.9213361332524,42.885149233192,0 -71.02542615731881,42.8511713651458,0 -71.065564728038,42.8043197291356,0 -71.12060440995749,42.8182808692669,0 -71.18106084331041,42.807317168902,0 -71.1863474665185,42.7387606265609,0 -71.24047922287529,42.7435552404171,0 -71.2524115796458,42.7260689220942,0 -71.287194447592,42.6986034465098,0 -71.90094191420261,42.7053786149513,0 -71.9302165845551,42.7072094199587,0 -72.2799169173511,42.720467037784,0 -72.4557700038868,42.7258525290855,0 -72.92299742922531,42.7373644761782,0 -73.0196951738304,42.7403966786337,0 -73.2580598287651,42.7460586400616,0 -73.35082423703111,42.5047557597646,0 -73.49884000273219,42.0774606830635,0 -73.4842302844536,42.0474280500728,0 -73.0456324711282,42.0363103821922,0 -73.0060955098662,42.0360092024926,0 -72.8164509949267,42.033507731778,0 -72.817679571843,41.9971850435429,0 -72.7675750314897,42.0021671817802,0 -72.75589381790709,42.0338475230699,0 -72.6095266969696,42.030536850941,0 -72.60782527309461,42.0228008077559,0 -72.58190737022019,42.0216068944432,0 -72.57122589242989,42.0301249737628,0 -72.5075717905207,42.0307660006011,0 -72.1363467150764,42.0264020644269,0 -72.0949717608141,42.0257995069483,0 -71.80234071658769,42.0179769339478,0 -71.7978316087619,42.0042748046851,0 -71.4974303691298,42.0092535031422,0 -71.3786442228911,42.0137133195162,0 -71.3824052822434,41.9792630768653,0 -71.38395315470341,41.8884397544727,0 -71.333085950288,41.8960311596525,0 -71.34249312021549,41.8757828914979,0 -71.3345427095385,41.8579036075383,0 -71.34548316624701,41.8131613833437,0 -71.33979862314,41.7844255626959,0 -71.31932779027051,41.7721958646078,0 + + + + + + + + + -70.6043308335024,41.4296630739879,0 -70.60584217854981,41.4746632583726,0 -70.66748797346899,41.4549372973785,0 -70.7517695470512,41.3821690323835,0 -70.77092662880651,41.3249804137282,0 -70.78252415013171,41.352517678155,0 -70.8439198398732,41.3485988852067,0 -70.7697130665689,41.298163904796,0 -70.7386765301454,41.3341551752324,0 -70.486141190082,41.3415610204116,0 -70.5151571489217,41.3986601230011,0 -70.575857359437,41.4102856936161,0 -70.5528317397027,41.4173887728697,0 -70.5676946736082,41.4645667099463,0 -70.6043308335024,41.4296630739879,0 + + + + + + + + + -70.03171640756911,41.3119311871487,0 -70.09787203770659,41.2776309471401,0 -70.2070964296735,41.2940877852649,0 -70.21326869354419,41.270204935144,0 -70.10310570522719,41.2382796862047,0 -69.96844433867869,41.2518167689829,0 -69.96598006456441,41.2948911801898,0 -70.04926441844221,41.3919612498596,0 -70.0344859690813,41.3497184956242,0 -70.0876332277476,41.2968486962802,0 -70.0266199082301,41.3372104301762,0 -70.00650844928499,41.3247747653595,0 -70.03171640756911,41.3119311871487,0 + + + + + + + + + Michigan + empty + + +states.AREA: + 57899.398 + + +states.STATE_NAME: +Michigan + + +states.STATE_FIPS: +26 + + +states.SUB_REGION: +E N Cen + + +states.STATE_ABBR: +MI + + +states.POP2000: + 9938444 + + +states.POP2001: + 9997284 + + +states.POP00_SQMI: + 172 + + +states.DEN_0_100: + 85 + + +USStates.ID: + 26 + + +USStates.State_Name: +Michigan + + +USStates.Date_Entered: +Jan. 26 1837 + + +USStates.Year_Entered: +1837 + + +USStates.Year_Settled: +1668 + +]]> + #Style_5 + + + -85.4386025294334,44.3365484429102,0 + + + + + + + -88.4975275282269,48.1737953051637,0 -89.1560989935608,47.93922809600121,0 -89.20178730153791,47.883856943529,0 -89.19291626356561,47.8446133573585,0 -89.1398848301356,47.8240760135492,0 -89.0286226647864,47.8506552310947,0 -88.9015476276433,47.9602485109714,0 -88.62532706800501,48.0331676704744,0 -88.4975275282269,48.1737953051637,0 + + + + + + + + + -88.50068113271711,47.2901802187495,0 -88.5956323026243,47.243592963422,0 -88.59426204335659,47.1347650286244,0 -88.47066419275591,47.1114725925833,0 -88.4128433970392,46.9880945574411,0 -88.2222796851962,47.20075228444591,0 -87.9170421798346,47.35800703474979,0 -87.73751047538521,47.3930248530549,0 -87.70438353060609,47.4159502393094,0 -87.78812041255949,47.4707930407946,0 -88.2113917997532,47.4478349809783,0 -88.43790109187169,47.35589615672669,0 -88.50068113271711,47.2901802187495,0 + + + + + + + + + -85.8598446689146,45.9694694332197,0 -85.6553812556068,45.9728707038144,0 -85.5095462997763,46.10191144051079,0 -85.378242862305,46.1000474968113,0 -85.0616297207559,46.0247516443713,0 -84.8510998289,45.8906367080231,0 -84.7317322269644,45.85567967180521,0 -84.68902263973691,46.0359181647936,0 -84.6168451285152,46.0382300997572,0 -84.50163489117131,45.9783426043905,0 -84.35448508342451,45.99919002614029,0 -84.1132725571978,45.97853868939439,0 -83.9064607016374,45.9602396119094,0 -83.9019522904123,46.0059021950587,0 -83.9895017437976,46.0259857516108,0 -84.0619810068951,46.0944707342467,0 -84.0295784705683,46.1289437813081,0 -84.1197351080435,46.1761086144177,0 -84.24703149238211,46.171447449818,0 -84.27313420703641,46.2073090320522,0 -84.181646508334,46.2487208573892,0 -84.3116140465187,46.4886691648575,0 -84.41596703992489,46.4806585984594,0 -84.57266689802989,46.40792634821091,0 -84.6298147995395,46.4829429912477,0 -84.80365300490671,46.4440542272806,0 -84.931320645464,46.4878435249077,0 -85.0166397498537,46.4764442097209,0 -85.051655182818,46.5055768367989,0 -85.0189754555566,46.5490241006878,0 -85.02697150185961,46.6943397781429,0 -84.9547594637199,46.7709512828567,0 -85.2300947338335,46.7567853203433,0 -85.5038505878416,46.674174579044,0 -85.8575364791034,46.6948151482157,0 -86.0967391005232,46.6552685367715,0 -86.1481090958201,46.6730530979662,0 -86.46239202904469,46.5610855335273,0 -86.6382203191924,46.42226370889561,0 -86.7594957088175,46.4866315025199,0 -86.8713826815009,46.4443597313603,0 -87.00640197649859,46.53629363488701,0 -87.1106791249956,46.5014733756769,0 -87.3715388665667,46.5079912016724,0 -87.6637661990473,46.83685158256339,0 -87.9006541308096,46.9097618467136,0 -88.0366849184073,46.9118654572711,0 -88.1891883816124,46.9009581842231,0 -88.17782681696821,46.945890272928,0 -88.4466168624265,46.7993967669245,0 -88.4765228993159,46.8551516596417,0 -88.44596477585399,46.92830447098779,0 -88.4411640771673,46.9907346098996,0 -88.5129949819838,47.032589654359,0 -88.5112154949687,47.1065061773656,0 -88.6181043741835,47.13111439065281,0 -88.62950007120951,47.2258127771419,0 -88.8848320236261,47.1045548203599,0 -88.9296883362077,47.0309261610721,0 -88.9948757098838,46.9971033190838,0 -89.1251876986471,46.9966066327594,0 -89.2145920401578,46.9233784671178,0 -89.3867180852705,46.85020839272341,0 -89.7912444026547,46.8247129534584,0 -89.8862519694252,46.7689352365095,0 -90.01886460043491,46.6786337680856,0 -90.4081998571279,46.5686106643971,0 -90.38552505384241,46.5396577407228,0 -90.3137081584288,46.5515632659266,0 -90.3023935803059,46.544296405249,0 -90.300181077668,46.5250515829943,0 -90.2697849871137,46.5224805256097,0 -90.2584017374293,46.5087897865362,0 -90.2115257849797,46.5062949924702,0 -90.1613911037779,46.4423800673451,0 -90.1417974652462,46.39389931520821,0 -90.11517713167859,46.3651557309551,0 -90.1116593658125,46.3404289934283,0 -89.925136091667,46.30402570041401,0 -89.0998061353819,46.14564279170131,0 -88.9853010679315,46.1003912267907,0 -88.92519544224371,46.07360150800961,0 -88.80439717033499,46.0268046239007,0 -88.7938153525548,46.0363602068919,0 -88.7774806211023,46.0326143605406,0 -88.7730171354202,46.021147746959,0 -88.7264096386053,46.029581736083,0 -88.7036055788856,46.01892364058919,0 -88.6773838648913,46.0201441283944,0 -88.6436694832571,45.9933882928391,0 -88.61550234597981,45.9941205068572,0 -88.5975360335339,46.0155164912387,0 -88.575357692098,46.0089590630598,0 -88.5483579419945,46.0193002259831,0 -88.5156131830942,46.01860956196891,0 -88.49408327895949,46.0129599627087,0 -88.483813961278,45.99915098858521,0 -88.4543189656679,46.0007603460834,0 -88.40352211244171,45.9834220708464,0 -88.3699382062343,45.9945870784701,0 -88.32132305028109,45.9667127656587,0 -88.2991520587513,45.9619441469833,0 -88.25716803963969,45.9670551908873,0 -88.2149918189356,45.9479016364541,0 -88.1801939444304,45.9535166684228,0 -88.15043842419399,45.93629352156811,0 -88.1113904221148,45.9262876744074,0 -88.093850061765,45.9206153043833,0 -88.0957641221132,45.8918035055568,0 -88.0654210733109,45.8736421368008,0 -88.121786443611,45.8348779040675,0 -88.12994949370579,45.8194019526506,0 -88.0887340937991,45.79153251888161,0 -88.0516393398365,45.7861121476097,0 -87.99006981134831,45.7950463354111,0 -87.9691796312807,45.7664485705759,0 -87.873628831766,45.7506993690495,0 -87.8423627328109,45.7224184643369,0 -87.8015528795181,45.71139103613621,0 -87.8011558298595,45.70132435444889,0 -87.7774737292068,45.6841018123955,0 -87.7809448308433,45.67591566979451,0 -87.81705427025651,45.6653907719653,0 -87.8199378153198,45.6544505099681,0 -87.7760447968861,45.61320014924521,0 -87.77507546391441,45.6003869719677,0 -87.78631248967309,45.5685197968153,0 -87.8286019788526,45.5685917608724,0 -87.8051409550811,45.5445258364016,0 -87.78938490783349,45.49906763103741,0 -87.8136146858711,45.4664604760223,0 -87.8602674034623,45.445098404767,0 -87.8495317013046,45.4061175328758,0 -87.8836106233029,45.36585448274341,0 -87.8739746664525,45.36208580082749,0 -87.86853527657431,45.3720723766891,0 -87.86209606573161,45.3701651658513,0 -87.84128251380081,45.3461489152026,0 -87.8280078733776,45.3583213196226,0 -87.76003806908641,45.3528977344774,0 -87.6895980065264,45.3912693654604,0 -87.6436840378919,45.3618558882988,0 -87.645362038293,45.34816920676,0 -87.7044714190303,45.2722051755656,0 -87.7051420461443,45.2470862859939,0 -87.71966802928161,45.23677159669181,0 -87.72162823196,45.2116719436728,0 -87.7361999812867,45.1990723551736,0 -87.72966881168701,45.1766048406442,0 -87.6728141404664,45.1406726367061,0 -87.5925143132007,45.1085018074312,0 -87.58386416098671,45.1627331960046,0 -87.33222680525159,45.42394270187959,0 -87.2607070334237,45.5548024600535,0 -87.12375941810291,45.6962467505129,0 -86.9016241205329,45.714778151079,0 -86.7614692096392,45.826067773125,0 -86.584735685807,45.8138796968306,0 -86.696919405518,45.69251111172819,0 -86.68505337036631,45.65004804099411,0 -86.629784386179,45.62123355870779,0 -86.57612474228731,45.7101740346977,0 -86.52201061737431,45.7240941649958,0 -86.52938982637311,45.74896120959101,0 -86.4582753564091,45.7627474587696,0 -86.34379558304561,45.83439616514829,0 -86.31563861501689,45.9056825648406,0 -86.2593192707417,45.9469296652713,0 -86.067891449499,45.9642103933668,0 -85.9171044674119,45.9181924006148,0 -85.9149553497885,45.95797817970151,0 -85.8598446689146,45.9694694332197,0 + + + + + + + + + -83.8546801700959,46.0140316422695,0 -83.8858916672003,45.9708524498185,0 -83.8528104836337,45.9974492109717,0 -83.804881070028,45.936764510125,0 -83.629704837753,45.9535961546271,0 -83.57981373770861,45.9175013541361,0 -83.5161593405338,45.9257147658035,0 -83.4731894201386,45.987547805609,0 -83.5339910274221,46.0117900707978,0 -83.58949805959941,46.0885184421793,0 -83.6498875534141,46.1039714892754,0 -83.732448534534,46.08410814655849,0 -83.68031444287379,46.07179455246539,0 -83.6735921422512,46.0361921724046,0 -83.7564199993262,46.0273380165628,0 -83.8011052680607,45.98841247488381,0 -83.8546801700959,46.0140316422695,0 + + + + + + + + + -86.8348296412819,41.7655047552312,0 -86.5251809764443,41.7655403363901,0 -86.2345652919433,41.7648642479853,0 -86.0683022053847,41.7646284325784,0 -85.79922697228621,41.7635349679273,0 -85.65945882918869,41.7626275140628,0 -85.29720963584781,41.7635810035748,0 -85.1931406144237,41.7628675471372,0 -84.8260080463026,41.7618751066694,0 -84.7884777858482,41.7609594561938,0 -84.79037747295131,41.6974947329852,0 -84.38439324270421,41.7071503370832,0 -84.35920849224161,41.7080391705922,0 -83.868639675225,41.7159933856432,0 -83.76395412119879,41.7170422186577,0 -83.4826910020175,41.7251299269076,0 -83.19006624457531,42.0339796563901,0 -83.19387310674711,42.1157494340736,0 -83.107588485427,42.2927057543585,0 -82.92938905928671,42.3630404584644,0 -82.87490709168991,42.4580671820726,0 -82.88813814869479,42.4957559768438,0 -82.802361560496,42.6129258784123,0 -82.8204067747469,42.6357945388927,0 -82.7298058507281,42.68122680411,0 -82.63401479868659,42.6693828613479,0 -82.6458773357857,42.6317284970443,0 -82.5181795398622,42.6340520555246,0 -82.4732382545008,42.7628960899223,0 -82.4719527162131,42.8986819969275,0 -82.4198358589283,42.9724650786066,0 -82.5038206240279,43.1722534988665,0 -82.6057380465658,43.6945684044879,0 -82.61848776538859,43.7878661020809,0 -82.72790219887359,43.972506277548,0 -82.8059778732508,44.0335645723623,0 -82.9401540705878,44.0699595149276,0 -83.32602585310789,43.9404594218171,0 -83.36716318794871,43.844452153086,0 -83.4664083716859,43.7457407367818,0 -83.4942480190406,43.7028415322697,0 -83.53090972920811,43.7259433589107,0 -83.6546148101736,43.6074199226765,0 -83.6991646571783,43.5996422574816,0 -83.9381217654628,43.698283731803,0 -83.918376196547,43.9169976606375,0 -83.8736148499472,43.9628422046614,0 -83.7048019672777,43.9971652266508,0 -83.5984044651608,44.070493356617,0 -83.5682369426092,44.1701180526948,0 -83.5291504874037,44.2612741330213,0 -83.356962952145,44.335133682907,0 -83.32003621808229,44.5154601725864,0 -83.280812186475,44.7031838105345,0 -83.3197243749479,44.860646589634,0 -83.42935572956959,44.9262969077196,0 -83.4649030258911,44.9978831954067,0 -83.4339724672792,45.0111281816831,0 -83.4444410041901,45.05277359214701,0 -83.3127074580252,45.0986201471471,0 -83.3986957035617,45.2136414467938,0 -83.4207614501791,45.25718269852389,0 -83.3940196634256,45.2729072818439,0 -83.48959802510289,45.3289374401826,0 -83.49583213180431,45.36080192486221,0 -83.592363108339,45.3495018817337,0 -83.71231863656089,45.41239441936009,0 -83.782809495878,45.4094489102236,0 -83.92289215949469,45.491773583756,0 -84.1059075983171,45.49874951213231,0 -84.13522881914039,45.5713432584365,0 -84.2055603253076,45.6309054506234,0 -84.3214583512467,45.665607571299,0 -84.46527503674039,45.6536374615858,0 -84.7241858039318,45.7803045686693,0 -84.9720378240667,45.73774518871549,0 -84.98341250400669,45.6837137292165,0 -85.0780197003353,45.6301851677823,0 -85.12044693558239,45.5697793498832,0 -85.0818156898282,45.464650463889,0 -84.92167403324559,45.4098990503169,0 -84.9858934396436,45.37317811148381,0 -85.0928627445342,45.3702250037919,0 -85.30547495309349,45.3203837985815,0 -85.373252794881,45.2735409266072,0 -85.39024477400371,45.211593083379,0 -85.3848695133689,45.0106032425427,0 -85.4513511003899,44.8605403796015,0 -85.5260810367145,44.76316233761,0 -85.6380395377647,44.7784356967099,0 -85.6530062666143,44.9583622397271,0 -85.56551465635459,45.18056026557281,0 -85.6102150946457,45.1965277092277,0 -85.7957565629422,44.9859748602387,0 -86.0674543490246,44.8982569078434,0 -86.09796468725619,44.8506123089817,0 -86.08291833647959,44.7779289033047,0 -86.1084845600375,44.7344420211888,0 -86.25862694050851,44.7007309766977,0 -86.23803830888259,44.5222735987814,0 -86.271954369493,44.3512284893904,0 -86.3864232316096,44.1832041325685,0 -86.5186023282979,44.053619224709,0 -86.4381471318946,43.9455921234144,0 -86.4595481972781,43.9501848083598,0 -86.42881418089701,43.8201238403686,0 -86.4341008938508,43.78145827444,0 -86.4043451853738,43.7666424042588,0 -86.4478111642203,43.7726653117644,0 -86.5413012212606,43.6631870809765,0 -86.4632010649154,43.4751666759798,0 -86.2738368374562,43.1210450506522,0 -86.2178547734773,42.7748252127058,0 -86.28498077199561,42.4223247647982,0 -86.3742778338012,42.2494214217998,0 -86.4988334182755,42.1264467479204,0 -86.6175922510584,41.9074480787407,0 -86.8348296412819,41.7655047552312,0 + + + + + + + + + Minnesota + empty + + +states.AREA: + 84520.49 + + +states.STATE_NAME: +Minnesota + + +states.STATE_FIPS: +27 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +MN + + +states.POP2000: + 4919479 + + +states.POP2001: + 4992492 + + +states.POP00_SQMI: + 58 + + +states.DEN_0_100: + 95 + + +USStates.ID: + 32 + + +USStates.State_Name: +Minnesota + + +USStates.Date_Entered: +May 11 1858 + + +USStates.Year_Entered: +1858 + + +USStates.Year_Settled: +1805 + +]]> + #Style_5 + + + -94.3059456842785,46.315646568988,0 + + + + + + -91.7303661652997,43.4995717605756,0 -91.61109897494811,43.5006261853338,0 -91.22356677965871,43.5008086595185,0 -91.2405580213774,43.5487125887566,0 -91.23298990442041,43.5988900700786,0 -91.25838918935199,43.6773222933277,0 -91.2589159418758,43.722395792303,0 -91.25110489264939,43.7880757984421,0 -91.2919479787799,43.8471907610578,0 -91.37335730440661,43.9471911008781,0 -91.42590181819401,43.9856198570706,0 -91.5284201557391,44.0342152895652,0 -91.5691620630017,44.0349552968239,0 -91.60178627007811,44.0408222716716,0 -91.65223360680488,44.0668957468858,0 -91.75321932280971,44.137227713274,0 -91.8487439445729,44.1911872320563,0 -91.8886943206616,44.2574949606432,0 -91.92234937163771,44.2883410303644,0 -91.92275412337878,44.3175199116197,0 -91.93886834504872,44.339111391384,0 -91.9723859734527,44.3644872200889,0 -92.09133339981391,44.4155898138742,0 -92.20613743547611,44.438394406506,0 -92.24910036010419,44.4562167874695,0 -92.2966874837295,44.4921818837451,0 -92.32047800875431,44.5404910618561,0 -92.3408725165741,44.552835394321,0 -92.50921485952681,44.5751591745776,0 -92.60897363372321,44.6102923158697,0 -92.6303675936169,44.6426524073846,0 -92.7371456955245,44.7135944805029,0 -92.8055846707726,44.7461605361291,0 -92.76102806028632,44.8353710549111,0 -92.7642634372038,44.8622340952332,0 -92.77187081519131,44.8994959546817,0 -92.75392579385328,44.9150027795129,0 -92.74976784308311,44.9356555439475,0 -92.76712645766899,45.00100490501169,0 -92.76299156220411,45.0221192057595,0 -92.7967618135124,45.06561027085739,0 -92.745422213769,45.1130040157029,0 -92.74493484528919,45.15642269767639,0 -92.76258304535911,45.1866121435376,0 -92.7554192919425,45.21237648106559,0 -92.7465933709999,45.2976031328022,0 -92.70738439950389,45.3182016620431,0 -92.6848697682278,45.3630764817203,0 -92.6487510358123,45.3954659291152,0 -92.64497507097812,45.4394520895191,0 -92.65481774623471,45.4552217732121,0 -92.6854210050266,45.47005330592301,0 -92.72815467639281,45.5472423195578,0 -92.7621749006385,45.5642634927727,0 -92.8350370161896,45.5634021889124,0 -92.87683120537091,45.5788365687146,0 -92.88539736667759,45.6449553564473,0 -92.86001973034908,45.7105625427853,0 -92.8336362361192,45.7308902363902,0 -92.7791069996475,45.7633404333685,0 -92.7487619268784,45.8373020678585,0 -92.73409766347459,45.8449807095829,0 -92.7062407667141,45.8909581511523,0 -92.66620788226589,45.9157031282064,0 -92.5526720844383,45.951269177817,0 -92.523976865602,45.9825831928093,0 -92.46234575772182,45.9811975360765,0 -92.424999275654,46.02550410046081,0 -92.36496279806639,46.0162488119767,0 -92.34622483014461,46.02259611620039,0 -92.3273726656403,46.05687820515121,0 -92.28937040263681,46.0732311286316,0 -92.2889439643788,46.1566006735494,0 -92.28868526089251,46.4159840674228,0 -92.2872715563534,46.6587860038615,0 -92.3031480663,46.6665757766645,0 -92.2146242678823,46.6682038862087,0 -92.08849202307899,46.7918972785432,0 -91.8009688624982,46.927086623484,0 -91.4686571836076,47.1249355556153,0 -91.0214756530082,47.4610588390706,0 -90.50963345452878,47.70993799650971,0 -89.9996777736217,47.8245648226691,0 -89.6363736107452,47.9593906700956,0 -89.6256450556299,47.9925618003996,0 -89.53067313598361,48.0016559923925,0 -89.7493099330168,48.0264846412458,0 -89.9003891418888,47.99250512067161,0 -89.9870207360302,48.0235567657025,0 -90.0267005742131,48.0860790014952,0 -90.14527002079679,48.11277085020891,0 -90.5568351655885,48.0927504182125,0 -90.5674552658806,48.1216998440229,0 -90.74336558712381,48.08844371515371,0 -90.8644947891665,48.2541980952133,0 -91.02714843931439,48.1953389259894,0 -91.2394466747146,48.0812981350086,0 -91.5715618830894,48.0435715472354,0 -91.5687753292567,48.1044577516695,0 -91.70373106504471,48.1148349055472,0 -91.71193784619291,48.196775109185,0 -91.7888148497142,48.20614520447209,0 -91.9795339629396,48.2503981435702,0 -92.03518366304429,48.35550878694159,0 -92.12596210613212,48.3667559539545,0 -92.276130881027,48.3523196851575,0 -92.3002722840632,48.2983114429892,0 -92.27691795711418,48.24434086906501,0 -92.37011602275121,48.2207790471373,0 -92.4733222786803,48.357498964433,0 -92.45634491288702,48.40216907873939,0 -92.497529244791,48.44007277128479,0 -92.7066429969655,48.4603699594979,0 -92.698821186614,48.4947209620297,0 -92.62637994133861,48.5028239458538,0 -92.64181991541932,48.5403493271395,0 -92.7290006435522,48.5402115541602,0 -92.94692624020411,48.6283554983948,0 -93.0914423831067,48.6265848629951,0 -93.30423676330351,48.6371629986434,0 -93.45776948562218,48.5927099128974,0 -93.46533944532861,48.5495199345034,0 -93.5141391057052,48.5342709597703,0 -93.7811059808909,48.511590153422,0 -93.81268540339329,48.5254079471682,0 -93.84390378713221,48.6247369771822,0 -94.2308273869122,48.6519875523433,0 -94.2923368906057,48.707711135665,0 -94.4306344734039,48.7107852810122,0 -94.5703127368143,48.71367626358171,0 -94.69443202241369,48.7776155300333,0 -94.6812499456836,48.8771613109608,0 -94.8320392613248,49.3308059165427,0 -95.1518673347569,49.3717301437862,0 -95.15774988936289,48.9999959148723,0 -95.2766571152867,48.99999121224381,0 -96.4069151843986,48.9999820713408,0 -97.22943644383329,48.9999877567165,0 -97.21636909583231,48.9318299182446,0 -97.17572751730749,48.87375778734761,0 -97.17120441179901,48.8359804803914,0 -97.180421855856,48.8155374993874,0 -97.1647124057145,48.81036830295489,0 -97.17394470123411,48.8015144641308,0 -97.14751600300801,48.7811701058176,0 -97.13924598743699,48.7635421115078,0 -97.14789838866929,48.7556533929197,0 -97.1325018005064,48.74721879009559,0 -97.13480616135631,48.72623793064931,0 -97.11010128165211,48.70858304519639,0 -97.1167392665872,48.6952431183753,0 -97.0971692767445,48.67452891358581,0 -97.1076300563642,48.6299465820435,0 -97.12744434552491,48.6297943394125,0 -97.1229581756859,48.62076865965261,0 -97.14471807468772,48.614024636853,0 -97.1408119037381,48.58690580615401,0 -97.1581923011142,48.5836407260616,0 -97.15212680110921,48.5728564381998,0 -97.16794315057858,48.5622632793582,0 -97.14661837238491,48.549537028086,0 -97.16043569382291,48.5450778855401,0 -97.15553751110001,48.5383982428954,0 -97.13938559124,48.53464808973769,0 -97.14832765896941,48.5179512756552,0 -97.13459432660341,48.5173139662426,0 -97.1436129528287,48.4381095940115,0 -97.11963315137211,48.4371020760904,0 -97.1226011810987,48.4161098774117,0 -97.1516469812462,48.4196122946538,0 -97.14982354769968,48.4099916056847,0 -97.12912451530391,48.40788551888869,0 -97.15881888906552,48.3882060567347,0 -97.13520540024382,48.3844100102639,0 -97.1337863598383,48.37245473762349,0 -97.1503959422882,48.3632158504957,0 -97.1311236997639,48.3614912628834,0 -97.1371359526577,48.325991839938,0 -97.11259178050868,48.3199260418033,0 -97.1326346023646,48.3109694998778,0 -97.11475103859129,48.3036182701977,0 -97.11372110772452,48.2948826063907,0 -97.13051368584328,48.2930404066961,0 -97.1126835485646,48.2861469425287,0 -97.1117146532382,48.2778766724222,0 -97.1366555811411,48.26448372514071,0 -97.12378464072812,48.2591734472995,0 -97.12755405772062,48.2335233812974,0 -97.1092357553089,48.2280489212221,0 -97.13975391723049,48.2217551769127,0 -97.1108994630634,48.2076058326789,0 -97.13082783294991,48.203741885664,0 -97.13727498096822,48.19506350874159,0 -97.13629125790619,48.1752269254696,0 -97.13744349769659,48.1677691625112,0 -97.1160657786151,48.15922376009381,0 -97.1365131689498,48.1483979760568,0 -97.12091854672551,48.1427747596289,0 -97.1218728658484,48.1163692500537,0 -97.09903037740141,48.10097253646661,0 -97.09272143407961,48.0703439518727,0 -97.06707134786728,48.048164548667,0 -97.04805316836101,47.9549243203709,0 -97.0153310859442,47.9178900732528,0 -97.02056624465818,47.8755694579146,0 -97.0003404808151,47.8701978669666,0 -96.9772315863069,47.82802938021419,0 -96.98389283615319,47.8096615237026,0 -96.95783043536861,47.7944403501783,0 -96.9320126704945,47.76350633439991,0 -96.92365919198331,47.7140944463104,0 -96.88942557471509,47.6739252332857,0 -96.8733355306381,47.61525494214149,0 -96.8522168516036,47.6011515774988,0 -96.85866448748919,47.5629780191413,0 -96.84918872371689,47.5445680596933,0 -96.86068697531159,47.521355890617,0 -96.8516156149426,47.5006189556105,0 -96.86668409504289,47.46153767201731,0 -96.8558270224376,47.4367532150799,0 -96.8672485372544,47.4130870926383,0 -96.85000552427368,47.40893619134631,0 -96.83982751825211,47.3841173886799,0 -96.8506310274787,47.3609547965118,0 -96.83846171594141,47.3422432670699,0 -96.84674742491131,47.3146021392787,0 -96.8377139015022,47.2938841531782,0 -96.84962364144019,47.2568437171683,0 -96.83706533207652,47.24045886252299,0 -96.8264910530645,47.1700638561564,0 -96.83916391918299,47.15188672447119,0 -96.8191517739067,47.092603946145,0 -96.82696455551869,47.0788327499143,0 -96.8226082854226,47.0339323228784,0 -96.83529642490029,47.010231336615,0 -96.8245311005541,47.0034368148568,0 -96.81677225710112,46.9697793204954,0 -96.7934256963282,46.9696412657999,0 -96.80188711680511,46.9558437462552,0 -96.78971039131831,46.9482025284177,0 -96.78792529587892,46.9321845446505,0 -96.7630680116614,46.9362617243826,0 -96.75691111938932,46.92278040676061,0 -96.77806115639289,46.86734962234851,0 -96.7682498142506,46.8448617179934,0 -96.79719698567129,46.8120331273937,0 -96.78038206028749,46.76231192357041,0 -96.7815566712509,46.70704424821519,0 -96.7936950250642,46.6788040267861,0 -96.79024584630611,46.6297732310646,0 -96.7843175742934,46.6241120798968,0 -96.77104176601431,46.599983727298,0 -96.7512275405111,46.5886193856906,0 -96.7403159762507,46.48943263621611,0 -96.7148938591495,46.4687184679509,0 -96.70968261750701,46.4271682580565,0 -96.68822802670302,46.4122182590646,0 -96.652101616659,46.359433744956,0 -96.6148614718026,46.3508125122489,0 -96.60207424773671,46.3363242033822,0 -96.59818306918299,46.2386825873787,0 -96.586456172813,46.2154130412247,0 -96.58789029848551,46.1919183501241,0 -96.5711660882375,46.1771746587376,0 -96.5519309951806,46.0955288981098,0 -96.57621526476891,46.0212796299197,0 -96.56180218014301,45.947683082204,0 -96.56692152993792,45.9341104552974,0 -96.5879553105857,45.81785439182519,0 -96.6046107059596,45.80826424845279,0 -96.6573917688784,45.7389705623089,0 -96.83279582155808,45.6506868841235,0 -96.8549898493374,45.6091221067738,0 -96.8430871871886,45.5840902909474,0 -96.7692462014101,45.5174788689806,0 -96.73803233417799,45.45819529036351,0 -96.6931692082715,45.41063812193121,0 -96.605084508902,45.39652440242141,0 -96.53254890239431,45.375132161552,0 -96.47759206506849,45.32850936575391,0 -96.45760224516572,45.29885024157079,0 -96.45449660823299,45.2751954302209,0 -96.45607982498672,44.9719948297018,0 -96.45521726388,44.801347584114,0 -96.4567178119828,44.6288086832266,0 -96.4551061874746,44.5383431654349,0 -96.4573975061948,44.1990613946085,0 -96.45660233944199,43.8487418284865,0 -96.4604547078315,43.4997184756898,0 -96.0610395014389,43.498533697461,0 -95.8669120002192,43.4989439769817,0 -95.46477535859469,43.4995410217166,0 -95.3965585901372,43.5003340364673,0 -94.9204646838526,43.4993712448179,0 -94.859839276263,43.5000304051637,0 -94.4552382894281,43.4981020923778,0 -94.2467873911458,43.4989484742926,0 -93.97394980408042,43.5002988511065,0 -93.653699466766,43.5007626988541,0 -93.5008302025135,43.5004884829356,0 -93.0543803044398,43.5014574340012,0 -93.0272108293768,43.5012788635835,0 -92.5580084257835,43.5002595022348,0 -92.4531691122113,43.4994619143947,0 -92.07753252302631,43.499153513998,0 -91.7303661652997,43.4995717605756,0 + + + + + + + + Mississippi + empty + + +states.AREA: + 47618.965 + + +states.STATE_NAME: +Mississippi + + +states.STATE_FIPS: +28 + + +states.SUB_REGION: +E S Cen + + +states.STATE_ABBR: +MS + + +states.POP2000: + 2844658 + + +states.POP2001: + 2871527 + + +states.POP00_SQMI: + 60 + + +states.DEN_0_100: + 95 + + +USStates.ID: + 20 + + +USStates.State_Name: +Mississippi + + +USStates.Date_Entered: +Dec. 10 1817 + + +USStates.Year_Entered: +1817 + + +USStates.Year_Settled: +1699 + +]]> + #Style_5 + + + -89.6640053796168,32.7591641085257,0 + + + + + + -88.4508031165511,31.4356176907354,0 -88.465096841429,31.7022450293789,0 -88.4729519210596,31.8888768167036,0 -88.4377242279507,32.2277556143888,0 -88.4257919971009,32.3092243032455,0 -88.3938325168417,32.5804702260594,0 -88.3480414662251,32.9247582205318,0 -88.33946633175739,32.9874972113755,0 -88.3048295831961,33.2888943469818,0 -88.2745866910838,33.5388014650338,0 -88.24819560524909,33.7427263969428,0 -88.20264467082561,34.0591222846376,0 -88.19934924265689,34.0904480664289,0 -88.1676133199948,34.3241474912554,0 -88.15125641336159,34.4652732358205,0 -88.13640162363011,34.5804972978314,0 -88.09046867570861,34.8956296636558,0 -88.10888651427,34.8999364686021,0 -88.1431049406294,34.9303124572945,0 -88.1939935775637,35.0044536440488,0 -88.3517277419525,35.0038322749094,0 -88.3831462732763,35.0050415368605,0 -88.7850433913526,35.0031823096823,0 -88.8125482768171,35.0024385995065,0 -89.0061963915943,35.0002347214314,0 -89.1981347323638,35.0008837887335,0 -89.3423729736416,34.9998048697839,0 -89.64655874084551,35.0007332954087,0 -89.7172700655279,34.9992611903073,0 -90.3054483329108,35.0007887668604,0 -90.2996040912406,34.9785763166455,0 -90.2482645856439,34.9498563938362,0 -90.24199312177619,34.9389999550718,0 -90.24293921036021,34.9208271417899,0 -90.2668045737091,34.8966081006537,0 -90.2963692858759,34.8827875862869,0 -90.2995432252211,34.8650572468814,0 -90.30164901403768,34.851873932935,0 -90.3229203349016,34.8503632334111,0 -90.34152127876421,34.8606740294564,0 -90.4040306027044,34.8411352642473,0 -90.4224103169264,34.8323653841601,0 -90.433648709805,34.83545134437,0 -90.4279417146019,34.8727391673229,0 -90.43818824405589,34.8862771531433,0 -90.47062930169579,34.8810204416072,0 -90.4748179857494,34.8578237977629,0 -90.45200553728539,34.8253158387959,0 -90.46680699538459,34.7997617150697,0 -90.4489690543041,34.7608489921917,0 -90.45153258063928,34.7412990973377,0 -90.48602595176961,34.7269330960027,0 -90.5045201438459,34.7299541802284,0 -90.5170709695817,34.7484702598375,0 -90.49883609775949,34.7658840525447,0 -90.5013843558158,34.7899313101001,0 -90.51614770215419,34.8057007952067,0 -90.5273632829947,34.8074211116658,0 -90.5478489155079,34.7904345448067,0 -90.53338308133611,34.7133527478315,0 -90.5136680230595,34.702168426854,0 -90.4700800044602,34.7043544473312,0 -90.4663261216033,34.6721400223716,0 -90.5089145701068,34.6381667803775,0 -90.5390670140484,34.6369954120314,0 -90.54765041882089,34.6519066940829,0 -90.53916630258439,34.6860476391663,0 -90.56116263432628,34.7003866360947,0 -90.57940507832259,34.6457114581828,0 -90.58809525009498,34.6279161438152,0 -90.5777188709607,34.6048453840045,0 -90.5307199720464,34.5557516818131,0 -90.53725095298539,34.5434303779675,0 -90.5657859528414,34.5326117672652,0 -90.5804501933474,34.5203246797393,0 -90.59015506208731,34.4966090201687,0 -90.57450570771368,34.4540494001334,0 -90.57922804447659,34.4331032095237,0 -90.60389412048508,34.4047029797656,0 -90.6573464859749,34.3660143325751,0 -90.65791781402791,34.3301110369,0 -90.6794406527353,34.3180794258637,0 -90.68948128142971,34.3202498232312,0 -90.6812424323426,34.3635040042302,0 -90.6875906711157,34.3779766258423,0 -90.75541794936311,34.3722691135712,0 -90.7619638892818,34.364018026031,0 -90.74786301501229,34.3178229839966,0 -90.75836020093259,34.2790815153021,0 -90.7926330280344,34.3000616903072,0 -90.80652652929172,34.2994512329978,0 -90.82394433723711,34.277444457808,0 -90.8314661258313,34.2296393889001,0 -90.86351805053698,34.2192670758548,0 -90.9285457793972,34.2502985218322,0 -90.93381765059741,34.2347805101336,0 -90.9215946009177,34.2049348828191,0 -90.8230272013098,34.1906501116551,0 -90.80761499232,34.1662785963789,0 -90.82897009057919,34.1487653755381,0 -90.84671660873281,34.1476512964452,0 -90.92902561447708,34.1857547898992,0 -90.9534553235284,34.1559087583442,0 -90.9423538254879,34.1260478667544,0 -90.90641792332421,34.1028552934255,0 -90.86643858092512,34.1010591014266,0 -90.88645032093149,34.040818090639,0 -90.95057738634012,34.0313950359426,0 -90.9734737113361,34.0111046201452,0 -90.9753809466784,33.9947130844006,0 -90.9612354430936,33.9789817484763,0 -90.96489758467079,33.9675683195034,0 -90.9869243510316,33.9609229307681,0 -91.0003678622968,33.9684795241317,0 -91.0096532951119,33.9906347187545,0 -91.03116883753491,33.9858050201095,0 -91.0698054890087,34.0062011888095,0 -91.08896340340431,33.9945738225001,0 -91.075817398803,33.9747494464877,0 -91.01857194440652,33.9364134475297,0 -91.06148054411389,33.8671886882777,0 -91.0549265134198,33.8436334807269,0 -91.0289626430975,33.8166950131436,0 -90.99047854078901,33.7990071442826,0 -90.9841458001964,33.7854500107548,0 -90.99548340691879,33.7716600260669,0 -91.01854016459431,33.7640838422967,0 -91.04351203531321,33.7696642449716,0 -91.06650027762299,33.7866351498749,0 -91.10552584181519,33.7765486562049,0 -91.1370973386382,33.7801949325541,0 -91.1430026284613,33.7719285490089,0 -91.1381116937944,33.7233341453239,0 -91.129055226842,33.7125503367781,0 -91.1046784705554,33.7083431494327,0 -91.0563218415079,33.7194673047115,0 -91.0389337685444,33.7056013490966,0 -91.03794174479148,33.6833276928149,0 -91.08387971624239,33.6626975706472,0 -91.1211582957132,33.6776390014341,0 -91.16341157255451,33.7184243604201,0 -91.2117911105934,33.7090740491267,0 -91.21525485495199,33.690832533146,0 -91.20542010320271,33.670054473021,0 -91.1545148512779,33.6371425699443,0 -91.15076092012042,33.6162728236941,0 -91.16813338054911,33.5773559141775,0 -91.18791706051998,33.5747923198036,0 -91.2268436629257,33.5905920919159,0 -91.2277437480702,33.5564627810534,0 -91.21359825583821,33.539388695493,0 -91.20421377208162,33.5386182116453,0 -91.1829574461633,33.5234628974492,0 -91.18051588058511,33.5121258753279,0 -91.20775358321031,33.4735103338542,0 -91.2272625589118,33.4595677906787,0 -91.23296184460889,33.4435578002255,0 -91.1818813238998,33.4475023901927,0 -91.1718407642763,33.4667586515282,0 -91.17429002799679,33.5044814214406,0 -91.16508870848941,33.511893278083,0 -91.12890876375178,33.4933048406628,0 -91.11906643910299,33.4697877493532,0 -91.11982172873771,33.4529461878788,0 -91.13062529226629,33.4432379167019,0 -91.19894113644132,33.4222266229444,0 -91.2042742333541,33.414414252442,0 -91.1850932093454,33.3919462343914,0 -91.13774359783101,33.3889939554845,0 -91.09923682479071,33.4150136902789,0 -91.08590793517429,33.4629711994008,0 -91.07386834518309,33.4663205040007,0 -91.0610886583117,33.4601256250454,0 -91.0616226774054,33.4319126666717,0 -91.0787969781513,33.4102951070005,0 -91.107049532132,33.3935220665091,0 -91.13053349445238,33.3595184071126,0 -91.1418557768241,33.3225012621225,0 -91.1226136683412,33.2686236274109,0 -91.10301308177489,33.249329353099,0 -91.07643152692042,33.2924766671242,0 -91.0539393519749,33.2936936328911,0 -91.0405340548071,33.2820400168761,0 -91.05464881790898,33.2459002185311,0 -91.09211028743471,33.2258161142148,0 -91.08642608991831,33.1617229779066,0 -91.09596309376539,33.1452056628518,0 -91.12143839042092,33.1311906845818,0 -91.1777374599034,33.1504085143774,0 -91.19561365046539,33.1405858277008,0 -91.19064668515279,33.1133457020205,0 -91.1468983565878,33.0907747749873,0 -91.1178981011678,33.0656937749518,0 -91.1240933135817,33.0473950555076,0 -91.1567938514993,33.040555368368,0 -91.16078409477549,33.0218332391698,0 -91.1622413295772,33.0131626211682,0 -91.16197425997009,33.0004180010727,0 -91.20927012576061,32.935978073614,0 -91.19842078694131,32.9142883501159,0 -91.16980976931431,32.9051486450656,0 -91.13728478778282,32.9179123119183,0 -91.13004429846551,32.9375917893587,0 -91.13246289263051,32.9753485871396,0 -91.1119239712728,32.9874752104853,0 -91.09278126642242,32.9877460881529,0 -91.075698595519,32.9538382302101,0 -91.0796355518755,32.8772908363965,0 -91.1422592525615,32.8413420630697,0 -91.1564502239537,32.7628111152121,0 -91.1365751786759,32.751256737741,0 -91.0978169539142,32.7495287526143,0 -91.05913512287872,32.7236507270734,0 -91.1396654000576,32.663308001886,0 -91.1463718367631,32.6449866188679,0 -91.1111005222843,32.5976630747531,0 -91.06391930560149,32.6065243385273,0 -91.0477369807394,32.6144891676735,0 -91.02757194109799,32.6416374743549,0 -91.0079868510271,32.6428085554835,0 -90.99623739617641,32.6261121948604,0 -90.99876283398881,32.6156030444933,0 -91.03243221757509,32.5828091644492,0 -91.05897546705708,32.5765265579993,0 -91.07337249217869,32.5617489074888,0 -91.0631947408495,32.5422984158072,0 -90.9951774336628,32.511781889744,0 -90.9921562021718,32.4954212340256,0 -91.01979041957442,32.4909543534273,0 -91.03730785093811,32.4970957768502,0 -91.08889104990392,32.5487755489391,0 -91.11885237927079,32.524205893418,0 -91.1177919517207,32.4987093128914,0 -91.0586173128584,32.4471403993983,0 -91.027015703315,32.4425591367523,0 -90.987555664684,32.4531064313693,0 -90.96559027073792,32.4401789961165,0 -90.9700917310243,32.41916079336,0 -91.0093152122207,32.3972270178482,0 -90.99896957955122,32.3663787517009,0 -90.98467186569272,32.3565410587047,0 -90.91502958658171,32.3460435683761,0 -90.8852590969197,32.3814999498488,0 -90.8754551600106,32.3797948696303,0 -90.9164792854551,32.3054643188479,0 -90.9293503055389,32.2975529103154,0 -90.9717628039961,32.3038468581634,0 -90.9808724634335,32.2978007782368,0 -90.98392428988359,32.2872802390738,0 -90.97112198627711,32.2692145344565,0 -90.97732476193758,32.2235541462358,0 -91.0417564572334,32.249588584805,0 -91.06256993823,32.2328921503996,0 -91.08802223200981,32.2325373651522,0 -91.1006796950342,32.2150360650047,0 -91.1160609494648,32.225755012482,0 -91.15737514242458,32.2060145228895,0 -91.1669578883395,32.1721410581455,0 -91.15665029978031,32.1449354980044,0 -91.10882038739021,32.1351435271569,0 -91.0831163105895,32.148731083052,0 -91.05415436554129,32.1345446969889,0 -91.04541852022901,32.1588244987585,0 -91.0545816942883,32.1846835164502,0 -91.0245210933432,32.1700508264511,0 -91.00393646145051,32.1694138145198,0 -91.0113905060031,32.1342128745109,0 -91.04119164865929,32.1078235881288,0 -91.0739225856783,32.0941482900527,0 -91.06511798689969,32.0587070505858,0 -91.08941061986668,32.0569980949997,0 -91.125727524233,32.0883996668359,0 -91.1456941711085,32.085828620503,0 -91.1431229851656,32.0662598368965,0 -91.08699202272901,32.0438110998955,0 -91.07324347350119,32.0321499472516,0 -91.07248812939382,32.0212135515791,0 -91.10811063502561,31.9919842773777,0 -91.16314291993849,31.9884481049272,0 -91.20154214815391,31.914448862447,0 -91.2444813396436,31.8786718608009,0 -91.26469211768119,31.8655859136312,0 -91.24138341450281,31.8353877405104,0 -91.25072958285951,31.8188210015347,0 -91.27680008896378,31.8275334941804,0 -91.2926470392426,31.8614928392569,0 -91.30347348797039,31.863144546493,0 -91.33484640167582,31.8434784170896,0 -91.3472366701502,31.7958323053943,0 -91.36713463540391,31.7708677200763,0 -91.3362574528706,31.7636219421964,0 -91.26268491650518,31.7739271210982,0 -91.2639894905689,31.7597635597382,0 -91.28262100699412,31.7498875713679,0 -91.3399120227254,31.7585428158009,0 -91.3704992222101,31.75347510581861,0 -91.3650745397498,31.7517413813867,0 -91.38794806501321,31.716682847539,0 -91.3891838304294,31.6546051479529,0 -91.4084028346628,31.6255298775261,0 -91.45737763016589,31.6269660621133,0 -91.4977690885564,31.6508953247071,0 -91.50780965753789,31.6438707722357,0 -91.50887776268431,31.621946112804,0 -91.49715101609371,31.6043585245596,0 -91.4153838994301,31.6025923876789,0 -91.40425216217201,31.5863534317346,0 -91.42357803613481,31.5627464662349,0 -91.46447302857931,31.5428664076677,0 -91.50295705582839,31.5348804964065,0 -91.506481902402,31.5256872825259,0 -91.50790071721922,31.4530834240658,0 -91.4732924895748,31.4203746865528,0 -91.46592215694071,31.4040690532825,0 -91.48083803831911,31.3777805832693,0 -91.49470875734109,31.37524960980541,0 -91.52301453224139,31.3920917852495,0 -91.53416902145848,31.4092388142744,0 -91.53480241584072,31.434335247521,0 -91.5524724466605,31.4330997709492,0 -91.56773147230381,31.4214064364688,0 -91.5593769120174,31.3882304242528,0 -91.53457323759901,31.3827500700431,0 -91.5444076356665,31.3688746277826,0 -91.54279004566349,31.3469862680809,0 -91.5057561590215,31.3234567034819,0 -91.5024753378186,31.2988580123244,0 -91.5170781714622,31.2830696578166,0 -91.55691947736142,31.2704690710127,0 -91.634214237565,31.2776940549104,0 -91.6436824254271,31.2711178839201,0 -91.636998739959,31.241104186479,0 -91.6009643646854,31.2139296737496,0 -91.5914883087676,31.1784818992551,0 -91.6201139178138,31.1276943834946,0 -91.56497527228081,31.0821350184803,0 -91.552081308545,31.0581597906819,0 -91.57278761694658,31.032647877549,0 -91.6277732104017,31.0119601110946,0 -91.6322974277285,31.00136500740931,0 -91.17920745434212,31.0004616671834,0 -91.05701216426981,31.0004181174657,0 -90.82971390290152,31.00154581229931,0 -90.56025489707021,31.0017063331187,0 -90.5426536021385,31.0023300433606,0 -90.3436602569889,31.0053899463824,0 -90.2593768226071,31.0073700245843,0 -89.83355873794839,31.0071848554001,0 -89.7327174808554,31.00744501459671,0 -89.7236228724726,31.0015247201013,0 -89.726781296615,30.9846164008972,0 -89.7198229059406,30.9754936822636,0 -89.7395225295214,30.965400256862,0 -89.7485405475115,30.9498480428011,0 -89.7404756300233,30.9261095623025,0 -89.75805428152501,30.9210436978628,0 -89.7457551089107,30.910107202755,0 -89.7468002599141,30.9027945578147,0 -89.76331078881169,30.9004713517936,0 -89.76585085732459,30.8620847088871,0 -89.7850241384817,30.8615791361643,0 -89.77479992387271,30.8305319403895,0 -89.79609421512551,30.8291051373468,0 -89.7965669822497,30.8126526475249,0 -89.8109335655279,30.8116989081619,0 -89.8246894189972,30.7897246849283,0 -89.813351089932,30.7481682046961,0 -89.8255660189393,30.74264836900471,0 -89.8233990376437,30.7330545562641,0 -89.83561400018191,30.7293619382654,0 -89.8440520689247,30.7124249093943,0 -89.83072296372239,30.7037809798175,0 -89.8413433452435,30.7005499465483,0 -89.8417854969649,30.6795198391887,0 -89.8353918067202,30.675882597152,0 -89.8454474865972,30.6662525153547,0 -89.8295245363783,30.6708739896173,0 -89.81935389911089,30.6512457789506,0 -89.8055366119584,30.6494567398327,0 -89.8203071285261,30.6242705431171,0 -89.7908478814126,30.5539438185454,0 -89.7727961225489,30.5512468627469,0 -89.75517865909291,30.5156218767139,0 -89.73231974937779,30.4978380271641,0 -89.719059260721,30.4960375437604,0 -89.7131840947211,30.48141599910741,0 -89.695681461547,30.4782460714929,0 -89.6945978512597,30.4681868413409,0 -89.6834507334724,30.4627185730285,0 -89.6754620986314,30.4453524057824,0 -89.67536970065041,30.4000744263161,0 -89.6546699231165,30.37906533290621,0 -89.64668882303469,30.3552905752797,0 -89.633451292423,30.3553078019512,0 -89.620198293058,30.343429054806,0 -89.6185880809724,30.323760747644,0 -89.6370822520275,30.3118436964481,0 -89.6391725011899,30.29582979652721,0 -89.6259425171347,30.2903558515233,0 -89.6216616714494,30.2569643699525,0 -89.6063106026528,30.247828412852,0 -89.6100033159566,30.2414198536792,0 -89.5738839850623,30.1949353118833,0 -89.4381213198934,30.2009670531795,0 -89.4156141811479,30.2564852330285,0 -89.3185425339085,30.3188533708312,0 -89.3575310460273,30.3652847342137,0 -89.335046582448,30.3804232519676,0 -89.27352821831209,30.3723862703524,0 -89.2761213477847,30.3148407273573,0 -88.8857264645103,30.3982888782491,0 -88.93022291070869,30.4168011352414,0 -88.873786281284,30.4302766265056,0 -88.68326442818061,30.3423228324023,0 -88.57776076825159,30.3807498514342,0 -88.4642372948552,30.3260764687888,0 -88.3992249519191,30.3528859313249,0 -88.40141515368251,30.3935517804008,0 -88.41724262810349,30.7364571156747,0 -88.4291990018716,31.0006950876596,0 -88.4345631161403,31.1208794693781,0 -88.4508031165511,31.4356176907354,0 + + + + + + + + Missouri + empty + + +states.AREA: + 69832.746 + + +states.STATE_NAME: +Missouri + + +states.STATE_FIPS: +29 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +MO + + +states.POP2000: + 5595211 + + +states.POP2001: + 5646796 + + +states.POP00_SQMI: + 80 + + +states.DEN_0_100: + 93 + + +USStates.ID: + 24 + + +USStates.State_Name: +Missouri + + +USStates.Date_Entered: +Aug. 10 1821 + + +USStates.Year_Entered: +1821 + + +USStates.Year_Settled: +1735 + +]]> + #Style_5 + + + -92.4801886377418,38.3639901274756,0 + + + + + + -89.1050338653654,36.9539220770253,0 -89.1072162055416,36.9775040571059,0 -89.1299298602513,36.9881656914537,0 -89.1935842098097,36.9868222806571,0 -89.2101262118458,37.0290237051986,0 -89.2377536103058,37.0417835282019,0 -89.26413039669779,37.0871742876795,0 -89.28431079352841,37.0912941061444,0 -89.30336936544271,37.0854347008365,0 -89.3097775142834,37.0609596218128,0 -89.26431960659031,37.0277834462293,0 -89.26207602720631,37.0087367322465,0 -89.28284342367,36.9992571418446,0 -89.3110577890705,37.0097321155337,0 -89.3830287336186,37.0492635096727,0 -89.3800701656133,37.0991331193152,0 -89.42388077877629,37.1372534192951,0 -89.44060600449021,37.165367829282,0 -89.4683040002904,37.2243166291394,0 -89.46539822681051,37.2537814318187,0 -89.48968358551591,37.2560512507203,0 -89.51397668384681,37.276452254325,0 -89.5139774032488,37.3050126842203,0 -89.5006722080316,37.329491318765,0 -89.46883367402491,37.3394589952529,0 -89.43582789426451,37.3557666795513,0 -89.4276653438195,37.4110680347262,0 -89.4537142750772,37.4532354416246,0 -89.4948777729593,37.4917750136486,0 -89.52506805859341,37.5720063661821,0 -89.5134636137585,37.6159786570251,0 -89.51927739008779,37.6504256791403,0 -89.51347129814729,37.6798905957089,0 -89.5216197606815,37.6948481923868,0 -89.58153539397119,37.7061554249312,0 -89.6665610141995,37.7455048947008,0 -89.6759604497414,37.784021807452,0 -89.6911585166015,37.8048461895875,0 -89.728551127852,37.8410437278203,0 -89.8518221998746,37.9051156711928,0 -89.8611532194338,37.9055391707122,0 -89.8669213710244,37.8919285019704,0 -89.900659718619,37.8759567792384,0 -89.93798377619601,37.8780970980944,0 -89.97902314782711,37.9119372642027,0 -89.95833872049469,37.9636867798315,0 -90.01092211725509,37.9693709792311,0 -90.04203572235682,37.9932585919637,0 -90.1194535601973,38.0323252746278,0 -90.13482705649538,38.0540042508408,0 -90.20764422452261,38.0889589210515,0 -90.25417712909579,38.1222235068627,0 -90.2897533449443,38.1668707739162,0 -90.3368353674101,38.1887672607723,0 -90.36488893881901,38.2343531960061,0 -90.36946594646452,38.3236130942444,0 -90.35880701471911,38.365383796682,0 -90.3397250925035,38.3909000937545,0 -90.30195808265761,38.4274101853512,0 -90.2658995864079,38.5187409219187,0 -90.2613445745186,38.532820806846,0 -90.24105709170181,38.5628573013572,0 -90.1838189833793,38.610322629253,0 -90.1836888738229,38.6588222213685,0 -90.2023506849595,38.7004136293542,0 -90.19668164834522,38.7240148841336,0 -90.1635076675385,38.7731473780178,0 -90.13528557177762,38.7855333244896,0 -90.1218345138212,38.8005591450278,0 -90.1132283291809,38.8305155786969,0 -90.13292049439282,38.8530794199913,0 -90.2440385800512,38.9145571194291,0 -90.2790431101957,38.9247652789138,0 -90.31985371572098,38.9249561810614,0 -90.41318604000151,38.9623782480884,0 -90.4699576683671,38.9592275775329,0 -90.5305451069931,38.8916590934777,0 -90.57044835788962,38.8713768681923,0 -90.6273348623125,38.8808451829242,0 -90.66899973918559,38.9353034194491,0 -90.70619359871029,39.0378416951969,0 -90.7077119263589,39.0582272816598,0 -90.6905224771304,39.0937493584583,0 -90.7168599355041,39.1442594879132,0 -90.71831723958958,39.1959215056912,0 -90.73246246782379,39.2247947417977,0 -90.7382075249523,39.2478582113647,0 -90.77946911185738,39.2968502329079,0 -90.8506238710589,39.3504997276601,0 -90.94802423776449,39.4006319007784,0 -91.03647490820309,39.4444585084789,0 -91.064521543479,39.4740300232192,0 -91.09375072632439,39.5289731742514,0 -91.15632949744598,39.5526394130489,0 -91.2033893787345,39.6000674783423,0 -91.31781179944051,39.6859625802781,0 -91.3672369870804,39.7246854919977,0 -91.3735696173857,39.7613181753518,0 -91.381863132745,39.8038177672296,0 -91.4493403590742,39.8630942448561,0 -91.4511409854999,39.885288198019,0 -91.4342030257459,39.9018745899127,0 -91.43054077302692,39.9218827311204,0 -91.4473948316692,39.9461098791871,0 -91.4874432777371,40.0057984567776,0 -91.50416020997871,40.0667571230242,0 -91.51628405060909,40.1345898206457,0 -91.50670141476959,40.2005039120117,0 -91.4990871746939,40.2514224267414,0 -91.486849457272,40.309668416,0 -91.44874715640491,40.3719466182637,0 -91.4770381934818,40.3910121558996,0 -91.49031385163261,40.3908061091367,0 -91.50037749543139,40.4051606084008,0 -91.5276917691468,40.4101689010293,0 -91.52960695321359,40.4350861780817,0 -91.5388465218747,40.441288675833,0 -91.533208268896,40.4554411066996,0 -91.5793830849706,40.4637602088021,0 -91.5860286246556,40.4845194169649,0 -91.61686016131831,40.5048738271577,0 -91.62253651310201,40.5329033163068,0 -91.6920809036743,40.5516776256622,0 -91.68995975604149,40.5812025311316,0 -91.71697640482071,40.5934354677793,0 -91.7417117785904,40.6097843674944,0 -91.946370183648,40.6082666211982,0 -92.1931744167433,40.6000887188336,0 -92.3615131092551,40.5995762450555,0 -92.6464324165599,40.5914619056485,0 -92.71781545755509,40.5896671790964,0 -93.10093859117031,40.5843472673901,0 -93.37027134829388,40.5804911252976,0 -93.56291046102329,40.580813860252,0 -93.78630370096001,40.5784484988924,0 -94.0180588623528,40.5740221097314,0 -94.23839179788078,40.5709661436833,0 -94.4852311155788,40.5742048680883,0 -94.639876320884,40.575744856122,0 -94.92061587223311,40.5772183148122,0 -95.21742841469741,40.5818925987708,0 -95.382555095884,40.5843340093787,0 -95.7674795852398,40.5890479952096,0 -95.76341234307618,40.5497071705548,0 -95.7370361745627,40.5323733110738,0 -95.692066374489,40.5241298458689,0 -95.68741294533601,40.5611703423814,0 -95.67569378233461,40.5658356928502,0 -95.6629443739739,40.5587289616856,0 -95.658060770915,40.5303325450494,0 -95.6849704910359,40.5122051824756,0 -95.6953617583717,40.4853382791873,0 -95.63681771614181,40.3963904531026,0 -95.63418502298551,40.3588001619374,0 -95.616201682126,40.3464975474771,0 -95.6179334555131,40.3314179459398,0 -95.6455528317303,40.3223467703869,0 -95.64682682752211,40.309109703192,0 -95.59553245637079,40.3097767867205,0 -95.547136994341,40.2662157738894,0 -95.47682209293809,40.2268548930392,0 -95.46663660597849,40.2132555431774,0 -95.46095261349171,40.173995249929,0 -95.4224766940803,40.1317436114368,0 -95.3928129218653,40.1154163675868,0 -95.3845425063415,40.0953626542358,0 -95.40378433048491,40.0803791707436,0 -95.41376387852371,40.0481113899446,0 -95.39053184305099,40.0437507559076,0 -95.37124432588999,40.0287511817595,0 -95.3450672839917,40.0249741114216,0 -95.30869720973901,39.9994075748966,0 -95.2409615197206,39.9421058384133,0 -95.20759760966379,39.9381762630214,0 -95.19396340225789,39.9101800936863,0 -95.1505514013284,39.9080546761413,0 -95.1007225558306,39.8698649954976,0 -95.06324626966109,39.8665379740374,0 -95.03350651062659,39.8778442881217,0 -95.0217725502981,39.8969786850066,0 -94.9650237551983,39.900823541003,0 -94.9382437203224,39.8960818279774,0 -94.9365111558861,39.8493860544701,0 -94.9238762802993,39.833131624215,0 -94.89832461315601,39.8283327692328,0 -94.88850514062642,39.8173998679665,0 -94.8993236192415,39.7937754306095,0 -94.93326765322591,39.7827737328809,0 -94.93511392079802,39.7754266104547,0 -94.9217999904165,39.7578408910459,0 -94.87706755967508,39.7606792157561,0 -94.87118503155682,39.7541179695705,0 -94.87786073247868,39.7393055627822,0 -94.90567811071121,39.726755181953,0 -94.9308558369552,39.727025905148,0 -94.9531421136041,39.7365014323348,0 -94.96178638302391,39.7320382320422,0 -94.978570591812,39.6849880529496,0 -95.02829206736421,39.6619134718391,0 -95.0560171833566,39.625689733093,0 -95.0536130925577,39.5867761785005,0 -95.10898807297042,39.5606920176429,0 -95.1020369987408,39.5328485478957,0 -95.04759928388671,39.4853288064319,0 -95.04051146086052,39.4629407284024,0 -94.9862042598468,39.4394616215765,0 -94.9584938855715,39.4114472233923,0 -94.9257480001496,39.3812661376612,0 -94.8982816593786,39.3806406678593,0 -94.9113435368246,39.3401217508395,0 -94.9076813995049,39.3230284700345,0 -94.8811077732328,39.2860458708519,0 -94.8334765331867,39.2617660205541,0 -94.8208192842533,39.2110046505539,0 -94.7900492914923,39.1968829757069,0 -94.7305309461746,39.171256416042,0 -94.6755137983894,39.1749223276416,0 -94.6464068497116,39.158427841948,0 -94.6126534522095,39.1516492526966,0 -94.60122430937619,39.1412276647328,0 -94.60813678641638,39.1128009586178,0 -94.6092813424634,39.0446676651878,0 -94.6124696654656,38.8371089096843,0 -94.6131481947747,38.7372224308096,0 -94.6187177065389,38.4714737258641,0 -94.61905349915152,38.3920320272517,0 -94.61733032638759,38.055784837357,0 -94.6167353371693,38.0303877411189,0 -94.6192936785187,37.6798689280977,0 -94.61899604293861,37.650374321953,0 -94.61876444142401,37.360766482215,0 -94.6189775221893,37.3277322857884,0 -94.6206638676799,37.0601475533797,0 -94.6203796376912,36.9970468237132,0 -94.6216844155007,36.7636077108139,0 -94.6210734035526,36.670542870082,0 -94.6172570958511,36.4894141614003,0 -94.08105216030801,36.4910242585195,0 -93.85751984136751,36.4897863700719,0 -93.5964496696149,36.489958821283,0 -93.32834621479771,36.4902614752819,0 -93.2973244136508,36.4906809019551,0 -92.8522757362601,36.4898845275616,0 -92.77763547121239,36.4899835156087,0 -92.52305071341618,36.4909213638459,0 -92.14631944771919,36.4916605516162,0 -92.1276422613294,36.4914354514783,0 -91.68856055219172,36.4910185604512,0 -91.4529890137038,36.4904380208107,0 -91.4117966736446,36.4911017707335,0 -91.13395636436511,36.4880156921504,0 -90.8044338516289,36.4892654684767,0 -90.5817321666723,36.4910222747631,0 -90.22447328203479,36.4928111285523,0 -90.15025942109908,36.4918729268599,0 -90.13737277191632,36.4574765175037,0 -90.1173219969686,36.4539556960145,0 -90.1239291860565,36.4226261953142,0 -90.1169251070973,36.4049759827803,0 -90.08027223924928,36.397449931407,0 -90.05215696164839,36.3826150505682,0 -90.05029531239092,36.3626684522717,0 -90.06772899503081,36.3253957469489,0 -90.04984511692381,36.3005360471466,0 -90.0661877402538,36.2723382893607,0 -90.1100122336982,36.2580597893355,0 -90.13131377418432,36.2121355814949,0 -90.16140488324341,36.1970066414864,0 -90.219321206522,36.1726309521804,0 -90.2323220265841,36.1612137930848,0 -90.2349388507527,36.1371551620637,0 -90.26380164514022,36.1188298079555,0 -90.284851770393,36.115972708427,0 -90.31533967165498,36.0917234028765,0 -90.3790621785177,35.9896564265848,0 -90.2835541915351,35.9912280026278,0 -89.9632916378976,35.9969088479974,0 -89.7218363447502,35.9999509241088,0 -89.68892242543529,36.0258673598517,0 -89.6782489583147,36.0830408331631,0 -89.66746841817241,36.0993864640091,0 -89.5895015750109,36.1298614413181,0 -89.58953219289479,36.1520892518256,0 -89.6186393373327,36.1838116382208,0 -89.67686882352049,36.2209354567989,0 -89.695737012858,36.2408629894403,0 -89.6946231434343,36.252203841158,0 -89.6706661075896,36.2549618456545,0 -89.61815895506329,36.2409661142144,0 -89.5417253888929,36.2573462150993,0 -89.53545385006311,36.2646054281745,0 -89.5423129180961,36.2809319420685,0 -89.6068443100135,36.3081032648945,0 -89.6228741596169,36.3348474435652,0 -89.6057685745547,36.3548169544064,0 -89.54463245289639,36.3457879205654,0 -89.51940896703729,36.3559958746976,0 -89.52008048276861,36.4011227040991,0 -89.54525826945699,36.4410234483941,0 -89.51609800414001,36.4718722794559,0 -89.53327228843381,36.4981701441748,0 -89.56706382630919,36.5187993771114,0 -89.5682312249958,36.5414695145559,0 -89.55621466216709,36.5578036567361,0 -89.5304419073772,36.5646166211264,0 -89.49320183399099,36.5591771346443,0 -89.4817497774818,36.5478363630808,0 -89.47144975338379,36.5256163547986,0 -89.4817572743346,36.5047581085309,0 -89.4758977248385,36.4986089858186,0 -89.4920647554293,36.4655248350446,0 -89.4709078461365,36.4460169670384,0 -89.4485913110412,36.4564423473599,0 -89.41478465486919,36.5026793108435,0 -89.4182103731204,36.5106251110882,0 -89.37395149637661,36.616247637228,0 -89.3636210686995,36.6257612726571,0 -89.3423955613942,36.6289083710958,0 -89.3223449681677,36.6220764759103,0 -89.2834948717057,36.5753095893361,0 -89.2416846800885,36.569328370687,0 -89.2101287779705,36.5819546744135,0 -89.2001876332973,36.6313576237861,0 -89.1771616076676,36.6530627654874,0 -89.1678993468083,36.6716284847978,0 -89.19756338990609,36.7134250574374,0 -89.19636559962321,36.7274780703555,0 -89.1772689322554,36.7609818762401,0 -89.15143504916961,36.7590975830134,0 -89.12554025828931,36.7680887738915,0 -89.1259067613141,36.7924680183802,0 -89.1644441219421,36.804476214643,0 -89.1735313341446,36.8294390146117,0 -89.166565665821,36.8434768543693,0 -89.1296537695887,36.8664945361285,0 -89.1050338653654,36.9539220770253,0 + + + + + + + + Montana + empty + + +states.AREA: + 147244.653 + + +states.STATE_NAME: +Montana + + +states.STATE_FIPS: +30 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +MT + + +states.POP2000: + 902195 + + +states.POP2001: + 908325 + + +states.POP00_SQMI: + 6 + + +states.DEN_0_100: + 100 + + +USStates.ID: + 41 + + +USStates.State_Name: +Montana + + +USStates.Date_Entered: +Nov. 8 1889 + + +USStates.Year_Entered: +1889 + + +USStates.Year_Settled: +1809 + +]]> + #Style_5 + + + -109.652533686894,47.0322664572934,0 + + + + + + -111.475425113078,44.7021622259545,0 -111.44363207933,44.7131796185895,0 -111.395084047622,44.7088695111883,0 -111.384959585063,44.7376939086963,0 -111.372309536392,44.7450870429474,0 -111.349977174405,44.7261775679182,0 -111.31922172667,44.7278640397875,0 -111.315475367488,44.7051930233212,0 -111.295668417103,44.6829380106443,0 -111.270207923466,44.6738019972086,0 -111.270665480153,44.6422120666433,0 -111.223971342305,44.6269081075219,0 -111.219797798385,44.6179816965382,0 -111.234233165171,44.6025621977815,0 -111.219507505818,44.5731699249139,0 -111.178764521847,44.5648509025126,0 -111.170241896337,44.5451861352417,0 -111.134358940584,44.5279024352059,0 -111.128918633835,44.5007569482957,0 -111.094630553034,44.4861244421476,0 -111.051560651262,44.4733232643312,0 -111.051615814026,44.6644904630696,0 -111.053428630452,44.9956954937749,0 -110.429649489646,44.9922851168859,0 -110.392759905743,44.9986252880153,0 -109.99552921526,45.0027929256921,0 -109.799385375449,44.9995227676354,0 -108.625256221974,44.9975931654829,0 -108.259238500746,45.00011515017601,0 -107.894374357914,44.9997736986363,0 -106.259231717931,44.9961625110408,0 -106.021150701601,44.9972137020636,0 -105.08500310735,44.9998170469188,0 -105.041795987521,45.0010758746085,0 -104.059842395291,44.9973362616199,0 -104.043072277779,44.9978055394377,0 -104.043851417835,45.2128754685677,0 -104.049516843796,45.8830527625305,0 -104.048906344358,45.94299366714029,0 -104.04783642886,46.2808814764405,0 -104.046705569922,46.5425395197373,0 -104.047437491435,46.6429474765464,0 -104.045926505168,47.3338320293792,0 -104.047307659333,47.4000172886746,0 -104.048425167939,48.0000812793709,0 -104.052111483045,48.3910193593535,0 -104.052317635595,48.6458247340349,0 -104.062991101535,49.0000267486802,0 -105.063034487672,49.0000213453771,0 -106.125579640332,49.0000211878203,0 -107.188120870533,49.00001713961479,0 -108.250674874311,49.0000096254319,0 -109.500737045105,49.00000500413359,0 -110.750797309743,49.00000540611129,0 -111.282679441747,49.00001160223879,0 -112.188387420264,48.9999919367107,0 -114.063463510159,48.999977505695,0 -114.729325277653,48.9999701785569,0 -116.063531289275,48.99995046269709,0 -116.05669220337,48.4986651887118,0 -116.055497508913,48.2084837718549,0 -116.053492448537,47.9761917715222,0 -116.025316086924,47.9649391580749,0 -115.998932367501,47.92514082913019,0 -115.937842286573,47.86712411466291,0 -115.90392118837,47.841074097063,0 -115.869809516855,47.82745247882439,0 -115.849323962062,47.8051824706779,0 -115.836742105247,47.75628147907741,0 -115.790537518206,47.74483840017609,0 -115.775727256626,47.7097326241589,0 -115.733665317341,47.6955544944202,0 -115.734067407585,47.6398797756934,0 -115.698284137246,47.616080699199,0 -115.69208790895,47.59072095328569,0 -115.742829391272,47.5336915052907,0 -115.701522643005,47.5208936310403,0 -115.692770525831,47.4895405775821,0 -115.64014181996,47.47523519828921,0 -115.643185737842,47.45779380748271,0 -115.656087137581,47.449179888517,0 -115.732481530032,47.4453037682126,0 -115.75010555794,47.4339660678209,0 -115.750326632884,47.4224758337817,0 -115.666477789603,47.3991675172781,0 -115.638782326482,47.3800438733229,0 -115.599535907233,47.3700033411226,0 -115.555520671095,47.3346132613456,0 -115.523064072441,47.2919825693658,0 -115.501930155564,47.2816443931147,0 -115.42664105155,47.2743741901806,0 -115.40820774964,47.2635936928256,0 -115.343661098271,47.25502252875,0 -115.325227834205,47.2451499352386,0 -115.296234653795,47.179550129713,0 -115.193073569516,47.1240264397241,0 -115.172496072325,47.097570775052,0 -115.148683842445,47.09174197245919,0 -115.135507084528,47.0635505060209,0 -115.081336055121,47.0265244081573,0 -115.055638385326,46.97335809520661,0 -115.037334581308,46.9630013040754,0 -115.001574268432,46.9588093410594,0 -114.964730239693,46.9252129542069,0 -114.92412521448,46.9071654671376,0 -114.940566557467,46.8908879547799,0 -114.948408839876,46.85244681299441,0 -114.902324956243,46.7994334872257,0 -114.866603242816,46.7970455479343,0 -114.840791891296,46.7755381340251,0 -114.794030033961,46.7665316733836,0 -114.777832199076,46.7557169515489,0 -114.782919473288,46.7030400738234,0 -114.748105478154,46.695132417127,0 -114.698431226356,46.73376015783131,0 -114.673887229565,46.73472166479179,0 -114.625926712927,46.6871072963735,0 -114.645038012873,46.6709214874172,0 -114.644740120825,46.6608240472296,0 -114.610825986771,46.6290480359896,0 -114.54039089668,46.63789093313041,0 -114.48471804306,46.6235748090716,0 -114.441535907613,46.64571558739091,0 -114.384017731174,46.6615966222723,0 -114.334685197666,46.6542270306183,0 -114.324712393283,46.6228397420843,0 -114.343319528083,46.58788169279891,0 -114.350115003954,46.51738981557321,0 -114.360467827582,46.5061249643996,0 -114.410714938833,46.4873716679663,0 -114.384024894777,46.4281789078305,0 -114.397016905685,46.39954564895069,0 -114.409796078984,46.3929118282104,0 -114.431795791851,46.2847113519319,0 -114.473795189375,46.25296144733741,0 -114.472833625773,46.2437832404928,0 -114.439553093386,46.2202541051873,0 -114.440879403543,46.1689689930953,0 -114.467017880608,46.1552626443821,0 -114.509613705042,46.1574178541686,0 -114.518944233429,46.13606300379761,0 -114.506568594996,46.116142578097,0 -114.477370071638,46.1073573510943,0 -114.456029627256,46.0822298311072,0 -114.465756583121,46.05081557880481,0 -114.494321056653,46.0234105503775,0 -114.474529639485,46.0097653411895,0 -114.484455408522,45.9898066653888,0 -114.412447296507,45.971972990138,0 -114.405290578501,45.9539789286456,0 -114.429460795441,45.9214773546562,0 -114.413530117056,45.9106511998636,0 -114.392838283787,45.870886524333,0 -114.407525017428,45.84645312785811,0 -114.443231585826,45.8526214179583,0 -114.473803267544,45.8394681128492,0 -114.499164076216,45.8426838388298,0 -114.517375770656,45.8100678088233,0 -114.563542382615,45.76239875426181,0 -114.541958001694,45.7459993063995,0 -114.534976768211,45.7229965521011,0 -114.497560885022,45.6944015040476,0 -114.510706655448,45.6740575393162,0 -114.501741735013,45.65239374591759,0 -114.564678473634,45.624271464153,0 -114.540957804767,45.59639733862921,0 -114.56092431692,45.5487399822622,0 -114.527392140633,45.5581929137358,0 -114.49659127146,45.5466496233752,0 -114.462708066367,45.547847634842,0 -114.433555120266,45.5276335826489,0 -114.419051016147,45.4990079989286,0 -114.371457222895,45.485740801367,0 -114.350246661543,45.4633830586196,0 -114.326434503356,45.4574246659907,0 -114.26223890106,45.4858597041806,0 -114.247880062291,45.5029457876717,0 -114.241997909503,45.5352908283129,0 -114.194808749935,45.5279173495385,0 -114.172667788196,45.54392407099141,0 -114.132047849072,45.550382696738,0 -114.118139289111,45.57112721879371,0 -114.082966989764,45.5863787056049,0 -114.05651557884,45.6251440063411,0 -114.018032071357,45.6407731495898,0 -114.010990085379,45.6525110636154,0 -114.019878777802,45.6723780179129,0 -114.009472169193,45.6863322994531,0 -113.971148905291,45.6973761439766,0 -113.964144746081,45.67937838995221,0 -113.926698671543,45.6712113532369,0 -113.923532205814,45.6551247458339,0 -113.902199681462,45.6372529821309,0 -113.903305686338,45.6134911520045,0 -113.852027200864,45.60956236649611,0 -113.822485335827,45.6006361604291,0 -113.803754486689,45.5837295106944,0 -113.833715005823,45.5149081483478,0 -113.780933520736,45.5168654883577,0 -113.772304324589,45.5070541264418,0 -113.769167956071,45.4777077122394,0 -113.785662417081,45.4456336800122,0 -113.775025938091,45.4101724087205,0 -113.741309985249,45.3823864841092,0 -113.739080720354,45.3215307727051,0 -113.68870893801,45.2777882479016,0 -113.690120087671,45.262281529236,0 -113.64559265708,45.2067902002949,0 -113.600928342409,45.1809921888967,0 -113.594099232644,45.149742661863,0 -113.571583860449,45.1345453195545,0 -113.574375982832,45.1177112498262,0 -113.552272678027,45.1075492325193,0 -113.510225662875,45.1078357229334,0 -113.520609069994,45.08206385133451,0 -113.490158803375,45.07121894252819,0 -113.486305515199,45.0583215917022,0 -113.455435394093,45.0433489576732,0 -113.458853128792,45.0274494937816,0 -113.44102942911,44.9981947865069,0 -113.448764850883,44.9495226314899,0 -113.463413760979,44.9407755008957,0 -113.487348245354,44.9395739483575,0 -113.496190944735,44.9306703825127,0 -113.445573357454,44.8512398138089,0 -113.42137886332,44.8336996325871,0 -113.350024223891,44.8075686572204,0 -113.340631071319,44.7790001716196,0 -113.318680101131,44.7802285072048,0 -113.257154262582,44.810486836588,0 -113.24033835154,44.8118408943235,0 -113.138273905949,44.7614392171565,0 -113.127431313459,44.7373793502759,0 -113.101703254015,44.7151730541415,0 -113.098955981719,44.6959159515966,0 -113.073143949778,44.6755255639002,0 -113.054289194175,44.6242889653874,0 -113.083036889648,44.5826813811508,0 -113.039660671342,44.5562941508867,0 -113.037821112649,44.5329591224566,0 -113.007713096479,44.5106119571576,0 -113.020309135991,44.4817760622967,0 -113.006658758598,44.4526157258091,0 -113.012014532,44.4377151798982,0 -112.985249652408,44.4355404997863,0 -112.938281270743,44.407192303823,0 -112.887307562786,44.392852037925,0 -112.870781128928,44.3699785388203,0 -112.844275309657,44.353639685816,0 -112.817396542611,44.3642025255851,0 -112.818709940506,44.3948197608762,0 -112.826691426867,44.4210844413589,0 -112.796227919073,44.4580108762872,0 -112.779863145228,44.473921967913,0 -112.733712266678,44.4843203521209,0 -112.714325884719,44.4969354760903,0 -112.653189032213,44.4808022867295,0 -112.539324359313,44.4774975037791,0 -112.501839547759,44.4629973763857,0 -112.458519702915,44.4688346426366,0 -112.420753287455,44.4492848652432,0 -112.367583641487,44.4492705303202,0 -112.34057705949,44.4971802630882,0 -112.342507416987,44.5251001904491,0 -112.282341327877,44.5417028629559,0 -112.256675563109,44.5599718966745,0 -112.230398525049,44.5594913548598,0 -112.217763617989,44.538495263148,0 -112.19965792462,44.5314495370004,0 -112.124190576071,44.5282529189526,0 -112.099896990645,44.5182317486371,0 -112.059366916596,44.5286115853182,0 -112.027077158683,44.5228438141025,0 -112.023613199364,44.5350432018407,0 -111.977818321591,44.5296761932588,0 -111.940385892152,44.5497266545093,0 -111.872502337514,44.5562658469912,0 -111.80783730012,44.5039818716956,0 -111.792608215621,44.5184627416638,0 -111.766918095449,44.5188253853155,0 -111.716997718561,44.5337606582907,0 -111.684862667357,44.5507519238675,0 -111.605248563607,44.542989843785,0 -111.56723085062,44.5528666934207,0 -111.490240946754,44.5286973145766,0 -111.482573106114,44.536143833035,0 -111.459325300921,44.5379218382476,0 -111.462827429646,44.5499420909707,0 -111.492903869929,44.5511890986189,0 -111.514526468783,44.5931969532598,0 -111.501747128314,44.6159712293443,0 -111.50769070953,44.6376885788042,0 -111.470167827235,44.6407103470055,0 -111.458265515114,44.6525553200246,0 -111.460691885141,44.6700230655225,0 -111.480804007084,44.6914159868954,0 -111.475425113078,44.7021622259545,0 + + + + + + + + Nebraska + empty + + +states.AREA: + 77330.258 + + +states.STATE_NAME: +Nebraska + + +states.STATE_FIPS: +31 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +NE + + +states.POP2000: + 1711263 + + +states.POP2001: + 1722445 + + +states.POP00_SQMI: + 22 + + +states.DEN_0_100: + 98 + + +USStates.ID: + 37 + + +USStates.State_Name: +Nebraska + + +USStates.Date_Entered: +Mar. 1 1867 + + +USStates.Year_Entered: +1867 + + +USStates.Year_Settled: +1823 + +]]> + #Style_5 + + + -99.8078006001403,41.5231582790057,0 + + + + + + -101.407393337781,40.0010037120327,0 -101.32214863482,40.0018210447365,0 -100.754855877507,40.000198282162,0 -100.735049472397,39.9991723116564,0 -100.191111650703,40.0005855247365,0 -100.180910663243,40.0004787238625,0 -99.6278593903364,40.0029878613976,0 -99.1782010360044,39.9995770488454,0 -99.06474699472069,39.9983379848291,0 -98.72063235128408,39.9984613082759,0 -98.5044791617254,39.9971296815045,0 -98.264165776521,39.9984347815801,0 -97.9295887050275,39.9984528583572,0 -97.8165893210891,39.9997291896237,0 -97.36191186281762,39.9973802328794,0 -96.90828756776931,39.996154802955,0 -96.8014203269346,39.9944759681187,0 -96.45403830193989,39.9941727522704,0 -96.2405985632704,39.9945031906408,0 -96.0012537321721,39.995158941643,0 -95.7807002239152,39.9934894834034,0 -95.3297013527267,39.9925950320474,0 -95.30869720973901,39.9994075748966,0 -95.3450672839917,40.0249741114216,0 -95.37124432588999,40.0287511817595,0 -95.39053184305099,40.0437507559076,0 -95.41376387852371,40.0481113899446,0 -95.40378433048491,40.0803791707436,0 -95.3845425063415,40.0953626542358,0 -95.3928129218653,40.1154163675868,0 -95.4224766940803,40.1317436114368,0 -95.46095261349171,40.173995249929,0 -95.46663660597849,40.2132555431774,0 -95.47682209293809,40.2268548930392,0 -95.547136994341,40.2662157738894,0 -95.59553245637079,40.3097767867205,0 -95.64682682752211,40.309109703192,0 -95.6455528317303,40.3223467703869,0 -95.6179334555131,40.3314179459398,0 -95.616201682126,40.3464975474771,0 -95.63418502298551,40.3588001619374,0 -95.63681771614181,40.3963904531026,0 -95.6953617583717,40.4853382791873,0 -95.6849704910359,40.5122051824756,0 -95.658060770915,40.5303325450494,0 -95.6629443739739,40.5587289616856,0 -95.67569378233461,40.5658356928502,0 -95.68741294533601,40.5611703423814,0 -95.692066374489,40.5241298458689,0 -95.7370361745627,40.5323733110738,0 -95.76341234307618,40.5497071705548,0 -95.7674795852398,40.5890479952096,0 -95.7575462791966,40.6209044050126,0 -95.76799926230059,40.6431173260368,0 -95.87661608382331,40.7304362884448,0 -95.85179043528299,40.7926000253044,0 -95.84643563182461,40.8483322047714,0 -95.8343965593688,40.8703008088672,0 -95.8365411444113,40.9011080428442,0 -95.83760323158589,40.9742580400834,0 -95.86089704288879,41.0026505190073,0 -95.8595394801997,41.0350028595074,0 -95.87880474120411,41.0658712509288,0 -95.85827413141659,41.1091870222413,0 -95.8766852492484,41.1642024105376,0 -95.85980096123291,41.1668650456103,0 -95.85919843702339,41.1805368728058,0 -95.9161002851104,41.1940638351955,0 -95.922249965015,41.2078539506329,0 -95.91098130119039,41.225245096276,0 -95.93023057200192,41.3020567682491,0 -95.91120231965681,41.308469075071,0 -95.89759135908018,41.2868630350679,0 -95.88910711764841,41.301389068661,0 -95.9428952016611,41.3400771149559,0 -95.94005632056519,41.3948054356641,0 -95.93506577909901,41.4623813790665,0 -95.9531857305245,41.4723872072953,0 -96.0068973653038,41.4819545344805,0 -96.01345100342439,41.492994088652,0 -95.99668867363272,41.5115177407886,0 -95.99396487163098,41.5281036385833,0 -96.0045927729456,41.536663666234,0 -96.0501720028408,41.5243351452143,0 -96.0858402888059,41.537522447069,0 -96.0919362332193,41.5631451632737,0 -96.08083512543558,41.5760003085601,0 -96.11130763394991,41.5990063360194,0 -96.09930606920538,41.654680377786,0 -96.12026446185681,41.6840948569989,0 -96.1222023396997,41.6949130712865,0 -96.08555733965541,41.7049872846604,0 -96.09977118044269,41.7315636680423,0 -96.09932098309402,41.7529750937888,0 -96.07641711811041,41.7914690785526,0 -96.1356235834612,41.8626208316748,0 -96.15997022208892,41.9041513852191,0 -96.14587078481939,41.9249070891742,0 -96.14732844184438,41.9662545016057,0 -96.1852176902909,41.9806854764309,0 -96.2028425096417,41.9966156076483,0 -96.2360928599206,42.0012580980752,0 -96.2387254806183,42.0284381681892,0 -96.2654831160455,42.0488969554024,0 -96.2851229976765,42.123452670924,0 -96.35216576154041,42.168185405895,0 -96.3635118431292,42.2140424887771,0 -96.33770844290801,42.2295223162304,0 -96.33265786107282,42.260307132502,0 -96.34288156417431,42.2820816955037,0 -96.3687003210519,42.2980237265253,0 -96.3897808818021,42.3287896719748,0 -96.42417517629991,42.3492788847348,0 -96.41176144867778,42.3809179971184,0 -96.41762830756179,42.4147774592562,0 -96.39789028299531,42.441793101272,0 -96.39607423274411,42.4674012772387,0 -96.4393947509647,42.4892408377156,0 -96.49470151052741,42.4884592175071,0 -96.54721557271041,42.5204993234568,0 -96.58475304897098,42.5182872197448,0 -96.60546730406971,42.5072362916062,0 -96.6292944799537,42.5226936780003,0 -96.6366723762755,42.5507317592446,0 -96.714059707901,42.6123020324651,0 -96.7152728921436,42.6219074766425,0 -96.694596777315,42.641163786393,0 -96.69906022203101,42.6577158497403,0 -96.72265874758661,42.6685919557678,0 -96.79934397881981,42.6700191686323,0 -96.8104375000235,42.6813412142201,0 -96.81014011449622,42.704084462612,0 -96.9082338249473,42.7316989698022,0 -96.97077348180611,42.7211474962424,0 -96.9778689966012,42.727308194642,0 -96.97000293469461,42.752065431992,0 -96.97959336609789,42.7583137573091,0 -97.0151396700717,42.7595420464778,0 -97.13046924564861,42.7739233575094,0 -97.1614227617155,42.7986194059191,0 -97.21183172641902,42.81257352787,0 -97.2244435756681,42.8412025319938,0 -97.24318956492361,42.851826425825,0 -97.2714575353654,42.8500146366722,0 -97.31141433937481,42.8617716796293,0 -97.38930603349222,42.8674331659047,0 -97.45726378408931,42.8504431026505,0 -97.4831590291241,42.8571570898554,0 -97.5061318942665,42.8601364739438,0 -97.5706541404348,42.8479907365578,0 -97.63497050078551,42.8612849600302,0 -97.68575200130461,42.8368370186066,0 -97.72524981688051,42.8580083761152,0 -97.77218644667239,42.8461639819758,0 -97.79702832835281,42.8495971363047,0 -97.8186429929595,42.8665874779999,0 -97.88865941868959,42.8558072875283,0 -97.8899410388902,42.8312716359345,0 -97.9294772231674,42.7923243687957,0 -97.96355840050168,42.7736899920002,0 -97.9951447789843,42.766812278154,0 -98.03314038302951,42.7691923357945,0 -98.12181986030079,42.8083601338589,0 -98.12311692331768,42.8202235933653,0 -98.14486904619621,42.8357947189847,0 -98.16782662350252,42.839571032558,0 -98.31033957471961,42.881794760613,0 -98.39120469509791,42.9201358627386,0 -98.45744405402161,42.9371607787996,0 -98.49765138471959,42.9917787984063,0 -99.2539717111969,42.9923894733936,0 -99.5327903284941,42.9923349632849,0 -100.198142131775,42.9910950186342,0 -101.231737199277,42.986842959129,0 -102.086700926634,42.9898870255377,0 -102.788384569614,42.9953035756879,0 -103.005875236663,42.9993539301105,0 -103.501463853421,42.9986188303099,0 -104.056198856311,43.0030623563908,0 -104.056219380476,42.6146696865973,0 -104.053513414154,41.9998153422964,0 -104.053615199998,41.698218257724,0 -104.055500519791,41.5642223678205,0 -104.054012364451,41.3880858190034,0 -104.05170553525,41.00321132686,0 -103.572316302435,40.9996484311393,0 -103.382956653967,41.0003163565243,0 -102.652271070342,40.9981241668543,0 -102.621257047371,41.00021481921,0 -102.047739314394,40.9980708667063,0 -102.046992332576,40.7431303349332,0 -102.046031374616,40.6973192828138,0 -102.047620488242,40.4310777832961,0 -102.047544994516,40.3426445008284,0 -102.051535596434,39.9989182728278,0 -101.407393337781,40.0010037120327,0 + + + + + + + + Nevada + empty + + +states.AREA: + 110669.975 + + +states.STATE_NAME: +Nevada + + +states.STATE_FIPS: +32 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +NV + + +states.POP2000: + 1998257 + + +states.POP2001: + 2112980 + + +states.POP00_SQMI: + 18 + + +states.DEN_0_100: + 98 + + +USStates.ID: + 36 + + +USStates.State_Name: +Nevada + + +USStates.Date_Entered: +Oct. 31 1864 + + +USStates.Year_Entered: +1864 + + +USStates.Year_Settled: +1849 + +]]> + #Style_5 + + + -116.650735151808,39.3520158009473,0 + + + + + + -119.152450421001,38.4118009590513,0 -118.417419755966,37.886676748621,0 -117.838686423167,37.4572982397149,0 -117.160423771838,36.9595941441766,0 -115.885769343921,36.0012259572722,0 -115.626197382816,35.7956983148418,0 -114.621068606189,34.9989144286133,0 -114.633779872695,35.0418633504303,0 -114.595631971944,35.0760579746697,0 -114.6359090842,35.1186557767895,0 -114.626440825485,35.1339067529871,0 -114.582616239058,35.1325604694084,0 -114.572255261053,35.1400677445931,0 -114.561039964055,35.1743461616312,0 -114.559583045727,35.2201828714608,0 -114.587889840369,35.30476812919,0 -114.589584275424,35.3583787306827,0 -114.645396168451,35.4507608261464,0 -114.672215155693,35.5157541647721,0 -114.649792053474,35.5466373866596,0 -114.653134321223,35.5848331056106,0 -114.6398667219,35.6113485698329,0 -114.654065925137,35.6465840800051,0 -114.668486064922,35.6563989882403,0 -114.665091345861,35.6930994107106,0 -114.688820027649,35.7325957399896,0 -114.682739704595,35.7647034175617,0 -114.689867343369,35.8474424944765,0 -114.662462095522,35.870959907009,0 -114.661600122152,35.8804735854241,0 -114.699275906446,35.9116119537411,0 -114.736212493583,35.9876483502758,0 -114.717673567756,36.0367580437019,0 -114.728966012834,36.0587530361082,0 -114.728150311069,36.0859627711603,0 -114.712761724737,36.1051810523675,0 -114.621610747198,36.1419666834504,0 -114.598935242024,36.1383354528833,0 -114.530573568745,36.1550902046726,0 -114.466613475422,36.1247112590538,0 -114.443945697733,36.1210532841896,0 -114.380803116644,36.1509912717764,0 -114.344233941709,36.1374802520567,0 -114.316095374696,36.1114380366653,0 -114.303857056018,36.0871084040611,0 -114.307587598189,36.0622330993642,0 -114.233472615347,36.0183310595898,0 -114.206768869568,36.0172554164833,0 -114.12902308363,36.041730493896,0 -114.107775185788,36.1210907070504,0 -114.045105557286,36.1939778840226,0 -114.037392074194,36.2160228969701,0 -114.043716435713,36.8418489458646,0 -114.043939384154,36.9965379371421,0 -114.047260595159,37.5984784866001,0 -114.047272999176,38.1376524399918,0 -114.045090206154,38.5710950539538,0 -114.044267501155,38.678995881588,0 -114.040105338584,39.5386849268843,0 -114.039844684228,39.9087788600022,0 -114.038108189376,40.1110466529553,0 -114.038151248682,40.9976868405942,0 -114.039072662345,41.9953908974688,0 -114.269471632825,41.9959242345073,0 -115.024862911148,41.9965064559528,0 -115.947544658193,41.9945994628996,0 -116.992313337997,41.9947945094663,0 -117.018864363596,41.9947941808341,0 -118.185316829038,41.9966370981387,0 -119.3109421304,41.989135387281,0 -119.351692186077,41.9888529749781,0 -119.993459369715,41.9892049531992,0 -119.996324660047,41.1775662656441,0 -119.996165311172,39.7206108077274,0 -119.996011479298,39.443500976451,0 -119.995304181493,39.3115454332125,0 -119.995527335641,39.1587132866354,0 -119.994541258334,39.1061318056706,0 -119.995150114198,39.063491359469,0 -119.995254694357,38.9941061536376,0 -119.8893416394,38.9222515603984,0 -119.575687062955,38.7029101298903,0 -119.318825070203,38.5271086243913,0 -119.152450421001,38.4118009590513,0 + + + + + + + + New Hampshire + empty + + +states.AREA: + 9259.527 + + +states.STATE_NAME: +New Hampshire + + +states.STATE_FIPS: +33 + + +states.SUB_REGION: +N Eng + + +states.STATE_ABBR: +NH + + +states.POP2000: + 1235786 + + +states.POP2001: + 1258315 + + +states.POP00_SQMI: + 133 + + +states.DEN_0_100: + 88 + + +USStates.ID: + 9 + + +USStates.State_Name: +New Hampshire + + +USStates.Date_Entered: +June 21 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1623 + +]]> + #Style_5 + + + -71.577769589032,43.6851910338169,0 + + + + + + -72.2799169173511,42.720467037784,0 -71.9302165845551,42.7072094199587,0 -71.90094191420261,42.7053786149513,0 -71.287194447592,42.6986034465098,0 -71.2524115796458,42.7260689220942,0 -71.24047922287529,42.7435552404171,0 -71.1863474665185,42.7387606265609,0 -71.18106084331041,42.807317168902,0 -71.12060440995749,42.8182808692669,0 -71.065564728038,42.8043197291356,0 -71.02542615731881,42.8511713651458,0 -70.9213361332524,42.885149233192,0 -70.8981116667382,42.8868774762984,0 -70.84973977624399,42.8634293009967,0 -70.8138807202681,42.8670649720671,0 -70.73413885860251,43.0587629299348,0 -70.8104276107829,43.0897406234761,0 -70.8864941746843,43.0588832353252,0 -70.9054160761297,43.0840213409417,0 -70.8746309579401,43.1015270060657,0 -70.88474831938861,43.1277066080614,0 -70.8186681583247,43.1218710916248,0 -70.8305481365302,43.1591741298583,0 -70.8132073721395,43.235222695474,0 -70.90108590067651,43.281020042684,0 -70.9058011398795,43.3020692769929,0 -70.9696996092209,43.3663799823752,0 -70.97909946378989,43.3961839179203,0 -70.9614829099438,43.4381263706902,0 -70.97079121747591,43.4702114970827,0 -70.9592784003468,43.5163880057296,0 -70.9642682587516,43.5319898518146,0 -70.9496195233573,43.5489536133091,0 -70.9565244088141,43.5641434705,0 -70.973874166771,43.5718298935058,0 -70.9844425613652,43.7911635520181,0 -71.008596512061,44.2821463668217,0 -71.0287261250693,44.6685380945196,0 -71.0875092473499,45.3014692052699,0 -71.15308937571361,45.2379692350016,0 -71.29723573798741,45.29349393594989,0 -71.38637797418291,45.2349303642414,0 -71.4465600756494,45.2360819406036,0 -71.4025225843513,45.202803185745,0 -71.43040988152841,45.1169922971266,0 -71.50299876376251,45.05989045439361,0 -71.50537230062881,45.01335171632249,0 -71.54092709673419,44.976563206227,0 -71.5169776077169,44.9436961331563,0 -71.50636496059011,44.8996711859758,0 -71.575100912366,44.816019797627,0 -71.58350120905909,44.7791969958657,0 -71.6311328527305,44.7417107606939,0 -71.6076787297884,44.6778622938609,0 -71.588749347522,44.6505994869908,0 -71.5680271516494,44.6374468081647,0 -71.5541026351831,44.5965889130359,0 -71.5367908177937,44.5789312630586,0 -71.59228841131031,44.5512031068487,0 -71.59144138862121,44.5388744007981,0 -71.5752435447921,44.525805689154,0 -71.58661898076009,44.4945375694188,0 -71.6142227691162,44.474507042735,0 -71.6365547217831,44.4767309013867,0 -71.64770916138809,44.4691741459763,0 -71.6563990024127,44.4401373612429,0 -71.67688436321281,44.4213427403398,0 -71.7665702593918,44.3982488046656,0 -71.7977291908463,44.384172813001,0 -71.8211973083551,44.3503600453545,0 -71.83481598035139,44.3441994129001,0 -71.928361752714,44.3361121851128,0 -71.93890565797921,44.3257860034123,0 -71.99443351087029,44.3275482023457,0 -72.03549537537759,44.2994343131496,0 -72.0595660047421,44.2614940911529,0 -72.0443903804218,44.2343798441303,0 -72.05928224606249,44.1821766291115,0 -72.0447245537617,44.1564355666157,0 -72.0349198523751,44.1207459288224,0 -72.0495148341974,44.1004520944909,0 -72.0324473746587,44.0960996192238,0 -72.0347283650036,44.0833740182688,0 -72.07691904412221,44.0320405986226,0 -72.0852043813774,44.008923986175,0 -72.109908766997,43.9892291134731,0 -72.1128078470404,43.9765149671875,0 -72.0917117306645,43.9579911279463,0 -72.1132040793555,43.9391659598857,0 -72.1216496397887,43.9092173247049,0 -72.1700895247441,43.8789176964689,0 -72.1848363730122,43.8016904606597,0 -72.2060918209679,43.7646350589211,0 -72.21912292133609,43.750692528435,0 -72.2600555952028,43.7353001230663,0 -72.3040399378543,43.6985301192071,0 -72.33308519415699,43.5973647921877,0 -72.3734983899537,43.5723746289271,0 -72.39499776821209,43.5175538931662,0 -72.3825156946813,43.4846296935804,0 -72.3962478080997,43.4101565518931,0 -72.4121395531363,43.3771255999362,0 -72.39762805437751,43.3510068532964,0 -72.4102315830492,43.3234041461301,0 -72.4024188454007,43.3073827061473,0 -72.4355986440693,43.2322535514022,0 -72.45239855285131,43.1560221784817,0 -72.43760490206709,43.1162700005073,0 -72.44346425788849,43.0790393128299,0 -72.4617520870041,43.0465044640798,0 -72.4571590376321,42.9996036974292,0 -72.47334119749689,42.9761435837691,0 -72.5042636319545,42.9655846501003,0 -72.5202170578448,42.9516725271887,0 -72.5248100213574,42.9126141761107,0 -72.5534284639708,42.8606431711067,0 -72.538916970841,42.8077338159119,0 -72.5130680088012,42.7892594013534,0 -72.50726952905301,42.7687326904009,0 -72.4793225257782,42.7615879021402,0 -72.4621713056893,42.7468405310802,0 -72.4557700038868,42.7258525290855,0 -72.2799169173511,42.720467037784,0 + + + + + + + + New Jersey + empty + + +states.AREA: + 7507.502 + + +states.STATE_NAME: +New Jersey + + +states.STATE_FIPS: +34 + + +states.SUB_REGION: +Mid Atl + + +states.STATE_ABBR: +NJ + + +states.POP2000: + 8414350 + + +states.POP2001: + 8504437 + + +states.POP00_SQMI: + 1121 + + +states.DEN_0_100: + 0 + + +USStates.ID: + 3 + + +USStates.State_Name: +New Jersey + + +USStates.Date_Entered: +Dec. 18 1787 + + +USStates.Year_Entered: +1787 + + +USStates.Year_Settled: +1660 + +]]> + #Style_5 + + + -74.6766277762304,40.1983130309155,0 + + + + + + -75.4892806606894,39.7148582186458,0 -75.5702341870436,39.6177349634268,0 -75.516688883565,39.5665684164947,0 -75.55276304016741,39.4905143065581,0 -75.4156722746602,39.3749718418896,0 -75.11995811220299,39.1846917807584,0 -75.0144070769606,39.1983638371173,0 -74.91665434173351,39.1706385416843,0 -74.8902020440427,39.1138602238713,0 -74.9681254179213,38.9717387716416,0 -74.87630095715041,38.956682397615,0 -74.8792536134529,38.9898436138584,0 -74.80229182967069,39.026373568453,0 -74.62458701838401,39.2508285381619,0 -74.6225269989005,39.281632454135,0 -74.6582341619692,39.2872514059591,0 -74.44750084319659,39.3810753138002,0 -74.4604179591324,39.4267565970433,0 -74.40111961067601,39.5026276432354,0 -74.4123886264147,39.5426212120384,0 -74.3288507438233,39.5236277328274,0 -74.3233420491384,39.572086212049,0 -74.2376755899413,39.6240467628644,0 -74.1714269184866,39.7182746749744,0 -74.1592285187117,39.8786054163902,0 -74.0773330835351,40.042272933577,0 -74.122180536689,40.0515614321764,0 -74.04979004684979,40.0568562355852,0 -74.0342945636626,40.091367053998,0 -74.0837730430801,40.088181749894,0 -74.0914259126674,40.1160856009488,0 -74.0392310981979,40.1018419664211,0 -73.97844056947299,40.3236160007761,0 -74.1218854792839,40.4514585866034,0 -74.2245034553239,40.4435848021689,0 -74.26891543553739,40.4637486117681,0 -74.2789103473592,40.5143036462751,0 -74.20825296046981,40.5911877065288,0 -74.1468580427043,40.6754795974611,0 -74.1155310062388,40.7056266447954,0 -74.1290580537768,40.6470721875068,0 -74.0061834375163,40.7040019887126,0 -74.00625978512571,40.7377308394608,0 -73.9770610560785,40.7974870925618,0 -73.92239451154271,40.8860400786778,0 -73.9089662304774,40.9273144200758,0 -73.8961483545214,40.9608717551544,0 -73.8966975351822,40.9985298010922,0 -74.21303867812691,41.1236116400331,0 -74.24235951786601,41.1376265983194,0 -74.37198081595101,41.1958499552554,0 -74.700062439729,41.3505731173044,0 -74.7916634911863,41.3119646486324,0 -74.7941432935133,41.2952145361236,0 -74.8251959144138,41.2827060427999,0 -74.8664114931874,41.2268173199683,0 -74.8628866488672,41.2067713675358,0 -74.91476830628049,41.1411056945383,0 -74.9499944822667,41.1118548355739,0 -74.9845949956578,41.0993808071368,0 -74.98888296567171,41.0817609886453,0 -74.9662915599138,41.0826765927628,0 -75.00115157189779,41.0624855771134,0 -75.03525634669791,41.0282029114312,0 -75.0699790173252,41.0107160473555,0 -75.1166191635571,41.0002479024639,0 -75.1393018121957,40.9775274861343,0 -75.1355249350063,40.9629365183948,0 -75.0797362757265,40.9033486382513,0 -75.0736857645488,40.884626384264,0 -75.0564884580085,40.8720458535526,0 -75.0546190233306,40.8556733594649,0 -75.0995419880564,40.8392851002474,0 -75.0892112792862,40.8213906687984,0 -75.1005408698709,40.7916591517333,0 -75.13031892785111,40.7727077092163,0 -75.1703132780782,40.7748092438347,0 -75.1936441590094,40.7480035802995,0 -75.18775390484051,40.7238570177578,0 -75.20535502856001,40.6860615374668,0 -75.1840607041906,40.6697922959704,0 -75.2089177365681,40.6507380422203,0 -75.1979386117749,40.6342055156311,0 -75.20038753873099,40.6147432578734,0 -75.1935130035322,40.5837685125831,0 -75.19757183103521,40.570684304811,0 -75.1822820039866,40.5567991566105,0 -75.1245260580076,40.5647988294484,0 -75.0797859423332,40.5453559585684,0 -75.0636796381505,40.5210034591816,0 -75.07011862395299,40.4562539259114,0 -75.0574533454579,40.4201714565405,0 -75.02126612533969,40.4013236035019,0 -75.00047552385639,40.4086211095812,0 -74.97284102604201,40.4044479567097,0 -74.95018846398411,40.3454738484253,0 -74.93250296210471,40.3337744130392,0 -74.9211500156386,40.3140337315445,0 -74.88065957300969,40.2995916131031,0 -74.8427630831946,40.2484527598366,0 -74.7388247265733,40.1777256441007,0 -74.72548046618491,40.1493066691812,0 -74.74629414856111,40.1243586916003,0 -74.82902245973639,40.1161609854809,0 -74.8719241363401,40.0780565429363,0 -74.9562015034126,40.0580144791932,0 -74.9834853663626,40.0340738445933,0 -75.0456754051916,40.0076347106729,0 -75.068045752986,39.9853915213067,0 -75.0845869855288,39.9757328153928,0 -75.1109630715591,39.9766903310886,0 -75.1398645870707,39.9559194804779,0 -75.1471586589936,39.9347404217525,0 -75.13580547674989,39.896887437334,0 -75.14290121504629,39.8816020366923,0 -75.18560547799029,39.8774058180612,0 -75.24699556467731,39.8504053640948,0 -75.2537404363575,39.8455377977782,0 -75.3459322944925,39.8485165819253,0 -75.42046794786501,39.7989830990632,0 -75.4117545704202,39.7897707547806,0 -75.4276473042606,39.7782429030536,0 -75.46039411885541,39.7633620274566,0 -75.47476845721459,39.7418320932776,0 -75.4759742683691,39.7200843842213,0 -75.4892806606894,39.7148582186458,0 + + + + + + + + New Mexico + empty + + +states.AREA: + 121757.343 + + +states.STATE_NAME: +New Mexico + + +states.STATE_FIPS: +35 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +NM + + +states.POP2000: + 1819046 + + +states.POP2001: + 1839139 + + +states.POP00_SQMI: + 15 + + +states.DEN_0_100: + 99 + + +USStates.ID: + 47 + + +USStates.State_Name: +New Mexico + + +USStates.Date_Entered: +Jan. 6 1912 + + +USStates.Year_Entered: +1912 + + +USStates.Year_Settled: +1610 + +]]> + #Style_5 + + + -106.102403151381,34.4234110071301,0 + + + + + + -109.049495308693,32.4420444958635,0 -109.045615049533,31.3434530504803,0 -108.210647795015,31.3438536159949,0 -108.203254915468,31.7869032382901,0 -107.283567177026,31.7850830856735,0 -106.539514775671,31.7863052774039,0 -106.614986549809,31.8178343839605,0 -106.61612370633,31.8447405331725,0 -106.64407909206,31.8952054369513,0 -106.633748923526,31.9141010099202,0 -106.632605287073,31.97221998842531,0 -106.650061890884,31.9803297275266,0 -106.623625658904,32.0010887853062,0 -106.378387283311,32.0007470652221,0 -106.00324037618,32.0016580242852,0 -104.922304814538,32.004382108736,0 -104.85106805229,32.0032650272727,0 -104.019296949948,32.0074034895819,0 -103.981377077849,32.0060152222294,0 -103.729444279739,32.0062289025373,0 -103.332549418381,32.0042814747499,0 -103.058413767661,32.0020227787787,0 -103.055640531826,32.0851168230641,0 -103.060018185604,32.5155455179839,0 -103.049330863501,32.9536389141087,0 -103.043100992793,33.3778314740626,0 -103.038736452727,33.5658431867775,0 -103.033258497866,33.8261815911813,0 -103.029645833697,34.3078204763021,0 -103.022657024631,34.7453327558501,0 -103.025251273923,34.9647798759331,0 -103.026151164684,35.1772655150643,0 -103.02229404801,35.6236480179456,0 -103.022612263713,35.742327299615,0 -103.024047954518,36.0560618512093,0 -103.027286789536,36.4915918464103,0 -102.997400999016,36.4923701848871,0 -102.997709442614,36.9985238353847,0 -103.07786588474,36.9997601837273,0 -103.993635035945,36.9944690622369,0 -105.146172547082,36.9932073726899,0 -105.213091465415,36.992604521715,0 -105.713459997846,36.9945603614965,0 -105.992000086492,36.992289650437,0 -106.472176939021,36.9915042439681,0 -106.86124887722,36.9895015941857,0 -106.89037023567,36.9990837907051,0 -107.410820543541,36.9975257849804,0 -107.472460293817,36.9987767566937,0 -108.372472924296,36.999471575633,0 -109.048480115363,36.9966409005893,0 -109.047846506598,35.9966639816639,0 -109.046640810431,34.9546462439613,0 -109.048652751175,34.5917805775226,0 -109.050349253456,33.7833019238717,0 -109.050525833602,33.205164822801,0 -109.051346155985,32.7795505537932,0 -109.049495308693,32.4420444958635,0 + + + + + + + + New York + empty + + +states.AREA: + 48561.751 + + +states.STATE_NAME: +New York + + +states.STATE_FIPS: +36 + + +states.SUB_REGION: +Mid Atl + + +states.STATE_ABBR: +NY + + +states.POP2000: + 18976457 + + +states.POP2001: + 19123358 + + +states.POP00_SQMI: + 391 + + +states.DEN_0_100: + 65 + + +USStates.ID: + 11 + + +USStates.State_Name: +New York + + +USStates.Date_Entered: +July 26 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1614 + +]]> + #Style_5 + + + -75.51225742270179,42.9466608265549,0 + + + + + + + -79.7632349654056,42.2673270883975,0 -79.76165964707261,42.0031057341519,0 -79.6123674903386,42.0005849142235,0 -79.0594888967335,42.0011576593905,0 -78.9185382675857,41.999846787447,0 -78.3050882311977,41.999420608423,0 -78.2042620524614,41.9982004349665,0 -77.745007937534,41.9973331826449,0 -77.6128475772834,41.9988295851283,0 -76.96857370314299,42.0029809748211,0 -76.92839533835389,42.0025345979743,0 -76.5639147893755,42.0030114109064,0 -76.1450203202792,42.0006545080767,0 -76.1048345309617,41.9994987458506,0 -75.47973225649039,41.9963677005791,0 -75.38281319593381,41.9983566083877,0 -75.3456570669365,41.9928449489974,0 -75.3240658004094,41.9612749921534,0 -75.2836900262962,41.9476038545852,0 -75.25451546272871,41.8688733616359,0 -75.1712837916533,41.8678398536526,0 -75.148280568261,41.8557893317759,0 -75.1247508265953,41.8491823474776,0 -75.11777744299,41.8369868194197,0 -75.07984301881911,41.8141483463494,0 -75.09682675506321,41.7972073179534,0 -75.0971549734922,41.7790417898653,0 -75.0613185051632,41.7702603750835,0 -75.0569699647963,41.7267080970937,0 -75.065400870215,41.7148368016377,0 -75.0513249551697,41.6373147729593,0 -75.0724517137798,41.6130800694112,0 -75.0698653499134,41.6044779552895,0 -75.0250873678455,41.565800906359,0 -75.0148868316079,41.5395558959306,0 -74.9717879994631,41.4836026231296,0 -74.9325644004893,41.484350685956,0 -74.8985597400598,41.4618942446762,0 -74.8952792585073,41.4446711797979,0 -74.8640666499364,41.4471548184687,0 -74.792799015071,41.4299171588691,0 -74.7548266211957,41.4301464096857,0 -74.7400406430903,41.4220594630718,0 -74.7404375695009,41.4016358612695,0 -74.7052732398395,41.3750593363948,0 -74.700062439729,41.3505731173044,0 -74.37198081595101,41.1958499552554,0 -74.24235951786601,41.1376265983194,0 -74.21303867812691,41.1236116400331,0 -73.8966975351822,40.9985298010922,0 -73.8961483545214,40.9608717551544,0 -73.9089662304774,40.9273144200758,0 -73.92239451154271,40.8860400786778,0 -73.9770610560785,40.7974870925618,0 -74.00625978512571,40.7377308394608,0 -74.0061834375163,40.7040019887126,0 -73.91986182481109,40.802804804545,0 -73.7963459186446,40.8323341007837,0 -73.7800412528382,40.8866887918692,0 -73.65315146089949,40.9983924455247,0 -73.65372377552561,41.0126172825253,0 -73.72523765669671,41.1003542249946,0 -73.47812075689539,41.2107548889389,0 -73.5502596731917,41.2936207043954,0 -73.5442932536742,41.3652984767995,0 -73.5303920707175,41.5227455563004,0 -73.51714741333279,41.6656861632365,0 -73.4842302844536,42.0474280500728,0 -73.49884000273219,42.0774606830635,0 -73.35082423703111,42.5047557597646,0 -73.2580598287651,42.7460586400616,0 -73.26927531690011,42.747481432998,0 -73.2961697572315,42.8035493647588,0 -73.27958319993191,42.83710332748,0 -73.27600528901171,42.9402941192889,0 -73.2500714436229,43.310853990742,0 -73.2383913589494,43.5128328494142,0 -73.25998379380719,43.5593823395157,0 -73.2914024969013,43.5750335705375,0 -73.28173626823219,43.5931872495766,0 -73.2941043006647,43.6196528756937,0 -73.303534516911,43.62471481285,0 -73.36368556156729,43.6149988679744,0 -73.3881142192301,43.5691436583008,0 -73.4183198417113,43.582479385998,0 -73.4229598542953,43.6321147289764,0 -73.3709893845574,43.7142811167277,0 -73.3566696765928,43.756558340599,0 -73.35899716813,43.7784275686932,0 -73.3847399017654,43.804507971731,0 -73.3751207851314,43.8859769501205,0 -73.4053345287369,43.9148075869022,0 -73.4174061301202,43.9881969457528,0 -73.4082513023357,44.0182219013784,0 -73.43600071127899,44.0456791904389,0 -73.4352152780239,44.0638978024282,0 -73.408756830709,44.1066103535606,0 -73.40786483046161,44.1362270392695,0 -73.38206233640641,44.1721076120788,0 -73.37733262552911,44.2012475171296,0 -73.3053256664729,44.2601422576285,0 -73.32978809302909,44.3673904680866,0 -73.2999951630005,44.4055331645407,0 -73.2933197444993,44.4328535783624,0 -73.3344524939975,44.544328246301,0 -73.34781198402661,44.5539715457199,0 -73.3712960298213,44.5791669569442,0 -73.3818251037206,44.619807725515,0 -73.3701366913554,44.6343490646182,0 -73.3730971364166,44.6612763562517,0 -73.3581509561494,44.680368564481,0 -73.373158575022,44.724236436747,0 -73.3267863194035,44.799293570954,0 -73.36905412807261,44.8191179021751,0 -73.3823067594393,44.8479336187606,0 -73.3364146788922,44.9326039308497,0 -73.3507583871195,44.9819729513451,0 -73.3447234868807,45.0061387945904,0 -74.0215389337819,44.9908473700023,0 -74.7361076285261,44.9929162059365,0 -74.96846961727719,44.9486251336596,0 -75.328862374301,44.8106292000334,0 -75.75865750281371,44.5175335377769,0 -75.8480298249662,44.3902626942885,0 -76.3628809771691,44.098354795451,0 -76.2968829355811,44.0420171276421,0 -76.2015425385076,44.065598108465,0 -76.13452232320979,44.0132289276425,0 -76.12906593405761,43.9322080498527,0 -76.1937184572916,43.9124903482975,0 -76.23999177645069,43.8351272651759,0 -76.2056663591305,43.682700033073,0 -76.1845704121246,43.6331973667822,0 -76.2227647111352,43.5541537826913,0 -76.45465571373001,43.5007209976012,0 -76.6196279680242,43.4141527458186,0 -76.7184716226022,43.3234424252336,0 -76.7368294931217,43.3427331717123,0 -76.9145275090108,43.27859600965,0 -77.37731588740429,43.2757129012853,0 -77.57571151646241,43.2415476718162,0 -77.7450074302451,43.3351700802958,0 -77.9920093179894,43.3655716261253,0 -78.464653717302,43.3719935588723,0 -79.06223899261261,43.2682161630262,0 -79.0393253199349,43.1447391584938,0 -79.0611147555518,43.0906050224616,0 -78.9255963639699,43.0666266953168,0 -78.8827932399727,43.0223576321954,0 -78.93655137597069,42.974231439434,0 -78.8591998233946,42.792745144536,0 -79.04375196053699,42.6992467780984,0 -79.1422333021515,42.5746167483925,0 -79.3548838534991,42.4934618207762,0 -79.44402037006211,42.4193614595174,0 -79.7632349654056,42.2673270883975,0 + + + + + + + + + -73.7522089773056,40.5945872168727,0 -73.4225260722185,40.6613251474997,0 -72.5211641762305,40.8150415787904,0 -71.9187022869602,41.0305740631358,0 -71.869986721423,41.0745076818864,0 -71.92370021338689,41.084871803273,0 -72.07701114487909,41.0005742896832,0 -72.20335052497531,41.0353739275596,0 -72.29308242777471,41.0240174407749,0 -72.4761091088628,40.9201483179884,0 -72.60481541607391,40.9053005940406,0 -72.5509712260717,40.9661799196018,0 -72.4163456562061,41.0260401128234,0 -72.3542793156581,41.1102027831546,0 -72.2811492371991,41.1425353132104,0 -72.3170314447005,41.1493333683696,0 -72.6315724125195,40.9812851867213,0 -73.02126964947119,40.9684330814817,0 -73.1409796858424,40.9513960080037,0 -73.2145230963623,40.9010417299256,0 -73.4306478224206,40.9225566298747,0 -73.4780896515487,40.879744720266,0 -73.5982719298698,40.9031443913556,0 -73.7494771719183,40.8449987554869,0 -73.7539177904555,40.7888512181378,0 -73.89901774530181,40.7971172294422,0 -73.95560677739191,40.7393826803867,0 -74.0277216950731,40.6393365084359,0 -74.00403933590199,40.5812590385622,0 -73.87981412654141,40.5902691191329,0 -73.91573433661991,40.63113138266,0 -73.8460607625491,40.6526001201263,0 -73.7649351380376,40.6369334656098,0 -73.7613950097786,40.6182379482267,0 -73.9275906880242,40.5576503077215,0 -73.7522089773056,40.5945872168727,0 + + + + + + + + + -73.2930589706138,40.6263822132856,0 -73.2490511730599,40.6254244342199,0 -73.03093394571719,40.6713410120228,0 -72.9563156920831,40.7000387409497,0 -72.7640253118572,40.7583922849051,0 -72.7573264947801,40.7679595170533,0 -72.7821991206641,40.7641333101321,0 -72.8769060551186,40.7373463357701,0 -73.05102282397201,40.6751671223298,0 -73.240437212291,40.6330765843302,0 -73.2911438669417,40.6330768861726,0 -73.2930589706138,40.6263822132856,0 + + + + + + + + + -74.23693964924441,40.5060032905632,0 -74.1936418338484,40.510561942058,0 -74.12299972778629,40.5447412254891,0 -74.0591936862929,40.6017089956228,0 -74.07286605953171,40.6495633368533,0 -74.1662980145054,40.6244971306027,0 -74.2369398627783,40.5379049676837,0 -74.23693964924441,40.5060032905632,0 + + + + + + + + + North Carolina + empty + + +states.AREA: + 49048.024 + + +states.STATE_NAME: +North Carolina + + +states.STATE_FIPS: +37 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +NC + + +states.POP2000: + 8049313 + + +states.POP2001: + 8225753 + + +states.POP00_SQMI: + 164 + + +states.DEN_0_100: + 85 + + +USStates.ID: + 12 + + +USStates.State_Name: +North Carolina + + +USStates.Date_Entered: +Nov. 21 1789 + + +USStates.Year_Entered: +1789 + + +USStates.Year_Settled: +1660 + +]]> + #Style_5 + + + -79.4013155346895,35.5472650672799,0 + + + + + + + -83.9884542500545,34.9891518047362,0 -83.93789913149431,34.9894775119032,0 -83.5492972918908,34.9896284845873,0 -83.5128876420542,34.9921157535224,0 -83.1061569738507,35.000366708131,0 -83.0071465788827,35.0242932065357,0 -82.8875562556649,35.055473206413,0 -82.7712011457841,35.0855376628965,0 -82.6972082635003,35.0913494747721,0 -82.6878846328013,35.0979182706584,0 -82.6859002249553,35.1215804311176,0 -82.65434412549401,35.1195740504075,0 -82.5698759075391,35.1496073738685,0 -82.524479651378,35.1546774490548,0 -82.4665859914405,35.1736172290209,0 -82.43776138231119,35.1696762171977,0 -82.38945068539501,35.2083565365976,0 -82.3712159851947,35.1828397610023,0 -82.3599623343986,35.1830646579415,0 -82.3507000333949,35.1927881586207,0 -82.3206088962679,35.1843038355905,0 -82.27816557714399,35.1951216082193,0 -82.2100104423684,35.1932410593964,0 -81.9712727030758,35.1884000260399,0 -81.87041657119239,35.1832378034331,0 -81.76518108877021,35.1825960728566,0 -81.36198018686321,35.1629867122026,0 -81.3226257414279,35.1638918108331,0 -81.04909901663881,35.1516727757939,0 -81.04883974027349,35.1321534001715,0 -81.02824058884551,35.1055509640026,0 -81.0653500212191,35.0666253067042,0 -81.0396852000525,35.0373453689435,0 -80.9275918870396,35.1013947091143,0 -80.8945103715547,35.0598808081622,0 -80.8399590540857,35.0021664433249,0 -80.785444630059,34.940788108541,0 -80.79985577870811,34.8162600736923,0 -80.5613348947421,34.815379673307,0 -80.3250654065352,34.8149167168925,0 -79.9197366317695,34.8080740704278,0 -79.685738680014,34.8054127206548,0 -79.6672823384891,34.8008202005653,0 -79.4557408419562,34.6342519700477,0 -79.4469133528043,34.6192221953644,0 -79.0742575899197,34.3047384944277,0 -78.6554531485329,33.9488449988485,0 -78.57945349610721,33.8821646134616,0 -78.0345179035716,33.9144655035987,0 -77.95823664379429,33.9927535951154,0 -77.9604422302876,34.1894138394024,0 -77.9264668205974,34.0622068781286,0 -77.89410931317229,34.0693517444618,0 -77.864094387908,34.1929080636859,0 -77.7502285952169,34.3052152556069,0 -77.6023097576188,34.4127961619157,0 -77.6094206317085,34.4352111182146,0 -77.58645506568941,34.4211044558942,0 -77.53832636635519,34.4571757451115,0 -77.1562743412922,34.6607994551356,0 -77.1290670525932,34.6850758053643,0 -77.1486300958301,34.7644928793749,0 -77.0501990668688,34.6990792872107,0 -76.6249630133433,34.7199152319966,0 -76.46954580418669,34.7852234003552,0 -76.3143487428846,34.9489790362954,0 -76.3290439177373,34.9761204263875,0 -76.3636527631416,34.9432753199548,0 -76.4236996410833,34.9464101060141,0 -76.4446746901305,35.016821613356,0 -76.5294259321625,34.9747977981923,0 -76.66971229425271,34.9701586610467,0 -76.6467009989299,34.9064952538138,0 -76.91277290524469,34.9366300082455,0 -77.0008586302893,35.0530463230032,0 -77.11026055452381,35.0661954508922,0 -77.1043475272177,35.0881454936049,0 -77.0475521473705,35.0923150966989,0 -76.94291003878649,35.0701945880484,0 -76.9411555433733,35.0275875339288,0 -76.8491252863471,34.982379921273,0 -76.6776621128775,35.0242480871668,0 -76.6238729550724,35.0645133662679,0 -76.60487483157399,35.1387263355658,0 -76.6397413585737,35.1726863005469,0 -76.5067751417852,35.2489330964746,0 -76.5406269919479,35.3038542452018,0 -76.5908594670962,35.3122475613847,0 -76.6141670362876,35.2730867333754,0 -76.6945524996528,35.3505941243399,0 -76.98285399044831,35.4366636706378,0 -77.1034438790242,35.5503488031328,0 -76.7050292785914,35.4121010752802,0 -76.6284211127021,35.4380631232604,0 -76.6378528390625,35.5205015679941,0 -76.4921880342737,35.541952401491,0 -76.5185953789444,35.5778101645251,0 -76.4461736845969,35.5510316355737,0 -76.458082231863,35.504591725145,0 -76.53340213378431,35.450365283595,0 -76.4984509695288,35.4163837561328,0 -76.18125223736131,35.3417018841534,0 -76.05260831544901,35.4147748843318,0 -75.89112185475111,35.6314373307933,0 -75.77867286687371,35.5788596630665,0 -75.72898900662339,35.665346355358,0 -75.7485844806443,35.8695079102707,0 -75.8176810806274,35.9236843388724,0 -75.9874915558738,35.8928678030293,0 -76.02084452400339,35.6692594940877,0 -76.1043820216892,35.6638050456577,0 -76.1669465551588,35.6970078077113,0 -76.0427040337583,35.684014363844,0 -76.07555189097479,35.7569647798523,0 -76.0256869103623,35.9205848840211,0 -76.0892822391223,35.9630733048323,0 -76.21341991434009,35.9770370290936,0 -76.371139191748,35.932505477407,0 -76.4091283531839,35.9776289262675,0 -76.6968862093037,35.9417048325409,0 -76.7407945732609,35.9367873881772,0 -76.693430938163,35.993130374768,0 -76.7603450631722,36.1447501886056,0 -76.7447362584297,36.2340736323403,0 -76.7071685217467,36.2662883637951,0 -76.74102237740409,36.3153219069784,0 -76.9237608844299,36.3925988375605,0 -76.7763179923306,36.3584847061625,0 -76.68840787204771,36.294673224779,0 -76.7261797744452,36.1569800114938,0 -76.6898230006157,36.0497700530899,0 -76.6328753964642,36.037277484565,0 -76.6486843529633,36.0658679998712,0 -76.59366647335681,36.0102930907247,0 -76.5226729428308,36.0073295870634,0 -76.4200856773769,36.0587660161274,0 -76.4801920625066,36.0799523645649,0 -76.2751614487396,36.1105304965543,0 -76.29858527945861,36.2143873673267,0 -76.2346329999873,36.1635194405906,0 -76.1415877116506,36.1478486946883,0 -76.1123584511714,36.1745780626302,0 -76.2185584113341,36.2967645788658,0 -76.1828209798244,36.3153954875583,0 -75.9809812344828,36.1698863401472,0 -75.9568257994211,36.1939309437328,0 -76.0086191458258,36.3197530400297,0 -75.9415760202413,36.2944972863716,0 -75.9571554546035,36.2596123902831,0 -75.9134059470765,36.2449609601768,0 -75.8547970349572,36.1058289194759,0 -75.7984798262459,36.0729822151271,0 -75.799686786926,36.1129789671118,0 -75.9242345411069,36.3511064253818,0 -75.92776837905591,36.4234009903646,0 -75.9509007725851,36.3656283397926,0 -76.00125787767401,36.4190705700709,0 -75.9694113211707,36.4152753792118,0 -75.97572143414359,36.436370152828,0 -76.0907173497589,36.503720365701,0 -76.0328614410073,36.5145275392771,0 -76.0456111690205,36.5571064340655,0 -76.1270505006232,36.5573157649444,0 -76.3299165778101,36.5562088358656,0 -76.4972285279305,36.555964754875,0 -76.5632556818254,36.5554041975692,0 -76.92131386587209,36.554309439951,0 -76.92381636627491,36.5542979883089,0 -77.1770420007847,36.5564375496145,0 -77.3197463656757,36.5540684074889,0 -77.7636386364742,36.5535891128352,0 -77.89856872882319,36.553092111532,0 -78.05138167562831,36.5526213891494,0 -78.320969632811,36.5456755672774,0 -78.45852951752001,36.5416234739225,0 -78.73711601969831,36.5462146723402,0 -78.7964284068279,36.5436739120265,0 -79.1440627705841,36.5461983712091,0 -79.21680327614961,36.5499213192211,0 -79.5100477812088,36.5477956232117,0 -79.7172016388076,36.5480278701673,0 -80.0238223180659,36.5451630012943,0 -80.04786338901999,36.5472724746821,0 -80.4350919823622,36.5511811239687,0 -80.61084107895191,36.557430438888,0 -80.8379531599861,36.5635684825855,0 -80.90324049840061,36.5653420877066,0 -81.3451210093901,36.5729883010435,0 -81.669835031007,36.5897678106349,0 -81.7026326964311,36.5194602645637,0 -81.6981148990988,36.4718999796584,0 -81.7409080103685,36.3919078496119,0 -81.7402131763359,36.36198253433,0 -81.70928987932049,36.3338502743492,0 -81.7303246226996,36.329467183951,0 -81.8304104053052,36.3347789811478,0 -81.9109940382706,36.2908752993263,0 -81.93295169915611,36.2634442248774,0 -82.02029495982831,36.1298343126582,0 -82.07760212353961,36.1002602555009,0 -82.1179256052358,36.0963748384003,0 -82.1539009606375,36.1397376377449,0 -82.2075845767752,36.1471275332235,0 -82.2621599370151,36.1204875660764,0 -82.31178368636429,36.1222605725301,0 -82.373713428402,36.0988071608409,0 -82.4082829106663,36.075426604695,0 -82.4750552128438,35.9932844245825,0 -82.50679391974769,35.9726503280575,0 -82.5540052334424,35.9562159294434,0 -82.59916490143139,35.9634057475641,0 -82.6056664709886,36.0036541966122,0 -82.59209423820271,36.0225560968714,0 -82.60426425649671,36.0430940692888,0 -82.627908811062,36.0544461489244,0 -82.6437553482122,36.0518290360149,0 -82.7630949285561,35.999650015691,0 -82.7734633268223,35.9876068957838,0 -82.776308441769,35.9566773412235,0 -82.808535161382,35.9209751642818,0 -82.85613712216021,35.9475285534576,0 -82.8958417812556,35.9484625785516,0 -82.91393874467821,35.9279697450405,0 -82.90668913774699,35.8723171942072,0 -82.9626197710807,35.7919519408503,0 -82.9868738379453,35.7740910698457,0 -83.0598287433232,35.7826768094939,0 -83.1180576454199,35.7639076045034,0 -83.14353299786571,35.762781885683,0 -83.1852205412256,35.7289833858793,0 -83.2437245319139,35.7183129960111,0 -83.25317743900131,35.7008036610277,0 -83.25899879194441,35.6911067450186,0 -83.2982915815667,35.6564233114235,0 -83.34290282423361,35.6533554944088,0 -83.38697214372481,35.625313192169,0 -83.4581731409302,35.5973733030352,0 -83.5056836752714,35.5596454175324,0 -83.56092262748621,35.5552687853695,0 -83.6137506282731,35.5718308753539,0 -83.6727662732265,35.5650623686071,0 -83.77577472166,35.5526929432439,0 -83.8300980940741,35.519149329024,0 -83.88112540362761,35.5106719867731,0 -83.9099126259032,35.4765642431448,0 -83.9546078411811,35.4555443092538,0 -84.01255674537021,35.4077068120234,0 -84.00621731838029,35.3729437031099,0 -84.02911525821651,35.3253739821258,0 -84.03077168910571,35.2926057594707,0 -84.0426897213918,35.2726584543483,0 -84.10156069006141,35.2456337418504,0 -84.1796426644509,35.2410694819878,0 -84.22586311709139,35.2616828718238,0 -84.2909595168732,35.210622280084,0 -84.3237734916339,34.989090556154,0 -84.118152397807,34.9883069959845,0 -83.9884542500545,34.9891518047362,0 + + + + + + + + + -76.0268192353758,36.5568700359695,0 -75.97593627376701,36.5180793801967,0 -75.9769275698946,36.4781707412753,0 -75.92445033891821,36.4741316082296,0 -75.9115647487463,36.5426843995728,0 -75.9983147031585,36.5568053577451,0 -76.0268192353758,36.5568700359695,0 + + + + + + + + + -75.90163103703659,36.5563523255124,0 -75.7828060806813,36.2253555177264,0 -75.7404920642807,36.0504887346377,0 -75.7023588136975,36.050028033628,0 -75.5445786711917,35.7885380495047,0 -75.77278830494819,36.2294182919327,0 -75.877811084643,36.5560283058652,0 -75.90163103703659,36.5563523255124,0 + + + + + + + + + -75.4908240267188,35.6706779442836,0 -75.4750201903482,35.5646750837636,0 -75.52108025462761,35.2815348139534,0 -75.6911717207235,35.2351648510944,0 -75.7488987595512,35.1900017864003,0 -75.52589357232451,35.2280944215419,0 -75.4565804266586,35.6175774238916,0 -75.5332327857941,35.7690344819007,0 -75.4908240267188,35.6706779442836,0 + + + + + + + + + -76.0166279556301,35.0696051226092,0 -76.0024976111832,35.0696053699945,0 -75.90356247916451,35.1326642006003,0 -75.811150308907,35.1641942791106,0 -75.76331155591871,35.1924582338,0 -75.85354935458651,35.1674551809437,0 -75.97531321026131,35.1163551414779,0 -76.0166279556301,35.0696051226092,0 + + + + + + + + + -76.5439188750827,34.5879943309158,0 -76.4689040756159,34.6934466158692,0 -76.2873389732944,34.8771752332838,0 -76.37431856243209,34.8130336904105,0 -76.43193837858991,34.7608479437727,0 -76.484125508936,34.697795135324,0 -76.53739566964271,34.6140864557391,0 -76.5547914497339,34.6108248279411,0 -76.5439188750827,34.5879943309158,0 + + + + + + + + + North Dakota + empty + + +states.AREA: + 70812.056 + + +states.STATE_NAME: +North Dakota + + +states.STATE_FIPS: +38 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +ND + + +states.POP2000: + 642200 + + +states.POP2001: + 639099 + + +states.POP00_SQMI: + 9 + + +states.DEN_0_100: + 99 + + +USStates.ID: + 39 + + +USStates.State_Name: +North Dakota + + +USStates.Date_Entered: +Nov. 2 1889 + + +USStates.Year_Entered: +1889 + + +USStates.Year_Settled: +1812 + +]]> + #Style_5 + + + -100.470755004497,47.44607757471681,0 + + + + + + -98.7304369014178,45.938271038568,0 -98.0147097100399,45.9314979679384,0 -97.97872180427929,45.9308221521123,0 -97.2333099148663,45.9365026737778,0 -96.56692152993792,45.9341104552974,0 -96.56180218014301,45.947683082204,0 -96.57621526476891,46.0212796299197,0 -96.5519309951806,46.0955288981098,0 -96.5711660882375,46.1771746587376,0 -96.58789029848551,46.1919183501241,0 -96.586456172813,46.2154130412247,0 -96.59818306918299,46.2386825873787,0 -96.60207424773671,46.3363242033822,0 -96.6148614718026,46.3508125122489,0 -96.652101616659,46.359433744956,0 -96.68822802670302,46.4122182590646,0 -96.70968261750701,46.4271682580565,0 -96.7148938591495,46.4687184679509,0 -96.7403159762507,46.48943263621611,0 -96.7512275405111,46.5886193856906,0 -96.77104176601431,46.599983727298,0 -96.7843175742934,46.6241120798968,0 -96.79024584630611,46.6297732310646,0 -96.7936950250642,46.6788040267861,0 -96.7815566712509,46.70704424821519,0 -96.78038206028749,46.76231192357041,0 -96.79719698567129,46.8120331273937,0 -96.7682498142506,46.8448617179934,0 -96.77806115639289,46.86734962234851,0 -96.75691111938932,46.92278040676061,0 -96.7630680116614,46.9362617243826,0 -96.78792529587892,46.9321845446505,0 -96.78971039131831,46.9482025284177,0 -96.80188711680511,46.9558437462552,0 -96.7934256963282,46.9696412657999,0 -96.81677225710112,46.9697793204954,0 -96.8245311005541,47.0034368148568,0 -96.83529642490029,47.010231336615,0 -96.8226082854226,47.0339323228784,0 -96.82696455551869,47.0788327499143,0 -96.8191517739067,47.092603946145,0 -96.83916391918299,47.15188672447119,0 -96.8264910530645,47.1700638561564,0 -96.83706533207652,47.24045886252299,0 -96.84962364144019,47.2568437171683,0 -96.8377139015022,47.2938841531782,0 -96.84674742491131,47.3146021392787,0 -96.83846171594141,47.3422432670699,0 -96.8506310274787,47.3609547965118,0 -96.83982751825211,47.3841173886799,0 -96.85000552427368,47.40893619134631,0 -96.8672485372544,47.4130870926383,0 -96.8558270224376,47.4367532150799,0 -96.86668409504289,47.46153767201731,0 -96.8516156149426,47.5006189556105,0 -96.86068697531159,47.521355890617,0 -96.84918872371689,47.5445680596933,0 -96.85866448748919,47.5629780191413,0 -96.8522168516036,47.6011515774988,0 -96.8733355306381,47.61525494214149,0 -96.88942557471509,47.6739252332857,0 -96.92365919198331,47.7140944463104,0 -96.9320126704945,47.76350633439991,0 -96.95783043536861,47.7944403501783,0 -96.98389283615319,47.8096615237026,0 -96.9772315863069,47.82802938021419,0 -97.0003404808151,47.8701978669666,0 -97.02056624465818,47.8755694579146,0 -97.0153310859442,47.9178900732528,0 -97.04805316836101,47.9549243203709,0 -97.06707134786728,48.048164548667,0 -97.09272143407961,48.0703439518727,0 -97.09903037740141,48.10097253646661,0 -97.1218728658484,48.1163692500537,0 -97.12091854672551,48.1427747596289,0 -97.1365131689498,48.1483979760568,0 -97.1160657786151,48.15922376009381,0 -97.13744349769659,48.1677691625112,0 -97.13629125790619,48.1752269254696,0 -97.13727498096822,48.19506350874159,0 -97.13082783294991,48.203741885664,0 -97.1108994630634,48.2076058326789,0 -97.13975391723049,48.2217551769127,0 -97.1092357553089,48.2280489212221,0 -97.12755405772062,48.2335233812974,0 -97.12378464072812,48.2591734472995,0 -97.1366555811411,48.26448372514071,0 -97.1117146532382,48.2778766724222,0 -97.1126835485646,48.2861469425287,0 -97.13051368584328,48.2930404066961,0 -97.11372110772452,48.2948826063907,0 -97.11475103859129,48.3036182701977,0 -97.1326346023646,48.3109694998778,0 -97.11259178050868,48.3199260418033,0 -97.1371359526577,48.325991839938,0 -97.1311236997639,48.3614912628834,0 -97.1503959422882,48.3632158504957,0 -97.1337863598383,48.37245473762349,0 -97.13520540024382,48.3844100102639,0 -97.15881888906552,48.3882060567347,0 -97.12912451530391,48.40788551888869,0 -97.14982354769968,48.4099916056847,0 -97.1516469812462,48.4196122946538,0 -97.1226011810987,48.4161098774117,0 -97.11963315137211,48.4371020760904,0 -97.1436129528287,48.4381095940115,0 -97.13459432660341,48.5173139662426,0 -97.14832765896941,48.5179512756552,0 -97.13938559124,48.53464808973769,0 -97.15553751110001,48.5383982428954,0 -97.16043569382291,48.5450778855401,0 -97.14661837238491,48.549537028086,0 -97.16794315057858,48.5622632793582,0 -97.15212680110921,48.5728564381998,0 -97.1581923011142,48.5836407260616,0 -97.1408119037381,48.58690580615401,0 -97.14471807468772,48.614024636853,0 -97.1229581756859,48.62076865965261,0 -97.12744434552491,48.6297943394125,0 -97.1076300563642,48.6299465820435,0 -97.0971692767445,48.67452891358581,0 -97.1167392665872,48.6952431183753,0 -97.11010128165211,48.70858304519639,0 -97.13480616135631,48.72623793064931,0 -97.1325018005064,48.74721879009559,0 -97.14789838866929,48.7556533929197,0 -97.13924598743699,48.7635421115078,0 -97.14751600300801,48.7811701058176,0 -97.17394470123411,48.8015144641308,0 -97.1647124057145,48.81036830295489,0 -97.180421855856,48.8155374993874,0 -97.17120441179901,48.8359804803914,0 -97.17572751730749,48.87375778734761,0 -97.21636909583231,48.9318299182446,0 -97.22943644383329,48.9999877567165,0 -97.93786778438729,48.9999918937478,0 -99.0004034005602,49.0000065174999,0 -99.5335659929558,49.000008633611,0 -100.18790828563,49.00000221473371,0 -101.50043742862,49.00002009555491,0 -102.022264422813,49.0000152771341,0 -102.937958808257,49.0000261991575,0 -104.062991101535,49.0000267486802,0 -104.052317635595,48.6458247340349,0 -104.052111483045,48.3910193593535,0 -104.048425167939,48.0000812793709,0 -104.047307659333,47.4000172886746,0 -104.045926505168,47.3338320293792,0 -104.047437491435,46.6429474765464,0 -104.046705569922,46.5425395197373,0 -104.04783642886,46.2808814764405,0 -104.048906344358,45.94299366714029,0 -102.994822935958,45.9411156292139,0 -102.94639700191,45.9416652376318,0 -102.002775042851,45.9425053768471,0 -100.514406747246,45.9403879984664,0 -99.8757832426344,45.9435473182577,0 -99.7173457378766,45.9427610350303,0 -99.0068328335466,45.939555550557,0 -98.7304369014178,45.938271038568,0 + + + + + + + + Ohio + empty + + +states.AREA: + 41193.957 + + +states.STATE_NAME: +Ohio + + +states.STATE_FIPS: +39 + + +states.SUB_REGION: +E N Cen + + +states.STATE_ABBR: +OH + + +states.POP2000: + 11353140 + + +states.POP2001: + 11381725 + + +states.POP00_SQMI: + 276 + + +states.DEN_0_100: + 75 + + +USStates.ID: + 17 + + +USStates.State_Name: +Ohio + + +USStates.Date_Entered: +Mar. 1 1803 + + +USStates.Year_Entered: +1803 + + +USStates.Year_Settled: +1788 + +]]> + #Style_5 + + + -82.78739067313241,40.2875354201742,0 + + + + + + -83.2727548748104,38.6092569222626,0 -83.24501356062839,38.6241723630441,0 -83.1819390743195,38.6098410346599,0 -83.1431499750977,38.6193396966029,0 -83.11124311365749,38.6648333651597,0 -83.0608799170539,38.6857264630017,0 -83.0269434347116,38.7145119991138,0 -82.97248310332699,38.7196429959584,0 -82.9213038087217,38.7464144846546,0 -82.8903122480228,38.7427754690297,0 -82.8731911677823,38.7190064779649,0 -82.880011744564,38.6833013226062,0 -82.8600294858941,38.6523951466567,0 -82.85385666395931,38.6004587371503,0 -82.8269924854152,38.5716621183892,0 -82.8023639107609,38.5572886775579,0 -82.7419448162975,38.5530662073486,0 -82.6955793642933,38.5391428294601,0 -82.6697603574158,38.5021407722218,0 -82.6137433379651,38.4726688337026,0 -82.5866043088359,38.4125194224537,0 -82.5754192239026,38.4039021444586,0 -82.5475481992093,38.4005109785092,0 -82.4949877236084,38.405832597411,0 -82.41489129697651,38.4303925893994,0 -82.39476414185761,38.4284703243087,0 -82.32917938871179,38.4419523430973,0 -82.3142406687043,38.4652295850629,0 -82.2899713540982,38.5800813546872,0 -82.2708972021513,38.5948900812008,0 -82.2136592450116,38.5848354166427,0 -82.1842468602663,38.5950322865397,0 -82.17365706195611,38.6321907721309,0 -82.18897770390291,38.6778937710105,0 -82.1839728099084,38.710302969121,0 -82.2167502305976,38.7789394330115,0 -82.1977219453354,38.8046196832205,0 -82.14609966838241,38.8387877142417,0 -82.13931709213161,38.8993984229593,0 -82.1012069170005,38.9520939616579,0 -82.0850167494239,38.9771981320238,0 -82.0585035436315,38.9890655972236,0 -82.0428855933127,39.0141392723836,0 -81.999678576611,39.0152610363642,0 -81.9751873204589,38.9930065533181,0 -81.9377333601398,38.9911756913507,0 -81.92783006842539,38.9842712717174,0 -81.89860847229041,38.9322247653254,0 -81.9318508422449,38.8947421272096,0 -81.91524871422909,38.884446578043,0 -81.8926954574516,38.8734530024849,0 -81.8668004270512,38.8857095354934,0 -81.8409130504285,38.9378897832025,0 -81.8237768593835,38.948467790736,0 -81.7832252461068,38.9235624308806,0 -81.7622971158526,38.9301808907728,0 -81.7817298618878,38.9685290255312,0 -81.7756796380037,39.0168297231883,0 -81.8134617903382,39.0441080346264,0 -81.824273103509,39.0664159845432,0 -81.8195656534392,39.077016873553,0 -81.78636140597079,39.0772573104027,0 -81.7535616017454,39.0947208175577,0 -81.74470368597029,39.1258749496768,0 -81.758910326595,39.1757512549241,0 -81.7230738622105,39.2132681698618,0 -81.6979035279936,39.220020030992,0 -81.6895262667326,39.2602262835757,0 -81.6675222725862,39.2704953128172,0 -81.5726851110575,39.2659175355733,0 -81.55738794827489,39.3326551943737,0 -81.54064851311919,39.3527089235402,0 -81.4650081513692,39.4068583282204,0 -81.4479558561434,39.4110278039673,0 -81.4339782748136,39.4060229813656,0 -81.3759162878324,39.3456902660112,0 -81.3388361554473,39.3536439576398,0 -81.2840170696265,39.387072038012,0 -81.2376212801085,39.388472233438,0 -81.2249486327778,39.4083582071948,0 -81.20030524610981,39.4158962250483,0 -81.180567643956,39.437800182641,0 -81.11708991317241,39.467783911079,0 -81.09824494329121,39.4964511389157,0 -81.03738319915119,39.5326641774228,0 -81.03256860915231,39.544142538686,0 -80.9836464085096,39.5818052379779,0 -80.9326107962525,39.6069409720762,0 -80.91259057006261,39.6073533140813,0 -80.8811098930273,39.6240811641343,0 -80.87274608454371,39.6624110188142,0 -80.8634141639951,39.6803515272318,0 -80.832787434305,39.7034002259532,0 -80.8322983936779,39.7188343443337,0 -80.8564533163278,39.7363355934909,0 -80.87072776135891,39.7599938351988,0 -80.8191038347973,39.8090013333355,0 -80.8259165835688,39.8396671142989,0 -80.7985253362877,39.8567227242363,0 -80.7908494426605,39.8723475673467,0 -80.8121358445091,39.9049014113291,0 -80.8078400413376,39.9159028725421,0 -80.7960214112815,39.9198397078312,0 -80.7681270403387,39.9133131812296,0 -80.7588871844105,39.9212667893345,0 -80.76306009947351,39.947015501453,0 -80.7388880114803,39.9834759440017,0 -80.73823885471551,40.0356640607266,0 -80.7020651116698,40.1540899859456,0 -80.7008900358822,40.1681812950244,0 -80.67855741943301,40.194151495489,0 -80.6501132136987,40.2456798126148,0 -80.6146878118885,40.2765021361522,0 -80.60451708240841,40.3062448322667,0 -80.6092470800706,40.3732754647517,0 -80.6292446110196,40.3886635709611,0 -80.6278482893771,40.3982268491052,0 -80.6018302001708,40.4805390518844,0 -80.6252533727438,40.5044642482608,0 -80.63343988239519,40.5392040647419,0 -80.6686204246359,40.5682789021601,0 -80.6677276496391,40.5821374643692,0 -80.63733821934061,40.613982302321,0 -80.6115497018059,40.6200630858018,0 -80.5744158355721,40.6159741619192,0 -80.52199952847749,40.6372031779131,0 -80.520306111211,40.8541688223624,0 -80.52092443011161,40.8972705158399,0 -80.5229326934644,41.1296278146841,0 -80.51999623496189,41.4892885705201,0 -80.52392556258459,41.4951021493305,0 -80.5226439573086,41.8507747576586,0 -80.5205925694563,41.9868721098151,0 -80.9997726749621,41.8502571698917,0 -81.3622646287273,41.7242834716563,0 -81.4782631842651,41.6317160085966,0 -81.7385026273233,41.4911547362108,0 -81.9619077841044,41.5019186194452,0 -82.01560565326599,41.5153101427099,0 -82.3413826182513,41.4315011278012,0 -82.5488376780322,41.3913376118913,0 -82.7169465507165,41.4505247784283,0 -82.9089321846262,41.4294685839921,0 -83.07039839197181,41.4561099314841,0 -82.7847067738454,41.5074172813269,0 -82.7958306404585,41.5376483368901,0 -83.0034334958447,41.5381937701371,0 -83.153746401703,41.6260898051711,0 -83.4826910020175,41.7251299269076,0 -83.76395412119879,41.7170422186577,0 -83.868639675225,41.7159933856432,0 -84.35920849224161,41.7080391705922,0 -84.38439324270421,41.7071503370832,0 -84.79037747295131,41.6974947329852,0 -84.79136990395649,41.5304919381552,0 -84.7918972237936,41.4278994604409,0 -84.7909755666301,41.2838180261002,0 -84.79158626712351,41.2531325315222,0 -84.79052709599461,40.9883412320642,0 -84.79102327254211,40.9377084936207,0 -84.7930613218788,40.7288603729197,0 -84.7932521538178,40.5887382366961,0 -84.7945562939653,40.3530507566997,0 -84.79538778828569,40.3195005333353,0 -84.8035641264148,40.013990635484,0 -84.8061497587903,39.9171665438967,0 -84.808696532672,39.7332992702085,0 -84.8110367793544,39.5640506850582,0 -84.8111048340875,39.5131632038426,0 -84.8120249021854,39.3123331649208,0 -84.8120705333745,39.3030292262759,0 -84.81148058301,39.1025855115064,0 -84.7899269988898,39.1070335912354,0 -84.7428755878621,39.1420637748434,0 -84.6674874871449,39.0896244882795,0 -84.6226484760206,39.0749345727981,0 -84.5930686595367,39.070265611257,0 -84.5153007968991,39.0941952341113,0 -84.4920536098813,39.1073635038858,0 -84.444918075979,39.1118269376755,0 -84.425683749535,39.0847240819073,0 -84.4197401104714,39.0473368904498,0 -84.39131227398291,39.0357444360707,0 -84.3457790116403,39.0378123176184,0 -84.3133151278336,39.014074138235,0 -84.29013610301691,38.9445378637403,0 -84.2615250982177,38.9174773125027,0 -84.2352944474892,38.8745556222277,0 -84.2287021102685,38.8126904458503,0 -84.17675226261351,38.7884985944901,0 -84.0888671071979,38.7655047394295,0 -84.05380160129811,38.7637349934305,0 -83.9621627892472,38.7776474056309,0 -83.9125395047095,38.7579603800755,0 -83.8575526890278,38.7449183938572,0 -83.8375322435588,38.7118799039528,0 -83.79046498152741,38.6938445378462,0 -83.77022323291369,38.650819405338,0 -83.712825428618,38.6355534097723,0 -83.6785301000227,38.6209281353376,0 -83.6557556666292,38.6238806809261,0 -83.64318975618861,38.6358624635654,0 -83.63324094665769,38.6649719664098,0 -83.6183785196076,38.6779722718334,0 -83.526555981969,38.696111041032,0 -83.5000734679638,38.690137357128,0 -83.45361629995431,38.6637746596862,0 -83.37142194898451,38.6549977034897,0 -83.33002325645781,38.6319880306114,0 -83.3203257653401,38.6065634765907,0 -83.3065312653877,38.5963174248036,0 -83.2900435785732,38.5966379602472,0 -83.2727548748104,38.6092569222626,0 + + + + + + + + Oklahoma + empty + + +states.AREA: + 70003.325 + + +states.STATE_NAME: +Oklahoma + + +states.STATE_FIPS: +40 + + +states.SUB_REGION: +W S Cen + + +states.STATE_ABBR: +OK + + +states.POP2000: + 3450654 + + +states.POP2001: + 3477711 + + +states.POP00_SQMI: + 49 + + +states.DEN_0_100: + 96 + + +USStates.ID: + 46 + + +USStates.State_Name: +Oklahoma + + +USStates.Date_Entered: +Nov. 16 1907 + + +USStates.Year_Entered: +1907 + + +USStates.Year_Settled: +1889 + +]]> + #Style_5 + + + -97.50945859429611,35.583978004302,0 + + + + + + -94.4393221493475,34.9291508772006,0 -94.4285520120899,35.4005462695086,0 -94.46848521103668,35.6410882624306,0 -94.48593482605899,35.7603104941298,0 -94.5424172738563,36.1068358038929,0 -94.55311361988042,36.1645252110653,0 -94.60745283215459,36.4787903547,0 -94.6172570958511,36.4894141614003,0 -94.6210734035526,36.670542870082,0 -94.6216844155007,36.7636077108139,0 -94.6203796376912,36.9970468237132,0 -95.0327450815612,37.0007794392778,0 -95.07193109811,37.0014780674299,0 -95.40662244594169,37.0006155845495,0 -95.5260187862325,37.0010188368678,0 -95.78574861213642,36.9981139405669,0 -95.9579609448337,37.0000828949687,0 -96.00604971220072,36.9983338098062,0 -96.5191876912757,37.0005778020035,0 -96.74869619591919,37.0001660629802,0 -97.137692826494,36.9998082437565,0 -97.46540491812472,36.9964671394098,0 -97.8042499377042,36.9985676282825,0 -98.1045290729196,36.998671345032,0 -98.34714359763062,36.9990615091091,0 -98.54021961843299,36.9983759139801,0 -98.99951613987589,36.9980727934686,0 -99.43747360824931,36.9945583965996,0 -99.5446396923613,36.9954629108102,0 -99.99926174794319,36.9954175257409,0 -100.088573981101,36.9976524956006,0 -100.634245618228,36.9978323335316,0 -100.950586859868,36.996661689339,0 -101.071604192395,36.9974667126978,0 -101.55367610944,36.9966930458734,0 -102.024519464501,36.9888757490654,0 -102.037207602599,36.9889939197762,0 -102.997709442614,36.9985238353847,0 -102.997400999016,36.4923701848871,0 -102.165673606983,36.4902341370994,0 -102.034658387679,36.4929809605896,0 -101.62075555527,36.4920314454728,0 -101.090102366885,36.4880502722289,0 -100.957341408628,36.4896376715563,0 -100.549839323196,36.4894790903428,0 -100.007272948555,36.493912716666,0 -100.001550693503,36.4925547831533,0 -99.99755361874209,36.0575913818302,0 -99.9981231250644,35.8838375261918,0 -100.000392481852,35.6188562203977,0 -99.99474342059961,35.4246221647218,0 -99.9975702180927,35.1822350834532,0 -99.99645505791619,35.0310510336069,0 -99.9992599692516,34.7472433686446,0 -99.9964752628992,34.5623839445524,0 -99.9724799649576,34.5619266989846,0 -99.9451200138402,34.5796346298626,0 -99.93228692511291,34.5791733267958,0 -99.88097732527548,34.5482418940255,0 -99.86094928508588,34.5186945590413,0 -99.83030837990161,34.501846255188,0 -99.77806025861618,34.4440642714861,0 -99.6852769049209,34.3775206620374,0 -99.601817403152,34.3686339710267,0 -99.58558947886991,34.3849338835776,0 -99.5782194991147,34.4089886853491,0 -99.5542323165501,34.4152563856433,0 -99.5025040549412,34.4041453149585,0 -99.4798058594252,34.3836002544386,0 -99.43874320793192,34.3647833428937,0 -99.4103230107381,34.3691856116386,0 -99.3945224149831,34.3968223241289,0 -99.3931570632619,34.429070725134,0 -99.3645692443735,34.4502723758117,0 -99.32365897051331,34.4127869472387,0 -99.26753552999141,34.3983645544,0 -99.25446563782602,34.3682943923503,0 -99.20584919432768,34.3320754835343,0 -99.19666281278209,34.3052057476053,0 -99.20495561666171,34.2557306955242,0 -99.19084035753009,34.2238215675651,0 -99.17651178434171,34.2128165213261,0 -99.12830013933699,34.2015562705675,0 -99.07878412614019,34.2084460436583,0 -99.03556990100751,34.1990091275048,0 -98.99654461650539,34.2095837062186,0 -98.9528568855168,34.1946535863845,0 -98.8916893852997,34.1609098971274,0 -98.8114099222656,34.146025924858,0 -98.77887692432012,34.1320532580559,0 -98.70563225966779,34.1308063642615,0 -98.68255276049912,34.1500893803379,0 -98.66205950085499,34.147129344828,0 -98.6263299881177,34.158527616426,0 -98.6075838723519,34.1514897431627,0 -98.5766684370536,34.1420220197199,0 -98.5579143286446,34.1054284628805,0 -98.4998521726901,34.066508171909,0 -98.4485195081449,34.0544693031052,0 -98.4216707502906,34.0659246412843,0 -98.4074643999688,34.0825487630451,0 -98.39128184930269,34.087324681805,0 -98.3845831608253,34.115873277508,0 -98.35073026318848,34.1422132177566,0 -98.3208141218597,34.1395124845584,0 -98.277324712945,34.1229647210219,0 -98.1731642842845,34.1154615363479,0 -98.137182702728,34.1385247073243,0 -98.11518632903911,34.1490797537232,0 -98.09444127427528,34.1346491348156,0 -98.11100543330518,34.0699152608686,0 -98.08652197109261,34.0054103575962,0 -98.0558736752466,33.9898964139123,0 -98.0238062114244,33.9870813155941,0 -97.982995159825,34.0013824361846,0 -97.9505389343141,33.9712584919282,0 -97.94806700069491,33.9598489691416,0 -97.9633110473011,33.9487483818417,0 -97.95099692709511,33.9326163854516,0 -97.9764418443808,33.9121508879515,0 -97.97669367876701,33.9026028951239,0 -97.95504853378348,33.8835794315438,0 -97.90937762069478,33.8741230741104,0 -97.8700622202223,33.8552140577552,0 -97.8528573913232,33.857170989043,0 -97.79051555721509,33.8905567127498,0 -97.75667040704261,33.932197269678,0 -97.72932581317978,33.9393918135487,0 -97.7045675638129,33.9716446286772,0 -97.6713709731313,33.9887114388077,0 -97.6004841716436,33.9695357487998,0 -97.5926564722634,33.9179850917189,0 -97.57597058455282,33.9026313915672,0 -97.55488993784371,33.9040048081949,0 -97.51850418970599,33.91687174991,0 -97.47783082980909,33.9078083743386,0 -97.4630599713817,33.9024831837152,0 -97.45736073930121,33.890532021605,0 -97.45303509112971,33.8363150195283,0 -97.41041616291049,33.8208124550832,0 -97.36361607593869,33.8311271478817,0 -97.3421004874611,33.8620178329205,0 -97.31525189418009,33.8704938884378,0 -97.3143820721958,33.8959411317283,0 -97.27257189808169,33.8726758421186,0 -97.26420222924099,33.8588326323233,0 -97.25098012527539,33.8730725605007,0 -97.24635658905748,33.8943389990746,0 -97.21162664947801,33.905790476719,0 -97.1880588051263,33.899305664185,0 -97.1644603868134,33.8632500271984,0 -97.16888553387221,33.8478962336794,0 -97.19530685545391,33.8362616577426,0 -97.2086128811281,33.8197520263932,0 -97.1894548414756,33.7528743688857,0 -97.1527639551762,33.7287737567957,0 -97.1158518152657,33.7260387447849,0 -97.09078850752719,33.7317759436109,0 -97.0837540270329,33.7425178691231,0 -97.087958150994,33.8076751203943,0 -97.0503136942646,33.8235515468502,0 -97.0785356759137,33.8379135029825,0 -97.08246496741261,33.8512035820318,0 -97.0711884256134,33.8568301349417,0 -97.0258837487447,33.8406638868468,0 -97.00613836455501,33.8506162080499,0 -96.9879951562104,33.876524993445,0 -96.9881480778014,33.9443028760324,0 -96.9684711058252,33.9374213261378,0 -96.9364875549014,33.9479496295896,0 -96.92984981386039,33.9618729385895,0 -96.8987359278797,33.9501277640988,0 -96.88313308270391,33.9246919643211,0 -96.8792188051043,33.8841045463944,0 -96.86129653634301,33.8617814536899,0 -96.84428994427481,33.8581346758361,0 -96.81439693387631,33.8718710579623,0 -96.7978710251696,33.8700514781673,0 -96.7491017928465,33.8318404880575,0 -96.7119531575884,33.8339726711759,0 -96.6936574485524,33.8480065285136,0 -96.67797914648511,33.9044245192975,0 -96.66651194068848,33.9136443690811,0 -96.58476047125609,33.8962455118061,0 -96.61443925387489,33.8630013562452,0 -96.6014686489895,33.8430585200471,0 -96.56240472874201,33.8255225751035,0 -96.5108435468467,33.8157874455655,0 -96.50101614488641,33.7881925349614,0 -96.48764129273351,33.7782325064272,0 -96.41973038217169,33.7884284828286,0 -96.3710832530533,33.7404975591171,0 -96.34785055840121,33.705631801563,0 -96.31653860767391,33.701904716619,0 -96.3010507089615,33.7141533419418,0 -96.28994278991731,33.7620342928024,0 -96.27833836590121,33.7734894901909,0 -96.21280716638501,33.7567925567755,0 -96.18728601066199,33.758684486151,0 -96.1690742422207,33.769456890815,0 -96.16157487608,33.7983297326873,0 -96.1416772177066,33.8204201506892,0 -96.15477738441462,33.824044081131,0 -96.1809848937133,33.8085339108482,0 -96.18338837503551,33.8158923202814,0 -96.16946454166531,33.8290832377136,0 -96.1492232448427,33.83569011079,0 -96.10970158601782,33.8293577291253,0 -96.09177990185232,33.8446772338064,0 -96.04822986488121,33.8413774764797,0 -96.0270045674164,33.8561209977346,0 -96.0143238316783,33.8443070387318,0 -96.0020480603943,33.8570784239774,0 -96.0028724620981,33.8734890044101,0 -95.99446458602881,33.8754764816195,0 -95.9776482488988,33.8580513457492,0 -95.959016632946,33.8651391176183,0 -95.94332288009811,33.8900718041244,0 -95.93332795033651,33.8906288422977,0 -95.8468057390447,33.8411382296162,0 -95.82622079304791,33.8431258316945,0 -95.7957252595447,33.8647743475285,0 -95.7687615327479,33.8515033166903,0 -95.7644970987573,33.8791063735621,0 -95.76094194954548,33.8935411571276,0 -95.7471094802783,33.9034976338912,0 -95.699950264818,33.8949267760162,0 -95.63373271524731,33.9202077191712,0 -95.6132241254837,33.9203415546903,0 -95.6150707735962,33.9367942616433,0 -95.60631201461909,33.944656465691,0 -95.5630133970639,33.9361771034426,0 -95.5465557208432,33.9041378125257,0 -95.51981372505441,33.9067474752702,0 -95.52697025126849,33.8979201785035,0 -95.54773054262731,33.8932621235845,0 -95.5442741981764,33.8858464269672,0 -95.5131223838212,33.8978402854978,0 -95.49909123242928,33.881822624598,0 -95.46835947773379,33.8865378582277,0 -95.4518412564926,33.8658586121364,0 -95.33027212314218,33.8710248450986,0 -95.3364600240519,33.8972201452204,0 -95.30218796775361,33.8867301071625,0 -95.2866618452793,33.8870087194903,0 -95.27758309673119,33.9180449387556,0 -95.26384964793752,33.8979074295118,0 -95.2512228467789,33.9051287029656,0 -95.2515208198696,33.9365500995153,0 -95.2342706406141,33.9649694417437,0 -95.14854400728719,33.9436534386509,0 -95.12819579812822,33.9409756193022,0 -95.12690617519908,33.9172521426231,0 -95.11945200414949,33.9123884529818,0 -95.09558666926452,33.9218451265293,0 -95.08249423367511,33.918560731634,0 -95.0899405612146,33.8970230129184,0 -95.0838291836962,33.8885696946472,0 -95.063702501233,33.9177558985992,0 -95.06336665131251,33.8968018383347,0 -95.04308708832051,33.884552938792,0 -95.0375860361542,33.8665590741676,0 -95.0129958687657,33.8700533810898,0 -94.9895041088505,33.8562900729299,0 -94.96892682868412,33.8663228494762,0 -94.9601296578001,33.8481840346416,0 -94.94010923140679,33.8409324203509,0 -94.94062024969412,33.8159156370392,0 -94.9184559016621,33.816304855563,0 -94.90876604933241,33.8035866991384,0 -94.9140991208061,33.7897049819208,0 -94.8818557435802,33.7750719362582,0 -94.8580964984281,33.7494296047539,0 -94.81937555938541,33.7495136716343,0 -94.80343699443648,33.7396910082834,0 -94.7837218171255,33.7533704682922,0 -94.76438804719702,33.7529509233106,0 -94.782241592951,33.742376603757,0 -94.7833707776319,33.7337745678945,0 -94.74998307234321,33.7368149801429,0 -94.762930719398,33.7169062835784,0 -94.74232301585609,33.719157166445,0 -94.7546906224197,33.7078808674656,0 -94.7418652471894,33.7013771094591,0 -94.69119732857141,33.6903997057713,0 -94.66866725489341,33.6966486225785,0 -94.65568935572141,33.6924032061402,0 -94.6445348646206,33.6777628005194,0 -94.6681636112439,33.671571088102,0 -94.6696360986615,33.6661733181553,0 -94.65874868980602,33.663850430669,0 -94.63897287047551,33.6702175285534,0 -94.63194611400361,33.6840114940994,0 -94.60115305801639,33.6657208732496,0 -94.5853141750945,33.6790954380738,0 -94.578714527779,33.6705850642858,0 -94.5609300134862,33.672027401142,0 -94.5654161185401,33.6631276811661,0 -94.58536744514042,33.6622460583057,0 -94.58859470157501,33.6555626943339,0 -94.57666964564912,33.6522708940353,0 -94.54562499154091,33.6617357579767,0 -94.54213813675099,33.6483615972293,0 -94.5624022483444,33.6429443355883,0 -94.56235640260989,33.6356506902792,0 -94.55040081551948,33.632809011294,0 -94.51819645594929,33.6431245606389,0 -94.5252611988716,33.6211366353993,0 -94.51076509594741,33.6309253877013,0 -94.50081601724669,33.6231627285535,0 -94.4766912623089,33.6320818342933,0 -94.46858488730931,33.9393114556774,0 -94.4616914490383,34.1967651932869,0 -94.45262404592168,34.5084326818174,0 -94.44596107534362,34.7356081162875,0 -94.4393221493475,34.9291508772006,0 + + + + + + + + Oregon + empty + + +states.AREA: + 97073.594 + + +states.STATE_NAME: +Oregon + + +states.STATE_FIPS: +41 + + +states.SUB_REGION: +Pacific + + +states.STATE_ABBR: +OR + + +states.POP2000: + 3421399 + + +states.POP2001: + 3470714 + + +states.POP00_SQMI: + 35 + + +states.DEN_0_100: + 97 + + +USStates.ID: + 33 + + +USStates.State_Name: +Oregon + + +USStates.Date_Entered: +Feb. 14 1859 + + +USStates.Year_Entered: +1859 + + +USStates.Year_Settled: +1811 + +]]> + #Style_5 + + + -120.55462738557,43.9315095486322,0 + + + + + + -121.441508911406,41.9943345308753,0 -120.871908519109,41.9876721779537,0 -119.993459369715,41.9892049531992,0 -119.351692186077,41.9888529749781,0 -119.3109421304,41.989135387281,0 -118.185316829038,41.9966370981387,0 -117.018864363596,41.9947941808341,0 -117.026295220045,43.6790312226004,0 -117.023794477971,43.7537015926794,0 -117.037117330473,43.800141963624,0 -117.027626548295,43.8315678483138,0 -117.010505344258,43.8397697264411,0 -117.016220426787,43.8529724419634,0 -116.985769945695,43.8593508862889,0 -116.978148119756,43.8734692305504,0 -116.978141228786,43.9044410423274,0 -116.959715844454,43.9285769433414,0 -116.967956848099,43.9631956105834,0 -116.933593484224,44.0142025695716,0 -116.976817765704,44.0738948202899,0 -116.963443200146,44.090298169114,0 -116.946886686949,44.0930258111951,0 -116.902254132599,44.1463138321419,0 -116.913051097385,44.1773044506484,0 -116.981871729265,44.1978422986385,0 -116.976127235356,44.225182362645,0 -116.99270711064,44.2470633967105,0 -117.030352023293,44.2493365546444,0 -117.052027613364,44.2315559603412,0 -117.081386867577,44.2438466037113,0 -117.100560675447,44.2670779004604,0 -117.112691921322,44.2698052758843,0 -117.143278940324,44.2506322436234,0 -117.170722952687,44.2533327374994,0 -117.213571878683,44.2847196851647,0 -117.217455714498,44.3006651372011,0 -117.201602017039,44.3394380033709,0 -117.236920894466,44.3899826429371,0 -117.217221802736,44.4278552410788,0 -117.224409907123,44.4729870546087,0 -117.203962567437,44.4857855049483,0 -117.187391126196,44.5118056022903,0 -117.1451606624,44.5346556241885,0 -117.143939864097,44.5592869485007,0 -117.130503910469,44.5725238664124,0 -117.079353923671,44.6893364257274,0 -117.066513051783,44.6975569657362,0 -117.039572246368,44.749115712801,0 -116.951494105467,44.7760351265198,0 -116.909620757374,44.8289402518746,0 -116.897366859846,44.8485551014903,0 -116.867076347262,44.8686084474449,0 -116.835396183444,44.9201440913313,0 -116.847556799088,44.9548499437335,0 -116.831396506105,44.9726336704264,0 -116.848158998462,44.9717412377244,0 -116.855887624852,44.9799657227584,0 -116.848097045025,45.0000421568822,0 -116.854513190899,45.0169452945603,0 -116.807307341613,45.0497552840876,0 -116.787210028569,45.075752513234,0 -116.77809192451,45.0994801033861,0 -116.761268252635,45.1063007182859,0 -116.736585294563,45.1373070907968,0 -116.688813374421,45.2623508428019,0 -116.672265496083,45.335410289815,0 -116.565771964133,45.4598636753961,0 -116.554503319145,45.4936471953906,0 -116.478551260109,45.566058496306,0 -116.470418797949,45.6062572703347,0 -116.514915090692,45.6644908956717,0 -116.52827492994,45.7107280103095,0 -116.560631908125,45.7474245686917,0 -116.654397936737,45.7806301604239,0 -116.703180308495,45.8191692439007,0 -116.773707129394,45.8197636132853,0 -116.791262487748,45.84586710608541,0 -116.856471818728,45.9035973451801,0 -116.89819704847,45.98051594169479,0 -116.919132428078,45.995175487463,0 -117.481663000967,45.9998347138602,0 -117.602826163512,46.00026815862021,0 -117.982677428834,45.9998805158959,0 -117.992527778446,46.0016389052483,0 -118.982132819163,45.9990583744824,0 -119.03222168131,45.9662745814382,0 -119.140250599579,45.9257086397924,0 -119.178742642589,45.922351608477,0 -119.302763509833,45.932662726596,0 -119.379441421397,45.9176100650698,0 -119.43886108987,45.9142685232279,0 -119.512220001301,45.8992005968695,0 -119.589294282545,45.9133149491969,0 -119.622116728299,45.8994103389685,0 -119.678445663881,45.8525390300795,0 -119.833555881044,45.8416093443199,0 -119.869735634541,45.8316985251524,0 -119.994320160406,45.8111403450749,0 -120.06864786541,45.780202445303,0 -120.155907860861,45.7612616683351,0 -120.207445390097,45.7197840646162,0 -120.283634874867,45.71658287339311,0 -120.443383762852,45.6892797229393,0 -120.499156501925,45.6956306780396,0 -120.570082462284,45.7409179414327,0 -120.623757205266,45.7436105722949,0 -120.658403368137,45.73261248754,0 -120.696993903513,45.7105098195153,0 -120.861419667766,45.6651862544925,0 -120.907937250867,45.63547710694449,0 -120.948572830946,45.650315967172,0 -120.968478511648,45.6451545411606,0 -121.03348258367,45.652844415437,0 -121.073529928592,45.6466107733405,0 -121.125204665552,45.6070590988379,0 -121.174316011579,45.6005161602332,0 -121.192054666449,45.6132419265196,0 -121.203308118047,45.65728693477031,0 -121.214271714275,45.6656449638228,0 -121.276390902266,45.67833997203109,0 -121.319977744287,45.6966428366174,0 -121.367814251197,45.6996865954037,0 -121.422029028765,45.69060318812019,0 -121.442552169491,45.6949670880414,0 -121.529054611543,45.7195676794317,0 -121.706416861345,45.6887931706508,0 -121.758694096887,45.6897160514309,0 -121.81104103467,45.70068308952361,0 -121.888283498804,45.6768563701943,0 -121.926820689078,45.64202837395181,0 -121.972659451544,45.63577608415601,0 -122.000011553714,45.6178242910982,0 -122.082037518263,45.59050401243609,0 -122.244922293538,45.5481128647605,0 -122.303150328761,45.54309283450319,0 -122.356457483648,45.56617124306739,0 -122.437154197887,45.5647789119432,0 -122.565429806458,45.5948187685695,0 -122.651209200341,45.6068304566963,0 -122.696323093542,45.6310455505125,0 -122.760541289247,45.6493974102277,0 -122.772551033013,45.7276855424654,0 -122.764288518601,45.7605680280893,0 -122.788009565757,45.80034359183911,0 -122.784515918404,45.85044951848901,0 -122.784073650236,45.867886451725,0 -122.80622291556,45.90407242954801,0 -122.807741767287,45.9438901212784,0 -122.875417724143,46.0271833271028,0 -122.899757285914,46.0793296870295,0 -122.974169260528,46.11048344369091,0 -123.050596211575,46.1557362282158,0 -123.118554158558,46.1793104942643,0 -123.176196406189,46.18358645541681,0 -123.212437026773,46.1700060595961,0 -123.2487994158,46.1440203375679,0 -123.304717085176,46.1447375703216,0 -123.363556869282,46.1441540217556,0 -123.517029327465,46.2360915816934,0 -123.670246414445,46.1744984869019,0 -123.717160979572,46.1698937903229,0 -123.761414136743,46.20993937364921,0 -123.820978312563,46.1936496044227,0 -123.777083420864,46.1444302589353,0 -123.79409646853,46.1114485870021,0 -123.977340685096,46.2027060092254,0 -123.921187205303,46.0123233522242,0 -123.99650569635,45.941921948877,0 -123.956273973105,45.8710413769648,0 -123.976629080128,45.77548238687779,0 -123.936075916583,45.7028352141538,0 -123.953415554061,45.56852871598869,0 -123.859507215328,45.4990826750735,0 -123.892107877309,45.47405016149519,0 -123.936674662283,45.5079659141045,0 -123.980559908989,45.4850845032037,0 -123.956606852952,45.2929657161069,0 -124.007572643304,45.0361029238999,0 -124.075568095063,44.8147385261456,0 -124.054404868681,44.6621389771171,0 -124.118319319116,44.269515003332,0 -124.158325577179,43.8571182351837,0 -124.226004804165,43.6050048583583,0 -124.273993988679,43.4591053966655,0 -124.406076259743,43.3001978559795,0 -124.386772400864,43.2615889154952,0 -124.48534658488,42.9554539412089,0 -124.55961690573,42.8324573979919,0 -124.401078665635,42.6226992449568,0 -124.391763163986,42.5530276648599,0 -124.43781879263,42.4296087430031,0 -124.41506199748,42.2458945392605,0 -124.352246780966,42.0986772615023,0 -124.206444444404,41.9976479131656,0 -123.819146438568,41.9929487728793,0 -123.513204633148,41.9978329178357,0 -123.222102653242,42.0021917751363,0 -122.284705082491,42.0007645525751,0 -121.441508911406,41.9943345308753,0 + + + + + + + + Pennsylvania + empty + + +states.AREA: + 45360.118 + + +states.STATE_NAME: +Pennsylvania + + +states.STATE_FIPS: +42 + + +states.SUB_REGION: +Mid Atl + + +states.STATE_ABBR: +PA + + +states.POP2000: + 12281054 + + +states.POP2001: + 12295580 + + +states.POP00_SQMI: + 271 + + +states.DEN_0_100: + 76 + + +USStates.ID: + 2 + + +USStates.State_Name: +Pennsylvania + + +USStates.Date_Entered: +Dec. 12 1787 + + +USStates.Year_Entered: +1787 + + +USStates.Year_Settled: +1682 + +]]> + #Style_5 + + + -77.80284541879691,40.8748890585198,0 + + + + + + -77.4757933985606,39.7196232012639,0 -77.46443302065821,39.7200734721353,0 -77.2210508745187,39.7206793349451,0 -76.99681222135089,39.7208916577077,0 -76.79049160379709,39.7212561436081,0 -76.56983441657761,39.7202653698966,0 -76.23312186464131,39.7218535861041,0 -76.1392231665553,39.7222292808326,0 -75.7910945763195,39.7238660373362,0 -75.77492719598079,39.7245527846646,0 -75.7455920038355,39.7749293983367,0 -75.6947708516454,39.8204574523468,0 -75.6439943147472,39.8383065472094,0 -75.58344324964349,39.8401190417149,0 -75.4699861133481,39.8265474993808,0 -75.42046794786501,39.7989830990632,0 -75.3459322944925,39.8485165819253,0 -75.2537404363575,39.8455377977782,0 -75.24699556467731,39.8504053640948,0 -75.18560547799029,39.8774058180612,0 -75.14290121504629,39.8816020366923,0 -75.13580547674989,39.896887437334,0 -75.1471586589936,39.9347404217525,0 -75.1398645870707,39.9559194804779,0 -75.1109630715591,39.9766903310886,0 -75.0845869855288,39.9757328153928,0 -75.068045752986,39.9853915213067,0 -75.0456754051916,40.0076347106729,0 -74.9834853663626,40.0340738445933,0 -74.9562015034126,40.0580144791932,0 -74.8719241363401,40.0780565429363,0 -74.82902245973639,40.1161609854809,0 -74.74629414856111,40.1243586916003,0 -74.72548046618491,40.1493066691812,0 -74.7388247265733,40.1777256441007,0 -74.8427630831946,40.2484527598366,0 -74.88065957300969,40.2995916131031,0 -74.9211500156386,40.3140337315445,0 -74.93250296210471,40.3337744130392,0 -74.95018846398411,40.3454738484253,0 -74.97284102604201,40.4044479567097,0 -75.00047552385639,40.4086211095812,0 -75.02126612533969,40.4013236035019,0 -75.0574533454579,40.4201714565405,0 -75.07011862395299,40.4562539259114,0 -75.0636796381505,40.5210034591816,0 -75.0797859423332,40.5453559585684,0 -75.1245260580076,40.5647988294484,0 -75.1822820039866,40.5567991566105,0 -75.19757183103521,40.570684304811,0 -75.1935130035322,40.5837685125831,0 -75.20038753873099,40.6147432578734,0 -75.1979386117749,40.6342055156311,0 -75.2089177365681,40.6507380422203,0 -75.1840607041906,40.6697922959704,0 -75.20535502856001,40.6860615374668,0 -75.18775390484051,40.7238570177578,0 -75.1936441590094,40.7480035802995,0 -75.1703132780782,40.7748092438347,0 -75.13031892785111,40.7727077092163,0 -75.1005408698709,40.7916591517333,0 -75.0892112792862,40.8213906687984,0 -75.0995419880564,40.8392851002474,0 -75.0546190233306,40.8556733594649,0 -75.0564884580085,40.8720458535526,0 -75.0736857645488,40.884626384264,0 -75.0797362757265,40.9033486382513,0 -75.1355249350063,40.9629365183948,0 -75.1393018121957,40.9775274861343,0 -75.1166191635571,41.0002479024639,0 -75.0699790173252,41.0107160473555,0 -75.03525634669791,41.0282029114312,0 -75.00115157189779,41.0624855771134,0 -74.9662915599138,41.0826765927628,0 -74.98888296567171,41.0817609886453,0 -74.9845949956578,41.0993808071368,0 -74.9499944822667,41.1118548355739,0 -74.91476830628049,41.1411056945383,0 -74.8628866488672,41.2067713675358,0 -74.8664114931874,41.2268173199683,0 -74.8251959144138,41.2827060427999,0 -74.7941432935133,41.2952145361236,0 -74.7916634911863,41.3119646486324,0 -74.700062439729,41.3505731173044,0 -74.7052732398395,41.3750593363948,0 -74.7404375695009,41.4016358612695,0 -74.7400406430903,41.4220594630718,0 -74.7548266211957,41.4301464096857,0 -74.792799015071,41.4299171588691,0 -74.8640666499364,41.4471548184687,0 -74.8952792585073,41.4446711797979,0 -74.8985597400598,41.4618942446762,0 -74.9325644004893,41.484350685956,0 -74.9717879994631,41.4836026231296,0 -75.0148868316079,41.5395558959306,0 -75.0250873678455,41.565800906359,0 -75.0698653499134,41.6044779552895,0 -75.0724517137798,41.6130800694112,0 -75.0513249551697,41.6373147729593,0 -75.065400870215,41.7148368016377,0 -75.0569699647963,41.7267080970937,0 -75.0613185051632,41.7702603750835,0 -75.0971549734922,41.7790417898653,0 -75.09682675506321,41.7972073179534,0 -75.07984301881911,41.8141483463494,0 -75.11777744299,41.8369868194197,0 -75.1247508265953,41.8491823474776,0 -75.148280568261,41.8557893317759,0 -75.1712837916533,41.8678398536526,0 -75.25451546272871,41.8688733616359,0 -75.2836900262962,41.9476038545852,0 -75.3240658004094,41.9612749921534,0 -75.3456570669365,41.9928449489974,0 -75.38281319593381,41.9983566083877,0 -75.47973225649039,41.9963677005791,0 -76.1048345309617,41.9994987458506,0 -76.1450203202792,42.0006545080767,0 -76.5639147893755,42.0030114109064,0 -76.92839533835389,42.0025345979743,0 -76.96857370314299,42.0029809748211,0 -77.6128475772834,41.9988295851283,0 -77.745007937534,41.9973331826449,0 -78.2042620524614,41.9982004349665,0 -78.3050882311977,41.999420608423,0 -78.9185382675857,41.999846787447,0 -79.0594888967335,42.0011576593905,0 -79.6123674903386,42.0005849142235,0 -79.76165964707261,42.0031057341519,0 -79.7632349654056,42.2673270883975,0 -80.5205925694563,41.9868721098151,0 -80.5226439573086,41.8507747576586,0 -80.52392556258459,41.4951021493305,0 -80.51999623496189,41.4892885705201,0 -80.5229326934644,41.1296278146841,0 -80.52092443011161,40.8972705158399,0 -80.520306111211,40.8541688223624,0 -80.52199952847749,40.6372031779131,0 -80.52435768303791,40.4787848369009,0 -80.5235645344163,40.403033850236,0 -80.52604519018939,40.1625211281631,0 -80.52496218534981,40.0228253262192,0 -80.5246506803543,39.9584195634812,0 -80.5242694740401,39.7212089909504,0 -80.4290823326108,39.7198426041628,0 -79.9182684921867,39.7216669674993,0 -79.7651323185042,39.7218070815944,0 -79.480971113096,39.720274058077,0 -79.39661009295681,39.7193136035322,0 -78.9301730523848,39.7223369261357,0 -78.81775834663399,39.7231158128337,0 -78.384783030143,39.7237485696748,0 -78.3345500729087,39.7240962157241,0 -78.0959483136605,39.7254610687401,0 -77.4757933985606,39.7196232012639,0 + + + + + + + + Rhode Island + empty + + +states.AREA: + 1044.881 + + +states.STATE_NAME: +Rhode Island + + +states.STATE_FIPS: +44 + + +states.SUB_REGION: +N Eng + + +states.STATE_ABBR: +RI + + +states.POP2000: + 1048319 + + +states.POP2001: + 1060126 + + +states.POP00_SQMI: + 1003 + + +states.DEN_0_100: + 11 + + +USStates.ID: + 13 + + +USStates.State_Name: +Rhode Island + + +USStates.Date_Entered: +May 29 1790 + + +USStates.Year_Entered: +1790 + + +USStates.Year_Settled: +1636 + +]]> + #Style_5 + + + -71.5610444257682,41.6817724921721,0 + + + + + + + -71.7901942031214,41.6013068793249,0 -71.80274343080561,41.4158290540058,0 -71.8459956537022,41.4038545416488,0 -71.8368696812943,41.3419614666217,0 -71.8477722040922,41.3253484832964,0 -71.86667844289499,41.3227696452715,0 -71.7222643227053,41.3272643121839,0 -71.4898880400565,41.3920853196251,0 -71.427318519639,41.4866893796323,0 -71.4192468515383,41.652212232924,0 -71.3690125475302,41.703291101903,0 -71.39358059765451,41.7611558353253,0 -71.3673874451962,41.7413502009833,0 -71.28400165201541,41.6795489704362,0 -71.22897615917781,41.7076939683673,0 -71.2666285816007,41.7497430522047,0 -71.31932779027051,41.7721958646078,0 -71.33979862314,41.7844255626959,0 -71.34548316624701,41.8131613833437,0 -71.3345427095385,41.8579036075383,0 -71.34249312021549,41.8757828914979,0 -71.333085950288,41.8960311596525,0 -71.38395315470341,41.8884397544727,0 -71.3824052822434,41.9792630768653,0 -71.3786442228911,42.0137133195162,0 -71.4974303691298,42.0092535031422,0 -71.7978316087619,42.0042748046851,0 -71.78824886219491,41.7216033953237,0 -71.792605218292,41.6417579304637,0 -71.7901942031214,41.6013068793249,0 + + + + + + + + + -71.1988086806704,41.6785003452843,0 -71.19993716526071,41.4633184834306,0 -71.1171327154705,41.4930619563068,0 -71.1412126344661,41.6552730544524,0 -71.1988086806704,41.6785003452843,0 + + + + + + + + + -71.26916945491151,41.6212683171833,0 -71.34952503325521,41.4458577414548,0 -71.2880071528611,41.4836193369166,0 -71.23867323404551,41.4748497781272,0 -71.219446800556,41.635642312712,0 -71.26916945491151,41.6212683171833,0 + + + + + + + + + South Carolina + empty + + +states.AREA: + 30867.398 + + +states.STATE_NAME: +South Carolina + + +states.STATE_FIPS: +45 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +SC + + +states.POP2000: + 4012012 + + +states.POP2001: + 4077608 + + +states.POP00_SQMI: + 130 + + +states.DEN_0_100: + 88 + + +USStates.ID: + 8 + + +USStates.State_Name: +South Carolina + + +USStates.Date_Entered: +May 23 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1670 + +]]> + #Style_5 + + + -80.9010200865815,33.9187422703577,0 + + + + + + + -81.7595935205582,33.1953809754874,0 -81.76340826403511,33.1698348857377,0 -81.740374666284,33.1446970762157,0 -81.7042792512713,33.1229388681766,0 -81.610962223749,33.087875452303,0 -81.59582519226061,33.07079003117,0 -81.56003498198071,33.0608149350319,0 -81.54765985031411,33.0436837254085,0 -81.5296007135576,33.0439278437875,0 -81.50874915476361,33.0127933490709,0 -81.49273484682441,33.0048133137248,0 -81.4978997781492,32.9596759183359,0 -81.509839970123,32.9554188973732,0 -81.5102366685686,32.9472214740899,0 -81.47704813306041,32.8975717263241,0 -81.4650317117614,32.8977282069894,0 -81.4832049987009,32.876092075685,0 -81.4585388413489,32.8714003875851,0 -81.4553190013329,32.8445766582975,0 -81.4323312938326,32.8416816085137,0 -81.4239616394502,32.831771535068,0 -81.4303092863297,32.8203050210012,0 -81.4208333313248,32.8094947304519,0 -81.4302403174263,32.7861535714108,0 -81.41607199831719,32.7567284399427,0 -81.4230377099309,32.7498126483616,0 -81.4076260787666,32.7418061601564,0 -81.4205354721022,32.7015669413645,0 -81.4071915250438,32.6867019963945,0 -81.3994783141749,32.6508153349079,0 -81.41210528286091,32.6256090136088,0 -81.3849063649096,32.5958830263814,0 -81.3662676134818,32.5883649179497,0 -81.36670254638879,32.5819794584472,0 -81.3514893657912,32.5835283490035,0 -81.3404038613665,32.5713602924434,0 -81.298983534041,32.567287009571,0 -81.2743023822226,32.5548140176008,0 -81.26798547886391,32.5339298482675,0 -81.23623978837119,32.520613973536,0 -81.19515724784431,32.4645607584348,0 -81.19992690502011,32.4203165559094,0 -81.17825274918771,32.3868294350367,0 -81.1791229158612,32.3717812943982,0 -81.15747907871371,32.3387404019195,0 -81.1418842567213,32.348467456337,0 -81.131890044888,32.3326183284591,0 -81.1240481751459,32.2766445515914,0 -81.1481731109993,32.2577131389355,0 -81.1476925517913,32.2244467846609,0 -81.1147177986615,32.1905932444351,0 -81.11911230742351,32.1176140300944,0 -81.10487575967311,32.1054460026813,0 -80.8929144216763,32.0681738057597,0 -80.78056151062511,32.2481238083211,0 -80.8218663898145,32.4007102648342,0 -80.86717706748961,32.5326950263867,0 -80.8305175056732,32.5162815805464,0 -80.7847865192432,32.505052086999,0 -80.79938185606611,32.4733077955364,0 -80.7419633539854,32.3602127098571,0 -80.67801448594059,32.2856655575355,0 -80.6260281028646,32.2728215099914,0 -80.4603924051366,32.3186854171277,0 -80.4427976569234,32.3735076541569,0 -80.4860719548133,32.4310310010487,0 -80.643557949165,32.4984607119708,0 -80.646411318821,32.5188798556612,0 -80.5388820475867,32.509865961027,0 -80.55039472026679,32.5578414282125,0 -80.4807072022539,32.5104341662154,0 -80.3998030228987,32.5049598760522,0 -80.4159926698028,32.6691608173312,0 -80.3908685404661,32.6554016082511,0 -80.3471740900825,32.5119554753402,0 -80.2906540711458,32.5040705242083,0 -80.21080292321901,32.5616008756391,0 -79.996617577777,32.6057873204983,0 -79.8963932808549,32.6774213766553,0 -79.89165509300059,32.7340299637097,0 -79.9479839110447,32.8107992428057,0 -79.9621193329391,32.9044100579085,0 -79.9302501550122,32.9142211471988,0 -79.9071411647255,32.8593897322583,0 -79.7998597618185,32.9299559811019,0 -79.90748591880571,32.7907075188098,0 -79.75232055781299,32.7942355699465,0 -79.60681206777061,32.8992437057638,0 -79.58764581861649,32.9251067078811,0 -79.617233758083,32.9809680557659,0 -79.5823576143392,33.0160128900269,0 -79.41061869513879,33.013868133398,0 -79.28787746034691,33.1046981970444,0 -79.2978339955968,33.1389615091697,0 -79.34875511220361,33.1549947700894,0 -79.2295625305206,33.1415057897189,0 -79.20191167318011,33.1836884836365,0 -79.2708459617929,33.2970378799416,0 -79.1581153144963,33.3424334672148,0 -79.1501499541409,33.3172563456719,0 -79.1208659857076,33.4307786153619,0 -79.0006955038877,33.5726293077796,0 -78.8548808347264,33.7163622029531,0 -78.58593108880341,33.8535316857414,0 -78.62259189772951,33.865708046154,0 -78.57945349610721,33.8821646134616,0 -78.6554531485329,33.9488449988485,0 -79.0742575899197,34.3047384944277,0 -79.4469133528043,34.6192221953644,0 -79.4557408419562,34.6342519700477,0 -79.6672823384891,34.8008202005653,0 -79.685738680014,34.8054127206548,0 -79.9197366317695,34.8080740704278,0 -80.3250654065352,34.8149167168925,0 -80.5613348947421,34.815379673307,0 -80.79985577870811,34.8162600736923,0 -80.785444630059,34.940788108541,0 -80.8399590540857,35.0021664433249,0 -80.8945103715547,35.0598808081622,0 -80.9275918870396,35.1013947091143,0 -81.0396852000525,35.0373453689435,0 -81.0653500212191,35.0666253067042,0 -81.02824058884551,35.1055509640026,0 -81.04883974027349,35.1321534001715,0 -81.04909901663881,35.1516727757939,0 -81.3226257414279,35.1638918108331,0 -81.36198018686321,35.1629867122026,0 -81.76518108877021,35.1825960728566,0 -81.87041657119239,35.1832378034331,0 -81.9712727030758,35.1884000260399,0 -82.2100104423684,35.1932410593964,0 -82.27816557714399,35.1951216082193,0 -82.3206088962679,35.1843038355905,0 -82.3507000333949,35.1927881586207,0 -82.3599623343986,35.1830646579415,0 -82.3712159851947,35.1828397610023,0 -82.38945068539501,35.2083565365976,0 -82.43776138231119,35.1696762171977,0 -82.4665859914405,35.1736172290209,0 -82.524479651378,35.1546774490548,0 -82.5698759075391,35.1496073738685,0 -82.65434412549401,35.1195740504075,0 -82.6859002249553,35.1215804311176,0 -82.6878846328013,35.0979182706584,0 -82.6972082635003,35.0913494747721,0 -82.7712011457841,35.0855376628965,0 -82.8875562556649,35.055473206413,0 -83.0071465788827,35.0242932065357,0 -83.1061569738507,35.000366708131,0 -83.1004503495987,34.9841622888642,0 -83.1155422841629,34.9546869901268,0 -83.12140170134001,34.9608933437966,0 -83.1273147785663,34.9543742120639,0 -83.1131011728063,34.9361251832685,0 -83.1256365359246,34.940790436291,0 -83.13756183146759,34.9304757693624,0 -83.1550259840766,34.9322800740411,0 -83.1583528037159,34.9176510672928,0 -83.1821802554349,34.9106474165588,0 -83.203513267742,34.8841701297206,0 -83.21942855420581,34.8891824860544,0 -83.2328036461865,34.8738209511595,0 -83.243073026274,34.8780818464701,0 -83.23568791389251,34.8623846921569,0 -83.25030657832789,34.8501663657462,0 -83.25042127245131,34.8397104674801,0 -83.26777101073991,34.8392299311095,0 -83.2701139291264,34.8150795057964,0 -83.3027537558249,34.8055316318054,0 -83.32269057154549,34.787244331982,0 -83.3234241306547,34.752233551772,0 -83.3503341394554,34.72738151575,0 -83.3506851506329,34.7096474786312,0 -83.3397900149061,34.6776926363039,0 -83.29889480454101,34.6629454181783,0 -83.23698727342099,34.6133215989917,0 -83.1648789222652,34.5989373632901,0 -83.1589505272632,34.5768318282397,0 -83.13736602628759,34.5678676740658,0 -83.1081211059023,34.5350165151609,0 -83.0790212167266,34.5189724434825,0 -83.0549948395099,34.4900615932447,0 -83.0079495911058,34.4708283883787,0 -82.9819628115439,34.4764970914664,0 -82.9050550411483,34.4779853553029,0 -82.8680428963264,34.4575429723072,0 -82.844092601526,34.4126753526629,0 -82.8364394858077,34.3710462423795,0 -82.80858305350149,34.3398998890232,0 -82.78287043804779,34.2905157146731,0 -82.76416996771751,34.2809601537556,0 -82.7580279876581,34.2333729594522,0 -82.74259356012441,34.2055536194311,0 -82.73578078298991,34.1697961502507,0 -82.66035530356881,34.1083560439036,0 -82.6029437979289,34.0346366848087,0 -82.5961385808407,34.0134202383713,0 -82.5736087006275,33.9689044112754,0 -82.576614784124,33.9592878315125,0 -82.51753847434971,33.931029734258,0 -82.4566308989782,33.8782248379062,0 -82.424525414299,33.8602546364245,0 -82.390596547794,33.8541402272832,0 -82.3657086388162,33.8360097346945,0 -82.3513115818956,33.8353919365428,0 -82.3111185523946,33.8039143524229,0 -82.3055105866775,33.7826480434626,0 -82.2662179171499,33.7615957491367,0 -82.2348981721706,33.6903395482787,0 -82.21420671543,33.6807345454544,0 -82.1921876394497,33.6238399454958,0 -82.1671320836866,33.6152152043502,0 -82.1389789104035,33.5939068648655,0 -82.1164029880357,33.5947766297079,0 -82.0656815446151,33.5738649217255,0 -82.0385431417392,33.5475058176817,0 -82.02014061005811,33.5387321304637,0 -81.99653471071351,33.5204905181363,0 -81.9809170141647,33.4907366765445,0 -81.93638328061149,33.4710196640405,0 -81.9166380824955,33.451332910189,0 -81.9272738095671,33.4361432282633,0 -81.91356363208369,33.4154417359506,0 -81.9403358095376,33.408163308089,0 -81.9258093500634,33.3765598081382,0 -81.9450663328463,33.3771470802287,0 -81.9367121514194,33.3504376050416,0 -81.9114125905005,33.3494956248163,0 -81.9120917492517,33.3321965848843,0 -81.893483278419,33.3352369460829,0 -81.87687401673379,33.3068376679828,0 -81.86554408069119,33.3156684726899,0 -81.8401072844714,33.3083447178855,0 -81.86071475702811,33.2970915898305,0 -81.826572899138,33.2694248257545,0 -81.8398406003094,33.2733079499958,0 -81.83679654832591,33.2606131041944,0 -81.85396307448509,33.2435008646337,0 -81.8107647427681,33.2264425091539,0 -81.8015635396811,33.2079267401357,0 -81.7798346609471,33.2173679140961,0 -81.7698781322982,33.2138814847346,0 -81.7595935205582,33.1953809754874,0 + + + + + + + + + -80.76780496320789,32.2586481788875,0 -80.81926682117491,32.1046981906837,0 -80.6666165553831,32.2201132440769,0 -80.7190834927722,32.2722047351394,0 -80.76780496320789,32.2586481788875,0 + + + + + + + + + South Dakota + empty + + +states.AREA: + 77195.055 + + +states.STATE_NAME: +South Dakota + + +states.STATE_FIPS: +46 + + +states.SUB_REGION: +W N Cen + + +states.STATE_ABBR: +SD + + +states.POP2000: + 754844 + + +states.POP2001: + 761023 + + +states.POP00_SQMI: + 10 + + +states.DEN_0_100: + 99 + + +USStates.ID: + 40 + + +USStates.State_Name: +South Dakota + + +USStates.Date_Entered: +Nov. 2 1889 + + +USStates.Year_Entered: +1889 + + +USStates.Year_Settled: +1859 + +]]> + #Style_5 + + + -100.235288914651,44.4333181443813,0 + + + + + + -102.788384569614,42.9953035756879,0 -102.086700926634,42.9898870255377,0 -101.231737199277,42.986842959129,0 -100.198142131775,42.9910950186342,0 -99.5327903284941,42.9923349632849,0 -99.2539717111969,42.9923894733936,0 -98.49765138471959,42.9917787984063,0 -98.45744405402161,42.9371607787996,0 -98.39120469509791,42.9201358627386,0 -98.31033957471961,42.881794760613,0 -98.16782662350252,42.839571032558,0 -98.14486904619621,42.8357947189847,0 -98.12311692331768,42.8202235933653,0 -98.12181986030079,42.8083601338589,0 -98.03314038302951,42.7691923357945,0 -97.9951447789843,42.766812278154,0 -97.96355840050168,42.7736899920002,0 -97.9294772231674,42.7923243687957,0 -97.8899410388902,42.8312716359345,0 -97.88865941868959,42.8558072875283,0 -97.8186429929595,42.8665874779999,0 -97.79702832835281,42.8495971363047,0 -97.77218644667239,42.8461639819758,0 -97.72524981688051,42.8580083761152,0 -97.68575200130461,42.8368370186066,0 -97.63497050078551,42.8612849600302,0 -97.5706541404348,42.8479907365578,0 -97.5061318942665,42.8601364739438,0 -97.4831590291241,42.8571570898554,0 -97.45726378408931,42.8504431026505,0 -97.38930603349222,42.8674331659047,0 -97.31141433937481,42.8617716796293,0 -97.2714575353654,42.8500146366722,0 -97.24318956492361,42.851826425825,0 -97.2244435756681,42.8412025319938,0 -97.21183172641902,42.81257352787,0 -97.1614227617155,42.7986194059191,0 -97.13046924564861,42.7739233575094,0 -97.0151396700717,42.7595420464778,0 -96.97959336609789,42.7583137573091,0 -96.97000293469461,42.752065431992,0 -96.9778689966012,42.727308194642,0 -96.97077348180611,42.7211474962424,0 -96.9082338249473,42.7316989698022,0 -96.81014011449622,42.704084462612,0 -96.8104375000235,42.6813412142201,0 -96.79934397881981,42.6700191686323,0 -96.72265874758661,42.6685919557678,0 -96.69906022203101,42.6577158497403,0 -96.694596777315,42.641163786393,0 -96.7152728921436,42.6219074766425,0 -96.714059707901,42.6123020324651,0 -96.6366723762755,42.5507317592446,0 -96.6292944799537,42.5226936780003,0 -96.60546730406971,42.5072362916062,0 -96.58475304897098,42.5182872197448,0 -96.54721557271041,42.5204993234568,0 -96.49470151052741,42.4884592175071,0 -96.4393947509647,42.4892408377156,0 -96.48024324420059,42.5171303049452,0 -96.48933750112329,42.5640279717967,0 -96.50094203466421,42.5738851852149,0 -96.4884981845359,42.5804806539459,0 -96.5128440201087,42.6297550903686,0 -96.5411650971666,42.6624053661285,0 -96.56303923913002,42.6685130300247,0 -96.6265407804251,42.70835472382,0 -96.640709192144,42.7486038180978,0 -96.63298055975349,42.7768356021372,0 -96.60087506115062,42.7995586266164,0 -96.5876454371957,42.8353813945249,0 -96.57312614067021,42.8343473823113,0 -96.5562111991181,42.8466606609486,0 -96.53751108901589,42.8969064560324,0 -96.54426346173439,42.9138663406581,0 -96.51493505198688,42.9523820814978,0 -96.5171478195164,42.9864580906085,0 -96.4990199957611,43.0120501064927,0 -96.52001038580228,43.051508664474,0 -96.47957324789761,43.0618840567811,0 -96.4620939419638,43.075582202376,0 -96.460804816306,43.0878728592997,0 -96.45150508806921,43.1263087732519,0 -96.4731145701049,43.2090821295544,0 -96.48724516897552,43.2179092697119,0 -96.55860577021591,43.2254892270262,0 -96.5669911071477,43.2396337909954,0 -96.55956777208898,43.2532633182258,0 -96.5707224965755,43.2636122914599,0 -96.5791308298904,43.2900740306766,0 -96.54056327347691,43.307659139748,0 -96.52289387443082,43.3569663195107,0 -96.52505354128429,43.3842252910413,0 -96.55770871701321,43.4007272259127,0 -96.58911295055751,43.4355391262275,0 -96.5837958978062,43.4819205535996,0 -96.59831542821901,43.4998490975791,0 -96.4604547078315,43.4997184756898,0 -96.45660233944199,43.8487418284865,0 -96.4573975061948,44.1990613946085,0 -96.4551061874746,44.5383431654349,0 -96.4567178119828,44.6288086832266,0 -96.45521726388,44.801347584114,0 -96.45607982498672,44.9719948297018,0 -96.45449660823299,45.2751954302209,0 -96.45760224516572,45.29885024157079,0 -96.47759206506849,45.32850936575391,0 -96.53254890239431,45.375132161552,0 -96.605084508902,45.39652440242141,0 -96.6931692082715,45.41063812193121,0 -96.73803233417799,45.45819529036351,0 -96.7692462014101,45.5174788689806,0 -96.8430871871886,45.5840902909474,0 -96.8549898493374,45.6091221067738,0 -96.83279582155808,45.6506868841235,0 -96.6573917688784,45.7389705623089,0 -96.6046107059596,45.80826424845279,0 -96.5879553105857,45.81785439182519,0 -96.56692152993792,45.9341104552974,0 -97.2333099148663,45.9365026737778,0 -97.97872180427929,45.9308221521123,0 -98.0147097100399,45.9314979679384,0 -98.7304369014178,45.938271038568,0 -99.0068328335466,45.939555550557,0 -99.7173457378766,45.9427610350303,0 -99.8757832426344,45.9435473182577,0 -100.514406747246,45.9403879984664,0 -102.002775042851,45.9425053768471,0 -102.94639700191,45.9416652376318,0 -102.994822935958,45.9411156292139,0 -104.048906344358,45.94299366714029,0 -104.049516843796,45.8830527625305,0 -104.043851417835,45.2128754685677,0 -104.043072277779,44.9978055394377,0 -104.059842395291,44.9973362616199,0 -104.059465130268,44.5743526100096,0 -104.061036140765,44.1818252843501,0 -104.059731381692,44.1458254687842,0 -104.059479420181,43.8529065675403,0 -104.057913943497,43.5037122621461,0 -104.059157507468,43.4791339417582,0 -104.056198856311,43.0030623563908,0 -103.501463853421,42.9986188303099,0 -103.005875236663,42.9993539301105,0 -102.788384569614,42.9953035756879,0 + + + + + + + + Tennessee + empty + + +states.AREA: + 42091.813 + + +states.STATE_NAME: +Tennessee + + +states.STATE_FIPS: +47 + + +states.SUB_REGION: +E S Cen + + +states.STATE_ABBR: +TN + + +states.POP2000: + 5689283 + + +states.POP2001: + 5773929 + + +states.POP00_SQMI: + 135 + + +states.DEN_0_100: + 88 + + +USStates.ID: + 16 + + +USStates.State_Name: +Tennessee + + +USStates.Date_Entered: +June 1 1796 + + +USStates.Year_Entered: +1796 + + +USStates.Year_Settled: +1769 + +]]> + #Style_5 + + + -86.33406700652679,35.8467078879312,0 + + + + + + -83.9546078411811,35.4555443092538,0 -83.9099126259032,35.4765642431448,0 -83.88112540362761,35.5106719867731,0 -83.8300980940741,35.519149329024,0 -83.77577472166,35.5526929432439,0 -83.6727662732265,35.5650623686071,0 -83.6137506282731,35.5718308753539,0 -83.56092262748621,35.5552687853695,0 -83.5056836752714,35.5596454175324,0 -83.4581731409302,35.5973733030352,0 -83.38697214372481,35.625313192169,0 -83.34290282423361,35.6533554944088,0 -83.2982915815667,35.6564233114235,0 -83.25899879194441,35.6911067450186,0 -83.25317743900131,35.7008036610277,0 -83.2437245319139,35.7183129960111,0 -83.1852205412256,35.7289833858793,0 -83.14353299786571,35.762781885683,0 -83.1180576454199,35.7639076045034,0 -83.0598287433232,35.7826768094939,0 -82.9868738379453,35.7740910698457,0 -82.9626197710807,35.7919519408503,0 -82.90668913774699,35.8723171942072,0 -82.91393874467821,35.9279697450405,0 -82.8958417812556,35.9484625785516,0 -82.85613712216021,35.9475285534576,0 -82.808535161382,35.9209751642818,0 -82.776308441769,35.9566773412235,0 -82.7734633268223,35.9876068957838,0 -82.7630949285561,35.999650015691,0 -82.6437553482122,36.0518290360149,0 -82.627908811062,36.0544461489244,0 -82.60426425649671,36.0430940692888,0 -82.59209423820271,36.0225560968714,0 -82.6056664709886,36.0036541966122,0 -82.59916490143139,35.9634057475641,0 -82.5540052334424,35.9562159294434,0 -82.50679391974769,35.9726503280575,0 -82.4750552128438,35.9932844245825,0 -82.4082829106663,36.075426604695,0 -82.373713428402,36.0988071608409,0 -82.31178368636429,36.1222605725301,0 -82.2621599370151,36.1204875660764,0 -82.2075845767752,36.1471275332235,0 -82.1539009606375,36.1397376377449,0 -82.1179256052358,36.0963748384003,0 -82.07760212353961,36.1002602555009,0 -82.02029495982831,36.1298343126582,0 -81.93295169915611,36.2634442248774,0 -81.9109940382706,36.2908752993263,0 -81.8304104053052,36.3347789811478,0 -81.7303246226996,36.329467183951,0 -81.70928987932049,36.3338502743492,0 -81.7402131763359,36.36198253433,0 -81.7409080103685,36.3919078496119,0 -81.6981148990988,36.4718999796584,0 -81.7026326964311,36.5194602645637,0 -81.669835031007,36.5897678106349,0 -81.6522721813828,36.6076738087692,0 -81.82889791679381,36.6115963662572,0 -81.9182941426859,36.613608797075,0 -81.9293033061132,36.5959506538262,0 -82.1541813077551,36.5951503366296,0 -82.2166613034295,36.5940723596186,0 -82.2968580172995,36.591800946144,0 -82.610838912091,36.5915455448388,0 -82.8498226210789,36.5910413307673,0 -82.98669718999391,36.5912897002248,0 -83.21092650566941,36.5880896531906,0 -83.2483883995918,36.5899354199083,0 -83.2750314351304,36.6004674572198,0 -83.4642098601591,36.5988401279562,0 -83.6751767779422,36.59870387507,0 -83.695608633552,36.5842494058307,0 -83.93559984653869,36.5912908042263,0 -84.0067465715187,36.5920881162625,0 -84.2544885948187,36.5954525757939,0 -84.2567774582751,36.5954983253834,0 -84.781870784101,36.6050761598833,0 -84.7910568723549,36.6054383594152,0 -84.9984611962111,36.6209826428203,0 -85.27249827730731,36.6256168039722,0 -85.3000946381889,36.6261009236939,0 -85.43737461759029,36.6181989810276,0 -85.78547638470199,36.62668526607,0 -85.9806106782448,36.633112657611,0 -86.19899252719389,36.6432906639691,0 -86.4154436379233,36.6509321366908,0 -86.5106681729942,36.6550742141329,0 -86.7705352136402,36.6521007800576,0 -87.06818400985961,36.6508112445931,0 -87.11270271488,36.6513077660911,0 -87.3466109435594,36.6492773804525,0 -87.6406553976253,36.6452169761114,0 -87.6935284355087,36.6444886692232,0 -87.8535374192374,36.6415224035434,0 -87.8707114200773,36.6694231918372,0 -88.0713410698433,36.6796832563404,0 -88.0410910767903,36.5827211925188,0 -88.0350796382961,36.5381999052039,0 -88.04276340428341,36.4965703400273,0 -88.4960256220043,36.4982076026975,0 -88.51268114387869,36.4995467004194,0 -88.81071857599009,36.4990458143214,0 -88.8263593294413,36.4999080492987,0 -88.83037252103129,36.4998546765866,0 -89.3466676017908,36.5026108089583,0 -89.41478465486919,36.5026793108435,0 -89.4485913110412,36.4564423473599,0 -89.4709078461365,36.4460169670384,0 -89.4920647554293,36.4655248350446,0 -89.4758977248385,36.4986089858186,0 -89.53327228843381,36.4981701441748,0 -89.51609800414001,36.4718722794559,0 -89.54525826945699,36.4410234483941,0 -89.52008048276861,36.4011227040991,0 -89.51940896703729,36.3559958746976,0 -89.54463245289639,36.3457879205654,0 -89.6057685745547,36.3548169544064,0 -89.6228741596169,36.3348474435652,0 -89.6068443100135,36.3081032648945,0 -89.5423129180961,36.2809319420685,0 -89.53545385006311,36.2646054281745,0 -89.5417253888929,36.2573462150993,0 -89.61815895506329,36.2409661142144,0 -89.6706661075896,36.2549618456545,0 -89.6946231434343,36.252203841158,0 -89.695737012858,36.2408629894403,0 -89.67686882352049,36.2209354567989,0 -89.6186393373327,36.1838116382208,0 -89.58953219289479,36.1520892518256,0 -89.5895015750109,36.1298614413181,0 -89.66746841817241,36.0993864640091,0 -89.6782489583147,36.0830408331631,0 -89.68892242543529,36.0258673598517,0 -89.7218363447502,35.9999509241088,0 -89.71321482606381,35.9663974567816,0 -89.66427092678561,35.9378944702657,0 -89.6454792006079,35.9138737361357,0 -89.64941603650951,35.8943619363869,0 -89.6647286073305,35.8857218407663,0 -89.71476351078169,35.9115011809885,0 -89.7380566602412,35.9150869770193,0 -89.7629902111739,35.8968873309185,0 -89.7663548523295,35.8841769773396,0 -89.757794357037,35.8714934051126,0 -89.7015183934478,35.8421131136063,0 -89.70090799570041,35.8275908326828,0 -89.7360192984694,35.807113985821,0 -89.7598771117723,35.817497369678,0 -89.79046432453561,35.8056299093077,0 -89.7999860359764,35.7743003646228,0 -89.8271246329774,35.7583474945228,0 -89.8599549641379,35.7482691273072,0 -89.9098681003284,35.7549139790981,0 -89.9511215579288,35.7343453953471,0 -89.95212103232031,35.7125639320478,0 -89.92982722280721,35.6763442141411,0 -89.89348727560559,35.6560505384628,0 -89.8652652485346,35.6733842535304,0 -89.8573304296374,35.6711412777364,0 -89.84928118822251,35.6453010408611,0 -89.8639224643906,35.6298250835587,0 -89.8775260946092,35.6334146146124,0 -89.9571336550073,35.6031836149856,0 -89.95811786552559,35.5786747060615,0 -89.92174743757781,35.5461398658448,0 -89.9312615752134,35.5293135817598,0 -89.94763474177211,35.5269828473763,0 -89.96235991331029,35.5323728966608,0 -89.9896739843436,35.5617568588755,0 -90.033140016861,35.5524950078149,0 -90.0409909024943,35.5429279718505,0 -90.04190641166632,35.5125217072751,0 -89.9996536673638,35.4455370247156,0 -90.0468735226389,35.4171869306731,0 -90.06038559986169,35.4134944197412,0 -90.07402733802461,35.4265900144844,0 -90.0749351519039,35.472426386111,0 -90.0823206223606,35.4782894580097,0 -90.10205086268928,35.4736509299937,0 -90.1373684773254,35.4426077096675,0 -90.172769972754,35.423801771155,0 -90.16790994055501,35.3843396369312,0 -90.14026019209219,35.3831303299536,0 -90.1325618654474,35.4076849496077,0 -90.11233571142539,35.4177745418272,0 -90.0852505380296,35.4183657399664,0 -90.0755685711721,35.4066128988494,0 -90.08722669387278,35.3815928956868,0 -90.10571329777039,35.3660674829239,0 -90.0987932747814,35.3456783695846,0 -90.10643821193109,35.3147724206286,0 -90.15708359885721,35.3063308609086,0 -90.16984033490409,35.2826536313127,0 -90.15221595869851,35.2641450857902,0 -90.1060339420871,35.2639351079375,0 -90.09019489682149,35.2544862571621,0 -90.06905343928681,35.2128267350657,0 -90.07339477195561,35.1919226486873,0 -90.0625227286411,35.1670054991279,0 -90.0646285866633,35.1474746627476,0 -90.08301595591442,35.1251401960811,0 -90.1438236047204,35.1366264117644,0 -90.16456841965839,35.1297030327121,0 -90.17843898741448,35.1087380390639,0 -90.16917671881551,35.077919742991,0 -90.1958038569539,35.0409907485114,0 -90.2919059359036,35.0485515081083,0 -90.3054483329108,35.0007887668604,0 -89.7172700655279,34.9992611903073,0 -89.64655874084551,35.0007332954087,0 -89.3423729736416,34.9998048697839,0 -89.1981347323638,35.0008837887335,0 -89.0061963915943,35.0002347214314,0 -88.8125482768171,35.0024385995065,0 -88.7850433913526,35.0031823096823,0 -88.3831462732763,35.0050415368605,0 -88.3517277419525,35.0038322749094,0 -88.1939935775637,35.0044536440488,0 -88.19496238143979,35.013543867744,0 -87.9860782705711,35.016033638512,0 -87.6078130632206,35.010546624408,0 -87.2227639290321,35.0073462053491,0 -87.2075884780608,35.0079603909194,0 -86.8334221243196,34.9982460560253,0 -86.7823722148413,34.9970753222994,0 -86.31305264552989,34.9952731531874,0 -86.3035004132153,34.9954638721614,0 -85.86956755804469,34.992384535053,0 -85.6089602162505,34.9901641616199,0 -85.4673839007084,34.9901237462044,0 -85.3599438878245,34.9899781417047,0 -85.2677172911793,34.9891498087636,0 -84.97279353781779,34.9926295267483,0 -84.96785715657791,34.9926829480827,0 -84.8004169251833,34.9928322796908,0 -84.7711343281899,34.9907572255424,0 -84.61868470932861,34.9887597674461,0 -84.3237734916339,34.989090556154,0 -84.2909595168732,35.210622280084,0 -84.22586311709139,35.2616828718238,0 -84.1796426644509,35.2410694819878,0 -84.10156069006141,35.2456337418504,0 -84.0426897213918,35.2726584543483,0 -84.03077168910571,35.2926057594707,0 -84.02911525821651,35.3253739821258,0 -84.00621731838029,35.3729437031099,0 -84.01255674537021,35.4077068120234,0 -83.9546078411811,35.4555443092538,0 + + + + + + + + Texas + empty + + +states.AREA: + 264435.873 + + +states.STATE_NAME: +Texas + + +states.STATE_FIPS: +48 + + +states.SUB_REGION: +W S Cen + + +states.STATE_ABBR: +TX + + +states.POP2000: + 20851820 + + +states.POP2001: + 21355648 + + +states.POP00_SQMI: + 79 + + +states.DEN_0_100: + 93 + + +USStates.ID: + 28 + + +USStates.State_Name: +Texas + + +USStates.Date_Entered: +Dec. 29 1845 + + +USStates.Year_Entered: +1845 + + +USStates.Year_Settled: +1682 + +]]> + #Style_5 + + + -99.35209639268049,31.4911603586956,0 + + + + + + + -105.998886788462,31.3939400532755,0 -105.770249888887,31.1709088557221,0 -105.603733779011,31.0865586055778,0 -105.554896847903,30.9984186198314,0 -105.409575297759,30.9026451075813,0 -105.390821398517,30.8532172879141,0 -105.314288579451,30.8166446407658,0 -105.288103873955,30.8320861368967,0 -105.258691517007,30.7977908877393,0 -105.214844038146,30.8122235644227,0 -105.061059930982,30.6880108106866,0 -104.99803900743,30.6844748196833,0 -104.98742571177,30.6414670328309,0 -104.891169172066,30.57070041737,0 -104.8534855959,30.3924114324589,0 -104.806959955043,30.3765961237763,0 -104.814444569323,30.3506186956335,0 -104.703097368089,30.2386416361776,0 -104.675240765519,30.1491204273314,0 -104.696977256685,30.0574625424375,0 -104.674852032393,29.9094488587845,0 -104.578041188337,29.8081070626151,0 -104.535729710531,29.6796427818002,0 -104.378073901927,29.550794562609,0 -104.205212134968,29.484228655677,0 -104.164858917236,29.4009054696296,0 -104.046105172216,29.3283134853617,0 -103.787463066664,29.2674577249596,0 -103.768229005879,29.2814382191825,0 -103.782625402505,29.2299947219666,0 -103.740319535336,29.2305480722655,0 -103.720779184638,29.1908323650897,0 -103.526696559056,29.1468485175655,0 -103.474531520355,29.0723381982261,0 -103.375903493966,29.0323145912752,0 -103.335970609727,29.0505449586515,0 -103.280800498472,28.986582581697,0 -103.267037226116,29.0076621436612,0 -103.153911459774,28.9788916377662,0 -102.988539685125,29.1910675704443,0 -102.866609489705,29.2292413619301,0 -102.908763863716,29.2694066686299,0 -102.883448659687,29.3535723996355,0 -102.822639900114,29.4120451183749,0 -102.805160372829,29.5303438337622,0 -102.676790491312,29.7444187937638,0 -102.638039455764,29.7325326198343,0 -102.576926007302,29.7784417359023,0 -102.552373669738,29.7496948486705,0 -102.503521154951,29.7856497327394,0 -102.385215376362,29.7681417980141,0 -102.36798040149,29.84548330596,0 -102.32475091159,29.8803092257321,0 -102.06440276136,29.7847688600544,0 -101.973724344483,29.8189713656394,0 -101.924627338118,29.7887011469021,0 -101.819498685539,29.8143248505936,0 -101.805604731495,29.7801996565594,0 -101.759491213846,29.7873677525572,0 -101.640064539983,29.7571633637573,0 -101.581881251252,29.7653539748678,0 -101.54434416232,29.8103225598584,0 -101.538735789529,29.7632221477057,0 -101.470855805519,29.7888951834932,0 -101.44881372174,29.7607917300542,0 -101.401663348137,29.7701115332373,0 -101.416487229422,29.7456408609946,0 -101.368786706054,29.6573728602722,0 -101.306247295965,29.6526439704618,0 -101.309313731437,29.5811248028441,0 -101.254968894261,29.6289641670434,0 -101.261811592181,29.5266920080284,0 -101.067737701075,29.4737763187657,0 -101.009431431376,29.3734824994166,0 -100.797357397044,29.242736284625,0 -100.768974533432,29.166807434011,0 -100.669132304446,29.0803127270354,0 -100.647584957274,28.9225956252143,0 -100.590148889683,28.8944694499509,0 -100.498264037925,28.6612437055942,0 -100.403526636741,28.58999176333471,0 -100.419884477811,28.5444513151021,0 -100.346151756506,28.5010724482254,0 -100.377120196208,28.4789132908516,0 -100.351918855023,28.3944470556125,0 -100.293238864271,28.3206276118098,0 -100.298266448713,28.2806220934998,0 -100.223808569714,28.2417272280185,0 -100.214416160267,28.2022063344331,0 -100.097262502277,28.1545554784828,0 -99.9936434835125,28.0037396210839,0 -99.9421891234519,27.9871619266799,0 -99.87506302163409,27.7979720547546,0 -99.81605543330491,27.780394853251,0 -99.71481792474481,27.6618491136167,0 -99.5495069890073,27.6129196537058,0 -99.52706143498681,27.5045797789624,0 -99.49081318260561,27.4910514590438,0 -99.5439078647283,27.3189538622377,0 -99.4655901429547,27.2701865593849,0 -99.4374750068324,27.1995024660583,0 -99.45538138266301,27.02895816072,0 -99.39303262279272,26.9958615454895,0 -99.3908350467963,26.946943736737,0 -99.28583699475381,26.8576787339843,0 -99.166128451557,26.5802207110304,0 -99.1689892572283,26.546061522653,0 -99.1017807615211,26.4886767225061,0 -99.10703648935828,26.4198691472919,0 -98.93957665579281,26.395650906325,0 -98.9092032001293,26.3606715040819,0 -98.82013643841999,26.3754137550411,0 -98.6782190476933,26.2424046870249,0 -98.60026833967811,26.26080290009291,0 -98.4888153488358,26.20189486402211,0 -98.45368891498261,26.2212616175586,0 -98.3848156511224,26.1563832689147,0 -98.34748407648098,26.1590326088229,0 -98.3282265328466,26.1120007731281,0 -98.2925660443962,26.1331622891806,0 -98.27164562872692,26.1212494310257,0 -98.2922376888539,26.0984591491757,0 -98.2009795725821,26.0557321449947,0 -98.0834982466193,26.0661133226933,0 -98.076631552846,26.0349824709946,0 -98.0403525736578,26.05975051536,0 -97.86770787691731,26.060496076676,0 -97.64824031176831,26.0238010583669,0 -97.613189147238,25.9623589352769,0 -97.5752010185558,25.9545294009988,0 -97.59035311096469,25.93358905995,0 -97.43460696534029,25.8455574212196,0 -97.38589888751351,25.8457216612063,0 -97.381246025134,25.9173794523292,0 -97.3046898126925,25.9390222061254,0 -97.30739881105831,25.9654823876793,0 -97.1724747739236,25.9549273692482,0 -97.21334788232899,26.0094252639667,0 -97.27657531882151,26.0026333041195,0 -97.253373235331,26.0686720122691,0 -97.3536197117772,26.1828026418389,0 -97.36895489793881,26.3594093860221,0 -97.421446845874,26.3854076588257,0 -97.47496824481961,26.4771508314201,0 -97.4261157816407,26.5185697635011,0 -97.45195800721,26.6013268690884,0 -97.4958376530227,26.7941173175194,0 -97.5583173258959,26.8463868636367,0 -97.5688317865217,26.9781886133612,0 -97.47926025139741,26.9968380423725,0 -97.50376733150851,27.0818686103316,0 -97.4274812696915,27.2654551025798,0 -97.5484245684469,27.2305300181157,0 -97.785017752344,27.2880402911338,0 -97.680279172266,27.2946930806235,0 -97.7503494379711,27.41998295344001,0 -97.60038270114281,27.3004551454618,0 -97.52865055517302,27.3444204003037,0 -97.50780849161589,27.4395317363744,0 -97.50070316236901,27.31998796117,0 -97.4125283681046,27.3213449992806,0 -97.3317271301908,27.5626365036553,0 -97.2500614178358,27.6891429260905,0 -97.3094801183865,27.7081729278505,0 -97.34777231556089,27.631751940673,0 -97.3994852497549,27.6334982918403,0 -97.3536318222789,27.6411127473255,0 -97.32028341001322,27.6909444328169,0 -97.34977916611901,27.7156375087417,0 -97.31806332761479,27.7125347515202,0 -97.3968304284502,27.771146058486,0 -97.3888121386094,27.8317301437746,0 -97.48008361430421,27.8205851258607,0 -97.4998059418148,27.843544507544,0 -97.52196970271932,27.8639272343414,0 -97.49695266683359,27.875769577501,0 -97.4796260008364,27.8532640938896,0 -97.34588886647171,27.8734803945651,0 -97.36131551744769,27.8402577581927,0 -97.2837543356676,27.871447851614,0 -97.21360863775901,27.831414891185,0 -97.247292773262,27.8226243834861,0 -97.19573263835041,27.8125254347352,0 -97.11489131329812,27.9156868650475,0 -97.0240708445034,28.0205324937316,0 -97.0266730261927,28.1080412994183,0 -97.1233456677049,28.0545599929136,0 -97.2364829550522,28.0408144571822,0 -97.2705637411735,28.026227534241,0 -97.2415031844307,28.0489470441677,0 -97.26055404702331,28.0650176013673,0 -97.15732764553079,28.1166719542078,0 -97.1682608968738,28.1597494288829,0 -97.1356831071198,28.16209906940311,0 -97.13210471600911,28.1307169703604,0 -97.02383542777901,28.200083644241,0 -97.0338830492678,28.1376877357,0 -96.97537228865649,28.1153365454804,0 -96.94133722044512,28.1870591366451,0 -96.97557119097891,28.2110370456823,0 -96.9129859808147,28.2570826042713,0 -96.9511713661577,28.1146461634749,0 -96.80395175524539,28.2117340429668,0 -96.77819434955541,28.2296358081918,0 -96.79359828581748,28.2716569135883,0 -96.7865329456052,28.3131424085737,0 -96.78849341263761,28.3527529951086,0 -96.85375652074021,28.4052778154343,0 -96.7756219578977,28.3919115743004,0 -96.75936312199468,28.4111923622987,0 -96.7885994327517,28.4465344336046,0 -96.8241380852668,28.4499199129354,0 -96.78735554254018,28.4777853740781,0 -96.7410292653767,28.4037386946306,0 -96.70407154978371,28.3961667887133,0 -96.7026224627333,28.340479673374,0 -96.66156794524581,28.3065470479745,0 -96.39097558609291,28.4343391365105,0 -96.4767541355929,28.4997330365345,0 -96.51875543375361,28.461106535662,0 -96.56344956637381,28.4699067019672,0 -96.48683274231161,28.5065001250736,0 -96.5669583702508,28.5743745840578,0 -96.61059981859901,28.559217321823,0 -96.60696006493581,28.623908697185,0 -96.66026772909071,28.679347884998,0 -96.64677072215611,28.7144133763303,0 -96.59175364451042,28.7176308540699,0 -96.5767387632856,28.6909612420408,0 -96.5724654190595,28.8084420119664,0 -96.57081055481881,28.6921132334215,0 -96.57065069493361,28.6365406498669,0 -96.511986586175,28.6498153227204,0 -96.51214706660439,28.6084558879438,0 -96.48352091748379,28.5983299965887,0 -96.45463494593901,28.6562061770284,0 -96.4374077744685,28.5972653712369,0 -96.49145593618438,28.5572205009388,0 -96.3756462595652,28.6103621446828,0 -96.4190354461777,28.6389373387445,0 -96.40364595833511,28.7197637757365,0 -96.4325088576923,28.6975195233914,0 -96.44992679444501,28.7553045499191,0 -96.42733588908899,28.7122837074932,0 -96.3929797404207,28.7262979792536,0 -96.39202648343499,28.6705234915587,0 -96.3644078276204,28.6182543536492,0 -96.32640475868951,28.6343609440377,0 -96.2706241672889,28.7092493537704,0 -96.286219499452,28.6619950140313,0 -96.21241845685462,28.686989060082,0 -96.15130480526069,28.762937961925,0 -96.2407017376168,28.6351307032347,0 -96.1577155429507,28.6115026697808,0 -96.2392754088593,28.597389673791,0 -96.2378336984528,28.5715957691863,0 -95.9839904637619,28.6534017453567,0 -95.9918879041054,28.5966948669979,0 -96.20682817950151,28.4886634867042,0 -95.702384532802,28.7192477688994,0 -95.956387443742,28.6229421712341,0 -95.93754933918578,28.6907206174074,0 -95.78659263162341,28.7391325634167,0 -95.6715524880469,28.7529411275506,0 -95.68326432879918,28.7272140994852,0 -95.526807295461,28.8034966858832,0 -95.2486180989702,28.9786376443803,0 -95.1975516120674,29.1054653592137,0 -95.1649880473308,29.1177902182052,0 -95.1607301284392,29.200271435455,0 -95.0665723369123,29.1961168125456,0 -94.9513347743744,29.3261575810117,0 -94.89898762873821,29.3090112320655,0 -94.89167182115079,29.3940648612642,0 -94.8155505841499,29.3711662202519,0 -94.8913361818901,29.399557852187,0 -94.917193668702,29.448054371758,0 -94.9136455345915,29.4203453053088,0 -94.95270941314649,29.4244668140235,0 -94.94395872879551,29.4649127898122,0 -94.98301490427208,29.4607585716531,0 -94.9113576255404,29.500563943061,0 -95.014327744272,29.5594945471536,0 -94.9895394805847,29.6799286340995,0 -95.0406046189096,29.7118061561835,0 -95.0884725306271,29.8042054500491,0 -94.93279015255001,29.6824361137282,0 -94.88736314892159,29.6687658980771,0 -94.82961479354709,29.7600810982356,0 -94.7359230458939,29.7932076306622,0 -94.700475733541,29.7547908848552,0 -94.7066170212868,29.6587417934681,0 -94.78828370369661,29.5387865888792,0 -94.56463023087891,29.579227539862,0 -94.53389063357039,29.5542136466136,0 -94.51100191502849,29.54537730386861,0 -94.4699853511928,29.5570096005195,0 -94.5014725492762,29.5177541844844,0 -94.57288529817171,29.5332829576669,0 -94.6821097599082,29.4753428732052,0 -94.7854441234656,29.3834950378891,0 -94.76674368431119,29.3642276698397,0 -94.6827121202049,29.4331383341323,0 -94.3771944609298,29.5521986283419,0 -94.35718211256631,29.5601289522835,0 -94.0655815212201,29.6742968900915,0 -93.8351251032903,29.6747919644726,0 -93.9519366253128,29.8185790610628,0 -93.8565002359247,29.9648149949583,0 -93.85744694552959,29.9908668928178,0 -93.76036751582601,30.0061764030649,0 -93.71264390010309,30.0607310199356,0 -93.71602374974782,30.0958787991307,0 -93.70854664486501,30.1149499108334,0 -93.6970869015193,30.1181389021031,0 -93.69880351731489,30.1414346905316,0 -93.68612303875779,30.1414613621588,0 -93.6833076816481,30.1484401694217,0 -93.6998258674993,30.1510169781729,0 -93.6963314287414,30.1758843689492,0 -93.7045256592734,30.1810684459083,0 -93.71500869987879,30.2205134179473,0 -93.70752396935821,30.2395787754494,0 -93.6993768807844,30.2975935292891,0 -93.72994140928799,30.3051219729382,0 -93.7593470787815,30.3410771727413,0 -93.75950766664521,30.3543502302936,0 -93.74800248894391,30.3676155313151,0 -93.7551137307405,30.3819930042287,0 -93.7427315855636,30.4090272375555,0 -93.7217050902489,30.4331831686188,0 -93.6967413311132,30.4428357517593,0 -93.70359329230058,30.4627158297037,0 -93.6981459876763,30.4702496513421,0 -93.7150231758618,30.4888310205347,0 -93.70744722226021,30.4964430039086,0 -93.71480998363299,30.5053160515853,0 -93.70563196785041,30.5230599502648,0 -93.73547935399731,30.5457197108965,0 -93.71805386498711,30.5683558276656,0 -93.7179855982276,30.5875818830799,0 -93.6935940747548,30.5990370562763,0 -93.6717582009901,30.598033475394,0 -93.69286961844639,30.6159971853325,0 -93.6847595364861,30.62362646596801,0 -93.6930532338358,30.6402433971316,0 -93.6781450325558,30.6398941531481,0 -93.6601628136184,30.6730608176726,0 -93.61778080972511,30.6870030300823,0 -93.61258556438951,30.7105301555471,0 -93.6179648833938,30.7327489593371,0 -93.6078251665993,30.7322109750573,0 -93.61862893538731,30.7459898029865,0 -93.5853487574266,30.772384673359,0 -93.5820450640059,30.8022395755774,0 -93.5508552163389,30.8285427515982,0 -93.55581440053979,30.8425404652408,0 -93.5666178980145,30.8453462320886,0 -93.55297612475269,30.8604804672822,0 -93.56101768200369,30.8720769365654,0 -93.56867012587068,30.886431356764,0 -93.56464927132871,30.9021283630613,0 -93.5466891601929,30.9055307409998,0 -93.5497943369345,30.9250805769799,0 -93.5301557030665,30.9271668885028,0 -93.5257915242765,30.9360147750055,0 -93.53236051643211,30.9609260649172,0 -93.53751052673201,30.95707912219491,0 -93.5488480918319,30.9703845889675,0 -93.57262960901809,30.9763719448991,0 -93.5611240812853,30.99188382509841,0 -93.571019691156,30.9974647272144,0 -93.5680671206996,31.0131177730676,0 -93.5651144950651,31.0182559489662,0 -93.54729164502071,31.0143343101026,0 -93.5073888583872,31.0390998146532,0 -93.52591374615082,31.0571716007113,0 -93.51717031814428,31.0748615453994,0 -93.5442784766347,31.0825635248279,0 -93.54329435054569,31.0949417830783,0 -93.560155897223,31.1007267939647,0 -93.5568523341309,31.1095326773987,0 -93.53526050690408,31.1162612988914,0 -93.52826420267931,31.1261142412602,0 -93.53767923010742,31.1326296405497,0 -93.5443630058743,31.1593545819132,0 -93.52850100567309,31.16313081887,0 -93.53719127433351,31.17652768282541,0 -93.5271048967346,31.1782631971006,0 -93.52909629329709,31.1859610191746,0 -93.55076452872321,31.19111664787181,0 -93.5771171728735,31.1723283005144,0 -93.59411608931301,31.1803867599593,0 -93.6030963428191,31.1992536873053,0 -93.590721311811,31.229873054352,0 -93.61117651049739,31.2423735819701,0 -93.61205418900251,31.2702180322556,0 -93.6166320369568,31.2759895241098,0 -93.6310062786126,31.274088104753,0 -93.6457698113848,31.290447047048,0 -93.65630632190602,31.2868557345123,0 -93.68176670818659,31.3128637606543,0 -93.6772195877398,31.3285702210106,0 -93.6350357193475,31.3740089507347,0 -93.6612511619287,31.3725768736666,0 -93.6641964541721,31.3985102835404,0 -93.687672937394,31.4063113595588,0 -93.6946236330265,31.41610345391331,0 -93.6963098944214,31.4279172119793,0 -93.6871849424459,31.4383118184741,0 -93.70210859382031,31.4464313212695,0 -93.6985991018577,31.4616380816002,0 -93.72696607966452,31.4596548516254,0 -93.7514269339373,31.4856800971189,0 -93.75061823711359,31.4907363154173,0 -93.71917654856812,31.4955823387378,0 -93.70597743151249,31.5207469124279,0 -93.7318419000288,31.5220556426776,0 -93.74772687918352,31.5378958623322,0 -93.7634896740234,31.5309019449363,0 -93.78031303899668,31.5339136421144,0 -93.81070199496421,31.5592406874184,0 -93.81650822499059,31.5772874839387,0 -93.83280517658469,31.5903601395257,0 -93.8357655763902,31.6153647157252,0 -93.81977388303059,31.6182675045639,0 -93.814913937485,31.6481413307007,0 -93.8066129278975,31.6539413361717,0 -93.81203005382371,31.6747403534088,0 -93.7924526022363,31.7115680299756,0 -93.8089554592767,31.7077383245665,0 -93.8151354745431,31.7125237592659,0 -93.8101762985126,31.7305247069651,0 -93.83134856148179,31.7534524078687,0 -93.82225394974822,31.7748083120293,0 -93.8345145984519,31.8021876362787,0 -93.8650100628645,31.8174424499476,0 -93.87759108418349,31.8502823749578,0 -93.88145152988172,31.8715888085537,0 -93.8927128271358,31.8702347315503,0 -93.8994496012559,31.8946233843507,0 -93.9236506911527,31.8927620881712,0 -93.9181114839259,31.9098704820605,0 -93.9359189554272,31.9096246079882,0 -93.97017571506122,31.923332670499,0 -93.977400745224,31.9463271084149,0 -94.00458470012971,31.9781086259495,0 -94.01007792557169,31.9893006514689,0 -94.0352556158215,31.9946792606335,0 -94.034954991874,32.1996091989861,0 -94.0354184994672,32.3893811626287,0 -94.04038263770489,32.6949577639329,0 -94.0417854266628,32.88248532849,0 -94.03893174127671,33.0234224077489,0 -94.0366915600887,33.2704528989066,0 -94.03611649002102,33.5560347014808,0 -94.06162268858441,33.5773354007315,0 -94.0868464522719,33.5840756635432,0 -94.0988935992895,33.5731199456262,0 -94.15536074810458,33.5672068241928,0 -94.15970992753351,33.5938939861439,0 -94.2055412868951,33.5852000838157,0 -94.21108015408862,33.5581084763103,0 -94.2355638087854,33.5616558979989,0 -94.22323450525521,33.5858408096426,0 -94.23743339566499,33.5925430254688,0 -94.2747420062796,33.5618574981634,0 -94.2722778801038,33.5847263352945,0 -94.2791827367037,33.5894525566594,0 -94.29901964868971,33.5799728047754,0 -94.3025824334982,33.5570543333588,0 -94.3289505742182,33.5732546607845,0 -94.37095896843239,33.5478024921997,0 -94.39546544841208,33.5604209193152,0 -94.3725080674424,33.572780843886,0 -94.3708297502542,33.5901604561683,0 -94.3793139265706,33.5934447272787,0 -94.39361925175989,33.5750768821217,0 -94.4067726989127,33.573604181729,0 -94.4286699913841,33.5972585244972,0 -94.4435324861232,33.5966212153736,0 -94.45175731380159,33.6044640316868,0 -94.43653636903311,33.6169611431123,0 -94.43611697644781,33.6365609097961,0 -94.4766912623089,33.6320818342933,0 -94.50081601724669,33.6231627285535,0 -94.51076509594741,33.6309253877013,0 -94.5252611988716,33.6211366353993,0 -94.51819645594929,33.6431245606389,0 -94.55040081551948,33.632809011294,0 -94.56235640260989,33.6356506902792,0 -94.5624022483444,33.6429443355883,0 -94.54213813675099,33.6483615972293,0 -94.54562499154091,33.6617357579767,0 -94.57666964564912,33.6522708940353,0 -94.58859470157501,33.6555626943339,0 -94.58536744514042,33.6622460583057,0 -94.5654161185401,33.6631276811661,0 -94.5609300134862,33.672027401142,0 -94.578714527779,33.6705850642858,0 -94.5853141750945,33.6790954380738,0 -94.60115305801639,33.6657208732496,0 -94.63194611400361,33.6840114940994,0 -94.63897287047551,33.6702175285534,0 -94.65874868980602,33.663850430669,0 -94.6696360986615,33.6661733181553,0 -94.6681636112439,33.671571088102,0 -94.6445348646206,33.6777628005194,0 -94.65568935572141,33.6924032061402,0 -94.66866725489341,33.6966486225785,0 -94.69119732857141,33.6903997057713,0 -94.7418652471894,33.7013771094591,0 -94.7546906224197,33.7078808674656,0 -94.74232301585609,33.719157166445,0 -94.762930719398,33.7169062835784,0 -94.74998307234321,33.7368149801429,0 -94.7833707776319,33.7337745678945,0 -94.782241592951,33.742376603757,0 -94.76438804719702,33.7529509233106,0 -94.7837218171255,33.7533704682922,0 -94.80343699443648,33.7396910082834,0 -94.81937555938541,33.7495136716343,0 -94.8580964984281,33.7494296047539,0 -94.8818557435802,33.7750719362582,0 -94.9140991208061,33.7897049819208,0 -94.90876604933241,33.8035866991384,0 -94.9184559016621,33.816304855563,0 -94.94062024969412,33.8159156370392,0 -94.94010923140679,33.8409324203509,0 -94.9601296578001,33.8481840346416,0 -94.96892682868412,33.8663228494762,0 -94.9895041088505,33.8562900729299,0 -95.0129958687657,33.8700533810898,0 -95.0375860361542,33.8665590741676,0 -95.04308708832051,33.884552938792,0 -95.06336665131251,33.8968018383347,0 -95.063702501233,33.9177558985992,0 -95.0838291836962,33.8885696946472,0 -95.0899405612146,33.8970230129184,0 -95.08249423367511,33.918560731634,0 -95.09558666926452,33.9218451265293,0 -95.11945200414949,33.9123884529818,0 -95.12690617519908,33.9172521426231,0 -95.12819579812822,33.9409756193022,0 -95.14854400728719,33.9436534386509,0 -95.2342706406141,33.9649694417437,0 -95.2515208198696,33.9365500995153,0 -95.2512228467789,33.9051287029656,0 -95.26384964793752,33.8979074295118,0 -95.27758309673119,33.9180449387556,0 -95.2866618452793,33.8870087194903,0 -95.30218796775361,33.8867301071625,0 -95.3364600240519,33.8972201452204,0 -95.33027212314218,33.8710248450986,0 -95.4518412564926,33.8658586121364,0 -95.46835947773379,33.8865378582277,0 -95.49909123242928,33.881822624598,0 -95.5131223838212,33.8978402854978,0 -95.5442741981764,33.8858464269672,0 -95.54773054262731,33.8932621235845,0 -95.52697025126849,33.8979201785035,0 -95.51981372505441,33.9067474752702,0 -95.5465557208432,33.9041378125257,0 -95.5630133970639,33.9361771034426,0 -95.60631201461909,33.944656465691,0 -95.6150707735962,33.9367942616433,0 -95.6132241254837,33.9203415546903,0 -95.63373271524731,33.9202077191712,0 -95.699950264818,33.8949267760162,0 -95.7471094802783,33.9034976338912,0 -95.76094194954548,33.8935411571276,0 -95.7644970987573,33.8791063735621,0 -95.7687615327479,33.8515033166903,0 -95.7957252595447,33.8647743475285,0 -95.82622079304791,33.8431258316945,0 -95.8468057390447,33.8411382296162,0 -95.93332795033651,33.8906288422977,0 -95.94332288009811,33.8900718041244,0 -95.959016632946,33.8651391176183,0 -95.9776482488988,33.8580513457492,0 -95.99446458602881,33.8754764816195,0 -96.0028724620981,33.8734890044101,0 -96.0020480603943,33.8570784239774,0 -96.0143238316783,33.8443070387318,0 -96.0270045674164,33.8561209977346,0 -96.04822986488121,33.8413774764797,0 -96.09177990185232,33.8446772338064,0 -96.10970158601782,33.8293577291253,0 -96.1492232448427,33.83569011079,0 -96.16946454166531,33.8290832377136,0 -96.18338837503551,33.8158923202814,0 -96.1809848937133,33.8085339108482,0 -96.15477738441462,33.824044081131,0 -96.1416772177066,33.8204201506892,0 -96.16157487608,33.7983297326873,0 -96.1690742422207,33.769456890815,0 -96.18728601066199,33.758684486151,0 -96.21280716638501,33.7567925567755,0 -96.27833836590121,33.7734894901909,0 -96.28994278991731,33.7620342928024,0 -96.3010507089615,33.7141533419418,0 -96.31653860767391,33.701904716619,0 -96.34785055840121,33.705631801563,0 -96.3710832530533,33.7404975591171,0 -96.41973038217169,33.7884284828286,0 -96.48764129273351,33.7782325064272,0 -96.50101614488641,33.7881925349614,0 -96.5108435468467,33.8157874455655,0 -96.56240472874201,33.8255225751035,0 -96.6014686489895,33.8430585200471,0 -96.61443925387489,33.8630013562452,0 -96.58476047125609,33.8962455118061,0 -96.66651194068848,33.9136443690811,0 -96.67797914648511,33.9044245192975,0 -96.6936574485524,33.8480065285136,0 -96.7119531575884,33.8339726711759,0 -96.7491017928465,33.8318404880575,0 -96.7978710251696,33.8700514781673,0 -96.81439693387631,33.8718710579623,0 -96.84428994427481,33.8581346758361,0 -96.86129653634301,33.8617814536899,0 -96.8792188051043,33.8841045463944,0 -96.88313308270391,33.9246919643211,0 -96.8987359278797,33.9501277640988,0 -96.92984981386039,33.9618729385895,0 -96.9364875549014,33.9479496295896,0 -96.9684711058252,33.9374213261378,0 -96.9881480778014,33.9443028760324,0 -96.9879951562104,33.876524993445,0 -97.00613836455501,33.8506162080499,0 -97.0258837487447,33.8406638868468,0 -97.0711884256134,33.8568301349417,0 -97.08246496741261,33.8512035820318,0 -97.0785356759137,33.8379135029825,0 -97.0503136942646,33.8235515468502,0 -97.087958150994,33.8076751203943,0 -97.0837540270329,33.7425178691231,0 -97.09078850752719,33.7317759436109,0 -97.1158518152657,33.7260387447849,0 -97.1527639551762,33.7287737567957,0 -97.1894548414756,33.7528743688857,0 -97.2086128811281,33.8197520263932,0 -97.19530685545391,33.8362616577426,0 -97.16888553387221,33.8478962336794,0 -97.1644603868134,33.8632500271984,0 -97.1880588051263,33.899305664185,0 -97.21162664947801,33.905790476719,0 -97.24635658905748,33.8943389990746,0 -97.25098012527539,33.8730725605007,0 -97.26420222924099,33.8588326323233,0 -97.27257189808169,33.8726758421186,0 -97.3143820721958,33.8959411317283,0 -97.31525189418009,33.8704938884378,0 -97.3421004874611,33.8620178329205,0 -97.36361607593869,33.8311271478817,0 -97.41041616291049,33.8208124550832,0 -97.45303509112971,33.8363150195283,0 -97.45736073930121,33.890532021605,0 -97.4630599713817,33.9024831837152,0 -97.47783082980909,33.9078083743386,0 -97.51850418970599,33.91687174991,0 -97.55488993784371,33.9040048081949,0 -97.57597058455282,33.9026313915672,0 -97.5926564722634,33.9179850917189,0 -97.6004841716436,33.9695357487998,0 -97.6713709731313,33.9887114388077,0 -97.7045675638129,33.9716446286772,0 -97.72932581317978,33.9393918135487,0 -97.75667040704261,33.932197269678,0 -97.79051555721509,33.8905567127498,0 -97.8528573913232,33.857170989043,0 -97.8700622202223,33.8552140577552,0 -97.90937762069478,33.8741230741104,0 -97.95504853378348,33.8835794315438,0 -97.97669367876701,33.9026028951239,0 -97.9764418443808,33.9121508879515,0 -97.95099692709511,33.9326163854516,0 -97.9633110473011,33.9487483818417,0 -97.94806700069491,33.9598489691416,0 -97.9505389343141,33.9712584919282,0 -97.982995159825,34.0013824361846,0 -98.0238062114244,33.9870813155941,0 -98.0558736752466,33.9898964139123,0 -98.08652197109261,34.0054103575962,0 -98.11100543330518,34.0699152608686,0 -98.09444127427528,34.1346491348156,0 -98.11518632903911,34.1490797537232,0 -98.137182702728,34.1385247073243,0 -98.1731642842845,34.1154615363479,0 -98.277324712945,34.1229647210219,0 -98.3208141218597,34.1395124845584,0 -98.35073026318848,34.1422132177566,0 -98.3845831608253,34.115873277508,0 -98.39128184930269,34.087324681805,0 -98.4074643999688,34.0825487630451,0 -98.4216707502906,34.0659246412843,0 -98.4485195081449,34.0544693031052,0 -98.4998521726901,34.066508171909,0 -98.5579143286446,34.1054284628805,0 -98.5766684370536,34.1420220197199,0 -98.6075838723519,34.1514897431627,0 -98.6263299881177,34.158527616426,0 -98.66205950085499,34.147129344828,0 -98.68255276049912,34.1500893803379,0 -98.70563225966779,34.1308063642615,0 -98.77887692432012,34.1320532580559,0 -98.8114099222656,34.146025924858,0 -98.8916893852997,34.1609098971274,0 -98.9528568855168,34.1946535863845,0 -98.99654461650539,34.2095837062186,0 -99.03556990100751,34.1990091275048,0 -99.07878412614019,34.2084460436583,0 -99.12830013933699,34.2015562705675,0 -99.17651178434171,34.2128165213261,0 -99.19084035753009,34.2238215675651,0 -99.20495561666171,34.2557306955242,0 -99.19666281278209,34.3052057476053,0 -99.20584919432768,34.3320754835343,0 -99.25446563782602,34.3682943923503,0 -99.26753552999141,34.3983645544,0 -99.32365897051331,34.4127869472387,0 -99.3645692443735,34.4502723758117,0 -99.3931570632619,34.429070725134,0 -99.3945224149831,34.3968223241289,0 -99.4103230107381,34.3691856116386,0 -99.43874320793192,34.3647833428937,0 -99.4798058594252,34.3836002544386,0 -99.5025040549412,34.4041453149585,0 -99.5542323165501,34.4152563856433,0 -99.5782194991147,34.4089886853491,0 -99.58558947886991,34.3849338835776,0 -99.601817403152,34.3686339710267,0 -99.6852769049209,34.3775206620374,0 -99.77806025861618,34.4440642714861,0 -99.83030837990161,34.501846255188,0 -99.86094928508588,34.5186945590413,0 -99.88097732527548,34.5482418940255,0 -99.93228692511291,34.5791733267958,0 -99.9451200138402,34.5796346298626,0 -99.9724799649576,34.5619266989846,0 -99.9964752628992,34.5623839445524,0 -99.9992599692516,34.7472433686446,0 -99.99645505791619,35.0310510336069,0 -99.9975702180927,35.1822350834532,0 -99.99474342059961,35.4246221647218,0 -100.000392481852,35.6188562203977,0 -99.9981231250644,35.8838375261918,0 -99.99755361874209,36.0575913818302,0 -100.001550693503,36.4925547831533,0 -100.007272948555,36.493912716666,0 -100.549839323196,36.4894790903428,0 -100.957341408628,36.4896376715563,0 -101.090102366885,36.4880502722289,0 -101.62075555527,36.4920314454728,0 -102.034658387679,36.4929809605896,0 -102.165673606983,36.4902341370994,0 -102.997400999016,36.4923701848871,0 -103.027286789536,36.4915918464103,0 -103.024047954518,36.0560618512093,0 -103.022612263713,35.742327299615,0 -103.02229404801,35.6236480179456,0 -103.026151164684,35.1772655150643,0 -103.025251273923,34.9647798759331,0 -103.022657024631,34.7453327558501,0 -103.029645833697,34.3078204763021,0 -103.033258497866,33.8261815911813,0 -103.038736452727,33.5658431867775,0 -103.043100992793,33.3778314740626,0 -103.049330863501,32.9536389141087,0 -103.060018185604,32.5155455179839,0 -103.055640531826,32.0851168230641,0 -103.058413767661,32.0020227787787,0 -103.332549418381,32.0042814747499,0 -103.729444279739,32.0062289025373,0 -103.981377077849,32.0060152222294,0 -104.019296949948,32.0074034895819,0 -104.85106805229,32.0032650272727,0 -104.922304814538,32.004382108736,0 -106.00324037618,32.0016580242852,0 -106.378387283311,32.0007470652221,0 -106.623625658904,32.0010887853062,0 -106.650061890884,31.9803297275266,0 -106.632605287073,31.97221998842531,0 -106.633748923526,31.9141010099202,0 -106.64407909206,31.8952054369513,0 -106.61612370633,31.8447405331725,0 -106.614986549809,31.8178343839605,0 -106.539514775671,31.7863052774039,0 -106.383581210566,31.73387271848,0 -106.21328556164,31.4782464382134,0 -105.998886788462,31.3939400532755,0 + + + + + + + + + -94.9136282621775,29.2578100398598,0 -95.1056216301692,29.097200689859,0 -94.7486000214909,29.3197268614603,0 -94.76757511948669,29.3426867459739,0 -94.9136282621775,29.2578100398598,0 + + + + + + + + + -96.3981329846783,28.3461287087049,0 -96.4228065972943,28.3917207565152,0 -96.46330511935079,28.3261156347832,0 -96.5323911551759,28.3185285307139,0 -96.73916908683449,28.1838232573772,0 -96.80410430551582,28.1724500303063,0 -96.8348893723486,28.0666156829267,0 -96.3981329846783,28.3461287087049,0 + + + + + + + + + -96.9402302798725,28.0462270302125,0 -96.9732659036783,28.0011489857445,0 -96.9496523808798,27.984822817519,0 -97.0246956229941,27.9146817066477,0 -97.04987231164419,27.8412581171011,0 -96.85406998557561,28.0496963225627,0 -96.8376894806861,28.102132800665,0 -96.87268627929731,28.1316953484598,0 -96.9402302798725,28.0462270302125,0 + + + + + + + + + -97.35938018577079,27.2840405219699,0 -97.22398277664181,27.5743234820277,0 -97.0538319312447,27.8307777532106,0 -97.11330369706262,27.8195211793271,0 -97.07556056160431,27.8115793410343,0 -97.1704476930157,27.7077710590242,0 -97.20384878985288,27.6123791179091,0 -97.258949516966,27.6520617389151,0 -97.24893903086139,27.5814491265614,0 -97.3357694916682,27.4411382648402,0 -97.3763559674414,27.2849654048289,0 -97.37964318959401,27.2107771788891,0 -97.35938018577079,27.2840405219699,0 + + + + + + + + + -97.3013873602593,26.6013653134077,0 -97.278803221449,26.54030732592871,0 -97.26750343475641,26.4792510973309,0 -97.2515039997564,26.419651853089,0 -97.2265626157341,26.3489005354442,0 -97.2091667971749,26.2508939353731,0 -97.1795864974542,26.0722765736308,0 -97.17204837189529,26.0780766616552,0 -97.1952427262928,26.2595930779644,0 -97.2323612890346,26.4184902532441,0 -97.29609239794908,26.60101247555321,0 -97.35828321012912,26.8029999986179,0 -97.38159323348002,26.9493542503129,0 -97.38718744567349,27.0975717971982,0 -97.37879623372501,27.2047730330479,0 -97.38905033290529,27.2019749640613,0 -97.40117263721351,27.1115540764165,0 -97.3955703997656,26.9223202268071,0 -97.38159189969601,26.8207110644821,0 -97.35828230324178,26.7069850574477,0 -97.3013873602593,26.6013653134077,0 + + + + + + + + + Utah + empty + + +states.AREA: + 84871.909 + + +states.STATE_NAME: +Utah + + +states.STATE_FIPS: +49 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +UT + + +states.POP2000: + 2233169 + + +states.POP2001: + 2282755 + + +states.POP00_SQMI: + 26 + + +states.DEN_0_100: + 98 + + +USStates.ID: + 45 + + +USStates.State_Name: +Utah + + +USStates.Date_Entered: +Jan. 4 1896 + + +USStates.Year_Entered: +1896 + + +USStates.Year_Settled: +1847 + +]]> + #Style_5 + + + -111.676053595522,39.3225122931614,0 + + + + + + -114.047272999176,38.1376524399918,0 -114.047260595159,37.5984784866001,0 -114.043939384154,36.9965379371421,0 -112.899983474169,36.9962268765574,0 -112.542521578828,36.9979944864436,0 -112.2372578615,36.9954921751891,0 -111.356163994142,37.0017097524257,0 -110.740062961138,37.002488042411,0 -110.484088956249,37.0039260237973,0 -110.452235819472,36.9917463039985,0 -109.997076712711,36.9920675592929,0 -109.048480115363,36.9966409005893,0 -109.045602480021,37.6308206068713,0 -109.043206408646,37.8874200608917,0 -109.043464000061,38.1529336954503,0 -109.055861120835,38.2449201643366,0 -109.053948502328,38.4946509132439,0 -109.051416838185,39.3609660838809,0 -109.053528662287,39.5181701484933,0 -109.052551712149,39.6573824204021,0 -109.051263150153,40.2105113710392,0 -109.046155726194,40.6652909436328,0 -109.048314704754,40.9984333935171,0 -110.002165480573,40.9975995171866,0 -110.06318573561,40.9978919528284,0 -111.05102250907,40.9965835985974,0 -111.051651122482,41.2584254005779,0 -111.051068773655,41.578592411864,0 -111.04869741386,41.9962033494069,0 -111.494586313343,42.0001709690538,0 -112.100514491537,42.0023005848578,0 -112.147116504391,41.9990540573659,0 -112.989575449033,42.0011467864027,0 -114.039072662345,41.9953908974688,0 -114.038151248682,40.9976868405942,0 -114.038108189376,40.1110466529553,0 -114.039844684228,39.9087788600022,0 -114.040105338584,39.5386849268843,0 -114.044267501155,38.678995881588,0 -114.045090206154,38.5710950539538,0 -114.047272999176,38.1376524399918,0 + + + + + + + + Vermont + empty + + +states.AREA: + 9603.272 + + +states.STATE_NAME: +Vermont + + +states.STATE_FIPS: +50 + + +states.SUB_REGION: +N Eng + + +states.STATE_ABBR: +VT + + +states.POP2000: + 608827 + + +states.POP2001: + 615035 + + +states.POP00_SQMI: + 63 + + +states.DEN_0_100: + 94 + + +USStates.ID: + 14 + + +USStates.State_Name: +Vermont + + +USStates.Date_Entered: +Mar. 4 1791 + + +USStates.Year_Entered: +1791 + + +USStates.Year_Settled: +1724 + +]]> + #Style_5 + + + -72.660656242184,44.072240587832,0 + + + + + + -73.2580598287651,42.7460586400616,0 -73.0196951738304,42.7403966786337,0 -72.92299742922531,42.7373644761782,0 -72.4557700038868,42.7258525290855,0 -72.4621713056893,42.7468405310802,0 -72.4793225257782,42.7615879021402,0 -72.50726952905301,42.7687326904009,0 -72.5130680088012,42.7892594013534,0 -72.538916970841,42.8077338159119,0 -72.5534284639708,42.8606431711067,0 -72.5248100213574,42.9126141761107,0 -72.5202170578448,42.9516725271887,0 -72.5042636319545,42.9655846501003,0 -72.47334119749689,42.9761435837691,0 -72.4571590376321,42.9996036974292,0 -72.4617520870041,43.0465044640798,0 -72.44346425788849,43.0790393128299,0 -72.43760490206709,43.1162700005073,0 -72.45239855285131,43.1560221784817,0 -72.4355986440693,43.2322535514022,0 -72.4024188454007,43.3073827061473,0 -72.4102315830492,43.3234041461301,0 -72.39762805437751,43.3510068532964,0 -72.4121395531363,43.3771255999362,0 -72.3962478080997,43.4101565518931,0 -72.3825156946813,43.4846296935804,0 -72.39499776821209,43.5175538931662,0 -72.3734983899537,43.5723746289271,0 -72.33308519415699,43.5973647921877,0 -72.3040399378543,43.6985301192071,0 -72.2600555952028,43.7353001230663,0 -72.21912292133609,43.750692528435,0 -72.2060918209679,43.7646350589211,0 -72.1848363730122,43.8016904606597,0 -72.1700895247441,43.8789176964689,0 -72.1216496397887,43.9092173247049,0 -72.1132040793555,43.9391659598857,0 -72.0917117306645,43.9579911279463,0 -72.1128078470404,43.9765149671875,0 -72.109908766997,43.9892291134731,0 -72.0852043813774,44.008923986175,0 -72.07691904412221,44.0320405986226,0 -72.0347283650036,44.0833740182688,0 -72.0324473746587,44.0960996192238,0 -72.0495148341974,44.1004520944909,0 -72.0349198523751,44.1207459288224,0 -72.0447245537617,44.1564355666157,0 -72.05928224606249,44.1821766291115,0 -72.0443903804218,44.2343798441303,0 -72.0595660047421,44.2614940911529,0 -72.03549537537759,44.2994343131496,0 -71.99443351087029,44.3275482023457,0 -71.93890565797921,44.3257860034123,0 -71.928361752714,44.3361121851128,0 -71.83481598035139,44.3441994129001,0 -71.8211973083551,44.3503600453545,0 -71.7977291908463,44.384172813001,0 -71.7665702593918,44.3982488046656,0 -71.67688436321281,44.4213427403398,0 -71.6563990024127,44.4401373612429,0 -71.64770916138809,44.4691741459763,0 -71.6365547217831,44.4767309013867,0 -71.6142227691162,44.474507042735,0 -71.58661898076009,44.4945375694188,0 -71.5752435447921,44.525805689154,0 -71.59144138862121,44.5388744007981,0 -71.59228841131031,44.5512031068487,0 -71.5367908177937,44.5789312630586,0 -71.5541026351831,44.5965889130359,0 -71.5680271516494,44.6374468081647,0 -71.588749347522,44.6505994869908,0 -71.6076787297884,44.6778622938609,0 -71.6311328527305,44.7417107606939,0 -71.58350120905909,44.7791969958657,0 -71.575100912366,44.816019797627,0 -71.50636496059011,44.8996711859758,0 -71.5169776077169,44.9436961331563,0 -71.54092709673419,44.976563206227,0 -71.50537230062881,45.01335171632249,0 -71.9018687560565,45.00733987375971,0 -72.547231170846,45.0053701041523,0 -73.1885457846919,45.0084861445144,0 -73.3447234868807,45.0061387945904,0 -73.3507583871195,44.9819729513451,0 -73.3364146788922,44.9326039308497,0 -73.3823067594393,44.8479336187606,0 -73.36905412807261,44.8191179021751,0 -73.3267863194035,44.799293570954,0 -73.373158575022,44.724236436747,0 -73.3581509561494,44.680368564481,0 -73.3730971364166,44.6612763562517,0 -73.3701366913554,44.6343490646182,0 -73.3818251037206,44.619807725515,0 -73.3712960298213,44.5791669569442,0 -73.34781198402661,44.5539715457199,0 -73.3344524939975,44.544328246301,0 -73.2933197444993,44.4328535783624,0 -73.2999951630005,44.4055331645407,0 -73.32978809302909,44.3673904680866,0 -73.3053256664729,44.2601422576285,0 -73.37733262552911,44.2012475171296,0 -73.38206233640641,44.1721076120788,0 -73.40786483046161,44.1362270392695,0 -73.408756830709,44.1066103535606,0 -73.4352152780239,44.0638978024282,0 -73.43600071127899,44.0456791904389,0 -73.4082513023357,44.0182219013784,0 -73.4174061301202,43.9881969457528,0 -73.4053345287369,43.9148075869022,0 -73.3751207851314,43.8859769501205,0 -73.3847399017654,43.804507971731,0 -73.35899716813,43.7784275686932,0 -73.3566696765928,43.756558340599,0 -73.3709893845574,43.7142811167277,0 -73.4229598542953,43.6321147289764,0 -73.4183198417113,43.582479385998,0 -73.3881142192301,43.5691436583008,0 -73.36368556156729,43.6149988679744,0 -73.303534516911,43.62471481285,0 -73.2941043006647,43.6196528756937,0 -73.28173626823219,43.5931872495766,0 -73.2914024969013,43.5750335705375,0 -73.25998379380719,43.5593823395157,0 -73.2383913589494,43.5128328494142,0 -73.2500714436229,43.310853990742,0 -73.27600528901171,42.9402941192889,0 -73.27958319993191,42.83710332748,0 -73.2961697572315,42.8035493647588,0 -73.26927531690011,42.747481432998,0 -73.2580598287651,42.7460586400616,0 + + + + + + + + Virginia + empty + + +states.AREA: + 39819.882 + + +states.STATE_NAME: +Virginia + + +states.STATE_FIPS: +51 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +VA + + +states.POP2000: + 7078515 + + +states.POP2001: + 7203904 + + +states.POP00_SQMI: + 178 + + +states.DEN_0_100: + 84 + + +USStates.ID: + 10 + + +USStates.State_Name: +Virginia + + +USStates.Date_Entered: +June 25 1788 + + +USStates.Year_Entered: +1788 + + +USStates.Year_Settled: +1607 + +]]> + #Style_5 + + + -78.85159444011779,37.5186355576459,0 + + + + + + + -79.1440627705841,36.5461983712091,0 -78.7964284068279,36.5436739120265,0 -78.73711601969831,36.5462146723402,0 -78.45852951752001,36.5416234739225,0 -78.320969632811,36.5456755672774,0 -78.05138167562831,36.5526213891494,0 -77.89856872882319,36.553092111532,0 -77.7636386364742,36.5535891128352,0 -77.3197463656757,36.5540684074889,0 -77.1770420007847,36.5564375496145,0 -76.92381636627491,36.5542979883089,0 -76.92131386587209,36.554309439951,0 -76.5632556818254,36.5554041975692,0 -76.4972285279305,36.555964754875,0 -76.3299165778101,36.5562088358656,0 -76.1270505006232,36.5573157649444,0 -76.0456111690205,36.5571064340655,0 -76.0615119712046,36.6037440715536,0 -76.0268192353758,36.5568700359695,0 -75.9983147031585,36.5568053577451,0 -75.95044799302779,36.7217163055738,0 -75.8924987970746,36.5991754803558,0 -75.90163103703659,36.5563523255124,0 -75.877811084643,36.5560283058652,0 -75.9950139733037,36.9232809961133,0 -76.1180881453835,36.9317648123223,0 -76.1913251743424,36.9045892249893,0 -76.20199158108591,36.935217163218,0 -76.2838887925512,36.9628813743534,0 -76.3072813727656,36.9421487258181,0 -76.29236454702701,36.8284904672678,0 -76.31710011796309,36.8459922903136,0 -76.4008510377479,36.8262860262004,0 -76.3937555260047,36.8360744516116,0 -76.3415839123642,36.8603355643402,0 -76.3478101840232,36.9134892559702,0 -76.4104728537632,36.9015610356255,0 -76.5068660992915,36.8696211637204,0 -76.56152429279599,36.7957653750683,0 -76.5601896240839,36.841949682548,0 -76.4862891586355,36.8957172739011,0 -76.4818489715291,36.9192347267962,0 -76.5168462700177,36.9123341285658,0 -76.48918167769079,36.9618713816853,0 -76.55472096576371,37.0063431659281,0 -76.6130495959479,36.9949910493193,0 -76.5775030626028,37.0246421685746,0 -76.6653202221915,37.0542826183327,0 -76.6712176684662,37.1478600912415,0 -76.68564516136701,37.1981336635524,0 -76.72889009061009,37.1508170290717,0 -76.7970759024728,37.2074500591909,0 -76.9005488474757,37.201202170108,0 -76.9411772790768,37.2367588456444,0 -76.8781107307919,37.2595740295398,0 -76.8751735425528,37.3230918648515,0 -76.8568543846098,37.2440482634497,0 -76.7956110737283,37.2405346631412,0 -76.7457819523891,37.1935376737801,0 -76.6968300960669,37.2326679371395,0 -76.6477715853183,37.2259840464616,0 -76.6097074589246,37.1787238415066,0 -76.62459298866951,37.1324217211094,0 -76.5681184950179,37.0803207193791,0 -76.5641662731184,37.1179178590847,0 -76.51493987185231,37.088514152489,0 -76.5307942986433,37.0677893193211,0 -76.4257863680259,36.9654073083815,0 -76.3842198846788,36.9905610883342,0 -76.29300653598671,37.0206351268799,0 -76.2785939416313,37.0744893907584,0 -76.3953592865513,37.1078530847975,0 -76.2853385910049,37.1222404792061,0 -76.3369841802955,37.1771522953961,0 -76.363451729894,37.1465709966311,0 -76.3965418363444,37.173174579979,0 -76.412663469669,37.1525377346611,0 -76.4243369011667,37.2074417607397,0 -76.5947150535785,37.2914425548303,0 -76.6696613320707,37.371791537835,0 -76.7043613440258,37.4186361406359,0 -76.65316606911691,37.4123446475274,0 -76.4608069287775,37.2555753805253,0 -76.392406354854,37.2935674534887,0 -76.4552214637676,37.3776312056936,0 -76.4034234546658,37.3731670284824,0 -76.4167524203358,37.4122746360477,0 -76.4636063203256,37.4190312999933,0 -76.4465385536332,37.4581039398615,0 -76.3386854412128,37.3936844160004,0 -76.3006361353978,37.334709868146,0 -76.2748553487943,37.3304598673598,0 -76.25425523474939,37.3903257815922,0 -76.3553334504997,37.5158897727623,0 -76.4338503734437,37.5153384215489,0 -76.51252787654241,37.5527130415872,0 -76.348306615496,37.5252852030122,0 -76.314309077826,37.5513349088903,0 -76.5691713435974,37.6420468415128,0 -76.68141185641581,37.7748929688243,0 -76.7320343979588,37.7986197228433,0 -76.81818811699171,37.9196415616303,0 -76.77153220520729,37.9168107039808,0 -76.6314529213585,37.7964870429673,0 -76.5801358444963,37.7702542208492,0 -76.5067605515534,37.656522918715,0 -76.3445385066165,37.6230595013925,0 -76.3227258669536,37.6779484318836,0 -76.3566703951832,37.700265457817,0 -76.309610919197,37.7192458083256,0 -76.3242069148735,37.7989453158794,0 -76.2515877836626,37.8503067866281,0 -76.25886650737461,37.8901582041921,0 -76.3674146087621,37.9570799400083,0 -76.5242205629273,38.0128744660371,0 -76.5733697756541,38.0033002605649,0 -76.5577218576977,38.0254593389845,0 -76.5487117333011,38.0742408555528,0 -76.5952833745998,38.1203528497159,0 -76.9361551677171,38.2026030889371,0 -76.99905430235459,38.2804019549924,0 -77.054232080337,38.3754764029036,0 -77.240401498791,38.3314974517303,0 -77.3215266297094,38.3441089374341,0 -77.28918500851221,38.3627964278078,0 -77.3381896271496,38.4369487883222,0 -77.3033228724405,38.5020331248717,0 -77.227296542712,38.650839442127,0 -77.1944511107853,38.6608832985541,0 -77.1969608195312,38.622817575713,0 -77.1296906932316,38.6482418914715,0 -77.12481562054811,38.6779155452061,0 -77.0928476424555,38.7040989116303,0 -77.08157873831389,38.7153939181929,0 -77.0568205142596,38.7121363148863,0 -77.0461695666273,38.7188957809267,0 -77.04514742259011,38.7882339432299,0 -77.03494665070259,38.8140284925431,0 -77.0448880739541,38.8294777256462,0 -77.0401043199647,38.8385260372666,0 -77.03877681158821,38.8625429508758,0 -77.067586179778,38.8862126841237,0 -77.0786490583631,38.9157112061101,0 -77.12232830291251,38.9321712762375,0 -77.15174771824201,38.9648893335594,0 -77.2434318664787,38.9759898010602,0 -77.2556927153402,39.0276818620407,0 -77.3243065775866,39.0626960558372,0 -77.3462265685837,39.0686200582469,0 -77.4327467353536,39.0668840135464,0 -77.459404555923,39.0809444981026,0 -77.47895899133,39.1040646528751,0 -77.51275784419811,39.1167594573458,0 -77.5163278483541,39.1575488653215,0 -77.4783476432128,39.1770378462932,0 -77.4617071219601,39.2187353607732,0 -77.4646672485749,39.2291606204918,0 -77.4937734776117,39.2500146595609,0 -77.5419007825367,39.2690420737433,0 -77.5686729648781,39.298495090027,0 -77.616235785843,39.2998185774258,0 -77.6793019175109,39.3187810010414,0 -77.72746748091871,39.3177965867944,0 -77.7594582704378,39.2846433153217,0 -77.76823224563999,39.2465502522476,0 -77.8054492814302,39.1966059388555,0 -77.8200446831256,39.1417254469273,0 -77.83068022894911,39.1321813411354,0 -78.03332834358871,39.2656393181314,0 -78.2295086253954,39.39111326311,0 -78.2768810730911,39.4234646371798,0 -78.3475464813471,39.4569981748093,0 -78.350231122076,39.380828452912,0 -78.3654747496783,39.3616867684635,0 -78.3439287233565,39.3509564427898,0 -78.3408462579967,39.3414581302015,0 -78.4135473819813,39.257540835225,0 -78.3991273957871,39.2449527077307,0 -78.4230690017269,39.2121432300896,0 -78.4240684786694,39.1976286478836,0 -78.40236228262261,39.1705945616413,0 -78.4305689043273,39.1486261929033,0 -78.4479796847525,39.1190362574345,0 -78.4852503468901,39.111944844534,0 -78.5016006690667,39.0936843045982,0 -78.536651424857,39.0571328491656,0 -78.5641793194809,39.0351455339644,0 -78.5492023399753,39.0234880477595,0 -78.5532079497434,39.0139362816423,0 -78.59869613846099,38.967306737806,0 -78.6308475438714,38.9797118741506,0 -78.6469691460415,38.9505530737122,0 -78.6802270507461,38.9216841449691,0 -78.7189859527938,38.9049913858346,0 -78.72414346436901,38.9303242424267,0 -78.73773193671219,38.9292828544161,0 -78.7492528843455,38.9114914729758,0 -78.7930553345461,38.8802192733,0 -78.81586084106471,38.8337457622327,0 -78.86656063074361,38.7634041325478,0 -78.9874530865749,38.8467613817813,0 -79.03374251686721,38.7999596842489,0 -79.05480043932219,38.7906328948264,0 -79.0565552787527,38.7620536715536,0 -79.0872342316746,38.7072686901771,0 -79.088546586161,38.6592052271367,0 -79.1210641516119,38.6637673801701,0 -79.1274272802501,38.6582438834526,0 -79.2316628792895,38.4804961745132,0 -79.27235884061081,38.4373067075038,0 -79.3169995976733,38.4126332297745,0 -79.48634757115821,38.4621448879803,0 -79.5365137543052,38.5538055741145,0 -79.642406563286,38.5923552608138,0 -79.6694300335236,38.5501770266588,0 -79.6656146350943,38.5207779063414,0 -79.6926537316952,38.50035433771,0 -79.6840924127456,38.4302381558023,0 -79.7200352271452,38.3946858203824,0 -79.7328295907797,38.35184011756,0 -79.7640044528342,38.3539913109909,0 -79.80032894262899,38.3143267172637,0 -79.80277785836461,38.2988699252702,0 -79.786511146829,38.2851184419634,0 -79.79362179587,38.2686659933911,0 -79.8311519954685,38.2502792510352,0 -79.9161615169419,38.1792648616985,0 -79.9103399375918,38.1626063325108,0 -79.9353269126111,38.1213086373625,0 -79.9282922008952,38.1033111780769,0 -79.9575137202729,38.0673653777199,0 -79.9664936918756,38.0386218574803,0 -80.0004989600932,37.9898701188515,0 -80.0548072329966,37.955647953318,0 -80.10649074189941,37.9146585972358,0 -80.1185073346708,37.8912782976758,0 -80.16000537205031,37.8772283214768,0 -80.17222039082991,37.860184199113,0 -80.1715945425769,37.842968579238,0 -80.2237356887328,37.8023645289771,0 -80.2205461556516,37.7788585452909,0 -80.25468885608571,37.7572327793138,0 -80.2500331441419,37.7260519868,0 -80.3031097192157,37.6826718540633,0 -80.29570065300371,37.6715026681154,0 -80.30486267871009,37.6522463839109,0 -80.3009326903108,37.6405469490757,0 -80.2544222998619,37.6407036415196,0 -80.2189280037138,37.624266818855,0 -80.2463930602341,37.5968966073136,0 -80.3167216376968,37.5667185420532,0 -80.32590580737531,37.5334014957793,0 -80.3083037500729,37.5283701687601,0 -80.280730446809,37.5362590748033,0 -80.2879160750838,37.5111511482082,0 -80.3475109001899,37.49117712186,0 -80.35215686057209,37.4761016187768,0 -80.3883061551325,37.4657253807092,0 -80.4253779088728,37.4349064012949,0 -80.47476472988301,37.4228209443336,0 -80.48679721638899,37.4338604042898,0 -80.4878816034022,37.4605973242368,0 -80.5087647901173,37.4750470031664,0 -80.5427553820369,37.469210153305,0 -80.5974908951866,37.4460544156491,0 -80.7052070760613,37.388378738728,0 -80.72973711165071,37.3927194823309,0 -80.7463242442421,37.3877372428011,0 -80.7476897645342,37.3790816832203,0 -80.7629949670439,37.3714139772316,0 -80.7700223818732,37.3861958412097,0 -80.7992446500301,37.3917535437627,0 -80.7996113856773,37.4130624215657,0 -80.8505252286955,37.4234607507886,0 -80.8773584695865,37.3886971542785,0 -80.8484178042257,37.3509434223474,0 -80.8554293470925,37.3394115247051,0 -80.9341835390029,37.3013705325277,0 -80.96789191929319,37.2917914637641,0 -80.9785356077377,37.2964757957825,0 -80.98593670753679,37.3062413397341,0 -81.0249323590475,37.2860611989419,0 -81.1407375754125,37.2749250164035,0 -81.2229334626078,37.2402144799779,0 -81.31187279010121,37.2937070121271,0 -81.3587948024103,37.3389525257717,0 -81.3909459604383,37.3111547685878,0 -81.4033441778724,37.2826247386467,0 -81.4753603327483,37.2544223575295,0 -81.4955330784661,37.2528505720872,0 -81.5055358933554,37.2343721078399,0 -81.5566542800284,37.2063527636759,0 -81.66588576064321,37.2049100156006,0 -81.7017283392091,37.2354348394887,0 -81.7384563680184,37.2504910806821,0 -81.7518541120478,37.2722574759975,0 -81.7926591382367,37.2871534702189,0 -81.81538106528591,37.2795392280236,0 -81.83888889774509,37.2855052037829,0 -81.8586808412616,37.307031242764,0 -81.8638156687728,37.3254560597623,0 -81.8971581362481,37.3405886156486,0 -81.9268226400485,37.3717275503644,0 -81.9207334341144,37.4155161841344,0 -81.98820252937991,37.4665864944032,0 -81.9764218630945,37.4829057344135,0 -81.94799334305409,37.4930262563355,0 -81.9354500215799,37.5066446664438,0 -81.95957525592971,37.5311726196289,0 -82.288950934185,37.3048612192352,0 -82.35384234347519,37.260519600467,0 -82.4058850037637,37.2507041975685,0 -82.5500399164933,37.1993783814184,0 -82.56802270094001,37.1939190518144,0 -82.7190958255562,37.1100172914789,0 -82.7213772601893,37.0931177496069,0 -82.7091701311092,37.075482281352,0 -82.7200576547545,37.0659298172553,0 -82.7235981560209,37.0339923682353,0 -82.81222270855579,37.0056007595079,0 -82.8665598432633,36.9745857651711,0 -82.8606320841382,36.9321623718302,0 -82.87804287271091,36.893694238085,0 -82.9508056915213,36.8640784586876,0 -83.0466341524314,36.8587935503694,0 -83.06795192812881,36.8509961538949,0 -83.1282206506728,36.7791526938786,0 -83.124390864088,36.7511676478044,0 -83.1385135640831,36.7400592608854,0 -83.203656562889,36.7342606278109,0 -83.32138369861531,36.7095329501122,0 -83.3858547999664,36.6882196347474,0 -83.4041505851927,36.6723273909237,0 -83.46022130755151,36.6618325651555,0 -83.5308949469604,36.6614809602143,0 -83.64680262239961,36.6169769718214,0 -83.6751767779422,36.59870387507,0 -83.4642098601591,36.5988401279562,0 -83.2750314351304,36.6004674572198,0 -83.2483883995918,36.5899354199083,0 -83.21092650566941,36.5880896531906,0 -82.98669718999391,36.5912897002248,0 -82.8498226210789,36.5910413307673,0 -82.610838912091,36.5915455448388,0 -82.2968580172995,36.591800946144,0 -82.2166613034295,36.5940723596186,0 -82.1541813077551,36.5951503366296,0 -81.9293033061132,36.5959506538262,0 -81.9182941426859,36.613608797075,0 -81.82889791679381,36.6115963662572,0 -81.6522721813828,36.6076738087692,0 -81.669835031007,36.5897678106349,0 -81.3451210093901,36.5729883010435,0 -80.90324049840061,36.5653420877066,0 -80.8379531599861,36.5635684825855,0 -80.61084107895191,36.557430438888,0 -80.4350919823622,36.5511811239687,0 -80.04786338901999,36.5472724746821,0 -80.0238223180659,36.5451630012943,0 -79.7172016388076,36.5480278701673,0 -79.5100477812088,36.5477956232117,0 -79.21680327614961,36.5499213192211,0 -79.1440627705841,36.5461983712091,0 + + + + + + + + + -75.2703576848931,38.0277091732938,0 -75.346327896565,37.918920332121,0 -75.378212765399,37.9010985070504,0 -75.3444511672005,37.9020368659196,0 -75.385720705723,37.8757771334347,0 -75.33882056571559,37.8889069720989,0 -75.2984965865935,37.9629981027088,0 -75.2422192799713,38.0286475070447,0 -75.2703576848931,38.0277091732938,0 + + + + + + + + + -75.86702474819541,37.5523144055129,0 -75.9304116573134,37.5570210112286,0 -75.9543606031818,37.5219645287005,0 -75.9651025972256,37.4794849231046,0 -75.934103509734,37.4847761076545,0 -76.0181268821546,37.3089179962228,0 -75.9706381994593,37.126374539951,0 -75.9310399788387,37.1426441413889,0 -75.89676220343181,37.3675306353841,0 -75.8263260377899,37.4182847768698,0 -75.79042061875479,37.4082451150763,0 -75.8201385645026,37.4263412953845,0 -75.81267774258821,37.4691794212934,0 -75.7049180567879,37.493609154607,0 -75.7561507588602,37.5106752855114,0 -75.7271741932358,37.5583160220225,0 -75.6499176016541,37.5598879682547,0 -75.69914364059819,37.5896453879802,0 -75.5895543292298,37.6773235333573,0 -75.6175701346023,37.6972623777481,0 -75.37242058358361,38.0168338616125,0 -75.62608404746069,37.9965412351653,0 -75.64786661285071,37.9702549087239,0 -75.65809797640431,37.9413058795763,0 -75.7336306466578,37.9306942135493,0 -75.6863580737178,37.8582504730951,0 -75.6957348357321,37.8246437728104,0 -75.7822539886663,37.7899613984561,0 -75.79937456348389,37.7119219127267,0 -75.9056463246888,37.5923063660501,0 -75.8869307337319,37.5804774495128,0 -75.9292141475101,37.5860158544498,0 -75.9407574732188,37.5616861757273,0 -75.86702474819541,37.5523144055129,0 + + + + + + + + + Washington + empty + + +states.AREA: + 67290.061 + + +states.STATE_NAME: +Washington + + +states.STATE_FIPS: +53 + + +states.SUB_REGION: +Pacific + + +states.STATE_ABBR: +WA + + +states.POP2000: + 5894121 + + +states.POP2001: + 5984144 + + +states.POP00_SQMI: + 88 + + +states.DEN_0_100: + 92 + + +USStates.ID: + 42 + + +USStates.State_Name: +Washington + + +USStates.Date_Entered: +Nov. 11 1889 + + +USStates.Year_Entered: +1889 + + +USStates.Year_Settled: +1811 + +]]> + #Style_5 + + + -120.428027450366,47.3767619529735,0 + + + + + + + -122.402015585862,48.22521655119059,0 -122.368333031748,48.1281417374007,0 -122.216991980112,48.0074395523983,0 -122.230120864997,47.9691133009971,0 -122.302922293019,47.9502148146411,0 -122.394492319816,47.7741760704507,0 -122.414815251142,47.6641799154458,0 -122.382220450337,47.59540904242241,0 -122.392633724016,47.510242430349,0 -122.319738644767,47.3901148739843,0 -122.325376306437,47.34432342914171,0 -122.420837154063,47.3188444009071,0 -122.44160451791,47.30112502870991,0 -122.392843589784,47.27772237272379,0 -122.424093930825,47.2594726643245,0 -122.546588119889,47.3162759041886,0 -122.530763579572,47.2874561757674,0 -122.591806795064,47.18006043271391,0 -122.700078972928,47.0983257639744,0 -122.728186706349,47.0824411560979,0 -122.790048807191,47.12585976612701,0 -122.923149828379,47.0479638034112,0 -123.031348160183,47.10077406605479,0 -123.08119986877,47.0900584211916,0 -123.115436362362,47.2079808770198,0 -122.880373328755,47.29923301071809,0 -122.80218419102,47.36074081061499,0 -122.773334917144,47.3373608176988,0 -122.825108465453,47.23482629704449,0 -122.761238576791,47.16249609705,0 -122.719801685966,47.2231309613462,0 -122.769708287471,47.2661563733799,0 -122.741549305237,47.3414503076915,0 -122.63743668533,47.3985801503896,0 -122.628754107704,47.3985535711269,0 -122.699744809759,47.2920852599988,0 -122.606914471404,47.2705715630047,0 -122.611546281747,47.2933985199593,0 -122.580530737959,47.2513878417299,0 -122.553156448554,47.28333225295779,0 -122.588254069729,47.3339297206403,0 -122.544125105865,47.3739271979736,0 -122.558446593662,47.39836383670511,0 -122.504461251459,47.5072166170591,0 -122.542701892959,47.5227341115826,0 -122.555262191616,47.5835056437302,0 -122.58646032245,47.5711913307815,0 -122.621509737099,47.6969685926778,0 -122.473587970933,47.754980421427,0 -122.531888262165,47.9094610402373,0 -122.613217685631,47.9361891106489,0 -122.611161831324,47.8500088568397,0 -122.723062245298,47.756899497954,0 -122.752942725853,47.6606888662813,0 -122.916969634781,47.6146067598098,0 -123.026336409535,47.5159360344848,0 -123.112685319492,47.3715690549333,0 -123.036205853039,47.3560517908336,0 -122.833247627681,47.4384644854025,0 -123.010471142541,47.3530270312954,0 -123.154060208246,47.34854709581659,0 -123.113915354148,47.4562737478478,0 -122.982744610097,47.605474180815,0 -122.899363646417,47.6725174181428,0 -122.858803869367,47.8273283820717,0 -122.809517476022,47.8570752456124,0 -122.789801306075,47.80254870561371,0 -122.745869964426,47.8089881012059,0 -122.65358555422,47.8644314081443,0 -122.661560699934,47.91715724086411,0 -122.802931474221,48.0853214885644,0 -122.768882581909,48.14399396683261,0 -122.841111108511,48.1331364028468,0 -122.924844380244,48.0667963906842,0 -122.921594579239,48.0941790601655,0 -123.123222071728,48.14873346132511,0 -123.396857191675,48.1110305596467,0 -123.99121575548,48.1591616473782,0 -124.563547200382,48.3572788215719,0 -124.717175724384,48.3775576295928,0 -124.705209619396,48.2319958728397,0 -124.732769782406,48.14998906746659,0 -124.606685175962,47.8737351045468,0 -124.4840349709,47.80825508475839,0 -124.373605760641,47.6387635571163,0 -124.34908012,47.5269100987395,0 -124.319426936677,47.349238221659,0 -124.231425333655,47.2750705461574,0 -124.192733694907,47.1669824551465,0 -124.16203636006,46.9296126446967,0 -124.11236154808,47.0426750048332,0 -124.034394754879,47.0310336101115,0 -123.995864776759,46.9763856970925,0 -123.812655744537,46.9639649518924,0 -124.046929052757,46.8872532153114,0 -124.028808615981,46.82376724520079,0 -124.104738049925,46.87414536541461,0 -124.105760621107,46.9081486902197,0 -124.138827038961,46.8999849517573,0 -124.102067189448,46.7894689338948,0 -124.091049313876,46.729022769244,0 -124.043158405537,46.71585552661,0 -123.895541984289,46.74498612304211,0 -123.840966602211,46.7182880521381,0 -123.926470343453,46.6730606753881,0 -123.957711888544,46.6172253735281,0 -123.893566870933,46.5110798696875,0 -123.940693474701,46.4811152076399,0 -123.84145135609,46.4043430463786,0 -124.013002080972,46.3836800183619,0 -124.023042910864,46.5835411596631,0 -124.065510643968,46.6397453463799,0 -124.079107527965,46.2672592577036,0 -123.99332948614,46.31027473949201,0 -123.885770921618,46.24043841752359,0 -123.725458920321,46.28542385217391,0 -123.620076470538,46.2586654836991,0 -123.470772999092,46.2750238188183,0 -123.304717085176,46.1447375703216,0 -123.2487994158,46.1440203375679,0 -123.212437026773,46.1700060595961,0 -123.176196406189,46.18358645541681,0 -123.118554158558,46.1793104942643,0 -123.050596211575,46.1557362282158,0 -122.974169260528,46.11048344369091,0 -122.899757285914,46.0793296870295,0 -122.875417724143,46.0271833271028,0 -122.807741767287,45.9438901212784,0 -122.80622291556,45.90407242954801,0 -122.784073650236,45.867886451725,0 -122.784515918404,45.85044951848901,0 -122.788009565757,45.80034359183911,0 -122.764288518601,45.7605680280893,0 -122.772551033013,45.7276855424654,0 -122.760541289247,45.6493974102277,0 -122.696323093542,45.6310455505125,0 -122.651209200341,45.6068304566963,0 -122.565429806458,45.5948187685695,0 -122.437154197887,45.5647789119432,0 -122.356457483648,45.56617124306739,0 -122.303150328761,45.54309283450319,0 -122.244922293538,45.5481128647605,0 -122.082037518263,45.59050401243609,0 -122.000011553714,45.6178242910982,0 -121.972659451544,45.63577608415601,0 -121.926820689078,45.64202837395181,0 -121.888283498804,45.6768563701943,0 -121.81104103467,45.70068308952361,0 -121.758694096887,45.6897160514309,0 -121.706416861345,45.6887931706508,0 -121.529054611543,45.7195676794317,0 -121.442552169491,45.6949670880414,0 -121.422029028765,45.69060318812019,0 -121.367814251197,45.6996865954037,0 -121.319977744287,45.6966428366174,0 -121.276390902266,45.67833997203109,0 -121.214271714275,45.6656449638228,0 -121.203308118047,45.65728693477031,0 -121.192054666449,45.6132419265196,0 -121.174316011579,45.6005161602332,0 -121.125204665552,45.6070590988379,0 -121.073529928592,45.6466107733405,0 -121.03348258367,45.652844415437,0 -120.968478511648,45.6451545411606,0 -120.948572830946,45.650315967172,0 -120.907937250867,45.63547710694449,0 -120.861419667766,45.6651862544925,0 -120.696993903513,45.7105098195153,0 -120.658403368137,45.73261248754,0 -120.623757205266,45.7436105722949,0 -120.570082462284,45.7409179414327,0 -120.499156501925,45.6956306780396,0 -120.443383762852,45.6892797229393,0 -120.283634874867,45.71658287339311,0 -120.207445390097,45.7197840646162,0 -120.155907860861,45.7612616683351,0 -120.06864786541,45.780202445303,0 -119.994320160406,45.8111403450749,0 -119.869735634541,45.8316985251524,0 -119.833555881044,45.8416093443199,0 -119.678445663881,45.8525390300795,0 -119.622116728299,45.8994103389685,0 -119.589294282545,45.9133149491969,0 -119.512220001301,45.8992005968695,0 -119.43886108987,45.9142685232279,0 -119.379441421397,45.9176100650698,0 -119.302763509833,45.932662726596,0 -119.178742642589,45.922351608477,0 -119.140250599579,45.9257086397924,0 -119.03222168131,45.9662745814382,0 -118.982132819163,45.9990583744824,0 -117.992527778446,46.0016389052483,0 -117.982677428834,45.9998805158959,0 -117.602826163512,46.00026815862021,0 -117.481663000967,45.9998347138602,0 -116.919132428078,45.995175487463,0 -116.957723390605,46.06568768466321,0 -116.987211805214,46.07850889735371,0 -116.961637658488,46.0972742225682,0 -116.929426274379,46.165483265634,0 -116.967490477604,46.1975539420731,0 -116.972724840347,46.24930935868821,0 -117.001642419838,46.3024487520609,0 -117.027973590879,46.3354269634861,0 -117.064184656311,46.3486979530599,0 -117.044470505763,46.3885739799344,0 -117.038558547134,46.4279805738524,0 -117.04192619733,46.536601774571,0 -117.040968412195,47.11931911025491,0 -117.042391922165,47.2585012691796,0 -117.04179475453,47.3614417250081,0 -117.037471831606,47.9710924196381,0 -117.038868452187,48.0461859667744,0 -117.029111695195,48.8380752730768,0 -117.032049523854,48.99993132673121,0 -117.438580412623,48.99991850566829,0 -118.200354738532,48.9999088414174,0 -118.843602807356,48.9998984346033,0 -120.857059496563,48.9998306577208,0 -122.765118968837,48.99974623444891,0 -122.743940024614,48.95580806740179,0 -122.822421272766,48.9507251599099,0 -122.754241982126,48.9099886147134,0 -122.697404043551,48.8030150496753,0 -122.516853490647,48.757921319943,0 -122.526558319548,48.7117247063083,0 -122.487798210295,48.6385700564281,0 -122.429545051156,48.5993973238636,0 -122.505299782151,48.5594447659792,0 -122.473833244864,48.46219546816361,0 -122.523227847995,48.4584031117488,0 -122.608178294452,48.5188240727562,0 -122.699413806973,48.4943282053316,0 -122.667031965175,48.4128950743055,0 -122.564366308901,48.4142464891235,0 -122.378320027898,48.2897210809664,0 -122.404404795763,48.2465946390423,0 -122.509130728878,48.25379287826151,0 -122.542074086652,48.2104605027962,0 -122.514511175848,48.13397370495419,0 -122.361333117765,48.0600974008547,0 -122.454419044314,48.12849218337681,0 -122.462855148154,48.2283635421487,0 -122.402015585862,48.22521655119059,0 + + + + + + + + + -122.967978342058,48.44379450851021,0 -123.018882894721,48.489605170453,0 -123.022271121816,48.513359682583,0 -122.967980000613,48.52693332233629,0 -123.008698759605,48.5337193215567,0 -123.01209491531,48.5574777421133,0 -123.103721392859,48.6083771191688,0 -123.141053808089,48.6236471212389,0 -123.169899337157,48.5625647146223,0 -123.159719925101,48.52184222365381,0 -123.09523286813,48.479422815339,0 -122.967978342058,48.44379450851021,0 + + + + + + + + + -122.733187500894,48.27664717795621,0 -122.768778263979,48.218818397347,0 -122.695554282422,48.1811852523447,0 -122.608628397127,48.0314307595447,0 -122.544961263666,47.9675310410809,0 -122.471616565863,47.9875090940392,0 -122.442787963967,47.9180562701758,0 -122.386960910805,47.9045490614351,0 -122.355399949048,47.9638860565509,0 -122.379993925152,48.0321462908929,0 -122.49621274531,48.0940709834622,0 -122.546202729793,48.0768581941955,0 -122.610925345361,48.2063213486201,0 -122.732034133066,48.22541451834621,0 -122.623509745109,48.2963505236561,0 -122.528648438563,48.2835101194884,0 -122.525750015179,48.32104386187421,0 -122.604384066189,48.4047892820013,0 -122.665612560098,48.3967777389214,0 -122.733187500894,48.27664717795621,0 + + + + + + + + + West Virginia + empty + + +states.AREA: + 24228.552 + + +states.STATE_NAME: +West Virginia + + +states.STATE_FIPS: +54 + + +states.SUB_REGION: +S Atl + + +states.STATE_ABBR: +WV + + +states.POP2000: + 1808344 + + +states.POP2001: + 1802611 + + +states.POP00_SQMI: + 75 + + +states.DEN_0_100: + 93 + + +USStates.ID: + 35 + + +USStates.State_Name: +West Virginia + + +USStates.Date_Entered: +June 20 1863 + + +USStates.Year_Entered: +1863 + + +USStates.Year_Settled: +1727 + +]]> + #Style_5 + + + -80.614059565661,38.6412110051568,0 + + + + + + -79.2316628792895,38.4804961745132,0 -79.1274272802501,38.6582438834526,0 -79.1210641516119,38.6637673801701,0 -79.088546586161,38.6592052271367,0 -79.0872342316746,38.7072686901771,0 -79.0565552787527,38.7620536715536,0 -79.05480043932219,38.7906328948264,0 -79.03374251686721,38.7999596842489,0 -78.9874530865749,38.8467613817813,0 -78.86656063074361,38.7634041325478,0 -78.81586084106471,38.8337457622327,0 -78.7930553345461,38.8802192733,0 -78.7492528843455,38.9114914729758,0 -78.73773193671219,38.9292828544161,0 -78.72414346436901,38.9303242424267,0 -78.7189859527938,38.9049913858346,0 -78.6802270507461,38.9216841449691,0 -78.6469691460415,38.9505530737122,0 -78.6308475438714,38.9797118741506,0 -78.59869613846099,38.967306737806,0 -78.5532079497434,39.0139362816423,0 -78.5492023399753,39.0234880477595,0 -78.5641793194809,39.0351455339644,0 -78.536651424857,39.0571328491656,0 -78.5016006690667,39.0936843045982,0 -78.4852503468901,39.111944844534,0 -78.4479796847525,39.1190362574345,0 -78.4305689043273,39.1486261929033,0 -78.40236228262261,39.1705945616413,0 -78.4240684786694,39.1976286478836,0 -78.4230690017269,39.2121432300896,0 -78.3991273957871,39.2449527077307,0 -78.4135473819813,39.257540835225,0 -78.3408462579967,39.3414581302015,0 -78.3439287233565,39.3509564427898,0 -78.3654747496783,39.3616867684635,0 -78.350231122076,39.380828452912,0 -78.3475464813471,39.4569981748093,0 -78.2768810730911,39.4234646371798,0 -78.2295086253954,39.39111326311,0 -78.03332834358871,39.2656393181314,0 -77.83068022894911,39.1321813411354,0 -77.8200446831256,39.1417254469273,0 -77.8054492814302,39.1966059388555,0 -77.76823224563999,39.2465502522476,0 -77.7594582704378,39.2846433153217,0 -77.72746748091871,39.3177965867944,0 -77.7500891970593,39.3268181439956,0 -77.7543007117046,39.3385939912988,0 -77.7454504163582,39.3603718912509,0 -77.7562233700037,39.3784762226869,0 -77.7372333565171,39.3961953951361,0 -77.74083452238931,39.4034394054792,0 -77.75698633951841,39.4251637984679,0 -77.8022754371077,39.4323161756799,0 -77.8046940179175,39.4400179505449,0 -77.7957979551353,39.4509164333512,0 -77.8041904928873,39.4631385518333,0 -77.78510893810591,39.459102708835,0 -77.79949832671841,39.4808271058573,0 -77.771551216988,39.4981152221263,0 -77.82518711275171,39.4939074430119,0 -77.84787748402169,39.5020058349846,0 -77.8252634740426,39.5120383875386,0 -77.828925751391,39.5292537667709,0 -77.83546428030221,39.5256107761519,0 -77.8438492144584,39.5319315749014,0 -77.86463209209241,39.5146512457229,0 -77.8695609560795,39.5459120760673,0 -77.8899167307584,39.5580921006877,0 -77.885171166646,39.5644510981679,0 -77.85295909355961,39.5654544565677,0 -77.8398667728917,39.572740433055,0 -77.8424075807765,39.6053745299037,0 -77.855522813824,39.6021663910764,0 -77.88843689880569,39.6165703160658,0 -77.8907409489792,39.6007014665387,0 -77.903253436057,39.5961238764369,0 -77.9386090344815,39.6182180888264,0 -77.9475432559036,39.6150137753716,0 -77.93545786949809,39.5919391289044,0 -77.94497955111849,39.5860111667727,0 -77.96423675783581,39.6113249804037,0 -77.995205151108,39.5989693016707,0 -78.02641818067529,39.6228676658044,0 -78.0943379340484,39.6756002259056,0 -78.1829721387067,39.6946416432551,0 -78.2043044442965,39.6759383682958,0 -78.2275978107419,39.6739888201001,0 -78.22923031045851,39.6585663745485,0 -78.2577267039254,39.6411676777696,0 -78.27301593703299,39.6184096414251,0 -78.3479232590728,39.6405907650805,0 -78.3567810297593,39.6323702224905,0 -78.37767072595661,39.6313171842384,0 -78.3846362229595,39.6144947493043,0 -78.431893779582,39.6209523855928,0 -78.4039995740291,39.5876131045842,0 -78.4506314866027,39.592705125494,0 -78.4618162122069,39.5808339965825,0 -78.4208220953532,39.5494097703543,0 -78.4458699009632,39.5483185504429,0 -78.4558109647124,39.5337352582767,0 -78.4812781842694,39.5199376222576,0 -78.50878283764369,39.525159517656,0 -78.5641887564812,39.521073443727,0 -78.604366257192,39.5356829078104,0 -78.6370818045276,39.5299491862748,0 -78.6491442196502,39.5379978698818,0 -78.6664251857124,39.5369295856868,0 -78.7163150181332,39.5595725682967,0 -78.73271861228101,39.5766427925479,0 -78.7614516806553,39.5817923449266,0 -78.7737430747891,39.6016168803692,0 -78.73625116835829,39.608792329934,0 -78.73049853216,39.6215446407261,0 -78.73238303982021,39.6269651904324,0 -78.7676164768578,39.6266140472135,0 -78.7727054582047,39.6442413593536,0 -78.7981503202116,39.6308329361782,0 -78.7984707782291,39.6154181040351,0 -78.8224126817224,39.5856984808976,0 -78.80655063800541,39.5668238139764,0 -78.8381145866481,39.5633182054468,0 -78.8708155126305,39.5257902221119,0 -78.9553908044919,39.4604587300207,0 -78.970436606663,39.438525300318,0 -79.04885455275689,39.4838153049718,0 -79.0644114910497,39.4858256028263,0 -79.0706297593098,39.4708498495391,0 -79.104597173003,39.4708728556173,0 -79.0967157288178,39.4646284760702,0 -79.1040784853939,39.4473068185213,0 -79.1314006491727,39.4170311916524,0 -79.1581275486525,39.4139606424208,0 -79.16301834698341,39.3934958538665,0 -79.2601680465127,39.3486416544713,0 -79.27982260452779,39.3252435708184,0 -79.29527324453819,39.3005409622397,0 -79.3461946154148,39.2920920071237,0 -79.3848476494521,39.2693006300669,0 -79.4492818447752,39.2120934820003,0 -79.4611919892215,39.2132646214775,0 -79.48986479564221,39.1973957510982,0 -79.480971113096,39.720274058077,0 -79.7651323185042,39.7218070815944,0 -79.9182684921867,39.7216669674993,0 -80.4290823326108,39.7198426041628,0 -80.5242694740401,39.7212089909504,0 -80.5246506803543,39.9584195634812,0 -80.52496218534981,40.0228253262192,0 -80.52604519018939,40.1625211281631,0 -80.5235645344163,40.403033850236,0 -80.52435768303791,40.4787848369009,0 -80.52199952847749,40.6372031779131,0 -80.5744158355721,40.6159741619192,0 -80.6115497018059,40.6200630858018,0 -80.63733821934061,40.613982302321,0 -80.6677276496391,40.5821374643692,0 -80.6686204246359,40.5682789021601,0 -80.63343988239519,40.5392040647419,0 -80.6252533727438,40.5044642482608,0 -80.6018302001708,40.4805390518844,0 -80.6278482893771,40.3982268491052,0 -80.6292446110196,40.3886635709611,0 -80.6092470800706,40.3732754647517,0 -80.60451708240841,40.3062448322667,0 -80.6146878118885,40.2765021361522,0 -80.6501132136987,40.2456798126148,0 -80.67855741943301,40.194151495489,0 -80.7008900358822,40.1681812950244,0 -80.7020651116698,40.1540899859456,0 -80.73823885471551,40.0356640607266,0 -80.7388880114803,39.9834759440017,0 -80.76306009947351,39.947015501453,0 -80.7588871844105,39.9212667893345,0 -80.7681270403387,39.9133131812296,0 -80.7960214112815,39.9198397078312,0 -80.8078400413376,39.9159028725421,0 -80.8121358445091,39.9049014113291,0 -80.7908494426605,39.8723475673467,0 -80.7985253362877,39.8567227242363,0 -80.8259165835688,39.8396671142989,0 -80.8191038347973,39.8090013333355,0 -80.87072776135891,39.7599938351988,0 -80.8564533163278,39.7363355934909,0 -80.8322983936779,39.7188343443337,0 -80.832787434305,39.7034002259532,0 -80.8634141639951,39.6803515272318,0 -80.87274608454371,39.6624110188142,0 -80.8811098930273,39.6240811641343,0 -80.91259057006261,39.6073533140813,0 -80.9326107962525,39.6069409720762,0 -80.9836464085096,39.5818052379779,0 -81.03256860915231,39.544142538686,0 -81.03738319915119,39.5326641774228,0 -81.09824494329121,39.4964511389157,0 -81.11708991317241,39.467783911079,0 -81.180567643956,39.437800182641,0 -81.20030524610981,39.4158962250483,0 -81.2249486327778,39.4083582071948,0 -81.2376212801085,39.388472233438,0 -81.2840170696265,39.387072038012,0 -81.3388361554473,39.3536439576398,0 -81.3759162878324,39.3456902660112,0 -81.4339782748136,39.4060229813656,0 -81.4479558561434,39.4110278039673,0 -81.4650081513692,39.4068583282204,0 -81.54064851311919,39.3527089235402,0 -81.55738794827489,39.3326551943737,0 -81.5726851110575,39.2659175355733,0 -81.6675222725862,39.2704953128172,0 -81.6895262667326,39.2602262835757,0 -81.6979035279936,39.220020030992,0 -81.7230738622105,39.2132681698618,0 -81.758910326595,39.1757512549241,0 -81.74470368597029,39.1258749496768,0 -81.7535616017454,39.0947208175577,0 -81.78636140597079,39.0772573104027,0 -81.8195656534392,39.077016873553,0 -81.824273103509,39.0664159845432,0 -81.8134617903382,39.0441080346264,0 -81.7756796380037,39.0168297231883,0 -81.7817298618878,38.9685290255312,0 -81.7622971158526,38.9301808907728,0 -81.7832252461068,38.9235624308806,0 -81.8237768593835,38.948467790736,0 -81.8409130504285,38.9378897832025,0 -81.8668004270512,38.8857095354934,0 -81.8926954574516,38.8734530024849,0 -81.91524871422909,38.884446578043,0 -81.9318508422449,38.8947421272096,0 -81.89860847229041,38.9322247653254,0 -81.92783006842539,38.9842712717174,0 -81.9377333601398,38.9911756913507,0 -81.9751873204589,38.9930065533181,0 -81.999678576611,39.0152610363642,0 -82.0428855933127,39.0141392723836,0 -82.0585035436315,38.9890655972236,0 -82.0850167494239,38.9771981320238,0 -82.1012069170005,38.9520939616579,0 -82.13931709213161,38.8993984229593,0 -82.14609966838241,38.8387877142417,0 -82.1977219453354,38.8046196832205,0 -82.2167502305976,38.7789394330115,0 -82.1839728099084,38.710302969121,0 -82.18897770390291,38.6778937710105,0 -82.17365706195611,38.6321907721309,0 -82.1842468602663,38.5950322865397,0 -82.2136592450116,38.5848354166427,0 -82.2708972021513,38.5948900812008,0 -82.2899713540982,38.5800813546872,0 -82.3142406687043,38.4652295850629,0 -82.32917938871179,38.4419523430973,0 -82.39476414185761,38.4284703243087,0 -82.41489129697651,38.4303925893994,0 -82.4949877236084,38.405832597411,0 -82.5475481992093,38.4005109785092,0 -82.5754192239026,38.4039021444586,0 -82.5866043088359,38.4125194224537,0 -82.59823915716601,38.3684639621207,0 -82.57229805473899,38.3078110430161,0 -82.5800496260145,38.2925104464826,0 -82.574578950842,38.2559737163217,0 -82.5891132321387,38.2453880857478,0 -82.616228731902,38.2388116463152,0 -82.6066454186315,38.1938262489827,0 -82.6137636388564,38.1780948680894,0 -82.6471582603252,38.1694356505033,0 -82.64612798319701,38.1463307005486,0 -82.5932086977126,38.1099625844435,0 -82.52467860529801,38.0156623478137,0 -82.4757796712415,37.9759070493071,0 -82.480174161688,37.9543964226939,0 -82.49339635192651,37.9425137288734,0 -82.50020946921541,37.9222618980716,0 -82.4376072765301,37.8948548600619,0 -82.4215083258885,37.8723565285176,0 -82.4058057432277,37.8117197137467,0 -82.33984657596631,37.7844003083255,0 -82.3194978866149,37.7584268520686,0 -82.3294012031438,37.7441714871732,0 -82.2956247745408,37.6690580326702,0 -82.2383711562884,37.656775872237,0 -82.20544059754749,37.6240165335496,0 -82.1855494012877,37.6406677677666,0 -82.15931021996209,37.5935690802839,0 -82.1317814946938,37.5905369780361,0 -82.13747341918131,37.5698959116523,0 -82.1465225053321,37.5659208983498,0 -82.1425091726566,37.5574524979734,0 -82.0843920504403,37.5483099090524,0 -82.05566534081019,37.5253425321624,0 -82.0491341809237,37.5514538202535,0 -82.0263511693733,37.5305195250327,0 -81.9765742755516,37.5432534483332,0 -81.95957525592971,37.5311726196289,0 -81.9354500215799,37.5066446664438,0 -81.94799334305409,37.4930262563355,0 -81.9764218630945,37.4829057344135,0 -81.98820252937991,37.4665864944032,0 -81.9207334341144,37.4155161841344,0 -81.9268226400485,37.3717275503644,0 -81.8971581362481,37.3405886156486,0 -81.8638156687728,37.3254560597623,0 -81.8586808412616,37.307031242764,0 -81.83888889774509,37.2855052037829,0 -81.81538106528591,37.2795392280236,0 -81.7926591382367,37.2871534702189,0 -81.7518541120478,37.2722574759975,0 -81.7384563680184,37.2504910806821,0 -81.7017283392091,37.2354348394887,0 -81.66588576064321,37.2049100156006,0 -81.5566542800284,37.2063527636759,0 -81.5055358933554,37.2343721078399,0 -81.4955330784661,37.2528505720872,0 -81.4753603327483,37.2544223575295,0 -81.4033441778724,37.2826247386467,0 -81.3909459604383,37.3111547685878,0 -81.3587948024103,37.3389525257717,0 -81.31187279010121,37.2937070121271,0 -81.2229334626078,37.2402144799779,0 -81.1407375754125,37.2749250164035,0 -81.0249323590475,37.2860611989419,0 -80.98593670753679,37.3062413397341,0 -80.9785356077377,37.2964757957825,0 -80.96789191929319,37.2917914637641,0 -80.9341835390029,37.3013705325277,0 -80.8554293470925,37.3394115247051,0 -80.8484178042257,37.3509434223474,0 -80.8773584695865,37.3886971542785,0 -80.8505252286955,37.4234607507886,0 -80.7996113856773,37.4130624215657,0 -80.7992446500301,37.3917535437627,0 -80.7700223818732,37.3861958412097,0 -80.7629949670439,37.3714139772316,0 -80.7476897645342,37.3790816832203,0 -80.7463242442421,37.3877372428011,0 -80.72973711165071,37.3927194823309,0 -80.7052070760613,37.388378738728,0 -80.5974908951866,37.4460544156491,0 -80.5427553820369,37.469210153305,0 -80.5087647901173,37.4750470031664,0 -80.4878816034022,37.4605973242368,0 -80.48679721638899,37.4338604042898,0 -80.47476472988301,37.4228209443336,0 -80.4253779088728,37.4349064012949,0 -80.3883061551325,37.4657253807092,0 -80.35215686057209,37.4761016187768,0 -80.3475109001899,37.49117712186,0 -80.2879160750838,37.5111511482082,0 -80.280730446809,37.5362590748033,0 -80.3083037500729,37.5283701687601,0 -80.32590580737531,37.5334014957793,0 -80.3167216376968,37.5667185420532,0 -80.2463930602341,37.5968966073136,0 -80.2189280037138,37.624266818855,0 -80.2544222998619,37.6407036415196,0 -80.3009326903108,37.6405469490757,0 -80.30486267871009,37.6522463839109,0 -80.29570065300371,37.6715026681154,0 -80.3031097192157,37.6826718540633,0 -80.2500331441419,37.7260519868,0 -80.25468885608571,37.7572327793138,0 -80.2205461556516,37.7788585452909,0 -80.2237356887328,37.8023645289771,0 -80.1715945425769,37.842968579238,0 -80.17222039082991,37.860184199113,0 -80.16000537205031,37.8772283214768,0 -80.1185073346708,37.8912782976758,0 -80.10649074189941,37.9146585972358,0 -80.0548072329966,37.955647953318,0 -80.0004989600932,37.9898701188515,0 -79.9664936918756,38.0386218574803,0 -79.9575137202729,38.0673653777199,0 -79.9282922008952,38.1033111780769,0 -79.9353269126111,38.1213086373625,0 -79.9103399375918,38.1626063325108,0 -79.9161615169419,38.1792648616985,0 -79.8311519954685,38.2502792510352,0 -79.79362179587,38.2686659933911,0 -79.786511146829,38.2851184419634,0 -79.80277785836461,38.2988699252702,0 -79.80032894262899,38.3143267172637,0 -79.7640044528342,38.3539913109909,0 -79.7328295907797,38.35184011756,0 -79.7200352271452,38.3946858203824,0 -79.6840924127456,38.4302381558023,0 -79.6926537316952,38.50035433771,0 -79.6656146350943,38.5207779063414,0 -79.6694300335236,38.5501770266588,0 -79.642406563286,38.5923552608138,0 -79.5365137543052,38.5538055741145,0 -79.48634757115821,38.4621448879803,0 -79.3169995976733,38.4126332297745,0 -79.27235884061081,38.4373067075038,0 -79.2316628792895,38.4804961745132,0 + + + + + + + + Wisconsin + empty + + +states.AREA: + 56088.178 + + +states.STATE_NAME: +Wisconsin + + +states.STATE_FIPS: +55 + + +states.SUB_REGION: +E N Cen + + +states.STATE_ABBR: +WI + + +states.POP2000: + 5363675 + + +states.POP2001: + 5408886 + + +states.POP00_SQMI: + 96 + + +states.DEN_0_100: + 92 + + +USStates.ID: + 30 + + +USStates.State_Name: +Wisconsin + + +USStates.Date_Entered: +May 29 1848 + + +USStates.Year_Entered: +1848 + + +USStates.Year_Settled: +1766 + +]]> + #Style_5 + + + -90.006191227598,44.6331178864174,0 + + + + + + + -87.74855485166989,44.9616167936432,0 -87.6203354938252,44.9919977731043,0 -87.6185214385406,45.0568068963915,0 -87.58127586164061,45.0946399102465,0 -87.6648864796573,45.1090540526029,0 -87.6728141404664,45.1406726367061,0 -87.72966881168701,45.1766048406442,0 -87.7361999812867,45.1990723551736,0 -87.72162823196,45.2116719436728,0 -87.71966802928161,45.23677159669181,0 -87.7051420461443,45.2470862859939,0 -87.7044714190303,45.2722051755656,0 -87.645362038293,45.34816920676,0 -87.6436840378919,45.3618558882988,0 -87.6895980065264,45.3912693654604,0 -87.76003806908641,45.3528977344774,0 -87.8280078733776,45.3583213196226,0 -87.84128251380081,45.3461489152026,0 -87.86209606573161,45.3701651658513,0 -87.86853527657431,45.3720723766891,0 -87.8739746664525,45.36208580082749,0 -87.8836106233029,45.36585448274341,0 -87.8495317013046,45.4061175328758,0 -87.8602674034623,45.445098404767,0 -87.8136146858711,45.4664604760223,0 -87.78938490783349,45.49906763103741,0 -87.8051409550811,45.5445258364016,0 -87.8286019788526,45.5685917608724,0 -87.78631248967309,45.5685197968153,0 -87.77507546391441,45.6003869719677,0 -87.7760447968861,45.61320014924521,0 -87.8199378153198,45.6544505099681,0 -87.81705427025651,45.6653907719653,0 -87.7809448308433,45.67591566979451,0 -87.7774737292068,45.6841018123955,0 -87.8011558298595,45.70132435444889,0 -87.8015528795181,45.71139103613621,0 -87.8423627328109,45.7224184643369,0 -87.873628831766,45.7506993690495,0 -87.9691796312807,45.7664485705759,0 -87.99006981134831,45.7950463354111,0 -88.0516393398365,45.7861121476097,0 -88.0887340937991,45.79153251888161,0 -88.12994949370579,45.8194019526506,0 -88.121786443611,45.8348779040675,0 -88.0654210733109,45.8736421368008,0 -88.0957641221132,45.8918035055568,0 -88.093850061765,45.9206153043833,0 -88.1113904221148,45.9262876744074,0 -88.15043842419399,45.93629352156811,0 -88.1801939444304,45.9535166684228,0 -88.2149918189356,45.9479016364541,0 -88.25716803963969,45.9670551908873,0 -88.2991520587513,45.9619441469833,0 -88.32132305028109,45.9667127656587,0 -88.3699382062343,45.9945870784701,0 -88.40352211244171,45.9834220708464,0 -88.4543189656679,46.0007603460834,0 -88.483813961278,45.99915098858521,0 -88.49408327895949,46.0129599627087,0 -88.5156131830942,46.01860956196891,0 -88.5483579419945,46.0193002259831,0 -88.575357692098,46.0089590630598,0 -88.5975360335339,46.0155164912387,0 -88.61550234597981,45.9941205068572,0 -88.6436694832571,45.9933882928391,0 -88.6773838648913,46.0201441283944,0 -88.7036055788856,46.01892364058919,0 -88.7264096386053,46.029581736083,0 -88.7730171354202,46.021147746959,0 -88.7774806211023,46.0326143605406,0 -88.7938153525548,46.0363602068919,0 -88.80439717033499,46.0268046239007,0 -88.92519544224371,46.07360150800961,0 -88.9853010679315,46.1003912267907,0 -89.0998061353819,46.14564279170131,0 -89.925136091667,46.30402570041401,0 -90.1116593658125,46.3404289934283,0 -90.11517713167859,46.3651557309551,0 -90.1417974652462,46.39389931520821,0 -90.1613911037779,46.4423800673451,0 -90.2115257849797,46.5062949924702,0 -90.2584017374293,46.5087897865362,0 -90.2697849871137,46.5224805256097,0 -90.300181077668,46.5250515829943,0 -90.3023935803059,46.544296405249,0 -90.3137081584288,46.5515632659266,0 -90.38552505384241,46.5396577407228,0 -90.4081998571279,46.5686106643971,0 -90.54087719523838,46.587526707927,0 -90.73071390600759,46.6456961932741,0 -90.92624380194491,46.5855029087847,0 -90.77744559539779,46.8831225522614,0 -90.77448622396531,46.920235051196,0 -90.86173042389699,46.95247952331161,0 -91.55577281851249,46.7568600006141,0 -91.9214609310238,46.68013425257289,0 -92.0041571605491,46.6838004124073,0 -92.0959698317733,46.742627480002,0 -92.20915417453909,46.6468720259673,0 -92.2872715563534,46.6587860038615,0 -92.28868526089251,46.4159840674228,0 -92.2889439643788,46.1566006735494,0 -92.28937040263681,46.0732311286316,0 -92.3273726656403,46.05687820515121,0 -92.34622483014461,46.02259611620039,0 -92.36496279806639,46.0162488119767,0 -92.424999275654,46.02550410046081,0 -92.46234575772182,45.9811975360765,0 -92.523976865602,45.9825831928093,0 -92.5526720844383,45.951269177817,0 -92.66620788226589,45.9157031282064,0 -92.7062407667141,45.8909581511523,0 -92.73409766347459,45.8449807095829,0 -92.7487619268784,45.8373020678585,0 -92.7791069996475,45.7633404333685,0 -92.8336362361192,45.7308902363902,0 -92.86001973034908,45.7105625427853,0 -92.88539736667759,45.6449553564473,0 -92.87683120537091,45.5788365687146,0 -92.8350370161896,45.5634021889124,0 -92.7621749006385,45.5642634927727,0 -92.72815467639281,45.5472423195578,0 -92.6854210050266,45.47005330592301,0 -92.65481774623471,45.4552217732121,0 -92.64497507097812,45.4394520895191,0 -92.6487510358123,45.3954659291152,0 -92.6848697682278,45.3630764817203,0 -92.70738439950389,45.3182016620431,0 -92.7465933709999,45.2976031328022,0 -92.7554192919425,45.21237648106559,0 -92.76258304535911,45.1866121435376,0 -92.74493484528919,45.15642269767639,0 -92.745422213769,45.1130040157029,0 -92.7967618135124,45.06561027085739,0 -92.76299156220411,45.0221192057595,0 -92.76712645766899,45.00100490501169,0 -92.74976784308311,44.9356555439475,0 -92.75392579385328,44.9150027795129,0 -92.77187081519131,44.8994959546817,0 -92.7642634372038,44.8622340952332,0 -92.76102806028632,44.8353710549111,0 -92.8055846707726,44.7461605361291,0 -92.7371456955245,44.7135944805029,0 -92.6303675936169,44.6426524073846,0 -92.60897363372321,44.6102923158697,0 -92.50921485952681,44.5751591745776,0 -92.3408725165741,44.552835394321,0 -92.32047800875431,44.5404910618561,0 -92.2966874837295,44.4921818837451,0 -92.24910036010419,44.4562167874695,0 -92.20613743547611,44.438394406506,0 -92.09133339981391,44.4155898138742,0 -91.9723859734527,44.3644872200889,0 -91.93886834504872,44.339111391384,0 -91.92275412337878,44.3175199116197,0 -91.92234937163771,44.2883410303644,0 -91.8886943206616,44.2574949606432,0 -91.8487439445729,44.1911872320563,0 -91.75321932280971,44.137227713274,0 -91.65223360680488,44.0668957468858,0 -91.60178627007811,44.0408222716716,0 -91.5691620630017,44.0349552968239,0 -91.5284201557391,44.0342152895652,0 -91.42590181819401,43.9856198570706,0 -91.37335730440661,43.9471911008781,0 -91.2919479787799,43.8471907610578,0 -91.25110489264939,43.7880757984421,0 -91.2589159418758,43.722395792303,0 -91.25838918935199,43.6773222933277,0 -91.23298990442041,43.5988900700786,0 -91.2405580213774,43.5487125887566,0 -91.22356677965871,43.5008086595185,0 -91.2359034673886,43.4646842675378,0 -91.2109165788835,43.4240510516753,0 -91.1982436244129,43.3705129909022,0 -91.1770487337014,43.3539461618861,0 -91.0784980300101,43.3132978076873,0 -91.0664279003866,43.2806829026437,0 -91.06905228836891,43.2578982275476,0 -91.16135406498178,43.1475759290793,0 -91.16857153421861,43.0828878927565,0 -91.15975182052971,43.0811827642084,0 -91.15221381349258,43.0013164133112,0 -91.13912173775438,42.9258937074417,0 -91.09342868782861,42.8714402959622,0 -91.08203032553689,42.7833648801814,0 -91.06616869540581,42.7449138543659,0 -90.9991821130899,42.7070587627347,0 -90.9194089569959,42.6806774289755,0 -90.8925456651592,42.6782400547389,0 -90.74561006958859,42.6570014302673,0 -90.69479111313748,42.6379287671111,0 -90.66438062716411,42.5713918079808,0 -90.6392190290607,42.5557141169534,0 -90.62570743484611,42.5285622838299,0 -90.6384560963599,42.5093636839918,0 -90.42010292616368,42.5083649645861,0 -89.92369141557219,42.5041158651446,0 -89.8347389483978,42.5034685663175,0 -89.4006131996787,42.4975019535639,0 -89.35955888342031,42.4979178413637,0 -88.93918704924511,42.4908797705788,0 -88.76505788322029,42.4909223638021,0 -88.7066230964608,42.4896714789996,0 -88.29798928423431,42.4919886619727,0 -88.1947902657089,42.4896315487889,0 -87.7973819562241,42.4891528495242,0 -87.7915093421034,42.6666421877559,0 -87.75680359819531,42.7775461743457,0 -87.8198490647725,42.8415630287346,0 -87.83643858345231,42.9645925117624,0 -87.8919832366482,43.025774767081,0 -87.8600693594594,43.0758754737799,0 -87.8898341046723,43.1972168501054,0 -87.875332265271,43.3585925444523,0 -87.8029594309868,43.4587140200272,0 -87.78604512144111,43.5462973726183,0 -87.70272990708931,43.673176184158,0 -87.72612185690799,43.8939039013687,0 -87.6443707723702,44.0978304833909,0 -87.517321870142,44.1757544438288,0 -87.5374888264266,44.327851040331,0 -87.47352841738911,44.533946428449,0 -87.3730698286243,44.6769179257202,0 -87.3144651480241,44.7947187667926,0 -87.3674596241917,44.8115671454801,0 -87.4337469078088,44.8910966193734,0 -87.55167267236649,44.823023674588,0 -87.552787538369,44.851335539726,0 -87.61446385443389,44.8330474436257,0 -87.723821711772,44.6892873054325,0 -87.76422675186269,44.6440484536295,0 -87.86878274845451,44.6169062804272,0 -87.9264086419018,44.5391395831433,0 -87.9662280659456,44.5354962244836,0 -88.0404176211491,44.5714491701447,0 -88.0130207863445,44.6222344891289,0 -87.9757579463198,44.5958140991105,0 -88.0132878703546,44.6391183587922,0 -87.9831820526739,44.6772654177868,0 -87.9857916005318,44.7204744571881,0 -87.8310199470414,44.8733464383329,0 -87.83999268056699,44.9273231952437,0 -87.74855485166989,44.9616167936432,0 + + + + + + + + + -87.0345243941477,45.29040569681539,0 -87.0660643522929,45.29646276758369,0 -87.17791321565861,45.1549729181694,0 -87.2309150393896,45.1750634565753,0 -87.28348460482739,45.05261932024141,0 -87.3421608618244,45.0152129710161,0 -87.4054197495813,44.9111998705663,0 -87.3787368982934,44.8377427071621,0 -87.3111236315354,44.7987737179537,0 -87.2056505657533,44.8732394343083,0 -87.168787947216,44.9333234999383,0 -87.1786927530738,44.9828064333324,0 -87.1125569146153,45.0647632237614,0 -87.08390064938131,45.0532855496328,0 -87.087678597292,45.0921787982349,0 -87.0449009447467,45.0955132700304,0 -87.0798757822438,45.14730698190781,0 -87.025448092593,45.1499741010013,0 -87.0451125513507,45.2490190549771,0 -86.9957342551258,45.2184117241819,0 -86.9677122639217,45.2402774692093,0 -86.9862536657799,45.29865699129501,0 -87.0345243941477,45.29040569681539,0 + + + + + + + + + Wyoming + empty + + +states.AREA: + 97803.199 + + +states.STATE_NAME: +Wyoming + + +states.STATE_FIPS: +56 + + +states.SUB_REGION: +Mtn + + +states.STATE_ABBR: +WY + + +states.POP2000: + 493782 + + +states.POP2001: + 495345 + + +states.POP00_SQMI: + 5 + + +states.DEN_0_100: + 100 + + +USStates.ID: + 44 + + +USStates.State_Name: +Wyoming + + +USStates.Date_Entered: +July 10 1890 + + +USStates.Year_Entered: +1890 + + +USStates.Year_Settled: +1834 + +]]> + #Style_5 + + + -107.553081008537,42.9982837598069,0 + + + + + + -104.053615199998,41.698218257724,0 -104.053513414154,41.9998153422964,0 -104.056219380476,42.6146696865973,0 -104.056198856311,43.0030623563908,0 -104.059157507468,43.4791339417582,0 -104.057913943497,43.5037122621461,0 -104.059479420181,43.8529065675403,0 -104.059731381692,44.1458254687842,0 -104.061036140765,44.1818252843501,0 -104.059465130268,44.5743526100096,0 -104.059842395291,44.9973362616199,0 -105.041795987521,45.0010758746085,0 -105.08500310735,44.9998170469188,0 -106.021150701601,44.9972137020636,0 -106.259231717931,44.9961625110408,0 -107.894374357914,44.9997736986363,0 -108.259238500746,45.00011515017601,0 -108.625256221974,44.9975931654829,0 -109.799385375449,44.9995227676354,0 -109.99552921526,45.0027929256921,0 -110.392759905743,44.9986252880153,0 -110.429649489646,44.9922851168859,0 -111.053428630452,44.9956954937749,0 -111.051615814026,44.6644904630696,0 -111.051560651262,44.4733232643312,0 -111.050405173289,43.9825533508377,0 -111.046771181184,43.5155282322774,0 -111.047498202203,43.2847346290475,0 -111.04921566545,43.0198830902658,0 -111.046780328328,42.503251870505,0 -111.04869741386,41.9962033494069,0 -111.051068773655,41.578592411864,0 -111.051651122482,41.2584254005779,0 -111.05102250907,40.9965835985974,0 -110.06318573561,40.9978919528284,0 -110.002165480573,40.9975995171866,0 -109.048314704754,40.9984333935171,0 -107.918671336725,41.0033751160193,0 -107.304051053295,41.0001333468858,0 -106.865438763821,40.9984573861084,0 -106.329125682765,41.001288969127,0 -106.203471481278,41.0000850018961,0 -105.278797604523,40.9963491628159,0 -104.934492922627,40.9942891435778,0 -104.05170553525,41.00321132686,0 -104.054012364451,41.3880858190034,0 -104.055500519791,41.5642223678205,0 -104.053615199998,41.698218257724,0 + + + + + + + + diff --git a/notebooks/geopandas/icon_layer.ipynb b/notebooks/geopandas/icon_layer.ipynb new file mode 100644 index 0000000..87f6d54 --- /dev/null +++ b/notebooks/geopandas/icon_layer.ipynb @@ -0,0 +1,365 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "39739f98", + "metadata": {}, + "outputs": [], + "source": [ + "import openlayers as ol\n", + "from openlayers.geopandas import GeoDataFrame, gdf_to_geojson" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c84609d7-996a-4316-a156-c39cebaef37d", + "metadata": {}, + "outputs": [], + "source": [ + "data = \"https://maplibre.org/maplibre-gl-js/docs/assets/earthquakes.geojson\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "fb037c28", + "metadata": {}, + "outputs": [], + "source": [ + "gdf = GeoDataFrame.from_file(data)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "88729a9d-5ea2-48fd-ace8-5010f6e2a04b", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idmagtimefelttsunamigeometry
0ak169945212.301507425650893NaN0POINT Z (-151.5129 63.1016 0)
1ak169945191.701507425289659NaN0POINT Z (-150.4048 63.1224 105.5)
2ak169945171.601507424832518NaN0POINT Z (-151.3597 63.0781 0)
3ci380213361.421507423898710NaN0POINT Z (-118.497 34.29967 7.64)
4us2000b2nn4.201507422626990NaN0POINT Z (-87.6901 12.0623 46.41)
.....................
6102uw613048771.151504836765080NaN0POINT Z (-122.56833 48.69917 3.29)
6103us2000ahu83.7015048364333402.00POINT Z (-111.4569 42.6238 5)
6104nc728880962.0315048351422304.00POINT Z (-122.05367 37.83517 7.59)
6105ak168218291.501504834613166NaN0POINT Z (-163.7652 67.5597 6.1)
6106hv619006262.911504833891990NaN0POINT Z (-155.01183 19.39933 2.609)
\n", + "

6107 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " id mag time felt tsunami \\\n", + "0 ak16994521 2.30 1507425650893 NaN 0 \n", + "1 ak16994519 1.70 1507425289659 NaN 0 \n", + "2 ak16994517 1.60 1507424832518 NaN 0 \n", + "3 ci38021336 1.42 1507423898710 NaN 0 \n", + "4 us2000b2nn 4.20 1507422626990 NaN 0 \n", + "... ... ... ... ... ... \n", + "6102 uw61304877 1.15 1504836765080 NaN 0 \n", + "6103 us2000ahu8 3.70 1504836433340 2.0 0 \n", + "6104 nc72888096 2.03 1504835142230 4.0 0 \n", + "6105 ak16821829 1.50 1504834613166 NaN 0 \n", + "6106 hv61900626 2.91 1504833891990 NaN 0 \n", + "\n", + " geometry \n", + "0 POINT Z (-151.5129 63.1016 0) \n", + "1 POINT Z (-150.4048 63.1224 105.5) \n", + "2 POINT Z (-151.3597 63.0781 0) \n", + "3 POINT Z (-118.497 34.29967 7.64) \n", + "4 POINT Z (-87.6901 12.0623 46.41) \n", + "... ... \n", + "6102 POINT Z (-122.56833 48.69917 3.29) \n", + "6103 POINT Z (-111.4569 42.6238 5) \n", + "6104 POINT Z (-122.05367 37.83517 7.59) \n", + "6105 POINT Z (-163.7652 67.5597 6.1) \n", + "6106 POINT Z (-155.01183 19.39933 2.609) \n", + "\n", + "[6107 rows x 6 columns]" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gdf" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "fa678da4-ead3-489c-9296-5907060d9077", + "metadata": {}, + "outputs": [], + "source": [ + "m = gdf[0:10].ol.icon(icon_src=\"https://upload.wikimedia.org/wikipedia/commons/7/7c/201408_cat.png\", icon_scale=0.1).explore()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "f25f4d6d-bf6a-4c0c-9f99-99382b8e9dfb", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "158bb835125f444080430a06ea50d3fc", + "version_major": 2, + "version_minor": 1 + }, + "text/plain": [ + "MapWidget(calls=[{'method': 'addLayer', 'args': ({'id': 'geopandas', 'source': {'@@geojson': {'type': 'Feature…" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "74dea72b-2158-4347-984f-6d62c130c01e", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'layers': [{'id': 'osm', 'type': 'TileLayer'},\n", + " {'id': 'geopandas', 'type': 'WebGLVectorLayer'}],\n", + " 'controls': []}" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "beca60c5-3925-45f1-a7d5-1a409deb6272", + "metadata": {}, + "outputs": [], + "source": [ + "# m.add_call(\"setVectorSource\", \"geopandas\", ol.VectorSource(geojson=gdf_to_geojson(gdf[20:100])).model_dump())" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "dcc1f821-ecf7-4bf0-8dab-7b6e141824e5", + "metadata": {}, + "outputs": [], + "source": [ + "new_src = ol.VectorSource(geojson=gdf_to_geojson(gdf[20:100]))" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "41c064ca-b232-49a5-a597-ce69746446da", + "metadata": {}, + "outputs": [], + "source": [ + "m.set_source(layer_id=\"geopandas\", source=new_src)" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "24a5bdfa-a5f0-4493-999a-89f5876a57d8", + "metadata": {}, + "outputs": [], + "source": [ + "m.remove_layer(\"osm\")" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "31fdcb7d-b5b0-4755-adb2-d192e7e89114", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'layers': [{'id': 'osm', 'type': 'TileLayer'},\n", + " {'id': 'geopandas', 'type': 'WebGLVectorLayer'}],\n", + " 'controls': []}" + ] + }, + "execution_count": 13, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "50db0b70-4efc-4f68-a6ec-e3bab5dde7be", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/layers/Untitled.ipynb b/notebooks/layers/Untitled.ipynb index 31f81c9..14d3093 100644 --- a/notebooks/layers/Untitled.ipynb +++ b/notebooks/layers/Untitled.ipynb @@ -11,9 +11,17 @@ "from openlayers.basemaps import BasemapLayer" ] }, + { + "cell_type": "markdown", + "id": "7cd63ea3", + "metadata": {}, + "source": [ + "# Just a CartoDB basemap" + ] + }, { "cell_type": "code", - "execution_count": 2, + "execution_count": null, "id": "d8e07548-02fc-4f10-a6d4-8aaaddac5835", "metadata": {}, "outputs": [], @@ -24,7 +32,7 @@ }, { "cell_type": "code", - "execution_count": 3, + "execution_count": null, "id": "58821e15-137c-4f2b-9bb7-2c0fb4f464ec", "metadata": {}, "outputs": [], @@ -35,491 +43,120 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": null, "id": "208f5240", "metadata": {}, "outputs": [], "source": [ - "m = ol.MapWidget(view, layers=[basemap], controls=[ol.controls.ZoomSliderControl()])" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "id": "9e061519", - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.jupyter.widget-view+json": { - "model_id": "728505ecf777408ca0bab99bfdc63b49", - "version_major": 2, - "version_minor": 1 - }, - "text/plain": [ - "MapWidget(height='400px', map_options={'view': {'center': (9.481544, 51.312801), 'zoom': 12.0, 'projection': '…" - ] - }, - "execution_count": 5, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ + "m = ol.MapWidget(view, layers=[basemap])\n", "m" ] }, { "cell_type": "code", - "execution_count": 10, - "id": "705018de-ed98-4e03-9db6-5ddf35011282", - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'layers': [{'id': 'carto-dark-all', 'type': 'TileLayer'}],\n", - " 'controls': [{'id': 'a46ed639-981a-4275-9ee6-f58d614b91e7',\n", - " 'type': 'ZoomSliderControl'},\n", - " {'id': 'MyNiceCtrl', 'type': 'OverviewMapControl'}]}" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "m.map_metadata" - ] - }, - { - "cell_type": "code", - "execution_count": 8, - "id": "8bc59002-4b1a-4caa-9b67-a64cd83a60c1", + "execution_count": null, + "id": "9e061519", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'center': [1055480.6500140184, 6676812.232758811],\n", - " 'projection': 'EPSG:3857',\n", - " 'zoom': 8,\n", - " 'center_lonlat': [9.481544, 51.312801000000036]}" - ] - }, - "execution_count": 8, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "m.map_view_state" + "m.add_control(ol.controls.OverviewMapControl())" ] }, { - "cell_type": "code", - "execution_count": 9, + "cell_type": "markdown", "id": "005ffbf7", "metadata": {}, - "outputs": [], "source": [ - "ctrl_id = \"MyNiceCtrl\"\n", - "m.add_control(ol.controls.OverviewMapControl(id=ctrl_id))\n", - "# m.remove_control(control_id=ctrl_id)" + "# GeoPandas Extension" ] }, { "cell_type": "code", - "execution_count": 9, + "execution_count": 2, "id": "9191dc35", "metadata": {}, "outputs": [], "source": [ - "m.remove_layer(layer_id=\"carto-dark_all\")" + "from openlayers.styles import FlatStyle" ] }, { "cell_type": "code", - "execution_count": 7, - "id": "ea76d744", - "metadata": {}, - "outputs": [], - "source": [ - "# m.add_layer(BasemapLayer.carto(\"light_all\"))\n", - "m.remove_layer(\"carto-light-all\")" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "id": "1aa4155d", - "metadata": {}, - "outputs": [], - "source": [ - "url = \"https://openlayers.org/en/v4.6.5/examples/data/geojson/countries.geojson\"\n", - "countries = ol.WebGLVectorLayer(source=ol.VectorSource(url=url))" - ] - }, - { - "cell_type": "code", - "execution_count": 7, + "execution_count": 3, "id": "2e7cee1d", "metadata": {}, "outputs": [], "source": [ - "m.add_layer(countries)\n", - "\n", - "# m.remove_layer(countries.id)\n", - "# m.add_tooltip()\n", - "#import geopandas as gpd\n", - "#from openlayers.geopandas import OLGeoDataFrame" + "gdf = ol.GeoDataFrame.from_file(\"https://openlayers.org/data/vector/populated-places.json\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "2c00cb3f", "metadata": {}, - "outputs": [], - "source": [ - "# gdf = gpd.GeoDataFrame.from_file(\"https://openlayers.org/data/vector/populated-places.json\")\n", - "#gdf = OLGeoDataFrame.from_file(\"https://openlayers.org/data/vector/populated-places.json\")\n", - "#gdf.ol.explore()" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "75ea7643", - "metadata": {}, - "outputs": [], - "source": [ - "#gdf.ol.explore(style=FlatStyle(icon_src=\"https://openlayers.org/en/latest/examples/data/icon.png\", icon_color=\"red\"))" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "46e4d046", - "metadata": {}, - "outputs": [], - "source": [ - "#from openlayers.geopandas import OLAccessor" - ] - }, - { - "cell_type": "code", - "execution_count": null, - "id": "af24c60e", - "metadata": {}, - "outputs": [], - "source": [ - "#df = OLAccessor(gdf)" - ] - }, - { - "cell_type": "code", - "execution_count": 11, - "id": "a86d2c38", - "metadata": {}, "outputs": [ { "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "8a4d8ad8c64b4475ad5a1392075c53d6", + "version_major": 2, + "version_minor": 1 + }, "text/plain": [ - "['__annotations__',\n", - " '__class__',\n", - " '__copy__',\n", - " '__deepcopy__',\n", - " '__del__',\n", - " '__delattr__',\n", - " '__dict__',\n", - " '__dir__',\n", - " '__doc__',\n", - " '__eq__',\n", - " '__format__',\n", - " '__ge__',\n", - " '__getattribute__',\n", - " '__getstate__',\n", - " '__gt__',\n", - " '__hash__',\n", - " '__init__',\n", - " '__init_subclass__',\n", - " '__le__',\n", - " '__lt__',\n", - " '__module__',\n", - " '__ne__',\n", - " '__new__',\n", - " '__reduce__',\n", - " '__reduce_ex__',\n", - " '__repr__',\n", - " '__setattr__',\n", - " '__setstate__',\n", - " '__sizeof__',\n", - " '__str__',\n", - " '__subclasshook__',\n", - " '__weakref__',\n", - " '_active_widgets',\n", - " '_add_notifiers',\n", - " '_all_trait_default_generators',\n", - " '_anywidget_commands',\n", - " '_anywidget_id',\n", - " '_call_widget_constructed',\n", - " '_comm_changed',\n", - " '_compare',\n", - " '_control_comm',\n", - " '_cross_validation_lock',\n", - " '_css',\n", - " '_default_keys',\n", - " '_descriptors',\n", - " '_dom_classes',\n", - " '_esm',\n", - " '_gen_repr_from_keys',\n", - " '_get_embed_state',\n", - " '_get_trait_default_generator',\n", - " '_handle_control_comm_msg',\n", - " '_handle_custom_msg',\n", - " '_handle_msg',\n", - " '_holding_sync',\n", - " '_initial_view',\n", - " '_instance_inits',\n", - " '_is_numpy',\n", - " '_lock_property',\n", - " '_log_default',\n", - " '_model_id',\n", - " '_model_module',\n", - " '_model_module_version',\n", - " '_model_name',\n", - " '_msg_callbacks',\n", - " '_notify_observers',\n", - " '_notify_trait',\n", - " '_property_lock',\n", - " '_register_validator',\n", - " '_remove_notifiers',\n", - " '_repr_keys',\n", - " '_repr_mimebundle_',\n", - " '_send',\n", - " '_should_send_property',\n", - " '_states_to_send',\n", - " '_static_immutable_initial_values',\n", - " '_trait_default_generators',\n", - " '_trait_from_json',\n", - " '_trait_notifiers',\n", - " '_trait_to_json',\n", - " '_trait_validators',\n", - " '_trait_values',\n", - " '_traits',\n", - " '_view_count',\n", - " '_view_module',\n", - " '_view_module_version',\n", - " '_view_name',\n", - " '_widget_construction_callback',\n", - " '_widget_types',\n", - " 'add_call',\n", - " 'add_class',\n", - " 'add_control',\n", - " 'add_default_tooltip',\n", - " 'add_layer',\n", - " 'add_layer_call',\n", - " 'add_tooltip',\n", - " 'add_traits',\n", - " 'blur',\n", - " 'calls',\n", - " 'class_own_trait_events',\n", - " 'class_own_traits',\n", - " 'class_trait_names',\n", - " 'class_traits',\n", - " 'close',\n", - " 'close_all',\n", - " 'comm',\n", - " 'cross_validation_lock',\n", - " 'debug_data',\n", - " 'focus',\n", - " 'get_manager_state',\n", - " 'get_state',\n", - " 'get_view_spec',\n", - " 'handle_comm_opened',\n", - " 'handle_control_comm_opened',\n", - " 'has_trait',\n", - " 'height',\n", - " 'hold_sync',\n", - " 'hold_trait_notifications',\n", - " 'initial_view',\n", - " 'keys',\n", - " 'layout',\n", - " 'log',\n", - " 'map_created',\n", - " 'map_metadata',\n", - " 'map_options',\n", - " 'map_view_state',\n", - " 'model_id',\n", - " 'notify_change',\n", - " 'observe',\n", - " 'on_msg',\n", - " 'on_trait_change',\n", - " 'on_widget_constructed',\n", - " 'open',\n", - " 'remove_class',\n", - " 'remove_control',\n", - " 'remove_layer',\n", - " 'save',\n", - " 'send',\n", - " 'send_state',\n", - " 'set_layer_style',\n", - " 'set_state',\n", - " 'set_trait',\n", - " 'setup_instance',\n", - " 'tabbable',\n", - " 'to_html',\n", - " 'tooltip',\n", - " 'trait_defaults',\n", - " 'trait_events',\n", - " 'trait_has_value',\n", - " 'trait_metadata',\n", - " 'trait_names',\n", - " 'trait_values',\n", - " 'traits',\n", - " 'unobserve',\n", - " 'unobserve_all',\n", - " 'widget_types',\n", - " 'widgets']" + "MapWidget(calls=[{'method': 'addLayer', 'args': ({'id': 'geopandas', 'source': {'@@geojson': {'type': 'Feature…" ] }, - "execution_count": 11, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "dir(m)" + "style = FlatStyle(icon_src=\"https://openlayers.org/en/latest/examples/data/icon.png\", icon_color=\"red\")\n", + "# style = FlatStyle(circle_fill_color=\"red\", circle_radius=5, circle_stroke_color=\"blue\", circle_stroke_width=2)\n", + "gdf.ol.explore(style)" ] }, { "cell_type": "code", - "execution_count": 12, - "id": "6a8302d0-33ab-4301-b76a-ffc9a982f064", + "execution_count": null, + "id": "75ea7643", "metadata": {}, "outputs": [], "source": [ - "m.tooltip" + "gdf.ol.explore(style=FlatStyle(icon_src=\"https://openlayers.org/en/latest/examples/data/icon.png\", icon_color=\"red\"))" ] }, { "cell_type": "code", - "execution_count": 13, - "id": "9c96be35-8a37-445d-bec9-a57d182f8161", + "execution_count": null, + "id": "46e4d046", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "NoneType" - ] - }, - "execution_count": 13, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "type(m.tooltip)" + "from openlayers.geopandas import OLAccessor" ] }, { "cell_type": "code", - "execution_count": 18, - "id": "b760657b-f9a8-4afb-9fc3-40df988f8b45", + "execution_count": null, + "id": "af24c60e", "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "{'_anywidget_id': 'openlayers.anywidget.MapWidget',\n", - " '_css': ':root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:\" \"}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}\\n',\n", - " '_dom_classes': (),\n", - " '_esm': 'var Mx=Object.create;var xh=Object.defineProperty;var kx=Object.getOwnPropertyDescriptor;var Px=Object.getOwnPropertyNames;var Nx=Object.getPrototypeOf,Gx=Object.prototype.hasOwnProperty;var bt=(i,e)=>()=>(i&&(e=i(i=0)),e);var Fi=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),dn=(i,e)=>{for(var t in e)xh(i,t,{get:e[t],enumerable:!0})},Ox=(i,e,t,n)=>{if(e&&typeof e==\"object\"||typeof e==\"function\")for(let r of Px(e))!Gx.call(i,r)&&r!==t&&xh(i,r,{get:()=>e[r],enumerable:!(n=kx(e,r))||n.enumerable});return i};var fo=(i,e,t)=>(t=i!=null?Mx(Nx(i)):{},Ox(e||!i||!i.__esModule?xh(t,\"default\",{value:i,enumerable:!0}):t,i));var KC=Fi((Eq,wd)=>{function zC(i,e,t){let n=t&&t.debug||!1;n&&console.log(\"[xml-utils] getting \"+e+\" in \"+i);let r=typeof i==\"object\"?i.outer:i,o=r.slice(0,r.indexOf(\">\")+1),s=[\\'\"\\',\"\\'\"];for(let a=0;a{function qC(i,e,t){let r=new RegExp(e).exec(i.slice(t));return r?t+r.index:-1}Qd.exports=qC;Qd.exports.default=qC});var JC=Fi((_q,Sd)=>{function XC(i,e,t){let r=new RegExp(e).exec(i.slice(t));return r?t+r.index+r[0].length-1:-1}Sd.exports=XC;Sd.exports.default=XC});var WC=Fi((yq,Rd)=>{function jC(i,e){let t=new RegExp(e,\"g\"),n=i.match(t);return n?n.length:0}Rd.exports=jC;Rd.exports.default=jC});var e_=Fi((Bq,vd)=>{var dS=VC(),Td=JC(),ZC=WC();function $C(i,e,t){let n=t&&t.debug||!1,r=!(t&&typeof t.nested===!1),o=t&&t.startIndex||0;n&&console.log(\"[xml-utils] starting findTagByName with\",e,\" and \",t);let s=dS(i,`<${e}[ \\n>/]`,o);if(n&&console.log(\"[xml-utils] start:\",s),s===-1)return;let a=i.slice(s+e.length),A=Td(a,\"^[^<]*[ /]>\",0),l=A!==-1&&a[A-1]===\"/\";if(n&&console.log(\"[xml-utils] selfClosing:\",l),l===!1)if(r){let f=0,g=1,m=0;for(;(A=Td(a,\"[ /]\"+e+\">\",f))!==-1;){let d=a.substring(f,A+1);if(g+=ZC(d,\"<\"+e+`[ \\n\\t>]`),m+=ZC(d,\"\"),m>=g)break;f=A}}else A=Td(a,\"[ /]\"+e+\">\",0);let c=s+e.length+A+1;if(n&&console.log(\"[xml-utils] end:\",c),c===-1)return;let h=i.slice(s,c),u;return l?u=null:u=h.slice(h.indexOf(\">\")+1,h.lastIndexOf(\"<\")),{inner:u,outer:h,start:s,end:c}}vd.exports=$C;vd.exports.default=$C});var i_=Fi((xq,Dd)=>{var mS=e_();function t_(i,e,t){let n=[],r=t&&t.debug||!1,o=t&&typeof t.nested==\"boolean\"?t.nested:!0,s=t&&t.startIndex||0,a;for(;a=mS(i,e,{debug:r,startIndex:s});)o?s=a.start+1+e.length:s=a.end,n.push(a);return r&&console.log(\"findTagsByName found\",n.length,\"tags\"),n}Dd.exports=t_;Dd.exports.default=t_});var mc={};dn(mc,{ExtraSamplesValues:()=>Fd,LercAddCompression:()=>Ga,LercParameters:()=>Ld,arrayFields:()=>bd,fieldTagNames:()=>eo,fieldTagTypes:()=>pS,fieldTags:()=>vi,fieldTypeNames:()=>dc,fieldTypes:()=>le,geoKeyNames:()=>ds,geoKeys:()=>n_,photometricInterpretations:()=>Tt});var eo,vi,pS,bd,dc,le,Tt,Fd,Ld,Ga,ds,n_,Oa=bt(()=>{eo={315:\"Artist\",258:\"BitsPerSample\",265:\"CellLength\",264:\"CellWidth\",320:\"ColorMap\",259:\"Compression\",33432:\"Copyright\",306:\"DateTime\",338:\"ExtraSamples\",266:\"FillOrder\",289:\"FreeByteCounts\",288:\"FreeOffsets\",291:\"GrayResponseCurve\",290:\"GrayResponseUnit\",316:\"HostComputer\",270:\"ImageDescription\",257:\"ImageLength\",256:\"ImageWidth\",271:\"Make\",281:\"MaxSampleValue\",280:\"MinSampleValue\",272:\"Model\",254:\"NewSubfileType\",274:\"Orientation\",262:\"PhotometricInterpretation\",284:\"PlanarConfiguration\",296:\"ResolutionUnit\",278:\"RowsPerStrip\",277:\"SamplesPerPixel\",305:\"Software\",279:\"StripByteCounts\",273:\"StripOffsets\",255:\"SubfileType\",263:\"Threshholding\",282:\"XResolution\",283:\"YResolution\",326:\"BadFaxLines\",327:\"CleanFaxData\",343:\"ClipPath\",328:\"ConsecutiveBadFaxLines\",433:\"Decode\",434:\"DefaultImageColor\",269:\"DocumentName\",336:\"DotRange\",321:\"HalftoneHints\",346:\"Indexed\",347:\"JPEGTables\",285:\"PageName\",297:\"PageNumber\",317:\"Predictor\",319:\"PrimaryChromaticities\",532:\"ReferenceBlackWhite\",339:\"SampleFormat\",340:\"SMinSampleValue\",341:\"SMaxSampleValue\",559:\"StripRowCounts\",330:\"SubIFDs\",292:\"T4Options\",293:\"T6Options\",325:\"TileByteCounts\",323:\"TileLength\",324:\"TileOffsets\",322:\"TileWidth\",301:\"TransferFunction\",318:\"WhitePoint\",344:\"XClipPathUnits\",286:\"XPosition\",529:\"YCbCrCoefficients\",531:\"YCbCrPositioning\",530:\"YCbCrSubSampling\",345:\"YClipPathUnits\",287:\"YPosition\",37378:\"ApertureValue\",40961:\"ColorSpace\",36868:\"DateTimeDigitized\",36867:\"DateTimeOriginal\",34665:\"Exif IFD\",36864:\"ExifVersion\",33434:\"ExposureTime\",41728:\"FileSource\",37385:\"Flash\",40960:\"FlashpixVersion\",33437:\"FNumber\",42016:\"ImageUniqueID\",37384:\"LightSource\",37500:\"MakerNote\",37377:\"ShutterSpeedValue\",37510:\"UserComment\",33723:\"IPTC\",34675:\"ICC Profile\",700:\"XMP\",42112:\"GDAL_METADATA\",42113:\"GDAL_NODATA\",34377:\"Photoshop\",33550:\"ModelPixelScale\",33922:\"ModelTiepoint\",34264:\"ModelTransformation\",34735:\"GeoKeyDirectory\",34736:\"GeoDoubleParams\",34737:\"GeoAsciiParams\",50674:\"LercParameters\"},vi={};for(let i in eo)eo.hasOwnProperty(i)&&(vi[eo[i]]=parseInt(i,10));pS={256:\"SHORT\",257:\"SHORT\",258:\"SHORT\",259:\"SHORT\",262:\"SHORT\",273:\"LONG\",274:\"SHORT\",277:\"SHORT\",278:\"LONG\",279:\"LONG\",282:\"RATIONAL\",283:\"RATIONAL\",284:\"SHORT\",286:\"SHORT\",287:\"RATIONAL\",296:\"SHORT\",297:\"SHORT\",305:\"ASCII\",306:\"ASCII\",338:\"SHORT\",339:\"SHORT\",513:\"LONG\",514:\"LONG\",1024:\"SHORT\",1025:\"SHORT\",2048:\"SHORT\",2049:\"ASCII\",3072:\"SHORT\",3073:\"ASCII\",33550:\"DOUBLE\",33922:\"DOUBLE\",34264:\"DOUBLE\",34665:\"LONG\",34735:\"SHORT\",34736:\"DOUBLE\",34737:\"ASCII\",42113:\"ASCII\"},bd=[vi.BitsPerSample,vi.ExtraSamples,vi.SampleFormat,vi.StripByteCounts,vi.StripOffsets,vi.StripRowCounts,vi.TileByteCounts,vi.TileOffsets,vi.SubIFDs],dc={1:\"BYTE\",2:\"ASCII\",3:\"SHORT\",4:\"LONG\",5:\"RATIONAL\",6:\"SBYTE\",7:\"UNDEFINED\",8:\"SSHORT\",9:\"SLONG\",10:\"SRATIONAL\",11:\"FLOAT\",12:\"DOUBLE\",13:\"IFD\",16:\"LONG8\",17:\"SLONG8\",18:\"IFD8\"},le={};for(let i in dc)dc.hasOwnProperty(i)&&(le[dc[i]]=parseInt(i,10));Tt={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},Fd={Unspecified:0,Assocalpha:1,Unassalpha:2},Ld={Version:0,AddCompression:1},Ga={None:0,Deflate:1,Zstandard:2},ds={1024:\"GTModelTypeGeoKey\",1025:\"GTRasterTypeGeoKey\",1026:\"GTCitationGeoKey\",2048:\"GeographicTypeGeoKey\",2049:\"GeogCitationGeoKey\",2050:\"GeogGeodeticDatumGeoKey\",2051:\"GeogPrimeMeridianGeoKey\",2052:\"GeogLinearUnitsGeoKey\",2053:\"GeogLinearUnitSizeGeoKey\",2054:\"GeogAngularUnitsGeoKey\",2055:\"GeogAngularUnitSizeGeoKey\",2056:\"GeogEllipsoidGeoKey\",2057:\"GeogSemiMajorAxisGeoKey\",2058:\"GeogSemiMinorAxisGeoKey\",2059:\"GeogInvFlatteningGeoKey\",2060:\"GeogAzimuthUnitsGeoKey\",2061:\"GeogPrimeMeridianLongGeoKey\",2062:\"GeogTOWGS84GeoKey\",3072:\"ProjectedCSTypeGeoKey\",3073:\"PCSCitationGeoKey\",3074:\"ProjectionGeoKey\",3075:\"ProjCoordTransGeoKey\",3076:\"ProjLinearUnitsGeoKey\",3077:\"ProjLinearUnitSizeGeoKey\",3078:\"ProjStdParallel1GeoKey\",3079:\"ProjStdParallel2GeoKey\",3080:\"ProjNatOriginLongGeoKey\",3081:\"ProjNatOriginLatGeoKey\",3082:\"ProjFalseEastingGeoKey\",3083:\"ProjFalseNorthingGeoKey\",3084:\"ProjFalseOriginLongGeoKey\",3085:\"ProjFalseOriginLatGeoKey\",3086:\"ProjFalseOriginEastingGeoKey\",3087:\"ProjFalseOriginNorthingGeoKey\",3088:\"ProjCenterLongGeoKey\",3089:\"ProjCenterLatGeoKey\",3090:\"ProjCenterEastingGeoKey\",3091:\"ProjCenterNorthingGeoKey\",3092:\"ProjScaleAtNatOriginGeoKey\",3093:\"ProjScaleAtCenterGeoKey\",3094:\"ProjAzimuthAngleGeoKey\",3095:\"ProjStraightVertPoleLongGeoKey\",3096:\"ProjRectifiedGridAngleGeoKey\",4096:\"VerticalCSTypeGeoKey\",4097:\"VerticalCitationGeoKey\",4098:\"VerticalDatumGeoKey\",4099:\"VerticalUnitsGeoKey\"},n_={};for(let i in ds)ds.hasOwnProperty(i)&&(n_[ds[i]]=parseInt(i,10))});function _S(i,e){let t=i.length-e,n=0;do{for(let r=e;r>0;r--)i[n+e]+=i[n],n++;t-=e}while(t>0)}function yS(i,e,t){let n=0,r=i.length,o=r/t;for(;r>e;){for(let a=e;a>0;--a)i[n+e]+=i[n],++n;r-=e}let s=i.slice();for(let a=0;a=i.byteLength);++A){let l;if(e===2){switch(r[0]){case 8:l=new Uint8Array(i,A*a*t*s,a*t*s);break;case 16:l=new Uint16Array(i,A*a*t*s,a*t*s/2);break;case 32:l=new Uint32Array(i,A*a*t*s,a*t*s/4);break;default:throw new Error(`Predictor 2 not allowed with ${r[0]} bits per sample.`)}_S(l,a,s)}else e===3&&(l=new Uint8Array(i,A*a*t*s,a*t*s),yS(l,a,s))}return i}var h_=bt(()=>{});var dt,mr=bt(()=>{h_();dt=class{async decode(e,t){let n=await this.decodeBlock(t),r=e.Predictor||1;if(r!==1){let o=!e.StripOffsets,s=o?e.TileWidth:e.ImageWidth,a=o?e.TileLength:e.RowsPerStrip||e.ImageLength;return c_(n,r,s,a,e.BitsPerSample,e.PlanarConfiguration)}return n}}});var u_={};dn(u_,{default:()=>pc});var pc,f_=bt(()=>{mr();pc=class extends dt{decodeBlock(e){return e}}});var d_={};dn(d_,{default:()=>Ic});function xS(i,e,t){let n=e%8,r=Math.floor(e/8),o=8-n,s=e+t-(r+1)*8,a=8*(r+2)-(e+t),A=(r+2)*8-e;if(a=Math.max(0,a),r>=i.length)return console.warn(\"ran off the end of the buffer before finding EOI_CODE (end on input code)\"),Pd;let l=i[r]&2**(8-n)-1;l<<=t-o;let c=l;if(r+1>>a;h<<=Math.max(0,t-A),c+=h}if(s>8&&r+2>>h;c+=u}return c}function kd(i,e){for(let t=e.length-1;t>=0;t--)i.push(e[t]);return i}function wS(i){let e=new Uint16Array(4093),t=new Uint8Array(4093);for(let g=0;g<=257;g++)e[g]=4096,t[g]=g;let n=258,r=g_,o=0;function s(){n=258,r=g_}function a(g){let m=xS(g,o,r);return o+=r,m}function A(g,m){return t[n]=m,e[n]=g,n++,n-1}function l(g){let m=[];for(let d=g;d!==4096;d=e[d])m.push(t[d]);return m}let c=[];s();let h=new Uint8Array(i),u=a(h),f;for(;u!==Pd;){if(u===Md){for(s(),u=a(h);u===Md;)u=a(h);if(u===Pd)break;if(u>Md)throw new Error(`corrupted code at scanline ${u}`);{let g=l(u);kd(c,g),f=u}}else if(u=2**r&&(r===BS?f=void 0:r++),u=a(h)}return new Uint8Array(c)}var g_,Md,Pd,BS,Ic,m_=bt(()=>{mr();g_=9,Md=256,Pd=257,BS=12;Ic=class extends dt{decodeBlock(e){return wS(e,!1).buffer}}});var I_={};dn(I_,{default:()=>Qc});function p_(i,e){let t=0,n=[],r=16;for(;r>0&&!i[r-1];)--r;n.push({children:[],index:0});let o=n[0],s;for(let a=0;a0;)o=n.pop();for(o.index++,n.push(o);n.length<=a;)n.push(s={children:[],index:0}),o.children[o.index]=s.children,o=s;t++}a+10)return g--,f>>g&1;if(f=i[u++],f===255){let H=i[u++];if(H)throw new Error(`unexpected marker: ${(f<<8|H).toString(16)}`)}return g=7,f>>>7}function d(H){let O=H,K;for(;(K=m())!==null;){if(O=O[K],typeof O==\"number\")return O;if(typeof O!=\"object\")throw new Error(\"invalid huffman sequence\")}return null}function I(H){let O=H,K=0;for(;O>0;){let ie=m();if(ie===null)return;K=K<<1|ie,--O}return K}function p(H){let O=I(H);return O>=1<>4;if(de===0){if(Pe<15)break;ge+=16}else{ge+=Pe;let tt=Ua[ge];O[tt]=p(de),ge++}}}function C(H,O){let K=d(H.huffmanTableDC),ie=K===0?0:p(K)<0){y--;return}let K=o,ie=s;for(;K<=ie;){let ge=d(H.huffmanTableAC),Ie=ge&15,de=ge>>4;if(Ie===0){if(de<15){y=I(de)+(1<>4,tt===0)ge<15?(y=I(ge)+(1<=65488&&Y<=65495)u+=2;else break}return u-h}function SS(i,e){let t=[],{blocksPerLine:n,blocksPerColumn:r}=e,o=n<<3,s=new Int32Array(64),a=new Uint8Array(64);function A(l,c,h){let u=e.quantizationTable,f,g,m,d,I,p,_,C,E,y=h,B;for(B=0;B<64;B++)y[B]=l[B]*u[B];for(B=0;B<8;++B){let x=8*B;if(y[1+x]===0&&y[2+x]===0&&y[3+x]===0&&y[4+x]===0&&y[5+x]===0&&y[6+x]===0&&y[7+x]===0){E=ms*y[0+x]+512>>10,y[0+x]=E,y[1+x]=E,y[2+x]=E,y[3+x]=E,y[4+x]=E,y[5+x]=E,y[6+x]=E,y[7+x]=E;continue}f=ms*y[0+x]+128>>8,g=ms*y[4+x]+128>>8,m=y[2+x],d=y[6+x],I=wc*(y[1+x]-y[7+x])+128>>8,C=wc*(y[1+x]+y[7+x])+128>>8,p=y[3+x]<<4,_=y[5+x]<<4,E=f-g+1>>1,f=f+g+1>>1,g=E,E=m*xc+d*Bc+128>>8,m=m*Bc-d*xc+128>>8,d=E,E=I-_+1>>1,I=I+_+1>>1,_=E,E=C+p+1>>1,p=C-p+1>>1,C=E,E=f-d+1>>1,f=f+d+1>>1,d=E,E=g-m+1>>1,g=g+m+1>>1,m=E,E=I*yc+C*_c+2048>>12,I=I*_c-C*yc+2048>>12,C=E,E=p*Cc+_*Ec+2048>>12,p=p*Ec-_*Cc+2048>>12,_=E,y[0+x]=f+C,y[7+x]=f-C,y[1+x]=g+_,y[6+x]=g-_,y[2+x]=m+p,y[5+x]=m-p,y[3+x]=d+I,y[4+x]=d-I}for(B=0;B<8;++B){let x=B;if(y[1*8+x]===0&&y[2*8+x]===0&&y[3*8+x]===0&&y[4*8+x]===0&&y[5*8+x]===0&&y[6*8+x]===0&&y[7*8+x]===0){E=ms*h[B+0]+8192>>14,y[0*8+x]=E,y[1*8+x]=E,y[2*8+x]=E,y[3*8+x]=E,y[4*8+x]=E,y[5*8+x]=E,y[6*8+x]=E,y[7*8+x]=E;continue}f=ms*y[0*8+x]+2048>>12,g=ms*y[4*8+x]+2048>>12,m=y[2*8+x],d=y[6*8+x],I=wc*(y[1*8+x]-y[7*8+x])+2048>>12,C=wc*(y[1*8+x]+y[7*8+x])+2048>>12,p=y[3*8+x],_=y[5*8+x],E=f-g+1>>1,f=f+g+1>>1,g=E,E=m*xc+d*Bc+2048>>12,m=m*Bc-d*xc+2048>>12,d=E,E=I-_+1>>1,I=I+_+1>>1,_=E,E=C+p+1>>1,p=C-p+1>>1,C=E,E=f-d+1>>1,f=f+d+1>>1,d=E,E=g-m+1>>1,g=g+m+1>>1,m=E,E=I*yc+C*_c+2048>>12,I=I*_c-C*yc+2048>>12,C=E,E=p*Cc+_*Ec+2048>>12,p=p*Ec-_*Cc+2048>>12,_=E,y[0*8+x]=f+C,y[7*8+x]=f-C,y[1*8+x]=g+_,y[6*8+x]=g-_,y[2*8+x]=m+p,y[5*8+x]=m-p,y[3*8+x]=d+I,y[4*8+x]=d-I}for(B=0;B<64;++B){let x=128+(y[B]+8>>4);x<0?c[B]=0:x>255?c[B]=255:c[B]=x}}for(let l=0;l{mr();Ua=new Int32Array([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]),Ec=4017,Cc=799,_c=3406,yc=2276,Bc=1567,xc=3784,ms=5793,wc=2896;Nd=class{constructor(){this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}resetFrames(){this.frames=[]}parse(e){let t=0;function n(){let a=e[t]<<8|e[t+1];return t+=2,a}function r(){let a=n(),A=e.subarray(t,t+a-2);return t+=A.length,A}function o(a){let A=0,l=0,c,h;for(h in a.components)a.components.hasOwnProperty(h)&&(c=a.components[h],A>4===0)for(let h=0;h<64;h++){let u=Ua[h];c[u]=e[t++]}else if(l>>4===1)for(let h=0;h<64;h++){let u=Ua[h];c[u]=n()}else throw new Error(\"DQT: invalid table spec\");this.quantizationTables[l&15]=c}break}case 65472:case 65473:case 65474:{n();let a={extended:s===65473,progressive:s===65474,precision:e[t++],scanLines:n(),samplesPerLine:n(),components:{},componentsOrder:[]},A=e[t++],l;for(let c=0;c>4,u=e[t+1]&15,f=e[t+2];a.componentsOrder.push(l),a.components[l]={h,v:u,quantizationIdx:f},t+=3}o(a),this.frames.push(a);break}case 65476:{let a=n();for(let A=2;A>4===0?this.huffmanTablesDC[l&15]=p_(c,u):this.huffmanTablesAC[l&15]=p_(c,u)}break}case 65501:n(),this.resetInterval=n();break;case 65498:{n();let a=e[t++],A=[],l=this.frames[0];for(let g=0;g>4],m.huffmanTableAC=this.huffmanTablesAC[d&15],A.push(m)}let c=e[t++],h=e[t++],u=e[t++],f=QS(e,t,l,A,this.resetInterval,c,h,u>>4,u&15);t+=f;break}case 65535:e[t]!==255&&t--;break;default:if(e[t-3]===255&&e[t-2]>=192&&e[t-2]<=254){t-=3;break}throw new Error(`unknown JPEG marker ${s.toString(16)}`)}s=n()}}getResult(){let{frames:e}=this;if(this.frames.length===0)throw new Error(\"no frames were decoded\");this.frames.length>1&&console.warn(\"more than one frame is not supported\");for(let c=0;c=0;)i[e]=0}function Od(i,e,t,n,r){this.static_tree=i,this.extra_bits=e,this.extra_base=t,this.elems=n,this.max_length=r,this.has_stree=i&&i.length}function Ud(i,e){this.dyn_tree=i,this.max_code=0,this.stat_desc=e}function nn(i,e,t,n,r){this.good_length=i,this.max_lazy=e,this.nice_length=t,this.max_chain=n,this.func=r}function TR(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=kc,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(CR*2),this.dyn_dtree=new Uint16Array((2*IR+1)*2),this.bl_tree=new Uint16Array((2*ER+1)*2),pr(this.dyn_ltree),pr(this.dyn_dtree),pr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(_R+1),this.heap=new Uint16Array(2*im+1),pr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*im+1),pr(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function WR(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}function rA(i){this.options=Pc.assign({level:nT,method:oT,chunkSize:16384,windowBits:15,memLevel:8,strategy:rT},i||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new wy,this.strm.avail_out=0;let t=qa.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==Lc)throw new Error(ro[t]);if(e.header&&qa.deflateSetHeader(this.strm,e.header),e.dictionary){let n;if(typeof e.dictionary==\"string\"?n=eA.string2buf(e.dictionary):Qy.call(e.dictionary)===\"[object ArrayBuffer]\"?n=new Uint8Array(e.dictionary):n=e.dictionary,t=qa.deflateSetDictionary(this.strm,n),t!==Lc)throw new Error(ro[t]);this._dict_set=!0}}function fm(i,e){let t=new rA(e);if(t.push(i,!0),t.err)throw t.msg||ro[t.err];return t.result}function sT(i,e){return e=e||{},e.raw=!0,fm(i,e)}function aT(i,e){return e=e||{},e.gzip=!0,fm(i,e)}function vT(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function VT(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}function oA(i){this.options=Pc.assign({chunkSize:1024*64,windowBits:15,to:\"\"},i||{});let e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(i&&i.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15)===0&&(e.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new wy,this.strm.avail_out=0;let t=On.inflateInit2(this.strm,e.windowBits);if(t!==tA)throw new Error(ro[t]);if(this.header=new XT,On.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary==\"string\"?e.dictionary=eA.string2buf(e.dictionary):Ny.call(e.dictionary)===\"[object ArrayBuffer]\"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=On.inflateSetDictionary(this.strm,e.dictionary),t!==tA)))throw new Error(ro[t])}function gm(i,e){let t=new oA(e);if(t.push(i),t.err)throw t.msg||ro[t.err];return t.result}function $T(i,e){return e=e||{},e.raw=!0,gm(i,e)}var RS,ry,TS,vS,DS,Am,iA,Xa,Es,lm,oy,to,Gd,bS,cm,sy,ay,Ay,$d,bc,FS,ly,LS,Gn,Ka,Ja,ja,hm,Fc,cy,hy,uy,fy,Wa,Kt,rn,gy,MS,kS,dy,PS,my,py,C_,Yd,__,em,y_,B_,NS,GS,OS,x_,US,Iy,YS,HS,zS,KS,qS,VS,XS,JS,jS,WS,Za,ZS,$S,eR,ct,ro,Bs,tR,tm,iR,Er,nR,Cr,rR,oR,di,w_,mt,Q_,on,sR,Hd,aR,AR,Sc,lR,cR,hR,uR,kc,fR,gR,dR,mR,pR,im,IR,ER,CR,_R,Ee,Ir,sn,yR,Cs,um,nm,rm,om,sm,io,Ha,vt,xs,oo,ws,BR,no,S_,pr,xR,wR,_r,ei,ti,Qe,Ya,am,Ey,_s,Cy,zd,ps,QR,SR,za,RR,nA,_y,yy,vR,By,DR,bR,FR,LR,MR,kR,PR,NR,GR,OR,UR,YR,HR,qa,zR,KR,qR,Pc,xy,$a,VR,XR,JR,jR,eA,wy,Qy,ZR,$R,eT,tT,Lc,iT,nT,rT,oT,AT,lT,cT,hT,uT,fT,Rc,gT,dT,Is,R_,T_,v_,Kd,D_,mT,pT,IT,ET,CT,Va,_T,Sy,Ry,b_,yT,Tc,so,BT,xT,mi,Ty,vy,wT,F_,Nc,L_,M_,k_,P_,N_,G_,O_,U_,Y_,Mc,Nn,qd,H_,Vd,z_,K_,q_,V_,vc,Dc,X_,J_,j_,W_,Z_,Xd,$_,ey,Me,Dy,by,QT,ST,RT,TT,ty,ao,Fy,Ly,My,ky,DT,iy,Jd,jd,bT,Py,FT,LT,MT,kT,PT,NT,GT,OT,UT,YT,HT,zT,KT,qT,On,XT,Ny,JT,jT,tA,Wd,Zd,WT,ny,ZT,ev,tv,iv,nv,rv,ov,bq,Fq,Lq,Mq,kq,sv,Pq,Nq,Gc,dm=bt(()=>{RS=0,ry=1,TS=2,vS=3,DS=258,Am=29,iA=256,Xa=iA+1+Am,Es=30,lm=19,oy=2*Xa+1,to=15,Gd=16,bS=7,cm=256,sy=16,ay=17,Ay=18,$d=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),bc=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),FS=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ly=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),LS=512,Gn=new Array((Xa+2)*2);ys(Gn);Ka=new Array(Es*2);ys(Ka);Ja=new Array(LS);ys(Ja);ja=new Array(DS-vS+1);ys(ja);hm=new Array(Am);ys(hm);Fc=new Array(Es);ys(Fc);fy=i=>i<256?Ja[i]:Ja[256+(i>>>7)],Wa=(i,e)=>{i.pending_buf[i.pending++]=e&255,i.pending_buf[i.pending++]=e>>>8&255},Kt=(i,e,t)=>{i.bi_valid>Gd-t?(i.bi_buf|=e<>Gd-i.bi_valid,i.bi_valid+=t-Gd):(i.bi_buf|=e<{Kt(i,t[e*2],t[e*2+1])},gy=(i,e)=>{let t=0;do t|=i&1,i>>>=1,t<<=1;while(--e>0);return t>>>1},MS=i=>{i.bi_valid===16?(Wa(i,i.bi_buf),i.bi_buf=0,i.bi_valid=0):i.bi_valid>=8&&(i.pending_buf[i.pending++]=i.bi_buf&255,i.bi_buf>>=8,i.bi_valid-=8)},kS=(i,e)=>{let t=e.dyn_tree,n=e.max_code,r=e.stat_desc.static_tree,o=e.stat_desc.has_stree,s=e.stat_desc.extra_bits,a=e.stat_desc.extra_base,A=e.stat_desc.max_length,l,c,h,u,f,g,m=0;for(u=0;u<=to;u++)i.bl_count[u]=0;for(t[i.heap[i.heap_max]*2+1]=0,l=i.heap_max+1;lA&&(u=A,m++),t[c*2+1]=u,!(c>n)&&(i.bl_count[u]++,f=0,c>=a&&(f=s[c-a]),g=t[c*2],i.opt_len+=g*(u+f),o&&(i.static_len+=g*(r[c*2+1]+f)));if(m!==0){do{for(u=A-1;i.bl_count[u]===0;)u--;i.bl_count[u]--,i.bl_count[u+1]+=2,i.bl_count[A]--,m-=2}while(m>0);for(u=A;u!==0;u--)for(c=i.bl_count[u];c!==0;)h=i.heap[--l],!(h>n)&&(t[h*2+1]!==u&&(i.opt_len+=(u-t[h*2+1])*t[h*2],t[h*2+1]=u),c--)}},dy=(i,e,t)=>{let n=new Array(to+1),r=0,o,s;for(o=1;o<=to;o++)r=r+t[o-1]<<1,n[o]=r;for(s=0;s<=e;s++){let a=i[s*2+1];a!==0&&(i[s*2]=gy(n[a]++,a))}},PS=()=>{let i,e,t,n,r,o=new Array(to+1);for(t=0,n=0;n>=7;n{let e;for(e=0;e{i.bi_valid>8?Wa(i,i.bi_buf):i.bi_valid>0&&(i.pending_buf[i.pending++]=i.bi_buf),i.bi_buf=0,i.bi_valid=0},C_=(i,e,t,n)=>{let r=e*2,o=t*2;return i[r]{let n=i.heap[t],r=t<<1;for(;r<=i.heap_len&&(r{let n,r,o=0,s,a;if(i.sym_next!==0)do n=i.pending_buf[i.sym_buf+o++]&255,n+=(i.pending_buf[i.sym_buf+o++]&255)<<8,r=i.pending_buf[i.sym_buf+o++],n===0?rn(i,r,e):(s=ja[r],rn(i,s+iA+1,e),a=$d[s],a!==0&&(r-=hm[s],Kt(i,r,a)),n--,s=fy(n),rn(i,s,t),a=bc[s],a!==0&&(n-=Fc[s],Kt(i,n,a)));while(o{let t=e.dyn_tree,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,o=e.stat_desc.elems,s,a,A=-1,l;for(i.heap_len=0,i.heap_max=oy,s=0;s>1;s>=1;s--)Yd(i,t,s);l=o;do s=i.heap[1],i.heap[1]=i.heap[i.heap_len--],Yd(i,t,1),a=i.heap[1],i.heap[--i.heap_max]=s,i.heap[--i.heap_max]=a,t[l*2]=t[s*2]+t[a*2],i.depth[l]=(i.depth[s]>=i.depth[a]?i.depth[s]:i.depth[a])+1,t[s*2+1]=t[a*2+1]=l,i.heap[1]=l++,Yd(i,t,1);while(i.heap_len>=2);i.heap[--i.heap_max]=i.heap[1],kS(i,e),dy(t,A,i.bl_count)},y_=(i,e,t)=>{let n,r=-1,o,s=e[0*2+1],a=0,A=7,l=4;for(s===0&&(A=138,l=3),e[(t+1)*2+1]=65535,n=0;n<=t;n++)o=s,s=e[(n+1)*2+1],!(++a{let n,r=-1,o,s=e[0*2+1],a=0,A=7,l=4;for(s===0&&(A=138,l=3),n=0;n<=t;n++)if(o=s,s=e[(n+1)*2+1],!(++a{let e;for(y_(i,i.dyn_ltree,i.l_desc.max_code),y_(i,i.dyn_dtree,i.d_desc.max_code),em(i,i.bl_desc),e=lm-1;e>=3&&i.bl_tree[ly[e]*2+1]===0;e--);return i.opt_len+=3*(e+1)+5+5+4,e},GS=(i,e,t,n)=>{let r;for(Kt(i,e-257,5),Kt(i,t-1,5),Kt(i,n-4,4),r=0;r{let e=4093624447,t;for(t=0;t<=31;t++,e>>>=1)if(e&1&&i.dyn_ltree[t*2]!==0)return 0;if(i.dyn_ltree[9*2]!==0||i.dyn_ltree[10*2]!==0||i.dyn_ltree[13*2]!==0)return 1;for(t=32;t{x_||(PS(),x_=!0),i.l_desc=new Ud(i.dyn_ltree,cy),i.d_desc=new Ud(i.dyn_dtree,hy),i.bl_desc=new Ud(i.bl_tree,uy),i.bi_buf=0,i.bi_valid=0,my(i)},Iy=(i,e,t,n)=>{Kt(i,(RS<<1)+(n?1:0),3),py(i),Wa(i,t),Wa(i,~t),t&&i.pending_buf.set(i.window.subarray(e,e+t),i.pending),i.pending+=t},YS=i=>{Kt(i,ry<<1,3),rn(i,cm,Gn),MS(i)},HS=(i,e,t,n)=>{let r,o,s=0;i.level>0?(i.strm.data_type===2&&(i.strm.data_type=OS(i)),em(i,i.l_desc),em(i,i.d_desc),s=NS(i),r=i.opt_len+3+7>>>3,o=i.static_len+3+7>>>3,o<=r&&(r=o)):r=o=t+5,t+4<=r&&e!==-1?Iy(i,e,t,n):i.strategy===4||o===r?(Kt(i,(ry<<1)+(n?1:0),3),__(i,Gn,Ka)):(Kt(i,(TS<<1)+(n?1:0),3),GS(i,i.l_desc.max_code+1,i.d_desc.max_code+1,s+1),__(i,i.dyn_ltree,i.dyn_dtree)),my(i),n&&py(i)},zS=(i,e,t)=>(i.pending_buf[i.sym_buf+i.sym_next++]=e,i.pending_buf[i.sym_buf+i.sym_next++]=e>>8,i.pending_buf[i.sym_buf+i.sym_next++]=t,e===0?i.dyn_ltree[t*2]++:(i.matches++,e--,i.dyn_ltree[(ja[t]+iA+1)*2]++,i.dyn_dtree[fy(e)*2]++),i.sym_next===i.sym_end),KS=US,qS=Iy,VS=HS,XS=zS,JS=YS,jS={_tr_init:KS,_tr_stored_block:qS,_tr_flush_block:VS,_tr_tally:XS,_tr_align:JS},WS=(i,e,t,n)=>{let r=i&65535|0,o=i>>>16&65535|0,s=0;for(;t!==0;){s=t>2e3?2e3:t,t-=s;do r=r+e[n++]|0,o=o+r|0;while(--s);r%=65521,o%=65521}return r|o<<16|0},Za=WS,ZS=()=>{let i,e=[];for(var t=0;t<256;t++){i=t;for(var n=0;n<8;n++)i=i&1?3988292384^i>>>1:i>>>1;e[t]=i}return e},$S=new Uint32Array(ZS()),eR=(i,e,t,n)=>{let r=$S,o=n+t;i^=-1;for(let s=n;s>>8^r[(i^e[s])&255];return i^-1},ct=eR,ro={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"},Bs={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:tR,_tr_stored_block:tm,_tr_flush_block:iR,_tr_tally:Er,_tr_align:nR}=jS,{Z_NO_FLUSH:Cr,Z_PARTIAL_FLUSH:rR,Z_FULL_FLUSH:oR,Z_FINISH:di,Z_BLOCK:w_,Z_OK:mt,Z_STREAM_END:Q_,Z_STREAM_ERROR:on,Z_DATA_ERROR:sR,Z_BUF_ERROR:Hd,Z_DEFAULT_COMPRESSION:aR,Z_FILTERED:AR,Z_HUFFMAN_ONLY:Sc,Z_RLE:lR,Z_FIXED:cR,Z_DEFAULT_STRATEGY:hR,Z_UNKNOWN:uR,Z_DEFLATED:kc}=Bs,fR=9,gR=15,dR=8,mR=29,pR=256,im=pR+1+mR,IR=30,ER=19,CR=2*im+1,_R=15,Ee=3,Ir=258,sn=Ir+Ee+1,yR=32,Cs=42,um=57,nm=69,rm=73,om=91,sm=103,io=113,Ha=666,vt=1,xs=2,oo=3,ws=4,BR=3,no=(i,e)=>(i.msg=ro[e],e),S_=i=>i*2-(i>4?9:0),pr=i=>{let e=i.length;for(;--e>=0;)i[e]=0},xR=i=>{let e,t,n,r=i.w_size;e=i.hash_size,n=e;do t=i.head[--n],i.head[n]=t>=r?t-r:0;while(--e);e=r,n=e;do t=i.prev[--n],i.prev[n]=t>=r?t-r:0;while(--e)},wR=(i,e,t)=>(e<{let e=i.state,t=e.pending;t>i.avail_out&&(t=i.avail_out),t!==0&&(i.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),i.next_out),i.next_out+=t,e.pending_out+=t,i.total_out+=t,i.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0))},ti=(i,e)=>{iR(i,i.block_start>=0?i.block_start:-1,i.strstart-i.block_start,e),i.block_start=i.strstart,ei(i.strm)},Qe=(i,e)=>{i.pending_buf[i.pending++]=e},Ya=(i,e)=>{i.pending_buf[i.pending++]=e>>>8&255,i.pending_buf[i.pending++]=e&255},am=(i,e,t,n)=>{let r=i.avail_in;return r>n&&(r=n),r===0?0:(i.avail_in-=r,e.set(i.input.subarray(i.next_in,i.next_in+r),t),i.state.wrap===1?i.adler=Za(i.adler,e,r,t):i.state.wrap===2&&(i.adler=ct(i.adler,e,r,t)),i.next_in+=r,i.total_in+=r,r)},Ey=(i,e)=>{let t=i.max_chain_length,n=i.strstart,r,o,s=i.prev_length,a=i.nice_match,A=i.strstart>i.w_size-sn?i.strstart-(i.w_size-sn):0,l=i.window,c=i.w_mask,h=i.prev,u=i.strstart+Ir,f=l[n+s-1],g=l[n+s];i.prev_length>=i.good_match&&(t>>=2),a>i.lookahead&&(a=i.lookahead);do if(r=e,!(l[r+s]!==g||l[r+s-1]!==f||l[r]!==l[n]||l[++r]!==l[n+1])){n+=2,r++;do;while(l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&ns){if(i.match_start=e,s=o,o>=a)break;f=l[n+s-1],g=l[n+s]}}while((e=h[e&c])>A&&--t!==0);return s<=i.lookahead?s:i.lookahead},_s=i=>{let e=i.w_size,t,n,r;do{if(n=i.window_size-i.lookahead-i.strstart,i.strstart>=e+(e-sn)&&(i.window.set(i.window.subarray(e,e+e-n),0),i.match_start-=e,i.strstart-=e,i.block_start-=e,i.insert>i.strstart&&(i.insert=i.strstart),xR(i),n+=e),i.strm.avail_in===0)break;if(t=am(i.strm,i.window,i.strstart+i.lookahead,n),i.lookahead+=t,i.lookahead+i.insert>=Ee)for(r=i.strstart-i.insert,i.ins_h=i.window[r],i.ins_h=_r(i,i.ins_h,i.window[r+1]);i.insert&&(i.ins_h=_r(i,i.ins_h,i.window[r+Ee-1]),i.prev[r&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=r,r++,i.insert--,!(i.lookahead+i.insert{let t=i.pending_buf_size-5>i.w_size?i.w_size:i.pending_buf_size-5,n,r,o,s=0,a=i.strm.avail_in;do{if(n=65535,o=i.bi_valid+42>>3,i.strm.avail_outr+i.strm.avail_in&&(n=r+i.strm.avail_in),n>o&&(n=o),n>8,i.pending_buf[i.pending-2]=~n,i.pending_buf[i.pending-1]=~n>>8,ei(i.strm),r&&(r>n&&(r=n),i.strm.output.set(i.window.subarray(i.block_start,i.block_start+r),i.strm.next_out),i.strm.next_out+=r,i.strm.avail_out-=r,i.strm.total_out+=r,i.block_start+=r,n-=r),n&&(am(i.strm,i.strm.output,i.strm.next_out,n),i.strm.next_out+=n,i.strm.avail_out-=n,i.strm.total_out+=n)}while(s===0);return a-=i.strm.avail_in,a&&(a>=i.w_size?(i.matches=2,i.window.set(i.strm.input.subarray(i.strm.next_in-i.w_size,i.strm.next_in),0),i.strstart=i.w_size,i.insert=i.strstart):(i.window_size-i.strstart<=a&&(i.strstart-=i.w_size,i.window.set(i.window.subarray(i.w_size,i.w_size+i.strstart),0),i.matches<2&&i.matches++,i.insert>i.strstart&&(i.insert=i.strstart)),i.window.set(i.strm.input.subarray(i.strm.next_in-a,i.strm.next_in),i.strstart),i.strstart+=a,i.insert+=a>i.w_size-i.insert?i.w_size-i.insert:a),i.block_start=i.strstart),i.high_watero&&i.block_start>=i.w_size&&(i.block_start-=i.w_size,i.strstart-=i.w_size,i.window.set(i.window.subarray(i.w_size,i.w_size+i.strstart),0),i.matches<2&&i.matches++,o+=i.w_size,i.insert>i.strstart&&(i.insert=i.strstart)),o>i.strm.avail_in&&(o=i.strm.avail_in),o&&(am(i.strm,i.window,i.strstart,o),i.strstart+=o,i.insert+=o>i.w_size-i.insert?i.w_size-i.insert:o),i.high_water>3,o=i.pending_buf_size-o>65535?65535:i.pending_buf_size-o,t=o>i.w_size?i.w_size:o,r=i.strstart-i.block_start,(r>=t||(r||e===di)&&e!==Cr&&i.strm.avail_in===0&&r<=o)&&(n=r>o?o:r,s=e===di&&i.strm.avail_in===0&&n===r?1:0,tm(i,i.block_start,n,s),i.block_start+=n,ei(i.strm)),s?oo:vt)},zd=(i,e)=>{let t,n;for(;;){if(i.lookahead=Ee&&(i.ins_h=_r(i,i.ins_h,i.window[i.strstart+Ee-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart),t!==0&&i.strstart-t<=i.w_size-sn&&(i.match_length=Ey(i,t)),i.match_length>=Ee)if(n=Er(i,i.strstart-i.match_start,i.match_length-Ee),i.lookahead-=i.match_length,i.match_length<=i.max_lazy_match&&i.lookahead>=Ee){i.match_length--;do i.strstart++,i.ins_h=_r(i,i.ins_h,i.window[i.strstart+Ee-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart;while(--i.match_length!==0);i.strstart++}else i.strstart+=i.match_length,i.match_length=0,i.ins_h=i.window[i.strstart],i.ins_h=_r(i,i.ins_h,i.window[i.strstart+1]);else n=Er(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++;if(n&&(ti(i,!1),i.strm.avail_out===0))return vt}return i.insert=i.strstart{let t,n,r;for(;;){if(i.lookahead=Ee&&(i.ins_h=_r(i,i.ins_h,i.window[i.strstart+Ee-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart),i.prev_length=i.match_length,i.prev_match=i.match_start,i.match_length=Ee-1,t!==0&&i.prev_length4096)&&(i.match_length=Ee-1)),i.prev_length>=Ee&&i.match_length<=i.prev_length){r=i.strstart+i.lookahead-Ee,n=Er(i,i.strstart-1-i.prev_match,i.prev_length-Ee),i.lookahead-=i.prev_length-1,i.prev_length-=2;do++i.strstart<=r&&(i.ins_h=_r(i,i.ins_h,i.window[i.strstart+Ee-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart);while(--i.prev_length!==0);if(i.match_available=0,i.match_length=Ee-1,i.strstart++,n&&(ti(i,!1),i.strm.avail_out===0))return vt}else if(i.match_available){if(n=Er(i,0,i.window[i.strstart-1]),n&&ti(i,!1),i.strstart++,i.lookahead--,i.strm.avail_out===0)return vt}else i.match_available=1,i.strstart++,i.lookahead--}return i.match_available&&(n=Er(i,0,i.window[i.strstart-1]),i.match_available=0),i.insert=i.strstart{let t,n,r,o,s=i.window;for(;;){if(i.lookahead<=Ir){if(_s(i),i.lookahead<=Ir&&e===Cr)return vt;if(i.lookahead===0)break}if(i.match_length=0,i.lookahead>=Ee&&i.strstart>0&&(r=i.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){o=i.strstart+Ir;do;while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&ri.lookahead&&(i.match_length=i.lookahead)}if(i.match_length>=Ee?(t=Er(i,1,i.match_length-Ee),i.lookahead-=i.match_length,i.strstart+=i.match_length,i.match_length=0):(t=Er(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++),t&&(ti(i,!1),i.strm.avail_out===0))return vt}return i.insert=0,e===di?(ti(i,!0),i.strm.avail_out===0?oo:ws):i.sym_next&&(ti(i,!1),i.strm.avail_out===0)?vt:xs},SR=(i,e)=>{let t;for(;;){if(i.lookahead===0&&(_s(i),i.lookahead===0)){if(e===Cr)return vt;break}if(i.match_length=0,t=Er(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++,t&&(ti(i,!1),i.strm.avail_out===0))return vt}return i.insert=0,e===di?(ti(i,!0),i.strm.avail_out===0?oo:ws):i.sym_next&&(ti(i,!1),i.strm.avail_out===0)?vt:xs};za=[new nn(0,0,0,0,Cy),new nn(4,4,8,4,zd),new nn(4,5,16,8,zd),new nn(4,6,32,32,zd),new nn(4,4,16,16,ps),new nn(8,16,32,32,ps),new nn(8,16,128,128,ps),new nn(8,32,128,256,ps),new nn(32,128,258,1024,ps),new nn(32,258,258,4096,ps)],RR=i=>{i.window_size=2*i.w_size,pr(i.head),i.max_lazy_match=za[i.level].max_lazy,i.good_match=za[i.level].good_length,i.nice_match=za[i.level].nice_length,i.max_chain_length=za[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=Ee-1,i.match_available=0,i.ins_h=0};nA=i=>{if(!i)return 1;let e=i.state;return!e||e.strm!==i||e.status!==Cs&&e.status!==um&&e.status!==nm&&e.status!==rm&&e.status!==om&&e.status!==sm&&e.status!==io&&e.status!==Ha?1:0},_y=i=>{if(nA(i))return no(i,on);i.total_in=i.total_out=0,i.data_type=uR;let e=i.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?um:e.wrap?Cs:io,i.adler=e.wrap===2?0:1,e.last_flush=-2,tR(e),mt},yy=i=>{let e=_y(i);return e===mt&&RR(i.state),e},vR=(i,e)=>nA(i)||i.state.wrap!==2?on:(i.state.gzhead=e,mt),By=(i,e,t,n,r,o)=>{if(!i)return on;let s=1;if(e===aR&&(e=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>fR||t!==kc||n<8||n>15||e<0||e>9||o<0||o>cR||n===8&&s!==1)return no(i,on);n===8&&(n=9);let a=new TR;return i.state=a,a.strm=i,a.status=Cs,a.wrap=s,a.gzhead=null,a.w_bits=n,a.w_size=1<By(i,e,kc,gR,dR,hR),bR=(i,e)=>{if(nA(i)||e>w_||e<0)return i?no(i,on):on;let t=i.state;if(!i.output||i.avail_in!==0&&!i.input||t.status===Ha&&e!==di)return no(i,i.avail_out===0?Hd:on);let n=t.last_flush;if(t.last_flush=e,t.pending!==0){if(ei(i),i.avail_out===0)return t.last_flush=-1,mt}else if(i.avail_in===0&&S_(e)<=S_(n)&&e!==di)return no(i,Hd);if(t.status===Ha&&i.avail_in!==0)return no(i,Hd);if(t.status===Cs&&t.wrap===0&&(t.status=io),t.status===Cs){let r=kc+(t.w_bits-8<<4)<<8,o=-1;if(t.strategy>=Sc||t.level<2?o=0:t.level<6?o=1:t.level===6?o=2:o=3,r|=o<<6,t.strstart!==0&&(r|=yR),r+=31-r%31,Ya(t,r),t.strstart!==0&&(Ya(t,i.adler>>>16),Ya(t,i.adler&65535)),i.adler=1,t.status=io,ei(i),t.pending!==0)return t.last_flush=-1,mt}if(t.status===um){if(i.adler=0,Qe(t,31),Qe(t,139),Qe(t,8),t.gzhead)Qe(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),Qe(t,t.gzhead.time&255),Qe(t,t.gzhead.time>>8&255),Qe(t,t.gzhead.time>>16&255),Qe(t,t.gzhead.time>>24&255),Qe(t,t.level===9?2:t.strategy>=Sc||t.level<2?4:0),Qe(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(Qe(t,t.gzhead.extra.length&255),Qe(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(i.adler=ct(i.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=nm;else if(Qe(t,0),Qe(t,0),Qe(t,0),Qe(t,0),Qe(t,0),Qe(t,t.level===9?2:t.strategy>=Sc||t.level<2?4:0),Qe(t,BR),t.status=io,ei(i),t.pending!==0)return t.last_flush=-1,mt}if(t.status===nm){if(t.gzhead.extra){let r=t.pending,o=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+o>t.pending_buf_size;){let a=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+a),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>r&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex+=a,ei(i),t.pending!==0)return t.last_flush=-1,mt;r=0,o-=a}let s=new Uint8Array(t.gzhead.extra);t.pending_buf.set(s.subarray(t.gzindex,t.gzindex+o),t.pending),t.pending+=o,t.gzhead.hcrc&&t.pending>r&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex=0}t.status=rm}if(t.status===rm){if(t.gzhead.name){let r=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>r&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),ei(i),t.pending!==0)return t.last_flush=-1,mt;r=0}t.gzindexr&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex=0}t.status=om}if(t.status===om){if(t.gzhead.comment){let r=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>r&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),ei(i),t.pending!==0)return t.last_flush=-1,mt;r=0}t.gzindexr&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r))}t.status=sm}if(t.status===sm){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(ei(i),t.pending!==0))return t.last_flush=-1,mt;Qe(t,i.adler&255),Qe(t,i.adler>>8&255),i.adler=0}if(t.status=io,ei(i),t.pending!==0)return t.last_flush=-1,mt}if(i.avail_in!==0||t.lookahead!==0||e!==Cr&&t.status!==Ha){let r=t.level===0?Cy(t,e):t.strategy===Sc?SR(t,e):t.strategy===lR?QR(t,e):za[t.level].func(t,e);if((r===oo||r===ws)&&(t.status=Ha),r===vt||r===oo)return i.avail_out===0&&(t.last_flush=-1),mt;if(r===xs&&(e===rR?nR(t):e!==w_&&(tm(t,0,0,!1),e===oR&&(pr(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),ei(i),i.avail_out===0))return t.last_flush=-1,mt}return e!==di?mt:t.wrap<=0?Q_:(t.wrap===2?(Qe(t,i.adler&255),Qe(t,i.adler>>8&255),Qe(t,i.adler>>16&255),Qe(t,i.adler>>24&255),Qe(t,i.total_in&255),Qe(t,i.total_in>>8&255),Qe(t,i.total_in>>16&255),Qe(t,i.total_in>>24&255)):(Ya(t,i.adler>>>16),Ya(t,i.adler&65535)),ei(i),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?mt:Q_)},FR=i=>{if(nA(i))return on;let e=i.state.status;return i.state=null,e===io?no(i,sR):mt},LR=(i,e)=>{let t=e.length;if(nA(i))return on;let n=i.state,r=n.wrap;if(r===2||r===1&&n.status!==Cs||n.lookahead)return on;if(r===1&&(i.adler=Za(i.adler,e,t,0)),n.wrap=0,t>=n.w_size){r===0&&(pr(n.head),n.strstart=0,n.block_start=0,n.insert=0);let A=new Uint8Array(n.w_size);A.set(e.subarray(t-n.w_size,t),0),e=A,t=n.w_size}let o=i.avail_in,s=i.next_in,a=i.input;for(i.avail_in=t,i.next_in=0,i.input=e,_s(n);n.lookahead>=Ee;){let A=n.strstart,l=n.lookahead-(Ee-1);do n.ins_h=_r(n,n.ins_h,n.window[A+Ee-1]),n.prev[A&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=A,A++;while(--l);n.strstart=A,n.lookahead=Ee-1,_s(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=Ee-1,n.match_available=0,i.next_in=s,i.input=a,i.avail_in=o,n.wrap=r,mt},MR=DR,kR=By,PR=yy,NR=_y,GR=vR,OR=bR,UR=FR,YR=LR,HR=\"pako deflate (from Nodeca project)\",qa={deflateInit:MR,deflateInit2:kR,deflateReset:PR,deflateResetKeep:NR,deflateSetHeader:GR,deflate:OR,deflateEnd:UR,deflateSetDictionary:YR,deflateInfo:HR},zR=(i,e)=>Object.prototype.hasOwnProperty.call(i,e),KR=function(i){let e=Array.prototype.slice.call(arguments,1);for(;e.length;){let t=e.shift();if(t){if(typeof t!=\"object\")throw new TypeError(t+\"must be non-object\");for(let n in t)zR(t,n)&&(i[n]=t[n])}}return i},qR=i=>{let e=0;for(let n=0,r=i.length;n=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1;$a[254]=$a[254]=1;VR=i=>{if(typeof TextEncoder==\"function\"&&TextEncoder.prototype.encode)return new TextEncoder().encode(i);let e,t,n,r,o,s=i.length,a=0;for(r=0;r>>6,e[o++]=128|t&63):t<65536?(e[o++]=224|t>>>12,e[o++]=128|t>>>6&63,e[o++]=128|t&63):(e[o++]=240|t>>>18,e[o++]=128|t>>>12&63,e[o++]=128|t>>>6&63,e[o++]=128|t&63);return e},XR=(i,e)=>{if(e<65534&&i.subarray&&xy)return String.fromCharCode.apply(null,i.length===e?i:i.subarray(0,e));let t=\"\";for(let n=0;n{let t=e||i.length;if(typeof TextDecoder==\"function\"&&TextDecoder.prototype.decode)return new TextDecoder().decode(i.subarray(0,e));let n,r,o=new Array(t*2);for(r=0,n=0;n4){o[r++]=65533,n+=a-1;continue}for(s&=a===2?31:a===3?15:7;a>1&&n1){o[r++]=65533;continue}s<65536?o[r++]=s:(s-=65536,o[r++]=55296|s>>10&1023,o[r++]=56320|s&1023)}return XR(o,r)},jR=(i,e)=>{e=e||i.length,e>i.length&&(e=i.length);let t=e-1;for(;t>=0&&(i[t]&192)===128;)t--;return t<0||t===0?e:t+$a[i[t]]>e?t:e},eA={string2buf:VR,buf2string:JR,utf8border:jR};wy=WR,Qy=Object.prototype.toString,{Z_NO_FLUSH:ZR,Z_SYNC_FLUSH:$R,Z_FULL_FLUSH:eT,Z_FINISH:tT,Z_OK:Lc,Z_STREAM_END:iT,Z_DEFAULT_COMPRESSION:nT,Z_DEFAULT_STRATEGY:rT,Z_DEFLATED:oT}=Bs;rA.prototype.push=function(i,e){let t=this.strm,n=this.options.chunkSize,r,o;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?tT:ZR,typeof i==\"string\"?t.input=eA.string2buf(i):Qy.call(i)===\"[object ArrayBuffer]\"?t.input=new Uint8Array(i):t.input=i,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),(o===$R||o===eT)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(r=qa.deflate(t,o),r===iT)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),r=qa.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Lc;if(t.avail_out===0){this.onData(t.output);continue}if(o>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};rA.prototype.onData=function(i){this.chunks.push(i)};rA.prototype.onEnd=function(i){i===Lc&&(this.result=Pc.flattenChunks(this.chunks)),this.chunks=[],this.err=i,this.msg=this.strm.msg};AT=rA,lT=fm,cT=sT,hT=aT,uT=Bs,fT={Deflate:AT,deflate:lT,deflateRaw:cT,gzip:hT,constants:uT},Rc=16209,gT=16191,dT=function(e,t){let n,r,o,s,a,A,l,c,h,u,f,g,m,d,I,p,_,C,E,y,B,x,Q,w,T=e.state;n=e.next_in,Q=e.input,r=n+(e.avail_in-5),o=e.next_out,w=e.output,s=o-(t-e.avail_out),a=o+(e.avail_out-257),A=T.dmax,l=T.wsize,c=T.whave,h=T.wnext,u=T.window,f=T.hold,g=T.bits,m=T.lencode,d=T.distcode,I=(1<>>24,f>>>=C,g-=C,C=_>>>16&255,C===0)w[o++]=_&65535;else if(C&16){E=_&65535,C&=15,C&&(g>>=C,g-=C),g<15&&(f+=Q[n++]<>>24,f>>>=C,g-=C,C=_>>>16&255,C&16){if(y=_&65535,C&=15,gA){e.msg=\"invalid distance too far back\",T.mode=Rc;break e}if(f>>>=C,g-=C,C=o-s,y>C){if(C=y-C,C>c&&T.sane){e.msg=\"invalid distance too far back\",T.mode=Rc;break e}if(B=0,x=u,h===0){if(B+=l-C,C2;)w[o++]=x[B++],w[o++]=x[B++],w[o++]=x[B++],E-=3;E&&(w[o++]=x[B++],E>1&&(w[o++]=x[B++]))}else{B=o-y;do w[o++]=w[B++],w[o++]=w[B++],w[o++]=w[B++],E-=3;while(E>2);E&&(w[o++]=w[B++],E>1&&(w[o++]=w[B++]))}}else if((C&64)===0){_=d[(_&65535)+(f&(1<>3,n-=E,g-=E<<3,f&=(1<{let A=a.bits,l=0,c=0,h=0,u=0,f=0,g=0,m=0,d=0,I=0,p=0,_,C,E,y,B,x=null,Q,w=new Uint16Array(Is+1),T=new Uint16Array(Is+1),R=null,F,D,S;for(l=0;l<=Is;l++)w[l]=0;for(c=0;c=1&&w[u]===0;u--);if(f>u&&(f=u),u===0)return r[o++]=1<<24|64<<16|0,r[o++]=1<<24|64<<16|0,a.bits=1,0;for(h=1;h0&&(i===v_||u!==1))return-1;for(T[1]=0,l=1;lR_||i===D_&&I>T_)return 1;for(;;){F=l-m,s[c]+1=Q?(D=R[s[c]-Q],S=x[s[c]-Q]):(D=96,S=0),_=1<>m)+C]=F<<24|D<<16|S|0;while(C!==0);for(_=1<>=1;if(_!==0?(p&=_-1,p+=_):p=0,c++,--w[l]===0){if(l===u)break;l=e[t+s[c]]}if(l>f&&(p&y)!==E){for(m===0&&(m=f),B+=h,g=l-m,d=1<R_||i===D_&&I>T_)return 1;E=p&y,r[E]=f<<24|g<<16|B-o|0}}return p!==0&&(r[B+p]=l-m<<24|64<<16|0),a.bits=f,0},Va=CT,_T=0,Sy=1,Ry=2,{Z_FINISH:b_,Z_BLOCK:yT,Z_TREES:Tc,Z_OK:so,Z_STREAM_END:BT,Z_NEED_DICT:xT,Z_STREAM_ERROR:mi,Z_DATA_ERROR:Ty,Z_MEM_ERROR:vy,Z_BUF_ERROR:wT,Z_DEFLATED:F_}=Bs,Nc=16180,L_=16181,M_=16182,k_=16183,P_=16184,N_=16185,G_=16186,O_=16187,U_=16188,Y_=16189,Mc=16190,Nn=16191,qd=16192,H_=16193,Vd=16194,z_=16195,K_=16196,q_=16197,V_=16198,vc=16199,Dc=16200,X_=16201,J_=16202,j_=16203,W_=16204,Z_=16205,Xd=16206,$_=16207,ey=16208,Me=16209,Dy=16210,by=16211,QT=852,ST=592,RT=15,TT=RT,ty=i=>(i>>>24&255)+(i>>>8&65280)+((i&65280)<<8)+((i&255)<<24);ao=i=>{if(!i)return 1;let e=i.state;return!e||e.strm!==i||e.modeby?1:0},Fy=i=>{if(ao(i))return mi;let e=i.state;return i.total_in=i.total_out=e.total=0,i.msg=\"\",e.wrap&&(i.adler=e.wrap&1),e.mode=Nc,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(QT),e.distcode=e.distdyn=new Int32Array(ST),e.sane=1,e.back=-1,so},Ly=i=>{if(ao(i))return mi;let e=i.state;return e.wsize=0,e.whave=0,e.wnext=0,Fy(i)},My=(i,e)=>{let t;if(ao(i))return mi;let n=i.state;return e<0?(t=0,e=-e):(t=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?mi:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=t,n.wbits=e,Ly(i))},ky=(i,e)=>{if(!i)return mi;let t=new vT;i.state=t,t.strm=i,t.window=null,t.mode=Nc;let n=My(i,e);return n!==so&&(i.state=null),n},DT=i=>ky(i,TT),iy=!0,bT=i=>{if(iy){Jd=new Int32Array(512),jd=new Int32Array(32);let e=0;for(;e<144;)i.lens[e++]=8;for(;e<256;)i.lens[e++]=9;for(;e<280;)i.lens[e++]=7;for(;e<288;)i.lens[e++]=8;for(Va(Sy,i.lens,0,288,Jd,0,i.work,{bits:9}),e=0;e<32;)i.lens[e++]=5;Va(Ry,i.lens,0,32,jd,0,i.work,{bits:5}),iy=!1}i.lencode=Jd,i.lenbits=9,i.distcode=jd,i.distbits=5},Py=(i,e,t,n)=>{let r,o=i.state;return o.window===null&&(o.wsize=1<=o.wsize?(o.window.set(e.subarray(t-o.wsize,t),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>n&&(r=n),o.window.set(e.subarray(t-n,t-n+r),o.wnext),n-=r,n?(o.window.set(e.subarray(t-n,t),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave{let t,n,r,o,s,a,A,l,c,h,u,f,g,m,d=0,I,p,_,C,E,y,B,x,Q=new Uint8Array(4),w,T,R=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ao(i)||!i.output||!i.input&&i.avail_in!==0)return mi;t=i.state,t.mode===Nn&&(t.mode=qd),s=i.next_out,r=i.output,A=i.avail_out,o=i.next_in,n=i.input,a=i.avail_in,l=t.hold,c=t.bits,h=a,u=A,x=so;e:for(;;)switch(t.mode){case Nc:if(t.wrap===0){t.mode=qd;break}for(;c<16;){if(a===0)break e;a--,l+=n[o++]<>>8&255,t.check=ct(t.check,Q,2,0),l=0,c=0,t.mode=L_;break}if(t.head&&(t.head.done=!1),!(t.wrap&1)||(((l&255)<<8)+(l>>8))%31){i.msg=\"incorrect header check\",t.mode=Me;break}if((l&15)!==F_){i.msg=\"unknown compression method\",t.mode=Me;break}if(l>>>=4,c-=4,B=(l&15)+8,t.wbits===0&&(t.wbits=B),B>15||B>t.wbits){i.msg=\"invalid window size\",t.mode=Me;break}t.dmax=1<>8&1),t.flags&512&&t.wrap&4&&(Q[0]=l&255,Q[1]=l>>>8&255,t.check=ct(t.check,Q,2,0)),l=0,c=0,t.mode=M_;case M_:for(;c<32;){if(a===0)break e;a--,l+=n[o++]<>>8&255,Q[2]=l>>>16&255,Q[3]=l>>>24&255,t.check=ct(t.check,Q,4,0)),l=0,c=0,t.mode=k_;case k_:for(;c<16;){if(a===0)break e;a--,l+=n[o++]<>8),t.flags&512&&t.wrap&4&&(Q[0]=l&255,Q[1]=l>>>8&255,t.check=ct(t.check,Q,2,0)),l=0,c=0,t.mode=P_;case P_:if(t.flags&1024){for(;c<16;){if(a===0)break e;a--,l+=n[o++]<>>8&255,t.check=ct(t.check,Q,2,0)),l=0,c=0}else t.head&&(t.head.extra=null);t.mode=N_;case N_:if(t.flags&1024&&(f=t.length,f>a&&(f=a),f&&(t.head&&(B=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(n.subarray(o,o+f),B)),t.flags&512&&t.wrap&4&&(t.check=ct(t.check,n,f,o)),a-=f,o+=f,t.length-=f),t.length))break e;t.length=0,t.mode=G_;case G_:if(t.flags&2048){if(a===0)break e;f=0;do B=n[o+f++],t.head&&B&&t.length<65536&&(t.head.name+=String.fromCharCode(B));while(B&&f>9&1,t.head.done=!0),i.adler=t.check=0,t.mode=Nn;break;case Y_:for(;c<32;){if(a===0)break e;a--,l+=n[o++]<>>=c&7,c-=c&7,t.mode=Xd;break}for(;c<3;){if(a===0)break e;a--,l+=n[o++]<>>=1,c-=1,l&3){case 0:t.mode=H_;break;case 1:if(bT(t),t.mode=vc,e===Tc){l>>>=2,c-=2;break e}break;case 2:t.mode=K_;break;case 3:i.msg=\"invalid block type\",t.mode=Me}l>>>=2,c-=2;break;case H_:for(l>>>=c&7,c-=c&7;c<32;){if(a===0)break e;a--,l+=n[o++]<>>16^65535)){i.msg=\"invalid stored block lengths\",t.mode=Me;break}if(t.length=l&65535,l=0,c=0,t.mode=Vd,e===Tc)break e;case Vd:t.mode=z_;case z_:if(f=t.length,f){if(f>a&&(f=a),f>A&&(f=A),f===0)break e;r.set(n.subarray(o,o+f),s),a-=f,o+=f,A-=f,s+=f,t.length-=f;break}t.mode=Nn;break;case K_:for(;c<14;){if(a===0)break e;a--,l+=n[o++]<>>=5,c-=5,t.ndist=(l&31)+1,l>>>=5,c-=5,t.ncode=(l&15)+4,l>>>=4,c-=4,t.nlen>286||t.ndist>30){i.msg=\"too many length or distance symbols\",t.mode=Me;break}t.have=0,t.mode=q_;case q_:for(;t.have>>=3,c-=3}for(;t.have<19;)t.lens[R[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,w={bits:t.lenbits},x=Va(_T,t.lens,0,19,t.lencode,0,t.work,w),t.lenbits=w.bits,x){i.msg=\"invalid code lengths set\",t.mode=Me;break}t.have=0,t.mode=V_;case V_:for(;t.have>>24,p=d>>>16&255,_=d&65535,!(I<=c);){if(a===0)break e;a--,l+=n[o++]<>>=I,c-=I,t.lens[t.have++]=_;else{if(_===16){for(T=I+2;c>>=I,c-=I,t.have===0){i.msg=\"invalid bit length repeat\",t.mode=Me;break}B=t.lens[t.have-1],f=3+(l&3),l>>>=2,c-=2}else if(_===17){for(T=I+3;c>>=I,c-=I,B=0,f=3+(l&7),l>>>=3,c-=3}else{for(T=I+7;c>>=I,c-=I,B=0,f=11+(l&127),l>>>=7,c-=7}if(t.have+f>t.nlen+t.ndist){i.msg=\"invalid bit length repeat\",t.mode=Me;break}for(;f--;)t.lens[t.have++]=B}}if(t.mode===Me)break;if(t.lens[256]===0){i.msg=\"invalid code -- missing end-of-block\",t.mode=Me;break}if(t.lenbits=9,w={bits:t.lenbits},x=Va(Sy,t.lens,0,t.nlen,t.lencode,0,t.work,w),t.lenbits=w.bits,x){i.msg=\"invalid literal/lengths set\",t.mode=Me;break}if(t.distbits=6,t.distcode=t.distdyn,w={bits:t.distbits},x=Va(Ry,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,w),t.distbits=w.bits,x){i.msg=\"invalid distances set\",t.mode=Me;break}if(t.mode=vc,e===Tc)break e;case vc:t.mode=Dc;case Dc:if(a>=6&&A>=258){i.next_out=s,i.avail_out=A,i.next_in=o,i.avail_in=a,t.hold=l,t.bits=c,dT(i,u),s=i.next_out,r=i.output,A=i.avail_out,o=i.next_in,n=i.input,a=i.avail_in,l=t.hold,c=t.bits,t.mode===Nn&&(t.back=-1);break}for(t.back=0;d=t.lencode[l&(1<>>24,p=d>>>16&255,_=d&65535,!(I<=c);){if(a===0)break e;a--,l+=n[o++]<>C)],I=d>>>24,p=d>>>16&255,_=d&65535,!(C+I<=c);){if(a===0)break e;a--,l+=n[o++]<>>=C,c-=C,t.back+=C}if(l>>>=I,c-=I,t.back+=I,t.length=_,p===0){t.mode=Z_;break}if(p&32){t.back=-1,t.mode=Nn;break}if(p&64){i.msg=\"invalid literal/length code\",t.mode=Me;break}t.extra=p&15,t.mode=X_;case X_:if(t.extra){for(T=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=J_;case J_:for(;d=t.distcode[l&(1<>>24,p=d>>>16&255,_=d&65535,!(I<=c);){if(a===0)break e;a--,l+=n[o++]<>C)],I=d>>>24,p=d>>>16&255,_=d&65535,!(C+I<=c);){if(a===0)break e;a--,l+=n[o++]<>>=C,c-=C,t.back+=C}if(l>>>=I,c-=I,t.back+=I,p&64){i.msg=\"invalid distance code\",t.mode=Me;break}t.offset=_,t.extra=p&15,t.mode=j_;case j_:if(t.extra){for(T=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){i.msg=\"invalid distance too far back\",t.mode=Me;break}t.mode=W_;case W_:if(A===0)break e;if(f=u-A,t.offset>f){if(f=t.offset-f,f>t.whave&&t.sane){i.msg=\"invalid distance too far back\",t.mode=Me;break}f>t.wnext?(f-=t.wnext,g=t.wsize-f):g=t.wnext-f,f>t.length&&(f=t.length),m=t.window}else m=r,g=s-t.offset,f=t.length;f>A&&(f=A),A-=f,t.length-=f;do r[s++]=m[g++];while(--f);t.length===0&&(t.mode=Dc);break;case Z_:if(A===0)break e;r[s++]=t.length,A--,t.mode=Dc;break;case Xd:if(t.wrap){for(;c<32;){if(a===0)break e;a--,l|=n[o++]<{if(ao(i))return mi;let e=i.state;return e.window&&(e.window=null),i.state=null,so},MT=(i,e)=>{if(ao(i))return mi;let t=i.state;return(t.wrap&2)===0?mi:(t.head=e,e.done=!1,so)},kT=(i,e)=>{let t=e.length,n,r,o;return ao(i)||(n=i.state,n.wrap!==0&&n.mode!==Mc)?mi:n.mode===Mc&&(r=1,r=Za(r,e,t,0),r!==n.check)?Ty:(o=Py(i,e,t,t),o?(n.mode=Dy,vy):(n.havedict=1,so))},PT=Ly,NT=My,GT=Fy,OT=DT,UT=ky,YT=FT,HT=LT,zT=MT,KT=kT,qT=\"pako inflate (from Nodeca project)\",On={inflateReset:PT,inflateReset2:NT,inflateResetKeep:GT,inflateInit:OT,inflateInit2:UT,inflate:YT,inflateEnd:HT,inflateGetHeader:zT,inflateSetDictionary:KT,inflateInfo:qT};XT=VT,Ny=Object.prototype.toString,{Z_NO_FLUSH:JT,Z_FINISH:jT,Z_OK:tA,Z_STREAM_END:Wd,Z_NEED_DICT:Zd,Z_STREAM_ERROR:WT,Z_DATA_ERROR:ny,Z_MEM_ERROR:ZT}=Bs;oA.prototype.push=function(i,e){let t=this.strm,n=this.options.chunkSize,r=this.options.dictionary,o,s,a;if(this.ended)return!1;for(e===~~e?s=e:s=e===!0?jT:JT,Ny.call(i)===\"[object ArrayBuffer]\"?t.input=new Uint8Array(i):t.input=i,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),o=On.inflate(t,s),o===Zd&&r&&(o=On.inflateSetDictionary(t,r),o===tA?o=On.inflate(t,s):o===ny&&(o=Zd));t.avail_in>0&&o===Wd&&t.state.wrap>0&&i[t.next_in]!==0;)On.inflateReset(t),o=On.inflate(t,s);switch(o){case WT:case ny:case Zd:case ZT:return this.onEnd(o),this.ended=!0,!1}if(a=t.avail_out,t.next_out&&(t.avail_out===0||o===Wd))if(this.options.to===\"string\"){let A=eA.utf8border(t.output,t.next_out),l=t.next_out-A,c=eA.buf2string(t.output,A);t.next_out=l,t.avail_out=n-l,l&&t.output.set(t.output.subarray(A,A+l),0),this.onData(c)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(o===tA&&a===0)){if(o===Wd)return o=On.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};oA.prototype.onData=function(i){this.chunks.push(i)};oA.prototype.onEnd=function(i){i===tA&&(this.options.to===\"string\"?this.result=this.chunks.join(\"\"):this.result=Pc.flattenChunks(this.chunks)),this.chunks=[],this.err=i,this.msg=this.strm.msg};ev=oA,tv=gm,iv=$T,nv=gm,rv=Bs,ov={Inflate:ev,inflate:tv,inflateRaw:iv,ungzip:nv,constants:rv},{Deflate:bq,deflate:Fq,deflateRaw:Lq,gzip:Mq}=fT,{Inflate:kq,inflate:sv,inflateRaw:Pq,ungzip:Nq}=ov,Gc=sv});var Gy={};dn(Gy,{default:()=>Oc});var Oc,Oy=bt(()=>{dm();mr();Oc=class extends dt{decodeBlock(e){return Gc(new Uint8Array(e)).buffer}}});var Uy={};dn(Uy,{default:()=>Uc});var Uc,Yy=bt(()=>{mr();Uc=class extends dt{decodeBlock(e){let t=new DataView(e),n=[];for(let r=0;r{(function(){var i=function(){var r={};r.defaultNoDataValue=-34027999387901484e22,r.decode=function(c,h){h=h||{};var u=h.encodedMaskData||h.encodedMaskData===null,f=A(c,h.inputOffset||0,u),g=h.noDataValue!==null?h.noDataValue:r.defaultNoDataValue,m=o(f,h.pixelType||Float32Array,h.encodedMaskData,g,h.returnMask),d={width:f.width,height:f.height,pixelData:m.resultPixels,minValue:m.minValue,maxValue:f.pixels.maxValue,noDataValue:g};return m.resultMask&&(d.maskData=m.resultMask),h.returnEncodedMask&&f.mask&&(d.encodedMaskData=f.mask.bitset?f.mask.bitset:null),h.returnFileInfo&&(d.fileInfo=s(f),h.computeUsedBitDepths&&(d.fileInfo.bitDepths=a(f))),d};var o=function(c,h,u,f,g){var m=0,d=c.pixels.numBlocksX,I=c.pixels.numBlocksY,p=Math.floor(c.width/d),_=Math.floor(c.height/I),C=2*c.maxZError,E=Number.MAX_VALUE,y;u=u||(c.mask?c.mask.bitset:null);var B,x;B=new h(c.width*c.height),g&&u&&(x=new Uint8Array(c.width*c.height));for(var Q=new Float32Array(p*_),w,T,R=0;R<=I;R++){var F=R!==I?_:c.height%I;if(F!==0)for(var D=0;D<=d;D++){var S=D!==d?p:c.width%d;if(S!==0){var k=R*c.width*_+D*p,L=c.width-S,b=c.pixels.blocks[m],P,N,Y;b.encoding<2?(b.encoding===0?P=b.rawData:(l(b.stuffedData,b.bitsPerPixel,b.numValidPixels,b.offset,C,Q,c.pixels.maxValue),P=Q),N=0):b.encoding===2?Y=0:Y=b.offset;var M;if(u)for(T=0;T>3],M<<=k&7),w=0;w>3]),M&128?(x&&(x[k]=1),y=b.encoding<2?P[N++]:Y,E=E>y?y:E,B[k++]=y):(x&&(x[k]=0),B[k++]=f),M<<=1;k+=L}else if(b.encoding<2)for(T=0;Ty?y:E,B[k++]=y;k+=L}else for(E=E>Y?Y:E,T=0;T0){var d=new Uint8Array(Math.ceil(f.width*f.height/8));m=new DataView(c,h,f.mask.numBytes);var I=m.getInt16(0,!0),p=2,_=0;do{if(I>0)for(;I--;)d[_++]=m.getUint8(p++);else{var C=m.getUint8(p++);for(I=-I;I--;)d[_++]=C}I=m.getInt16(p,!0),p+=2}while(p0?1:0),x=y+(f.height%y>0?1:0);f.pixels.blocks=new Array(B*x);for(var Q=0,w=0;w3)throw\"Invalid block encoding (\"+D.encoding+\")\";if(D.encoding===2){h++;continue}if(S!==0&&S!==2){if(S>>=6,D.offsetType=S,S===2)D.offset=m.getInt8(1),R++;else if(S===1)D.offset=m.getInt16(1,!0),R+=2;else if(S===0)D.offset=m.getFloat32(1,!0),R+=4;else throw\"Invalid block offset type\";if(D.encoding===1)if(S=m.getUint8(R),R++,D.bitsPerPixel=S&63,S>>=6,D.numValidPixelsType=S,S===2)D.numValidPixels=m.getUint8(R),R++;else if(S===1)D.numValidPixels=m.getUint16(R,!0),R+=2;else if(S===0)D.numValidPixels=m.getUint32(R,!0),R+=4;else throw\"Invalid valid pixel count type\"}if(h+=R,D.encoding!==3){var k,L;if(D.encoding===0){var b=(f.pixels.numBytes-1)/4;if(b!==Math.floor(b))throw\"uncompressed block has invalid length\";k=new ArrayBuffer(b*4),L=new Uint8Array(k),L.set(new Uint8Array(c,h,b*4));var P=new Float32Array(k);D.rawData=P,h+=b*4}else if(D.encoding===1){var N=Math.ceil(D.numValidPixels*D.bitsPerPixel/8),Y=Math.ceil(N/4);k=new ArrayBuffer(Y*4),L=new Uint8Array(k),L.set(new Uint8Array(c,h,N)),D.stuffedData=new Uint32Array(k),h+=N}}}return f.eofOffset=h,f},l=function(c,h,u,f,g,m,d){var I=(1<=h)E=y>>>C-h&I,C-=h;else{var Q=h-C;E=(y&I)<>>C}m[_]=E=c?(C=E>>>_-c&d,_-=c):(y=c-_,C=(E&d)<>>_),l[p]=u[C];else for(B=Math.ceil((m-f)/g),p=0;p=c?(C=E>>>_-c&d,_-=c):(y=c-_,C=(E&d)<>>_),l[p]=C=l?(_=C>>>p-l&g,p-=l):(I=l-p,_=(C&g)<>>p),E[d]=_=c?(E=y>>>C&d,_-=c,C+=c):(B=c-_,E=y>>>C&d,y=A[I++],_=32-B,E|=(y&(1<=c?(E=y>>>C&d,_-=c,C+=c):(B=c-_,E=y>>>C&d,y=A[I++],_=32-B,E|=(y&(1<=l?(_=E>>>C&g,p-=l,C+=l):(I=l-p,_=E>>>C&g,E=A[m++],p=32-I,_|=(E&(1<=c?(d=I>>>m-c&u,m-=c):(p=c-m,d=(I&u)<>>m),l[g]=d;return l},originalUnstuff2:function(A,l,c,h){var u=(1<=c?(I=p>>>d&u,m-=c,d+=c):(_=c-m,I=p>>>d&u,p=A[f++],m=32-_,I|=(p&(1<<_)-1)<=359?359:u;u-=g;do l+=A[f++]<<8,c+=l+=A[f++];while(--g);l=(l&65535)+(l>>>16),c=(c&65535)+(c>>>16)}return h&1&&(c+=l+=A[f]<<8),l=(l&65535)+(l>>>16),c=(c&65535)+(c>>>16),(c<<16|l)>>>0},readHeaderInfo:function(A,l){var c=l.ptr,h=new Uint8Array(A,c,6),u={};if(u.fileIdentifierString=String.fromCharCode.apply(null,h),u.fileIdentifierString.lastIndexOf(\"Lerc2\",0)!==0)throw\"Unexpected file identifier string (expect Lerc2 ): \"+u.fileIdentifierString;c+=6;var f=new DataView(A,c,8),g=f.getInt32(0,!0);u.fileVersion=g,c+=4,g>=3&&(u.checksum=f.getUint32(4,!0),c+=4),f=new DataView(A,c,12),u.height=f.getUint32(0,!0),u.width=f.getUint32(4,!0),c+=8,g>=4?(u.numDims=f.getUint32(8,!0),c+=4):u.numDims=1,f=new DataView(A,c,40),u.numValidPixel=f.getUint32(0,!0),u.microBlockSize=f.getInt32(4,!0),u.blobSize=f.getInt32(8,!0),u.imageType=f.getInt32(12,!0),u.maxZError=f.getFloat64(16,!0),u.zMin=f.getFloat64(24,!0),u.zMax=f.getFloat64(32,!0),c+=40,l.headerInfo=u,l.ptr=c;var m,d;if(g>=3&&(d=g>=4?52:48,m=this.computeChecksumFletcher32(new Uint8Array(A,c-d,u.blobSize-14)),m!==u.checksum))throw\"Checksum failed.\";return!0},checkMinMaxRanges:function(A,l){var c=l.headerInfo,h=this.getDataTypeArray(c.imageType),u=c.numDims*this.getDataTypeSize(c.imageType),f=this.readSubArray(A,l.ptr,h,u),g=this.readSubArray(A,l.ptr+u,h,u);l.ptr+=2*u;var m,d=!0;for(m=0;m0){d=new Uint8Array(Math.ceil(u/8)),g=new DataView(A,c,m.numBytes);var p=g.getInt16(0,!0),_=2,C=0,E=0;do{if(p>0)for(;p--;)d[C++]=g.getUint8(_++);else for(E=g.getUint8(_++),p=-p;p--;)d[C++]=E;p=g.getInt16(_,!0),_+=2}while(_>3],y<<=B&7):y=d[B>>3],y&128&&(I[B]=1);l.pixels.resultMask=I,m.bitset=d,c+=m.numBytes}return l.ptr=c,l.mask=m,!0},readDataOneSweep:function(A,l,c,h){var u=l.ptr,f=l.headerInfo,g=f.numDims,m=f.width*f.height,d=f.imageType,I=f.numValidPixel*o.getDataTypeSize(d)*g,p,_=l.pixels.resultMask;if(c===Uint8Array)p=new Uint8Array(A,u,I);else{var C=new ArrayBuffer(I),E=new Uint8Array(C);E.set(new Uint8Array(A,u,I)),p=new c(C)}if(p.length===m*g)h?l.pixels.resultPixels=o.swapDimensionOrder(p,m,g,c,!0):l.pixels.resultPixels=p;else{l.pixels.resultPixels=new c(m*g);var y=0,B=0,x=0,Q=0;if(g>1){if(h){for(B=0;B=m)return!1;var d=new Uint32Array(m-g);o.decodeBits(A,l,d);var I=[],p,_,C,E;for(p=g;p0&&(I[_].second=R<>>32-E,32-T>=E?(T+=E,T===32&&(T=0,F++,R=w[F])):(T+=E-32,F++,R=w[F],I[_].second|=R>>>32-T));var D=0,S=0,k=new s;for(p=0;p=c?S=c:S=D;var L=[],b,P,N,Y,M,j;for(p=g;p0)if(b=[E,_],E<=S)for(P=I[_].second<=0;Y--)M=P>>>Y&1,M?(j.right||(j.right=new s),j=j.right):(j.left||(j.left=new s),j=j.left),Y===0&&!j.val&&(j.val=b[1]);return{decodeLut:L,numBitsLUTQick:S,numBitsLUT:D,tree:k,stuffedData:w,srcPtr:F,bitPos:T}},readHuffman:function(A,l,c,h){var u=l.headerInfo,f=u.numDims,g=l.headerInfo.height,m=l.headerInfo.width,d=m*g,I=this.readHuffmanTree(A,l),p=I.decodeLut,_=I.tree,C=I.stuffedData,E=I.srcPtr,y=I.bitPos,B=I.numBitsLUTQick,x=I.numBitsLUT,Q=l.headerInfo.imageType===0?128:0,w,T,R,F=l.pixels.resultMask,D,S,k,L,b,P,N,Y=0;y>0&&(E++,y=0);var M=C[E],j=l.encodeMode===1,H=new c(d*f),O=H,K;if(f<2||j){for(K=0;K1&&(O=new c(H.buffer,d*K,d),Y=0),l.headerInfo.numValidPixel===m*g)for(P=0,L=0;L>>32-B,S=D,32-y>>64-y-B,S=D),p[S])T=p[S][1],y+=p[S][0];else for(D=M<>>32-x,S=D,32-y>>64-y-x,S=D),w=_,N=0;N>>x-N-1&1,w=k?w.right:w.left,!(w.left||w.right)){T=w.val,y=y+N+1;break}y>=32&&(y-=32,E++,M=C[E]),R=T-Q,j?(b>0?R+=Y:L>0?R+=O[P-m]:R+=Y,R&=255,O[P]=R,Y=R):O[P]=R}else for(P=0,L=0;L>>32-B,S=D,32-y>>64-y-B,S=D),p[S])T=p[S][1],y+=p[S][0];else for(D=M<>>32-x,S=D,32-y>>64-y-x,S=D),w=_,N=0;N>>x-N-1&1,w=k?w.right:w.left,!(w.left||w.right)){T=w.val,y=y+N+1;break}y>=32&&(y-=32,E++,M=C[E]),R=T-Q,j?(b>0&&F[P-1]?R+=Y:L>0&&F[P-m]?R+=O[P-m]:R+=Y,R&=255,O[P]=R,Y=R):O[P]=R}}else for(P=0,L=0;L>>32-B,S=D,32-y>>64-y-B,S=D),p[S])T=p[S][1],y+=p[S][0];else for(D=M<>>32-x,S=D,32-y>>64-y-x,S=D),w=_,N=0;N>>x-N-1&1,w=k?w.right:w.left,!(w.left||w.right)){T=w.val,y=y+N+1;break}y>=32&&(y-=32,E++,M=C[E]),R=T-Q,O[P]=R}l.ptr=l.ptr+(E+1)*4+(y>0?4:0),l.pixels.resultPixels=H,f>1&&!h&&(l.pixels.resultPixels=o.swapDimensionOrder(H,d,f,c))},decodeBits:function(A,l,c,h,u){{var f=l.headerInfo,g=f.fileVersion,m=0,d=A.byteLength-l.ptr>=5?5:A.byteLength-l.ptr,I=new DataView(A,l.ptr,d),p=I.getUint8(0);m++;var _=p>>6,C=_===0?4:3-_,E=(p&32)>0,y=p&31,B=0;if(C===1)B=I.getUint8(m),m++;else if(C===2)B=I.getUint16(m,!0),m+=2;else if(C===4)B=I.getUint32(m,!0),m+=4;else throw\"Invalid valid pixel count type\";var x=2*f.maxZError,Q,w,T,R,F,D,S,k,L,b,P=f.numDims>1?f.maxValues[u]:f.zMax;if(E){for(l.counter.lut++,k=I.getUint8(m),L=y,m++,R=Math.ceil((k-1)*y/8),F=Math.ceil(R/4),w=new ArrayBuffer(F*4),T=new Uint8Array(w),l.ptr+=m,T.set(new Uint8Array(A,l.ptr,R)),S=new Uint32Array(w),l.ptr+=R,b=0;k-1>>>b;)b++;R=Math.ceil(B*b/8),F=Math.ceil(R/4),w=new ArrayBuffer(F*4),T=new Uint8Array(w),T.set(new Uint8Array(A,l.ptr,R)),Q=new Uint32Array(w),l.ptr+=R,g>=3?D=r.unstuffLUT2(S,y,k-1,h,x,P):D=r.unstuffLUT(S,y,k-1,h,x,P),g>=3?r.unstuff2(Q,c,b,B,D):r.unstuff(Q,c,b,B,D)}else l.counter.bitstuffer++,b=y,l.ptr+=m,b>0&&(R=Math.ceil(B*b/8),F=Math.ceil(R/4),w=new ArrayBuffer(F*4),T=new Uint8Array(w),T.set(new Uint8Array(A,l.ptr,R)),Q=new Uint32Array(w),l.ptr+=R,g>=3?h==null?r.originalUnstuff2(Q,c,b,B):r.unstuff2(Q,c,b,B,!1,h,x,P):h==null?r.originalUnstuff(Q,c,b,B):r.unstuff(Q,c,b,B,!1,h,x,P))}},readTiles:function(A,l,c,h){var u=l.headerInfo,f=u.width,g=u.height,m=f*g,d=u.microBlockSize,I=u.imageType,p=o.getDataTypeSize(I),_=Math.ceil(f/d),C=Math.ceil(g/d);l.pixels.numBlocksY=C,l.pixels.numBlocksX=_,l.pixels.ptr=0;var E=0,y=0,B=0,x=0,Q=0,w=0,T=0,R=0,F=0,D=0,S=0,k=0,L=0,b=0,P=0,N=0,Y,M,j,H,O,K,ie=new c(d*d),ge=g%d||d,Ie=f%d||d,de,Pe,tt=u.numDims,xt,Je=l.pixels.resultMask,Te=l.pixels.resultPixels,Dt=u.fileVersion,cn=Dt>=5?14:15,wt,hn=u.zMax,It;for(B=0;B1?(It=Te,S=B*f*d+x*d,Te=new c(l.pixels.resultPixels.buffer,m*xt*p,m),hn=u.maxValues[xt]):It=null,T=A.byteLength-l.ptr,Y=new DataView(A,l.ptr,Math.min(10,T)),M={},N=0,R=Y.getUint8(0),N++,wt=u.fileVersion>=5?R&4:0,F=R>>6&255,D=R>>2&cn,D!==(x*d>>3&cn)||wt&&xt===0)throw\"integrity issue\";if(K=R&3,K>3)throw l.ptr+=N,\"Invalid block encoding (\"+K+\")\";if(K===2){if(wt)if(Je)for(E=0;E1&&!h&&(l.pixels.resultPixels=o.swapDimensionOrder(l.pixels.resultPixels,m,tt,c))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:o.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,l){var c=A.headerInfo.zMax,h=A.headerInfo.zMin,u=A.headerInfo.maxValues,f=A.headerInfo.numDims,g=A.headerInfo.height*A.headerInfo.width,m=0,d=0,I=0,p=A.pixels.resultMask,_=A.pixels.resultPixels;if(p)if(f>1){if(l)for(m=0;m1&&h!==c)if(l)for(m=0;m=-128&&l<=127;break;case 1:c=l>=0&&l<=255;break;case 2:c=l>=-32768&&l<=32767;break;case 3:c=l>=0&&l<=65536;break;case 4:c=l>=-2147483648&&l<=2147483647;break;case 5:c=l>=0&&l<=4294967296;break;case 6:c=l>=-34027999387901484e22&&l<=34027999387901484e22;break;case 7:c=l>=-17976931348623157e292&&l<=17976931348623157e292;break;default:c=!1}return c},getDataTypeSize:function(A){var l=0;switch(A){case 0:case 1:l=1;break;case 2:case 3:l=2;break;case 4:case 5:case 6:l=4;break;case 7:l=8;break;default:l=A}return l},getDataTypeUsed:function(A,l){var c=A;switch(A){case 2:case 4:c=A-l;break;case 3:case 5:c=A-2*l;break;case 6:l===0?c=A:l===1?c=2:c=1;break;case 7:l===0?c=A:c=A-2*l+1;break;default:c=A;break}return c},getOnePixel:function(A,l,c,h){var u=0;switch(c){case 0:u=h.getInt8(l);break;case 1:u=h.getUint8(l);break;case 2:u=h.getInt16(l,!0);break;case 3:u=h.getUint16(l,!0);break;case 4:u=h.getInt32(l,!0);break;case 5:u=h.getUInt32(l,!0);break;case 6:u=h.getFloat32(l,!0);break;case 7:u=h.getFloat64(l,!0);break;default:throw\"the decoder does not understand this pixel type\"}return u},swapDimensionOrder:function(A,l,c,h,u){var f=0,g=0,m=0,d=0,I=A;if(c>1)if(I=new h(l*c),u)for(f=0;f5)throw\"unsupported lerc version 2.\"+g;o.readMask(A,u),f.numValidPixel!==f.width*f.height&&!u.pixels.resultMask&&(u.pixels.resultMask=l.maskData);var d=f.width*f.height;u.pixels.resultPixels=new m(d*f.numDims),u.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var I=!l.returnPixelInterleavedDims;if(f.numValidPixel!==0)if(f.zMax===f.zMin)o.constructConstantSurface(u,I);else if(g>=4&&o.checkMinMaxRanges(A,u))o.constructConstantSurface(u,I);else{var p=new DataView(A,u.ptr,2),_=p.getUint8(0);if(u.ptr++,_)o.readDataOneSweep(A,u,m,I);else if(g>1&&f.imageType<=1&&Math.abs(f.maxZError-.5)<1e-5){var C=p.getUint8(1);if(u.ptr++,u.encodeMode=C,C>2||g<4&&C>1)throw\"Invalid Huffman flag \"+C;C?o.readHuffman(A,u,m,I):o.readTiles(A,u,m,I)}else o.readTiles(A,u,m,I)}u.eofOffset=u.ptr;var E;l.inputOffset?(E=u.headerInfo.blobSize+l.inputOffset-u.ptr,Math.abs(E)>=1&&(u.eofOffset=l.inputOffset+u.headerInfo.blobSize)):(E=u.headerInfo.blobSize-u.ptr,Math.abs(E)>=1&&(u.eofOffset=u.headerInfo.blobSize));var y={width:f.width,height:f.height,pixelData:u.pixels.resultPixels,minValue:f.zMin,maxValue:f.zMax,validPixelCount:f.numValidPixel,dimCount:f.numDims,dimStats:{minValues:f.minValues,maxValues:f.maxValues},maskData:u.pixels.resultMask};if(u.pixels.resultMask&&o.isValidPixelValue(f.imageType,c)){var B=u.pixels.resultMask;for(h=0;h1&&(d&&g.push(d),_.fileInfo.mask&&_.fileInfo.mask.numBytes>0&&p++),h++,I.pixels.push(_.pixelData),I.statistics.push({minValue:_.minValue,maxValue:_.maxValue,noDataValue:_.noDataValue,dimStats:_.dimStats})}var C,E,y;if(c>1&&p>1){for(y=I.width*I.height,I.bandMasks=g,d=new Uint8Array(y),d.set(g[0]),C=1;C{mm={env:{emscripten_notify_memory_growth:function(i){pm=new Uint8Array(Un.exports.memory.buffer)}}},Hc=class{init(){return sA||(typeof fetch<\"u\"?sA=fetch(\"data:application/wasm;base64,\"+zy).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,mm)).then(this._init):sA=WebAssembly.instantiate(Buffer.from(zy,\"base64\"),mm).then(this._init),sA)}_init(e){Un=e.instance,mm.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!Un)throw new Error(\"ZSTDDecoder: Await .init() before decoding.\");let n=e.byteLength,r=Un.exports.malloc(n);pm.set(e,r),t=t||Number(Un.exports.ZSTD_findDecompressedSize(r,n));let o=Un.exports.malloc(t),s=Un.exports.ZSTD_decompress(o,t,r,n),a=pm.slice(o,o+s);return Un.exports.free(r),Un.exports.free(o),a}},zy=\"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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogACgCBBATQQAhBCAHQeAAaiEMIAdB5ABqIQoDQCAHQShqEARBAksgBCAXTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEJIAcoAkggBygCREEDdGopAgAiH0IgiKchCCAeQiCIISAgHUIgiKchAgJAIB9CEIinQf8BcSIDQQJPBEACQCAGRSADQRlJckUEQCAIIAdBKGogA0EgIAcoAixrIg0gDSADSxsiDRAFIAMgDWsiA3RqIQggB0EoahAEGiADRQ0BIAdBKGogAxAFIAhqIQgMAQsgB0EoaiADEAUgCGohCCAHQShqEAQaCyAHKQJUISEgByAINgJUIAcgITcDWAwBCwJAIANFBEAgAgRAIAcoAlQhCAwDCyAHKAJYIQgMAQsCQAJAIAdBKGpBARAFIAggAkVqaiIDQQNGBEAgBygCVEF/aiIDIANFaiEIDAELIANBAnQgB2ooAlQiCCAIRWohCCADQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAg2AlQLICCnIQMgCQRAIAdBKGogCRAFIANqIQMLIAkgC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgAmohAgsgB0EoahAEGiAHIAcoAmggAmoiCSADajYCaCAKIAwgCCAJSxsoAgAhDSAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogB0EoaiAfQhiIp0H/AXEQCCEOIAdB8ABqIARBBHRqIgsgCSANaiAIazYCDCALIAg2AgggCyADNgIEIAsgAjYCACAHIA4gH6dB//8DcWo2AkQgBEEBaiEEDAELCyAEIBdIDQEgEkFgaiEYIAdB4ABqIRogB0HkAGohGyABIQMDQCAHQShqEARBAksgBCAFTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEIIAcoAkggBygCREEDdGopAgAiH0IgiKchCSAeQiCIISAgHUIgiKchDAJAIB9CEIinQf8BcSICQQJPBEACQCAGRSACQRlJckUEQCAJIAdBKGogAkEgIAcoAixrIgogCiACSxsiChAFIAIgCmsiAnRqIQkgB0EoahAEGiACRQ0BIAdBKGogAhAFIAlqIQkMAQsgB0EoaiACEAUgCWohCSAHQShqEAQaCyAHKQJUISEgByAJNgJUIAcgITcDWAwBCwJAIAJFBEAgDARAIAcoAlQhCQwDCyAHKAJYIQkMAQsCQAJAIAdBKGpBARAFIAkgDEVqaiICQQNGBEAgBygCVEF/aiICIAJFaiEJDAELIAJBAnQgB2ooAlQiCSAJRWohCSACQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAk2AlQLICCnIRQgCARAIAdBKGogCBAFIBRqIRQLIAggC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgDGohDAsgB0EoahAEGiAHIAcoAmggDGoiGSAUajYCaCAbIBogCSAZSxsoAgAhHCAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogByAHQShqIB9CGIinQf8BcRAIIB+nQf//A3FqNgJEIAcgB0HwAGogBEEDcUEEdGoiDSkDCCIdNwPIASAHIA0pAwAiHjcDwAECQAJAAkAgBygCvAEiDiAepyICaiIWIBNLDQAgAyAHKALEASIKIAJqIgtqIBhLDQAgEiADayALQSBqTw0BCyAHIAcpA8gBNwMQIAcgBykDwAE3AwggAyASIAdBCGogB0G8AWogEyAPIBUgERAeIQsMAQsgAiADaiEIIAMgDhAHIAJBEU8EQCADQRBqIQIDQCACIA5BEGoiDhAHIAJBEGoiAiAISQ0ACwsgCCAdpyIOayECIAcgFjYCvAEgDiAIIA9rSwRAIA4gCCAVa0sEQEFsIQsMAgsgESACIA9rIgJqIhYgCmogEU0EQCAIIBYgChAPGgwCCyAIIBZBACACaxAPIQggByACIApqIgo2AsQBIAggAmshCCAPIQILIA5BEE8EQCAIIApqIQoDQCAIIAIQByACQRBqIQIgCEEQaiIIIApJDQALDAELAkAgDkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgDkECdCIKQcAeaigCAGoiAhAXIAIgCkHgHmooAgBrIQIgBygCxAEhCgwBCyAIIAIQDAsgCkEJSQ0AIAggCmohCiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAKSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAKSQ0ACwsgCxADBEAgCyEQDAQFIA0gDDYCACANIBkgHGogCWs2AgwgDSAJNgIIIA0gFDYCBCAEQQFqIQQgAyALaiEDDAILAAsLIAQgBUgNASAEIBdrIQtBACEEA0AgCyAFSARAIAcgB0HwAGogC0EDcUEEdGoiAikDCCIdNwPIASAHIAIpAwAiHjcDwAECQAJAAkAgBygCvAEiDCAepyICaiIKIBNLDQAgAyAHKALEASIJIAJqIhBqIBhLDQAgEiADayAQQSBqTw0BCyAHIAcpA8gBNwMgIAcgBykDwAE3AxggAyASIAdBGGogB0G8AWogEyAPIBUgERAeIRAMAQsgAiADaiEIIAMgDBAHIAJBEU8EQCADQRBqIQIDQCACIAxBEGoiDBAHIAJBEGoiAiAISQ0ACwsgCCAdpyIGayECIAcgCjYCvAEgBiAIIA9rSwRAIAYgCCAVa0sEQEFsIRAMAgsgESACIA9rIgJqIgwgCWogEU0EQCAIIAwgCRAPGgwCCyAIIAxBACACaxAPIQggByACIAlqIgk2AsQBIAggAmshCCAPIQILIAZBEE8EQCAIIAlqIQYDQCAIIAIQByACQRBqIQIgCEEQaiIIIAZJDQALDAELAkAgBkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgBkECdCIGQcAeaigCAGoiAhAXIAIgBkHgHmooAgBrIQIgBygCxAEhCQwBCyAIIAIQDAsgCUEJSQ0AIAggCWohBiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAGSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAGSQ0ACwsgEBADDQMgC0EBaiELIAMgEGohAwwBCwsDQCAEQQNHBEAgACAEQQJ0IgJqQazQAWogAiAHaigCVDYCACAEQQFqIQQMAQsLIAcoArwBIQgLQbp/IRAgEyAIayIAIBIgA2tLDQAgAwR/IAMgCCAAEAsgAGoFQQALIAFrIRALIAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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\"});var Xy={};dn(Xy,{default:()=>zc,zstd:()=>Vy});var qy,Vy,zc,Jy=bt(()=>{dm();qy=fo(Hy(),1);Ky();mr();Oa();Vy=new Hc,zc=class extends dt{constructor(e){super(),this.planarConfiguration=typeof e.PlanarConfiguration<\"u\"?e.PlanarConfiguration:1,this.samplesPerPixel=typeof e.SamplesPerPixel<\"u\"?e.SamplesPerPixel:1,this.addCompression=e.LercParameters[Ld.AddCompression]}decodeBlock(e){switch(this.addCompression){case Ga.None:break;case Ga.Deflate:e=Gc(new Uint8Array(e)).buffer;break;case Ga.Zstandard:e=Vy.decode(new Uint8Array(e)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return qy.default.decode(e,{returnPixelInterleavedDims:this.planarConfiguration===1}).pixels[0].buffer}}});var jy={};dn(jy,{default:()=>Kc});var Kc,Wy=bt(()=>{mr();Kc=class extends dt{constructor(){if(super(),typeof createImageBitmap>\"u\")throw new Error(\"Cannot decode WebImage as `createImageBitmap` is not available\");if(typeof document>\"u\"&&typeof OffscreenCanvas>\"u\")throw new Error(\"Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available\")}async decode(e,t){let n=new Blob([t]),r=await createImageBitmap(n),o;typeof document<\"u\"?(o=document.createElement(\"canvas\"),o.width=r.width,o.height=r.height):o=new OffscreenCanvas(r.width,r.height);let s=o.getContext(\"2d\");return s.drawImage(r,0,0),s.getImageData(0,0,r.width,r.height).data.buffer}}});var iB,nB=bt(()=>{iB=typeof Worker<\"u\"?Worker:void 0});var rB={};dn(rB,{create:()=>gv});function gv(){let i=\\'function A(A,e,t,i,r,I,g){try{var n=A[I](g),a=n.value}catch(A){return void t(A)}n.done?e(a):Promise.resolve(a).then(i,r)}function e(e){return function(){var t=this,i=arguments;return new Promise((function(r,I){var g=e.apply(t,i);function n(e){A(g,r,I,n,a,\"next\",e)}function a(e){A(g,r,I,n,a,\"throw\",e)}n(void 0)}))}}function t(A){return t=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&\"function\"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?\"symbol\":typeof A},t(A)}var i={exports:{}};!function(A){var e=function(A){var e,i=Object.prototype,r=i.hasOwnProperty,I=\"function\"==typeof Symbol?Symbol:{},g=I.iterator||\"@@iterator\",n=I.asyncIterator||\"@@asyncIterator\",a=I.toStringTag||\"@@toStringTag\";function o(A,e,t){return Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}),A[e]}try{o({},\"\")}catch(A){o=function(A,e,t){return A[e]=t}}function B(A,e,t,i){var r=e&&e.prototype instanceof h?e:h,I=Object.create(r.prototype),g=new S(i||[]);return I._invoke=function(A,e,t){var i=Q;return function(r,I){if(i===s)throw new Error(\"Generator is already running\");if(i===f){if(\"throw\"===r)throw I;return R()}for(t.method=r,t.arg=I;;){var g=t.delegate;if(g){var n=m(g,t);if(n){if(n===c)continue;return n}}if(\"next\"===t.method)t.sent=t._sent=t.arg;else if(\"throw\"===t.method){if(i===Q)throw i=f,t.arg;t.dispatchException(t.arg)}else\"return\"===t.method&&t.abrupt(\"return\",t.arg);i=s;var a=C(A,e,t);if(\"normal\"===a.type){if(i=t.done?f:E,a.arg===c)continue;return{value:a.arg,done:t.done}}\"throw\"===a.type&&(i=f,t.method=\"throw\",t.arg=a.arg)}}}(A,t,g),I}function C(A,e,t){try{return{type:\"normal\",arg:A.call(e,t)}}catch(A){return{type:\"throw\",arg:A}}}A.wrap=B;var Q=\"suspendedStart\",E=\"suspendedYield\",s=\"executing\",f=\"completed\",c={};function h(){}function l(){}function u(){}var w={};o(w,g,(function(){return this}));var d=Object.getPrototypeOf,D=d&&d(d(v([])));D&&D!==i&&r.call(D,g)&&(w=D);var y=u.prototype=h.prototype=Object.create(w);function k(A){[\"next\",\"throw\",\"return\"].forEach((function(e){o(A,e,(function(A){return this._invoke(e,A)}))}))}function p(A,e){function i(I,g,n,a){var o=C(A[I],A,g);if(\"throw\"!==o.type){var B=o.arg,Q=B.value;return Q&&\"object\"===t(Q)&&r.call(Q,\"__await\")?e.resolve(Q.__await).then((function(A){i(\"next\",A,n,a)}),(function(A){i(\"throw\",A,n,a)})):e.resolve(Q).then((function(A){B.value=A,n(B)}),(function(A){return i(\"throw\",A,n,a)}))}a(o.arg)}var I;this._invoke=function(A,t){function r(){return new e((function(e,r){i(A,t,e,r)}))}return I=I?I.then(r,r):r()}}function m(A,t){var i=A.iterator[t.method];if(i===e){if(t.delegate=null,\"throw\"===t.method){if(A.iterator.return&&(t.method=\"return\",t.arg=e,m(A,t),\"throw\"===t.method))return c;t.method=\"throw\",t.arg=new TypeError(\"The iterator does not provide a \\\\\\'throw\\\\\\' method\")}return c}var r=C(i,A.iterator,t.arg);if(\"throw\"===r.type)return t.method=\"throw\",t.arg=r.arg,t.delegate=null,c;var I=r.arg;return I?I.done?(t[A.resultName]=I.value,t.next=A.nextLoc,\"return\"!==t.method&&(t.method=\"next\",t.arg=e),t.delegate=null,c):I:(t.method=\"throw\",t.arg=new TypeError(\"iterator result is not an object\"),t.delegate=null,c)}function G(A){var e={tryLoc:A[0]};1 in A&&(e.catchLoc=A[1]),2 in A&&(e.finallyLoc=A[2],e.afterLoc=A[3]),this.tryEntries.push(e)}function F(A){var e=A.completion||{};e.type=\"normal\",delete e.arg,A.completion=e}function S(A){this.tryEntries=[{tryLoc:\"root\"}],A.forEach(G,this),this.reset(!0)}function v(A){if(A){var t=A[g];if(t)return t.call(A);if(\"function\"==typeof A.next)return A;if(!isNaN(A.length)){var i=-1,I=function t(){for(;++i=0;--I){var g=this.tryEntries[I],n=g.completion;if(\"root\"===g.tryLoc)return i(\"end\");if(g.tryLoc<=this.prev){var a=r.call(g,\"catchLoc\"),o=r.call(g,\"finallyLoc\");if(a&&o){if(this.prev=0;--t){var i=this.tryEntries[t];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev=0;--e){var t=this.tryEntries[e];if(t.finallyLoc===A)return this.complete(t.completion,t.afterLoc),F(t),c}},catch:function(A){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.tryLoc===A){var i=t.completion;if(\"throw\"===i.type){var r=i.arg;F(t)}return r}}throw new Error(\"illegal catch attempt\")},delegateYield:function(A,t,i){return this.delegate={iterator:v(A),resultName:t,nextLoc:i},\"next\"===this.method&&(this.arg=e),c}},A}(A.exports);try{regeneratorRuntime=e}catch(A){\"object\"===(\"undefined\"==typeof globalThis?\"undefined\":t(globalThis))?globalThis.regeneratorRuntime=e:Function(\"r\",\"regeneratorRuntime = r\")(e)}}(i);var r=i.exports,I=new Map;function g(A,e){Array.isArray(A)||(A=[A]),A.forEach((function(A){return I.set(A,e)}))}function n(A){return a.apply(this,arguments)}function a(){return(a=e(r.mark((function A(e){var t,i;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(t=I.get(e.Compression)){A.next=3;break}throw new Error(\"Unknown compression method identifier: \".concat(e.Compression));case 3:return A.next=5,t();case 5:return i=A.sent,A.abrupt(\"return\",new i(e));case 7:case\"end\":return A.stop()}}),A)})))).apply(this,arguments)}g([void 0,1],(function(){return Promise.resolve().then((function(){return y})).then((function(A){return A.default}))})),g(5,(function(){return Promise.resolve().then((function(){return F})).then((function(A){return A.default}))})),g(6,(function(){throw new Error(\"old style JPEG compression is not supported.\")})),g(7,(function(){return Promise.resolve().then((function(){return N})).then((function(A){return A.default}))})),g([8,32946],(function(){return Promise.resolve().then((function(){return OA})).then((function(A){return A.default}))})),g(32773,(function(){return Promise.resolve().then((function(){return _A})).then((function(A){return A.default}))})),g(34887,(function(){return Promise.resolve().then((function(){return le})).then(function(){var A=e(r.mark((function A(e){return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,e.zstd.init();case 2:return A.abrupt(\"return\",e);case 3:case\"end\":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}()).then((function(A){return A.default}))})),g(50001,(function(){return Promise.resolve().then((function(){return de})).then((function(A){return A.default}))}));var o=globalThis;function B(A,e){if(!(A instanceof e))throw new TypeError(\"Cannot call a class as a function\")}function C(A,e){for(var t=0;t0;r--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function l(A,e,t){for(var i=0,r=A.length,I=r/t;r>e;){for(var g=e;g>0;--g)A[i+e]+=A[i],++i;r-=e}for(var n=A.slice(),a=0;a=A.byteLength);++o){var B=void 0;if(2===e){switch(r[0]){case 8:B=new Uint8Array(A,o*a*t*n,a*t*n);break;case 16:B=new Uint16Array(A,o*a*t*n,a*t*n/2);break;case 32:B=new Uint32Array(A,o*a*t*n,a*t*n/4);break;default:throw new Error(\"Predictor 2 not allowed with \".concat(r[0],\" bits per sample.\"))}h(B,a)}else 3===e&&l(B=new Uint8Array(A,o*a*t*n,a*t*n),a,n)}return A}o.addEventListener(\"message\",function(){var A=e(r.mark((function A(e){var t,i,I,g,a,B;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=e.data,i=t.id,I=t.fileDirectory,g=t.buffer,A.next=3,n(I);case 3:return a=A.sent,A.next=6,a.decode(I,g);case 6:B=A.sent,o.postMessage({decoded:B,id:i},[B]);case 8:case\"end\":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}());var w=function(){function A(){B(this,A)}var t;return Q(A,[{key:\"decode\",value:(t=e(r.mark((function A(e,t){var i,I,g,n,a;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,this.decodeBlock(t);case 2:if(i=A.sent,1===(I=e.Predictor||1)){A.next=9;break}return g=!e.StripOffsets,n=g?e.TileWidth:e.ImageWidth,a=g?e.TileLength:e.RowsPerStrip||e.ImageLength,A.abrupt(\"return\",u(i,I,n,a,e.BitsPerSample,e.PlanarConfiguration));case 9:return A.abrupt(\"return\",i);case 10:case\"end\":return A.stop()}}),A,this)}))),function(A,e){return t.apply(this,arguments)})}]),A}();function d(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var D=function(A){s(t,w);var e=d(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:\"decodeBlock\",value:function(A){return A}}]),t}(),y=Object.freeze({__proto__:null,default:D});function k(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}function p(A,e){for(var t=e.length-1;t>=0;t--)A.push(e[t]);return A}function m(A){for(var e=new Uint16Array(4093),t=new Uint8Array(4093),i=0;i<=257;i++)e[i]=4096,t[i]=i;var r=258,I=9,g=0;function n(){r=258,I=9}function a(A){var e=function(A,e,t){var i=e%8,r=Math.floor(e/8),I=8-i,g=e+t-8*(r+1),n=8*(r+2)-(e+t),a=8*(r+2)-e;if(n=Math.max(0,n),r>=A.length)return console.warn(\"ran off the end of the buffer before finding EOI_CODE (end on input code)\"),257;var o=A[r]&Math.pow(2,8-i)-1,B=o<<=t-I;if(r+1>>n;B+=C<<=Math.max(0,t-a)}if(g>8&&r+2>>Q}return B}(A,g,I);return g+=I,e}function o(A,i){return t[r]=i,e[r]=A,++r-1}function B(A){for(var i=[],r=A;4096!==r;r=e[r])i.push(t[r]);return i}var C=[];n();for(var Q,E=new Uint8Array(A),s=a(E);257!==s;){if(256===s){for(n(),s=a(E);256===s;)s=a(E);if(257===s)break;if(s>256)throw new Error(\"corrupted code at scanline \".concat(s));p(C,B(s)),Q=s}else if(s=Math.pow(2,I)&&(12===I?Q=void 0:I++),s=a(E)}return new Uint8Array(C)}var G=function(A){s(t,w);var e=k(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:\"decodeBlock\",value:function(A){return m(A).buffer}}]),t}(),F=Object.freeze({__proto__:null,default:G});function S(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var v=new Int32Array([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]);function R(A,e){for(var t=0,i=[],r=16;r>0&&!A[r-1];)--r;i.push({children:[],index:0});for(var I,g=i[0],n=0;n0;)g=i.pop();for(g.index++,i.push(g);i.length<=n;)i.push(I={children:[],index:0}),g.children[g.index]=I.children,g=I;t++}n+10)return f--,s>>f&1;if(255===(s=A[E++])){var e=A[E++];if(e)throw new Error(\"unexpected marker: \".concat((s<<8|e).toString(16)))}return f=7,s>>>7}function h(A){for(var e,i=A;null!==(e=c());){if(\"number\"==typeof(i=i[e]))return i;if(\"object\"!==t(i))throw new Error(\"invalid huffman sequence\")}return null}function l(A){for(var e=A,t=0;e>0;){var i=c();if(null===i)return;t=t<<1|i,--e}return t}function u(A){var e=l(A);return e>=1<0)w--;else for(var t=g,i=n;t<=i;){var r=h(A.huffmanTableAC),I=15&r,a=r>>4;if(0===I){if(a<15){w=l(a)+(1<>4,0===C)r<15?(w=l(r)+(1<>4;if(0===g){if(n<15)break;r+=16}else e[v[r+=n]]=u(g),r++}};var L,b,M=0;b=1===U?r[0].blocksPerLine*r[0].blocksPerColumn:B*i.mcusPerColumn;for(var N=I||b;M=65488&&L<=65495))break;E+=2}return E-Q}function L(A,e){var t=[],i=e.blocksPerLine,r=e.blocksPerColumn,I=i<<3,g=new Int32Array(64),n=new Uint8Array(64);function a(A,t,i){var r,I,g,n,a,o,B,C,Q,E,s=e.quantizationTable,f=i;for(E=0;E<64;E++)f[E]=A[E]*s[E];for(E=0;E<8;++E){var c=8*E;0!==f[1+c]||0!==f[2+c]||0!==f[3+c]||0!==f[4+c]||0!==f[5+c]||0!==f[6+c]||0!==f[7+c]?(r=5793*f[0+c]+128>>8,I=5793*f[4+c]+128>>8,g=f[2+c],n=f[6+c],a=2896*(f[1+c]-f[7+c])+128>>8,C=2896*(f[1+c]+f[7+c])+128>>8,o=f[3+c]<<4,Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+128>>8,g=1567*g-3784*n+128>>8,n=Q,Q=a-(B=f[5+c]<<4)+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+c]=r+C,f[7+c]=r-C,f[1+c]=I+B,f[6+c]=I-B,f[2+c]=g+o,f[5+c]=g-o,f[3+c]=n+a,f[4+c]=n-a):(Q=5793*f[0+c]+512>>10,f[0+c]=Q,f[1+c]=Q,f[2+c]=Q,f[3+c]=Q,f[4+c]=Q,f[5+c]=Q,f[6+c]=Q,f[7+c]=Q)}for(E=0;E<8;++E){var h=E;0!==f[8+h]||0!==f[16+h]||0!==f[24+h]||0!==f[32+h]||0!==f[40+h]||0!==f[48+h]||0!==f[56+h]?(r=5793*f[0+h]+2048>>12,I=5793*f[32+h]+2048>>12,g=f[16+h],n=f[48+h],a=2896*(f[8+h]-f[56+h])+2048>>12,C=2896*(f[8+h]+f[56+h])+2048>>12,o=f[24+h],Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+2048>>12,g=1567*g-3784*n+2048>>12,n=Q,Q=a-(B=f[40+h])+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+h]=r+C,f[56+h]=r-C,f[8+h]=I+B,f[48+h]=I-B,f[16+h]=g+o,f[40+h]=g-o,f[24+h]=n+a,f[32+h]=n-a):(Q=5793*i[E+0]+8192>>14,f[0+h]=Q,f[8+h]=Q,f[16+h]=Q,f[24+h]=Q,f[32+h]=Q,f[40+h]=Q,f[48+h]=Q,f[56+h]=Q)}for(E=0;E<64;++E){var l=128+(f[E]+8>>4);t[E]=l<0?0:l>255?255:l}}for(var o=0;o>4==0)for(var C=0;C<64;C++){B[v[C]]=A[e++]}else{if(o>>4!=1)throw new Error(\"DQT: invalid table spec\");for(var Q=0;Q<64;Q++){B[v[Q]]=t()}}this.quantizationTables[15&o]=B}break;case 65472:case 65473:case 65474:t();for(var E={extended:65473===g,progressive:65474===g,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},s=A[e++],f=void 0,c=0;c>4,l=15&A[e+1],u=A[e+2];E.componentsOrder.push(f),E.components[f]={h:h,v:l,quantizationIdx:u},e+=3}i(E),this.frames.push(E);break;case 65476:for(var w=t(),d=2;d>4==0?this.huffmanTablesDC[15&D]=R(y,m):this.huffmanTablesAC[15&D]=R(y,m)}break;case 65501:t(),this.resetInterval=t();break;case 65498:t();for(var F=A[e++],S=[],L=this.frames[0],b=0;b>4],M.huffmanTableAC=this.huffmanTablesAC[15&N],S.push(M)}var x=A[e++],J=A[e++],q=A[e++],Y=U(A,e,L,S,this.resetInterval,x,J,q>>4,15&q);e+=Y;break;case 65535:255!==A[e]&&e--;break;default:if(255===A[e-3]&&A[e-2]>=192&&A[e-2]<=254){e-=3;break}throw new Error(\"unknown JPEG marker \".concat(g.toString(16)))}g=t()}}},{key:\"getResult\",value:function(){var A=this.frames;if(0===this.frames.length)throw new Error(\"no frames were decoded\");this.frames.length>1&&console.warn(\"more than one frame is not supported\");for(var e=0;e=0;)A[e]=0}x(new Array(576)),x(new Array(60)),x(new Array(512)),x(new Array(256)),x(new Array(29)),x(new Array(30));var J=function(A,e,t,i){for(var r=65535&A|0,I=A>>>16&65535|0,g=0;0!==t;){t-=g=t>2e3?2e3:t;do{I=I+(r=r+e[i++]|0)|0}while(--g);r%=65521,I%=65521}return r|I<<16|0},q=new Uint32Array(function(){for(var A,e=[],t=0;t<256;t++){A=t;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;e[t]=A}return e}()),Y=function(A,e,t,i){var r=q,I=i+t;A^=-1;for(var g=i;g>>8^r[255&(A^e[g])];return-1^A},K={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"},H={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},O=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},P=function(A){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var i=e.shift();if(i){if(\"object\"!==t(i))throw new TypeError(i+\"must be non-object\");for(var r in i)O(i,r)&&(A[r]=i[r])}}return A},T=function(A){for(var e=0,t=0,i=A.length;t=252?6:X>=248?5:X>=240?4:X>=224?3:X>=192?2:1;_[254]=_[254]=1;var Z=function(A){if(\"function\"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);var e,t,i,r,I,g=A.length,n=0;for(r=0;r>>6,e[I++]=128|63&t):t<65536?(e[I++]=224|t>>>12,e[I++]=128|t>>>6&63,e[I++]=128|63&t):(e[I++]=240|t>>>18,e[I++]=128|t>>>12&63,e[I++]=128|t>>>6&63,e[I++]=128|63&t);return e},j=function(A,e){var t,i,r=e||A.length;if(\"function\"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));var I=new Array(2*r);for(i=0,t=0;t4)I[i++]=65533,t+=n-1;else{for(g&=2===n?31:3===n?15:7;n>1&&t1?I[i++]=65533:g<65536?I[i++]=g:(g-=65536,I[i++]=55296|g>>10&1023,I[i++]=56320|1023&g)}}}return function(A,e){if(e<65534&&A.subarray&&V)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));for(var t=\"\",i=0;iA.length&&(e=A.length);for(var t=e-1;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+_[A[t]]>e?t:e};var z=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0},$=function(A,e){var t,i,r,I,g,n,a,o,B,C,Q,E,s,f,c,h,l,u,w,d,D,y,k,p,m=A.state;t=A.next_in,k=A.input,i=t+(A.avail_in-5),r=A.next_out,p=A.output,I=r-(e-A.avail_out),g=r+(A.avail_out-257),n=m.dmax,a=m.wsize,o=m.whave,B=m.wnext,C=m.window,Q=m.hold,E=m.bits,s=m.lencode,f=m.distcode,c=(1<>>=u=l>>>24,E-=u,0===(u=l>>>16&255))p[r++]=65535&l;else{if(!(16&u)){if(0==(64&u)){l=s[(65535&l)+(Q&(1<>>=u,E-=u),E<15&&(Q+=k[t++]<>>=u=l>>>24,E-=u,!(16&(u=l>>>16&255))){if(0==(64&u)){l=f[(65535&l)+(Q&(1<n){A.msg=\"invalid distance too far back\",m.mode=30;break A}if(Q>>>=u,E-=u,d>(u=r-I)){if((u=d-u)>o&&m.sane){A.msg=\"invalid distance too far back\",m.mode=30;break A}if(D=0,y=C,0===B){if(D+=a-u,u2;)p[r++]=y[D++],p[r++]=y[D++],p[r++]=y[D++],w-=3;w&&(p[r++]=y[D++],w>1&&(p[r++]=y[D++]))}else{D=r-d;do{p[r++]=p[D++],p[r++]=p[D++],p[r++]=p[D++],w-=3}while(w>2);w&&(p[r++]=p[D++],w>1&&(p[r++]=p[D++]))}break}}break}}while(t>3,Q&=(1<<(E-=w<<3))-1,A.next_in=t,A.next_out=r,A.avail_in=t=1&&0===v[d];d--);if(D>d&&(D=d),0===d)return r[I++]=20971520,r[I++]=20971520,n.bits=1,0;for(w=1;w0&&(0===A||1!==d))return-1;for(R[1]=0,l=1;l<15;l++)R[l+1]=R[l]+v[l];for(u=0;u852||2===A&&m>592)return 1;for(;;){s=l-k,g[u]E?(f=U[L+g[u]],c=F[S+g[u]]):(f=96,c=0),a=1<>k)+(o-=a)]=s<<24|f<<16|c|0}while(0!==o);for(a=1<>=1;if(0!==a?(G&=a-1,G+=a):G=0,u++,0==--v[l]){if(l===d)break;l=e[t+g[u]]}if(l>D&&(G&C)!==B){for(0===k&&(k=D),Q+=w,p=1<<(y=l-k);y+k852||2===A&&m>592)return 1;r[B=G&C]=D<<24|y<<16|Q-I|0}}return 0!==G&&(r[Q+G]=l-k<<24|64<<16|0),n.bits=D,0},IA=H.Z_FINISH,gA=H.Z_BLOCK,nA=H.Z_TREES,aA=H.Z_OK,oA=H.Z_STREAM_END,BA=H.Z_NEED_DICT,CA=H.Z_STREAM_ERROR,QA=H.Z_DATA_ERROR,EA=H.Z_MEM_ERROR,sA=H.Z_BUF_ERROR,fA=H.Z_DEFLATED,cA=function(A){return(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)};function hA(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var lA,uA,wA=function(A){if(!A||!A.state)return CA;var e=A.state;return A.total_in=A.total_out=e.total=0,A.msg=\"\",e.wrap&&(A.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,aA},dA=function(A){if(!A||!A.state)return CA;var e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,wA(A)},DA=function(A,e){var t;if(!A||!A.state)return CA;var i=A.state;return e<0?(t=0,e=-e):(t=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?CA:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,dA(A))},yA=function(A,e){if(!A)return CA;var t=new hA;A.state=t,t.window=null;var i=DA(A,e);return i!==aA&&(A.state=null),i},kA=!0,pA=function(A){if(kA){lA=new Int32Array(512),uA=new Int32Array(32);for(var e=0;e<144;)A.lens[e++]=8;for(;e<256;)A.lens[e++]=9;for(;e<280;)A.lens[e++]=7;for(;e<288;)A.lens[e++]=8;for(rA(1,A.lens,0,288,lA,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;rA(2,A.lens,0,32,uA,0,A.work,{bits:5}),kA=!1}A.lencode=lA,A.lenbits=9,A.distcode=uA,A.distbits=5},mA=function(A,e,t,i){var r,I=A.state;return null===I.window&&(I.wsize=1<=I.wsize?(I.window.set(e.subarray(t-I.wsize,t),0),I.wnext=0,I.whave=I.wsize):((r=I.wsize-I.wnext)>i&&(r=i),I.window.set(e.subarray(t-i,t-i+r),I.wnext),(i-=r)?(I.window.set(e.subarray(t-i,t),0),I.wnext=i,I.whave=I.wsize):(I.wnext+=r,I.wnext===I.wsize&&(I.wnext=0),I.whave>>8&255,t.check=Y(t.check,G,2,0),o=0,B=0,t.mode=2;break}if(t.flags=0,t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&o)<<8)+(o>>8))%31){A.msg=\"incorrect header check\",t.mode=30;break}if((15&o)!==fA){A.msg=\"unknown compression method\",t.mode=30;break}if(B-=4,D=8+(15&(o>>>=4)),0===t.wbits)t.wbits=D;else if(D>t.wbits){A.msg=\"invalid window size\",t.mode=30;break}t.dmax=1<>8&1),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=3;case 3:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>8&255,G[2]=o>>>16&255,G[3]=o>>>24&255,t.check=Y(t.check,G,4,0)),o=0,B=0,t.mode=4;case 4:for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>8),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=5;case 5:if(1024&t.flags){for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0}else t.head&&(t.head.extra=null);t.mode=6;case 6:if(1024&t.flags&&((E=t.length)>n&&(E=n),E&&(t.head&&(D=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(I,I+E),D)),512&t.flags&&(t.check=Y(t.check,i,E,I)),n-=E,I+=E,t.length-=E),t.length))break A;t.length=0,t.mode=7;case 7:if(2048&t.flags){if(0===n)break A;E=0;do{D=i[I+E++],t.head&&D&&t.length<65536&&(t.head.name+=String.fromCharCode(D))}while(D&&E>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=12;break;case 10:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>=7&B,B-=7&B,t.mode=27;break}for(;B<3;){if(0===n)break A;n--,o+=i[I++]<>>=1)){case 0:t.mode=14;break;case 1:if(pA(t),t.mode=20,e===nA){o>>>=2,B-=2;break A}break;case 2:t.mode=17;break;case 3:A.msg=\"invalid block type\",t.mode=30}o>>>=2,B-=2;break;case 14:for(o>>>=7&B,B-=7&B;B<32;){if(0===n)break A;n--,o+=i[I++]<>>16^65535)){A.msg=\"invalid stored block lengths\",t.mode=30;break}if(t.length=65535&o,o=0,B=0,t.mode=15,e===nA)break A;case 15:t.mode=16;case 16:if(E=t.length){if(E>n&&(E=n),E>a&&(E=a),0===E)break A;r.set(i.subarray(I,I+E),g),n-=E,I+=E,a-=E,g+=E,t.length-=E;break}t.mode=12;break;case 17:for(;B<14;){if(0===n)break A;n--,o+=i[I++]<>>=5,B-=5,t.ndist=1+(31&o),o>>>=5,B-=5,t.ncode=4+(15&o),o>>>=4,B-=4,t.nlen>286||t.ndist>30){A.msg=\"too many length or distance symbols\",t.mode=30;break}t.have=0,t.mode=18;case 18:for(;t.have>>=3,B-=3}for(;t.have<19;)t.lens[F[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,k={bits:t.lenbits},y=rA(0,t.lens,0,19,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg=\"invalid code lengths set\",t.mode=30;break}t.have=0,t.mode=19;case 19:for(;t.have>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=c,B-=c,t.lens[t.have++]=l;else{if(16===l){for(p=c+2;B>>=c,B-=c,0===t.have){A.msg=\"invalid bit length repeat\",t.mode=30;break}D=t.lens[t.have-1],E=3+(3&o),o>>>=2,B-=2}else if(17===l){for(p=c+3;B>>=c)),o>>>=3,B-=3}else{for(p=c+7;B>>=c)),o>>>=7,B-=7}if(t.have+E>t.nlen+t.ndist){A.msg=\"invalid bit length repeat\",t.mode=30;break}for(;E--;)t.lens[t.have++]=D}}if(30===t.mode)break;if(0===t.lens[256]){A.msg=\"invalid code -- missing end-of-block\",t.mode=30;break}if(t.lenbits=9,k={bits:t.lenbits},y=rA(1,t.lens,0,t.nlen,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg=\"invalid literal/lengths set\",t.mode=30;break}if(t.distbits=6,t.distcode=t.distdyn,k={bits:t.distbits},y=rA(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,k),t.distbits=k.bits,y){A.msg=\"invalid distances set\",t.mode=30;break}if(t.mode=20,e===nA)break A;case 20:t.mode=21;case 21:if(n>=6&&a>=258){A.next_out=g,A.avail_out=a,A.next_in=I,A.avail_in=n,t.hold=o,t.bits=B,$(A,Q),g=A.next_out,r=A.output,a=A.avail_out,I=A.next_in,i=A.input,n=A.avail_in,o=t.hold,B=t.bits,12===t.mode&&(t.back=-1);break}for(t.back=0;h=(m=t.lencode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,t.length=l,0===h){t.mode=26;break}if(32&h){t.back=-1,t.mode=12;break}if(64&h){A.msg=\"invalid literal/length code\",t.mode=30;break}t.extra=15&h,t.mode=22;case 22:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=23;case 23:for(;h=(m=t.distcode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,64&h){A.msg=\"invalid distance code\",t.mode=30;break}t.offset=l,t.extra=15&h,t.mode=24;case 24:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg=\"invalid distance too far back\",t.mode=30;break}t.mode=25;case 25:if(0===a)break A;if(E=Q-a,t.offset>E){if((E=t.offset-E)>t.whave&&t.sane){A.msg=\"invalid distance too far back\",t.mode=30;break}E>t.wnext?(E-=t.wnext,s=t.wsize-E):s=t.wnext-E,E>t.length&&(E=t.length),f=t.window}else f=r,s=g-t.offset,E=t.length;E>a&&(E=a),a-=E,t.length-=E;do{r[g++]=f[s++]}while(--E);0===t.length&&(t.mode=21);break;case 26:if(0===a)break A;r[g++]=t.length,a--,t.mode=21;break;case 27:if(t.wrap){for(;B<32;){if(0===n)break A;n--,o|=i[I++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||A&&A.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new z,this.strm.avail_out=0;var t=GA.inflateInit2(this.strm,e.windowBits);if(t!==UA)throw new Error(K[t]);if(this.header=new FA,GA.inflateGetHeader(this.strm,this.header),e.dictionary&&(\"string\"==typeof e.dictionary?e.dictionary=Z(e.dictionary):\"[object ArrayBuffer]\"===SA.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=GA.inflateSetDictionary(this.strm,e.dictionary))!==UA))throw new Error(K[t])}function qA(A,e){var t=new JA(e);if(t.push(A),t.err)throw t.msg||K[t.err];return t.result}JA.prototype.push=function(A,e){var t,i,r,I=this.strm,g=this.options.chunkSize,n=this.options.dictionary;if(this.ended)return!1;for(i=e===~~e?e:!0===e?RA:vA,\"[object ArrayBuffer]\"===SA.call(A)?I.input=new Uint8Array(A):I.input=A,I.next_in=0,I.avail_in=I.input.length;;){for(0===I.avail_out&&(I.output=new Uint8Array(g),I.next_out=0,I.avail_out=g),(t=GA.inflate(I,i))===bA&&n&&((t=GA.inflateSetDictionary(I,n))===UA?t=GA.inflate(I,i):t===NA&&(t=bA));I.avail_in>0&&t===LA&&I.state.wrap>0&&0!==A[I.next_in];)GA.inflateReset(I),t=GA.inflate(I,i);switch(t){case MA:case NA:case bA:case xA:return this.onEnd(t),this.ended=!0,!1}if(r=I.avail_out,I.next_out&&(0===I.avail_out||t===LA))if(\"string\"===this.options.to){var a=W(I.output,I.next_out),o=I.next_out-a,B=j(I.output,a);I.next_out=o,I.avail_out=g-o,o&&I.output.set(I.output.subarray(a,a+o),0),this.onData(B)}else this.onData(I.output.length===I.next_out?I.output:I.output.subarray(0,I.next_out));if(t!==UA||0!==r){if(t===LA)return t=GA.inflateEnd(this.strm),this.onEnd(t),this.ended=!0,!0;if(0===I.avail_in)break}}return!0},JA.prototype.onData=function(A){this.chunks.push(A)},JA.prototype.onEnd=function(A){A===UA&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=T(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var YA={Inflate:JA,inflate:qA,inflateRaw:function(A,e){return(e=e||{}).raw=!0,qA(A,e)},ungzip:qA,constants:H}.inflate;function KA(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var HA=function(A){s(t,w);var e=KA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:\"decodeBlock\",value:function(A){return YA(new Uint8Array(A)).buffer}}]),t}(),OA=Object.freeze({__proto__:null,default:HA});function PA(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var TA,VA=function(A){s(t,w);var e=PA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:\"decodeBlock\",value:function(A){for(var e=new DataView(A),t=[],i=0;i>3],m<<=7&G),c=0;c>3]),128&m?(a&&(a[G]=1),f=f>(g=S.encoding<2?y[k++]:p)?g:f,n[G++]=g):(a&&(a[G]=0),n[G++]=i),m<<=1;G+=F}else if(S.encoding<2)for(h=0;h(g=y[k++])?g:f,n[G++]=g;G+=F}else for(f=f>p?p:f,h=0;h0){var g=new Uint8Array(Math.ceil(i.width*i.height/8)),n=(I=new DataView(A,e,i.mask.numBytes)).getInt16(0,!0),a=2,o=0;do{if(n>0)for(;n--;)g[o++]=I.getUint8(a++);else{var B=I.getUint8(a++);for(n=-n;n--;)g[o++]=B}n=I.getInt16(a,!0),a+=2}while(a0?1:0),s=Q+(i.height%Q>0?1:0);i.pixels.blocks=new Array(E*s);for(var f=0,c=0;c3)throw\"Invalid block encoding (\"+w.encoding+\")\";if(2!==w.encoding){if(0!==d&&2!==d){if(d>>=6,w.offsetType=d,2===d)w.offset=I.getInt8(1),l++;else if(1===d)w.offset=I.getInt16(1,!0),l+=2;else{if(0!==d)throw\"Invalid block offset type\";w.offset=I.getFloat32(1,!0),l+=4}if(1===w.encoding)if(d=I.getUint8(l),l++,w.bitsPerPixel=63&d,d>>=6,w.numValidPixelsType=d,2===d)w.numValidPixels=I.getUint8(l),l++;else if(1===d)w.numValidPixels=I.getUint16(l,!0),l+=2;else{if(0!==d)throw\"Invalid valid pixel count type\";w.numValidPixels=I.getUint32(l,!0),l+=4}}var D;if(e+=l,3!==w.encoding)if(0===w.encoding){var y=(i.pixels.numBytes-1)/4;if(y!==Math.floor(y))throw\"uncompressed block has invalid length\";D=new ArrayBuffer(4*y),new Uint8Array(D).set(new Uint8Array(A,e,4*y));var k=new Float32Array(D);w.rawData=k,e+=4*y}else if(1===w.encoding){var p=Math.ceil(w.numValidPixels*w.bitsPerPixel/8),m=Math.ceil(p/4);D=new ArrayBuffer(4*m),new Uint8Array(D).set(new Uint8Array(A,e,p)),w.stuffedData=new Uint32Array(D),e+=p}}else e++}return i.eofOffset=e,i},I=function(A,e,t,i,r,I,g){var n,a,o,B=(1<=e)a=o>>>Q-e&B,Q-=e;else{var f=e-Q;a=(o&B)<>>(Q=32-f)}I[n]=a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=r[o];else for(Q=Math.ceil((n-I)/g),a=0;a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=o=e?(Q=g>>>C-e&n,C-=e):(Q=(g&n)<<(B=e-C)&n,Q+=(g=A[a++])>>>(C=32-B)),E[o]=Q=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=e?(Q=g>>>E&n,C-=e,E+=e):(Q=g>>>E&n,C=32-(B=e-C),Q|=((g=A[a++])&(1<=t?(I=g>>>B-t&a,B-=t):(I=(g&a)<<(n=t-B)&a,I+=(g=A[o++])>>>(B=32-n)),e[r]=I;return e},C=function(A,e,t,i){var r,I,g,n,a=(1<=t?(I=g>>>C&a,B-=t,C+=t):(I=g>>>C&a,B=32-(n=t-B),I|=((g=A[o++])&(1<=359?359:r;r-=g;do{e+=A[I++]<<8,t+=e+=A[I++]}while(--g);e=(65535&e)+(e>>>16),t=(65535&t)+(t>>>16)}return 1&i&&(t+=e+=A[I]<<8),((t=(65535&t)+(t>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(A,e){var t=e.ptr,i=new Uint8Array(A,t,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,i),0!==r.fileIdentifierString.lastIndexOf(\"Lerc2\",0))throw\"Unexpected file identifier string (expect Lerc2 ): \"+r.fileIdentifierString;t+=6;var I,g=new DataView(A,t,8),n=g.getInt32(0,!0);if(r.fileVersion=n,t+=4,n>=3&&(r.checksum=g.getUint32(4,!0),t+=4),g=new DataView(A,t,12),r.height=g.getUint32(0,!0),r.width=g.getUint32(4,!0),t+=8,n>=4?(r.numDims=g.getUint32(8,!0),t+=4):r.numDims=1,g=new DataView(A,t,40),r.numValidPixel=g.getUint32(0,!0),r.microBlockSize=g.getInt32(4,!0),r.blobSize=g.getInt32(8,!0),r.imageType=g.getInt32(12,!0),r.maxZError=g.getFloat64(16,!0),r.zMin=g.getFloat64(24,!0),r.zMax=g.getFloat64(32,!0),t+=40,e.headerInfo=r,e.ptr=t,n>=3&&(I=n>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,t-I,r.blobSize-14))!==r.checksum))throw\"Checksum failed.\";return!0},checkMinMaxRanges:function(A,e){var t=e.headerInfo,i=this.getDataTypeArray(t.imageType),r=t.numDims*this.getDataTypeSize(t.imageType),I=this.readSubArray(A,e.ptr,i,r),g=this.readSubArray(A,e.ptr+r,i,r);e.ptr+=2*r;var n,a=!0;for(n=0;n0){t=new Uint8Array(Math.ceil(g/8));var B=(a=new DataView(A,r,o.numBytes)).getInt16(0,!0),C=2,Q=0,E=0;do{if(B>0)for(;B--;)t[Q++]=a.getUint8(C++);else for(E=a.getUint8(C++),B=-B;B--;)t[Q++]=E;B=a.getInt16(C,!0),C+=2}while(C>3],s<<=7&f):s=t[f>>3],128&s&&(i[f]=1);e.pixels.resultMask=i,o.bitset=t,r+=o.numBytes}return e.ptr=r,e.mask=o,!0},readDataOneSweep:function(A,e,t,i){var r,I=e.ptr,g=e.headerInfo,n=g.numDims,a=g.width*g.height,o=g.imageType,B=g.numValidPixel*Q.getDataTypeSize(o)*n,C=e.pixels.resultMask;if(t===Uint8Array)r=new Uint8Array(A,I,B);else{var E=new ArrayBuffer(B);new Uint8Array(E).set(new Uint8Array(A,I,B)),r=new t(E)}if(r.length===a*n)e.pixels.resultPixels=i?Q.swapDimensionOrder(r,a,n,t,!0):r;else{e.pixels.resultPixels=new t(a*n);var s=0,f=0,c=0,h=0;if(n>1){if(i){for(f=0;f=g)return!1;var n=new Uint32Array(g-I);Q.decodeBits(A,e,n);var a,o,B,C,s=[];for(a=I;a0&&(s[o].second=l<>>32-C,32-w>=C?32===(w+=C)&&(w=0,l=u[++d]):(w+=C-32,l=u[++d],s[o].second|=l>>>32-w));var D=0,y=0,k=new E;for(a=0;a=t?t:D;var p,m,G,F,S,v=[];for(a=I;a0)if(p=[C,o],C<=y)for(m=s[o].second<=0;F--)m>>>F&1?(S.right||(S.right=new E),S=S.right):(S.left||(S.left=new E),S=S.left),0!==F||S.val||(S.val=p[1]);return{decodeLut:v,numBitsLUTQick:y,numBitsLUT:D,tree:k,stuffedData:u,srcPtr:d,bitPos:w}},readHuffman:function(A,e,t,i){var r,I,g,n,a,o,B,C,E,s=e.headerInfo.numDims,f=e.headerInfo.height,c=e.headerInfo.width,h=c*f,l=this.readHuffmanTree(A,e),u=l.decodeLut,w=l.tree,d=l.stuffedData,D=l.srcPtr,y=l.bitPos,k=l.numBitsLUTQick,p=l.numBitsLUT,m=0===e.headerInfo.imageType?128:0,G=e.pixels.resultMask,F=0;y>0&&(D++,y=0);var S,v=d[D],R=1===e.encodeMode,U=new t(h*s),L=U;if(s<2||R){for(S=0;S1&&(L=new t(U.buffer,h*S,h),F=0),e.headerInfo.numValidPixel===c*f)for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(g+=B>0?F:o>0?L[C-c]:F,g&=255,L[C]=g,F=g):L[C]=g}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(B>0&&G[C-1]?g+=F:o>0&&G[C-c]?g+=L[C-c]:g+=F,g&=255,L[C]=g,F=g):L[C]=g}}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,L[C]=g}e.ptr=e.ptr+4*(D+1)+(y>0?4:0),e.pixels.resultPixels=U,s>1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(U,h,s,t))},decodeBits:function(A,e,t,i,r){var I=e.headerInfo,Q=I.fileVersion,E=0,s=A.byteLength-e.ptr>=5?5:A.byteLength-e.ptr,f=new DataView(A,e.ptr,s),c=f.getUint8(0);E++;var h=c>>6,l=0===h?4:3-h,u=(32&c)>0,w=31&c,d=0;if(1===l)d=f.getUint8(E),E++;else if(2===l)d=f.getUint16(E,!0),E+=2;else{if(4!==l)throw\"Invalid valid pixel count type\";d=f.getUint32(E,!0),E+=4}var D,y,k,p,m,G,F,S,v,R=2*I.maxZError,U=I.numDims>1?I.maxValues[r]:I.zMax;if(u){for(e.counter.lut++,S=f.getUint8(E),E++,p=Math.ceil((S-1)*w/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),k=new Uint8Array(y),e.ptr+=E,k.set(new Uint8Array(A,e.ptr,p)),F=new Uint32Array(y),e.ptr+=p,v=0;S-1>>>v;)v++;p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,G=Q>=3?o(F,w,S-1,i,R,U):n(F,w,S-1,i,R,U),Q>=3?a(D,t,v,d,G):g(D,t,v,d,G)}else e.counter.bitstuffer++,v=w,e.ptr+=E,v>0&&(p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,Q>=3?null==i?C(D,t,v,d):a(D,t,v,d,!1,i,R,U):null==i?B(D,t,v,d):g(D,t,v,d,!1,i,R,U))},readTiles:function(A,e,t,i){var r=e.headerInfo,I=r.width,g=r.height,n=I*g,a=r.microBlockSize,o=r.imageType,B=Q.getDataTypeSize(o),C=Math.ceil(I/a),E=Math.ceil(g/a);e.pixels.numBlocksY=E,e.pixels.numBlocksX=C,e.pixels.ptr=0;var s,f,c,h,l,u,w,d,D,y,k=0,p=0,m=0,G=0,F=0,S=0,v=0,R=0,U=0,L=0,b=0,M=0,N=0,x=0,J=0,q=new t(a*a),Y=g%a||a,K=I%a||a,H=r.numDims,O=e.pixels.resultMask,P=e.pixels.resultPixels,T=r.fileVersion>=5?14:15,V=r.zMax;for(m=0;m1?(y=P,L=m*I*a+G*a,P=new t(e.pixels.resultPixels.buffer,n*d*B,n),V=r.maxValues[d]):y=null,v=A.byteLength-e.ptr,f={},J=0,R=(s=new DataView(A,e.ptr,Math.min(10,v))).getUint8(0),J++,D=r.fileVersion>=5?4&R:0,U=R>>6&255,(R>>2&T)!=(G*a>>3&T))throw\"integrity issue\";if(D&&0===d)throw\"integrity issue\";if((l=3&R)>3)throw e.ptr+=J,\"Invalid block encoding (\"+l+\")\";if(2!==l)if(0===l){if(D)throw\"integrity issue\";if(e.counter.uncompressed++,e.ptr+=J,M=(M=F*S*B)<(N=A.byteLength-e.ptr)?M:N,c=new ArrayBuffer(M%B==0?M:M+B-M%B),new Uint8Array(c).set(new Uint8Array(A,e.ptr,M)),h=new t(c),x=0,O)for(k=0;k1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(e.pixels.resultPixels,n,H,t))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:Q.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,e){var t=A.headerInfo.zMax,i=A.headerInfo.zMin,r=A.headerInfo.maxValues,I=A.headerInfo.numDims,g=A.headerInfo.height*A.headerInfo.width,n=0,a=0,o=0,B=A.pixels.resultMask,C=A.pixels.resultPixels;if(B)if(I>1){if(e)for(n=0;n1&&i!==t)if(e)for(n=0;n=-128&&e<=127;break;case 1:t=e>=0&&e<=255;break;case 2:t=e>=-32768&&e<=32767;break;case 3:t=e>=0&&e<=65536;break;case 4:t=e>=-2147483648&&e<=2147483647;break;case 5:t=e>=0&&e<=4294967296;break;case 6:t=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:t=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:t=!1}return t},getDataTypeSize:function(A){var e=0;switch(A){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=A}return e},getDataTypeUsed:function(A,e){var t=A;switch(A){case 2:case 4:t=A-e;break;case 3:case 5:t=A-2*e;break;case 6:t=0===e?A:1===e?2:1;break;case 7:t=0===e?A:A-2*e+1;break;default:t=A}return t},getOnePixel:function(A,e,t,i){var r=0;switch(t){case 0:r=i.getInt8(e);break;case 1:r=i.getUint8(e);break;case 2:r=i.getInt16(e,!0);break;case 3:r=i.getUint16(e,!0);break;case 4:r=i.getInt32(e,!0);break;case 5:r=i.getUInt32(e,!0);break;case 6:r=i.getFloat32(e,!0);break;case 7:r=i.getFloat64(e,!0);break;default:throw\"the decoder does not understand this pixel type\"}return r},swapDimensionOrder:function(A,e,t,i,r){var I=0,g=0,n=0,a=0,o=A;if(t>1)if(o=new i(e*t),r)for(I=0;I5)throw\"unsupported lerc version 2.\"+g;Q.readMask(A,r),I.numValidPixel===I.width*I.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var a=I.width*I.height;r.pixels.resultPixels=new n(a*I.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var o,B=!e.returnPixelInterleavedDims;if(0!==I.numValidPixel)if(I.zMax===I.zMin)Q.constructConstantSurface(r,B);else if(g>=4&&Q.checkMinMaxRanges(A,r))Q.constructConstantSurface(r,B);else{var C=new DataView(A,r.ptr,2),E=C.getUint8(0);if(r.ptr++,E)Q.readDataOneSweep(A,r,n,B);else if(g>1&&I.imageType<=1&&Math.abs(I.maxZError-.5)<1e-5){var s=C.getUint8(1);if(r.ptr++,r.encodeMode=s,s>2||g<4&&s>1)throw\"Invalid Huffman flag \"+s;s?Q.readHuffman(A,r,n,B):Q.readTiles(A,r,n,B)}else Q.readTiles(A,r,n,B)}r.eofOffset=r.ptr,e.inputOffset?(o=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(o)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(o=r.headerInfo.blobSize-r.ptr,Math.abs(o)>=1&&(r.eofOffset=r.headerInfo.blobSize));var f={width:I.width,height:I.height,pixelData:r.pixels.resultPixels,minValue:I.zMin,maxValue:I.zMax,validPixelCount:I.numValidPixel,dimCount:I.numDims,dimStats:{minValues:I.minValues,maxValues:I.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&Q.isValidPixelValue(I.imageType,t)){var c=r.pixels.resultMask;for(i=0;i1&&(o&&f.push(o),d.fileInfo.mask&&d.fileInfo.mask.numBytes>0&&w++),E++,u.pixels.push(d.pixelData),u.statistics.push({minValue:d.minValue,maxValue:d.maxValue,noDataValue:d.noDataValue,dimStats:d.dimStats})}if(i>1&&w>1){for(Q=u.width*u.height,u.bandMasks=f,(o=new Uint8Array(Q)).set(f[0]),B=1;B1&&void 0!==arguments[1]?arguments[1]:0;if(!jA)throw new Error(\"ZSTDDecoder: Await .init() before decoding.\");var t=A.byteLength,i=jA.exports.malloc(t);WA.set(A,i),e=e||Number(jA.exports.ZSTD_findDecompressedSize(i,t));var r=jA.exports.malloc(e),I=jA.exports.ZSTD_decompress(r,e,i,t),g=WA.slice(r,r+I);return jA.exports.free(i),jA.exports.free(r),g}}]),A}(),ee=\"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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMyIFEAMiBg0AIANBHzYCfCADIANB/ABqIANB+ABqIAQgBCAFaiAGGyIEIAEgAmoiAiAEaxAVIgUQAw0AIAMoAnwiBkEfSw0AIAMoAngiB0EJTw0AIABBiCBqIAMgBkGAC0GADCAHEBggA0E0NgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQFSIFEAMNACADKAJ8IgZBNEsNACADKAJ4IgdBCk8NACAAQZAwaiADIAZBgA1B4A4gBxAYIANBIzYCfCADIANB/ABqIANB+ABqIAQgBWoiBCACIARrEBUiBRADDQAgAygCfCIGQSNLDQAgAygCeCIHQQpPDQAgACADIAZBwBBB0BEgBxAYIAQgBWoiBEEMaiIFIAJLDQAgAiAFayEFQQAhAgNAIAJBA0cEQCAEKAAAIgZBf2ogBU8NAiAAIAJBAnRqQZzQAWogBjYCACACQQFqIQIgBEEEaiEEDAELCyAEIAFrIQgLIANBgAFqJAAgCAtGAQN/IABBCGohAyAAKAIEIQJBACEAA0AgACACdkUEQCABIAMgAEEDdGotAAJBFktqIQEgAEEBaiEADAELCyABQQggAmt0C4YDAQV/Qbh/IQcCQCADRQ0AIAItAAAiBEUEQCABQQA2AgBBAUG4fyADQQFGGw8LAn8gAkEBaiIFIARBGHRBGHUiBkF/Sg0AGiAGQX9GBEAgA0EDSA0CIAUvAABBgP4BaiEEIAJBA2oMAQsgA0ECSA0BIAItAAEgBEEIdHJBgIB+aiEEIAJBAmoLIQUgASAENgIAIAVBAWoiASACIANqIgNLDQBBbCEHIABBEGogACAFLQAAIgVBBnZBI0EJIAEgAyABa0HAEEHQEUHwEiAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBmCBqIABBCGogBUEEdkEDcUEfQQggASABIAZqIAgbIgEgAyABa0GAC0GADEGAFyAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBoDBqIABBBGogBUECdkEDcUE0QQkgASABIAZqIAgbIgEgAyABa0GADUHgDkGQGSAAKAKM4QEgACgCnOIBIAQQHyIAEAMNACAAIAFqIAJrIQcLIAcLrQMBCn8jAEGABGsiCCQAAn9BUiACQf8BSw0AGkFUIANBDEsNABogAkEBaiELIABBBGohCUGAgAQgA0F/anRBEHUhCkEAIQJBASEEQQEgA3QiB0F/aiIMIQUDQCACIAtGRQRAAkAgASACQQF0Ig1qLwEAIgZB//8DRgRAIAkgBUECdGogAjoAAiAFQX9qIQVBASEGDAELIARBACAKIAZBEHRBEHVKGyEECyAIIA1qIAY7AQAgAkEBaiECDAELCyAAIAQ7AQIgACADOwEAIAdBA3YgB0EBdmpBA2ohBkEAIQRBACECA0AgBCALRkUEQCABIARBAXRqLgEAIQpBACEAA0AgACAKTkUEQCAJIAJBAnRqIAQ6AAIDQCACIAZqIAxxIgIgBUsNAAsgAEEBaiEADAELCyAEQQFqIQQMAQsLQX8gAg0AGkEAIQIDfyACIAdGBH9BAAUgCCAJIAJBAnRqIgAtAAJBAXRqIgEgAS8BACIBQQFqOwEAIAAgAyABEBRrIgU6AAMgACABIAVB/wFxdCAHazsBACACQQFqIQIMAQsLCyEFIAhBgARqJAAgBQvjBgEIf0FsIQcCQCACQQNJDQACQAJAAkACQCABLQAAIgNBA3EiCUEBaw4DAwEAAgsgACgCiOEBDQBBYg8LIAJBBUkNAkEDIQYgASgAACEFAn8CQAJAIANBAnZBA3EiCEF+aiIEQQFNBEAgBEEBaw0BDAILIAVBDnZB/wdxIQQgBUEEdkH/B3EhAyAIRQwCCyAFQRJ2IQRBBCEGIAVBBHZB//8AcSEDQQAMAQsgBUEEdkH//w9xIgNBgIAISw0DIAEtAARBCnQgBUEWdnIhBEEFIQZBAAshBSAEIAZqIgogAksNAgJAIANBgQZJDQAgACgCnOIBRQ0AQQAhAgNAIAJBg4ABSw0BIAJBQGshAgwAAAsACwJ/IAlBA0YEQCABIAZqIQEgAEHw4gFqIQIgACgCDCEGIAUEQCACIAMgASAEIAYQXwwCCyACIAMgASAEIAYQXQwBCyAAQbjQAWohAiABIAZqIQEgAEHw4gFqIQYgAEGo0ABqIQggBQRAIAggBiADIAEgBCACEF4MAQsgCCAGIAMgASAEIAIQXAsQAw0CIAAgAzYCgOIBIABBATYCiOEBIAAgAEHw4gFqNgLw4QEgCUECRgRAIAAgAEGo0ABqNgIMCyAAIANqIgBBiOMBakIANwAAIABBgOMBakIANwAAIABB+OIBakIANwAAIABB8OIBakIANwAAIAoPCwJ/AkACQAJAIANBAnZBA3FBf2oiBEECSw0AIARBAWsOAgACAQtBASEEIANBA3YMAgtBAiEEIAEvAABBBHYMAQtBAyEEIAEQIUEEdgsiAyAEaiIFQSBqIAJLBEAgBSACSw0CIABB8OIBaiABIARqIAMQCyEBIAAgAzYCgOIBIAAgATYC8OEBIAEgA2oiAEIANwAYIABCADcAECAAQgA3AAggAEIANwAAIAUPCyAAIAM2AoDiASAAIAEgBGo2AvDhASAFDwsCfwJAAkACQCADQQJ2QQNxQX9qIgRBAksNACAEQQFrDgIAAgELQQEhByADQQN2DAILQQIhByABLwAAQQR2DAELIAJBBEkgARAhIgJBj4CAAUtyDQFBAyEHIAJBBHYLIQIgAEHw4gFqIAEgB2otAAAgAkEgahAQIQEgACACNgKA4gEgACABNgLw4QEgB0EBaiEHCyAHC0sAIABC+erQ0OfJoeThADcDICAAQgA3AxggAELP1tO+0ser2UI3AxAgAELW64Lu6v2J9eAANwMIIABCADcDACAAQShqQQBBKBAQGgviAgICfwV+IABBKGoiASAAKAJIaiECAn4gACkDACIDQiBaBEAgACkDECIEQgeJIAApAwgiBUIBiXwgACkDGCIGQgyJfCAAKQMgIgdCEol8IAUQGSAEEBkgBhAZIAcQGQwBCyAAKQMYQsXP2bLx5brqJ3wLIAN8IQMDQCABQQhqIgAgAk0EQEIAIAEpAAAQCSADhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCEDIAAhAQwBCwsCQCABQQRqIgAgAksEQCABIQAMAQsgASgAAK1Ch5Wvr5i23puef34gA4VCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQMLA0AgACACSQRAIAAxAABCxc/ZsvHluuonfiADhUILiUKHla+vmLbem55/fiEDIABBAWohAAwBCwsgA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC+8CAgJ/BH4gACAAKQMAIAKtfDcDAAJAAkAgACgCSCIDIAJqIgRBH00EQCABRQ0BIAAgA2pBKGogASACECAgACgCSCACaiEEDAELIAEgAmohAgJ/IAMEQCAAQShqIgQgA2ogAUEgIANrECAgACAAKQMIIAQpAAAQCTcDCCAAIAApAxAgACkAMBAJNwMQIAAgACkDGCAAKQA4EAk3AxggACAAKQMgIABBQGspAAAQCTcDICAAKAJIIQMgAEEANgJIIAEgA2tBIGohAQsgAUEgaiACTQsEQCACQWBqIQMgACkDICEFIAApAxghBiAAKQMQIQcgACkDCCEIA0AgCCABKQAAEAkhCCAHIAEpAAgQCSEHIAYgASkAEBAJIQYgBSABKQAYEAkhBSABQSBqIgEgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyABIAJPDQEgAEEoaiABIAIgAWsiBBAgCyAAIAQ2AkgLCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQEBogAwVBun8LCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQCxogAwVBun8LC6gCAQZ/IwBBEGsiByQAIABB2OABaikDAEKAgIAQViEIQbh/IQUCQCAEQf//B0sNACAAIAMgBBBCIgUQAyIGDQAgACgCnOIBIQkgACAHQQxqIAMgAyAFaiAGGyIKIARBACAFIAYbayIGEEAiAxADBEAgAyEFDAELIAcoAgwhBCABRQRAQbp/IQUgBEEASg0BCyAGIANrIQUgAyAKaiEDAkAgCQRAIABBADYCnOIBDAELAkACQAJAIARBBUgNACAAQdjgAWopAwBCgICACFgNAAwBCyAAQQA2ApziAQwBCyAAKAIIED8hBiAAQQA2ApziASAGQRRPDQELIAAgASACIAMgBSAEIAgQOSEFDAELIAAgASACIAMgBSAEIAgQOiEFCyAHQRBqJAAgBQtnACAAQdDgAWogASACIAAoAuzhARAuIgEQAwRAIAEPC0G4fyECAkAgAQ0AIABB7OABaigCACIBBEBBYCECIAAoApjiASABRw0BC0EAIQIgAEHw4AFqKAIARQ0AIABBkOEBahBDCyACCycBAX8QVyIERQRAQUAPCyAEIAAgASACIAMgBBBLEE8hACAEEFYgAAs/AQF/AkACQAJAIAAoAqDiAUEBaiIBQQJLDQAgAUEBaw4CAAECCyAAEDBBAA8LIABBADYCoOIBCyAAKAKU4gELvAMCB38BfiMAQRBrIgkkAEG4fyEGAkAgBCgCACIIQQVBCSAAKALs4QEiBRtJDQAgAygCACIHQQFBBSAFGyAFEC8iBRADBEAgBSEGDAELIAggBUEDakkNACAAIAcgBRBJIgYQAw0AIAEgAmohCiAAQZDhAWohCyAIIAVrIQIgBSAHaiEHIAEhBQNAIAcgAiAJECwiBhADDQEgAkF9aiICIAZJBEBBuH8hBgwCCyAJKAIAIghBAksEQEFsIQYMAgsgB0EDaiEHAn8CQAJAAkAgCEEBaw4CAgABCyAAIAUgCiAFayAHIAYQSAwCCyAFIAogBWsgByAGEEcMAQsgBSAKIAVrIActAAAgCSgCCBBGCyIIEAMEQCAIIQYMAgsgACgC8OABBEAgCyAFIAgQRQsgAiAGayECIAYgB2ohByAFIAhqIQUgCSgCBEUNAAsgACkD0OABIgxCf1IEQEFsIQYgDCAFIAFrrFINAQsgACgC8OABBEBBaiEGIAJBBEkNASALEEQhDCAHKAAAIAynRw0BIAdBBGohByACQXxqIQILIAMgBzYCACAEIAI2AgAgBSABayEGCyAJQRBqJAAgBgsuACAAECsCf0EAQQAQAw0AGiABRSACRXJFBEBBYiAAIAEgAhA9EAMNARoLQQALCzcAIAEEQCAAIAAoAsTgASABKAIEIAEoAghqRzYCnOIBCyAAECtBABADIAFFckUEQCAAIAEQWwsL0QIBB38jAEEQayIGJAAgBiAENgIIIAYgAzYCDCAFBEAgBSgCBCEKIAUoAgghCQsgASEIAkACQANAIAAoAuzhARAWIQsCQANAIAQgC0kNASADKAAAQXBxQdDUtMIBRgRAIAMgBBAiIgcQAw0EIAQgB2shBCADIAdqIQMMAQsLIAYgAzYCDCAGIAQ2AggCQCAFBEAgACAFEE5BACEHQQAQA0UNAQwFCyAAIAogCRBNIgcQAw0ECyAAIAgQUCAMQQFHQQAgACAIIAIgBkEMaiAGQQhqEEwiByIDa0EAIAMQAxtBCkdyRQRAQbh/IQcMBAsgBxADDQMgAiAHayECIAcgCGohCEEBIQwgBigCDCEDIAYoAgghBAwBCwsgBiADNgIMIAYgBDYCCEG4fyEHIAQNASAIIAFrIQcMAQsgBiADNgIMIAYgBDYCCAsgBkEQaiQAIAcLRgECfyABIAAoArjgASICRwRAIAAgAjYCxOABIAAgATYCuOABIAAoArzgASEDIAAgATYCvOABIAAgASADIAJrajYCwOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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\",te={315:\"Artist\",258:\"BitsPerSample\",265:\"CellLength\",264:\"CellWidth\",320:\"ColorMap\",259:\"Compression\",33432:\"Copyright\",306:\"DateTime\",338:\"ExtraSamples\",266:\"FillOrder\",289:\"FreeByteCounts\",288:\"FreeOffsets\",291:\"GrayResponseCurve\",290:\"GrayResponseUnit\",316:\"HostComputer\",270:\"ImageDescription\",257:\"ImageLength\",256:\"ImageWidth\",271:\"Make\",281:\"MaxSampleValue\",280:\"MinSampleValue\",272:\"Model\",254:\"NewSubfileType\",274:\"Orientation\",262:\"PhotometricInterpretation\",284:\"PlanarConfiguration\",296:\"ResolutionUnit\",278:\"RowsPerStrip\",277:\"SamplesPerPixel\",305:\"Software\",279:\"StripByteCounts\",273:\"StripOffsets\",255:\"SubfileType\",263:\"Threshholding\",282:\"XResolution\",283:\"YResolution\",326:\"BadFaxLines\",327:\"CleanFaxData\",343:\"ClipPath\",328:\"ConsecutiveBadFaxLines\",433:\"Decode\",434:\"DefaultImageColor\",269:\"DocumentName\",336:\"DotRange\",321:\"HalftoneHints\",346:\"Indexed\",347:\"JPEGTables\",285:\"PageName\",297:\"PageNumber\",317:\"Predictor\",319:\"PrimaryChromaticities\",532:\"ReferenceBlackWhite\",339:\"SampleFormat\",340:\"SMinSampleValue\",341:\"SMaxSampleValue\",559:\"StripRowCounts\",330:\"SubIFDs\",292:\"T4Options\",293:\"T6Options\",325:\"TileByteCounts\",323:\"TileLength\",324:\"TileOffsets\",322:\"TileWidth\",301:\"TransferFunction\",318:\"WhitePoint\",344:\"XClipPathUnits\",286:\"XPosition\",529:\"YCbCrCoefficients\",531:\"YCbCrPositioning\",530:\"YCbCrSubSampling\",345:\"YClipPathUnits\",287:\"YPosition\",37378:\"ApertureValue\",40961:\"ColorSpace\",36868:\"DateTimeDigitized\",36867:\"DateTimeOriginal\",34665:\"Exif IFD\",36864:\"ExifVersion\",33434:\"ExposureTime\",41728:\"FileSource\",37385:\"Flash\",40960:\"FlashpixVersion\",33437:\"FNumber\",42016:\"ImageUniqueID\",37384:\"LightSource\",37500:\"MakerNote\",37377:\"ShutterSpeedValue\",37510:\"UserComment\",33723:\"IPTC\",34675:\"ICC Profile\",700:\"XMP\",42112:\"GDAL_METADATA\",42113:\"GDAL_NODATA\",34377:\"Photoshop\",33550:\"ModelPixelScale\",33922:\"ModelTiepoint\",34264:\"ModelTransformation\",34735:\"GeoKeyDirectory\",34736:\"GeoDoubleParams\",34737:\"GeoAsciiParams\",50674:\"LercParameters\"},ie={};for(var re in te)te.hasOwnProperty(re)&&(ie[te[re]]=parseInt(re,10));ie.BitsPerSample,ie.ExtraSamples,ie.SampleFormat,ie.StripByteCounts,ie.StripOffsets,ie.StripRowCounts,ie.TileByteCounts,ie.TileOffsets,ie.SubIFDs;var Ie={1:\"BYTE\",2:\"ASCII\",3:\"SHORT\",4:\"LONG\",5:\"RATIONAL\",6:\"SBYTE\",7:\"UNDEFINED\",8:\"SSHORT\",9:\"SLONG\",10:\"SRATIONAL\",11:\"FLOAT\",12:\"DOUBLE\",13:\"IFD\",16:\"LONG8\",17:\"SLONG8\",18:\"IFD8\"},ge={};for(var ne in Ie)Ie.hasOwnProperty(ne)&&(ge[Ie[ne]]=parseInt(ne,10));var ae=1,oe=0,Be=1,Ce=2,Qe={1024:\"GTModelTypeGeoKey\",1025:\"GTRasterTypeGeoKey\",1026:\"GTCitationGeoKey\",2048:\"GeographicTypeGeoKey\",2049:\"GeogCitationGeoKey\",2050:\"GeogGeodeticDatumGeoKey\",2051:\"GeogPrimeMeridianGeoKey\",2052:\"GeogLinearUnitsGeoKey\",2053:\"GeogLinearUnitSizeGeoKey\",2054:\"GeogAngularUnitsGeoKey\",2055:\"GeogAngularUnitSizeGeoKey\",2056:\"GeogEllipsoidGeoKey\",2057:\"GeogSemiMajorAxisGeoKey\",2058:\"GeogSemiMinorAxisGeoKey\",2059:\"GeogInvFlatteningGeoKey\",2060:\"GeogAzimuthUnitsGeoKey\",2061:\"GeogPrimeMeridianLongGeoKey\",2062:\"GeogTOWGS84GeoKey\",3072:\"ProjectedCSTypeGeoKey\",3073:\"PCSCitationGeoKey\",3074:\"ProjectionGeoKey\",3075:\"ProjCoordTransGeoKey\",3076:\"ProjLinearUnitsGeoKey\",3077:\"ProjLinearUnitSizeGeoKey\",3078:\"ProjStdParallel1GeoKey\",3079:\"ProjStdParallel2GeoKey\",3080:\"ProjNatOriginLongGeoKey\",3081:\"ProjNatOriginLatGeoKey\",3082:\"ProjFalseEastingGeoKey\",3083:\"ProjFalseNorthingGeoKey\",3084:\"ProjFalseOriginLongGeoKey\",3085:\"ProjFalseOriginLatGeoKey\",3086:\"ProjFalseOriginEastingGeoKey\",3087:\"ProjFalseOriginNorthingGeoKey\",3088:\"ProjCenterLongGeoKey\",3089:\"ProjCenterLatGeoKey\",3090:\"ProjCenterEastingGeoKey\",3091:\"ProjCenterNorthingGeoKey\",3092:\"ProjScaleAtNatOriginGeoKey\",3093:\"ProjScaleAtCenterGeoKey\",3094:\"ProjAzimuthAngleGeoKey\",3095:\"ProjStraightVertPoleLongGeoKey\",3096:\"ProjRectifiedGridAngleGeoKey\",4096:\"VerticalCSTypeGeoKey\",4097:\"VerticalCitationGeoKey\",4098:\"VerticalDatumGeoKey\",4099:\"VerticalUnitsGeoKey\"},Ee={};for(var se in Qe)Qe.hasOwnProperty(se)&&(Ee[Qe[se]]=parseInt(se,10));function fe(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var ce=new Ae,he=function(A){s(t,w);var e=fe(t);function t(A){var i;return B(this,t),(i=e.call(this)).planarConfiguration=void 0!==A.PlanarConfiguration?A.PlanarConfiguration:1,i.samplesPerPixel=void 0!==A.SamplesPerPixel?A.SamplesPerPixel:1,i.addCompression=A.LercParameters[ae],i}return Q(t,[{key:\"decodeBlock\",value:function(A){switch(this.addCompression){case oe:break;case Be:A=YA(new Uint8Array(A)).buffer;break;case Ce:A=ce.decode(new Uint8Array(A)).buffer;break;default:throw new Error(\"Unsupported LERC additional compression method identifier: \".concat(this.addCompression))}return zA.decode(A,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}}]),t}(),le=Object.freeze({__proto__:null,zstd:ce,default:he});function ue(A){var e=function(){if(\"undefined\"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if(\"function\"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var we=function(A){s(I,w);var t,i=ue(I);function I(){var A;if(B(this,I),A=i.call(this),\"undefined\"==typeof createImageBitmap)throw new Error(\"Cannot decode WebImage as `createImageBitmap` is not available\");if(\"undefined\"==typeof document&&\"undefined\"==typeof OffscreenCanvas)throw new Error(\"Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available\");return A}return Q(I,[{key:\"decode\",value:(t=e(r.mark((function A(e,t){var i,I,g,n;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return i=new Blob([t]),A.next=3,createImageBitmap(i);case 3:return I=A.sent,\"undefined\"!=typeof document?((g=document.createElement(\"canvas\")).width=I.width,g.height=I.height):g=new OffscreenCanvas(I.width,I.height),(n=g.getContext(\"2d\")).drawImage(I,0,0),A.abrupt(\"return\",n.getImageData(0,0,I.width,I.height).data.buffer);case 8:case\"end\":return A.stop()}}),A)}))),function(A,e){return t.apply(this,arguments)})}]),I}(),de=Object.freeze({__proto__:null,default:we});\\';return new iB(typeof Buffer<\"u\"?\"data:application/javascript;base64,\"+Buffer.from(i,\"binary\").toString(\"base64\"):URL.createObjectURL(new Blob([i],{type:\"application/javascript\"})))}var oB=bt(()=>{nB()});var fB=Fi(()=>{});var gB=Fi(()=>{});var dB=Fi(()=>{});var nt={ADD:\"add\",REMOVE:\"remove\"};var qt={PROPERTYCHANGE:\"propertychange\"};var U={CHANGE:\"change\",ERROR:\"error\",BLUR:\"blur\",CLEAR:\"clear\",CONTEXTMENU:\"contextmenu\",CLICK:\"click\",DBLCLICK:\"dblclick\",DRAGENTER:\"dragenter\",DRAGOVER:\"dragover\",DROP:\"drop\",FOCUS:\"focus\",KEYDOWN:\"keydown\",KEYPRESS:\"keypress\",LOAD:\"load\",RESIZE:\"resize\",TOUCHMOVE:\"touchmove\",WHEEL:\"wheel\"};var wh=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}},Li=wh;function pp(i,e,t){let n,r;t=t||Ft;let o=0,s=i.length,a=!1;for(;o>1),r=+t(i[n],e),r<0?o=n+1:(s=n,a=!r);return a?o:~o}function Ft(i,e){return i>e?1:ie?-1:0}function go(i,e,t){if(i[0]<=e)return 0;let n=i.length;if(e<=i[n-1])return n-1;if(typeof t==\"function\"){for(let r=1;r0?r-1:r}return n-1}if(t>0){for(let r=1;r0||t&&s===0)})}function mn(){return!0}function pn(){return!1}function In(){}function BA(i){let e,t,n;return function(){let r=Array.prototype.slice.call(arguments);return(!t||this!==n||!rt(r,t))&&(n=this,t=r,e=i.apply(this,arguments)),e}}function xA(i){function e(){let t;try{t=i()}catch(n){return Promise.reject(n)}return t instanceof Promise?t:Promise.resolve(t)}return e()}function ai(i){for(let e in i)delete i[e]}function Vt(i){let e;for(e in i)return!1;return!e}var Qh=class{constructor(e){this.propagationStopped,this.defaultPrevented,this.type=e,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}};function Cp(i){i.stopPropagation()}var ot=Qh;var Sh=class extends Li{constructor(e){super(),this.eventTarget_=e,this.pendingRemovals_=null,this.dispatching_=null,this.listeners_=null}addEventListener(e,t){if(!e||!t)return;let n=this.listeners_||(this.listeners_={}),r=n[e]||(n[e]=[]);r.includes(t)||r.push(t)}dispatchEvent(e){let t=typeof e==\"string\",n=t?e:e.type,r=this.listeners_&&this.listeners_[n];if(!r)return;let o=t?new ot(e):e;o.target||(o.target=this.eventTarget_||this);let s=this.dispatching_||(this.dispatching_={}),a=this.pendingRemovals_||(this.pendingRemovals_={});n in s||(s[n]=0,a[n]=0),++s[n];let A;for(let l=0,c=r.length;l0:!1}removeEventListener(e,t){if(!this.listeners_)return;let n=this.listeners_[e];if(!n)return;let r=n.indexOf(t);r!==-1&&(this.pendingRemovals_&&e in this.pendingRemovals_?(n[r]=In,++this.pendingRemovals_[e]):(n.splice(r,1),n.length===0&&delete this.listeners_[e]))}},Mi=Sh;function X(i,e,t,n,r){if(r){let s=t;t=function(a){return i.removeEventListener(e,t),s.call(n??this,a)}}else n&&n!==i&&(t=t.bind(n));let o={target:i,type:e,listener:t};return i.addEventListener(e,t),o}function qn(i,e,t,n){return X(i,e,t,n,!0)}function se(i){i&&i.target&&(i.target.removeEventListener(i.type,i.listener),ai(i))}var mo=class extends Mi{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(U.CHANGE)}getRevision(){return this.revision_}onInternal(e,t){if(Array.isArray(e)){let n=e.length,r=new Array(n);for(let o=0;o0;)this.pop()}extend(e){for(let t=0,n=e.length;tthis.getLength())throw new Error(\"Index out of bounds: \"+e);this.unique_&&this.assertUnique_(t),this.array_.splice(e,0,t),this.updateLength_(),this.dispatchEvent(new po(nt.ADD,t,e))}pop(){return this.removeAt(this.getLength()-1)}push(e){this.unique_&&this.assertUnique_(e);let t=this.getLength();return this.insertAt(t,e),this.getLength()}remove(e){let t=this.array_;for(let n=0,r=t.length;n=this.getLength())return;let t=this.array_[e];return this.array_.splice(e,1),this.updateLength_(),this.dispatchEvent(new po(nt.REMOVE,t,e)),t}setAt(e,t){let n=this.getLength();if(e>=n){this.insertAt(e,t);return}if(e<0)throw new Error(\"Index out of bounds: \"+e);this.unique_&&this.assertUnique_(t,e);let r=this.array_[e];this.array_[e]=t,this.dispatchEvent(new po(nt.REMOVE,r,e)),this.dispatchEvent(new po(nt.ADD,t,e))}updateLength_(){this.set(_p.LENGTH,this.array_.length)}assertUnique_(e,t){for(let n=0,r=this.array_.length;nr&&(A=A|je.RIGHT),ao&&(A=A|je.ABOVE),A===je.UNKNOWN&&(A=je.INTERSECTING),A}function be(){return[1/0,1/0,-1/0,-1/0]}function Xt(i,e,t,n,r){return r?(r[0]=i,r[1]=e,r[2]=t,r[3]=n,r):[i,e,t,n]}function En(i){return Xt(1/0,1/0,-1/0,-1/0,i)}function TA(i,e){let t=i[0],n=i[1];return Xt(t,n,t,n,e)}function Eo(i,e,t,n,r){let o=En(r);return Dh(o,i,e,t,n)}function Jt(i,e){return i[0]==e[0]&&i[2]==e[2]&&i[1]==e[1]&&i[3]==e[3]}function Co(i,e){return e[0]i[2]&&(i[2]=e[2]),e[1]i[3]&&(i[3]=e[3]),i}function Rr(i,e){e[0]i[2]&&(i[2]=e[0]),e[1]i[3]&&(i[3]=e[1])}function Dh(i,e,t,n,r){for(;te[0]?n[0]=i[0]:n[0]=e[0],i[1]>e[1]?n[1]=i[1]:n[1]=e[1],i[2]=e[0]&&i[1]<=e[3]&&i[3]>=e[1]}function ki(i){return i[2]=s&&m<=A),!n&&o&je.RIGHT&&!(r&je.RIGHT)&&(d=f-(u-A)*g,n=d>=a&&d<=l),!n&&o&je.BELOW&&!(r&je.BELOW)&&(m=u-(f-a)/g,n=m>=s&&m<=A),!n&&o&je.LEFT&&!(r&je.LEFT)&&(d=f-(u-s)*g,n=d>=a&&d<=l)}return n}function DA(i,e,t,n){if(ki(i))return En(t);let r=[];if(n>1){let a=i[2]-i[0],A=i[3]-i[1];for(let l=0;l=t[2])){let r=oe(t),s=Math.floor((n[0]-t[0])/r)*r;i[0]-=s,i[2]-=s}return i}function Bo(i,e,t){if(e.canWrapX()){let n=e.getExtent();if(!isFinite(i[0])||!isFinite(i[2]))return[[n[0],i[1],n[2],i[3]]];bh(i,e);let r=oe(n);if(oe(i)>r&&!t)return[[n[0],i[1],n[2],i[3]]];if(i[0]n[2])return[[i[0],i[1],n[2],i[3]],[n[0],i[1],i[2]-r,i[3]]]}return[i]}function ce(i,e,t){return Math.min(Math.max(i,e),t)}function Qp(i,e,t,n,r,o){let s=r-t,a=o-n;if(s!==0||a!==0){let A=((i-t)*s+(e-n)*a)/(s*s+a*a);A>1?(t=r,n=o):A>0&&(t+=s*A,n+=a*A)}return Ei(i,e,t,n)}function Ei(i,e,t,n){let r=t-i,o=n-e;return r*r+o*o}function Sp(i){let e=i.length;for(let n=0;no&&(o=A,r=a)}if(o===0)return null;let s=i[r];i[r]=i[n],i[n]=s;for(let a=n+1;a=0;n--){t[n]=i[n][e]/i[n][n];for(let r=n-1;r>=0;r--)i[r][e]-=i[r][n]*t[n]}return t}function bA(i){return i*180/Math.PI}function jt(i){return i*Math.PI/180}function Wt(i,e){let t=i%e;return t*e<0?t+e:t}function ut(i,e,t){return i+t*(e-i)}function xo(i,e){let t=Math.pow(10,e);return Math.round(i*t)/t}function Os(i,e){return Math.floor(xo(i,e))}function Us(i,e){return Math.ceil(xo(i,e))}function FA(i,e,t){if(i>=e&&iLh.warn||console.warn(...i)}function Mh(...i){Rp>Lh.error||console.error(...i)}function Tp(i,e){return i[0]+=+e[0],i[1]+=+e[1],i}function Tr(i,e){let t=!0;for(let n=i.length-1;n>=0;--n)if(i[n]!=e[n]){t=!1;break}return t}function wo(i,e){let t=Math.cos(e),n=Math.sin(e),r=i[0]*t-i[1]*n,o=i[1]*t+i[0]*n;return i[0]=r,i[1]=o,i}function vp(i,e){return i[0]*=e,i[1]*=e,i}function Qo(i,e){if(e.canWrapX()){let t=oe(e.getExtent()),n=Dp(i,e,t);n&&(i[0]-=n*t)}return i}function Dp(i,e,t){let n=e.getExtent(),r=0;return e.canWrapX()&&(i[0]n[2])&&(t=t||oe(n),r=Math.floor((i[0]-n[0])/t)),r}var Vx={9001:\"m\",9002:\"ft\",9003:\"us-ft\",9101:\"radians\",9102:\"degrees\"};function kh(i){return Vx[i]}var Ci={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,\"us-ft\":1200/3937};var Ph=class{constructor(e){this.code_=e.code,this.units_=e.units,this.extent_=e.extent!==void 0?e.extent:null,this.worldExtent_=e.worldExtent!==void 0?e.worldExtent:null,this.axisOrientation_=e.axisOrientation!==void 0?e.axisOrientation:\"enu\",this.global_=e.global!==void 0?e.global:!1,this.canWrapX_=!!(this.global_&&this.extent_),this.getPointResolutionFunc_=e.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=e.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||Ci[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(e){this.global_=e,this.canWrapX_=!!(e&&this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(e){this.defaultTileGrid_=e}setExtent(e){this.extent_=e,this.canWrapX_=!!(this.global_&&e)}setWorldExtent(e){this.worldExtent_=e}setGetPointResolution(e){this.getPointResolutionFunc_=e}getPointResolutionFunc(){return this.getPointResolutionFunc_}},Pi=Ph;var Ys=6378137,So=Math.PI*Ys,Xx=[-So,-So,So,So],Jx=[-180,-85,180,85],MA=Ys*Math.log(Math.tan(Math.PI/2)),jn=class extends Pi{constructor(e){super({code:e,units:\"m\",extent:Xx,global:!0,worldExtent:Jx,getPointResolution:function(t,n){return t/Math.cosh(n[1]/Ys)}})}},Nh=[new jn(\"EPSG:3857\"),new jn(\"EPSG:102100\"),new jn(\"EPSG:102113\"),new jn(\"EPSG:900913\"),new jn(\"http://www.opengis.net/def/crs/EPSG/0/3857\"),new jn(\"http://www.opengis.net/gml/srs/epsg.xml#3857\")];function bp(i,e,t,n){let r=i.length;t=t>1?t:2,n=n??t,e===void 0&&(t>2?e=i.slice():e=new Array(r));for(let o=0;oMA?s=MA:s<-MA&&(s=-MA),e[o+1]=s}return e}function Fp(i,e,t,n){let r=i.length;t=t>1?t:2,n=n??t,e===void 0&&(t>2?e=i.slice():e=new Array(r));for(let o=0;oGp&&(e=Gp);let n=jt(e),r=Math.sin(n),o=Math.cos(n),s=r/o,a=s*s,A=a*a,l=jt(i),c=zp(t.number),h=jt(c),u=NA/Math.sqrt(1-Ai*r**2),f=vr*o**2,g=o*FA(l-h,-Math.PI,Math.PI),m=g*g,d=m*g,I=d*g,p=I*g,_=p*g,C=NA*(Hp*n-Zx*Math.sin(2*n)+$x*Math.sin(4*n)-ew*Math.sin(6*n)),E=PA*u*(g+d/6*(1-a+f)+p/120*(5-18*a+A+72*f-58*vr))+5e5,y=PA*(C+u*s*(m/2+I/24*(5-a+9*f+4*f**2)+_/720*(61-58*a+A+600*f-330*vr)));return t.north||(y+=1e7),[E,y]}function zp(i){return(i-1)*6-180+3}var lw=[/^EPSG:(\\\\d+)$/,/^urn:ogc:def:crs:EPSG::(\\\\d+)$/,/^http:\\\\/\\\\/www\\\\.opengis\\\\.net\\\\/def\\\\/crs\\\\/EPSG\\\\/0\\\\/(\\\\d+)$/];function Kp(i){let e=0;for(let r of lw){let o=i.match(r);if(o){e=parseInt(o[1]);break}}if(!e)return null;let t=0,n=!1;return e>32700&&e<32761?t=e-32700:e>32600&&e<32661&&(n=!0,t=e-32600),t?{number:t,north:n}:null}function Op(i,e){return function(t,n,r,o){let s=t.length;r=r>1?r:2,o=o??r,n||(r>2?n=t.slice():n=new Array(s));for(let a=0;a=A?e[s+l]:a[l]}return t}}function jp(i,e){return qh(),Wn(i,\"EPSG:4326\",e!==void 0?e:\"EPSG:3857\")}function Wp(i,e){let t=Wn(i,e!==void 0?e:\"EPSG:3857\",\"EPSG:4326\"),n=t[0];return(n<-180||n>180)&&(t[0]=Wt(n+180,360)-180),t}function Ni(i,e){if(i===e)return!0;let t=i.getUnits()===e.getUnits();return(i.getCode()===e.getCode()||li(i,e)===Vh)&&t}function li(i,e){let t=i.getCode(),n=e.getCode(),r=kA(t,n);if(r)return r;let o=null,s=null;for(let A of cw)o||(o=A(i)),s||(s=A(e));if(!o&&!s)return null;let a=\"EPSG:4326\";if(s)if(o)r=Hh(o.inverse,s.forward);else{let A=kA(t,a);A&&(r=Hh(A,s.forward))}else{let A=kA(a,n);A&&(r=Hh(o.inverse,A))}return r&&(Kh(i),Kh(e),To(i,e,r)),r}function Hh(i,e){return function(t,n,r,o){return n=i(t,n,r,o),e(n,n,r,o)}}function _n(i,e){let t=fe(i),n=fe(e);return li(t,n)}function Wn(i,e,t){let n=_n(e,t);if(!n){let r=fe(e).getCode(),o=fe(t).getCode();throw new Error(`No transform available between ${r} and ${o}`)}return n(i,void 0,i.length)}function Xh(i,e,t,n){let r=_n(e,t);return DA(i,r,void 0,n)}var _i=null;function ci(){return _i}function Dr(i,e){return _i?Wn(i,e,_i):i}function yi(i,e){return _i?Wn(i,_i,e):(zh&&!Tr(i,[0,0])&&i[0]>=-180&&i[0]<=180&&i[1]>=-90&&i[1]<=90&&(zh=!1,LA(\"Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.\")),i)}function hi(i,e){return _i?Xh(i,e,_i):i}function Ct(i,e){return _i?Xh(i,_i,e):i}function HA(i,e){if(!_i)return i;let t=fe(e).getMetersPerUnit(),n=_i.getMetersPerUnit();return t&&n?i*t/n:i}function gw(){Xp(Nh),Xp(Gh),fw(Gh,Nh,bp,Fp)}gw();var Jh=new Array(6);function Ce(){return[1,0,0,1,0,0]}function $p(i){return zA(i,1,0,0,1,0,0)}function Zn(i,e){let t=i[0],n=i[1],r=i[2],o=i[3],s=i[4],a=i[5],A=e[0],l=e[1],c=e[2],h=e[3],u=e[4],f=e[5];return i[0]=t*A+r*l,i[1]=n*A+o*l,i[2]=t*c+r*h,i[3]=n*c+o*h,i[4]=t*u+r*f+s,i[5]=n*u+o*f+a,i}function zA(i,e,t,n,r,o,s){return i[0]=e,i[1]=t,i[2]=n,i[3]=r,i[4]=o,i[5]=s,i}function KA(i,e){return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i}function ye(i,e){let t=e[0],n=e[1];return e[0]=i[0]*t+i[2]*n+i[4],e[1]=i[1]*t+i[3]*n+i[5],e}function eI(i,e){let t=Math.cos(e),n=Math.sin(e);return Zn(i,zA(Jh,t,n,-n,t,0,0))}function jh(i,e,t){return Zn(i,zA(Jh,e,0,0,t,0,0))}function qA(i,e,t){return Zn(i,zA(Jh,1,0,0,1,e,t))}function Xe(i,e,t,n,r,o,s,a){let A=Math.sin(o),l=Math.cos(o);return i[0]=n*l,i[1]=r*A,i[2]=-n*A,i[3]=r*l,i[4]=s*n*l-a*n*A+e,i[5]=s*r*A+a*r*l+t,i}function Bi(i,e){let t=dw(e);re(t!==0,\"Transformation matrix cannot be inverted\");let n=e[0],r=e[1],o=e[2],s=e[3],a=e[4],A=e[5];return i[0]=s/t,i[1]=-r/t,i[2]=-o/t,i[3]=n/t,i[4]=(o*A-s*a)/t,i[5]=-(n*A-r*a)/t,i}function dw(i){return i[0]*i[3]-i[1]*i[2]}var mw=[1e5,1e5,1e5,1e5,2,2];function tI(i){return\"matrix(\"+i.join(\", \")+\")\"}function Zp(i){return i.substring(7,i.length-1).split(\",\").map(parseFloat)}function iI(i,e){let t=Zp(i),n=Zp(e);for(let r=0;r<6;++r)if(Math.round((t[r]-n[r])*mw[r])!==0)return!1;return!0}function ft(i,e,t,n,r,o,s){o=o||[],s=s||2;let a=0;for(let A=e;A{if(!n)return this.getSimplifiedGeometry(t);let r=this.clone();return r.applyTransform(n),r.getSimplifiedGeometry(t)})}simplifyTransformed(e,t){return this.simplifyTransformedInternal(this.getRevision(),e,t)}clone(){return J()}closestPointXY(e,t,n,r){return J()}containsXY(e,t){return this.closestPointXY(e,t,pw,Number.MIN_VALUE)===0}getClosestPoint(e,t){return t=t||[NaN,NaN],this.closestPointXY(e[0],e[1],t,1/0),t}intersectsCoordinate(e){return this.containsXY(e[0],e[1])}computeExtent(e){return J()}getExtent(e){if(this.extentRevision_!=this.getRevision()){let t=this.computeExtent(this.extent_);(isNaN(t[0])||isNaN(t[1]))&&En(t),this.extentRevision_=this.getRevision()}return Bp(this.extent_,e)}rotate(e,t){J()}scale(e,t,n){J()}simplify(e){return this.getSimplifiedGeometry(e*e)}getSimplifiedGeometry(e){return J()}getType(){return J()}applyTransform(e){J()}intersectsExtent(e){return J()}translate(e,t){J()}transform(e,t){let n=fe(e),r=n.getUnits()==\"tile-pixels\"?function(o,s,a){let A=n.getExtent(),l=n.getWorldExtent(),c=Se(l)/Se(A);Xe(oI,l[0],l[3],c,-c,0,0,0);let h=ft(o,0,o.length,a,oI,s),u=_n(n,t);return u?u(h,h,a):h}:_n(n,t);return this.applyTransform(r),this}},XA=Wh;var Zh=class extends XA{constructor(){super(),this.layout=\"XY\",this.stride=2,this.flatCoordinates}computeExtent(e){return Eo(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,e)}getCoordinates(){return J()}getFirstCoordinate(){return this.flatCoordinates.slice(0,this.stride)}getFlatCoordinates(){return this.flatCoordinates}getLastCoordinate(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)}getLayout(){return this.layout}getSimplifiedGeometry(e){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),e<0||this.simplifiedGeometryMaxMinSquaredTolerance!==0&&e<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;let t=this.getSimplifiedGeometryInternal(e);return t.getFlatCoordinates().length1)h=t;else if(u>0){for(let f=0;fr&&(r=l),o=a,s=A}return r}function zs(i,e,t,n,r){for(let o=0,s=t.length;o0;){let h=l.pop(),u=l.pop(),f=0,g=i[u],m=i[u+1],d=i[h],I=i[h+1];for(let p=u+n;pf&&(c=p,f=E)}f>r&&(A[(c-e)/n]=1,u+n0&&m>f)&&(g<0&&d0&&d>g)){l=h,c=u;continue}o[s++]=l,o[s++]=c,a=l,A=c,l=h,c=u}return o[s++]=l,o[s++]=c,s}function Xs(i,e,t,n,r,o,s,a){for(let A=0,l=t.length;Ao&&(l-a)*(o-A)-(r-a)*(c-A)>0&&s++:c<=o&&(l-a)*(o-A)-(r-a)*(c-A)<0&&s--,a=l,A=c}return s!==0}function Js(i,e,t,n,r,o){if(t.length===0||!nr(i,e,t[0],n,r,o))return!1;for(let s=1,a=t.length;sI&&(l=(c+h)/2,Js(i,e,t,n,l,g)&&(d=l,I=p)),c=h}return isNaN(d)&&(d=r[o]),s?(s.push(d,g,I),s):[d,g,I]}function WA(i,e,t,n,r){let o=[];for(let s=0,a=t.length;s=r[0]&&o[2]<=r[2]||o[1]>=r[1]&&o[3]<=r[3]?!0:ZA(i,e,t,n,function(s,a){return wp(r,s,a)}):!1}function mI(i,e,t,n,r){for(let o=0,s=t.length;o0}function Zs(i,e,t,n,r){r=r!==void 0?r:!1;for(let o=0,s=t.length;o1?s:2,o=o||new Array(s);for(let c=0;c>1;r.0031308?Math.pow(i,1/2.4)*269.025-14.025:i*3294.6}function gu(i){return i>.2068965?Math.pow(i,3):(i-4/29)*(108/841)}function du(i){return i>10.314724?Math.pow((i+14.025)/269.025,2.4):i/3294.6}function mu(i){return i>.0088564?Math.pow(i,1/3):i/(108/841)+4/29}function pu(i){let e=du(i[0]),t=du(i[1]),n=du(i[2]),r=mu(e*.222488403+t*.716873169+n*.06060791),o=500*(mu(e*.452247074+t*.399439023+n*.148375274)-r),s=200*(r-mu(e*.016863605+t*.117638439+n*.865350722)),a=Math.atan2(s,o)*(180/Math.PI);return[116*r-16,Math.sqrt(o*o+s*s),a<0?a+360:a,i[3]]}function TI(i){let e=(i[0]+16)/116,t=i[1],n=i[2]*Math.PI/180,r=gu(e),o=gu(e+t/500*Math.cos(n)),s=gu(e-t/200*Math.sin(n)),a=fu(o*3.021973625-r*1.617392459-s*.404875592),A=fu(o*-.943766287+r*1.916279586+s*.027607165),l=fu(o*.069407491-r*.22898585+s*1.159737864);return[ce(a+.5|0,0,255),ce(A+.5|0,0,255),ce(l+.5|0,0,255),i[3]]}function na(i){if(i===\"none\")return sl;if(ta.hasOwnProperty(i))return ta[i];if(uu>=ww){let t=0;for(let n in ta)(t++&3)===0&&(delete ta[n],--uu)}let e=QI(i);e.length!==4&&ia(i);for(let t of e)isNaN(t)&&ia(i);return ta[i]=e,++uu,e}function We(i){return Array.isArray(i)?i:na(i)}function ra(i){let e=i[0];e!=(e|0)&&(e=e+.5|0);let t=i[1];t!=(t|0)&&(t=t+.5|0);let n=i[2];n!=(n|0)&&(n=n+.5|0);let r=i[3]===void 0?1:Math.round(i[3]*1e3)/1e3;return\"rgba(\"+e+\",\"+t+\",\"+n+\",\"+r+\")\"}function vI(i,e,t){let n=i,r=!0,o=!1,s=!1,a=[qn(n,U.LOAD,function(){s=!0,o||e()})];return n.src&&lu?(o=!0,n.decode().then(function(){r&&e()}).catch(function(A){r&&(s?e():t())})):a.push(qn(n,U.ERROR,t)),function(){r=!1,a.forEach(se)}}function Qw(i,e){return new Promise((t,n)=>{function r(){s(),t(i)}function o(){s(),n(new Error(\"Image load error\"))}function s(){i.removeEventListener(\"load\",r),i.removeEventListener(\"error\",o)}i.addEventListener(\"load\",r),i.addEventListener(\"error\",o),e&&(i.src=e)})}function DI(i,e){return e&&(i.src=e),i.src&&lu?new Promise((t,n)=>i.decode().then(()=>t(i)).catch(r=>i.complete&&i.width?t(i):n(r))):Qw(i)}var Eu=class{constructor(){this.cache_={},this.patternCache_={},this.cacheSize_=0,this.maxCacheSize_=1024}clear(){this.cache_={},this.patternCache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let e=0;for(let t in this.cache_){let n=this.cache_[t];(e++&3)===0&&!n.hasListener()&&(delete this.cache_[t],delete this.patternCache_[t],--this.cacheSize_)}}}get(e,t,n){let r=Iu(e,t,n);return r in this.cache_?this.cache_[r]:null}getPattern(e,t,n){let r=Iu(e,t,n);return r in this.patternCache_?this.patternCache_[r]:null}set(e,t,n,r,o){let s=Iu(e,t,n),a=s in this.cache_;this.cache_[s]=r,o&&(r.getImageState()===ee.IDLE&&r.load(),r.getImageState()===ee.LOADING?r.ready().then(()=>{this.patternCache_[s]=Mo().createPattern(r.getImage(1),\"repeat\")}):this.patternCache_[s]=Mo().createPattern(r.getImage(1),\"repeat\")),a||++this.cacheSize_}setSize(e){this.maxCacheSize_=e,this.expire()}};function Iu(i,e,t){let n=t?We(t):\"null\";return e+\":\"+i+\":\"+n}var _t=new Eu;var oa=null,al=class extends Mi{constructor(e,t,n,r,o){super(),this.hitDetectionImage_=null,this.image_=e,this.crossOrigin_=n,this.canvas_={},this.color_=o,this.imageState_=r===void 0?ee.IDLE:r,this.size_=e&&e.width&&e.height?[e.width,e.height]:null,this.src_=t,this.tainted_,this.ready_=null}initializeImage_(){this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(this.tainted_===void 0&&this.imageState_===ee.LOADED){oa||(oa=me(1,1,void 0,{willReadFrequently:!0})),oa.drawImage(this.image_,0,0);try{oa.getImageData(0,0,1,1),this.tainted_=!1}catch{oa=null,this.tainted_=!0}}return this.tainted_===!0}dispatchChangeEvent_(){this.dispatchEvent(U.CHANGE)}handleImageError_(){this.imageState_=ee.ERROR,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=ee.LOADED,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(e){return this.image_||this.initializeImage_(),this.replaceColor_(e),this.canvas_[e]?this.canvas_[e]:this.image_}getPixelRatio(e){return this.replaceColor_(e),this.canvas_[e]?e:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){let e=this.size_[0],t=this.size_[1],n=me(e,t);n.fillRect(0,0,e,t),this.hitDetectionImage_=n.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(this.imageState_===ee.IDLE){this.image_||this.initializeImage_(),this.imageState_=ee.LOADING;try{this.src_!==void 0&&(this.image_.src=this.src_)}catch{this.handleImageError_()}this.image_ instanceof HTMLImageElement&&DI(this.image_,this.src_).then(e=>{this.image_=e,this.handleImageLoad_()}).catch(this.handleImageError_.bind(this))}}replaceColor_(e){if(!this.color_||this.canvas_[e]||this.imageState_!==ee.LOADED)return;let t=this.image_,n=me(Math.ceil(t.width*e),Math.ceil(t.height*e)),r=n.canvas;n.scale(e,e),n.drawImage(t,0,0),n.globalCompositeOperation=\"multiply\",n.fillStyle=SI(this.color_),n.fillRect(0,0,r.width/e,r.height/e),n.globalCompositeOperation=\"destination-in\",n.drawImage(t,0,0),this.canvas_[e]=r}ready(){return this.ready_||(this.ready_=new Promise(e=>{if(this.imageState_===ee.LOADED||this.imageState_===ee.ERROR)e();else{let t=()=>{(this.imageState_===ee.LOADED||this.imageState_===ee.ERROR)&&(this.removeEventListener(U.CHANGE,t),e())};this.addEventListener(U.CHANGE,t)}})),this.ready_}};function ko(i,e,t,n,r,o){let s=e===void 0?void 0:_t.get(e,t,r);return s||(s=new al(i,i&&\"src\"in i?i.src||void 0:e,t,n,r),_t.set(e,t,r,s,o)),o&&s&&!_t.getPattern(e,t,r)&&_t.set(e,t,r,s,o),s}var bI=al;function Pt(i){return i?Array.isArray(i)?ra(i):typeof i==\"object\"&&\"src\"in i?Sw(i):i:null}function Sw(i){if(!i.offset||!i.size)return _t.getPattern(i.src,\"anonymous\",i.color);let e=i.src+\":\"+i.offset,t=_t.getPattern(e,void 0,i.color);if(t)return t;let n=_t.get(i.src,\"anonymous\",null);if(n.getImageState()!==ee.LOADED)return null;let r=me(i.size[0],i.size[1]);return r.drawImage(n.getImage(1),i.offset[0],i.offset[1],i.size[0],i.size[1],0,0,i.size[0],i.size[1]),ko(r.canvas,e,void 0,ee.LOADED,i.color,!0),_t.getPattern(e,void 0,i.color)}var Cu=class{drawCustom(e,t,n,r,o){}drawGeometry(e){}setStyle(e){}drawCircle(e,t,n){}drawFeature(e,t,n){}drawGeometryCollection(e,t,n){}drawLineString(e,t,n){}drawMultiLineString(e,t,n){}drawMultiPoint(e,t,n){}drawMultiPolygon(e,t,n){}drawPoint(e,t,n){}drawPolygon(e,t,n){}drawText(e,t,n){}setFillStrokeStyle(e,t){}setImageStyle(e,t){}setTextStyle(e,t){}},Al=Cu;var sa=\"ol-hidden\",LI=\"ol-selectable\",gt=\"ol-unselectable\",_u=\"ol-unsupported\",fi=\"ol-control\",Po=\"ol-collapsed\",Rw=new RegExp([\"^\\\\\\\\s*(?=(?:(?:[-a-z]+\\\\\\\\s*){0,2}(italic|oblique))?)\",\"(?=(?:(?:[-a-z]+\\\\\\\\s*){0,2}(small-caps))?)\",\"(?=(?:(?:[-a-z]+\\\\\\\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)\",\"(?:(?:normal|\\\\\\\\1|\\\\\\\\2|\\\\\\\\3)\\\\\\\\s*){0,3}((?:xx?-)?\",\"(?:small|large)|medium|smaller|larger|[\\\\\\\\.\\\\\\\\d]+(?:\\\\\\\\%|in|[cem]m|ex|p[ctx]))\",\"(?:\\\\\\\\s*\\\\\\\\/\\\\\\\\s*(normal|[\\\\\\\\.\\\\\\\\d]+(?:\\\\\\\\%|in|[cem]m|ex|p[ctx])?))\",`?\\\\\\\\s*([-,\\\\\\\\\"\\\\\\\\\\'\\\\\\\\sa-z0-9]+?)\\\\\\\\s*$`].join(\"\"),\"i\"),FI=[\"style\",\"variant\",\"weight\",\"size\",\"lineHeight\",\"family\"],yu=function(i){let e=i.match(Rw);if(!e)return null;let t={lineHeight:\"normal\",size:\"1.2em\",style:\"normal\",weight:\"normal\",variant:\"normal\"};for(let n=0,r=FI.length;nMath.max(r,ll(i,o)),0);return t[e]=n,n}function PI(i,e){let t=[],n=[],r=[],o=0,s=0,a=0,A=0;for(let l=0,c=e.length;l<=c;l+=2){let h=e[l];if(h===`\\n`||l===c){o=Math.max(o,s),r.push(s),s=0,a+=A,A=0;continue}let u=e[l+1]||i.font,f=ll(u,h);t.push(f),s+=f;let g=Tw(u);n.push(g),A=Math.max(A,g)}return{width:o,height:a,widths:t,heights:n,lineWidths:r}}function NI(i,e,t,n,r,o,s,a,A,l,c){i.save(),t!==1&&(i.globalAlpha===void 0?i.globalAlpha=h=>h.globalAlpha*=t:i.globalAlpha*=t),e&&i.transform.apply(i,e),n.contextInstructions?(i.translate(A,l),i.scale(c[0],c[1]),vw(n,i)):c[0]<0||c[1]<0?(i.translate(A,l),i.scale(c[0],c[1]),i.drawImage(n,r,o,s,a,0,0,s,a)):i.drawImage(n,r,o,s,a,A,l,s*c[0],a*c[1]),i.restore()}function vw(i,e){let t=i.contextInstructions;for(let n=0,r=t.length;nh*this.pixelRatio_),lineDashOffset:(s||Gt)*this.pixelRatio_,lineJoin:a!==void 0?a:Yi,lineWidth:(A!==void 0?A:Sn)*this.pixelRatio_,miterLimit:l!==void 0?l:xn,strokeStyle:Pt(n||wn)}}}setImageStyle(e){let t;if(!e||!(t=e.getSize())){this.image_=null;return}let n=e.getPixelRatio(this.pixelRatio_),r=e.getAnchor(),o=e.getOrigin();this.image_=e.getImage(this.pixelRatio_),this.imageAnchorX_=r[0]*n,this.imageAnchorY_=r[1]*n,this.imageHeight_=t[1]*n,this.imageOpacity_=e.getOpacity(),this.imageOriginX_=o[0],this.imageOriginY_=o[1],this.imageRotateWithView_=e.getRotateWithView(),this.imageRotation_=e.getRotation();let s=e.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/n,s[1]*this.pixelRatio_/n],this.imageWidth_=t[0]*n}setTextStyle(e){if(!e)this.text_=\"\";else{let t=e.getFill();if(!t)this.textFillState_=null;else{let f=t.getColor();this.textFillState_={fillStyle:Pt(f||$e)}}let n=e.getStroke();if(!n)this.textStrokeState_=null;else{let f=n.getColor(),g=n.getLineCap(),m=n.getLineDash(),d=n.getLineDashOffset(),I=n.getLineJoin(),p=n.getWidth(),_=n.getMiterLimit();this.textStrokeState_={lineCap:g!==void 0?g:Ui,lineDash:m||Nt,lineDashOffset:d||Gt,lineJoin:I!==void 0?I:Yi,lineWidth:p!==void 0?p:Sn,miterLimit:_!==void 0?_:xn,strokeStyle:Pt(f||wn)}}let r=e.getFont(),o=e.getOffsetX(),s=e.getOffsetY(),a=e.getRotateWithView(),A=e.getRotation(),l=e.getScaleArray(),c=e.getText(),h=e.getTextAlign(),u=e.getTextBaseline();this.textState_={font:r!==void 0?r:cl,textAlign:h!==void 0?h:rr,textBaseline:u!==void 0?u:Pr},this.text_=c!==void 0?Array.isArray(c)?c.reduce((f,g,m)=>f+=m%2?\" \":g,\"\"):c:\"\",this.textOffsetX_=o!==void 0?this.pixelRatio_*o:0,this.textOffsetY_=s!==void 0?this.pixelRatio_*s:0,this.textRotateWithView_=a!==void 0?a:!1,this.textRotation_=A!==void 0?A:0,this.textScale_=[this.pixelRatio_*l[0],this.pixelRatio_*l[1]]}}},GI=Qu;var Dw=.5,OI={Point:Nw,LineString:Mw,Polygon:Ow,MultiPoint:Gw,MultiLineString:kw,MultiPolygon:Pw,GeometryCollection:Lw,Circle:bw};function UI(i,e){return parseInt(z(i),10)-parseInt(z(e),10)}function Su(i,e){let t=Ru(i,e);return t*t}function Ru(i,e){return Dw*i/e}function bw(i,e,t,n,r){let o=t.getFill(),s=t.getStroke();if(o||s){let A=i.getBuilder(t.getZIndex(),\"Circle\");A.setFillStrokeStyle(o,s),A.drawCircle(e,n,r)}let a=t.getText();if(a&&a.getText()){let A=i.getBuilder(t.getZIndex(),\"Text\");A.setTextStyle(a),A.drawText(e,n)}}function Tu(i,e,t,n,r,o,s,a){let A=[],l=t.getImage();if(l){let u=!0,f=l.getImageState();f==ee.LOADED||f==ee.ERROR?u=!1:f==ee.IDLE&&l.load(),u&&A.push(l.ready())}let c=t.getFill();c&&c.loading()&&A.push(c.ready());let h=A.length>0;return h&&Promise.all(A).then(()=>r(null)),Fw(i,e,t,n,o,s,a),h}function Fw(i,e,t,n,r,o,s){let a=t.getGeometryFunction()(e);if(!a)return;let A=a.simplifyTransformed(n,r);if(t.getRenderer())YI(i,A,t,e,s);else{let c=OI[A.getType()];c(i,A,t,e,s,o)}}function YI(i,e,t,n,r){if(e.getType()==\"GeometryCollection\"){let s=e.getGeometries();for(let a=0,A=s.length;a=200&&a.status<300){let l=e.getType();try{let c;l==\"text\"||l==\"json\"?c=a.responseText:l==\"xml\"?c=a.responseXML||a.responseText:l==\"arraybuffer\"&&(c=a.response),c?o(e.readFeatures(c,{extent:t,featureProjection:r}),e.readProjection(c)):s()}catch{s()}}else s()},a.onerror=s,a.send()}function vu(i,e){return function(t,n,r,o,s){Yw(i,e,t,n,r,(a,A)=>{this.addFeatures(a),o!==void 0&&o(a)},()=>{this.changed(),s!==void 0&&s()})}}function HI(i,e){return[[-1/0,-1/0,1/0,1/0]]}function hl(i,e,t,n){let r=[],o=be();for(let s=0,a=t.length;se.clone())}var wi=bu;var Fu=class i extends kt{constructor(e,t,n){if(super(),this.ends_=[],this.maxDelta_=-1,this.maxDeltaRevision_=-1,Array.isArray(e[0]))this.setCoordinates(e,t);else if(t!==void 0&&n)this.setFlatCoordinates(t,e),this.ends_=n;else{let r=e,o=[],s=[];for(let A=0,l=r.length;A{if(e===this.squaredTolerance_)return this.simplifiedGeometry_;this.simplifiedGeometry_=this.clone(),t&&this.simplifiedGeometry_.applyTransform(t);let n=this.simplifiedGeometry_.getFlatCoordinates(),r;switch(this.type_){case\"LineString\":n.length=Fr(n,0,this.simplifiedGeometry_.flatCoordinates_.length,this.simplifiedGeometry_.stride_,e,n,0),r=[n.length];break;case\"MultiLineString\":r=[],n.length=jA(n,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,e,n,0,r);break;case\"Polygon\":r=[],n.length=Xs(n,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,Math.sqrt(e),n,0,r);break;default:}return r&&(this.simplifiedGeometry_=new i(this.type_,n,r,2,this.properties_,this.id_)),this.squaredTolerance_=e,this.simplifiedGeometry_}),this}};Aa.prototype.getFlatCoordinates=Aa.prototype.getOrientedFlatCoordinates;var Zt=Aa;function ul(i,e,t=0,n=i.length-1,r=Hw){for(;n>t;){if(n-t>600){let A=n-t+1,l=e-t+1,c=Math.log(A),h=.5*Math.exp(2*c/3),u=.5*Math.sqrt(c*h*(A-h)/A)*(l-A/2<0?-1:1),f=Math.max(t,Math.floor(e-l*h/A+u)),g=Math.min(n,Math.floor(e+(A-l)*h/A+u));ul(i,e,f,g,r)}let o=i[e],s=t,a=n;for(la(i,t,e),r(i[n],o)>0&&la(i,t,n);s0;)a--}r(i[t],o)===0?la(i,t,a):(a++,la(i,a,n)),a<=e&&(t=a+1),e<=a&&(n=a-1)}}function la(i,e,t){let n=i[e];i[e]=i[t],i[t]=n}function Hw(i,e){return ie?1:0}var Gr=class{constructor(e=9){this._maxEntries=Math.max(4,e),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()}all(){return this._all(this.data,[])}search(e){let t=this.data,n=[];if(!gl(e,t))return n;let r=this.toBBox,o=[];for(;t;){for(let s=0;s=0&&o[t].children.length>this._maxEntries;)this._split(o,t),t--;this._adjustParentBBoxes(r,o,t)}_split(e,t){let n=e[t],r=n.children.length,o=this._minEntries;this._chooseSplitAxis(n,o,r);let s=this._chooseSplitIndex(n,o,r),a=Uo(n.children.splice(s,n.children.length-s));a.height=n.height,a.leaf=n.leaf,Oo(n,this.toBBox),Oo(a,this.toBBox),t?e[t-1].children.push(a):this._splitRoot(n,a)}_splitRoot(e,t){this.data=Uo([e,t]),this.data.height=e.height+1,this.data.leaf=!1,Oo(this.data,this.toBBox)}_chooseSplitIndex(e,t,n){let r,o=1/0,s=1/0;for(let a=t;a<=n-t;a++){let A=ca(e,0,a,this.toBBox),l=ca(e,a,n,this.toBBox),c=Xw(A,l),h=ku(A)+ku(l);c=t;l--){let c=e.children[l];ha(a,e.leaf?o(c):c),A+=fl(a)}return A}_adjustParentBBoxes(e,t,n){for(let r=n;r>=0;r--)ha(t[r],e)}_condense(e){for(let t=e.length-1,n;t>=0;t--)e[t].children.length===0?t>0?(n=e[t-1].children,n.splice(n.indexOf(e[t]),1)):this.clear():Oo(e[t],this.toBBox)}};function zw(i,e,t){if(!t)return e.indexOf(i);for(let n=0;n=i.minX&&e.maxY>=i.minY}function Uo(i){return{children:i,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function KI(i,e,t,n,r){let o=[e,t];for(;o.length;){if(t=o.pop(),e=o.pop(),t-e<=n)continue;let s=e+Math.ceil((t-e)/n/2)*n;ul(i,s,e,t,r),o.push(e,s,s,t)}}var Nu=class{constructor(e){this.rbush_=new Gr(e),this.items_={}}insert(e,t){let n={minX:e[0],minY:e[1],maxX:e[2],maxY:e[3],value:t};this.rbush_.insert(n),this.items_[z(t)]=n}load(e,t){let n=new Array(t.length);for(let r=0,o=t.length;ri):null}var dl=Ou;var at={ADDFEATURE:\"addfeature\",CHANGEFEATURE:\"changefeature\",CLEAR:\"clear\",REMOVEFEATURE:\"removefeature\",FEATURESLOADSTART:\"featuresloadstart\",FEATURESLOADEND:\"featuresloadend\",FEATURESLOADERROR:\"featuresloaderror\"};var Hi=class extends ot{constructor(e,t,n){super(e),this.feature=t,this.features=n}},Uu=class extends dl{constructor(e){e=e||{},super({attributions:e.attributions,interpolate:!0,projection:void 0,state:\"ready\",wrapX:e.wrapX!==void 0?e.wrapX:!0}),this.on,this.once,this.un,this.loader_=In,this.format_=e.format||null,this.overlaps_=e.overlaps===void 0?!0:e.overlaps,this.url_=e.url,e.loader!==void 0?this.loader_=e.loader:this.url_!==void 0&&(re(this.format_,\"`format` must be set when `url` is set\"),this.loader_=vu(this.url_,this.format_)),this.strategy_=e.strategy!==void 0?e.strategy:HI;let t=e.useSpatialIndex!==void 0?e.useSpatialIndex:!0;this.featuresRtree_=t?new Gu:null,this.loadedExtentsRtree_=new Gu,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null;let n,r;Array.isArray(e.features)?r=e.features:e.features&&(n=e.features,r=n.getArray()),!t&&n===void 0&&(n=new st(r)),r!==void 0&&this.addFeaturesInternal(r),n!==void 0&&this.bindFeaturesCollection_(n)}addFeature(e){this.addFeatureInternal(e),this.changed()}addFeatureInternal(e){let t=z(e);if(!this.addToIndex_(t,e)){this.featuresCollection_&&this.featuresCollection_.remove(e);return}this.setupChangeEvents_(t,e);let n=e.getGeometry();if(n){let r=n.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(r,e)}else this.nullGeometryFeatures_[t]=e;this.dispatchEvent(new Hi(at.ADDFEATURE,e))}setupChangeEvents_(e,t){t instanceof Zt||(this.featureChangeKeys_[e]=[X(t,U.CHANGE,this.handleFeatureChange_,this),X(t,qt.PROPERTYCHANGE,this.handleFeatureChange_,this)])}addToIndex_(e,t){let n=!0;if(t.getId()!==void 0){let r=String(t.getId());if(!(r in this.idIndex_))this.idIndex_[r]=t;else if(t instanceof Zt){let o=this.idIndex_[r];o instanceof Zt?Array.isArray(o)?o.push(t):this.idIndex_[r]=[o,t]:n=!1}else n=!1}return n&&(re(!(e in this.uidIndex_),\"The passed `feature` was already added to the source\"),this.uidIndex_[e]=t),n}addFeatures(e){this.addFeaturesInternal(e),this.changed()}addFeaturesInternal(e){let t=[],n=[],r=[];for(let o=0,s=e.length;o{t||(t=!0,this.addFeature(n.element),t=!1)}),e.addEventListener(nt.REMOVE,n=>{t||(t=!0,this.removeFeature(n.element),t=!1)}),this.featuresCollection_=e}clear(e){if(e){for(let n in this.featureChangeKeys_)this.featureChangeKeys_[n].forEach(se);this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){this.featuresRtree_.forEach(n=>{this.removeFeatureInternal(n)});for(let n in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[n])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};let t=new Hi(at.CLEAR);this.dispatchEvent(t),this.changed()}forEachFeature(e){if(this.featuresRtree_)return this.featuresRtree_.forEach(e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureAtCoordinateDirect(e,t){let n=[e[0],e[1],e[0],e[1]];return this.forEachFeatureInExtent(n,function(r){let o=r.getGeometry();if(o instanceof Zt||o.intersectsCoordinate(e))return t(r)})}forEachFeatureInExtent(e,t){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(e,t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureIntersectingExtent(e,t){return this.forEachFeatureInExtent(e,function(n){let r=n.getGeometry();if(r instanceof Zt||r.intersectsExtent(e)){let o=t(n);if(o)return o}})}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let e;return this.featuresCollection_?e=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(e=this.featuresRtree_.getAll(),Vt(this.nullGeometryFeatures_)||ue(e,Object.values(this.nullGeometryFeatures_))),e}getFeaturesAtCoordinate(e){let t=[];return this.forEachFeatureAtCoordinateDirect(e,function(n){t.push(n)}),t}getFeaturesInExtent(e,t){if(this.featuresRtree_){if(!(t&&t.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(e);let r=Bo(e,t);return[].concat(...r.map(o=>this.featuresRtree_.getInExtent(o)))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(e,t){let n=e[0],r=e[1],o=null,s=[NaN,NaN],a=1/0,A=[-1/0,-1/0,1/0,1/0];return t=t||mn,this.featuresRtree_.forEachInExtent(A,function(l){if(t(l)){let c=l.getGeometry(),h=a;if(a=c instanceof Zt?0:c.closestPointXY(n,r,s,a),a{--this.loadingExtentsCount_,this.dispatchEvent(new Hi(at.FEATURESLOADEND,void 0,c))},()=>{--this.loadingExtentsCount_,this.dispatchEvent(new Hi(at.FEATURESLOADERROR))}),r.insert(A,{extent:A.slice()}))}this.loading=this.loader_.length<4?!1:this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(e){let t=this.loadedExtentsRtree_,n=t.forEachInExtent(e,function(r){if(Jt(r.extent,e))return r});n&&t.remove(n)}removeFeatures(e){let t=!1;for(let n=0,r=e.length;n{this.patternImage_=null}),t.getImageState()===ee.IDLE&&t.load(),t.getImageState()===ee.LOADING&&(this.patternImage_=t)}this.color_=e}getKey(){let e=this.getColor();return e?e instanceof CanvasPattern||e instanceof CanvasGradient?z(e):typeof e==\"object\"&&\"src\"in e?e.src+\":\"+e.offset:We(e).toString():\"\"}loading(){return!!this.patternImage_}ready(){return this.patternImage_?this.patternImage_.ready():Promise.resolve()}},zi=Hu;var zu=class i{constructor(e){e=e||{},this.color_=e.color!==void 0?e.color:null,this.lineCap_=e.lineCap,this.lineDash_=e.lineDash!==void 0?e.lineDash:null,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.width_=e.width}clone(){let e=this.getColor();return new i({color:Array.isArray(e)?e.slice():e||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getWidth(){return this.width_}setColor(e){this.color_=e}setLineCap(e){this.lineCap_=e}setLineDash(e){this.lineDash_=e}setLineDashOffset(e){this.lineDashOffset_=e}setLineJoin(e){this.lineJoin_=e}setMiterLimit(e){this.miterLimit_=e}setWidth(e){this.width_=e}},or=zu;function Ku(i){return i[0]>0&&i[1]>0}function VI(i,e,t){return t===void 0&&(t=[0,0]),t[0]=i[0]*e+.5|0,t[1]=i[1]*e+.5|0,t}function _e(i,e){return Array.isArray(i)?i:(e===void 0?e=[i,i]:(e[0]=i,e[1]=i),e)}var qu=class i{constructor(e){this.opacity_=e.opacity,this.rotateWithView_=e.rotateWithView,this.rotation_=e.rotation,this.scale_=e.scale,this.scaleArray_=_e(e.scale),this.displacement_=e.displacement,this.declutterMode_=e.declutterMode}clone(){let e=this.getScale();return new i({opacity:this.getOpacity(),scale:Array.isArray(e)?e.slice():e,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return J()}getImage(e){return J()}getHitDetectionImage(){return J()}getPixelRatio(e){return 1}getImageState(){return J()}getImageSize(){return J()}getOrigin(){return J()}getSize(){return J()}setDisplacement(e){this.displacement_=e}setOpacity(e){this.opacity_=e}setRotateWithView(e){this.rotateWithView_=e}setRotation(e){this.rotation_=e}setScale(e){this.scale_=e,this.scaleArray_=_e(e)}listenImageChange(e){J()}load(){J()}unlistenImageChange(e){J()}ready(){return Promise.resolve()}},ml=qu;var Vu=class i extends ml{constructor(e){super({opacity:1,rotateWithView:e.rotateWithView!==void 0?e.rotateWithView:!1,rotation:e.rotation!==void 0?e.rotation:0,scale:e.scale!==void 0?e.scale:1,displacement:e.displacement!==void 0?e.displacement:[0,0],declutterMode:e.declutterMode}),this.hitDetectionCanvas_=null,this.fill_=e.fill!==void 0?e.fill:null,this.origin_=[0,0],this.points_=e.points,this.radius=e.radius,this.radius2_=e.radius2,this.angle_=e.angle!==void 0?e.angle:0,this.stroke_=e.stroke!==void 0?e.stroke:null,this.size_,this.renderOptions_,this.imageState_=this.fill_&&this.fill_.loading()?ee.LOADING:ee.LOADED,this.imageState_===ee.LOADING&&this.ready().then(()=>this.imageState_=ee.LOADED),this.render()}clone(){let e=this.getScale(),t=new i({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(e)?e.slice():e,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return t.setOpacity(this.getOpacity()),t}getAnchor(){let e=this.size_,t=this.getDisplacement(),n=this.getScaleArray();return[e[0]/2-t[0]/n[0],e[1]/2+t[1]/n[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(e){this.fill_=e,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.createHitDetectionCanvas_(this.renderOptions_)),this.hitDetectionCanvas_}getImage(e){let t=this.fill_?.getKey(),n=`${e},${this.angle_},${this.radius},${this.radius2_},${this.points_},${t}`+Object.values(this.renderOptions_).join(\",\"),r=_t.get(n,null,null)?.getImage(1);if(!r){let o=this.renderOptions_,s=Math.ceil(o.size*e),a=me(s,s);this.draw_(o,a,e),r=a.canvas,_t.set(n,null,null,new bI(r,void 0,null,ee.LOADED,null))}return r}getPixelRatio(e){return e}getImageSize(){return this.size_}getImageState(){return this.imageState_}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius}getRadius2(){return this.radius2_}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(e){this.stroke_=e,this.render()}listenImageChange(e){}load(){}unlistenImageChange(e){}calculateLineJoinSize_(e,t,n){if(t===0||this.points_===1/0||e!==\"bevel\"&&e!==\"miter\")return t;let r=this.radius,o=this.radius2_===void 0?r:this.radius2_;if(rA&&(this.instructions.push([$.CUSTOM,A,c,e,n,ui,o]),this.hitDetectionInstructions.push([$.CUSTOM,A,c,e,r||n,ui,o]));break;case\"Point\":l=e.getFlatCoordinates(),this.coordinates.push(l[0],l[1]),c=this.coordinates.length,this.instructions.push([$.CUSTOM,A,c,e,n,void 0,o]),this.hitDetectionInstructions.push([$.CUSTOM,A,c,e,r||n,void 0,o]);break;default:}this.endGeometry(t)}beginGeometry(e,t,n){this.beginGeometryInstruction1_=[$.BEGIN_GEOMETRY,t,0,e,n],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[$.BEGIN_GEOMETRY,t,0,e,n],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){let e=this.hitDetectionInstructions;e.reverse();let t,n=e.length,r,o,s=-1;for(t=0;tthis.maxLineWidth&&(this.maxLineWidth=t.lineWidth,this.bufferedMaxExtent_=null)}else t.strokeStyle=void 0,t.lineCap=void 0,t.lineDash=null,t.lineDashOffset=void 0,t.lineJoin=void 0,t.lineWidth=void 0,t.miterLimit=void 0;return t}setFillStrokeStyle(e,t){let n=this.state;this.fillStyleToState(e,n),this.strokeStyleToState(t,n)}createFill(e){let t=e.fillStyle,n=[$.SET_FILL_STYLE,t];return typeof t!=\"string\"&&n.push(e.fillPatternScale),n}applyStroke(e){this.instructions.push(this.createStroke(e))}createStroke(e){return[$.SET_STROKE_STYLE,e.strokeStyle,e.lineWidth*this.pixelRatio,e.lineCap,e.lineJoin,e.miterLimit,e.lineDash?this.applyPixelRatio(e.lineDash):null,e.lineDashOffset*this.pixelRatio]}updateFillStyle(e,t){let n=e.fillStyle;(typeof n!=\"string\"||e.currentFillStyle!=n)&&(n!==void 0&&this.instructions.push(t.call(this,e)),e.currentFillStyle=n)}updateStrokeStyle(e,t){let n=e.strokeStyle,r=e.lineCap,o=e.lineDash,s=e.lineDashOffset,a=e.lineJoin,A=e.lineWidth,l=e.miterLimit;(e.currentStrokeStyle!=n||e.currentLineCap!=r||o!=e.currentLineDash&&!rt(e.currentLineDash,o)||e.currentLineDashOffset!=s||e.currentLineJoin!=a||e.currentLineWidth!=A||e.currentMiterLimit!=l)&&(n!==void 0&&t.call(this,e),e.currentStrokeStyle=n,e.currentLineCap=r,e.currentLineDash=o,e.currentLineDashOffset=s,e.currentLineJoin=a,e.currentLineWidth=A,e.currentMiterLimit=l)}endGeometry(e){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;let t=[$.END_GEOMETRY,e];this.instructions.push(t),this.hitDetectionInstructions.push(t)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=RA(this.maxExtent),this.maxLineWidth>0)){let e=this.resolution*(this.maxLineWidth+1)/2;Vn(this.bufferedMaxExtent_,e,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}},qi=$u;var ef=class extends qi{constructor(e,t,n,r){super(e,t,n,r),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(e,t,n){if(!this.image_||this.maxExtent&&!Mt(this.maxExtent,e.getFlatCoordinates()))return;this.beginGeometry(e,t,n);let r=e.getFlatCoordinates(),o=e.getStride(),s=this.coordinates.length,a=this.appendFlatPointCoordinates(r,o);this.instructions.push([$.DRAW_IMAGE,s,a,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([$.DRAW_IMAGE,s,a,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(t)}drawMultiPoint(e,t,n){if(!this.image_)return;this.beginGeometry(e,t,n);let r=e.getFlatCoordinates(),o=[];for(let A=0,l=r.length;A=i){let g=(i-a+f)/f,m=ut(l,h,g),d=ut(c,u,g);A.push(m,d),o.push(A),A=[m,d],a==i&&(s+=r),a=0}else if(a0&&o.push(A),o}function $I(i,e,t,n,r){let o=t,s=t,a=0,A=0,l=t,c,h,u,f,g,m,d,I,p,_;for(h=t;hi&&(A>a&&(a=A,o=l,s=h),A=0,l=h-r)),u=f,d=p,I=_),g=C,m=E}return A+=f,A>a?[l,h]:[o,s]}var da={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},of=class extends qi{constructor(e,t,n,r){super(e,t,n,r),this.labels_=null,this.text_=\"\",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textKeepUpright_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.fillStates[$e]={fillStyle:$e},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_=\"\",this.fillKey_=\"\",this.strokeKey_=\"\",this.declutterMode_=void 0,this.declutterImageWithText_=void 0}finish(){let e=super.finish();return e.textStates=this.textStates,e.fillStates=this.fillStates,e.strokeStates=this.strokeStates,e}drawText(e,t,n){let r=this.textFillState_,o=this.textStrokeState_,s=this.textState_;if(this.text_===\"\"||!s||!r&&!o)return;let a=this.coordinates,A=a.length,l=e.getType(),c=null,h=e.getStride();if(s.placement===\"line\"&&(l==\"LineString\"||l==\"MultiLineString\"||l==\"Polygon\"||l==\"MultiPolygon\")){if(!Ne(this.maxExtent,e.getExtent()))return;let u;if(c=e.getFlatCoordinates(),l==\"LineString\")u=[c.length];else if(l==\"MultiLineString\")u=e.getEnds();else if(l==\"Polygon\")u=e.getEnds().slice(0,1);else if(l==\"MultiPolygon\"){let d=e.getEndss();u=[];for(let I=0,p=d.length;I{let B=a[(C+y)*2]===c[y*h]&&a[(C+y)*2+1]===c[y*h+1];return B||--C,B})}this.saveTextStates_();let g=s.backgroundFill?this.createFill(this.fillStyleToState(s.backgroundFill)):null,m=s.backgroundStroke?this.createStroke(this.strokeStyleToState(s.backgroundStroke)):null;this.beginGeometry(e,t,n);let d=s.padding;if(d!=Qn&&(s.scale[0]<0||s.scale[1]<0)){let C=s.padding[0],E=s.padding[1],y=s.padding[2],B=s.padding[3];s.scale[0]<0&&(E=-E,B=-B),s.scale[1]<0&&(C=-C,y=-y),d=[C,E,y,B]}let I=this.pixelRatio;this.instructions.push([$.DRAW_IMAGE,A,f,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,this.declutterMode_,this.declutterImageWithText_,d==Qn?Qn:d.map(function(C){return C*I}),g,m,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,u]);let p=1/I,_=g?g.slice(0):null;_&&(_[1]=$e),this.hitDetectionInstructions.push([$.DRAW_IMAGE,A,f,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[p,p],NaN,this.declutterMode_,this.declutterImageWithText_,d,_,m,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?$e:this.fillKey_,this.textOffsetX_,this.textOffsetY_,u]),this.endGeometry(t)}}saveTextStates_(){let e=this.textStrokeState_,t=this.textState_,n=this.textFillState_,r=this.strokeKey_;e&&(r in this.strokeStates||(this.strokeStates[r]={strokeStyle:e.strokeStyle,lineCap:e.lineCap,lineDashOffset:e.lineDashOffset,lineWidth:e.lineWidth,lineJoin:e.lineJoin,miterLimit:e.miterLimit,lineDash:e.lineDash}));let o=this.textKey_;o in this.textStates||(this.textStates[o]={font:t.font,textAlign:t.textAlign||rr,justify:t.justify,textBaseline:t.textBaseline||Pr,scale:t.scale});let s=this.fillKey_;n&&(s in this.fillStates||(this.fillStates[s]={fillStyle:n.fillStyle}))}drawChars_(e,t){let n=this.textStrokeState_,r=this.textState_,o=this.strokeKey_,s=this.textKey_,a=this.fillKey_;this.saveTextStates_();let A=this.pixelRatio,l=da[r.textBaseline],c=this.textOffsetY_*A,h=this.text_,u=n?n.lineWidth*Math.abs(r.scale[0])/2:0;this.instructions.push([$.DRAW_CHARS,e,t,l,r.overflow,a,r.maxAngle,A,c,o,u*A,h,s,1,this.declutterMode_,this.textKeepUpright_]),this.hitDetectionInstructions.push([$.DRAW_CHARS,e,t,l,r.overflow,a&&$e,r.maxAngle,A,c,o,u*A,h,s,1/A,this.declutterMode_,this.textKeepUpright_])}setTextStyle(e,t){let n,r,o;if(!e)this.text_=\"\";else{let s=e.getFill();s?(r=this.textFillState_,r||(r={},this.textFillState_=r),r.fillStyle=Pt(s.getColor()||$e)):(r=null,this.textFillState_=r);let a=e.getStroke();if(!a)o=null,this.textStrokeState_=o;else{o=this.textStrokeState_,o||(o={},this.textStrokeState_=o);let m=a.getLineDash(),d=a.getLineDashOffset(),I=a.getWidth(),p=a.getMiterLimit();o.lineCap=a.getLineCap()||Ui,o.lineDash=m?m.slice():Nt,o.lineDashOffset=d===void 0?Gt:d,o.lineJoin=a.getLineJoin()||Yi,o.lineWidth=I===void 0?Sn:I,o.miterLimit=p===void 0?xn:p,o.strokeStyle=Pt(a.getColor()||wn)}n=this.textState_;let A=e.getFont()||cl;MI(A);let l=e.getScaleArray();n.overflow=e.getOverflow(),n.font=A,n.maxAngle=e.getMaxAngle(),n.placement=e.getPlacement(),n.textAlign=e.getTextAlign(),n.repeat=e.getRepeat(),n.justify=e.getJustify(),n.textBaseline=e.getTextBaseline()||Pr,n.backgroundFill=e.getBackgroundFill(),n.backgroundStroke=e.getBackgroundStroke(),n.padding=e.getPadding()||Qn,n.scale=l===void 0?[1,1]:l;let c=e.getOffsetX(),h=e.getOffsetY(),u=e.getRotateWithView(),f=e.getKeepUpright(),g=e.getRotation();this.text_=e.getText()||\"\",this.textOffsetX_=c===void 0?0:c,this.textOffsetY_=h===void 0?0:h,this.textRotateWithView_=u===void 0?!1:u,this.textKeepUpright_=f===void 0?!0:f,this.textRotation_=g===void 0?0:g,this.strokeKey_=o?(typeof o.strokeStyle==\"string\"?o.strokeStyle:z(o.strokeStyle))+o.lineCap+o.lineDashOffset+\"|\"+o.lineWidth+o.lineJoin+o.miterLimit+\"[\"+o.lineDash.join()+\"]\":\"\",this.textKey_=n.font+n.scale+(n.textAlign||\"?\")+(n.repeat||\"?\")+(n.justify||\"?\")+(n.textBaseline||\"?\"),this.fillKey_=r&&r.fillStyle?typeof r.fillStyle==\"string\"?r.fillStyle:\"|\"+z(r.fillStyle):\"\"}this.declutterMode_=e.getDeclutterMode(),this.declutterImageWithText_=t}},eE=of;var jw={Circle:rf,Default:qi,Image:jI,LineString:WI,Polygon:rf,Text:eE},sf=class{constructor(e,t,n,r){this.tolerance_=e,this.maxExtent_=t,this.pixelRatio_=r,this.resolution_=n,this.buildersByZIndex_={}}finish(){let e={};for(let t in this.buildersByZIndex_){e[t]=e[t]||{};let n=this.buildersByZIndex_[t];for(let r in n){let o=n[r].finish();e[t][r]=o}}return e}getBuilder(e,t){let n=e!==void 0?e.toString():\"0\",r=this.buildersByZIndex_[n];r===void 0&&(r={},this.buildersByZIndex_[n]=r);let o=r[t];if(o===void 0){let s=jw[t];o=new s(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_),r[t]=o}return o}},tE=sf;function iE(i,e,t,n,r,o,s,a,A,l,c,h,u=!0){let f=i[e],g=i[e+1],m=0,d=0,I=0,p=0;function _(){m=f,d=g,e+=n,f=i[e],g=i[e+1],p+=I,I=Math.sqrt((f-m)*(f-m)+(g-d)*(g-d))}do _();while(eL[2]}else R=E>w;let F=Math.PI,D=[],S=B+n===e;e=B,I=0,p=x,f=i[e],g=i[e+1];let k;if(S){_(),k=Math.atan2(g-d,f-m),R&&(k+=k>0?-F:F);let L=(w+E)/2,b=(T+y)/2;return D[0]=[L,b,(Q-o)/2,k,r],D}r=r.replace(/\\\\n/g,\" \");for(let L=0,b=r.length;L0?-F:F),k!==void 0){let O=P-k;if(O+=O>F?-2*F:O<-F?2*F:0,Math.abs(O)>s)return null}k=P;let N=L,Y=0;for(;L{if(typeof Mo()[t]==\"function\")return this.push_(t),this.pushMethodArgs_},set:(e,t,n)=>(this.push_(t,n),!0)})}push_(...e){let t=this.instructions_,n=this.zIndex+this.offset_;t[n]||(t[n]=[]),t[n].push(...e)}pushMethodArgs_=(...e)=>(this.push_(e),this);pushFunction(e){this.push_(e)}getContext(){return this.context_}draw(e){this.instructions_.forEach(t=>{for(let n=0,r=t.length;n0&&i.push(`\\n`,\"\"),i.push(e,\"\"),i}function Zw(i,e,t){return t%2===0&&(i+=e),i}var lf=class{constructor(e,t,n,r,o){this.overlaps=n,this.pixelRatio=t,this.resolution=e,this.alignAndScaleFill_,this.instructions=r.instructions,this.coordinates=r.coordinates,this.coordinateCache_={},this.renderedTransform_=Ce(),this.hitDetectionInstructions=r.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=r.fillStates||{},this.strokeStates=r.strokeStates||{},this.textStates=r.textStates||{},this.widths_={},this.labels_={},this.zIndexContext_=o?new Cl:null}getZIndexContext(){return this.zIndexContext_}createLabel(e,t,n,r){let o=e+t+n+r;if(this.labels_[o])return this.labels_[o];let s=r?this.strokeStates[r]:null,a=n?this.fillStates[n]:null,A=this.textStates[t],l=this.pixelRatio,c=[A.scale[0]*l,A.scale[1]*l],h=A.justify?da[A.justify]:Af(Array.isArray(e)?e[0]:e,A.textAlign||rr),u=r&&s.lineWidth?s.lineWidth:0,f=Array.isArray(e)?e:String(e).split(`\\n`).reduce(Ww,[]),{width:g,height:m,widths:d,heights:I,lineWidths:p}=PI(A,f),_=g+u,C=[],E=(_+2)*c[0],y=(m+u)*c[1],B={width:E<0?Math.floor(E):Math.ceil(E),height:y<0?Math.floor(y):Math.ceil(y),contextInstructions:C};(c[0]!=1||c[1]!=1)&&C.push(\"scale\",c),r&&(C.push(\"strokeStyle\",s.strokeStyle),C.push(\"lineWidth\",u),C.push(\"lineCap\",s.lineCap),C.push(\"lineJoin\",s.lineJoin),C.push(\"miterLimit\",s.miterLimit),C.push(\"setLineDash\",[s.lineDash]),C.push(\"lineDashOffset\",s.lineDashOffset)),n&&C.push(\"fillStyle\",a.fillStyle),C.push(\"textBaseline\",\"middle\"),C.push(\"textAlign\",\"center\");let x=.5-h,Q=h*_+x*u,w=[],T=[],R=0,F=0,D=0,S=0,k;for(let L=0,b=f.length;Le?e-l:o,C=s+c>t?t-c:s,E=g[3]+_*u[0]+g[1],y=g[0]+C*u[1]+g[2],B=I-g[3],x=p-g[0];(m||h!==0)&&(sr[0]=B,ar[0]=B,sr[1]=x,Tn[1]=x,Tn[0]=B+E,vn[0]=Tn[0],vn[1]=x+y,ar[1]=vn[1]);let Q;return h!==0?(Q=Xe(Ce(),n,r,1,1,h,-n,-r),ye(Q,sr),ye(Q,Tn),ye(Q,vn),ye(Q,ar),Xt(Math.min(sr[0],Tn[0],vn[0],ar[0]),Math.min(sr[1],Tn[1],vn[1],ar[1]),Math.max(sr[0],Tn[0],vn[0],ar[0]),Math.max(sr[1],Tn[1],vn[1],ar[1]),Yo)):Xt(Math.min(B,B+E),Math.min(x,x+y),Math.max(B,B+E),Math.max(x,x+y),Yo),f&&(I=Math.round(I),p=Math.round(p)),{drawImageX:I,drawImageY:p,drawImageW:_,drawImageH:C,originX:l,originY:c,declutterBox:{minX:Yo[0],minY:Yo[1],maxX:Yo[2],maxY:Yo[3],value:d},canvasTransform:Q,scale:u}}replayImageOrLabel_(e,t,n,r,o,s,a){let A=!!(s||a),l=r.declutterBox,c=a?a[2]*r.scale[0]/2:0;return l.minX-c<=t[0]&&l.maxX+c>=0&&l.minY-c<=t[1]&&l.maxY+c>=0&&(A&&this.replayTextBackground_(e,sr,Tn,vn,ar,s,a),NI(e,r.canvasTransform,o,n,r.originX,r.originY,r.drawImageW,r.drawImageH,r.drawImageX,r.drawImageY,r.scale)),!0}fill_(e){let t=this.alignAndScaleFill_;if(t){let n=ye(this.renderedTransform_,[0,0]),r=512*this.pixelRatio;e.save(),e.translate(n[0]%r,n[1]%r),t!==1&&e.scale(t,t),e.rotate(this.viewRotation_)}e.fill(),t&&e.restore()}setStrokeStyle_(e,t){e.strokeStyle=t[1],e.lineWidth=t[2],e.lineCap=t[3],e.lineJoin=t[4],e.miterLimit=t[5],e.lineDashOffset=t[7],e.setLineDash(t[6])}drawLabelWithPointPlacement_(e,t,n,r){let o=this.textStates[t],s=this.createLabel(e,t,r,n),a=this.strokeStates[n],A=this.pixelRatio,l=Af(Array.isArray(e)?e[0]:e,o.textAlign||rr),c=da[o.textBaseline||Pr],h=a&&a.lineWidth?a.lineWidth:0,u=s.width/A-2*o.scale[0],f=l*u+2*(.5-l)*h,g=c*s.height/A+2*(.5-c)*h;return{label:s,anchorX:f,anchorY:g}}execute_(e,t,n,r,o,s,a,A){let l=this.zIndexContext_,c;this.pixelCoordinates_&&rt(n,this.renderedTransform_)?c=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),c=ft(this.coordinates,0,this.coordinates.length,2,n,this.pixelCoordinates_),KA(this.renderedTransform_,n));let h=0,u=r.length,f=0,g,m,d,I,p,_,C,E,y,B,x,Q,w,T=0,R=0,F=this.coordinateCache_,D=this.viewRotation_,S=Math.round(Math.atan2(-n[1],n[0])*1e12)/1e12,k={context:e,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:D},L=this.instructions!=r||this.overlaps?0:200,b,P,N,Y;for(;hL&&(this.fill_(e),T=0),R>L&&(e.stroke(),R=0),!T&&!R&&(e.beginPath(),p=NaN,_=NaN),++h;break;case $.CIRCLE:f=M[1];let H=c[f],O=c[f+1],K=c[f+2],ie=c[f+3],ge=K-H,Ie=ie-O,de=Math.sqrt(ge*ge+Ie*Ie);e.moveTo(H+de,O),e.arc(H,O,de,0,2*Math.PI,!0),++h;break;case $.CLOSE_PATH:e.closePath(),++h;break;case $.CUSTOM:f=M[1],g=M[2];let Pe=M[3],tt=M[4],xt=M[5];k.geometry=Pe,k.feature=b,h in F||(F[h]=[]);let Je=F[h];xt?xt(c,f,g,2,Je):(Je[0]=c[f],Je[1]=c[f+1],Je.length=2),l&&(l.zIndex=M[6]),tt(Je,k),++h;break;case $.DRAW_IMAGE:f=M[1],g=M[2],y=M[3],m=M[4],d=M[5];let Te=M[6],Dt=M[7],cn=M[8],wt=M[9],hn=M[10],It=M[11],ho=M[12],uo=M[13];I=M[14]||\"declutter\";let it=M[15];if(!y&&M.length>=20){B=M[19],x=M[20],Q=M[21],w=M[22];let ri=this.drawLabelWithPointPlacement_(B,x,Q,w);y=ri.label,M[3]=y;let Sr=M[23];m=(ri.anchorX-Sr)*this.pixelRatio,M[4]=m;let oi=M[24];d=(ri.anchorY-oi)*this.pixelRatio,M[5]=d,Te=y.height,M[6]=Te,uo=y.width,M[13]=uo}let Eh;M.length>25&&(Eh=M[25]);let Ch,CA,_A;M.length>17?(Ch=M[16],CA=M[17],_A=M[18]):(Ch=Qn,CA=null,_A=null),hn&&S?It+=D:!hn&&!S&&(It-=D);let vx=0;for(;f!uf.includes(i)),hf=class{constructor(e,t,n,r,o,s,a){this.maxExtent_=e,this.overlaps_=r,this.pixelRatio_=n,this.resolution_=t,this.renderBuffer_=s,this.executorsByZIndex_={},this.hitDetectionContext_=null,this.hitDetectionTransform_=Ce(),this.renderedContext_=null,this.deferredZIndexContexts_={},this.createExecutors_(o,a)}clip(e,t){let n=this.getClipCoords(t);e.beginPath(),e.moveTo(n[0],n[1]),e.lineTo(n[2],n[3]),e.lineTo(n[4],n[5]),e.lineTo(n[6],n[7]),e.clip()}createExecutors_(e,t){for(let n in e){let r=this.executorsByZIndex_[n];r===void 0&&(r={},this.executorsByZIndex_[n]=r);let o=e[n];for(let s in o){let a=o[s];r[s]=new oE(this.resolution_,this.pixelRatio_,this.overlaps_,a,t)}}}hasExecutors(e){for(let t in this.executorsByZIndex_){let n=this.executorsByZIndex_[t];for(let r=0,o=e.length;r0){if(!s||B===\"none\"||f!==\"Image\"&&f!==\"Text\"||s.includes(E)){let T=(u[Q]-3)/4,R=r-T%a,F=r-(T/a|0),D=o(E,y,R*R+F*F);if(D)return D}c.clearRect(0,0,a,a);break}}let m=Object.keys(this.executorsByZIndex_).map(Number);m.sort(Ft);let d,I,p,_,C;for(d=m.length-1;d>=0;--d){let E=m[d].toString();for(p=this.executorsByZIndex_[E],I=Or.length-1;I>=0;--I)if(f=Or[I],_=p[f],_!==void 0&&(C=_.executeHitDetection(c,A,n,g,h),C))return C}}getClipCoords(e){let t=this.maxExtent_;if(!t)return null;let n=t[0],r=t[1],o=t[2],s=t[3],a=[n,r,n,s,o,s,o,r];return ft(a,0,8,2,e,a),a}isEmpty(){return Vt(this.executorsByZIndex_)}execute(e,t,n,r,o,s,a){let A=Object.keys(this.executorsByZIndex_).map(Number);A.sort(a?yA:Ft),s=s||Or;let l=Or.length;for(let c=0,h=A.length;cI.execute(E,t,n,r,o,a)),C&&_.restore(),p){p.offset();let E=A[c]*l+g;this.deferredZIndexContexts_[E]||(this.deferredZIndexContexts_[E]=[]),this.deferredZIndexContexts_[E].push(p)}}}}this.renderedContext_=e}getDeferredZIndexContexts(){return this.deferredZIndexContexts_}getRenderedContext(){return this.renderedContext_}renderDeferred(){let e=this.deferredZIndexContexts_,t=Object.keys(e).map(Number).sort(Ft);for(let n=0,r=t.length;n{o.draw(this.renderedContext_),o.clear()}),e[t[n]].length=0}},cf={};function $w(i){if(cf[i]!==void 0)return cf[i];let e=i*2+1,t=i*i,n=new Array(t+1);for(let o=0;o<=i;++o)for(let s=0;s<=i;++s){let a=o*o+s*s;if(a>t)break;let A=n[a];A||(A=[],n[a]=A),A.push(((i+o)*e+(i+s))*4+3),o>0&&A.push(((i-o)*e+(i+s))*4+3),s>0&&(A.push(((i+o)*e+(i-s))*4+3),o>0&&A.push(((i-o)*e+(i-s))*4+3))}let r=[];for(let o=0,s=n.length;o0,\"A defined and non-empty `src` or `image` must be provided\"),re(!((e.width!==void 0||e.height!==void 0)&&e.scale!==void 0),\"`width` or `height` cannot be provided together with `scale`\");let A;if(e.src!==void 0?A=ee.IDLE:s!==void 0&&(\"complete\"in s?s.complete?A=s.src?ee.LOADED:ee.IDLE:A=ee.LOADING:A=ee.LOADED),this.color_=e.color!==void 0?We(e.color):null,this.iconImage_=ko(s,a,this.crossOrigin_,A,this.color_),this.offset_=e.offset!==void 0?e.offset:[0,0],this.offsetOrigin_=e.offsetOrigin!==void 0?e.offsetOrigin:\"top-left\",this.origin_=null,this.size_=e.size!==void 0?e.size:null,this.initialOptions_,e.width!==void 0||e.height!==void 0){let l,c;if(e.size)[l,c]=e.size;else{let h=this.getImage(1);if(h.width&&h.height)l=h.width,c=h.height;else if(h instanceof HTMLImageElement){this.initialOptions_=e;let u=()=>{if(this.unlistenImageChange(u),!this.initialOptions_)return;let f=this.iconImage_.getSize();this.setScale(AE(f[0],f[1],e.width,e.height))};this.listenImageChange(u);return}}l!==void 0&&this.setScale(AE(l,c,e.width,e.height))}}clone(){let e,t,n;return this.initialOptions_?(t=this.initialOptions_.width,n=this.initialOptions_.height):(e=this.getScale(),e=Array.isArray(e)?e.slice():e),new i({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:e,width:t,height:n,size:this.size_!==null?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let e=this.normalizedAnchor_;if(!e){e=this.anchor_;let r=this.getSize();if(this.anchorXUnits_==\"fraction\"||this.anchorYUnits_==\"fraction\"){if(!r)return null;e=this.anchor_.slice(),this.anchorXUnits_==\"fraction\"&&(e[0]*=r[0]),this.anchorYUnits_==\"fraction\"&&(e[1]*=r[1])}if(this.anchorOrigin_!=\"top-left\"){if(!r)return null;e===this.anchor_&&(e=this.anchor_.slice()),(this.anchorOrigin_==\"top-right\"||this.anchorOrigin_==\"bottom-right\")&&(e[0]=-e[0]+r[0]),(this.anchorOrigin_==\"bottom-left\"||this.anchorOrigin_==\"bottom-right\")&&(e[1]=-e[1]+r[1])}this.normalizedAnchor_=e}let t=this.getDisplacement(),n=this.getScaleArray();return[e[0]-t[0]/n[0],e[1]+t[1]/n[1]]}setAnchor(e){this.anchor_=e,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(e){return this.iconImage_.getImage(e)}getPixelRatio(e){return this.iconImage_.getPixelRatio(e)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let e=this.offset_;if(this.offsetOrigin_!=\"top-left\"){let t=this.getSize(),n=this.iconImage_.getSize();if(!t||!n)return null;e=e.slice(),(this.offsetOrigin_==\"top-right\"||this.offsetOrigin_==\"bottom-right\")&&(e[0]=n[0]-t[0]-e[0]),(this.offsetOrigin_==\"bottom-left\"||this.offsetOrigin_==\"bottom-right\")&&(e[1]=n[1]-t[1]-e[1])}return this.origin_=e,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){let e=this.getScaleArray();if(this.size_)return this.size_[0]*e[0];if(this.iconImage_.getImageState()==ee.LOADED)return this.iconImage_.getSize()[0]*e[0]}getHeight(){let e=this.getScaleArray();if(this.size_)return this.size_[1]*e[1];if(this.iconImage_.getImageState()==ee.LOADED)return this.iconImage_.getSize()[1]*e[1]}setScale(e){delete this.initialOptions_,super.setScale(e)}listenImageChange(e){this.iconImage_.addEventListener(U.CHANGE,e)}load(){this.iconImage_.load()}unlistenImageChange(e){this.iconImage_.removeEventListener(U.CHANGE,e)}ready(){return this.iconImage_.ready()}},Ar=ff;var Qi=.5;function lE(i,e,t,n,r,o,s,a,A){let l=A?hi(r,A):r,c=i[0]*Qi,h=i[1]*Qi,u=me(c,h);u.imageSmoothingEnabled=!1;let f=u.canvas,g=new GI(u,Qi,r,null,s,a,A?li(ci(),A):null),m=t.length,d=Math.floor((256*256*256-1)/m),I={};for(let _=1;_<=m;++_){let C=t[_-1],E=C.getStyleFunction()||n;if(!E)continue;let y=E(C,o);if(!y)continue;Array.isArray(y)||(y=[y]);let x=(_*d).toString(16).padStart(7,\"#00000\");for(let Q=0,w=y.length;Qthis.maxStaleKeys&&(this.staleKeys_.length=this.maxStaleKeys)}getFeatures(e){return J()}getData(e){return null}prepareFrame(e){return J()}renderFrame(e,t){return J()}forEachFeatureAtCoordinate(e,t,n,r,o){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(e){let t=e.target;(t.getState()===ee.LOADED||t.getState()===ee.ERROR)&&this.renderIfReadyAndVisible()}loadImage(e){let t=e.getState();return t!=ee.LOADED&&t!=ee.ERROR&&e.addEventListener(U.CHANGE,this.boundHandleImageChange_),t==ee.IDLE&&(e.load(),t=e.getState()),t==ee.LOADED}renderIfReadyAndVisible(){let e=this.getLayer();e&&e.getVisible()&&e.getSourceState()===\"ready\"&&e.changed()}renderDeferred(e){}disposeInternal(){delete this.layer_,super.disposeInternal()}},_l=df;var pf=[],Ho=null;function tQ(){Ho=me(1,1,void 0,{willReadFrequently:!0})}var mf=class extends _l{constructor(e){super(e),this.container=null,this.renderedResolution,this.tempTransform=Ce(),this.pixelTransform=Ce(),this.inversePixelTransform=Ce(),this.context=null,this.deferredContext_=null,this.containerReused=!1,this.frameState=null}getImageData(e,t,n){Ho||tQ(),Ho.clearRect(0,0,1,1);let r;try{Ho.drawImage(e,t,n,1,1,0,0,1,1),r=Ho.getImageData(0,0,1,1).data}catch{return Ho=null,null}return r}getBackground(e){let n=this.getLayer().getBackground();return typeof n==\"function\"&&(n=n(e.viewState.resolution)),n||void 0}useContainer(e,t,n){let r=this.getLayer().getClassName(),o,s;if(e&&e.className===r&&(!n||e&&e.style.backgroundColor&&rt(We(e.style.backgroundColor),We(n)))){let a=e.firstElementChild;a instanceof HTMLCanvasElement&&(s=a.getContext(\"2d\"))}if(s&&iI(s.canvas.style.transform,t)?(this.container=e,this.context=s,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){o=document.createElement(\"div\"),o.className=r;let a=o.style;a.position=\"absolute\",a.width=\"100%\",a.height=\"100%\",s=me();let A=s.canvas;o.appendChild(A),a=A.style,a.position=\"absolute\",a.left=\"0\",a.transformOrigin=\"top left\",this.container=o,this.context=s}!this.containerReused&&n&&!this.container.style.backgroundColor&&(this.container.style.backgroundColor=n)}clipUnrotated(e,t,n){let r=ht(n),o=yo(n),s=Jn(n),a=_o(n);ye(t.coordinateToPixelTransform,r),ye(t.coordinateToPixelTransform,o),ye(t.coordinateToPixelTransform,s),ye(t.coordinateToPixelTransform,a);let A=this.inversePixelTransform;ye(A,r),ye(A,o),ye(A,s),ye(A,a),e.save(),e.beginPath(),e.moveTo(Math.round(r[0]),Math.round(r[1])),e.lineTo(Math.round(o[0]),Math.round(o[1])),e.lineTo(Math.round(s[0]),Math.round(s[1])),e.lineTo(Math.round(a[0]),Math.round(a[1])),e.clip()}prepareContainer(e,t){let n=e.extent,r=e.viewState.resolution,o=e.viewState.rotation,s=e.pixelRatio,a=Math.round(oe(n)/r*s),A=Math.round(Se(n)/r*s);Xe(this.pixelTransform,e.size[0]/2,e.size[1]/2,1/s,1/s,o,-a/2,-A/2),Bi(this.inversePixelTransform,this.pixelTransform);let l=tI(this.pixelTransform);if(this.useContainer(t,l,this.getBackground(e)),!this.containerReused){let c=this.context.canvas;c.width!=a||c.height!=A?(c.width=a,c.height=A):this.context.clearRect(0,0,a,A),l!==c.style.transform&&(c.style.transform=l)}}dispatchRenderEvent_(e,t,n){let r=this.getLayer();if(r.hasListener(e)){let o=new lr(e,this.inversePixelTransform,n,t);r.dispatchEvent(o)}}preRender(e,t){this.frameState=t,!t.declutter&&this.dispatchRenderEvent_(Fe.PRERENDER,e,t)}postRender(e,t){t.declutter||this.dispatchRenderEvent_(Fe.POSTRENDER,e,t)}renderDeferredInternal(e){}getRenderContext(e){return e.declutter&&!this.deferredContext_&&(this.deferredContext_=new Cl),e.declutter?this.deferredContext_.getContext():this.context}renderDeferred(e){e.declutter&&(this.dispatchRenderEvent_(Fe.PRERENDER,this.context,e),e.declutter&&this.deferredContext_&&(this.deferredContext_.draw(this.context),this.deferredContext_.clear()),this.renderDeferredInternal(e),this.dispatchRenderEvent_(Fe.POSTRENDER,this.context,e))}getRenderTransform(e,t,n,r,o,s,a){let A=o/2,l=s/2,c=r/t,h=-c,u=-e[0]+a,f=-e[1];return Xe(this.tempTransform,A,l,c,h,-n,u,f)}disposeInternal(){delete this.frameState,super.disposeInternal()}},yl=mf;var If=class extends yl{constructor(e){super(e),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.animatingOrInteracting_,this.hitDetectionImageData_=null,this.clipped_=!1,this.renderedFeatures_=null,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=be(),this.wrappedRenderedExtent_=be(),this.renderedRotation_,this.renderedCenter_=null,this.renderedProjection_=null,this.renderedPixelRatio_=1,this.renderedRenderOrder_=null,this.renderedFrameDeclutter_,this.replayGroup_=null,this.replayGroupChanged=!0,this.clipping=!0,this.targetContext_=null,this.opacity_=1}renderWorlds(e,t,n){let r=t.extent,o=t.viewState,s=o.center,a=o.resolution,A=o.projection,l=o.rotation,c=A.getExtent(),h=this.getLayer().getSource(),u=this.getLayer().getDeclutter(),f=t.pixelRatio,g=t.viewHints,m=!(g[Ye.ANIMATING]||g[Ye.INTERACTING]),d=this.context,I=Math.round(oe(r)/a*f),p=Math.round(Se(r)/a*f),_=h.getWrapX()&&A.canWrapX(),C=_?oe(c):null,E=_?Math.ceil((r[2]-c[2])/C)+1:1,y=_?Math.floor((r[0]-c[0])/C):0;do{let B=this.getRenderTransform(s,a,0,f,I,p,y*C);t.declutter&&(B=B.slice(0)),e.execute(d,[d.canvas.width,d.canvas.height],B,l,m,n===void 0?Or:n?uf:sE,n?u&&t.declutter[u]:void 0)}while(++y{if(this.frameState&&!this.hitDetectionImageData_&&!this.animatingOrInteracting_){let n=this.frameState.size.slice(),r=this.renderedCenter_,o=this.renderedResolution_,s=this.renderedRotation_,a=this.renderedProjection_,A=this.wrappedRenderedExtent_,l=this.getLayer(),c=[],h=n[0]*Qi,u=n[1]*Qi;c.push(this.getRenderTransform(r,o,s,Qi,h,u,0).slice());let f=l.getSource(),g=a.getExtent();if(f.getWrapX()&&a.canWrapX()&&!Ii(g,A)){let d=A[0],I=oe(g),p=0,_;for(;dg[2];)++p,_=I*p,c.push(this.getRenderTransform(r,o,s,Qi,h,u,_).slice()),d-=I}let m=ci();this.hitDetectionImageData_=lE(n,c,this.renderedFeatures_,l.getStyleFunction(),A,o,s,Su(o,this.renderedPixelRatio_),m?a:null)}t(cE(e,this.renderedFeatures_,this.hitDetectionImageData_))})}forEachFeatureAtCoordinate(e,t,n,r,o){if(!this.replayGroup_)return;let s=t.viewState.resolution,a=t.viewState.rotation,A=this.getLayer(),l={},c=function(u,f,g){let m=z(u),d=l[m];if(d){if(d!==!0&&gu.value):null)}handleFontsChanged(){let e=this.getLayer();e.getVisible()&&this.replayGroup_&&e.changed()}handleStyleImageChange_(e){this.renderIfReadyAndVisible()}prepareFrame(e){let t=this.getLayer(),n=t.getSource();if(!n)return!1;let r=e.viewHints[Ye.ANIMATING],o=e.viewHints[Ye.INTERACTING],s=t.getUpdateWhileAnimating(),a=t.getUpdateWhileInteracting();if(this.ready&&!s&&r||!a&&o)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;let A=e.extent,l=e.viewState,c=l.projection,h=l.resolution,u=e.pixelRatio,f=t.getRevision(),g=t.getRenderBuffer(),m=t.getRenderOrder();m===void 0&&(m=UI);let d=l.center.slice(),I=Vn(A,g*h),p=I.slice(),_=[I.slice()],C=c.getExtent();if(n.getWrapX()&&c.canWrapX()&&!Ii(C,e.extent)){let S=oe(C),k=Math.max(oe(I)/2,S);I[0]=C[0]-k,I[2]=C[2]+k,Qo(d,c);let L=bh(_[0],c);L[0]C[0]&&L[2]>C[2]&&_.push([L[0]-S,L[1],L[2]-S,L[3]])}if(this.ready&&this.renderedResolution_==h&&this.renderedRevision_==f&&this.renderedRenderOrder_==m&&this.renderedFrameDeclutter_===!!e.declutter&&Ii(this.wrappedRenderedExtent_,I))return rt(this.renderedExtent_,p)||(this.hitDetectionImageData_=null,this.renderedExtent_=p),this.renderedCenter_=d,this.replayGroupChanged=!1,!0;this.replayGroup_=null;let E=new tE(Ru(h,u),I,h,u),y=ci(),B;if(y){for(let S=0,k=_.length;S{let L,b=S.getStyleFunction()||t.getStyleFunction();if(b&&(L=b(S,h)),L){let P=this.renderFeature(S,x,L,E,B,this.getLayer().getDeclutter(),k);Q=Q&&!P}},T=hi(I,c),R=n.getFeaturesInExtent(T);m&&R.sort(m);for(let S=0,k=R.length;S\",GreaterThanOrEqualTo:\">=\",LessThan:\"<\",LessThanOrEqualTo:\"<=\",Multiply:\"*\",Divide:\"/\",Add:\"+\",Subtract:\"-\",Clamp:\"clamp\",Mod:\"%\",Pow:\"^\",Abs:\"abs\",Floor:\"floor\",Ceil:\"ceil\",Round:\"round\",Sin:\"sin\",Cos:\"cos\",Atan:\"atan\",Sqrt:\"sqrt\",Match:\"match\",Between:\"between\",Interpolate:\"interpolate\",Coalesce:\"coalesce\",Case:\"case\",In:\"in\",Number:\"number\",String:\"string\",Array:\"array\",Color:\"color\",Id:\"id\",Band:\"band\",Palette:\"palette\",ToString:\"to-string\",Has:\"has\"},rQ={[v.Get]:ae(he(1,1/0),uE),[v.Var]:ae(he(1,1),oQ),[v.Has]:ae(he(1,1/0),uE),[v.Id]:ae(sQ,zo),[v.Concat]:ae(he(2,1/0),xe(Ke)),[v.GeometryType]:ae(aQ,zo),[v.LineMetric]:ae(zo),[v.Resolution]:ae(Ef,zo),[v.Zoom]:ae(Ef,zo),[v.Time]:ae(Ef,zo),[v.Any]:ae(he(2,1/0),xe(ze)),[v.All]:ae(he(2,1/0),xe(ze)),[v.Not]:ae(he(1,1),xe(ze)),[v.Equal]:ae(he(2,2),xe(Bl)),[v.NotEqual]:ae(he(2,2),xe(Bl)),[v.GreaterThan]:ae(he(2,2),xe(q)),[v.GreaterThanOrEqualTo]:ae(he(2,2),xe(q)),[v.LessThan]:ae(he(2,2),xe(q)),[v.LessThanOrEqualTo]:ae(he(2,2),xe(q)),[v.Multiply]:ae(he(2,1/0),fE),[v.Coalesce]:ae(he(2,1/0),fE),[v.Divide]:ae(he(2,2),xe(q)),[v.Add]:ae(he(2,1/0),xe(q)),[v.Subtract]:ae(he(2,2),xe(q)),[v.Clamp]:ae(he(3,3),xe(q)),[v.Mod]:ae(he(2,2),xe(q)),[v.Pow]:ae(he(2,2),xe(q)),[v.Abs]:ae(he(1,1),xe(q)),[v.Floor]:ae(he(1,1),xe(q)),[v.Ceil]:ae(he(1,1),xe(q)),[v.Round]:ae(he(1,1),xe(q)),[v.Sin]:ae(he(1,1),xe(q)),[v.Cos]:ae(he(1,1),xe(q)),[v.Atan]:ae(he(1,2),xe(q)),[v.Sqrt]:ae(he(1,1),xe(q)),[v.Match]:ae(he(4,1/0),gE,lQ),[v.Between]:ae(he(3,3),xe(q)),[v.Interpolate]:ae(he(6,1/0),gE,cQ),[v.Case]:ae(he(3,1/0),AQ,hQ),[v.In]:ae(he(2,2),uQ),[v.Number]:ae(he(1,1/0),xe(Bl)),[v.String]:ae(he(1,1/0),xe(Bl)),[v.Array]:ae(he(1,1/0),xe(q)),[v.Color]:ae(he(1,4),xe(q)),[v.Band]:ae(he(1,3),xe(q)),[v.Palette]:ae(he(2,2),fQ),[v.ToString]:ae(he(1,1),xe(ze|q|Ke|we))};function uE(i,e,t){let n=i.length-1,r=new Array(n);for(let o=0;oe){let a=e===1/0?`${i} or more`:`${i} to ${e}`;throw new Error(`expected ${a} arguments for ${o}, got ${s}`)}}}function fE(i,e,t){let n=i.length-1,r=new Array(n);for(let o=0;on.featureId;case v.GeometryType:return n=>n.geometryType;case v.Concat:{let n=i.args.map(r=>Si(r,e));return r=>\"\".concat(...n.map(o=>o(r).toString()))}case v.Resolution:return n=>n.resolution;case v.Any:case v.All:case v.Between:case v.In:case v.Not:return IQ(i,e);case v.Equal:case v.NotEqual:case v.LessThan:case v.LessThanOrEqualTo:case v.GreaterThan:case v.GreaterThanOrEqualTo:return pQ(i,e);case v.Multiply:case v.Divide:case v.Add:case v.Subtract:case v.Clamp:case v.Mod:case v.Pow:case v.Abs:case v.Floor:case v.Ceil:case v.Round:case v.Sin:case v.Cos:case v.Atan:case v.Sqrt:return EQ(i,e);case v.Case:return CQ(i,e);case v.Match:return _Q(i,e);case v.Interpolate:return yQ(i,e);case v.ToString:return BQ(i,e);default:throw new Error(`Unsupported operator ${t}`)}}function dQ(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{for(let s=0;s{for(let s=0;s{let o=i.args,s=r.properties[n];for(let a=1,A=o.length;ar.variables[n];case v.Has:return r=>{let o=i.args;if(!(n in r.properties))return!1;let s=r.properties[n];for(let a=1,A=o.length;an(o)===r(o);case v.NotEqual:return o=>n(o)!==r(o);case v.LessThan:return o=>n(o)n(o)<=r(o);case v.GreaterThan:return o=>n(o)>r(o);case v.GreaterThanOrEqualTo:return o=>n(o)>=r(o);default:throw new Error(`Unsupported comparison operator ${t}`)}}function IQ(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{for(let s=0;s{for(let s=0;s{let s=r[0](o),a=r[1](o),A=r[2](o);return s>=a&&s<=A};case v.In:return o=>{let s=r[0](o);for(let a=1;a!r[0](o);default:throw new Error(`Unsupported logical operator ${t}`)}}function EQ(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{let s=1;for(let a=0;ar[0](o)/r[1](o);case v.Add:return o=>{let s=0;for(let a=0;ar[0](o)-r[1](o);case v.Clamp:return o=>{let s=r[0](o),a=r[1](o);if(sA?A:s};case v.Mod:return o=>r[0](o)%r[1](o);case v.Pow:return o=>Math.pow(r[0](o),r[1](o));case v.Abs:return o=>Math.abs(r[0](o));case v.Floor:return o=>Math.floor(r[0](o));case v.Ceil:return o=>Math.ceil(r[0](o));case v.Round:return o=>Math.round(r[0](o));case v.Sin:return o=>Math.sin(r[0](o));case v.Cos:return o=>Math.cos(r[0](o));case v.Atan:return n===2?o=>Math.atan2(r[0](o),r[1](o)):o=>Math.atan(r[0](o));case v.Sqrt:return o=>Math.sqrt(r[0](o));default:throw new Error(`Unsupported numeric operator ${t}`)}}function CQ(i,e){let t=i.args.length,n=new Array(t);for(let r=0;r{for(let o=0;o{let o=n[0](r);for(let s=1;s{let o=n[0](r),s=n[1](r),a,A;for(let l=2;l=s)return l===2?h:u?xQ(o,s,a,A,c,h):Ia(o,s,a,A,c,h);a=c,A=h}return A}}function BQ(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{let s=r[0](o);return i.args[0].type===we?ra(s):s.toString()};default:throw new Error(`Unsupported convert operator ${t}`)}}function Ia(i,e,t,n,r,o){let s=r-t;if(s===0)return n;let a=e-t,A=i===1?a/s:(Math.pow(i,a)-1)/(Math.pow(i,s)-1);return n+A*(o-n)}function xQ(i,e,t,n,r,o){if(r-t===0)return n;let a=pu(n),A=pu(o),l=A[2]-a[2];l>180?l-=360:l<-180&&(l+=360);let c=[Ia(i,e,t,a[0],r,A[0]),Ia(i,e,t,a[1],r,A[1]),a[2]+Ia(i,e,t,0,r,l),Ia(i,e,t,n[3],r,o[3])];return TI(c)}function wQ(i){return!0}function IE(i){let e=Hr(),t=QQ(i,e),n=Ea();return function(r,o){if(n.properties=r.getPropertiesInternal(),n.resolution=o,e.featureId){let s=r.getId();s!==void 0?n.featureId=s:n.featureId=null}return e.geometryType&&(n.geometryType=zr(r.getGeometry())),t(n)}}function Bf(i){let e=Hr(),t=i.length,n=new Array(t);for(let s=0;snull;n=xf(i,e+\"fill-color\",t)}if(!n)return null;let r=new zi;return function(o){let s=n(o);return s===sl?null:(r.setColor(s),r)}}function _a(i,e,t){let n=Ut(i,e+\"stroke-width\",t),r=xf(i,e+\"stroke-color\",t);if(!n&&!r)return null;let o=Dn(i,e+\"stroke-line-cap\",t),s=Dn(i,e+\"stroke-line-join\",t),a=EE(i,e+\"stroke-line-dash\",t),A=Ut(i,e+\"stroke-line-dash-offset\",t),l=Ut(i,e+\"stroke-miter-limit\",t),c=new or;return function(h){if(r){let u=r(h);if(u===sl)return null;c.setColor(u)}if(n&&c.setWidth(n(h)),o){let u=o(h);if(u!==\"butt\"&&u!==\"round\"&&u!==\"square\")throw new Error(\"Expected butt, round, or square line cap\");c.setLineCap(u)}if(s){let u=s(h);if(u!==\"bevel\"&&u!==\"round\"&&u!==\"miter\")throw new Error(\"Expected bevel, round, or miter line join\");c.setLineJoin(u)}return a&&c.setLineDash(a(h)),A&&c.setLineDashOffset(A(h)),l&&c.setMiterLimit(l(h)),c}}function SQ(i,e){let t=\"text-\",n=Dn(i,t+\"value\",e);if(!n)return null;let r=Ca(i,t,e),o=Ca(i,t+\"background-\",e),s=_a(i,t,e),a=_a(i,t+\"background-\",e),A=Dn(i,t+\"font\",e),l=Ut(i,t+\"max-angle\",e),c=Ut(i,t+\"offset-x\",e),h=Ut(i,t+\"offset-y\",e),u=Ko(i,t+\"overflow\",e),f=Dn(i,t+\"placement\",e),g=Ut(i,t+\"repeat\",e),m=Ql(i,t+\"scale\",e),d=Ko(i,t+\"rotate-with-view\",e),I=Ut(i,t+\"rotation\",e),p=Dn(i,t+\"align\",e),_=Dn(i,t+\"justify\",e),C=Dn(i,t+\"baseline\",e),E=Ko(i,t+\"keep-upright\",e),y=EE(i,t+\"padding\",e),B=Sl(i,t+\"declutter-mode\"),x=new ua({declutterMode:B});return function(Q){if(x.setText(n(Q)),r&&x.setFill(r(Q)),o&&x.setBackgroundFill(o(Q)),s&&x.setStroke(s(Q)),a&&x.setBackgroundStroke(a(Q)),A&&x.setFont(A(Q)),l&&x.setMaxAngle(l(Q)),c&&x.setOffsetX(c(Q)),h&&x.setOffsetY(h(Q)),u&&x.setOverflow(u(Q)),f){let w=f(Q);if(w!==\"point\"&&w!==\"line\")throw new Error(\"Expected point or line for text-placement\");x.setPlacement(w)}if(g&&x.setRepeat(g(Q)),m&&x.setScale(m(Q)),d&&x.setRotateWithView(d(Q)),I&&x.setRotation(I(Q)),p){let w=p(Q);if(w!==\"left\"&&w!==\"center\"&&w!==\"right\"&&w!==\"end\"&&w!==\"start\")throw new Error(\"Expected left, right, center, start, or end for text-align\");x.setTextAlign(w)}if(_){let w=_(Q);if(w!==\"left\"&&w!==\"right\"&&w!==\"center\")throw new Error(\"Expected left, right, or center for text-justify\");x.setJustify(w)}if(C){let w=C(Q);if(w!==\"bottom\"&&w!==\"top\"&&w!==\"middle\"&&w!==\"alphabetic\"&&w!==\"hanging\")throw new Error(\"Expected bottom, top, middle, alphabetic, or hanging for text-baseline\");x.setTextBaseline(w)}return y&&x.setPadding(y(Q)),E&&x.setKeepUpright(E(Q)),x}}function RQ(i,e){return\"icon-src\"in i?TQ(i,e):\"shape-points\"in i?vQ(i,e):\"circle-radius\"in i?DQ(i,e):null}function TQ(i,e){let t=\"icon-\",n=t+\"src\",r=CE(i[n],n),o=xl(i,t+\"anchor\",e),s=Ql(i,t+\"scale\",e),a=Ut(i,t+\"opacity\",e),A=xl(i,t+\"displacement\",e),l=Ut(i,t+\"rotation\",e),c=Ko(i,t+\"rotate-with-view\",e),h=mE(i,t+\"anchor-origin\"),u=pE(i,t+\"anchor-x-units\"),f=pE(i,t+\"anchor-y-units\"),g=kQ(i,t+\"color\"),m=LQ(i,t+\"cross-origin\"),d=MQ(i,t+\"offset\"),I=mE(i,t+\"offset-origin\"),p=wl(i,t+\"width\"),_=wl(i,t+\"height\"),C=FQ(i,t+\"size\"),E=Sl(i,t+\"declutter-mode\"),y=new Ar({src:r,anchorOrigin:h,anchorXUnits:u,anchorYUnits:f,color:g,crossOrigin:m,offset:d,offsetOrigin:I,height:_,width:p,size:C,declutterMode:E});return function(B){return a&&y.setOpacity(a(B)),A&&y.setDisplacement(A(B)),l&&y.setRotation(l(B)),c&&y.setRotateWithView(c(B)),s&&y.setScale(s(B)),o&&y.setAnchor(o(B)),y}}function vQ(i,e){let t=\"shape-\",n=t+\"points\",r=t+\"radius\",o=yf(i[n],n),s=yf(i[r],r),a=Ca(i,t,e),A=_a(i,t,e),l=Ql(i,t+\"scale\",e),c=xl(i,t+\"displacement\",e),h=Ut(i,t+\"rotation\",e),u=Ko(i,t+\"rotate-with-view\",e),f=wl(i,t+\"radius2\"),g=wl(i,t+\"angle\"),m=Sl(i,t+\"declutter-mode\"),d=new pl({points:o,radius:s,radius2:f,angle:g,declutterMode:m});return function(I){return a&&d.setFill(a(I)),A&&d.setStroke(A(I)),c&&d.setDisplacement(c(I)),h&&d.setRotation(h(I)),u&&d.setRotateWithView(u(I)),l&&d.setScale(l(I)),d}}function DQ(i,e){let t=\"circle-\",n=Ca(i,t,e),r=_a(i,t,e),o=Ut(i,t+\"radius\",e),s=Ql(i,t+\"scale\",e),a=xl(i,t+\"displacement\",e),A=Ut(i,t+\"rotation\",e),l=Ko(i,t+\"rotate-with-view\",e),c=Sl(i,t+\"declutter-mode\"),h=new Il({radius:5,declutterMode:c});return function(u){return o&&h.setRadius(o(u)),n&&h.setFill(n(u)),r&&h.setStroke(r(u)),a&&h.setDisplacement(a(u)),A&&h.setRotation(A(u)),l&&h.setRotateWithView(l(u)),s&&h.setScale(s(u)),h}}function Ut(i,e,t){if(!(e in i))return;let n=gi(i[e],q,t);return function(r){return yf(n(r),e)}}function Dn(i,e,t){if(!(e in i))return null;let n=gi(i[e],Ke,t);return function(r){return CE(n(r),e)}}function bQ(i,e,t){let n=Dn(i,e+\"pattern-src\",t),r=dE(i,e+\"pattern-offset\",t),o=dE(i,e+\"pattern-size\",t),s=xf(i,e+\"color\",t);return function(a){return{src:n(a),offset:r&&r(a),size:o&&o(a),color:s&&s(a)}}}function Ko(i,e,t){if(!(e in i))return null;let n=gi(i[e],ze,t);return function(r){let o=n(r);if(typeof o!=\"boolean\")throw new Error(`Expected a boolean for ${e}`);return o}}function xf(i,e,t){if(!(e in i))return null;let n=gi(i[e],we,t);return function(r){return _E(n(r),e)}}function EE(i,e,t){if(!(e in i))return null;let n=gi(i[e],et,t);return function(r){return ya(n(r),e)}}function xl(i,e,t){if(!(e in i))return null;let n=gi(i[e],et,t);return function(r){let o=ya(n(r),e);if(o.length!==2)throw new Error(`Expected two numbers for ${e}`);return o}}function dE(i,e,t){if(!(e in i))return null;let n=gi(i[e],et,t);return function(r){return yE(n(r),e)}}function Ql(i,e,t){if(!(e in i))return null;let n=gi(i[e],et|q,t);return function(r){return PQ(n(r),e)}}function wl(i,e){let t=i[e];if(t!==void 0){if(typeof t!=\"number\")throw new Error(`Expected a number for ${e}`);return t}}function FQ(i,e){let t=i[e];if(t!==void 0){if(typeof t==\"number\")return _e(t);if(!Array.isArray(t))throw new Error(`Expected a number or size array for ${e}`);if(t.length!==2||typeof t[0]!=\"number\"||typeof t[1]!=\"number\")throw new Error(`Expected a number or size array for ${e}`);return t}}function LQ(i,e){let t=i[e];if(t!==void 0){if(typeof t!=\"string\")throw new Error(`Expected a string for ${e}`);return t}}function mE(i,e){let t=i[e];if(t!==void 0){if(t!==\"bottom-left\"&&t!==\"bottom-right\"&&t!==\"top-left\"&&t!==\"top-right\")throw new Error(`Expected bottom-left, bottom-right, top-left, or top-right for ${e}`);return t}}function pE(i,e){let t=i[e];if(t!==void 0){if(t!==\"pixels\"&&t!==\"fraction\")throw new Error(`Expected pixels or fraction for ${e}`);return t}}function MQ(i,e){let t=i[e];if(t!==void 0)return ya(t,e)}function Sl(i,e){let t=i[e];if(t!==void 0){if(typeof t!=\"string\")throw new Error(`Expected a string for ${e}`);if(t!==\"declutter\"&&t!==\"obstacle\"&&t!==\"none\")throw new Error(`Expected declutter, obstacle, or none for ${e}`);return t}}function kQ(i,e){let t=i[e];if(t!==void 0)return _E(t,e)}function ya(i,e){if(!Array.isArray(i))throw new Error(`Expected an array for ${e}`);let t=i.length;for(let n=0;n4)throw new Error(`Expected a color with 3 or 4 values for ${e}`);return t}function yE(i,e){let t=ya(i,e);if(t.length!==2)throw new Error(`Expected an array of two numbers for ${e}`);return t}function PQ(i,e){return typeof i==\"number\"?i:yE(i,e)}var St={CENTER:\"center\",RESOLUTION:\"resolution\",ROTATION:\"rotation\"};function wf(i,e,t){return function(n,r,o,s,a){if(!n)return;if(!r&&!e)return n;let A=e?0:o[0]*r,l=e?0:o[1]*r,c=a?a[0]:0,h=a?a[1]:0,u=i[0]+A/2+c,f=i[2]-A/2+c,g=i[1]+l/2+h,m=i[3]-l/2+h;u>f&&(u=(f+u)/2,f=u),g>m&&(g=(m+g)/2,m=g);let d=ce(n[0],u,f),I=ce(n[1],g,m);if(s&&t&&r){let p=30*r;d+=-p*Math.log(1+Math.max(0,u-n[0])/p)+p*Math.log(1+Math.max(0,n[0]-f)/p),I+=-p*Math.log(1+Math.max(0,g-n[1])/p)+p*Math.log(1+Math.max(0,n[1]-m)/p)}return[d,I]}}function BE(i){return i}function Qf(i){return Math.pow(i,3)}function Yt(i){return 1-Qf(1-i)}function xE(i){return 3*i*i-2*i*i*i}function wE(i){return i}function Sf(i,e,t,n){let r=oe(e)/t[0],o=Se(e)/t[1];return n?Math.min(i,Math.max(r,o)):Math.min(i,Math.min(r,o))}function Rf(i,e,t){let n=Math.min(i,e),r=50;return n*=Math.log(1+r*Math.max(0,i/e-1))/r+1,t&&(n=Math.max(n,t),n/=Math.log(1+r*Math.max(0,t/i-1))/r+1),ce(n,t/2,e*2)}function QE(i,e,t,n){return e=e!==void 0?e:!0,function(r,o,s,a){if(r!==void 0){let A=i[0],l=i[i.length-1],c=t?Sf(A,t,s,n):A;if(a)return e?Rf(r,c,l):ce(r,l,c);let h=Math.min(c,r),u=Math.floor(go(i,h,o));return i[u]>c&&u1&&typeof arguments[t-1]==\"function\"&&(n=arguments[t-1],--t);let r=0;for(;r0}getInteracting(){return this.hints_[Ye.INTERACTING]>0}cancelAnimations(){this.setHint(Ye.ANIMATING,-this.hints_[Ye.ANIMATING]);let e;for(let t=0,n=this.animations_.length;t=0;--n){let r=this.animations_[n],o=!0;for(let s=0,a=r.length;s0?l/A.duration:1;c>=1?(A.complete=!0,c=1):o=!1;let h=A.easing(c);if(A.sourceCenter){let u=A.sourceCenter[0],f=A.sourceCenter[1],g=A.targetCenter[0],m=A.targetCenter[1];this.nextCenter_=A.targetCenter;let d=u+h*(g-u),I=f+h*(m-f);this.targetCenter_=[d,I]}if(A.sourceResolution&&A.targetResolution){let u=h===1?A.targetResolution:A.sourceResolution+h*(A.targetResolution-A.sourceResolution);if(A.anchor){let f=this.getViewportSize_(this.getRotation()),g=this.constraints_.resolution(u,0,f,!0);this.targetCenter_=this.calculateCenterZoom(g,A.anchor)}this.nextResolution_=A.targetResolution,this.targetResolution_=u,this.applyTargetState_(!0)}if(A.sourceRotation!==void 0&&A.targetRotation!==void 0){let u=h===1?Wt(A.targetRotation+Math.PI,2*Math.PI)-Math.PI:A.sourceRotation+h*(A.targetRotation-A.sourceRotation);if(A.anchor){let f=this.constraints_.rotation(u,!0);this.targetCenter_=this.calculateCenterRotate(f,A.anchor)}this.nextRotation_=A.targetRotation,this.targetRotation_=u}if(this.applyTargetState_(!0),t=!0,!A.complete)break}if(o){this.animations_[n]=null,this.setHint(Ye.ANIMATING,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;let s=r[0].callback;s&&Rl(s,!0)}}this.animations_=this.animations_.filter(Boolean),t&&this.updateAnimationKey_===void 0&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(e,t){let n,r=this.getCenterInternal();return r!==void 0&&(n=[r[0]-t[0],r[1]-t[1]],wo(n,e-this.getRotation()),Tp(n,t)),n}calculateCenterZoom(e,t){let n,r=this.getCenterInternal(),o=this.getResolution();if(r!==void 0&&o!==void 0){let s=t[0]-e*(t[0]-r[0])/o,a=t[1]-e*(t[1]-r[1])/o;n=[s,a]}return n}getViewportSize_(e){let t=this.viewportSize_;if(e){let n=t[0],r=t[1];return[Math.abs(n*Math.cos(e))+Math.abs(r*Math.sin(e)),Math.abs(n*Math.sin(e))+Math.abs(r*Math.cos(e))]}return t}setViewportSize(e){this.viewportSize_=Array.isArray(e)?e.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){let e=this.getCenterInternal();return e&&Dr(e,this.getProjection())}getCenterInternal(){return this.get(St.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get(\"constrainResolution\")}getHints(e){return e!==void 0?(e[0]=this.hints_[0],e[1]=this.hints_[1],e):this.hints_.slice()}calculateExtent(e){let t=this.calculateExtentInternal(e);return hi(t,this.getProjection())}calculateExtentInternal(e){e=e||this.getViewportSizeMinusPadding_();let t=this.getCenterInternal();re(t,\"The view center is not defined\");let n=this.getResolution();re(n!==void 0,\"The view resolution is not defined\");let r=this.getRotation();return re(r!==void 0,\"The view rotation is not defined\"),Ns(t,n,r,e)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(e){this.applyOptions_(this.getUpdatedOptions_({maxZoom:e}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(e){this.applyOptions_(this.getUpdatedOptions_({minZoom:e}))}setConstrainResolution(e){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:e}))}getProjection(){return this.projection_}getResolution(){return this.get(St.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(e,t){return this.getResolutionForExtentInternal(Ct(e,this.getProjection()),t)}getResolutionForExtentInternal(e,t){t=t||this.getViewportSizeMinusPadding_();let n=oe(e)/t[0],r=Se(e)/t[1];return Math.max(n,r)}getResolutionForValueFunction(e){e=e||2;let t=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(t/n)/Math.log(e);return function(o){return t/Math.pow(e,o*r)}}getRotation(){return this.get(St.ROTATION)}getValueForResolutionFunction(e){let t=Math.log(e||2),n=this.getConstrainedResolution(this.maxResolution_),r=this.minResolution_,o=Math.log(n/r)/t;return function(s){return Math.log(n/s)/t/o}}getViewportSizeMinusPadding_(e){let t=this.getViewportSize_(e),n=this.padding_;return n&&(t=[t[0]-n[1]-n[3],t[1]-n[0]-n[2]]),t}getState(){let e=this.getProjection(),t=this.getResolution(),n=this.getRotation(),r=this.getCenterInternal(),o=this.padding_;if(o){let s=this.getViewportSizeMinusPadding_();r=bf(r,this.getViewportSize_(),[s[0]/2+o[3],s[1]/2+o[0]],t,n)}return{center:r.slice(0),projection:e!==void 0?e:null,resolution:t,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:n,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let e,t=this.getResolution();return t!==void 0&&(e=this.getZoomForResolution(t)),e}getZoomForResolution(e){let t=this.minZoom_||0,n,r;if(this.resolutions_){let o=go(this.resolutions_,e,1);t=o,n=this.resolutions_[o],o==this.resolutions_.length-1?r=2:r=n/this.resolutions_[o+1]}else n=this.maxResolution_,r=this.zoomFactor_;return t+Math.log(n/e)/Math.log(r)}getResolutionForZoom(e){if(this.resolutions_?.length){if(this.resolutions_.length===1)return this.resolutions_[0];let t=ce(Math.floor(e),0,this.resolutions_.length-2),n=this.resolutions_[t]/this.resolutions_[t+1];return this.resolutions_[t]/Math.pow(n,ce(e-t,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,e-this.minZoom_)}fit(e,t){let n;if(re(Array.isArray(e)||typeof e.getSimplifiedGeometry==\"function\",\"Invalid extent or geometry provided as `geometry`\"),Array.isArray(e)){re(!ki(e),\"Cannot fit empty extent provided as `geometry`\");let r=Ct(e,this.getProjection());n=ea(r)}else if(e.getType()===\"Circle\"){let r=Ct(e.getExtent(),this.getProjection());n=ea(r),n.rotate(this.getRotation(),Et(r))}else{let r=ci();r?n=e.clone().transform(r,this.getProjection()):n=e}this.fitInternal(n,t)}rotatedExtentForGeometry(e){let t=this.getRotation(),n=Math.cos(t),r=Math.sin(-t),o=e.getFlatCoordinates(),s=e.getStride(),a=1/0,A=1/0,l=-1/0,c=-1/0;for(let h=0,u=o.length;h{this.dispatchEvent(\"sourceready\")},0)),this.clearRenderer()),this.changed()}getFeatures(e){return this.renderer_?this.renderer_.getFeatures(e):Promise.resolve([])}getData(e){return!this.renderer_||!this.rendered?null:this.renderer_.getData(e)}isVisible(e){let t,n=this.getMapInternal();!e&&n&&(e=n.getView()),e instanceof yt?t={viewState:e.getState(),extent:e.calculateExtent()}:t=e,!t.layerStatesArray&&n&&(t.layerStatesArray=n.getLayerGroup().getLayerStatesArray());let r;if(t.layerStatesArray){if(r=t.layerStatesArray.find(s=>s.layer===this),!r)return!1}else r=this.getLayerState();let o=this.getExtent();return Ba(r,t.viewState)&&(!o||Ne(o,t.extent))}getAttributions(e){if(!this.isVisible(e))return[];let t=this.getSource()?.getAttributions();if(!t)return[];let n=e instanceof yt?e.getViewStateAndExtent():e,r=t(n);return Array.isArray(r)||(r=[r]),r}render(e,t){let n=this.getRenderer();return n.prepareFrame(e)?(this.rendered=!0,n.renderFrame(e,t)):null}unrender(){this.rendered=!1}getDeclutter(){}renderDeclutter(e,t){}renderDeferred(e){let t=this.getRenderer();t&&t.renderDeferred(e)}setMapInternal(e){e||this.unrender(),this.set(pe.MAP,e)}getMapInternal(){return this.get(pe.MAP)}setMap(e){this.mapPrecomposeKey_&&(se(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),e||this.changed(),this.mapRenderKey_&&(se(this.mapRenderKey_),this.mapRenderKey_=null),e&&(this.mapPrecomposeKey_=X(e,Fe.PRECOMPOSE,this.handlePrecompose_,this),this.mapRenderKey_=X(this,U.CHANGE,e.render,e),this.changed())}handlePrecompose_(e){let t=e.frameState.layerStatesArray,n=this.getLayerState(!1);re(!t.some(r=>r.layer===n.layer),\"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both.\"),t.push(n)}setSource(e){this.set(pe.SOURCE,e)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}clearRenderer(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_)}disposeInternal(){this.clearRenderer(),this.setSource(null),super.disposeInternal()}};function Ba(i,e){if(!i.visible)return!1;let t=e.resolution;if(t=i.maxResolution)return!1;let n=e.zoom;return n>i.minZoom&&n<=i.maxZoom}var bn=Mf;var DE={RENDER_ORDER:\"renderOrder\"},kf=class extends bn{constructor(e){e=e||{};let t=Object.assign({},e);delete t.style,delete t.renderBuffer,delete t.updateWhileAnimating,delete t.updateWhileInteracting,super(t),this.declutter_=e.declutter?String(e.declutter):void 0,this.renderBuffer_=e.renderBuffer!==void 0?e.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(e.style),this.updateWhileAnimating_=e.updateWhileAnimating!==void 0?e.updateWhileAnimating:!1,this.updateWhileInteracting_=e.updateWhileInteracting!==void 0?e.updateWhileInteracting:!1}getDeclutter(){return this.declutter_}getFeatures(e){return super.getFeatures(e)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(DE.RENDER_ORDER)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(e,t){let n=this.getDeclutter();n in e.declutter||(e.declutter[n]=new Gr(9)),this.getRenderer().renderDeclutter(e,t)}setRenderOrder(e){this.set(DE.RENDER_ORDER,e)}setStyle(e){this.style_=e===void 0?ju:e;let t=YQ(e);this.styleFunction_=e===null?void 0:JI(t),this.changed()}setDeclutter(e){this.declutter_=e?String(e):void 0,this.changed()}};function YQ(i){if(i===void 0)return ju;if(!i)return null;if(typeof i==\"function\"||i instanceof $t)return i;if(!Array.isArray(i))return Bf([i]);if(i.length===0)return[];let e=i.length,t=i[0];if(t instanceof $t){let r=new Array(e);for(let o=0;oe)throw new Error(\"Tile load sequence violation\");this.state=e,this.changed()}}load(){J()}getAlpha(e,t){if(!this.transition_)return 1;let n=this.transitionStarts_[e];if(!n)n=t,this.transitionStarts_[e]=n;else if(n===-1)return 1;let r=t-n+1e3/60;return r>=this.transition_?1:Qf(r/this.transition_)}inTransition(e){return this.transition_?this.transitionStarts_[e]!==-1:!1}endTransition(e){this.transition_&&(this.transitionStarts_[e]=-1)}disposeInternal(){this.release(),super.disposeInternal()}},Xo=Nf;var Gf=class extends Xo{constructor(e,t,n,r,o,s){super(e,t,s),this.crossOrigin_=r,this.src_=n,this.key=n,this.image_=new Image,r!==null&&(this.image_.crossOrigin=r),this.unlisten_=null,this.tileLoadFunction_=o}getImage(){return this.image_}setImage(e){this.image_=e,this.state=G.LOADED,this.unlistenImage_(),this.changed()}handleImageError_(){this.state=G.ERROR,this.unlistenImage_(),this.image_=HQ(),this.changed()}handleImageLoad_(){let e=this.image_;e.naturalWidth&&e.naturalHeight?this.state=G.LOADED:this.state=G.EMPTY,this.unlistenImage_(),this.changed()}load(){this.state==G.ERROR&&(this.state=G.IDLE,this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==G.IDLE&&(this.state=G.LOADING,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=vI(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}disposeInternal(){this.unlistenImage_(),this.image_=null,super.disposeInternal()}};function HQ(){let i=me(1,1);return i.fillStyle=\"rgba(0,0,0,0)\",i.fillRect(0,0,1,1),i.canvas}var hr=Gf;var Of=class{constructor(e,t,n){this.decay_=e,this.minVelocity_=t,this.delay_=n,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(e,t){this.points_.push(e,t,Date.now())}end(){if(this.points_.length<6)return!1;let e=Date.now()-this.delay_,t=this.points_.length-3;if(this.points_[t+2]0&&this.points_[n+2]>e;)n-=3;let r=this.points_[t+2]-this.points_[n+2];if(r<1e3/60)return!1;let o=this.points_[t]-this.points_[n],s=this.points_[t+1]-this.points_[n+1];return this.angle_=Math.atan2(s,o),this.initialVelocity_=Math.sqrt(o*o+s*s)/r,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}},FE=Of;var Uf=class extends ot{constructor(e,t,n){super(e),this.map=t,this.frameState=n!==void 0?n:null}},ur=Uf;var Yf=class extends ur{constructor(e,t,n,r,o,s){super(e,t,o),this.originalEvent=n,this.pixel_=null,this.coordinate_=null,this.dragging=r!==void 0?r:!1,this.activePointers=s}get pixel(){return this.pixel_||(this.pixel_=this.map.getEventPixel(this.originalEvent)),this.pixel_}set pixel(e){this.pixel_=e}get coordinate(){return this.coordinate_||(this.coordinate_=this.map.getCoordinateFromPixel(this.pixel)),this.coordinate_}set coordinate(e){this.coordinate_=e}preventDefault(){super.preventDefault(),\"preventDefault\"in this.originalEvent&&this.originalEvent.preventDefault()}stopPropagation(){super.stopPropagation(),\"stopPropagation\"in this.originalEvent&&this.originalEvent.stopPropagation()}},Vi=Yf;var De={SINGLECLICK:\"singleclick\",CLICK:U.CLICK,DBLCLICK:U.DBLCLICK,POINTERDRAG:\"pointerdrag\",POINTERMOVE:\"pointermove\",POINTERDOWN:\"pointerdown\",POINTERUP:\"pointerup\",POINTEROVER:\"pointerover\",POINTEROUT:\"pointerout\",POINTERENTER:\"pointerenter\",POINTERLEAVE:\"pointerleave\",POINTERCANCEL:\"pointercancel\"};var Ht={POINTERMOVE:\"pointermove\",POINTERDOWN:\"pointerdown\",POINTERUP:\"pointerup\",POINTEROVER:\"pointerover\",POINTEROUT:\"pointerout\",POINTERENTER:\"pointerenter\",POINTERLEAVE:\"pointerleave\",POINTERCANCEL:\"pointercancel\"};var Hf=class extends Mi{constructor(e,t){super(e),this.map_=e,this.clickTimeoutId_,this.emulateClicks_=!1,this.dragging_=!1,this.dragListenerKeys_=[],this.moveTolerance_=t===void 0?1:t,this.down_=null;let n=this.map_.getViewport();this.activePointers_=[],this.trackedTouches_={},this.element_=n,this.pointerdownListenerKey_=X(n,Ht.POINTERDOWN,this.handlePointerDown_,this),this.originalPointerMoveEvent_,this.relayedListenerKey_=X(n,Ht.POINTERMOVE,this.relayMoveEvent_,this),this.boundHandleTouchMove_=this.handleTouchMove_.bind(this),this.element_.addEventListener(U.TOUCHMOVE,this.boundHandleTouchMove_,nl?{passive:!1}:!1)}emulateClick_(e){let t=new Vi(De.CLICK,this.map_,e);this.dispatchEvent(t),this.clickTimeoutId_!==void 0?(clearTimeout(this.clickTimeoutId_),this.clickTimeoutId_=void 0,t=new Vi(De.DBLCLICK,this.map_,e),this.dispatchEvent(t)):this.clickTimeoutId_=setTimeout(()=>{this.clickTimeoutId_=void 0;let n=new Vi(De.SINGLECLICK,this.map_,e);this.dispatchEvent(n)},250)}updateActivePointers_(e){let t=e,n=t.pointerId;if(t.type==De.POINTERUP||t.type==De.POINTERCANCEL){delete this.trackedTouches_[n];for(let r in this.trackedTouches_)if(this.trackedTouches_[r].target!==t.target){delete this.trackedTouches_[r];break}}else(t.type==De.POINTERDOWN||t.type==De.POINTERMOVE)&&(this.trackedTouches_[n]=t);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(e){this.updateActivePointers_(e);let t=new Vi(De.POINTERUP,this.map_,e,void 0,void 0,this.activePointers_);this.dispatchEvent(t),this.emulateClicks_&&!t.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(e)&&this.emulateClick_(this.down_),this.activePointers_.length===0&&(this.dragListenerKeys_.forEach(se),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(e){return e.button===0}handlePointerDown_(e){this.emulateClicks_=this.activePointers_.length===0,this.updateActivePointers_(e);let t=new Vi(De.POINTERDOWN,this.map_,e,void 0,void 0,this.activePointers_);if(this.dispatchEvent(t),this.down_=new PointerEvent(e.type,e),Object.defineProperty(this.down_,\"target\",{writable:!1,value:e.target}),this.dragListenerKeys_.length===0){let n=this.map_.getOwnerDocument();this.dragListenerKeys_.push(X(n,De.POINTERMOVE,this.handlePointerMove_,this),X(n,De.POINTERUP,this.handlePointerUp_,this),X(this.element_,De.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==n&&this.dragListenerKeys_.push(X(this.element_.getRootNode(),De.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(e){if(this.isMoving_(e)){this.updateActivePointers_(e),this.dragging_=!0;let t=new Vi(De.POINTERDRAG,this.map_,e,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(t)}}relayMoveEvent_(e){this.originalPointerMoveEvent_=e;let t=!!(this.down_&&this.isMoving_(e));this.dispatchEvent(new Vi(De.POINTERMOVE,this.map_,e,t))}handleTouchMove_(e){let t=this.originalPointerMoveEvent_;(!t||t.defaultPrevented)&&(typeof e.cancelable!=\"boolean\"||e.cancelable===!0)&&e.preventDefault()}isMoving_(e){return this.dragging_||Math.abs(e.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(e.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(se(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(U.TOUCHMOVE,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(se(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(se),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},LE=Hf;var zt={POSTRENDER:\"postrender\",MOVESTART:\"movestart\",MOVEEND:\"moveend\",LOADSTART:\"loadstart\",LOADEND:\"loadend\"};var Le={LAYERGROUP:\"layergroup\",SIZE:\"size\",TARGET:\"target\",VIEW:\"view\"};var xa=1/0,zf=class{constructor(e,t){this.priorityFunction_=e,this.keyFunction_=t,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,ai(this.queuedElements_)}dequeue(){let e=this.elements_,t=this.priorities_,n=e[0];e.length==1?(e.length=0,t.length=0):(e[0]=e.pop(),t[0]=t.pop(),this.siftUp_(0));let r=this.keyFunction_(n);return delete this.queuedElements_[r],n}enqueue(e){re(!(this.keyFunction_(e)in this.queuedElements_),\"Tried to enqueue an `element` that was already added to the queue\");let t=this.priorityFunction_(e);return t!=xa?(this.elements_.push(e),this.priorities_.push(t),this.queuedElements_[this.keyFunction_(e)]=!0,this.siftDown_(0,this.elements_.length-1),!0):!1}getCount(){return this.elements_.length}getLeftChildIndex_(e){return e*2+1}getRightChildIndex_(e){return e*2+2}getParentIndex_(e){return e-1>>1}heapify_(){let e;for(e=(this.elements_.length>>1)-1;e>=0;e--)this.siftUp_(e)}isEmpty(){return this.elements_.length===0}isKeyQueued(e){return e in this.queuedElements_}isQueued(e){return this.isKeyQueued(this.keyFunction_(e))}siftUp_(e){let t=this.elements_,n=this.priorities_,r=t.length,o=t[e],s=n[e],a=e;for(;e>1;){let A=this.getLeftChildIndex_(e),l=this.getRightChildIndex_(e),c=le;){let a=this.getParentIndex_(t);if(r[a]>s)n[t]=n[a],r[t]=r[a],t=a;else break}n[t]=o,r[t]=s}reprioritize(){let e=this.priorityFunction_,t=this.elements_,n=this.priorities_,r=0,o=t.length,s,a,A;for(a=0;ae.apply(null,n),n=>n[0].getKey()),this.boundHandleTileChange_=this.handleTileChange.bind(this),this.tileChangeCallback_=t,this.tilesLoading_=0,this.tilesLoadingKeys_={}}enqueue(e){let t=super.enqueue(e);return t&&e[0].addEventListener(U.CHANGE,this.boundHandleTileChange_),t}getTilesLoading(){return this.tilesLoading_}handleTileChange(e){let t=e.target,n=t.getState();if(n===G.LOADED||n===G.ERROR||n===G.EMPTY){n!==G.ERROR&&t.removeEventListener(U.CHANGE,this.boundHandleTileChange_);let r=t.getKey();r in this.tilesLoadingKeys_&&(delete this.tilesLoadingKeys_[r],--this.tilesLoading_),this.tileChangeCallback_()}}loadMoreTiles(e,t){let n=0;for(;this.tilesLoading_0;){let r=this.dequeue()[0],o=r.getKey();r.getState()===G.IDLE&&!(o in this.tilesLoadingKeys_)&&(this.tilesLoadingKeys_[o]=!0,++this.tilesLoading_,++n,r.load())}}},kE=Kf;function PE(i,e,t,n,r){if(!i||!(t in i.wantedTiles))return xa;if(!i.wantedTiles[t][e.getKey()])return xa;let o=i.viewState.center,s=n[0]-o[0],a=n[1]-o[1];return 65536*Math.log(r)+Math.sqrt(s*s+a*a)/r}var qf=class extends Oe{constructor(e){super();let t=e.element;t&&!e.target&&!t.style.pointerEvents&&(t.style.pointerEvents=\"auto\"),this.element=t||null,this.target_=null,this.map_=null,this.listenerKeys=[],e.render&&(this.render=e.render),e.target&&this.setTarget(e.target)}disposeInternal(){this.element?.remove(),super.disposeInternal()}getMap(){return this.map_}setMap(e){this.map_&&this.element?.remove();for(let t=0,n=this.listenerKeys.length;tr.getAttributions(e)));if(this.attributions_!==void 0&&(Array.isArray(this.attributions_)?this.attributions_.forEach(r=>n.add(r)):n.add(this.attributions_)),!this.overrideCollapsible_){let r=!t.some(o=>o.getSource()?.getAttributionsCollapsible()===!1);this.setCollapsible(r)}return Array.from(n)}async updateElement_(e){if(!e){this.renderedVisible_&&(this.element.style.display=\"none\",this.renderedVisible_=!1);return}let t=await Promise.all(this.collectSourceAttributions_(e).map(r=>xA(()=>r))),n=t.length>0;if(this.renderedVisible_!=n&&(this.element.style.display=n?\"\":\"none\",this.renderedVisible_=n),!rt(t,this.renderedAttributions_)){rl(this.ulElement_);for(let r=0,o=t.length;r0&&n%(2*Math.PI)!==0?t.animate({rotation:0,duration:this.duration_,easing:Yt}):t.setRotation(0))}render(e){let t=e.frameState;if(!t)return;let n=t.viewState.rotation;if(n!=this.rotation_){let r=\"rotate(\"+n+\"rad)\";if(this.autoHide_){let o=this.element.classList.contains(sa);!o&&n===0?this.element.classList.add(sa):o&&n!==0&&this.element.classList.remove(sa)}this.label_.style.transform=r}this.rotation_=n}},GE=Xf;var Jf=class extends At{constructor(e){e=e||{},super({element:document.createElement(\"div\"),target:e.target});let t=e.className!==void 0?e.className:\"ol-zoom\",n=e.delta!==void 0?e.delta:1,r=e.zoomInClassName!==void 0?e.zoomInClassName:t+\"-in\",o=e.zoomOutClassName!==void 0?e.zoomOutClassName:t+\"-out\",s=e.zoomInLabel!==void 0?e.zoomInLabel:\"+\",a=e.zoomOutLabel!==void 0?e.zoomOutLabel:\"\\\\u2013\",A=e.zoomInTipLabel!==void 0?e.zoomInTipLabel:\"Zoom in\",l=e.zoomOutTipLabel!==void 0?e.zoomOutTipLabel:\"Zoom out\",c=document.createElement(\"button\");c.className=r,c.setAttribute(\"type\",\"button\"),c.title=A,c.appendChild(typeof s==\"string\"?document.createTextNode(s):s),c.addEventListener(U.CLICK,this.handleClick_.bind(this,n),!1);let h=document.createElement(\"button\");h.className=o,h.setAttribute(\"type\",\"button\"),h.title=l,h.appendChild(typeof a==\"string\"?document.createTextNode(a):a),h.addEventListener(U.CLICK,this.handleClick_.bind(this,-n),!1);let u=t+\" \"+gt+\" \"+fi,f=this.element;f.className=u,f.appendChild(c),f.appendChild(h),this.duration_=e.duration!==void 0?e.duration:250}handleClick_(e,t){t.preventDefault(),this.zoomByDelta_(e)}zoomByDelta_(e){let n=this.getMap().getView();if(!n)return;let r=n.getZoom();if(r!==void 0){let o=n.getConstrainedZoom(r+e);this.duration_>0?(n.getAnimating()&&n.cancelAnimations(),n.animate({zoom:o,duration:this.duration_,easing:Yt})):n.setZoom(o)}}},OE=Jf;function vl(i){i=i||{};let e=new st;return(i.zoom!==void 0?i.zoom:!0)&&e.push(new OE(i.zoomOptions)),(i.rotate!==void 0?i.rotate:!0)&&e.push(new GE(i.rotateOptions)),(i.attribution!==void 0?i.attribution:!0)&&e.push(new NE(i.attributionOptions)),e}var jf={ACTIVE:\"active\"};var Wf=class extends Oe{constructor(e){super(),this.on,this.once,this.un,e&&e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(jf.ACTIVE)}getMap(){return this.map_}handleEvent(e){return!0}setActive(e){this.set(jf.ACTIVE,e)}setMap(e){this.map_=e}};function UE(i,e,t){let n=i.getCenterInternal();if(n){let r=[n[0]+e[0],n[1]+e[1]];i.animateInternal({duration:t!==void 0?t:250,easing:wE,center:i.getConstrainedCenter(r)})}}function Jo(i,e,t,n){let r=i.getZoom();if(r===void 0)return;let o=i.getConstrainedZoom(r+e),s=i.getResolutionForZoom(o);i.getAnimating()&&i.cancelAnimations(),i.animate({resolution:s,anchor:t,duration:n!==void 0?n:250,easing:Yt})}var Xi=Wf;var Zf=class extends Xi{constructor(e){super(),e=e||{},this.delta_=e.delta?e.delta:1,this.duration_=e.duration!==void 0?e.duration:250}handleEvent(e){let t=!1;if(e.type==De.DBLCLICK){let n=e.originalEvent,r=e.map,o=e.coordinate,s=n.shiftKey?-this.delta_:this.delta_,a=r.getView();Jo(a,s,o,this.duration_),n.preventDefault(),t=!0}return!t}},YE=Zf;function wa(i){let e=arguments;return function(t){let n=!0;for(let r=0,o=e.length;r0}}else if(e.type==De.POINTERDOWN){let n=this.handleDownEvent(e);this.handlingDownUpSequence=n,t=this.stopDown(n)}else e.type==De.POINTERMOVE&&this.handleMoveEvent(e);return!t}handleMoveEvent(e){}handleUpEvent(e){return!1}stopDown(e){return e}updateTrackedPointers_(e){e.activePointers&&(this.targetPointers=e.activePointers)}};function jo(i){let e=i.length,t=0,n=0;for(let r=0;r0&&this.condition_(e)){let n=e.map.getView();return this.lastCentroid=null,n.getAnimating()&&n.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}},XE=eg;var tg=class extends Ji{constructor(e){e=e||{},super({stopDown:pn}),this.condition_=e.condition?e.condition:HE,this.lastAngle_=void 0,this.duration_=e.duration!==void 0?e.duration:250}handleDragEvent(e){if(!Ml(e))return;let t=e.map,n=t.getView();if(n.getConstraints().rotation===qo)return;let r=t.getSize(),o=e.pixel,s=Math.atan2(r[1]/2-o[1],o[0]-r[0]/2);if(this.lastAngle_!==void 0){let a=s-this.lastAngle_;n.adjustRotationInternal(-a)}this.lastAngle_=s}handleUpEvent(e){return Ml(e)?(e.map.getView().endInteraction(this.duration_),!1):!0}handleDownEvent(e){return Ml(e)&&bl(e)&&this.condition_(e)?(e.map.getView().beginInteraction(),this.lastAngle_=void 0,!0):!1}},JE=tg;var ig=class extends Li{constructor(e){super(),this.geometry_=null,this.element_=document.createElement(\"div\"),this.element_.style.position=\"absolute\",this.element_.style.pointerEvents=\"auto\",this.element_.className=\"ol-box \"+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){let e=this.startPixel_,t=this.endPixel_,n=\"px\",r=this.element_.style;r.left=Math.min(e[0],t[0])+n,r.top=Math.min(e[1],t[1])+n,r.width=Math.abs(t[0]-e[0])+n,r.height=Math.abs(t[1]-e[1])+n}setMap(e){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);let t=this.element_.style;t.left=\"inherit\",t.top=\"inherit\",t.width=\"inherit\",t.height=\"inherit\"}this.map_=e,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(e,t){this.startPixel_=e,this.endPixel_=t,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){if(!this.map_)return;let e=this.startPixel_,t=this.endPixel_,r=[e,[e[0],t[1]],t,[t[0],e[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);r[4]=r[0].slice(),this.geometry_?this.geometry_.setCoordinates([r]):this.geometry_=new xi([r])}getGeometry(){return this.geometry_}},jE=ig;var Wo={BOXSTART:\"boxstart\",BOXDRAG:\"boxdrag\",BOXEND:\"boxend\",BOXCANCEL:\"boxcancel\"},Kr=class extends ot{constructor(e,t,n){super(e),this.coordinate=t,this.mapBrowserEvent=n}},ng=class extends Ji{constructor(e){super(),this.on,this.once,this.un,e=e??{},this.box_=new jE(e.className||\"ol-dragbox\"),this.minArea_=e.minArea??64,e.onBoxEnd&&(this.onBoxEnd=e.onBoxEnd),this.startPixel_=null,this.condition_=e.condition??bl,this.boxEndCondition_=e.boxEndCondition??this.defaultBoxEndCondition}defaultBoxEndCondition(e,t,n){let r=n[0]-t[0],o=n[1]-t[1];return r*r+o*o>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(e){this.startPixel_&&(this.box_.setPixels(this.startPixel_,e.pixel),this.dispatchEvent(new Kr(Wo.BOXDRAG,e.coordinate,e)))}handleUpEvent(e){if(!this.startPixel_)return!1;let t=this.boxEndCondition_(e,this.startPixel_,e.pixel);return t&&this.onBoxEnd(e),this.dispatchEvent(new Kr(t?Wo.BOXEND:Wo.BOXCANCEL,e.coordinate,e)),this.box_.setMap(null),this.startPixel_=null,!1}handleDownEvent(e){return this.condition_(e)?(this.startPixel_=e.pixel,this.box_.setMap(e.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new Kr(Wo.BOXSTART,e.coordinate,e)),!0):!1}onBoxEnd(e){}setActive(e){e||(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new Kr(Wo.BOXCANCEL,this.startPixel_,null)),this.startPixel_=null)),super.setActive(e)}setMap(e){this.getMap()&&(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new Kr(Wo.BOXCANCEL,this.startPixel_,null)),this.startPixel_=null)),super.setMap(e)}},WE=ng;var rg=class extends WE{constructor(e){e=e||{};let t=e.condition?e.condition:qE;super({condition:t,className:e.className||\"ol-dragzoom\",minArea:e.minArea}),this.duration_=e.duration!==void 0?e.duration:200,this.out_=e.out!==void 0?e.out:!1}onBoxEnd(e){let n=this.getMap().getView(),r=this.getGeometry();if(this.out_){let o=n.rotatedExtentForGeometry(r),s=n.getResolutionForExtentInternal(o),a=n.getResolution()/s;r=r.clone(),r.scale(a*a)}n.fitInternal(r,{duration:this.duration_,easing:Yt})}},ZE=rg;var fr={LEFT:\"ArrowLeft\",UP:\"ArrowUp\",RIGHT:\"ArrowRight\",DOWN:\"ArrowDown\"};var og=class extends Xi{constructor(e){super(),e=e||{},this.defaultCondition_=function(t){return Fl(t)&&Ll(t)},this.condition_=e.condition!==void 0?e.condition:this.defaultCondition_,this.duration_=e.duration!==void 0?e.duration:100,this.pixelDelta_=e.pixelDelta!==void 0?e.pixelDelta:128}handleEvent(e){let t=!1;if(e.type==U.KEYDOWN){let n=e.originalEvent,r=n.key;if(this.condition_(e)&&(r==fr.DOWN||r==fr.LEFT||r==fr.RIGHT||r==fr.UP)){let s=e.map.getView(),a=s.getResolution()*this.pixelDelta_,A=0,l=0;r==fr.DOWN?l=-a:r==fr.LEFT?A=-a:r==fr.RIGHT?A=a:l=a;let c=[A,l];wo(c,s.getRotation()),UE(s,c,this.duration_),n.preventDefault(),t=!0}}return!t}},$E=og;var sg=class extends Xi{constructor(e){super(),e=e||{},this.condition_=e.condition?e.condition:function(t){return!KE(t)&&Ll(t)},this.delta_=e.delta?e.delta:1,this.duration_=e.duration!==void 0?e.duration:100}handleEvent(e){let t=!1;if(e.type==U.KEYDOWN||e.type==U.KEYPRESS){let n=e.originalEvent,r=n.key;if(this.condition_(e)&&(r===\"+\"||r===\"-\")){let o=e.map,s=r===\"+\"?this.delta_:-this.delta_,a=o.getView();Jo(a,s,void 0,this.duration_),n.preventDefault(),t=!0}}return!t}},e0=sg;var ag=class extends Xi{constructor(e){e=e||{},super(e),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=e.maxDelta!==void 0?e.maxDelta:1,this.duration_=e.duration!==void 0?e.duration:250,this.timeout_=e.timeout!==void 0?e.timeout:80,this.useAnchor_=e.useAnchor!==void 0?e.useAnchor:!0,this.constrainResolution_=e.constrainResolution!==void 0?e.constrainResolution:!1;let t=e.condition?e.condition:zE;this.condition_=e.onFocusOnly?wa(Dl,t):t,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;let e=this.getMap();if(!e)return;e.getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null)}handleEvent(e){if(!this.condition_(e)||e.type!==U.WHEEL)return!0;let n=e.map,r=e.originalEvent;r.preventDefault(),this.useAnchor_&&(this.lastAnchor_=e.pixel);let o;if(e.type==U.WHEEL&&(o=r.deltaY,r.deltaMode===WheelEvent.DOM_DELTA_LINE&&(o*=40)),o===0)return!1;this.lastDelta_=o;let s=Date.now();this.startTime_===void 0&&(this.startTime_=s),(!this.mode_||s-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(o)<4?\"trackpad\":\"wheel\");let a=n.getView();if(this.mode_===\"trackpad\"&&!(a.getConstrainResolution()||this.constrainResolution_))return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(a.getAnimating()&&a.cancelAnimations(),a.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),a.adjustZoom(-o/this.deltaPerZoom_,this.lastAnchor_?n.getCoordinateFromPixel(this.lastAnchor_):null),this.startTime_=s,!1;this.totalDelta_+=o;let A=Math.max(this.timeout_-(s-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,n),A),!1}handleWheelZoom_(e){let t=e.getView();t.getAnimating()&&t.cancelAnimations();let n=-ce(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(t.getConstrainResolution()||this.constrainResolution_)&&(n=n?n>0?1:-1:0),Jo(t,n,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(e){this.useAnchor_=e,e||(this.lastAnchor_=null)}},t0=ag;var Ag=class extends Ji{constructor(e){e=e||{};let t=e;t.stopDown||(t.stopDown=pn),super(t),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=e.threshold!==void 0?e.threshold:.3,this.duration_=e.duration!==void 0?e.duration:250}handleDragEvent(e){let t=0,n=this.targetPointers[0],r=this.targetPointers[1],o=Math.atan2(r.clientY-n.clientY,r.clientX-n.clientX);if(this.lastAngle_!==void 0){let A=o-this.lastAngle_;this.rotationDelta_+=A,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),t=A}this.lastAngle_=o;let s=e.map,a=s.getView();a.getConstraints().rotation!==qo&&(this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(jo(this.targetPointers))),this.rotating_&&(s.render(),a.adjustRotationInternal(t,this.anchor_)))}handleUpEvent(e){return this.targetPointers.length<2?(e.map.getView().endInteraction(this.duration_),!1):!0}handleDownEvent(e){if(this.targetPointers.length>=2){let t=e.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},i0=Ag;var lg=class extends Ji{constructor(e){e=e||{};let t=e;t.stopDown||(t.stopDown=pn),super(t),this.anchor_=null,this.duration_=e.duration!==void 0?e.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(e){let t=1,n=this.targetPointers[0],r=this.targetPointers[1],o=n.clientX-r.clientX,s=n.clientY-r.clientY,a=Math.sqrt(o*o+s*s);this.lastDistance_!==void 0&&(t=this.lastDistance_/a),this.lastDistance_=a;let A=e.map,l=A.getView();t!=1&&(this.lastScaleDelta_=t),this.anchor_=A.getCoordinateFromPixelInternal(A.getEventPixel(jo(this.targetPointers))),A.render(),l.adjustResolutionInternal(t,this.anchor_)}handleUpEvent(e){if(this.targetPointers.length<2){let n=e.map.getView(),r=this.lastScaleDelta_>1?1:-1;return n.endInteraction(this.duration_,r),!1}return!0}handleDownEvent(e){if(this.targetPointers.length>=2){let t=e.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},n0=lg;function r0(i){i=i||{};let e=new st,t=new FE(-.005,.05,100);return(i.altShiftDragRotate!==void 0?i.altShiftDragRotate:!0)&&e.push(new JE),(i.doubleClickZoom!==void 0?i.doubleClickZoom:!0)&&e.push(new YE({delta:i.zoomDelta,duration:i.zoomDuration})),(i.dragPan!==void 0?i.dragPan:!0)&&e.push(new XE({onFocusOnly:i.onFocusOnly,kinetic:t})),(i.pinchRotate!==void 0?i.pinchRotate:!0)&&e.push(new i0),(i.pinchZoom!==void 0?i.pinchZoom:!0)&&e.push(new n0({duration:i.zoomDuration})),(i.keyboard!==void 0?i.keyboard:!0)&&(e.push(new $E),e.push(new e0({delta:i.zoomDelta,duration:i.zoomDuration}))),(i.mouseWheelZoom!==void 0?i.mouseWheelZoom:!0)&&e.push(new t0({onFocusOnly:i.onFocusOnly,duration:i.zoomDuration})),(i.shiftDragZoom!==void 0?i.shiftDragZoom:!0)&&e.push(new ZE({duration:i.zoomDuration})),e}var Ri=class extends ot{constructor(e,t){super(e),this.layer=t}},cg={LAYERS:\"layers\"},hg=class i extends Tl{constructor(e){e=e||{};let t=Object.assign({},e);delete t.layers;let n=e.layers;super(t),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(cg.LAYERS,this.handleLayersChanged_),n?Array.isArray(n)?n=new st(n.slice(),{unique:!0}):re(typeof n.getArray==\"function\",\"Expected `layers` to be an array or a `Collection`\"):n=new st(void 0,{unique:!0}),this.setLayers(n)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(se),this.layersListenerKeys_.length=0;let e=this.getLayers();this.layersListenerKeys_.push(X(e,nt.ADD,this.handleLayersAdd_,this),X(e,nt.REMOVE,this.handleLayersRemove_,this));for(let n in this.listenerKeys_)this.listenerKeys_[n].forEach(se);ai(this.listenerKeys_);let t=e.getArray();for(let n=0,r=t.length;n=0;--E){let y=m[E],B=y.layer;if(B.hasRenderer()&&Ba(y,c)&&a.call(A,B)){let x=B.getRenderer(),Q=B.getSource();if(x&&Q){let w=Q.getWrapX()?f:e,T=h.bind(null,y.managed);p[0]=w[0]+g[C][0],p[1]=w[1]+g[C][1],l=x.forEachFeatureAtCoordinate(p,t,n,T,I)}if(l)return l}}if(I.length===0)return;let _=1/I.length;return I.forEach((C,E)=>C.distanceSq+=E*_),I.sort((C,E)=>C.distanceSq-E.distanceSq),I.some(C=>l=C.callback(C.feature,C.layer,C.geometry)),l}hasFeatureAtCoordinate(e,t,n,r,o,s){return this.forEachFeatureAtCoordinate(e,t,n,r,mn,this,o,s)!==void 0}getMap(){return this.map_}renderFrame(e){J()}scheduleExpireIconCache(e){_t.canExpireCache()&&e.postRenderFunctions.push(KQ)}};function KQ(i,e){_t.expire()}var o0=ug;var fg=class extends o0{constructor(e){super(e),this.fontChangeListenerKey_=X(Oi,qt.PROPERTYCHANGE,e.redrawText,e),this.element_=document.createElement(\"div\");let t=this.element_.style;t.position=\"absolute\",t.width=\"100%\",t.height=\"100%\",t.zIndex=\"0\",this.element_.className=gt+\" ol-layers\";let n=e.getViewport();n.insertBefore(this.element_,n.firstChild||null),this.children_=[],this.renderedVisible_=!0}dispatchRenderEvent(e,t){let n=this.getMap();if(n.hasListener(e)){let r=new lr(e,void 0,t);n.dispatchEvent(r)}}disposeInternal(){se(this.fontChangeListenerKey_),this.element_.remove(),super.disposeInternal()}renderFrame(e){if(!e){this.renderedVisible_&&(this.element_.style.display=\"none\",this.renderedVisible_=!1);return}this.calculateMatrices2D(e),this.dispatchRenderEvent(Fe.PRECOMPOSE,e);let t=e.layerStatesArray.sort((a,A)=>a.zIndex-A.zIndex);t.some(a=>a.layer instanceof Vo&&a.layer.getDeclutter())&&(e.declutter={});let r=e.viewState;this.children_.length=0;let o=[],s=null;for(let a=0,A=t.length;a=0;--n){let r=t[n],o=r.layer;o.getDeclutter()&&o.renderDeclutter(e,r)}t.forEach(n=>n.layer.renderDeferred(e))}}},s0=fg;function a0(i){if(i instanceof bn){i.setMapInternal(null);return}i instanceof Qa&&i.getLayers().forEach(a0)}function A0(i,e){if(i instanceof bn){i.setMapInternal(e);return}if(i instanceof Qa){let t=i.getLayers().getArray();for(let n=0,r=t.length;nthis.updateSize()),this.controls=t.controls||vl(),this.interactions=t.interactions||r0({onFocusOnly:!0}),this.overlays_=t.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new kE(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(Le.LAYERGROUP,this.handleLayerGroupChanged_),this.addChangeListener(Le.VIEW,this.handleViewChanged_),this.addChangeListener(Le.SIZE,this.handleSizeChanged_),this.addChangeListener(Le.TARGET,this.handleTargetChanged_),this.setProperties(t.values);let n=this;e.view&&!(e.view instanceof yt)&&e.view.then(function(r){n.setView(new yt(r))}),this.controls.addEventListener(nt.ADD,r=>{r.element.setMap(this)}),this.controls.addEventListener(nt.REMOVE,r=>{r.element.setMap(null)}),this.interactions.addEventListener(nt.ADD,r=>{r.element.setMap(this)}),this.interactions.addEventListener(nt.REMOVE,r=>{r.element.setMap(null)}),this.overlays_.addEventListener(nt.ADD,r=>{this.addOverlayInternal_(r.element)}),this.overlays_.addEventListener(nt.REMOVE,r=>{let o=r.element.getId();o!==void 0&&delete this.overlayIdIndex_[o.toString()],r.element.setMap(null)}),this.controls.forEach(r=>{r.setMap(this)}),this.interactions.forEach(r=>{r.setMap(this)}),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(e){this.getControls().push(e)}addInteraction(e){this.getInteractions().push(e)}addLayer(e){this.getLayerGroup().getLayers().push(e)}handleLayerAdd_(e){A0(e.layer,this)}addOverlay(e){this.getOverlays().push(e)}addOverlayInternal_(e){let t=e.getId();t!==void 0&&(this.overlayIdIndex_[t.toString()]=e),e.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(e,t,n){if(!this.frameState_||!this.renderer_)return;let r=this.getCoordinateFromPixelInternal(e);n=n!==void 0?n:{};let o=n.hitTolerance!==void 0?n.hitTolerance:0,s=n.layerFilter!==void 0?n.layerFilter:mn,a=n.checkWrapped!==!1;return this.renderer_.forEachFeatureAtCoordinate(r,this.frameState_,o,a,t,null,s,null)}getFeaturesAtPixel(e,t){let n=[];return this.forEachFeatureAtPixel(e,function(r){n.push(r)},t),n}getAllLayers(){let e=[];function t(n){n.forEach(function(r){r instanceof Qa?t(r.getLayers()):e.push(r)})}return t(this.getLayers()),e}hasFeatureAtPixel(e,t){if(!this.frameState_||!this.renderer_)return!1;let n=this.getCoordinateFromPixelInternal(e);t=t!==void 0?t:{};let r=t.layerFilter!==void 0?t.layerFilter:mn,o=t.hitTolerance!==void 0?t.hitTolerance:0,s=t.checkWrapped!==!1;return this.renderer_.hasFeatureAtCoordinate(n,this.frameState_,o,s,r,null)}getEventCoordinate(e){return this.getCoordinateFromPixel(this.getEventPixel(e))}getEventCoordinateInternal(e){return this.getCoordinateFromPixelInternal(this.getEventPixel(e))}getEventPixel(e){let n=this.viewport_.getBoundingClientRect(),r=this.getSize(),o=n.width/r[0],s=n.height/r[1],a=\"changedTouches\"in e?e.changedTouches[0]:e;return[(a.clientX-n.left)/o,(a.clientY-n.top)/s]}getTarget(){return this.get(Le.TARGET)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(e){return Dr(this.getCoordinateFromPixelInternal(e),this.getView().getProjection())}getCoordinateFromPixelInternal(e){let t=this.frameState_;return t?ye(t.pixelToCoordinateTransform,e.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(e){let t=this.overlayIdIndex_[e.toString()];return t!==void 0?t:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(Le.LAYERGROUP)}setLayers(e){let t=this.getLayerGroup();if(e instanceof st){t.setLayers(e);return}let n=t.getLayers();n.clear(),n.extend(e)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){let e=this.getLayerGroup().getLayerStatesArray();for(let t=0,n=e.length;t=0;o--){let s=r[o];if(s.getMap()!==this||!s.getActive()||!this.getTargetElement())continue;if(!s.handleEvent(e)||e.propagationStopped)break}}}handlePostRender(){let e=this.frameState_,t=this.tileQueue_;if(!t.isEmpty()){let r=this.maxTilesLoading_,o=r;if(e){let s=e.viewHints;if(s[Ye.ANIMATING]||s[Ye.INTERACTING]){let a=Date.now()-e.time>8;r=a?0:8,o=a?0:2}}t.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()},0))}setLayerGroup(e){let t=this.getLayerGroup();t&&this.handleLayerRemove_(new Ri(\"removelayer\",t)),this.set(Le.LAYERGROUP,e)}setSize(e){this.set(Le.SIZE,e)}setTarget(e){this.set(Le.TARGET,e)}setView(e){if(!e||e instanceof yt){this.set(Le.VIEW,e);return}this.set(Le.VIEW,new yt);let t=this;e.then(function(n){t.setView(new yt(n))})}updateSize(){let e=this.getTargetElement(),t;if(e){let r=getComputedStyle(e),o=e.offsetWidth-parseFloat(r.borderLeftWidth)-parseFloat(r.paddingLeft)-parseFloat(r.paddingRight)-parseFloat(r.borderRightWidth),s=e.offsetHeight-parseFloat(r.borderTopWidth)-parseFloat(r.paddingTop)-parseFloat(r.paddingBottom)-parseFloat(r.borderBottomWidth);!isNaN(o)&&!isNaN(s)&&(t=[Math.max(0,o),Math.max(0,s)],!Ku(t)&&(e.offsetWidth||e.offsetHeight||e.getClientRects().length)&&LA(\"No map visible because the map container\\'s width or height are 0.\"))}let n=this.getSize();t&&(!n||!rt(t,n))&&(this.setSize(t),this.updateViewportSize_(t))}updateViewportSize_(e){let t=this.getView();t&&t.setViewportSize(e)}};function qQ(i){let e=null;i.keyboardEventTarget!==void 0&&(e=typeof i.keyboardEventTarget==\"string\"?document.getElementById(i.keyboardEventTarget):i.keyboardEventTarget);let t={},n=i.layers&&typeof i.layers.getLayers==\"function\"?i.layers:new Qa({layers:i.layers});t[Le.LAYERGROUP]=n,t[Le.TARGET]=i.target,t[Le.VIEW]=i.view instanceof yt?i.view:new yt;let r;i.controls!==void 0&&(Array.isArray(i.controls)?r=new st(i.controls.slice()):(re(typeof i.controls.getArray==\"function\",\"Expected `controls` to be an array or an `ol/Collection.js`\"),r=i.controls));let o;i.interactions!==void 0&&(Array.isArray(i.interactions)?o=new st(i.interactions.slice()):(re(typeof i.interactions.getArray==\"function\",\"Expected `interactions` to be an array or an `ol/Collection.js`\"),o=i.interactions));let s;return i.overlays!==void 0?Array.isArray(i.overlays)?s=new st(i.overlays.slice()):(re(typeof i.overlays.getArray==\"function\",\"Expected `overlays` to be an array or an `ol/Collection.js`\"),s=i.overlays):s=new st,{controls:r,interactions:o,keyboardEventTarget:e,overlays:s,values:t}}var Sa=gg;var Bt={ELEMENT:\"element\",MAP:\"map\",OFFSET:\"offset\",POSITION:\"position\",POSITIONING:\"positioning\"},dg=class extends Oe{constructor(e){super(),this.on,this.once,this.un,this.options=e,this.id=e.id,this.insertFirst=e.insertFirst!==void 0?e.insertFirst:!0,this.stopEvent=e.stopEvent!==void 0?e.stopEvent:!0,this.element=document.createElement(\"div\"),this.element.className=e.className!==void 0?e.className:\"ol-overlay-container \"+LI,this.element.style.position=\"absolute\",this.element.style.pointerEvents=\"auto\",this.autoPan=e.autoPan===!0?{}:e.autoPan||void 0,this.rendered={transform_:\"\",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(Bt.ELEMENT,this.handleElementChanged),this.addChangeListener(Bt.MAP,this.handleMapChanged),this.addChangeListener(Bt.OFFSET,this.handleOffsetChanged),this.addChangeListener(Bt.POSITION,this.handlePositionChanged),this.addChangeListener(Bt.POSITIONING,this.handlePositioningChanged),e.element!==void 0&&this.setElement(e.element),this.setOffset(e.offset!==void 0?e.offset:[0,0]),this.setPositioning(e.positioning||\"top-left\"),e.position!==void 0&&this.setPosition(e.position)}getElement(){return this.get(Bt.ELEMENT)}getId(){return this.id}getMap(){return this.get(Bt.MAP)||null}getOffset(){return this.get(Bt.OFFSET)}getPosition(){return this.get(Bt.POSITION)}getPositioning(){return this.get(Bt.POSITIONING)}handleElementChanged(){rl(this.element);let e=this.getElement();e&&this.element.appendChild(e)}handleMapChanged(){this.mapPostrenderListenerKey&&(this.element?.remove(),se(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);let e=this.getMap();if(e){this.mapPostrenderListenerKey=X(e,zt.POSTRENDER,this.render,this),this.updatePixelPosition();let t=this.stopEvent?e.getOverlayContainerStopEvent():e.getOverlayContainer();this.insertFirst?t.insertBefore(this.element,t.childNodes[0]||null):t.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(e){this.set(Bt.ELEMENT,e)}setMap(e){this.set(Bt.MAP,e)}setOffset(e){this.set(Bt.OFFSET,e)}setPosition(e){this.set(Bt.POSITION,e)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(e){let t=this.getMap();if(!t||!t.getTargetElement()||!this.get(Bt.POSITION))return;let n=this.getRect(t.getTargetElement(),t.getSize()),r=this.getElement(),o=this.getRect(r,[BI(r),xI(r)]);e=e||{};let s=e.margin===void 0?20:e.margin;if(!Ii(n,o)){let a=o[0]-n[0],A=n[2]-o[2],l=o[1]-n[1],c=n[3]-o[3],h=[0,0];if(a<0?h[0]=a-s:A<0&&(h[0]=Math.abs(A)+s),l<0?h[1]=l-s:c<0&&(h[1]=Math.abs(c)+s),h[0]!==0||h[1]!==0){let u=t.getView().getCenterInternal(),f=t.getPixelFromCoordinateInternal(u);if(!f)return;let g=[f[0]+h[0],f[1]+h[1]],m=e.animation||{};t.getView().animateInternal({center:t.getCoordinateFromPixelInternal(g),duration:m.duration,easing:m.easing})}}}getRect(e,t){let n=e.getBoundingClientRect(),r=n.left+window.pageXOffset,o=n.top+window.pageYOffset;return[r,o,r+t[0],o+t[1]]}setPositioning(e){this.set(Bt.POSITIONING,e)}setVisible(e){this.rendered.visible!==e&&(this.element.style.display=e?\"\":\"none\",this.rendered.visible=e)}updatePixelPosition(){let e=this.getMap(),t=this.getPosition();if(!e||!e.isRendered()||!t){this.setVisible(!1);return}let n=e.getPixelFromCoordinate(t),r=e.getSize();this.updateRenderedPosition(n,r)}updateRenderedPosition(e,t){let n=this.element.style,r=this.getOffset(),o=this.getPositioning();this.setVisible(!0);let s=Math.round(e[0]+r[0])+\"px\",a=Math.round(e[1]+r[1])+\"px\",A=\"0%\",l=\"0%\";o==\"bottom-right\"||o==\"center-right\"||o==\"top-right\"?A=\"-100%\":(o==\"bottom-center\"||o==\"center-center\"||o==\"top-center\")&&(A=\"-50%\"),o==\"bottom-left\"||o==\"bottom-center\"||o==\"bottom-right\"?l=\"-100%\":(o==\"center-left\"||o==\"center-center\"||o==\"center-right\")&&(l=\"-50%\");let c=`translate(${A}, ${l}) translate(${s}, ${a})`;this.rendered.transform_!=c&&(this.rendered.transform_=c,n.transform=c)}getOptions(){return this.options}},kl=dg;var Pl=class{constructor(e,t,n,r){this.minX=e,this.maxX=t,this.minY=n,this.maxY=r}contains(e){return this.containsXY(e[1],e[2])}containsTileRange(e){return this.minX<=e.minX&&e.maxX<=this.maxX&&this.minY<=e.minY&&e.maxY<=this.maxY}containsXY(e,t){return this.minX<=e&&e<=this.maxX&&this.minY<=t&&t<=this.maxY}equals(e){return this.minX==e.minX&&this.minY==e.minY&&this.maxX==e.maxX&&this.maxY==e.maxY}extend(e){e.minXthis.maxX&&(this.maxX=e.maxX),e.minYthis.maxY&&(this.maxY=e.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(e){return this.minX<=e.maxX&&this.maxX>=e.minX&&this.minY<=e.maxY&&this.maxY>=e.minY}};function qr(i,e,t,n,r){return r!==void 0?(r.minX=i,r.maxX=e,r.minY=t,r.maxY=n,r):new Pl(i,e,t,n)}var Zo=Pl;var mg=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.featureClass=Io,this.supportedMediaTypes=null}getReadOptions(e,t){if(t){let n=t.dataProjection?fe(t.dataProjection):this.readProjection(e);t.extent&&n&&n.getUnits()===\"tile-pixels\"&&(n=fe(n),n.setWorldExtent(t.extent)),t={dataProjection:n,featureProjection:t.featureProjection}}return this.adaptOptions(t)}adaptOptions(e){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection,featureClass:this.featureClass},e)}getType(){return J()}readFeature(e,t){return J()}readFeatures(e,t){return J()}readGeometry(e,t){return J()}readProjection(e){return J()}writeFeature(e,t){return J()}writeFeatures(e,t){return J()}writeGeometry(e,t){return J()}},Nl=mg;function Vr(i,e,t){let n=t?fe(t.featureProjection):null,r=t?fe(t.dataProjection):null,o=i;if(n&&r&&!Ni(n,r)){e&&(o=i.clone());let s=e?n:r,a=e?r:n;s.getUnits()===\"tile-pixels\"?o.transform(s,a):o.applyTransform(_n(s,a))}if(e&&t&&t.decimals!==void 0){let s=Math.pow(10,t.decimals),a=function(A){for(let l=0,c=A.length;lpg({...i,geometry:o})).flat();let n=t.type===\"MultiPolygon\"?\"Polygon\":t.type;if(n===\"GeometryCollection\"||n===\"Circle\")throw new Error(\"Unsupported geometry type: \"+n);let r=t.layout.length;return Vr(new Zt(n,n===\"Polygon\"?XQ(t.flatCoordinates,t.ends,r):t.flatCoordinates,t.ends?.flat(),r,i.properties||{},i.id).enableSimplifyTransformed(),!1,e)}function Gl(i,e){if(!i)return null;if(Array.isArray(i)){let n=i.map(r=>Gl(r,e));return new wi(n)}let t=VQ[i.type];return Vr(new t(i.flatCoordinates,i.layout||\"XY\",i.ends),!1,e)}var Ig=class extends Nl{constructor(){super()}getType(){return\"json\"}readFeature(e,t){return this.readFeatureFromObject(Ol(e),this.getReadOptions(e,t))}readFeatures(e,t){return this.readFeaturesFromObject(Ol(e),this.getReadOptions(e,t))}readFeatureFromObject(e,t){return J()}readFeaturesFromObject(e,t){return J()}readGeometry(e,t){return this.readGeometryFromObject(Ol(e),this.getReadOptions(e,t))}readGeometryFromObject(e,t){return J()}readProjection(e){return this.readProjectionFromObject(Ol(e))}readProjectionFromObject(e){return J()}writeFeature(e,t){return JSON.stringify(this.writeFeatureObject(e,t))}writeFeatureObject(e,t){return J()}writeFeatures(e,t){return JSON.stringify(this.writeFeaturesObject(e,t))}writeFeaturesObject(e,t){return J()}writeGeometry(e,t){return JSON.stringify(this.writeGeometryObject(e,t))}writeGeometryObject(e,t){return J()}};function Ol(i){if(typeof i==\"string\"){let e=JSON.parse(i);return e||null}return i!==null?i:null}var l0=Ig;var Eg=class extends l0{constructor(e){e=e||{},super(),this.dataProjection=fe(e.dataProjection?e.dataProjection:\"EPSG:4326\"),e.featureProjection&&(this.defaultFeatureProjection=fe(e.featureProjection)),e.featureClass&&(this.featureClass=e.featureClass),this.geometryName_=e.geometryName,this.extractGeometryName_=e.extractGeometryName,this.supportedMediaTypes=[\"application/geo+json\",\"application/vnd.geo+json\"]}readFeatureFromObject(e,t){let n=null;e.type===\"Feature\"?n=e:n={type:\"Feature\",geometry:e,properties:null};let r=_g(n.geometry,t);if(this.featureClass===Zt)return pg({geometry:r,id:n.id,properties:n.properties},t);let o=new Io;return this.geometryName_?o.setGeometryName(this.geometryName_):this.extractGeometryName_&&n.geometry_name&&o.setGeometryName(n.geometry_name),o.setGeometry(Gl(r,t)),\"id\"in n&&o.setId(n.id),n.properties&&o.setProperties(n.properties,!0),o}readFeaturesFromObject(e,t){let n=e,r=null;if(n.type===\"FeatureCollection\"){let o=e;r=[];let s=o.features;for(let a=0,A=s.length;a2||Math.abs(i[e*4+3]-.75*255)>2}function u1(){if(Bg===void 0){let i=me(6,6,Xr);i.globalCompositeOperation=\"lighter\",i.fillStyle=\"rgba(210, 0, 0, 0.75)\",h0(i,4,5,4,0),h0(i,4,5,0,5);let e=i.getImageData(0,0,3,3).data;Bg=xg(e,0)||xg(e,4)||xg(e,8),kr(i),Xr.push(i.canvas)}return Bg}function u0(i,e,t,n){let r=Wn(t,e,i),o=Do(e,n,t),s=e.getMetersPerUnit();s!==void 0&&(o*=s);let a=i.getMetersPerUnit();a!==void 0&&(o/=a);let A=i.getExtent();if(!A||Mt(A,r)){let l=Do(i,o,r)/o;isFinite(l)&&l>0&&(o/=l)}return o}function Ul(i,e,t,n){let r=Et(t),o=u0(i,e,r,n);return(!isFinite(o)||o<=0)&&vA(t,function(s){return o=u0(i,e,s,n),isFinite(o)&&o>0}),o}function f0(i,e,t,n,r,o,s,a,A,l,c,h,u,f){let g=me(Math.round(t*i),Math.round(t*e),Xr);if(h||(g.imageSmoothingEnabled=!1),A.length===0)return g.canvas;g.scale(t,t);function m(E){return Math.round(E*t)/t}g.globalCompositeOperation=\"lighter\";let d=be();A.forEach(function(E,y,B){Co(d,E.extent)});let I,p=t/n,_=(h?1:1+Math.pow(2,-24))/p;if(!u||A.length!==1||l!==0){if(I=me(Math.round(oe(d)*p),Math.round(Se(d)*p),Xr),h||(I.imageSmoothingEnabled=!1),r&&f){let E=(r[0]-d[0])*p,y=-(r[3]-d[3])*p,B=oe(r)*p,x=Se(r)*p;I.rect(E,y,B,x),I.clip()}A.forEach(function(E,y,B){if(E.image.width>0&&E.image.height>0){if(E.clipExtent){I.save();let R=(E.clipExtent[0]-d[0])*p,F=-(E.clipExtent[3]-d[3])*p,D=oe(E.clipExtent)*p,S=Se(E.clipExtent)*p;I.rect(h?R:Math.round(R),h?F:Math.round(F),h?D:Math.round(R+D)-Math.round(R),h?S:Math.round(F+S)-Math.round(F)),I.clip()}let x=(E.extent[0]-d[0])*p,Q=-(E.extent[3]-d[3])*p,w=oe(E.extent)*p,T=Se(E.extent)*p;I.drawImage(E.image,l,l,E.image.width-2*l,E.image.height-2*l,h?x:Math.round(x),h?Q:Math.round(Q),h?w:Math.round(x+w)-Math.round(x),h?T:Math.round(Q+T)-Math.round(Q)),E.clipExtent&&I.restore()}})}let C=ht(s);return a.getTriangles().forEach(function(E,y,B){let x=E.source,Q=E.target,w=x[0][0],T=x[0][1],R=x[1][0],F=x[1][1],D=x[2][0],S=x[2][1],k=m((Q[0][0]-C[0])/o),L=m(-(Q[0][1]-C[1])/o),b=m((Q[1][0]-C[0])/o),P=m(-(Q[1][1]-C[1])/o),N=m((Q[2][0]-C[0])/o),Y=m(-(Q[2][1]-C[1])/o),M=w,j=T;w=0,T=0,R-=M,F-=j,D-=M,S-=j;let H=[[R,F,0,0,b-k],[D,S,0,0,N-k],[0,0,R,F,P-L],[0,0,D,S,Y-L]],O=Sp(H);if(!O)return;if(g.save(),g.beginPath(),u1()||!h){g.moveTo(b,P);let ie=4,ge=k-b,Ie=L-P;for(let de=0;deye(a,Wn(_,this.targetProj_,this.sourceProj_))):_n(this.targetProj_,this.sourceProj_);this.transformInv_=function(_){let C=_[0]+\"/\"+_[1];return A[C]||(A[C]=l(_)),A[C]},this.maxSourceExtent_=r,this.errorThresholdSquared_=o*o,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&oe(r)>=oe(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?oe(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?oe(this.targetProj_.getExtent()):null;let c=ht(n),h=yo(n),u=Jn(n),f=_o(n),g=this.transformInv_(c),m=this.transformInv_(h),d=this.transformInv_(u),I=this.transformInv_(f),p=f1+(s?Math.max(0,Math.ceil(Math.log2(Xn(n)/(s*s*256*256)))):0);if(this.addQuad_(c,h,u,f,g,m,d,I,p),this.wrapsXInSource_){let _=1/0;this.triangles_.forEach(function(C,E,y){_=Math.min(_,C.source[0][0],C.source[1][0],C.source[2][0])}),this.triangles_.forEach(C=>{if(Math.max(C.source[0][0],C.source[1][0],C.source[2][0])-_>this.sourceWorldWidth_/2){let E=[[C.source[0][0],C.source[0][1]],[C.source[1][0],C.source[1][1]],[C.source[2][0],C.source[2][1]]];E[0][0]-_>this.sourceWorldWidth_/2&&(E[0][0]-=this.sourceWorldWidth_),E[1][0]-_>this.sourceWorldWidth_/2&&(E[1][0]-=this.sourceWorldWidth_),E[2][0]-_>this.sourceWorldWidth_/2&&(E[2][0]-=this.sourceWorldWidth_);let y=Math.min(E[0][0],E[1][0],E[2][0]);Math.max(E[0][0],E[1][0],E[2][0])-y.5&&h<1,g=!1;if(l>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_){let d=ks([e,t,n,r]);g=oe(d)/this.targetWorldWidth_>g0||g}!f&&this.sourceProj_.isGlobal()&&h&&(g=h>g0||g)}if(!g&&this.maxSourceExtent_&&isFinite(c[0])&&isFinite(c[1])&&isFinite(c[2])&&isFinite(c[3])&&!Ne(c,this.maxSourceExtent_))return;let m=0;if(!g&&(!isFinite(o[0])||!isFinite(o[1])||!isFinite(s[0])||!isFinite(s[1])||!isFinite(a[0])||!isFinite(a[1])||!isFinite(A[0])||!isFinite(A[1]))){if(l>0)g=!0;else if(m=(!isFinite(o[0])||!isFinite(o[1])?8:0)+(!isFinite(s[0])||!isFinite(s[1])?4:0)+(!isFinite(a[0])||!isFinite(a[1])?2:0)+(!isFinite(A[0])||!isFinite(A[1])?1:0),m!=1&&m!=2&&m!=4&&m!=8)return}if(l>0){if(!g){let d=[(e[0]+n[0])/2,(e[1]+n[1])/2],I=this.transformInv_(d),p;f?p=(Wt(o[0],u)+Wt(a[0],u))/2-Wt(I[0],u):p=(o[0]+a[0])/2-I[0];let _=(o[1]+a[1])/2-I[1];g=p*p+_*_>this.errorThresholdSquared_}if(g){if(Math.abs(e[0]-n[0])<=Math.abs(e[1]-n[1])){let d=[(t[0]+n[0])/2,(t[1]+n[1])/2],I=this.transformInv_(d),p=[(r[0]+e[0])/2,(r[1]+e[1])/2],_=this.transformInv_(p);this.addQuad_(e,t,d,p,o,s,I,_,l-1),this.addQuad_(p,d,n,r,_,I,a,A,l-1)}else{let d=[(e[0]+t[0])/2,(e[1]+t[1])/2],I=this.transformInv_(d),p=[(n[0]+r[0])/2,(n[1]+r[1])/2],_=this.transformInv_(p);this.addQuad_(e,d,p,r,o,I,_,A,l-1),this.addQuad_(d,t,n,p,I,s,a,_,l-1)}return}}if(f){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}(m&11)==0&&this.addTriangle_(e,n,r,o,a,A),(m&14)==0&&this.addTriangle_(e,n,t,o,a,s),m&&((m&13)==0&&this.addTriangle_(t,r,e,s,A,o),(m&7)==0&&this.addTriangle_(t,r,n,s,A,a))}calculateSourceExtent(){let e=be();return this.triangles_.forEach(function(t,n,r){let o=t.source;Rr(e,o[0]),Rr(e,o[1]),Rr(e,o[2])}),e}getTriangles(){return this.triangles_}},Yl=wg;var Qg=class extends Xo{constructor(e,t,n,r,o,s,a,A,l,c,h,u){super(o,G.IDLE,u),this.renderEdges_=h!==void 0?h:!1,this.pixelRatio_=a,this.gutter_=A,this.canvas_=null,this.sourceTileGrid_=t,this.targetTileGrid_=r,this.wrappedTileCoord_=s||o,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0,this.clipExtent_=e.canWrapX()?e.getExtent():void 0;let f=r.getTileCoordExtent(this.wrappedTileCoord_),g=this.targetTileGrid_.getExtent(),m=this.sourceTileGrid_.getExtent(),d=g?Ue(f,g):f;if(Xn(d)===0){this.state=G.EMPTY;return}let I=e.getExtent();I&&(m?m=Ue(m,I):m=I);let p=r.getResolution(this.wrappedTileCoord_[0]),_=Ul(e,n,d,p);if(!isFinite(_)||_<=0){this.state=G.EMPTY;return}let C=c!==void 0?c:.5;if(this.triangulation_=new Yl(e,n,d,m,_*C,p),this.triangulation_.getTriangles().length===0){this.state=G.EMPTY;return}this.sourceZ_=t.getZForResolution(_);let E=this.triangulation_.calculateSourceExtent();if(m&&(e.canWrapX()?(E[1]=ce(E[1],m[1],m[3]),E[3]=ce(E[3],m[1],m[3])):E=Ue(E,m)),!Xn(E))this.state=G.EMPTY;else{let y=0,B=0;e.canWrapX()&&(y=oe(I),B=Math.floor((E[0]-I[0])/y)),Bo(E.slice(),e,!0).forEach(Q=>{let w=t.getTileRangeForExtentAndZ(Q,this.sourceZ_);for(let T=w.minX;T<=w.maxX;T++)for(let R=w.minY;R<=w.maxY;R++){let F=l(this.sourceZ_,T,R,a);if(F){let D=B*y;this.sourceTiles_.push({tile:F,offset:D})}}++B}),this.sourceTiles_.length===0&&(this.state=G.EMPTY)}}getImage(){return this.canvas_}reproject_(){let e=[];if(this.sourceTiles_.forEach(t=>{let n=t.tile;if(n&&n.getState()==G.LOADED){let r=this.sourceTileGrid_.getTileCoordExtent(n.tileCoord);r[0]+=t.offset,r[2]+=t.offset;let o=this.clipExtent_?.slice();o&&(o[0]+=t.offset,o[2]+=t.offset),e.push({extent:r,clipExtent:o,image:n.getImage()})}}),this.sourceTiles_.length=0,e.length===0)this.state=G.ERROR;else{let t=this.wrappedTileCoord_[0],n=this.targetTileGrid_.getTileSize(t),r=typeof n==\"number\"?n:n[0],o=typeof n==\"number\"?n:n[1],s=this.targetTileGrid_.getResolution(t),a=this.sourceTileGrid_.getResolution(this.sourceZ_),A=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=f0(r,o,this.pixelRatio_,a,this.sourceTileGrid_.getExtent(),s,A,this.triangulation_,e,this.gutter_,this.renderEdges_,this.interpolate),this.state=G.LOADED}this.changed()}load(){if(this.state==G.IDLE){this.state=G.LOADING,this.changed();let e=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(({tile:t})=>{let n=t.getState();if(n==G.IDLE||n==G.LOADING){e++;let r=X(t,U.CHANGE,o=>{let s=t.getState();(s==G.LOADED||s==G.ERROR||s==G.EMPTY)&&(se(r),e--,e===0&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(r)}}),e===0?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:t},n,r){t.getState()==G.IDLE&&t.load()})}}unlistenSources_(){this.sourcesListenerKeys_.forEach(se),this.sourcesListenerKeys_=null}release(){this.canvas_&&(kr(this.canvas_.getContext(\"2d\")),Xr.push(this.canvas_),this.canvas_=null),super.release()}},es=Qg;var Sg=class{constructor(e){this.highWaterMark=e!==void 0?e:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}deleteOldest(){let e=this.pop();e instanceof Li&&e.dispose()}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(e){for(;this.canExpireCache();)this.deleteOldest()}clear(){for(;this.oldest_;)this.deleteOldest()}containsKey(e){return this.entries_.hasOwnProperty(e)}forEach(e){let t=this.oldest_;for(;t;)e(t.value_,t.key_,this),t=t.newer}get(e,t){let n=this.entries_[e];return re(n!==void 0,\"Tried to get a value for a key that does not exist in the cache\"),n===this.newest_||(n===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(n.newer.older=n.older,n.older.newer=n.newer),n.newer=null,n.older=this.newest_,this.newest_.newer=n,this.newest_=n),n.value_}remove(e){let t=this.entries_[e];return re(t!==void 0,\"Tried to get a value for a key that does not exist in the cache\"),t===this.newest_?(this.newest_=t.older,this.newest_&&(this.newest_.newer=null)):t===this.oldest_?(this.oldest_=t.newer,this.oldest_&&(this.oldest_.older=null)):(t.newer.older=t.older,t.older.newer=t.newer),delete this.entries_[e],--this.count_,t.value_}getCount(){return this.count_}getKeys(){let e=new Array(this.count_),t=0,n;for(n=this.newest_;n;n=n.older)e[t++]=n.key_;return e}getValues(){let e=new Array(this.count_),t=0,n;for(n=this.newest_;n;n=n.older)e[t++]=n.value_;return e}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(e){return this.entries_[e]?.value_}pop(){let e=this.oldest_;return delete this.entries_[e.key_],e.newer&&(e.newer.older=null),this.oldest_=e.newer,this.oldest_||(this.newest_=null),--this.count_,e.value_}replace(e,t){this.get(e),this.entries_[e].value_=t}set(e,t){re(!(e in this.entries_),\"Tried to set a value for a key that is used already\");let n={key_:e,newer:null,older:this.newest_,value_:t};this.newest_?this.newest_.newer=n:this.oldest_=n,this.newest_=n,this.entries_[e]=n,++this.count_}setSize(e){this.highWaterMark=e}},Hl=Sg;function Mn(i,e,t,n){return n!==void 0?(n[0]=i,n[1]=e,n[2]=t,n):[i,e,t]}function Rg(i,e,t){return i+\"/\"+e+\"/\"+t}function Jr(i){return Rg(i[0],i[1],i[2])}function d0(i){return Tg(i[0],i[1],i[2])}function Tg(i,e,t){return(e<t||t>e.getMaxZoom())return!1;let o=e.getFullTileRange(t);return o?o.containsXY(n,r):!0}function vg(i,e,t,n){return`${i},${Rg(e,t,n)}`}function Dg(i,e,t){if(!(t in i))return i[t]=new Set([e]),!0;let n=i[t],r=n.has(e);return r||n.add(e),!r}function d1(i,e,t){let n=i[t];return n?n.delete(e):!1}function p0(i,e){let t=i.layerStatesArray[i.layerIndex];t.extent&&(e=Ue(e,Ct(t.extent,i.viewState.projection)));let n=t.layer.getRenderSource();if(!n.getWrapX()){let r=n.getTileGridForProjection(i.viewState.projection).getExtent();r&&(e=Ue(e,r))}return e}var bg=class extends yl{constructor(e,t){super(e),t=t||{},this.extentChanged=!0,this.renderComplete=!1,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedRevision_,this.renderedTiles=[],this.renderedSourceKey_,this.renderedSourceRevision_,this.tempExtent=be(),this.tempTileRange_=new Zo(0,0,0,0),this.tempTileCoord_=Mn(0,0,0);let n=t.cacheSize!==void 0?t.cacheSize:512;this.tileCache_=new Hl(n),this.maxStaleKeys=n*.5}getTileCache(){return this.tileCache_}getOrCreateTile(e,t,n,r){let o=this.tileCache_,a=this.getLayer().getSource(),A=vg(a.getKey(),e,t,n),l;if(o.containsKey(A))l=o.get(A);else{if(l=a.getTile(e,t,n,r.pixelRatio,r.viewState.projection),!l)return null;o.set(A,l)}return l}getTile(e,t,n,r){let o=this.getOrCreateTile(e,t,n,r);return o||null}getData(e){let t=this.frameState;if(!t)return null;let n=this.getLayer(),r=ye(t.pixelToCoordinateTransform,e.slice()),o=n.getExtent();if(o&&!Mt(o,r))return null;let s=t.viewState,a=n.getRenderSource(),A=a.getTileGridForProjection(s.projection),l=a.getTilePixelRatio(t.pixelRatio);for(let c=A.getZForResolution(s.resolution);c>=A.getMinZoom();--c){let h=A.getTileCoordForCoordAndZ(r,c),u=this.getTile(c,h[1],h[2],t);if(!u||u.getState()!==G.LOADED)continue;let f=A.getOrigin(c),g=_e(A.getTileSize(c)),m=A.getResolution(c),d;if(u instanceof hr||u instanceof es)d=u.getImage();else if(u instanceof Ln){if(d=Fn(u.getData()),!d)continue}else continue;let I=Math.floor(l*((r[0]-f[0])/m-h[1]*g[0])),p=Math.floor(l*((f[1]-r[1])/m-h[2]*g[1])),_=Math.round(l*a.getGutterForProjection(s.projection));return this.getImageData(d,I+_,p+_)}return null}prepareFrame(e){this.renderedProjection?e.viewState.projection!==this.renderedProjection&&(this.tileCache_.clear(),this.renderedProjection=e.viewState.projection):this.renderedProjection=e.viewState.projection;let t=this.getLayer().getSource();if(!t)return!1;let n=t.getRevision();return this.renderedRevision_?this.renderedRevision_!==n&&(this.renderedRevision_=n,this.renderedSourceKey_===t.getKey()&&this.tileCache_.clear()):this.renderedRevision_=n,!0}enqueueTiles(e,t,n,r,o){let s=e.viewState,a=this.getLayer(),A=a.getRenderSource(),l=A.getTileGridForProjection(s.projection),c=z(A);c in e.wantedTiles||(e.wantedTiles[c]={});let h=e.wantedTiles[c],u=a.getMapInternal(),f=Math.max(n-o,l.getMinZoom(),l.getZForResolution(Math.min(a.getMaxResolution(),u?u.getView().getResolutionForZoom(Math.max(a.getMinZoom(),0)):l.getResolution(0)),A.zDirection)),g=s.rotation,m=g?Gs(s.center,s.resolution,g,e.size):void 0;for(let d=n;d>=f;--d){let I=l.getTileRangeForExtentAndZ(t,d,this.tempTileRange_),p=l.getResolution(d);for(let _=I.minX;_<=I.maxX;++_)for(let C=I.minY;C<=I.maxY;++C){if(g&&!l.tileCoordIntersectsViewport([d,_,C],m))continue;let E=this.getTile(d,_,C,e);if(!E||!Dg(r,E,d))continue;let B=E.getKey();if(h[B]=!0,E.getState()===G.IDLE&&!e.tileQueue.isKeyQueued(B)){let x=Mn(d,_,C,this.tempTileCoord_);e.tileQueue.enqueue([E,c,l.getTileCoordCenter(x),p])}}}}findStaleTile_(e,t){let n=this.tileCache_,r=e[0],o=e[1],s=e[2],a=this.getStaleKeys();for(let A=0;A0&&setTimeout(()=>{this.enqueueTiles(e,Q,u-1,B,x-1)},0),!(u in B))return this.container;let w=z(this),T=e.time;for(let b of B[u]){let P=b.getState();if(P===G.EMPTY)continue;let N=b.tileCoord;if(P===G.LOADED&&b.getAlpha(w,T)===1){b.endTransition(w);continue}if(P!==G.ERROR&&(this.renderComplete=!1),this.findStaleTile_(N,B)){d1(B,b,u),e.animate=!0;continue}if(this.findAltTiles_(h,N,u+1,B))continue;let j=h.getMinZoom();for(let H=u-1;H>=j&&!this.findAltTiles_(h,N,H,B);--H);}let R=f/s*A/d,F=this.getRenderContext(e);Xe(this.tempTransform,I/2,p/2,R,R,0,-I/2,-p/2),n.extent&&this.clipUnrotated(F,e,_),c.getInterpolate()||(F.imageSmoothingEnabled=!1),this.preRender(F,e);let D=Object.keys(B).map(Number);D.sort(Ft);let S,k=[],L=[];for(let b=D.length-1;b>=0;--b){let P=D[b],N=c.getTilePixelSize(P,A,o),M=h.getResolution(P)/f,j=N[0]*M*R,H=N[1]*M*R,O=h.getTileCoordForCoordAndZ(ht(y),P),K=h.getTileCoordExtent(O),ie=ye(this.tempTransform,[d*(K[0]-y[0])/f,d*(y[3]-K[3])/f]),ge=d*c.getGutterForProjection(o);for(let Ie of B[P]){if(Ie.getState()!==G.LOADED)continue;let de=Ie.tileCoord,Pe=O[1]-de[1],tt=Math.round(ie[0]-(Pe-1)*j),xt=O[2]-de[2],Je=Math.round(ie[1]-(xt-1)*H),Te=Math.round(ie[0]-Pe*j),Dt=Math.round(ie[1]-xt*H),cn=tt-Te,wt=Je-Dt,hn=D.length===1,It=!1;S=[Te,Dt,Te+cn,Dt,Te+cn,Dt+wt,Te,Dt+wt];for(let ho=0,uo=k.length;ho{let Y=z(c),M=N.wantedTiles[Y],j=M?Object.keys(M).length:0;this.updateCacheSize(j),this.tileCache_.expireCache()};e.postRenderFunctions.push(b)}return this.container}updateCacheSize(e){this.tileCache_.highWaterMark=Math.max(this.tileCache_.highWaterMark,e*2)}drawTile(e,t,n,r,o,s,a,A){let l;if(e instanceof Ln){if(l=Fn(e.getData()),!l)throw new Error(\"Rendering array data is not yet supported\")}else l=this.getTileImage(e);if(!l)return;let c=this.getRenderContext(t),h=z(this),u=t.layerStatesArray[t.layerIndex],f=u.opacity*(A?e.getAlpha(h,t.time):1),g=f!==c.globalAlpha;g&&(c.save(),c.globalAlpha=f),c.drawImage(l,a,a,l.width-2*a,l.height-2*a,n,r,o,s),g&&c.restore(),f!==u.opacity?t.animate=!0:A&&e.endTransition(h)}getImage(){let e=this.context;return e?e.canvas:null}getTileImage(e){return e.getImage()}updateUsedTiles(e,t,n){let r=z(t);r in e||(e[r]={}),e[r][n.getKey()]=!0}},I0=bg;var va={PRELOAD:\"preload\",USE_INTERIM_TILES_ON_ERROR:\"useInterimTilesOnError\"};var Fg=class extends bn{constructor(e){e=e||{};let t=Object.assign({},e),n=e.cacheSize;delete e.cacheSize,delete t.preload,delete t.useInterimTilesOnError,super(t),this.on,this.once,this.un,this.cacheSize_=n,this.setPreload(e.preload!==void 0?e.preload:0),this.setUseInterimTilesOnError(e.useInterimTilesOnError!==void 0?e.useInterimTilesOnError:!0)}getCacheSize(){return this.cacheSize_}getPreload(){return this.get(va.PRELOAD)}setPreload(e){this.set(va.PRELOAD,e)}getUseInterimTilesOnError(){return this.get(va.USE_INTERIM_TILES_ON_ERROR)}setUseInterimTilesOnError(e){this.set(va.USE_INTERIM_TILES_ON_ERROR,e)}getData(e){return super.getData(e)}},zl=Fg;var Lg=class extends zl{constructor(e){super(e)}createRenderer(){return new I0(this,{cacheSize:this.getCacheSize()})}},E0=Lg;var Mg=class i{constructor(){this.globalCounter_=0,this.refToFeature_=new Map,this.uidToRef_=new Map,this.freeGlobalRef_=[],this.polygonBatch={entries:{},geometriesCount:0,verticesCount:0,ringsCount:0},this.pointBatch={entries:{},geometriesCount:0},this.lineStringBatch={entries:{},geometriesCount:0,verticesCount:0}}addFeatures(e,t){for(let n=0;n0?l[c-1]:null,g=f?f[f.length-1]:0,m=u[u.length-1];u=g>0?u.map(d=>d-g):u,this.addCoordinates_(\"Polygon\",t.slice(g,m),u,r,o,s,a)}break}case\"MultiLineString\":{let l=n;for(let c=0,h=l.length;c0?l[c-1]:0;this.addCoordinates_(\"LineString\",t.slice(u,l[c]),null,r,o,s,a)}break}case\"MultiPoint\":for(let l=0,c=t.length;l1){this.addCoordinates_(\"MultiPolygon\",t,u,r,o,s,a);return}}this.polygonBatch.entries[o]||(this.polygonBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[],verticesCount:0,ringsCount:0,ringsVerticesCounts:[]})),A=t.length/s;let c=n.length,h=n.map((u,f,g)=>f>0?(u-g[f-1])/s:u/s);this.polygonBatch.verticesCount+=A,this.polygonBatch.ringsCount+=c,this.polygonBatch.geometriesCount++,this.polygonBatch.entries[o].flatCoordss.push(m1(t,s)),this.polygonBatch.entries[o].ringsVerticesCounts.push(h),this.polygonBatch.entries[o].verticesCount+=A,this.polygonBatch.entries[o].ringsCount+=c;for(let u=0,f=l.length;u0?l[u-1]:0;this.addCoordinates_(\"LinearRing\",t.slice(g,l[u]),null,r,o,s,a)}break}case\"Point\":this.pointBatch.entries[o]||(this.pointBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[]})),this.pointBatch.geometriesCount++,this.pointBatch.entries[o].flatCoordss.push(t);break;case\"LineString\":case\"LinearRing\":this.lineStringBatch.entries[o]||(this.lineStringBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[],verticesCount:0})),A=t.length/s,this.lineStringBatch.verticesCount+=A,this.lineStringBatch.geometriesCount++,this.lineStringBatch.entries[o].flatCoordss.push(p1(t,s,a)),this.lineStringBatch.entries[o].verticesCount+=A;break;default:}}addRefToEntry_(e,t){let n=this.uidToRef_.get(e),r=n||this.freeGlobalRef_.pop()||++this.globalCounter_;return t.ref=r,n||(this.refToFeature_.set(r,t.feature),this.uidToRef_.set(e,r)),t}removeRef_(e,t){if(!e)throw new Error(\"This feature has no ref: \"+t);this.refToFeature_.delete(e),this.uidToRef_.delete(t),this.freeGlobalRef_.push(e)}changeFeature(e){if(!this.uidToRef_.get(z(e)))return;this.removeFeature(e);let t=e.getGeometry();t&&this.addGeometry_(t,e)}removeFeature(e){let t=this.clearFeatureEntryInPointBatch_(e);t=this.clearFeatureEntryInPolygonBatch_(e)||t,t=this.clearFeatureEntryInLineStringBatch_(e)||t,t&&this.removeRef_(t.ref,z(t.feature))}clear(){this.polygonBatch.entries={},this.polygonBatch.geometriesCount=0,this.polygonBatch.verticesCount=0,this.polygonBatch.ringsCount=0,this.lineStringBatch.entries={},this.lineStringBatch.geometriesCount=0,this.lineStringBatch.verticesCount=0,this.pointBatch.entries={},this.pointBatch.geometriesCount=0,this.globalCounter_=0,this.freeGlobalRef_=[],this.refToFeature_.clear(),this.uidToRef_.clear()}getFeatureFromRef(e){return this.refToFeature_.get(e)}isEmpty(){return this.globalCounter_===0}filter(e){let t=new i;t.globalCounter_=this.globalCounter_,t.uidToRef_=this.uidToRef_,t.refToFeature_=this.refToFeature_;let n=!0;for(let r of this.refToFeature_.values())e(r)&&(t.addFeature(r),n=!1);return n?new i:t}};function m1(i,e){return e===2?i:i.filter((t,n)=>n%e<2)}function p1(i,e,t){return e===3&&t===\"XYM\"?i:e===4?i.filter((n,r)=>r%e!==2):e===3?i.map((n,r)=>r%e!==2?n:0):new Array(i.length*1.5).fill(0).map((n,r)=>r%3===2?0:i[Math.round(r/1.5)])}var C0=Mg;var jr=34962,Wr=34963,y0=35040,ts=35044,Da=35048,B0=5121,x0=5123,w0=5125,kg=5126,_0=[\"experimental-webgl\",\"webgl\",\"webkit-3d\",\"moz-webgl\"];function Q0(i,e){e=Object.assign({preserveDrawingBuffer:!0,antialias:!CI},e);let t=_0.length;for(let n=0;n{this.uniforms_.push({value:e.uniforms[s],location:t.getUniformLocation(this.renderTargetProgram_,s)})})}getRenderTargetTexture(){return this.renderTargetTexture_}getGL(){return this.gl_}init(e){let t=this.getGL(),n=[t.drawingBufferWidth*this.scaleRatio_,t.drawingBufferHeight*this.scaleRatio_];if(t.bindFramebuffer(t.FRAMEBUFFER,this.getFrameBuffer()),t.bindRenderbuffer(t.RENDERBUFFER,this.getDepthBuffer()),t.viewport(0,0,n[0],n[1]),!this.renderTargetTextureSize_||this.renderTargetTextureSize_[0]!==n[0]||this.renderTargetTextureSize_[1]!==n[1]){this.renderTargetTextureSize_=n;let r=0,o=t.RGBA,s=0,a=t.RGBA,A=t.UNSIGNED_BYTE,l=null;t.bindTexture(t.TEXTURE_2D,this.renderTargetTexture_),t.texImage2D(t.TEXTURE_2D,r,o,n[0],n[1],s,a,A,l),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.renderTargetTexture_,0),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,n[0],n[1]),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,this.depthBuffer_)}}apply(e,t,n,r){let o=this.getGL(),s=e.size;if(o.bindFramebuffer(o.FRAMEBUFFER,t?t.getFrameBuffer():null),o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.renderTargetTexture_),!t){let A=z(o.canvas);if(!e.renderTargets[A]){let l=o.getContextAttributes();l&&l.preserveDrawingBuffer&&(o.clearColor(0,0,0,0),o.clearDepth(1),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT)),e.renderTargets[A]=!0}}o.disable(o.DEPTH_TEST),o.enable(o.BLEND),o.blendFunc(o.ONE,o.ONE_MINUS_SRC_ALPHA),o.viewport(0,0,o.drawingBufferWidth,o.drawingBufferHeight),o.bindBuffer(o.ARRAY_BUFFER,this.renderTargetVerticesBuffer_),o.useProgram(this.renderTargetProgram_),o.enableVertexAttribArray(this.renderTargetAttribLocation_),o.vertexAttribPointer(this.renderTargetAttribLocation_,2,o.FLOAT,!1,0,0),o.uniform2f(this.renderTargetUniformLocation_,s[0],s[1]),o.uniform1i(this.renderTargetTextureLocation_,0);let a=e.layerStatesArray[e.layerIndex].opacity;o.uniform1f(this.renderTargetOpacityLocation_,a),this.applyUniforms(e),n&&n(o,e),o.drawArrays(o.TRIANGLES,0,6),r&&r(o,e)}getFrameBuffer(){return this.frameBuffer_}getDepthBuffer(){return this.depthBuffer_}applyUniforms(e){let t=this.getGL(),n,r=1;this.uniforms_.forEach(function(o){if(n=typeof o.value==\"function\"?o.value(e):o.value,n instanceof HTMLCanvasElement||n instanceof ImageData)o.texture||(o.texture=t.createTexture()),t.activeTexture(t[`TEXTURE${r}`]),t.bindTexture(t.TEXTURE_2D,o.texture),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),n instanceof ImageData?t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,n.width,n.height,0,t.UNSIGNED_BYTE,new Uint8Array(n.data)):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n),t.uniform1i(o.location,r++);else if(Array.isArray(n))switch(n.length){case 2:t.uniform2f(o.location,n[0],n[1]);return;case 3:t.uniform3f(o.location,n[0],n[1],n[2]);return;case 4:t.uniform4f(o.location,n[0],n[1],n[2],n[3]);return;default:return}else typeof n==\"number\"&&t.uniform1f(o.location,n)})}},Og=Gg;var Wi={PROJECTION_MATRIX:\"u_projectionMatrix\",SCREEN_TO_WORLD_MATRIX:\"u_screenToWorldMatrix\",TIME:\"u_time\",ZOOM:\"u_zoom\",RESOLUTION:\"u_resolution\",ROTATION:\"u_rotation\",VIEWPORT_SIZE_PX:\"u_viewportSizePx\",PIXEL_RATIO:\"u_pixelRatio\",HIT_DETECTION:\"u_hitDetection\"},lt={UNSIGNED_BYTE:B0,UNSIGNED_SHORT:x0,UNSIGNED_INT:w0,FLOAT:kg},ql={};function v0(i){return\"shared/\"+i}var D0=0;function _1(){let i=\"unique/\"+D0;return D0+=1,i}function y1(i){let e=ql[i];if(!e){let t=document.createElement(\"canvas\");t.width=1,t.height=1,t.style.position=\"absolute\",t.style.left=\"0\",e={users:0,context:Q0(t)},ql[i]=e}return e.users+=1,e.context}function B1(i){let e=ql[i];if(!e||(e.users-=1,e.users>0))return;let t=e.context,n=t.getExtension(\"WEBGL_lose_context\");n&&n.loseContext();let r=t.canvas;r.width=1,r.height=1,delete ql[i]}var Ug=class extends Li{constructor(e){super(),e=e||{},this.boundHandleWebGLContextLost_=this.handleWebGLContextLost.bind(this),this.boundHandleWebGLContextRestored_=this.handleWebGLContextRestored.bind(this),this.canvasCacheKey_=e.canvasCacheKey?v0(e.canvasCacheKey):_1(),this.gl_=y1(this.canvasCacheKey_),this.bufferCache_={},this.extensionCache_={},this.currentProgram_=null,this.needsToBeRecreated_=!1;let t=this.gl_.canvas;t.addEventListener(Fa.LOST,this.boundHandleWebGLContextLost_),t.addEventListener(Fa.RESTORED,this.boundHandleWebGLContextRestored_),this.offsetRotateMatrix_=Ce(),this.offsetScaleMatrix_=Ce(),this.tmpMat4_=ji(),this.uniformLocationsByProgram_={},this.attribLocationsByProgram_={},this.uniforms_=[],e.uniforms&&this.setUniforms(e.uniforms),this.postProcessPasses_=e.postProcesses?e.postProcesses.map(n=>new Og({webGlContext:this.gl_,scaleRatio:n.scaleRatio,vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,uniforms:n.uniforms})):[new Og({webGlContext:this.gl_})],this.shaderCompileErrors_=null,this.startTime_=Date.now()}setUniforms(e){this.uniforms_=[],this.addUniforms(e)}addUniforms(e){for(let t in e)this.uniforms_.push({name:t,value:e[t]})}canvasCacheKeyMatches(e){return this.canvasCacheKey_===v0(e)}getExtension(e){if(e in this.extensionCache_)return this.extensionCache_[e];let t=this.gl_.getExtension(e);return this.extensionCache_[e]=t,t}bindBuffer(e){let t=this.gl_,n=z(e),r=this.bufferCache_[n];if(!r){let o=t.createBuffer();r={buffer:e,webGlBuffer:o},this.bufferCache_[n]=r}t.bindBuffer(e.getType(),r.webGlBuffer)}flushBufferData(e){let t=this.gl_;this.bindBuffer(e),t.bufferData(e.getType(),e.getArray(),e.getUsage())}deleteBuffer(e){let t=z(e);delete this.bufferCache_[t]}disposeInternal(){let e=this.gl_.canvas;e.removeEventListener(Fa.LOST,this.boundHandleWebGLContextLost_),e.removeEventListener(Fa.RESTORED,this.boundHandleWebGLContextRestored_),B1(this.canvasCacheKey_),delete this.gl_}prepareDraw(e,t,n){let r=this.gl_,o=this.getCanvas(),s=e.size,a=e.pixelRatio;(o.width!==s[0]*a||o.height!==s[1]*a)&&(o.width=s[0]*a,o.height=s[1]*a,o.style.width=s[0]+\"px\",o.style.height=s[1]+\"px\");for(let A=this.postProcessPasses_.length-1;A>=0;A--)this.postProcessPasses_[A].init(e);r.bindTexture(r.TEXTURE_2D,null),r.clearColor(0,0,0,0),r.depthRange(0,1),r.clearDepth(1),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT),r.enable(r.BLEND),r.blendFunc(r.ONE,t?r.ZERO:r.ONE_MINUS_SRC_ALPHA),n?(r.enable(r.DEPTH_TEST),r.depthFunc(r.LEQUAL)):r.disable(r.DEPTH_TEST)}bindFrameBuffer(e,t){let n=this.getGL();n.bindFramebuffer(n.FRAMEBUFFER,e),t&&n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,t,0)}bindInitialFrameBuffer(){let e=this.getGL(),t=this.postProcessPasses_[0].getFrameBuffer();e.bindFramebuffer(e.FRAMEBUFFER,t);let n=this.postProcessPasses_[0].getRenderTargetTexture();e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0)}bindTexture(e,t,n){let r=this.gl_;r.activeTexture(r.TEXTURE0+t),r.bindTexture(r.TEXTURE_2D,e),r.uniform1i(this.getUniformLocation(n),t)}bindAttribute(e,t,n){let r=this.getGL();this.bindBuffer(e);let o=this.getAttributeLocation(t);r.enableVertexAttribArray(o),r.vertexAttribPointer(o,n,r.FLOAT,!1,0,0)}prepareDrawToRenderTarget(e,t,n,r){let o=this.gl_,s=t.getSize();o.bindFramebuffer(o.FRAMEBUFFER,t.getFramebuffer()),o.bindRenderbuffer(o.RENDERBUFFER,t.getDepthbuffer()),o.viewport(0,0,s[0],s[1]),o.bindTexture(o.TEXTURE_2D,t.getTexture()),o.clearColor(0,0,0,0),o.depthRange(0,1),o.clearDepth(1),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT),o.enable(o.BLEND),o.blendFunc(o.ONE,n?o.ZERO:o.ONE_MINUS_SRC_ALPHA),r?(o.enable(o.DEPTH_TEST),o.depthFunc(o.LEQUAL)):o.disable(o.DEPTH_TEST)}drawElements(e,t){let n=this.gl_;this.getExtension(\"OES_element_index_uint\");let r=n.UNSIGNED_INT,o=4,s=t-e,a=e*o;n.drawElements(n.TRIANGLES,s,r,a)}finalizeDraw(e,t,n){for(let r=0,o=this.postProcessPasses_.length;r{if(n=typeof o.value==\"function\"?o.value(e):o.value,n instanceof HTMLCanvasElement||n instanceof HTMLImageElement||n instanceof ImageData||n instanceof WebGLTexture){n instanceof WebGLTexture&&!o.texture?(o.prevValue=void 0,o.texture=n):o.texture||(o.prevValue=void 0,o.texture=t.createTexture()),this.bindTexture(o.texture,r,o.name),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE);let s=!(n instanceof HTMLImageElement)||n.complete;!(n instanceof WebGLTexture)&&s&&o.prevValue!==n&&(o.prevValue=n,t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n)),r++}else if(Array.isArray(n)&&n.length===6)this.setUniformMatrixValue(o.name,$r(this.tmpMat4_,n));else if(Array.isArray(n)&&n.length<=4)switch(n.length){case 2:t.uniform2f(this.getUniformLocation(o.name),n[0],n[1]);return;case 3:t.uniform3f(this.getUniformLocation(o.name),n[0],n[1],n[2]);return;case 4:t.uniform4f(this.getUniformLocation(o.name),n[0],n[1],n[2],n[3]);return;default:return}else typeof n==\"number\"&&t.uniform1f(this.getUniformLocation(o.name),n)})}useProgram(e,t){this.gl_.useProgram(e),this.currentProgram_=e,t&&(this.applyFrameState(t),this.applyUniforms(t))}compileShader(e,t){let n=this.gl_,r=n.createShader(t);return n.shaderSource(r,e),n.compileShader(r),r}getProgram(e,t){let n=this.gl_,r=this.compileShader(e,n.FRAGMENT_SHADER),o=this.compileShader(t,n.VERTEX_SHADER),s=n.createProgram();if(n.attachShader(s,r),n.attachShader(s,o),n.linkProgram(s),!n.getShaderParameter(r,n.COMPILE_STATUS)){let a=`Fragment shader compilation failed: ${n.getShaderInfoLog(r)}`;throw new Error(a)}if(n.deleteShader(r),!n.getShaderParameter(o,n.COMPILE_STATUS)){let a=`Vertex shader compilation failed: ${n.getShaderInfoLog(o)}`;throw new Error(a)}if(n.deleteShader(o),!n.getProgramParameter(s,n.LINK_STATUS)){let a=`GL program linking failed: ${n.getProgramInfoLog(s)}`;throw new Error(a)}return s}getUniformLocation(e){let t=z(this.currentProgram_);return this.uniformLocationsByProgram_[t]===void 0&&(this.uniformLocationsByProgram_[t]={}),this.uniformLocationsByProgram_[t][e]===void 0&&(this.uniformLocationsByProgram_[t][e]=this.gl_.getUniformLocation(this.currentProgram_,e)),this.uniformLocationsByProgram_[t][e]}getAttributeLocation(e){let t=z(this.currentProgram_);return this.attribLocationsByProgram_[t]===void 0&&(this.attribLocationsByProgram_[t]={}),this.attribLocationsByProgram_[t][e]===void 0&&(this.attribLocationsByProgram_[t][e]=this.gl_.getAttribLocation(this.currentProgram_,e)),this.attribLocationsByProgram_[t][e]}makeProjectionTransform(e,t){let n=e.size,r=e.viewState.rotation,o=e.viewState.resolution,s=e.viewState.center;return Xe(t,0,0,2/(o*n[0]),2/(o*n[1]),-r,-s[0],-s[1]),t}setUniformFloatValue(e,t){this.gl_.uniform1f(this.getUniformLocation(e),t)}setUniformFloatVec2(e,t){this.gl_.uniform2fv(this.getUniformLocation(e),t)}setUniformFloatVec4(e,t){this.gl_.uniform4fv(this.getUniformLocation(e),t)}setUniformMatrixValue(e,t){this.gl_.uniformMatrix4fv(this.getUniformLocation(e),!1,t)}enableAttributeArray_(e,t,n,r,o){let s=this.getAttributeLocation(e);s<0||(this.gl_.enableVertexAttribArray(s),this.gl_.vertexAttribPointer(s,t,n,!1,r,o))}enableAttributes(e){let t=x1(e),n=0;for(let r=0;r80*x){c=1/0,h=1/0;let e=-1/0,n=-1/0;for(let r=x;re&&(e=x),o>n&&(n=o)}y=Math.max(e-c,n-h),y=0!==y?32767/y:0}return r(u,l,x,c,h,y,0),l}function e(t,e,n,r,x){let o;if(x===function(t,e,n,r){let x=0;for(let o=e,i=n-r;o0)for(let x=e;x=e;x-=r)o=w(x/r|0,t[x],t[x+1],o);return o&&g(o,o.next)&&(A(o),o=o.next),o}function n(t,e){if(!t)return t;e||(e=t);let n,r=t;do{if(n=!1,r.steiner||!g(r,r.next)&&0!==v(r.prev,r,r.next))r=r.next;else{if(A(r),r=e=r.prev,r===r.next)break;n=!0}}while(n||r!==e);return e}function r(t,e,f,s,l,a,h){if(!t)return;!h&&a&&function(t,e,n,r){let x=t;do{0===x.z&&(x.z=c(x.x,x.y,e,n,r)),x.prevZ=x.prev,x.nextZ=x.next,x=x.next}while(x!==t);x.prevZ.nextZ=null,x.prevZ=null,function(t){let e,n=1;do{let r,x=t;t=null;let o=null;for(e=0;x;){e++;let i=x,u=0;for(let t=0;t0||f>0&&i;)0!==u&&(0===f||!i||x.z<=i.z)?(r=x,x=x.nextZ,u--):(r=i,i=i.nextZ,f--),o?o.nextZ=r:t=r,r.prevZ=o,o=r;x=i}o.nextZ=null,n*=2}while(e>1)}(x)}(t,s,l,a);let y=t;for(;t.prev!==t.next;){const c=t.prev,p=t.next;if(a?o(t,s,l,a):x(t))e.push(c.i,t.i,p.i),A(t),t=p.next,y=p.next;else if((t=p)===y){h?1===h?r(t=i(n(t),e),e,f,s,l,a,2):2===h&&u(t,e,f,s,l,a):r(n(t),e,f,s,l,a,1);break}}}function x(t){const e=t.prev,n=t,r=t.next;if(v(e,n,r)>=0)return!1;const x=e.x,o=n.x,i=r.x,u=e.y,f=n.y,s=r.y,l=Math.min(x,o,i),c=Math.min(u,f,s),a=Math.max(x,o,i),h=Math.max(u,f,s);let p=r.next;for(;p!==e;){if(p.x>=l&&p.x<=a&&p.y>=c&&p.y<=h&&y(x,u,o,f,i,s,p.x,p.y)&&v(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function o(t,e,n,r){const x=t.prev,o=t,i=t.next;if(v(x,o,i)>=0)return!1;const u=x.x,f=o.x,s=i.x,l=x.y,a=o.y,h=i.y,p=Math.min(u,f,s),g=Math.min(l,a,h),b=Math.max(u,f,s),M=Math.max(l,a,h),m=c(p,g,e,n,r),Z=c(b,M,e,n,r);let d=t.prevZ,w=t.nextZ;for(;d&&d.z>=m&&w&&w.z<=Z;){if(d.x>=p&&d.x<=b&&d.y>=g&&d.y<=M&&d!==x&&d!==i&&y(u,l,f,a,s,h,d.x,d.y)&&v(d.prev,d,d.next)>=0)return!1;if(d=d.prevZ,w.x>=p&&w.x<=b&&w.y>=g&&w.y<=M&&w!==x&&w!==i&&y(u,l,f,a,s,h,w.x,w.y)&&v(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;d&&d.z>=m;){if(d.x>=p&&d.x<=b&&d.y>=g&&d.y<=M&&d!==x&&d!==i&&y(u,l,f,a,s,h,d.x,d.y)&&v(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;w&&w.z<=Z;){if(w.x>=p&&w.x<=b&&w.y>=g&&w.y<=M&&w!==x&&w!==i&&y(u,l,f,a,s,h,w.x,w.y)&&v(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function i(t,e){let r=t;do{const n=r.prev,x=r.next.next;!g(n,x)&&b(n,r,r.next,x)&&Z(n,x)&&Z(x,n)&&(e.push(n.i,r.i,x.i),A(r),A(r.next),r=t=x),r=r.next}while(r!==t);return n(r)}function u(t,e,x,o,i,u){let f=t;do{let t=f.next.next;for(;t!==f.prev;){if(f.i!==t.i&&p(f,t)){let s=d(f,t);return f=n(f,f.next),s=n(s,s.next),r(f,e,x,o,i,u,0),void r(s,e,x,o,i,u,0)}t=t.next}f=f.next}while(f!==t)}function f(t,e){let n=t.x-e.x;if(0===n&&(n=t.y-e.y,0===n)){n=(t.next.y-t.y)/(t.next.x-t.x)-(e.next.y-e.y)/(e.next.x-e.x)}return n}function s(t,e){const r=function(t,e){let n=e;const r=t.x,x=t.y;let o,i=-1/0;if(g(t,n))return n;do{if(g(t,n.next))return n.next;if(x<=n.y&&x>=n.next.y&&n.next.y!==n.y){const t=n.x+(x-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=r&&t>i&&(i=t,o=n.x=n.x&&n.x>=f&&r!==n.x&&h(xo.x||n.x===o.x&&l(o,n)))&&(o=n,c=e)}n=n.next}while(n!==u);return o}(t,e);if(!r)return e;const x=d(r,t);return n(x,x.next),n(r,r.next)}function l(t,e){return v(t.prev,t,e.prev)<0&&v(e.next,t,t.next)<0}function c(t,e,n,r,x){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*x|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*x|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function a(t){let e=t,n=t;do{(e.x=(t-i)*(o-u)&&(t-i)*(r-u)>=(n-i)*(e-u)&&(n-i)*(o-u)>=(x-i)*(r-u)}function y(t,e,n,r,x,o,i,u){return!(t===i&&e===u)&&h(t,e,n,r,x,o,i,u)}function p(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&b(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Z(t,e)&&Z(e,t)&&function(t,e){let n=t,r=!1;const x=(t.x+e.x)/2,o=(t.y+e.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&x<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==t);return r}(t,e)&&(v(t.prev,t,e.prev)||v(t,e.prev,e))||g(t,e)&&v(t.prev,t,t.next)>0&&v(e.prev,e,e.next)>0)}function v(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function g(t,e){return t.x===e.x&&t.y===e.y}function b(t,e,n,r){const x=m(v(t,e,n)),o=m(v(t,e,r)),i=m(v(n,r,t)),u=m(v(n,r,e));return x!==o&&i!==u||(!(0!==x||!M(t,n,e))||(!(0!==o||!M(t,r,e))||(!(0!==i||!M(n,t,r))||!(0!==u||!M(n,e,r)))))}function M(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function m(t){return t>0?1:t<0?-1:0}function Z(t,e){return v(t.prev,t,t.next)<0?v(t,e,t.next)>=0&&v(t,t.prev,e)>=0:v(t,e,t.prev)<0||v(t,t.next,e)<0}function d(t,e){const n=E(t.i,t.x,t.y),r=E(e.i,e.x,e.y),x=t.next,o=e.prev;return t.next=e,e.prev=t,n.next=x,x.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function w(t,e,n,r){const x=E(t,e,n);return r?(x.next=r.next,x.prev=r,r.next.prev=x,r.next=x):(x.prev=x,x.next=x),x}function A(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function E(t,e,n){return{i:t,x:e,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function I(t,e){const n=e[0],r=e[1];return e[0]=t[0]*n+t[2]*r+t[4],e[1]=t[1]*n+t[3]*r+t[5],e}function z(t,e){const n=(r=e)[0]*r[3]-r[1]*r[2];var r;!function(t,e){if(!t)throw new Error(e)}(0!==n,\"Transformation matrix cannot be inverted\");const x=e[0],o=e[1],i=e[2],u=e[3],f=e[4],s=e[5];return t[0]=u/n,t[1]=-o/n,t[2]=-i/n,t[3]=x/n,t[4]=(i*s-u*f)/n,t[5]=-(x*s-o*f)/n,t}new Array(6);const F=[],P={vertexPosition:0,indexPosition:0};function B(t,e,n,r,x){t[e+0]=n,t[e+1]=r,t[e+2]=x}function N(t,e,n,r,x,o){const i=3+x,u=t[e+0],f=t[e+1],s=F;s.length=x;for(let n=0;n0?f:2*Math.PI-f}let m=-1,Z=-1,d=l;const w=null!==x;if(null!==r){m=M(g,b,I(f,[...[t[r],t[r+1]]])),Math.cos(m)<=.985&&(d+=Math.tan((m-Math.PI)/2))}if(w){Z=M(b,g,I(f,[...[t[x],t[x+1]]])),Math.cos(Z)<=.985&&(d+=Math.tan((Math.PI-Z)/2))}function A(t,e){return 0===e?1e4*t:Math.sign(e)*(1e4*t+Math.abs(e))}return o.push(h[0],h[1],p,y[0],y[1],v,m,Z,s,A(0,l)),o.push(...u),o.push(h[0],h[1],p,y[0],y[1],v,m,Z,s,A(1,l)),o.push(...u),o.push(h[0],h[1],p,y[0],y[1],v,m,Z,s,A(2,l)),o.push(...u),o.push(h[0],h[1],p,y[0],y[1],v,m,Z,s,A(3,l)),o.push(...u),i.push(a,a+1,a+2,a+1,a+3,a+2),{length:s+Math.sqrt((b[0]-g[0])*(b[0]-g[0])+(b[1]-g[1])*(b[1]-g[1])),angle:d}}function S(e,n,r,x,o){const i=2+o;let u=n;const f=e.slice(u,u+o);u+=o;const s=e[u++];let l=0;const c=new Array(s-1);for(let t=0;t{const e=t.data;switch(e.type){case _:{const t=3,n=2,r=e.customAttributesSize,x=n+r,o=new Float32Array(e.renderInstructions),i=o.length/x,u=4*i*(r+t),f=new Uint32Array(6*i),s=new Float32Array(u);let l;for(let t=0;t0?y=i+(r-1)*x:c&&(y=l-x);let p=null;r\"u\"?\"data:application/javascript;base64,\"+Buffer.from(i,\"binary\").toString(\"base64\"):URL.createObjectURL(new Blob([i],{type:\"application/javascript\"})))}var Vl={GENERATE_POLYGON_BUFFERS:\"GENERATE_POLYGON_BUFFERS\",GENERATE_POINT_BUFFERS:\"GENERATE_POINT_BUFFERS\",GENERATE_LINE_STRING_BUFFERS:\"GENERATE_LINE_STRING_BUFFERS\"};function M0(i,e){e=e||[];let t=256,n=t-1;return e[0]=Math.floor(i/t/t/t)/n,e[1]=Math.floor(i/t/t)%t/n,e[2]=Math.floor(i/t)%t/n,e[3]=i%t/n,e}function k0(i){let e=0,t=256,n=t-1;return e+=Math.round(i[0]*t*t*t*n),e+=Math.round(i[1]*t*t*n),e+=Math.round(i[2]*t*n),e+=Math.round(i[3]*n),e}var Yg=class extends Mi{constructor(e){super(),this.tile,this.handleTileChange_=this.handleTileChange_.bind(this),this.gutter=e.gutter||0,this.helper=e.helper,this.loaded=!1,this.ready=!1}setTile(e){if(e!==this.tile)if(this.tile&&this.tile.removeEventListener(U.CHANGE,this.handleTileChange_),this.tile=e,this.loaded=e.getState()===G.LOADED,this.loaded)this.uploadTile();else{if(e instanceof hr){let t=e.getImage();t instanceof Image&&!t.crossOrigin&&(t.crossOrigin=\"anonymous\")}e.addEventListener(U.CHANGE,this.handleTileChange_)}}uploadTile(){J()}setReady(){this.ready=!0,this.dispatchEvent(U.CHANGE)}handleTileChange_(){this.tile.getState()===G.LOADED&&(this.loaded=!0,this.uploadTile())}setHelper(e){this.helper=e,this.helper&&this.loaded&&this.uploadTile()}disposeInternal(){this.setHelper(null),this.tile.removeEventListener(U.CHANGE,this.handleTileChange_)}},P0=Yg;function G0(i,e,t){let n=t?i.LINEAR:i.NEAREST;i.bindTexture(i.TEXTURE_2D,e),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,n),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,n)}function w1(i,e,t,n){G0(i,e,n),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,t)}function N0(i,e,t,n,r,o){let s=i.getGL(),a,A;t instanceof Float32Array?(a=s.FLOAT,i.getExtension(\"OES_texture_float\"),A=i.getExtension(\"OES_texture_float_linear\")!==null):(a=s.UNSIGNED_BYTE,A=!0),G0(s,e,o&&A);let l=t.byteLength/n[1],c=1;l%8===0?c=8:l%4===0?c=4:l%2===0&&(c=2);let h;switch(r){case 1:{h=s.LUMINANCE;break}case 2:{h=s.LUMINANCE_ALPHA;break}case 3:{h=s.RGB;break}case 4:{h=s.RGBA;break}default:throw new Error(`Unsupported number of bands: ${r}`)}let u=s.getParameter(s.UNPACK_ALIGNMENT);s.pixelStorei(s.UNPACK_ALIGNMENT,c),s.texImage2D(s.TEXTURE_2D,0,h,n[0],n[1],0,h,a,t),s.pixelStorei(s.UNPACK_ALIGNMENT,u)}var is=null;function Q1(){is=me(1,1,void 0,{willReadFrequently:!0})}var Hg=class extends P0{constructor(e){super(e),this.textures=[],this.renderSize_=_e(e.grid.getTileSize(e.tile.tileCoord[0])),this.bandCount=NaN;let t=new Zr(jr,ts);t.fromArray([0,1,1,1,1,0,0,0]),this.helper.flushBufferData(t),this.coords=t,this.setTile(e.tile)}setHelper(e){let t=this.helper?.getGL();if(t){this.helper.deleteBuffer(this.coords);for(let n=0;n{this.clearCache(),this.removeHelper()},e.addChangeListener(pe.MAP,this.onMapChanged_),this.dispatchPreComposeEvent=this.dispatchPreComposeEvent.bind(this),this.dispatchPostComposeEvent=this.dispatchPostComposeEvent.bind(this)}dispatchPreComposeEvent(e,t){let n=this.getLayer();if(n.hasListener(Fe.PRECOMPOSE)){let r=new lr(Fe.PRECOMPOSE,void 0,t,e);n.dispatchEvent(r)}}dispatchPostComposeEvent(e,t){let n=this.getLayer();if(n.hasListener(Fe.POSTCOMPOSE)){let r=new lr(Fe.POSTCOMPOSE,void 0,t,e);n.dispatchEvent(r)}}reset(e){this.uniforms_=e.uniforms,this.helper&&this.helper.setUniforms(this.uniforms_)}removeHelper(){this.helper&&(this.helper.dispose(),delete this.helper)}prepareFrame(e){if(this.getLayer().getRenderSource()){let t=!0,n=-1,r;for(let s=0,a=e.layerStatesArray.length;s=m;--p){let _=l.getTileRangeForExtentAndZ(t,p,this.tempTileRange_),C=l.getResolution(p);for(let E=_.minX;E<=_.maxX;++E)for(let y=_.minY;y<=_.maxY;++y){if(d&&!l.tileCoordIntersectsViewport([p,E,y],I))continue;let B=Mn(p,E,y,this.tempTileCoord_),x=Jl(A,B),Q,w;if(f.containsKey(x)&&(Q=f.get(x),w=Q.tile),(!Q||Q.tile.key!==A.getKey())&&(w=A.getTile(p,E,y,e.pixelRatio,s.projection),!w)||Y0(r,w))continue;Q?Q.setTile(w):(Q=this.createTileRepresentation({tile:w,grid:l,helper:this.helper,gutter:c}),f.set(x,Q)),H0(r,Q,p);let T=w.getKey();u[T]=!0,w.getState()===G.IDLE&&(e.tileQueue.isKeyQueued(T)||e.tileQueue.enqueue([w,h,l.getTileCoordCenter(B),C]))}}}beforeTilesRender(e,t){this.helper.prepareDraw(this.frameState,!t,!0)}beforeTilesMaskRender(e){return!1}renderTile(e,t,n,r,o,s,a,A,l,c,h){}renderTileMask(e,t,n,r){}drawTile_(e,t,n,r,o,s,a){if(!t.ready)return;let l=t.tile.tileCoord,c=Jr(l),h=c in s?s[c]:1,u=a.getResolution(n),f=_e(a.getTileSize(n),this.tempSize_),g=a.getOrigin(n),m=a.getTileCoordExtent(l),d=h<1?-1:U0(n);h<1&&(e.animate=!0);let I=e.viewState,p=I.center[0],_=I.center[1],C=f[0]+2*r,E=f[1]+2*r,y=C/E,B=(p-g[0])/(f[0]*u),x=(g[1]-_)/(f[1]*u),Q=I.resolution/u,w=l[1],T=l[2];$p(this.tileTransform_),jh(this.tileTransform_,2/(e.size[0]*Q/C),-2/(e.size[1]*Q/C)),eI(this.tileTransform_,I.rotation),jh(this.tileTransform_,1,1/y),qA(this.tileTransform_,(f[0]*(w-B)-r)/C,(f[1]*(T-x)-r)/E),this.renderTile(t,this.tileTransform_,e,o,u,f,g,m,d,r,h)}renderFrame(e){this.frameState=e,this.renderComplete=!0;let t=this.helper.getGL();this.preRender(t,e);let n=e.viewState,r=this.getLayer(),o=r.getRenderSource(),s=o.getTileGridForProjection(n.projection),a=o.getGutterForProjection(n.projection),A=Kg(e,e.extent),l=s.getZForResolution(n.resolution,o.zDirection),c=S1(),h=r.getPreload();if(e.nextExtent){let _=s.getZForResolution(n.nextResolution,o.zDirection),C=Kg(e,e.nextExtent);this.enqueueTiles(e,C,_,c,h)}this.enqueueTiles(e,A,l,c,0),h>0&&setTimeout(()=>{this.enqueueTiles(e,A,l-1,c,h-1)},0);let u={},f=!1,g=c.representationsByZ;if(l in g){let _=z(this),C=e.time;for(let E of g[l]){let y=E.tile;if(y.getState()===G.EMPTY)continue;let B=y.tileCoord;if(E.ready){let w=y.getAlpha(_,C);if(w===1){y.endTransition(_);continue}f=!0;let T=Jr(B);u[T]=w}if(this.renderComplete=!1,this.findAltTiles_(s,B,l+1,c))continue;let Q=s.getMinZoom();for(let w=l-1;w>=Q&&!this.findAltTiles_(s,B,w,c);--w);}}let m=Object.keys(g).map(Number).sort(yA);if(this.beforeTilesMaskRender(e))for(let _=0,C=m.length;_t.dispose()),e.clear()}afterHelperCreated(){super.afterHelperCreated(),this.tileRepresentationCache.forEach(e=>e.setHelper(this.helper))}disposeInternal(){super.disposeInternal(),delete this.frameState}},K0=qg;var Ae={...z0,TILE_TEXTURE_ARRAY:\"u_tileTextures\",TEXTURE_PIXEL_WIDTH:\"u_texturePixelWidth\",TEXTURE_PIXEL_HEIGHT:\"u_texturePixelHeight\",TEXTURE_RESOLUTION:\"u_textureResolution\",TEXTURE_ORIGIN_X:\"u_textureOriginX\",TEXTURE_ORIGIN_Y:\"u_textureOriginY\"},La={TEXTURE_COORD:\"a_textureCoord\"},R1=[{name:La.TEXTURE_COORD,size:2,type:lt.FLOAT}],Vg=class extends K0{constructor(e,t){super(e,t),this.program_,this.vertexShader_=t.vertexShader,this.fragmentShader_=t.fragmentShader,this.indices_=new Zr(Wr,ts),this.indices_.fromArray([0,1,3,1,2,3]),this.paletteTextures_=t.paletteTextures||[]}reset(e){if(super.reset(e),this.helper){let t=this.helper.getGL();for(let n of this.paletteTextures_)n.delete(t)}if(this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.paletteTextures_=e.paletteTextures||[],this.helper){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_);let t=this.helper.getGL();for(let n of this.paletteTextures_)n.getTexture(t)}}afterHelperCreated(){super.afterHelperCreated();let e=this.helper.getGL();for(let t of this.paletteTextures_)t.getTexture(e);this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.helper.flushBufferData(this.indices_)}removeHelper(){if(this.helper){let e=this.helper.getGL();for(let t of this.paletteTextures_)t.delete(e)}super.removeHelper()}createTileRepresentation(e){return new O0(e)}beforeTilesRender(e,t){super.beforeTilesRender(e,t),this.helper.useProgram(this.program_,e)}renderTile(e,t,n,r,o,s,a,A,l,c,h){let u=this.helper.getGL();this.helper.bindBuffer(e.coords),this.helper.bindBuffer(this.indices_),this.helper.enableAttributes(R1);let f=0;for(;f0&&(E=A,Ue(E,r,E)),this.helper.setUniformFloatVec4(Ae.RENDER_EXTENT,E),this.helper.setUniformFloatValue(Ae.RESOLUTION,g.resolution),this.helper.setUniformFloatValue(Ae.ZOOM,g.zoom),this.helper.setUniformFloatValue(Ae.TEXTURE_PIXEL_WIDTH,m),this.helper.setUniformFloatValue(Ae.TEXTURE_PIXEL_HEIGHT,d),this.helper.setUniformFloatValue(Ae.TEXTURE_RESOLUTION,o),this.helper.setUniformFloatValue(Ae.TEXTURE_ORIGIN_X,a[0]+_*s[0]*o-c*o),this.helper.setUniformFloatValue(Ae.TEXTURE_ORIGIN_Y,a[1]-C*s[1]*o+c*o),this.helper.drawElements(0,this.indices_.getSize())}getData(e){if(!this.helper.getGL())return null;let n=this.frameState;if(!n)return null;let r=this.getLayer(),o=ye(n.pixelToCoordinateTransform,e.slice()),s=n.viewState,a=r.getExtent();if(a&&!Mt(Ct(a,s.projection),o))return null;let A=r.getSources(ks([o]),s.resolution),l,c,h;for(l=A.length-1;l>=0;--l)if(c=A[l],c.getState()===\"ready\"){if(h=c.getTileGridForProjection(s.projection),c.getWrapX())break;let f=h.getExtent();if(!f||Mt(f,o))break}if(l<0)return null;let u=this.tileRepresentationCache;for(let f=h.getZForResolution(s.resolution);f>=h.getMinZoom();--f){let g=h.getTileCoordForCoordAndZ(o,f),m=Jl(c,g);if(!u.containsKey(m))continue;let d=u.get(m);if(d.tile.getState()===G.EMPTY)return null;if(!d.loaded)continue;let p=h.getOrigin(f),_=_e(h.getTileSize(f)),C=h.getResolution(f),E=(o[0]-p[0])/C-g[1]*_[0],y=(p[1]-o[1])/C-g[2]*_[1];return d.getPixelData(E,y)}return null}disposeInternal(){let e=this.helper;if(e){let t=e.getGL();for(let n of this.paletteTextures_)n.delete(t);this.paletteTextures_.length=0,t.deleteProgram(this.program_),delete this.program_,e.deleteBuffer(this.indices_)}super.disposeInternal(),delete this.indices_}},q0=Vg;var Xg=class{constructor(e,t){this.name=e,this.data=t,this.texture_=null}getTexture(e){if(!this.texture_){let t=e.createTexture();e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,this.data.length/4,1,0,e.RGBA,e.UNSIGNED_BYTE,this.data),this.texture_=t}return this.texture_}delete(e){this.texture_&&e.deleteTexture(this.texture_),this.texture_=null}},V0=Xg;function T1(i,e){return`operator_${i}_${Object.keys(e.functions).length}`}function kn(i){let e=i.toString();return e.includes(\".\")?e:e+\".0\"}function Wg(i){if(i.length<2||i.length>4)throw new Error(\"`formatArray` can only output `vec2`, `vec3` or `vec4` arrays.\");return`vec${i.length}(${i.map(kn).join(\", \")})`}function Ma(i){let e=We(i),t=e.length>3?e[3]:1;return Wg([e[0]/255,e[1]/255,e[2]/255,t])}function v1(i){let e=_e(i);return Wg(e)}var Jg={},D1=0;function Pn(i){return i in Jg||(Jg[i]=D1++),Jg[i]}function Ti(i){return kn(Pn(i))}function ns(i){return\"u_var_\"+i}function jl(){return{variables:{},properties:{},functions:{},bandCount:0,featureId:!1,geometryType:!1}}var jg=\"getBandValue\",Zg=\"u_paletteTextures\",$g=\"featureId\",ed=\"geometryType\",Wl=-9999999;function X0(i,e,t,n){let r=Ze(i,e,t);return td(r,e,n)}function Be(i){return(e,t,n)=>{let r=t.args.length,o=new Array(r);for(let s=0;s{let n=e.args[0].value;return n in i.properties||(i.properties[n]={name:n,type:e.type}),\"a_prop_\"+n},[v.Id]:i=>(i.featureId=!0,\"a_\"+$g),[v.GeometryType]:i=>(i.geometryType=!0,\"a_\"+ed),[v.LineMetric]:()=>\"currentLineMetric\",[v.Var]:(i,e)=>{let n=e.args[0].value;return n in i.variables||(i.variables[n]={name:n,type:e.type}),ns(n)},[v.Has]:(i,e)=>{let n=e.args[0].value;return n in i.properties||(i.properties[n]={name:n,type:e.type}),`(a_prop_${n} != ${kn(Wl)})`},[v.Resolution]:()=>\"u_resolution\",[v.Zoom]:()=>\"u_zoom\",[v.Time]:()=>\"u_time\",[v.Any]:Be(i=>`(${i.join(\" || \")})`),[v.All]:Be(i=>`(${i.join(\" && \")})`),[v.Not]:Be(([i])=>`(!${i})`),[v.Equal]:Be(([i,e])=>`(${i} == ${e})`),[v.NotEqual]:Be(([i,e])=>`(${i} != ${e})`),[v.GreaterThan]:Be(([i,e])=>`(${i} > ${e})`),[v.GreaterThanOrEqualTo]:Be(([i,e])=>`(${i} >= ${e})`),[v.LessThan]:Be(([i,e])=>`(${i} < ${e})`),[v.LessThanOrEqualTo]:Be(([i,e])=>`(${i} <= ${e})`),[v.Multiply]:Be(i=>`(${i.join(\" * \")})`),[v.Divide]:Be(([i,e])=>`(${i} / ${e})`),[v.Add]:Be(i=>`(${i.join(\" + \")})`),[v.Subtract]:Be(([i,e])=>`(${i} - ${e})`),[v.Clamp]:Be(([i,e,t])=>`clamp(${i}, ${e}, ${t})`),[v.Mod]:Be(([i,e])=>`mod(${i}, ${e})`),[v.Pow]:Be(([i,e])=>`pow(${i}, ${e})`),[v.Abs]:Be(([i])=>`abs(${i})`),[v.Floor]:Be(([i])=>`floor(${i})`),[v.Ceil]:Be(([i])=>`ceil(${i})`),[v.Round]:Be(([i])=>`floor(${i} + 0.5)`),[v.Sin]:Be(([i])=>`sin(${i})`),[v.Cos]:Be(([i])=>`cos(${i})`),[v.Atan]:Be(([i,e])=>e!==void 0?`atan(${i}, ${e})`:`atan(${i})`),[v.Sqrt]:Be(([i])=>`sqrt(${i})`),[v.Match]:Be(i=>{let e=i[0],t=i[i.length-1],n=null;for(let r=i.length-3;r>=1;r-=2){let o=i[r],s=i[r+1];n=`(${e} == ${o} ? ${s} : ${n||t})`}return n}),[v.Between]:Be(([i,e,t])=>`(${i} >= ${e} && ${i} <= ${t})`),[v.Interpolate]:Be(([i,e,...t])=>{let n=\"\";for(let r=0;r{let e=i[i.length-1],t=null;for(let n=i.length-3;n>=0;n-=2){let r=i[n],o=i[n+1];t=`(${r} ? ${o} : ${t||e})`}return t}),[v.In]:Be(([i,...e],t)=>{let n=T1(\"in\",t),r=[];for(let o=0;o`vec${i.length}(${i.join(\", \")})`),[v.Color]:Be(i=>{if(i.length===1)return`vec4(vec3(${i[0]} / 255.0), 1.0)`;if(i.length===2)return`vec4(vec3(${i[0]} / 255.0), ${i[1]})`;let e=i.slice(0,3).map(n=>`${n} / 255.0`);if(i.length===3)return`vec4(${e.join(\", \")}, 1.0)`;let t=i[3];return`vec4(${e.join(\", \")}, ${t})`}),[v.Band]:Be(([i,e,t],n)=>{if(!(jg in n.functions)){let r=\"\",o=n.bandCount||1;for(let s=0;s{let[t,...n]=e.args,r=n.length,o=new Uint8Array(r*4);for(let l=0;l0)return kn(i.value);if((i.type&ze)>0)return i.value.toString();if((i.type&Ke)>0)return Ti(i.value.toString());if((i.type&we)>0)return Ma(i.value);if((i.type&et)>0)return Wg(i.value);if((i.type&Ot)>0)return v1(i.value);throw new Error(`Unexpected expression ${i.value} (expected type ${Ur(e)})`)}function id(i,e,t,n){let r=0;for(let o in e){let s=e[o],a=s.callback.call(t,t.feature),A=a?.[0]??a;A===Wl&&console.warn(\\'The \"has\" operator might return false positives.\\'),A===void 0?A=Wl:A===null&&(A=0),i[n+r++]=A,!(!s.size||s.size===1)&&(i[n+r++]=a[1],!(s.size<3)&&(i[n+r++]=a[2],!(s.size<4)&&(i[n+r++]=a[3])))}return r}function ka(i){return Object.keys(i).reduce((e,t)=>e+(i[t].size||1),0)}function J0(i,e,t,n){let r=(2+ka(t))*i.geometriesCount;(!e||e.length!==r)&&(e=new Float32Array(r));let o=[],s=0;for(let a in i.entries){let A=i.entries[a];for(let l=0,c=A.flatCoordss.length;l`uniform ${e};`).join(`\\n`)}\\nattribute vec2 a_position;\\nattribute float a_index;\\nattribute vec4 a_hitColor;\\n\\nvarying vec2 v_texCoord;\\nvarying vec2 v_quadCoord;\\nvarying vec4 v_hitColor;\\nvarying vec2 v_centerPx;\\nvarying float v_angle;\\nvarying vec2 v_quadSizePx;\\n\\n${this.attributes_.map(e=>`attribute ${e.type} ${e.name};\\nvarying ${e.varyingType} ${e.varyingName};`).join(`\\n`)}\\n${this.vertexShaderFunctions_.join(`\\n`)}\\nvec2 pxToScreen(vec2 coordPx) {\\n vec2 scaled = coordPx / u_viewportSizePx / 0.5;\\n return scaled;\\n}\\n\\nvec2 screenToPx(vec2 coordScreen) {\\n return (coordScreen * 0.5 + 0.5) * u_viewportSizePx;\\n}\\n\\nvoid main(void) {\\n v_quadSizePx = ${this.symbolSizeExpression_};\\n vec2 halfSizePx = v_quadSizePx * 0.5;\\n vec2 centerOffsetPx = ${this.symbolOffsetExpression_};\\n vec2 offsetPx = centerOffsetPx;\\n if (a_index == 0.0) {\\n offsetPx -= halfSizePx;\\n } else if (a_index == 1.0) {\\n offsetPx += halfSizePx * vec2(1., -1.);\\n } else if (a_index == 2.0) {\\n offsetPx += halfSizePx;\\n } else {\\n offsetPx += halfSizePx * vec2(-1., 1.);\\n }\\n float angle = ${this.symbolRotationExpression_};\\n ${this.symbolRotateWithView_?\"angle += u_rotation;\":\"\"}\\n float c = cos(-angle);\\n float s = sin(-angle);\\n offsetPx = vec2(c * offsetPx.x - s * offsetPx.y, s * offsetPx.x + c * offsetPx.y);\\n vec4 center = u_projectionMatrix * vec4(a_position, 0.0, 1.0);\\n gl_Position = center + vec4(pxToScreen(offsetPx), u_depth, 0.);\\n vec4 texCoord = ${this.texCoordExpression_};\\n float u = a_index == 0.0 || a_index == 3.0 ? texCoord.s : texCoord.p;\\n float v = a_index == 2.0 || a_index == 3.0 ? texCoord.t : texCoord.q;\\n v_texCoord = vec2(u, v);\\n v_hitColor = a_hitColor;\\n v_angle = angle;\\n c = cos(-v_angle);\\n s = sin(-v_angle);\\n centerOffsetPx = vec2(c * centerOffsetPx.x - s * centerOffsetPx.y, s * centerOffsetPx.x + c * centerOffsetPx.y); \\n v_centerPx = screenToPx(center.xy) + centerOffsetPx;\\n${this.attributes_.map(e=>` ${e.varyingName} = ${e.varyingExpression};`).join(`\\n`)}\\n}`:null}getSymbolFragmentShader(){return this.hasSymbol_?`${rs}\\n${this.uniforms_.map(e=>`uniform ${e};`).join(`\\n`)}\\nvarying vec2 v_texCoord;\\nvarying vec4 v_hitColor;\\nvarying vec2 v_centerPx;\\nvarying float v_angle;\\nvarying vec2 v_quadSizePx;\\n${this.attributes_.map(e=>`varying ${e.varyingType} ${e.varyingName};`).join(`\\n`)}\\n${this.fragmentShaderFunctions_.join(`\\n`)}\\n\\nvoid main(void) {\\n${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // assign to original attribute name`).join(`\\n`)}\\n if (${this.discardExpression_}) { discard; }\\n vec2 coordsPx = gl_FragCoord.xy / u_pixelRatio - v_centerPx; // relative to center\\n float c = cos(v_angle);\\n float s = sin(v_angle);\\n coordsPx = vec2(c * coordsPx.x - s * coordsPx.y, s * coordsPx.x + c * coordsPx.y);\\n gl_FragColor = ${this.symbolColorExpression_};\\n gl_FragColor.rgb *= gl_FragColor.a;\\n if (u_hitDetection > 0) {\\n if (gl_FragColor.a < 0.05) { discard; };\\n gl_FragColor = v_hitColor;\\n }\\n}`:null}getStrokeVertexShader(){return this.hasStroke_?`${rs}\\n${this.uniforms_.map(e=>`uniform ${e};`).join(`\\n`)}\\nattribute vec2 a_segmentStart;\\nattribute vec2 a_segmentEnd;\\nattribute float a_measureStart;\\nattribute float a_measureEnd;\\nattribute float a_parameters;\\nattribute float a_distance;\\nattribute vec2 a_joinAngles;\\nattribute vec4 a_hitColor;\\n\\nvarying vec2 v_segmentStart;\\nvarying vec2 v_segmentEnd;\\nvarying float v_angleStart;\\nvarying float v_angleEnd;\\nvarying float v_width;\\nvarying vec4 v_hitColor;\\nvarying float v_distanceOffsetPx;\\nvarying float v_measureStart;\\nvarying float v_measureEnd;\\n\\n${this.attributes_.map(e=>`attribute ${e.type} ${e.name};\\nvarying ${e.varyingType} ${e.varyingName};`).join(`\\n`)}\\n${this.vertexShaderFunctions_.join(`\\n`)}\\nvec2 worldToPx(vec2 worldPos) {\\n vec4 screenPos = u_projectionMatrix * vec4(worldPos, 0.0, 1.0);\\n return (0.5 * screenPos.xy + 0.5) * u_viewportSizePx;\\n}\\n\\nvec4 pxToScreen(vec2 pxPos) {\\n vec2 screenPos = 2.0 * pxPos / u_viewportSizePx - 1.0;\\n return vec4(screenPos, u_depth, 1.0);\\n}\\n\\nbool isCap(float joinAngle) {\\n return joinAngle < -0.1;\\n}\\n\\nvec2 getJoinOffsetDirection(vec2 normalPx, float joinAngle) {\\n float halfAngle = joinAngle / 2.0;\\n float c = cos(halfAngle);\\n float s = sin(halfAngle);\\n vec2 angleBisectorNormal = vec2(s * normalPx.x + c * normalPx.y, -c * normalPx.x + s * normalPx.y);\\n float length = 1.0 / s;\\n return angleBisectorNormal * length;\\n}\\n\\nvec2 getOffsetPoint(vec2 point, vec2 normal, float joinAngle, float offsetPx) {\\n // if on a cap or the join angle is too high, offset the line along the segment normal\\n if (cos(joinAngle) > 0.998 || isCap(joinAngle)) {\\n return point - normal * offsetPx;\\n }\\n // offset is applied along the inverted normal (positive offset goes \"right\" relative to line direction)\\n return point - getJoinOffsetDirection(normal, joinAngle) * offsetPx;\\n}\\n\\nvoid main(void) {\\n v_angleStart = a_joinAngles.x;\\n v_angleEnd = a_joinAngles.y;\\n float vertexNumber = floor(abs(a_parameters) / 10000. + 0.5);\\n currentLineMetric = vertexNumber < 1.5 ? a_measureStart : a_measureEnd;\\n // we\\'re reading the fractional part while keeping the sign (so -4.12 gives -0.12, 3.45 gives 0.45)\\n float angleTangentSum = fract(abs(a_parameters) / 10000.) * 10000. * sign(a_parameters);\\n\\n float lineWidth = ${this.strokeWidthExpression_};\\n float lineOffsetPx = ${this.strokeOffsetExpression_};\\n\\n // compute segment start/end in px with offset\\n vec2 segmentStartPx = worldToPx(a_segmentStart);\\n vec2 segmentEndPx = worldToPx(a_segmentEnd);\\n vec2 tangentPx = normalize(segmentEndPx - segmentStartPx);\\n vec2 normalPx = vec2(-tangentPx.y, tangentPx.x);\\n segmentStartPx = getOffsetPoint(segmentStartPx, normalPx, v_angleStart, lineOffsetPx),\\n segmentEndPx = getOffsetPoint(segmentEndPx, normalPx, v_angleEnd, lineOffsetPx);\\n \\n // compute current vertex position\\n float normalDir = vertexNumber < 0.5 || (vertexNumber > 1.5 && vertexNumber < 2.5) ? 1.0 : -1.0;\\n float tangentDir = vertexNumber < 1.5 ? 1.0 : -1.0;\\n float angle = vertexNumber < 1.5 ? v_angleStart : v_angleEnd;\\n vec2 joinDirection;\\n vec2 positionPx = vertexNumber < 1.5 ? segmentStartPx : segmentEndPx;\\n // if angle is too high, do not make a proper join\\n if (cos(angle) > ${nd} || isCap(angle)) {\\n joinDirection = normalPx * normalDir - tangentPx * tangentDir;\\n } else {\\n joinDirection = getJoinOffsetDirection(normalPx * normalDir, angle);\\n }\\n positionPx = positionPx + joinDirection * (lineWidth * 0.5 + 1.); // adding 1 pixel for antialiasing\\n gl_Position = pxToScreen(positionPx);\\n\\n v_segmentStart = segmentStartPx;\\n v_segmentEnd = segmentEndPx;\\n v_width = lineWidth;\\n v_hitColor = a_hitColor;\\n v_distanceOffsetPx = a_distance / u_resolution - (lineOffsetPx * angleTangentSum);\\n v_measureStart = a_measureStart;\\n v_measureEnd = a_measureEnd;\\n${this.attributes_.map(e=>` ${e.varyingName} = ${e.varyingExpression};`).join(`\\n`)}\\n}`:null}getStrokeFragmentShader(){return this.hasStroke_?`${rs}\\n${this.uniforms_.map(e=>`uniform ${e};`).join(`\\n`)}\\nvarying vec2 v_segmentStart;\\nvarying vec2 v_segmentEnd;\\nvarying float v_angleStart;\\nvarying float v_angleEnd;\\nvarying float v_width;\\nvarying vec4 v_hitColor;\\nvarying float v_distanceOffsetPx;\\nvarying float v_measureStart;\\nvarying float v_measureEnd;\\n${this.attributes_.map(e=>`varying ${e.varyingType} ${e.varyingName};`).join(`\\n`)}\\n${this.fragmentShaderFunctions_.join(`\\n`)}\\n\\nvec2 pxToWorld(vec2 pxPos) {\\n vec2 screenPos = 2.0 * pxPos / u_viewportSizePx - 1.0;\\n return (u_screenToWorldMatrix * vec4(screenPos, 0.0, 1.0)).xy;\\n}\\n\\nbool isCap(float joinAngle) {\\n return joinAngle < -0.1;\\n}\\n\\nfloat segmentDistanceField(vec2 point, vec2 start, vec2 end, float width) {\\n vec2 tangent = normalize(end - start);\\n vec2 normal = vec2(-tangent.y, tangent.x);\\n vec2 startToPoint = point - start;\\n return abs(dot(startToPoint, normal)) - width * 0.5;\\n}\\n\\nfloat buttCapDistanceField(vec2 point, vec2 start, vec2 end) {\\n vec2 startToPoint = point - start;\\n vec2 tangent = normalize(end - start);\\n return dot(startToPoint, -tangent);\\n}\\n\\nfloat squareCapDistanceField(vec2 point, vec2 start, vec2 end, float width) {\\n return buttCapDistanceField(point, start, end) - width * 0.5;\\n}\\n\\nfloat roundCapDistanceField(vec2 point, vec2 start, vec2 end, float width) {\\n float onSegment = max(0., 1000. * dot(point - start, end - start)); // this is very high when inside the segment\\n return length(point - start) - width * 0.5 - onSegment;\\n}\\n\\nfloat roundJoinDistanceField(vec2 point, vec2 start, vec2 end, float width) {\\n return roundCapDistanceField(point, start, end, width);\\n}\\n\\nfloat bevelJoinField(vec2 point, vec2 start, vec2 end, float width, float joinAngle) {\\n vec2 startToPoint = point - start;\\n vec2 tangent = normalize(end - start);\\n float c = cos(joinAngle * 0.5);\\n float s = sin(joinAngle * 0.5);\\n float direction = -sign(sin(joinAngle));\\n vec2 bisector = vec2(c * tangent.x - s * tangent.y, s * tangent.x + c * tangent.y);\\n float radius = width * 0.5 * s;\\n return dot(startToPoint, bisector * direction) - radius;\\n}\\n\\nfloat miterJoinDistanceField(vec2 point, vec2 start, vec2 end, float width, float joinAngle) {\\n if (cos(joinAngle) > ${nd}) { // avoid risking a division by zero\\n return bevelJoinField(point, start, end, width, joinAngle);\\n }\\n float miterLength = 1. / sin(joinAngle * 0.5);\\n float miterLimit = ${this.strokeMiterLimitExpression_};\\n if (miterLength > miterLimit) {\\n return bevelJoinField(point, start, end, width, joinAngle);\\n }\\n return -1000.;\\n}\\n\\nfloat capDistanceField(vec2 point, vec2 start, vec2 end, float width, float capType) {\\n if (capType == ${Ti(\"butt\")}) {\\n return buttCapDistanceField(point, start, end);\\n } else if (capType == ${Ti(\"square\")}) {\\n return squareCapDistanceField(point, start, end, width);\\n }\\n return roundCapDistanceField(point, start, end, width);\\n}\\n\\nfloat joinDistanceField(vec2 point, vec2 start, vec2 end, float width, float joinAngle, float joinType) {\\n if (joinType == ${Ti(\"bevel\")}) {\\n return bevelJoinField(point, start, end, width, joinAngle);\\n } else if (joinType == ${Ti(\"miter\")}) {\\n return miterJoinDistanceField(point, start, end, width, joinAngle);\\n }\\n return roundJoinDistanceField(point, start, end, width);\\n}\\n\\nfloat computeSegmentPointDistance(vec2 point, vec2 start, vec2 end, float width, float joinAngle, float capType, float joinType) {\\n if (isCap(joinAngle)) {\\n return capDistanceField(point, start, end, width, capType);\\n }\\n return joinDistanceField(point, start, end, width, joinAngle, joinType);\\n}\\n\\nfloat distanceFromSegment(vec2 point, vec2 start, vec2 end) {\\n vec2 tangent = end - start;\\n vec2 startToPoint = point - start;\\n // inspire by capsule fn in https://iquilezles.org/articles/distfunctions/\\n float h = clamp(dot(startToPoint, tangent) / dot(tangent, tangent), 0.0, 1.0);\\n return length(startToPoint - tangent * h);\\n}\\n\\nvoid main(void) {\\n${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // assign to original attribute name`).join(`\\n`)}\\n \\n vec2 currentPoint = gl_FragCoord.xy / u_pixelRatio;\\n #ifdef GL_FRAGMENT_PRECISION_HIGH\\n vec2 worldPos = pxToWorld(currentPoint);\\n if (\\n abs(u_renderExtent[0] - u_renderExtent[2]) > 0.0 && (\\n worldPos[0] < u_renderExtent[0] ||\\n worldPos[1] < u_renderExtent[1] ||\\n worldPos[0] > u_renderExtent[2] ||\\n worldPos[1] > u_renderExtent[3]\\n )\\n ) {\\n discard;\\n }\\n #endif\\n\\n float segmentLength = length(v_segmentEnd - v_segmentStart);\\n vec2 segmentTangent = (v_segmentEnd - v_segmentStart) / segmentLength;\\n vec2 segmentNormal = vec2(-segmentTangent.y, segmentTangent.x);\\n vec2 startToPoint = currentPoint - v_segmentStart;\\n float lengthToPoint = max(0., min(dot(segmentTangent, startToPoint), segmentLength));\\n float currentLengthPx = lengthToPoint + v_distanceOffsetPx;\\n float currentRadiusPx = distanceFromSegment(currentPoint, v_segmentStart, v_segmentEnd);\\n float currentRadiusRatio = dot(segmentNormal, startToPoint) * 2. / v_width;\\n currentLineMetric = mix(v_measureStart, v_measureEnd, lengthToPoint / segmentLength);\\n\\n if (${this.discardExpression_}) { discard; }\\n\\n float capType = ${this.strokeCapExpression_};\\n float joinType = ${this.strokeJoinExpression_};\\n float segmentStartDistance = computeSegmentPointDistance(currentPoint, v_segmentStart, v_segmentEnd, v_width, v_angleStart, capType, joinType);\\n float segmentEndDistance = computeSegmentPointDistance(currentPoint, v_segmentEnd, v_segmentStart, v_width, v_angleEnd, capType, joinType);\\n float distanceField = max(\\n segmentDistanceField(currentPoint, v_segmentStart, v_segmentEnd, v_width),\\n max(segmentStartDistance, segmentEndDistance)\\n );\\n distanceField = max(distanceField, ${this.strokeDistanceFieldExpression_});\\n\\n vec4 color = ${this.strokeColorExpression_};\\n color.a *= smoothstep(0.5, -0.5, distanceField);\\n gl_FragColor = color;\\n gl_FragColor.a *= u_globalAlpha;\\n gl_FragColor.rgb *= gl_FragColor.a;\\n if (u_hitDetection > 0) {\\n if (gl_FragColor.a < 0.1) { discard; };\\n gl_FragColor = v_hitColor;\\n }\\n}`:null}getFillVertexShader(){return this.hasFill_?`${rs}\\n${this.uniforms_.map(e=>`uniform ${e};`).join(`\\n`)}\\nattribute vec2 a_position;\\nattribute vec4 a_hitColor;\\n\\nvarying vec4 v_hitColor;\\n\\n${this.attributes_.map(e=>`attribute ${e.type} ${e.name};\\nvarying ${e.varyingType} ${e.varyingName};`).join(`\\n`)}\\n${this.vertexShaderFunctions_.join(`\\n`)}\\nvoid main(void) {\\n gl_Position = u_projectionMatrix * vec4(a_position, u_depth, 1.0);\\n v_hitColor = a_hitColor;\\n${this.attributes_.map(e=>` ${e.varyingName} = ${e.varyingExpression};`).join(`\\n`)}\\n}`:null}getFillFragmentShader(){return this.hasFill_?`${rs}\\n${this.uniforms_.map(e=>`uniform ${e};`).join(`\\n`)}\\nvarying vec4 v_hitColor;\\n${this.attributes_.map(e=>`varying ${e.varyingType} ${e.varyingName};`).join(`\\n`)}\\n${this.fragmentShaderFunctions_.join(`\\n`)}\\nvec2 pxToWorld(vec2 pxPos) {\\n vec2 screenPos = 2.0 * pxPos / u_viewportSizePx - 1.0;\\n return (u_screenToWorldMatrix * vec4(screenPos, 0.0, 1.0)).xy;\\n}\\n\\nvec2 worldToPx(vec2 worldPos) {\\n vec4 screenPos = u_projectionMatrix * vec4(worldPos, 0.0, 1.0);\\n return (0.5 * screenPos.xy + 0.5) * u_viewportSizePx;\\n}\\n\\nvoid main(void) {\\n${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // assign to original attribute name`).join(`\\n`)}\\n vec2 pxPos = gl_FragCoord.xy / u_pixelRatio;\\n vec2 pxOrigin = worldToPx(u_patternOrigin);\\n #ifdef GL_FRAGMENT_PRECISION_HIGH\\n vec2 worldPos = pxToWorld(pxPos);\\n if (\\n abs(u_renderExtent[0] - u_renderExtent[2]) > 0.0 && (\\n worldPos[0] < u_renderExtent[0] ||\\n worldPos[1] < u_renderExtent[1] ||\\n worldPos[0] > u_renderExtent[2] ||\\n worldPos[1] > u_renderExtent[3]\\n )\\n ) {\\n discard;\\n }\\n #endif\\n if (${this.discardExpression_}) { discard; }\\n gl_FragColor = ${this.fillColorExpression_};\\n gl_FragColor.a *= u_globalAlpha;\\n gl_FragColor.rgb *= gl_FragColor.a;\\n if (u_hitDetection > 0) {\\n if (gl_FragColor.a < 0.1) { discard; };\\n gl_FragColor = v_hitColor;\\n }\\n}`:null}};function ne(i,e,t){let n=Hr();return X0(e,t,n,i)}function F1(i){let e=We(i),t=e[0]*256,n=e[1],r=e[2]*256,o=Math.round(e[3]*255);return[t+n,r+o]}var L1=`vec4 unpackColor(vec2 packedColor) {\\n return vec4(\\n fract(floor(packedColor[0] / 256.0) / 256.0),\\n fract(packedColor[0] / 256.0),\\n fract(floor(packedColor[1] / 256.0) / 256.0),\\n fract(packedColor[1] / 256.0)\\n );\\n}`;function ec(i){return i===we||i===Ot?2:i===et?4:1}function $l(i){let e=ec(i);return e>1?`vec${e}`:\"float\"}function $0(i,e){for(let t in e.variables){let n=e.variables[t],r=ns(n.name),o=$l(n.type);n.type===we&&(o=\"vec4\"),i.addUniform(`${o} ${r}`)}for(let t in e.properties){let n=e.properties[t],r=$l(n.type),o=`a_prop_${n.name}`;n.type===we?(i.addAttribute(o,r,`unpackColor(${o})`,\"vec4\"),i.addVertexShaderFunction(L1)):i.addAttribute(o,r)}for(let t in e.functions)i.addVertexShaderFunction(e.functions[t]),i.addFragmentShaderFunction(e.functions[t])}function eC(i,e){let t={};for(let n in i.variables){let r=i.variables[n],o=ns(r.name);t[o]=()=>{let s=e[r.name];return typeof s==\"number\"?s:typeof s==\"boolean\"?s?1:0:r.type===we?We(s||\"#eee\"):typeof s==\"string\"?Pn(s):s}}return t}function tC(i){let e={};for(let t in i.properties){let n=i.properties[t],r=o=>{let s=o.get(n.name);return n.type===we?F1([...We(s||\"#eee\")]):typeof s==\"string\"?Pn(s):typeof s==\"boolean\"?s?1:0:s};e[`prop_${n.name}`]={size:ec(n.type),callback:r}}return e}function tc(i){return(JSON.stringify(i).split(\"\").reduce((t,n)=>(t<<5)-t+n.charCodeAt(0),0)>>>0).toString()}function rd(i,e,t,n){if(`${n}radius`in i&&n!==\"icon-\"){let r=ne(t,i[`${n}radius`],q);if(`${n}radius2`in i){let o=ne(t,i[`${n}radius2`],q);r=`max(${r}, ${o})`}`${n}stroke-width`in i&&(r=`(${r} + ${ne(t,i[`${n}stroke-width`],q)} * 0.5)`),e.setSymbolSizeExpression(`vec2(${r} * 2. + 0.5)`)}if(`${n}scale`in i){let r=ne(t,i[`${n}scale`],Ot);e.setSymbolSizeExpression(`${e.getSymbolSizeExpression()} * ${r}`)}`${n}displacement`in i&&e.setSymbolOffsetExpression(ne(t,i[`${n}displacement`],et)),`${n}rotation`in i&&e.setSymbolRotationExpression(ne(t,i[`${n}rotation`],q)),`${n}rotate-with-view`in i&&e.setSymbolRotateWithView(!!i[`${n}rotate-with-view`])}function iC(i,e,t,n,r){let o=\"vec4(0.)\";if(e!==null&&(o=e),t!==null&&n!==null){let A=`smoothstep(-${n} + 0.63, -${n} - 0.58, ${i})`;o=`mix(${t}, ${o}, ${A})`}let s=`(1.0 - smoothstep(-0.63, 0.58, ${i}))`,a=`${o} * vec4(1.0, 1.0, 1.0, ${s})`;return r!==null&&(a=`${a} * vec4(1.0, 1.0, 1.0, ${r})`),a}function od(i,e,t,n,r){let o=new Image;o.crossOrigin=i[`${n}cross-origin`]===void 0?\"anonymous\":i[`${n}cross-origin`],re(typeof i[`${n}src`]==\"string\",`WebGL layers do not support expressions for the ${n}src style property`),o.src=i[`${n}src`],t[`u_texture${r}_size`]=()=>o.complete?[o.width,o.height]:[0,0],e.addUniform(`vec2 u_texture${r}_size`);let s=`u_texture${r}_size`;return t[`u_texture${r}`]=o,e.addUniform(`sampler2D u_texture${r}`),s}function sd(i,e,t,n,r){let o=ne(t,i[`${e}offset`],et);if(`${e}offset-origin`in i)switch(i[`${e}offset-origin`]){case\"top-right\":o=`vec2(${n}.x, 0.) + ${r} * vec2(-1., 0.) + ${o} * vec2(-1., 1.)`;break;case\"bottom-left\":o=`vec2(0., ${n}.y) + ${r} * vec2(0., -1.) + ${o} * vec2(1., -1.)`;break;case\"bottom-right\":o=`${n} - ${r} - ${o}`;break;default:}return o}function M1(i,e,t,n){n.functions.circleDistanceField=`float circleDistanceField(vec2 point, float radius) {\\n return length(point) - radius;\\n}`,rd(i,e,n,\"circle-\");let r=null;\"circle-opacity\"in i&&(r=ne(n,i[\"circle-opacity\"],q));let o=\"coordsPx\";\"circle-scale\"in i&&(o=`coordsPx / ${ne(n,i[\"circle-scale\"],Ot)}`);let s=null;\"circle-fill-color\"in i&&(s=ne(n,i[\"circle-fill-color\"],we));let a=null;\"circle-stroke-color\"in i&&(a=ne(n,i[\"circle-stroke-color\"],we));let A=ne(n,i[\"circle-radius\"],q),l=null;\"circle-stroke-width\"in i&&(l=ne(n,i[\"circle-stroke-width\"],q),A=`(${A} + ${l} * 0.5)`);let c=`circleDistanceField(${o}, ${A})`,h=iC(c,s,a,l,r);e.setSymbolColorExpression(h)}function k1(i,e,t,n){n.functions.round=`float round(float v) {\\n return sign(v) * floor(abs(v) + 0.5);\\n}`,n.functions.starDistanceField=`float starDistanceField(vec2 point, float numPoints, float radius, float radius2, float angle) {\\n float startAngle = -PI * 0.5 + angle; // tip starts upwards and rotates clockwise with angle\\n float c = cos(startAngle);\\n float s = sin(startAngle);\\n vec2 pointRotated = vec2(c * point.x - s * point.y, s * point.x + c * point.y);\\n float alpha = TWO_PI / numPoints; // the angle of one sector\\n float beta = atan(pointRotated.y, pointRotated.x);\\n float gamma = round(beta / alpha) * alpha; // angle in sector\\n c = cos(-gamma);\\n s = sin(-gamma);\\n vec2 inSector = vec2(c * pointRotated.x - s * pointRotated.y, abs(s * pointRotated.x + c * pointRotated.y));\\n vec2 tipToPoint = inSector + vec2(-radius, 0.);\\n vec2 edgeNormal = vec2(radius2 * sin(alpha * 0.5), -radius2 * cos(alpha * 0.5) + radius);\\n return dot(normalize(edgeNormal), tipToPoint);\\n}`,n.functions.regularDistanceField=`float regularDistanceField(vec2 point, float numPoints, float radius, float angle) {\\n float startAngle = -PI * 0.5 + angle; // tip starts upwards and rotates clockwise with angle\\n float c = cos(startAngle);\\n float s = sin(startAngle);\\n vec2 pointRotated = vec2(c * point.x - s * point.y, s * point.x + c * point.y);\\n float alpha = TWO_PI / numPoints; // the angle of one sector\\n float radiusIn = radius * cos(PI / numPoints);\\n float beta = atan(pointRotated.y, pointRotated.x);\\n float gamma = round((beta - alpha * 0.5) / alpha) * alpha + alpha * 0.5; // angle in sector from mid\\n c = cos(-gamma);\\n s = sin(-gamma);\\n vec2 inSector = vec2(c * pointRotated.x - s * pointRotated.y, abs(s * pointRotated.x + c * pointRotated.y));\\n return inSector.x - radiusIn;\\n}`,rd(i,e,n,\"shape-\");let r=null;\"shape-opacity\"in i&&(r=ne(n,i[\"shape-opacity\"],q));let o=\"coordsPx\";\"shape-scale\"in i&&(o=`coordsPx / ${ne(n,i[\"shape-scale\"],Ot)}`);let s=null;\"shape-fill-color\"in i&&(s=ne(n,i[\"shape-fill-color\"],we));let a=null;\"shape-stroke-color\"in i&&(a=ne(n,i[\"shape-stroke-color\"],we));let A=null;\"shape-stroke-width\"in i&&(A=ne(n,i[\"shape-stroke-width\"],q));let l=ne(n,i[\"shape-points\"],q),c=\"0.\";\"shape-angle\"in i&&(c=ne(n,i[\"shape-angle\"],q));let h,u=ne(n,i[\"shape-radius\"],q);if(A!==null&&(u=`${u} + ${A} * 0.5`),\"shape-radius2\"in i){let g=ne(n,i[\"shape-radius2\"],q);A!==null&&(g=`${g} + ${A} * 0.5`),h=`starDistanceField(${o}, ${l}, ${u}, ${g}, ${c})`}else h=`regularDistanceField(${o}, ${l}, ${u}, ${c})`;let f=iC(h,s,a,A,r);e.setSymbolColorExpression(f)}function P1(i,e,t,n){let r=\"vec4(1.0)\";\"icon-color\"in i&&(r=ne(n,i[\"icon-color\"],we)),\"icon-opacity\"in i&&(r=`${r} * vec4(1.0, 1.0, 1.0, ${ne(n,i[\"icon-opacity\"],q)})`);let o=tc(i[\"icon-src\"]),s=od(i,e,t,\"icon-\",o);if(e.setSymbolColorExpression(`${r} * texture2D(u_texture${o}, v_texCoord)`).setSymbolSizeExpression(s),\"icon-width\"in i&&\"icon-height\"in i&&e.setSymbolSizeExpression(`vec2(${ne(n,i[\"icon-width\"],q)}, ${ne(n,i[\"icon-height\"],q)})`),\"icon-offset\"in i&&\"icon-size\"in i){let a=ne(n,i[\"icon-size\"],et),A=e.getSymbolSizeExpression();e.setSymbolSizeExpression(a);let l=sd(i,\"icon-\",n,\"v_quadSizePx\",a);e.setTextureCoordinateExpression(`(vec4((${l}).xyxy) + vec4(0., 0., ${a})) / (${A}).xyxy`)}if(rd(i,e,n,\"icon-\"),\"icon-anchor\"in i){let a=ne(n,i[\"icon-anchor\"],et),A=\"1.0\";\"icon-scale\"in i&&(A=ne(n,i[\"icon-scale\"],Ot));let l;i[\"icon-anchor-x-units\"]===\"pixels\"&&i[\"icon-anchor-y-units\"]===\"pixels\"?l=`${a} * ${A}`:i[\"icon-anchor-x-units\"]===\"pixels\"?l=`${a} * vec2(vec2(${A}).x, v_quadSizePx.y)`:i[\"icon-anchor-y-units\"]===\"pixels\"?l=`${a} * vec2(v_quadSizePx.x, vec2(${A}).x)`:l=`${a} * v_quadSizePx`;let c=`v_quadSizePx * vec2(0.5, -0.5) + ${l} * vec2(-1., 1.)`;if(\"icon-anchor-origin\"in i)switch(i[\"icon-anchor-origin\"]){case\"top-right\":c=`v_quadSizePx * -0.5 + ${l}`;break;case\"bottom-left\":c=`v_quadSizePx * 0.5 - ${l}`;break;case\"bottom-right\":c=`v_quadSizePx * vec2(-0.5, 0.5) + ${l} * vec2(1., -1.)`;break;default:}e.setSymbolOffsetExpression(`${e.getSymbolOffsetExpression()} + ${c}`)}}function N1(i,e,t,n){if(\"stroke-color\"in i&&e.setStrokeColorExpression(ne(n,i[\"stroke-color\"],we)),\"stroke-pattern-src\"in i){let r=tc(i[\"stroke-pattern-src\"]),o=od(i,e,t,\"stroke-pattern-\",r),s=o,a=\"vec2(0.)\";\"stroke-pattern-offset\"in i&&\"stroke-pattern-size\"in i&&(s=ne(n,i[\"stroke-pattern-size\"],et),a=sd(i,\"stroke-pattern-\",n,o,s));let A=\"0.\";\"stroke-pattern-spacing\"in i&&(A=ne(n,i[\"stroke-pattern-spacing\"],q)),n.functions.sampleStrokePattern=`vec4 sampleStrokePattern(sampler2D texture, vec2 textureSize, vec2 textureOffset, vec2 sampleSize, float spacingPx, float currentLengthPx, float currentRadiusRatio, float lineWidth) {\\n float currentLengthScaled = currentLengthPx * sampleSize.y / lineWidth;\\n float spacingScaled = spacingPx * sampleSize.y / lineWidth;\\n float uCoordPx = mod(currentLengthScaled, (sampleSize.x + spacingScaled));\\n // make sure that we\\'re not sampling too close to the borders to avoid interpolation with outside pixels\\n uCoordPx = clamp(uCoordPx, 0.5, sampleSize.x - 0.5);\\n float vCoordPx = (-currentRadiusRatio * 0.5 + 0.5) * sampleSize.y;\\n vec2 texCoord = (vec2(uCoordPx, vCoordPx) + textureOffset) / textureSize;\\n return texture2D(texture, texCoord);\\n}`;let l=`u_texture${r}`,c=\"1.\";\"stroke-color\"in i&&(c=e.getStrokeColorExpression()),e.setStrokeColorExpression(`${c} * sampleStrokePattern(${l}, ${o}, ${a}, ${s}, ${A}, currentLengthPx, currentRadiusRatio, v_width)`)}if(\"stroke-width\"in i&&e.setStrokeWidthExpression(ne(n,i[\"stroke-width\"],q)),\"stroke-offset\"in i&&e.setStrokeOffsetExpression(ne(n,i[\"stroke-offset\"],q)),\"stroke-line-cap\"in i&&e.setStrokeCapExpression(ne(n,i[\"stroke-line-cap\"],Ke)),\"stroke-line-join\"in i&&e.setStrokeJoinExpression(ne(n,i[\"stroke-line-join\"],Ke)),\"stroke-miter-limit\"in i&&e.setStrokeMiterLimitExpression(ne(n,i[\"stroke-miter-limit\"],q)),\"stroke-line-dash\"in i){n.functions.getSingleDashDistance=`float getSingleDashDistance(float distance, float radius, float dashOffset, float dashLength, float dashLengthTotal, float capType, float lineWidth) {\\n float localDistance = mod(distance, dashLengthTotal);\\n float distanceSegment = abs(localDistance - dashOffset - dashLength * 0.5) - dashLength * 0.5;\\n distanceSegment = min(distanceSegment, dashLengthTotal - localDistance);\\n if (capType == ${Ti(\"square\")}) {\\n distanceSegment -= lineWidth * 0.5;\\n } else if (capType == ${Ti(\"round\")}) {\\n distanceSegment = min(distanceSegment, sqrt(distanceSegment * distanceSegment + radius * radius) - lineWidth * 0.5);\\n }\\n return distanceSegment;\\n}`;let r=i[\"stroke-line-dash\"].map(u=>ne(n,u,q));r.length%2===1&&(r=[...r,...r]);let o=\"0.\";\"stroke-line-dash-offset\"in i&&(o=ne(n,i[\"stroke-line-dash-offset\"],q));let a=`dashDistanceField_${tc(i[\"stroke-line-dash\"])}`,A=r.map((u,f)=>`float dashLength${f} = ${u};`),l=r.map((u,f)=>`dashLength${f}`).join(\" + \"),c=\"0.\",h=`getSingleDashDistance(distance, radius, ${c}, dashLength0, totalDashLength, capType, lineWidth)`;for(let u=2;uPn(zr(A.getGeometry()))),a(\"featureId\",$g,Ke|q,A=>{let l=A.getId()??null;return typeof l==\"string\"?Pn(l):l}),$0(r,n),{builder:r,attributes:{...s,...tC(n)},uniforms:{...o,...eC(n,e)}}}function rC(i){let e=Array.isArray(i)?i:[i];if(\"style\"in e[0]){let t=[],n=e,r=[];for(let o of n){let s=Array.isArray(o.style)?o.style:[o.style],a=o.filter;o.else&&r.length&&(a=[\"all\",...r.map(l=>[\"!\",l])],o.filter&&a.push(o.filter),a.length<3&&(a=a[1])),o.filter&&r.push(o.filter);let A=s.map(l=>({style:l,...a&&{filter:a}}));t.push(...A)}return t}return\"builder\"in e[0]?e:e.map(t=>({style:t}))}var O1=[],ad;function U1(){return ad||(ad=L0()),ad}var Y1=0,Zi={POSITION:\"a_position\",INDEX:\"a_index\",SEGMENT_START:\"a_segmentStart\",SEGMENT_END:\"a_segmentEnd\",MEASURE_START:\"a_measureStart\",MEASURE_END:\"a_measureEnd\",PARAMETERS:\"a_parameters\",JOIN_ANGLES:\"a_joinAngles\",DISTANCE:\"a_distance\"},Ad=class{constructor(e,t,n,r,o){this.helper_,this.hitDetectionEnabled_=!!r;let s=e;if(!(\"builder\"in e)){let c=e,h=nC(c.style,t,c.filter);s={builder:h.builder,attributes:h.attributes,uniforms:h.uniforms}}this.fillProgram_,this.strokeProgram_,this.symbolProgram_,this.hasFill_=!!s.builder.getFillVertexShader(),this.hasFill_&&(this.fillVertexShader_=s.builder.getFillVertexShader(),this.fillFragmentShader_=s.builder.getFillFragmentShader()),this.hasStroke_=!!s.builder.getStrokeVertexShader(),this.hasStroke_&&(this.strokeVertexShader_=s.builder.getStrokeVertexShader(),this.strokeFragmentShader_=s.builder.getStrokeFragmentShader()),this.hasSymbol_=!!s.builder.getSymbolVertexShader(),this.hasSymbol_&&(this.symbolVertexShader_=s.builder.getSymbolVertexShader(),this.symbolFragmentShader_=s.builder.getSymbolFragmentShader()),this.featureFilter_=null,o&&(this.featureFilter_=this.computeFeatureFilter(o));let A=this.hitDetectionEnabled_?{hitColor:{callback(){return M0(this.ref,O1)},size:4}}:{};this.customAttributes_=Object.assign({},A,s.attributes),this.uniforms_=s.uniforms;let l=Object.entries(this.customAttributes_).map(([c,h])=>({name:`a_${c}`,size:h.size||1,type:lt.FLOAT}));this.polygonAttributesDesc_=[{name:Zi.POSITION,size:2,type:lt.FLOAT},...l],this.lineStringAttributesDesc_=[{name:Zi.SEGMENT_START,size:2,type:lt.FLOAT},{name:Zi.MEASURE_START,size:1,type:lt.FLOAT},{name:Zi.SEGMENT_END,size:2,type:lt.FLOAT},{name:Zi.MEASURE_END,size:1,type:lt.FLOAT},{name:Zi.JOIN_ANGLES,size:2,type:lt.FLOAT},{name:Zi.DISTANCE,size:1,type:lt.FLOAT},{name:Zi.PARAMETERS,size:1,type:lt.FLOAT},...l],this.pointAttributesDesc_=[{name:Zi.POSITION,size:2,type:lt.FLOAT},{name:Zi.INDEX,size:1,type:lt.FLOAT},...l],this.setHelper(n)}computeFeatureFilter(e){let t=Hr(),n;try{n=gi(e,ze,t)}catch{return null}if(t.mapState||t.variables.size>0)return null;let r=Ea();return o=>{if(r.properties=o.getPropertiesInternal(),t.featureId){let s=o.getId();s!==void 0?r.featureId=s:r.featureId=null}return r.geometryType=zr(o.getGeometry()),n(r)}}async generateBuffers(e,t){let n=e;if(this.featureFilter_&&(n=n.filter(this.featureFilter_),n.isEmpty()))return null;let r=this.generateRenderInstructions_(n,t),[o,s,a]=await Promise.all([this.generateBuffersForType_(r.polygonInstructions,\"Polygon\",t),this.generateBuffersForType_(r.lineStringInstructions,\"LineString\",t),this.generateBuffersForType_(r.pointInstructions,\"Point\",t)]),A=Bi(Ce(),t);return{polygonBuffers:o,lineStringBuffers:s,pointBuffers:a,invertVerticesTransform:A}}generateRenderInstructions_(e,t){let n=this.hasFill_?W0(e.polygonBatch,new Float32Array(0),this.customAttributes_,t):null,r=this.hasStroke_?j0(e.lineStringBatch,new Float32Array(0),this.customAttributes_,t):null,o=this.hasSymbol_?J0(e.pointBatch,new Float32Array(0),this.customAttributes_,t):null;return{polygonInstructions:n,lineStringInstructions:r,pointInstructions:o}}generateBuffersForType_(e,t,n){if(e===null)return null;let r=Y1++,o;switch(t){case\"Polygon\":o=Vl.GENERATE_POLYGON_BUFFERS;break;case\"LineString\":o=Vl.GENERATE_LINE_STRING_BUFFERS;break;case\"Point\":o=Vl.GENERATE_POINT_BUFFERS;break;default:}let s={id:r,type:o,renderInstructions:e.buffer,renderInstructionsTransform:n,customAttributesSize:ka(this.customAttributes_)},a=U1();return a.postMessage(s,[e.buffer]),e=null,new Promise(A=>{let l=c=>{let h=c.data;if(h.id!==r||(a.removeEventListener(\"message\",l),!this.helper_.getGL()))return;let u=new Zr(jr,Da).fromArrayBuffer(h.vertexBuffer),f=new Zr(Wr,Da).fromArrayBuffer(h.indexBuffer);this.helper_.flushBufferData(u),this.helper_.flushBufferData(f),A([f,u])};a.addEventListener(\"message\",l)})}render(e,t,n){this.hasFill_&&this.renderInternal_(e.polygonBuffers[0],e.polygonBuffers[1],this.fillProgram_,this.polygonAttributesDesc_,t,n),this.hasStroke_&&this.renderInternal_(e.lineStringBuffers[0],e.lineStringBuffers[1],this.strokeProgram_,this.lineStringAttributesDesc_,t,n),this.hasSymbol_&&this.renderInternal_(e.pointBuffers[0],e.pointBuffers[1],this.symbolProgram_,this.pointAttributesDesc_,t,n)}renderInternal_(e,t,n,r,o,s){let a=e.getSize();a!==0&&(this.helper_.useProgram(n,o),this.helper_.bindBuffer(t),this.helper_.bindBuffer(e),this.helper_.enableAttributes(r),s(),this.helper_.drawElements(0,a))}setHelper(e,t=null){this.helper_=e,this.hasFill_&&(this.fillProgram_=this.helper_.getProgram(this.fillFragmentShader_,this.fillVertexShader_)),this.hasStroke_&&(this.strokeProgram_=this.helper_.getProgram(this.strokeFragmentShader_,this.strokeVertexShader_)),this.hasSymbol_&&(this.symbolProgram_=this.helper_.getProgram(this.symbolFragmentShader_,this.symbolVertexShader_)),this.helper_.addUniforms(this.uniforms_),t&&(t.polygonBuffers&&(this.helper_.flushBufferData(t.polygonBuffers[0]),this.helper_.flushBufferData(t.polygonBuffers[1])),t.lineStringBuffers&&(this.helper_.flushBufferData(t.lineStringBuffers[0]),this.helper_.flushBufferData(t.lineStringBuffers[1])),t.pointBuffers&&(this.helper_.flushBufferData(t.pointBuffers[0]),this.helper_.flushBufferData(t.pointBuffers[1])))}},oC=Ad;var $i=new Uint8Array(4),ld=class{constructor(e,t){this.helper_=e;let n=e.getGL();this.texture_=n.createTexture(),this.framebuffer_=n.createFramebuffer(),this.depthbuffer_=n.createRenderbuffer(),this.size_=t||[1,1],this.data_=new Uint8Array(0),this.dataCacheDirty_=!0,this.updateSize_()}setSize(e){rt(e,this.size_)||(this.size_[0]=e[0],this.size_[1]=e[1],this.updateSize_())}getSize(){return this.size_}clearCachedData(){this.dataCacheDirty_=!0}readAll(){if(this.dataCacheDirty_){let e=this.size_,t=this.helper_.getGL();t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer_),t.readPixels(0,0,e[0],e[1],t.RGBA,t.UNSIGNED_BYTE,this.data_),this.dataCacheDirty_=!1}return this.data_}readPixel(e,t){if(e<0||t<0||e>this.size_[0]||t>=this.size_[1])return $i[0]=0,$i[1]=0,$i[2]=0,$i[3]=0,$i;this.readAll();let n=Math.floor(e)+(this.size_[1]-Math.floor(t)-1)*this.size_[0];return $i[0]=this.data_[n*4],$i[1]=this.data_[n*4+1],$i[2]=this.data_[n*4+2],$i[3]=this.data_[n*4+3],$i}getTexture(){return this.texture_}getFramebuffer(){return this.framebuffer_}getDepthbuffer(){return this.depthbuffer_}updateSize_(){let e=this.size_,t=this.helper_.getGL();this.texture_=this.helper_.createTexture(e,null,this.texture_),t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer_),t.viewport(0,0,e[0],e[1]),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.texture_,0),t.bindRenderbuffer(t.RENDERBUFFER,this.depthbuffer_),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,e[0],e[1]),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,this.depthbuffer_),this.data_=new Uint8Array(e[0]*e[1]*4)}},sC=ld;function aC(i,e){let t=i.viewState.projection,r=e.getSource().getWrapX()&&t.canWrapX(),o=t.getExtent(),s=i.extent,a=r?oe(o):null,A=r?Math.ceil((s[2]-o[2])/a)+1:1;return[r?Math.floor((s[0]-o[0])/a):0,A,a]}var ss={...Wi,RENDER_EXTENT:\"u_renderExtent\",PATTERN_ORIGIN:\"u_patternOrigin\",GLOBAL_ALPHA:\"u_globalAlpha\"},cd=class extends Xl{constructor(e,t){let n={[ss.RENDER_EXTENT]:[0,0,0,0],[ss.PATTERN_ORIGIN]:[0,0],[ss.GLOBAL_ALPHA]:1};super(e,{uniforms:n,postProcesses:t.postProcesses}),this.hitDetectionEnabled_=!t.disableHitDetection,this.hitRenderTarget_,this.sourceRevision_=-1,this.previousExtent_=be(),this.currentTransform_=Ce(),this.tmpCoords_=[0,0],this.tmpTransform_=Ce(),this.tmpMat4_=ji(),this.currentFrameStateTransform_=Ce(),this.styleVariables_={},this.styles_=[],this.styleRenderers_=[],this.buffers_=[],this.applyOptions_(t),this.batch_=new C0,this.initialFeaturesAdded_=!1,this.sourceListenKeys_=null}addInitialFeatures_(e){let t=this.getLayer().getSource(),n=ci(),r;n&&(r=li(n,e.viewState.projection)),this.batch_.addFeatures(t.getFeatures(),r),this.sourceListenKeys_=[X(t,at.ADDFEATURE,this.handleSourceFeatureAdded_.bind(this,r)),X(t,at.CHANGEFEATURE,this.handleSourceFeatureChanged_,this),X(t,at.REMOVEFEATURE,this.handleSourceFeatureDelete_,this),X(t,at.CLEAR,this.handleSourceFeatureClear_,this)]}applyOptions_(e){this.styleVariables_=e.variables,this.styles_=rC(e.style)}createRenderers_(){this.buffers_=[],this.styleRenderers_=this.styles_.map(e=>new oC(e,this.styleVariables_,this.helper,this.hitDetectionEnabled_,\"filter\"in e?e.filter:null))}reset(e){this.applyOptions_(e),this.helper&&this.createRenderers_(),super.reset(e)}afterHelperCreated(){this.styleRenderers_.length?this.styleRenderers_.forEach((e,t)=>e.setHelper(this.helper,this.buffers_[t])):this.createRenderers_(),this.hitDetectionEnabled_&&(this.hitRenderTarget_=new sC(this.helper))}handleSourceFeatureAdded_(e,t){let n=t.feature;this.batch_.addFeature(n,e)}handleSourceFeatureChanged_(e){let t=e.feature;this.batch_.changeFeature(t)}handleSourceFeatureDelete_(e){let t=e.feature;this.batch_.removeFeature(t)}handleSourceFeatureClear_(){this.batch_.clear()}applyUniforms_(e){KA(this.tmpTransform_,this.currentFrameStateTransform_),Zn(this.tmpTransform_,e),this.helper.setUniformMatrixValue(ss.PROJECTION_MATRIX,$r(this.tmpMat4_,this.tmpTransform_)),Bi(this.tmpTransform_,this.tmpTransform_),this.helper.setUniformMatrixValue(ss.SCREEN_TO_WORLD_MATRIX,$r(this.tmpMat4_,this.tmpTransform_)),this.tmpCoords_[0]=0,this.tmpCoords_[1]=0,Bi(this.tmpTransform_,e),ye(this.tmpTransform_,this.tmpCoords_),this.helper.setUniformFloatVec2(ss.PATTERN_ORIGIN,this.tmpCoords_)}renderFrame(e){let t=this.helper.getGL();this.preRender(t,e);let[n,r,o]=aC(e,this.getLayer());this.helper.prepareDraw(e),this.renderWorlds(e,!1,n,r,o),this.helper.finalizeDraw(e,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);let s=this.helper.getCanvas();return this.hitDetectionEnabled_&&(this.renderWorlds(e,!0,n,r,o),this.hitRenderTarget_.clearCachedData()),this.postRender(t,e),s}prepareFrameInternal(e){this.initialFeaturesAdded_||(this.addInitialFeatures_(e),this.initialFeaturesAdded_=!0);let t=this.getLayer(),n=t.getSource(),r=e.viewState,o=!e.viewHints[Ye.ANIMATING]&&!e.viewHints[Ye.INTERACTING],s=!Jt(this.previousExtent_,e.extent),a=this.sourceRevision_m.generateBuffers(this.batch_,f).then(I=>{this.buffers_[d]&&this.disposeBuffers(this.buffers_[d]),this.buffers_[d]=I}));Promise.all(g).then(()=>{this.ready=!0,this.getLayer().changed()}),this.previousExtent_=e.extent.slice()}return!0}renderWorlds(e,t,n,r,o){let s=n;t&&(this.hitRenderTarget_.setSize([Math.floor(e.size[0]/2),Math.floor(e.size[1]/2)]),this.helper.prepareDrawToRenderTarget(e,this.hitRenderTarget_,!0));do{this.helper.makeProjectionTransform(e,this.currentFrameStateTransform_),qA(this.currentFrameStateTransform_,s*o,0);for(let a=0,A=this.styleRenderers_.length;a{this.applyUniforms_(c.invertVerticesTransform),this.helper.applyHitDetectionUniform(t)})}}while(++s{for(let r of n)r&&this.helper.deleteBuffer(r)};e.pointBuffers&&t(e.pointBuffers),e.lineStringBuffers&&t(e.lineStringBuffers),e.polygonBuffers&&t(e.polygonBuffers)}disposeInternal(){this.buffers_.forEach(e=>{e&&this.disposeBuffers(e)}),this.sourceListenKeys_&&(this.sourceListenKeys_.forEach(function(e){se(e)}),this.sourceListenKeys_=null),super.disposeInternal()}renderDeclutter(){}},AC=cd;var hd=class extends bn{constructor(e){let t=Object.assign({},e);super(t),this.styleVariables_=e.variables||{},this.style_=e.style,this.hitDetectionDisabled_=!!e.disableHitDetection}createRenderer(){return new AC(this,{style:this.style_,variables:this.styleVariables_,disableHitDetection:this.hitDetectionDisabled_})}updateStyleVariables(e){Object.assign(this.styleVariables_,e),this.changed()}setStyle(e){this.style_=e,this.clearRenderer(),this.changed()}},lC=hd;function cC(i,e){let t=`\\n attribute vec2 ${La.TEXTURE_COORD};\\n uniform mat4 ${Ae.TILE_TRANSFORM};\\n uniform float ${Ae.TEXTURE_PIXEL_WIDTH};\\n uniform float ${Ae.TEXTURE_PIXEL_HEIGHT};\\n uniform float ${Ae.TEXTURE_RESOLUTION};\\n uniform float ${Ae.TEXTURE_ORIGIN_X};\\n uniform float ${Ae.TEXTURE_ORIGIN_Y};\\n uniform float ${Ae.DEPTH};\\n\\n varying vec2 v_textureCoord;\\n varying vec2 v_mapCoord;\\n\\n void main() {\\n v_textureCoord = ${La.TEXTURE_COORD};\\n v_mapCoord = vec2(\\n ${Ae.TEXTURE_ORIGIN_X} + ${Ae.TEXTURE_RESOLUTION} * ${Ae.TEXTURE_PIXEL_WIDTH} * v_textureCoord[0],\\n ${Ae.TEXTURE_ORIGIN_Y} - ${Ae.TEXTURE_RESOLUTION} * ${Ae.TEXTURE_PIXEL_HEIGHT} * v_textureCoord[1]\\n );\\n gl_Position = ${Ae.TILE_TRANSFORM} * vec4(${La.TEXTURE_COORD}, ${Ae.DEPTH}, 1.0);\\n }\\n `,n={...jl(),bandCount:e},r=[];if(i.color!==void 0){let h=ne(n,i.color,we);r.push(`color = ${h};`)}if(i.contrast!==void 0){let h=ne(n,i.contrast,q);r.push(`color.rgb = clamp((${h} + 1.0) * color.rgb - (${h} / 2.0), vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(i.exposure!==void 0){let h=ne(n,i.exposure,q);r.push(`color.rgb = clamp((${h} + 1.0) * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}if(i.saturation!==void 0){let h=ne(n,i.saturation,q);r.push(`\\n float saturation = ${h} + 1.0;\\n float sr = (1.0 - saturation) * 0.2126;\\n float sg = (1.0 - saturation) * 0.7152;\\n float sb = (1.0 - saturation) * 0.0722;\\n mat3 saturationMatrix = mat3(\\n sr + saturation, sr, sr,\\n sg, sg + saturation, sg,\\n sb, sb, sb + saturation\\n );\\n color.rgb = clamp(saturationMatrix * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));\\n `)}if(i.gamma!==void 0){let h=ne(n,i.gamma,q);r.push(`color.rgb = pow(color.rgb, vec3(1.0 / ${h}));`)}if(i.brightness!==void 0){let h=ne(n,i.brightness,q);r.push(`color.rgb = clamp(color.rgb + ${h}, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}let o={},s=Object.keys(n.variables).length;if(s>1&&!i.variables)throw new Error(`Missing variables in style (expected ${n.variables})`);for(let h=0;h ${Ae.RENDER_EXTENT}[2] ||\\n v_mapCoord[1] > ${Ae.RENDER_EXTENT}[3]\\n ) {\\n discard;\\n }\\n\\n vec4 color = texture2D(${Ae.TILE_TEXTURE_ARRAY}[0], v_textureCoord);\\n\\n ${r.join(`\\n`)}\\n\\n gl_FragColor = color;\\n gl_FragColor.rgb *= gl_FragColor.a;\\n gl_FragColor *= ${Ae.TRANSITION_ALPHA};\\n }`;return{vertexShader:t,fragmentShader:c,uniforms:o,paletteTextures:n.paletteTextures}}var ic=class extends zl{constructor(e){e=e?Object.assign({},e):{};let t=e.style||{};delete e.style,super(e),this.sources_=e.sources,this.renderedSource_=null,this.renderedResolution_=NaN,this.style_=t,this.styleVariables_=this.style_.variables||{},this.handleSourceUpdate_(),this.addChangeListener(pe.SOURCE,this.handleSourceUpdate_)}getSources(e,t){let n=this.getSource();return this.sources_?typeof this.sources_==\"function\"?this.sources_(e,t):this.sources_:n?[n]:[]}getRenderSource(){return this.renderedSource_||this.getSource()}getSourceState(){let e=this.getRenderSource();return e?e.getState():\"undefined\"}handleSourceUpdate_(){this.hasRenderer()&&this.getRenderer().clearCache();let e=this.getSource();if(e)if(e.getState()===\"loading\"){let t=()=>{e.getState()===\"ready\"&&(e.removeEventListener(\"change\",t),this.setStyle(this.style_))};e.addEventListener(\"change\",t)}else this.setStyle(this.style_)}getSourceBandCount_(){let e=Number.MAX_SAFE_INTEGER,t=this.getSources([-e,-e,e,e],e);return t&&t.length&&\"bandCount\"in t[0]?t[0].bandCount:4}createRenderer(){let e=cC(this.style_,this.getSourceBandCount_());return new q0(this,{vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms,cacheSize:this.getCacheSize(),paletteTextures:e.paletteTextures})}renderSources(e,t){let n=this.getRenderer(),r;for(let o=0,s=t.length;o{l.getState()==\"ready\"&&(l.removeEventListener(\"change\",h),this.changed())};l.addEventListener(\"change\",h)}o=o&&c==\"ready\"}let s=this.renderSources(e,r);if(this.getRenderer().renderComplete&&o)return this.renderedResolution_=n.resolution,s;if(this.renderedResolution_>.5*n.resolution){let a=this.getSources(e.extent,this.renderedResolution_).filter(A=>!r.includes(A));if(a.length>0)return this.renderSources(e,a)}return s}setStyle(e){if(this.styleVariables_=e.variables||{},this.style_=e,this.hasRenderer()){let t=cC(this.style_,this.getSourceBandCount_());this.getRenderer().reset({vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms,paletteTextures:t.paletteTextures}),this.changed()}}updateStyleVariables(e){Object.assign(this.styleVariables_,e),this.changed()}};ic.prototype.dispose;var hC=ic;var uC={TileLayer:E0,VectorLayer:bE,WebGLVectorLayer:lC,WebGLTileLayer:hC};var as=[0,0,0],gr=5,ud=class{constructor(e){this.minZoom=e.minZoom!==void 0?e.minZoom:0,this.resolutions_=e.resolutions,re(Ep(this.resolutions_,(r,o)=>o-r,!0),\"`resolutions` must be sorted in descending order\");let t;if(!e.origins){for(let r=0,o=this.resolutions_.length-1;r{let s=new Zo(Math.min(0,r[0]),Math.max(r[0]-1,-1),Math.min(0,r[1]),Math.max(r[1]-1,-1));if(n){let a=this.getTileRangeForExtentAndZ(n,o);s.minX=Math.max(a.minX,s.minX),s.maxX=Math.min(a.maxX,s.maxX),s.minY=Math.max(a.minY,s.minY),s.maxY=Math.min(a.maxY,s.maxY)}return s}):n&&this.calculateTileRanges_(n)}forEachTileCoord(e,t,n){let r=this.getTileRangeForExtentAndZ(e,t);for(let o=r.minX,s=r.maxX;o<=s;++o)for(let a=r.minY,A=r.maxY;a<=A;++a)n([t,o,a])}forEachTileCoordParentTileRange(e,t,n,r){let o,s,a,A=null,l=e[0]-1;for(this.zoomFactor_===2?(s=e[1],a=e[2]):A=this.getTileCoordExtent(e,r);l>=this.minZoom;){if(s!==void 0&&a!==void 0?(s=Math.floor(s/2),a=Math.floor(a/2),o=qr(s,s,a,a,n)):o=this.getTileRangeForExtentAndZ(A,l,n),t(l,o))return!0;--l}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(e){return this.origin_?this.origin_:this.origins_[e]}getResolution(e){return this.resolutions_[e]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(e,t,n){if(e[0]this.maxZoom||t0?n:Math.max(o/t[0],r/t[1]);let s=e+1,a=new Array(s);for(let A=0;Athis.getTileInternal(f,g,m,d,s),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.tileOptions);return u.key=A,u}getTileInternal(e,t,n,r,o){let s=this.getKey();return this.createTile_(e,t,n,r,o,s)}setRenderReprojectionEdges(e){this.renderReprojectionEdges_!=e&&(this.renderReprojectionEdges_=e,this.changed())}setTileGridForProjection(e,t){let n=fe(e);if(n){let r=z(n);r in this.tileGridForProjection||(this.tileGridForProjection[r]=t)}}};function W1(i,e){i.getImage().src=e}var IC=dd;var md=class extends IC{constructor(e){e=e||{};let t=e.projection!==void 0?e.projection:\"EPSG:3857\",n=e.tileGrid!==void 0?e.tileGrid:nc({extent:ls(t),maxResolution:e.maxResolution,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize});super({attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,interpolate:e.interpolate,projection:t,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileGrid:n,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX!==void 0?e.wrapX:!0,transition:e.transition,attributionsCollapsible:e.attributionsCollapsible,zDirection:e.zDirection}),this.gutter_=e.gutter!==void 0?e.gutter:0}getGutter(){return this.gutter_}},EC=md;var Z1=\\'© OpenStreetMap contributors.\\',pd=class extends EC{constructor(e){e=e||{};let t;e.attributions!==void 0?t=e.attributions:t=[Z1];let n=e.crossOrigin!==void 0?e.crossOrigin:\"anonymous\",r=e.url!==void 0?e.url:\"https://tile.openstreetmap.org/{z}/{x}/{y}.png\";super({attributions:t,attributionsCollapsible:!1,cacheSize:e.cacheSize,crossOrigin:n,interpolate:e.interpolate,maxZoom:e.maxZoom!==void 0?e.maxZoom:19,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileLoadFunction:e.tileLoadFunction,transition:e.transition,url:r,wrapX:e.wrapX,zDirection:e.zDirection})}},CC=pd;var _C=\"Cannot convert undefined or null to object\";function ve(i){return(e,...t)=>$1(i,e,t)}function hs(i,e){return ve(ac(i,e).get)}var{apply:$1,construct:IK,defineProperty:EK,get:CK,getOwnPropertyDescriptor:ac,getPrototypeOf:Ac,has:_K,ownKeys:BC,set:yK,setPrototypeOf:BK}=Reflect;var{EPSILON:xC,MAX_SAFE_INTEGER:xK,isFinite:eS,isNaN:tS}=Number,{iterator:us,species:wK,toStringTag:iS,for:QK}=Symbol,lc=Object,{create:cc,defineProperty:wC,freeze:SK,is:RK}=lc,Id=lc.prototype,TK=Id.__lookupGetter__?ve(Id.__lookupGetter__):(i,e)=>{if(i==null)throw sS(_C);let t=lc(i);do{let n=ac(t,e);if(n!==void 0)return nS(n,\"get\")?n.get:void 0}while((t=Ac(t))!==null)},nS=lc.hasOwn||ve(Id.hasOwnProperty),QC=Array,vK=QC.isArray,hc=QC.prototype,DK=ve(hc.join),bK=ve(hc.push),FK=ve(hc.toLocaleString),Ed=hc[us],SC=ve(Ed),{abs:rS,trunc:LK}=Math,uc=ArrayBuffer,MK=uc.isView,RC=uc.prototype,kK=ve(RC.slice),PK=hs(RC,\"byteLength\"),yC=typeof SharedArrayBuffer<\"u\"?SharedArrayBuffer:null,NK=yC&&hs(yC.prototype,\"byteLength\"),TC=Ac(Uint8Array),GK=TC.from,Rt=TC.prototype,OK=Rt[us],UK=ve(Rt.keys),YK=ve(Rt.values),HK=ve(Rt.entries),zK=ve(Rt.set),KK=ve(Rt.reverse),qK=ve(Rt.fill),VK=ve(Rt.copyWithin),XK=ve(Rt.sort),JK=ve(Rt.slice),jK=ve(Rt.subarray),WK=hs(Rt,\"buffer\"),ZK=hs(Rt,\"byteOffset\"),$K=hs(Rt,\"length\"),eq=hs(Rt,iS),vC=Uint8Array,Cd=Uint16Array;var fc=Uint32Array,DC=Float32Array,fs=Ac([][us]()),_d=ve(fs.next),bC=ve(function*(){}().next),FC=Ac(fs),LC=DataView.prototype,MC=ve(LC.getUint16),oS=ve(LC.setUint16),sS=TypeError;var aS=WeakSet,kC=aS.prototype,tq=ve(kC.add),iq=ve(kC.has),gc=WeakMap,yd=gc.prototype,Bd=ve(yd.get),nq=ve(yd.has),PC=ve(yd.set);var NC=new gc,AS=cc(null,{next:{value:function(){let e=Bd(NC,this);return _d(e)}},[us]:{value:function(){return this}}});function GC(i){if(i[us]===Ed&&fs.next===_d)return i;let e=cc(AS);return PC(NC,e,SC(i)),e}var lS=new gc,cS=cc(FC,{next:{value:function(){let e=Bd(lS,this);return bC(e)},writable:!0,configurable:!0}});for(let i of BC(fs))i!==\"next\"&&wC(cS,i,ac(fs,i));var hS=1/xC;var uS=6103515625e-14;var OC=.0009765625,Aq=OC*uS,lq=OC*hS;var UC=new uc(4),fS=new DC(UC),gS=new fc(UC),en=new Cd(512),tn=new vC(512);for(let i=0;i<256;++i){let e=i-127;e<-24?(en[i]=0,en[i|256]=32768,tn[i]=24,tn[i|256]=24):e<-14?(en[i]=1024>>-e-14,en[i|256]=1024>>-e-14|32768,tn[i]=-e-1,tn[i|256]=-e-1):e<=15?(en[i]=e+15<<10,en[i|256]=e+15<<10|32768,tn[i]=13,tn[i|256]=13):e<128?(en[i]=31744,en[i|256]=64512,tn[i]=24,tn[i|256]=24):(en[i]=31744,en[i|256]=64512,tn[i]=13,tn[i|256]=13)}var xd=new fc(2048);for(let i=1;i<1024;++i){let e=i<<13,t=0;for(;(e&8388608)===0;)e<<=1,t-=8388608;e&=-8388609,t+=947912704,xd[i]=e|t}for(let i=1024;i<2048;++i)xd[i]=939524096+(i-1024<<13);var gs=new fc(64);for(let i=1;i<31;++i)gs[i]=i<<23;gs[31]=1199570944;gs[32]=2147483648;for(let i=33;i<63;++i)gs[i]=2147483648+(i-32<<23);gs[63]=3347054592;var YC=new Cd(64);for(let i=1;i<64;++i)i!==32&&(YC[i]=1024);function HC(i){let e=i>>10;return gS[0]=xd[YC[e]+(i&1023)]+gs[e],fS[0]}function Na(i,e,...t){return HC(MC(i,e,...GC(t)))}var Xc=fo(KC(),1),tB=fo(i_(),1);Oa();function r_(i,e){let{width:t,height:n}=i,r=new Uint8Array(t*n*3),o;for(let s=0,a=0;s>24,A=i[r+2]<<24>>24,l=(s+16)/116,c=a/500+l,h=l-A/200,u,f,g;c=IS*(c*c*c>.008856?c*c*c:(c-16/116)/7.787),l=ES*(l*l*l>.008856?l*l*l:(l-16/116)/7.787),h=CS*(h*h*h>.008856?h*h*h:(h-16/116)/7.787),u=c*3.2406+l*-1.5372+h*-.4986,f=c*-.9689+l*1.8758+h*.0415,g=c*.0557+l*-.204+h*1.057,u=u>.0031308?1.055*u**(1/2.4)-.055:12.92*u,f=f>.0031308?1.055*f**(1/2.4)-.055:12.92*f,g=g>.0031308?1.055*g**(1/2.4)-.055:12.92*g,n[o]=Math.max(0,Math.min(1,u))*255,n[o+1]=Math.max(0,Math.min(1,f))*255,n[o+2]=Math.max(0,Math.min(1,g))*255}return n}var Zy=new Map;function yr(i,e){Array.isArray(i)||(i=[i]),i.forEach(t=>Zy.set(t,e))}async function qc(i){let e=Zy.get(i.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${i.Compression}`);let t=await e();return new t(i)}yr([void 0,1],()=>Promise.resolve().then(()=>(f_(),u_)).then(i=>i.default));yr(5,()=>Promise.resolve().then(()=>(m_(),d_)).then(i=>i.default));yr(6,()=>{throw new Error(\"old style JPEG compression is not supported.\")});yr(7,()=>Promise.resolve().then(()=>(E_(),I_)).then(i=>i.default));yr([8,32946],()=>Promise.resolve().then(()=>(Oy(),Gy)).then(i=>i.default));yr(32773,()=>Promise.resolve().then(()=>(Yy(),Uy)).then(i=>i.default));yr(34887,()=>Promise.resolve().then(()=>(Jy(),Xy)).then(async i=>(await i.zstd.init(),i)).then(i=>i.default));yr(50001,()=>Promise.resolve().then(()=>(Wy(),jy)).then(i=>i.default));function Vc(i,e,t,n=1){return new(Object.getPrototypeOf(i)).constructor(e*t*n)}function av(i,e,t,n,r){let o=e/n,s=t/r;return i.map(a=>{let A=Vc(a,n,r);for(let l=0;l{let A=Vc(a,n,r);for(let l=0;l>8-r-y&h;else if(y+r<=16)c[C]=a.getUint16(E)>>16-r-y&h;else if(y+r<=24){let B=a.getUint16(E)<<8|a.getUint8(E+2);c[C]=B>>24-r-y&h}else c[C]=a.getUint32(E)>>32-r-y&h}}}}return c.buffer}var Em=class{constructor(e,t,n,r,o,s){this.fileDirectory=e,this.geoKeys=t,this.dataView=n,this.littleEndian=r,this.tiles=o?{}:null,this.isTiled=!e.StripOffsets;let a=e.PlanarConfiguration;if(this.planarConfiguration=typeof a>\"u\"?1:a,this.planarConfiguration!==1&&this.planarConfiguration!==2)throw new Error(\"Invalid planar configuration.\");this.source=s}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return typeof this.fileDirectory.SamplesPerPixel<\"u\"?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:typeof this.fileDirectory.RowsPerStrip<\"u\"?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(e){return this.isTiled||(e+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-e*this.getTileHeight()}getBytesPerPixel(){let e=0;for(let t=0;t=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${e} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[e]/8)}getReaderForSample(e){let t=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1,n=this.fileDirectory.BitsPerSample[e];switch(t){case 1:if(n<=8)return DataView.prototype.getUint8;if(n<=16)return DataView.prototype.getUint16;if(n<=32)return DataView.prototype.getUint32;break;case 2:if(n<=8)return DataView.prototype.getInt8;if(n<=16)return DataView.prototype.getInt16;if(n<=32)return DataView.prototype.getInt32;break;case 3:switch(n){case 16:return function(r,o){return Na(this,r,o)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64;default:break}break;default:break}throw Error(\"Unsupported data format/bitsPerSample\")}getSampleFormat(e=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1}getBitsPerSample(e=0){return this.fileDirectory.BitsPerSample[e]}getArrayForSample(e,t){let n=this.getSampleFormat(e),r=this.getBitsPerSample(e);return Im(n,r,t)}async getTileOrStrip(e,t,n,r,o){let s=Math.ceil(this.getWidth()/this.getTileWidth()),a=Math.ceil(this.getHeight()/this.getTileHeight()),A,{tiles:l}=this;this.planarConfiguration===1?A=t*s+e:this.planarConfiguration===2&&(A=n*s*a+t*s+e);let c,h;this.isTiled?(c=this.fileDirectory.TileOffsets[A],h=this.fileDirectory.TileByteCounts[A]):(c=this.fileDirectory.StripOffsets[A],h=this.fileDirectory.StripByteCounts[A]);let u=(await this.source.fetch([{offset:c,length:h}],o))[0],f;return l===null||!l[A]?(f=(async()=>{let g=await r.decode(this.fileDirectory,u),m=this.getSampleFormat(),d=this.getBitsPerSample();return uv(m,d)&&(g=fv(g,m,this.planarConfiguration,this.getSamplesPerPixel(),d,this.getTileWidth(),this.getBlockHeight(t))),g})(),l!==null&&(l[A]=f)):f=l[A],{x:e,y:t,sample:n,data:await f}}async _readRaster(e,t,n,r,o,s,a,A,l){let c=this.getTileWidth(),h=this.getTileHeight(),u=this.getWidth(),f=this.getHeight(),g=Math.max(Math.floor(e[0]/c),0),m=Math.min(Math.ceil(e[2]/c),Math.ceil(u/c)),d=Math.max(Math.floor(e[1]/h),0),I=Math.min(Math.ceil(e[3]/h),Math.ceil(f/h)),p=e[2]-e[0],_=this.getBytesPerPixel(),C=[],E=[];for(let x=0;x{let k=S.data,L=new DataView(k),b=this.getBlockHeight(S.y),P=S.y*h,N=S.x*c,Y=P+b,M=(S.x+1)*c,j=E[R],H=Math.min(b,b-(Y-e[3]),f-P),O=Math.min(c,c-(M-e[2]),u-N);for(let K=Math.max(0,e[1]-P);Kc[2]||c[1]>c[3])throw new Error(\"Invalid subsets\");let h=c[2]-c[0],u=c[3]-c[1],f=h*u,g=this.getSamplesPerPixel();if(!t||!t.length)for(let p=0;p=g)return Promise.reject(new RangeError(`Invalid sample index \\'${t[p]}\\'.`));let m;if(n){let p=this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,_=Math.max.apply(null,this.fileDirectory.BitsPerSample);m=Im(p,_,f*t.length),A&&m.fill(A)}else{m=[];for(let p=0;pl[2]||l[1]>l[3])throw new Error(\"Invalid subsets\");let c=this.fileDirectory.PhotometricInterpretation;if(c===Tt.RGB){let I=[0,1,2];if(this.fileDirectory.ExtraSamples!==Fd.Unspecified&&a){I=[];for(let p=0;p(0,Xc.default)(o,\"sample\")===void 0):r=r.filter(o=>Number((0,Xc.default)(o,\"sample\"))===e);for(let o=0;o[a+r*d+o*I,h+A*d+l*I]),g=f.map(d=>d[0]),m=f.map(d=>d[1]);return[Math.min(...g),Math.min(...m),Math.max(...g),Math.max(...m)]}else{let r=this.getOrigin(),o=this.getResolution(),s=r[0],a=r[1],A=s+o[0]*n,l=a+o[1]*t;return[Math.min(s,A),Math.min(a,l),Math.max(s,A),Math.max(a,l)]}}},Cm=Em;var aA=class{constructor(e){this._dataView=new DataView(e)}get buffer(){return this._dataView.buffer}getUint64(e,t){let n=this.getUint32(e,t),r=this.getUint32(e+4,t),o;if(t){if(o=n+2**32*r,!Number.isSafeInteger(o))throw new Error(`${o} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return o}if(o=2**32*n+r,!Number.isSafeInteger(o))throw new Error(`${o} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return o}getInt64(e,t){let n=0,r=(this._dataView.getUint8(e+(t?7:0))&128)>0,o=!0;for(let s=0;s<8;s++){let a=this._dataView.getUint8(e+(t?s:7-s));r&&(o?a!==0&&(a=~(a-1)&255,o=!1):a=~a&255),n+=a*256**s}return r&&(n=-n),n}getUint8(e,t){return this._dataView.getUint8(e,t)}getInt8(e,t){return this._dataView.getInt8(e,t)}getUint16(e,t){return this._dataView.getUint16(e,t)}getInt16(e,t){return this._dataView.getInt16(e,t)}getUint32(e,t){return this._dataView.getUint32(e,t)}getInt32(e,t){return this._dataView.getInt32(e,t)}getFloat16(e,t){return Na(this._dataView,e,t)}getFloat32(e,t){return this._dataView.getFloat32(e,t)}getFloat64(e,t){return this._dataView.getFloat64(e,t)}};var AA=class{constructor(e,t,n,r){this._dataView=new DataView(e),this._sliceOffset=t,this._littleEndian=n,this._bigTiff=r}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(e,t){return this.sliceOffset<=e&&this.sliceTop>=e+t}readUint8(e){return this._dataView.getUint8(e-this._sliceOffset,this._littleEndian)}readInt8(e){return this._dataView.getInt8(e-this._sliceOffset,this._littleEndian)}readUint16(e){return this._dataView.getUint16(e-this._sliceOffset,this._littleEndian)}readInt16(e){return this._dataView.getInt16(e-this._sliceOffset,this._littleEndian)}readUint32(e){return this._dataView.getUint32(e-this._sliceOffset,this._littleEndian)}readInt32(e){return this._dataView.getInt32(e-this._sliceOffset,this._littleEndian)}readFloat32(e){return this._dataView.getFloat32(e-this._sliceOffset,this._littleEndian)}readFloat64(e){return this._dataView.getFloat64(e-this._sliceOffset,this._littleEndian)}readUint64(e){let t=this.readUint32(e),n=this.readUint32(e+4),r;if(this._littleEndian){if(r=t+2**32*n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}if(r=2**32*t+n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}readInt64(e){let t=0,n=(this._dataView.getUint8(e+(this._littleEndian?7:0))&128)>0,r=!0;for(let o=0;o<8;o++){let s=this._dataView.getUint8(e+(this._littleEndian?o:7-o));n&&(r?s!==0&&(s=~(s-1)&255,r=!1):s=~s&255),t+=s*256**o}return n&&(t=-t),t}readOffset(e){return this._bigTiff?this.readUint64(e):this.readUint32(e)}};var dv=typeof navigator<\"u\"&&navigator.hardwareConcurrency||2,_m=class{constructor(e=dv,t){this.workers=null,this._awaitingDecoder=null,this.size=e,this.messageId=0,e&&(this._awaitingDecoder=t?Promise.resolve(t):new Promise(n=>{Promise.resolve().then(()=>(oB(),rB)).then(r=>{n(r.create)})}),this._awaitingDecoder.then(n=>{this._awaitingDecoder=null,this.workers=[];for(let r=0;rn.decode(e,t)):new Promise(n=>{let r=this.workers.find(a=>a.idle)||this.workers[Math.floor(Math.random()*this.size)];r.idle=!1;let o=this.messageId++,s=a=>{a.data.id===o&&(r.idle=!0,n(a.data.decoded),r.worker.removeEventListener(\"message\",s))};r.worker.addEventListener(\"message\",s),r.worker.postMessage({fileDirectory:e,buffer:t,id:o},[t])})}destroy(){this.workers&&(this.workers.forEach(e=>{e.worker.terminate()}),this.workers=null)}},ym=_m;var sB=`\\\\r\\n\\\\r\\n`;function aB(i){if(typeof Object.fromEntries<\"u\")return Object.fromEntries(i);let e={};for(let[t,n]of i)e[t.toLowerCase()]=n;return e}function mv(i){let e=i.split(`\\\\r\\n`).map(t=>{let n=t.split(\":\").map(r=>r.trim());return n[0]=n[0].toLowerCase(),n});return aB(e)}function AB(i){let[e,...t]=i.split(\";\").map(r=>r.trim()),n=t.map(r=>r.split(\"=\"));return{type:e,params:aB(n)}}function Jc(i){let e,t,n;return i&&([,e,t,n]=i.match(/bytes (\\\\d+)-(\\\\d+)\\\\/(\\\\d+)/),e=parseInt(e,10),t=parseInt(t,10),n=parseInt(n,10)),{start:e,end:t,total:n}}function lB(i,e){let t=null,n=new TextDecoder(\"ascii\"),r=[],o=`--${e}`,s=`${o}--`;for(let a=0;a<10;++a)n.decode(new Uint8Array(i,a,o.length))===o&&(t=a);if(t===null)throw new Error(\"Could not find initial boundary\");for(;tthis.fetchSlice(n,t)))}async fetchSlice(e){throw new Error(`fetching of slice ${e} not possible, not implemented`)}get fileSize(){return null}async close(){}};var lA=class extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError(\"`maxSize` must be a number greater than 0\");if(typeof e.maxAge==\"number\"&&e.maxAge===0)throw new TypeError(\"`maxAge` must be a number greater than 0\");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if(typeof this.onEviction==\"function\")for(let[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return typeof t.expiry==\"number\"&&t.expiry<=Date.now()?(typeof this.onEviction==\"function\"&&this.onEviction(e,t.value),this.delete(e)):!1}_getOrDeleteIfExpired(e,t){if(this._deleteIfExpired(e,t)===!1)return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){let n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(let e of this.oldCache){let[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)===!1&&(yield e)}for(let e of this.cache){let[t,n]=e;this._deleteIfExpired(t,n)===!1&&(yield e)}}get(e){if(this.cache.has(e)){let t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){let t=this.oldCache.get(e);if(this._deleteIfExpired(e,t)===!1)return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){let r=typeof n==\"number\"&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:r}):this._set(e,{value:t,expiry:r}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):!1}peek(e){if(this.cache.has(e))return this._peek(e,this.cache);if(this.oldCache.has(e))return this._peek(e,this.oldCache)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError(\"`maxSize` must be a number greater than 0\");let t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache){let[t,n]=e;this._deleteIfExpired(t,n)===!1&&(yield[t,n.value])}for(let e of this.oldCache){let[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)===!1&&(yield[t,n.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){let n=e[t],[r,o]=n;this._deleteIfExpired(r,o)===!1&&(yield[r,o.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){let n=e[t],[r,o]=n;this.cache.has(r)||this._deleteIfExpired(r,o)===!1&&(yield[r,o.value])}}*entriesAscending(){for(let[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(let[n,r]of this.entriesAscending())e.call(t,r,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}};async function cB(i){return new Promise(e=>setTimeout(e,i))}function hB(i,e){let t=Array.isArray(i)?i:Array.from(i),n=Array.isArray(e)?e:Array.from(e);return t.map((r,o)=>[r,n[o]])}var Yn=class i extends Error{constructor(e){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,i),this.name=\"AbortError\"}},Bm=class extends Error{constructor(e,t){super(t),this.errors=e,this.message=t,this.name=\"AggregateError\"}},uB=Bm;var xm=class{constructor(e,t,n=null){this.offset=e,this.length=t,this.data=n}get top(){return this.offset+this.length}},jc=class{constructor(e,t,n){this.offset=e,this.length=t,this.blockIds=n}},Wc=class extends Br{constructor(e,{blockSize:t=65536,cacheSize:n=100}={}){super(),this.source=e,this.blockSize=t,this.blockCache=new lA({maxSize:n,onEviction:(r,o)=>{this.evictedBlocks.set(r,o)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(e,t){let n=[],r=[],o=[];this.evictedBlocks.clear();for(let{offset:u,length:f}of e){let g=u+f,{fileSize:m}=this;m!==null&&(g=Math.min(g,m));let d=Math.floor(u/this.blockSize)*this.blockSize;for(let I=d;Ithis.abortedBlockIds.has(u)||!this.blockCache.has(u));if(A.forEach(u=>this.blockIdsToFetch.add(u)),A.length>0&&t&&!t.aborted){this.fetchBlocks(null);for(let u of A){let f=this.blockRequests.get(u);if(!f)throw new Error(`Block ${u} is not in the block requests`);a.push(f)}await Promise.allSettled(a)}if(t&&t.aborted)throw new Yn(\"Request was aborted\");let l=o.map(u=>this.blockCache.get(u)||this.evictedBlocks.get(u)),c=l.filter(u=>!u);if(c.length)throw new uB(c,\"Request failed\");let h=new Map(hB(o,l));return this.readSliceData(e,h)}fetchBlocks(e){if(this.blockIdsToFetch.size>0){let t=this.groupBlocks(this.blockIdsToFetch),n=this.source.fetch(t,e);for(let r=0;r{try{let a=(await n)[r],A=s*this.blockSize,l=A-a.offset,c=Math.min(l+this.blockSize,a.data.byteLength),h=a.data.slice(l,c),u=new xm(A,h.byteLength,h,s);this.blockCache.set(s,u),this.abortedBlockIds.delete(s)}catch(a){if(a.name===\"AbortError\")a.signal=e,this.blockCache.delete(s),this.abortedBlockIds.add(s);else throw a}finally{this.blockRequests.delete(s)}})())}this.blockIdsToFetch.clear()}}groupBlocks(e){let t=Array.from(e).sort((s,a)=>s-a);if(t.length===0)return[];let n=[],r=null,o=[];for(let s of t)r===null||r+1===s?(n.push(s),r=s):(o.push(new jc(n[0]*this.blockSize,n.length*this.blockSize,n)),n=[s],r=s);return o.push(new jc(n[0]*this.blockSize,n.length*this.blockSize,n)),o}readSliceData(e,t){return e.map(n=>{let r=n.offset+n.length;this.fileSize!==null&&(r=Math.min(this.fileSize,r));let o=Math.floor(n.offset/this.blockSize),s=Math.floor(r/this.blockSize),a=new ArrayBuffer(n.length),A=new Uint8Array(a);for(let l=o;l<=s;++l){let c=t.get(l),h=c.offset-n.offset,u=c.top-r,f=0,g=0,m;h<0?f=-h:h>0&&(g=h),u<0?m=c.length-f:m=r-c.offset-f;let d=new Uint8Array(c.data,f,m);A.set(d,g)}return a})}};var xr=class{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error(\"not implemented\")}getHeader(e){throw new Error(\"not implemented\")}async getData(){throw new Error(\"not implemented\")}},wr=class{constructor(e){this.url=e}async request({headers:e,signal:t}={}){throw new Error(\"request is not implemented\")}};var wm=class extends xr{constructor(e){super(),this.response=e}get status(){return this.response.status}getHeader(e){return this.response.headers.get(e)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}},Zc=class extends wr{constructor(e,t){super(e),this.credentials=t}async request({headers:e,signal:t}={}){let n=await fetch(this.url,{headers:e,credentials:this.credentials,signal:t});return new wm(n)}};var Qm=class extends xr{constructor(e,t){super(),this.xhr=e,this.data=t}get status(){return this.xhr.status}getHeader(e){return this.xhr.getResponseHeader(e)}async getData(){return this.data}},$c=class extends wr{constructRequest(e,t){return new Promise((n,r)=>{let o=new XMLHttpRequest;o.open(\"GET\",this.url),o.responseType=\"arraybuffer\";for(let[s,a]of Object.entries(e))o.setRequestHeader(s,a);o.onload=()=>{let s=o.response;n(new Qm(o,s))},o.onerror=r,o.onabort=()=>r(new Yn(\"Request aborted\")),o.send(),t&&(t.aborted&&o.abort(),t.addEventListener(\"abort\",()=>o.abort()))})}async request({headers:e,signal:t}={}){return await this.constructRequest(e,t)}};var mB=fo(fB(),1),pB=fo(gB(),1),IB=fo(dB(),1);var Sm=class extends xr{constructor(e,t){super(),this.response=e,this.dataPromise=t}get status(){return this.response.statusCode}getHeader(e){return this.response.headers[e]}async getData(){return await this.dataPromise}},eh=class extends wr{constructor(e){super(e),this.parsedUrl=IB.default.parse(this.url),this.httpApi=this.parsedUrl.protocol===\"http:\"?mB.default:pB.default}constructRequest(e,t){return new Promise((n,r)=>{let o=this.httpApi.get({...this.parsedUrl,headers:e},s=>{let a=new Promise(A=>{let l=[];s.on(\"data\",c=>{l.push(c)}),s.on(\"end\",()=>{let c=Buffer.concat(l).buffer;A(c)}),s.on(\"error\",r)});n(new Sm(s,a))});o.on(\"error\",r),t&&(t.aborted&&o.destroy(new Yn(\"Request aborted\")),t.addEventListener(\"abort\",()=>o.destroy(new Yn(\"Request aborted\"))))})}async request({headers:e,signal:t}={}){return await this.constructRequest(e,t)}};var cA=class extends Br{constructor(e,t,n,r){super(),this.client=e,this.headers=t,this.maxRanges=n,this.allowFullFile=r,this._fileSize=null}async fetch(e,t){return this.maxRanges>=e.length?this.fetchSlices(e,t):(this.maxRanges>0&&e.length>1,Promise.all(e.map(n=>this.fetchSlice(n,t))))}async fetchSlices(e,t){let n=await this.client.request({headers:{...this.headers,Range:`bytes=${e.map(({offset:r,length:o})=>`${r}-${r+o}`).join(\",\")}`},signal:t});if(n.ok)if(n.status===206){let{type:r,params:o}=AB(n.getHeader(\"content-type\"));if(r===\"multipart/byteranges\"){let h=lB(await n.getData(),o.boundary);return this._fileSize=h[0].fileSize||null,h}let s=await n.getData(),{start:a,end:A,total:l}=Jc(n.getHeader(\"content-range\"));this._fileSize=l||null;let c=[{data:s,offset:a,length:A-a}];if(e.length>1){let h=await Promise.all(e.slice(1).map(u=>this.fetchSlice(u,t)));return c.concat(h)}return c}else{if(!this.allowFullFile)throw new Error(\"Server responded with full file\");let r=await n.getData();return this._fileSize=r.byteLength,[{data:r,offset:0,length:r.byteLength}]}else throw new Error(\"Error fetching data.\")}async fetchSlice(e,t){let{offset:n,length:r}=e,o=await this.client.request({headers:{...this.headers,Range:`bytes=${n}-${n+r}`},signal:t});if(o.ok)if(o.status===206){let s=await o.getData(),{total:a}=Jc(o.getHeader(\"content-range\"));return this._fileSize=a||null,{data:s,offset:n,length:r}}else{if(!this.allowFullFile)throw new Error(\"Server responded with full file\");let s=await o.getData();return this._fileSize=s.byteLength,{data:s,offset:0,length:s.byteLength}}else throw new Error(\"Error fetching data.\")}get fileSize(){return this._fileSize}};function Rm(i,{blockSize:e,cacheSize:t}){return e===null?i:new Wc(i,{blockSize:e,cacheSize:t})}function pv(i,{headers:e={},credentials:t,maxRanges:n=0,allowFullFile:r=!1,...o}={}){let s=new Zc(i,t),a=new cA(s,e,n,r);return Rm(a,o)}function Iv(i,{headers:e={},maxRanges:t=0,allowFullFile:n=!1,...r}={}){let o=new $c(i),s=new cA(o,e,t,n);return Rm(s,r)}function Ev(i,{headers:e={},maxRanges:t=0,allowFullFile:n=!1,...r}={}){let o=new eh(i),s=new cA(o,e,t,n);return Rm(s,r)}function th(i,{forceXHR:e=!1,...t}={}){return typeof fetch==\"function\"&&!e?pv(i,t):typeof XMLHttpRequest<\"u\"?Iv(i,t):Ev(i,t)}var Tm=class extends Br{constructor(e){super(),this.file=e}async fetchSlice(e,t){return new Promise((n,r)=>{let o=this.file.slice(e.offset,e.offset+e.length),s=new FileReader;s.onload=a=>n(a.target.result),s.onerror=r,s.onabort=r,s.readAsArrayBuffer(o),t&&t.addEventListener(\"abort\",()=>s.abort())})}};function EB(i){return new Tm(i)}Oa();Oa();function vm(i){switch(i){case le.BYTE:case le.ASCII:case le.SBYTE:case le.UNDEFINED:return 1;case le.SHORT:case le.SSHORT:return 2;case le.LONG:case le.SLONG:case le.FLOAT:case le.IFD:return 4;case le.RATIONAL:case le.SRATIONAL:case le.DOUBLE:case le.LONG8:case le.SLONG8:case le.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${i}`)}}function Cv(i){let e=i.GeoKeyDirectory;if(!e)return null;let t={};for(let n=4;n<=e[3]*4;n+=4){let r=ds[e[n]],o=e[n+1]?eo[e[n+1]]:null,s=e[n+2],a=e[n+3],A=null;if(!o)A=a;else{if(A=i[o],typeof A>\"u\"||A===null)throw new Error(`Could not get value of geoKey \\'${r}\\'.`);typeof A==\"string\"?A=A.substring(a,a+s-1):A.subarray&&(A=A.subarray(a,a+s),s===1&&(A=A[0]))}t[r]=A}return t}function Ss(i,e,t,n){let r=null,o=null,s=vm(e);switch(e){case le.BYTE:case le.ASCII:case le.UNDEFINED:r=new Uint8Array(t),o=i.readUint8;break;case le.SBYTE:r=new Int8Array(t),o=i.readInt8;break;case le.SHORT:r=new Uint16Array(t),o=i.readUint16;break;case le.SSHORT:r=new Int16Array(t),o=i.readInt16;break;case le.LONG:case le.IFD:r=new Uint32Array(t),o=i.readUint32;break;case le.SLONG:r=new Int32Array(t),o=i.readInt32;break;case le.LONG8:case le.IFD8:r=new Array(t),o=i.readUint64;break;case le.SLONG8:r=new Array(t),o=i.readInt64;break;case le.RATIONAL:r=new Uint32Array(t*2),o=i.readUint32;break;case le.SRATIONAL:r=new Int32Array(t*2),o=i.readInt32;break;case le.FLOAT:r=new Float32Array(t),o=i.readFloat32;break;case le.DOUBLE:r=new Float64Array(t),o=i.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e===le.RATIONAL||e===le.SRATIONAL)for(let a=0;ag.getWidth()-m.getWidth());for(let g=0;gd||s&&s>I)break}}let u=t;if(a){let[f,g]=A.getOrigin(),[m,d]=l.getResolution(A);u=[Math.round((a[0]-f)/m),Math.round((a[1]-g)/d),Math.round((a[2]-f)/m),Math.round((a[3]-g)/d)],u=[Math.min(u[0],u[2]),Math.min(u[1],u[3]),Math.max(u[0],u[2]),Math.max(u[1],u[3])]}return l.readRasters({...e,window:u})}},Ts=class i extends ih{constructor(e,t,n,r,o={}){super(),this.source=e,this.littleEndian=t,this.bigTiff=n,this.firstIFDOffset=r,this.cache=o.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(e,t){let n=this.bigTiff?4048:1024;return new AA((await this.source.fetch([{offset:e,length:typeof t<\"u\"?t:n}]))[0],e,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(e){let t=this.bigTiff?20:12,n=this.bigTiff?8:2,r=await this.getSlice(e),o=this.bigTiff?r.readUint64(e):r.readUint16(e),s=o*t+(this.bigTiff?16:6);r.covers(e,s)||(r=await this.getSlice(e,s));let a={},A=e+(this.bigTiff?8:2);for(let h=0;h{let t=await this.ifdRequests[e-1];if(t.nextIFDByteOffset===0)throw new Rs(e);return this.parseFileDirectoryAt(t.nextIFDByteOffset)})(),this.ifdRequests[e]}async getImage(e=0){let t=await this.requestIFD(e);return new Cm(t.fileDirectory,t.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let e=0,t=!0;for(;t;)try{await this.requestIFD(e),++e}catch(n){if(n instanceof Rs)t=!1;else throw n}return e}async getGhostValues(){let e=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;let t=\"GDAL_STRUCTURAL_METADATA_SIZE=\",n=t.length+100,r=await this.getSlice(e,n);if(t===Ss(r,le.ASCII,t.length,e)){let s=Ss(r,le.ASCII,n,e).split(`\\n`)[0],a=Number(s.split(\"=\")[1].split(\" \")[0])+s.length;a>n&&(r=await this.getSlice(e,a));let A=Ss(r,le.ASCII,a,e);this.ghostValues={},A.split(`\\n`).filter(l=>l.length>0).map(l=>l.split(\"=\")).forEach(([l,c])=>{this.ghostValues[l]=c})}return this.ghostValues}static async fromSource(e,t,n){let r=(await e.fetch([{offset:0,length:1024}],n))[0],o=new aA(r),s=o.getUint16(0,0),a;if(s===18761)a=!0;else if(s===19789)a=!1;else throw new TypeError(\"Invalid byte order value.\");let A=o.getUint16(2,a),l;if(A===42)l=!1;else if(A===43){if(l=!0,o.getUint16(4,a)!==8)throw new Error(\"Unsupported offset byte-size.\")}else throw new TypeError(\"Invalid magic number.\");let c=l?o.getUint64(8,a):o.getUint32(4,a);return new i(e,a,l,c,t)}close(){return typeof this.source.close==\"function\"?this.source.close():!1}};var bm=class extends ih{constructor(e,t){super(),this.mainFile=e,this.overviewFiles=t,this.imageFiles=[e].concat(t),this.fileDirectoriesPerFile=null,this.fileDirectoriesPerFileParsing=null,this.imageCount=null}async parseFileDirectoriesPerFile(){let e=[this.mainFile.parseFileDirectoryAt(this.mainFile.firstIFDOffset)].concat(this.overviewFiles.map(t=>t.parseFileDirectoryAt(t.firstIFDOffset)));return this.fileDirectoriesPerFile=await Promise.all(e),this.fileDirectoriesPerFile}async getImage(e=0){await this.getImageCount(),await this.parseFileDirectoriesPerFile();let t=0,n=0;for(let r=0;rt.getImageCount()));return this.imageCounts=await Promise.all(e),this.imageCount=this.imageCounts.reduce((t,n)=>t+n,0),this.imageCount}};async function CB(i,e={},t){return Ts.fromSource(th(i,e),t)}async function _B(i,e){return Ts.fromSource(EB(i),e)}async function yB(i,e=[],t={},n){let r=await Ts.fromSource(th(i,t),n),o=await Promise.all(e.map(s=>Ts.fromSource(th(s,t))));return new bm(r,o)}var _v=`\\n attribute vec4 a_position;\\n attribute vec4 a_texcoord;\\n\\n uniform mat4 u_matrix;\\n uniform mat4 u_textureMatrix;\\n\\n varying vec2 v_texcoord;\\n\\n void main() {\\n gl_Position = u_matrix * a_position;\\n vec2 texcoord = (u_textureMatrix * a_texcoord).xy;\\n v_texcoord = texcoord;\\n }\\n`,yv=`\\n precision mediump float;\\n\\n varying vec2 v_texcoord;\\n\\n uniform sampler2D u_texture;\\n\\n void main() {\\n if (\\n v_texcoord.x < 0.0 ||\\n v_texcoord.y < 0.0 ||\\n v_texcoord.x > 1.0 ||\\n v_texcoord.y > 1.0\\n ) {\\n discard;\\n }\\n gl_FragColor = texture2D(u_texture, v_texcoord);\\n }\\n`,nh=class{constructor(e){this.gl_=e,this.program_=rh(e,yv,_v),this.positionLocation=e.getAttribLocation(this.program_,\"a_position\"),this.texcoordLocation=e.getAttribLocation(this.program_,\"a_texcoord\"),this.matrixLocation=e.getUniformLocation(this.program_,\"u_matrix\"),this.textureMatrixLocation=e.getUniformLocation(this.program_,\"u_textureMatrix\"),this.textureLocation=e.getUniformLocation(this.program_,\"u_texture\"),this.positionBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.positionBuffer),this.positions=[0,0,0,1,1,0,1,0,0,1,1,1],e.bufferData(e.ARRAY_BUFFER,new Float32Array(this.positions),e.STATIC_DRAW),this.texcoordBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.texcoordBuffer),this.texcoords=[0,0,0,1,1,0,1,0,0,1,1,1],e.bufferData(e.ARRAY_BUFFER,new Float32Array(this.texcoords),e.STATIC_DRAW)}drawImage(e,t,n,r,o,s,a,A,l,c,h,u,f){let g=this.gl_;A===void 0&&(A=r),l===void 0&&(l=o),s===void 0&&(s=t),a===void 0&&(a=n),c===void 0&&(c=s),h===void 0&&(h=a),u===void 0&&(u=g.canvas.width),f===void 0&&(f=g.canvas.height),g.bindTexture(g.TEXTURE_2D,e),g.useProgram(this.program_),g.bindBuffer(g.ARRAY_BUFFER,this.positionBuffer),g.enableVertexAttribArray(this.positionLocation),g.vertexAttribPointer(this.positionLocation,2,g.FLOAT,!1,0,0),g.bindBuffer(g.ARRAY_BUFFER,this.texcoordBuffer),g.enableVertexAttribArray(this.texcoordLocation),g.vertexAttribPointer(this.texcoordLocation,2,g.FLOAT,!1,0,0);let m=ba(0,u,0,f,-1,1);m=S0(m,A,l,0),m=Ng(m,c,h,1),g.uniformMatrix4fv(this.matrixLocation,!1,m);let d=R0(r/t,o/n,0);d=Ng(d,s/t,a/n,1),g.uniformMatrix4fv(this.textureMatrixLocation,!1,d),g.uniform1i(this.textureLocation,0),g.drawArrays(g.TRIANGLES,0,this.positions.length/2)}};function BB(i,e,t){let n=i.createShader(e);if(n===null)throw new Error(\"Shader compilation failed\");if(i.shaderSource(n,t),i.compileShader(n),!i.getShaderParameter(n,i.COMPILE_STATUS)){let r=i.getShaderInfoLog(n);throw r===null?new Error(\"Shader info log creation failed\"):new Error(r)}return n}function rh(i,e,t){let n=i.createProgram(),r=BB(i,i.VERTEX_SHADER,t),o=BB(i,i.FRAGMENT_SHADER,e);if(n===null)throw new Error(\"Program creation failed\");if(i.attachShader(n,r),i.attachShader(n,o),i.linkProgram(n),!i.getProgramParameter(n,i.LINK_STATUS))throw i.getProgramInfoLog(n)===null?new Error(\"Program info log creation failed\"):new Error;return n}var Bv=`\\n attribute vec4 a_position;\\n\\n uniform mat4 u_matrix;\\n\\n void main() {\\n gl_Position = u_matrix * a_position;\\n }\\n`,xv=`\\n precision mediump float;\\n\\n uniform vec4 u_val;\\n void main() {\\n gl_FragColor = u_val;\\n }\\n`,wv=`\\n attribute vec4 a_position;\\n attribute vec2 a_texcoord;\\n\\n varying vec2 v_texcoord;\\n\\n uniform mat4 u_matrix;\\n\\n void main() {\\n gl_Position = u_matrix * a_position;\\n v_texcoord = a_texcoord;\\n }\\n`,Qv=`\\n precision mediump float;\\n\\n varying vec2 v_texcoord;\\n\\n uniform sampler2D u_texture;\\n\\n void main() {\\n if (v_texcoord.x < 0.0 || v_texcoord.x > 1.0 || v_texcoord.y < 0.0 || v_texcoord.y > 1.0) {\\n discard;\\n }\\n gl_FragColor = texture2D(u_texture, v_texcoord);\\n }\\n`;function xB(i,e,t,n){let r;return t&&t.length?r=t.shift():Lo?r=new OffscreenCanvas(i||300,e||300):r=document.createElement(\"canvas\"),i&&(r.width=i),e&&(r.height=e),r.getContext(\"webgl\",n)}function wB(i){let e=i.canvas;e.width=1,e.height=1,i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT|i.STENCIL_BUFFER_BIT)}var Fm=[];function QB(i,e,t,n,r,o,s,a,A,l,c,h,u,f){let g=Math.round(n*e),m=Math.round(n*t);i.canvas.width=g,i.canvas.height=m;let d,I;if(I=i.createTexture(),i.bindTexture(i.TEXTURE_2D,I),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),u?(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR)):(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST)),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,g,m,0,i.RGBA,c,null),d=i.createFramebuffer(),i.bindFramebuffer(i.FRAMEBUFFER,d),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,I,0),d===null)throw new Error(\"Could not create framebuffer\");if(I===null)throw new Error(\"Could not create texture\");if(A.length===0)return{width:g,height:m,framebuffer:d,texture:I};let p=be();A.forEach(function(w,T,R){Co(p,w.extent)});let _,C,E,y=1/r;if(!f||A.length!==1||l!==0){if(_=i.createTexture(),I===null)throw new Error(\"Could not create texture\");C=Math.round(oe(p)*y),E=Math.round(Se(p)*y);let w=i.getParameter(i.MAX_TEXTURE_SIZE),T=Math.max(C,E),R=T>w?w/T:1,F=Math.round(C*R),D=Math.round(E*R);i.bindTexture(i.TEXTURE_2D,_),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),u?(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR)):(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST)),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,F,D,0,i.RGBA,c,null);let S=i.createFramebuffer();i.bindFramebuffer(i.FRAMEBUFFER,S),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,_,0);let k=new nh(i);A.forEach(function(L,b,P){let N=(L.extent[0]-p[0])*y*R,Y=-(L.extent[3]-p[3])*y*R,M=oe(L.extent)*y*R,j=Se(L.extent)*y*R;if(i.bindFramebuffer(i.FRAMEBUFFER,S),i.viewport(0,0,F,D),L.clipExtent){let H=(L.clipExtent[0]-p[0])*y*R,O=-(L.clipExtent[3]-p[3])*y*R,K=oe(L.clipExtent)*y*R,ie=Se(L.clipExtent)*y*R;i.enable(i.SCISSOR_TEST),i.scissor(u?H:Math.round(H),u?O:Math.round(O),u?K:Math.round(H+K)-Math.round(H),u?ie:Math.round(O+ie)-Math.round(O))}k.drawImage(L.texture,L.width,L.height,l,l,L.width-2*l,L.height-2*l,u?N:Math.round(N),u?Y:Math.round(Y),u?M:Math.round(N+M)-Math.round(N),u?j:Math.round(Y+j)-Math.round(Y),F,D),i.disable(i.SCISSOR_TEST)}),i.deleteFramebuffer(S)}else _=A[0].texture,C=A[0].width,E=A[0].width;let B=ht(s),x=ht(p),Q=w=>{let T=(w[0][0]-B[0])/o*n,R=-(w[0][1]-B[1])/o*n,F=(w[1][0]-B[0])/o*n,D=-(w[1][1]-B[1])/o*n,S=(w[2][0]-B[0])/o*n,k=-(w[2][1]-B[1])/o*n;return{u1:F,v1:D,u0:T,v0:R,u2:S,v2:k}};i.bindFramebuffer(i.FRAMEBUFFER,d),i.viewport(0,0,g,m);{let w=[],T=[],R=rh(i,Qv,wv);i.useProgram(R);let F=i.getUniformLocation(R,\"u_texture\");i.bindTexture(i.TEXTURE_2D,_),i.uniform1i(F,0),a.getTriangles().forEach(function(N,Y,M){let j=N.source,H=N.target,{u1:O,v1:K,u0:ie,v0:ge,u2:Ie,v2:de}=Q(H),Pe=(j[0][0]-x[0])/r/C,tt=-(j[0][1]-x[1])/r/E,xt=(j[1][0]-x[0])/r/C,Je=-(j[1][1]-x[1])/r/E,Te=(j[2][0]-x[0])/r/C,Dt=-(j[2][1]-x[1])/r/E;w.push(O,K,ie,ge,Ie,de),T.push(xt,Je,Pe,tt,Te,Dt)});let D=ba(0,g,m,0,-1,1),S=i.getUniformLocation(R,\"u_matrix\");i.uniformMatrix4fv(S,!1,D);let k=i.getAttribLocation(R,\"a_position\"),L=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,L),i.bufferData(i.ARRAY_BUFFER,new Float32Array(w),i.STATIC_DRAW),i.vertexAttribPointer(k,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(k);let b=i.getAttribLocation(R,\"a_texcoord\"),P=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,P),i.bufferData(i.ARRAY_BUFFER,new Float32Array(T),i.STATIC_DRAW),i.vertexAttribPointer(b,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(b),i.drawArrays(i.TRIANGLES,0,w.length/2)}if(h){let w=rh(i,xv,Bv);i.useProgram(w);let T=ba(0,g,m,0,-1,1),R=i.getUniformLocation(w,\"u_matrix\");i.uniformMatrix4fv(R,!1,T);let F=Array.isArray(h)?h:[0,0,0,255],D=i.getUniformLocation(w,\"u_val\");!0?i.uniform4fv(D,F):i.uniform4iv(D,F);let k=i.getAttribLocation(w,\"a_position\"),L=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,L),i.vertexAttribPointer(k,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(k);let b=a.getTriangles().reduce(function(P,N){let Y=N.target,{u1:M,v1:j,u0:H,v0:O,u2:K,v2:ie}=Q(Y);return P.concat([M,j,H,O,H,O,K,ie,K,ie,M,j])},[]);i.bufferData(i.ARRAY_BUFFER,new Float32Array(b),i.STATIC_DRAW),i.drawArrays(i.LINES,0,b.length/2)}return{width:g,height:m,framebuffer:d,texture:I}}var Lm=class extends Ln{constructor(e){super({tileCoord:e.tileCoord,loader:()=>Promise.resolve(new Uint8ClampedArray(4)),interpolate:e.interpolate,transition:e.transition}),this.renderEdges_=e.renderEdges!==void 0?e.renderEdges:!1,this.pixelRatio_=e.pixelRatio,this.gutter_=e.gutter,this.reprojData_=null,this.reprojError_=null,this.reprojSize_=void 0,this.sourceTileGrid_=e.sourceTileGrid,this.targetTileGrid_=e.targetTileGrid,this.wrappedTileCoord_=e.wrappedTileCoord||e.tileCoord,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;let t=e.sourceProj,n=t.getExtent(),r=e.sourceTileGrid.getExtent();this.clipExtent_=t.canWrapX()?r?Ue(n,r):n:r;let o=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),s=this.targetTileGrid_.getExtent(),a=this.sourceTileGrid_.getExtent(),A=s?Ue(o,s):o;if(Xn(A)===0){this.state=G.EMPTY;return}n&&(a?a=Ue(a,n):a=n);let l=this.targetTileGrid_.getResolution(this.wrappedTileCoord_[0]),c=e.targetProj,h=Ul(t,c,A,l);if(!isFinite(h)||h<=0){this.state=G.EMPTY;return}let u=e.errorThreshold!==void 0?e.errorThreshold:.5;if(this.triangulation_=new Yl(t,c,A,a,h*u,l,e.transformMatrix),this.triangulation_.getTriangles().length===0){this.state=G.EMPTY;return}this.sourceZ_=this.sourceTileGrid_.getZForResolution(h);let f=this.triangulation_.calculateSourceExtent();if(a&&(t.canWrapX()?(f[1]=ce(f[1],a[1],a[3]),f[3]=ce(f[3],a[1],a[3])):f=Ue(f,a)),!Xn(f))this.state=G.EMPTY;else{let g=0,m=0;t.canWrapX()&&(g=oe(n),m=Math.floor((f[0]-n[0])/g)),Bo(f.slice(),t,!0).forEach(I=>{let p=this.sourceTileGrid_.getTileRangeForExtentAndZ(I,this.sourceZ_),_=e.getTileFunction;for(let C=p.minX;C<=p.maxX;C++)for(let E=p.minY;E<=p.maxY;E++){let y=_(this.sourceZ_,C,E,this.pixelRatio_);if(y){let B=m*g;this.sourceTiles_.push({tile:y,offset:B})}}++m}),this.sourceTiles_.length===0&&(this.state=G.EMPTY)}}getSize(){return this.reprojSize_}getData(){return this.reprojData_}getError(){return this.reprojError_}reproject_(){let e=[],t=!1;if(this.sourceTiles_.forEach(C=>{let E=C.tile;if(!E||E.getState()!==G.LOADED)return;let y=E.getSize(),B=this.gutter_,x,Q=Ta(E.getData());Q?x=Q:(t=!0,x=c0(Fn(E.getData())));let w=[y[0]+2*B,y[1]+2*B],T=x instanceof Float32Array,R=w[0]*w[1],F=T?Float32Array:Uint8ClampedArray,D=new F(x.buffer),S=F.BYTES_PER_ELEMENT,k=S*D.length/R,L=D.byteLength/w[1],b=Math.floor(L/S/w[0]),P=this.sourceTileGrid_.getTileCoordExtent(E.tileCoord);P[0]+=C.offset,P[2]+=C.offset;let N=this.clipExtent_?.slice();N&&(N[0]+=C.offset,N[2]+=C.offset),e.push({extent:P,clipExtent:N,data:D,dataType:F,bytesPerPixel:k,pixelSize:w,bandCount:b})}),this.sourceTiles_.length=0,e.length===0){this.state=G.ERROR,this.changed();return}let n=this.wrappedTileCoord_[0],r=this.targetTileGrid_.getTileSize(n),o=typeof r==\"number\"?r:r[0],s=typeof r==\"number\"?r:r[1],a=o*this.pixelRatio_,A=s*this.pixelRatio_,l=this.targetTileGrid_.getResolution(n),c=this.sourceTileGrid_.getResolution(this.sourceZ_),h=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),u=e[0].bandCount,f=new e[0].dataType(u*a*A),g=xB(a,A,Fm,{premultipliedAlpha:!1,antialias:!1}),m,d=g.RGBA,I;e[0].dataType==Float32Array?(I=g.FLOAT,g.getExtension(\"WEBGL_color_buffer_float\"),g.getExtension(\"OES_texture_float\"),g.getExtension(\"EXT_float_blend\"),m=g.getExtension(\"OES_texture_float_linear\")!==null&&this.interpolate):(I=g.UNSIGNED_BYTE,m=this.interpolate);let p=4,_=Math.ceil(u/p);for(let C=_-1;C>=0;--C){let E=[];for(let F=0,D=e.length;F{let n=t.getState();if(n!==G.IDLE&&n!==G.LOADING)return;e++;let r=X(t,U.CHANGE,()=>{let o=t.getState();(o==G.LOADED||o==G.ERROR||o==G.EMPTY)&&(se(r),e--,e===0&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(r)}),e===0?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:t}){t.getState()==G.IDLE&&t.load()})}unlistenSources_(){this.sourcesListenerKeys_.forEach(se),this.sourcesListenerKeys_=null}},SB=Lm;var Mm=class extends sc{constructor(e){let t=e.projection===void 0?\"EPSG:3857\":e.projection,n=e.tileGrid;n===void 0&&t&&(n=nc({extent:ls(t),maxResolution:e.maxResolution,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize})),super({cacheSize:.1,attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,projection:t,tileGrid:n,state:e.state,wrapX:e.wrapX,transition:e.transition,interpolate:e.interpolate,key:e.key,zDirection:e.zDirection}),this.gutter_=e.gutter!==void 0?e.gutter:0,this.tileSize_=e.tileSize?_e(e.tileSize):null,this.tileSizes_=null,this.tileLoadingKeys_={},this.loader_=e.loader,this.handleTileChange_=this.handleTileChange_.bind(this),this.bandCount=e.bandCount===void 0?4:e.bandCount,this.tileGridForProjection_={},this.crossOrigin_=e.crossOrigin||\"anonymous\",this.transformMatrix=null}setTileSizes(e){this.tileSizes_=e}getTileSize(e){if(this.tileSizes_)return this.tileSizes_[e];if(this.tileSize_)return this.tileSize_;let t=this.getTileGrid();return t?_e(t.getTileSize(e)):[256,256]}getGutterForProjection(e){let t=this.getProjection();return(!t||Ni(t,e))&&!this.transformMatrix?this.gutter_:0}setLoader(e){this.loader_=e}getReprojTile_(e,t,n,r,o){let s=this.tileGrid||this.getTileGridForProjection(o||r),a=Math.max.apply(null,s.getResolutions().map((f,g)=>{let m=_e(s.getTileSize(g)),d=this.getTileSize(g);return Math.max(d[0]/m[0],d[1]/m[1])})),A=this.getTileGridForProjection(r),l=[e,t,n],c=this.getTileCoordForTileUrlFunction(l,r),h=Object.assign({sourceProj:o||r,sourceTileGrid:s,targetProj:r,targetTileGrid:A,tileCoord:l,wrappedTileCoord:c,pixelRatio:a,gutter:this.gutter_,getTileFunction:(f,g,m,d)=>this.getTile(f,g,m,d),transformMatrix:this.transformMatrix},this.tileOptions),u=new SB(h);return u.key=this.getKey(),u}getTile(e,t,n,r,o){let s=this.getProjection();if(o&&(s&&!Ni(s,o)||this.transformMatrix))return this.getReprojTile_(e,t,n,o,s);let a=this.getTileSize(e),A=this.loader_,l=new AbortController,c={signal:l.signal,crossOrigin:this.crossOrigin_},h=this.getTileCoordForTileUrlFunction([e,t,n]);if(!h)return null;let u=h[0],f=h[1],g=h[2],m=this.getTileGrid()?.getFullTileRange(u);m&&(c.maxY=m.getHeight()-1);function d(){return xA(function(){return A(u,f,g,c)})}let I=Object.assign({tileCoord:[e,t,n],loader:d,size:a,controller:l},this.tileOptions),p=new Ln(I);return p.key=this.getKey(),p.addEventListener(U.CHANGE,this.handleTileChange_),p}handleTileChange_(e){let t=e.target,n=z(t),r=t.getState(),o;r==G.LOADING?(this.tileLoadingKeys_[n]=!0,o=dr.TILELOADSTART):n in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[n],o=r==G.ERROR?dr.TILELOADERROR:r==G.LOADED?dr.TILELOADEND:void 0),o&&this.dispatchEvent(new cs(o,t))}getTileGridForProjection(e){let t=this.getProjection();if(this.tileGrid&&(!t||Ni(t,e))&&!this.transformMatrix)return this.tileGrid;let n=z(e);return n in this.tileGridForProjection_||(this.tileGridForProjection_[n]=As(e)),this.tileGridForProjection_[n]}setTileGridForProjection(e,t){let n=fe(e);if(n){let r=z(n);r in this.tileGridForProjection_||(this.tileGridForProjection_[r]=t)}}},oh=Mm;function Sv(i){return((i.fileDirectory.NewSubfileType||0)&4)===4}function Rv(i,e){if(!i)return!1;if(i===!0)return!0;if(e.getSamplesPerPixel()!==3)return!1;let t=e.fileDirectory.PhotometricInterpretation,n=mc.photometricInterpretations;return t===n.CMYK||t===n.YCbCr||t===n.CIELab||t===n.ICCLab}var RB=\"STATISTICS_MAXIMUM\",TB=\"STATISTICS_MINIMUM\",km=256,Pm;function Tv(){return Pm||(Pm=new ym),Pm}function vv(i){try{return i.getBoundingBox(!0)}catch{return[0,0,i.getWidth(),i.getHeight()]}}function Dv(i){try{return i.getOrigin().slice(0,2)}catch{return[0,i.getHeight()]}}function bv(i,e){try{return i.getResolution(e)}catch{return[e.getWidth()/i.getWidth(),e.getHeight()/i.getHeight()]}}function Fv(i){let e=i.geoKeys;if(!e)return null;if(e.ProjectedCSTypeGeoKey&&e.ProjectedCSTypeGeoKey!==32767){let t=\"EPSG:\"+e.ProjectedCSTypeGeoKey,n=fe(t);if(!n){let r=kh(e.ProjLinearUnitsGeoKey);r&&(n=new Pi({code:t,units:r}))}return n}if(e.GeographicTypeGeoKey&&e.GeographicTypeGeoKey!==32767){let t=\"EPSG:\"+e.GeographicTypeGeoKey,n=fe(t);if(!n){let r=kh(e.GeogAngularUnitsGeoKey);r&&(n=new Pi({code:t,units:r}))}return n}return null}function Lv(i){return i.getImageCount().then(function(e){let t=new Array(e);for(let n=0;nt*i)throw new Error(n)}function kv(i){return i instanceof Int8Array?-128:i instanceof Int16Array?-32768:i instanceof Int32Array?-2147483648:i instanceof Float32Array?12e-39:0}function Pv(i){return i instanceof Int8Array?127:i instanceof Uint8Array||i instanceof Uint8ClampedArray?255:i instanceof Int16Array?32767:i instanceof Uint16Array?65535:i instanceof Int32Array?2147483647:i instanceof Uint32Array?4294967295:i instanceof Float32Array?34e37:255}var sh=class extends oh{constructor(e){super({state:\"loading\",tileGrid:null,projection:e.projection||null,transition:e.transition,interpolate:e.interpolate!==!1,wrapX:e.wrapX}),this.sourceInfo_=e.sources;let t=this.sourceInfo_.length;this.sourceOptions_=e.sourceOptions,this.sourceImagery_=new Array(t),this.sourceMasks_=new Array(t),this.resolutionFactors_=new Array(t),this.samplesPerPixel_,this.nodataValues_,this.metadata_,this.normalize_=e.normalize!==!1,this.addAlpha_=!1,this.error_=null,this.convertToRGB_=e.convertToRGB||!1,this.setKey(this.sourceInfo_.map(o=>o.url).join(\",\"));let n=this,r=new Array(t);for(let o=0;o=0;--n){let r=t[n],o=Fv(r);if(o){this.projection=o;break}}}determineTransformMatrix(e){let t=e[0];for(let n=t.length-1;n>=0;--n){let o=t[n].fileDirectory.ModelTransformation;if(o){let[s,a,A,l,c,h,u,f]=o,g=Zn(Zn([1/Math.sqrt(s*s+c*c),0,0,-1/Math.sqrt(a*a+h*h),l,f],[s,c,a,h,0,0]),[1,0,0,1,-l,-f]);this.transformMatrix=g,this.addAlpha_=!0;break}}}configure_(e){let t,n,r,o,s,a=new Array(e.length),A=new Array(e.length),l=new Array(e.length),c=0,h=e.length;for(let d=0;d{Sv(Q)?p.push(Q):I.push(Q)});let _=I.length;if(p.length>0&&p.length!==_)throw new Error(`Expected one mask per image found ${p.length} masks and ${_} images`);let C,E,y=new Array(_),B=new Array(_),x=new Array(_);A[d]=new Array(_),l[d]=new Array(_);for(let Q=0;Q<_;++Q){let w=I[Q],T=w.getGDALNoData();l[d][Q]=w.getGDALMetadata(0),A[d][Q]=T;let R=this.sourceInfo_[d].bands;a[d]=R?R.length:w.getSamplesPerPixel();let F=_-(Q+1);C||(C=vv(w)),E||(E=Dv(w));let D=bv(w,I[0]);x[F]=D[0];let S=[w.getTileWidth(),w.getTileHeight()];S[0]!==S[1]&&S[1]x.length&&(c=s.length-x.length);let Q=s[s.length-1]/x[x.length-1];this.resolutionFactors_[d]=Q;let w=x.map(R=>R*=Q),T=`Resolution mismatch for source ${d}, got [${w}] but expected [${s}]`;hA(s.slice(c,s.length),w,.02,T,this.viewRejector)}r?hA(r.slice(c,r.length),B,.01,`Tile size mismatch for source ${d}`,this.viewRejector):r=B,o?hA(o.slice(c,o.length),y,0,`Tile size mismatch for source ${d}`,this.viewRejector):o=y,this.sourceImagery_[d]=I.reverse(),this.sourceMasks_[d]=p.reverse()}for(let d=0,I=this.sourceImagery_.length;dye(d,p));m=DA(t,I)}this.viewResolver({showFullExtent:!0,projection:this.projection,resolutions:s,center:Dr(Et(m),this.projection),extent:hi(m,this.projection),zoom:g})}loadTile_(e,t,n,r){let o=this.getTileSize(e),s=this.sourceImagery_.length,a=new Array(s*2),A=this.nodataValues_,l=this.sourceInfo_,c=Tv();for(let h=0;h{let a=new Image;a.crossOrigin=r.crossOrigin??null,a.addEventListener(\"load\",()=>o(a)),a.addEventListener(\"error\",()=>s(Nv)),a.src=rc(i,e,t,n,r.maxY)})}function DB(i){return function(e,t,n,r){let o=dC(i,e,t,n);return MB(o,e,t,n,r)}}function Gv(i){return function(e,t,n,r){let o=i(e,t,n,r);return MB(o,e,t,n,r)}}function bB(i){let e;if(Array.isArray(i))e=DB(i);else if(typeof i==\"string\"){let t=oc(i);e=DB(t)}else if(typeof i==\"function\")e=Gv(i);else throw new Error(\"The url option must be a single template, an array of templates, or a function for getting a URL\");return e}var FB=0;function LB(i){return Array.isArray(i)?i.join(`\\n`):typeof i==\"string\"?i:(++FB,\"url-function-key-\"+FB)}var Nm=class extends oh{constructor(e){e=e||{};let t=e.loader,n;e.url&&(t=bB(e.url),n=LB(e.url));let r=t?e.state:\"loading\",o=e.wrapX===void 0?!0:e.wrapX;super({loader:t,key:n,attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize,gutter:e.gutter,maxResolution:e.maxResolution,projection:e.projection,tileGrid:e.tileGrid,state:r,wrapX:o,transition:e.transition,interpolate:e.interpolate!==!1,crossOrigin:e.crossOrigin,zDirection:e.zDirection})}setUrl(e){let t=bB(e);this.setLoader(t),this.setKey(LB(e)),this.getState()!==\"ready\"&&this.setState(\"ready\")}},kB=Nm;var PB={OSM:CC,VectorSource:Yu,GeoTIFFSource:vB,GeoJSONSource:Yu,ImageTileSource:kB};var Gm=\"units\",Ov=[1,2,5],uA=25.4/.28,Om=class extends At{constructor(e){e=e||{};let t=document.createElement(\"div\");t.style.pointerEvents=\"none\",super({element:t,render:e.render,target:e.target}),this.on,this.once,this.un;let n=e.className!==void 0?e.className:e.bar?\"ol-scale-bar\":\"ol-scale-line\";this.innerElement_=document.createElement(\"div\"),this.innerElement_.className=n+\"-inner\",this.element.className=n+\" \"+gt,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=e.minWidth!==void 0?e.minWidth:64,this.maxWidth_=e.maxWidth,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_=\"\",this.addChangeListener(Gm,this.handleUnitsChanged_),this.setUnits(e.units||\"metric\"),this.scaleBar_=e.bar||!1,this.scaleBarSteps_=e.steps||4,this.scaleBarText_=e.text||!1,this.dpi_=e.dpi||void 0}getUnits(){return this.get(Gm)}handleUnitsChanged_(){this.updateElement_()}setUnits(e){this.set(Gm,e)}setDpi(e){this.dpi_=e}updateElement_(){let e=this.viewState_;if(!e){this.renderedVisible_&&(this.element.style.display=\"none\",this.renderedVisible_=!1);return}let t=e.center,n=e.projection,r=this.getUnits(),o=r==\"degrees\"?\"degrees\":\"m\",s=Do(n,e.resolution,t,o),a=this.minWidth_*(this.dpi_||uA)/uA,A=this.maxWidth_!==void 0?this.maxWidth_*(this.dpi_||uA)/uA:void 0,l=a*s,c=\"\";if(r==\"degrees\"){let _=Ci.degrees;l*=_,l<_/60?(c=\"\\\\u2033\",s*=3600):l<_?(c=\"\\\\u2032\",s*=60):c=\"\\\\xB0\"}else if(r==\"imperial\")l<.9144?(c=\"in\",s/=.0254):l<1609.344?(c=\"ft\",s/=.3048):(c=\"mi\",s/=1609.344);else if(r==\"nautical\")s/=1852,c=\"NM\";else if(r==\"metric\")l<1e-6?(c=\"nm\",s*=1e9):l<.001?(c=\"\\\\u03BCm\",s*=1e6):l<1?(c=\"mm\",s*=1e3):l<1e3?c=\"m\":(c=\"km\",s/=1e3);else if(r==\"us\")l<.9144?(c=\"in\",s*=39.37):l<1609.344?(c=\"ft\",s/=.30480061):(c=\"mi\",s/=1609.3472);else throw new Error(\"Invalid units\");let h=3*Math.floor(Math.log(a*s)/Math.log(10)),u,f,g,m=0,d,I;for(;;){g=Math.floor(h/3);let _=Math.pow(10,g);if(u=Ov[(h%3+3)%3]*_,f=Math.round(u/s),isNaN(f)){this.element.style.display=\"none\",this.renderedVisible_=!1;return}if(A!==void 0&&f>=A){u=m,f=d,g=I;break}else if(f>=a)break;m=u,d=f,I=g,++h}let p=this.scaleBar_?this.createScaleBar(f,u,c):u.toFixed(g<0?-g:0)+\" \"+c;this.renderedHTML_!=p&&(this.innerElement_.innerHTML=p,this.renderedHTML_=p),this.renderedWidth_!=f&&(this.innerElement_.style.width=f+\"px\",this.renderedWidth_=f),this.renderedVisible_||(this.element.style.display=\"\",this.renderedVisible_=!0)}createScaleBar(e,t,n){let r=this.getScaleForResolution(),o=r<1?Math.round(1/r).toLocaleString()+\" : 1\":\"1 : \"+Math.round(r).toLocaleString(),s=this.scaleBarSteps_,a=e/s,A=[this.createMarker(\"absolute\")];for(let c=0;c
`+this.createMarker(\"relative\")+(c%2===0||s===2?this.createStepText(c,e,!1,t,n):\"\")+\"\")}return A.push(this.createStepText(s,e,!0,t,n)),(this.scaleBarText_?`
`+o+\"
\":\"\")+A.join(\"\")}createMarker(e){return`
`}createStepText(e,t,n,r,o){let a=(e===0?0:Math.round(r/this.scaleBarSteps_*e*100)/100)+(e===0?\"\":\" \"+o),A=e===0?-3:t/this.scaleBarSteps_*-1,l=e===0?0:t/this.scaleBarSteps_*2;return`
`+a+\"
\"}getScaleForResolution(){let e=Do(this.viewState_.projection,this.viewState_.resolution,this.viewState_.center,\"m\"),t=this.dpi_||uA,n=1e3/25.4;return e*n*t}render(e){let t=e.frameState;t?this.viewState_=t.viewState:this.viewState_=null,this.updateElement_()}},NB=Om;var GB=[\"fullscreenchange\",\"webkitfullscreenchange\"],OB={ENTERFULLSCREEN:\"enterfullscreen\",LEAVEFULLSCREEN:\"leavefullscreen\"},Um=class extends At{constructor(e){e=e||{},super({element:document.createElement(\"div\"),target:e.target}),this.on,this.once,this.un,this.keys_=e.keys!==void 0?e.keys:!1,this.source_=e.source,this.isInFullscreen_=!1,this.boundHandleMapTargetChange_=this.handleMapTargetChange_.bind(this),this.cssClassName_=e.className!==void 0?e.className:\"ol-full-screen\",this.documentListeners_=[],this.activeClassName_=e.activeClassName!==void 0?e.activeClassName.split(\" \"):[this.cssClassName_+\"-true\"],this.inactiveClassName_=e.inactiveClassName!==void 0?e.inactiveClassName.split(\" \"):[this.cssClassName_+\"-false\"];let t=e.label!==void 0?e.label:\"\\\\u2922\";this.labelNode_=typeof t==\"string\"?document.createTextNode(t):t;let n=e.labelActive!==void 0?e.labelActive:\"\\\\xD7\";this.labelActiveNode_=typeof n==\"string\"?document.createTextNode(n):n;let r=e.tipLabel?e.tipLabel:\"Toggle full-screen\";this.button_=document.createElement(\"button\"),this.button_.title=r,this.button_.setAttribute(\"type\",\"button\"),this.button_.appendChild(this.labelNode_),this.button_.addEventListener(U.CLICK,this.handleClick_.bind(this),!1),this.setClassName_(this.button_,this.isInFullscreen_),this.element.className=`${this.cssClassName_} ${gt} ${fi}`,this.element.appendChild(this.button_)}handleClick_(e){e.preventDefault(),this.handleFullScreen_()}handleFullScreen_(){let e=this.getMap();if(!e)return;let t=e.getOwnerDocument();if(UB(t))if(YB(t))Yv(t);else{let n;this.source_?n=typeof this.source_==\"string\"?t.getElementById(this.source_):this.source_:n=e.getTargetElement(),this.keys_?Uv(n):HB(n)}}handleFullScreenChange_(){let e=this.getMap();if(!e)return;let t=this.isInFullscreen_;this.isInFullscreen_=YB(e.getOwnerDocument()),t!==this.isInFullscreen_&&(this.setClassName_(this.button_,this.isInFullscreen_),this.isInFullscreen_?(Bn(this.labelActiveNode_,this.labelNode_),this.dispatchEvent(OB.ENTERFULLSCREEN)):(Bn(this.labelNode_,this.labelActiveNode_),this.dispatchEvent(OB.LEAVEFULLSCREEN)),e.updateSize())}setClassName_(e,t){t?(e.classList.remove(...this.inactiveClassName_),e.classList.add(...this.activeClassName_)):(e.classList.remove(...this.activeClassName_),e.classList.add(...this.inactiveClassName_))}setMap(e){let t=this.getMap();t&&t.removeChangeListener(Le.TARGET,this.boundHandleMapTargetChange_),super.setMap(e),this.handleMapTargetChange_(),e&&e.addChangeListener(Le.TARGET,this.boundHandleMapTargetChange_)}handleMapTargetChange_(){let e=this.documentListeners_;for(let n=0,r=e.length;nn?(this.direction_=fA.HORIZONTAL,this.widthLimit_=t-a):(this.direction_=fA.VERTICAL,this.heightLimit_=n-A),this.sliderInitialized_=!0}handleContainerClick_(e){let t=this.getMap().getView(),n=this.getRelativePosition_(e.offsetX-this.thumbSize_[0]/2,e.offsetY-this.thumbSize_[1]/2),r=this.getResolutionForPosition_(n),o=t.getConstrainedZoom(t.getZoomForResolution(r));t.animateInternal({zoom:o,duration:this.duration_,easing:Yt})}handleDraggerStart_(e){if(!this.dragging_&&e.target===this.element.firstElementChild){let t=this.element.firstElementChild;if(this.getMap().getView().beginInteraction(),this.startX_=e.clientX-parseFloat(t.style.left),this.startY_=e.clientY-parseFloat(t.style.top),this.dragging_=!0,this.dragListenerKeys_.length===0){let n=this.handleDraggerDrag_,r=this.handleDraggerEnd_,o=this.getMap().getOwnerDocument();this.dragListenerKeys_.push(X(o,Ht.POINTERMOVE,n,this),X(o,Ht.POINTERUP,r,this))}}}handleDraggerDrag_(e){if(this.dragging_){let t=e.clientX-this.startX_,n=e.clientY-this.startY_,r=this.getRelativePosition_(t,n);this.currentResolution_=this.getResolutionForPosition_(r),this.getMap().getView().setResolution(this.currentResolution_)}}handleDraggerEnd_(e){this.dragging_&&(this.getMap().getView().endInteraction(),this.dragging_=!1,this.startX_=void 0,this.startY_=void 0,this.dragListenerKeys_.forEach(se),this.dragListenerKeys_.length=0)}setThumbPosition_(e){let t=this.getPositionForResolution_(e),n=this.element.firstElementChild;this.direction_==fA.HORIZONTAL?n.style.left=this.widthLimit_*t+\"px\":n.style.top=this.heightLimit_*t+\"px\"}getRelativePosition_(e,t){let n;return this.direction_===fA.HORIZONTAL?n=e/this.widthLimit_:n=t/this.heightLimit_,ce(n,0,1)}getResolutionForPosition_(e){return this.getMap().getView().getResolutionForValueFunction()(1-e)}getPositionForResolution_(e){let t=this.getMap().getView().getValueForResolutionFunction();return ce(1-t(e),0,1)}render(e){if(!e.frameState||!this.sliderInitialized_&&!this.initSlider_())return;let t=e.frameState.viewState.resolution;this.currentResolution_=t,this.setThumbPosition_(t)}},KB=Ym;var Hm=\"projection\",qB=\"coordinateFormat\",zm=class extends At{constructor(e){e=e||{};let t=document.createElement(\"div\");t.className=e.className!==void 0?e.className:\"ol-mouse-position\",super({element:t,render:e.render,target:e.target}),this.on,this.once,this.un,this.addChangeListener(Hm,this.handleProjectionChanged_),e.coordinateFormat&&this.setCoordinateFormat(e.coordinateFormat),e.projection&&this.setProjection(e.projection),this.renderOnMouseOut_=e.placeholder!==void 0,this.placeholder_=this.renderOnMouseOut_?e.placeholder:\" \",this.renderedHTML_=t.innerHTML,this.mapProjection_=null,this.transform_=null,this.wrapX_=e.wrapX!==!1}handleProjectionChanged_(){this.transform_=null}getCoordinateFormat(){return this.get(qB)}getProjection(){return this.get(Hm)}handleMouseMove(e){let t=this.getMap();this.updateHTML_(t.getEventPixel(e))}handleMouseOut(e){this.updateHTML_(null)}setMap(e){if(super.setMap(e),e){let t=e.getViewport();this.listenerKeys.push(X(t,Ht.POINTERMOVE,this.handleMouseMove,this)),this.renderOnMouseOut_&&this.listenerKeys.push(X(t,Ht.POINTEROUT,this.handleMouseOut,this)),this.updateHTML_(null)}}setCoordinateFormat(e){this.set(qB,e)}setProjection(e){this.set(Hm,fe(e))}updateHTML_(e){let t=this.placeholder_;if(e&&this.mapProjection_){if(!this.transform_){let o=this.getProjection();o?this.transform_=li(this.mapProjection_,o):this.transform_=Jp}let r=this.getMap().getCoordinateFromPixelInternal(e);if(r){let o=ci();if(o&&(this.transform_=li(this.mapProjection_,o)),this.transform_(r,r),this.wrapX_){let a=o||this.getProjection()||this.mapProjection_;Qo(r,a)}let s=this.getCoordinateFormat();s?t=s(r):t=r.toString()}}(!this.renderedHTML_||t!==this.renderedHTML_)&&(this.element.innerHTML=t,this.renderedHTML_=t)}render(e){let t=e.frameState;t?this.mapProjection_!=t.viewState.projection&&(this.mapProjection_=t.viewState.projection,this.transform_=null):this.mapProjection_=null}},VB=zm;var ah=.75,gA=.1,Km=class extends At{constructor(e){e=e||{},super({element:document.createElement(\"div\"),render:e.render,target:e.target}),this.boundHandleRotationChanged_=this.handleRotationChanged_.bind(this),this.collapsed_=e.collapsed!==void 0?e.collapsed:!0,this.collapsible_=e.collapsible!==void 0?e.collapsible:!0,this.collapsible_||(this.collapsed_=!1),this.rotateWithView_=e.rotateWithView!==void 0?e.rotateWithView:!1,this.viewExtent_=void 0;let t=e.className!==void 0?e.className:\"ol-overviewmap\",n=e.tipLabel!==void 0?e.tipLabel:\"Overview map\",r=e.collapseLabel!==void 0?e.collapseLabel:\"\\\\u2039\";typeof r==\"string\"?(this.collapseLabel_=document.createElement(\"span\"),this.collapseLabel_.textContent=r):this.collapseLabel_=r;let o=e.label!==void 0?e.label:\"\\\\u203A\";typeof o==\"string\"?(this.label_=document.createElement(\"span\"),this.label_.textContent=o):this.label_=o;let s=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_,a=document.createElement(\"button\");a.setAttribute(\"type\",\"button\"),a.title=n,a.appendChild(s),a.addEventListener(U.CLICK,this.handleClick_.bind(this),!1),this.ovmapDiv_=document.createElement(\"div\"),this.ovmapDiv_.className=\"ol-overviewmap-map\",this.view_=e.view;let A=new Sa({view:e.view,controls:new st,interactions:new st});this.ovmap_=A,e.layers&&e.layers.forEach(function(I){A.addLayer(I)});let l=document.createElement(\"div\");l.className=\"ol-overviewmap-box\",l.style.boxSizing=\"border-box\",this.boxOverlay_=new kl({position:[0,0],positioning:\"center-center\",element:l}),this.ovmap_.addOverlay(this.boxOverlay_);let c=t+\" \"+gt+\" \"+fi+(this.collapsed_&&this.collapsible_?\" \"+Po:\"\")+(this.collapsible_?\"\":\" ol-uncollapsible\"),h=this.element;h.className=c,h.appendChild(this.ovmapDiv_),h.appendChild(a);let u=this.boxOverlay_,f=this.boxOverlay_.getElement(),g=I=>({clientX:I.clientX,clientY:I.clientY}),m=function(I){let p=g(I),_=A.getEventCoordinate(p);u.setPosition(_)},d=I=>{let p=A.getEventCoordinateInternal(I),_=this.getMap();_.getView().setCenterInternal(p);let C=_.getOwnerDocument();C.removeEventListener(\"pointermove\",m),C.removeEventListener(\"pointerup\",d)};this.ovmapDiv_.addEventListener(\"pointerdown\",I=>{let p=this.getMap().getOwnerDocument();I.target===f&&p.addEventListener(\"pointermove\",m),p.addEventListener(\"pointerup\",d)})}setMap(e){let t=this.getMap();if(e!==t){if(t){let n=t.getView();n&&this.unbindView_(n),this.ovmap_.setTarget(null)}if(super.setMap(e),e){this.ovmap_.setTarget(this.ovmapDiv_),this.listenerKeys.push(X(e,qt.PROPERTYCHANGE,this.handleMapPropertyChange_,this));let n=e.getView();n&&this.bindView_(n),this.ovmap_.isRendered()||this.updateBoxAfterOvmapIsRendered_()}}}handleMapPropertyChange_(e){if(e.key===Le.VIEW){let t=e.oldValue;t&&this.unbindView_(t);let n=this.getMap().getView();this.bindView_(n)}else!this.ovmap_.isRendered()&&(e.key===Le.TARGET||e.key===Le.SIZE)&&this.ovmap_.updateSize()}bindView_(e){if(!this.view_){let t=new yt({projection:e.getProjection()});this.ovmap_.setView(t)}e.addChangeListener(St.ROTATION,this.boundHandleRotationChanged_),this.handleRotationChanged_(),e.isDef()&&(this.ovmap_.updateSize(),this.resetExtent_())}unbindView_(e){e.removeChangeListener(St.ROTATION,this.boundHandleRotationChanged_)}handleRotationChanged_(){this.rotateWithView_&&this.ovmap_.getView().setRotation(this.getMap().getView().getRotation())}validateExtent_(){let e=this.getMap(),t=this.ovmap_;if(!e.isRendered()||!t.isRendered())return;let n=e.getSize(),o=e.getView().calculateExtentInternal(n);if(this.viewExtent_&&Jt(o,this.viewExtent_))return;this.viewExtent_=o;let s=t.getSize(),A=t.getView().calculateExtentInternal(s),l=t.getPixelFromCoordinateInternal(ht(o)),c=t.getPixelFromCoordinateInternal(Jn(o)),h=Math.abs(l[0]-c[0]),u=Math.abs(l[1]-c[1]),f=s[0],g=s[1];hf*ah||u>g*ah?this.resetExtent_():Ii(A,o)||this.recenter_()}resetExtent_(){if(ah===0||gA===0)return;let e=this.getMap(),t=this.ovmap_,n=e.getSize(),o=e.getView().calculateExtentInternal(n),s=t.getView(),a=Math.log(ah/gA)/Math.LN2,A=1/(Math.pow(2,a/2)*gA);xp(o,A),s.fitInternal(ea(o))}recenter_(){let e=this.getMap(),t=this.ovmap_,n=e.getView();t.getView().setCenterInternal(n.getCenterInternal())}updateBox_(){let e=this.getMap(),t=this.ovmap_;if(!e.isRendered()||!t.isRendered())return;let n=e.getSize(),r=e.getView(),o=t.getView(),s=this.rotateWithView_?0:-r.getRotation(),a=this.boxOverlay_,A=this.boxOverlay_.getElement(),l=r.getCenter(),c=r.getResolution(),h=o.getResolution(),u=n[0]*c/h,f=n[1]*c/h;if(a.setPosition(l),A){A.style.width=u+\"px\",A.style.height=f+\"px\";let g=\"rotate(\"+s+\"rad)\";A.style.transform=g}}updateBoxAfterOvmapIsRendered_(){this.ovmapPostrenderKey_||(this.ovmapPostrenderKey_=qn(this.ovmap_,zt.POSTRENDER,e=>{delete this.ovmapPostrenderKey_,this.updateBox_()}))}handleClick_(e){e.preventDefault(),this.handleToggle_()}handleToggle_(){this.element.classList.toggle(Po),this.collapsed_?Bn(this.collapseLabel_,this.label_):Bn(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;let e=this.ovmap_;if(!this.collapsed_){if(e.isRendered()){this.viewExtent_=void 0,e.render();return}e.updateSize(),this.resetExtent_(),this.updateBoxAfterOvmapIsRendered_()}}getCollapsible(){return this.collapsible_}setCollapsible(e){this.collapsible_!==e&&(this.collapsible_=e,this.element.classList.toggle(\"ol-uncollapsible\"),!e&&this.collapsed_&&this.handleToggle_())}setCollapsed(e){!this.collapsible_||this.collapsed_===e||this.handleToggle_()}getCollapsed(){return this.collapsed_}getRotateWithView(){return this.rotateWithView_}setRotateWithView(e){this.rotateWithView_!==e&&(this.rotateWithView_=e,this.getMap().getView().getRotation()!==0&&(this.rotateWithView_?this.handleRotationChanged_():this.ovmap_.getView().setRotation(0),this.viewExtent_=void 0,this.validateExtent_(),this.updateBox_()))}getOverviewMap(){return this.ovmap_}render(e){this.validateExtent_(),this.updateBox_()}},XB=Km;var Ah=class extends At{constructor(e){let t=document.createElement(\"div\");t.className=\"ol-control ol-unselectable info-box\",t.style.cssText=e.cssText||\"top: 65px; left: .5em; padding: 5px;\",t.innerHTML=e.html,super({element:t,target:e.target})}};var JB={ScaleLineControl:NB,FullScreenControl:zB,ZoomSliderControl:KB,MousePositionControl:VB,OverviewMapControl:XB,InfoBox:Ah};var Xm=\"http://www.w3.org/2001/XMLSchema-instance\";function vs(i,e){return dA().createElementNS(i,e)}function Di(i,e){return jB(i,e,[]).join(\"\")}function jB(i,e,t){if(i.nodeType==Node.CDATA_SECTION_NODE||i.nodeType==Node.TEXT_NODE)e?t.push(String(i.nodeValue).replace(/(\\\\r\\\\n|\\\\r|\\\\n)/g,\"\")):t.push(i.nodeValue);else{let n;for(n=i.firstChild;n;n=n.nextSibling)jB(n,e,t)}return t}function an(i){return\"documentElement\"in i}function An(i){return new DOMParser().parseFromString(i,\"application/xml\")}function Jm(i,e){return function(t,n){let r=i.call(e??this,t,n);if(r!==void 0){let o=n[n.length-1];ue(o,r)}}}function Hn(i,e){return function(t,n){let r=i.call(e??this,t,n);r!==void 0&&n[n.length-1].push(r)}}function lh(i,e){return function(t,n){let r=i.call(e??this,t,n);r!==void 0&&(n[n.length-1]=r)}}function V(i,e,t){return function(n,r){let o=i.call(t??this,n,r);if(o!==void 0){let s=r[r.length-1],a=e!==void 0?e:n.localName;s[a]=o}}}function te(i,e){return function(t,n,r){i.call(e??this,t,n,r),r[r.length-1].node.appendChild(t)}}function ln(i,e){return function(t,n,r){let s=n[n.length-1].node,a=i;a===void 0&&(a=r);let A=e!==void 0?e:s.namespaceURI;return vs(A,a)}}var ii=ln();function pi(i,e){let t=e.length,n=new Array(t);for(let r=0;r0?n[0]:null}readFeatureFromNode(e,t){return null}readFeatures(e,t){if(!e)return[];if(typeof e==\"string\"){let n=An(e);return this.readFeaturesFromDocument(n,t)}return an(e)?this.readFeaturesFromDocument(e,t):this.readFeaturesFromNode(e,t)}readFeaturesFromDocument(e,t){let n=[];for(let r=e.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&ue(n,this.readFeaturesFromNode(r,t));return n}readFeaturesFromNode(e,t){return J()}readGeometry(e,t){if(!e)return null;if(typeof e==\"string\"){let n=An(e);return this.readGeometryFromDocument(n,t)}return an(e)?this.readGeometryFromDocument(e,t):this.readGeometryFromNode(e,t)}readGeometryFromDocument(e,t){return null}readGeometryFromNode(e,t){return null}readProjection(e){if(!e)return null;if(typeof e==\"string\"){let t=An(e);return this.readProjectionFromDocument(t)}return an(e)?this.readProjectionFromDocument(e):this.readProjectionFromNode(e)}readProjectionFromDocument(e){return this.dataProjection}readProjectionFromNode(e){return this.dataProjection}writeFeature(e,t){let n=this.writeFeatureNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeFeatureNode(e,t){return null}writeFeatures(e,t){let n=this.writeFeaturesNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeFeaturesNode(e,t){return null}writeGeometry(e,t){let n=this.writeGeometryNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeGeometryNode(e,t){return null}},ZB=jm;function zn(i){let e=Di(i,!1);return zv(e)}function zv(i){let e=/^\\\\s*(true|1)|(false|0)\\\\s*$/.exec(i);if(e)return e[1]!==void 0||!1}function ke(i){let e=Di(i,!1);return Kv(e)}function Kv(i){let e=/^\\\\s*([+\\\\-]?\\\\d*\\\\.?\\\\d+(?:e[+\\\\-]?\\\\d+)?)\\\\s*$/i.exec(i);if(e)return parseFloat(e[1])}function pt(i){return Di(i,!1).trim()}function lo(i,e){ni(i,e?\"1\":\"0\")}function qv(i,e){i.appendChild(dA().createCDATASection(e))}function Qr(i,e){let t=e.toPrecision();i.appendChild(dA().createTextNode(t))}var Vv=/^\\\\s/,Xv=/\\\\s$/,Jv=/(\\\\n|\\\\t|\\\\r|<|&| {2})/;function ni(i,e){typeof e==\"string\"&&(Vv.test(e)||Xv.test(e)||Jv.test(e))?e.split(\"]]>\").forEach((t,n,r)=>{n0&&(t=\">\"+t),qv(i,t)}):i.appendChild(dA().createTextNode(e))}var Kn=[\"http://www.google.com/kml/ext/2.2\"],W=[null,\"http://earth.google.com/kml/2.0\",\"http://earth.google.com/kml/2.1\",\"http://earth.google.com/kml/2.2\",\"http://www.opengis.net/kml/2.2\"],jv=\"http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd\",$B={fraction:\"fraction\",pixels:\"pixels\",insetPixels:\"pixels\"},Wv=Z(W,{ExtendedData:Ex,Region:Cx,MultiGeometry:V(mx,\"geometry\"),LineString:V(gx,\"geometry\"),LinearRing:V(dx,\"geometry\"),Point:V(px,\"geometry\"),Polygon:V(Ix,\"geometry\"),Style:V(ap),StyleMap:FD,address:V(pt),description:V(pt),name:V(pt),open:V(zn),phoneNumber:V(pt),styleUrl:V(lx),visibility:V(zn)},Z(Kn,{MultiTrack:V(CD,\"geometry\"),Track:V(fx,\"geometry\")})),Zv=Z(W,{ExtendedData:Ex,Region:Cx,Link:KD,address:V(pt),description:V(pt),name:V(pt),open:V(zn),phoneNumber:V(pt),visibility:V(zn)}),$v=Z(W,{href:V(Ax)}),eD=Z(W,{Altitude:V(ke),Longitude:V(ke),Latitude:V(ke),Tilt:V(ke),AltitudeMode:V(pt),Heading:V(ke),Roll:V(ke)}),ox=Z(W,{LatLonAltBox:ND,Lod:OD}),tD=Z(W,[\"Document\",\"Placemark\"]),iD=Z(W,{Document:te($D),Placemark:te(Bx)}),Ds,hh=null;var $m,mA,pA,IA,fh,ep=null;var op,tp=null;var ip,co=null;var ex=null;var np=null;function gh(i){return 32/Math.min(i[0],i[1])}function nD(){Ds=[255,255,255,1],hh=new zi({color:Ds}),$m=[20,2],mA=\"pixels\",pA=\"pixels\",IA=[64,64],fh=\"https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png\",ep=new Ar({anchor:$m,anchorOrigin:\"bottom-left\",anchorXUnits:mA,anchorYUnits:pA,crossOrigin:\"anonymous\",rotation:0,scale:gh(IA),size:IA,src:fh}),op=\"NO_IMAGE\",tp=new or({color:Ds,width:1}),ip=new or({color:[51,51,51,1],width:2}),co=new ua({font:\"bold 16px Helvetica\",fill:hh,stroke:ip,scale:.8}),ex=new $t({fill:hh,image:ep,text:co,stroke:tp,zIndex:0}),np=[ex]}var ch;function rD(i){return i}var rp=class extends ZB{constructor(e){super(),e=e||{},np||nD(),this.dataProjection=fe(\"EPSG:4326\"),this.defaultStyle_=e.defaultStyle?e.defaultStyle:np,this.extractStyles_=e.extractStyles!==void 0?e.extractStyles:!0,this.writeStyles_=e.writeStyles!==void 0?e.writeStyles:!0,this.sharedStyles_={},this.showPointNames_=e.showPointNames!==void 0?e.showPointNames:!0,this.crossOrigin_=e.crossOrigin!==void 0?e.crossOrigin:\"anonymous\",this.iconUrlFunction_=e.iconUrlFunction?e.iconUrlFunction:rD,this.supportedMediaTypes=[\"application/vnd.google-earth.kml+xml\"]}readDocumentOrFolder_(e,t){let n=Z(W,{Document:Jm(this.readDocumentOrFolder_,this),Folder:Jm(this.readDocumentOrFolder_,this),Placemark:Hn(this.readPlacemark_,this),Style:this.readSharedStyle_.bind(this),StyleMap:this.readSharedStyleMap_.bind(this)}),r=Re([],n,e,t,this);if(r)return r}readPlacemark_(e,t){let n=Re({geometry:null},Wv,e,t,this);if(!n)return;let r=new Io,o=e.getAttribute(\"id\");o!==null&&r.setId(o);let s=t[0],a=n.geometry;if(a&&Vr(a,!1,s),r.setGeometry(a),delete n.geometry,this.extractStyles_){let A=n.Style,l=n.styleUrl,c=sD(A,l,this.defaultStyle_,this.sharedStyles_,this.showPointNames_);r.setStyle(c)}return delete n.Style,r.setProperties(n,!0),r}readSharedStyle_(e,t){let n=e.getAttribute(\"id\");if(n!==null){let r=ap.call(this,e,t);if(r){let o,s=e.baseURI;(!s||s==\"about:blank\")&&(s=window.location.href),s?o=new URL(\"#\"+n,s).href:o=\"#\"+n,this.sharedStyles_[o]=r}}}readSharedStyleMap_(e,t){let n=e.getAttribute(\"id\");if(n===null)return;let r=hx.call(this,e,t);if(!r)return;let o,s=e.baseURI;(!s||s==\"about:blank\")&&(s=window.location.href),s?o=new URL(\"#\"+n,s).href:o=\"#\"+n,this.sharedStyles_[o]=r}readFeatureFromNode(e,t){if(!W.includes(e.namespaceURI))return null;let n=this.readPlacemark_(e,[this.getReadOptions(e,t)]);return n||null}readFeaturesFromNode(e,t){if(!W.includes(e.namespaceURI))return[];let n,r=e.localName;if(r==\"Document\"||r==\"Folder\")return n=this.readDocumentOrFolder_(e,[this.getReadOptions(e,t)]),n||[];if(r==\"Placemark\"){let o=this.readPlacemark_(e,[this.getReadOptions(e,t)]);return o?[o]:[]}if(r==\"kml\"){n=[];for(let o=e.firstElementChild;o;o=o.nextElementSibling){let s=this.readFeaturesFromNode(o,t);s&&ue(n,s)}return n}return[]}readName(e){if(e){if(typeof e==\"string\"){let t=An(e);return this.readNameFromDocument(t)}return an(e)?this.readNameFromDocument(e):this.readNameFromNode(e)}}readNameFromDocument(e){for(let t=e.firstChild;t;t=t.nextSibling)if(t.nodeType==Node.ELEMENT_NODE){let n=this.readNameFromNode(t);if(n)return n}}readNameFromNode(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(W.includes(t.namespaceURI)&&t.localName==\"name\")return pt(t);for(let t=e.firstElementChild;t;t=t.nextElementSibling){let n=t.localName;if(W.includes(t.namespaceURI)&&(n==\"Document\"||n==\"Folder\"||n==\"Placemark\"||n==\"kml\")){let r=this.readNameFromNode(t);if(r)return r}}}readNetworkLinks(e){let t=[];if(typeof e==\"string\"){let n=An(e);ue(t,this.readNetworkLinksFromDocument(n))}else an(e)?ue(t,this.readNetworkLinksFromDocument(e)):ue(t,this.readNetworkLinksFromNode(e));return t}readNetworkLinksFromDocument(e){let t=[];for(let n=e.firstChild;n;n=n.nextSibling)n.nodeType==Node.ELEMENT_NODE&&ue(t,this.readNetworkLinksFromNode(n));return t}readNetworkLinksFromNode(e){let t=[];for(let n=e.firstElementChild;n;n=n.nextElementSibling)if(W.includes(n.namespaceURI)&&n.localName==\"NetworkLink\"){let r=Re({},Zv,n,[]);t.push(r)}for(let n=e.firstElementChild;n;n=n.nextElementSibling){let r=n.localName;W.includes(n.namespaceURI)&&(r==\"Document\"||r==\"Folder\"||r==\"kml\")&&ue(t,this.readNetworkLinksFromNode(n))}return t}readRegion(e){let t=[];if(typeof e==\"string\"){let n=An(e);ue(t,this.readRegionFromDocument(n))}else an(e)?ue(t,this.readRegionFromDocument(e)):ue(t,this.readRegionFromNode(e));return t}readRegionFromDocument(e){let t=[];for(let n=e.firstChild;n;n=n.nextSibling)n.nodeType==Node.ELEMENT_NODE&&ue(t,this.readRegionFromNode(n));return t}readRegionFromNode(e){let t=[];for(let n=e.firstElementChild;n;n=n.nextElementSibling)if(W.includes(n.namespaceURI)&&n.localName==\"Region\"){let r=Re({},ox,n,[]);t.push(r)}for(let n=e.firstElementChild;n;n=n.nextElementSibling){let r=n.localName;W.includes(n.namespaceURI)&&(r==\"Document\"||r==\"Folder\"||r==\"kml\")&&ue(t,this.readRegionFromNode(n))}return t}readCamera(e){let t=[];if(typeof e==\"string\"){let n=An(e);ue(t,this.readCameraFromDocument(n))}else an(e)?ue(t,this.readCameraFromDocument(e)):ue(t,this.readCameraFromNode(e));return t}readCameraFromDocument(e){let t=[];for(let n=e.firstChild;n;n=n.nextSibling)n.nodeType===Node.ELEMENT_NODE&&ue(t,this.readCameraFromNode(n));return t}readCameraFromNode(e){let t=[];for(let n=e.firstElementChild;n;n=n.nextElementSibling)if(W.includes(n.namespaceURI)&&n.localName===\"Camera\"){let r=Re({},eD,n,[]);t.push(r)}for(let n=e.firstElementChild;n;n=n.nextElementSibling){let r=n.localName;W.includes(n.namespaceURI)&&(r===\"Document\"||r===\"Folder\"||r===\"Placemark\"||r===\"kml\")&&ue(t,this.readCameraFromNode(n))}return t}writeFeaturesNode(e,t){t=this.adaptOptions(t);let n=vs(W[4],\"kml\"),r=\"http://www.w3.org/2000/xmlns/\";n.setAttributeNS(r,\"xmlns:gx\",Kn[0]),n.setAttributeNS(r,\"xmlns:xsi\",Xm),n.setAttributeNS(Xm,\"xsi:schemaLocation\",jv);let o={node:n},s={};e.length>1?s.Document=e:e.length==1&&(s.Placemark=e[0]);let a=tD[n.namespaceURI],A=pi(s,a);return qe(o,iD,ii,A,[t],a,this),n}};function oD(i,e){let t=[0,0],n=\"start\",r=i.getImage();if(r){let a=r.getSize();if(a&&a.length==2){let A=r.getScaleArray(),l=r.getAnchor();t[0]=A[0]*(a[0]-l[0]),t[1]=A[1]*(a[1]/2-l[1]),n=\"left\"}}let o=i.getText();return o?(o=o.clone(),o.setFont(o.getFont()||co.getFont()),o.setScale(o.getScale()||co.getScale()),o.setFill(o.getFill()||co.getFill()),o.setStroke(o.getStroke()||ip)):o=co.clone(),o.setText(e),o.setOffsetX(t[0]),o.setOffsetY(t[1]),o.setTextAlign(n),new $t({image:r,text:o})}function sD(i,e,t,n,r){return function(o,s){let a=r,A=\"\",l=[];if(a){let h=o.getGeometry();if(h)if(h instanceof wi)l=h.getGeometriesArrayRecursive().filter(function(u){let f=u.getType();return f===\"Point\"||f===\"MultiPoint\"}),a=l.length>0;else{let u=h.getType();a=u===\"Point\"||u===\"MultiPoint\"}}a&&(A=o.get(\"name\"),a=a&&!!A,a&&/&[^&]+;/.test(A)&&(ch||(ch=document.createElement(\"textarea\")),ch.innerHTML=A,A=ch.value));let c=t;if(i?c=i:e&&(c=sx(e,t,n)),a){let h=oD(c[0],A);if(l.length>0){h.setGeometry(new wi(l));let u=new $t({geometry:c[0].getGeometry(),image:null,fill:c[0].getFill(),stroke:c[0].getStroke(),text:null});return[h,u].concat(c.slice(1))}return h}return c}}function sx(i,e,t){return Array.isArray(i)?i:typeof i==\"string\"?sx(t[i],e,t):e}function dh(i){let e=Di(i,!1),t=/^\\\\s*#?\\\\s*([0-9A-Fa-f]{8})\\\\s*$/.exec(e);if(t){let n=t[1];return[parseInt(n.substr(6,2),16),parseInt(n.substr(4,2),16),parseInt(n.substr(2,2),16),parseInt(n.substr(0,2),16)/255]}}function ax(i){let e=Di(i,!1),t=[];e=e.replace(/\\\\s*,\\\\s*/g,\",\");let n=/^\\\\s*([+\\\\-]?\\\\d*\\\\.?\\\\d+(?:e[+\\\\-]?\\\\d+)?),([+\\\\-]?\\\\d*\\\\.?\\\\d+(?:e[+\\\\-]?\\\\d+)?)(?:\\\\s+|,|$)(?:([+\\\\-]?\\\\d*\\\\.?\\\\d+(?:e[+\\\\-]?\\\\d+)?)(?:\\\\s+|$))?\\\\s*/i,r;for(;r=n.exec(e);){let o=parseFloat(r[1]),s=parseFloat(r[2]),a=r[3]?parseFloat(r[3]):0;t.push(o,s,a),e=e.substr(r[0].length)}if(e===\"\")return t}function Ax(i){let e=Di(i,!1).trim(),t=i.baseURI;return(!t||t==\"about:blank\")&&(t=window.location.href),t?new URL(e,t).href:e}function lx(i){let e=Di(i,!1).trim().replace(/^(?!.*#)/,\"#\"),t=i.baseURI;return(!t||t==\"about:blank\")&&(t=window.location.href),t?new URL(e,t).href:e}function aD(i){let e=i.getAttribute(\"xunits\"),t=i.getAttribute(\"yunits\"),n;return e!==\"insetPixels\"?t!==\"insetPixels\"?n=\"bottom-left\":n=\"top-left\":t!==\"insetPixels\"?n=\"bottom-right\":n=\"top-right\",{x:parseFloat(i.getAttribute(\"x\")),xunits:$B[e],y:parseFloat(i.getAttribute(\"y\")),yunits:$B[t],origin:n}}function cx(i){return ke(i)}var AD=Z(W,{Pair:bD});function hx(i,e){return Re(void 0,AD,i,e,this)}var lD=Z(W,{Icon:V(BD),color:V(dh),heading:V(ke),hotSpot:V(aD),scale:V(cx)});function cD(i,e){let t=Re({},lD,i,e);if(!t)return;let n=e[e.length-1],r=\"Icon\"in t?t.Icon:{},o=!(\"Icon\"in t)||Object.keys(r).length>0,s,a=r.href;a?s=a:o&&(s=fh);let A,l,c,h=\"bottom-left\",u=t.hotSpot;u?(A=[u.x,u.y],l=u.xunits,c=u.yunits,h=u.origin):/^https?:\\\\/\\\\/maps\\\\.(?:google|gstatic)\\\\.com\\\\//.test(s)&&(s.includes(\"pushpin\")?(A=$m,l=mA,c=pA):s.includes(\"arrow-reverse\")?(A=[54,42],l=mA,c=pA):s.includes(\"paddle\")&&(A=[32,1],l=mA,c=pA));let f,g=r.x,m=r.y;g!==void 0&&m!==void 0&&(f=[g,m]);let d,I=r.w,p=r.h;I!==void 0&&p!==void 0&&(d=[I,p]);let _,C=t.heading;C!==void 0&&(_=jt(C));let E=t.scale,y=t.color;if(o){s==fh&&(d=IA);let B=new Ar({anchor:A,anchorOrigin:h,anchorXUnits:l,anchorYUnits:c,crossOrigin:this.crossOrigin_,offset:f,offsetOrigin:\"bottom-left\",rotation:_,scale:E,size:d,src:this.iconUrlFunction_(s),color:y}),x=B.getScaleArray()[0],Q=B.getSize();if(Q===null){let w=B.getImageState();if(w===ee.IDLE||w===ee.LOADING){let T=function(){let R=B.getImageState();if(!(R===ee.IDLE||R===ee.LOADING)){let F=B.getSize();if(F&&F.length==2){let D=gh(F);B.setScale(x*D)}B.unlistenImageChange(T)}};B.listenImageChange(T),w===ee.IDLE&&B.load()}}else if(Q.length==2){let w=gh(Q);B.setScale(x*w)}n.imageStyle=B}else n.imageStyle=op}var hD=Z(W,{color:V(dh),scale:V(cx)});function uD(i,e){let t=Re({},hD,i,e);if(!t)return;let n=e[e.length-1],r=new ua({fill:new zi({color:\"color\"in t?t.color:Ds}),scale:t.scale});n.textStyle=r}var fD=Z(W,{color:V(dh),width:V(ke)});function gD(i,e){let t=Re({},fD,i,e);if(!t)return;let n=e[e.length-1],r=new or({color:\"color\"in t?t.color:Ds,width:\"width\"in t?t.width:1});n.strokeStyle=r}var dD=Z(W,{color:V(dh),fill:V(zn),outline:V(zn)});function mD(i,e){let t=Re({},dD,i,e);if(!t)return;let n=e[e.length-1],r=new zi({color:\"color\"in t?t.color:Ds});n.fillStyle=r;let o=t.fill;o!==void 0&&(n.fill=o);let s=t.outline;s!==void 0&&(n.outline=s)}var pD=Z(W,{coordinates:lh(ax)});function ux(i,e){return Re(null,pD,i,e)}function ID(i,e){let n=e[e.length-1].coordinates,r=Di(i,!1),s=/^\\\\s*([+\\\\-]?\\\\d+(?:\\\\.\\\\d*)?(?:e[+\\\\-]?\\\\d*)?)\\\\s+([+\\\\-]?\\\\d+(?:\\\\.\\\\d*)?(?:e[+\\\\-]?\\\\d*)?)\\\\s+([+\\\\-]?\\\\d+(?:\\\\.\\\\d*)?(?:e[+\\\\-]?\\\\d*)?)\\\\s*$/i.exec(r);if(s){let a=parseFloat(s[1]),A=parseFloat(s[2]),l=parseFloat(s[3]);n.push([a,A,l])}else n.push([])}var ED=Z(Kn,{Track:Hn(fx)});function CD(i,e){let t=Re([],ED,i,e);if(t)return new Go(t)}var _D=Z(W,{when:qD},Z(Kn,{coord:ID}));function fx(i,e){let t=Re({coordinates:[],whens:[]},_D,i,e);if(!t)return;let n=[],r=t.coordinates,o=t.whens;for(let s=0,a=Math.min(r.length,o.length);s0&&e[e.length-1].push(...t)}var HD=Z(W,{LinearRing:lh(ux)});function zD(i,e){let t=Re(void 0,HD,i,e);if(t){let n=e[e.length-1];n[0]=t}}function KD(i,e){Ao($v,i,e)}function qD(i,e){let n=e[e.length-1].whens,r=Di(i,!1),o=Date.parse(r);n.push(isNaN(o)?0:o)}function ph(i,e){let t=We(e),r=[(t.length==4?t[3]:1)*255,t[2],t[1],t[0]];for(let o=0;o<4;++o){let s=Math.floor(r[o]).toString(16);r[o]=s.length==1?\"0\"+s:s}ni(i,r.join(\"\"))}function VD(i,e,t){let n=t[t.length-1],r=n.layout,o=n.stride,s;if(r==\"XY\"||r==\"XYM\")s=2;else if(r==\"XYZ\"||r==\"XYZM\")s=3;else throw new Error(\"Invalid geometry layout\");let a=e.length,A=\"\";if(a>0){A+=e[0];for(let l=1;l0){let f=pi(r,s);qe(n,Zm,_2,[{names:s,values:f}],t)}let h=t[0],u=e.getGeometry();u&&(u=Vr(u,!0,h)),qe(n,Zm,_x,[u],t)}var y2=Z(W,[\"extrude\",\"tessellate\",\"altitudeMode\",\"coordinates\"]),B2=Z(W,{extrude:te(lo),tessellate:te(lo),altitudeMode:te(ni),coordinates:te(VD)});function bs(i,e,t){let n=e.getFlatCoordinates(),r={node:i};r.layout=e.getLayout(),r.stride=e.getStride();let o=e.getProperties();o.coordinates=n;let s=t[t.length-1].node,a=y2[s.namespaceURI],A=pi(o,a);qe(r,B2,ii,A,t,a)}var x2=Z(W,[\"color\",\"fill\",\"outline\"]),rx=Z(W,{outerBoundaryIs:te(nx),innerBoundaryIs:te(nx)}),w2=ln(\"innerBoundaryIs\"),Q2=ln(\"outerBoundaryIs\");function xx(i,e,t){let n=e.getLinearRings(),r=n.shift(),o={node:i};qe(o,rx,w2,n,t),qe(o,rx,Q2,[r],t)}var S2=Z(W,{color:te(ph),fill:te(lo),outline:te(lo)});function R2(i,e,t){let n={node:i},r=e.getFill(),o=e.getStroke(),s={color:r?r.getColor():void 0,fill:r?void 0:!1,outline:o?void 0:!1},a=t[t.length-1].node,A=x2[a.namespaceURI],l=pi(s,A);qe(n,S2,ii,l,t,A)}function wx(i,e){Qr(i,Math.round(e*1e6)/1e6)}var T2=Z(W,[\"IconStyle\",\"LabelStyle\",\"LineStyle\",\"PolyStyle\"]),v2=Z(W,{IconStyle:te(s2),LabelStyle:te(l2),LineStyle:te(u2),PolyStyle:te(R2)});function D2(i,e,t){let n={node:i},r={};if(e.pointStyles.length){let A=e.pointStyles[0].getText();A&&(r.LabelStyle=A);let l=e.pointStyles[0].getImage();l&&typeof l.getSrc==\"function\"&&(r.IconStyle=l)}if(e.lineStyles.length){let A=e.lineStyles[0].getStroke();A&&(r.LineStyle=A)}if(e.polyStyles.length){let A=e.polyStyles[0].getStroke();A&&!r.LineStyle&&(r.LineStyle=A),r.PolyStyle=e.polyStyles[0]}let o=t[t.length-1].node,s=T2[o.namespaceURI],a=pi(r,s);qe(n,v2,ii,a,t,s)}function b2(i,e){i.setAttribute(\"x\",String(e.x)),i.setAttribute(\"y\",String(e.y)),i.setAttribute(\"xunits\",e.xunits),i.setAttribute(\"yunits\",e.yunits)}var Ap=rp;var Ih=class{constructor(){this._catalog=Object.assign(Object.assign(Object.assign(Object.assign({},JB),uC),PB),{GeoJSON:Ra,KML:Ap,View:yt})}moveTypeDefToTop(e){let t={};return Object.keys(e).sort().forEach(n=>t[n]=e[n]),console.log(\"sortedOptions\",t),t}parseOptions(e){let t={};for(let n in e){let r=e[n];Array.isArray(r)&&typeof r[0]==\"object\"?(console.log(\"Parse items of array\"),t[n]=r.map(o=>o[\"@@type\"]?this.parse(o):this.parseOptions(o))):typeof r==\"object\"&&r[\"@@type\"]!==void 0?t[n]=this.parse(r):n!==\"@@type\"&&n!==\"@@geojson\"&&(t[n]=r)}return t}parse(e){let t=this.parseOptions(e);return console.log(\"parsed options\",t),console.log(\"type detected\",e[\"@@type\"]),new this._catalog[e[\"@@type\"]](t)}};var F2=function(i,e){var t={};for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&e.indexOf(n)<0&&(t[n]=i[n]);if(i!=null&&typeof Object.getOwnPropertySymbols==\"function\")for(var r=0,n=Object.getOwnPropertySymbols(i);r`${n}: ${t[n]}`).join(\"
\")}function Rx(i,e){Ve.id=\"ol-tooltip\",i.getTargetElement().appendChild(Ve),console.log(\"tooltip element added\",Ve);let t,n=function(r,o){let s=o.closest(\".ol-control\")?void 0:i.forEachFeatureAtPixel(r,function(a){return a});s?(Ve.style.left=r[0]+15+\"px\",Ve.style.top=r[1]+\"px\",s!==t&&(Ve.style.visibility=\"visible\",Ve.innerHTML=L2(s,e))):Ve.style.visibility=\"hidden\",t=s};i.on(\"pointermove\",function(r){if(r.dragging){Ve.style.visibility=\"hidden\",t=void 0;return}n(r.pixel,r.originalEvent.target)}),i.on(\"click\",function(r){n(r.pixel,r.originalEvent.target)}),i.getTargetElement().addEventListener(\"pointerleave\",function(){t=void 0,Ve.style.visibility=\"hidden\"})}var Tx=\"@@type\",M2=\"@@geojson\",lp=new Ih;function k2(i){let e=lp.parse(i),t=e.getCenter();if(console.log(\"view center\",t),t&&e.getProjection().getCode()!==\"EPSG:4326\"){let n=jp(t);console.log(\"view center transformed\",n),e.setCenter(n)}return e}function P2(i){let e=lp.parse(i);return console.log(\"layerDef\",i),e.set(\"id\",i.id),N2(e,i.source[M2]),e}function N2(i,e){e&&(i.getSource().addFeatures(new Ra().readFeatures(e)),console.log(\"geojson features added\",e))}var EA=class{constructor(e,t,n){this._metadata={layers:[],controls:[]},this._model=n;let r=k2(t.view),o=[],s=[];this._container=e,this._map=new Sa({target:e,view:r,controls:vl().extend(o),layers:s});for(let a of t.controls||[])this.addControl(a);for(let a of t.layers||[])this.addLayer(a)}getElement(){return this._container}getMap(){return this._map}getMetadata(){return this._metadata}setViewFromSource(e){let t=this.getLayer(e),n=t?.getSource(),r=n?.getView();r&&this._map.setView(r)}setExtentFromSource(){}getLayer(e){for(let t of this._map.getLayers().getArray())if(t.get(\"id\")===e)return t}addLayer(e){let t=P2(e);this._map.addLayer(t),this._metadata.layers.push({id:t.get(\"id\"),type:e[Tx]}),console.log(\"layer\",t.get(\"id\"),\"added\",this._metadata)}removeLayer(e){let t=this.getLayer(e);t&&(this._map.removeLayer(t),this._metadata.layers=this._metadata.layers.filter(n=>n.id!=e),console.log(\"layer\",e,\"removed\",this._metadata))}setLayerStyle(e,t){let n=this.getLayer(e);n&&(console.log(\"set layer style\",e,t),n.setStyle(t))}applyCallToLayer(e,t){console.log(\"run layer method\",e),this.getLayer(e)[t.method](...t.args)}getControl(e){for(let t of this._map.getControls().getArray())if(t.get(\"id\")===e)return t}addControl(e){let t=lp.parse(e);t.set(\"id\",e.id),this._map.addControl(t),this._metadata.controls.push({id:t.get(\"id\"),type:e[Tx]}),console.log(\"control\",t.get(\"id\"),\"added\",this._metadata)}removeControl(e){let t=this.getControl(e);t&&(this._map.removeControl(t),this._metadata.controls=this._metadata.controls.filter(n=>n.id!=e),console.log(\"control\",e,\"removed\",this._metadata))}addOverlay(e){let t=document.createElement(\"div\");t.style.cssText=\"\",t.innerHTML=\"We are out here.\";let n=new kl({element:t,position:e});this._map.addOverlay(n)}addTooltip(e){Rx(this._map,e)}};function G2({model:i,el:e}){function t(){i.set(\"map_metadata\",a.getMetadata()),i.save_changes()}function n(){let c=l.getView(),h=Qx(c);i.set(\"map_view_state\",h),i.save_changes()}console.log(\"Welcome to ol-anywidget\",e);let r=i.get(\"height\")||\"400px\";console.log(\"height\",r);let o=document.createElement(\"div\");o.id=\"ol-map-widget\",o.style.height=r;let s=i.get(\"map_options\");console.log(\"mapOptions\",s);let a=window.anywidgetMapWidget=new EA(o,s,i);i.set(\"map_created\",!0),i.save_changes();let A=i.get(\"calls\");console.log(\"calls\",A);for(let c of A)a[c.method](...c.args);t();let l=a.getMap();n(),l.on(\"moveend\",c=>{n()}),i.on(\"msg:custom\",c=>{console.log(\"thanx for your message\",c);try{a[c.method](...c.args),t()}catch(h){console.log(\"error in anywidget msg call\",h)}}),e.appendChild(o)}var Hj={render:G2};export{Hj as default};\\n/*! Bundled license information:\\n\\npako/dist/pako.esm.mjs:\\n (*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) *)\\n\\nlerc/LercDecode.js:\\n (* Copyright 2015-2021 Esri. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve *)\\n*/\\n',\n", - " '_model_module': 'anywidget',\n", - " '_model_module_version': '~0.9.*',\n", - " '_model_name': 'AnyModel',\n", - " '_msg_callbacks': ,\n", - " '_property_lock': {},\n", - " '_states_to_send': set(),\n", - " '_view_count': None,\n", - " '_view_module': 'anywidget',\n", - " '_view_module_version': '~0.9.*',\n", - " '_view_name': 'AnyView',\n", - " 'calls': [],\n", - " 'comm': ,\n", - " 'height': '400px',\n", - " 'keys': ['_anywidget_id',\n", - " '_css',\n", - " '_dom_classes',\n", - " '_esm',\n", - " '_model_module',\n", - " '_model_module_version',\n", - " '_model_name',\n", - " '_view_count',\n", - " '_view_module',\n", - " '_view_module_version',\n", - " '_view_name',\n", - " 'calls',\n", - " 'height',\n", - " 'layout',\n", - " 'map_created',\n", - " 'map_metadata',\n", - " 'map_options',\n", - " 'map_view_state',\n", - " 'tabbable',\n", - " 'tooltip',\n", - " '_esm',\n", - " '_css',\n", - " '_anywidget_id'],\n", - " 'layout': Layout(),\n", - " 'log': ,\n", - " 'map_created': True,\n", - " 'map_metadata': {'layers': [{'id': 'carto-dark-all', 'type': 'TileLayer'}],\n", - " 'controls': [{'id': 'a46ed639-981a-4275-9ee6-f58d614b91e7',\n", - " 'type': 'ZoomSliderControl'},\n", - " {'id': 'MyNiceCtrl', 'type': 'OverviewMapControl'}]},\n", - " 'map_options': {'view': {'center': (9.481544, 51.312801),\n", - " 'zoom': 12.0,\n", - " 'projection': 'EPSG:3857',\n", - " '@@type': 'View'},\n", - " 'controls': [{'id': 'a46ed639-981a-4275-9ee6-f58d614b91e7',\n", - " '@@type': 'ZoomSliderControl'}],\n", - " 'layers': [{'id': 'carto-dark-all',\n", - " 'source': {'url': 'https://{a-d}.basemaps.cartocdn.com/dark_all/{z}/{x}/{y}@2x.png',\n", - " 'attributions': '© OpenStreetMap, © CARTO',\n", - " 'minZoom': 0,\n", - " 'maxZoom': 20,\n", - " '@@type': 'ImageTileSource'},\n", - " 'opacity': 1.0,\n", - " 'visible': True,\n", - " '@@type': 'TileLayer'}]},\n", - " 'map_view_state': {'center': [1055480.6500140184, 6676812.232758811],\n", - " 'projection': 'EPSG:3857',\n", - " 'zoom': 8,\n", - " 'center_lonlat': [9.481544, 51.312801000000036]},\n", - " 'tabbable': None,\n", - " 'tooltip': None}" - ] - }, - "execution_count": 18, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "m.trait_values()" + "df = OLAccessor(gdf)" ] }, { "cell_type": "code", "execution_count": null, - "id": "a2a643bc-1aff-4bd8-93b8-93cd69fbc62a", + "id": "a86d2c38", "metadata": {}, "outputs": [], - "source": [] + "source": [ + "df.explore()" + ] } ], "metadata": { diff --git a/notebooks/layers/draw-control.ipynb b/notebooks/layers/draw-control.ipynb new file mode 100644 index 0000000..712544f --- /dev/null +++ b/notebooks/layers/draw-control.ipynb @@ -0,0 +1,127 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "fcb43a68-346f-4232-9183-0cabe421e51c", + "metadata": {}, + "outputs": [], + "source": [ + "import openlayers as ol" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "0ba32ac6-7715-4a3a-bbcc-4ff9022e006a", + "metadata": {}, + "outputs": [], + "source": [ + "m = ol.MapWidget(controls=[ol.DrawControl()])" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "4bb4306a-4035-45f7-8203-54b8b5e8ce09", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f28e2ec3d4ba4f1dbd065b551135ac32", + "version_major": 2, + "version_minor": 1 + }, + "text/plain": [ + "MapWidget(height='400px', options={'view': {'center': (0.0, 0.0), 'zoom': 0, 'projection': 'EPSG:3857', '@@typ…" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "d6efd311-8f02-4620-859d-41bda81157dc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'type': 'FeatureCollection',\n", + " 'features': ['{\"type\":\"Feature\",\"geometry\":{\"type\":\"Point\",\"coordinates\":[-125.89665252189707,29.8693128204649]},\"properties\":null}',\n", + " '{\"type\":\"Feature\",\"geometry\":{\"type\":\"LineString\",\"coordinates\":[[-72.22592198459827,-15.295776076177518],[15.286438185068512,6.9778786803578186],[39.08133814625181,26.13486798336824],[-72.22592198459827,17.80716486393308]]},\"properties\":null}',\n", + " '{\"type\":\"Feature\",\"geometry\":{\"type\":\"Polygon\",\"coordinates\":[[[-121.93083586169986,21.048396117389515],[-107.12510859433377,-7.001741395883869],[-37.062359333479414,35.431295097579664],[-85.18092894255743,39.419363549282394],[-106.86073255295044,31.68662445230116],[-121.93083586169986,21.048396117389515]]]},\"properties\":null}']}" + ] + }, + "execution_count": 14, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "fc = dict(type=\"FeatureCollection\", features=m.features[\"features\"])\n", + "fc" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "695ca685-c6b8-477a-8f7d-c7f725cab774", + "metadata": {}, + "outputs": [ + { + "ename": "TypeError", + "evalue": "string indices must be integers, not 'str'", + "output_type": "error", + "traceback": [ + "\u001b[31m---------------------------------------------------------------------------\u001b[39m", + "\u001b[31mTypeError\u001b[39m Traceback (most recent call last)", + "\u001b[36mCell\u001b[39m\u001b[36m \u001b[39m\u001b[32mIn[15]\u001b[39m\u001b[32m, line 1\u001b[39m\n\u001b[32m----> \u001b[39m\u001b[32m1\u001b[39m \u001b[43mol\u001b[49m\u001b[43m.\u001b[49m\u001b[43mGeoDataFrame\u001b[49m\u001b[43m.\u001b[49m\u001b[43mfrom_features\u001b[49m\u001b[43m(\u001b[49m\u001b[43mfc\u001b[49m\u001b[43m)\u001b[49m\n", + "\u001b[36mFile \u001b[39m\u001b[32m~/projects/internal/data-products/py-openlayers/.venv/lib/python3.11/site-packages/geopandas/geodataframe.py:737\u001b[39m, in \u001b[36mGeoDataFrame.from_features\u001b[39m\u001b[34m(cls, features, crs, columns)\u001b[39m\n\u001b[32m 734\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mhasattr\u001b[39m(feature, \u001b[33m\"\u001b[39m\u001b[33m__geo_interface__\u001b[39m\u001b[33m\"\u001b[39m):\n\u001b[32m 735\u001b[39m feature = feature.__geo_interface__\n\u001b[32m 736\u001b[39m row = {\n\u001b[32m--> \u001b[39m\u001b[32m737\u001b[39m \u001b[33m\"\u001b[39m\u001b[33mgeometry\u001b[39m\u001b[33m\"\u001b[39m: shape(feature[\u001b[33m\"\u001b[39m\u001b[33mgeometry\u001b[39m\u001b[33m\"\u001b[39m]) \u001b[38;5;28;01mif\u001b[39;00m \u001b[43mfeature\u001b[49m\u001b[43m[\u001b[49m\u001b[33;43m\"\u001b[39;49m\u001b[33;43mgeometry\u001b[39;49m\u001b[33;43m\"\u001b[39;49m\u001b[43m]\u001b[49m \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m\n\u001b[32m 738\u001b[39m }\n\u001b[32m 739\u001b[39m \u001b[38;5;66;03m# load properties\u001b[39;00m\n\u001b[32m 740\u001b[39m properties = feature[\u001b[33m\"\u001b[39m\u001b[33mproperties\u001b[39m\u001b[33m\"\u001b[39m]\n", + "\u001b[31mTypeError\u001b[39m: string indices must be integers, not 'str'" + ] + } + ], + "source": [ + "ol.GeoDataFrame.from_features(fc)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "838b802f-f001-43d2-95e6-25c1c454d200", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/layers/geojson.ipynb b/notebooks/layers/geojson.ipynb index a70035f..f970e1f 100644 --- a/notebooks/layers/geojson.ipynb +++ b/notebooks/layers/geojson.ipynb @@ -7,13 +7,12 @@ "metadata": {}, "outputs": [], "source": [ - "from openlayers.anywidget import MapWidget\n", - "from openlayers.json_defs import VectorSource, WebGLVectorLayer" + "import openlayers as ol" ] }, { "cell_type": "code", - "execution_count": 3, + "execution_count": 2, "id": "8f37390a-9447-4dff-b8e1-6633ca089e7d", "metadata": {}, "outputs": [], @@ -23,7 +22,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 3, "id": "ef931766-ee1b-4cfe-8eb5-d17199ecd9f4", "metadata": {}, "outputs": [ @@ -34,22 +33,25 @@ " 'source': {'url': 'https://openlayers.org/data/vector/populated-places.json',\n", " 'format': {'@@type': 'GeoJSON'},\n", " '@@type': 'VectorSource'},\n", + " 'opacity': 1.0,\n", + " 'visible': True,\n", " 'style': {'circle-fill-color': 'red',\n", " 'circle-stroke-color': 'yellow',\n", " 'circle-stroke-width': 0.75,\n", " 'circle-radius': 5},\n", + " 'fitBounds': False,\n", " '@@type': 'WebGLVectorLayer'}" ] }, - "execution_count": 4, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "circle_layer = WebGLVectorLayer(\n", + "circle_layer = ol.WebGLVectorLayer(\n", " id=\"populated-places\",\n", - " source=VectorSource(\n", + " source=ol.VectorSource(\n", " url=url\n", " ),\n", " style={\n", @@ -64,53 +66,59 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 5, "id": "28b6070b-3282-4435-b1d9-5d6e57dc5c74", "metadata": {}, "outputs": [ { "data": { "text/plain": [ - "{'viewOptions': {'center': (0, 0), 'zoom': 0},\n", + "{'view': {'center': (0.0, 0.0),\n", + " 'zoom': 0,\n", + " 'projection': 'EPSG:3857',\n", + " '@@type': 'View'},\n", " 'layers': [{'id': 'populated-places',\n", " 'source': {'url': 'https://openlayers.org/data/vector/populated-places.json',\n", " 'format': {'@@type': 'GeoJSON'},\n", " '@@type': 'VectorSource'},\n", + " 'opacity': 1.0,\n", + " 'visible': True,\n", " 'style': {'circle-fill-color': 'red',\n", " 'circle-stroke-color': 'yellow',\n", " 'circle-stroke-width': 0.75,\n", " 'circle-radius': 5},\n", + " 'fitBounds': False,\n", " '@@type': 'WebGLVectorLayer'}]}" ] }, - "execution_count": 6, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "m = MapWidget(layers=[circle_layer])\n", - "m.map_options" + "m = ol.MapWidget(layers=[circle_layer])\n", + "m.options" ] }, { "cell_type": "code", - "execution_count": 7, + "execution_count": 6, "id": "0160f0b9-c2c1-4480-b890-8dece1eaca1d", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { - "model_id": "85f1c6e6430946f8a19861f8fbb31f2d", + "model_id": "2d66f67cdfc24f91860facfd2552d2c4", "version_major": 2, "version_minor": 1 }, "text/plain": [ - "MapWidget(height='400px', map_options={'viewOptions': {'center': (0, 0), 'zoom': 0}, 'layers': [{'id': 'popula…" + "MapWidget(height='400px', options={'view': {'center': (0.0, 0.0), 'zoom': 0, 'projection': 'EPSG:3857', '@@typ…" ] }, - "execution_count": 7, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -121,9 +129,99 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 7, "id": "d8adafbf-d719-475d-aaba-e5c268784034", "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'layers': [{'id': 'populated-places',\n", + " 'opacity': 1,\n", + " 'visible': True,\n", + " 'fitBounds': False,\n", + " 'maxResolution': None,\n", + " 'minResolution': 0,\n", + " 'minZoom': None,\n", + " 'maxZoom': None,\n", + " 'type': 'WebGLVectorLayer'}],\n", + " 'controls': []}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "id": "a66a808e", + "metadata": {}, + "outputs": [], + "source": [ + "m.add_control(ol.ZoomSliderControl())" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "id": "6c46e94b", + "metadata": {}, + "outputs": [], + "source": [ + "cid = m.metadata[\"controls\"][0][\"id\"]" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "3b693e8e", + "metadata": {}, + "outputs": [], + "source": [ + "m.remove_control(cid)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "id": "5e740b5b", + "metadata": {}, + "outputs": [], + "source": [ + "m.add_layer(ol.basemaps.BasemapLayer())" + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "id": "1e769336", + "metadata": {}, + "outputs": [], + "source": [ + "m.remove_layer(\"populated-places\")" + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "id": "4e0edd9c", + "metadata": {}, + "outputs": [], + "source": [ + "m.add_layer(circle_layer)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a4ef255d", + "metadata": {}, "outputs": [], "source": [] } diff --git a/notebooks/layers/geopandas-airports.ipynb b/notebooks/layers/geopandas-airports.ipynb new file mode 100644 index 0000000..7451cbb --- /dev/null +++ b/notebooks/layers/geopandas-airports.ipynb @@ -0,0 +1,181 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 3, + "id": "dcd8abdb-3dd2-4e83-aaf6-39c311ab18e7", + "metadata": {}, + "outputs": [], + "source": [ + "import requests\n", + "import openlayers as ol" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "4438aa07-cb5d-46dd-a957-7c8987908210", + "metadata": {}, + "outputs": [], + "source": [ + "data_url = \"https://raw.githubusercontent.com/visgl/deck.gl-data/master/examples/line/airports.json\"" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "ff44b129-2466-45bf-b5e5-8269105e839d", + "metadata": {}, + "outputs": [], + "source": [ + "data = requests.get(data_url).json()" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "id": "77e3da1b-0e19-42d2-8f63-ebc9b62bc8ba", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'type': 'small',\n", + " 'name': 'Sahnewal',\n", + " 'abbrev': 'LUH',\n", + " 'coordinates': [75.95707224036516, 30.850359856170172]}" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "data[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "id": "de7e9abd-b7a3-4180-be18-cc7833df8b1e", + "metadata": {}, + "outputs": [], + "source": [ + "from shapely import Point" + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "id": "1d206054-9ac9-42e6-b671-891e428d17ad", + "metadata": {}, + "outputs": [], + "source": [ + "# datax = [item | dict(geom={\"type\": \"Point\", \"coordinates\": item[\"coordinates\"]}) for item in data]\n", + "datax = [item | dict(geom=Point(*item[\"coordinates\"])) for item in data]" + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "id": "6fd20888-4910-4fa8-9d71-5c3ca6269234", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'type': 'small',\n", + " 'name': 'Sahnewal',\n", + " 'abbrev': 'LUH',\n", + " 'coordinates': [75.95707224036516, 30.850359856170172],\n", + " 'geom': }" + ] + }, + "execution_count": 24, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "datax[0]" + ] + }, + { + "cell_type": "code", + "execution_count": 31, + "id": "c241c8a1-aa8f-43f7-9b8b-8101975624da", + "metadata": {}, + "outputs": [], + "source": [ + "gdf = ol.GeoDataFrame.from_dict(datax, geometry=\"geom\", crs=\"EPSG:4326\")" + ] + }, + { + "cell_type": "code", + "execution_count": 42, + "id": "9d888565-2e84-4b82-9a93-b3bb4bc8f1fa", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "3f1197545c964ba3bf0f912aef3234b9", + "version_major": 2, + "version_minor": 1 + }, + "text/plain": [ + "MapWidget(calls=[{'method': 'addLayer', 'args': ({'id': 'geopandas', 'source': {'@@geojson': {'type': 'Feature…" + ] + }, + "execution_count": 42, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m = gdf.ol.color_category(\"type\").explore()\n", + "m" + ] + }, + { + "cell_type": "code", + "execution_count": 43, + "id": "b6226d94-346c-4def-8433-31ecee5b46e0", + "metadata": {}, + "outputs": [], + "source": [ + "m.set_opacity(\"geopandas\", 0.6)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f4cc5eb2-b3f1-4c91-90d4-c75af55147e9", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/layers/geopandas-fit-bounds.ipynb b/notebooks/layers/geopandas-fit-bounds.ipynb new file mode 100644 index 0000000..8342c7f --- /dev/null +++ b/notebooks/layers/geopandas-fit-bounds.ipynb @@ -0,0 +1,121 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "25c81600-e906-4788-9775-7bdd60e6a161", + "metadata": {}, + "outputs": [], + "source": [ + "import openlayers as ol" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "914eaff6-42ba-47a0-96be-234a7019759f", + "metadata": {}, + "outputs": [], + "source": [ + "data = \"zip+https://github.com/Toblerity/Fiona/files/11151652/coutwildrnp.zip\"\n", + "gdf = ol.GeoDataFrame.from_file(data)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "981ae857-84e2-48b0-9233-4875f6535070", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([-113.56424713, 37.06898117, -104.97087097, 41.99627686])" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gdf.total_bounds" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "b0198768-245b-4005-849a-17b6393be430", + "metadata": {}, + "outputs": [], + "source": [ + "m = gdf.ol.color_category(\"STATE\").explore()" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "7fa470bc-7a84-4788-bb04-da12b6a60379", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "7ca0db70398f45d5b74b8db21863d370", + "version_major": 2, + "version_minor": 1 + }, + "text/plain": [ + "MapWidget(calls=[{'method': 'addLayer', 'args': ({'id': 'geopandas', 'source': {'@@geojson': {'type': 'Feature…" + ] + }, + "execution_count": 6, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "e2558080-2fcf-4250-aa11-2c630055fa3b", + "metadata": {}, + "outputs": [], + "source": [ + "m.add_call(\"fitBoundsFromLonLat\", gdf.total_bounds)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cbae705c-2c15-4d92-8307-66c7c92c3e94", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/layers/geopandas.ipynb b/notebooks/layers/geopandas.ipynb index 7a4b34e..cbe3e1b 100644 --- a/notebooks/layers/geopandas.ipynb +++ b/notebooks/layers/geopandas.ipynb @@ -2,7 +2,7 @@ "cells": [ { "cell_type": "code", - "execution_count": null, + "execution_count": 1, "id": "f6159a05-ce33-4ab2-b075-044e61ab9514", "metadata": {}, "outputs": [], @@ -14,7 +14,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 2, "id": "a0ddec1d-6418-4913-8ca8-7511b16f2ba9", "metadata": {}, "outputs": [], @@ -24,7 +24,7 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 3, "id": "66dca5d9-9aeb-4aac-9192-c2212c7896a9", "metadata": {}, "outputs": [], @@ -34,10 +34,31 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 4, "id": "e8dd1dba-0691-496a-9d00-ef9af37ac5a7", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "\n", + "Name: WGS 84\n", + "Axis Info [ellipsoidal]:\n", + "- Lat[north]: Geodetic latitude (degree)\n", + "- Lon[east]: Geodetic longitude (degree)\n", + "Area of Use:\n", + "- name: World.\n", + "- bounds: (-180.0, -90.0, 180.0, 90.0)\n", + "Datum: World Geodetic System 1984 ensemble\n", + "- Ellipsoid: WGS 84\n", + "- Prime Meridian: Greenwich" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# gdf = gdf.to_crs(Projection.MERCATOR)\n", "gdf.crs\n", @@ -46,65 +67,132 @@ }, { "cell_type": "code", - "execution_count": null, + "execution_count": 5, "id": "d89002c7-b977-45fa-9cc0-4bd21c94e26d", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "{'center': (0.0, 0.0), 'zoom': 0, 'projection': 'EPSG:3857'}" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "# m = gdf.openlayers.explore(style={\"stroke-color\": \"green\", \"stroke-width\": 3})\n", - "m = gdf.ol.explore()\n", - "m.initial_view" + "m = gdf.ol.explore(webgl=False)\n", + "m.initial_view_state" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 10, "id": "6e1a8778-5b94-41c6-9936-dd2654d83eb0", "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "fec92215d43c4b78864fc69c262a5f29", + "version_major": 2, + "version_minor": 1 + }, + "text/plain": [ + "MapWidget(calls=[{'method': 'addLayer', 'args': ({'id': 'geopandas', 'source': {'@@geojson': {'type': 'Feature…" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "m" ] }, { "cell_type": "code", - "execution_count": null, - "id": "f69816db-ee91-4d54-b6e2-edd3004a2ab1", + "execution_count": 11, + "id": "66b75334", "metadata": {}, "outputs": [], + "source": [ + "m.add_layer(ol.basemaps.BasemapLayer.carto())\n", + "# m.remove_layer(\"carto-dark-all\")" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "id": "da76acb0", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'layers': [{'id': 'osm', 'type': 'TileLayer'},\n", + " {'id': 'geopandas', 'type': 'VectorLayer'},\n", + " {'id': 'carto-dark-all', 'type': 'TileLayer'}],\n", + " 'controls': [{}, {}, {}]}" + ] + }, + "execution_count": 12, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m.metadata" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "f69816db-ee91-4d54-b6e2-edd3004a2ab1", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'fill-color': 'green', 'stroke-color': 'red', 'stroke-width': 2}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ "from openlayers.styles import FlatStyle\n", "\n", - "style = FlatStyle(stroke_width=2)\n", - " #, stroke_color=\"red\", fill_color=\"green\")\n", + "style = FlatStyle(stroke_width=2, stroke_color=\"red\", fill_color=\"green\")\n", "style.model_dump()" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 8, "id": "5acb39ef", "metadata": {}, "outputs": [], "source": [ - "m.add_layer_call(\"geopandas\", \"setStyle\", style.model_dump())\n", + "m.set_style(\"geopandas\", style)\n", + "# m.add_layer_call(\"geopandas\", \"setStyle\", style.model_dump())\n", "# m.remove_layer(\"osm\")" ] }, { "cell_type": "code", - "execution_count": null, + "execution_count": 11, "id": "846eb00d-f11b-4bda-a5ef-7d9de969816a", "metadata": {}, "outputs": [], "source": [ - "#m.calls\n", - "layer_id = \"geopandas\"\n", - "# m.add_call(\"setLayerProperty\", layer_id, \"style\", style)\n", - "# m.add_call(\"setLayerStyle\", layer_id, style)\n", - "layer_call = dict(method=\"setStyle\", args=[style])\n", - "# m.add_call(\"applyCallToLayer\", layer_id, layer_call)\n", - "m.add_layer_call(layer_id, \"setStyle\", style)" + "m.add_drag_and_drop_vector_layers_interaction()" ] }, { diff --git a/notebooks/modify-interaction.ipynb b/notebooks/modify-interaction.ipynb new file mode 100644 index 0000000..aef880d --- /dev/null +++ b/notebooks/modify-interaction.ipynb @@ -0,0 +1,394 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "ea1efd9a-adcc-4ceb-9d66-1f2436bf0bf1", + "metadata": {}, + "outputs": [], + "source": [ + "import openlayers as ol" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "5f0015f6-9f02-4fcc-9949-a4d9d46515d3", + "metadata": {}, + "outputs": [], + "source": [ + "gdf = ol.GeoDataFrame.from_file(\"https://openlayers.org/en/v4.6.5/examples/data/geojson/countries.geojson\")" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "bf927816-1ce2-4929-8b9e-aeed7680be42", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
idnamegeometry
0AFGAfghanistanPOLYGON ((61.21082 35.65007, 62.23065 35.27066...
1AGOAngolaMULTIPOLYGON (((16.32653 -5.87747, 16.57318 -6...
2ALBAlbaniaPOLYGON ((20.59025 41.8554, 20.46318 41.51509,...
3AREUnited Arab EmiratesPOLYGON ((51.57952 24.2455, 51.75744 24.29407,...
4ARGArgentinaMULTIPOLYGON (((-65.5 -55.2, -66.45 -55.25, -6...
............
174PSEWest BankPOLYGON ((35.54566 32.39399, 35.54525 31.7825,...
175YEMYemenPOLYGON ((53.10857 16.65105, 52.38521 16.38241...
176ZAFSouth AfricaPOLYGON ((31.521 -29.25739, 31.32556 -29.40198...
177ZMBZambiaPOLYGON ((32.75938 -9.2306, 33.23139 -9.67672,...
178ZWEZimbabwePOLYGON ((31.19141 -22.25151, 30.65986 -22.151...
\n", + "

179 rows × 3 columns

\n", + "
" + ], + "text/plain": [ + " id name \\\n", + "0 AFG Afghanistan \n", + "1 AGO Angola \n", + "2 ALB Albania \n", + "3 ARE United Arab Emirates \n", + "4 ARG Argentina \n", + ".. ... ... \n", + "174 PSE West Bank \n", + "175 YEM Yemen \n", + "176 ZAF South Africa \n", + "177 ZMB Zambia \n", + "178 ZWE Zimbabwe \n", + "\n", + " geometry \n", + "0 POLYGON ((61.21082 35.65007, 62.23065 35.27066... \n", + "1 MULTIPOLYGON (((16.32653 -5.87747, 16.57318 -6... \n", + "2 POLYGON ((20.59025 41.8554, 20.46318 41.51509,... \n", + "3 POLYGON ((51.57952 24.2455, 51.75744 24.29407,... \n", + "4 MULTIPOLYGON (((-65.5 -55.2, -66.45 -55.25, -6... \n", + ".. ... \n", + "174 POLYGON ((35.54566 32.39399, 35.54525 31.7825,... \n", + "175 POLYGON ((53.10857 16.65105, 52.38521 16.38241... \n", + "176 POLYGON ((31.521 -29.25739, 31.32556 -29.40198... \n", + "177 POLYGON ((32.75938 -9.2306, 33.23139 -9.67672,... \n", + "178 POLYGON ((31.19141 -22.25151, 30.65986 -22.151... \n", + "\n", + "[179 rows x 3 columns]" + ] + }, + "execution_count": 3, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gdf" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "7ad0cc6a-c508-44b6-83d1-8f03eb6a7e72", + "metadata": {}, + "outputs": [], + "source": [ + "m = gdf.ol.explore(tooltip=False, webgl=False)\n", + "# m.add_modify_interaction(\"geopandas\")\n", + "# m.add_select_features()\n", + "m.add_control(ol.DrawControl())" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "4241d0b7-ab89-4cbd-a60b-988b6896bbd7", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "76dd6da729614de0864befd370d3034e", + "version_major": 2, + "version_minor": 1 + }, + "text/plain": [ + "MapWidget(calls=[{'method': 'addLayer', 'args': ({'id': 'geopandas', 'source': {'@@geojson': {'type': 'Feature…" + ] + }, + "execution_count": 5, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "8ca96e77-dbad-4958-8bac-4b92cbd1acbb", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "{'draw': [{'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-120.47218141829924, -14.347436260705265]},\n", + " 'properties': None},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-115.55066021198198, -32.32384479303445]},\n", + " 'properties': None},\n", + " {'type': 'Feature',\n", + " 'geometry': {'type': 'Point',\n", + " 'coordinates': [-91.20204716358482, -21.2491496568545]},\n", + " 'properties': None}]}" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m.features" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e80b179d-9ce6-410c-b28b-9d232e478685", + "metadata": {}, + "outputs": [], + "source": [ + "m.features[\"draw\"][0][\"type\"]" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "b7dfdd78-ec19-4e72-9d82-3ed96fce30d3", + "metadata": {}, + "outputs": [], + "source": [ + "vector_layer = WebGLVectorLayer(\n", + " id=\"populated-places\",\n", + " source=VectorSource(url=\"https://openlayers.org/data/vector/populated-places.json\",\n", + " # format = {\"@@type\": \"KML\"}\n", + " ),\n", + " style={\n", + " \"circle-fill-color\": \"red\",\n", + " \"circle-stroke-color\": \"yellow\",\n", + " \"circle-stroke-width\": 0.75,\n", + " \"circle-radius\": 5\n", + " }\n", + ")\n", + "vector_layer.model_dump()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e7c33cde-06ff-4b50-be93-f049c0a4ab90", + "metadata": {}, + "outputs": [], + "source": [ + "m.add_layer(vector_layer)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "760e2fed-21f4-48ea-b18c-c3335ed0b1f6", + "metadata": {}, + "outputs": [], + "source": [ + "m.remove_layer(\"populated-places\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a764abe9-9ed9-4983-af27-ea5ae744e97a", + "metadata": {}, + "outputs": [], + "source": [ + "gts = GeoTIFFSource(**{\n", + " \"sources\": [\n", + " {\n", + " \"url\": 'https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/Q/WD/2020/7/S2A_36QWD_20200701_0_L2A/TCI.tif',\n", + " },\n", + " ],\n", + "})\n", + "gts.model_dump()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "a873206b-ea50-4429-bac6-3c2f2e78b13a", + "metadata": {}, + "outputs": [], + "source": [ + "layer_cog = WebGLTileLayer(\n", + " opacity=0.5,\n", + " source=GeoTIFFSource(\n", + " sources=[\n", + " dict(url=\"https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/Q/WD/2020/7/S2A_36QWD_20200701_0_L2A/TCI.tif\")\n", + " ]\n", + " )\n", + ")\n", + "layer_cog.model_dump()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "88afc1ab-8703-4274-bb45-c077442b05fe", + "metadata": {}, + "outputs": [], + "source": [ + "m.add_layer(layer_cog)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "cd30ee6a-19aa-4e4b-adcb-d62753900397", + "metadata": {}, + "outputs": [], + "source": [ + "m.add_layer(layer)" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "7b503c6b-2e65-42c2-a9b7-ab4ba5b03636", + "metadata": {}, + "outputs": [], + "source": [ + "m.remove_layer(\"a0ccb9af-caa2-447f-8a78-5472a940af9c\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "e5504daa-5247-4639-bd3f-3eeef7f21ef2", + "metadata": {}, + "outputs": [], + "source": [ + "m.map_clicked" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "256ce21f-d81c-4d9a-a709-401ce0041366", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": ".venv", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/notebooks/selected_features.ipynb b/notebooks/selected_features.ipynb new file mode 100644 index 0000000..76c68bf --- /dev/null +++ b/notebooks/selected_features.ipynb @@ -0,0 +1,205 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "50a578df-e913-4b3a-abc0-2780bcc9999b", + "metadata": {}, + "outputs": [], + "source": [ + "import openlayers.express as ox" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "818ce264-61cb-4ccc-b74b-9314ccb36895", + "metadata": {}, + "outputs": [], + "source": [ + "url = \"https://openlayers.org/data/vector/us-states.json\"" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "id": "647d23eb-0023-47ed-87ed-384ff1c4bab2", + "metadata": {}, + "outputs": [], + "source": [ + "m = ox.GeoJSONLayer(data=url, webgl=False).to_map()" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "3e61cf8e-c4e9-4d28-90d2-a7e0e6c2749f", + "metadata": {}, + "outputs": [ + { + "data": { + "application/vnd.jupyter.widget-view+json": { + "model_id": "f263d2e8f4a441f686d56f9c35a024a6", + "version_major": 2, + "version_minor": 1 + }, + "text/plain": [ + "MapWidget(calls=[{'method': 'addLayer', 'args': ({'id': '9c642cc5c9', 'source': {'url': 'https://openlayers.or…" + ] + }, + "execution_count": 4, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "m" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "36967ec6-bb85-4a64-8e2d-7776a89a23bf", + "metadata": {}, + "outputs": [], + "source": [ + "m.add_call(\"addSelectFeatures\")" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "id": "749ef4e0-c16b-4b5e-a925-026dc5a1349e", + "metadata": {}, + "outputs": [], + "source": [ + "import geopandas as gpd\n", + "import shapely" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "b8cc6d11-8dcb-4620-bdba-78b1c767af98", + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "array([,\n", + " ,\n", + " ,\n", + " ,\n", + " ],\n", + " dtype=object)" + ] + }, + "execution_count": 7, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "features = shapely.from_geojson(m.features_selected)\n", + "features" + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "id": "766fe3b7-9ca4-4b05-94e7-7f7563419274", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
0
0POLYGON ((-107.421329 37.000263, -106.868158 3...
1POLYGON ((-101.812942 36.501861, -100.000075 3...
\n", + "
" + ], + "text/plain": [ + " 0\n", + "0 POLYGON ((-107.421329 37.000263, -106.868158 3...\n", + "1 POLYGON ((-101.812942 36.501861, -100.000075 3..." + ] + }, + "execution_count": 19, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "gpd.GeoDataFrame(features)" + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "id": "37c15337-ed98-49b4-b827-9b9e3b268972", + "metadata": {}, + "outputs": [], + "source": [ + "# m.features_selected" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "ae248d94-c42e-4a67-a9ea-e5abfcee9679", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.11.11" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/pyproject.toml b/pyproject.toml index 61f8958..5176f3b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,11 +1,17 @@ [project] name = "openlayers" -version = "0.1.0-rc.1" +version = "0.1.0-rc.7" description = "Python Bindings for OpenLayersJS" readme = "README.md" authors = [{ name = "Stefan Kuethe", email = "stefan.kuethe@eoda.de" }] -requires-python = ">=3.9, <4" -dependencies = ["anywidget>=0.9.0", "jinja2>=3.1.6", "pydantic>=2.5.3"] +requires-python = ">=3.10, <4" +dependencies = [ + "anywidget>=0.9.0", + "eval-type-backport>=0.2.2", + "jinja2>=3.1.6", + "pydantic>=2.5.3", + "pyproj>=3.6.1", +] # [project.scripts] # openlayers = "openlayers:main" @@ -25,5 +31,6 @@ dev = [ "mkdocstrings[python]>=0.29.1", "pyproj>=3.6.1", "pytest>=8.3.5", + "requests>=2.32.3", "ruff>=0.11.5", ] diff --git a/requirements.dev.txt b/requirements.dev.txt new file mode 100644 index 0000000..64cf253 --- /dev/null +++ b/requirements.dev.txt @@ -0,0 +1,3 @@ +pytest +geopandas +requests diff --git a/requirements.docs.txt b/requirements.docs.txt new file mode 100644 index 0000000..05163da --- /dev/null +++ b/requirements.docs.txt @@ -0,0 +1,3 @@ +mkdocs>=1.6.1 +mkdocs-material>=9.6.12 +mkdocstrings[python]>=0.29.1 diff --git a/src/openlayers/__future__/__init__.py b/src/openlayers/__future__/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/openlayers/__future__/elements.py b/src/openlayers/__future__/elements.py index f866c1e..46d6e9e 100644 --- a/src/openlayers/__future__/elements.py +++ b/src/openlayers/__future__/elements.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from ..models.view import View as ViewModel diff --git a/src/openlayers/__future__/sources.py b/src/openlayers/__future__/sources.py new file mode 100644 index 0000000..cf510c4 --- /dev/null +++ b/src/openlayers/__future__/sources.py @@ -0,0 +1,7 @@ +from ..models.sources import VectorSource + + +class GeoJSONSource(VectorSource): + @property + def type(self) -> str: + return "VectorSource" diff --git a/src/openlayers/__init__.py b/src/openlayers/__init__.py index f0f3293..56e8fbd 100644 --- a/src/openlayers/__init__.py +++ b/src/openlayers/__init__.py @@ -7,10 +7,14 @@ ... from . import controls, layers +from .controls import * from .layers import * from .map import Map +from .models import formats +from .sources import * +from .styles import FlatStyle from .view import View __version__ = importlib.metadata.version(__package__) -__all__ = ["Map", "View", "MapWidget", "controls", "layers"] +__all__ = ["Map", "View", "MapWidget", "FlatStyle", "controls", "layers", "formats"] diff --git a/src/openlayers/abstracts.py b/src/openlayers/abstracts.py index 07d7e9b..a4c09a2 100644 --- a/src/openlayers/abstracts.py +++ b/src/openlayers/abstracts.py @@ -1,6 +1,14 @@ from __future__ import annotations -from pydantic import BaseModel, ConfigDict +from abc import ABC, abstractmethod + +from pydantic import BaseModel + + +class LayerLike(ABC): + @property + @abstractmethod + def model(self): ... class MyBaseModel(BaseModel): @@ -9,16 +17,3 @@ def to_dict(self) -> dict: def model_dump(self) -> dict: return super().model_dump(exclude_none=True, by_alias=True) - - -class BaseType(BaseModel): - model_config = ConfigDict(extra="allow") - - def model_dump(self) -> dict: - return dict( - type=self.type, options=super().model_dump(exclude_none=True, by_alias=True) - ) - - @property - def type(self) -> str: - return type(self).__name__ diff --git a/src/openlayers/anywidget.py b/src/openlayers/anywidget.py index 4768c1b..658b8d0 100644 --- a/src/openlayers/anywidget.py +++ b/src/openlayers/anywidget.py @@ -12,20 +12,27 @@ class MapWidget(Map, AnyWidget): - """Map widget""" + """Initialize a new `MapWidget`instance + + Note: + See [Map](openlayers.Map) for details. + """ _esm = Path(__file__).parent / "js" / "openlayers.anywidget.js" _css = Path(__file__).parent / "js" / "openlayers.anywidget.css" - # view_state = traitlets.Dict().tag(sync=True, o=True) height = traitlets.Unicode().tag(sync=True) calls = traitlets.List().tag(sync=True) - map_created = traitlets.Bool().tag(sync=True) - map_options = traitlets.Dict().tag(sync=True) - # map_clicked = traitlets.Dict().tag(sync=True) - map_view_state = traitlets.Dict().tag(sync=True) - map_metadata = traitlets.Dict().tag(sync=True) - # debug_data = traitlets.Dict().tag(sync=True) + created = traitlets.Bool().tag(sync=True) + options = traitlets.Dict().tag(sync=True) + # clicked = traitlets.Dict().tag(sync=True) + view_state = traitlets.Dict().tag(sync=True) + metadata = traitlets.Dict().tag(sync=True) + + # TODO: Move to features as well + # features_selected = traitlets.List().tag(sync=True) + + features = traitlets.Dict().tag(sync=True) def __init__( self, @@ -33,11 +40,9 @@ def __init__( layers: list[LayerT | dict] | None = None, controls: list[ControlT | dict] | None = None, height: str = "400px", - debug_data: dict = None, **kwargs, ): - self.debug_data = debug_data or dict() - self.map_created = False + self.created = False self.calls = [] Map.__init__(self, view, layers, controls) @@ -45,7 +50,7 @@ def __init__( def add_call(self, method_name: str, *args: Any) -> None: call = dict(method=method_name, args=args) - if self.map_created: + if self.created: return self.send(call) self.calls = self.calls + [call] diff --git a/src/openlayers/basemaps.py b/src/openlayers/basemaps.py index 70dd371..3ae51e1 100644 --- a/src/openlayers/basemaps.py +++ b/src/openlayers/basemaps.py @@ -1,11 +1,38 @@ from __future__ import annotations +import os + from enum import Enum -from pydantic import BaseModel +from pydantic import BaseModel, Field +from .abstracts import LayerLike from .models.layers import TileLayer -from .models.sources import OSM, ImageTileSource +from .models.sources import OSM, ImageTileSource, TileJSONSource +from .constants import MAPTILER_API_KEY_ENV_VAR + +# --- OSM + + +class BasemapLayer(LayerLike): + """An OSM raster tile layer""" + + def __init__(self) -> None: + self._model = TileLayer(id="osm", source=OSM()) + + @property + def model(self) -> TileLayer: + return self._model + + +""" + new OGCMapTile({ + url: 'https://maps.gnosis.earth/ogcapi/collections/NaturalEarth:raster:HYP_HR_SR_OB_DR/map/tiles/WebMercatorQuad', + crossOrigin: '', + }), +""" + +# --- CartoDB # light_all, # dark_all, @@ -20,9 +47,18 @@ class Carto(Enum): + """CartoDB basemap styles""" + LIGHT_ALL = "light_all" DARK_ALL = "dark_all" - VOYAGER_NO_LABLES = "rastertiles/voyager_nolabels" + LIGHT_NO_LABELS = "light_nolabels" + LIGHT_ONLY_LABELS = "light_only_labels" + DARK_NO_LABELS = "dark_nolabels" + DARK_ONLY_LABELS = "dark_only_labels" + VOYAGER = "rastertiles/voyager" + VOYAGER_NO_LABELS = "rastertiles/voyager_nolabels" + VOYAGER_ONLY_LABELS = "rastertiles/voyager_only_labels" + VOYAGER_LABELS_UNDER = "rastertiles/voyager_labels_under" class CartoRasterStyle(BaseModel): @@ -45,25 +81,66 @@ def url(self) -> str: ) -class BasemapLayer(object): - @staticmethod - def osm() -> TileLayer: - return TileLayer(id="osm", source=OSM()) +class CartoBasemapLayer(BasemapLayer): + """A CartoDB raster tile layer""" - @staticmethod - def carto( - style_name: str | Carto = Carto.DARK_ALL, double_resolution: bool = True - ) -> TileLayer: + def __init__( + self, style_name: Carto | str = Carto.DARK_ALL, double_resolution: bool = True + ): style = CartoRasterStyle(style=style_name, double_resolution=double_resolution) - return TileLayer( - id=f"carto-{Carto(style_name).value.replace('_', '-')}", + self._model = TileLayer( + id=f"carto-{Carto(style_name).value.replace('_', '-').replace('/', '-')}", source=ImageTileSource(url=style.url, attributions=style.attribution), ) -""" - new OGCMapTile({ - url: 'https://maps.gnosis.earth/ogcapi/collections/NaturalEarth:raster:HYP_HR_SR_OB_DR/map/tiles/WebMercatorQuad', - crossOrigin: '', - }), -""" +# --- MapTiler + + +class MapTiler(Enum): + """MapTiler basemap styles""" + + BASIC_V2 = "basic-v2" + STREETS_V2 = "streets-v2" + HYBRID = "hybrid" + DATAVIZ_DARK = "dataviz-dark" + + AQUARELLE = "aquarelle" + BACKDROP = "backdrop" + BASIC = "basic" + BRIGHT = "bright" + DATAVIZ = "dataviz" + LANDSCAPE = "landscape" + OCEAN = "ocean" + OPEN_STREET_MAP = "openstreetmap" + OUTDOOR = "outdoor" + SATELLITE = "satellite" + STREETS = "streets" + TONER = "toner" + TOPO = "topo" + WINTER = "winter" + + +class MapTilerValidator(BaseModel): + api_key: str = Field(os.getenv(MAPTILER_API_KEY_ENV_VAR), validate_default=True) + + +class MapTilerBasemapLayer(BasemapLayer): + """A MapTiler raster tile layer""" + + def __init__( + self, + style_name: MapTiler | str = MapTiler.STREETS_V2, + api_key: str = os.getenv(MAPTILER_API_KEY_ENV_VAR), + ) -> None: + style = ( + MapTiler(style_name).value + if isinstance(style_name, MapTiler) + else style_name + ) + key = MapTilerValidator(api_key=api_key).api_key + url = f"https://api.maptiler.com/maps/{style}/tiles.json?key={key}" + self._model = TileLayer( + id=f"maptiler-{style}", + source=TileJSONSource(url=url, tile_size=512, cross_origin="anonymous"), + ) diff --git a/src/openlayers/colors.py b/src/openlayers/colors.py index 39b1144..136d2cb 100644 --- a/src/openlayers/colors.py +++ b/src/openlayers/colors.py @@ -2,6 +2,8 @@ import json import os +import random +from typing import Any from pydantic import BaseModel @@ -25,6 +27,28 @@ def read_color_schemes(fn: str = None) -> list[ColorScheme]: data = requests.get(fn).json() except ImportError as e: + print(e) return return [ColorScheme(name=k, values=v) for k, v in data.items()] + + +class Color(object): + @staticmethod + def random_rgb_colors(n: int) -> list[int]: + return [tuple([random.randrange(255) for _ in range(3)]) for _ in range(n)] + + @staticmethod + def random_hex_colors(n: int) -> list[str]: + return [ + "#" + "".join([random.choice("0123456789ABCDEF") for _ in range(6)]) + for _ in range(n) + ] + + @classmethod + def random_hex_colors_by_category(cls, categories: Any) -> list[str]: + import pandas as pd + + codes = pd.Categorical(categories).codes + colors = cls.random_hex_colors(len(codes)) + return [colors[code] for code in codes] diff --git a/src/openlayers/constants.py b/src/openlayers/constants.py index c3805c1..22b5dd5 100644 --- a/src/openlayers/constants.py +++ b/src/openlayers/constants.py @@ -1 +1,3 @@ CARTO_ATTRIBUTION = '© OpenStreetMap, © CARTO' + +MAPTILER_API_KEY_ENV_VAR = "MAPTILER_API_KEY" diff --git a/src/openlayers/controls.py b/src/openlayers/controls.py index 4e06b7d..3615e56 100644 --- a/src/openlayers/controls.py +++ b/src/openlayers/controls.py @@ -1,11 +1,19 @@ +from __future__ import annotations + from .models.controls import ( Control, ControlT, + DrawControl, FullScreenControl, InfoBox, + MapTilerGeocodingControl, + MousePositionControl, OverviewMapControl, + RotateControl, ScaleLineControl, + ZoomControl, ZoomSliderControl, + ZoomToExtentControl, ) __all__ = [ @@ -14,4 +22,10 @@ "OverviewMapControl", "ScaleLineControl", "ZoomSliderControl", + "ZoomToExtentControl", + "ZoomControl", + "RotateControl", + "MousePositionControl", + "MapTilerGeocodingControl", + "DrawControl", ] diff --git a/src/openlayers/export.py b/src/openlayers/export.py index f62f920..6b623cd 100644 --- a/src/openlayers/export.py +++ b/src/openlayers/export.py @@ -1,3 +1,5 @@ +from __future__ import annotations + import json import os import tempfile @@ -20,6 +22,9 @@ def read_file(filename) -> str: def write_file(content: str, path: Path | str = None) -> str: if path: + with open(path, "w") as f: + f.write(content) + return path fd, path = tempfile.mkstemp(prefix="ol_") diff --git a/src/openlayers/express.py b/src/openlayers/express.py index 15c3be3..2f1d56f 100644 --- a/src/openlayers/express.py +++ b/src/openlayers/express.py @@ -1,10 +1,179 @@ -class SimpleLayer(object): ... +from __future__ import annotations +try: + from typing import Self +except ImportError: + from typing_extensions import Self -class GeoJSONLayer(object): ... +from .abstracts import LayerLike +from .anywidget import MapWidget +from .map import Map +from .models.formats import GPX, KML, Format, GeoJSON +from .models.layers import TileLayer, VectorLayer, WebGLTileLayer, WebGLVectorLayer +from .models.sources import GeoTIFFSource, VectorSource +from .models.view import View +from .styles import FlatStyle, default_style -class TileLayer(object): ... +class GeoTIFFTileLayer(LayerLike): + """Initialize a new `GeoTIFFTileLayer` instance""" + def __init__(self, url: str, opacity: float = 0.5): + source = GeoTIFFSource(sources=[dict(url=url)]) + self._model = WebGLTileLayer(opacity=opacity, source=source) -class OSMBaseLayer(object): ... + @property + def model(self) -> WebGLTileLayer: + return self._model + + def to_map(self, *args, **kwargs) -> Map: + """Initialize a new `Map` instance and add the layer to it""" + m = Map(*args, **kwargs) + m.add_layer(self) + m.set_view_from_source(self.model.id) + return m + + +class Vector(LayerLike): + def __init__( + self, + data: str | dict, + id: str = None, + style=default_style(), + fit_bounds: bool = True, + format: Format = None, + webgl: bool = True, + **kwargs, + ) -> None: + source = ( + VectorSource(url=data) + if isinstance(data, str) + else VectorSource(geojson=data) + ) + if not format and source.url: + url = source.url.lower() + if url.endswith(".kml"): + format = KML() + elif url.endswith(".gpx"): + format = GPX() + + source.format = format or GeoJSON() + Layer = WebGLVectorLayer if webgl else VectorLayer + self._model = Layer( + source=source, id=id, fit_bounds=fit_bounds, style=style, **kwargs + ) + + def explore(self, tooltip: bool = True, **kwargs) -> Map | MapWidget: + m = Map(**kwargs) + m.add_layer(self._model) + if tooltip: + m.add_default_tooltip() + + return m + + @property + def model(self) -> VectorLayer | WebGLVectorLayer: + return self._model + + +# TODO: Move to VectorLayer +class GeoJSONLayer(LayerLike): + """Initialize a new `GeoJSONLayer` instance + + Args: + data (str | dict): Either an URL to a GeoJSON object + or a dictionary representing a GeoJSON object + id (str): The ID of the layer. If `None`, a random ID is generated + style (FlatStyle): The style to be applied to the layer. If `None` a default style is used + **kwargs (Any): Style arguments that are appended to the `Style` object. + Latter ones overwrite existing entries + """ + + def __init__( + self, + data: str | dict, + id: str | None = None, + style: FlatStyle | None = None, + webgl: bool = True, + **kwargs, + ): + vector_layer_class = WebGLVectorLayer if webgl else VectorLayer + if isinstance(data, str): + source = VectorSource(url=data) + else: + source = VectorSource(geojson=data) + + self._model = vector_layer_class( + source=source, + style=style + or default_style().model_copy(update=FlatStyle(**kwargs).model_dump2()), + id=id, + ) + + @property + def model(self) -> WebGLVectorLayer | VectorLayer: + return self._model + + def set_icon_style(self) -> Self: + # TODO: implement + return self + + def to_map( + self, lon: float = 0, lat: float = 0, zoom: float | int = 0, **kwargs + ) -> Map | MapWidget: + """Initialize a new `Map` instance and add the layer to it + + Args: + lon (float): The longitude of the initial view state of the map + lat (float): The latitude of the initial view state of the map + zoom (float | int): The initial zoom level of the map + **kwargs (Any): Arguments that are handed over to the `Map` instance + """ + m = MapWidget(View(center=(lon, lat), zoom=zoom), **kwargs) + m.add_layer(self) + return m + + +# class TileLayer(object): ... + + +# class OSMBaseLayer(object): ... + + +class CircleLayer(GeoJSONLayer): + def __init__( + self, + data: str | dict, + circle_fill_color: str | None = None, + id: str | None = "circle-layer", + style: FlatStyle | None = None, + **kwargs, + ): + super().__init__(data, id, style, circle_fill_color=circle_fill_color, **kwargs) + + +class FillLayer(GeoJSONLayer): + def __init__( + self, + data: str | dict, + fill_color: str | None = None, + id: str | None = "fill-layer", + style: FlatStyle | None = None, + **kwargs, + ): + super().__init__(data, id, style, fill_color=fill_color, **kwargs) + + +# class LineLayer(GeoJSONLayer): ... + + +class IconLayer(GeoJSONLayer): + def __init__( + self, + data: str | dict, + icon_src: str, + id: str | None = "icon-layer", + style: FlatStyle | None = None, + **kwargs, + ): + super().__init__(data, id, style, icon_src=icon_src, **kwargs) diff --git a/src/openlayers/geopandas.py b/src/openlayers/geopandas.py index a4c4310..1364efd 100644 --- a/src/openlayers/geopandas.py +++ b/src/openlayers/geopandas.py @@ -1,14 +1,24 @@ +from __future__ import annotations + +from typing import TYPE_CHECKING, Self + import geopandas as gpd import pandas as pd from .anywidget import MapWidget +from .colors import Color from .models.layers import VectorLayer, WebGLVectorLayer from .models.sources import VectorSource from .models.view import Projection from .styles import FlatStyle, default_style +if TYPE_CHECKING: + from .models.controls import ControlT + +COLOR_COLUMN = "color" -def gdf_to_geojson(data: gpd.GeoDataFrame, crs: str | None = Projection.WEB_MERCATOR): + +def gdf_to_geojson(data: gpd.GeoDataFrame, crs: str | None = Projection.MERCATOR): if crs: data = data.to_crs(crs) @@ -17,33 +27,102 @@ def gdf_to_geojson(data: gpd.GeoDataFrame, crs: str | None = Projection.WEB_MERC @pd.api.extensions.register_dataframe_accessor("ol") class OLAccessor: + """Create a new `OLAccessor` instance + + Args: + gdf (gpd.GeoDataFrame): The `GeoDataFrame`, + to which the `openlayers` extension is added + """ + def __init__(self, gdf: gpd.GeoDataFrame) -> None: self._gdf = gdf + self._default_style = default_style() - def explore( + def to_source(self) -> VectorSource: + """Return data frame as OL vector source + + Returns: + An OL vector source + """ + feature_collection = gdf_to_geojson(self._gdf) + source = VectorSource(geojson=feature_collection) + return source + + def to_layer( self, - style: dict | FlatStyle = default_style(), - tooltip: bool = True, + style: FlatStyle | dict = None, layer_id: str = "geopandas", + fit_bounds: bool = True, webgl: bool = True, **kwargs, - ) -> MapWidget: - # Create geojson source - feature_collection = gdf_to_geojson(self._gdf) - source = VectorSource(geojson=feature_collection) + ) -> VectorLayer | WebGLVectorLayer: + """Return data frame as OL vector layer - # Create layer + Returns: + An OL vector layer + """ + style = style or self._default_style layer_class = WebGLVectorLayer if webgl else VectorLayer - layer = layer_class(id=layer_id, style=style, source=source) + layer = layer_class( + id=layer_id, + style=style, + fit_bounds=fit_bounds, + source=self.to_source(), + **kwargs, + ) + return layer - # Initialize map instance add add components - m = MapWidget(**kwargs) + def explore( + self, + style: FlatStyle | dict = None, + tooltip: bool | str = True, + controls: list[ControlT | dict] = None, + layer_id: str = "geopandas", + fit_bounds: bool = True, + webgl: bool = True, + **kwargs, + ) -> MapWidget: + """Create a vector layer and add it to a new `Map` instance + + Args: + style (FlatStyle | dict): The style applied to the layer. + If `None`, a default style is used + tooltip (bool | str): Whether a tooltip should be added to the map. + Either `True` to add a default tooltip, + or a mustache template string to add a custom tooltip + controls (list[ControlT | dict]): Controls initially added to the map + layer_id (str): The ID of the layer + fit_bounds (bool): Whether to fit bounds + webgl (bool): Whether the layer should be added to the map + as `WebGLVectorLayer` or as `VectorLayer` + + Returns: + A new `MapWidget` instance + """ + layer = self.to_layer( + style=style, layer_id=layer_id, fit_bounds=fit_bounds, webgl=webgl + ) + + m = MapWidget(controls=controls, **kwargs) m.add_layer(layer) - if tooltip: - m.add_tooltip() + if isinstance(tooltip, str): + m.add_tooltip(tooltip) + elif tooltip: + m.add_default_tooltip() return m + def color_category(self, column: str) -> Self: + self._gdf[COLOR_COLUMN] = Color.random_hex_colors_by_category(self._gdf[column]) + self._default_style.fill_color = ["get", COLOR_COLUMN] + self._default_style.circle_fill_color = ["get", COLOR_COLUMN] + return self + + def icon(self, icon_src: str, icon_scale: float = 1, **kwargs) -> Self: + # TODO: Use style model instead + self._default_style = {"icon-src": icon_src, "icon-scale": icon_scale} | kwargs + return self + @pd.api.extensions.register_dataframe_accessor("openlayers") class OpenLayersAccessor(OLAccessor): ... diff --git a/src/openlayers/js/openlayers.anywidget.css b/src/openlayers/js/openlayers.anywidget.css index 7284050..a2f9fbe 100644 --- a/src/openlayers/js/openlayers.anywidget.css +++ b/src/openlayers/js/openlayers.anywidget.css @@ -1 +1 @@ -:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer} +:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}svg.svelte-d2loi5{display:block;fill:#e15042}.sprite-icon.svelte-w9y5n9.svelte-w9y5n9{align-self:center;justify-self:center;opacity:.75;background-repeat:no-repeat}li.svelte-w9y5n9.svelte-w9y5n9{text-align:left;cursor:default;display:grid;grid-template-columns:40px 1fr;color:var(--color-text);padding:8px 0;font-size:14px;line-height:18px;min-width:fit-content;outline:0}li.svelte-w9y5n9.svelte-w9y5n9:first-child{padding-top:10px}li.svelte-w9y5n9.svelte-w9y5n9:last-child{padding-bottom:10px}li.picked.svelte-w9y5n9.svelte-w9y5n9{background-color:#e7edff}li.picked.svelte-w9y5n9 .secondary.svelte-w9y5n9{color:#96a4c7;padding-left:4px}li.picked.svelte-w9y5n9 .line2.svelte-w9y5n9{color:#96a4c7}li.selected.svelte-w9y5n9.svelte-w9y5n9{background-color:#f3f6ff}li.selected.svelte-w9y5n9.svelte-w9y5n9{animation:svelte-w9y5n9-backAndForth 5s linear infinite}li.selected.svelte-w9y5n9 .primary.svelte-w9y5n9{color:#2b8bfb}li.selected.svelte-w9y5n9 .secondary.svelte-w9y5n9{color:#a2adc7;padding-left:4px}li.selected.svelte-w9y5n9 .line2.svelte-w9y5n9{color:#a2adc7}li.svelte-w9y5n9>img.svelte-w9y5n9{align-self:center;justify-self:center;opacity:.75}.texts.svelte-w9y5n9.svelte-w9y5n9{padding:0 17px 0 0}.texts.svelte-w9y5n9>.svelte-w9y5n9{white-space:nowrap;display:block;min-width:fit-content}.primary.svelte-w9y5n9.svelte-w9y5n9{font-weight:600}.secondary.svelte-w9y5n9.svelte-w9y5n9{color:#aeb6c7;padding-left:4px}.line2.svelte-w9y5n9.svelte-w9y5n9{color:#aeb6c7}@keyframes svelte-w9y5n9-backAndForth{0%{transform:translate(0)}10%{transform:translate(0)}45%{transform:translate(calc(-100% + 270px))}55%{transform:translate(calc(-100% + 270px))}90%{transform:translate(0)}to{transform:translate(0)}}div.svelte-7cmwmc{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;display:flex;align-items:center}svg.svelte-7cmwmc{animation:svelte-7cmwmc-rotate .8s infinite cubic-bezier(.45,.05,.55,.95)}@keyframes svelte-7cmwmc-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}svg.svelte-gzo3ar.svelte-gzo3ar{display:block;fill:#6b7c93;stroke:#6b7c93}.list-icon.svelte-gzo3ar.svelte-gzo3ar{grid-row:1/3;align-self:center;margin:8px}.in-map.svelte-gzo3ar.svelte-gzo3ar{height:30px}.maplibregl-canvas-container .marker-selected{z-index:1}.maplibregl-canvas-container svg.svelte-gzo3ar path.svelte-gzo3ar,.leaflet-map-pane svg.svelte-gzo3ar path.svelte-gzo3ar{fill:#3170fe;stroke:#3170fe}.marker-selected svg.svelte-gzo3ar path.svelte-gzo3ar{fill:#98b7ff;stroke:#3170fe}.marker-reverse svg.svelte-gzo3ar path.svelte-gzo3ar{fill:silver;stroke:gray}.marker-interactive{cursor:pointer!important}.maptiler-gc-popup>.maplibregl-popup-content{padding:2px 8px}svg.svelte-en2qvf{display:block;fill:var(--color-icon-button)}circle.svelte-1aq105l{stroke-width:1.875;fill:none}path.svelte-1aq105l{stroke-width:1.875;stroke-linecap:round}svg.svelte-1aq105l{display:block;stroke:var(--color-icon-button)}form.svelte-bz0zu3.svelte-bz0zu3{font-family:Open Sans,Ubuntu,Helvetica Neue,Arial,Helvetica,sans-serif;position:relative;background-color:#fff;z-index:10;border-radius:4px;margin:0;transition:max-width .25s;box-shadow:0 2px 5px #33335926;--color-text:#444952;--color-icon-button:#444952}form.svelte-bz0zu3.svelte-bz0zu3,form.svelte-bz0zu3 .svelte-bz0zu3,form.svelte-bz0zu3 .svelte-bz0zu3:after,form.svelte-bz0zu3 .svelte-bz0zu3:before{box-sizing:border-box}form.can-collapse.svelte-bz0zu3.svelte-bz0zu3{max-width:29px}form.can-collapse.svelte-bz0zu3 input.svelte-bz0zu3::placeholder{transition:opacity .25s;opacity:0}form.svelte-bz0zu3.svelte-bz0zu3,form.svelte-bz0zu3.svelte-bz0zu3:focus-within,form.svelte-bz0zu3.svelte-bz0zu3:hover{width:270px;max-width:270px}form.svelte-bz0zu3 input.svelte-bz0zu3::placeholder,form.svelte-bz0zu3:focus-within input.svelte-bz0zu3::placeholder,form.svelte-bz0zu3:hover input.svelte-bz0zu3::placeholder{opacity:1}input.svelte-bz0zu3.svelte-bz0zu3{font:inherit;font-size:14px;flex-grow:1;min-height:29px;background-color:transparent;color:#444952;white-space:nowrap;overflow:hidden;border:0;margin:0;padding:0}input.svelte-bz0zu3.svelte-bz0zu3:focus{color:#444952;outline:0;outline:none;box-shadow:none}ul.svelte-bz0zu3.svelte-bz0zu3,div.error.svelte-bz0zu3.svelte-bz0zu3,div.no-results.svelte-bz0zu3.svelte-bz0zu3{background-color:#fff;border-radius:4px;left:0;list-style:none;margin:0;padding:0;position:absolute;width:100%;top:calc(100% + 6px);overflow:hidden}ul.svelte-bz0zu3.svelte-bz0zu3{font-size:14px;line-height:16px;box-shadow:0 5px 10px #33335926}div.error.svelte-bz0zu3.svelte-bz0zu3,div.no-results.svelte-bz0zu3.svelte-bz0zu3{font:inherit;line-height:18px;font-size:12px;display:flex;gap:16px}div.error.svelte-bz0zu3.svelte-bz0zu3{padding:16px;font-weight:600;color:#e25041;background-color:#fbeae8}div.error.svelte-bz0zu3 div.svelte-bz0zu3{flex-grow:1}div.error.svelte-bz0zu3 svg{flex-shrink:0;width:20px;height:20px}div.error.svelte-bz0zu3 button.svelte-bz0zu3{flex-shrink:0}div.error.svelte-bz0zu3 button.svelte-bz0zu3>svg{width:13px;fill:#e25041}div.error.svelte-bz0zu3 button.svelte-bz0zu3:hover svg,div.error.svelte-bz0zu3 button.svelte-bz0zu3:active svg{fill:#444952}div.no-results.svelte-bz0zu3.svelte-bz0zu3{padding:14px 24px 14px 16px;font-weight:400;color:#6b7c93;box-shadow:0 5px 10px #33335926}div.no-results.svelte-bz0zu3 svg{margin-top:4px;flex-shrink:0;width:20px;height:20px;width:30px;height:30px}.leaflet-bottom ul.options.svelte-bz0zu3.svelte-bz0zu3,.maplibregl-ctrl-bottom-left ul.options.svelte-bz0zu3.svelte-bz0zu3,.maplibregl-ctrl-bottom-right ul.options.svelte-bz0zu3.svelte-bz0zu3{top:auto;bottom:calc(100% + 6px)}button.svelte-bz0zu3.svelte-bz0zu3{padding:0;margin:0;border:0;background-color:transparent;height:auto;width:auto}button.svelte-bz0zu3.svelte-bz0zu3:hover{background-color:transparent}button.svelte-bz0zu3:hover svg,button.svelte-bz0zu3:active svg{fill:#2b8bfb}.input-group.svelte-bz0zu3.svelte-bz0zu3{display:flex;align-items:stretch;gap:7px;padding-inline:8px;border-radius:4px;overflow:hidden}.input-group.svelte-bz0zu3.svelte-bz0zu3:focus-within{outline:#2b8bfb solid 2px}.search-button.svelte-bz0zu3.svelte-bz0zu3{flex-shrink:0}.maplibregl-ctrl-geocoder:not(.maptiler-ctrl) .search-button svg{width:12px!important;transform:translate(.5px)}.clear-button-container.svelte-bz0zu3.svelte-bz0zu3{display:flex;display:none;position:relative;align-items:stretch}.clear-button-container.displayable.svelte-bz0zu3.svelte-bz0zu3{display:flex;flex-shrink:0}.maplibregl-ctrl-geocoder{position:relative;z-index:3}.maptiler-ctrl:not(:empty){box-shadow:none}.maptiler-ctrl .input-group.svelte-bz0zu3.svelte-bz0zu3{padding-inline:8px;border:white solid 2px}.maptiler-ctrl .input-group.svelte-bz0zu3.svelte-bz0zu3:focus-within{border:#2b8bfb solid 2px;outline:0;outline:none}.maptiler-ctrl form.can-collapse.svelte-bz0zu3.svelte-bz0zu3{max-width:33px}.maptiler-ctrl form.svelte-bz0zu3.svelte-bz0zu3,.maptiler-ctrl form.svelte-bz0zu3.svelte-bz0zu3:focus-within,.maptiler-ctrl form.svelte-bz0zu3.svelte-bz0zu3:hover{width:270px;max-width:270px} diff --git a/src/openlayers/js/openlayers.anywidget.js b/src/openlayers/js/openlayers.anywidget.js index 2f3637f..e4f35d2 100644 --- a/src/openlayers/js/openlayers.anywidget.js +++ b/src/openlayers/js/openlayers.anywidget.js @@ -1,14 +1,14 @@ -var Mx=Object.create;var xh=Object.defineProperty;var kx=Object.getOwnPropertyDescriptor;var Px=Object.getOwnPropertyNames;var Nx=Object.getPrototypeOf,Gx=Object.prototype.hasOwnProperty;var bt=(i,e)=>()=>(i&&(e=i(i=0)),e);var Fi=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),dn=(i,e)=>{for(var t in e)xh(i,t,{get:e[t],enumerable:!0})},Ox=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of Px(e))!Gx.call(i,r)&&r!==t&&xh(i,r,{get:()=>e[r],enumerable:!(n=kx(e,r))||n.enumerable});return i};var fo=(i,e,t)=>(t=i!=null?Mx(Nx(i)):{},Ox(e||!i||!i.__esModule?xh(t,"default",{value:i,enumerable:!0}):t,i));var KC=Fi((Eq,wd)=>{function zC(i,e,t){let n=t&&t.debug||!1;n&&console.log("[xml-utils] getting "+e+" in "+i);let r=typeof i=="object"?i.outer:i,o=r.slice(0,r.indexOf(">")+1),s=['"',"'"];for(let a=0;a{function qC(i,e,t){let r=new RegExp(e).exec(i.slice(t));return r?t+r.index:-1}Qd.exports=qC;Qd.exports.default=qC});var JC=Fi((_q,Sd)=>{function XC(i,e,t){let r=new RegExp(e).exec(i.slice(t));return r?t+r.index+r[0].length-1:-1}Sd.exports=XC;Sd.exports.default=XC});var WC=Fi((yq,Rd)=>{function jC(i,e){let t=new RegExp(e,"g"),n=i.match(t);return n?n.length:0}Rd.exports=jC;Rd.exports.default=jC});var e_=Fi((Bq,vd)=>{var dS=VC(),Td=JC(),ZC=WC();function $C(i,e,t){let n=t&&t.debug||!1,r=!(t&&typeof t.nested===!1),o=t&&t.startIndex||0;n&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let s=dS(i,`<${e}[ ->/]`,o);if(n&&console.log("[xml-utils] start:",s),s===-1)return;let a=i.slice(s+e.length),A=Td(a,"^[^<]*[ /]>",0),l=A!==-1&&a[A-1]==="/";if(n&&console.log("[xml-utils] selfClosing:",l),l===!1)if(r){let f=0,g=1,m=0;for(;(A=Td(a,"[ /]"+e+">",f))!==-1;){let d=a.substring(f,A+1);if(g+=ZC(d,"<"+e+`[ - >]`),m+=ZC(d,""),m>=g)break;f=A}}else A=Td(a,"[ /]"+e+">",0);let c=s+e.length+A+1;if(n&&console.log("[xml-utils] end:",c),c===-1)return;let h=i.slice(s,c),u;return l?u=null:u=h.slice(h.indexOf(">")+1,h.lastIndexOf("<")),{inner:u,outer:h,start:s,end:c}}vd.exports=$C;vd.exports.default=$C});var i_=Fi((xq,Dd)=>{var mS=e_();function t_(i,e,t){let n=[],r=t&&t.debug||!1,o=t&&typeof t.nested=="boolean"?t.nested:!0,s=t&&t.startIndex||0,a;for(;a=mS(i,e,{debug:r,startIndex:s});)o?s=a.start+1+e.length:s=a.end,n.push(a);return r&&console.log("findTagsByName found",n.length,"tags"),n}Dd.exports=t_;Dd.exports.default=t_});var mc={};dn(mc,{ExtraSamplesValues:()=>Fd,LercAddCompression:()=>Ga,LercParameters:()=>Ld,arrayFields:()=>bd,fieldTagNames:()=>eo,fieldTagTypes:()=>pS,fieldTags:()=>vi,fieldTypeNames:()=>dc,fieldTypes:()=>le,geoKeyNames:()=>ds,geoKeys:()=>n_,photometricInterpretations:()=>Tt});var eo,vi,pS,bd,dc,le,Tt,Fd,Ld,Ga,ds,n_,Oa=bt(()=>{eo={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},vi={};for(let i in eo)eo.hasOwnProperty(i)&&(vi[eo[i]]=parseInt(i,10));pS={256:"SHORT",257:"SHORT",258:"SHORT",259:"SHORT",262:"SHORT",273:"LONG",274:"SHORT",277:"SHORT",278:"LONG",279:"LONG",282:"RATIONAL",283:"RATIONAL",284:"SHORT",286:"SHORT",287:"RATIONAL",296:"SHORT",297:"SHORT",305:"ASCII",306:"ASCII",338:"SHORT",339:"SHORT",513:"LONG",514:"LONG",1024:"SHORT",1025:"SHORT",2048:"SHORT",2049:"ASCII",3072:"SHORT",3073:"ASCII",33550:"DOUBLE",33922:"DOUBLE",34264:"DOUBLE",34665:"LONG",34735:"SHORT",34736:"DOUBLE",34737:"ASCII",42113:"ASCII"},bd=[vi.BitsPerSample,vi.ExtraSamples,vi.SampleFormat,vi.StripByteCounts,vi.StripOffsets,vi.StripRowCounts,vi.TileByteCounts,vi.TileOffsets,vi.SubIFDs],dc={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},le={};for(let i in dc)dc.hasOwnProperty(i)&&(le[dc[i]]=parseInt(i,10));Tt={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},Fd={Unspecified:0,Assocalpha:1,Unassalpha:2},Ld={Version:0,AddCompression:1},Ga={None:0,Deflate:1,Zstandard:2},ds={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},n_={};for(let i in ds)ds.hasOwnProperty(i)&&(n_[ds[i]]=parseInt(i,10))});function _S(i,e){let t=i.length-e,n=0;do{for(let r=e;r>0;r--)i[n+e]+=i[n],n++;t-=e}while(t>0)}function yS(i,e,t){let n=0,r=i.length,o=r/t;for(;r>e;){for(let a=e;a>0;--a)i[n+e]+=i[n],++n;r-=e}let s=i.slice();for(let a=0;a=i.byteLength);++A){let l;if(e===2){switch(r[0]){case 8:l=new Uint8Array(i,A*a*t*s,a*t*s);break;case 16:l=new Uint16Array(i,A*a*t*s,a*t*s/2);break;case 32:l=new Uint32Array(i,A*a*t*s,a*t*s/4);break;default:throw new Error(`Predictor 2 not allowed with ${r[0]} bits per sample.`)}_S(l,a,s)}else e===3&&(l=new Uint8Array(i,A*a*t*s,a*t*s),yS(l,a,s))}return i}var h_=bt(()=>{});var dt,mr=bt(()=>{h_();dt=class{async decode(e,t){let n=await this.decodeBlock(t),r=e.Predictor||1;if(r!==1){let o=!e.StripOffsets,s=o?e.TileWidth:e.ImageWidth,a=o?e.TileLength:e.RowsPerStrip||e.ImageLength;return c_(n,r,s,a,e.BitsPerSample,e.PlanarConfiguration)}return n}}});var u_={};dn(u_,{default:()=>pc});var pc,f_=bt(()=>{mr();pc=class extends dt{decodeBlock(e){return e}}});var d_={};dn(d_,{default:()=>Ic});function xS(i,e,t){let n=e%8,r=Math.floor(e/8),o=8-n,s=e+t-(r+1)*8,a=8*(r+2)-(e+t),A=(r+2)*8-e;if(a=Math.max(0,a),r>=i.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),Pd;let l=i[r]&2**(8-n)-1;l<<=t-o;let c=l;if(r+1>>a;h<<=Math.max(0,t-A),c+=h}if(s>8&&r+2>>h;c+=u}return c}function kd(i,e){for(let t=e.length-1;t>=0;t--)i.push(e[t]);return i}function wS(i){let e=new Uint16Array(4093),t=new Uint8Array(4093);for(let g=0;g<=257;g++)e[g]=4096,t[g]=g;let n=258,r=g_,o=0;function s(){n=258,r=g_}function a(g){let m=xS(g,o,r);return o+=r,m}function A(g,m){return t[n]=m,e[n]=g,n++,n-1}function l(g){let m=[];for(let d=g;d!==4096;d=e[d])m.push(t[d]);return m}let c=[];s();let h=new Uint8Array(i),u=a(h),f;for(;u!==Pd;){if(u===Md){for(s(),u=a(h);u===Md;)u=a(h);if(u===Pd)break;if(u>Md)throw new Error(`corrupted code at scanline ${u}`);{let g=l(u);kd(c,g),f=u}}else if(u=2**r&&(r===BS?f=void 0:r++),u=a(h)}return new Uint8Array(c)}var g_,Md,Pd,BS,Ic,m_=bt(()=>{mr();g_=9,Md=256,Pd=257,BS=12;Ic=class extends dt{decodeBlock(e){return wS(e,!1).buffer}}});var I_={};dn(I_,{default:()=>Qc});function p_(i,e){let t=0,n=[],r=16;for(;r>0&&!i[r-1];)--r;n.push({children:[],index:0});let o=n[0],s;for(let a=0;a0;)o=n.pop();for(o.index++,n.push(o);n.length<=a;)n.push(s={children:[],index:0}),o.children[o.index]=s.children,o=s;t++}a+10)return g--,f>>g&1;if(f=i[u++],f===255){let H=i[u++];if(H)throw new Error(`unexpected marker: ${(f<<8|H).toString(16)}`)}return g=7,f>>>7}function d(H){let O=H,K;for(;(K=m())!==null;){if(O=O[K],typeof O=="number")return O;if(typeof O!="object")throw new Error("invalid huffman sequence")}return null}function I(H){let O=H,K=0;for(;O>0;){let ie=m();if(ie===null)return;K=K<<1|ie,--O}return K}function p(H){let O=I(H);return O>=1<>4;if(de===0){if(Pe<15)break;ge+=16}else{ge+=Pe;let tt=Ua[ge];O[tt]=p(de),ge++}}}function C(H,O){let K=d(H.huffmanTableDC),ie=K===0?0:p(K)<0){y--;return}let K=o,ie=s;for(;K<=ie;){let ge=d(H.huffmanTableAC),Ie=ge&15,de=ge>>4;if(Ie===0){if(de<15){y=I(de)+(1<>4,tt===0)ge<15?(y=I(ge)+(1<=65488&&Y<=65495)u+=2;else break}return u-h}function SS(i,e){let t=[],{blocksPerLine:n,blocksPerColumn:r}=e,o=n<<3,s=new Int32Array(64),a=new Uint8Array(64);function A(l,c,h){let u=e.quantizationTable,f,g,m,d,I,p,_,C,E,y=h,B;for(B=0;B<64;B++)y[B]=l[B]*u[B];for(B=0;B<8;++B){let x=8*B;if(y[1+x]===0&&y[2+x]===0&&y[3+x]===0&&y[4+x]===0&&y[5+x]===0&&y[6+x]===0&&y[7+x]===0){E=ms*y[0+x]+512>>10,y[0+x]=E,y[1+x]=E,y[2+x]=E,y[3+x]=E,y[4+x]=E,y[5+x]=E,y[6+x]=E,y[7+x]=E;continue}f=ms*y[0+x]+128>>8,g=ms*y[4+x]+128>>8,m=y[2+x],d=y[6+x],I=wc*(y[1+x]-y[7+x])+128>>8,C=wc*(y[1+x]+y[7+x])+128>>8,p=y[3+x]<<4,_=y[5+x]<<4,E=f-g+1>>1,f=f+g+1>>1,g=E,E=m*xc+d*Bc+128>>8,m=m*Bc-d*xc+128>>8,d=E,E=I-_+1>>1,I=I+_+1>>1,_=E,E=C+p+1>>1,p=C-p+1>>1,C=E,E=f-d+1>>1,f=f+d+1>>1,d=E,E=g-m+1>>1,g=g+m+1>>1,m=E,E=I*yc+C*_c+2048>>12,I=I*_c-C*yc+2048>>12,C=E,E=p*Cc+_*Ec+2048>>12,p=p*Ec-_*Cc+2048>>12,_=E,y[0+x]=f+C,y[7+x]=f-C,y[1+x]=g+_,y[6+x]=g-_,y[2+x]=m+p,y[5+x]=m-p,y[3+x]=d+I,y[4+x]=d-I}for(B=0;B<8;++B){let x=B;if(y[1*8+x]===0&&y[2*8+x]===0&&y[3*8+x]===0&&y[4*8+x]===0&&y[5*8+x]===0&&y[6*8+x]===0&&y[7*8+x]===0){E=ms*h[B+0]+8192>>14,y[0*8+x]=E,y[1*8+x]=E,y[2*8+x]=E,y[3*8+x]=E,y[4*8+x]=E,y[5*8+x]=E,y[6*8+x]=E,y[7*8+x]=E;continue}f=ms*y[0*8+x]+2048>>12,g=ms*y[4*8+x]+2048>>12,m=y[2*8+x],d=y[6*8+x],I=wc*(y[1*8+x]-y[7*8+x])+2048>>12,C=wc*(y[1*8+x]+y[7*8+x])+2048>>12,p=y[3*8+x],_=y[5*8+x],E=f-g+1>>1,f=f+g+1>>1,g=E,E=m*xc+d*Bc+2048>>12,m=m*Bc-d*xc+2048>>12,d=E,E=I-_+1>>1,I=I+_+1>>1,_=E,E=C+p+1>>1,p=C-p+1>>1,C=E,E=f-d+1>>1,f=f+d+1>>1,d=E,E=g-m+1>>1,g=g+m+1>>1,m=E,E=I*yc+C*_c+2048>>12,I=I*_c-C*yc+2048>>12,C=E,E=p*Cc+_*Ec+2048>>12,p=p*Ec-_*Cc+2048>>12,_=E,y[0*8+x]=f+C,y[7*8+x]=f-C,y[1*8+x]=g+_,y[6*8+x]=g-_,y[2*8+x]=m+p,y[5*8+x]=m-p,y[3*8+x]=d+I,y[4*8+x]=d-I}for(B=0;B<64;++B){let x=128+(y[B]+8>>4);x<0?c[B]=0:x>255?c[B]=255:c[B]=x}}for(let l=0;l{mr();Ua=new Int32Array([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]),Ec=4017,Cc=799,_c=3406,yc=2276,Bc=1567,xc=3784,ms=5793,wc=2896;Nd=class{constructor(){this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}resetFrames(){this.frames=[]}parse(e){let t=0;function n(){let a=e[t]<<8|e[t+1];return t+=2,a}function r(){let a=n(),A=e.subarray(t,t+a-2);return t+=A.length,A}function o(a){let A=0,l=0,c,h;for(h in a.components)a.components.hasOwnProperty(h)&&(c=a.components[h],A>4===0)for(let h=0;h<64;h++){let u=Ua[h];c[u]=e[t++]}else if(l>>4===1)for(let h=0;h<64;h++){let u=Ua[h];c[u]=n()}else throw new Error("DQT: invalid table spec");this.quantizationTables[l&15]=c}break}case 65472:case 65473:case 65474:{n();let a={extended:s===65473,progressive:s===65474,precision:e[t++],scanLines:n(),samplesPerLine:n(),components:{},componentsOrder:[]},A=e[t++],l;for(let c=0;c>4,u=e[t+1]&15,f=e[t+2];a.componentsOrder.push(l),a.components[l]={h,v:u,quantizationIdx:f},t+=3}o(a),this.frames.push(a);break}case 65476:{let a=n();for(let A=2;A>4===0?this.huffmanTablesDC[l&15]=p_(c,u):this.huffmanTablesAC[l&15]=p_(c,u)}break}case 65501:n(),this.resetInterval=n();break;case 65498:{n();let a=e[t++],A=[],l=this.frames[0];for(let g=0;g>4],m.huffmanTableAC=this.huffmanTablesAC[d&15],A.push(m)}let c=e[t++],h=e[t++],u=e[t++],f=QS(e,t,l,A,this.resetInterval,c,h,u>>4,u&15);t+=f;break}case 65535:e[t]!==255&&t--;break;default:if(e[t-3]===255&&e[t-2]>=192&&e[t-2]<=254){t-=3;break}throw new Error(`unknown JPEG marker ${s.toString(16)}`)}s=n()}}getResult(){let{frames:e}=this;if(this.frames.length===0)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let c=0;c=0;)i[e]=0}function Od(i,e,t,n,r){this.static_tree=i,this.extra_bits=e,this.extra_base=t,this.elems=n,this.max_length=r,this.has_stree=i&&i.length}function Ud(i,e){this.dyn_tree=i,this.max_code=0,this.stat_desc=e}function nn(i,e,t,n,r){this.good_length=i,this.max_lazy=e,this.nice_length=t,this.max_chain=n,this.func=r}function TR(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=kc,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(CR*2),this.dyn_dtree=new Uint16Array((2*IR+1)*2),this.bl_tree=new Uint16Array((2*ER+1)*2),pr(this.dyn_ltree),pr(this.dyn_dtree),pr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(_R+1),this.heap=new Uint16Array(2*im+1),pr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*im+1),pr(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function WR(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}function rA(i){this.options=Pc.assign({level:nT,method:oT,chunkSize:16384,windowBits:15,memLevel:8,strategy:rT},i||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new wy,this.strm.avail_out=0;let t=qa.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==Lc)throw new Error(ro[t]);if(e.header&&qa.deflateSetHeader(this.strm,e.header),e.dictionary){let n;if(typeof e.dictionary=="string"?n=eA.string2buf(e.dictionary):Qy.call(e.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(e.dictionary):n=e.dictionary,t=qa.deflateSetDictionary(this.strm,n),t!==Lc)throw new Error(ro[t]);this._dict_set=!0}}function fm(i,e){let t=new rA(e);if(t.push(i,!0),t.err)throw t.msg||ro[t.err];return t.result}function sT(i,e){return e=e||{},e.raw=!0,fm(i,e)}function aT(i,e){return e=e||{},e.gzip=!0,fm(i,e)}function vT(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function VT(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}function oA(i){this.options=Pc.assign({chunkSize:1024*64,windowBits:15,to:""},i||{});let e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(i&&i.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15)===0&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new wy,this.strm.avail_out=0;let t=On.inflateInit2(this.strm,e.windowBits);if(t!==tA)throw new Error(ro[t]);if(this.header=new XT,On.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=eA.string2buf(e.dictionary):Ny.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=On.inflateSetDictionary(this.strm,e.dictionary),t!==tA)))throw new Error(ro[t])}function gm(i,e){let t=new oA(e);if(t.push(i),t.err)throw t.msg||ro[t.err];return t.result}function $T(i,e){return e=e||{},e.raw=!0,gm(i,e)}var RS,ry,TS,vS,DS,Am,iA,Xa,Es,lm,oy,to,Gd,bS,cm,sy,ay,Ay,$d,bc,FS,ly,LS,Gn,Ka,Ja,ja,hm,Fc,cy,hy,uy,fy,Wa,Kt,rn,gy,MS,kS,dy,PS,my,py,C_,Yd,__,em,y_,B_,NS,GS,OS,x_,US,Iy,YS,HS,zS,KS,qS,VS,XS,JS,jS,WS,Za,ZS,$S,eR,ct,ro,Bs,tR,tm,iR,Er,nR,Cr,rR,oR,di,w_,mt,Q_,on,sR,Hd,aR,AR,Sc,lR,cR,hR,uR,kc,fR,gR,dR,mR,pR,im,IR,ER,CR,_R,Ee,Ir,sn,yR,Cs,um,nm,rm,om,sm,io,Ha,vt,xs,oo,ws,BR,no,S_,pr,xR,wR,_r,ei,ti,Qe,Ya,am,Ey,_s,Cy,zd,ps,QR,SR,za,RR,nA,_y,yy,vR,By,DR,bR,FR,LR,MR,kR,PR,NR,GR,OR,UR,YR,HR,qa,zR,KR,qR,Pc,xy,$a,VR,XR,JR,jR,eA,wy,Qy,ZR,$R,eT,tT,Lc,iT,nT,rT,oT,AT,lT,cT,hT,uT,fT,Rc,gT,dT,Is,R_,T_,v_,Kd,D_,mT,pT,IT,ET,CT,Va,_T,Sy,Ry,b_,yT,Tc,so,BT,xT,mi,Ty,vy,wT,F_,Nc,L_,M_,k_,P_,N_,G_,O_,U_,Y_,Mc,Nn,qd,H_,Vd,z_,K_,q_,V_,vc,Dc,X_,J_,j_,W_,Z_,Xd,$_,ey,Me,Dy,by,QT,ST,RT,TT,ty,ao,Fy,Ly,My,ky,DT,iy,Jd,jd,bT,Py,FT,LT,MT,kT,PT,NT,GT,OT,UT,YT,HT,zT,KT,qT,On,XT,Ny,JT,jT,tA,Wd,Zd,WT,ny,ZT,ev,tv,iv,nv,rv,ov,bq,Fq,Lq,Mq,kq,sv,Pq,Nq,Gc,dm=bt(()=>{RS=0,ry=1,TS=2,vS=3,DS=258,Am=29,iA=256,Xa=iA+1+Am,Es=30,lm=19,oy=2*Xa+1,to=15,Gd=16,bS=7,cm=256,sy=16,ay=17,Ay=18,$d=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),bc=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),FS=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),ly=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),LS=512,Gn=new Array((Xa+2)*2);ys(Gn);Ka=new Array(Es*2);ys(Ka);Ja=new Array(LS);ys(Ja);ja=new Array(DS-vS+1);ys(ja);hm=new Array(Am);ys(hm);Fc=new Array(Es);ys(Fc);fy=i=>i<256?Ja[i]:Ja[256+(i>>>7)],Wa=(i,e)=>{i.pending_buf[i.pending++]=e&255,i.pending_buf[i.pending++]=e>>>8&255},Kt=(i,e,t)=>{i.bi_valid>Gd-t?(i.bi_buf|=e<>Gd-i.bi_valid,i.bi_valid+=t-Gd):(i.bi_buf|=e<{Kt(i,t[e*2],t[e*2+1])},gy=(i,e)=>{let t=0;do t|=i&1,i>>>=1,t<<=1;while(--e>0);return t>>>1},MS=i=>{i.bi_valid===16?(Wa(i,i.bi_buf),i.bi_buf=0,i.bi_valid=0):i.bi_valid>=8&&(i.pending_buf[i.pending++]=i.bi_buf&255,i.bi_buf>>=8,i.bi_valid-=8)},kS=(i,e)=>{let t=e.dyn_tree,n=e.max_code,r=e.stat_desc.static_tree,o=e.stat_desc.has_stree,s=e.stat_desc.extra_bits,a=e.stat_desc.extra_base,A=e.stat_desc.max_length,l,c,h,u,f,g,m=0;for(u=0;u<=to;u++)i.bl_count[u]=0;for(t[i.heap[i.heap_max]*2+1]=0,l=i.heap_max+1;lA&&(u=A,m++),t[c*2+1]=u,!(c>n)&&(i.bl_count[u]++,f=0,c>=a&&(f=s[c-a]),g=t[c*2],i.opt_len+=g*(u+f),o&&(i.static_len+=g*(r[c*2+1]+f)));if(m!==0){do{for(u=A-1;i.bl_count[u]===0;)u--;i.bl_count[u]--,i.bl_count[u+1]+=2,i.bl_count[A]--,m-=2}while(m>0);for(u=A;u!==0;u--)for(c=i.bl_count[u];c!==0;)h=i.heap[--l],!(h>n)&&(t[h*2+1]!==u&&(i.opt_len+=(u-t[h*2+1])*t[h*2],t[h*2+1]=u),c--)}},dy=(i,e,t)=>{let n=new Array(to+1),r=0,o,s;for(o=1;o<=to;o++)r=r+t[o-1]<<1,n[o]=r;for(s=0;s<=e;s++){let a=i[s*2+1];a!==0&&(i[s*2]=gy(n[a]++,a))}},PS=()=>{let i,e,t,n,r,o=new Array(to+1);for(t=0,n=0;n>=7;n{let e;for(e=0;e{i.bi_valid>8?Wa(i,i.bi_buf):i.bi_valid>0&&(i.pending_buf[i.pending++]=i.bi_buf),i.bi_buf=0,i.bi_valid=0},C_=(i,e,t,n)=>{let r=e*2,o=t*2;return i[r]{let n=i.heap[t],r=t<<1;for(;r<=i.heap_len&&(r{let n,r,o=0,s,a;if(i.sym_next!==0)do n=i.pending_buf[i.sym_buf+o++]&255,n+=(i.pending_buf[i.sym_buf+o++]&255)<<8,r=i.pending_buf[i.sym_buf+o++],n===0?rn(i,r,e):(s=ja[r],rn(i,s+iA+1,e),a=$d[s],a!==0&&(r-=hm[s],Kt(i,r,a)),n--,s=fy(n),rn(i,s,t),a=bc[s],a!==0&&(n-=Fc[s],Kt(i,n,a)));while(o{let t=e.dyn_tree,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,o=e.stat_desc.elems,s,a,A=-1,l;for(i.heap_len=0,i.heap_max=oy,s=0;s>1;s>=1;s--)Yd(i,t,s);l=o;do s=i.heap[1],i.heap[1]=i.heap[i.heap_len--],Yd(i,t,1),a=i.heap[1],i.heap[--i.heap_max]=s,i.heap[--i.heap_max]=a,t[l*2]=t[s*2]+t[a*2],i.depth[l]=(i.depth[s]>=i.depth[a]?i.depth[s]:i.depth[a])+1,t[s*2+1]=t[a*2+1]=l,i.heap[1]=l++,Yd(i,t,1);while(i.heap_len>=2);i.heap[--i.heap_max]=i.heap[1],kS(i,e),dy(t,A,i.bl_count)},y_=(i,e,t)=>{let n,r=-1,o,s=e[0*2+1],a=0,A=7,l=4;for(s===0&&(A=138,l=3),e[(t+1)*2+1]=65535,n=0;n<=t;n++)o=s,s=e[(n+1)*2+1],!(++a{let n,r=-1,o,s=e[0*2+1],a=0,A=7,l=4;for(s===0&&(A=138,l=3),n=0;n<=t;n++)if(o=s,s=e[(n+1)*2+1],!(++a{let e;for(y_(i,i.dyn_ltree,i.l_desc.max_code),y_(i,i.dyn_dtree,i.d_desc.max_code),em(i,i.bl_desc),e=lm-1;e>=3&&i.bl_tree[ly[e]*2+1]===0;e--);return i.opt_len+=3*(e+1)+5+5+4,e},GS=(i,e,t,n)=>{let r;for(Kt(i,e-257,5),Kt(i,t-1,5),Kt(i,n-4,4),r=0;r{let e=4093624447,t;for(t=0;t<=31;t++,e>>>=1)if(e&1&&i.dyn_ltree[t*2]!==0)return 0;if(i.dyn_ltree[9*2]!==0||i.dyn_ltree[10*2]!==0||i.dyn_ltree[13*2]!==0)return 1;for(t=32;t{x_||(PS(),x_=!0),i.l_desc=new Ud(i.dyn_ltree,cy),i.d_desc=new Ud(i.dyn_dtree,hy),i.bl_desc=new Ud(i.bl_tree,uy),i.bi_buf=0,i.bi_valid=0,my(i)},Iy=(i,e,t,n)=>{Kt(i,(RS<<1)+(n?1:0),3),py(i),Wa(i,t),Wa(i,~t),t&&i.pending_buf.set(i.window.subarray(e,e+t),i.pending),i.pending+=t},YS=i=>{Kt(i,ry<<1,3),rn(i,cm,Gn),MS(i)},HS=(i,e,t,n)=>{let r,o,s=0;i.level>0?(i.strm.data_type===2&&(i.strm.data_type=OS(i)),em(i,i.l_desc),em(i,i.d_desc),s=NS(i),r=i.opt_len+3+7>>>3,o=i.static_len+3+7>>>3,o<=r&&(r=o)):r=o=t+5,t+4<=r&&e!==-1?Iy(i,e,t,n):i.strategy===4||o===r?(Kt(i,(ry<<1)+(n?1:0),3),__(i,Gn,Ka)):(Kt(i,(TS<<1)+(n?1:0),3),GS(i,i.l_desc.max_code+1,i.d_desc.max_code+1,s+1),__(i,i.dyn_ltree,i.dyn_dtree)),my(i),n&&py(i)},zS=(i,e,t)=>(i.pending_buf[i.sym_buf+i.sym_next++]=e,i.pending_buf[i.sym_buf+i.sym_next++]=e>>8,i.pending_buf[i.sym_buf+i.sym_next++]=t,e===0?i.dyn_ltree[t*2]++:(i.matches++,e--,i.dyn_ltree[(ja[t]+iA+1)*2]++,i.dyn_dtree[fy(e)*2]++),i.sym_next===i.sym_end),KS=US,qS=Iy,VS=HS,XS=zS,JS=YS,jS={_tr_init:KS,_tr_stored_block:qS,_tr_flush_block:VS,_tr_tally:XS,_tr_align:JS},WS=(i,e,t,n)=>{let r=i&65535|0,o=i>>>16&65535|0,s=0;for(;t!==0;){s=t>2e3?2e3:t,t-=s;do r=r+e[n++]|0,o=o+r|0;while(--s);r%=65521,o%=65521}return r|o<<16|0},Za=WS,ZS=()=>{let i,e=[];for(var t=0;t<256;t++){i=t;for(var n=0;n<8;n++)i=i&1?3988292384^i>>>1:i>>>1;e[t]=i}return e},$S=new Uint32Array(ZS()),eR=(i,e,t,n)=>{let r=$S,o=n+t;i^=-1;for(let s=n;s>>8^r[(i^e[s])&255];return i^-1},ct=eR,ro={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Bs={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:tR,_tr_stored_block:tm,_tr_flush_block:iR,_tr_tally:Er,_tr_align:nR}=jS,{Z_NO_FLUSH:Cr,Z_PARTIAL_FLUSH:rR,Z_FULL_FLUSH:oR,Z_FINISH:di,Z_BLOCK:w_,Z_OK:mt,Z_STREAM_END:Q_,Z_STREAM_ERROR:on,Z_DATA_ERROR:sR,Z_BUF_ERROR:Hd,Z_DEFAULT_COMPRESSION:aR,Z_FILTERED:AR,Z_HUFFMAN_ONLY:Sc,Z_RLE:lR,Z_FIXED:cR,Z_DEFAULT_STRATEGY:hR,Z_UNKNOWN:uR,Z_DEFLATED:kc}=Bs,fR=9,gR=15,dR=8,mR=29,pR=256,im=pR+1+mR,IR=30,ER=19,CR=2*im+1,_R=15,Ee=3,Ir=258,sn=Ir+Ee+1,yR=32,Cs=42,um=57,nm=69,rm=73,om=91,sm=103,io=113,Ha=666,vt=1,xs=2,oo=3,ws=4,BR=3,no=(i,e)=>(i.msg=ro[e],e),S_=i=>i*2-(i>4?9:0),pr=i=>{let e=i.length;for(;--e>=0;)i[e]=0},xR=i=>{let e,t,n,r=i.w_size;e=i.hash_size,n=e;do t=i.head[--n],i.head[n]=t>=r?t-r:0;while(--e);e=r,n=e;do t=i.prev[--n],i.prev[n]=t>=r?t-r:0;while(--e)},wR=(i,e,t)=>(e<{let e=i.state,t=e.pending;t>i.avail_out&&(t=i.avail_out),t!==0&&(i.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),i.next_out),i.next_out+=t,e.pending_out+=t,i.total_out+=t,i.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0))},ti=(i,e)=>{iR(i,i.block_start>=0?i.block_start:-1,i.strstart-i.block_start,e),i.block_start=i.strstart,ei(i.strm)},Qe=(i,e)=>{i.pending_buf[i.pending++]=e},Ya=(i,e)=>{i.pending_buf[i.pending++]=e>>>8&255,i.pending_buf[i.pending++]=e&255},am=(i,e,t,n)=>{let r=i.avail_in;return r>n&&(r=n),r===0?0:(i.avail_in-=r,e.set(i.input.subarray(i.next_in,i.next_in+r),t),i.state.wrap===1?i.adler=Za(i.adler,e,r,t):i.state.wrap===2&&(i.adler=ct(i.adler,e,r,t)),i.next_in+=r,i.total_in+=r,r)},Ey=(i,e)=>{let t=i.max_chain_length,n=i.strstart,r,o,s=i.prev_length,a=i.nice_match,A=i.strstart>i.w_size-sn?i.strstart-(i.w_size-sn):0,l=i.window,c=i.w_mask,h=i.prev,u=i.strstart+Ir,f=l[n+s-1],g=l[n+s];i.prev_length>=i.good_match&&(t>>=2),a>i.lookahead&&(a=i.lookahead);do if(r=e,!(l[r+s]!==g||l[r+s-1]!==f||l[r]!==l[n]||l[++r]!==l[n+1])){n+=2,r++;do;while(l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&ns){if(i.match_start=e,s=o,o>=a)break;f=l[n+s-1],g=l[n+s]}}while((e=h[e&c])>A&&--t!==0);return s<=i.lookahead?s:i.lookahead},_s=i=>{let e=i.w_size,t,n,r;do{if(n=i.window_size-i.lookahead-i.strstart,i.strstart>=e+(e-sn)&&(i.window.set(i.window.subarray(e,e+e-n),0),i.match_start-=e,i.strstart-=e,i.block_start-=e,i.insert>i.strstart&&(i.insert=i.strstart),xR(i),n+=e),i.strm.avail_in===0)break;if(t=am(i.strm,i.window,i.strstart+i.lookahead,n),i.lookahead+=t,i.lookahead+i.insert>=Ee)for(r=i.strstart-i.insert,i.ins_h=i.window[r],i.ins_h=_r(i,i.ins_h,i.window[r+1]);i.insert&&(i.ins_h=_r(i,i.ins_h,i.window[r+Ee-1]),i.prev[r&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=r,r++,i.insert--,!(i.lookahead+i.insert{let t=i.pending_buf_size-5>i.w_size?i.w_size:i.pending_buf_size-5,n,r,o,s=0,a=i.strm.avail_in;do{if(n=65535,o=i.bi_valid+42>>3,i.strm.avail_outr+i.strm.avail_in&&(n=r+i.strm.avail_in),n>o&&(n=o),n>8,i.pending_buf[i.pending-2]=~n,i.pending_buf[i.pending-1]=~n>>8,ei(i.strm),r&&(r>n&&(r=n),i.strm.output.set(i.window.subarray(i.block_start,i.block_start+r),i.strm.next_out),i.strm.next_out+=r,i.strm.avail_out-=r,i.strm.total_out+=r,i.block_start+=r,n-=r),n&&(am(i.strm,i.strm.output,i.strm.next_out,n),i.strm.next_out+=n,i.strm.avail_out-=n,i.strm.total_out+=n)}while(s===0);return a-=i.strm.avail_in,a&&(a>=i.w_size?(i.matches=2,i.window.set(i.strm.input.subarray(i.strm.next_in-i.w_size,i.strm.next_in),0),i.strstart=i.w_size,i.insert=i.strstart):(i.window_size-i.strstart<=a&&(i.strstart-=i.w_size,i.window.set(i.window.subarray(i.w_size,i.w_size+i.strstart),0),i.matches<2&&i.matches++,i.insert>i.strstart&&(i.insert=i.strstart)),i.window.set(i.strm.input.subarray(i.strm.next_in-a,i.strm.next_in),i.strstart),i.strstart+=a,i.insert+=a>i.w_size-i.insert?i.w_size-i.insert:a),i.block_start=i.strstart),i.high_watero&&i.block_start>=i.w_size&&(i.block_start-=i.w_size,i.strstart-=i.w_size,i.window.set(i.window.subarray(i.w_size,i.w_size+i.strstart),0),i.matches<2&&i.matches++,o+=i.w_size,i.insert>i.strstart&&(i.insert=i.strstart)),o>i.strm.avail_in&&(o=i.strm.avail_in),o&&(am(i.strm,i.window,i.strstart,o),i.strstart+=o,i.insert+=o>i.w_size-i.insert?i.w_size-i.insert:o),i.high_water>3,o=i.pending_buf_size-o>65535?65535:i.pending_buf_size-o,t=o>i.w_size?i.w_size:o,r=i.strstart-i.block_start,(r>=t||(r||e===di)&&e!==Cr&&i.strm.avail_in===0&&r<=o)&&(n=r>o?o:r,s=e===di&&i.strm.avail_in===0&&n===r?1:0,tm(i,i.block_start,n,s),i.block_start+=n,ei(i.strm)),s?oo:vt)},zd=(i,e)=>{let t,n;for(;;){if(i.lookahead=Ee&&(i.ins_h=_r(i,i.ins_h,i.window[i.strstart+Ee-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart),t!==0&&i.strstart-t<=i.w_size-sn&&(i.match_length=Ey(i,t)),i.match_length>=Ee)if(n=Er(i,i.strstart-i.match_start,i.match_length-Ee),i.lookahead-=i.match_length,i.match_length<=i.max_lazy_match&&i.lookahead>=Ee){i.match_length--;do i.strstart++,i.ins_h=_r(i,i.ins_h,i.window[i.strstart+Ee-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart;while(--i.match_length!==0);i.strstart++}else i.strstart+=i.match_length,i.match_length=0,i.ins_h=i.window[i.strstart],i.ins_h=_r(i,i.ins_h,i.window[i.strstart+1]);else n=Er(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++;if(n&&(ti(i,!1),i.strm.avail_out===0))return vt}return i.insert=i.strstart{let t,n,r;for(;;){if(i.lookahead=Ee&&(i.ins_h=_r(i,i.ins_h,i.window[i.strstart+Ee-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart),i.prev_length=i.match_length,i.prev_match=i.match_start,i.match_length=Ee-1,t!==0&&i.prev_length4096)&&(i.match_length=Ee-1)),i.prev_length>=Ee&&i.match_length<=i.prev_length){r=i.strstart+i.lookahead-Ee,n=Er(i,i.strstart-1-i.prev_match,i.prev_length-Ee),i.lookahead-=i.prev_length-1,i.prev_length-=2;do++i.strstart<=r&&(i.ins_h=_r(i,i.ins_h,i.window[i.strstart+Ee-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart);while(--i.prev_length!==0);if(i.match_available=0,i.match_length=Ee-1,i.strstart++,n&&(ti(i,!1),i.strm.avail_out===0))return vt}else if(i.match_available){if(n=Er(i,0,i.window[i.strstart-1]),n&&ti(i,!1),i.strstart++,i.lookahead--,i.strm.avail_out===0)return vt}else i.match_available=1,i.strstart++,i.lookahead--}return i.match_available&&(n=Er(i,0,i.window[i.strstart-1]),i.match_available=0),i.insert=i.strstart{let t,n,r,o,s=i.window;for(;;){if(i.lookahead<=Ir){if(_s(i),i.lookahead<=Ir&&e===Cr)return vt;if(i.lookahead===0)break}if(i.match_length=0,i.lookahead>=Ee&&i.strstart>0&&(r=i.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){o=i.strstart+Ir;do;while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&ri.lookahead&&(i.match_length=i.lookahead)}if(i.match_length>=Ee?(t=Er(i,1,i.match_length-Ee),i.lookahead-=i.match_length,i.strstart+=i.match_length,i.match_length=0):(t=Er(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++),t&&(ti(i,!1),i.strm.avail_out===0))return vt}return i.insert=0,e===di?(ti(i,!0),i.strm.avail_out===0?oo:ws):i.sym_next&&(ti(i,!1),i.strm.avail_out===0)?vt:xs},SR=(i,e)=>{let t;for(;;){if(i.lookahead===0&&(_s(i),i.lookahead===0)){if(e===Cr)return vt;break}if(i.match_length=0,t=Er(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++,t&&(ti(i,!1),i.strm.avail_out===0))return vt}return i.insert=0,e===di?(ti(i,!0),i.strm.avail_out===0?oo:ws):i.sym_next&&(ti(i,!1),i.strm.avail_out===0)?vt:xs};za=[new nn(0,0,0,0,Cy),new nn(4,4,8,4,zd),new nn(4,5,16,8,zd),new nn(4,6,32,32,zd),new nn(4,4,16,16,ps),new nn(8,16,32,32,ps),new nn(8,16,128,128,ps),new nn(8,32,128,256,ps),new nn(32,128,258,1024,ps),new nn(32,258,258,4096,ps)],RR=i=>{i.window_size=2*i.w_size,pr(i.head),i.max_lazy_match=za[i.level].max_lazy,i.good_match=za[i.level].good_length,i.nice_match=za[i.level].nice_length,i.max_chain_length=za[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=Ee-1,i.match_available=0,i.ins_h=0};nA=i=>{if(!i)return 1;let e=i.state;return!e||e.strm!==i||e.status!==Cs&&e.status!==um&&e.status!==nm&&e.status!==rm&&e.status!==om&&e.status!==sm&&e.status!==io&&e.status!==Ha?1:0},_y=i=>{if(nA(i))return no(i,on);i.total_in=i.total_out=0,i.data_type=uR;let e=i.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?um:e.wrap?Cs:io,i.adler=e.wrap===2?0:1,e.last_flush=-2,tR(e),mt},yy=i=>{let e=_y(i);return e===mt&&RR(i.state),e},vR=(i,e)=>nA(i)||i.state.wrap!==2?on:(i.state.gzhead=e,mt),By=(i,e,t,n,r,o)=>{if(!i)return on;let s=1;if(e===aR&&(e=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>fR||t!==kc||n<8||n>15||e<0||e>9||o<0||o>cR||n===8&&s!==1)return no(i,on);n===8&&(n=9);let a=new TR;return i.state=a,a.strm=i,a.status=Cs,a.wrap=s,a.gzhead=null,a.w_bits=n,a.w_size=1<By(i,e,kc,gR,dR,hR),bR=(i,e)=>{if(nA(i)||e>w_||e<0)return i?no(i,on):on;let t=i.state;if(!i.output||i.avail_in!==0&&!i.input||t.status===Ha&&e!==di)return no(i,i.avail_out===0?Hd:on);let n=t.last_flush;if(t.last_flush=e,t.pending!==0){if(ei(i),i.avail_out===0)return t.last_flush=-1,mt}else if(i.avail_in===0&&S_(e)<=S_(n)&&e!==di)return no(i,Hd);if(t.status===Ha&&i.avail_in!==0)return no(i,Hd);if(t.status===Cs&&t.wrap===0&&(t.status=io),t.status===Cs){let r=kc+(t.w_bits-8<<4)<<8,o=-1;if(t.strategy>=Sc||t.level<2?o=0:t.level<6?o=1:t.level===6?o=2:o=3,r|=o<<6,t.strstart!==0&&(r|=yR),r+=31-r%31,Ya(t,r),t.strstart!==0&&(Ya(t,i.adler>>>16),Ya(t,i.adler&65535)),i.adler=1,t.status=io,ei(i),t.pending!==0)return t.last_flush=-1,mt}if(t.status===um){if(i.adler=0,Qe(t,31),Qe(t,139),Qe(t,8),t.gzhead)Qe(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),Qe(t,t.gzhead.time&255),Qe(t,t.gzhead.time>>8&255),Qe(t,t.gzhead.time>>16&255),Qe(t,t.gzhead.time>>24&255),Qe(t,t.level===9?2:t.strategy>=Sc||t.level<2?4:0),Qe(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(Qe(t,t.gzhead.extra.length&255),Qe(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(i.adler=ct(i.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=nm;else if(Qe(t,0),Qe(t,0),Qe(t,0),Qe(t,0),Qe(t,0),Qe(t,t.level===9?2:t.strategy>=Sc||t.level<2?4:0),Qe(t,BR),t.status=io,ei(i),t.pending!==0)return t.last_flush=-1,mt}if(t.status===nm){if(t.gzhead.extra){let r=t.pending,o=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+o>t.pending_buf_size;){let a=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+a),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>r&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex+=a,ei(i),t.pending!==0)return t.last_flush=-1,mt;r=0,o-=a}let s=new Uint8Array(t.gzhead.extra);t.pending_buf.set(s.subarray(t.gzindex,t.gzindex+o),t.pending),t.pending+=o,t.gzhead.hcrc&&t.pending>r&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex=0}t.status=rm}if(t.status===rm){if(t.gzhead.name){let r=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>r&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),ei(i),t.pending!==0)return t.last_flush=-1,mt;r=0}t.gzindexr&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex=0}t.status=om}if(t.status===om){if(t.gzhead.comment){let r=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>r&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),ei(i),t.pending!==0)return t.last_flush=-1,mt;r=0}t.gzindexr&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r))}t.status=sm}if(t.status===sm){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(ei(i),t.pending!==0))return t.last_flush=-1,mt;Qe(t,i.adler&255),Qe(t,i.adler>>8&255),i.adler=0}if(t.status=io,ei(i),t.pending!==0)return t.last_flush=-1,mt}if(i.avail_in!==0||t.lookahead!==0||e!==Cr&&t.status!==Ha){let r=t.level===0?Cy(t,e):t.strategy===Sc?SR(t,e):t.strategy===lR?QR(t,e):za[t.level].func(t,e);if((r===oo||r===ws)&&(t.status=Ha),r===vt||r===oo)return i.avail_out===0&&(t.last_flush=-1),mt;if(r===xs&&(e===rR?nR(t):e!==w_&&(tm(t,0,0,!1),e===oR&&(pr(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),ei(i),i.avail_out===0))return t.last_flush=-1,mt}return e!==di?mt:t.wrap<=0?Q_:(t.wrap===2?(Qe(t,i.adler&255),Qe(t,i.adler>>8&255),Qe(t,i.adler>>16&255),Qe(t,i.adler>>24&255),Qe(t,i.total_in&255),Qe(t,i.total_in>>8&255),Qe(t,i.total_in>>16&255),Qe(t,i.total_in>>24&255)):(Ya(t,i.adler>>>16),Ya(t,i.adler&65535)),ei(i),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?mt:Q_)},FR=i=>{if(nA(i))return on;let e=i.state.status;return i.state=null,e===io?no(i,sR):mt},LR=(i,e)=>{let t=e.length;if(nA(i))return on;let n=i.state,r=n.wrap;if(r===2||r===1&&n.status!==Cs||n.lookahead)return on;if(r===1&&(i.adler=Za(i.adler,e,t,0)),n.wrap=0,t>=n.w_size){r===0&&(pr(n.head),n.strstart=0,n.block_start=0,n.insert=0);let A=new Uint8Array(n.w_size);A.set(e.subarray(t-n.w_size,t),0),e=A,t=n.w_size}let o=i.avail_in,s=i.next_in,a=i.input;for(i.avail_in=t,i.next_in=0,i.input=e,_s(n);n.lookahead>=Ee;){let A=n.strstart,l=n.lookahead-(Ee-1);do n.ins_h=_r(n,n.ins_h,n.window[A+Ee-1]),n.prev[A&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=A,A++;while(--l);n.strstart=A,n.lookahead=Ee-1,_s(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=Ee-1,n.match_available=0,i.next_in=s,i.input=a,i.avail_in=o,n.wrap=r,mt},MR=DR,kR=By,PR=yy,NR=_y,GR=vR,OR=bR,UR=FR,YR=LR,HR="pako deflate (from Nodeca project)",qa={deflateInit:MR,deflateInit2:kR,deflateReset:PR,deflateResetKeep:NR,deflateSetHeader:GR,deflate:OR,deflateEnd:UR,deflateSetDictionary:YR,deflateInfo:HR},zR=(i,e)=>Object.prototype.hasOwnProperty.call(i,e),KR=function(i){let e=Array.prototype.slice.call(arguments,1);for(;e.length;){let t=e.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(let n in t)zR(t,n)&&(i[n]=t[n])}}return i},qR=i=>{let e=0;for(let n=0,r=i.length;n=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1;$a[254]=$a[254]=1;VR=i=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(i);let e,t,n,r,o,s=i.length,a=0;for(r=0;r>>6,e[o++]=128|t&63):t<65536?(e[o++]=224|t>>>12,e[o++]=128|t>>>6&63,e[o++]=128|t&63):(e[o++]=240|t>>>18,e[o++]=128|t>>>12&63,e[o++]=128|t>>>6&63,e[o++]=128|t&63);return e},XR=(i,e)=>{if(e<65534&&i.subarray&&xy)return String.fromCharCode.apply(null,i.length===e?i:i.subarray(0,e));let t="";for(let n=0;n{let t=e||i.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(i.subarray(0,e));let n,r,o=new Array(t*2);for(r=0,n=0;n4){o[r++]=65533,n+=a-1;continue}for(s&=a===2?31:a===3?15:7;a>1&&n1){o[r++]=65533;continue}s<65536?o[r++]=s:(s-=65536,o[r++]=55296|s>>10&1023,o[r++]=56320|s&1023)}return XR(o,r)},jR=(i,e)=>{e=e||i.length,e>i.length&&(e=i.length);let t=e-1;for(;t>=0&&(i[t]&192)===128;)t--;return t<0||t===0?e:t+$a[i[t]]>e?t:e},eA={string2buf:VR,buf2string:JR,utf8border:jR};wy=WR,Qy=Object.prototype.toString,{Z_NO_FLUSH:ZR,Z_SYNC_FLUSH:$R,Z_FULL_FLUSH:eT,Z_FINISH:tT,Z_OK:Lc,Z_STREAM_END:iT,Z_DEFAULT_COMPRESSION:nT,Z_DEFAULT_STRATEGY:rT,Z_DEFLATED:oT}=Bs;rA.prototype.push=function(i,e){let t=this.strm,n=this.options.chunkSize,r,o;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?tT:ZR,typeof i=="string"?t.input=eA.string2buf(i):Qy.call(i)==="[object ArrayBuffer]"?t.input=new Uint8Array(i):t.input=i,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),(o===$R||o===eT)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(r=qa.deflate(t,o),r===iT)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),r=qa.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Lc;if(t.avail_out===0){this.onData(t.output);continue}if(o>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};rA.prototype.onData=function(i){this.chunks.push(i)};rA.prototype.onEnd=function(i){i===Lc&&(this.result=Pc.flattenChunks(this.chunks)),this.chunks=[],this.err=i,this.msg=this.strm.msg};AT=rA,lT=fm,cT=sT,hT=aT,uT=Bs,fT={Deflate:AT,deflate:lT,deflateRaw:cT,gzip:hT,constants:uT},Rc=16209,gT=16191,dT=function(e,t){let n,r,o,s,a,A,l,c,h,u,f,g,m,d,I,p,_,C,E,y,B,x,Q,w,T=e.state;n=e.next_in,Q=e.input,r=n+(e.avail_in-5),o=e.next_out,w=e.output,s=o-(t-e.avail_out),a=o+(e.avail_out-257),A=T.dmax,l=T.wsize,c=T.whave,h=T.wnext,u=T.window,f=T.hold,g=T.bits,m=T.lencode,d=T.distcode,I=(1<>>24,f>>>=C,g-=C,C=_>>>16&255,C===0)w[o++]=_&65535;else if(C&16){E=_&65535,C&=15,C&&(g>>=C,g-=C),g<15&&(f+=Q[n++]<>>24,f>>>=C,g-=C,C=_>>>16&255,C&16){if(y=_&65535,C&=15,gA){e.msg="invalid distance too far back",T.mode=Rc;break e}if(f>>>=C,g-=C,C=o-s,y>C){if(C=y-C,C>c&&T.sane){e.msg="invalid distance too far back",T.mode=Rc;break e}if(B=0,x=u,h===0){if(B+=l-C,C2;)w[o++]=x[B++],w[o++]=x[B++],w[o++]=x[B++],E-=3;E&&(w[o++]=x[B++],E>1&&(w[o++]=x[B++]))}else{B=o-y;do w[o++]=w[B++],w[o++]=w[B++],w[o++]=w[B++],E-=3;while(E>2);E&&(w[o++]=w[B++],E>1&&(w[o++]=w[B++]))}}else if((C&64)===0){_=d[(_&65535)+(f&(1<>3,n-=E,g-=E<<3,f&=(1<{let A=a.bits,l=0,c=0,h=0,u=0,f=0,g=0,m=0,d=0,I=0,p=0,_,C,E,y,B,x=null,Q,w=new Uint16Array(Is+1),T=new Uint16Array(Is+1),R=null,F,D,S;for(l=0;l<=Is;l++)w[l]=0;for(c=0;c=1&&w[u]===0;u--);if(f>u&&(f=u),u===0)return r[o++]=1<<24|64<<16|0,r[o++]=1<<24|64<<16|0,a.bits=1,0;for(h=1;h0&&(i===v_||u!==1))return-1;for(T[1]=0,l=1;lR_||i===D_&&I>T_)return 1;for(;;){F=l-m,s[c]+1=Q?(D=R[s[c]-Q],S=x[s[c]-Q]):(D=96,S=0),_=1<>m)+C]=F<<24|D<<16|S|0;while(C!==0);for(_=1<>=1;if(_!==0?(p&=_-1,p+=_):p=0,c++,--w[l]===0){if(l===u)break;l=e[t+s[c]]}if(l>f&&(p&y)!==E){for(m===0&&(m=f),B+=h,g=l-m,d=1<R_||i===D_&&I>T_)return 1;E=p&y,r[E]=f<<24|g<<16|B-o|0}}return p!==0&&(r[B+p]=l-m<<24|64<<16|0),a.bits=f,0},Va=CT,_T=0,Sy=1,Ry=2,{Z_FINISH:b_,Z_BLOCK:yT,Z_TREES:Tc,Z_OK:so,Z_STREAM_END:BT,Z_NEED_DICT:xT,Z_STREAM_ERROR:mi,Z_DATA_ERROR:Ty,Z_MEM_ERROR:vy,Z_BUF_ERROR:wT,Z_DEFLATED:F_}=Bs,Nc=16180,L_=16181,M_=16182,k_=16183,P_=16184,N_=16185,G_=16186,O_=16187,U_=16188,Y_=16189,Mc=16190,Nn=16191,qd=16192,H_=16193,Vd=16194,z_=16195,K_=16196,q_=16197,V_=16198,vc=16199,Dc=16200,X_=16201,J_=16202,j_=16203,W_=16204,Z_=16205,Xd=16206,$_=16207,ey=16208,Me=16209,Dy=16210,by=16211,QT=852,ST=592,RT=15,TT=RT,ty=i=>(i>>>24&255)+(i>>>8&65280)+((i&65280)<<8)+((i&255)<<24);ao=i=>{if(!i)return 1;let e=i.state;return!e||e.strm!==i||e.modeby?1:0},Fy=i=>{if(ao(i))return mi;let e=i.state;return i.total_in=i.total_out=e.total=0,i.msg="",e.wrap&&(i.adler=e.wrap&1),e.mode=Nc,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(QT),e.distcode=e.distdyn=new Int32Array(ST),e.sane=1,e.back=-1,so},Ly=i=>{if(ao(i))return mi;let e=i.state;return e.wsize=0,e.whave=0,e.wnext=0,Fy(i)},My=(i,e)=>{let t;if(ao(i))return mi;let n=i.state;return e<0?(t=0,e=-e):(t=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?mi:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=t,n.wbits=e,Ly(i))},ky=(i,e)=>{if(!i)return mi;let t=new vT;i.state=t,t.strm=i,t.window=null,t.mode=Nc;let n=My(i,e);return n!==so&&(i.state=null),n},DT=i=>ky(i,TT),iy=!0,bT=i=>{if(iy){Jd=new Int32Array(512),jd=new Int32Array(32);let e=0;for(;e<144;)i.lens[e++]=8;for(;e<256;)i.lens[e++]=9;for(;e<280;)i.lens[e++]=7;for(;e<288;)i.lens[e++]=8;for(Va(Sy,i.lens,0,288,Jd,0,i.work,{bits:9}),e=0;e<32;)i.lens[e++]=5;Va(Ry,i.lens,0,32,jd,0,i.work,{bits:5}),iy=!1}i.lencode=Jd,i.lenbits=9,i.distcode=jd,i.distbits=5},Py=(i,e,t,n)=>{let r,o=i.state;return o.window===null&&(o.wsize=1<=o.wsize?(o.window.set(e.subarray(t-o.wsize,t),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>n&&(r=n),o.window.set(e.subarray(t-n,t-n+r),o.wnext),n-=r,n?(o.window.set(e.subarray(t-n,t),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave{let t,n,r,o,s,a,A,l,c,h,u,f,g,m,d=0,I,p,_,C,E,y,B,x,Q=new Uint8Array(4),w,T,R=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ao(i)||!i.output||!i.input&&i.avail_in!==0)return mi;t=i.state,t.mode===Nn&&(t.mode=qd),s=i.next_out,r=i.output,A=i.avail_out,o=i.next_in,n=i.input,a=i.avail_in,l=t.hold,c=t.bits,h=a,u=A,x=so;e:for(;;)switch(t.mode){case Nc:if(t.wrap===0){t.mode=qd;break}for(;c<16;){if(a===0)break e;a--,l+=n[o++]<>>8&255,t.check=ct(t.check,Q,2,0),l=0,c=0,t.mode=L_;break}if(t.head&&(t.head.done=!1),!(t.wrap&1)||(((l&255)<<8)+(l>>8))%31){i.msg="incorrect header check",t.mode=Me;break}if((l&15)!==F_){i.msg="unknown compression method",t.mode=Me;break}if(l>>>=4,c-=4,B=(l&15)+8,t.wbits===0&&(t.wbits=B),B>15||B>t.wbits){i.msg="invalid window size",t.mode=Me;break}t.dmax=1<>8&1),t.flags&512&&t.wrap&4&&(Q[0]=l&255,Q[1]=l>>>8&255,t.check=ct(t.check,Q,2,0)),l=0,c=0,t.mode=M_;case M_:for(;c<32;){if(a===0)break e;a--,l+=n[o++]<>>8&255,Q[2]=l>>>16&255,Q[3]=l>>>24&255,t.check=ct(t.check,Q,4,0)),l=0,c=0,t.mode=k_;case k_:for(;c<16;){if(a===0)break e;a--,l+=n[o++]<>8),t.flags&512&&t.wrap&4&&(Q[0]=l&255,Q[1]=l>>>8&255,t.check=ct(t.check,Q,2,0)),l=0,c=0,t.mode=P_;case P_:if(t.flags&1024){for(;c<16;){if(a===0)break e;a--,l+=n[o++]<>>8&255,t.check=ct(t.check,Q,2,0)),l=0,c=0}else t.head&&(t.head.extra=null);t.mode=N_;case N_:if(t.flags&1024&&(f=t.length,f>a&&(f=a),f&&(t.head&&(B=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(n.subarray(o,o+f),B)),t.flags&512&&t.wrap&4&&(t.check=ct(t.check,n,f,o)),a-=f,o+=f,t.length-=f),t.length))break e;t.length=0,t.mode=G_;case G_:if(t.flags&2048){if(a===0)break e;f=0;do B=n[o+f++],t.head&&B&&t.length<65536&&(t.head.name+=String.fromCharCode(B));while(B&&f>9&1,t.head.done=!0),i.adler=t.check=0,t.mode=Nn;break;case Y_:for(;c<32;){if(a===0)break e;a--,l+=n[o++]<>>=c&7,c-=c&7,t.mode=Xd;break}for(;c<3;){if(a===0)break e;a--,l+=n[o++]<>>=1,c-=1,l&3){case 0:t.mode=H_;break;case 1:if(bT(t),t.mode=vc,e===Tc){l>>>=2,c-=2;break e}break;case 2:t.mode=K_;break;case 3:i.msg="invalid block type",t.mode=Me}l>>>=2,c-=2;break;case H_:for(l>>>=c&7,c-=c&7;c<32;){if(a===0)break e;a--,l+=n[o++]<>>16^65535)){i.msg="invalid stored block lengths",t.mode=Me;break}if(t.length=l&65535,l=0,c=0,t.mode=Vd,e===Tc)break e;case Vd:t.mode=z_;case z_:if(f=t.length,f){if(f>a&&(f=a),f>A&&(f=A),f===0)break e;r.set(n.subarray(o,o+f),s),a-=f,o+=f,A-=f,s+=f,t.length-=f;break}t.mode=Nn;break;case K_:for(;c<14;){if(a===0)break e;a--,l+=n[o++]<>>=5,c-=5,t.ndist=(l&31)+1,l>>>=5,c-=5,t.ncode=(l&15)+4,l>>>=4,c-=4,t.nlen>286||t.ndist>30){i.msg="too many length or distance symbols",t.mode=Me;break}t.have=0,t.mode=q_;case q_:for(;t.have>>=3,c-=3}for(;t.have<19;)t.lens[R[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,w={bits:t.lenbits},x=Va(_T,t.lens,0,19,t.lencode,0,t.work,w),t.lenbits=w.bits,x){i.msg="invalid code lengths set",t.mode=Me;break}t.have=0,t.mode=V_;case V_:for(;t.have>>24,p=d>>>16&255,_=d&65535,!(I<=c);){if(a===0)break e;a--,l+=n[o++]<>>=I,c-=I,t.lens[t.have++]=_;else{if(_===16){for(T=I+2;c>>=I,c-=I,t.have===0){i.msg="invalid bit length repeat",t.mode=Me;break}B=t.lens[t.have-1],f=3+(l&3),l>>>=2,c-=2}else if(_===17){for(T=I+3;c>>=I,c-=I,B=0,f=3+(l&7),l>>>=3,c-=3}else{for(T=I+7;c>>=I,c-=I,B=0,f=11+(l&127),l>>>=7,c-=7}if(t.have+f>t.nlen+t.ndist){i.msg="invalid bit length repeat",t.mode=Me;break}for(;f--;)t.lens[t.have++]=B}}if(t.mode===Me)break;if(t.lens[256]===0){i.msg="invalid code -- missing end-of-block",t.mode=Me;break}if(t.lenbits=9,w={bits:t.lenbits},x=Va(Sy,t.lens,0,t.nlen,t.lencode,0,t.work,w),t.lenbits=w.bits,x){i.msg="invalid literal/lengths set",t.mode=Me;break}if(t.distbits=6,t.distcode=t.distdyn,w={bits:t.distbits},x=Va(Ry,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,w),t.distbits=w.bits,x){i.msg="invalid distances set",t.mode=Me;break}if(t.mode=vc,e===Tc)break e;case vc:t.mode=Dc;case Dc:if(a>=6&&A>=258){i.next_out=s,i.avail_out=A,i.next_in=o,i.avail_in=a,t.hold=l,t.bits=c,dT(i,u),s=i.next_out,r=i.output,A=i.avail_out,o=i.next_in,n=i.input,a=i.avail_in,l=t.hold,c=t.bits,t.mode===Nn&&(t.back=-1);break}for(t.back=0;d=t.lencode[l&(1<>>24,p=d>>>16&255,_=d&65535,!(I<=c);){if(a===0)break e;a--,l+=n[o++]<>C)],I=d>>>24,p=d>>>16&255,_=d&65535,!(C+I<=c);){if(a===0)break e;a--,l+=n[o++]<>>=C,c-=C,t.back+=C}if(l>>>=I,c-=I,t.back+=I,t.length=_,p===0){t.mode=Z_;break}if(p&32){t.back=-1,t.mode=Nn;break}if(p&64){i.msg="invalid literal/length code",t.mode=Me;break}t.extra=p&15,t.mode=X_;case X_:if(t.extra){for(T=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=J_;case J_:for(;d=t.distcode[l&(1<>>24,p=d>>>16&255,_=d&65535,!(I<=c);){if(a===0)break e;a--,l+=n[o++]<>C)],I=d>>>24,p=d>>>16&255,_=d&65535,!(C+I<=c);){if(a===0)break e;a--,l+=n[o++]<>>=C,c-=C,t.back+=C}if(l>>>=I,c-=I,t.back+=I,p&64){i.msg="invalid distance code",t.mode=Me;break}t.offset=_,t.extra=p&15,t.mode=j_;case j_:if(t.extra){for(T=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){i.msg="invalid distance too far back",t.mode=Me;break}t.mode=W_;case W_:if(A===0)break e;if(f=u-A,t.offset>f){if(f=t.offset-f,f>t.whave&&t.sane){i.msg="invalid distance too far back",t.mode=Me;break}f>t.wnext?(f-=t.wnext,g=t.wsize-f):g=t.wnext-f,f>t.length&&(f=t.length),m=t.window}else m=r,g=s-t.offset,f=t.length;f>A&&(f=A),A-=f,t.length-=f;do r[s++]=m[g++];while(--f);t.length===0&&(t.mode=Dc);break;case Z_:if(A===0)break e;r[s++]=t.length,A--,t.mode=Dc;break;case Xd:if(t.wrap){for(;c<32;){if(a===0)break e;a--,l|=n[o++]<{if(ao(i))return mi;let e=i.state;return e.window&&(e.window=null),i.state=null,so},MT=(i,e)=>{if(ao(i))return mi;let t=i.state;return(t.wrap&2)===0?mi:(t.head=e,e.done=!1,so)},kT=(i,e)=>{let t=e.length,n,r,o;return ao(i)||(n=i.state,n.wrap!==0&&n.mode!==Mc)?mi:n.mode===Mc&&(r=1,r=Za(r,e,t,0),r!==n.check)?Ty:(o=Py(i,e,t,t),o?(n.mode=Dy,vy):(n.havedict=1,so))},PT=Ly,NT=My,GT=Fy,OT=DT,UT=ky,YT=FT,HT=LT,zT=MT,KT=kT,qT="pako inflate (from Nodeca project)",On={inflateReset:PT,inflateReset2:NT,inflateResetKeep:GT,inflateInit:OT,inflateInit2:UT,inflate:YT,inflateEnd:HT,inflateGetHeader:zT,inflateSetDictionary:KT,inflateInfo:qT};XT=VT,Ny=Object.prototype.toString,{Z_NO_FLUSH:JT,Z_FINISH:jT,Z_OK:tA,Z_STREAM_END:Wd,Z_NEED_DICT:Zd,Z_STREAM_ERROR:WT,Z_DATA_ERROR:ny,Z_MEM_ERROR:ZT}=Bs;oA.prototype.push=function(i,e){let t=this.strm,n=this.options.chunkSize,r=this.options.dictionary,o,s,a;if(this.ended)return!1;for(e===~~e?s=e:s=e===!0?jT:JT,Ny.call(i)==="[object ArrayBuffer]"?t.input=new Uint8Array(i):t.input=i,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),o=On.inflate(t,s),o===Zd&&r&&(o=On.inflateSetDictionary(t,r),o===tA?o=On.inflate(t,s):o===ny&&(o=Zd));t.avail_in>0&&o===Wd&&t.state.wrap>0&&i[t.next_in]!==0;)On.inflateReset(t),o=On.inflate(t,s);switch(o){case WT:case ny:case Zd:case ZT:return this.onEnd(o),this.ended=!0,!1}if(a=t.avail_out,t.next_out&&(t.avail_out===0||o===Wd))if(this.options.to==="string"){let A=eA.utf8border(t.output,t.next_out),l=t.next_out-A,c=eA.buf2string(t.output,A);t.next_out=l,t.avail_out=n-l,l&&t.output.set(t.output.subarray(A,A+l),0),this.onData(c)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(o===tA&&a===0)){if(o===Wd)return o=On.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};oA.prototype.onData=function(i){this.chunks.push(i)};oA.prototype.onEnd=function(i){i===tA&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Pc.flattenChunks(this.chunks)),this.chunks=[],this.err=i,this.msg=this.strm.msg};ev=oA,tv=gm,iv=$T,nv=gm,rv=Bs,ov={Inflate:ev,inflate:tv,inflateRaw:iv,ungzip:nv,constants:rv},{Deflate:bq,deflate:Fq,deflateRaw:Lq,gzip:Mq}=fT,{Inflate:kq,inflate:sv,inflateRaw:Pq,ungzip:Nq}=ov,Gc=sv});var Gy={};dn(Gy,{default:()=>Oc});var Oc,Oy=bt(()=>{dm();mr();Oc=class extends dt{decodeBlock(e){return Gc(new Uint8Array(e)).buffer}}});var Uy={};dn(Uy,{default:()=>Uc});var Uc,Yy=bt(()=>{mr();Uc=class extends dt{decodeBlock(e){let t=new DataView(e),n=[];for(let r=0;r{(function(){var i=function(){var r={};r.defaultNoDataValue=-34027999387901484e22,r.decode=function(c,h){h=h||{};var u=h.encodedMaskData||h.encodedMaskData===null,f=A(c,h.inputOffset||0,u),g=h.noDataValue!==null?h.noDataValue:r.defaultNoDataValue,m=o(f,h.pixelType||Float32Array,h.encodedMaskData,g,h.returnMask),d={width:f.width,height:f.height,pixelData:m.resultPixels,minValue:m.minValue,maxValue:f.pixels.maxValue,noDataValue:g};return m.resultMask&&(d.maskData=m.resultMask),h.returnEncodedMask&&f.mask&&(d.encodedMaskData=f.mask.bitset?f.mask.bitset:null),h.returnFileInfo&&(d.fileInfo=s(f),h.computeUsedBitDepths&&(d.fileInfo.bitDepths=a(f))),d};var o=function(c,h,u,f,g){var m=0,d=c.pixels.numBlocksX,I=c.pixels.numBlocksY,p=Math.floor(c.width/d),_=Math.floor(c.height/I),C=2*c.maxZError,E=Number.MAX_VALUE,y;u=u||(c.mask?c.mask.bitset:null);var B,x;B=new h(c.width*c.height),g&&u&&(x=new Uint8Array(c.width*c.height));for(var Q=new Float32Array(p*_),w,T,R=0;R<=I;R++){var F=R!==I?_:c.height%I;if(F!==0)for(var D=0;D<=d;D++){var S=D!==d?p:c.width%d;if(S!==0){var k=R*c.width*_+D*p,L=c.width-S,b=c.pixels.blocks[m],P,N,Y;b.encoding<2?(b.encoding===0?P=b.rawData:(l(b.stuffedData,b.bitsPerPixel,b.numValidPixels,b.offset,C,Q,c.pixels.maxValue),P=Q),N=0):b.encoding===2?Y=0:Y=b.offset;var M;if(u)for(T=0;T>3],M<<=k&7),w=0;w>3]),M&128?(x&&(x[k]=1),y=b.encoding<2?P[N++]:Y,E=E>y?y:E,B[k++]=y):(x&&(x[k]=0),B[k++]=f),M<<=1;k+=L}else if(b.encoding<2)for(T=0;Ty?y:E,B[k++]=y;k+=L}else for(E=E>Y?Y:E,T=0;T0){var d=new Uint8Array(Math.ceil(f.width*f.height/8));m=new DataView(c,h,f.mask.numBytes);var I=m.getInt16(0,!0),p=2,_=0;do{if(I>0)for(;I--;)d[_++]=m.getUint8(p++);else{var C=m.getUint8(p++);for(I=-I;I--;)d[_++]=C}I=m.getInt16(p,!0),p+=2}while(p0?1:0),x=y+(f.height%y>0?1:0);f.pixels.blocks=new Array(B*x);for(var Q=0,w=0;w3)throw"Invalid block encoding ("+D.encoding+")";if(D.encoding===2){h++;continue}if(S!==0&&S!==2){if(S>>=6,D.offsetType=S,S===2)D.offset=m.getInt8(1),R++;else if(S===1)D.offset=m.getInt16(1,!0),R+=2;else if(S===0)D.offset=m.getFloat32(1,!0),R+=4;else throw"Invalid block offset type";if(D.encoding===1)if(S=m.getUint8(R),R++,D.bitsPerPixel=S&63,S>>=6,D.numValidPixelsType=S,S===2)D.numValidPixels=m.getUint8(R),R++;else if(S===1)D.numValidPixels=m.getUint16(R,!0),R+=2;else if(S===0)D.numValidPixels=m.getUint32(R,!0),R+=4;else throw"Invalid valid pixel count type"}if(h+=R,D.encoding!==3){var k,L;if(D.encoding===0){var b=(f.pixels.numBytes-1)/4;if(b!==Math.floor(b))throw"uncompressed block has invalid length";k=new ArrayBuffer(b*4),L=new Uint8Array(k),L.set(new Uint8Array(c,h,b*4));var P=new Float32Array(k);D.rawData=P,h+=b*4}else if(D.encoding===1){var N=Math.ceil(D.numValidPixels*D.bitsPerPixel/8),Y=Math.ceil(N/4);k=new ArrayBuffer(Y*4),L=new Uint8Array(k),L.set(new Uint8Array(c,h,N)),D.stuffedData=new Uint32Array(k),h+=N}}}return f.eofOffset=h,f},l=function(c,h,u,f,g,m,d){var I=(1<=h)E=y>>>C-h&I,C-=h;else{var Q=h-C;E=(y&I)<>>C}m[_]=E=c?(C=E>>>_-c&d,_-=c):(y=c-_,C=(E&d)<>>_),l[p]=u[C];else for(B=Math.ceil((m-f)/g),p=0;p=c?(C=E>>>_-c&d,_-=c):(y=c-_,C=(E&d)<>>_),l[p]=C=l?(_=C>>>p-l&g,p-=l):(I=l-p,_=(C&g)<>>p),E[d]=_=c?(E=y>>>C&d,_-=c,C+=c):(B=c-_,E=y>>>C&d,y=A[I++],_=32-B,E|=(y&(1<=c?(E=y>>>C&d,_-=c,C+=c):(B=c-_,E=y>>>C&d,y=A[I++],_=32-B,E|=(y&(1<=l?(_=E>>>C&g,p-=l,C+=l):(I=l-p,_=E>>>C&g,E=A[m++],p=32-I,_|=(E&(1<=c?(d=I>>>m-c&u,m-=c):(p=c-m,d=(I&u)<>>m),l[g]=d;return l},originalUnstuff2:function(A,l,c,h){var u=(1<=c?(I=p>>>d&u,m-=c,d+=c):(_=c-m,I=p>>>d&u,p=A[f++],m=32-_,I|=(p&(1<<_)-1)<=359?359:u;u-=g;do l+=A[f++]<<8,c+=l+=A[f++];while(--g);l=(l&65535)+(l>>>16),c=(c&65535)+(c>>>16)}return h&1&&(c+=l+=A[f]<<8),l=(l&65535)+(l>>>16),c=(c&65535)+(c>>>16),(c<<16|l)>>>0},readHeaderInfo:function(A,l){var c=l.ptr,h=new Uint8Array(A,c,6),u={};if(u.fileIdentifierString=String.fromCharCode.apply(null,h),u.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+u.fileIdentifierString;c+=6;var f=new DataView(A,c,8),g=f.getInt32(0,!0);u.fileVersion=g,c+=4,g>=3&&(u.checksum=f.getUint32(4,!0),c+=4),f=new DataView(A,c,12),u.height=f.getUint32(0,!0),u.width=f.getUint32(4,!0),c+=8,g>=4?(u.numDims=f.getUint32(8,!0),c+=4):u.numDims=1,f=new DataView(A,c,40),u.numValidPixel=f.getUint32(0,!0),u.microBlockSize=f.getInt32(4,!0),u.blobSize=f.getInt32(8,!0),u.imageType=f.getInt32(12,!0),u.maxZError=f.getFloat64(16,!0),u.zMin=f.getFloat64(24,!0),u.zMax=f.getFloat64(32,!0),c+=40,l.headerInfo=u,l.ptr=c;var m,d;if(g>=3&&(d=g>=4?52:48,m=this.computeChecksumFletcher32(new Uint8Array(A,c-d,u.blobSize-14)),m!==u.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,l){var c=l.headerInfo,h=this.getDataTypeArray(c.imageType),u=c.numDims*this.getDataTypeSize(c.imageType),f=this.readSubArray(A,l.ptr,h,u),g=this.readSubArray(A,l.ptr+u,h,u);l.ptr+=2*u;var m,d=!0;for(m=0;m0){d=new Uint8Array(Math.ceil(u/8)),g=new DataView(A,c,m.numBytes);var p=g.getInt16(0,!0),_=2,C=0,E=0;do{if(p>0)for(;p--;)d[C++]=g.getUint8(_++);else for(E=g.getUint8(_++),p=-p;p--;)d[C++]=E;p=g.getInt16(_,!0),_+=2}while(_>3],y<<=B&7):y=d[B>>3],y&128&&(I[B]=1);l.pixels.resultMask=I,m.bitset=d,c+=m.numBytes}return l.ptr=c,l.mask=m,!0},readDataOneSweep:function(A,l,c,h){var u=l.ptr,f=l.headerInfo,g=f.numDims,m=f.width*f.height,d=f.imageType,I=f.numValidPixel*o.getDataTypeSize(d)*g,p,_=l.pixels.resultMask;if(c===Uint8Array)p=new Uint8Array(A,u,I);else{var C=new ArrayBuffer(I),E=new Uint8Array(C);E.set(new Uint8Array(A,u,I)),p=new c(C)}if(p.length===m*g)h?l.pixels.resultPixels=o.swapDimensionOrder(p,m,g,c,!0):l.pixels.resultPixels=p;else{l.pixels.resultPixels=new c(m*g);var y=0,B=0,x=0,Q=0;if(g>1){if(h){for(B=0;B=m)return!1;var d=new Uint32Array(m-g);o.decodeBits(A,l,d);var I=[],p,_,C,E;for(p=g;p0&&(I[_].second=R<>>32-E,32-T>=E?(T+=E,T===32&&(T=0,F++,R=w[F])):(T+=E-32,F++,R=w[F],I[_].second|=R>>>32-T));var D=0,S=0,k=new s;for(p=0;p=c?S=c:S=D;var L=[],b,P,N,Y,M,j;for(p=g;p0)if(b=[E,_],E<=S)for(P=I[_].second<=0;Y--)M=P>>>Y&1,M?(j.right||(j.right=new s),j=j.right):(j.left||(j.left=new s),j=j.left),Y===0&&!j.val&&(j.val=b[1]);return{decodeLut:L,numBitsLUTQick:S,numBitsLUT:D,tree:k,stuffedData:w,srcPtr:F,bitPos:T}},readHuffman:function(A,l,c,h){var u=l.headerInfo,f=u.numDims,g=l.headerInfo.height,m=l.headerInfo.width,d=m*g,I=this.readHuffmanTree(A,l),p=I.decodeLut,_=I.tree,C=I.stuffedData,E=I.srcPtr,y=I.bitPos,B=I.numBitsLUTQick,x=I.numBitsLUT,Q=l.headerInfo.imageType===0?128:0,w,T,R,F=l.pixels.resultMask,D,S,k,L,b,P,N,Y=0;y>0&&(E++,y=0);var M=C[E],j=l.encodeMode===1,H=new c(d*f),O=H,K;if(f<2||j){for(K=0;K1&&(O=new c(H.buffer,d*K,d),Y=0),l.headerInfo.numValidPixel===m*g)for(P=0,L=0;L>>32-B,S=D,32-y>>64-y-B,S=D),p[S])T=p[S][1],y+=p[S][0];else for(D=M<>>32-x,S=D,32-y>>64-y-x,S=D),w=_,N=0;N>>x-N-1&1,w=k?w.right:w.left,!(w.left||w.right)){T=w.val,y=y+N+1;break}y>=32&&(y-=32,E++,M=C[E]),R=T-Q,j?(b>0?R+=Y:L>0?R+=O[P-m]:R+=Y,R&=255,O[P]=R,Y=R):O[P]=R}else for(P=0,L=0;L>>32-B,S=D,32-y>>64-y-B,S=D),p[S])T=p[S][1],y+=p[S][0];else for(D=M<>>32-x,S=D,32-y>>64-y-x,S=D),w=_,N=0;N>>x-N-1&1,w=k?w.right:w.left,!(w.left||w.right)){T=w.val,y=y+N+1;break}y>=32&&(y-=32,E++,M=C[E]),R=T-Q,j?(b>0&&F[P-1]?R+=Y:L>0&&F[P-m]?R+=O[P-m]:R+=Y,R&=255,O[P]=R,Y=R):O[P]=R}}else for(P=0,L=0;L>>32-B,S=D,32-y>>64-y-B,S=D),p[S])T=p[S][1],y+=p[S][0];else for(D=M<>>32-x,S=D,32-y>>64-y-x,S=D),w=_,N=0;N>>x-N-1&1,w=k?w.right:w.left,!(w.left||w.right)){T=w.val,y=y+N+1;break}y>=32&&(y-=32,E++,M=C[E]),R=T-Q,O[P]=R}l.ptr=l.ptr+(E+1)*4+(y>0?4:0),l.pixels.resultPixels=H,f>1&&!h&&(l.pixels.resultPixels=o.swapDimensionOrder(H,d,f,c))},decodeBits:function(A,l,c,h,u){{var f=l.headerInfo,g=f.fileVersion,m=0,d=A.byteLength-l.ptr>=5?5:A.byteLength-l.ptr,I=new DataView(A,l.ptr,d),p=I.getUint8(0);m++;var _=p>>6,C=_===0?4:3-_,E=(p&32)>0,y=p&31,B=0;if(C===1)B=I.getUint8(m),m++;else if(C===2)B=I.getUint16(m,!0),m+=2;else if(C===4)B=I.getUint32(m,!0),m+=4;else throw"Invalid valid pixel count type";var x=2*f.maxZError,Q,w,T,R,F,D,S,k,L,b,P=f.numDims>1?f.maxValues[u]:f.zMax;if(E){for(l.counter.lut++,k=I.getUint8(m),L=y,m++,R=Math.ceil((k-1)*y/8),F=Math.ceil(R/4),w=new ArrayBuffer(F*4),T=new Uint8Array(w),l.ptr+=m,T.set(new Uint8Array(A,l.ptr,R)),S=new Uint32Array(w),l.ptr+=R,b=0;k-1>>>b;)b++;R=Math.ceil(B*b/8),F=Math.ceil(R/4),w=new ArrayBuffer(F*4),T=new Uint8Array(w),T.set(new Uint8Array(A,l.ptr,R)),Q=new Uint32Array(w),l.ptr+=R,g>=3?D=r.unstuffLUT2(S,y,k-1,h,x,P):D=r.unstuffLUT(S,y,k-1,h,x,P),g>=3?r.unstuff2(Q,c,b,B,D):r.unstuff(Q,c,b,B,D)}else l.counter.bitstuffer++,b=y,l.ptr+=m,b>0&&(R=Math.ceil(B*b/8),F=Math.ceil(R/4),w=new ArrayBuffer(F*4),T=new Uint8Array(w),T.set(new Uint8Array(A,l.ptr,R)),Q=new Uint32Array(w),l.ptr+=R,g>=3?h==null?r.originalUnstuff2(Q,c,b,B):r.unstuff2(Q,c,b,B,!1,h,x,P):h==null?r.originalUnstuff(Q,c,b,B):r.unstuff(Q,c,b,B,!1,h,x,P))}},readTiles:function(A,l,c,h){var u=l.headerInfo,f=u.width,g=u.height,m=f*g,d=u.microBlockSize,I=u.imageType,p=o.getDataTypeSize(I),_=Math.ceil(f/d),C=Math.ceil(g/d);l.pixels.numBlocksY=C,l.pixels.numBlocksX=_,l.pixels.ptr=0;var E=0,y=0,B=0,x=0,Q=0,w=0,T=0,R=0,F=0,D=0,S=0,k=0,L=0,b=0,P=0,N=0,Y,M,j,H,O,K,ie=new c(d*d),ge=g%d||d,Ie=f%d||d,de,Pe,tt=u.numDims,xt,Je=l.pixels.resultMask,Te=l.pixels.resultPixels,Dt=u.fileVersion,cn=Dt>=5?14:15,wt,hn=u.zMax,It;for(B=0;B1?(It=Te,S=B*f*d+x*d,Te=new c(l.pixels.resultPixels.buffer,m*xt*p,m),hn=u.maxValues[xt]):It=null,T=A.byteLength-l.ptr,Y=new DataView(A,l.ptr,Math.min(10,T)),M={},N=0,R=Y.getUint8(0),N++,wt=u.fileVersion>=5?R&4:0,F=R>>6&255,D=R>>2&cn,D!==(x*d>>3&cn)||wt&&xt===0)throw"integrity issue";if(K=R&3,K>3)throw l.ptr+=N,"Invalid block encoding ("+K+")";if(K===2){if(wt)if(Je)for(E=0;E1&&!h&&(l.pixels.resultPixels=o.swapDimensionOrder(l.pixels.resultPixels,m,tt,c))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:o.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,l){var c=A.headerInfo.zMax,h=A.headerInfo.zMin,u=A.headerInfo.maxValues,f=A.headerInfo.numDims,g=A.headerInfo.height*A.headerInfo.width,m=0,d=0,I=0,p=A.pixels.resultMask,_=A.pixels.resultPixels;if(p)if(f>1){if(l)for(m=0;m1&&h!==c)if(l)for(m=0;m=-128&&l<=127;break;case 1:c=l>=0&&l<=255;break;case 2:c=l>=-32768&&l<=32767;break;case 3:c=l>=0&&l<=65536;break;case 4:c=l>=-2147483648&&l<=2147483647;break;case 5:c=l>=0&&l<=4294967296;break;case 6:c=l>=-34027999387901484e22&&l<=34027999387901484e22;break;case 7:c=l>=-17976931348623157e292&&l<=17976931348623157e292;break;default:c=!1}return c},getDataTypeSize:function(A){var l=0;switch(A){case 0:case 1:l=1;break;case 2:case 3:l=2;break;case 4:case 5:case 6:l=4;break;case 7:l=8;break;default:l=A}return l},getDataTypeUsed:function(A,l){var c=A;switch(A){case 2:case 4:c=A-l;break;case 3:case 5:c=A-2*l;break;case 6:l===0?c=A:l===1?c=2:c=1;break;case 7:l===0?c=A:c=A-2*l+1;break;default:c=A;break}return c},getOnePixel:function(A,l,c,h){var u=0;switch(c){case 0:u=h.getInt8(l);break;case 1:u=h.getUint8(l);break;case 2:u=h.getInt16(l,!0);break;case 3:u=h.getUint16(l,!0);break;case 4:u=h.getInt32(l,!0);break;case 5:u=h.getUInt32(l,!0);break;case 6:u=h.getFloat32(l,!0);break;case 7:u=h.getFloat64(l,!0);break;default:throw"the decoder does not understand this pixel type"}return u},swapDimensionOrder:function(A,l,c,h,u){var f=0,g=0,m=0,d=0,I=A;if(c>1)if(I=new h(l*c),u)for(f=0;f5)throw"unsupported lerc version 2."+g;o.readMask(A,u),f.numValidPixel!==f.width*f.height&&!u.pixels.resultMask&&(u.pixels.resultMask=l.maskData);var d=f.width*f.height;u.pixels.resultPixels=new m(d*f.numDims),u.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var I=!l.returnPixelInterleavedDims;if(f.numValidPixel!==0)if(f.zMax===f.zMin)o.constructConstantSurface(u,I);else if(g>=4&&o.checkMinMaxRanges(A,u))o.constructConstantSurface(u,I);else{var p=new DataView(A,u.ptr,2),_=p.getUint8(0);if(u.ptr++,_)o.readDataOneSweep(A,u,m,I);else if(g>1&&f.imageType<=1&&Math.abs(f.maxZError-.5)<1e-5){var C=p.getUint8(1);if(u.ptr++,u.encodeMode=C,C>2||g<4&&C>1)throw"Invalid Huffman flag "+C;C?o.readHuffman(A,u,m,I):o.readTiles(A,u,m,I)}else o.readTiles(A,u,m,I)}u.eofOffset=u.ptr;var E;l.inputOffset?(E=u.headerInfo.blobSize+l.inputOffset-u.ptr,Math.abs(E)>=1&&(u.eofOffset=l.inputOffset+u.headerInfo.blobSize)):(E=u.headerInfo.blobSize-u.ptr,Math.abs(E)>=1&&(u.eofOffset=u.headerInfo.blobSize));var y={width:f.width,height:f.height,pixelData:u.pixels.resultPixels,minValue:f.zMin,maxValue:f.zMax,validPixelCount:f.numValidPixel,dimCount:f.numDims,dimStats:{minValues:f.minValues,maxValues:f.maxValues},maskData:u.pixels.resultMask};if(u.pixels.resultMask&&o.isValidPixelValue(f.imageType,c)){var B=u.pixels.resultMask;for(h=0;h1&&(d&&g.push(d),_.fileInfo.mask&&_.fileInfo.mask.numBytes>0&&p++),h++,I.pixels.push(_.pixelData),I.statistics.push({minValue:_.minValue,maxValue:_.maxValue,noDataValue:_.noDataValue,dimStats:_.dimStats})}var C,E,y;if(c>1&&p>1){for(y=I.width*I.height,I.bandMasks=g,d=new Uint8Array(y),d.set(g[0]),C=1;C{mm={env:{emscripten_notify_memory_growth:function(i){pm=new Uint8Array(Un.exports.memory.buffer)}}},Hc=class{init(){return sA||(typeof fetch<"u"?sA=fetch("data:application/wasm;base64,"+zy).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,mm)).then(this._init):sA=WebAssembly.instantiate(Buffer.from(zy,"base64"),mm).then(this._init),sA)}_init(e){Un=e.instance,mm.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!Un)throw new Error("ZSTDDecoder: Await .init() before decoding.");let n=e.byteLength,r=Un.exports.malloc(n);pm.set(e,r),t=t||Number(Un.exports.ZSTD_findDecompressedSize(r,n));let o=Un.exports.malloc(t),s=Un.exports.ZSTD_decompress(o,t,r,n),a=pm.slice(o,o+s);return Un.exports.free(r),Un.exports.free(o),a}},zy="AGFzbQEAAAABpQEVYAF/AX9gAn9/AGADf39/AX9gBX9/f39/AX9gAX8AYAJ/fwF/YAR/f39/AX9gA39/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAn9/AX5gAn5+AX5gAABgBX9/f39/AGAGf39/f39/AGAIf39/f39/f38AYAl/f39/f39/f38AYAABf2AIf39/f39/f38Bf2ANf39/f39/f39/f39/fwF/YAF/AX4CJwEDZW52H2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgABANpaAEFAAAFAgEFCwACAQABAgIFBQcAAwABDgsBAQcAEhMHAAUBDAQEAAANBwQCAgYCBAgDAwMDBgEACQkHBgICAAYGAgQUBwYGAwIGAAMCAQgBBwUGCgoEEQAEBAEIAwgDBQgDEA8IAAcABAUBcAECAgUEAQCAAgYJAX8BQaCgwAILB2AHBm1lbW9yeQIABm1hbGxvYwAoBGZyZWUAJgxaU1REX2lzRXJyb3IAaBlaU1REX2ZpbmREZWNvbXByZXNzZWRTaXplAFQPWlNURF9kZWNvbXByZXNzAEoGX3N0YXJ0ACQJBwEAQQELASQKussBaA8AIAAgACgCBCABajYCBAsZACAAKAIAIAAoAgRBH3F0QQAgAWtBH3F2CwgAIABBiH9LC34BBH9BAyEBIAAoAgQiA0EgTQRAIAAoAggiASAAKAIQTwRAIAAQDQ8LIAAoAgwiAiABRgRAQQFBAiADQSBJGw8LIAAgASABIAJrIANBA3YiBCABIARrIAJJIgEbIgJrIgQ2AgggACADIAJBA3RrNgIEIAAgBCgAADYCAAsgAQsUAQF/IAAgARACIQIgACABEAEgAgv3AQECfyACRQRAIABCADcCACAAQQA2AhAgAEIANwIIQbh/DwsgACABNgIMIAAgAUEEajYCECACQQRPBEAgACABIAJqIgFBfGoiAzYCCCAAIAMoAAA2AgAgAUF/ai0AACIBBEAgAEEIIAEQFGs2AgQgAg8LIABBADYCBEF/DwsgACABNgIIIAAgAS0AACIDNgIAIAJBfmoiBEEBTQRAIARBAWtFBEAgACABLQACQRB0IANyIgM2AgALIAAgAS0AAUEIdCADajYCAAsgASACakF/ai0AACIBRQRAIABBADYCBEFsDwsgAEEoIAEQFCACQQN0ams2AgQgAgsWACAAIAEpAAA3AAAgACABKQAINwAICy8BAX8gAUECdEGgHWooAgAgACgCAEEgIAEgACgCBGprQR9xdnEhAiAAIAEQASACCyEAIAFCz9bTvtLHq9lCfiAAfEIfiUKHla+vmLbem55/fgsdAQF/IAAoAgggACgCDEYEfyAAKAIEQSBGBUEACwuCBAEDfyACQYDAAE8EQCAAIAEgAhBnIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgA0F8aiIEIABJBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsMACAAIAEpAAA3AAALQQECfyAAKAIIIgEgACgCEEkEQEEDDwsgACAAKAIEIgJBB3E2AgQgACABIAJBA3ZrIgE2AgggACABKAAANgIAQQALDAAgACABKAIANgAAC/cCAQJ/AkAgACABRg0AAkAgASACaiAASwRAIAAgAmoiBCABSw0BCyAAIAEgAhALDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkF/aiECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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"});var Xy={};dn(Xy,{default:()=>zc,zstd:()=>Vy});var qy,Vy,zc,Jy=bt(()=>{dm();qy=fo(Hy(),1);Ky();mr();Oa();Vy=new Hc,zc=class extends dt{constructor(e){super(),this.planarConfiguration=typeof e.PlanarConfiguration<"u"?e.PlanarConfiguration:1,this.samplesPerPixel=typeof e.SamplesPerPixel<"u"?e.SamplesPerPixel:1,this.addCompression=e.LercParameters[Ld.AddCompression]}decodeBlock(e){switch(this.addCompression){case Ga.None:break;case Ga.Deflate:e=Gc(new Uint8Array(e)).buffer;break;case Ga.Zstandard:e=Vy.decode(new Uint8Array(e)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return qy.default.decode(e,{returnPixelInterleavedDims:this.planarConfiguration===1}).pixels[0].buffer}}});var jy={};dn(jy,{default:()=>Kc});var Kc,Wy=bt(()=>{mr();Kc=class extends dt{constructor(){if(super(),typeof createImageBitmap>"u")throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if(typeof document>"u"&&typeof OffscreenCanvas>"u")throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decode(e,t){let n=new Blob([t]),r=await createImageBitmap(n),o;typeof document<"u"?(o=document.createElement("canvas"),o.width=r.width,o.height=r.height):o=new OffscreenCanvas(r.width,r.height);let s=o.getContext("2d");return s.drawImage(r,0,0),s.getImageData(0,0,r.width,r.height).data.buffer}}});var iB,nB=bt(()=>{iB=typeof Worker<"u"?Worker:void 0});var rB={};dn(rB,{create:()=>gv});function gv(){let i='function A(A,e,t,i,r,I,g){try{var n=A[I](g),a=n.value}catch(A){return void t(A)}n.done?e(a):Promise.resolve(a).then(i,r)}function e(e){return function(){var t=this,i=arguments;return new Promise((function(r,I){var g=e.apply(t,i);function n(e){A(g,r,I,n,a,"next",e)}function a(e){A(g,r,I,n,a,"throw",e)}n(void 0)}))}}function t(A){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},t(A)}var i={exports:{}};!function(A){var e=function(A){var e,i=Object.prototype,r=i.hasOwnProperty,I="function"==typeof Symbol?Symbol:{},g=I.iterator||"@@iterator",n=I.asyncIterator||"@@asyncIterator",a=I.toStringTag||"@@toStringTag";function o(A,e,t){return Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}),A[e]}try{o({},"")}catch(A){o=function(A,e,t){return A[e]=t}}function B(A,e,t,i){var r=e&&e.prototype instanceof h?e:h,I=Object.create(r.prototype),g=new S(i||[]);return I._invoke=function(A,e,t){var i=Q;return function(r,I){if(i===s)throw new Error("Generator is already running");if(i===f){if("throw"===r)throw I;return R()}for(t.method=r,t.arg=I;;){var g=t.delegate;if(g){var n=m(g,t);if(n){if(n===c)continue;return n}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(i===Q)throw i=f,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);i=s;var a=C(A,e,t);if("normal"===a.type){if(i=t.done?f:E,a.arg===c)continue;return{value:a.arg,done:t.done}}"throw"===a.type&&(i=f,t.method="throw",t.arg=a.arg)}}}(A,t,g),I}function C(A,e,t){try{return{type:"normal",arg:A.call(e,t)}}catch(A){return{type:"throw",arg:A}}}A.wrap=B;var Q="suspendedStart",E="suspendedYield",s="executing",f="completed",c={};function h(){}function l(){}function u(){}var w={};o(w,g,(function(){return this}));var d=Object.getPrototypeOf,D=d&&d(d(v([])));D&&D!==i&&r.call(D,g)&&(w=D);var y=u.prototype=h.prototype=Object.create(w);function k(A){["next","throw","return"].forEach((function(e){o(A,e,(function(A){return this._invoke(e,A)}))}))}function p(A,e){function i(I,g,n,a){var o=C(A[I],A,g);if("throw"!==o.type){var B=o.arg,Q=B.value;return Q&&"object"===t(Q)&&r.call(Q,"__await")?e.resolve(Q.__await).then((function(A){i("next",A,n,a)}),(function(A){i("throw",A,n,a)})):e.resolve(Q).then((function(A){B.value=A,n(B)}),(function(A){return i("throw",A,n,a)}))}a(o.arg)}var I;this._invoke=function(A,t){function r(){return new e((function(e,r){i(A,t,e,r)}))}return I=I?I.then(r,r):r()}}function m(A,t){var i=A.iterator[t.method];if(i===e){if(t.delegate=null,"throw"===t.method){if(A.iterator.return&&(t.method="return",t.arg=e,m(A,t),"throw"===t.method))return c;t.method="throw",t.arg=new TypeError("The iterator does not provide a \'throw\' method")}return c}var r=C(i,A.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,c;var I=r.arg;return I?I.done?(t[A.resultName]=I.value,t.next=A.nextLoc,"return"!==t.method&&(t.method="next",t.arg=e),t.delegate=null,c):I:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,c)}function G(A){var e={tryLoc:A[0]};1 in A&&(e.catchLoc=A[1]),2 in A&&(e.finallyLoc=A[2],e.afterLoc=A[3]),this.tryEntries.push(e)}function F(A){var e=A.completion||{};e.type="normal",delete e.arg,A.completion=e}function S(A){this.tryEntries=[{tryLoc:"root"}],A.forEach(G,this),this.reset(!0)}function v(A){if(A){var t=A[g];if(t)return t.call(A);if("function"==typeof A.next)return A;if(!isNaN(A.length)){var i=-1,I=function t(){for(;++i=0;--I){var g=this.tryEntries[I],n=g.completion;if("root"===g.tryLoc)return i("end");if(g.tryLoc<=this.prev){var a=r.call(g,"catchLoc"),o=r.call(g,"finallyLoc");if(a&&o){if(this.prev=0;--t){var i=this.tryEntries[t];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var t=this.tryEntries[e];if(t.finallyLoc===A)return this.complete(t.completion,t.afterLoc),F(t),c}},catch:function(A){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.tryLoc===A){var i=t.completion;if("throw"===i.type){var r=i.arg;F(t)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(A,t,i){return this.delegate={iterator:v(A),resultName:t,nextLoc:i},"next"===this.method&&(this.arg=e),c}},A}(A.exports);try{regeneratorRuntime=e}catch(A){"object"===("undefined"==typeof globalThis?"undefined":t(globalThis))?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}}(i);var r=i.exports,I=new Map;function g(A,e){Array.isArray(A)||(A=[A]),A.forEach((function(A){return I.set(A,e)}))}function n(A){return a.apply(this,arguments)}function a(){return(a=e(r.mark((function A(e){var t,i;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(t=I.get(e.Compression)){A.next=3;break}throw new Error("Unknown compression method identifier: ".concat(e.Compression));case 3:return A.next=5,t();case 5:return i=A.sent,A.abrupt("return",new i(e));case 7:case"end":return A.stop()}}),A)})))).apply(this,arguments)}g([void 0,1],(function(){return Promise.resolve().then((function(){return y})).then((function(A){return A.default}))})),g(5,(function(){return Promise.resolve().then((function(){return F})).then((function(A){return A.default}))})),g(6,(function(){throw new Error("old style JPEG compression is not supported.")})),g(7,(function(){return Promise.resolve().then((function(){return N})).then((function(A){return A.default}))})),g([8,32946],(function(){return Promise.resolve().then((function(){return OA})).then((function(A){return A.default}))})),g(32773,(function(){return Promise.resolve().then((function(){return _A})).then((function(A){return A.default}))})),g(34887,(function(){return Promise.resolve().then((function(){return le})).then(function(){var A=e(r.mark((function A(e){return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,e.zstd.init();case 2:return A.abrupt("return",e);case 3:case"end":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}()).then((function(A){return A.default}))})),g(50001,(function(){return Promise.resolve().then((function(){return de})).then((function(A){return A.default}))}));var o=globalThis;function B(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")}function C(A,e){for(var t=0;t0;r--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function l(A,e,t){for(var i=0,r=A.length,I=r/t;r>e;){for(var g=e;g>0;--g)A[i+e]+=A[i],++i;r-=e}for(var n=A.slice(),a=0;a=A.byteLength);++o){var B=void 0;if(2===e){switch(r[0]){case 8:B=new Uint8Array(A,o*a*t*n,a*t*n);break;case 16:B=new Uint16Array(A,o*a*t*n,a*t*n/2);break;case 32:B=new Uint32Array(A,o*a*t*n,a*t*n/4);break;default:throw new Error("Predictor 2 not allowed with ".concat(r[0]," bits per sample."))}h(B,a)}else 3===e&&l(B=new Uint8Array(A,o*a*t*n,a*t*n),a,n)}return A}o.addEventListener("message",function(){var A=e(r.mark((function A(e){var t,i,I,g,a,B;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=e.data,i=t.id,I=t.fileDirectory,g=t.buffer,A.next=3,n(I);case 3:return a=A.sent,A.next=6,a.decode(I,g);case 6:B=A.sent,o.postMessage({decoded:B,id:i},[B]);case 8:case"end":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}());var w=function(){function A(){B(this,A)}var t;return Q(A,[{key:"decode",value:(t=e(r.mark((function A(e,t){var i,I,g,n,a;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,this.decodeBlock(t);case 2:if(i=A.sent,1===(I=e.Predictor||1)){A.next=9;break}return g=!e.StripOffsets,n=g?e.TileWidth:e.ImageWidth,a=g?e.TileLength:e.RowsPerStrip||e.ImageLength,A.abrupt("return",u(i,I,n,a,e.BitsPerSample,e.PlanarConfiguration));case 9:return A.abrupt("return",i);case 10:case"end":return A.stop()}}),A,this)}))),function(A,e){return t.apply(this,arguments)})}]),A}();function d(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var D=function(A){s(t,w);var e=d(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return A}}]),t}(),y=Object.freeze({__proto__:null,default:D});function k(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}function p(A,e){for(var t=e.length-1;t>=0;t--)A.push(e[t]);return A}function m(A){for(var e=new Uint16Array(4093),t=new Uint8Array(4093),i=0;i<=257;i++)e[i]=4096,t[i]=i;var r=258,I=9,g=0;function n(){r=258,I=9}function a(A){var e=function(A,e,t){var i=e%8,r=Math.floor(e/8),I=8-i,g=e+t-8*(r+1),n=8*(r+2)-(e+t),a=8*(r+2)-e;if(n=Math.max(0,n),r>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;var o=A[r]&Math.pow(2,8-i)-1,B=o<<=t-I;if(r+1>>n;B+=C<<=Math.max(0,t-a)}if(g>8&&r+2>>Q}return B}(A,g,I);return g+=I,e}function o(A,i){return t[r]=i,e[r]=A,++r-1}function B(A){for(var i=[],r=A;4096!==r;r=e[r])i.push(t[r]);return i}var C=[];n();for(var Q,E=new Uint8Array(A),s=a(E);257!==s;){if(256===s){for(n(),s=a(E);256===s;)s=a(E);if(257===s)break;if(s>256)throw new Error("corrupted code at scanline ".concat(s));p(C,B(s)),Q=s}else if(s=Math.pow(2,I)&&(12===I?Q=void 0:I++),s=a(E)}return new Uint8Array(C)}var G=function(A){s(t,w);var e=k(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return m(A).buffer}}]),t}(),F=Object.freeze({__proto__:null,default:G});function S(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var v=new Int32Array([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]);function R(A,e){for(var t=0,i=[],r=16;r>0&&!A[r-1];)--r;i.push({children:[],index:0});for(var I,g=i[0],n=0;n0;)g=i.pop();for(g.index++,i.push(g);i.length<=n;)i.push(I={children:[],index:0}),g.children[g.index]=I.children,g=I;t++}n+10)return f--,s>>f&1;if(255===(s=A[E++])){var e=A[E++];if(e)throw new Error("unexpected marker: ".concat((s<<8|e).toString(16)))}return f=7,s>>>7}function h(A){for(var e,i=A;null!==(e=c());){if("number"==typeof(i=i[e]))return i;if("object"!==t(i))throw new Error("invalid huffman sequence")}return null}function l(A){for(var e=A,t=0;e>0;){var i=c();if(null===i)return;t=t<<1|i,--e}return t}function u(A){var e=l(A);return e>=1<0)w--;else for(var t=g,i=n;t<=i;){var r=h(A.huffmanTableAC),I=15&r,a=r>>4;if(0===I){if(a<15){w=l(a)+(1<>4,0===C)r<15?(w=l(r)+(1<>4;if(0===g){if(n<15)break;r+=16}else e[v[r+=n]]=u(g),r++}};var L,b,M=0;b=1===U?r[0].blocksPerLine*r[0].blocksPerColumn:B*i.mcusPerColumn;for(var N=I||b;M=65488&&L<=65495))break;E+=2}return E-Q}function L(A,e){var t=[],i=e.blocksPerLine,r=e.blocksPerColumn,I=i<<3,g=new Int32Array(64),n=new Uint8Array(64);function a(A,t,i){var r,I,g,n,a,o,B,C,Q,E,s=e.quantizationTable,f=i;for(E=0;E<64;E++)f[E]=A[E]*s[E];for(E=0;E<8;++E){var c=8*E;0!==f[1+c]||0!==f[2+c]||0!==f[3+c]||0!==f[4+c]||0!==f[5+c]||0!==f[6+c]||0!==f[7+c]?(r=5793*f[0+c]+128>>8,I=5793*f[4+c]+128>>8,g=f[2+c],n=f[6+c],a=2896*(f[1+c]-f[7+c])+128>>8,C=2896*(f[1+c]+f[7+c])+128>>8,o=f[3+c]<<4,Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+128>>8,g=1567*g-3784*n+128>>8,n=Q,Q=a-(B=f[5+c]<<4)+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+c]=r+C,f[7+c]=r-C,f[1+c]=I+B,f[6+c]=I-B,f[2+c]=g+o,f[5+c]=g-o,f[3+c]=n+a,f[4+c]=n-a):(Q=5793*f[0+c]+512>>10,f[0+c]=Q,f[1+c]=Q,f[2+c]=Q,f[3+c]=Q,f[4+c]=Q,f[5+c]=Q,f[6+c]=Q,f[7+c]=Q)}for(E=0;E<8;++E){var h=E;0!==f[8+h]||0!==f[16+h]||0!==f[24+h]||0!==f[32+h]||0!==f[40+h]||0!==f[48+h]||0!==f[56+h]?(r=5793*f[0+h]+2048>>12,I=5793*f[32+h]+2048>>12,g=f[16+h],n=f[48+h],a=2896*(f[8+h]-f[56+h])+2048>>12,C=2896*(f[8+h]+f[56+h])+2048>>12,o=f[24+h],Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+2048>>12,g=1567*g-3784*n+2048>>12,n=Q,Q=a-(B=f[40+h])+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+h]=r+C,f[56+h]=r-C,f[8+h]=I+B,f[48+h]=I-B,f[16+h]=g+o,f[40+h]=g-o,f[24+h]=n+a,f[32+h]=n-a):(Q=5793*i[E+0]+8192>>14,f[0+h]=Q,f[8+h]=Q,f[16+h]=Q,f[24+h]=Q,f[32+h]=Q,f[40+h]=Q,f[48+h]=Q,f[56+h]=Q)}for(E=0;E<64;++E){var l=128+(f[E]+8>>4);t[E]=l<0?0:l>255?255:l}}for(var o=0;o>4==0)for(var C=0;C<64;C++){B[v[C]]=A[e++]}else{if(o>>4!=1)throw new Error("DQT: invalid table spec");for(var Q=0;Q<64;Q++){B[v[Q]]=t()}}this.quantizationTables[15&o]=B}break;case 65472:case 65473:case 65474:t();for(var E={extended:65473===g,progressive:65474===g,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},s=A[e++],f=void 0,c=0;c>4,l=15&A[e+1],u=A[e+2];E.componentsOrder.push(f),E.components[f]={h:h,v:l,quantizationIdx:u},e+=3}i(E),this.frames.push(E);break;case 65476:for(var w=t(),d=2;d>4==0?this.huffmanTablesDC[15&D]=R(y,m):this.huffmanTablesAC[15&D]=R(y,m)}break;case 65501:t(),this.resetInterval=t();break;case 65498:t();for(var F=A[e++],S=[],L=this.frames[0],b=0;b>4],M.huffmanTableAC=this.huffmanTablesAC[15&N],S.push(M)}var x=A[e++],J=A[e++],q=A[e++],Y=U(A,e,L,S,this.resetInterval,x,J,q>>4,15&q);e+=Y;break;case 65535:255!==A[e]&&e--;break;default:if(255===A[e-3]&&A[e-2]>=192&&A[e-2]<=254){e-=3;break}throw new Error("unknown JPEG marker ".concat(g.toString(16)))}g=t()}}},{key:"getResult",value:function(){var A=this.frames;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(var e=0;e=0;)A[e]=0}x(new Array(576)),x(new Array(60)),x(new Array(512)),x(new Array(256)),x(new Array(29)),x(new Array(30));var J=function(A,e,t,i){for(var r=65535&A|0,I=A>>>16&65535|0,g=0;0!==t;){t-=g=t>2e3?2e3:t;do{I=I+(r=r+e[i++]|0)|0}while(--g);r%=65521,I%=65521}return r|I<<16|0},q=new Uint32Array(function(){for(var A,e=[],t=0;t<256;t++){A=t;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;e[t]=A}return e}()),Y=function(A,e,t,i){var r=q,I=i+t;A^=-1;for(var g=i;g>>8^r[255&(A^e[g])];return-1^A},K={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},H={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},O=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},P=function(A){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var i=e.shift();if(i){if("object"!==t(i))throw new TypeError(i+"must be non-object");for(var r in i)O(i,r)&&(A[r]=i[r])}}return A},T=function(A){for(var e=0,t=0,i=A.length;t=252?6:X>=248?5:X>=240?4:X>=224?3:X>=192?2:1;_[254]=_[254]=1;var Z=function(A){if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);var e,t,i,r,I,g=A.length,n=0;for(r=0;r>>6,e[I++]=128|63&t):t<65536?(e[I++]=224|t>>>12,e[I++]=128|t>>>6&63,e[I++]=128|63&t):(e[I++]=240|t>>>18,e[I++]=128|t>>>12&63,e[I++]=128|t>>>6&63,e[I++]=128|63&t);return e},j=function(A,e){var t,i,r=e||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));var I=new Array(2*r);for(i=0,t=0;t4)I[i++]=65533,t+=n-1;else{for(g&=2===n?31:3===n?15:7;n>1&&t1?I[i++]=65533:g<65536?I[i++]=g:(g-=65536,I[i++]=55296|g>>10&1023,I[i++]=56320|1023&g)}}}return function(A,e){if(e<65534&&A.subarray&&V)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));for(var t="",i=0;iA.length&&(e=A.length);for(var t=e-1;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+_[A[t]]>e?t:e};var z=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},$=function(A,e){var t,i,r,I,g,n,a,o,B,C,Q,E,s,f,c,h,l,u,w,d,D,y,k,p,m=A.state;t=A.next_in,k=A.input,i=t+(A.avail_in-5),r=A.next_out,p=A.output,I=r-(e-A.avail_out),g=r+(A.avail_out-257),n=m.dmax,a=m.wsize,o=m.whave,B=m.wnext,C=m.window,Q=m.hold,E=m.bits,s=m.lencode,f=m.distcode,c=(1<>>=u=l>>>24,E-=u,0===(u=l>>>16&255))p[r++]=65535&l;else{if(!(16&u)){if(0==(64&u)){l=s[(65535&l)+(Q&(1<>>=u,E-=u),E<15&&(Q+=k[t++]<>>=u=l>>>24,E-=u,!(16&(u=l>>>16&255))){if(0==(64&u)){l=f[(65535&l)+(Q&(1<n){A.msg="invalid distance too far back",m.mode=30;break A}if(Q>>>=u,E-=u,d>(u=r-I)){if((u=d-u)>o&&m.sane){A.msg="invalid distance too far back",m.mode=30;break A}if(D=0,y=C,0===B){if(D+=a-u,u2;)p[r++]=y[D++],p[r++]=y[D++],p[r++]=y[D++],w-=3;w&&(p[r++]=y[D++],w>1&&(p[r++]=y[D++]))}else{D=r-d;do{p[r++]=p[D++],p[r++]=p[D++],p[r++]=p[D++],w-=3}while(w>2);w&&(p[r++]=p[D++],w>1&&(p[r++]=p[D++]))}break}}break}}while(t>3,Q&=(1<<(E-=w<<3))-1,A.next_in=t,A.next_out=r,A.avail_in=t=1&&0===v[d];d--);if(D>d&&(D=d),0===d)return r[I++]=20971520,r[I++]=20971520,n.bits=1,0;for(w=1;w0&&(0===A||1!==d))return-1;for(R[1]=0,l=1;l<15;l++)R[l+1]=R[l]+v[l];for(u=0;u852||2===A&&m>592)return 1;for(;;){s=l-k,g[u]E?(f=U[L+g[u]],c=F[S+g[u]]):(f=96,c=0),a=1<>k)+(o-=a)]=s<<24|f<<16|c|0}while(0!==o);for(a=1<>=1;if(0!==a?(G&=a-1,G+=a):G=0,u++,0==--v[l]){if(l===d)break;l=e[t+g[u]]}if(l>D&&(G&C)!==B){for(0===k&&(k=D),Q+=w,p=1<<(y=l-k);y+k852||2===A&&m>592)return 1;r[B=G&C]=D<<24|y<<16|Q-I|0}}return 0!==G&&(r[Q+G]=l-k<<24|64<<16|0),n.bits=D,0},IA=H.Z_FINISH,gA=H.Z_BLOCK,nA=H.Z_TREES,aA=H.Z_OK,oA=H.Z_STREAM_END,BA=H.Z_NEED_DICT,CA=H.Z_STREAM_ERROR,QA=H.Z_DATA_ERROR,EA=H.Z_MEM_ERROR,sA=H.Z_BUF_ERROR,fA=H.Z_DEFLATED,cA=function(A){return(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)};function hA(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var lA,uA,wA=function(A){if(!A||!A.state)return CA;var e=A.state;return A.total_in=A.total_out=e.total=0,A.msg="",e.wrap&&(A.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,aA},dA=function(A){if(!A||!A.state)return CA;var e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,wA(A)},DA=function(A,e){var t;if(!A||!A.state)return CA;var i=A.state;return e<0?(t=0,e=-e):(t=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?CA:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,dA(A))},yA=function(A,e){if(!A)return CA;var t=new hA;A.state=t,t.window=null;var i=DA(A,e);return i!==aA&&(A.state=null),i},kA=!0,pA=function(A){if(kA){lA=new Int32Array(512),uA=new Int32Array(32);for(var e=0;e<144;)A.lens[e++]=8;for(;e<256;)A.lens[e++]=9;for(;e<280;)A.lens[e++]=7;for(;e<288;)A.lens[e++]=8;for(rA(1,A.lens,0,288,lA,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;rA(2,A.lens,0,32,uA,0,A.work,{bits:5}),kA=!1}A.lencode=lA,A.lenbits=9,A.distcode=uA,A.distbits=5},mA=function(A,e,t,i){var r,I=A.state;return null===I.window&&(I.wsize=1<=I.wsize?(I.window.set(e.subarray(t-I.wsize,t),0),I.wnext=0,I.whave=I.wsize):((r=I.wsize-I.wnext)>i&&(r=i),I.window.set(e.subarray(t-i,t-i+r),I.wnext),(i-=r)?(I.window.set(e.subarray(t-i,t),0),I.wnext=i,I.whave=I.wsize):(I.wnext+=r,I.wnext===I.wsize&&(I.wnext=0),I.whave>>8&255,t.check=Y(t.check,G,2,0),o=0,B=0,t.mode=2;break}if(t.flags=0,t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&o)<<8)+(o>>8))%31){A.msg="incorrect header check",t.mode=30;break}if((15&o)!==fA){A.msg="unknown compression method",t.mode=30;break}if(B-=4,D=8+(15&(o>>>=4)),0===t.wbits)t.wbits=D;else if(D>t.wbits){A.msg="invalid window size",t.mode=30;break}t.dmax=1<>8&1),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=3;case 3:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>8&255,G[2]=o>>>16&255,G[3]=o>>>24&255,t.check=Y(t.check,G,4,0)),o=0,B=0,t.mode=4;case 4:for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>8),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=5;case 5:if(1024&t.flags){for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0}else t.head&&(t.head.extra=null);t.mode=6;case 6:if(1024&t.flags&&((E=t.length)>n&&(E=n),E&&(t.head&&(D=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(I,I+E),D)),512&t.flags&&(t.check=Y(t.check,i,E,I)),n-=E,I+=E,t.length-=E),t.length))break A;t.length=0,t.mode=7;case 7:if(2048&t.flags){if(0===n)break A;E=0;do{D=i[I+E++],t.head&&D&&t.length<65536&&(t.head.name+=String.fromCharCode(D))}while(D&&E>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=12;break;case 10:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>=7&B,B-=7&B,t.mode=27;break}for(;B<3;){if(0===n)break A;n--,o+=i[I++]<>>=1)){case 0:t.mode=14;break;case 1:if(pA(t),t.mode=20,e===nA){o>>>=2,B-=2;break A}break;case 2:t.mode=17;break;case 3:A.msg="invalid block type",t.mode=30}o>>>=2,B-=2;break;case 14:for(o>>>=7&B,B-=7&B;B<32;){if(0===n)break A;n--,o+=i[I++]<>>16^65535)){A.msg="invalid stored block lengths",t.mode=30;break}if(t.length=65535&o,o=0,B=0,t.mode=15,e===nA)break A;case 15:t.mode=16;case 16:if(E=t.length){if(E>n&&(E=n),E>a&&(E=a),0===E)break A;r.set(i.subarray(I,I+E),g),n-=E,I+=E,a-=E,g+=E,t.length-=E;break}t.mode=12;break;case 17:for(;B<14;){if(0===n)break A;n--,o+=i[I++]<>>=5,B-=5,t.ndist=1+(31&o),o>>>=5,B-=5,t.ncode=4+(15&o),o>>>=4,B-=4,t.nlen>286||t.ndist>30){A.msg="too many length or distance symbols",t.mode=30;break}t.have=0,t.mode=18;case 18:for(;t.have>>=3,B-=3}for(;t.have<19;)t.lens[F[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,k={bits:t.lenbits},y=rA(0,t.lens,0,19,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg="invalid code lengths set",t.mode=30;break}t.have=0,t.mode=19;case 19:for(;t.have>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=c,B-=c,t.lens[t.have++]=l;else{if(16===l){for(p=c+2;B>>=c,B-=c,0===t.have){A.msg="invalid bit length repeat",t.mode=30;break}D=t.lens[t.have-1],E=3+(3&o),o>>>=2,B-=2}else if(17===l){for(p=c+3;B>>=c)),o>>>=3,B-=3}else{for(p=c+7;B>>=c)),o>>>=7,B-=7}if(t.have+E>t.nlen+t.ndist){A.msg="invalid bit length repeat",t.mode=30;break}for(;E--;)t.lens[t.have++]=D}}if(30===t.mode)break;if(0===t.lens[256]){A.msg="invalid code -- missing end-of-block",t.mode=30;break}if(t.lenbits=9,k={bits:t.lenbits},y=rA(1,t.lens,0,t.nlen,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg="invalid literal/lengths set",t.mode=30;break}if(t.distbits=6,t.distcode=t.distdyn,k={bits:t.distbits},y=rA(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,k),t.distbits=k.bits,y){A.msg="invalid distances set",t.mode=30;break}if(t.mode=20,e===nA)break A;case 20:t.mode=21;case 21:if(n>=6&&a>=258){A.next_out=g,A.avail_out=a,A.next_in=I,A.avail_in=n,t.hold=o,t.bits=B,$(A,Q),g=A.next_out,r=A.output,a=A.avail_out,I=A.next_in,i=A.input,n=A.avail_in,o=t.hold,B=t.bits,12===t.mode&&(t.back=-1);break}for(t.back=0;h=(m=t.lencode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,t.length=l,0===h){t.mode=26;break}if(32&h){t.back=-1,t.mode=12;break}if(64&h){A.msg="invalid literal/length code",t.mode=30;break}t.extra=15&h,t.mode=22;case 22:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=23;case 23:for(;h=(m=t.distcode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,64&h){A.msg="invalid distance code",t.mode=30;break}t.offset=l,t.extra=15&h,t.mode=24;case 24:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg="invalid distance too far back",t.mode=30;break}t.mode=25;case 25:if(0===a)break A;if(E=Q-a,t.offset>E){if((E=t.offset-E)>t.whave&&t.sane){A.msg="invalid distance too far back",t.mode=30;break}E>t.wnext?(E-=t.wnext,s=t.wsize-E):s=t.wnext-E,E>t.length&&(E=t.length),f=t.window}else f=r,s=g-t.offset,E=t.length;E>a&&(E=a),a-=E,t.length-=E;do{r[g++]=f[s++]}while(--E);0===t.length&&(t.mode=21);break;case 26:if(0===a)break A;r[g++]=t.length,a--,t.mode=21;break;case 27:if(t.wrap){for(;B<32;){if(0===n)break A;n--,o|=i[I++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||A&&A.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new z,this.strm.avail_out=0;var t=GA.inflateInit2(this.strm,e.windowBits);if(t!==UA)throw new Error(K[t]);if(this.header=new FA,GA.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Z(e.dictionary):"[object ArrayBuffer]"===SA.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=GA.inflateSetDictionary(this.strm,e.dictionary))!==UA))throw new Error(K[t])}function qA(A,e){var t=new JA(e);if(t.push(A),t.err)throw t.msg||K[t.err];return t.result}JA.prototype.push=function(A,e){var t,i,r,I=this.strm,g=this.options.chunkSize,n=this.options.dictionary;if(this.ended)return!1;for(i=e===~~e?e:!0===e?RA:vA,"[object ArrayBuffer]"===SA.call(A)?I.input=new Uint8Array(A):I.input=A,I.next_in=0,I.avail_in=I.input.length;;){for(0===I.avail_out&&(I.output=new Uint8Array(g),I.next_out=0,I.avail_out=g),(t=GA.inflate(I,i))===bA&&n&&((t=GA.inflateSetDictionary(I,n))===UA?t=GA.inflate(I,i):t===NA&&(t=bA));I.avail_in>0&&t===LA&&I.state.wrap>0&&0!==A[I.next_in];)GA.inflateReset(I),t=GA.inflate(I,i);switch(t){case MA:case NA:case bA:case xA:return this.onEnd(t),this.ended=!0,!1}if(r=I.avail_out,I.next_out&&(0===I.avail_out||t===LA))if("string"===this.options.to){var a=W(I.output,I.next_out),o=I.next_out-a,B=j(I.output,a);I.next_out=o,I.avail_out=g-o,o&&I.output.set(I.output.subarray(a,a+o),0),this.onData(B)}else this.onData(I.output.length===I.next_out?I.output:I.output.subarray(0,I.next_out));if(t!==UA||0!==r){if(t===LA)return t=GA.inflateEnd(this.strm),this.onEnd(t),this.ended=!0,!0;if(0===I.avail_in)break}}return!0},JA.prototype.onData=function(A){this.chunks.push(A)},JA.prototype.onEnd=function(A){A===UA&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=T(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var YA={Inflate:JA,inflate:qA,inflateRaw:function(A,e){return(e=e||{}).raw=!0,qA(A,e)},ungzip:qA,constants:H}.inflate;function KA(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var HA=function(A){s(t,w);var e=KA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return YA(new Uint8Array(A)).buffer}}]),t}(),OA=Object.freeze({__proto__:null,default:HA});function PA(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var TA,VA=function(A){s(t,w);var e=PA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){for(var e=new DataView(A),t=[],i=0;i>3],m<<=7&G),c=0;c>3]),128&m?(a&&(a[G]=1),f=f>(g=S.encoding<2?y[k++]:p)?g:f,n[G++]=g):(a&&(a[G]=0),n[G++]=i),m<<=1;G+=F}else if(S.encoding<2)for(h=0;h(g=y[k++])?g:f,n[G++]=g;G+=F}else for(f=f>p?p:f,h=0;h0){var g=new Uint8Array(Math.ceil(i.width*i.height/8)),n=(I=new DataView(A,e,i.mask.numBytes)).getInt16(0,!0),a=2,o=0;do{if(n>0)for(;n--;)g[o++]=I.getUint8(a++);else{var B=I.getUint8(a++);for(n=-n;n--;)g[o++]=B}n=I.getInt16(a,!0),a+=2}while(a0?1:0),s=Q+(i.height%Q>0?1:0);i.pixels.blocks=new Array(E*s);for(var f=0,c=0;c3)throw"Invalid block encoding ("+w.encoding+")";if(2!==w.encoding){if(0!==d&&2!==d){if(d>>=6,w.offsetType=d,2===d)w.offset=I.getInt8(1),l++;else if(1===d)w.offset=I.getInt16(1,!0),l+=2;else{if(0!==d)throw"Invalid block offset type";w.offset=I.getFloat32(1,!0),l+=4}if(1===w.encoding)if(d=I.getUint8(l),l++,w.bitsPerPixel=63&d,d>>=6,w.numValidPixelsType=d,2===d)w.numValidPixels=I.getUint8(l),l++;else if(1===d)w.numValidPixels=I.getUint16(l,!0),l+=2;else{if(0!==d)throw"Invalid valid pixel count type";w.numValidPixels=I.getUint32(l,!0),l+=4}}var D;if(e+=l,3!==w.encoding)if(0===w.encoding){var y=(i.pixels.numBytes-1)/4;if(y!==Math.floor(y))throw"uncompressed block has invalid length";D=new ArrayBuffer(4*y),new Uint8Array(D).set(new Uint8Array(A,e,4*y));var k=new Float32Array(D);w.rawData=k,e+=4*y}else if(1===w.encoding){var p=Math.ceil(w.numValidPixels*w.bitsPerPixel/8),m=Math.ceil(p/4);D=new ArrayBuffer(4*m),new Uint8Array(D).set(new Uint8Array(A,e,p)),w.stuffedData=new Uint32Array(D),e+=p}}else e++}return i.eofOffset=e,i},I=function(A,e,t,i,r,I,g){var n,a,o,B=(1<=e)a=o>>>Q-e&B,Q-=e;else{var f=e-Q;a=(o&B)<>>(Q=32-f)}I[n]=a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=r[o];else for(Q=Math.ceil((n-I)/g),a=0;a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=o=e?(Q=g>>>C-e&n,C-=e):(Q=(g&n)<<(B=e-C)&n,Q+=(g=A[a++])>>>(C=32-B)),E[o]=Q=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=e?(Q=g>>>E&n,C-=e,E+=e):(Q=g>>>E&n,C=32-(B=e-C),Q|=((g=A[a++])&(1<=t?(I=g>>>B-t&a,B-=t):(I=(g&a)<<(n=t-B)&a,I+=(g=A[o++])>>>(B=32-n)),e[r]=I;return e},C=function(A,e,t,i){var r,I,g,n,a=(1<=t?(I=g>>>C&a,B-=t,C+=t):(I=g>>>C&a,B=32-(n=t-B),I|=((g=A[o++])&(1<=359?359:r;r-=g;do{e+=A[I++]<<8,t+=e+=A[I++]}while(--g);e=(65535&e)+(e>>>16),t=(65535&t)+(t>>>16)}return 1&i&&(t+=e+=A[I]<<8),((t=(65535&t)+(t>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(A,e){var t=e.ptr,i=new Uint8Array(A,t,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,i),0!==r.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+r.fileIdentifierString;t+=6;var I,g=new DataView(A,t,8),n=g.getInt32(0,!0);if(r.fileVersion=n,t+=4,n>=3&&(r.checksum=g.getUint32(4,!0),t+=4),g=new DataView(A,t,12),r.height=g.getUint32(0,!0),r.width=g.getUint32(4,!0),t+=8,n>=4?(r.numDims=g.getUint32(8,!0),t+=4):r.numDims=1,g=new DataView(A,t,40),r.numValidPixel=g.getUint32(0,!0),r.microBlockSize=g.getInt32(4,!0),r.blobSize=g.getInt32(8,!0),r.imageType=g.getInt32(12,!0),r.maxZError=g.getFloat64(16,!0),r.zMin=g.getFloat64(24,!0),r.zMax=g.getFloat64(32,!0),t+=40,e.headerInfo=r,e.ptr=t,n>=3&&(I=n>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,t-I,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,e){var t=e.headerInfo,i=this.getDataTypeArray(t.imageType),r=t.numDims*this.getDataTypeSize(t.imageType),I=this.readSubArray(A,e.ptr,i,r),g=this.readSubArray(A,e.ptr+r,i,r);e.ptr+=2*r;var n,a=!0;for(n=0;n0){t=new Uint8Array(Math.ceil(g/8));var B=(a=new DataView(A,r,o.numBytes)).getInt16(0,!0),C=2,Q=0,E=0;do{if(B>0)for(;B--;)t[Q++]=a.getUint8(C++);else for(E=a.getUint8(C++),B=-B;B--;)t[Q++]=E;B=a.getInt16(C,!0),C+=2}while(C>3],s<<=7&f):s=t[f>>3],128&s&&(i[f]=1);e.pixels.resultMask=i,o.bitset=t,r+=o.numBytes}return e.ptr=r,e.mask=o,!0},readDataOneSweep:function(A,e,t,i){var r,I=e.ptr,g=e.headerInfo,n=g.numDims,a=g.width*g.height,o=g.imageType,B=g.numValidPixel*Q.getDataTypeSize(o)*n,C=e.pixels.resultMask;if(t===Uint8Array)r=new Uint8Array(A,I,B);else{var E=new ArrayBuffer(B);new Uint8Array(E).set(new Uint8Array(A,I,B)),r=new t(E)}if(r.length===a*n)e.pixels.resultPixels=i?Q.swapDimensionOrder(r,a,n,t,!0):r;else{e.pixels.resultPixels=new t(a*n);var s=0,f=0,c=0,h=0;if(n>1){if(i){for(f=0;f=g)return!1;var n=new Uint32Array(g-I);Q.decodeBits(A,e,n);var a,o,B,C,s=[];for(a=I;a0&&(s[o].second=l<>>32-C,32-w>=C?32===(w+=C)&&(w=0,l=u[++d]):(w+=C-32,l=u[++d],s[o].second|=l>>>32-w));var D=0,y=0,k=new E;for(a=0;a=t?t:D;var p,m,G,F,S,v=[];for(a=I;a0)if(p=[C,o],C<=y)for(m=s[o].second<=0;F--)m>>>F&1?(S.right||(S.right=new E),S=S.right):(S.left||(S.left=new E),S=S.left),0!==F||S.val||(S.val=p[1]);return{decodeLut:v,numBitsLUTQick:y,numBitsLUT:D,tree:k,stuffedData:u,srcPtr:d,bitPos:w}},readHuffman:function(A,e,t,i){var r,I,g,n,a,o,B,C,E,s=e.headerInfo.numDims,f=e.headerInfo.height,c=e.headerInfo.width,h=c*f,l=this.readHuffmanTree(A,e),u=l.decodeLut,w=l.tree,d=l.stuffedData,D=l.srcPtr,y=l.bitPos,k=l.numBitsLUTQick,p=l.numBitsLUT,m=0===e.headerInfo.imageType?128:0,G=e.pixels.resultMask,F=0;y>0&&(D++,y=0);var S,v=d[D],R=1===e.encodeMode,U=new t(h*s),L=U;if(s<2||R){for(S=0;S1&&(L=new t(U.buffer,h*S,h),F=0),e.headerInfo.numValidPixel===c*f)for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(g+=B>0?F:o>0?L[C-c]:F,g&=255,L[C]=g,F=g):L[C]=g}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(B>0&&G[C-1]?g+=F:o>0&&G[C-c]?g+=L[C-c]:g+=F,g&=255,L[C]=g,F=g):L[C]=g}}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,L[C]=g}e.ptr=e.ptr+4*(D+1)+(y>0?4:0),e.pixels.resultPixels=U,s>1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(U,h,s,t))},decodeBits:function(A,e,t,i,r){var I=e.headerInfo,Q=I.fileVersion,E=0,s=A.byteLength-e.ptr>=5?5:A.byteLength-e.ptr,f=new DataView(A,e.ptr,s),c=f.getUint8(0);E++;var h=c>>6,l=0===h?4:3-h,u=(32&c)>0,w=31&c,d=0;if(1===l)d=f.getUint8(E),E++;else if(2===l)d=f.getUint16(E,!0),E+=2;else{if(4!==l)throw"Invalid valid pixel count type";d=f.getUint32(E,!0),E+=4}var D,y,k,p,m,G,F,S,v,R=2*I.maxZError,U=I.numDims>1?I.maxValues[r]:I.zMax;if(u){for(e.counter.lut++,S=f.getUint8(E),E++,p=Math.ceil((S-1)*w/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),k=new Uint8Array(y),e.ptr+=E,k.set(new Uint8Array(A,e.ptr,p)),F=new Uint32Array(y),e.ptr+=p,v=0;S-1>>>v;)v++;p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,G=Q>=3?o(F,w,S-1,i,R,U):n(F,w,S-1,i,R,U),Q>=3?a(D,t,v,d,G):g(D,t,v,d,G)}else e.counter.bitstuffer++,v=w,e.ptr+=E,v>0&&(p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,Q>=3?null==i?C(D,t,v,d):a(D,t,v,d,!1,i,R,U):null==i?B(D,t,v,d):g(D,t,v,d,!1,i,R,U))},readTiles:function(A,e,t,i){var r=e.headerInfo,I=r.width,g=r.height,n=I*g,a=r.microBlockSize,o=r.imageType,B=Q.getDataTypeSize(o),C=Math.ceil(I/a),E=Math.ceil(g/a);e.pixels.numBlocksY=E,e.pixels.numBlocksX=C,e.pixels.ptr=0;var s,f,c,h,l,u,w,d,D,y,k=0,p=0,m=0,G=0,F=0,S=0,v=0,R=0,U=0,L=0,b=0,M=0,N=0,x=0,J=0,q=new t(a*a),Y=g%a||a,K=I%a||a,H=r.numDims,O=e.pixels.resultMask,P=e.pixels.resultPixels,T=r.fileVersion>=5?14:15,V=r.zMax;for(m=0;m1?(y=P,L=m*I*a+G*a,P=new t(e.pixels.resultPixels.buffer,n*d*B,n),V=r.maxValues[d]):y=null,v=A.byteLength-e.ptr,f={},J=0,R=(s=new DataView(A,e.ptr,Math.min(10,v))).getUint8(0),J++,D=r.fileVersion>=5?4&R:0,U=R>>6&255,(R>>2&T)!=(G*a>>3&T))throw"integrity issue";if(D&&0===d)throw"integrity issue";if((l=3&R)>3)throw e.ptr+=J,"Invalid block encoding ("+l+")";if(2!==l)if(0===l){if(D)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=J,M=(M=F*S*B)<(N=A.byteLength-e.ptr)?M:N,c=new ArrayBuffer(M%B==0?M:M+B-M%B),new Uint8Array(c).set(new Uint8Array(A,e.ptr,M)),h=new t(c),x=0,O)for(k=0;k1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(e.pixels.resultPixels,n,H,t))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:Q.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,e){var t=A.headerInfo.zMax,i=A.headerInfo.zMin,r=A.headerInfo.maxValues,I=A.headerInfo.numDims,g=A.headerInfo.height*A.headerInfo.width,n=0,a=0,o=0,B=A.pixels.resultMask,C=A.pixels.resultPixels;if(B)if(I>1){if(e)for(n=0;n1&&i!==t)if(e)for(n=0;n=-128&&e<=127;break;case 1:t=e>=0&&e<=255;break;case 2:t=e>=-32768&&e<=32767;break;case 3:t=e>=0&&e<=65536;break;case 4:t=e>=-2147483648&&e<=2147483647;break;case 5:t=e>=0&&e<=4294967296;break;case 6:t=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:t=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:t=!1}return t},getDataTypeSize:function(A){var e=0;switch(A){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=A}return e},getDataTypeUsed:function(A,e){var t=A;switch(A){case 2:case 4:t=A-e;break;case 3:case 5:t=A-2*e;break;case 6:t=0===e?A:1===e?2:1;break;case 7:t=0===e?A:A-2*e+1;break;default:t=A}return t},getOnePixel:function(A,e,t,i){var r=0;switch(t){case 0:r=i.getInt8(e);break;case 1:r=i.getUint8(e);break;case 2:r=i.getInt16(e,!0);break;case 3:r=i.getUint16(e,!0);break;case 4:r=i.getInt32(e,!0);break;case 5:r=i.getUInt32(e,!0);break;case 6:r=i.getFloat32(e,!0);break;case 7:r=i.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return r},swapDimensionOrder:function(A,e,t,i,r){var I=0,g=0,n=0,a=0,o=A;if(t>1)if(o=new i(e*t),r)for(I=0;I5)throw"unsupported lerc version 2."+g;Q.readMask(A,r),I.numValidPixel===I.width*I.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var a=I.width*I.height;r.pixels.resultPixels=new n(a*I.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var o,B=!e.returnPixelInterleavedDims;if(0!==I.numValidPixel)if(I.zMax===I.zMin)Q.constructConstantSurface(r,B);else if(g>=4&&Q.checkMinMaxRanges(A,r))Q.constructConstantSurface(r,B);else{var C=new DataView(A,r.ptr,2),E=C.getUint8(0);if(r.ptr++,E)Q.readDataOneSweep(A,r,n,B);else if(g>1&&I.imageType<=1&&Math.abs(I.maxZError-.5)<1e-5){var s=C.getUint8(1);if(r.ptr++,r.encodeMode=s,s>2||g<4&&s>1)throw"Invalid Huffman flag "+s;s?Q.readHuffman(A,r,n,B):Q.readTiles(A,r,n,B)}else Q.readTiles(A,r,n,B)}r.eofOffset=r.ptr,e.inputOffset?(o=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(o)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(o=r.headerInfo.blobSize-r.ptr,Math.abs(o)>=1&&(r.eofOffset=r.headerInfo.blobSize));var f={width:I.width,height:I.height,pixelData:r.pixels.resultPixels,minValue:I.zMin,maxValue:I.zMax,validPixelCount:I.numValidPixel,dimCount:I.numDims,dimStats:{minValues:I.minValues,maxValues:I.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&Q.isValidPixelValue(I.imageType,t)){var c=r.pixels.resultMask;for(i=0;i1&&(o&&f.push(o),d.fileInfo.mask&&d.fileInfo.mask.numBytes>0&&w++),E++,u.pixels.push(d.pixelData),u.statistics.push({minValue:d.minValue,maxValue:d.maxValue,noDataValue:d.noDataValue,dimStats:d.dimStats})}if(i>1&&w>1){for(Q=u.width*u.height,u.bandMasks=f,(o=new Uint8Array(Q)).set(f[0]),B=1;B1&&void 0!==arguments[1]?arguments[1]:0;if(!jA)throw new Error("ZSTDDecoder: Await .init() before decoding.");var t=A.byteLength,i=jA.exports.malloc(t);WA.set(A,i),e=e||Number(jA.exports.ZSTD_findDecompressedSize(i,t));var r=jA.exports.malloc(e),I=jA.exports.ZSTD_decompress(r,e,i,t),g=WA.slice(r,r+I);return jA.exports.free(i),jA.exports.free(r),g}}]),A}(),ee="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",te={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},ie={};for(var re in te)te.hasOwnProperty(re)&&(ie[te[re]]=parseInt(re,10));ie.BitsPerSample,ie.ExtraSamples,ie.SampleFormat,ie.StripByteCounts,ie.StripOffsets,ie.StripRowCounts,ie.TileByteCounts,ie.TileOffsets,ie.SubIFDs;var Ie={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},ge={};for(var ne in Ie)Ie.hasOwnProperty(ne)&&(ge[Ie[ne]]=parseInt(ne,10));var ae=1,oe=0,Be=1,Ce=2,Qe={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},Ee={};for(var se in Qe)Qe.hasOwnProperty(se)&&(Ee[Qe[se]]=parseInt(se,10));function fe(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var ce=new Ae,he=function(A){s(t,w);var e=fe(t);function t(A){var i;return B(this,t),(i=e.call(this)).planarConfiguration=void 0!==A.PlanarConfiguration?A.PlanarConfiguration:1,i.samplesPerPixel=void 0!==A.SamplesPerPixel?A.SamplesPerPixel:1,i.addCompression=A.LercParameters[ae],i}return Q(t,[{key:"decodeBlock",value:function(A){switch(this.addCompression){case oe:break;case Be:A=YA(new Uint8Array(A)).buffer;break;case Ce:A=ce.decode(new Uint8Array(A)).buffer;break;default:throw new Error("Unsupported LERC additional compression method identifier: ".concat(this.addCompression))}return zA.decode(A,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}}]),t}(),le=Object.freeze({__proto__:null,zstd:ce,default:he});function ue(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var we=function(A){s(I,w);var t,i=ue(I);function I(){var A;if(B(this,I),A=i.call(this),"undefined"==typeof createImageBitmap)throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if("undefined"==typeof document&&"undefined"==typeof OffscreenCanvas)throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available");return A}return Q(I,[{key:"decode",value:(t=e(r.mark((function A(e,t){var i,I,g,n;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return i=new Blob([t]),A.next=3,createImageBitmap(i);case 3:return I=A.sent,"undefined"!=typeof document?((g=document.createElement("canvas")).width=I.width,g.height=I.height):g=new OffscreenCanvas(I.width,I.height),(n=g.getContext("2d")).drawImage(I,0,0),A.abrupt("return",n.getImageData(0,0,I.width,I.height).data.buffer);case 8:case"end":return A.stop()}}),A)}))),function(A,e){return t.apply(this,arguments)})}]),I}(),de=Object.freeze({__proto__:null,default:we});';return new iB(typeof Buffer<"u"?"data:application/javascript;base64,"+Buffer.from(i,"binary").toString("base64"):URL.createObjectURL(new Blob([i],{type:"application/javascript"})))}var oB=bt(()=>{nB()});var fB=Fi(()=>{});var gB=Fi(()=>{});var dB=Fi(()=>{});var nt={ADD:"add",REMOVE:"remove"};var qt={PROPERTYCHANGE:"propertychange"};var U={CHANGE:"change",ERROR:"error",BLUR:"blur",CLEAR:"clear",CONTEXTMENU:"contextmenu",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",FOCUS:"focus",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",RESIZE:"resize",TOUCHMOVE:"touchmove",WHEEL:"wheel"};var wh=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}},Li=wh;function pp(i,e,t){let n,r;t=t||Ft;let o=0,s=i.length,a=!1;for(;o>1),r=+t(i[n],e),r<0?o=n+1:(s=n,a=!r);return a?o:~o}function Ft(i,e){return i>e?1:ie?-1:0}function go(i,e,t){if(i[0]<=e)return 0;let n=i.length;if(e<=i[n-1])return n-1;if(typeof t=="function"){for(let r=1;r0?r-1:r}return n-1}if(t>0){for(let r=1;r0||t&&s===0)})}function mn(){return!0}function pn(){return!1}function In(){}function BA(i){let e,t,n;return function(){let r=Array.prototype.slice.call(arguments);return(!t||this!==n||!rt(r,t))&&(n=this,t=r,e=i.apply(this,arguments)),e}}function xA(i){function e(){let t;try{t=i()}catch(n){return Promise.reject(n)}return t instanceof Promise?t:Promise.resolve(t)}return e()}function ai(i){for(let e in i)delete i[e]}function Vt(i){let e;for(e in i)return!1;return!e}var Qh=class{constructor(e){this.propagationStopped,this.defaultPrevented,this.type=e,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}};function Cp(i){i.stopPropagation()}var ot=Qh;var Sh=class extends Li{constructor(e){super(),this.eventTarget_=e,this.pendingRemovals_=null,this.dispatching_=null,this.listeners_=null}addEventListener(e,t){if(!e||!t)return;let n=this.listeners_||(this.listeners_={}),r=n[e]||(n[e]=[]);r.includes(t)||r.push(t)}dispatchEvent(e){let t=typeof e=="string",n=t?e:e.type,r=this.listeners_&&this.listeners_[n];if(!r)return;let o=t?new ot(e):e;o.target||(o.target=this.eventTarget_||this);let s=this.dispatching_||(this.dispatching_={}),a=this.pendingRemovals_||(this.pendingRemovals_={});n in s||(s[n]=0,a[n]=0),++s[n];let A;for(let l=0,c=r.length;l0:!1}removeEventListener(e,t){if(!this.listeners_)return;let n=this.listeners_[e];if(!n)return;let r=n.indexOf(t);r!==-1&&(this.pendingRemovals_&&e in this.pendingRemovals_?(n[r]=In,++this.pendingRemovals_[e]):(n.splice(r,1),n.length===0&&delete this.listeners_[e]))}},Mi=Sh;function X(i,e,t,n,r){if(r){let s=t;t=function(a){return i.removeEventListener(e,t),s.call(n??this,a)}}else n&&n!==i&&(t=t.bind(n));let o={target:i,type:e,listener:t};return i.addEventListener(e,t),o}function qn(i,e,t,n){return X(i,e,t,n,!0)}function se(i){i&&i.target&&(i.target.removeEventListener(i.type,i.listener),ai(i))}var mo=class extends Mi{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(U.CHANGE)}getRevision(){return this.revision_}onInternal(e,t){if(Array.isArray(e)){let n=e.length,r=new Array(n);for(let o=0;o0;)this.pop()}extend(e){for(let t=0,n=e.length;tthis.getLength())throw new Error("Index out of bounds: "+e);this.unique_&&this.assertUnique_(t),this.array_.splice(e,0,t),this.updateLength_(),this.dispatchEvent(new po(nt.ADD,t,e))}pop(){return this.removeAt(this.getLength()-1)}push(e){this.unique_&&this.assertUnique_(e);let t=this.getLength();return this.insertAt(t,e),this.getLength()}remove(e){let t=this.array_;for(let n=0,r=t.length;n=this.getLength())return;let t=this.array_[e];return this.array_.splice(e,1),this.updateLength_(),this.dispatchEvent(new po(nt.REMOVE,t,e)),t}setAt(e,t){let n=this.getLength();if(e>=n){this.insertAt(e,t);return}if(e<0)throw new Error("Index out of bounds: "+e);this.unique_&&this.assertUnique_(t,e);let r=this.array_[e];this.array_[e]=t,this.dispatchEvent(new po(nt.REMOVE,r,e)),this.dispatchEvent(new po(nt.ADD,t,e))}updateLength_(){this.set(_p.LENGTH,this.array_.length)}assertUnique_(e,t){for(let n=0,r=this.array_.length;nr&&(A=A|je.RIGHT),ao&&(A=A|je.ABOVE),A===je.UNKNOWN&&(A=je.INTERSECTING),A}function be(){return[1/0,1/0,-1/0,-1/0]}function Xt(i,e,t,n,r){return r?(r[0]=i,r[1]=e,r[2]=t,r[3]=n,r):[i,e,t,n]}function En(i){return Xt(1/0,1/0,-1/0,-1/0,i)}function TA(i,e){let t=i[0],n=i[1];return Xt(t,n,t,n,e)}function Eo(i,e,t,n,r){let o=En(r);return Dh(o,i,e,t,n)}function Jt(i,e){return i[0]==e[0]&&i[2]==e[2]&&i[1]==e[1]&&i[3]==e[3]}function Co(i,e){return e[0]i[2]&&(i[2]=e[2]),e[1]i[3]&&(i[3]=e[3]),i}function Rr(i,e){e[0]i[2]&&(i[2]=e[0]),e[1]i[3]&&(i[3]=e[1])}function Dh(i,e,t,n,r){for(;te[0]?n[0]=i[0]:n[0]=e[0],i[1]>e[1]?n[1]=i[1]:n[1]=e[1],i[2]=e[0]&&i[1]<=e[3]&&i[3]>=e[1]}function ki(i){return i[2]=s&&m<=A),!n&&o&je.RIGHT&&!(r&je.RIGHT)&&(d=f-(u-A)*g,n=d>=a&&d<=l),!n&&o&je.BELOW&&!(r&je.BELOW)&&(m=u-(f-a)/g,n=m>=s&&m<=A),!n&&o&je.LEFT&&!(r&je.LEFT)&&(d=f-(u-s)*g,n=d>=a&&d<=l)}return n}function DA(i,e,t,n){if(ki(i))return En(t);let r=[];if(n>1){let a=i[2]-i[0],A=i[3]-i[1];for(let l=0;l=t[2])){let r=oe(t),s=Math.floor((n[0]-t[0])/r)*r;i[0]-=s,i[2]-=s}return i}function Bo(i,e,t){if(e.canWrapX()){let n=e.getExtent();if(!isFinite(i[0])||!isFinite(i[2]))return[[n[0],i[1],n[2],i[3]]];bh(i,e);let r=oe(n);if(oe(i)>r&&!t)return[[n[0],i[1],n[2],i[3]]];if(i[0]n[2])return[[i[0],i[1],n[2],i[3]],[n[0],i[1],i[2]-r,i[3]]]}return[i]}function ce(i,e,t){return Math.min(Math.max(i,e),t)}function Qp(i,e,t,n,r,o){let s=r-t,a=o-n;if(s!==0||a!==0){let A=((i-t)*s+(e-n)*a)/(s*s+a*a);A>1?(t=r,n=o):A>0&&(t+=s*A,n+=a*A)}return Ei(i,e,t,n)}function Ei(i,e,t,n){let r=t-i,o=n-e;return r*r+o*o}function Sp(i){let e=i.length;for(let n=0;no&&(o=A,r=a)}if(o===0)return null;let s=i[r];i[r]=i[n],i[n]=s;for(let a=n+1;a=0;n--){t[n]=i[n][e]/i[n][n];for(let r=n-1;r>=0;r--)i[r][e]-=i[r][n]*t[n]}return t}function bA(i){return i*180/Math.PI}function jt(i){return i*Math.PI/180}function Wt(i,e){let t=i%e;return t*e<0?t+e:t}function ut(i,e,t){return i+t*(e-i)}function xo(i,e){let t=Math.pow(10,e);return Math.round(i*t)/t}function Os(i,e){return Math.floor(xo(i,e))}function Us(i,e){return Math.ceil(xo(i,e))}function FA(i,e,t){if(i>=e&&iLh.warn||console.warn(...i)}function Mh(...i){Rp>Lh.error||console.error(...i)}function Tp(i,e){return i[0]+=+e[0],i[1]+=+e[1],i}function Tr(i,e){let t=!0;for(let n=i.length-1;n>=0;--n)if(i[n]!=e[n]){t=!1;break}return t}function wo(i,e){let t=Math.cos(e),n=Math.sin(e),r=i[0]*t-i[1]*n,o=i[1]*t+i[0]*n;return i[0]=r,i[1]=o,i}function vp(i,e){return i[0]*=e,i[1]*=e,i}function Qo(i,e){if(e.canWrapX()){let t=oe(e.getExtent()),n=Dp(i,e,t);n&&(i[0]-=n*t)}return i}function Dp(i,e,t){let n=e.getExtent(),r=0;return e.canWrapX()&&(i[0]n[2])&&(t=t||oe(n),r=Math.floor((i[0]-n[0])/t)),r}var Vx={9001:"m",9002:"ft",9003:"us-ft",9101:"radians",9102:"degrees"};function kh(i){return Vx[i]}var Ci={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};var Ph=class{constructor(e){this.code_=e.code,this.units_=e.units,this.extent_=e.extent!==void 0?e.extent:null,this.worldExtent_=e.worldExtent!==void 0?e.worldExtent:null,this.axisOrientation_=e.axisOrientation!==void 0?e.axisOrientation:"enu",this.global_=e.global!==void 0?e.global:!1,this.canWrapX_=!!(this.global_&&this.extent_),this.getPointResolutionFunc_=e.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=e.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||Ci[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(e){this.global_=e,this.canWrapX_=!!(e&&this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(e){this.defaultTileGrid_=e}setExtent(e){this.extent_=e,this.canWrapX_=!!(this.global_&&e)}setWorldExtent(e){this.worldExtent_=e}setGetPointResolution(e){this.getPointResolutionFunc_=e}getPointResolutionFunc(){return this.getPointResolutionFunc_}},Pi=Ph;var Ys=6378137,So=Math.PI*Ys,Xx=[-So,-So,So,So],Jx=[-180,-85,180,85],MA=Ys*Math.log(Math.tan(Math.PI/2)),jn=class extends Pi{constructor(e){super({code:e,units:"m",extent:Xx,global:!0,worldExtent:Jx,getPointResolution:function(t,n){return t/Math.cosh(n[1]/Ys)}})}},Nh=[new jn("EPSG:3857"),new jn("EPSG:102100"),new jn("EPSG:102113"),new jn("EPSG:900913"),new jn("http://www.opengis.net/def/crs/EPSG/0/3857"),new jn("http://www.opengis.net/gml/srs/epsg.xml#3857")];function bp(i,e,t,n){let r=i.length;t=t>1?t:2,n=n??t,e===void 0&&(t>2?e=i.slice():e=new Array(r));for(let o=0;oMA?s=MA:s<-MA&&(s=-MA),e[o+1]=s}return e}function Fp(i,e,t,n){let r=i.length;t=t>1?t:2,n=n??t,e===void 0&&(t>2?e=i.slice():e=new Array(r));for(let o=0;oGp&&(e=Gp);let n=jt(e),r=Math.sin(n),o=Math.cos(n),s=r/o,a=s*s,A=a*a,l=jt(i),c=zp(t.number),h=jt(c),u=NA/Math.sqrt(1-Ai*r**2),f=vr*o**2,g=o*FA(l-h,-Math.PI,Math.PI),m=g*g,d=m*g,I=d*g,p=I*g,_=p*g,C=NA*(Hp*n-Zx*Math.sin(2*n)+$x*Math.sin(4*n)-ew*Math.sin(6*n)),E=PA*u*(g+d/6*(1-a+f)+p/120*(5-18*a+A+72*f-58*vr))+5e5,y=PA*(C+u*s*(m/2+I/24*(5-a+9*f+4*f**2)+_/720*(61-58*a+A+600*f-330*vr)));return t.north||(y+=1e7),[E,y]}function zp(i){return(i-1)*6-180+3}var lw=[/^EPSG:(\d+)$/,/^urn:ogc:def:crs:EPSG::(\d+)$/,/^http:\/\/www\.opengis\.net\/def\/crs\/EPSG\/0\/(\d+)$/];function Kp(i){let e=0;for(let r of lw){let o=i.match(r);if(o){e=parseInt(o[1]);break}}if(!e)return null;let t=0,n=!1;return e>32700&&e<32761?t=e-32700:e>32600&&e<32661&&(n=!0,t=e-32600),t?{number:t,north:n}:null}function Op(i,e){return function(t,n,r,o){let s=t.length;r=r>1?r:2,o=o??r,n||(r>2?n=t.slice():n=new Array(s));for(let a=0;a=A?e[s+l]:a[l]}return t}}function jp(i,e){return qh(),Wn(i,"EPSG:4326",e!==void 0?e:"EPSG:3857")}function Wp(i,e){let t=Wn(i,e!==void 0?e:"EPSG:3857","EPSG:4326"),n=t[0];return(n<-180||n>180)&&(t[0]=Wt(n+180,360)-180),t}function Ni(i,e){if(i===e)return!0;let t=i.getUnits()===e.getUnits();return(i.getCode()===e.getCode()||li(i,e)===Vh)&&t}function li(i,e){let t=i.getCode(),n=e.getCode(),r=kA(t,n);if(r)return r;let o=null,s=null;for(let A of cw)o||(o=A(i)),s||(s=A(e));if(!o&&!s)return null;let a="EPSG:4326";if(s)if(o)r=Hh(o.inverse,s.forward);else{let A=kA(t,a);A&&(r=Hh(A,s.forward))}else{let A=kA(a,n);A&&(r=Hh(o.inverse,A))}return r&&(Kh(i),Kh(e),To(i,e,r)),r}function Hh(i,e){return function(t,n,r,o){return n=i(t,n,r,o),e(n,n,r,o)}}function _n(i,e){let t=fe(i),n=fe(e);return li(t,n)}function Wn(i,e,t){let n=_n(e,t);if(!n){let r=fe(e).getCode(),o=fe(t).getCode();throw new Error(`No transform available between ${r} and ${o}`)}return n(i,void 0,i.length)}function Xh(i,e,t,n){let r=_n(e,t);return DA(i,r,void 0,n)}var _i=null;function ci(){return _i}function Dr(i,e){return _i?Wn(i,e,_i):i}function yi(i,e){return _i?Wn(i,_i,e):(zh&&!Tr(i,[0,0])&&i[0]>=-180&&i[0]<=180&&i[1]>=-90&&i[1]<=90&&(zh=!1,LA("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),i)}function hi(i,e){return _i?Xh(i,e,_i):i}function Ct(i,e){return _i?Xh(i,_i,e):i}function HA(i,e){if(!_i)return i;let t=fe(e).getMetersPerUnit(),n=_i.getMetersPerUnit();return t&&n?i*t/n:i}function gw(){Xp(Nh),Xp(Gh),fw(Gh,Nh,bp,Fp)}gw();var Jh=new Array(6);function Ce(){return[1,0,0,1,0,0]}function $p(i){return zA(i,1,0,0,1,0,0)}function Zn(i,e){let t=i[0],n=i[1],r=i[2],o=i[3],s=i[4],a=i[5],A=e[0],l=e[1],c=e[2],h=e[3],u=e[4],f=e[5];return i[0]=t*A+r*l,i[1]=n*A+o*l,i[2]=t*c+r*h,i[3]=n*c+o*h,i[4]=t*u+r*f+s,i[5]=n*u+o*f+a,i}function zA(i,e,t,n,r,o,s){return i[0]=e,i[1]=t,i[2]=n,i[3]=r,i[4]=o,i[5]=s,i}function KA(i,e){return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i}function ye(i,e){let t=e[0],n=e[1];return e[0]=i[0]*t+i[2]*n+i[4],e[1]=i[1]*t+i[3]*n+i[5],e}function eI(i,e){let t=Math.cos(e),n=Math.sin(e);return Zn(i,zA(Jh,t,n,-n,t,0,0))}function jh(i,e,t){return Zn(i,zA(Jh,e,0,0,t,0,0))}function qA(i,e,t){return Zn(i,zA(Jh,1,0,0,1,e,t))}function Xe(i,e,t,n,r,o,s,a){let A=Math.sin(o),l=Math.cos(o);return i[0]=n*l,i[1]=r*A,i[2]=-n*A,i[3]=r*l,i[4]=s*n*l-a*n*A+e,i[5]=s*r*A+a*r*l+t,i}function Bi(i,e){let t=dw(e);re(t!==0,"Transformation matrix cannot be inverted");let n=e[0],r=e[1],o=e[2],s=e[3],a=e[4],A=e[5];return i[0]=s/t,i[1]=-r/t,i[2]=-o/t,i[3]=n/t,i[4]=(o*A-s*a)/t,i[5]=-(n*A-r*a)/t,i}function dw(i){return i[0]*i[3]-i[1]*i[2]}var mw=[1e5,1e5,1e5,1e5,2,2];function tI(i){return"matrix("+i.join(", ")+")"}function Zp(i){return i.substring(7,i.length-1).split(",").map(parseFloat)}function iI(i,e){let t=Zp(i),n=Zp(e);for(let r=0;r<6;++r)if(Math.round((t[r]-n[r])*mw[r])!==0)return!1;return!0}function ft(i,e,t,n,r,o,s){o=o||[],s=s||2;let a=0;for(let A=e;A{if(!n)return this.getSimplifiedGeometry(t);let r=this.clone();return r.applyTransform(n),r.getSimplifiedGeometry(t)})}simplifyTransformed(e,t){return this.simplifyTransformedInternal(this.getRevision(),e,t)}clone(){return J()}closestPointXY(e,t,n,r){return J()}containsXY(e,t){return this.closestPointXY(e,t,pw,Number.MIN_VALUE)===0}getClosestPoint(e,t){return t=t||[NaN,NaN],this.closestPointXY(e[0],e[1],t,1/0),t}intersectsCoordinate(e){return this.containsXY(e[0],e[1])}computeExtent(e){return J()}getExtent(e){if(this.extentRevision_!=this.getRevision()){let t=this.computeExtent(this.extent_);(isNaN(t[0])||isNaN(t[1]))&&En(t),this.extentRevision_=this.getRevision()}return Bp(this.extent_,e)}rotate(e,t){J()}scale(e,t,n){J()}simplify(e){return this.getSimplifiedGeometry(e*e)}getSimplifiedGeometry(e){return J()}getType(){return J()}applyTransform(e){J()}intersectsExtent(e){return J()}translate(e,t){J()}transform(e,t){let n=fe(e),r=n.getUnits()=="tile-pixels"?function(o,s,a){let A=n.getExtent(),l=n.getWorldExtent(),c=Se(l)/Se(A);Xe(oI,l[0],l[3],c,-c,0,0,0);let h=ft(o,0,o.length,a,oI,s),u=_n(n,t);return u?u(h,h,a):h}:_n(n,t);return this.applyTransform(r),this}},XA=Wh;var Zh=class extends XA{constructor(){super(),this.layout="XY",this.stride=2,this.flatCoordinates}computeExtent(e){return Eo(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,e)}getCoordinates(){return J()}getFirstCoordinate(){return this.flatCoordinates.slice(0,this.stride)}getFlatCoordinates(){return this.flatCoordinates}getLastCoordinate(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)}getLayout(){return this.layout}getSimplifiedGeometry(e){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),e<0||this.simplifiedGeometryMaxMinSquaredTolerance!==0&&e<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;let t=this.getSimplifiedGeometryInternal(e);return t.getFlatCoordinates().length1)h=t;else if(u>0){for(let f=0;fr&&(r=l),o=a,s=A}return r}function zs(i,e,t,n,r){for(let o=0,s=t.length;o0;){let h=l.pop(),u=l.pop(),f=0,g=i[u],m=i[u+1],d=i[h],I=i[h+1];for(let p=u+n;pf&&(c=p,f=E)}f>r&&(A[(c-e)/n]=1,u+n0&&m>f)&&(g<0&&d0&&d>g)){l=h,c=u;continue}o[s++]=l,o[s++]=c,a=l,A=c,l=h,c=u}return o[s++]=l,o[s++]=c,s}function Xs(i,e,t,n,r,o,s,a){for(let A=0,l=t.length;Ao&&(l-a)*(o-A)-(r-a)*(c-A)>0&&s++:c<=o&&(l-a)*(o-A)-(r-a)*(c-A)<0&&s--,a=l,A=c}return s!==0}function Js(i,e,t,n,r,o){if(t.length===0||!nr(i,e,t[0],n,r,o))return!1;for(let s=1,a=t.length;sI&&(l=(c+h)/2,Js(i,e,t,n,l,g)&&(d=l,I=p)),c=h}return isNaN(d)&&(d=r[o]),s?(s.push(d,g,I),s):[d,g,I]}function WA(i,e,t,n,r){let o=[];for(let s=0,a=t.length;s=r[0]&&o[2]<=r[2]||o[1]>=r[1]&&o[3]<=r[3]?!0:ZA(i,e,t,n,function(s,a){return wp(r,s,a)}):!1}function mI(i,e,t,n,r){for(let o=0,s=t.length;o0}function Zs(i,e,t,n,r){r=r!==void 0?r:!1;for(let o=0,s=t.length;o1?s:2,o=o||new Array(s);for(let c=0;c>1;r.0031308?Math.pow(i,1/2.4)*269.025-14.025:i*3294.6}function gu(i){return i>.2068965?Math.pow(i,3):(i-4/29)*(108/841)}function du(i){return i>10.314724?Math.pow((i+14.025)/269.025,2.4):i/3294.6}function mu(i){return i>.0088564?Math.pow(i,1/3):i/(108/841)+4/29}function pu(i){let e=du(i[0]),t=du(i[1]),n=du(i[2]),r=mu(e*.222488403+t*.716873169+n*.06060791),o=500*(mu(e*.452247074+t*.399439023+n*.148375274)-r),s=200*(r-mu(e*.016863605+t*.117638439+n*.865350722)),a=Math.atan2(s,o)*(180/Math.PI);return[116*r-16,Math.sqrt(o*o+s*s),a<0?a+360:a,i[3]]}function TI(i){let e=(i[0]+16)/116,t=i[1],n=i[2]*Math.PI/180,r=gu(e),o=gu(e+t/500*Math.cos(n)),s=gu(e-t/200*Math.sin(n)),a=fu(o*3.021973625-r*1.617392459-s*.404875592),A=fu(o*-.943766287+r*1.916279586+s*.027607165),l=fu(o*.069407491-r*.22898585+s*1.159737864);return[ce(a+.5|0,0,255),ce(A+.5|0,0,255),ce(l+.5|0,0,255),i[3]]}function na(i){if(i==="none")return sl;if(ta.hasOwnProperty(i))return ta[i];if(uu>=ww){let t=0;for(let n in ta)(t++&3)===0&&(delete ta[n],--uu)}let e=QI(i);e.length!==4&&ia(i);for(let t of e)isNaN(t)&&ia(i);return ta[i]=e,++uu,e}function We(i){return Array.isArray(i)?i:na(i)}function ra(i){let e=i[0];e!=(e|0)&&(e=e+.5|0);let t=i[1];t!=(t|0)&&(t=t+.5|0);let n=i[2];n!=(n|0)&&(n=n+.5|0);let r=i[3]===void 0?1:Math.round(i[3]*1e3)/1e3;return"rgba("+e+","+t+","+n+","+r+")"}function vI(i,e,t){let n=i,r=!0,o=!1,s=!1,a=[qn(n,U.LOAD,function(){s=!0,o||e()})];return n.src&&lu?(o=!0,n.decode().then(function(){r&&e()}).catch(function(A){r&&(s?e():t())})):a.push(qn(n,U.ERROR,t)),function(){r=!1,a.forEach(se)}}function Qw(i,e){return new Promise((t,n)=>{function r(){s(),t(i)}function o(){s(),n(new Error("Image load error"))}function s(){i.removeEventListener("load",r),i.removeEventListener("error",o)}i.addEventListener("load",r),i.addEventListener("error",o),e&&(i.src=e)})}function DI(i,e){return e&&(i.src=e),i.src&&lu?new Promise((t,n)=>i.decode().then(()=>t(i)).catch(r=>i.complete&&i.width?t(i):n(r))):Qw(i)}var Eu=class{constructor(){this.cache_={},this.patternCache_={},this.cacheSize_=0,this.maxCacheSize_=1024}clear(){this.cache_={},this.patternCache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let e=0;for(let t in this.cache_){let n=this.cache_[t];(e++&3)===0&&!n.hasListener()&&(delete this.cache_[t],delete this.patternCache_[t],--this.cacheSize_)}}}get(e,t,n){let r=Iu(e,t,n);return r in this.cache_?this.cache_[r]:null}getPattern(e,t,n){let r=Iu(e,t,n);return r in this.patternCache_?this.patternCache_[r]:null}set(e,t,n,r,o){let s=Iu(e,t,n),a=s in this.cache_;this.cache_[s]=r,o&&(r.getImageState()===ee.IDLE&&r.load(),r.getImageState()===ee.LOADING?r.ready().then(()=>{this.patternCache_[s]=Mo().createPattern(r.getImage(1),"repeat")}):this.patternCache_[s]=Mo().createPattern(r.getImage(1),"repeat")),a||++this.cacheSize_}setSize(e){this.maxCacheSize_=e,this.expire()}};function Iu(i,e,t){let n=t?We(t):"null";return e+":"+i+":"+n}var _t=new Eu;var oa=null,al=class extends Mi{constructor(e,t,n,r,o){super(),this.hitDetectionImage_=null,this.image_=e,this.crossOrigin_=n,this.canvas_={},this.color_=o,this.imageState_=r===void 0?ee.IDLE:r,this.size_=e&&e.width&&e.height?[e.width,e.height]:null,this.src_=t,this.tainted_,this.ready_=null}initializeImage_(){this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(this.tainted_===void 0&&this.imageState_===ee.LOADED){oa||(oa=me(1,1,void 0,{willReadFrequently:!0})),oa.drawImage(this.image_,0,0);try{oa.getImageData(0,0,1,1),this.tainted_=!1}catch{oa=null,this.tainted_=!0}}return this.tainted_===!0}dispatchChangeEvent_(){this.dispatchEvent(U.CHANGE)}handleImageError_(){this.imageState_=ee.ERROR,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=ee.LOADED,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(e){return this.image_||this.initializeImage_(),this.replaceColor_(e),this.canvas_[e]?this.canvas_[e]:this.image_}getPixelRatio(e){return this.replaceColor_(e),this.canvas_[e]?e:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){let e=this.size_[0],t=this.size_[1],n=me(e,t);n.fillRect(0,0,e,t),this.hitDetectionImage_=n.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(this.imageState_===ee.IDLE){this.image_||this.initializeImage_(),this.imageState_=ee.LOADING;try{this.src_!==void 0&&(this.image_.src=this.src_)}catch{this.handleImageError_()}this.image_ instanceof HTMLImageElement&&DI(this.image_,this.src_).then(e=>{this.image_=e,this.handleImageLoad_()}).catch(this.handleImageError_.bind(this))}}replaceColor_(e){if(!this.color_||this.canvas_[e]||this.imageState_!==ee.LOADED)return;let t=this.image_,n=me(Math.ceil(t.width*e),Math.ceil(t.height*e)),r=n.canvas;n.scale(e,e),n.drawImage(t,0,0),n.globalCompositeOperation="multiply",n.fillStyle=SI(this.color_),n.fillRect(0,0,r.width/e,r.height/e),n.globalCompositeOperation="destination-in",n.drawImage(t,0,0),this.canvas_[e]=r}ready(){return this.ready_||(this.ready_=new Promise(e=>{if(this.imageState_===ee.LOADED||this.imageState_===ee.ERROR)e();else{let t=()=>{(this.imageState_===ee.LOADED||this.imageState_===ee.ERROR)&&(this.removeEventListener(U.CHANGE,t),e())};this.addEventListener(U.CHANGE,t)}})),this.ready_}};function ko(i,e,t,n,r,o){let s=e===void 0?void 0:_t.get(e,t,r);return s||(s=new al(i,i&&"src"in i?i.src||void 0:e,t,n,r),_t.set(e,t,r,s,o)),o&&s&&!_t.getPattern(e,t,r)&&_t.set(e,t,r,s,o),s}var bI=al;function Pt(i){return i?Array.isArray(i)?ra(i):typeof i=="object"&&"src"in i?Sw(i):i:null}function Sw(i){if(!i.offset||!i.size)return _t.getPattern(i.src,"anonymous",i.color);let e=i.src+":"+i.offset,t=_t.getPattern(e,void 0,i.color);if(t)return t;let n=_t.get(i.src,"anonymous",null);if(n.getImageState()!==ee.LOADED)return null;let r=me(i.size[0],i.size[1]);return r.drawImage(n.getImage(1),i.offset[0],i.offset[1],i.size[0],i.size[1],0,0,i.size[0],i.size[1]),ko(r.canvas,e,void 0,ee.LOADED,i.color,!0),_t.getPattern(e,void 0,i.color)}var Cu=class{drawCustom(e,t,n,r,o){}drawGeometry(e){}setStyle(e){}drawCircle(e,t,n){}drawFeature(e,t,n){}drawGeometryCollection(e,t,n){}drawLineString(e,t,n){}drawMultiLineString(e,t,n){}drawMultiPoint(e,t,n){}drawMultiPolygon(e,t,n){}drawPoint(e,t,n){}drawPolygon(e,t,n){}drawText(e,t,n){}setFillStrokeStyle(e,t){}setImageStyle(e,t){}setTextStyle(e,t){}},Al=Cu;var sa="ol-hidden",LI="ol-selectable",gt="ol-unselectable",_u="ol-unsupported",fi="ol-control",Po="ol-collapsed",Rw=new RegExp(["^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)","(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?","(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))","(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))",`?\\s*([-,\\"\\'\\sa-z0-9]+?)\\s*$`].join(""),"i"),FI=["style","variant","weight","size","lineHeight","family"],yu=function(i){let e=i.match(Rw);if(!e)return null;let t={lineHeight:"normal",size:"1.2em",style:"normal",weight:"normal",variant:"normal"};for(let n=0,r=FI.length;n()=>(i&&(e=i(i=0)),e);var _r=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),Zr=(i,e)=>{for(var t in e)Qd(i,t,{get:e[t],enumerable:!0})},KQ=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of VQ(e))!qQ.call(i,r)&&r!==t&&Qd(i,r,{get:()=>e[r],enumerable:!(n=YQ(e,r))||n.enumerable});return i};var wa=(i,e,t)=>(t=i!=null?zQ(HQ(i)):{},KQ(e||!i||!i.__esModule?Qd(t,"default",{value:i,enumerable:!0}):t,i));var rw=_r((Dre,qE)=>{function nw(i,e,t){let n=t&&t.debug||!1;n&&console.log("[xml-utils] getting "+e+" in "+i);let r=typeof i=="object"?i.outer:i,o=r.slice(0,r.indexOf(">")+1),s=['"',"'"];for(let a=0;a{function ow(i,e,t){let r=new RegExp(e).exec(i.slice(t));return r?t+r.index:-1}KE.exports=ow;KE.exports.default=ow});var lw=_r((Lre,XE)=>{function aw(i,e,t){let r=new RegExp(e).exec(i.slice(t));return r?t+r.index+r[0].length-1:-1}XE.exports=aw;XE.exports.default=aw});var cw=_r((Mre,jE)=>{function Aw(i,e){let t=new RegExp(e,"g"),n=i.match(t);return n?n.length:0}jE.exports=Aw;jE.exports.default=Aw});var fw=_r((kre,JE)=>{var QF=sw(),WE=lw(),hw=cw();function uw(i,e,t){let n=t&&t.debug||!1,r=!(t&&typeof t.nested===!1),o=t&&t.startIndex||0;n&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let s=QF(i,`<${e}[ +>/]`,o);if(n&&console.log("[xml-utils] start:",s),s===-1)return;let a=i.slice(s+e.length),l=WE(a,"^[^<]*[ /]>",0),A=l!==-1&&a[l-1]==="/";if(n&&console.log("[xml-utils] selfClosing:",A),A===!1)if(r){let f=0,g=1,p=0;for(;(l=WE(a,"[ /]"+e+">",f))!==-1;){let d=a.substring(f,l+1);if(g+=hw(d,"<"+e+`[ + >]`),p+=hw(d,""),p>=g)break;f=l}}else l=WE(a,"[ /]"+e+">",0);let c=s+e.length+l+1;if(n&&console.log("[xml-utils] end:",c),c===-1)return;let h=i.slice(s,c),u;return A?u=null:u=h.slice(h.indexOf(">")+1,h.lastIndexOf("<")),{inner:u,outer:h,start:s,end:c}}JE.exports=uw;JE.exports.default=uw});var dw=_r((Pre,$E)=>{var bF=fw();function gw(i,e,t){let n=[],r=t&&t.debug||!1,o=t&&typeof t.nested=="boolean"?t.nested:!0,s=t&&t.startIndex||0,a;for(;a=bF(i,e,{debug:r,startIndex:s});)o?s=a.start+1+e.length:s=a.end,n.push(a);return r&&console.log("findTagsByName found",n.length,"tags"),n}$E.exports=gw;$E.exports.default=gw});var qf={};Zr(qf,{ExtraSamplesValues:()=>eI,LercAddCompression:()=>Rc,LercParameters:()=>tI,arrayFields:()=>ZE,fieldTagNames:()=>aa,fieldTagTypes:()=>DF,fieldTags:()=>pr,fieldTypeNames:()=>Hf,fieldTypes:()=>ye,geoKeyNames:()=>Ll,geoKeys:()=>pw,photometricInterpretations:()=>zi});var aa,pr,DF,ZE,Hf,ye,zi,eI,tI,Rc,Ll,pw,Qc=Xi(()=>{aa={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},pr={};for(let i in aa)aa.hasOwnProperty(i)&&(pr[aa[i]]=parseInt(i,10));DF={256:"SHORT",257:"SHORT",258:"SHORT",259:"SHORT",262:"SHORT",273:"LONG",274:"SHORT",277:"SHORT",278:"LONG",279:"LONG",282:"RATIONAL",283:"RATIONAL",284:"SHORT",286:"SHORT",287:"RATIONAL",296:"SHORT",297:"SHORT",305:"ASCII",306:"ASCII",338:"SHORT",339:"SHORT",513:"LONG",514:"LONG",1024:"SHORT",1025:"SHORT",2048:"SHORT",2049:"ASCII",3072:"SHORT",3073:"ASCII",33550:"DOUBLE",33922:"DOUBLE",34264:"DOUBLE",34665:"LONG",34735:"SHORT",34736:"DOUBLE",34737:"ASCII",42113:"ASCII"},ZE=[pr.BitsPerSample,pr.ExtraSamples,pr.SampleFormat,pr.StripByteCounts,pr.StripOffsets,pr.StripRowCounts,pr.TileByteCounts,pr.TileOffsets,pr.SubIFDs],Hf={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},ye={};for(let i in Hf)Hf.hasOwnProperty(i)&&(ye[Hf[i]]=parseInt(i,10));zi={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},eI={Unspecified:0,Assocalpha:1,Unassalpha:2},tI={Version:0,AddCompression:1},Rc={None:0,Deflate:1,Zstandard:2},Ll={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},pw={};for(let i in Ll)Ll.hasOwnProperty(i)&&(pw[Ll[i]]=parseInt(i,10))});function kF(i,e){let t=i.length-e,n=0;do{for(let r=e;r>0;r--)i[n+e]+=i[n],n++;t-=e}while(t>0)}function PF(i,e,t){let n=0,r=i.length,o=r/t;for(;r>e;){for(let a=e;a>0;--a)i[n+e]+=i[n],++n;r-=e}let s=i.slice();for(let a=0;a=i.byteLength);++l){let A;if(e===2){switch(r[0]){case 8:A=new Uint8Array(i,l*a*t*s,a*t*s);break;case 16:A=new Uint16Array(i,l*a*t*s,a*t*s/2);break;case 32:A=new Uint32Array(i,l*a*t*s,a*t*s/4);break;default:throw new Error(`Predictor 2 not allowed with ${r[0]} bits per sample.`)}kF(A,a,s)}else e===3&&(A=new Uint8Array(i,l*a*t*s,a*t*s),PF(A,a,s))}return i}var Bw=Xi(()=>{});var hi,_s=Xi(()=>{Bw();hi=class{async decode(e,t){let n=await this.decodeBlock(t),r=e.Predictor||1;if(r!==1){let o=!e.StripOffsets,s=o?e.TileWidth:e.ImageWidth,a=o?e.TileLength:e.RowsPerStrip||e.ImageLength;return xw(n,r,s,a,e.BitsPerSample,e.PlanarConfiguration)}return n}}});var ww={};Zr(ww,{default:()=>Kf});var Kf,vw=Xi(()=>{_s();Kf=class extends hi{decodeBlock(e){return e}}});var Tw={};Zr(Tw,{default:()=>Xf});function GF(i,e,t){let n=e%8,r=Math.floor(e/8),o=8-n,s=e+t-(r+1)*8,a=8*(r+2)-(e+t),l=(r+2)*8-e;if(a=Math.max(0,a),r>=i.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),rI;let A=i[r]&2**(8-n)-1;A<<=t-o;let c=A;if(r+1>>a;h<<=Math.max(0,t-l),c+=h}if(s>8&&r+2>>h;c+=u}return c}function nI(i,e){for(let t=e.length-1;t>=0;t--)i.push(e[t]);return i}function OF(i){let e=new Uint16Array(4093),t=new Uint8Array(4093);for(let g=0;g<=257;g++)e[g]=4096,t[g]=g;let n=258,r=Sw,o=0;function s(){n=258,r=Sw}function a(g){let p=GF(g,o,r);return o+=r,p}function l(g,p){return t[n]=p,e[n]=g,n++,n-1}function A(g){let p=[];for(let d=g;d!==4096;d=e[d])p.push(t[d]);return p}let c=[];s();let h=new Uint8Array(i),u=a(h),f;for(;u!==rI;){if(u===iI){for(s(),u=a(h);u===iI;)u=a(h);if(u===rI)break;if(u>iI)throw new Error(`corrupted code at scanline ${u}`);{let g=A(u);nI(c,g),f=u}}else if(u=2**r&&(r===NF?f=void 0:r++),u=a(h)}return new Uint8Array(c)}var Sw,iI,rI,NF,Xf,Rw=Xi(()=>{_s();Sw=9,iI=256,rI=257,NF=12;Xf=class extends hi{decodeBlock(e){return OF(e,!1).buffer}}});var bw={};Zr(bw,{default:()=>ig});function Qw(i,e){let t=0,n=[],r=16;for(;r>0&&!i[r-1];)--r;n.push({children:[],index:0});let o=n[0],s;for(let a=0;a0;)o=n.pop();for(o.index++,n.push(o);n.length<=a;)n.push(s={children:[],index:0}),o.children[o.index]=s.children,o=s;t++}a+10)return g--,f>>g&1;if(f=i[u++],f===255){let X=i[u++];if(X)throw new Error(`unexpected marker: ${(f<<8|X).toString(16)}`)}return g=7,f>>>7}function d(X){let z=X,q;for(;(q=p())!==null;){if(z=z[q],typeof z=="number")return z;if(typeof z!="object")throw new Error("invalid huffman sequence")}return null}function I(X){let z=X,q=0;for(;z>0;){let Z=p();if(Z===null)return;q=q<<1|Z,--z}return q}function m(X){let z=I(X);return z>=1<>4;if(de===0){if(ve<15)break;ge+=16}else{ge+=ve;let Ve=bc[ge];z[Ve]=m(de),ge++}}}function _(X,z){let q=d(X.huffmanTableDC),Z=q===0?0:m(q)<0){w--;return}let q=o,Z=s;for(;q<=Z;){let ge=d(X.huffmanTableAC),me=ge&15,de=ge>>4;if(me===0){if(de<15){w=I(de)+(1<>4,Ve===0)ge<15?(w=I(ge)+(1<=65488&&U<=65495)u+=2;else break}return u-h}function zF(i,e){let t=[],{blocksPerLine:n,blocksPerColumn:r}=e,o=n<<3,s=new Int32Array(64),a=new Uint8Array(64);function l(A,c,h){let u=e.quantizationTable,f,g,p,d,I,m,C,_,y,w=h,T;for(T=0;T<64;T++)w[T]=A[T]*u[T];for(T=0;T<8;++T){let E=8*T;if(w[1+E]===0&&w[2+E]===0&&w[3+E]===0&&w[4+E]===0&&w[5+E]===0&&w[6+E]===0&&w[7+E]===0){y=Ml*w[0+E]+512>>10,w[0+E]=y,w[1+E]=y,w[2+E]=y,w[3+E]=y,w[4+E]=y,w[5+E]=y,w[6+E]=y,w[7+E]=y;continue}f=Ml*w[0+E]+128>>8,g=Ml*w[4+E]+128>>8,p=w[2+E],d=w[6+E],I=tg*(w[1+E]-w[7+E])+128>>8,_=tg*(w[1+E]+w[7+E])+128>>8,m=w[3+E]<<4,C=w[5+E]<<4,y=f-g+1>>1,f=f+g+1>>1,g=y,y=p*eg+d*Zf+128>>8,p=p*Zf-d*eg+128>>8,d=y,y=I-C+1>>1,I=I+C+1>>1,C=y,y=_+m+1>>1,m=_-m+1>>1,_=y,y=f-d+1>>1,f=f+d+1>>1,d=y,y=g-p+1>>1,g=g+p+1>>1,p=y,y=I*$f+_*Jf+2048>>12,I=I*Jf-_*$f+2048>>12,_=y,y=m*Wf+C*jf+2048>>12,m=m*jf-C*Wf+2048>>12,C=y,w[0+E]=f+_,w[7+E]=f-_,w[1+E]=g+C,w[6+E]=g-C,w[2+E]=p+m,w[5+E]=p-m,w[3+E]=d+I,w[4+E]=d-I}for(T=0;T<8;++T){let E=T;if(w[1*8+E]===0&&w[2*8+E]===0&&w[3*8+E]===0&&w[4*8+E]===0&&w[5*8+E]===0&&w[6*8+E]===0&&w[7*8+E]===0){y=Ml*h[T+0]+8192>>14,w[0*8+E]=y,w[1*8+E]=y,w[2*8+E]=y,w[3*8+E]=y,w[4*8+E]=y,w[5*8+E]=y,w[6*8+E]=y,w[7*8+E]=y;continue}f=Ml*w[0*8+E]+2048>>12,g=Ml*w[4*8+E]+2048>>12,p=w[2*8+E],d=w[6*8+E],I=tg*(w[1*8+E]-w[7*8+E])+2048>>12,_=tg*(w[1*8+E]+w[7*8+E])+2048>>12,m=w[3*8+E],C=w[5*8+E],y=f-g+1>>1,f=f+g+1>>1,g=y,y=p*eg+d*Zf+2048>>12,p=p*Zf-d*eg+2048>>12,d=y,y=I-C+1>>1,I=I+C+1>>1,C=y,y=_+m+1>>1,m=_-m+1>>1,_=y,y=f-d+1>>1,f=f+d+1>>1,d=y,y=g-p+1>>1,g=g+p+1>>1,p=y,y=I*$f+_*Jf+2048>>12,I=I*Jf-_*$f+2048>>12,_=y,y=m*Wf+C*jf+2048>>12,m=m*jf-C*Wf+2048>>12,C=y,w[0*8+E]=f+_,w[7*8+E]=f-_,w[1*8+E]=g+C,w[6*8+E]=g-C,w[2*8+E]=p+m,w[5*8+E]=p-m,w[3*8+E]=d+I,w[4*8+E]=d-I}for(T=0;T<64;++T){let E=128+(w[T]+8>>4);E<0?c[T]=0:E>255?c[T]=255:c[T]=E}}for(let A=0;A{_s();bc=new Int32Array([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]),jf=4017,Wf=799,Jf=3406,$f=2276,Zf=1567,eg=3784,Ml=5793,tg=2896;oI=class{constructor(){this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}resetFrames(){this.frames=[]}parse(e){let t=0;function n(){let a=e[t]<<8|e[t+1];return t+=2,a}function r(){let a=n(),l=e.subarray(t,t+a-2);return t+=l.length,l}function o(a){let l=0,A=0,c,h;for(h in a.components)a.components.hasOwnProperty(h)&&(c=a.components[h],l>4===0)for(let h=0;h<64;h++){let u=bc[h];c[u]=e[t++]}else if(A>>4===1)for(let h=0;h<64;h++){let u=bc[h];c[u]=n()}else throw new Error("DQT: invalid table spec");this.quantizationTables[A&15]=c}break}case 65472:case 65473:case 65474:{n();let a={extended:s===65473,progressive:s===65474,precision:e[t++],scanLines:n(),samplesPerLine:n(),components:{},componentsOrder:[]},l=e[t++],A;for(let c=0;c>4,u=e[t+1]&15,f=e[t+2];a.componentsOrder.push(A),a.components[A]={h,v:u,quantizationIdx:f},t+=3}o(a),this.frames.push(a);break}case 65476:{let a=n();for(let l=2;l>4===0?this.huffmanTablesDC[A&15]=Qw(c,u):this.huffmanTablesAC[A&15]=Qw(c,u)}break}case 65501:n(),this.resetInterval=n();break;case 65498:{n();let a=e[t++],l=[],A=this.frames[0];for(let g=0;g>4],p.huffmanTableAC=this.huffmanTablesAC[d&15],l.push(p)}let c=e[t++],h=e[t++],u=e[t++],f=UF(e,t,A,l,this.resetInterval,c,h,u>>4,u&15);t+=f;break}case 65535:e[t]!==255&&t--;break;default:if(e[t-3]===255&&e[t-2]>=192&&e[t-2]<=254){t-=3;break}throw new Error(`unknown JPEG marker ${s.toString(16)}`)}s=n()}}getResult(){let{frames:e}=this;if(this.frames.length===0)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let c=0;c=0;)i[e]=0}function aI(i,e,t,n,r){this.static_tree=i,this.extra_bits=e,this.extra_base=t,this.elems=n,this.max_length=r,this.has_stree=i&&i.length}function lI(i,e){this.dyn_tree=i,this.max_code=0,this.stat_desc=e}function Or(i,e,t,n,r){this.good_length=i,this.max_lazy=e,this.nice_length=t,this.max_chain=n,this.func=r}function VL(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ug,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(ML*2),this.dyn_dtree=new Uint16Array((2*FL+1)*2),this.bl_tree=new Uint16Array((2*LL+1)*2),xs(this.dyn_ltree),xs(this.dyn_dtree),xs(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(kL+1),this.heap=new Uint16Array(2*xI+1),xs(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*xI+1),xs(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function uM(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}function Xc(i){this.options=fg.assign({level:EM,method:CM,chunkSize:16384,windowBits:15,memLevel:8,strategy:IM},i||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Nv,this.strm.avail_out=0;let t=kc.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==cg)throw new Error(ha[t]);if(e.header&&kc.deflateSetHeader(this.strm,e.header),e.dictionary){let n;if(typeof e.dictionary=="string"?n=Vc.string2buf(e.dictionary):Gv.call(e.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(e.dictionary):n=e.dictionary,t=kc.deflateSetDictionary(this.strm,n),t!==cg)throw new Error(ha[t]);this._dict_set=!0}}function LI(i,e){let t=new Xc(e);if(t.push(i,!0),t.err)throw t.msg||ha[t.err];return t.result}function yM(i,e){return e=e||{},e.raw=!0,LI(i,e)}function _M(i,e){return e=e||{},e.gzip=!0,LI(i,e)}function HM(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function lk(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}function jc(i){this.options=fg.assign({chunkSize:1024*64,windowBits:15,to:""},i||{});let e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(i&&i.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15)===0&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Nv,this.strm.avail_out=0;let t=To.inflateInit2(this.strm,e.windowBits);if(t!==Hc)throw new Error(ha[t]);if(this.header=new Ak,To.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Vc.string2buf(e.dictionary):Jv.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=To.inflateSetDictionary(this.strm,e.dictionary),t!==Hc)))throw new Error(ha[t])}function MI(i,e){let t=new jc(e);if(t.push(i),t.err)throw t.msg||ha[t.err];return t.result}function gk(i,e){return e=e||{},e.raw=!0,MI(i,e)}var YF,mv,VF,HF,qF,RI,qc,Nc,Nl,QI,Ev,la,sI,KF,bI,Iv,Cv,yv,CI,lg,XF,_v,jF,So,Mc,Gc,Oc,DI,Ag,xv,Bv,wv,vv,Uc,un,Ur,Sv,WF,JF,Tv,$F,Rv,Qv,Fw,AI,Lw,yI,Mw,kw,ZF,eL,tL,Pw,iL,bv,nL,rL,oL,sL,aL,lL,AL,cL,hL,uL,zc,fL,gL,dL,ei,ha,zl,pL,_I,mL,ws,EL,vs,IL,CL,jn,Nw,ui,Gw,zr,yL,cI,_L,xL,ng,BL,wL,vL,SL,ug,TL,RL,QL,bL,DL,xI,FL,LL,ML,kL,Ge,Bs,Yr,PL,Gl,FI,BI,wI,vI,SI,Aa,Fc,Yi,Yl,ua,Vl,NL,ca,Ow,xs,GL,OL,Ss,Bn,wn,Je,Dc,TI,Dv,Ol,Fv,hI,kl,UL,zL,Lc,YL,Kc,Lv,Mv,HL,kv,qL,KL,XL,jL,WL,JL,$L,ZL,eM,tM,iM,nM,rM,kc,oM,sM,aM,fg,Pv,Yc,lM,AM,cM,hM,Vc,Nv,Gv,fM,gM,dM,pM,cg,mM,EM,IM,CM,xM,BM,wM,vM,SM,TM,rg,RM,QM,Pl,Uw,zw,Yw,uI,Vw,bM,DM,FM,LM,MM,Pc,kM,Ov,Uv,Hw,PM,og,fa,NM,GM,Wn,zv,Yv,OM,qw,gg,Kw,Xw,jw,Ww,Jw,$w,Zw,ev,tv,hg,vo,fI,iv,gI,nv,rv,ov,sv,sg,ag,av,lv,Av,cv,hv,dI,uv,fv,yt,Vv,Hv,UM,zM,YM,VM,gv,ga,qv,Kv,Xv,jv,qM,dv,pI,mI,KM,Wv,XM,jM,WM,JM,$M,ZM,ek,tk,ik,nk,rk,ok,sk,ak,To,Ak,Jv,ck,hk,Hc,EI,II,uk,pv,fk,dk,pk,mk,Ek,Ik,Ck,Hre,qre,Kre,Xre,jre,yk,Wre,Jre,dg,kI=Xi(()=>{YF=0,mv=1,VF=2,HF=3,qF=258,RI=29,qc=256,Nc=qc+1+RI,Nl=30,QI=19,Ev=2*Nc+1,la=15,sI=16,KF=7,bI=256,Iv=16,Cv=17,yv=18,CI=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),lg=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),XF=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),_v=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),jF=512,So=new Array((Nc+2)*2);Ul(So);Mc=new Array(Nl*2);Ul(Mc);Gc=new Array(jF);Ul(Gc);Oc=new Array(qF-HF+1);Ul(Oc);DI=new Array(RI);Ul(DI);Ag=new Array(Nl);Ul(Ag);vv=i=>i<256?Gc[i]:Gc[256+(i>>>7)],Uc=(i,e)=>{i.pending_buf[i.pending++]=e&255,i.pending_buf[i.pending++]=e>>>8&255},un=(i,e,t)=>{i.bi_valid>sI-t?(i.bi_buf|=e<>sI-i.bi_valid,i.bi_valid+=t-sI):(i.bi_buf|=e<{un(i,t[e*2],t[e*2+1])},Sv=(i,e)=>{let t=0;do t|=i&1,i>>>=1,t<<=1;while(--e>0);return t>>>1},WF=i=>{i.bi_valid===16?(Uc(i,i.bi_buf),i.bi_buf=0,i.bi_valid=0):i.bi_valid>=8&&(i.pending_buf[i.pending++]=i.bi_buf&255,i.bi_buf>>=8,i.bi_valid-=8)},JF=(i,e)=>{let t=e.dyn_tree,n=e.max_code,r=e.stat_desc.static_tree,o=e.stat_desc.has_stree,s=e.stat_desc.extra_bits,a=e.stat_desc.extra_base,l=e.stat_desc.max_length,A,c,h,u,f,g,p=0;for(u=0;u<=la;u++)i.bl_count[u]=0;for(t[i.heap[i.heap_max]*2+1]=0,A=i.heap_max+1;Al&&(u=l,p++),t[c*2+1]=u,!(c>n)&&(i.bl_count[u]++,f=0,c>=a&&(f=s[c-a]),g=t[c*2],i.opt_len+=g*(u+f),o&&(i.static_len+=g*(r[c*2+1]+f)));if(p!==0){do{for(u=l-1;i.bl_count[u]===0;)u--;i.bl_count[u]--,i.bl_count[u+1]+=2,i.bl_count[l]--,p-=2}while(p>0);for(u=l;u!==0;u--)for(c=i.bl_count[u];c!==0;)h=i.heap[--A],!(h>n)&&(t[h*2+1]!==u&&(i.opt_len+=(u-t[h*2+1])*t[h*2],t[h*2+1]=u),c--)}},Tv=(i,e,t)=>{let n=new Array(la+1),r=0,o,s;for(o=1;o<=la;o++)r=r+t[o-1]<<1,n[o]=r;for(s=0;s<=e;s++){let a=i[s*2+1];a!==0&&(i[s*2]=Sv(n[a]++,a))}},$F=()=>{let i,e,t,n,r,o=new Array(la+1);for(t=0,n=0;n>=7;n{let e;for(e=0;e{i.bi_valid>8?Uc(i,i.bi_buf):i.bi_valid>0&&(i.pending_buf[i.pending++]=i.bi_buf),i.bi_buf=0,i.bi_valid=0},Fw=(i,e,t,n)=>{let r=e*2,o=t*2;return i[r]{let n=i.heap[t],r=t<<1;for(;r<=i.heap_len&&(r{let n,r,o=0,s,a;if(i.sym_next!==0)do n=i.pending_buf[i.sym_buf+o++]&255,n+=(i.pending_buf[i.sym_buf+o++]&255)<<8,r=i.pending_buf[i.sym_buf+o++],n===0?Ur(i,r,e):(s=Oc[r],Ur(i,s+qc+1,e),a=CI[s],a!==0&&(r-=DI[s],un(i,r,a)),n--,s=vv(n),Ur(i,s,t),a=lg[s],a!==0&&(n-=Ag[s],un(i,n,a)));while(o{let t=e.dyn_tree,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,o=e.stat_desc.elems,s,a,l=-1,A;for(i.heap_len=0,i.heap_max=Ev,s=0;s>1;s>=1;s--)AI(i,t,s);A=o;do s=i.heap[1],i.heap[1]=i.heap[i.heap_len--],AI(i,t,1),a=i.heap[1],i.heap[--i.heap_max]=s,i.heap[--i.heap_max]=a,t[A*2]=t[s*2]+t[a*2],i.depth[A]=(i.depth[s]>=i.depth[a]?i.depth[s]:i.depth[a])+1,t[s*2+1]=t[a*2+1]=A,i.heap[1]=A++,AI(i,t,1);while(i.heap_len>=2);i.heap[--i.heap_max]=i.heap[1],JF(i,e),Tv(t,l,i.bl_count)},Mw=(i,e,t)=>{let n,r=-1,o,s=e[0*2+1],a=0,l=7,A=4;for(s===0&&(l=138,A=3),e[(t+1)*2+1]=65535,n=0;n<=t;n++)o=s,s=e[(n+1)*2+1],!(++a{let n,r=-1,o,s=e[0*2+1],a=0,l=7,A=4;for(s===0&&(l=138,A=3),n=0;n<=t;n++)if(o=s,s=e[(n+1)*2+1],!(++a{let e;for(Mw(i,i.dyn_ltree,i.l_desc.max_code),Mw(i,i.dyn_dtree,i.d_desc.max_code),yI(i,i.bl_desc),e=QI-1;e>=3&&i.bl_tree[_v[e]*2+1]===0;e--);return i.opt_len+=3*(e+1)+5+5+4,e},eL=(i,e,t,n)=>{let r;for(un(i,e-257,5),un(i,t-1,5),un(i,n-4,4),r=0;r{let e=4093624447,t;for(t=0;t<=31;t++,e>>>=1)if(e&1&&i.dyn_ltree[t*2]!==0)return 0;if(i.dyn_ltree[9*2]!==0||i.dyn_ltree[10*2]!==0||i.dyn_ltree[13*2]!==0)return 1;for(t=32;t{Pw||($F(),Pw=!0),i.l_desc=new lI(i.dyn_ltree,xv),i.d_desc=new lI(i.dyn_dtree,Bv),i.bl_desc=new lI(i.bl_tree,wv),i.bi_buf=0,i.bi_valid=0,Rv(i)},bv=(i,e,t,n)=>{un(i,(YF<<1)+(n?1:0),3),Qv(i),Uc(i,t),Uc(i,~t),t&&i.pending_buf.set(i.window.subarray(e,e+t),i.pending),i.pending+=t},nL=i=>{un(i,mv<<1,3),Ur(i,bI,So),WF(i)},rL=(i,e,t,n)=>{let r,o,s=0;i.level>0?(i.strm.data_type===2&&(i.strm.data_type=tL(i)),yI(i,i.l_desc),yI(i,i.d_desc),s=ZF(i),r=i.opt_len+3+7>>>3,o=i.static_len+3+7>>>3,o<=r&&(r=o)):r=o=t+5,t+4<=r&&e!==-1?bv(i,e,t,n):i.strategy===4||o===r?(un(i,(mv<<1)+(n?1:0),3),Lw(i,So,Mc)):(un(i,(VF<<1)+(n?1:0),3),eL(i,i.l_desc.max_code+1,i.d_desc.max_code+1,s+1),Lw(i,i.dyn_ltree,i.dyn_dtree)),Rv(i),n&&Qv(i)},oL=(i,e,t)=>(i.pending_buf[i.sym_buf+i.sym_next++]=e,i.pending_buf[i.sym_buf+i.sym_next++]=e>>8,i.pending_buf[i.sym_buf+i.sym_next++]=t,e===0?i.dyn_ltree[t*2]++:(i.matches++,e--,i.dyn_ltree[(Oc[t]+qc+1)*2]++,i.dyn_dtree[vv(e)*2]++),i.sym_next===i.sym_end),sL=iL,aL=bv,lL=rL,AL=oL,cL=nL,hL={_tr_init:sL,_tr_stored_block:aL,_tr_flush_block:lL,_tr_tally:AL,_tr_align:cL},uL=(i,e,t,n)=>{let r=i&65535|0,o=i>>>16&65535|0,s=0;for(;t!==0;){s=t>2e3?2e3:t,t-=s;do r=r+e[n++]|0,o=o+r|0;while(--s);r%=65521,o%=65521}return r|o<<16|0},zc=uL,fL=()=>{let i,e=[];for(var t=0;t<256;t++){i=t;for(var n=0;n<8;n++)i=i&1?3988292384^i>>>1:i>>>1;e[t]=i}return e},gL=new Uint32Array(fL()),dL=(i,e,t,n)=>{let r=gL,o=n+t;i^=-1;for(let s=n;s>>8^r[(i^e[s])&255];return i^-1},ei=dL,ha={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},zl={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:pL,_tr_stored_block:_I,_tr_flush_block:mL,_tr_tally:ws,_tr_align:EL}=hL,{Z_NO_FLUSH:vs,Z_PARTIAL_FLUSH:IL,Z_FULL_FLUSH:CL,Z_FINISH:jn,Z_BLOCK:Nw,Z_OK:ui,Z_STREAM_END:Gw,Z_STREAM_ERROR:zr,Z_DATA_ERROR:yL,Z_BUF_ERROR:cI,Z_DEFAULT_COMPRESSION:_L,Z_FILTERED:xL,Z_HUFFMAN_ONLY:ng,Z_RLE:BL,Z_FIXED:wL,Z_DEFAULT_STRATEGY:vL,Z_UNKNOWN:SL,Z_DEFLATED:ug}=zl,TL=9,RL=15,QL=8,bL=29,DL=256,xI=DL+1+bL,FL=30,LL=19,ML=2*xI+1,kL=15,Ge=3,Bs=258,Yr=Bs+Ge+1,PL=32,Gl=42,FI=57,BI=69,wI=73,vI=91,SI=103,Aa=113,Fc=666,Yi=1,Yl=2,ua=3,Vl=4,NL=3,ca=(i,e)=>(i.msg=ha[e],e),Ow=i=>i*2-(i>4?9:0),xs=i=>{let e=i.length;for(;--e>=0;)i[e]=0},GL=i=>{let e,t,n,r=i.w_size;e=i.hash_size,n=e;do t=i.head[--n],i.head[n]=t>=r?t-r:0;while(--e);e=r,n=e;do t=i.prev[--n],i.prev[n]=t>=r?t-r:0;while(--e)},OL=(i,e,t)=>(e<{let e=i.state,t=e.pending;t>i.avail_out&&(t=i.avail_out),t!==0&&(i.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),i.next_out),i.next_out+=t,e.pending_out+=t,i.total_out+=t,i.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0))},wn=(i,e)=>{mL(i,i.block_start>=0?i.block_start:-1,i.strstart-i.block_start,e),i.block_start=i.strstart,Bn(i.strm)},Je=(i,e)=>{i.pending_buf[i.pending++]=e},Dc=(i,e)=>{i.pending_buf[i.pending++]=e>>>8&255,i.pending_buf[i.pending++]=e&255},TI=(i,e,t,n)=>{let r=i.avail_in;return r>n&&(r=n),r===0?0:(i.avail_in-=r,e.set(i.input.subarray(i.next_in,i.next_in+r),t),i.state.wrap===1?i.adler=zc(i.adler,e,r,t):i.state.wrap===2&&(i.adler=ei(i.adler,e,r,t)),i.next_in+=r,i.total_in+=r,r)},Dv=(i,e)=>{let t=i.max_chain_length,n=i.strstart,r,o,s=i.prev_length,a=i.nice_match,l=i.strstart>i.w_size-Yr?i.strstart-(i.w_size-Yr):0,A=i.window,c=i.w_mask,h=i.prev,u=i.strstart+Bs,f=A[n+s-1],g=A[n+s];i.prev_length>=i.good_match&&(t>>=2),a>i.lookahead&&(a=i.lookahead);do if(r=e,!(A[r+s]!==g||A[r+s-1]!==f||A[r]!==A[n]||A[++r]!==A[n+1])){n+=2,r++;do;while(A[++n]===A[++r]&&A[++n]===A[++r]&&A[++n]===A[++r]&&A[++n]===A[++r]&&A[++n]===A[++r]&&A[++n]===A[++r]&&A[++n]===A[++r]&&A[++n]===A[++r]&&ns){if(i.match_start=e,s=o,o>=a)break;f=A[n+s-1],g=A[n+s]}}while((e=h[e&c])>l&&--t!==0);return s<=i.lookahead?s:i.lookahead},Ol=i=>{let e=i.w_size,t,n,r;do{if(n=i.window_size-i.lookahead-i.strstart,i.strstart>=e+(e-Yr)&&(i.window.set(i.window.subarray(e,e+e-n),0),i.match_start-=e,i.strstart-=e,i.block_start-=e,i.insert>i.strstart&&(i.insert=i.strstart),GL(i),n+=e),i.strm.avail_in===0)break;if(t=TI(i.strm,i.window,i.strstart+i.lookahead,n),i.lookahead+=t,i.lookahead+i.insert>=Ge)for(r=i.strstart-i.insert,i.ins_h=i.window[r],i.ins_h=Ss(i,i.ins_h,i.window[r+1]);i.insert&&(i.ins_h=Ss(i,i.ins_h,i.window[r+Ge-1]),i.prev[r&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=r,r++,i.insert--,!(i.lookahead+i.insert{let t=i.pending_buf_size-5>i.w_size?i.w_size:i.pending_buf_size-5,n,r,o,s=0,a=i.strm.avail_in;do{if(n=65535,o=i.bi_valid+42>>3,i.strm.avail_outr+i.strm.avail_in&&(n=r+i.strm.avail_in),n>o&&(n=o),n>8,i.pending_buf[i.pending-2]=~n,i.pending_buf[i.pending-1]=~n>>8,Bn(i.strm),r&&(r>n&&(r=n),i.strm.output.set(i.window.subarray(i.block_start,i.block_start+r),i.strm.next_out),i.strm.next_out+=r,i.strm.avail_out-=r,i.strm.total_out+=r,i.block_start+=r,n-=r),n&&(TI(i.strm,i.strm.output,i.strm.next_out,n),i.strm.next_out+=n,i.strm.avail_out-=n,i.strm.total_out+=n)}while(s===0);return a-=i.strm.avail_in,a&&(a>=i.w_size?(i.matches=2,i.window.set(i.strm.input.subarray(i.strm.next_in-i.w_size,i.strm.next_in),0),i.strstart=i.w_size,i.insert=i.strstart):(i.window_size-i.strstart<=a&&(i.strstart-=i.w_size,i.window.set(i.window.subarray(i.w_size,i.w_size+i.strstart),0),i.matches<2&&i.matches++,i.insert>i.strstart&&(i.insert=i.strstart)),i.window.set(i.strm.input.subarray(i.strm.next_in-a,i.strm.next_in),i.strstart),i.strstart+=a,i.insert+=a>i.w_size-i.insert?i.w_size-i.insert:a),i.block_start=i.strstart),i.high_watero&&i.block_start>=i.w_size&&(i.block_start-=i.w_size,i.strstart-=i.w_size,i.window.set(i.window.subarray(i.w_size,i.w_size+i.strstart),0),i.matches<2&&i.matches++,o+=i.w_size,i.insert>i.strstart&&(i.insert=i.strstart)),o>i.strm.avail_in&&(o=i.strm.avail_in),o&&(TI(i.strm,i.window,i.strstart,o),i.strstart+=o,i.insert+=o>i.w_size-i.insert?i.w_size-i.insert:o),i.high_water>3,o=i.pending_buf_size-o>65535?65535:i.pending_buf_size-o,t=o>i.w_size?i.w_size:o,r=i.strstart-i.block_start,(r>=t||(r||e===jn)&&e!==vs&&i.strm.avail_in===0&&r<=o)&&(n=r>o?o:r,s=e===jn&&i.strm.avail_in===0&&n===r?1:0,_I(i,i.block_start,n,s),i.block_start+=n,Bn(i.strm)),s?ua:Yi)},hI=(i,e)=>{let t,n;for(;;){if(i.lookahead=Ge&&(i.ins_h=Ss(i,i.ins_h,i.window[i.strstart+Ge-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart),t!==0&&i.strstart-t<=i.w_size-Yr&&(i.match_length=Dv(i,t)),i.match_length>=Ge)if(n=ws(i,i.strstart-i.match_start,i.match_length-Ge),i.lookahead-=i.match_length,i.match_length<=i.max_lazy_match&&i.lookahead>=Ge){i.match_length--;do i.strstart++,i.ins_h=Ss(i,i.ins_h,i.window[i.strstart+Ge-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart;while(--i.match_length!==0);i.strstart++}else i.strstart+=i.match_length,i.match_length=0,i.ins_h=i.window[i.strstart],i.ins_h=Ss(i,i.ins_h,i.window[i.strstart+1]);else n=ws(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++;if(n&&(wn(i,!1),i.strm.avail_out===0))return Yi}return i.insert=i.strstart{let t,n,r;for(;;){if(i.lookahead=Ge&&(i.ins_h=Ss(i,i.ins_h,i.window[i.strstart+Ge-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart),i.prev_length=i.match_length,i.prev_match=i.match_start,i.match_length=Ge-1,t!==0&&i.prev_length4096)&&(i.match_length=Ge-1)),i.prev_length>=Ge&&i.match_length<=i.prev_length){r=i.strstart+i.lookahead-Ge,n=ws(i,i.strstart-1-i.prev_match,i.prev_length-Ge),i.lookahead-=i.prev_length-1,i.prev_length-=2;do++i.strstart<=r&&(i.ins_h=Ss(i,i.ins_h,i.window[i.strstart+Ge-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart);while(--i.prev_length!==0);if(i.match_available=0,i.match_length=Ge-1,i.strstart++,n&&(wn(i,!1),i.strm.avail_out===0))return Yi}else if(i.match_available){if(n=ws(i,0,i.window[i.strstart-1]),n&&wn(i,!1),i.strstart++,i.lookahead--,i.strm.avail_out===0)return Yi}else i.match_available=1,i.strstart++,i.lookahead--}return i.match_available&&(n=ws(i,0,i.window[i.strstart-1]),i.match_available=0),i.insert=i.strstart{let t,n,r,o,s=i.window;for(;;){if(i.lookahead<=Bs){if(Ol(i),i.lookahead<=Bs&&e===vs)return Yi;if(i.lookahead===0)break}if(i.match_length=0,i.lookahead>=Ge&&i.strstart>0&&(r=i.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){o=i.strstart+Bs;do;while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&ri.lookahead&&(i.match_length=i.lookahead)}if(i.match_length>=Ge?(t=ws(i,1,i.match_length-Ge),i.lookahead-=i.match_length,i.strstart+=i.match_length,i.match_length=0):(t=ws(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++),t&&(wn(i,!1),i.strm.avail_out===0))return Yi}return i.insert=0,e===jn?(wn(i,!0),i.strm.avail_out===0?ua:Vl):i.sym_next&&(wn(i,!1),i.strm.avail_out===0)?Yi:Yl},zL=(i,e)=>{let t;for(;;){if(i.lookahead===0&&(Ol(i),i.lookahead===0)){if(e===vs)return Yi;break}if(i.match_length=0,t=ws(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++,t&&(wn(i,!1),i.strm.avail_out===0))return Yi}return i.insert=0,e===jn?(wn(i,!0),i.strm.avail_out===0?ua:Vl):i.sym_next&&(wn(i,!1),i.strm.avail_out===0)?Yi:Yl};Lc=[new Or(0,0,0,0,Fv),new Or(4,4,8,4,hI),new Or(4,5,16,8,hI),new Or(4,6,32,32,hI),new Or(4,4,16,16,kl),new Or(8,16,32,32,kl),new Or(8,16,128,128,kl),new Or(8,32,128,256,kl),new Or(32,128,258,1024,kl),new Or(32,258,258,4096,kl)],YL=i=>{i.window_size=2*i.w_size,xs(i.head),i.max_lazy_match=Lc[i.level].max_lazy,i.good_match=Lc[i.level].good_length,i.nice_match=Lc[i.level].nice_length,i.max_chain_length=Lc[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=Ge-1,i.match_available=0,i.ins_h=0};Kc=i=>{if(!i)return 1;let e=i.state;return!e||e.strm!==i||e.status!==Gl&&e.status!==FI&&e.status!==BI&&e.status!==wI&&e.status!==vI&&e.status!==SI&&e.status!==Aa&&e.status!==Fc?1:0},Lv=i=>{if(Kc(i))return ca(i,zr);i.total_in=i.total_out=0,i.data_type=SL;let e=i.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?FI:e.wrap?Gl:Aa,i.adler=e.wrap===2?0:1,e.last_flush=-2,pL(e),ui},Mv=i=>{let e=Lv(i);return e===ui&&YL(i.state),e},HL=(i,e)=>Kc(i)||i.state.wrap!==2?zr:(i.state.gzhead=e,ui),kv=(i,e,t,n,r,o)=>{if(!i)return zr;let s=1;if(e===_L&&(e=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>TL||t!==ug||n<8||n>15||e<0||e>9||o<0||o>wL||n===8&&s!==1)return ca(i,zr);n===8&&(n=9);let a=new VL;return i.state=a,a.strm=i,a.status=Gl,a.wrap=s,a.gzhead=null,a.w_bits=n,a.w_size=1<kv(i,e,ug,RL,QL,vL),KL=(i,e)=>{if(Kc(i)||e>Nw||e<0)return i?ca(i,zr):zr;let t=i.state;if(!i.output||i.avail_in!==0&&!i.input||t.status===Fc&&e!==jn)return ca(i,i.avail_out===0?cI:zr);let n=t.last_flush;if(t.last_flush=e,t.pending!==0){if(Bn(i),i.avail_out===0)return t.last_flush=-1,ui}else if(i.avail_in===0&&Ow(e)<=Ow(n)&&e!==jn)return ca(i,cI);if(t.status===Fc&&i.avail_in!==0)return ca(i,cI);if(t.status===Gl&&t.wrap===0&&(t.status=Aa),t.status===Gl){let r=ug+(t.w_bits-8<<4)<<8,o=-1;if(t.strategy>=ng||t.level<2?o=0:t.level<6?o=1:t.level===6?o=2:o=3,r|=o<<6,t.strstart!==0&&(r|=PL),r+=31-r%31,Dc(t,r),t.strstart!==0&&(Dc(t,i.adler>>>16),Dc(t,i.adler&65535)),i.adler=1,t.status=Aa,Bn(i),t.pending!==0)return t.last_flush=-1,ui}if(t.status===FI){if(i.adler=0,Je(t,31),Je(t,139),Je(t,8),t.gzhead)Je(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),Je(t,t.gzhead.time&255),Je(t,t.gzhead.time>>8&255),Je(t,t.gzhead.time>>16&255),Je(t,t.gzhead.time>>24&255),Je(t,t.level===9?2:t.strategy>=ng||t.level<2?4:0),Je(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(Je(t,t.gzhead.extra.length&255),Je(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(i.adler=ei(i.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=BI;else if(Je(t,0),Je(t,0),Je(t,0),Je(t,0),Je(t,0),Je(t,t.level===9?2:t.strategy>=ng||t.level<2?4:0),Je(t,NL),t.status=Aa,Bn(i),t.pending!==0)return t.last_flush=-1,ui}if(t.status===BI){if(t.gzhead.extra){let r=t.pending,o=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+o>t.pending_buf_size;){let a=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+a),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>r&&(i.adler=ei(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex+=a,Bn(i),t.pending!==0)return t.last_flush=-1,ui;r=0,o-=a}let s=new Uint8Array(t.gzhead.extra);t.pending_buf.set(s.subarray(t.gzindex,t.gzindex+o),t.pending),t.pending+=o,t.gzhead.hcrc&&t.pending>r&&(i.adler=ei(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex=0}t.status=wI}if(t.status===wI){if(t.gzhead.name){let r=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>r&&(i.adler=ei(i.adler,t.pending_buf,t.pending-r,r)),Bn(i),t.pending!==0)return t.last_flush=-1,ui;r=0}t.gzindexr&&(i.adler=ei(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex=0}t.status=vI}if(t.status===vI){if(t.gzhead.comment){let r=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>r&&(i.adler=ei(i.adler,t.pending_buf,t.pending-r,r)),Bn(i),t.pending!==0)return t.last_flush=-1,ui;r=0}t.gzindexr&&(i.adler=ei(i.adler,t.pending_buf,t.pending-r,r))}t.status=SI}if(t.status===SI){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(Bn(i),t.pending!==0))return t.last_flush=-1,ui;Je(t,i.adler&255),Je(t,i.adler>>8&255),i.adler=0}if(t.status=Aa,Bn(i),t.pending!==0)return t.last_flush=-1,ui}if(i.avail_in!==0||t.lookahead!==0||e!==vs&&t.status!==Fc){let r=t.level===0?Fv(t,e):t.strategy===ng?zL(t,e):t.strategy===BL?UL(t,e):Lc[t.level].func(t,e);if((r===ua||r===Vl)&&(t.status=Fc),r===Yi||r===ua)return i.avail_out===0&&(t.last_flush=-1),ui;if(r===Yl&&(e===IL?EL(t):e!==Nw&&(_I(t,0,0,!1),e===CL&&(xs(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),Bn(i),i.avail_out===0))return t.last_flush=-1,ui}return e!==jn?ui:t.wrap<=0?Gw:(t.wrap===2?(Je(t,i.adler&255),Je(t,i.adler>>8&255),Je(t,i.adler>>16&255),Je(t,i.adler>>24&255),Je(t,i.total_in&255),Je(t,i.total_in>>8&255),Je(t,i.total_in>>16&255),Je(t,i.total_in>>24&255)):(Dc(t,i.adler>>>16),Dc(t,i.adler&65535)),Bn(i),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?ui:Gw)},XL=i=>{if(Kc(i))return zr;let e=i.state.status;return i.state=null,e===Aa?ca(i,yL):ui},jL=(i,e)=>{let t=e.length;if(Kc(i))return zr;let n=i.state,r=n.wrap;if(r===2||r===1&&n.status!==Gl||n.lookahead)return zr;if(r===1&&(i.adler=zc(i.adler,e,t,0)),n.wrap=0,t>=n.w_size){r===0&&(xs(n.head),n.strstart=0,n.block_start=0,n.insert=0);let l=new Uint8Array(n.w_size);l.set(e.subarray(t-n.w_size,t),0),e=l,t=n.w_size}let o=i.avail_in,s=i.next_in,a=i.input;for(i.avail_in=t,i.next_in=0,i.input=e,Ol(n);n.lookahead>=Ge;){let l=n.strstart,A=n.lookahead-(Ge-1);do n.ins_h=Ss(n,n.ins_h,n.window[l+Ge-1]),n.prev[l&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=l,l++;while(--A);n.strstart=l,n.lookahead=Ge-1,Ol(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=Ge-1,n.match_available=0,i.next_in=s,i.input=a,i.avail_in=o,n.wrap=r,ui},WL=qL,JL=kv,$L=Mv,ZL=Lv,eM=HL,tM=KL,iM=XL,nM=jL,rM="pako deflate (from Nodeca project)",kc={deflateInit:WL,deflateInit2:JL,deflateReset:$L,deflateResetKeep:ZL,deflateSetHeader:eM,deflate:tM,deflateEnd:iM,deflateSetDictionary:nM,deflateInfo:rM},oM=(i,e)=>Object.prototype.hasOwnProperty.call(i,e),sM=function(i){let e=Array.prototype.slice.call(arguments,1);for(;e.length;){let t=e.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(let n in t)oM(t,n)&&(i[n]=t[n])}}return i},aM=i=>{let e=0;for(let n=0,r=i.length;n=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1;Yc[254]=Yc[254]=1;lM=i=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(i);let e,t,n,r,o,s=i.length,a=0;for(r=0;r>>6,e[o++]=128|t&63):t<65536?(e[o++]=224|t>>>12,e[o++]=128|t>>>6&63,e[o++]=128|t&63):(e[o++]=240|t>>>18,e[o++]=128|t>>>12&63,e[o++]=128|t>>>6&63,e[o++]=128|t&63);return e},AM=(i,e)=>{if(e<65534&&i.subarray&&Pv)return String.fromCharCode.apply(null,i.length===e?i:i.subarray(0,e));let t="";for(let n=0;n{let t=e||i.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(i.subarray(0,e));let n,r,o=new Array(t*2);for(r=0,n=0;n4){o[r++]=65533,n+=a-1;continue}for(s&=a===2?31:a===3?15:7;a>1&&n1){o[r++]=65533;continue}s<65536?o[r++]=s:(s-=65536,o[r++]=55296|s>>10&1023,o[r++]=56320|s&1023)}return AM(o,r)},hM=(i,e)=>{e=e||i.length,e>i.length&&(e=i.length);let t=e-1;for(;t>=0&&(i[t]&192)===128;)t--;return t<0||t===0?e:t+Yc[i[t]]>e?t:e},Vc={string2buf:lM,buf2string:cM,utf8border:hM};Nv=uM,Gv=Object.prototype.toString,{Z_NO_FLUSH:fM,Z_SYNC_FLUSH:gM,Z_FULL_FLUSH:dM,Z_FINISH:pM,Z_OK:cg,Z_STREAM_END:mM,Z_DEFAULT_COMPRESSION:EM,Z_DEFAULT_STRATEGY:IM,Z_DEFLATED:CM}=zl;Xc.prototype.push=function(i,e){let t=this.strm,n=this.options.chunkSize,r,o;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?pM:fM,typeof i=="string"?t.input=Vc.string2buf(i):Gv.call(i)==="[object ArrayBuffer]"?t.input=new Uint8Array(i):t.input=i,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),(o===gM||o===dM)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(r=kc.deflate(t,o),r===mM)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),r=kc.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===cg;if(t.avail_out===0){this.onData(t.output);continue}if(o>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};Xc.prototype.onData=function(i){this.chunks.push(i)};Xc.prototype.onEnd=function(i){i===cg&&(this.result=fg.flattenChunks(this.chunks)),this.chunks=[],this.err=i,this.msg=this.strm.msg};xM=Xc,BM=LI,wM=yM,vM=_M,SM=zl,TM={Deflate:xM,deflate:BM,deflateRaw:wM,gzip:vM,constants:SM},rg=16209,RM=16191,QM=function(e,t){let n,r,o,s,a,l,A,c,h,u,f,g,p,d,I,m,C,_,y,w,T,E,x,B,R=e.state;n=e.next_in,x=e.input,r=n+(e.avail_in-5),o=e.next_out,B=e.output,s=o-(t-e.avail_out),a=o+(e.avail_out-257),l=R.dmax,A=R.wsize,c=R.whave,h=R.wnext,u=R.window,f=R.hold,g=R.bits,p=R.lencode,d=R.distcode,I=(1<>>24,f>>>=_,g-=_,_=C>>>16&255,_===0)B[o++]=C&65535;else if(_&16){y=C&65535,_&=15,_&&(g<_&&(f+=x[n++]<>>=_,g-=_),g<15&&(f+=x[n++]<>>24,f>>>=_,g-=_,_=C>>>16&255,_&16){if(w=C&65535,_&=15,g<_&&(f+=x[n++]<l){e.msg="invalid distance too far back",R.mode=rg;break e}if(f>>>=_,g-=_,_=o-s,w>_){if(_=w-_,_>c&&R.sane){e.msg="invalid distance too far back",R.mode=rg;break e}if(T=0,E=u,h===0){if(T+=A-_,_2;)B[o++]=E[T++],B[o++]=E[T++],B[o++]=E[T++],y-=3;y&&(B[o++]=E[T++],y>1&&(B[o++]=E[T++]))}else{T=o-w;do B[o++]=B[T++],B[o++]=B[T++],B[o++]=B[T++],y-=3;while(y>2);y&&(B[o++]=B[T++],y>1&&(B[o++]=B[T++]))}}else if((_&64)===0){C=d[(C&65535)+(f&(1<<_)-1)];continue i}else{e.msg="invalid distance code",R.mode=rg;break e}break}}else if((_&64)===0){C=p[(C&65535)+(f&(1<<_)-1)];continue t}else if(_&32){R.mode=RM;break e}else{e.msg="invalid literal/length code",R.mode=rg;break e}break}}while(n>3,n-=y,g-=y<<3,f&=(1<{let l=a.bits,A=0,c=0,h=0,u=0,f=0,g=0,p=0,d=0,I=0,m=0,C,_,y,w,T,E=null,x,B=new Uint16Array(Pl+1),R=new Uint16Array(Pl+1),v=null,D,Q,S;for(A=0;A<=Pl;A++)B[A]=0;for(c=0;c=1&&B[u]===0;u--);if(f>u&&(f=u),u===0)return r[o++]=1<<24|64<<16|0,r[o++]=1<<24|64<<16|0,a.bits=1,0;for(h=1;h0&&(i===Yw||u!==1))return-1;for(R[1]=0,A=1;AUw||i===Vw&&I>zw)return 1;for(;;){D=A-p,s[c]+1=x?(Q=v[s[c]-x],S=E[s[c]-x]):(Q=96,S=0),C=1<>p)+_]=D<<24|Q<<16|S|0;while(_!==0);for(C=1<>=1;if(C!==0?(m&=C-1,m+=C):m=0,c++,--B[A]===0){if(A===u)break;A=e[t+s[c]]}if(A>f&&(m&w)!==y){for(p===0&&(p=f),T+=h,g=A-p,d=1<Uw||i===Vw&&I>zw)return 1;y=m&w,r[y]=f<<24|g<<16|T-o|0}}return m!==0&&(r[T+m]=A-p<<24|64<<16|0),a.bits=f,0},Pc=MM,kM=0,Ov=1,Uv=2,{Z_FINISH:Hw,Z_BLOCK:PM,Z_TREES:og,Z_OK:fa,Z_STREAM_END:NM,Z_NEED_DICT:GM,Z_STREAM_ERROR:Wn,Z_DATA_ERROR:zv,Z_MEM_ERROR:Yv,Z_BUF_ERROR:OM,Z_DEFLATED:qw}=zl,gg=16180,Kw=16181,Xw=16182,jw=16183,Ww=16184,Jw=16185,$w=16186,Zw=16187,ev=16188,tv=16189,hg=16190,vo=16191,fI=16192,iv=16193,gI=16194,nv=16195,rv=16196,ov=16197,sv=16198,sg=16199,ag=16200,av=16201,lv=16202,Av=16203,cv=16204,hv=16205,dI=16206,uv=16207,fv=16208,yt=16209,Vv=16210,Hv=16211,UM=852,zM=592,YM=15,VM=YM,gv=i=>(i>>>24&255)+(i>>>8&65280)+((i&65280)<<8)+((i&255)<<24);ga=i=>{if(!i)return 1;let e=i.state;return!e||e.strm!==i||e.modeHv?1:0},qv=i=>{if(ga(i))return Wn;let e=i.state;return i.total_in=i.total_out=e.total=0,i.msg="",e.wrap&&(i.adler=e.wrap&1),e.mode=gg,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(UM),e.distcode=e.distdyn=new Int32Array(zM),e.sane=1,e.back=-1,fa},Kv=i=>{if(ga(i))return Wn;let e=i.state;return e.wsize=0,e.whave=0,e.wnext=0,qv(i)},Xv=(i,e)=>{let t;if(ga(i))return Wn;let n=i.state;return e<0?(t=0,e=-e):(t=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?Wn:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=t,n.wbits=e,Kv(i))},jv=(i,e)=>{if(!i)return Wn;let t=new HM;i.state=t,t.strm=i,t.window=null,t.mode=gg;let n=Xv(i,e);return n!==fa&&(i.state=null),n},qM=i=>jv(i,VM),dv=!0,KM=i=>{if(dv){pI=new Int32Array(512),mI=new Int32Array(32);let e=0;for(;e<144;)i.lens[e++]=8;for(;e<256;)i.lens[e++]=9;for(;e<280;)i.lens[e++]=7;for(;e<288;)i.lens[e++]=8;for(Pc(Ov,i.lens,0,288,pI,0,i.work,{bits:9}),e=0;e<32;)i.lens[e++]=5;Pc(Uv,i.lens,0,32,mI,0,i.work,{bits:5}),dv=!1}i.lencode=pI,i.lenbits=9,i.distcode=mI,i.distbits=5},Wv=(i,e,t,n)=>{let r,o=i.state;return o.window===null&&(o.wsize=1<=o.wsize?(o.window.set(e.subarray(t-o.wsize,t),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>n&&(r=n),o.window.set(e.subarray(t-n,t-n+r),o.wnext),n-=r,n?(o.window.set(e.subarray(t-n,t),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave{let t,n,r,o,s,a,l,A,c,h,u,f,g,p,d=0,I,m,C,_,y,w,T,E,x=new Uint8Array(4),B,R,v=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ga(i)||!i.output||!i.input&&i.avail_in!==0)return Wn;t=i.state,t.mode===vo&&(t.mode=fI),s=i.next_out,r=i.output,l=i.avail_out,o=i.next_in,n=i.input,a=i.avail_in,A=t.hold,c=t.bits,h=a,u=l,E=fa;e:for(;;)switch(t.mode){case gg:if(t.wrap===0){t.mode=fI;break}for(;c<16;){if(a===0)break e;a--,A+=n[o++]<>>8&255,t.check=ei(t.check,x,2,0),A=0,c=0,t.mode=Kw;break}if(t.head&&(t.head.done=!1),!(t.wrap&1)||(((A&255)<<8)+(A>>8))%31){i.msg="incorrect header check",t.mode=yt;break}if((A&15)!==qw){i.msg="unknown compression method",t.mode=yt;break}if(A>>>=4,c-=4,T=(A&15)+8,t.wbits===0&&(t.wbits=T),T>15||T>t.wbits){i.msg="invalid window size",t.mode=yt;break}t.dmax=1<>8&1),t.flags&512&&t.wrap&4&&(x[0]=A&255,x[1]=A>>>8&255,t.check=ei(t.check,x,2,0)),A=0,c=0,t.mode=Xw;case Xw:for(;c<32;){if(a===0)break e;a--,A+=n[o++]<>>8&255,x[2]=A>>>16&255,x[3]=A>>>24&255,t.check=ei(t.check,x,4,0)),A=0,c=0,t.mode=jw;case jw:for(;c<16;){if(a===0)break e;a--,A+=n[o++]<>8),t.flags&512&&t.wrap&4&&(x[0]=A&255,x[1]=A>>>8&255,t.check=ei(t.check,x,2,0)),A=0,c=0,t.mode=Ww;case Ww:if(t.flags&1024){for(;c<16;){if(a===0)break e;a--,A+=n[o++]<>>8&255,t.check=ei(t.check,x,2,0)),A=0,c=0}else t.head&&(t.head.extra=null);t.mode=Jw;case Jw:if(t.flags&1024&&(f=t.length,f>a&&(f=a),f&&(t.head&&(T=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(n.subarray(o,o+f),T)),t.flags&512&&t.wrap&4&&(t.check=ei(t.check,n,f,o)),a-=f,o+=f,t.length-=f),t.length))break e;t.length=0,t.mode=$w;case $w:if(t.flags&2048){if(a===0)break e;f=0;do T=n[o+f++],t.head&&T&&t.length<65536&&(t.head.name+=String.fromCharCode(T));while(T&&f>9&1,t.head.done=!0),i.adler=t.check=0,t.mode=vo;break;case tv:for(;c<32;){if(a===0)break e;a--,A+=n[o++]<>>=c&7,c-=c&7,t.mode=dI;break}for(;c<3;){if(a===0)break e;a--,A+=n[o++]<>>=1,c-=1,A&3){case 0:t.mode=iv;break;case 1:if(KM(t),t.mode=sg,e===og){A>>>=2,c-=2;break e}break;case 2:t.mode=rv;break;case 3:i.msg="invalid block type",t.mode=yt}A>>>=2,c-=2;break;case iv:for(A>>>=c&7,c-=c&7;c<32;){if(a===0)break e;a--,A+=n[o++]<>>16^65535)){i.msg="invalid stored block lengths",t.mode=yt;break}if(t.length=A&65535,A=0,c=0,t.mode=gI,e===og)break e;case gI:t.mode=nv;case nv:if(f=t.length,f){if(f>a&&(f=a),f>l&&(f=l),f===0)break e;r.set(n.subarray(o,o+f),s),a-=f,o+=f,l-=f,s+=f,t.length-=f;break}t.mode=vo;break;case rv:for(;c<14;){if(a===0)break e;a--,A+=n[o++]<>>=5,c-=5,t.ndist=(A&31)+1,A>>>=5,c-=5,t.ncode=(A&15)+4,A>>>=4,c-=4,t.nlen>286||t.ndist>30){i.msg="too many length or distance symbols",t.mode=yt;break}t.have=0,t.mode=ov;case ov:for(;t.have>>=3,c-=3}for(;t.have<19;)t.lens[v[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,B={bits:t.lenbits},E=Pc(kM,t.lens,0,19,t.lencode,0,t.work,B),t.lenbits=B.bits,E){i.msg="invalid code lengths set",t.mode=yt;break}t.have=0,t.mode=sv;case sv:for(;t.have>>24,m=d>>>16&255,C=d&65535,!(I<=c);){if(a===0)break e;a--,A+=n[o++]<>>=I,c-=I,t.lens[t.have++]=C;else{if(C===16){for(R=I+2;c>>=I,c-=I,t.have===0){i.msg="invalid bit length repeat",t.mode=yt;break}T=t.lens[t.have-1],f=3+(A&3),A>>>=2,c-=2}else if(C===17){for(R=I+3;c>>=I,c-=I,T=0,f=3+(A&7),A>>>=3,c-=3}else{for(R=I+7;c>>=I,c-=I,T=0,f=11+(A&127),A>>>=7,c-=7}if(t.have+f>t.nlen+t.ndist){i.msg="invalid bit length repeat",t.mode=yt;break}for(;f--;)t.lens[t.have++]=T}}if(t.mode===yt)break;if(t.lens[256]===0){i.msg="invalid code -- missing end-of-block",t.mode=yt;break}if(t.lenbits=9,B={bits:t.lenbits},E=Pc(Ov,t.lens,0,t.nlen,t.lencode,0,t.work,B),t.lenbits=B.bits,E){i.msg="invalid literal/lengths set",t.mode=yt;break}if(t.distbits=6,t.distcode=t.distdyn,B={bits:t.distbits},E=Pc(Uv,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,B),t.distbits=B.bits,E){i.msg="invalid distances set",t.mode=yt;break}if(t.mode=sg,e===og)break e;case sg:t.mode=ag;case ag:if(a>=6&&l>=258){i.next_out=s,i.avail_out=l,i.next_in=o,i.avail_in=a,t.hold=A,t.bits=c,QM(i,u),s=i.next_out,r=i.output,l=i.avail_out,o=i.next_in,n=i.input,a=i.avail_in,A=t.hold,c=t.bits,t.mode===vo&&(t.back=-1);break}for(t.back=0;d=t.lencode[A&(1<>>24,m=d>>>16&255,C=d&65535,!(I<=c);){if(a===0)break e;a--,A+=n[o++]<>_)],I=d>>>24,m=d>>>16&255,C=d&65535,!(_+I<=c);){if(a===0)break e;a--,A+=n[o++]<>>=_,c-=_,t.back+=_}if(A>>>=I,c-=I,t.back+=I,t.length=C,m===0){t.mode=hv;break}if(m&32){t.back=-1,t.mode=vo;break}if(m&64){i.msg="invalid literal/length code",t.mode=yt;break}t.extra=m&15,t.mode=av;case av:if(t.extra){for(R=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=lv;case lv:for(;d=t.distcode[A&(1<>>24,m=d>>>16&255,C=d&65535,!(I<=c);){if(a===0)break e;a--,A+=n[o++]<>_)],I=d>>>24,m=d>>>16&255,C=d&65535,!(_+I<=c);){if(a===0)break e;a--,A+=n[o++]<>>=_,c-=_,t.back+=_}if(A>>>=I,c-=I,t.back+=I,m&64){i.msg="invalid distance code",t.mode=yt;break}t.offset=C,t.extra=m&15,t.mode=Av;case Av:if(t.extra){for(R=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){i.msg="invalid distance too far back",t.mode=yt;break}t.mode=cv;case cv:if(l===0)break e;if(f=u-l,t.offset>f){if(f=t.offset-f,f>t.whave&&t.sane){i.msg="invalid distance too far back",t.mode=yt;break}f>t.wnext?(f-=t.wnext,g=t.wsize-f):g=t.wnext-f,f>t.length&&(f=t.length),p=t.window}else p=r,g=s-t.offset,f=t.length;f>l&&(f=l),l-=f,t.length-=f;do r[s++]=p[g++];while(--f);t.length===0&&(t.mode=ag);break;case hv:if(l===0)break e;r[s++]=t.length,l--,t.mode=ag;break;case dI:if(t.wrap){for(;c<32;){if(a===0)break e;a--,A|=n[o++]<{if(ga(i))return Wn;let e=i.state;return e.window&&(e.window=null),i.state=null,fa},WM=(i,e)=>{if(ga(i))return Wn;let t=i.state;return(t.wrap&2)===0?Wn:(t.head=e,e.done=!1,fa)},JM=(i,e)=>{let t=e.length,n,r,o;return ga(i)||(n=i.state,n.wrap!==0&&n.mode!==hg)?Wn:n.mode===hg&&(r=1,r=zc(r,e,t,0),r!==n.check)?zv:(o=Wv(i,e,t,t),o?(n.mode=Vv,Yv):(n.havedict=1,fa))},$M=Kv,ZM=Xv,ek=qv,tk=qM,ik=jv,nk=XM,rk=jM,ok=WM,sk=JM,ak="pako inflate (from Nodeca project)",To={inflateReset:$M,inflateReset2:ZM,inflateResetKeep:ek,inflateInit:tk,inflateInit2:ik,inflate:nk,inflateEnd:rk,inflateGetHeader:ok,inflateSetDictionary:sk,inflateInfo:ak};Ak=lk,Jv=Object.prototype.toString,{Z_NO_FLUSH:ck,Z_FINISH:hk,Z_OK:Hc,Z_STREAM_END:EI,Z_NEED_DICT:II,Z_STREAM_ERROR:uk,Z_DATA_ERROR:pv,Z_MEM_ERROR:fk}=zl;jc.prototype.push=function(i,e){let t=this.strm,n=this.options.chunkSize,r=this.options.dictionary,o,s,a;if(this.ended)return!1;for(e===~~e?s=e:s=e===!0?hk:ck,Jv.call(i)==="[object ArrayBuffer]"?t.input=new Uint8Array(i):t.input=i,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),o=To.inflate(t,s),o===II&&r&&(o=To.inflateSetDictionary(t,r),o===Hc?o=To.inflate(t,s):o===pv&&(o=II));t.avail_in>0&&o===EI&&t.state.wrap>0&&i[t.next_in]!==0;)To.inflateReset(t),o=To.inflate(t,s);switch(o){case uk:case pv:case II:case fk:return this.onEnd(o),this.ended=!0,!1}if(a=t.avail_out,t.next_out&&(t.avail_out===0||o===EI))if(this.options.to==="string"){let l=Vc.utf8border(t.output,t.next_out),A=t.next_out-l,c=Vc.buf2string(t.output,l);t.next_out=A,t.avail_out=n-A,A&&t.output.set(t.output.subarray(l,l+A),0),this.onData(c)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(o===Hc&&a===0)){if(o===EI)return o=To.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};jc.prototype.onData=function(i){this.chunks.push(i)};jc.prototype.onEnd=function(i){i===Hc&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=fg.flattenChunks(this.chunks)),this.chunks=[],this.err=i,this.msg=this.strm.msg};dk=jc,pk=MI,mk=gk,Ek=MI,Ik=zl,Ck={Inflate:dk,inflate:pk,inflateRaw:mk,ungzip:Ek,constants:Ik},{Deflate:Hre,deflate:qre,deflateRaw:Kre,gzip:Xre}=TM,{Inflate:jre,inflate:yk,inflateRaw:Wre,ungzip:Jre}=Ck,dg=yk});var $v={};Zr($v,{default:()=>pg});var pg,Zv=Xi(()=>{kI();_s();pg=class extends hi{decodeBlock(e){return dg(new Uint8Array(e)).buffer}}});var eS={};Zr(eS,{default:()=>mg});var mg,tS=Xi(()=>{_s();mg=class extends hi{decodeBlock(e){let t=new DataView(e),n=[];for(let r=0;r{(function(){var i=function(){var r={};r.defaultNoDataValue=-34027999387901484e22,r.decode=function(c,h){h=h||{};var u=h.encodedMaskData||h.encodedMaskData===null,f=l(c,h.inputOffset||0,u),g=h.noDataValue!==null?h.noDataValue:r.defaultNoDataValue,p=o(f,h.pixelType||Float32Array,h.encodedMaskData,g,h.returnMask),d={width:f.width,height:f.height,pixelData:p.resultPixels,minValue:p.minValue,maxValue:f.pixels.maxValue,noDataValue:g};return p.resultMask&&(d.maskData=p.resultMask),h.returnEncodedMask&&f.mask&&(d.encodedMaskData=f.mask.bitset?f.mask.bitset:null),h.returnFileInfo&&(d.fileInfo=s(f),h.computeUsedBitDepths&&(d.fileInfo.bitDepths=a(f))),d};var o=function(c,h,u,f,g){var p=0,d=c.pixels.numBlocksX,I=c.pixels.numBlocksY,m=Math.floor(c.width/d),C=Math.floor(c.height/I),_=2*c.maxZError,y=Number.MAX_VALUE,w;u=u||(c.mask?c.mask.bitset:null);var T,E;T=new h(c.width*c.height),g&&u&&(E=new Uint8Array(c.width*c.height));for(var x=new Float32Array(m*C),B,R,v=0;v<=I;v++){var D=v!==I?C:c.height%I;if(D!==0)for(var Q=0;Q<=d;Q++){var S=Q!==d?m:c.width%d;if(S!==0){var b=v*c.width*C+Q*m,F=c.width-S,M=c.pixels.blocks[p],k,P,U;M.encoding<2?(M.encoding===0?k=M.rawData:(A(M.stuffedData,M.bitsPerPixel,M.numValidPixels,M.offset,_,x,c.pixels.maxValue),k=x),P=0):M.encoding===2?U=0:U=M.offset;var N;if(u)for(R=0;R>3],N<<=b&7),B=0;B>3]),N&128?(E&&(E[b]=1),w=M.encoding<2?k[P++]:U,y=y>w?w:y,T[b++]=w):(E&&(E[b]=0),T[b++]=f),N<<=1;b+=F}else if(M.encoding<2)for(R=0;Rw?w:y,T[b++]=w;b+=F}else for(y=y>U?U:y,R=0;R0){var d=new Uint8Array(Math.ceil(f.width*f.height/8));p=new DataView(c,h,f.mask.numBytes);var I=p.getInt16(0,!0),m=2,C=0;do{if(I>0)for(;I--;)d[C++]=p.getUint8(m++);else{var _=p.getUint8(m++);for(I=-I;I--;)d[C++]=_}I=p.getInt16(m,!0),m+=2}while(m0?1:0),E=w+(f.height%w>0?1:0);f.pixels.blocks=new Array(T*E);for(var x=0,B=0;B3)throw"Invalid block encoding ("+Q.encoding+")";if(Q.encoding===2){h++;continue}if(S!==0&&S!==2){if(S>>=6,Q.offsetType=S,S===2)Q.offset=p.getInt8(1),v++;else if(S===1)Q.offset=p.getInt16(1,!0),v+=2;else if(S===0)Q.offset=p.getFloat32(1,!0),v+=4;else throw"Invalid block offset type";if(Q.encoding===1)if(S=p.getUint8(v),v++,Q.bitsPerPixel=S&63,S>>=6,Q.numValidPixelsType=S,S===2)Q.numValidPixels=p.getUint8(v),v++;else if(S===1)Q.numValidPixels=p.getUint16(v,!0),v+=2;else if(S===0)Q.numValidPixels=p.getUint32(v,!0),v+=4;else throw"Invalid valid pixel count type"}if(h+=v,Q.encoding!==3){var b,F;if(Q.encoding===0){var M=(f.pixels.numBytes-1)/4;if(M!==Math.floor(M))throw"uncompressed block has invalid length";b=new ArrayBuffer(M*4),F=new Uint8Array(b),F.set(new Uint8Array(c,h,M*4));var k=new Float32Array(b);Q.rawData=k,h+=M*4}else if(Q.encoding===1){var P=Math.ceil(Q.numValidPixels*Q.bitsPerPixel/8),U=Math.ceil(P/4);b=new ArrayBuffer(U*4),F=new Uint8Array(b),F.set(new Uint8Array(c,h,P)),Q.stuffedData=new Uint32Array(b),h+=P}}}return f.eofOffset=h,f},A=function(c,h,u,f,g,p,d){var I=(1<=h)y=w>>>_-h&I,_-=h;else{var x=h-_;y=(w&I)<>>_}p[C]=y=c?(_=y>>>C-c&d,C-=c):(w=c-C,_=(y&d)<>>C),A[m]=u[_];else for(T=Math.ceil((p-f)/g),m=0;m=c?(_=y>>>C-c&d,C-=c):(w=c-C,_=(y&d)<>>C),A[m]=_=A?(C=_>>>m-A&g,m-=A):(I=A-m,C=(_&g)<>>m),y[d]=C=c?(y=w>>>_&d,C-=c,_+=c):(T=c-C,y=w>>>_&d,w=l[I++],C=32-T,y|=(w&(1<=c?(y=w>>>_&d,C-=c,_+=c):(T=c-C,y=w>>>_&d,w=l[I++],C=32-T,y|=(w&(1<=A?(C=y>>>_&g,m-=A,_+=A):(I=A-m,C=y>>>_&g,y=l[p++],m=32-I,C|=(y&(1<=c?(d=I>>>p-c&u,p-=c):(m=c-p,d=(I&u)<>>p),A[g]=d;return A},originalUnstuff2:function(l,A,c,h){var u=(1<=c?(I=m>>>d&u,p-=c,d+=c):(C=c-p,I=m>>>d&u,m=l[f++],p=32-C,I|=(m&(1<=359?359:u;u-=g;do A+=l[f++]<<8,c+=A+=l[f++];while(--g);A=(A&65535)+(A>>>16),c=(c&65535)+(c>>>16)}return h&1&&(c+=A+=l[f]<<8),A=(A&65535)+(A>>>16),c=(c&65535)+(c>>>16),(c<<16|A)>>>0},readHeaderInfo:function(l,A){var c=A.ptr,h=new Uint8Array(l,c,6),u={};if(u.fileIdentifierString=String.fromCharCode.apply(null,h),u.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+u.fileIdentifierString;c+=6;var f=new DataView(l,c,8),g=f.getInt32(0,!0);u.fileVersion=g,c+=4,g>=3&&(u.checksum=f.getUint32(4,!0),c+=4),f=new DataView(l,c,12),u.height=f.getUint32(0,!0),u.width=f.getUint32(4,!0),c+=8,g>=4?(u.numDims=f.getUint32(8,!0),c+=4):u.numDims=1,f=new DataView(l,c,40),u.numValidPixel=f.getUint32(0,!0),u.microBlockSize=f.getInt32(4,!0),u.blobSize=f.getInt32(8,!0),u.imageType=f.getInt32(12,!0),u.maxZError=f.getFloat64(16,!0),u.zMin=f.getFloat64(24,!0),u.zMax=f.getFloat64(32,!0),c+=40,A.headerInfo=u,A.ptr=c;var p,d;if(g>=3&&(d=g>=4?52:48,p=this.computeChecksumFletcher32(new Uint8Array(l,c-d,u.blobSize-14)),p!==u.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(l,A){var c=A.headerInfo,h=this.getDataTypeArray(c.imageType),u=c.numDims*this.getDataTypeSize(c.imageType),f=this.readSubArray(l,A.ptr,h,u),g=this.readSubArray(l,A.ptr+u,h,u);A.ptr+=2*u;var p,d=!0;for(p=0;p0){d=new Uint8Array(Math.ceil(u/8)),g=new DataView(l,c,p.numBytes);var m=g.getInt16(0,!0),C=2,_=0,y=0;do{if(m>0)for(;m--;)d[_++]=g.getUint8(C++);else for(y=g.getUint8(C++),m=-m;m--;)d[_++]=y;m=g.getInt16(C,!0),C+=2}while(C>3],w<<=T&7):w=d[T>>3],w&128&&(I[T]=1);A.pixels.resultMask=I,p.bitset=d,c+=p.numBytes}return A.ptr=c,A.mask=p,!0},readDataOneSweep:function(l,A,c,h){var u=A.ptr,f=A.headerInfo,g=f.numDims,p=f.width*f.height,d=f.imageType,I=f.numValidPixel*o.getDataTypeSize(d)*g,m,C=A.pixels.resultMask;if(c===Uint8Array)m=new Uint8Array(l,u,I);else{var _=new ArrayBuffer(I),y=new Uint8Array(_);y.set(new Uint8Array(l,u,I)),m=new c(_)}if(m.length===p*g)h?A.pixels.resultPixels=o.swapDimensionOrder(m,p,g,c,!0):A.pixels.resultPixels=m;else{A.pixels.resultPixels=new c(p*g);var w=0,T=0,E=0,x=0;if(g>1){if(h){for(T=0;T=p)return!1;var d=new Uint32Array(p-g);o.decodeBits(l,A,d);var I=[],m,C,_,y;for(m=g;m0&&(I[C].second=v<>>32-y,32-R>=y?(R+=y,R===32&&(R=0,D++,v=B[D])):(R+=y-32,D++,v=B[D],I[C].second|=v>>>32-R));var Q=0,S=0,b=new s;for(m=0;m=c?S=c:S=Q;var F=[],M,k,P,U,N,j;for(m=g;m0)if(M=[y,C],y<=S)for(k=I[C].second<=0;U--)N=k>>>U&1,N?(j.right||(j.right=new s),j=j.right):(j.left||(j.left=new s),j=j.left),U===0&&!j.val&&(j.val=M[1]);return{decodeLut:F,numBitsLUTQick:S,numBitsLUT:Q,tree:b,stuffedData:B,srcPtr:D,bitPos:R}},readHuffman:function(l,A,c,h){var u=A.headerInfo,f=u.numDims,g=A.headerInfo.height,p=A.headerInfo.width,d=p*g,I=this.readHuffmanTree(l,A),m=I.decodeLut,C=I.tree,_=I.stuffedData,y=I.srcPtr,w=I.bitPos,T=I.numBitsLUTQick,E=I.numBitsLUT,x=A.headerInfo.imageType===0?128:0,B,R,v,D=A.pixels.resultMask,Q,S,b,F,M,k,P,U=0;w>0&&(y++,w=0);var N=_[y],j=A.encodeMode===1,X=new c(d*f),z=X,q;if(f<2||j){for(q=0;q1&&(z=new c(X.buffer,d*q,d),U=0),A.headerInfo.numValidPixel===p*g)for(k=0,F=0;F>>32-T,S=Q,32-w>>64-w-T,S=Q),m[S])R=m[S][1],w+=m[S][0];else for(Q=N<>>32-E,S=Q,32-w>>64-w-E,S=Q),B=C,P=0;P>>E-P-1&1,B=b?B.right:B.left,!(B.left||B.right)){R=B.val,w=w+P+1;break}w>=32&&(w-=32,y++,N=_[y]),v=R-x,j?(M>0?v+=U:F>0?v+=z[k-p]:v+=U,v&=255,z[k]=v,U=v):z[k]=v}else for(k=0,F=0;F>>32-T,S=Q,32-w>>64-w-T,S=Q),m[S])R=m[S][1],w+=m[S][0];else for(Q=N<>>32-E,S=Q,32-w>>64-w-E,S=Q),B=C,P=0;P>>E-P-1&1,B=b?B.right:B.left,!(B.left||B.right)){R=B.val,w=w+P+1;break}w>=32&&(w-=32,y++,N=_[y]),v=R-x,j?(M>0&&D[k-1]?v+=U:F>0&&D[k-p]?v+=z[k-p]:v+=U,v&=255,z[k]=v,U=v):z[k]=v}}else for(k=0,F=0;F>>32-T,S=Q,32-w>>64-w-T,S=Q),m[S])R=m[S][1],w+=m[S][0];else for(Q=N<>>32-E,S=Q,32-w>>64-w-E,S=Q),B=C,P=0;P>>E-P-1&1,B=b?B.right:B.left,!(B.left||B.right)){R=B.val,w=w+P+1;break}w>=32&&(w-=32,y++,N=_[y]),v=R-x,z[k]=v}A.ptr=A.ptr+(y+1)*4+(w>0?4:0),A.pixels.resultPixels=X,f>1&&!h&&(A.pixels.resultPixels=o.swapDimensionOrder(X,d,f,c))},decodeBits:function(l,A,c,h,u){{var f=A.headerInfo,g=f.fileVersion,p=0,d=l.byteLength-A.ptr>=5?5:l.byteLength-A.ptr,I=new DataView(l,A.ptr,d),m=I.getUint8(0);p++;var C=m>>6,_=C===0?4:3-C,y=(m&32)>0,w=m&31,T=0;if(_===1)T=I.getUint8(p),p++;else if(_===2)T=I.getUint16(p,!0),p+=2;else if(_===4)T=I.getUint32(p,!0),p+=4;else throw"Invalid valid pixel count type";var E=2*f.maxZError,x,B,R,v,D,Q,S,b,F,M,k=f.numDims>1?f.maxValues[u]:f.zMax;if(y){for(A.counter.lut++,b=I.getUint8(p),F=w,p++,v=Math.ceil((b-1)*w/8),D=Math.ceil(v/4),B=new ArrayBuffer(D*4),R=new Uint8Array(B),A.ptr+=p,R.set(new Uint8Array(l,A.ptr,v)),S=new Uint32Array(B),A.ptr+=v,M=0;b-1>>>M;)M++;v=Math.ceil(T*M/8),D=Math.ceil(v/4),B=new ArrayBuffer(D*4),R=new Uint8Array(B),R.set(new Uint8Array(l,A.ptr,v)),x=new Uint32Array(B),A.ptr+=v,g>=3?Q=r.unstuffLUT2(S,w,b-1,h,E,k):Q=r.unstuffLUT(S,w,b-1,h,E,k),g>=3?r.unstuff2(x,c,M,T,Q):r.unstuff(x,c,M,T,Q)}else A.counter.bitstuffer++,M=w,A.ptr+=p,M>0&&(v=Math.ceil(T*M/8),D=Math.ceil(v/4),B=new ArrayBuffer(D*4),R=new Uint8Array(B),R.set(new Uint8Array(l,A.ptr,v)),x=new Uint32Array(B),A.ptr+=v,g>=3?h==null?r.originalUnstuff2(x,c,M,T):r.unstuff2(x,c,M,T,!1,h,E,k):h==null?r.originalUnstuff(x,c,M,T):r.unstuff(x,c,M,T,!1,h,E,k))}},readTiles:function(l,A,c,h){var u=A.headerInfo,f=u.width,g=u.height,p=f*g,d=u.microBlockSize,I=u.imageType,m=o.getDataTypeSize(I),C=Math.ceil(f/d),_=Math.ceil(g/d);A.pixels.numBlocksY=_,A.pixels.numBlocksX=C,A.pixels.ptr=0;var y=0,w=0,T=0,E=0,x=0,B=0,R=0,v=0,D=0,Q=0,S=0,b=0,F=0,M=0,k=0,P=0,U,N,j,X,z,q,Z=new c(d*d),ge=g%d||d,me=f%d||d,de,ve,Ve=u.numDims,Me,Se=A.pixels.resultMask,Ae=A.pixels.resultPixels,ri=u.fileVersion,gn=ri>=5?14:15,Yt,or=u.zMax,$t;for(T=0;T<_;T++)for(x=T!==_-1?d:ge,E=0;E1?($t=Ae,S=T*f*d+E*d,Ae=new c(A.pixels.resultPixels.buffer,p*Me*m,p),or=u.maxValues[Me]):$t=null,R=l.byteLength-A.ptr,U=new DataView(l,A.ptr,Math.min(10,R)),N={},P=0,v=U.getUint8(0),P++,Yt=u.fileVersion>=5?v&4:0,D=v>>6&255,Q=v>>2&gn,Q!==(E*d>>3&gn)||Yt&&Me===0)throw"integrity issue";if(q=v&3,q>3)throw A.ptr+=P,"Invalid block encoding ("+q+")";if(q===2){if(Yt)if(Se)for(y=0;y1&&!h&&(A.pixels.resultPixels=o.swapDimensionOrder(A.pixels.resultPixels,p,Ve,c))},formatFileInfo:function(l){return{fileIdentifierString:l.headerInfo.fileIdentifierString,fileVersion:l.headerInfo.fileVersion,imageType:l.headerInfo.imageType,height:l.headerInfo.height,width:l.headerInfo.width,numValidPixel:l.headerInfo.numValidPixel,microBlockSize:l.headerInfo.microBlockSize,blobSize:l.headerInfo.blobSize,maxZError:l.headerInfo.maxZError,pixelType:o.getPixelType(l.headerInfo.imageType),eofOffset:l.eofOffset,mask:l.mask?{numBytes:l.mask.numBytes}:null,pixels:{numBlocksX:l.pixels.numBlocksX,numBlocksY:l.pixels.numBlocksY,maxValue:l.headerInfo.zMax,minValue:l.headerInfo.zMin,noDataValue:l.noDataValue}}},constructConstantSurface:function(l,A){var c=l.headerInfo.zMax,h=l.headerInfo.zMin,u=l.headerInfo.maxValues,f=l.headerInfo.numDims,g=l.headerInfo.height*l.headerInfo.width,p=0,d=0,I=0,m=l.pixels.resultMask,C=l.pixels.resultPixels;if(m)if(f>1){if(A)for(p=0;p1&&h!==c)if(A)for(p=0;p=-128&&A<=127;break;case 1:c=A>=0&&A<=255;break;case 2:c=A>=-32768&&A<=32767;break;case 3:c=A>=0&&A<=65536;break;case 4:c=A>=-2147483648&&A<=2147483647;break;case 5:c=A>=0&&A<=4294967296;break;case 6:c=A>=-34027999387901484e22&&A<=34027999387901484e22;break;case 7:c=A>=-17976931348623157e292&&A<=17976931348623157e292;break;default:c=!1}return c},getDataTypeSize:function(l){var A=0;switch(l){case 0:case 1:A=1;break;case 2:case 3:A=2;break;case 4:case 5:case 6:A=4;break;case 7:A=8;break;default:A=l}return A},getDataTypeUsed:function(l,A){var c=l;switch(l){case 2:case 4:c=l-A;break;case 3:case 5:c=l-2*A;break;case 6:A===0?c=l:A===1?c=2:c=1;break;case 7:A===0?c=l:c=l-2*A+1;break;default:c=l;break}return c},getOnePixel:function(l,A,c,h){var u=0;switch(c){case 0:u=h.getInt8(A);break;case 1:u=h.getUint8(A);break;case 2:u=h.getInt16(A,!0);break;case 3:u=h.getUint16(A,!0);break;case 4:u=h.getInt32(A,!0);break;case 5:u=h.getUInt32(A,!0);break;case 6:u=h.getFloat32(A,!0);break;case 7:u=h.getFloat64(A,!0);break;default:throw"the decoder does not understand this pixel type"}return u},swapDimensionOrder:function(l,A,c,h,u){var f=0,g=0,p=0,d=0,I=l;if(c>1)if(I=new h(A*c),u)for(f=0;f5)throw"unsupported lerc version 2."+g;o.readMask(l,u),f.numValidPixel!==f.width*f.height&&!u.pixels.resultMask&&(u.pixels.resultMask=A.maskData);var d=f.width*f.height;u.pixels.resultPixels=new p(d*f.numDims),u.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var I=!A.returnPixelInterleavedDims;if(f.numValidPixel!==0)if(f.zMax===f.zMin)o.constructConstantSurface(u,I);else if(g>=4&&o.checkMinMaxRanges(l,u))o.constructConstantSurface(u,I);else{var m=new DataView(l,u.ptr,2),C=m.getUint8(0);if(u.ptr++,C)o.readDataOneSweep(l,u,p,I);else if(g>1&&f.imageType<=1&&Math.abs(f.maxZError-.5)<1e-5){var _=m.getUint8(1);if(u.ptr++,u.encodeMode=_,_>2||g<4&&_>1)throw"Invalid Huffman flag "+_;_?o.readHuffman(l,u,p,I):o.readTiles(l,u,p,I)}else o.readTiles(l,u,p,I)}u.eofOffset=u.ptr;var y;A.inputOffset?(y=u.headerInfo.blobSize+A.inputOffset-u.ptr,Math.abs(y)>=1&&(u.eofOffset=A.inputOffset+u.headerInfo.blobSize)):(y=u.headerInfo.blobSize-u.ptr,Math.abs(y)>=1&&(u.eofOffset=u.headerInfo.blobSize));var w={width:f.width,height:f.height,pixelData:u.pixels.resultPixels,minValue:f.zMin,maxValue:f.zMax,validPixelCount:f.numValidPixel,dimCount:f.numDims,dimStats:{minValues:f.minValues,maxValues:f.maxValues},maskData:u.pixels.resultMask};if(u.pixels.resultMask&&o.isValidPixelValue(f.imageType,c)){var T=u.pixels.resultMask;for(h=0;h1&&(d&&g.push(d),C.fileInfo.mask&&C.fileInfo.mask.numBytes>0&&m++),h++,I.pixels.push(C.pixelData),I.statistics.push({minValue:C.minValue,maxValue:C.maxValue,noDataValue:C.noDataValue,dimStats:C.dimStats})}var _,y,w;if(c>1&&m>1){for(w=I.width*I.height,I.bandMasks=g,d=new Uint8Array(w),d.set(g[0]),_=1;_{PI={env:{emscripten_notify_memory_growth:function(i){NI=new Uint8Array(Ro.exports.memory.buffer)}}},Ig=class{init(){return Wc||(typeof fetch<"u"?Wc=fetch("data:application/wasm;base64,"+nS).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,PI)).then(this._init):Wc=WebAssembly.instantiate(Buffer.from(nS,"base64"),PI).then(this._init),Wc)}_init(e){Ro=e.instance,PI.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!Ro)throw new Error("ZSTDDecoder: Await .init() before decoding.");let n=e.byteLength,r=Ro.exports.malloc(n);NI.set(e,r),t=t||Number(Ro.exports.ZSTD_findDecompressedSize(r,n));let o=Ro.exports.malloc(t),s=Ro.exports.ZSTD_decompress(o,t,r,n),a=NI.slice(o,o+s);return Ro.exports.free(r),Ro.exports.free(o),a}},nS="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEEdCAAbiECCyAAQQh2IgEgAkEYbCIAQYwIaigCAGwgAEGICGooAgBqIgJBA3YgAmogAEGACGooAgAgAEGECGooAgAgAWxqSQs3ACAAIAMgBCAFQYAQEDMiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQMgVBuH8LC78DAQN/IwBBIGsiBSQAIAVBCGogAiADEAYiAhADRQRAIAAgAWoiB0F9aiEGIAUgBBAOIARBBGohAiAFLQACIQMDQEEAIAAgBkkgBUEIahAEGwRAIAAgAiAFQQhqIAMQAkECdGoiBC8BADsAACAFQQhqIAQtAAIQASAAIAQtAANqIgQgAiAFQQhqIAMQAkECdGoiAC8BADsAACAFQQhqIAAtAAIQASAEIAAtAANqIQAMAQUgB0F+aiEEA0AgBUEIahAEIAAgBEtyRQRAIAAgAiAFQQhqIAMQAkECdGoiBi8BADsAACAFQQhqIAYtAAIQASAAIAYtAANqIQAMAQsLA0AgACAES0UEQCAAIAIgBUEIaiADEAJBAnRqIgYvAQA7AAAgBUEIaiAGLQACEAEgACAGLQADaiEADAELCwJAIAAgB08NACAAIAIgBUEIaiADEAIiA0ECdGoiAC0AADoAACAALQADQQFGBEAgBUEIaiAALQACEAEMAQsgBSgCDEEfSw0AIAVBCGogAiADQQJ0ai0AAhABIAUoAgxBIUkNACAFQSA2AgwLIAFBbCAFQQhqEAobIQILCwsgBUEgaiQAIAILkgIBBH8jAEFAaiIJJAAgCSADQTQQCyEDAkAgBEECSA0AIAMgBEECdGooAgAhCSADQTxqIAgQIyADQQE6AD8gAyACOgA+QQAhBCADKAI8IQoDQCAEIAlGDQEgACAEQQJ0aiAKNgEAIARBAWohBAwAAAsAC0EAIQkDQCAGIAlGRQRAIAMgBSAJQQF0aiIKLQABIgtBAnRqIgwoAgAhBCADQTxqIAotAABBCHQgCGpB//8DcRAjIANBAjoAPyADIAcgC2siCiACajoAPiAEQQEgASAKa3RqIQogAygCPCELA0AgACAEQQJ0aiALNgEAIARBAWoiBCAKSQ0ACyAMIAo2AgAgCUEBaiEJDAELCyADQUBrJAALowIBCX8jAEHQAGsiCSQAIAlBEGogBUE0EAsaIAcgBmshDyAHIAFrIRADQAJAIAMgCkcEQEEBIAEgByACIApBAXRqIgYtAAEiDGsiCGsiC3QhDSAGLQAAIQ4gCUEQaiAMQQJ0aiIMKAIAIQYgCyAPTwRAIAAgBkECdGogCyAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QYyAGIA1qIQgMAgsgCUEMaiAOECMgCUEBOgAPIAkgCDoADiAGIA1qIQggCSgCDCELA0AgBiAITw0CIAAgBkECdGogCzYBACAGQQFqIQYMAAALAAsgCUHQAGokAA8LIAwgCDYCACAKQQFqIQoMAAALAAs0ACAAIAMgBCAFEDYiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQNAVBuH8LCyMAIAA/AEEQdGtB//8DakEQdkAAQX9GBEBBAA8LQQAQAEEBCzsBAX8gAgRAA0AgACABIAJBgCAgAkGAIEkbIgMQCyEAIAFBgCBqIQEgAEGAIGohACACIANrIgINAAsLCwYAIAAQAwsLqBUJAEGICAsNAQAAAAEAAAACAAAAAgBBoAgLswYBAAAAAQAAAAIAAAACAAAAJgAAAIIAAAAhBQAASgAAAGcIAAAmAAAAwAEAAIAAAABJBQAASgAAAL4IAAApAAAALAIAAIAAAABJBQAASgAAAL4IAAAvAAAAygIAAIAAAACKBQAASgAAAIQJAAA1AAAAcwMAAIAAAACdBQAASgAAAKAJAAA9AAAAgQMAAIAAAADrBQAASwAAAD4KAABEAAAAngMAAIAAAABNBgAASwAAAKoKAABLAAAAswMAAIAAAADBBgAATQAAAB8NAABNAAAAUwQAAIAAAAAjCAAAUQAAAKYPAABUAAAAmQQAAIAAAABLCQAAVwAAALESAABYAAAA2gQAAIAAAABvCQAAXQAAACMUAABUAAAARQUAAIAAAABUCgAAagAAAIwUAABqAAAArwUAAIAAAAB2CQAAfAAAAE4QAAB8AAAA0gIAAIAAAABjBwAAkQAAAJAHAACSAAAAAAAAAAEAAAABAAAABQAAAA0AAAAdAAAAPQAAAH0AAAD9AAAA/QEAAP0DAAD9BwAA/Q8AAP0fAAD9PwAA/X8AAP3/AAD9/wEA/f8DAP3/BwD9/w8A/f8fAP3/PwD9/38A/f//AP3//wH9//8D/f//B/3//w/9//8f/f//P/3//38AAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACUAAAAnAAAAKQAAACsAAAAvAAAAMwAAADsAAABDAAAAUwAAAGMAAACDAAAAAwEAAAMCAAADBAAAAwgAAAMQAAADIAAAA0AAAAOAAAADAAEAQeAPC1EBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAQcQQC4sBAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBkBIL5gQBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAAAEAAAAEAAAACAAAAAAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBgBcLhwIBAAEBBQAAAAAAAAUAAAAAAAAGBD0AAAAAAAkF/QEAAAAADwX9fwAAAAAVBf3/HwAAAAMFBQAAAAAABwR9AAAAAAAMBf0PAAAAABIF/f8DAAAAFwX9/38AAAAFBR0AAAAAAAgE/QAAAAAADgX9PwAAAAAUBf3/DwAAAAIFAQAAABAABwR9AAAAAAALBf0HAAAAABEF/f8BAAAAFgX9/z8AAAAEBQ0AAAAQAAgE/QAAAAAADQX9HwAAAAATBf3/BwAAAAEFAQAAABAABgQ9AAAAAAAKBf0DAAAAABAF/f8AAAAAHAX9//8PAAAbBf3//wcAABoF/f//AwAAGQX9//8BAAAYBf3//wBBkBkLhgQBAAEBBgAAAAAAAAYDAAAAAAAABAQAAAAgAAAFBQAAAAAAAAUGAAAAAAAABQgAAAAAAAAFCQAAAAAAAAULAAAAAAAABg0AAAAAAAAGEAAAAAAAAAYTAAAAAAAABhYAAAAAAAAGGQAAAAAAAAYcAAAAAAAABh8AAAAAAAAGIgAAAAAAAQYlAAAAAAABBikAAAAAAAIGLwAAAAAAAwY7AAAAAAAEBlMAAAAAAAcGgwAAAAAACQYDAgAAEAAABAQAAAAAAAAEBQAAACAAAAUGAAAAAAAABQcAAAAgAAAFCQAAAAAAAAUKAAAAAAAABgwAAAAAAAAGDwAAAAAAAAYSAAAAAAAABhUAAAAAAAAGGAAAAAAAAAYbAAAAAAAABh4AAAAAAAAGIQAAAAAAAQYjAAAAAAABBicAAAAAAAIGKwAAAAAAAwYzAAAAAAAEBkMAAAAAAAUGYwAAAAAACAYDAQAAIAAABAQAAAAwAAAEBAAAABAAAAQFAAAAIAAABQcAAAAgAAAFCAAAACAAAAUKAAAAIAAABQsAAAAAAAAGDgAAAAAAAAYRAAAAAAAABhQAAAAAAAAGFwAAAAAAAAYaAAAAAAAABh0AAAAAAAAGIAAAAAAAEAYDAAEAAAAPBgOAAAAAAA4GA0AAAAAADQYDIAAAAAAMBgMQAAAAAAsGAwgAAAAACgYDBABBpB0L2QEBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AAAAAAEAAAACAAAABAAAAAAAAAACAAAABAAAAAgAAAAAAAAAAQAAAAIAAAABAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAcAAAAIAAAACQAAAAoAAAALAEGgIAsDwBBQ"});var aS={};Zr(aS,{default:()=>Cg,zstd:()=>sS});var oS,sS,Cg,lS=Xi(()=>{kI();oS=wa(iS(),1);rS();_s();Qc();sS=new Ig,Cg=class extends hi{constructor(e){super(),this.planarConfiguration=typeof e.PlanarConfiguration<"u"?e.PlanarConfiguration:1,this.samplesPerPixel=typeof e.SamplesPerPixel<"u"?e.SamplesPerPixel:1,this.addCompression=e.LercParameters[tI.AddCompression]}decodeBlock(e){switch(this.addCompression){case Rc.None:break;case Rc.Deflate:e=dg(new Uint8Array(e)).buffer;break;case Rc.Zstandard:e=sS.decode(new Uint8Array(e)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return oS.default.decode(e,{returnPixelInterleavedDims:this.planarConfiguration===1}).pixels[0].buffer}}});var AS={};Zr(AS,{default:()=>yg});var yg,cS=Xi(()=>{_s();yg=class extends hi{constructor(){if(super(),typeof createImageBitmap>"u")throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if(typeof document>"u"&&typeof OffscreenCanvas>"u")throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decode(e,t){let n=new Blob([t]),r=await createImageBitmap(n),o;typeof document<"u"?(o=document.createElement("canvas"),o.width=r.width,o.height=r.height):o=new OffscreenCanvas(r.width,r.height);let s=o.getContext("2d");return s.drawImage(r,0,0),s.getImageData(0,0,r.width,r.height).data.buffer}}});var dS,pS=Xi(()=>{dS=typeof Worker<"u"?Worker:void 0});var mS={};Zr(mS,{create:()=>Rk});function Rk(){let i='function A(A,e,t,i,r,I,g){try{var n=A[I](g),a=n.value}catch(A){return void t(A)}n.done?e(a):Promise.resolve(a).then(i,r)}function e(e){return function(){var t=this,i=arguments;return new Promise((function(r,I){var g=e.apply(t,i);function n(e){A(g,r,I,n,a,"next",e)}function a(e){A(g,r,I,n,a,"throw",e)}n(void 0)}))}}function t(A){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},t(A)}var i={exports:{}};!function(A){var e=function(A){var e,i=Object.prototype,r=i.hasOwnProperty,I="function"==typeof Symbol?Symbol:{},g=I.iterator||"@@iterator",n=I.asyncIterator||"@@asyncIterator",a=I.toStringTag||"@@toStringTag";function o(A,e,t){return Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}),A[e]}try{o({},"")}catch(A){o=function(A,e,t){return A[e]=t}}function B(A,e,t,i){var r=e&&e.prototype instanceof h?e:h,I=Object.create(r.prototype),g=new S(i||[]);return I._invoke=function(A,e,t){var i=Q;return function(r,I){if(i===s)throw new Error("Generator is already running");if(i===f){if("throw"===r)throw I;return R()}for(t.method=r,t.arg=I;;){var g=t.delegate;if(g){var n=m(g,t);if(n){if(n===c)continue;return n}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(i===Q)throw i=f,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);i=s;var a=C(A,e,t);if("normal"===a.type){if(i=t.done?f:E,a.arg===c)continue;return{value:a.arg,done:t.done}}"throw"===a.type&&(i=f,t.method="throw",t.arg=a.arg)}}}(A,t,g),I}function C(A,e,t){try{return{type:"normal",arg:A.call(e,t)}}catch(A){return{type:"throw",arg:A}}}A.wrap=B;var Q="suspendedStart",E="suspendedYield",s="executing",f="completed",c={};function h(){}function l(){}function u(){}var w={};o(w,g,(function(){return this}));var d=Object.getPrototypeOf,D=d&&d(d(v([])));D&&D!==i&&r.call(D,g)&&(w=D);var y=u.prototype=h.prototype=Object.create(w);function k(A){["next","throw","return"].forEach((function(e){o(A,e,(function(A){return this._invoke(e,A)}))}))}function p(A,e){function i(I,g,n,a){var o=C(A[I],A,g);if("throw"!==o.type){var B=o.arg,Q=B.value;return Q&&"object"===t(Q)&&r.call(Q,"__await")?e.resolve(Q.__await).then((function(A){i("next",A,n,a)}),(function(A){i("throw",A,n,a)})):e.resolve(Q).then((function(A){B.value=A,n(B)}),(function(A){return i("throw",A,n,a)}))}a(o.arg)}var I;this._invoke=function(A,t){function r(){return new e((function(e,r){i(A,t,e,r)}))}return I=I?I.then(r,r):r()}}function m(A,t){var i=A.iterator[t.method];if(i===e){if(t.delegate=null,"throw"===t.method){if(A.iterator.return&&(t.method="return",t.arg=e,m(A,t),"throw"===t.method))return c;t.method="throw",t.arg=new TypeError("The iterator does not provide a \'throw\' method")}return c}var r=C(i,A.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,c;var I=r.arg;return I?I.done?(t[A.resultName]=I.value,t.next=A.nextLoc,"return"!==t.method&&(t.method="next",t.arg=e),t.delegate=null,c):I:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,c)}function G(A){var e={tryLoc:A[0]};1 in A&&(e.catchLoc=A[1]),2 in A&&(e.finallyLoc=A[2],e.afterLoc=A[3]),this.tryEntries.push(e)}function F(A){var e=A.completion||{};e.type="normal",delete e.arg,A.completion=e}function S(A){this.tryEntries=[{tryLoc:"root"}],A.forEach(G,this),this.reset(!0)}function v(A){if(A){var t=A[g];if(t)return t.call(A);if("function"==typeof A.next)return A;if(!isNaN(A.length)){var i=-1,I=function t(){for(;++i=0;--I){var g=this.tryEntries[I],n=g.completion;if("root"===g.tryLoc)return i("end");if(g.tryLoc<=this.prev){var a=r.call(g,"catchLoc"),o=r.call(g,"finallyLoc");if(a&&o){if(this.prev=0;--t){var i=this.tryEntries[t];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var t=this.tryEntries[e];if(t.finallyLoc===A)return this.complete(t.completion,t.afterLoc),F(t),c}},catch:function(A){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.tryLoc===A){var i=t.completion;if("throw"===i.type){var r=i.arg;F(t)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(A,t,i){return this.delegate={iterator:v(A),resultName:t,nextLoc:i},"next"===this.method&&(this.arg=e),c}},A}(A.exports);try{regeneratorRuntime=e}catch(A){"object"===("undefined"==typeof globalThis?"undefined":t(globalThis))?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}}(i);var r=i.exports,I=new Map;function g(A,e){Array.isArray(A)||(A=[A]),A.forEach((function(A){return I.set(A,e)}))}function n(A){return a.apply(this,arguments)}function a(){return(a=e(r.mark((function A(e){var t,i;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(t=I.get(e.Compression)){A.next=3;break}throw new Error("Unknown compression method identifier: ".concat(e.Compression));case 3:return A.next=5,t();case 5:return i=A.sent,A.abrupt("return",new i(e));case 7:case"end":return A.stop()}}),A)})))).apply(this,arguments)}g([void 0,1],(function(){return Promise.resolve().then((function(){return y})).then((function(A){return A.default}))})),g(5,(function(){return Promise.resolve().then((function(){return F})).then((function(A){return A.default}))})),g(6,(function(){throw new Error("old style JPEG compression is not supported.")})),g(7,(function(){return Promise.resolve().then((function(){return N})).then((function(A){return A.default}))})),g([8,32946],(function(){return Promise.resolve().then((function(){return OA})).then((function(A){return A.default}))})),g(32773,(function(){return Promise.resolve().then((function(){return _A})).then((function(A){return A.default}))})),g(34887,(function(){return Promise.resolve().then((function(){return le})).then(function(){var A=e(r.mark((function A(e){return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,e.zstd.init();case 2:return A.abrupt("return",e);case 3:case"end":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}()).then((function(A){return A.default}))})),g(50001,(function(){return Promise.resolve().then((function(){return de})).then((function(A){return A.default}))}));var o=globalThis;function B(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")}function C(A,e){for(var t=0;t0;r--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function l(A,e,t){for(var i=0,r=A.length,I=r/t;r>e;){for(var g=e;g>0;--g)A[i+e]+=A[i],++i;r-=e}for(var n=A.slice(),a=0;a=A.byteLength);++o){var B=void 0;if(2===e){switch(r[0]){case 8:B=new Uint8Array(A,o*a*t*n,a*t*n);break;case 16:B=new Uint16Array(A,o*a*t*n,a*t*n/2);break;case 32:B=new Uint32Array(A,o*a*t*n,a*t*n/4);break;default:throw new Error("Predictor 2 not allowed with ".concat(r[0]," bits per sample."))}h(B,a)}else 3===e&&l(B=new Uint8Array(A,o*a*t*n,a*t*n),a,n)}return A}o.addEventListener("message",function(){var A=e(r.mark((function A(e){var t,i,I,g,a,B;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=e.data,i=t.id,I=t.fileDirectory,g=t.buffer,A.next=3,n(I);case 3:return a=A.sent,A.next=6,a.decode(I,g);case 6:B=A.sent,o.postMessage({decoded:B,id:i},[B]);case 8:case"end":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}());var w=function(){function A(){B(this,A)}var t;return Q(A,[{key:"decode",value:(t=e(r.mark((function A(e,t){var i,I,g,n,a;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,this.decodeBlock(t);case 2:if(i=A.sent,1===(I=e.Predictor||1)){A.next=9;break}return g=!e.StripOffsets,n=g?e.TileWidth:e.ImageWidth,a=g?e.TileLength:e.RowsPerStrip||e.ImageLength,A.abrupt("return",u(i,I,n,a,e.BitsPerSample,e.PlanarConfiguration));case 9:return A.abrupt("return",i);case 10:case"end":return A.stop()}}),A,this)}))),function(A,e){return t.apply(this,arguments)})}]),A}();function d(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var D=function(A){s(t,w);var e=d(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return A}}]),t}(),y=Object.freeze({__proto__:null,default:D});function k(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}function p(A,e){for(var t=e.length-1;t>=0;t--)A.push(e[t]);return A}function m(A){for(var e=new Uint16Array(4093),t=new Uint8Array(4093),i=0;i<=257;i++)e[i]=4096,t[i]=i;var r=258,I=9,g=0;function n(){r=258,I=9}function a(A){var e=function(A,e,t){var i=e%8,r=Math.floor(e/8),I=8-i,g=e+t-8*(r+1),n=8*(r+2)-(e+t),a=8*(r+2)-e;if(n=Math.max(0,n),r>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;var o=A[r]&Math.pow(2,8-i)-1,B=o<<=t-I;if(r+1>>n;B+=C<<=Math.max(0,t-a)}if(g>8&&r+2>>Q}return B}(A,g,I);return g+=I,e}function o(A,i){return t[r]=i,e[r]=A,++r-1}function B(A){for(var i=[],r=A;4096!==r;r=e[r])i.push(t[r]);return i}var C=[];n();for(var Q,E=new Uint8Array(A),s=a(E);257!==s;){if(256===s){for(n(),s=a(E);256===s;)s=a(E);if(257===s)break;if(s>256)throw new Error("corrupted code at scanline ".concat(s));p(C,B(s)),Q=s}else if(s=Math.pow(2,I)&&(12===I?Q=void 0:I++),s=a(E)}return new Uint8Array(C)}var G=function(A){s(t,w);var e=k(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return m(A).buffer}}]),t}(),F=Object.freeze({__proto__:null,default:G});function S(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var v=new Int32Array([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]);function R(A,e){for(var t=0,i=[],r=16;r>0&&!A[r-1];)--r;i.push({children:[],index:0});for(var I,g=i[0],n=0;n0;)g=i.pop();for(g.index++,i.push(g);i.length<=n;)i.push(I={children:[],index:0}),g.children[g.index]=I.children,g=I;t++}n+10)return f--,s>>f&1;if(255===(s=A[E++])){var e=A[E++];if(e)throw new Error("unexpected marker: ".concat((s<<8|e).toString(16)))}return f=7,s>>>7}function h(A){for(var e,i=A;null!==(e=c());){if("number"==typeof(i=i[e]))return i;if("object"!==t(i))throw new Error("invalid huffman sequence")}return null}function l(A){for(var e=A,t=0;e>0;){var i=c();if(null===i)return;t=t<<1|i,--e}return t}function u(A){var e=l(A);return e>=1<0)w--;else for(var t=g,i=n;t<=i;){var r=h(A.huffmanTableAC),I=15&r,a=r>>4;if(0===I){if(a<15){w=l(a)+(1<>4,0===C)r<15?(w=l(r)+(1<>4;if(0===g){if(n<15)break;r+=16}else e[v[r+=n]]=u(g),r++}};var L,b,M=0;b=1===U?r[0].blocksPerLine*r[0].blocksPerColumn:B*i.mcusPerColumn;for(var N=I||b;M=65488&&L<=65495))break;E+=2}return E-Q}function L(A,e){var t=[],i=e.blocksPerLine,r=e.blocksPerColumn,I=i<<3,g=new Int32Array(64),n=new Uint8Array(64);function a(A,t,i){var r,I,g,n,a,o,B,C,Q,E,s=e.quantizationTable,f=i;for(E=0;E<64;E++)f[E]=A[E]*s[E];for(E=0;E<8;++E){var c=8*E;0!==f[1+c]||0!==f[2+c]||0!==f[3+c]||0!==f[4+c]||0!==f[5+c]||0!==f[6+c]||0!==f[7+c]?(r=5793*f[0+c]+128>>8,I=5793*f[4+c]+128>>8,g=f[2+c],n=f[6+c],a=2896*(f[1+c]-f[7+c])+128>>8,C=2896*(f[1+c]+f[7+c])+128>>8,o=f[3+c]<<4,Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+128>>8,g=1567*g-3784*n+128>>8,n=Q,Q=a-(B=f[5+c]<<4)+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+c]=r+C,f[7+c]=r-C,f[1+c]=I+B,f[6+c]=I-B,f[2+c]=g+o,f[5+c]=g-o,f[3+c]=n+a,f[4+c]=n-a):(Q=5793*f[0+c]+512>>10,f[0+c]=Q,f[1+c]=Q,f[2+c]=Q,f[3+c]=Q,f[4+c]=Q,f[5+c]=Q,f[6+c]=Q,f[7+c]=Q)}for(E=0;E<8;++E){var h=E;0!==f[8+h]||0!==f[16+h]||0!==f[24+h]||0!==f[32+h]||0!==f[40+h]||0!==f[48+h]||0!==f[56+h]?(r=5793*f[0+h]+2048>>12,I=5793*f[32+h]+2048>>12,g=f[16+h],n=f[48+h],a=2896*(f[8+h]-f[56+h])+2048>>12,C=2896*(f[8+h]+f[56+h])+2048>>12,o=f[24+h],Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+2048>>12,g=1567*g-3784*n+2048>>12,n=Q,Q=a-(B=f[40+h])+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+h]=r+C,f[56+h]=r-C,f[8+h]=I+B,f[48+h]=I-B,f[16+h]=g+o,f[40+h]=g-o,f[24+h]=n+a,f[32+h]=n-a):(Q=5793*i[E+0]+8192>>14,f[0+h]=Q,f[8+h]=Q,f[16+h]=Q,f[24+h]=Q,f[32+h]=Q,f[40+h]=Q,f[48+h]=Q,f[56+h]=Q)}for(E=0;E<64;++E){var l=128+(f[E]+8>>4);t[E]=l<0?0:l>255?255:l}}for(var o=0;o>4==0)for(var C=0;C<64;C++){B[v[C]]=A[e++]}else{if(o>>4!=1)throw new Error("DQT: invalid table spec");for(var Q=0;Q<64;Q++){B[v[Q]]=t()}}this.quantizationTables[15&o]=B}break;case 65472:case 65473:case 65474:t();for(var E={extended:65473===g,progressive:65474===g,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},s=A[e++],f=void 0,c=0;c>4,l=15&A[e+1],u=A[e+2];E.componentsOrder.push(f),E.components[f]={h:h,v:l,quantizationIdx:u},e+=3}i(E),this.frames.push(E);break;case 65476:for(var w=t(),d=2;d>4==0?this.huffmanTablesDC[15&D]=R(y,m):this.huffmanTablesAC[15&D]=R(y,m)}break;case 65501:t(),this.resetInterval=t();break;case 65498:t();for(var F=A[e++],S=[],L=this.frames[0],b=0;b>4],M.huffmanTableAC=this.huffmanTablesAC[15&N],S.push(M)}var x=A[e++],J=A[e++],q=A[e++],Y=U(A,e,L,S,this.resetInterval,x,J,q>>4,15&q);e+=Y;break;case 65535:255!==A[e]&&e--;break;default:if(255===A[e-3]&&A[e-2]>=192&&A[e-2]<=254){e-=3;break}throw new Error("unknown JPEG marker ".concat(g.toString(16)))}g=t()}}},{key:"getResult",value:function(){var A=this.frames;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(var e=0;e=0;)A[e]=0}x(new Array(576)),x(new Array(60)),x(new Array(512)),x(new Array(256)),x(new Array(29)),x(new Array(30));var J=function(A,e,t,i){for(var r=65535&A|0,I=A>>>16&65535|0,g=0;0!==t;){t-=g=t>2e3?2e3:t;do{I=I+(r=r+e[i++]|0)|0}while(--g);r%=65521,I%=65521}return r|I<<16|0},q=new Uint32Array(function(){for(var A,e=[],t=0;t<256;t++){A=t;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;e[t]=A}return e}()),Y=function(A,e,t,i){var r=q,I=i+t;A^=-1;for(var g=i;g>>8^r[255&(A^e[g])];return-1^A},K={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},H={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},O=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},P=function(A){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var i=e.shift();if(i){if("object"!==t(i))throw new TypeError(i+"must be non-object");for(var r in i)O(i,r)&&(A[r]=i[r])}}return A},T=function(A){for(var e=0,t=0,i=A.length;t=252?6:X>=248?5:X>=240?4:X>=224?3:X>=192?2:1;_[254]=_[254]=1;var Z=function(A){if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);var e,t,i,r,I,g=A.length,n=0;for(r=0;r>>6,e[I++]=128|63&t):t<65536?(e[I++]=224|t>>>12,e[I++]=128|t>>>6&63,e[I++]=128|63&t):(e[I++]=240|t>>>18,e[I++]=128|t>>>12&63,e[I++]=128|t>>>6&63,e[I++]=128|63&t);return e},j=function(A,e){var t,i,r=e||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));var I=new Array(2*r);for(i=0,t=0;t4)I[i++]=65533,t+=n-1;else{for(g&=2===n?31:3===n?15:7;n>1&&t1?I[i++]=65533:g<65536?I[i++]=g:(g-=65536,I[i++]=55296|g>>10&1023,I[i++]=56320|1023&g)}}}return function(A,e){if(e<65534&&A.subarray&&V)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));for(var t="",i=0;iA.length&&(e=A.length);for(var t=e-1;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+_[A[t]]>e?t:e};var z=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},$=function(A,e){var t,i,r,I,g,n,a,o,B,C,Q,E,s,f,c,h,l,u,w,d,D,y,k,p,m=A.state;t=A.next_in,k=A.input,i=t+(A.avail_in-5),r=A.next_out,p=A.output,I=r-(e-A.avail_out),g=r+(A.avail_out-257),n=m.dmax,a=m.wsize,o=m.whave,B=m.wnext,C=m.window,Q=m.hold,E=m.bits,s=m.lencode,f=m.distcode,c=(1<>>=u=l>>>24,E-=u,0===(u=l>>>16&255))p[r++]=65535&l;else{if(!(16&u)){if(0==(64&u)){l=s[(65535&l)+(Q&(1<>>=u,E-=u),E<15&&(Q+=k[t++]<>>=u=l>>>24,E-=u,!(16&(u=l>>>16&255))){if(0==(64&u)){l=f[(65535&l)+(Q&(1<n){A.msg="invalid distance too far back",m.mode=30;break A}if(Q>>>=u,E-=u,d>(u=r-I)){if((u=d-u)>o&&m.sane){A.msg="invalid distance too far back",m.mode=30;break A}if(D=0,y=C,0===B){if(D+=a-u,u2;)p[r++]=y[D++],p[r++]=y[D++],p[r++]=y[D++],w-=3;w&&(p[r++]=y[D++],w>1&&(p[r++]=y[D++]))}else{D=r-d;do{p[r++]=p[D++],p[r++]=p[D++],p[r++]=p[D++],w-=3}while(w>2);w&&(p[r++]=p[D++],w>1&&(p[r++]=p[D++]))}break}}break}}while(t>3,Q&=(1<<(E-=w<<3))-1,A.next_in=t,A.next_out=r,A.avail_in=t=1&&0===v[d];d--);if(D>d&&(D=d),0===d)return r[I++]=20971520,r[I++]=20971520,n.bits=1,0;for(w=1;w0&&(0===A||1!==d))return-1;for(R[1]=0,l=1;l<15;l++)R[l+1]=R[l]+v[l];for(u=0;u852||2===A&&m>592)return 1;for(;;){s=l-k,g[u]E?(f=U[L+g[u]],c=F[S+g[u]]):(f=96,c=0),a=1<>k)+(o-=a)]=s<<24|f<<16|c|0}while(0!==o);for(a=1<>=1;if(0!==a?(G&=a-1,G+=a):G=0,u++,0==--v[l]){if(l===d)break;l=e[t+g[u]]}if(l>D&&(G&C)!==B){for(0===k&&(k=D),Q+=w,p=1<<(y=l-k);y+k852||2===A&&m>592)return 1;r[B=G&C]=D<<24|y<<16|Q-I|0}}return 0!==G&&(r[Q+G]=l-k<<24|64<<16|0),n.bits=D,0},IA=H.Z_FINISH,gA=H.Z_BLOCK,nA=H.Z_TREES,aA=H.Z_OK,oA=H.Z_STREAM_END,BA=H.Z_NEED_DICT,CA=H.Z_STREAM_ERROR,QA=H.Z_DATA_ERROR,EA=H.Z_MEM_ERROR,sA=H.Z_BUF_ERROR,fA=H.Z_DEFLATED,cA=function(A){return(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)};function hA(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var lA,uA,wA=function(A){if(!A||!A.state)return CA;var e=A.state;return A.total_in=A.total_out=e.total=0,A.msg="",e.wrap&&(A.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,aA},dA=function(A){if(!A||!A.state)return CA;var e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,wA(A)},DA=function(A,e){var t;if(!A||!A.state)return CA;var i=A.state;return e<0?(t=0,e=-e):(t=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?CA:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,dA(A))},yA=function(A,e){if(!A)return CA;var t=new hA;A.state=t,t.window=null;var i=DA(A,e);return i!==aA&&(A.state=null),i},kA=!0,pA=function(A){if(kA){lA=new Int32Array(512),uA=new Int32Array(32);for(var e=0;e<144;)A.lens[e++]=8;for(;e<256;)A.lens[e++]=9;for(;e<280;)A.lens[e++]=7;for(;e<288;)A.lens[e++]=8;for(rA(1,A.lens,0,288,lA,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;rA(2,A.lens,0,32,uA,0,A.work,{bits:5}),kA=!1}A.lencode=lA,A.lenbits=9,A.distcode=uA,A.distbits=5},mA=function(A,e,t,i){var r,I=A.state;return null===I.window&&(I.wsize=1<=I.wsize?(I.window.set(e.subarray(t-I.wsize,t),0),I.wnext=0,I.whave=I.wsize):((r=I.wsize-I.wnext)>i&&(r=i),I.window.set(e.subarray(t-i,t-i+r),I.wnext),(i-=r)?(I.window.set(e.subarray(t-i,t),0),I.wnext=i,I.whave=I.wsize):(I.wnext+=r,I.wnext===I.wsize&&(I.wnext=0),I.whave>>8&255,t.check=Y(t.check,G,2,0),o=0,B=0,t.mode=2;break}if(t.flags=0,t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&o)<<8)+(o>>8))%31){A.msg="incorrect header check",t.mode=30;break}if((15&o)!==fA){A.msg="unknown compression method",t.mode=30;break}if(B-=4,D=8+(15&(o>>>=4)),0===t.wbits)t.wbits=D;else if(D>t.wbits){A.msg="invalid window size",t.mode=30;break}t.dmax=1<>8&1),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=3;case 3:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>8&255,G[2]=o>>>16&255,G[3]=o>>>24&255,t.check=Y(t.check,G,4,0)),o=0,B=0,t.mode=4;case 4:for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>8),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=5;case 5:if(1024&t.flags){for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0}else t.head&&(t.head.extra=null);t.mode=6;case 6:if(1024&t.flags&&((E=t.length)>n&&(E=n),E&&(t.head&&(D=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(I,I+E),D)),512&t.flags&&(t.check=Y(t.check,i,E,I)),n-=E,I+=E,t.length-=E),t.length))break A;t.length=0,t.mode=7;case 7:if(2048&t.flags){if(0===n)break A;E=0;do{D=i[I+E++],t.head&&D&&t.length<65536&&(t.head.name+=String.fromCharCode(D))}while(D&&E>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=12;break;case 10:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>=7&B,B-=7&B,t.mode=27;break}for(;B<3;){if(0===n)break A;n--,o+=i[I++]<>>=1)){case 0:t.mode=14;break;case 1:if(pA(t),t.mode=20,e===nA){o>>>=2,B-=2;break A}break;case 2:t.mode=17;break;case 3:A.msg="invalid block type",t.mode=30}o>>>=2,B-=2;break;case 14:for(o>>>=7&B,B-=7&B;B<32;){if(0===n)break A;n--,o+=i[I++]<>>16^65535)){A.msg="invalid stored block lengths",t.mode=30;break}if(t.length=65535&o,o=0,B=0,t.mode=15,e===nA)break A;case 15:t.mode=16;case 16:if(E=t.length){if(E>n&&(E=n),E>a&&(E=a),0===E)break A;r.set(i.subarray(I,I+E),g),n-=E,I+=E,a-=E,g+=E,t.length-=E;break}t.mode=12;break;case 17:for(;B<14;){if(0===n)break A;n--,o+=i[I++]<>>=5,B-=5,t.ndist=1+(31&o),o>>>=5,B-=5,t.ncode=4+(15&o),o>>>=4,B-=4,t.nlen>286||t.ndist>30){A.msg="too many length or distance symbols",t.mode=30;break}t.have=0,t.mode=18;case 18:for(;t.have>>=3,B-=3}for(;t.have<19;)t.lens[F[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,k={bits:t.lenbits},y=rA(0,t.lens,0,19,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg="invalid code lengths set",t.mode=30;break}t.have=0,t.mode=19;case 19:for(;t.have>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=c,B-=c,t.lens[t.have++]=l;else{if(16===l){for(p=c+2;B>>=c,B-=c,0===t.have){A.msg="invalid bit length repeat",t.mode=30;break}D=t.lens[t.have-1],E=3+(3&o),o>>>=2,B-=2}else if(17===l){for(p=c+3;B>>=c)),o>>>=3,B-=3}else{for(p=c+7;B>>=c)),o>>>=7,B-=7}if(t.have+E>t.nlen+t.ndist){A.msg="invalid bit length repeat",t.mode=30;break}for(;E--;)t.lens[t.have++]=D}}if(30===t.mode)break;if(0===t.lens[256]){A.msg="invalid code -- missing end-of-block",t.mode=30;break}if(t.lenbits=9,k={bits:t.lenbits},y=rA(1,t.lens,0,t.nlen,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg="invalid literal/lengths set",t.mode=30;break}if(t.distbits=6,t.distcode=t.distdyn,k={bits:t.distbits},y=rA(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,k),t.distbits=k.bits,y){A.msg="invalid distances set",t.mode=30;break}if(t.mode=20,e===nA)break A;case 20:t.mode=21;case 21:if(n>=6&&a>=258){A.next_out=g,A.avail_out=a,A.next_in=I,A.avail_in=n,t.hold=o,t.bits=B,$(A,Q),g=A.next_out,r=A.output,a=A.avail_out,I=A.next_in,i=A.input,n=A.avail_in,o=t.hold,B=t.bits,12===t.mode&&(t.back=-1);break}for(t.back=0;h=(m=t.lencode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,t.length=l,0===h){t.mode=26;break}if(32&h){t.back=-1,t.mode=12;break}if(64&h){A.msg="invalid literal/length code",t.mode=30;break}t.extra=15&h,t.mode=22;case 22:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=23;case 23:for(;h=(m=t.distcode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,64&h){A.msg="invalid distance code",t.mode=30;break}t.offset=l,t.extra=15&h,t.mode=24;case 24:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg="invalid distance too far back",t.mode=30;break}t.mode=25;case 25:if(0===a)break A;if(E=Q-a,t.offset>E){if((E=t.offset-E)>t.whave&&t.sane){A.msg="invalid distance too far back",t.mode=30;break}E>t.wnext?(E-=t.wnext,s=t.wsize-E):s=t.wnext-E,E>t.length&&(E=t.length),f=t.window}else f=r,s=g-t.offset,E=t.length;E>a&&(E=a),a-=E,t.length-=E;do{r[g++]=f[s++]}while(--E);0===t.length&&(t.mode=21);break;case 26:if(0===a)break A;r[g++]=t.length,a--,t.mode=21;break;case 27:if(t.wrap){for(;B<32;){if(0===n)break A;n--,o|=i[I++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||A&&A.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new z,this.strm.avail_out=0;var t=GA.inflateInit2(this.strm,e.windowBits);if(t!==UA)throw new Error(K[t]);if(this.header=new FA,GA.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Z(e.dictionary):"[object ArrayBuffer]"===SA.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=GA.inflateSetDictionary(this.strm,e.dictionary))!==UA))throw new Error(K[t])}function qA(A,e){var t=new JA(e);if(t.push(A),t.err)throw t.msg||K[t.err];return t.result}JA.prototype.push=function(A,e){var t,i,r,I=this.strm,g=this.options.chunkSize,n=this.options.dictionary;if(this.ended)return!1;for(i=e===~~e?e:!0===e?RA:vA,"[object ArrayBuffer]"===SA.call(A)?I.input=new Uint8Array(A):I.input=A,I.next_in=0,I.avail_in=I.input.length;;){for(0===I.avail_out&&(I.output=new Uint8Array(g),I.next_out=0,I.avail_out=g),(t=GA.inflate(I,i))===bA&&n&&((t=GA.inflateSetDictionary(I,n))===UA?t=GA.inflate(I,i):t===NA&&(t=bA));I.avail_in>0&&t===LA&&I.state.wrap>0&&0!==A[I.next_in];)GA.inflateReset(I),t=GA.inflate(I,i);switch(t){case MA:case NA:case bA:case xA:return this.onEnd(t),this.ended=!0,!1}if(r=I.avail_out,I.next_out&&(0===I.avail_out||t===LA))if("string"===this.options.to){var a=W(I.output,I.next_out),o=I.next_out-a,B=j(I.output,a);I.next_out=o,I.avail_out=g-o,o&&I.output.set(I.output.subarray(a,a+o),0),this.onData(B)}else this.onData(I.output.length===I.next_out?I.output:I.output.subarray(0,I.next_out));if(t!==UA||0!==r){if(t===LA)return t=GA.inflateEnd(this.strm),this.onEnd(t),this.ended=!0,!0;if(0===I.avail_in)break}}return!0},JA.prototype.onData=function(A){this.chunks.push(A)},JA.prototype.onEnd=function(A){A===UA&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=T(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var YA={Inflate:JA,inflate:qA,inflateRaw:function(A,e){return(e=e||{}).raw=!0,qA(A,e)},ungzip:qA,constants:H}.inflate;function KA(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var HA=function(A){s(t,w);var e=KA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return YA(new Uint8Array(A)).buffer}}]),t}(),OA=Object.freeze({__proto__:null,default:HA});function PA(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var TA,VA=function(A){s(t,w);var e=PA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){for(var e=new DataView(A),t=[],i=0;i>3],m<<=7&G),c=0;c>3]),128&m?(a&&(a[G]=1),f=f>(g=S.encoding<2?y[k++]:p)?g:f,n[G++]=g):(a&&(a[G]=0),n[G++]=i),m<<=1;G+=F}else if(S.encoding<2)for(h=0;h(g=y[k++])?g:f,n[G++]=g;G+=F}else for(f=f>p?p:f,h=0;h0){var g=new Uint8Array(Math.ceil(i.width*i.height/8)),n=(I=new DataView(A,e,i.mask.numBytes)).getInt16(0,!0),a=2,o=0;do{if(n>0)for(;n--;)g[o++]=I.getUint8(a++);else{var B=I.getUint8(a++);for(n=-n;n--;)g[o++]=B}n=I.getInt16(a,!0),a+=2}while(a0?1:0),s=Q+(i.height%Q>0?1:0);i.pixels.blocks=new Array(E*s);for(var f=0,c=0;c3)throw"Invalid block encoding ("+w.encoding+")";if(2!==w.encoding){if(0!==d&&2!==d){if(d>>=6,w.offsetType=d,2===d)w.offset=I.getInt8(1),l++;else if(1===d)w.offset=I.getInt16(1,!0),l+=2;else{if(0!==d)throw"Invalid block offset type";w.offset=I.getFloat32(1,!0),l+=4}if(1===w.encoding)if(d=I.getUint8(l),l++,w.bitsPerPixel=63&d,d>>=6,w.numValidPixelsType=d,2===d)w.numValidPixels=I.getUint8(l),l++;else if(1===d)w.numValidPixels=I.getUint16(l,!0),l+=2;else{if(0!==d)throw"Invalid valid pixel count type";w.numValidPixels=I.getUint32(l,!0),l+=4}}var D;if(e+=l,3!==w.encoding)if(0===w.encoding){var y=(i.pixels.numBytes-1)/4;if(y!==Math.floor(y))throw"uncompressed block has invalid length";D=new ArrayBuffer(4*y),new Uint8Array(D).set(new Uint8Array(A,e,4*y));var k=new Float32Array(D);w.rawData=k,e+=4*y}else if(1===w.encoding){var p=Math.ceil(w.numValidPixels*w.bitsPerPixel/8),m=Math.ceil(p/4);D=new ArrayBuffer(4*m),new Uint8Array(D).set(new Uint8Array(A,e,p)),w.stuffedData=new Uint32Array(D),e+=p}}else e++}return i.eofOffset=e,i},I=function(A,e,t,i,r,I,g){var n,a,o,B=(1<=e)a=o>>>Q-e&B,Q-=e;else{var f=e-Q;a=(o&B)<>>(Q=32-f)}I[n]=a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=r[o];else for(Q=Math.ceil((n-I)/g),a=0;a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=o=e?(Q=g>>>C-e&n,C-=e):(Q=(g&n)<<(B=e-C)&n,Q+=(g=A[a++])>>>(C=32-B)),E[o]=Q=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=e?(Q=g>>>E&n,C-=e,E+=e):(Q=g>>>E&n,C=32-(B=e-C),Q|=((g=A[a++])&(1<=t?(I=g>>>B-t&a,B-=t):(I=(g&a)<<(n=t-B)&a,I+=(g=A[o++])>>>(B=32-n)),e[r]=I;return e},C=function(A,e,t,i){var r,I,g,n,a=(1<=t?(I=g>>>C&a,B-=t,C+=t):(I=g>>>C&a,B=32-(n=t-B),I|=((g=A[o++])&(1<=359?359:r;r-=g;do{e+=A[I++]<<8,t+=e+=A[I++]}while(--g);e=(65535&e)+(e>>>16),t=(65535&t)+(t>>>16)}return 1&i&&(t+=e+=A[I]<<8),((t=(65535&t)+(t>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(A,e){var t=e.ptr,i=new Uint8Array(A,t,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,i),0!==r.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+r.fileIdentifierString;t+=6;var I,g=new DataView(A,t,8),n=g.getInt32(0,!0);if(r.fileVersion=n,t+=4,n>=3&&(r.checksum=g.getUint32(4,!0),t+=4),g=new DataView(A,t,12),r.height=g.getUint32(0,!0),r.width=g.getUint32(4,!0),t+=8,n>=4?(r.numDims=g.getUint32(8,!0),t+=4):r.numDims=1,g=new DataView(A,t,40),r.numValidPixel=g.getUint32(0,!0),r.microBlockSize=g.getInt32(4,!0),r.blobSize=g.getInt32(8,!0),r.imageType=g.getInt32(12,!0),r.maxZError=g.getFloat64(16,!0),r.zMin=g.getFloat64(24,!0),r.zMax=g.getFloat64(32,!0),t+=40,e.headerInfo=r,e.ptr=t,n>=3&&(I=n>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,t-I,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,e){var t=e.headerInfo,i=this.getDataTypeArray(t.imageType),r=t.numDims*this.getDataTypeSize(t.imageType),I=this.readSubArray(A,e.ptr,i,r),g=this.readSubArray(A,e.ptr+r,i,r);e.ptr+=2*r;var n,a=!0;for(n=0;n0){t=new Uint8Array(Math.ceil(g/8));var B=(a=new DataView(A,r,o.numBytes)).getInt16(0,!0),C=2,Q=0,E=0;do{if(B>0)for(;B--;)t[Q++]=a.getUint8(C++);else for(E=a.getUint8(C++),B=-B;B--;)t[Q++]=E;B=a.getInt16(C,!0),C+=2}while(C>3],s<<=7&f):s=t[f>>3],128&s&&(i[f]=1);e.pixels.resultMask=i,o.bitset=t,r+=o.numBytes}return e.ptr=r,e.mask=o,!0},readDataOneSweep:function(A,e,t,i){var r,I=e.ptr,g=e.headerInfo,n=g.numDims,a=g.width*g.height,o=g.imageType,B=g.numValidPixel*Q.getDataTypeSize(o)*n,C=e.pixels.resultMask;if(t===Uint8Array)r=new Uint8Array(A,I,B);else{var E=new ArrayBuffer(B);new Uint8Array(E).set(new Uint8Array(A,I,B)),r=new t(E)}if(r.length===a*n)e.pixels.resultPixels=i?Q.swapDimensionOrder(r,a,n,t,!0):r;else{e.pixels.resultPixels=new t(a*n);var s=0,f=0,c=0,h=0;if(n>1){if(i){for(f=0;f=g)return!1;var n=new Uint32Array(g-I);Q.decodeBits(A,e,n);var a,o,B,C,s=[];for(a=I;a0&&(s[o].second=l<>>32-C,32-w>=C?32===(w+=C)&&(w=0,l=u[++d]):(w+=C-32,l=u[++d],s[o].second|=l>>>32-w));var D=0,y=0,k=new E;for(a=0;a=t?t:D;var p,m,G,F,S,v=[];for(a=I;a0)if(p=[C,o],C<=y)for(m=s[o].second<=0;F--)m>>>F&1?(S.right||(S.right=new E),S=S.right):(S.left||(S.left=new E),S=S.left),0!==F||S.val||(S.val=p[1]);return{decodeLut:v,numBitsLUTQick:y,numBitsLUT:D,tree:k,stuffedData:u,srcPtr:d,bitPos:w}},readHuffman:function(A,e,t,i){var r,I,g,n,a,o,B,C,E,s=e.headerInfo.numDims,f=e.headerInfo.height,c=e.headerInfo.width,h=c*f,l=this.readHuffmanTree(A,e),u=l.decodeLut,w=l.tree,d=l.stuffedData,D=l.srcPtr,y=l.bitPos,k=l.numBitsLUTQick,p=l.numBitsLUT,m=0===e.headerInfo.imageType?128:0,G=e.pixels.resultMask,F=0;y>0&&(D++,y=0);var S,v=d[D],R=1===e.encodeMode,U=new t(h*s),L=U;if(s<2||R){for(S=0;S1&&(L=new t(U.buffer,h*S,h),F=0),e.headerInfo.numValidPixel===c*f)for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(g+=B>0?F:o>0?L[C-c]:F,g&=255,L[C]=g,F=g):L[C]=g}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(B>0&&G[C-1]?g+=F:o>0&&G[C-c]?g+=L[C-c]:g+=F,g&=255,L[C]=g,F=g):L[C]=g}}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,L[C]=g}e.ptr=e.ptr+4*(D+1)+(y>0?4:0),e.pixels.resultPixels=U,s>1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(U,h,s,t))},decodeBits:function(A,e,t,i,r){var I=e.headerInfo,Q=I.fileVersion,E=0,s=A.byteLength-e.ptr>=5?5:A.byteLength-e.ptr,f=new DataView(A,e.ptr,s),c=f.getUint8(0);E++;var h=c>>6,l=0===h?4:3-h,u=(32&c)>0,w=31&c,d=0;if(1===l)d=f.getUint8(E),E++;else if(2===l)d=f.getUint16(E,!0),E+=2;else{if(4!==l)throw"Invalid valid pixel count type";d=f.getUint32(E,!0),E+=4}var D,y,k,p,m,G,F,S,v,R=2*I.maxZError,U=I.numDims>1?I.maxValues[r]:I.zMax;if(u){for(e.counter.lut++,S=f.getUint8(E),E++,p=Math.ceil((S-1)*w/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),k=new Uint8Array(y),e.ptr+=E,k.set(new Uint8Array(A,e.ptr,p)),F=new Uint32Array(y),e.ptr+=p,v=0;S-1>>>v;)v++;p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,G=Q>=3?o(F,w,S-1,i,R,U):n(F,w,S-1,i,R,U),Q>=3?a(D,t,v,d,G):g(D,t,v,d,G)}else e.counter.bitstuffer++,v=w,e.ptr+=E,v>0&&(p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,Q>=3?null==i?C(D,t,v,d):a(D,t,v,d,!1,i,R,U):null==i?B(D,t,v,d):g(D,t,v,d,!1,i,R,U))},readTiles:function(A,e,t,i){var r=e.headerInfo,I=r.width,g=r.height,n=I*g,a=r.microBlockSize,o=r.imageType,B=Q.getDataTypeSize(o),C=Math.ceil(I/a),E=Math.ceil(g/a);e.pixels.numBlocksY=E,e.pixels.numBlocksX=C,e.pixels.ptr=0;var s,f,c,h,l,u,w,d,D,y,k=0,p=0,m=0,G=0,F=0,S=0,v=0,R=0,U=0,L=0,b=0,M=0,N=0,x=0,J=0,q=new t(a*a),Y=g%a||a,K=I%a||a,H=r.numDims,O=e.pixels.resultMask,P=e.pixels.resultPixels,T=r.fileVersion>=5?14:15,V=r.zMax;for(m=0;m1?(y=P,L=m*I*a+G*a,P=new t(e.pixels.resultPixels.buffer,n*d*B,n),V=r.maxValues[d]):y=null,v=A.byteLength-e.ptr,f={},J=0,R=(s=new DataView(A,e.ptr,Math.min(10,v))).getUint8(0),J++,D=r.fileVersion>=5?4&R:0,U=R>>6&255,(R>>2&T)!=(G*a>>3&T))throw"integrity issue";if(D&&0===d)throw"integrity issue";if((l=3&R)>3)throw e.ptr+=J,"Invalid block encoding ("+l+")";if(2!==l)if(0===l){if(D)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=J,M=(M=F*S*B)<(N=A.byteLength-e.ptr)?M:N,c=new ArrayBuffer(M%B==0?M:M+B-M%B),new Uint8Array(c).set(new Uint8Array(A,e.ptr,M)),h=new t(c),x=0,O)for(k=0;k1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(e.pixels.resultPixels,n,H,t))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:Q.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,e){var t=A.headerInfo.zMax,i=A.headerInfo.zMin,r=A.headerInfo.maxValues,I=A.headerInfo.numDims,g=A.headerInfo.height*A.headerInfo.width,n=0,a=0,o=0,B=A.pixels.resultMask,C=A.pixels.resultPixels;if(B)if(I>1){if(e)for(n=0;n1&&i!==t)if(e)for(n=0;n=-128&&e<=127;break;case 1:t=e>=0&&e<=255;break;case 2:t=e>=-32768&&e<=32767;break;case 3:t=e>=0&&e<=65536;break;case 4:t=e>=-2147483648&&e<=2147483647;break;case 5:t=e>=0&&e<=4294967296;break;case 6:t=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:t=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:t=!1}return t},getDataTypeSize:function(A){var e=0;switch(A){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=A}return e},getDataTypeUsed:function(A,e){var t=A;switch(A){case 2:case 4:t=A-e;break;case 3:case 5:t=A-2*e;break;case 6:t=0===e?A:1===e?2:1;break;case 7:t=0===e?A:A-2*e+1;break;default:t=A}return t},getOnePixel:function(A,e,t,i){var r=0;switch(t){case 0:r=i.getInt8(e);break;case 1:r=i.getUint8(e);break;case 2:r=i.getInt16(e,!0);break;case 3:r=i.getUint16(e,!0);break;case 4:r=i.getInt32(e,!0);break;case 5:r=i.getUInt32(e,!0);break;case 6:r=i.getFloat32(e,!0);break;case 7:r=i.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return r},swapDimensionOrder:function(A,e,t,i,r){var I=0,g=0,n=0,a=0,o=A;if(t>1)if(o=new i(e*t),r)for(I=0;I5)throw"unsupported lerc version 2."+g;Q.readMask(A,r),I.numValidPixel===I.width*I.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var a=I.width*I.height;r.pixels.resultPixels=new n(a*I.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var o,B=!e.returnPixelInterleavedDims;if(0!==I.numValidPixel)if(I.zMax===I.zMin)Q.constructConstantSurface(r,B);else if(g>=4&&Q.checkMinMaxRanges(A,r))Q.constructConstantSurface(r,B);else{var C=new DataView(A,r.ptr,2),E=C.getUint8(0);if(r.ptr++,E)Q.readDataOneSweep(A,r,n,B);else if(g>1&&I.imageType<=1&&Math.abs(I.maxZError-.5)<1e-5){var s=C.getUint8(1);if(r.ptr++,r.encodeMode=s,s>2||g<4&&s>1)throw"Invalid Huffman flag "+s;s?Q.readHuffman(A,r,n,B):Q.readTiles(A,r,n,B)}else Q.readTiles(A,r,n,B)}r.eofOffset=r.ptr,e.inputOffset?(o=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(o)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(o=r.headerInfo.blobSize-r.ptr,Math.abs(o)>=1&&(r.eofOffset=r.headerInfo.blobSize));var f={width:I.width,height:I.height,pixelData:r.pixels.resultPixels,minValue:I.zMin,maxValue:I.zMax,validPixelCount:I.numValidPixel,dimCount:I.numDims,dimStats:{minValues:I.minValues,maxValues:I.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&Q.isValidPixelValue(I.imageType,t)){var c=r.pixels.resultMask;for(i=0;i1&&(o&&f.push(o),d.fileInfo.mask&&d.fileInfo.mask.numBytes>0&&w++),E++,u.pixels.push(d.pixelData),u.statistics.push({minValue:d.minValue,maxValue:d.maxValue,noDataValue:d.noDataValue,dimStats:d.dimStats})}if(i>1&&w>1){for(Q=u.width*u.height,u.bandMasks=f,(o=new Uint8Array(Q)).set(f[0]),B=1;B1&&void 0!==arguments[1]?arguments[1]:0;if(!jA)throw new Error("ZSTDDecoder: Await .init() before decoding.");var t=A.byteLength,i=jA.exports.malloc(t);WA.set(A,i),e=e||Number(jA.exports.ZSTD_findDecompressedSize(i,t));var r=jA.exports.malloc(e),I=jA.exports.ZSTD_decompress(r,e,i,t),g=WA.slice(r,r+I);return jA.exports.free(i),jA.exports.free(r),g}}]),A}(),ee="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEEdCAAbiECCyAAQQh2IgEgAkEYbCIAQYwIaigCAGwgAEGICGooAgBqIgJBA3YgAmogAEGACGooAgAgAEGECGooAgAgAWxqSQs3ACAAIAMgBCAFQYAQEDMiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQMgVBuH8LC78DAQN/IwBBIGsiBSQAIAVBCGogAiADEAYiAhADRQRAIAAgAWoiB0F9aiEGIAUgBBAOIARBBGohAiAFLQACIQMDQEEAIAAgBkkgBUEIahAEGwRAIAAgAiAFQQhqIAMQAkECdGoiBC8BADsAACAFQQhqIAQtAAIQASAAIAQtAANqIgQgAiAFQQhqIAMQAkECdGoiAC8BADsAACAFQQhqIAAtAAIQASAEIAAtAANqIQAMAQUgB0F+aiEEA0AgBUEIahAEIAAgBEtyRQRAIAAgAiAFQQhqIAMQAkECdGoiBi8BADsAACAFQQhqIAYtAAIQASAAIAYtAANqIQAMAQsLA0AgACAES0UEQCAAIAIgBUEIaiADEAJBAnRqIgYvAQA7AAAgBUEIaiAGLQACEAEgACAGLQADaiEADAELCwJAIAAgB08NACAAIAIgBUEIaiADEAIiA0ECdGoiAC0AADoAACAALQADQQFGBEAgBUEIaiAALQACEAEMAQsgBSgCDEEfSw0AIAVBCGogAiADQQJ0ai0AAhABIAUoAgxBIUkNACAFQSA2AgwLIAFBbCAFQQhqEAobIQILCwsgBUEgaiQAIAILkgIBBH8jAEFAaiIJJAAgCSADQTQQCyEDAkAgBEECSA0AIAMgBEECdGooAgAhCSADQTxqIAgQIyADQQE6AD8gAyACOgA+QQAhBCADKAI8IQoDQCAEIAlGDQEgACAEQQJ0aiAKNgEAIARBAWohBAwAAAsAC0EAIQkDQCAGIAlGRQRAIAMgBSAJQQF0aiIKLQABIgtBAnRqIgwoAgAhBCADQTxqIAotAABBCHQgCGpB//8DcRAjIANBAjoAPyADIAcgC2siCiACajoAPiAEQQEgASAKa3RqIQogAygCPCELA0AgACAEQQJ0aiALNgEAIARBAWoiBCAKSQ0ACyAMIAo2AgAgCUEBaiEJDAELCyADQUBrJAALowIBCX8jAEHQAGsiCSQAIAlBEGogBUE0EAsaIAcgBmshDyAHIAFrIRADQAJAIAMgCkcEQEEBIAEgByACIApBAXRqIgYtAAEiDGsiCGsiC3QhDSAGLQAAIQ4gCUEQaiAMQQJ0aiIMKAIAIQYgCyAPTwRAIAAgBkECdGogCyAIIAUgCEE0bGogCCAQaiIIQQEgCEEBShsiCCACIAQgCEECdGooAgAiCEEBdGogAyAIayAHIA4QYyAGIA1qIQgMAgsgCUEMaiAOECMgCUEBOgAPIAkgCDoADiAGIA1qIQggCSgCDCELA0AgBiAITw0CIAAgBkECdGogCzYBACAGQQFqIQYMAAALAAsgCUHQAGokAA8LIAwgCDYCACAKQQFqIQoMAAALAAs0ACAAIAMgBCAFEDYiBRADBEAgBQ8LIAUgBEkEfyABIAIgAyAFaiAEIAVrIAAQNAVBuH8LCyMAIAA/AEEQdGtB//8DakEQdkAAQX9GBEBBAA8LQQAQAEEBCzsBAX8gAgRAA0AgACABIAJBgCAgAkGAIEkbIgMQCyEAIAFBgCBqIQEgAEGAIGohACACIANrIgINAAsLCwYAIAAQAwsLqBUJAEGICAsNAQAAAAEAAAACAAAAAgBBoAgLswYBAAAAAQAAAAIAAAACAAAAJgAAAIIAAAAhBQAASgAAAGcIAAAmAAAAwAEAAIAAAABJBQAASgAAAL4IAAApAAAALAIAAIAAAABJBQAASgAAAL4IAAAvAAAAygIAAIAAAACKBQAASgAAAIQJAAA1AAAAcwMAAIAAAACdBQAASgAAAKAJAAA9AAAAgQMAAIAAAADrBQAASwAAAD4KAABEAAAAngMAAIAAAABNBgAASwAAAKoKAABLAAAAswMAAIAAAADBBgAATQAAAB8NAABNAAAAUwQAAIAAAAAjCAAAUQAAAKYPAABUAAAAmQQAAIAAAABLCQAAVwAAALESAABYAAAA2gQAAIAAAABvCQAAXQAAACMUAABUAAAARQUAAIAAAABUCgAAagAAAIwUAABqAAAArwUAAIAAAAB2CQAAfAAAAE4QAAB8AAAA0gIAAIAAAABjBwAAkQAAAJAHAACSAAAAAAAAAAEAAAABAAAABQAAAA0AAAAdAAAAPQAAAH0AAAD9AAAA/QEAAP0DAAD9BwAA/Q8AAP0fAAD9PwAA/X8AAP3/AAD9/wEA/f8DAP3/BwD9/w8A/f8fAP3/PwD9/38A/f//AP3//wH9//8D/f//B/3//w/9//8f/f//P/3//38AAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABEAAAASAAAAEwAAABQAAAAVAAAAFgAAABcAAAAYAAAAGQAAABoAAAAbAAAAHAAAAB0AAAAeAAAAHwAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACwAAAAwAAAANAAAADgAAAA8AAAAQAAAAEQAAABIAAAATAAAAFAAAABUAAAAWAAAAFwAAABgAAAAZAAAAGgAAABsAAAAcAAAAHQAAAB4AAAAfAAAAIAAAACEAAAAiAAAAIwAAACUAAAAnAAAAKQAAACsAAAAvAAAAMwAAADsAAABDAAAAUwAAAGMAAACDAAAAAwEAAAMCAAADBAAAAwgAAAMQAAADIAAAA0AAAAOAAAADAAEAQeAPC1EBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAEAAAABQAAAAcAAAAIAAAACQAAAAoAAAALAAAADAAAAA0AAAAOAAAADwAAABAAQcQQC4sBAQAAAAIAAAADAAAABAAAAAUAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAABIAAAAUAAAAFgAAABgAAAAcAAAAIAAAACgAAAAwAAAAQAAAAIAAAAAAAQAAAAIAAAAEAAAACAAAABAAAAAgAAAAQAAAAIAAAAAAAQBBkBIL5gQBAAAAAQAAAAEAAAABAAAAAgAAAAIAAAADAAAAAwAAAAQAAAAGAAAABwAAAAgAAAAJAAAACgAAAAsAAAAMAAAADQAAAA4AAAAPAAAAEAAAAAEAAAAEAAAACAAAAAAAAAABAAEBBgAAAAAAAAQAAAAAEAAABAAAAAAgAAAFAQAAAAAAAAUDAAAAAAAABQQAAAAAAAAFBgAAAAAAAAUHAAAAAAAABQkAAAAAAAAFCgAAAAAAAAUMAAAAAAAABg4AAAAAAAEFEAAAAAAAAQUUAAAAAAABBRYAAAAAAAIFHAAAAAAAAwUgAAAAAAAEBTAAAAAgAAYFQAAAAAAABwWAAAAAAAAIBgABAAAAAAoGAAQAAAAADAYAEAAAIAAABAAAAAAAAAAEAQAAAAAAAAUCAAAAIAAABQQAAAAAAAAFBQAAACAAAAUHAAAAAAAABQgAAAAgAAAFCgAAAAAAAAULAAAAAAAABg0AAAAgAAEFEAAAAAAAAQUSAAAAIAABBRYAAAAAAAIFGAAAACAAAwUgAAAAAAADBSgAAAAAAAYEQAAAABAABgRAAAAAIAAHBYAAAAAAAAkGAAIAAAAACwYACAAAMAAABAAAAAAQAAAEAQAAACAAAAUCAAAAIAAABQMAAAAgAAAFBQAAACAAAAUGAAAAIAAABQgAAAAgAAAFCQAAACAAAAULAAAAIAAABQwAAAAAAAAGDwAAACAAAQUSAAAAIAABBRQAAAAgAAIFGAAAACAAAgUcAAAAIAADBSgAAAAgAAQFMAAAAAAAEAYAAAEAAAAPBgCAAAAAAA4GAEAAAAAADQYAIABBgBcLhwIBAAEBBQAAAAAAAAUAAAAAAAAGBD0AAAAAAAkF/QEAAAAADwX9fwAAAAAVBf3/HwAAAAMFBQAAAAAABwR9AAAAAAAMBf0PAAAAABIF/f8DAAAAFwX9/38AAAAFBR0AAAAAAAgE/QAAAAAADgX9PwAAAAAUBf3/DwAAAAIFAQAAABAABwR9AAAAAAALBf0HAAAAABEF/f8BAAAAFgX9/z8AAAAEBQ0AAAAQAAgE/QAAAAAADQX9HwAAAAATBf3/BwAAAAEFAQAAABAABgQ9AAAAAAAKBf0DAAAAABAF/f8AAAAAHAX9//8PAAAbBf3//wcAABoF/f//AwAAGQX9//8BAAAYBf3//wBBkBkLhgQBAAEBBgAAAAAAAAYDAAAAAAAABAQAAAAgAAAFBQAAAAAAAAUGAAAAAAAABQgAAAAAAAAFCQAAAAAAAAULAAAAAAAABg0AAAAAAAAGEAAAAAAAAAYTAAAAAAAABhYAAAAAAAAGGQAAAAAAAAYcAAAAAAAABh8AAAAAAAAGIgAAAAAAAQYlAAAAAAABBikAAAAAAAIGLwAAAAAAAwY7AAAAAAAEBlMAAAAAAAcGgwAAAAAACQYDAgAAEAAABAQAAAAAAAAEBQAAACAAAAUGAAAAAAAABQcAAAAgAAAFCQAAAAAAAAUKAAAAAAAABgwAAAAAAAAGDwAAAAAAAAYSAAAAAAAABhUAAAAAAAAGGAAAAAAAAAYbAAAAAAAABh4AAAAAAAAGIQAAAAAAAQYjAAAAAAABBicAAAAAAAIGKwAAAAAAAwYzAAAAAAAEBkMAAAAAAAUGYwAAAAAACAYDAQAAIAAABAQAAAAwAAAEBAAAABAAAAQFAAAAIAAABQcAAAAgAAAFCAAAACAAAAUKAAAAIAAABQsAAAAAAAAGDgAAAAAAAAYRAAAAAAAABhQAAAAAAAAGFwAAAAAAAAYaAAAAAAAABh0AAAAAAAAGIAAAAAAAEAYDAAEAAAAPBgOAAAAAAA4GA0AAAAAADQYDIAAAAAAMBgMQAAAAAAsGAwgAAAAACgYDBABBpB0L2QEBAAAAAwAAAAcAAAAPAAAAHwAAAD8AAAB/AAAA/wAAAP8BAAD/AwAA/wcAAP8PAAD/HwAA/z8AAP9/AAD//wAA//8BAP//AwD//wcA//8PAP//HwD//z8A//9/AP///wD///8B////A////wf///8P////H////z////9/AAAAAAEAAAACAAAABAAAAAAAAAACAAAABAAAAAgAAAAAAAAAAQAAAAIAAAABAAAABAAAAAQAAAAEAAAABAAAAAgAAAAIAAAACAAAAAcAAAAIAAAACQAAAAoAAAALAEGgIAsDwBBQ",te={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},ie={};for(var re in te)te.hasOwnProperty(re)&&(ie[te[re]]=parseInt(re,10));ie.BitsPerSample,ie.ExtraSamples,ie.SampleFormat,ie.StripByteCounts,ie.StripOffsets,ie.StripRowCounts,ie.TileByteCounts,ie.TileOffsets,ie.SubIFDs;var Ie={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},ge={};for(var ne in Ie)Ie.hasOwnProperty(ne)&&(ge[Ie[ne]]=parseInt(ne,10));var ae=1,oe=0,Be=1,Ce=2,Qe={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},Ee={};for(var se in Qe)Qe.hasOwnProperty(se)&&(Ee[Qe[se]]=parseInt(se,10));function fe(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var ce=new Ae,he=function(A){s(t,w);var e=fe(t);function t(A){var i;return B(this,t),(i=e.call(this)).planarConfiguration=void 0!==A.PlanarConfiguration?A.PlanarConfiguration:1,i.samplesPerPixel=void 0!==A.SamplesPerPixel?A.SamplesPerPixel:1,i.addCompression=A.LercParameters[ae],i}return Q(t,[{key:"decodeBlock",value:function(A){switch(this.addCompression){case oe:break;case Be:A=YA(new Uint8Array(A)).buffer;break;case Ce:A=ce.decode(new Uint8Array(A)).buffer;break;default:throw new Error("Unsupported LERC additional compression method identifier: ".concat(this.addCompression))}return zA.decode(A,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}}]),t}(),le=Object.freeze({__proto__:null,zstd:ce,default:he});function ue(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var we=function(A){s(I,w);var t,i=ue(I);function I(){var A;if(B(this,I),A=i.call(this),"undefined"==typeof createImageBitmap)throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if("undefined"==typeof document&&"undefined"==typeof OffscreenCanvas)throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available");return A}return Q(I,[{key:"decode",value:(t=e(r.mark((function A(e,t){var i,I,g,n;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return i=new Blob([t]),A.next=3,createImageBitmap(i);case 3:return I=A.sent,"undefined"!=typeof document?((g=document.createElement("canvas")).width=I.width,g.height=I.height):g=new OffscreenCanvas(I.width,I.height),(n=g.getContext("2d")).drawImage(I,0,0),A.abrupt("return",n.getImageData(0,0,I.width,I.height).data.buffer);case 8:case"end":return A.stop()}}),A)}))),function(A,e){return t.apply(this,arguments)})}]),I}(),de=Object.freeze({__proto__:null,default:we});';return new dS(typeof Buffer<"u"?"data:application/javascript;base64,"+Buffer.from(i,"binary").toString("base64"):URL.createObjectURL(new Blob([i],{type:"application/javascript"})))}var ES=Xi(()=>{pS()});var vS=_r(()=>{});var SS=_r(()=>{});var TS=_r(()=>{});var pt={ADD:"add",REMOVE:"remove"};var In={PROPERTYCHANGE:"propertychange"};var K={CHANGE:"change",ERROR:"error",BLUR:"blur",CLEAR:"clear",CONTEXTMENU:"contextmenu",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",FOCUS:"focus",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",RESIZE:"resize",TOUCHMOVE:"touchmove",WHEEL:"wheel"};var bd=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}},xr=bd;function Fy(i,e,t){let n,r;t=t||gi;let o=0,s=i.length,a=!1;for(;o>1),r=+t(i[n],e),r<0?o=n+1:(s=n,a=!r);return a?o:~o}function gi(i,e){return i>e?1:ie?-1:0}function va(i,e,t){if(i[0]<=e)return 0;let n=i.length;if(e<=i[n-1])return n-1;if(typeof t=="function"){for(let r=1;r0?r-1:r}return n-1}if(t>0){for(let r=1;r0||t&&s===0)})}function bi(){return!0}function ji(){return!1}function eo(){}function Gh(i){let e,t,n;return function(){let r=Array.prototype.slice.call(arguments);return(!t||this!==n||!Mt(r,t))&&(n=this,t=r,e=i.apply(this,arguments)),e}}function Sa(i){function e(){let t;try{t=i()}catch(n){return Promise.reject(n)}return t instanceof Promise?t:Promise.resolve(t)}return e()}function Ln(i){for(let e in i)delete i[e]}function Di(i){let e;for(e in i)return!1;return!e}var Dd=class{constructor(e){this.propagationStopped,this.defaultPrevented,this.type=e,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}};function ky(i){i.stopPropagation()}var Pe=Dd;var Fd=class extends xr{constructor(e){super(),this.eventTarget_=e,this.pendingRemovals_=null,this.dispatching_=null,this.listeners_=null}addEventListener(e,t){if(!e||!t)return;let n=this.listeners_||(this.listeners_={}),r=n[e]||(n[e]=[]);r.includes(t)||r.push(t)}dispatchEvent(e){let t=typeof e=="string",n=t?e:e.type,r=this.listeners_&&this.listeners_[n];if(!r)return;let o=t?new Pe(e):e;o.target||(o.target=this.eventTarget_||this);let s=this.dispatching_||(this.dispatching_={}),a=this.pendingRemovals_||(this.pendingRemovals_={});n in s||(s[n]=0,a[n]=0),++s[n];let l;for(let A=0,c=r.length;A0:!1}removeEventListener(e,t){if(!this.listeners_)return;let n=this.listeners_[e];if(!n)return;let r=n.indexOf(t);r!==-1&&(this.pendingRemovals_&&e in this.pendingRemovals_?(n[r]=eo,++this.pendingRemovals_[e]):(n.splice(r,1),n.length===0&&delete this.listeners_[e]))}},Mn=Fd;function ee(i,e,t,n,r){if(r){let s=t;t=function(a){return i.removeEventListener(e,t),s.call(n??this,a)}}else n&&n!==i&&(t=t.bind(n));let o={target:i,type:e,listener:t};return i.addEventListener(e,t),o}function jo(i,e,t,n){return ee(i,e,t,n,!0)}function ce(i){i&&i.target&&(i.target.removeEventListener(i.type,i.listener),Ln(i))}var Ta=class extends Mn{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(K.CHANGE)}getRevision(){return this.revision_}onInternal(e,t){if(Array.isArray(e)){let n=e.length,r=new Array(n);for(let o=0;o0;)this.pop()}extend(e){for(let t=0,n=e.length;tthis.getLength())throw new Error("Index out of bounds: "+e);this.unique_&&this.assertUnique_(t),this.array_.splice(e,0,t),this.updateLength_(),this.dispatchEvent(new Ra(pt.ADD,t,e))}pop(){return this.removeAt(this.getLength()-1)}push(e){this.unique_&&this.assertUnique_(e);let t=this.getLength();return this.insertAt(t,e),this.getLength()}remove(e){let t=this.array_;for(let n=0,r=t.length;n=this.getLength())return;let t=this.array_[e];return this.array_.splice(e,1),this.updateLength_(),this.dispatchEvent(new Ra(pt.REMOVE,t,e)),t}setAt(e,t){let n=this.getLength();if(e>=n){this.insertAt(e,t);return}if(e<0)throw new Error("Index out of bounds: "+e);this.unique_&&this.assertUnique_(t,e);let r=this.array_[e];this.array_[e]=t,this.dispatchEvent(new Ra(pt.REMOVE,r,e)),this.dispatchEvent(new Ra(pt.ADD,t,e))}updateLength_(){this.set(Py.LENGTH,this.array_.length)}assertUnique_(e,t){for(let n=0,r=this.array_.length;nr&&(l=l|kt.RIGHT),ao&&(l=l|kt.ABOVE),l===kt.UNKNOWN&&(l=kt.INTERSECTING),l}function ot(){return[1/0,1/0,-1/0,-1/0]}function Li(i,e,t,n,r){return r?(r[0]=i,r[1]=e,r[2]=t,r[3]=n,r):[i,e,t,n]}function to(i){return Li(1/0,1/0,-1/0,-1/0,i)}function Wo(i,e){let t=i[0],n=i[1];return Li(t,n,t,n,e)}function Qa(i,e,t,n,r){let o=to(r);return Pd(o,i,e,t,n)}function Mi(i,e){return i[0]==e[0]&&i[2]==e[2]&&i[1]==e[1]&&i[3]==e[3]}function ba(i,e){return e[0]i[2]&&(i[2]=e[2]),e[1]i[3]&&(i[3]=e[3]),i}function Ps(i,e){e[0]i[2]&&(i[2]=e[0]),e[1]i[3]&&(i[3]=e[1])}function Pd(i,e,t,n,r){for(;te[0]?n[0]=i[0]:n[0]=e[0],i[1]>e[1]?n[1]=i[1]:n[1]=e[1],i[2]=e[0]&&i[1]<=e[3]&&i[3]>=e[1]}function mi(i){return i[2]=s&&p<=l),!n&&o&kt.RIGHT&&!(r&kt.RIGHT)&&(d=f-(u-l)*g,n=d>=a&&d<=A),!n&&o&kt.BELOW&&!(r&kt.BELOW)&&(p=u-(f-a)/g,n=p>=s&&p<=l),!n&&o&kt.LEFT&&!(r&kt.LEFT)&&(d=f-(u-s)*g,n=d>=a&&d<=A)}return n}function Fa(i,e,t,n){if(mi(i))return to(t);let r=[];if(n>1){let a=i[2]-i[0],l=i[3]-i[1];for(let A=0;A=t[2])){let r=ue(t),s=Math.floor((n[0]-t[0])/r)*r;i[0]-=s,i[2]-=s}return i}function La(i,e,t){if(e.canWrapX()){let n=e.getExtent();if(!isFinite(i[0])||!isFinite(i[2]))return[[n[0],i[1],n[2],i[3]]];Nd(i,e);let r=ue(n);if(ue(i)>r&&!t)return[[n[0],i[1],n[2],i[3]]];if(i[0]n[2])return[[i[0],i[1],n[2],i[3]],[n[0],i[1],i[2]-r,i[3]]]}return[i]}function Ee(i,e,t){return Math.min(Math.max(i,e),t)}function Uy(i,e,t,n,r,o){let s=r-t,a=o-n;if(s!==0||a!==0){let l=((i-t)*s+(e-n)*a)/(s*s+a*a);l>1?(t=r,n=o):l>0&&(t+=s*l,n+=a*l)}return Ji(i,e,t,n)}function Ji(i,e,t,n){let r=t-i,o=n-e;return r*r+o*o}function zy(i){let e=i.length;for(let n=0;no&&(o=l,r=a)}if(o===0)return null;let s=i[r];i[r]=i[n],i[n]=s;for(let a=n+1;a=0;n--){t[n]=i[n][e]/i[n][n];for(let r=n-1;r>=0;r--)i[r][e]-=i[r][n]*t[n]}return t}function Hh(i){return i*180/Math.PI}function Cn(i){return i*Math.PI/180}function ki(i,e){let t=i%e;return t*e<0?t+e:t}function ai(i,e,t){return i+t*(e-i)}function $o(i,e){let t=Math.pow(10,e);return Math.round(i*t)/t}function _A(i,e){return Math.floor($o(i,e))}function xA(i,e){return Math.ceil($o(i,e))}function qh(i,e,t){if(i>=e&&iOd.warn||console.warn(...i)}function Ud(...i){Yy>Od.error||console.error(...i)}function Ma(i,e,t){let n=t!==void 0?i.toFixed(t):""+i,r=n.indexOf(".");return r=r===-1?n.length:r,r>e?n:new Array(1+e-r).join("0")+n}function Vy(i,e){return i[0]+=+e[0],i[1]+=+e[1],i}function Hy(i,e){let t=e.getRadius(),n=e.getCenter(),r=n[0],o=n[1],s=i[0],a=i[1],l=s-r,A=a-o;l===0&&A===0&&(l=1);let c=Math.sqrt(l*l+A*A),h=r+t*l/c,u=o+t*A/c;return[h,u]}function BA(i,e){let t=i[0],n=i[1],r=e[0],o=e[1],s=r[0],a=r[1],l=o[0],A=o[1],c=l-s,h=A-a,u=c===0&&h===0?0:(c*(t-s)+h*(n-a))/(c*c+h*h||0),f,g;return u<=0?(f=s,g=a):u>=1?(f=l,g=A):(f=s+u*c,g=a+u*h),[f,g]}function Ht(i,e){let t=!0;for(let n=i.length-1;n>=0;--n)if(i[n]!=e[n]){t=!1;break}return t}function ka(i,e){let t=Math.cos(e),n=Math.sin(e),r=i[0]*t-i[1]*n,o=i[1]*t+i[0]*n;return i[0]=r,i[1]=o,i}function qy(i,e){return i[0]*=e,i[1]*=e,i}function kn(i,e){let t=i[0]-e[0],n=i[1]-e[1];return t*t+n*n}function Pa(i,e){return Math.sqrt(kn(i,e))}function Ky(i,e){return kn(i,BA(i,e))}function Zo(i,e){if(e.canWrapX()){let t=ue(e.getExtent()),n=Xy(i,e,t);n&&(i[0]-=n*t)}return i}function Xy(i,e,t){let n=e.getExtent(),r=0;return e.canWrapX()&&(i[0]n[2])&&(t=t||ue(n),r=Math.floor((i[0]-n[0])/t)),r}var e2={9001:"m",9002:"ft",9003:"us-ft",9101:"radians",9102:"degrees"};function zd(i){return e2[i]}var Ar={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};var Yd=class{constructor(e){this.code_=e.code,this.units_=e.units,this.extent_=e.extent!==void 0?e.extent:null,this.worldExtent_=e.worldExtent!==void 0?e.worldExtent:null,this.axisOrientation_=e.axisOrientation!==void 0?e.axisOrientation:"enu",this.global_=e.global!==void 0?e.global:!1,this.canWrapX_=!!(this.global_&&this.extent_),this.getPointResolutionFunc_=e.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=e.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||Ar[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(e){this.global_=e,this.canWrapX_=!!(e&&this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(e){this.defaultTileGrid_=e}setExtent(e){this.extent_=e,this.canWrapX_=!!(this.global_&&e)}setWorldExtent(e){this.worldExtent_=e}setGetPointResolution(e){this.getPointResolutionFunc_=e}getPointResolutionFunc(){return this.getPointResolutionFunc_}},Pn=Yd;var wA=6378137,Na=Math.PI*wA,t2=[-Na,-Na,Na,Na],i2=[-180,-85,180,85],Xh=wA*Math.log(Math.tan(Math.PI/2)),es=class extends Pn{constructor(e){super({code:e,units:"m",extent:t2,global:!0,worldExtent:i2,getPointResolution:function(t,n){return t/Math.cosh(n[1]/wA)}})}},Vd=[new es("EPSG:3857"),new es("EPSG:102100"),new es("EPSG:102113"),new es("EPSG:900913"),new es("http://www.opengis.net/def/crs/EPSG/0/3857"),new es("http://www.opengis.net/gml/srs/epsg.xml#3857")];function jy(i,e,t,n){let r=i.length;t=t>1?t:2,n=n??t,e===void 0&&(t>2?e=i.slice():e=new Array(r));for(let o=0;oXh?s=Xh:s<-Xh&&(s=-Xh),e[o+1]=s}return e}function Wy(i,e,t,n){let r=i.length;t=t>1?t:2,n=n??t,e===void 0&&(t>2?e=i.slice():e=new Array(r));for(let o=0;oi_&&(e=i_);let n=Cn(e),r=Math.sin(n),o=Math.cos(n),s=r/o,a=s*s,l=a*a,A=Cn(i),c=a_(t.number),h=Cn(c),u=Jh/Math.sqrt(1-Nn*r**2),f=Os*o**2,g=o*qh(A-h,-Math.PI,Math.PI),p=g*g,d=p*g,I=d*g,m=I*g,C=m*g,_=Jh*(s_*n-o2*Math.sin(2*n)+s2*Math.sin(4*n)-a2*Math.sin(6*n)),y=Wh*u*(g+d/6*(1-a+f)+m/120*(5-18*a+l+72*f-58*Os))+5e5,w=Wh*(_+u*s*(p/2+I/24*(5-a+9*f+4*f**2)+C/720*(61-58*a+l+600*f-330*Os)));return t.north||(w+=1e7),[y,w]}function a_(i){return(i-1)*6-180+3}var p2=[/^EPSG:(\d+)$/,/^urn:ogc:def:crs:EPSG::(\d+)$/,/^http:\/\/www\.opengis\.net\/def\/crs\/EPSG\/0\/(\d+)$/];function l_(i){let e=0;for(let r of p2){let o=i.match(r);if(o){e=parseInt(o[1]);break}}if(!e)return null;let t=0,n=!1;return e>32700&&e<32761?t=e-32700:e>32600&&e<32661&&(n=!0,t=e-32600),t?{number:t,north:n}:null}function n_(i,e){return function(t,n,r,o){let s=t.length;r=r>1?r:2,o=o??r,n||(r>2?n=t.slice():n=new Array(s));for(let a=0;a=l?e[s+A]:a[A]}return t}}function vA(i,e){return $d(),ts(i,"EPSG:4326",e!==void 0?e:"EPSG:3857")}function ep(i,e){let t=ts(i,e!==void 0?e:"EPSG:3857","EPSG:4326"),n=t[0];return(n<-180||n>180)&&(t[0]=ki(n+180,360)-180),t}function On(i,e){if(i===e)return!0;let t=i.getUnits()===e.getUnits();return(i.getCode()===e.getCode()||$i(i,e)===Zd)&&t}function $i(i,e){let t=i.getCode(),n=e.getCode(),r=jh(t,n);if(r)return r;let o=null,s=null;for(let l of m2)o||(o=l(i)),s||(s=l(e));if(!o&&!s)return null;let a="EPSG:4326";if(s)if(o)r=jd(o.inverse,s.forward);else{let l=jh(t,a);l&&(r=jd(l,s.forward))}else{let l=jh(a,n);l&&(r=jd(o.inverse,l))}return r&&(Jd(i),Jd(e),Oa(i,e,r)),r}function jd(i,e){return function(t,n,r,o){return n=i(t,n,r,o),e(n,n,r,o)}}function ro(i,e){let t=fe(i),n=fe(e);return $i(t,n)}function ts(i,e,t){let n=ro(e,t);if(!n){let r=fe(e).getCode(),o=fe(t).getCode();throw new Error(`No transform available between ${r} and ${o}`)}return n(i,void 0,i.length)}function SA(i,e,t,n){let r=ro(e,t);return Fa(i,r,void 0,n)}var Gn=null;function y2(i){Gn=fe(i)}function st(){return Gn}function f_(){y2("EPSG:4326")}function Zi(i,e){return Gn?ts(i,e,Gn):i}function Ke(i,e){return Gn?ts(i,Gn,e):(Wd&&!Ht(i,[0,0])&&i[0]>=-180&&i[0]<=180&&i[1]>=-90&&i[1]<=90&&(Wd=!1,Kh("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),i)}function Ei(i,e){return Gn?SA(i,e,Gn):i}function Bt(i,e){return Gn?SA(i,Gn,e):i}function iu(i,e){if(!Gn)return i;let t=fe(e).getMetersPerUnit(),n=Gn.getMetersPerUnit();return t&&n?i*t/n:i}function _2(){h_(Vd),h_(Hd),C2(Hd,Vd,jy,Wy)}_2();var tp=new Array(6);function Ce(){return[1,0,0,1,0,0]}function TA(i){return nu(i,1,0,0,1,0,0)}function Un(i,e){let t=i[0],n=i[1],r=i[2],o=i[3],s=i[4],a=i[5],l=e[0],A=e[1],c=e[2],h=e[3],u=e[4],f=e[5];return i[0]=t*l+r*A,i[1]=n*l+o*A,i[2]=t*c+r*h,i[3]=n*c+o*h,i[4]=t*u+r*f+s,i[5]=n*u+o*f+a,i}function nu(i,e,t,n,r,o,s){return i[0]=e,i[1]=t,i[2]=n,i[3]=r,i[4]=o,i[5]=s,i}function Us(i,e){return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i}function be(i,e){let t=e[0],n=e[1];return e[0]=i[0]*t+i[2]*n+i[4],e[1]=i[1]*t+i[3]*n+i[5],e}function d_(i,e){let t=Math.cos(e),n=Math.sin(e);return Un(i,nu(tp,t,n,-n,t,0,0))}function is(i,e,t){return Un(i,nu(tp,e,0,0,t,0,0))}function ns(i,e,t){return Un(i,nu(tp,1,0,0,1,e,t))}function ct(i,e,t,n,r,o,s,a){let l=Math.sin(o),A=Math.cos(o);return i[0]=n*A,i[1]=r*l,i[2]=-n*l,i[3]=r*A,i[4]=s*n*A-a*n*l+e,i[5]=s*r*l+a*r*A+t,i}function en(i,e){let t=x2(e);he(t!==0,"Transformation matrix cannot be inverted");let n=e[0],r=e[1],o=e[2],s=e[3],a=e[4],l=e[5];return i[0]=s/t,i[1]=-r/t,i[2]=-o/t,i[3]=n/t,i[4]=(o*l-s*a)/t,i[5]=-(n*l-r*a)/t,i}function x2(i){return i[0]*i[3]-i[1]*i[2]}var B2=[1e5,1e5,1e5,1e5,2,2];function p_(i){return"matrix("+i.join(", ")+")"}function g_(i){return i.substring(7,i.length-1).split(",").map(parseFloat)}function m_(i,e){let t=g_(i),n=g_(e);for(let r=0;r<6;++r)if(Math.round((t[r]-n[r])*B2[r])!==0)return!1;return!0}function li(i,e,t,n,r,o,s){o=o||[],s=s||2;let a=0;for(let l=e;l{if(!n)return this.getSimplifiedGeometry(t);let r=this.clone();return r.applyTransform(n),r.getSimplifiedGeometry(t)})}simplifyTransformed(e,t){return this.simplifyTransformedInternal(this.getRevision(),e,t)}clone(){return ne()}closestPointXY(e,t,n,r){return ne()}containsXY(e,t){return this.closestPointXY(e,t,w2,Number.MIN_VALUE)===0}getClosestPoint(e,t){return t=t||[NaN,NaN],this.closestPointXY(e[0],e[1],t,1/0),t}intersectsCoordinate(e){return this.containsXY(e[0],e[1])}computeExtent(e){return ne()}getExtent(e){if(this.extentRevision_!=this.getRevision()){let t=this.computeExtent(this.extent_);(isNaN(t[0])||isNaN(t[1]))&&to(t),this.extentRevision_=this.getRevision()}return Gy(this.extent_,e)}rotate(e,t){ne()}scale(e,t,n){ne()}simplify(e){return this.getSimplifiedGeometry(e*e)}getSimplifiedGeometry(e){return ne()}getType(){return ne()}applyTransform(e){ne()}intersectsExtent(e){return ne()}translate(e,t){ne()}transform(e,t){let n=fe(e),r=n.getUnits()=="tile-pixels"?function(o,s,a){let l=n.getExtent(),A=n.getWorldExtent(),c=qe(A)/qe(l);ct(C_,A[0],A[3],c,-c,0,0,0);let h=li(o,0,o.length,a,C_,s),u=ro(n,t);return u?u(h,h,a):h}:ro(n,t);return this.applyTransform(r),this}},ru=ip;var np=class extends ru{constructor(){super(),this.layout="XY",this.stride=2,this.flatCoordinates}computeExtent(e){return Qa(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,e)}getCoordinates(){return ne()}getFirstCoordinate(){return this.flatCoordinates.slice(0,this.stride)}getFlatCoordinates(){return this.flatCoordinates}getLastCoordinate(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)}getLayout(){return this.layout}getSimplifiedGeometry(e){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),e<0||this.simplifiedGeometryMaxMinSquaredTolerance!==0&&e<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;let t=this.getSimplifiedGeometryInternal(e);return t.getFlatCoordinates().length1)h=t;else if(u>0){for(let f=0;fr&&(r=A),o=a,s=l}return r}function bA(i,e,t,n,r){for(let o=0,s=t.length;o0;){let h=A.pop(),u=A.pop(),f=0,g=i[u],p=i[u+1],d=i[h],I=i[h+1];for(let m=u+n;mf&&(c=m,f=y)}f>r&&(l[(c-e)/n]=1,u+n0&&p>f)&&(g<0&&d0&&d>g)){A=h,c=u;continue}o[s++]=A,o[s++]=c,a=A,l=c,A=h,c=u}return o[s++]=A,o[s++]=c,s}function MA(i,e,t,n,r,o,s,a){for(let l=0,A=t.length;lo&&(A-a)*(o-l)-(r-a)*(c-l)>0&&s++:c<=o&&(A-a)*(o-l)-(r-a)*(c-l)<0&&s--,a=A,l=c}return s!==0}function kA(i,e,t,n,r,o){if(t.length===0||!ls(i,e,t[0],n,r,o))return!1;for(let s=1,a=t.length;sI&&(A=(c+h)/2,kA(i,e,t,n,A,g)&&(d=A,I=m)),c=h}return isNaN(d)&&(d=r[o]),s?(s.push(d,g,I),s):[d,g,I]}function lu(i,e,t,n,r){let o=[];for(let s=0,a=t.length;s=r[0]&&o[2]<=r[2]||o[1]>=r[1]&&o[3]<=r[3]?!0:Au(i,e,t,n,function(s,a){return Oy(r,s,a)}):!1}function R_(i,e,t,n,r){for(let o=0,s=t.length;o0}function GA(i,e,t,n,r){r=r!==void 0?r:!1;for(let o=0,s=t.length;o1?s:2,o=o||new Array(s);for(let c=0;c>1;r.0031308?Math.pow(i,1/2.4)*269.025-14.025:i*3294.6}function Cp(i){return i>.2068965?Math.pow(i,3):(i-4/29)*(108/841)}function yp(i){return i>10.314724?Math.pow((i+14.025)/269.025,2.4):i/3294.6}function _p(i){return i>.0088564?Math.pow(i,1/3):i/(108/841)+4/29}function xp(i){let e=yp(i[0]),t=yp(i[1]),n=yp(i[2]),r=_p(e*.222488403+t*.716873169+n*.06060791),o=500*(_p(e*.452247074+t*.399439023+n*.148375274)-r),s=200*(r-_p(e*.016863605+t*.117638439+n*.865350722)),a=Math.atan2(s,o)*(180/Math.PI);return[116*r-16,Math.sqrt(o*o+s*s),a<0?a+360:a,i[3]]}function V_(i){let e=(i[0]+16)/116,t=i[1],n=i[2]*Math.PI/180,r=Cp(e),o=Cp(e+t/500*Math.cos(n)),s=Cp(e-t/200*Math.sin(n)),a=Ip(o*3.021973625-r*1.617392459-s*.404875592),l=Ip(o*-.943766287+r*1.916279586+s*.027607165),A=Ip(o*.069407491-r*.22898585+s*1.159737864);return[Ee(a+.5|0,0,255),Ee(l+.5|0,0,255),Ee(A+.5|0,0,255),i[3]]}function VA(i){if(i==="none")return du;if(zA.hasOwnProperty(i))return zA[i];if(Ep>=F2){let t=0;for(let n in zA)(t++&3)===0&&(delete zA[n],--Ep)}let e=U_(i);e.length!==4&&YA(i);for(let t of e)isNaN(t)&&YA(i);return zA[i]=e,++Ep,e}function Nt(i){return Array.isArray(i)?i:VA(i)}function HA(i){let e=i[0];e!=(e|0)&&(e=e+.5|0);let t=i[1];t!=(t|0)&&(t=t+.5|0);let n=i[2];n!=(n|0)&&(n=n+.5|0);let r=i[3]===void 0?1:Math.round(i[3]*1e3)/1e3;return"rgba("+e+","+t+","+n+","+r+")"}var Bp=class extends Mn{constructor(e,t,n,r){super(),this.extent=e,this.pixelRatio_=n,this.resolution=t,this.state=typeof r=="function"?ie.IDLE:r,this.image_=null,this.loader=typeof r=="function"?r:null}changed(){this.dispatchEvent(K.CHANGE)}getExtent(){return this.extent}getImage(){return this.image_}getPixelRatio(){return this.pixelRatio_}getResolution(){return this.resolution}getState(){return this.state}load(){if(this.state==ie.IDLE&&this.loader){this.state=ie.LOADING,this.changed();let e=this.getResolution(),t=Array.isArray(e)?e[0]:e;Sa(()=>this.loader(this.getExtent(),t,this.getPixelRatio())).then(n=>{"image"in n&&(this.image_=n.image),"extent"in n&&(this.extent=n.extent),"resolution"in n&&(this.resolution=n.resolution),"pixelRatio"in n&&(this.pixelRatio_=n.pixelRatio),(n instanceof HTMLImageElement||P_&&n instanceof ImageBitmap||n instanceof HTMLCanvasElement||n instanceof HTMLVideoElement)&&(this.image_=n),this.state=ie.LOADED}).catch(n=>{this.state=ie.ERROR,console.error(n)}).finally(()=>this.changed())}}setImage(e){this.image_=e}setResolution(e){this.resolution=e}};function H_(i,e,t){let n=i,r=!0,o=!1,s=!1,a=[jo(n,K.LOAD,function(){s=!0,o||e()})];return n.src&&dp?(o=!0,n.decode().then(function(){r&&e()}).catch(function(l){r&&(s?e():t())})):a.push(jo(n,K.ERROR,t)),function(){r=!1,a.forEach(ce)}}function L2(i,e){return new Promise((t,n)=>{function r(){s(),t(i)}function o(){s(),n(new Error("Image load error"))}function s(){i.removeEventListener("load",r),i.removeEventListener("error",o)}i.addEventListener("load",r),i.addEventListener("error",o),e&&(i.src=e)})}function q_(i,e){return e&&(i.src=e),i.src&&dp?new Promise((t,n)=>i.decode().then(()=>t(i)).catch(r=>i.complete&&i.width?t(i):n(r))):L2(i)}var K_=Bp;var vp=class{constructor(){this.cache_={},this.patternCache_={},this.cacheSize_=0,this.maxCacheSize_=1024}clear(){this.cache_={},this.patternCache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let e=0;for(let t in this.cache_){let n=this.cache_[t];(e++&3)===0&&!n.hasListener()&&(delete this.cache_[t],delete this.patternCache_[t],--this.cacheSize_)}}}get(e,t,n){let r=wp(e,t,n);return r in this.cache_?this.cache_[r]:null}getPattern(e,t,n){let r=wp(e,t,n);return r in this.patternCache_?this.patternCache_[r]:null}set(e,t,n,r,o){let s=wp(e,t,n),a=s in this.cache_;this.cache_[s]=r,o&&(r.getImageState()===ie.IDLE&&r.load(),r.getImageState()===ie.LOADING?r.ready().then(()=>{this.patternCache_[s]=ja().createPattern(r.getImage(1),"repeat")}):this.patternCache_[s]=ja().createPattern(r.getImage(1),"repeat")),a||++this.cacheSize_}setSize(e){this.maxCacheSize_=e,this.expire()}};function wp(i,e,t){let n=t?Nt(t):"null";return e+":"+i+":"+n}var Ci=new vp;var qA=null,pu=class extends Mn{constructor(e,t,n,r,o){super(),this.hitDetectionImage_=null,this.image_=e,this.crossOrigin_=n,this.canvas_={},this.color_=o,this.imageState_=r===void 0?ie.IDLE:r,this.size_=e&&e.width&&e.height?[e.width,e.height]:null,this.src_=t,this.tainted_,this.ready_=null}initializeImage_(){this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(this.tainted_===void 0&&this.imageState_===ie.LOADED){qA||(qA=Re(1,1,void 0,{willReadFrequently:!0})),qA.drawImage(this.image_,0,0);try{qA.getImageData(0,0,1,1),this.tainted_=!1}catch{qA=null,this.tainted_=!0}}return this.tainted_===!0}dispatchChangeEvent_(){this.dispatchEvent(K.CHANGE)}handleImageError_(){this.imageState_=ie.ERROR,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=ie.LOADED,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(e){return this.image_||this.initializeImage_(),this.replaceColor_(e),this.canvas_[e]?this.canvas_[e]:this.image_}getPixelRatio(e){return this.replaceColor_(e),this.canvas_[e]?e:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){let e=this.size_[0],t=this.size_[1],n=Re(e,t);n.fillRect(0,0,e,t),this.hitDetectionImage_=n.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(this.imageState_===ie.IDLE){this.image_||this.initializeImage_(),this.imageState_=ie.LOADING;try{this.src_!==void 0&&(this.image_.src=this.src_)}catch{this.handleImageError_()}this.image_ instanceof HTMLImageElement&&q_(this.image_,this.src_).then(e=>{this.image_=e,this.handleImageLoad_()}).catch(this.handleImageError_.bind(this))}}replaceColor_(e){if(!this.color_||this.canvas_[e]||this.imageState_!==ie.LOADED)return;let t=this.image_,n=Re(Math.ceil(t.width*e),Math.ceil(t.height*e)),r=n.canvas;n.scale(e,e),n.drawImage(t,0,0),n.globalCompositeOperation="multiply",n.fillStyle=z_(this.color_),n.fillRect(0,0,r.width/e,r.height/e),n.globalCompositeOperation="destination-in",n.drawImage(t,0,0),this.canvas_[e]=r}ready(){return this.ready_||(this.ready_=new Promise(e=>{if(this.imageState_===ie.LOADED||this.imageState_===ie.ERROR)e();else{let t=()=>{(this.imageState_===ie.LOADED||this.imageState_===ie.ERROR)&&(this.removeEventListener(K.CHANGE,t),e())};this.addEventListener(K.CHANGE,t)}})),this.ready_}};function Wa(i,e,t,n,r,o){let s=e===void 0?void 0:Ci.get(e,t,r);return s||(s=new pu(i,i&&"src"in i?i.src||void 0:e,t,n,r),Ci.set(e,t,r,s,o)),o&&s&&!Ci.getPattern(e,t,r)&&Ci.set(e,t,r,s,o),s}var X_=pu;function tn(i){return i?Array.isArray(i)?HA(i):typeof i=="object"&&"src"in i?M2(i):i:null}function M2(i){if(!i.offset||!i.size)return Ci.getPattern(i.src,"anonymous",i.color);let e=i.src+":"+i.offset,t=Ci.getPattern(e,void 0,i.color);if(t)return t;let n=Ci.get(i.src,"anonymous",null);if(n.getImageState()!==ie.LOADED)return null;let r=Re(i.size[0],i.size[1]);return r.drawImage(n.getImage(1),i.offset[0],i.offset[1],i.size[0],i.size[1],0,0,i.size[0],i.size[1]),Wa(r.canvas,e,void 0,ie.LOADED,i.color,!0),Ci.getPattern(e,void 0,i.color)}var Sp=class{drawCustom(e,t,n,r,o){}drawGeometry(e){}setStyle(e){}drawCircle(e,t,n){}drawFeature(e,t,n){}drawGeometryCollection(e,t,n){}drawLineString(e,t,n){}drawMultiLineString(e,t,n){}drawMultiPoint(e,t,n){}drawMultiPolygon(e,t,n){}drawPoint(e,t,n){}drawPolygon(e,t,n){}drawText(e,t,n){}setFillStrokeStyle(e,t){}setImageStyle(e,t){}setTextStyle(e,t){}},mu=Sp;var KA="ol-hidden",W_="ol-selectable",qt="ol-unselectable",Tp="ol-unsupported",nn="ol-control",Ja="ol-collapsed",k2=new RegExp(["^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)","(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?","(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))","(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))",`?\\s*([-,\\"\\'\\sa-z0-9]+?)\\s*$`].join(""),"i"),j_=["style","variant","weight","size","lineHeight","family"],Rp=function(i){let e=i.match(k2);if(!e)return null;let t={lineHeight:"normal",size:"1.2em",style:"normal",weight:"normal",variant:"normal"};for(let n=0,r=j_.length;nMath.max(r,ll(i,o)),0);return t[e]=n,n}function PI(i,e){let t=[],n=[],r=[],o=0,s=0,a=0,A=0;for(let l=0,c=e.length;l<=c;l+=2){let h=e[l];if(h===` -`||l===c){o=Math.max(o,s),r.push(s),s=0,a+=A,A=0;continue}let u=e[l+1]||i.font,f=ll(u,h);t.push(f),s+=f;let g=Tw(u);n.push(g),A=Math.max(A,g)}return{width:o,height:a,widths:t,heights:n,lineWidths:r}}function NI(i,e,t,n,r,o,s,a,A,l,c){i.save(),t!==1&&(i.globalAlpha===void 0?i.globalAlpha=h=>h.globalAlpha*=t:i.globalAlpha*=t),e&&i.transform.apply(i,e),n.contextInstructions?(i.translate(A,l),i.scale(c[0],c[1]),vw(n,i)):c[0]<0||c[1]<0?(i.translate(A,l),i.scale(c[0],c[1]),i.drawImage(n,r,o,s,a,0,0,s,a)):i.drawImage(n,r,o,s,a,A,l,s*c[0],a*c[1]),i.restore()}function vw(i,e){let t=i.contextInstructions;for(let n=0,r=t.length;nh*this.pixelRatio_),lineDashOffset:(s||Gt)*this.pixelRatio_,lineJoin:a!==void 0?a:Yi,lineWidth:(A!==void 0?A:Sn)*this.pixelRatio_,miterLimit:l!==void 0?l:xn,strokeStyle:Pt(n||wn)}}}setImageStyle(e){let t;if(!e||!(t=e.getSize())){this.image_=null;return}let n=e.getPixelRatio(this.pixelRatio_),r=e.getAnchor(),o=e.getOrigin();this.image_=e.getImage(this.pixelRatio_),this.imageAnchorX_=r[0]*n,this.imageAnchorY_=r[1]*n,this.imageHeight_=t[1]*n,this.imageOpacity_=e.getOpacity(),this.imageOriginX_=o[0],this.imageOriginY_=o[1],this.imageRotateWithView_=e.getRotateWithView(),this.imageRotation_=e.getRotation();let s=e.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/n,s[1]*this.pixelRatio_/n],this.imageWidth_=t[0]*n}setTextStyle(e){if(!e)this.text_="";else{let t=e.getFill();if(!t)this.textFillState_=null;else{let f=t.getColor();this.textFillState_={fillStyle:Pt(f||$e)}}let n=e.getStroke();if(!n)this.textStrokeState_=null;else{let f=n.getColor(),g=n.getLineCap(),m=n.getLineDash(),d=n.getLineDashOffset(),I=n.getLineJoin(),p=n.getWidth(),_=n.getMiterLimit();this.textStrokeState_={lineCap:g!==void 0?g:Ui,lineDash:m||Nt,lineDashOffset:d||Gt,lineJoin:I!==void 0?I:Yi,lineWidth:p!==void 0?p:Sn,miterLimit:_!==void 0?_:xn,strokeStyle:Pt(f||wn)}}let r=e.getFont(),o=e.getOffsetX(),s=e.getOffsetY(),a=e.getRotateWithView(),A=e.getRotation(),l=e.getScaleArray(),c=e.getText(),h=e.getTextAlign(),u=e.getTextBaseline();this.textState_={font:r!==void 0?r:cl,textAlign:h!==void 0?h:rr,textBaseline:u!==void 0?u:Pr},this.text_=c!==void 0?Array.isArray(c)?c.reduce((f,g,m)=>f+=m%2?" ":g,""):c:"",this.textOffsetX_=o!==void 0?this.pixelRatio_*o:0,this.textOffsetY_=s!==void 0?this.pixelRatio_*s:0,this.textRotateWithView_=a!==void 0?a:!1,this.textRotation_=A!==void 0?A:0,this.textScale_=[this.pixelRatio_*l[0],this.pixelRatio_*l[1]]}}},GI=Qu;var Dw=.5,OI={Point:Nw,LineString:Mw,Polygon:Ow,MultiPoint:Gw,MultiLineString:kw,MultiPolygon:Pw,GeometryCollection:Lw,Circle:bw};function UI(i,e){return parseInt(z(i),10)-parseInt(z(e),10)}function Su(i,e){let t=Ru(i,e);return t*t}function Ru(i,e){return Dw*i/e}function bw(i,e,t,n,r){let o=t.getFill(),s=t.getStroke();if(o||s){let A=i.getBuilder(t.getZIndex(),"Circle");A.setFillStrokeStyle(o,s),A.drawCircle(e,n,r)}let a=t.getText();if(a&&a.getText()){let A=i.getBuilder(t.getZIndex(),"Text");A.setTextStyle(a),A.drawText(e,n)}}function Tu(i,e,t,n,r,o,s,a){let A=[],l=t.getImage();if(l){let u=!0,f=l.getImageState();f==ee.LOADED||f==ee.ERROR?u=!1:f==ee.IDLE&&l.load(),u&&A.push(l.ready())}let c=t.getFill();c&&c.loading()&&A.push(c.ready());let h=A.length>0;return h&&Promise.all(A).then(()=>r(null)),Fw(i,e,t,n,o,s,a),h}function Fw(i,e,t,n,r,o,s){let a=t.getGeometryFunction()(e);if(!a)return;let A=a.simplifyTransformed(n,r);if(t.getRenderer())YI(i,A,t,e,s);else{let c=OI[A.getType()];c(i,A,t,e,s,o)}}function YI(i,e,t,n,r){if(e.getType()=="GeometryCollection"){let s=e.getGeometries();for(let a=0,A=s.length;a=200&&a.status<300){let l=e.getType();try{let c;l=="text"||l=="json"?c=a.responseText:l=="xml"?c=a.responseXML||a.responseText:l=="arraybuffer"&&(c=a.response),c?o(e.readFeatures(c,{extent:t,featureProjection:r}),e.readProjection(c)):s()}catch{s()}}else s()},a.onerror=s,a.send()}function vu(i,e){return function(t,n,r,o,s){Yw(i,e,t,n,r,(a,A)=>{this.addFeatures(a),o!==void 0&&o(a)},()=>{this.changed(),s!==void 0&&s()})}}function HI(i,e){return[[-1/0,-1/0,1/0,1/0]]}function hl(i,e,t,n){let r=[],o=be();for(let s=0,a=t.length;se.clone())}var wi=bu;var Fu=class i extends kt{constructor(e,t,n){if(super(),this.ends_=[],this.maxDelta_=-1,this.maxDeltaRevision_=-1,Array.isArray(e[0]))this.setCoordinates(e,t);else if(t!==void 0&&n)this.setFlatCoordinates(t,e),this.ends_=n;else{let r=e,o=[],s=[];for(let A=0,l=r.length;A{if(e===this.squaredTolerance_)return this.simplifiedGeometry_;this.simplifiedGeometry_=this.clone(),t&&this.simplifiedGeometry_.applyTransform(t);let n=this.simplifiedGeometry_.getFlatCoordinates(),r;switch(this.type_){case"LineString":n.length=Fr(n,0,this.simplifiedGeometry_.flatCoordinates_.length,this.simplifiedGeometry_.stride_,e,n,0),r=[n.length];break;case"MultiLineString":r=[],n.length=jA(n,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,e,n,0,r);break;case"Polygon":r=[],n.length=Xs(n,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,Math.sqrt(e),n,0,r);break;default:}return r&&(this.simplifiedGeometry_=new i(this.type_,n,r,2,this.properties_,this.id_)),this.squaredTolerance_=e,this.simplifiedGeometry_}),this}};Aa.prototype.getFlatCoordinates=Aa.prototype.getOrientedFlatCoordinates;var Zt=Aa;function ul(i,e,t=0,n=i.length-1,r=Hw){for(;n>t;){if(n-t>600){let A=n-t+1,l=e-t+1,c=Math.log(A),h=.5*Math.exp(2*c/3),u=.5*Math.sqrt(c*h*(A-h)/A)*(l-A/2<0?-1:1),f=Math.max(t,Math.floor(e-l*h/A+u)),g=Math.min(n,Math.floor(e+(A-l)*h/A+u));ul(i,e,f,g,r)}let o=i[e],s=t,a=n;for(la(i,t,e),r(i[n],o)>0&&la(i,t,n);s0;)a--}r(i[t],o)===0?la(i,t,a):(a++,la(i,a,n)),a<=e&&(t=a+1),e<=a&&(n=a-1)}}function la(i,e,t){let n=i[e];i[e]=i[t],i[t]=n}function Hw(i,e){return ie?1:0}var Gr=class{constructor(e=9){this._maxEntries=Math.max(4,e),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()}all(){return this._all(this.data,[])}search(e){let t=this.data,n=[];if(!gl(e,t))return n;let r=this.toBBox,o=[];for(;t;){for(let s=0;s=0&&o[t].children.length>this._maxEntries;)this._split(o,t),t--;this._adjustParentBBoxes(r,o,t)}_split(e,t){let n=e[t],r=n.children.length,o=this._minEntries;this._chooseSplitAxis(n,o,r);let s=this._chooseSplitIndex(n,o,r),a=Uo(n.children.splice(s,n.children.length-s));a.height=n.height,a.leaf=n.leaf,Oo(n,this.toBBox),Oo(a,this.toBBox),t?e[t-1].children.push(a):this._splitRoot(n,a)}_splitRoot(e,t){this.data=Uo([e,t]),this.data.height=e.height+1,this.data.leaf=!1,Oo(this.data,this.toBBox)}_chooseSplitIndex(e,t,n){let r,o=1/0,s=1/0;for(let a=t;a<=n-t;a++){let A=ca(e,0,a,this.toBBox),l=ca(e,a,n,this.toBBox),c=Xw(A,l),h=ku(A)+ku(l);c=t;l--){let c=e.children[l];ha(a,e.leaf?o(c):c),A+=fl(a)}return A}_adjustParentBBoxes(e,t,n){for(let r=n;r>=0;r--)ha(t[r],e)}_condense(e){for(let t=e.length-1,n;t>=0;t--)e[t].children.length===0?t>0?(n=e[t-1].children,n.splice(n.indexOf(e[t]),1)):this.clear():Oo(e[t],this.toBBox)}};function zw(i,e,t){if(!t)return e.indexOf(i);for(let n=0;n=i.minX&&e.maxY>=i.minY}function Uo(i){return{children:i,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function KI(i,e,t,n,r){let o=[e,t];for(;o.length;){if(t=o.pop(),e=o.pop(),t-e<=n)continue;let s=e+Math.ceil((t-e)/n/2)*n;ul(i,s,e,t,r),o.push(e,s,s,t)}}var Nu=class{constructor(e){this.rbush_=new Gr(e),this.items_={}}insert(e,t){let n={minX:e[0],minY:e[1],maxX:e[2],maxY:e[3],value:t};this.rbush_.insert(n),this.items_[z(t)]=n}load(e,t){let n=new Array(t.length);for(let r=0,o=t.length;ri):null}var dl=Ou;var at={ADDFEATURE:"addfeature",CHANGEFEATURE:"changefeature",CLEAR:"clear",REMOVEFEATURE:"removefeature",FEATURESLOADSTART:"featuresloadstart",FEATURESLOADEND:"featuresloadend",FEATURESLOADERROR:"featuresloaderror"};var Hi=class extends ot{constructor(e,t,n){super(e),this.feature=t,this.features=n}},Uu=class extends dl{constructor(e){e=e||{},super({attributions:e.attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:e.wrapX!==void 0?e.wrapX:!0}),this.on,this.once,this.un,this.loader_=In,this.format_=e.format||null,this.overlaps_=e.overlaps===void 0?!0:e.overlaps,this.url_=e.url,e.loader!==void 0?this.loader_=e.loader:this.url_!==void 0&&(re(this.format_,"`format` must be set when `url` is set"),this.loader_=vu(this.url_,this.format_)),this.strategy_=e.strategy!==void 0?e.strategy:HI;let t=e.useSpatialIndex!==void 0?e.useSpatialIndex:!0;this.featuresRtree_=t?new Gu:null,this.loadedExtentsRtree_=new Gu,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null;let n,r;Array.isArray(e.features)?r=e.features:e.features&&(n=e.features,r=n.getArray()),!t&&n===void 0&&(n=new st(r)),r!==void 0&&this.addFeaturesInternal(r),n!==void 0&&this.bindFeaturesCollection_(n)}addFeature(e){this.addFeatureInternal(e),this.changed()}addFeatureInternal(e){let t=z(e);if(!this.addToIndex_(t,e)){this.featuresCollection_&&this.featuresCollection_.remove(e);return}this.setupChangeEvents_(t,e);let n=e.getGeometry();if(n){let r=n.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(r,e)}else this.nullGeometryFeatures_[t]=e;this.dispatchEvent(new Hi(at.ADDFEATURE,e))}setupChangeEvents_(e,t){t instanceof Zt||(this.featureChangeKeys_[e]=[X(t,U.CHANGE,this.handleFeatureChange_,this),X(t,qt.PROPERTYCHANGE,this.handleFeatureChange_,this)])}addToIndex_(e,t){let n=!0;if(t.getId()!==void 0){let r=String(t.getId());if(!(r in this.idIndex_))this.idIndex_[r]=t;else if(t instanceof Zt){let o=this.idIndex_[r];o instanceof Zt?Array.isArray(o)?o.push(t):this.idIndex_[r]=[o,t]:n=!1}else n=!1}return n&&(re(!(e in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[e]=t),n}addFeatures(e){this.addFeaturesInternal(e),this.changed()}addFeaturesInternal(e){let t=[],n=[],r=[];for(let o=0,s=e.length;o{t||(t=!0,this.addFeature(n.element),t=!1)}),e.addEventListener(nt.REMOVE,n=>{t||(t=!0,this.removeFeature(n.element),t=!1)}),this.featuresCollection_=e}clear(e){if(e){for(let n in this.featureChangeKeys_)this.featureChangeKeys_[n].forEach(se);this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){this.featuresRtree_.forEach(n=>{this.removeFeatureInternal(n)});for(let n in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[n])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};let t=new Hi(at.CLEAR);this.dispatchEvent(t),this.changed()}forEachFeature(e){if(this.featuresRtree_)return this.featuresRtree_.forEach(e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureAtCoordinateDirect(e,t){let n=[e[0],e[1],e[0],e[1]];return this.forEachFeatureInExtent(n,function(r){let o=r.getGeometry();if(o instanceof Zt||o.intersectsCoordinate(e))return t(r)})}forEachFeatureInExtent(e,t){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(e,t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureIntersectingExtent(e,t){return this.forEachFeatureInExtent(e,function(n){let r=n.getGeometry();if(r instanceof Zt||r.intersectsExtent(e)){let o=t(n);if(o)return o}})}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let e;return this.featuresCollection_?e=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(e=this.featuresRtree_.getAll(),Vt(this.nullGeometryFeatures_)||ue(e,Object.values(this.nullGeometryFeatures_))),e}getFeaturesAtCoordinate(e){let t=[];return this.forEachFeatureAtCoordinateDirect(e,function(n){t.push(n)}),t}getFeaturesInExtent(e,t){if(this.featuresRtree_){if(!(t&&t.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(e);let r=Bo(e,t);return[].concat(...r.map(o=>this.featuresRtree_.getInExtent(o)))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(e,t){let n=e[0],r=e[1],o=null,s=[NaN,NaN],a=1/0,A=[-1/0,-1/0,1/0,1/0];return t=t||mn,this.featuresRtree_.forEachInExtent(A,function(l){if(t(l)){let c=l.getGeometry(),h=a;if(a=c instanceof Zt?0:c.closestPointXY(n,r,s,a),a{--this.loadingExtentsCount_,this.dispatchEvent(new Hi(at.FEATURESLOADEND,void 0,c))},()=>{--this.loadingExtentsCount_,this.dispatchEvent(new Hi(at.FEATURESLOADERROR))}),r.insert(A,{extent:A.slice()}))}this.loading=this.loader_.length<4?!1:this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(e){let t=this.loadedExtentsRtree_,n=t.forEachInExtent(e,function(r){if(Jt(r.extent,e))return r});n&&t.remove(n)}removeFeatures(e){let t=!1;for(let n=0,r=e.length;n{this.patternImage_=null}),t.getImageState()===ee.IDLE&&t.load(),t.getImageState()===ee.LOADING&&(this.patternImage_=t)}this.color_=e}getKey(){let e=this.getColor();return e?e instanceof CanvasPattern||e instanceof CanvasGradient?z(e):typeof e=="object"&&"src"in e?e.src+":"+e.offset:We(e).toString():""}loading(){return!!this.patternImage_}ready(){return this.patternImage_?this.patternImage_.ready():Promise.resolve()}},zi=Hu;var zu=class i{constructor(e){e=e||{},this.color_=e.color!==void 0?e.color:null,this.lineCap_=e.lineCap,this.lineDash_=e.lineDash!==void 0?e.lineDash:null,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.width_=e.width}clone(){let e=this.getColor();return new i({color:Array.isArray(e)?e.slice():e||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getWidth(){return this.width_}setColor(e){this.color_=e}setLineCap(e){this.lineCap_=e}setLineDash(e){this.lineDash_=e}setLineDashOffset(e){this.lineDashOffset_=e}setLineJoin(e){this.lineJoin_=e}setMiterLimit(e){this.miterLimit_=e}setWidth(e){this.width_=e}},or=zu;function Ku(i){return i[0]>0&&i[1]>0}function VI(i,e,t){return t===void 0&&(t=[0,0]),t[0]=i[0]*e+.5|0,t[1]=i[1]*e+.5|0,t}function _e(i,e){return Array.isArray(i)?i:(e===void 0?e=[i,i]:(e[0]=i,e[1]=i),e)}var qu=class i{constructor(e){this.opacity_=e.opacity,this.rotateWithView_=e.rotateWithView,this.rotation_=e.rotation,this.scale_=e.scale,this.scaleArray_=_e(e.scale),this.displacement_=e.displacement,this.declutterMode_=e.declutterMode}clone(){let e=this.getScale();return new i({opacity:this.getOpacity(),scale:Array.isArray(e)?e.slice():e,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return J()}getImage(e){return J()}getHitDetectionImage(){return J()}getPixelRatio(e){return 1}getImageState(){return J()}getImageSize(){return J()}getOrigin(){return J()}getSize(){return J()}setDisplacement(e){this.displacement_=e}setOpacity(e){this.opacity_=e}setRotateWithView(e){this.rotateWithView_=e}setRotation(e){this.rotation_=e}setScale(e){this.scale_=e,this.scaleArray_=_e(e)}listenImageChange(e){J()}load(){J()}unlistenImageChange(e){J()}ready(){return Promise.resolve()}},ml=qu;var Vu=class i extends ml{constructor(e){super({opacity:1,rotateWithView:e.rotateWithView!==void 0?e.rotateWithView:!1,rotation:e.rotation!==void 0?e.rotation:0,scale:e.scale!==void 0?e.scale:1,displacement:e.displacement!==void 0?e.displacement:[0,0],declutterMode:e.declutterMode}),this.hitDetectionCanvas_=null,this.fill_=e.fill!==void 0?e.fill:null,this.origin_=[0,0],this.points_=e.points,this.radius=e.radius,this.radius2_=e.radius2,this.angle_=e.angle!==void 0?e.angle:0,this.stroke_=e.stroke!==void 0?e.stroke:null,this.size_,this.renderOptions_,this.imageState_=this.fill_&&this.fill_.loading()?ee.LOADING:ee.LOADED,this.imageState_===ee.LOADING&&this.ready().then(()=>this.imageState_=ee.LOADED),this.render()}clone(){let e=this.getScale(),t=new i({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(e)?e.slice():e,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return t.setOpacity(this.getOpacity()),t}getAnchor(){let e=this.size_,t=this.getDisplacement(),n=this.getScaleArray();return[e[0]/2-t[0]/n[0],e[1]/2+t[1]/n[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(e){this.fill_=e,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.createHitDetectionCanvas_(this.renderOptions_)),this.hitDetectionCanvas_}getImage(e){let t=this.fill_?.getKey(),n=`${e},${this.angle_},${this.radius},${this.radius2_},${this.points_},${t}`+Object.values(this.renderOptions_).join(","),r=_t.get(n,null,null)?.getImage(1);if(!r){let o=this.renderOptions_,s=Math.ceil(o.size*e),a=me(s,s);this.draw_(o,a,e),r=a.canvas,_t.set(n,null,null,new bI(r,void 0,null,ee.LOADED,null))}return r}getPixelRatio(e){return e}getImageSize(){return this.size_}getImageState(){return this.imageState_}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius}getRadius2(){return this.radius2_}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(e){this.stroke_=e,this.render()}listenImageChange(e){}load(){}unlistenImageChange(e){}calculateLineJoinSize_(e,t,n){if(t===0||this.points_===1/0||e!=="bevel"&&e!=="miter")return t;let r=this.radius,o=this.radius2_===void 0?r:this.radius2_;if(rA&&(this.instructions.push([$.CUSTOM,A,c,e,n,ui,o]),this.hitDetectionInstructions.push([$.CUSTOM,A,c,e,r||n,ui,o]));break;case"Point":l=e.getFlatCoordinates(),this.coordinates.push(l[0],l[1]),c=this.coordinates.length,this.instructions.push([$.CUSTOM,A,c,e,n,void 0,o]),this.hitDetectionInstructions.push([$.CUSTOM,A,c,e,r||n,void 0,o]);break;default:}this.endGeometry(t)}beginGeometry(e,t,n){this.beginGeometryInstruction1_=[$.BEGIN_GEOMETRY,t,0,e,n],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[$.BEGIN_GEOMETRY,t,0,e,n],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){let e=this.hitDetectionInstructions;e.reverse();let t,n=e.length,r,o,s=-1;for(t=0;tthis.maxLineWidth&&(this.maxLineWidth=t.lineWidth,this.bufferedMaxExtent_=null)}else t.strokeStyle=void 0,t.lineCap=void 0,t.lineDash=null,t.lineDashOffset=void 0,t.lineJoin=void 0,t.lineWidth=void 0,t.miterLimit=void 0;return t}setFillStrokeStyle(e,t){let n=this.state;this.fillStyleToState(e,n),this.strokeStyleToState(t,n)}createFill(e){let t=e.fillStyle,n=[$.SET_FILL_STYLE,t];return typeof t!="string"&&n.push(e.fillPatternScale),n}applyStroke(e){this.instructions.push(this.createStroke(e))}createStroke(e){return[$.SET_STROKE_STYLE,e.strokeStyle,e.lineWidth*this.pixelRatio,e.lineCap,e.lineJoin,e.miterLimit,e.lineDash?this.applyPixelRatio(e.lineDash):null,e.lineDashOffset*this.pixelRatio]}updateFillStyle(e,t){let n=e.fillStyle;(typeof n!="string"||e.currentFillStyle!=n)&&(n!==void 0&&this.instructions.push(t.call(this,e)),e.currentFillStyle=n)}updateStrokeStyle(e,t){let n=e.strokeStyle,r=e.lineCap,o=e.lineDash,s=e.lineDashOffset,a=e.lineJoin,A=e.lineWidth,l=e.miterLimit;(e.currentStrokeStyle!=n||e.currentLineCap!=r||o!=e.currentLineDash&&!rt(e.currentLineDash,o)||e.currentLineDashOffset!=s||e.currentLineJoin!=a||e.currentLineWidth!=A||e.currentMiterLimit!=l)&&(n!==void 0&&t.call(this,e),e.currentStrokeStyle=n,e.currentLineCap=r,e.currentLineDash=o,e.currentLineDashOffset=s,e.currentLineJoin=a,e.currentLineWidth=A,e.currentMiterLimit=l)}endGeometry(e){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;let t=[$.END_GEOMETRY,e];this.instructions.push(t),this.hitDetectionInstructions.push(t)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=RA(this.maxExtent),this.maxLineWidth>0)){let e=this.resolution*(this.maxLineWidth+1)/2;Vn(this.bufferedMaxExtent_,e,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}},qi=$u;var ef=class extends qi{constructor(e,t,n,r){super(e,t,n,r),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(e,t,n){if(!this.image_||this.maxExtent&&!Mt(this.maxExtent,e.getFlatCoordinates()))return;this.beginGeometry(e,t,n);let r=e.getFlatCoordinates(),o=e.getStride(),s=this.coordinates.length,a=this.appendFlatPointCoordinates(r,o);this.instructions.push([$.DRAW_IMAGE,s,a,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([$.DRAW_IMAGE,s,a,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(t)}drawMultiPoint(e,t,n){if(!this.image_)return;this.beginGeometry(e,t,n);let r=e.getFlatCoordinates(),o=[];for(let A=0,l=r.length;A=i){let g=(i-a+f)/f,m=ut(l,h,g),d=ut(c,u,g);A.push(m,d),o.push(A),A=[m,d],a==i&&(s+=r),a=0}else if(a0&&o.push(A),o}function $I(i,e,t,n,r){let o=t,s=t,a=0,A=0,l=t,c,h,u,f,g,m,d,I,p,_;for(h=t;hi&&(A>a&&(a=A,o=l,s=h),A=0,l=h-r)),u=f,d=p,I=_),g=C,m=E}return A+=f,A>a?[l,h]:[o,s]}var da={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},of=class extends qi{constructor(e,t,n,r){super(e,t,n,r),this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textKeepUpright_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.fillStates[$e]={fillStyle:$e},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.declutterMode_=void 0,this.declutterImageWithText_=void 0}finish(){let e=super.finish();return e.textStates=this.textStates,e.fillStates=this.fillStates,e.strokeStates=this.strokeStates,e}drawText(e,t,n){let r=this.textFillState_,o=this.textStrokeState_,s=this.textState_;if(this.text_===""||!s||!r&&!o)return;let a=this.coordinates,A=a.length,l=e.getType(),c=null,h=e.getStride();if(s.placement==="line"&&(l=="LineString"||l=="MultiLineString"||l=="Polygon"||l=="MultiPolygon")){if(!Ne(this.maxExtent,e.getExtent()))return;let u;if(c=e.getFlatCoordinates(),l=="LineString")u=[c.length];else if(l=="MultiLineString")u=e.getEnds();else if(l=="Polygon")u=e.getEnds().slice(0,1);else if(l=="MultiPolygon"){let d=e.getEndss();u=[];for(let I=0,p=d.length;I{let B=a[(C+y)*2]===c[y*h]&&a[(C+y)*2+1]===c[y*h+1];return B||--C,B})}this.saveTextStates_();let g=s.backgroundFill?this.createFill(this.fillStyleToState(s.backgroundFill)):null,m=s.backgroundStroke?this.createStroke(this.strokeStyleToState(s.backgroundStroke)):null;this.beginGeometry(e,t,n);let d=s.padding;if(d!=Qn&&(s.scale[0]<0||s.scale[1]<0)){let C=s.padding[0],E=s.padding[1],y=s.padding[2],B=s.padding[3];s.scale[0]<0&&(E=-E,B=-B),s.scale[1]<0&&(C=-C,y=-y),d=[C,E,y,B]}let I=this.pixelRatio;this.instructions.push([$.DRAW_IMAGE,A,f,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,this.declutterMode_,this.declutterImageWithText_,d==Qn?Qn:d.map(function(C){return C*I}),g,m,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,u]);let p=1/I,_=g?g.slice(0):null;_&&(_[1]=$e),this.hitDetectionInstructions.push([$.DRAW_IMAGE,A,f,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[p,p],NaN,this.declutterMode_,this.declutterImageWithText_,d,_,m,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?$e:this.fillKey_,this.textOffsetX_,this.textOffsetY_,u]),this.endGeometry(t)}}saveTextStates_(){let e=this.textStrokeState_,t=this.textState_,n=this.textFillState_,r=this.strokeKey_;e&&(r in this.strokeStates||(this.strokeStates[r]={strokeStyle:e.strokeStyle,lineCap:e.lineCap,lineDashOffset:e.lineDashOffset,lineWidth:e.lineWidth,lineJoin:e.lineJoin,miterLimit:e.miterLimit,lineDash:e.lineDash}));let o=this.textKey_;o in this.textStates||(this.textStates[o]={font:t.font,textAlign:t.textAlign||rr,justify:t.justify,textBaseline:t.textBaseline||Pr,scale:t.scale});let s=this.fillKey_;n&&(s in this.fillStates||(this.fillStates[s]={fillStyle:n.fillStyle}))}drawChars_(e,t){let n=this.textStrokeState_,r=this.textState_,o=this.strokeKey_,s=this.textKey_,a=this.fillKey_;this.saveTextStates_();let A=this.pixelRatio,l=da[r.textBaseline],c=this.textOffsetY_*A,h=this.text_,u=n?n.lineWidth*Math.abs(r.scale[0])/2:0;this.instructions.push([$.DRAW_CHARS,e,t,l,r.overflow,a,r.maxAngle,A,c,o,u*A,h,s,1,this.declutterMode_,this.textKeepUpright_]),this.hitDetectionInstructions.push([$.DRAW_CHARS,e,t,l,r.overflow,a&&$e,r.maxAngle,A,c,o,u*A,h,s,1/A,this.declutterMode_,this.textKeepUpright_])}setTextStyle(e,t){let n,r,o;if(!e)this.text_="";else{let s=e.getFill();s?(r=this.textFillState_,r||(r={},this.textFillState_=r),r.fillStyle=Pt(s.getColor()||$e)):(r=null,this.textFillState_=r);let a=e.getStroke();if(!a)o=null,this.textStrokeState_=o;else{o=this.textStrokeState_,o||(o={},this.textStrokeState_=o);let m=a.getLineDash(),d=a.getLineDashOffset(),I=a.getWidth(),p=a.getMiterLimit();o.lineCap=a.getLineCap()||Ui,o.lineDash=m?m.slice():Nt,o.lineDashOffset=d===void 0?Gt:d,o.lineJoin=a.getLineJoin()||Yi,o.lineWidth=I===void 0?Sn:I,o.miterLimit=p===void 0?xn:p,o.strokeStyle=Pt(a.getColor()||wn)}n=this.textState_;let A=e.getFont()||cl;MI(A);let l=e.getScaleArray();n.overflow=e.getOverflow(),n.font=A,n.maxAngle=e.getMaxAngle(),n.placement=e.getPlacement(),n.textAlign=e.getTextAlign(),n.repeat=e.getRepeat(),n.justify=e.getJustify(),n.textBaseline=e.getTextBaseline()||Pr,n.backgroundFill=e.getBackgroundFill(),n.backgroundStroke=e.getBackgroundStroke(),n.padding=e.getPadding()||Qn,n.scale=l===void 0?[1,1]:l;let c=e.getOffsetX(),h=e.getOffsetY(),u=e.getRotateWithView(),f=e.getKeepUpright(),g=e.getRotation();this.text_=e.getText()||"",this.textOffsetX_=c===void 0?0:c,this.textOffsetY_=h===void 0?0:h,this.textRotateWithView_=u===void 0?!1:u,this.textKeepUpright_=f===void 0?!0:f,this.textRotation_=g===void 0?0:g,this.strokeKey_=o?(typeof o.strokeStyle=="string"?o.strokeStyle:z(o.strokeStyle))+o.lineCap+o.lineDashOffset+"|"+o.lineWidth+o.lineJoin+o.miterLimit+"["+o.lineDash.join()+"]":"",this.textKey_=n.font+n.scale+(n.textAlign||"?")+(n.repeat||"?")+(n.justify||"?")+(n.textBaseline||"?"),this.fillKey_=r&&r.fillStyle?typeof r.fillStyle=="string"?r.fillStyle:"|"+z(r.fillStyle):""}this.declutterMode_=e.getDeclutterMode(),this.declutterImageWithText_=t}},eE=of;var jw={Circle:rf,Default:qi,Image:jI,LineString:WI,Polygon:rf,Text:eE},sf=class{constructor(e,t,n,r){this.tolerance_=e,this.maxExtent_=t,this.pixelRatio_=r,this.resolution_=n,this.buildersByZIndex_={}}finish(){let e={};for(let t in this.buildersByZIndex_){e[t]=e[t]||{};let n=this.buildersByZIndex_[t];for(let r in n){let o=n[r].finish();e[t][r]=o}}return e}getBuilder(e,t){let n=e!==void 0?e.toString():"0",r=this.buildersByZIndex_[n];r===void 0&&(r={},this.buildersByZIndex_[n]=r);let o=r[t];if(o===void 0){let s=jw[t];o=new s(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_),r[t]=o}return o}},tE=sf;function iE(i,e,t,n,r,o,s,a,A,l,c,h,u=!0){let f=i[e],g=i[e+1],m=0,d=0,I=0,p=0;function _(){m=f,d=g,e+=n,f=i[e],g=i[e+1],p+=I,I=Math.sqrt((f-m)*(f-m)+(g-d)*(g-d))}do _();while(eL[2]}else R=E>w;let F=Math.PI,D=[],S=B+n===e;e=B,I=0,p=x,f=i[e],g=i[e+1];let k;if(S){_(),k=Math.atan2(g-d,f-m),R&&(k+=k>0?-F:F);let L=(w+E)/2,b=(T+y)/2;return D[0]=[L,b,(Q-o)/2,k,r],D}r=r.replace(/\n/g," ");for(let L=0,b=r.length;L0?-F:F),k!==void 0){let O=P-k;if(O+=O>F?-2*F:O<-F?2*F:0,Math.abs(O)>s)return null}k=P;let N=L,Y=0;for(;L{if(typeof Mo()[t]=="function")return this.push_(t),this.pushMethodArgs_},set:(e,t,n)=>(this.push_(t,n),!0)})}push_(...e){let t=this.instructions_,n=this.zIndex+this.offset_;t[n]||(t[n]=[]),t[n].push(...e)}pushMethodArgs_=(...e)=>(this.push_(e),this);pushFunction(e){this.push_(e)}getContext(){return this.context_}draw(e){this.instructions_.forEach(t=>{for(let n=0,r=t.length;n0&&i.push(` -`,""),i.push(e,""),i}function Zw(i,e,t){return t%2===0&&(i+=e),i}var lf=class{constructor(e,t,n,r,o){this.overlaps=n,this.pixelRatio=t,this.resolution=e,this.alignAndScaleFill_,this.instructions=r.instructions,this.coordinates=r.coordinates,this.coordinateCache_={},this.renderedTransform_=Ce(),this.hitDetectionInstructions=r.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=r.fillStates||{},this.strokeStates=r.strokeStates||{},this.textStates=r.textStates||{},this.widths_={},this.labels_={},this.zIndexContext_=o?new Cl:null}getZIndexContext(){return this.zIndexContext_}createLabel(e,t,n,r){let o=e+t+n+r;if(this.labels_[o])return this.labels_[o];let s=r?this.strokeStates[r]:null,a=n?this.fillStates[n]:null,A=this.textStates[t],l=this.pixelRatio,c=[A.scale[0]*l,A.scale[1]*l],h=A.justify?da[A.justify]:Af(Array.isArray(e)?e[0]:e,A.textAlign||rr),u=r&&s.lineWidth?s.lineWidth:0,f=Array.isArray(e)?e:String(e).split(` -`).reduce(Ww,[]),{width:g,height:m,widths:d,heights:I,lineWidths:p}=PI(A,f),_=g+u,C=[],E=(_+2)*c[0],y=(m+u)*c[1],B={width:E<0?Math.floor(E):Math.ceil(E),height:y<0?Math.floor(y):Math.ceil(y),contextInstructions:C};(c[0]!=1||c[1]!=1)&&C.push("scale",c),r&&(C.push("strokeStyle",s.strokeStyle),C.push("lineWidth",u),C.push("lineCap",s.lineCap),C.push("lineJoin",s.lineJoin),C.push("miterLimit",s.miterLimit),C.push("setLineDash",[s.lineDash]),C.push("lineDashOffset",s.lineDashOffset)),n&&C.push("fillStyle",a.fillStyle),C.push("textBaseline","middle"),C.push("textAlign","center");let x=.5-h,Q=h*_+x*u,w=[],T=[],R=0,F=0,D=0,S=0,k;for(let L=0,b=f.length;Le?e-l:o,C=s+c>t?t-c:s,E=g[3]+_*u[0]+g[1],y=g[0]+C*u[1]+g[2],B=I-g[3],x=p-g[0];(m||h!==0)&&(sr[0]=B,ar[0]=B,sr[1]=x,Tn[1]=x,Tn[0]=B+E,vn[0]=Tn[0],vn[1]=x+y,ar[1]=vn[1]);let Q;return h!==0?(Q=Xe(Ce(),n,r,1,1,h,-n,-r),ye(Q,sr),ye(Q,Tn),ye(Q,vn),ye(Q,ar),Xt(Math.min(sr[0],Tn[0],vn[0],ar[0]),Math.min(sr[1],Tn[1],vn[1],ar[1]),Math.max(sr[0],Tn[0],vn[0],ar[0]),Math.max(sr[1],Tn[1],vn[1],ar[1]),Yo)):Xt(Math.min(B,B+E),Math.min(x,x+y),Math.max(B,B+E),Math.max(x,x+y),Yo),f&&(I=Math.round(I),p=Math.round(p)),{drawImageX:I,drawImageY:p,drawImageW:_,drawImageH:C,originX:l,originY:c,declutterBox:{minX:Yo[0],minY:Yo[1],maxX:Yo[2],maxY:Yo[3],value:d},canvasTransform:Q,scale:u}}replayImageOrLabel_(e,t,n,r,o,s,a){let A=!!(s||a),l=r.declutterBox,c=a?a[2]*r.scale[0]/2:0;return l.minX-c<=t[0]&&l.maxX+c>=0&&l.minY-c<=t[1]&&l.maxY+c>=0&&(A&&this.replayTextBackground_(e,sr,Tn,vn,ar,s,a),NI(e,r.canvasTransform,o,n,r.originX,r.originY,r.drawImageW,r.drawImageH,r.drawImageX,r.drawImageY,r.scale)),!0}fill_(e){let t=this.alignAndScaleFill_;if(t){let n=ye(this.renderedTransform_,[0,0]),r=512*this.pixelRatio;e.save(),e.translate(n[0]%r,n[1]%r),t!==1&&e.scale(t,t),e.rotate(this.viewRotation_)}e.fill(),t&&e.restore()}setStrokeStyle_(e,t){e.strokeStyle=t[1],e.lineWidth=t[2],e.lineCap=t[3],e.lineJoin=t[4],e.miterLimit=t[5],e.lineDashOffset=t[7],e.setLineDash(t[6])}drawLabelWithPointPlacement_(e,t,n,r){let o=this.textStates[t],s=this.createLabel(e,t,r,n),a=this.strokeStates[n],A=this.pixelRatio,l=Af(Array.isArray(e)?e[0]:e,o.textAlign||rr),c=da[o.textBaseline||Pr],h=a&&a.lineWidth?a.lineWidth:0,u=s.width/A-2*o.scale[0],f=l*u+2*(.5-l)*h,g=c*s.height/A+2*(.5-c)*h;return{label:s,anchorX:f,anchorY:g}}execute_(e,t,n,r,o,s,a,A){let l=this.zIndexContext_,c;this.pixelCoordinates_&&rt(n,this.renderedTransform_)?c=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),c=ft(this.coordinates,0,this.coordinates.length,2,n,this.pixelCoordinates_),KA(this.renderedTransform_,n));let h=0,u=r.length,f=0,g,m,d,I,p,_,C,E,y,B,x,Q,w,T=0,R=0,F=this.coordinateCache_,D=this.viewRotation_,S=Math.round(Math.atan2(-n[1],n[0])*1e12)/1e12,k={context:e,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:D},L=this.instructions!=r||this.overlaps?0:200,b,P,N,Y;for(;hL&&(this.fill_(e),T=0),R>L&&(e.stroke(),R=0),!T&&!R&&(e.beginPath(),p=NaN,_=NaN),++h;break;case $.CIRCLE:f=M[1];let H=c[f],O=c[f+1],K=c[f+2],ie=c[f+3],ge=K-H,Ie=ie-O,de=Math.sqrt(ge*ge+Ie*Ie);e.moveTo(H+de,O),e.arc(H,O,de,0,2*Math.PI,!0),++h;break;case $.CLOSE_PATH:e.closePath(),++h;break;case $.CUSTOM:f=M[1],g=M[2];let Pe=M[3],tt=M[4],xt=M[5];k.geometry=Pe,k.feature=b,h in F||(F[h]=[]);let Je=F[h];xt?xt(c,f,g,2,Je):(Je[0]=c[f],Je[1]=c[f+1],Je.length=2),l&&(l.zIndex=M[6]),tt(Je,k),++h;break;case $.DRAW_IMAGE:f=M[1],g=M[2],y=M[3],m=M[4],d=M[5];let Te=M[6],Dt=M[7],cn=M[8],wt=M[9],hn=M[10],It=M[11],ho=M[12],uo=M[13];I=M[14]||"declutter";let it=M[15];if(!y&&M.length>=20){B=M[19],x=M[20],Q=M[21],w=M[22];let ri=this.drawLabelWithPointPlacement_(B,x,Q,w);y=ri.label,M[3]=y;let Sr=M[23];m=(ri.anchorX-Sr)*this.pixelRatio,M[4]=m;let oi=M[24];d=(ri.anchorY-oi)*this.pixelRatio,M[5]=d,Te=y.height,M[6]=Te,uo=y.width,M[13]=uo}let Eh;M.length>25&&(Eh=M[25]);let Ch,CA,_A;M.length>17?(Ch=M[16],CA=M[17],_A=M[18]):(Ch=Qn,CA=null,_A=null),hn&&S?It+=D:!hn&&!S&&(It-=D);let vx=0;for(;f!uf.includes(i)),hf=class{constructor(e,t,n,r,o,s,a){this.maxExtent_=e,this.overlaps_=r,this.pixelRatio_=n,this.resolution_=t,this.renderBuffer_=s,this.executorsByZIndex_={},this.hitDetectionContext_=null,this.hitDetectionTransform_=Ce(),this.renderedContext_=null,this.deferredZIndexContexts_={},this.createExecutors_(o,a)}clip(e,t){let n=this.getClipCoords(t);e.beginPath(),e.moveTo(n[0],n[1]),e.lineTo(n[2],n[3]),e.lineTo(n[4],n[5]),e.lineTo(n[6],n[7]),e.clip()}createExecutors_(e,t){for(let n in e){let r=this.executorsByZIndex_[n];r===void 0&&(r={},this.executorsByZIndex_[n]=r);let o=e[n];for(let s in o){let a=o[s];r[s]=new oE(this.resolution_,this.pixelRatio_,this.overlaps_,a,t)}}}hasExecutors(e){for(let t in this.executorsByZIndex_){let n=this.executorsByZIndex_[t];for(let r=0,o=e.length;r0){if(!s||B==="none"||f!=="Image"&&f!=="Text"||s.includes(E)){let T=(u[Q]-3)/4,R=r-T%a,F=r-(T/a|0),D=o(E,y,R*R+F*F);if(D)return D}c.clearRect(0,0,a,a);break}}let m=Object.keys(this.executorsByZIndex_).map(Number);m.sort(Ft);let d,I,p,_,C;for(d=m.length-1;d>=0;--d){let E=m[d].toString();for(p=this.executorsByZIndex_[E],I=Or.length-1;I>=0;--I)if(f=Or[I],_=p[f],_!==void 0&&(C=_.executeHitDetection(c,A,n,g,h),C))return C}}getClipCoords(e){let t=this.maxExtent_;if(!t)return null;let n=t[0],r=t[1],o=t[2],s=t[3],a=[n,r,n,s,o,s,o,r];return ft(a,0,8,2,e,a),a}isEmpty(){return Vt(this.executorsByZIndex_)}execute(e,t,n,r,o,s,a){let A=Object.keys(this.executorsByZIndex_).map(Number);A.sort(a?yA:Ft),s=s||Or;let l=Or.length;for(let c=0,h=A.length;cI.execute(E,t,n,r,o,a)),C&&_.restore(),p){p.offset();let E=A[c]*l+g;this.deferredZIndexContexts_[E]||(this.deferredZIndexContexts_[E]=[]),this.deferredZIndexContexts_[E].push(p)}}}}this.renderedContext_=e}getDeferredZIndexContexts(){return this.deferredZIndexContexts_}getRenderedContext(){return this.renderedContext_}renderDeferred(){let e=this.deferredZIndexContexts_,t=Object.keys(e).map(Number).sort(Ft);for(let n=0,r=t.length;n{o.draw(this.renderedContext_),o.clear()}),e[t[n]].length=0}},cf={};function $w(i){if(cf[i]!==void 0)return cf[i];let e=i*2+1,t=i*i,n=new Array(t+1);for(let o=0;o<=i;++o)for(let s=0;s<=i;++s){let a=o*o+s*s;if(a>t)break;let A=n[a];A||(A=[],n[a]=A),A.push(((i+o)*e+(i+s))*4+3),o>0&&A.push(((i-o)*e+(i+s))*4+3),s>0&&(A.push(((i+o)*e+(i-s))*4+3),o>0&&A.push(((i-o)*e+(i-s))*4+3))}let r=[];for(let o=0,s=n.length;o0,"A defined and non-empty `src` or `image` must be provided"),re(!((e.width!==void 0||e.height!==void 0)&&e.scale!==void 0),"`width` or `height` cannot be provided together with `scale`");let A;if(e.src!==void 0?A=ee.IDLE:s!==void 0&&("complete"in s?s.complete?A=s.src?ee.LOADED:ee.IDLE:A=ee.LOADING:A=ee.LOADED),this.color_=e.color!==void 0?We(e.color):null,this.iconImage_=ko(s,a,this.crossOrigin_,A,this.color_),this.offset_=e.offset!==void 0?e.offset:[0,0],this.offsetOrigin_=e.offsetOrigin!==void 0?e.offsetOrigin:"top-left",this.origin_=null,this.size_=e.size!==void 0?e.size:null,this.initialOptions_,e.width!==void 0||e.height!==void 0){let l,c;if(e.size)[l,c]=e.size;else{let h=this.getImage(1);if(h.width&&h.height)l=h.width,c=h.height;else if(h instanceof HTMLImageElement){this.initialOptions_=e;let u=()=>{if(this.unlistenImageChange(u),!this.initialOptions_)return;let f=this.iconImage_.getSize();this.setScale(AE(f[0],f[1],e.width,e.height))};this.listenImageChange(u);return}}l!==void 0&&this.setScale(AE(l,c,e.width,e.height))}}clone(){let e,t,n;return this.initialOptions_?(t=this.initialOptions_.width,n=this.initialOptions_.height):(e=this.getScale(),e=Array.isArray(e)?e.slice():e),new i({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:e,width:t,height:n,size:this.size_!==null?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let e=this.normalizedAnchor_;if(!e){e=this.anchor_;let r=this.getSize();if(this.anchorXUnits_=="fraction"||this.anchorYUnits_=="fraction"){if(!r)return null;e=this.anchor_.slice(),this.anchorXUnits_=="fraction"&&(e[0]*=r[0]),this.anchorYUnits_=="fraction"&&(e[1]*=r[1])}if(this.anchorOrigin_!="top-left"){if(!r)return null;e===this.anchor_&&(e=this.anchor_.slice()),(this.anchorOrigin_=="top-right"||this.anchorOrigin_=="bottom-right")&&(e[0]=-e[0]+r[0]),(this.anchorOrigin_=="bottom-left"||this.anchorOrigin_=="bottom-right")&&(e[1]=-e[1]+r[1])}this.normalizedAnchor_=e}let t=this.getDisplacement(),n=this.getScaleArray();return[e[0]-t[0]/n[0],e[1]+t[1]/n[1]]}setAnchor(e){this.anchor_=e,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(e){return this.iconImage_.getImage(e)}getPixelRatio(e){return this.iconImage_.getPixelRatio(e)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let e=this.offset_;if(this.offsetOrigin_!="top-left"){let t=this.getSize(),n=this.iconImage_.getSize();if(!t||!n)return null;e=e.slice(),(this.offsetOrigin_=="top-right"||this.offsetOrigin_=="bottom-right")&&(e[0]=n[0]-t[0]-e[0]),(this.offsetOrigin_=="bottom-left"||this.offsetOrigin_=="bottom-right")&&(e[1]=n[1]-t[1]-e[1])}return this.origin_=e,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){let e=this.getScaleArray();if(this.size_)return this.size_[0]*e[0];if(this.iconImage_.getImageState()==ee.LOADED)return this.iconImage_.getSize()[0]*e[0]}getHeight(){let e=this.getScaleArray();if(this.size_)return this.size_[1]*e[1];if(this.iconImage_.getImageState()==ee.LOADED)return this.iconImage_.getSize()[1]*e[1]}setScale(e){delete this.initialOptions_,super.setScale(e)}listenImageChange(e){this.iconImage_.addEventListener(U.CHANGE,e)}load(){this.iconImage_.load()}unlistenImageChange(e){this.iconImage_.removeEventListener(U.CHANGE,e)}ready(){return this.iconImage_.ready()}},Ar=ff;var Qi=.5;function lE(i,e,t,n,r,o,s,a,A){let l=A?hi(r,A):r,c=i[0]*Qi,h=i[1]*Qi,u=me(c,h);u.imageSmoothingEnabled=!1;let f=u.canvas,g=new GI(u,Qi,r,null,s,a,A?li(ci(),A):null),m=t.length,d=Math.floor((256*256*256-1)/m),I={};for(let _=1;_<=m;++_){let C=t[_-1],E=C.getStyleFunction()||n;if(!E)continue;let y=E(C,o);if(!y)continue;Array.isArray(y)||(y=[y]);let x=(_*d).toString(16).padStart(7,"#00000");for(let Q=0,w=y.length;Qthis.maxStaleKeys&&(this.staleKeys_.length=this.maxStaleKeys)}getFeatures(e){return J()}getData(e){return null}prepareFrame(e){return J()}renderFrame(e,t){return J()}forEachFeatureAtCoordinate(e,t,n,r,o){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(e){let t=e.target;(t.getState()===ee.LOADED||t.getState()===ee.ERROR)&&this.renderIfReadyAndVisible()}loadImage(e){let t=e.getState();return t!=ee.LOADED&&t!=ee.ERROR&&e.addEventListener(U.CHANGE,this.boundHandleImageChange_),t==ee.IDLE&&(e.load(),t=e.getState()),t==ee.LOADED}renderIfReadyAndVisible(){let e=this.getLayer();e&&e.getVisible()&&e.getSourceState()==="ready"&&e.changed()}renderDeferred(e){}disposeInternal(){delete this.layer_,super.disposeInternal()}},_l=df;var pf=[],Ho=null;function tQ(){Ho=me(1,1,void 0,{willReadFrequently:!0})}var mf=class extends _l{constructor(e){super(e),this.container=null,this.renderedResolution,this.tempTransform=Ce(),this.pixelTransform=Ce(),this.inversePixelTransform=Ce(),this.context=null,this.deferredContext_=null,this.containerReused=!1,this.frameState=null}getImageData(e,t,n){Ho||tQ(),Ho.clearRect(0,0,1,1);let r;try{Ho.drawImage(e,t,n,1,1,0,0,1,1),r=Ho.getImageData(0,0,1,1).data}catch{return Ho=null,null}return r}getBackground(e){let n=this.getLayer().getBackground();return typeof n=="function"&&(n=n(e.viewState.resolution)),n||void 0}useContainer(e,t,n){let r=this.getLayer().getClassName(),o,s;if(e&&e.className===r&&(!n||e&&e.style.backgroundColor&&rt(We(e.style.backgroundColor),We(n)))){let a=e.firstElementChild;a instanceof HTMLCanvasElement&&(s=a.getContext("2d"))}if(s&&iI(s.canvas.style.transform,t)?(this.container=e,this.context=s,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){o=document.createElement("div"),o.className=r;let a=o.style;a.position="absolute",a.width="100%",a.height="100%",s=me();let A=s.canvas;o.appendChild(A),a=A.style,a.position="absolute",a.left="0",a.transformOrigin="top left",this.container=o,this.context=s}!this.containerReused&&n&&!this.container.style.backgroundColor&&(this.container.style.backgroundColor=n)}clipUnrotated(e,t,n){let r=ht(n),o=yo(n),s=Jn(n),a=_o(n);ye(t.coordinateToPixelTransform,r),ye(t.coordinateToPixelTransform,o),ye(t.coordinateToPixelTransform,s),ye(t.coordinateToPixelTransform,a);let A=this.inversePixelTransform;ye(A,r),ye(A,o),ye(A,s),ye(A,a),e.save(),e.beginPath(),e.moveTo(Math.round(r[0]),Math.round(r[1])),e.lineTo(Math.round(o[0]),Math.round(o[1])),e.lineTo(Math.round(s[0]),Math.round(s[1])),e.lineTo(Math.round(a[0]),Math.round(a[1])),e.clip()}prepareContainer(e,t){let n=e.extent,r=e.viewState.resolution,o=e.viewState.rotation,s=e.pixelRatio,a=Math.round(oe(n)/r*s),A=Math.round(Se(n)/r*s);Xe(this.pixelTransform,e.size[0]/2,e.size[1]/2,1/s,1/s,o,-a/2,-A/2),Bi(this.inversePixelTransform,this.pixelTransform);let l=tI(this.pixelTransform);if(this.useContainer(t,l,this.getBackground(e)),!this.containerReused){let c=this.context.canvas;c.width!=a||c.height!=A?(c.width=a,c.height=A):this.context.clearRect(0,0,a,A),l!==c.style.transform&&(c.style.transform=l)}}dispatchRenderEvent_(e,t,n){let r=this.getLayer();if(r.hasListener(e)){let o=new lr(e,this.inversePixelTransform,n,t);r.dispatchEvent(o)}}preRender(e,t){this.frameState=t,!t.declutter&&this.dispatchRenderEvent_(Fe.PRERENDER,e,t)}postRender(e,t){t.declutter||this.dispatchRenderEvent_(Fe.POSTRENDER,e,t)}renderDeferredInternal(e){}getRenderContext(e){return e.declutter&&!this.deferredContext_&&(this.deferredContext_=new Cl),e.declutter?this.deferredContext_.getContext():this.context}renderDeferred(e){e.declutter&&(this.dispatchRenderEvent_(Fe.PRERENDER,this.context,e),e.declutter&&this.deferredContext_&&(this.deferredContext_.draw(this.context),this.deferredContext_.clear()),this.renderDeferredInternal(e),this.dispatchRenderEvent_(Fe.POSTRENDER,this.context,e))}getRenderTransform(e,t,n,r,o,s,a){let A=o/2,l=s/2,c=r/t,h=-c,u=-e[0]+a,f=-e[1];return Xe(this.tempTransform,A,l,c,h,-n,u,f)}disposeInternal(){delete this.frameState,super.disposeInternal()}},yl=mf;var If=class extends yl{constructor(e){super(e),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.animatingOrInteracting_,this.hitDetectionImageData_=null,this.clipped_=!1,this.renderedFeatures_=null,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=be(),this.wrappedRenderedExtent_=be(),this.renderedRotation_,this.renderedCenter_=null,this.renderedProjection_=null,this.renderedPixelRatio_=1,this.renderedRenderOrder_=null,this.renderedFrameDeclutter_,this.replayGroup_=null,this.replayGroupChanged=!0,this.clipping=!0,this.targetContext_=null,this.opacity_=1}renderWorlds(e,t,n){let r=t.extent,o=t.viewState,s=o.center,a=o.resolution,A=o.projection,l=o.rotation,c=A.getExtent(),h=this.getLayer().getSource(),u=this.getLayer().getDeclutter(),f=t.pixelRatio,g=t.viewHints,m=!(g[Ye.ANIMATING]||g[Ye.INTERACTING]),d=this.context,I=Math.round(oe(r)/a*f),p=Math.round(Se(r)/a*f),_=h.getWrapX()&&A.canWrapX(),C=_?oe(c):null,E=_?Math.ceil((r[2]-c[2])/C)+1:1,y=_?Math.floor((r[0]-c[0])/C):0;do{let B=this.getRenderTransform(s,a,0,f,I,p,y*C);t.declutter&&(B=B.slice(0)),e.execute(d,[d.canvas.width,d.canvas.height],B,l,m,n===void 0?Or:n?uf:sE,n?u&&t.declutter[u]:void 0)}while(++y{if(this.frameState&&!this.hitDetectionImageData_&&!this.animatingOrInteracting_){let n=this.frameState.size.slice(),r=this.renderedCenter_,o=this.renderedResolution_,s=this.renderedRotation_,a=this.renderedProjection_,A=this.wrappedRenderedExtent_,l=this.getLayer(),c=[],h=n[0]*Qi,u=n[1]*Qi;c.push(this.getRenderTransform(r,o,s,Qi,h,u,0).slice());let f=l.getSource(),g=a.getExtent();if(f.getWrapX()&&a.canWrapX()&&!Ii(g,A)){let d=A[0],I=oe(g),p=0,_;for(;dg[2];)++p,_=I*p,c.push(this.getRenderTransform(r,o,s,Qi,h,u,_).slice()),d-=I}let m=ci();this.hitDetectionImageData_=lE(n,c,this.renderedFeatures_,l.getStyleFunction(),A,o,s,Su(o,this.renderedPixelRatio_),m?a:null)}t(cE(e,this.renderedFeatures_,this.hitDetectionImageData_))})}forEachFeatureAtCoordinate(e,t,n,r,o){if(!this.replayGroup_)return;let s=t.viewState.resolution,a=t.viewState.rotation,A=this.getLayer(),l={},c=function(u,f,g){let m=z(u),d=l[m];if(d){if(d!==!0&&gu.value):null)}handleFontsChanged(){let e=this.getLayer();e.getVisible()&&this.replayGroup_&&e.changed()}handleStyleImageChange_(e){this.renderIfReadyAndVisible()}prepareFrame(e){let t=this.getLayer(),n=t.getSource();if(!n)return!1;let r=e.viewHints[Ye.ANIMATING],o=e.viewHints[Ye.INTERACTING],s=t.getUpdateWhileAnimating(),a=t.getUpdateWhileInteracting();if(this.ready&&!s&&r||!a&&o)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;let A=e.extent,l=e.viewState,c=l.projection,h=l.resolution,u=e.pixelRatio,f=t.getRevision(),g=t.getRenderBuffer(),m=t.getRenderOrder();m===void 0&&(m=UI);let d=l.center.slice(),I=Vn(A,g*h),p=I.slice(),_=[I.slice()],C=c.getExtent();if(n.getWrapX()&&c.canWrapX()&&!Ii(C,e.extent)){let S=oe(C),k=Math.max(oe(I)/2,S);I[0]=C[0]-k,I[2]=C[2]+k,Qo(d,c);let L=bh(_[0],c);L[0]C[0]&&L[2]>C[2]&&_.push([L[0]-S,L[1],L[2]-S,L[3]])}if(this.ready&&this.renderedResolution_==h&&this.renderedRevision_==f&&this.renderedRenderOrder_==m&&this.renderedFrameDeclutter_===!!e.declutter&&Ii(this.wrappedRenderedExtent_,I))return rt(this.renderedExtent_,p)||(this.hitDetectionImageData_=null,this.renderedExtent_=p),this.renderedCenter_=d,this.replayGroupChanged=!1,!0;this.replayGroup_=null;let E=new tE(Ru(h,u),I,h,u),y=ci(),B;if(y){for(let S=0,k=_.length;S{let L,b=S.getStyleFunction()||t.getStyleFunction();if(b&&(L=b(S,h)),L){let P=this.renderFeature(S,x,L,E,B,this.getLayer().getDeclutter(),k);Q=Q&&!P}},T=hi(I,c),R=n.getFeaturesInExtent(T);m&&R.sort(m);for(let S=0,k=R.length;S",GreaterThanOrEqualTo:">=",LessThan:"<",LessThanOrEqualTo:"<=",Multiply:"*",Divide:"/",Add:"+",Subtract:"-",Clamp:"clamp",Mod:"%",Pow:"^",Abs:"abs",Floor:"floor",Ceil:"ceil",Round:"round",Sin:"sin",Cos:"cos",Atan:"atan",Sqrt:"sqrt",Match:"match",Between:"between",Interpolate:"interpolate",Coalesce:"coalesce",Case:"case",In:"in",Number:"number",String:"string",Array:"array",Color:"color",Id:"id",Band:"band",Palette:"palette",ToString:"to-string",Has:"has"},rQ={[v.Get]:ae(he(1,1/0),uE),[v.Var]:ae(he(1,1),oQ),[v.Has]:ae(he(1,1/0),uE),[v.Id]:ae(sQ,zo),[v.Concat]:ae(he(2,1/0),xe(Ke)),[v.GeometryType]:ae(aQ,zo),[v.LineMetric]:ae(zo),[v.Resolution]:ae(Ef,zo),[v.Zoom]:ae(Ef,zo),[v.Time]:ae(Ef,zo),[v.Any]:ae(he(2,1/0),xe(ze)),[v.All]:ae(he(2,1/0),xe(ze)),[v.Not]:ae(he(1,1),xe(ze)),[v.Equal]:ae(he(2,2),xe(Bl)),[v.NotEqual]:ae(he(2,2),xe(Bl)),[v.GreaterThan]:ae(he(2,2),xe(q)),[v.GreaterThanOrEqualTo]:ae(he(2,2),xe(q)),[v.LessThan]:ae(he(2,2),xe(q)),[v.LessThanOrEqualTo]:ae(he(2,2),xe(q)),[v.Multiply]:ae(he(2,1/0),fE),[v.Coalesce]:ae(he(2,1/0),fE),[v.Divide]:ae(he(2,2),xe(q)),[v.Add]:ae(he(2,1/0),xe(q)),[v.Subtract]:ae(he(2,2),xe(q)),[v.Clamp]:ae(he(3,3),xe(q)),[v.Mod]:ae(he(2,2),xe(q)),[v.Pow]:ae(he(2,2),xe(q)),[v.Abs]:ae(he(1,1),xe(q)),[v.Floor]:ae(he(1,1),xe(q)),[v.Ceil]:ae(he(1,1),xe(q)),[v.Round]:ae(he(1,1),xe(q)),[v.Sin]:ae(he(1,1),xe(q)),[v.Cos]:ae(he(1,1),xe(q)),[v.Atan]:ae(he(1,2),xe(q)),[v.Sqrt]:ae(he(1,1),xe(q)),[v.Match]:ae(he(4,1/0),gE,lQ),[v.Between]:ae(he(3,3),xe(q)),[v.Interpolate]:ae(he(6,1/0),gE,cQ),[v.Case]:ae(he(3,1/0),AQ,hQ),[v.In]:ae(he(2,2),uQ),[v.Number]:ae(he(1,1/0),xe(Bl)),[v.String]:ae(he(1,1/0),xe(Bl)),[v.Array]:ae(he(1,1/0),xe(q)),[v.Color]:ae(he(1,4),xe(q)),[v.Band]:ae(he(1,3),xe(q)),[v.Palette]:ae(he(2,2),fQ),[v.ToString]:ae(he(1,1),xe(ze|q|Ke|we))};function uE(i,e,t){let n=i.length-1,r=new Array(n);for(let o=0;oe){let a=e===1/0?`${i} or more`:`${i} to ${e}`;throw new Error(`expected ${a} arguments for ${o}, got ${s}`)}}}function fE(i,e,t){let n=i.length-1,r=new Array(n);for(let o=0;on.featureId;case v.GeometryType:return n=>n.geometryType;case v.Concat:{let n=i.args.map(r=>Si(r,e));return r=>"".concat(...n.map(o=>o(r).toString()))}case v.Resolution:return n=>n.resolution;case v.Any:case v.All:case v.Between:case v.In:case v.Not:return IQ(i,e);case v.Equal:case v.NotEqual:case v.LessThan:case v.LessThanOrEqualTo:case v.GreaterThan:case v.GreaterThanOrEqualTo:return pQ(i,e);case v.Multiply:case v.Divide:case v.Add:case v.Subtract:case v.Clamp:case v.Mod:case v.Pow:case v.Abs:case v.Floor:case v.Ceil:case v.Round:case v.Sin:case v.Cos:case v.Atan:case v.Sqrt:return EQ(i,e);case v.Case:return CQ(i,e);case v.Match:return _Q(i,e);case v.Interpolate:return yQ(i,e);case v.ToString:return BQ(i,e);default:throw new Error(`Unsupported operator ${t}`)}}function dQ(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{for(let s=0;s{for(let s=0;s{let o=i.args,s=r.properties[n];for(let a=1,A=o.length;ar.variables[n];case v.Has:return r=>{let o=i.args;if(!(n in r.properties))return!1;let s=r.properties[n];for(let a=1,A=o.length;an(o)===r(o);case v.NotEqual:return o=>n(o)!==r(o);case v.LessThan:return o=>n(o)n(o)<=r(o);case v.GreaterThan:return o=>n(o)>r(o);case v.GreaterThanOrEqualTo:return o=>n(o)>=r(o);default:throw new Error(`Unsupported comparison operator ${t}`)}}function IQ(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{for(let s=0;s{for(let s=0;s{let s=r[0](o),a=r[1](o),A=r[2](o);return s>=a&&s<=A};case v.In:return o=>{let s=r[0](o);for(let a=1;a!r[0](o);default:throw new Error(`Unsupported logical operator ${t}`)}}function EQ(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{let s=1;for(let a=0;ar[0](o)/r[1](o);case v.Add:return o=>{let s=0;for(let a=0;ar[0](o)-r[1](o);case v.Clamp:return o=>{let s=r[0](o),a=r[1](o);if(sA?A:s};case v.Mod:return o=>r[0](o)%r[1](o);case v.Pow:return o=>Math.pow(r[0](o),r[1](o));case v.Abs:return o=>Math.abs(r[0](o));case v.Floor:return o=>Math.floor(r[0](o));case v.Ceil:return o=>Math.ceil(r[0](o));case v.Round:return o=>Math.round(r[0](o));case v.Sin:return o=>Math.sin(r[0](o));case v.Cos:return o=>Math.cos(r[0](o));case v.Atan:return n===2?o=>Math.atan2(r[0](o),r[1](o)):o=>Math.atan(r[0](o));case v.Sqrt:return o=>Math.sqrt(r[0](o));default:throw new Error(`Unsupported numeric operator ${t}`)}}function CQ(i,e){let t=i.args.length,n=new Array(t);for(let r=0;r{for(let o=0;o{let o=n[0](r);for(let s=1;s{let o=n[0](r),s=n[1](r),a,A;for(let l=2;l=s)return l===2?h:u?xQ(o,s,a,A,c,h):Ia(o,s,a,A,c,h);a=c,A=h}return A}}function BQ(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{let s=r[0](o);return i.args[0].type===we?ra(s):s.toString()};default:throw new Error(`Unsupported convert operator ${t}`)}}function Ia(i,e,t,n,r,o){let s=r-t;if(s===0)return n;let a=e-t,A=i===1?a/s:(Math.pow(i,a)-1)/(Math.pow(i,s)-1);return n+A*(o-n)}function xQ(i,e,t,n,r,o){if(r-t===0)return n;let a=pu(n),A=pu(o),l=A[2]-a[2];l>180?l-=360:l<-180&&(l+=360);let c=[Ia(i,e,t,a[0],r,A[0]),Ia(i,e,t,a[1],r,A[1]),a[2]+Ia(i,e,t,0,r,l),Ia(i,e,t,n[3],r,o[3])];return TI(c)}function wQ(i){return!0}function IE(i){let e=Hr(),t=QQ(i,e),n=Ea();return function(r,o){if(n.properties=r.getPropertiesInternal(),n.resolution=o,e.featureId){let s=r.getId();s!==void 0?n.featureId=s:n.featureId=null}return e.geometryType&&(n.geometryType=zr(r.getGeometry())),t(n)}}function Bf(i){let e=Hr(),t=i.length,n=new Array(t);for(let s=0;snull;n=xf(i,e+"fill-color",t)}if(!n)return null;let r=new zi;return function(o){let s=n(o);return s===sl?null:(r.setColor(s),r)}}function _a(i,e,t){let n=Ut(i,e+"stroke-width",t),r=xf(i,e+"stroke-color",t);if(!n&&!r)return null;let o=Dn(i,e+"stroke-line-cap",t),s=Dn(i,e+"stroke-line-join",t),a=EE(i,e+"stroke-line-dash",t),A=Ut(i,e+"stroke-line-dash-offset",t),l=Ut(i,e+"stroke-miter-limit",t),c=new or;return function(h){if(r){let u=r(h);if(u===sl)return null;c.setColor(u)}if(n&&c.setWidth(n(h)),o){let u=o(h);if(u!=="butt"&&u!=="round"&&u!=="square")throw new Error("Expected butt, round, or square line cap");c.setLineCap(u)}if(s){let u=s(h);if(u!=="bevel"&&u!=="round"&&u!=="miter")throw new Error("Expected bevel, round, or miter line join");c.setLineJoin(u)}return a&&c.setLineDash(a(h)),A&&c.setLineDashOffset(A(h)),l&&c.setMiterLimit(l(h)),c}}function SQ(i,e){let t="text-",n=Dn(i,t+"value",e);if(!n)return null;let r=Ca(i,t,e),o=Ca(i,t+"background-",e),s=_a(i,t,e),a=_a(i,t+"background-",e),A=Dn(i,t+"font",e),l=Ut(i,t+"max-angle",e),c=Ut(i,t+"offset-x",e),h=Ut(i,t+"offset-y",e),u=Ko(i,t+"overflow",e),f=Dn(i,t+"placement",e),g=Ut(i,t+"repeat",e),m=Ql(i,t+"scale",e),d=Ko(i,t+"rotate-with-view",e),I=Ut(i,t+"rotation",e),p=Dn(i,t+"align",e),_=Dn(i,t+"justify",e),C=Dn(i,t+"baseline",e),E=Ko(i,t+"keep-upright",e),y=EE(i,t+"padding",e),B=Sl(i,t+"declutter-mode"),x=new ua({declutterMode:B});return function(Q){if(x.setText(n(Q)),r&&x.setFill(r(Q)),o&&x.setBackgroundFill(o(Q)),s&&x.setStroke(s(Q)),a&&x.setBackgroundStroke(a(Q)),A&&x.setFont(A(Q)),l&&x.setMaxAngle(l(Q)),c&&x.setOffsetX(c(Q)),h&&x.setOffsetY(h(Q)),u&&x.setOverflow(u(Q)),f){let w=f(Q);if(w!=="point"&&w!=="line")throw new Error("Expected point or line for text-placement");x.setPlacement(w)}if(g&&x.setRepeat(g(Q)),m&&x.setScale(m(Q)),d&&x.setRotateWithView(d(Q)),I&&x.setRotation(I(Q)),p){let w=p(Q);if(w!=="left"&&w!=="center"&&w!=="right"&&w!=="end"&&w!=="start")throw new Error("Expected left, right, center, start, or end for text-align");x.setTextAlign(w)}if(_){let w=_(Q);if(w!=="left"&&w!=="right"&&w!=="center")throw new Error("Expected left, right, or center for text-justify");x.setJustify(w)}if(C){let w=C(Q);if(w!=="bottom"&&w!=="top"&&w!=="middle"&&w!=="alphabetic"&&w!=="hanging")throw new Error("Expected bottom, top, middle, alphabetic, or hanging for text-baseline");x.setTextBaseline(w)}return y&&x.setPadding(y(Q)),E&&x.setKeepUpright(E(Q)),x}}function RQ(i,e){return"icon-src"in i?TQ(i,e):"shape-points"in i?vQ(i,e):"circle-radius"in i?DQ(i,e):null}function TQ(i,e){let t="icon-",n=t+"src",r=CE(i[n],n),o=xl(i,t+"anchor",e),s=Ql(i,t+"scale",e),a=Ut(i,t+"opacity",e),A=xl(i,t+"displacement",e),l=Ut(i,t+"rotation",e),c=Ko(i,t+"rotate-with-view",e),h=mE(i,t+"anchor-origin"),u=pE(i,t+"anchor-x-units"),f=pE(i,t+"anchor-y-units"),g=kQ(i,t+"color"),m=LQ(i,t+"cross-origin"),d=MQ(i,t+"offset"),I=mE(i,t+"offset-origin"),p=wl(i,t+"width"),_=wl(i,t+"height"),C=FQ(i,t+"size"),E=Sl(i,t+"declutter-mode"),y=new Ar({src:r,anchorOrigin:h,anchorXUnits:u,anchorYUnits:f,color:g,crossOrigin:m,offset:d,offsetOrigin:I,height:_,width:p,size:C,declutterMode:E});return function(B){return a&&y.setOpacity(a(B)),A&&y.setDisplacement(A(B)),l&&y.setRotation(l(B)),c&&y.setRotateWithView(c(B)),s&&y.setScale(s(B)),o&&y.setAnchor(o(B)),y}}function vQ(i,e){let t="shape-",n=t+"points",r=t+"radius",o=yf(i[n],n),s=yf(i[r],r),a=Ca(i,t,e),A=_a(i,t,e),l=Ql(i,t+"scale",e),c=xl(i,t+"displacement",e),h=Ut(i,t+"rotation",e),u=Ko(i,t+"rotate-with-view",e),f=wl(i,t+"radius2"),g=wl(i,t+"angle"),m=Sl(i,t+"declutter-mode"),d=new pl({points:o,radius:s,radius2:f,angle:g,declutterMode:m});return function(I){return a&&d.setFill(a(I)),A&&d.setStroke(A(I)),c&&d.setDisplacement(c(I)),h&&d.setRotation(h(I)),u&&d.setRotateWithView(u(I)),l&&d.setScale(l(I)),d}}function DQ(i,e){let t="circle-",n=Ca(i,t,e),r=_a(i,t,e),o=Ut(i,t+"radius",e),s=Ql(i,t+"scale",e),a=xl(i,t+"displacement",e),A=Ut(i,t+"rotation",e),l=Ko(i,t+"rotate-with-view",e),c=Sl(i,t+"declutter-mode"),h=new Il({radius:5,declutterMode:c});return function(u){return o&&h.setRadius(o(u)),n&&h.setFill(n(u)),r&&h.setStroke(r(u)),a&&h.setDisplacement(a(u)),A&&h.setRotation(A(u)),l&&h.setRotateWithView(l(u)),s&&h.setScale(s(u)),h}}function Ut(i,e,t){if(!(e in i))return;let n=gi(i[e],q,t);return function(r){return yf(n(r),e)}}function Dn(i,e,t){if(!(e in i))return null;let n=gi(i[e],Ke,t);return function(r){return CE(n(r),e)}}function bQ(i,e,t){let n=Dn(i,e+"pattern-src",t),r=dE(i,e+"pattern-offset",t),o=dE(i,e+"pattern-size",t),s=xf(i,e+"color",t);return function(a){return{src:n(a),offset:r&&r(a),size:o&&o(a),color:s&&s(a)}}}function Ko(i,e,t){if(!(e in i))return null;let n=gi(i[e],ze,t);return function(r){let o=n(r);if(typeof o!="boolean")throw new Error(`Expected a boolean for ${e}`);return o}}function xf(i,e,t){if(!(e in i))return null;let n=gi(i[e],we,t);return function(r){return _E(n(r),e)}}function EE(i,e,t){if(!(e in i))return null;let n=gi(i[e],et,t);return function(r){return ya(n(r),e)}}function xl(i,e,t){if(!(e in i))return null;let n=gi(i[e],et,t);return function(r){let o=ya(n(r),e);if(o.length!==2)throw new Error(`Expected two numbers for ${e}`);return o}}function dE(i,e,t){if(!(e in i))return null;let n=gi(i[e],et,t);return function(r){return yE(n(r),e)}}function Ql(i,e,t){if(!(e in i))return null;let n=gi(i[e],et|q,t);return function(r){return PQ(n(r),e)}}function wl(i,e){let t=i[e];if(t!==void 0){if(typeof t!="number")throw new Error(`Expected a number for ${e}`);return t}}function FQ(i,e){let t=i[e];if(t!==void 0){if(typeof t=="number")return _e(t);if(!Array.isArray(t))throw new Error(`Expected a number or size array for ${e}`);if(t.length!==2||typeof t[0]!="number"||typeof t[1]!="number")throw new Error(`Expected a number or size array for ${e}`);return t}}function LQ(i,e){let t=i[e];if(t!==void 0){if(typeof t!="string")throw new Error(`Expected a string for ${e}`);return t}}function mE(i,e){let t=i[e];if(t!==void 0){if(t!=="bottom-left"&&t!=="bottom-right"&&t!=="top-left"&&t!=="top-right")throw new Error(`Expected bottom-left, bottom-right, top-left, or top-right for ${e}`);return t}}function pE(i,e){let t=i[e];if(t!==void 0){if(t!=="pixels"&&t!=="fraction")throw new Error(`Expected pixels or fraction for ${e}`);return t}}function MQ(i,e){let t=i[e];if(t!==void 0)return ya(t,e)}function Sl(i,e){let t=i[e];if(t!==void 0){if(typeof t!="string")throw new Error(`Expected a string for ${e}`);if(t!=="declutter"&&t!=="obstacle"&&t!=="none")throw new Error(`Expected declutter, obstacle, or none for ${e}`);return t}}function kQ(i,e){let t=i[e];if(t!==void 0)return _E(t,e)}function ya(i,e){if(!Array.isArray(i))throw new Error(`Expected an array for ${e}`);let t=i.length;for(let n=0;n4)throw new Error(`Expected a color with 3 or 4 values for ${e}`);return t}function yE(i,e){let t=ya(i,e);if(t.length!==2)throw new Error(`Expected an array of two numbers for ${e}`);return t}function PQ(i,e){return typeof i=="number"?i:yE(i,e)}var St={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};function wf(i,e,t){return function(n,r,o,s,a){if(!n)return;if(!r&&!e)return n;let A=e?0:o[0]*r,l=e?0:o[1]*r,c=a?a[0]:0,h=a?a[1]:0,u=i[0]+A/2+c,f=i[2]-A/2+c,g=i[1]+l/2+h,m=i[3]-l/2+h;u>f&&(u=(f+u)/2,f=u),g>m&&(g=(m+g)/2,m=g);let d=ce(n[0],u,f),I=ce(n[1],g,m);if(s&&t&&r){let p=30*r;d+=-p*Math.log(1+Math.max(0,u-n[0])/p)+p*Math.log(1+Math.max(0,n[0]-f)/p),I+=-p*Math.log(1+Math.max(0,g-n[1])/p)+p*Math.log(1+Math.max(0,n[1]-m)/p)}return[d,I]}}function BE(i){return i}function Qf(i){return Math.pow(i,3)}function Yt(i){return 1-Qf(1-i)}function xE(i){return 3*i*i-2*i*i*i}function wE(i){return i}function Sf(i,e,t,n){let r=oe(e)/t[0],o=Se(e)/t[1];return n?Math.min(i,Math.max(r,o)):Math.min(i,Math.min(r,o))}function Rf(i,e,t){let n=Math.min(i,e),r=50;return n*=Math.log(1+r*Math.max(0,i/e-1))/r+1,t&&(n=Math.max(n,t),n/=Math.log(1+r*Math.max(0,t/i-1))/r+1),ce(n,t/2,e*2)}function QE(i,e,t,n){return e=e!==void 0?e:!0,function(r,o,s,a){if(r!==void 0){let A=i[0],l=i[i.length-1],c=t?Sf(A,t,s,n):A;if(a)return e?Rf(r,c,l):ce(r,l,c);let h=Math.min(c,r),u=Math.floor(go(i,h,o));return i[u]>c&&u1&&typeof arguments[t-1]=="function"&&(n=arguments[t-1],--t);let r=0;for(;r0}getInteracting(){return this.hints_[Ye.INTERACTING]>0}cancelAnimations(){this.setHint(Ye.ANIMATING,-this.hints_[Ye.ANIMATING]);let e;for(let t=0,n=this.animations_.length;t=0;--n){let r=this.animations_[n],o=!0;for(let s=0,a=r.length;s0?l/A.duration:1;c>=1?(A.complete=!0,c=1):o=!1;let h=A.easing(c);if(A.sourceCenter){let u=A.sourceCenter[0],f=A.sourceCenter[1],g=A.targetCenter[0],m=A.targetCenter[1];this.nextCenter_=A.targetCenter;let d=u+h*(g-u),I=f+h*(m-f);this.targetCenter_=[d,I]}if(A.sourceResolution&&A.targetResolution){let u=h===1?A.targetResolution:A.sourceResolution+h*(A.targetResolution-A.sourceResolution);if(A.anchor){let f=this.getViewportSize_(this.getRotation()),g=this.constraints_.resolution(u,0,f,!0);this.targetCenter_=this.calculateCenterZoom(g,A.anchor)}this.nextResolution_=A.targetResolution,this.targetResolution_=u,this.applyTargetState_(!0)}if(A.sourceRotation!==void 0&&A.targetRotation!==void 0){let u=h===1?Wt(A.targetRotation+Math.PI,2*Math.PI)-Math.PI:A.sourceRotation+h*(A.targetRotation-A.sourceRotation);if(A.anchor){let f=this.constraints_.rotation(u,!0);this.targetCenter_=this.calculateCenterRotate(f,A.anchor)}this.nextRotation_=A.targetRotation,this.targetRotation_=u}if(this.applyTargetState_(!0),t=!0,!A.complete)break}if(o){this.animations_[n]=null,this.setHint(Ye.ANIMATING,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;let s=r[0].callback;s&&Rl(s,!0)}}this.animations_=this.animations_.filter(Boolean),t&&this.updateAnimationKey_===void 0&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(e,t){let n,r=this.getCenterInternal();return r!==void 0&&(n=[r[0]-t[0],r[1]-t[1]],wo(n,e-this.getRotation()),Tp(n,t)),n}calculateCenterZoom(e,t){let n,r=this.getCenterInternal(),o=this.getResolution();if(r!==void 0&&o!==void 0){let s=t[0]-e*(t[0]-r[0])/o,a=t[1]-e*(t[1]-r[1])/o;n=[s,a]}return n}getViewportSize_(e){let t=this.viewportSize_;if(e){let n=t[0],r=t[1];return[Math.abs(n*Math.cos(e))+Math.abs(r*Math.sin(e)),Math.abs(n*Math.sin(e))+Math.abs(r*Math.cos(e))]}return t}setViewportSize(e){this.viewportSize_=Array.isArray(e)?e.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){let e=this.getCenterInternal();return e&&Dr(e,this.getProjection())}getCenterInternal(){return this.get(St.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(e){return e!==void 0?(e[0]=this.hints_[0],e[1]=this.hints_[1],e):this.hints_.slice()}calculateExtent(e){let t=this.calculateExtentInternal(e);return hi(t,this.getProjection())}calculateExtentInternal(e){e=e||this.getViewportSizeMinusPadding_();let t=this.getCenterInternal();re(t,"The view center is not defined");let n=this.getResolution();re(n!==void 0,"The view resolution is not defined");let r=this.getRotation();return re(r!==void 0,"The view rotation is not defined"),Ns(t,n,r,e)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(e){this.applyOptions_(this.getUpdatedOptions_({maxZoom:e}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(e){this.applyOptions_(this.getUpdatedOptions_({minZoom:e}))}setConstrainResolution(e){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:e}))}getProjection(){return this.projection_}getResolution(){return this.get(St.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(e,t){return this.getResolutionForExtentInternal(Ct(e,this.getProjection()),t)}getResolutionForExtentInternal(e,t){t=t||this.getViewportSizeMinusPadding_();let n=oe(e)/t[0],r=Se(e)/t[1];return Math.max(n,r)}getResolutionForValueFunction(e){e=e||2;let t=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(t/n)/Math.log(e);return function(o){return t/Math.pow(e,o*r)}}getRotation(){return this.get(St.ROTATION)}getValueForResolutionFunction(e){let t=Math.log(e||2),n=this.getConstrainedResolution(this.maxResolution_),r=this.minResolution_,o=Math.log(n/r)/t;return function(s){return Math.log(n/s)/t/o}}getViewportSizeMinusPadding_(e){let t=this.getViewportSize_(e),n=this.padding_;return n&&(t=[t[0]-n[1]-n[3],t[1]-n[0]-n[2]]),t}getState(){let e=this.getProjection(),t=this.getResolution(),n=this.getRotation(),r=this.getCenterInternal(),o=this.padding_;if(o){let s=this.getViewportSizeMinusPadding_();r=bf(r,this.getViewportSize_(),[s[0]/2+o[3],s[1]/2+o[0]],t,n)}return{center:r.slice(0),projection:e!==void 0?e:null,resolution:t,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:n,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let e,t=this.getResolution();return t!==void 0&&(e=this.getZoomForResolution(t)),e}getZoomForResolution(e){let t=this.minZoom_||0,n,r;if(this.resolutions_){let o=go(this.resolutions_,e,1);t=o,n=this.resolutions_[o],o==this.resolutions_.length-1?r=2:r=n/this.resolutions_[o+1]}else n=this.maxResolution_,r=this.zoomFactor_;return t+Math.log(n/e)/Math.log(r)}getResolutionForZoom(e){if(this.resolutions_?.length){if(this.resolutions_.length===1)return this.resolutions_[0];let t=ce(Math.floor(e),0,this.resolutions_.length-2),n=this.resolutions_[t]/this.resolutions_[t+1];return this.resolutions_[t]/Math.pow(n,ce(e-t,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,e-this.minZoom_)}fit(e,t){let n;if(re(Array.isArray(e)||typeof e.getSimplifiedGeometry=="function","Invalid extent or geometry provided as `geometry`"),Array.isArray(e)){re(!ki(e),"Cannot fit empty extent provided as `geometry`");let r=Ct(e,this.getProjection());n=ea(r)}else if(e.getType()==="Circle"){let r=Ct(e.getExtent(),this.getProjection());n=ea(r),n.rotate(this.getRotation(),Et(r))}else{let r=ci();r?n=e.clone().transform(r,this.getProjection()):n=e}this.fitInternal(n,t)}rotatedExtentForGeometry(e){let t=this.getRotation(),n=Math.cos(t),r=Math.sin(-t),o=e.getFlatCoordinates(),s=e.getStride(),a=1/0,A=1/0,l=-1/0,c=-1/0;for(let h=0,u=o.length;h{this.dispatchEvent("sourceready")},0)),this.clearRenderer()),this.changed()}getFeatures(e){return this.renderer_?this.renderer_.getFeatures(e):Promise.resolve([])}getData(e){return!this.renderer_||!this.rendered?null:this.renderer_.getData(e)}isVisible(e){let t,n=this.getMapInternal();!e&&n&&(e=n.getView()),e instanceof yt?t={viewState:e.getState(),extent:e.calculateExtent()}:t=e,!t.layerStatesArray&&n&&(t.layerStatesArray=n.getLayerGroup().getLayerStatesArray());let r;if(t.layerStatesArray){if(r=t.layerStatesArray.find(s=>s.layer===this),!r)return!1}else r=this.getLayerState();let o=this.getExtent();return Ba(r,t.viewState)&&(!o||Ne(o,t.extent))}getAttributions(e){if(!this.isVisible(e))return[];let t=this.getSource()?.getAttributions();if(!t)return[];let n=e instanceof yt?e.getViewStateAndExtent():e,r=t(n);return Array.isArray(r)||(r=[r]),r}render(e,t){let n=this.getRenderer();return n.prepareFrame(e)?(this.rendered=!0,n.renderFrame(e,t)):null}unrender(){this.rendered=!1}getDeclutter(){}renderDeclutter(e,t){}renderDeferred(e){let t=this.getRenderer();t&&t.renderDeferred(e)}setMapInternal(e){e||this.unrender(),this.set(pe.MAP,e)}getMapInternal(){return this.get(pe.MAP)}setMap(e){this.mapPrecomposeKey_&&(se(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),e||this.changed(),this.mapRenderKey_&&(se(this.mapRenderKey_),this.mapRenderKey_=null),e&&(this.mapPrecomposeKey_=X(e,Fe.PRECOMPOSE,this.handlePrecompose_,this),this.mapRenderKey_=X(this,U.CHANGE,e.render,e),this.changed())}handlePrecompose_(e){let t=e.frameState.layerStatesArray,n=this.getLayerState(!1);re(!t.some(r=>r.layer===n.layer),"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."),t.push(n)}setSource(e){this.set(pe.SOURCE,e)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}clearRenderer(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_)}disposeInternal(){this.clearRenderer(),this.setSource(null),super.disposeInternal()}};function Ba(i,e){if(!i.visible)return!1;let t=e.resolution;if(t=i.maxResolution)return!1;let n=e.zoom;return n>i.minZoom&&n<=i.maxZoom}var bn=Mf;var DE={RENDER_ORDER:"renderOrder"},kf=class extends bn{constructor(e){e=e||{};let t=Object.assign({},e);delete t.style,delete t.renderBuffer,delete t.updateWhileAnimating,delete t.updateWhileInteracting,super(t),this.declutter_=e.declutter?String(e.declutter):void 0,this.renderBuffer_=e.renderBuffer!==void 0?e.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(e.style),this.updateWhileAnimating_=e.updateWhileAnimating!==void 0?e.updateWhileAnimating:!1,this.updateWhileInteracting_=e.updateWhileInteracting!==void 0?e.updateWhileInteracting:!1}getDeclutter(){return this.declutter_}getFeatures(e){return super.getFeatures(e)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(DE.RENDER_ORDER)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(e,t){let n=this.getDeclutter();n in e.declutter||(e.declutter[n]=new Gr(9)),this.getRenderer().renderDeclutter(e,t)}setRenderOrder(e){this.set(DE.RENDER_ORDER,e)}setStyle(e){this.style_=e===void 0?ju:e;let t=YQ(e);this.styleFunction_=e===null?void 0:JI(t),this.changed()}setDeclutter(e){this.declutter_=e?String(e):void 0,this.changed()}};function YQ(i){if(i===void 0)return ju;if(!i)return null;if(typeof i=="function"||i instanceof $t)return i;if(!Array.isArray(i))return Bf([i]);if(i.length===0)return[];let e=i.length,t=i[0];if(t instanceof $t){let r=new Array(e);for(let o=0;oe)throw new Error("Tile load sequence violation");this.state=e,this.changed()}}load(){J()}getAlpha(e,t){if(!this.transition_)return 1;let n=this.transitionStarts_[e];if(!n)n=t,this.transitionStarts_[e]=n;else if(n===-1)return 1;let r=t-n+1e3/60;return r>=this.transition_?1:Qf(r/this.transition_)}inTransition(e){return this.transition_?this.transitionStarts_[e]!==-1:!1}endTransition(e){this.transition_&&(this.transitionStarts_[e]=-1)}disposeInternal(){this.release(),super.disposeInternal()}},Xo=Nf;var Gf=class extends Xo{constructor(e,t,n,r,o,s){super(e,t,s),this.crossOrigin_=r,this.src_=n,this.key=n,this.image_=new Image,r!==null&&(this.image_.crossOrigin=r),this.unlisten_=null,this.tileLoadFunction_=o}getImage(){return this.image_}setImage(e){this.image_=e,this.state=G.LOADED,this.unlistenImage_(),this.changed()}handleImageError_(){this.state=G.ERROR,this.unlistenImage_(),this.image_=HQ(),this.changed()}handleImageLoad_(){let e=this.image_;e.naturalWidth&&e.naturalHeight?this.state=G.LOADED:this.state=G.EMPTY,this.unlistenImage_(),this.changed()}load(){this.state==G.ERROR&&(this.state=G.IDLE,this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==G.IDLE&&(this.state=G.LOADING,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=vI(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}disposeInternal(){this.unlistenImage_(),this.image_=null,super.disposeInternal()}};function HQ(){let i=me(1,1);return i.fillStyle="rgba(0,0,0,0)",i.fillRect(0,0,1,1),i.canvas}var hr=Gf;var Of=class{constructor(e,t,n){this.decay_=e,this.minVelocity_=t,this.delay_=n,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(e,t){this.points_.push(e,t,Date.now())}end(){if(this.points_.length<6)return!1;let e=Date.now()-this.delay_,t=this.points_.length-3;if(this.points_[t+2]0&&this.points_[n+2]>e;)n-=3;let r=this.points_[t+2]-this.points_[n+2];if(r<1e3/60)return!1;let o=this.points_[t]-this.points_[n],s=this.points_[t+1]-this.points_[n+1];return this.angle_=Math.atan2(s,o),this.initialVelocity_=Math.sqrt(o*o+s*s)/r,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}},FE=Of;var Uf=class extends ot{constructor(e,t,n){super(e),this.map=t,this.frameState=n!==void 0?n:null}},ur=Uf;var Yf=class extends ur{constructor(e,t,n,r,o,s){super(e,t,o),this.originalEvent=n,this.pixel_=null,this.coordinate_=null,this.dragging=r!==void 0?r:!1,this.activePointers=s}get pixel(){return this.pixel_||(this.pixel_=this.map.getEventPixel(this.originalEvent)),this.pixel_}set pixel(e){this.pixel_=e}get coordinate(){return this.coordinate_||(this.coordinate_=this.map.getCoordinateFromPixel(this.pixel)),this.coordinate_}set coordinate(e){this.coordinate_=e}preventDefault(){super.preventDefault(),"preventDefault"in this.originalEvent&&this.originalEvent.preventDefault()}stopPropagation(){super.stopPropagation(),"stopPropagation"in this.originalEvent&&this.originalEvent.stopPropagation()}},Vi=Yf;var De={SINGLECLICK:"singleclick",CLICK:U.CLICK,DBLCLICK:U.DBLCLICK,POINTERDRAG:"pointerdrag",POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"};var Ht={POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"};var Hf=class extends Mi{constructor(e,t){super(e),this.map_=e,this.clickTimeoutId_,this.emulateClicks_=!1,this.dragging_=!1,this.dragListenerKeys_=[],this.moveTolerance_=t===void 0?1:t,this.down_=null;let n=this.map_.getViewport();this.activePointers_=[],this.trackedTouches_={},this.element_=n,this.pointerdownListenerKey_=X(n,Ht.POINTERDOWN,this.handlePointerDown_,this),this.originalPointerMoveEvent_,this.relayedListenerKey_=X(n,Ht.POINTERMOVE,this.relayMoveEvent_,this),this.boundHandleTouchMove_=this.handleTouchMove_.bind(this),this.element_.addEventListener(U.TOUCHMOVE,this.boundHandleTouchMove_,nl?{passive:!1}:!1)}emulateClick_(e){let t=new Vi(De.CLICK,this.map_,e);this.dispatchEvent(t),this.clickTimeoutId_!==void 0?(clearTimeout(this.clickTimeoutId_),this.clickTimeoutId_=void 0,t=new Vi(De.DBLCLICK,this.map_,e),this.dispatchEvent(t)):this.clickTimeoutId_=setTimeout(()=>{this.clickTimeoutId_=void 0;let n=new Vi(De.SINGLECLICK,this.map_,e);this.dispatchEvent(n)},250)}updateActivePointers_(e){let t=e,n=t.pointerId;if(t.type==De.POINTERUP||t.type==De.POINTERCANCEL){delete this.trackedTouches_[n];for(let r in this.trackedTouches_)if(this.trackedTouches_[r].target!==t.target){delete this.trackedTouches_[r];break}}else(t.type==De.POINTERDOWN||t.type==De.POINTERMOVE)&&(this.trackedTouches_[n]=t);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(e){this.updateActivePointers_(e);let t=new Vi(De.POINTERUP,this.map_,e,void 0,void 0,this.activePointers_);this.dispatchEvent(t),this.emulateClicks_&&!t.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(e)&&this.emulateClick_(this.down_),this.activePointers_.length===0&&(this.dragListenerKeys_.forEach(se),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(e){return e.button===0}handlePointerDown_(e){this.emulateClicks_=this.activePointers_.length===0,this.updateActivePointers_(e);let t=new Vi(De.POINTERDOWN,this.map_,e,void 0,void 0,this.activePointers_);if(this.dispatchEvent(t),this.down_=new PointerEvent(e.type,e),Object.defineProperty(this.down_,"target",{writable:!1,value:e.target}),this.dragListenerKeys_.length===0){let n=this.map_.getOwnerDocument();this.dragListenerKeys_.push(X(n,De.POINTERMOVE,this.handlePointerMove_,this),X(n,De.POINTERUP,this.handlePointerUp_,this),X(this.element_,De.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==n&&this.dragListenerKeys_.push(X(this.element_.getRootNode(),De.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(e){if(this.isMoving_(e)){this.updateActivePointers_(e),this.dragging_=!0;let t=new Vi(De.POINTERDRAG,this.map_,e,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(t)}}relayMoveEvent_(e){this.originalPointerMoveEvent_=e;let t=!!(this.down_&&this.isMoving_(e));this.dispatchEvent(new Vi(De.POINTERMOVE,this.map_,e,t))}handleTouchMove_(e){let t=this.originalPointerMoveEvent_;(!t||t.defaultPrevented)&&(typeof e.cancelable!="boolean"||e.cancelable===!0)&&e.preventDefault()}isMoving_(e){return this.dragging_||Math.abs(e.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(e.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(se(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(U.TOUCHMOVE,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(se(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(se),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},LE=Hf;var zt={POSTRENDER:"postrender",MOVESTART:"movestart",MOVEEND:"moveend",LOADSTART:"loadstart",LOADEND:"loadend"};var Le={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"};var xa=1/0,zf=class{constructor(e,t){this.priorityFunction_=e,this.keyFunction_=t,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,ai(this.queuedElements_)}dequeue(){let e=this.elements_,t=this.priorities_,n=e[0];e.length==1?(e.length=0,t.length=0):(e[0]=e.pop(),t[0]=t.pop(),this.siftUp_(0));let r=this.keyFunction_(n);return delete this.queuedElements_[r],n}enqueue(e){re(!(this.keyFunction_(e)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");let t=this.priorityFunction_(e);return t!=xa?(this.elements_.push(e),this.priorities_.push(t),this.queuedElements_[this.keyFunction_(e)]=!0,this.siftDown_(0,this.elements_.length-1),!0):!1}getCount(){return this.elements_.length}getLeftChildIndex_(e){return e*2+1}getRightChildIndex_(e){return e*2+2}getParentIndex_(e){return e-1>>1}heapify_(){let e;for(e=(this.elements_.length>>1)-1;e>=0;e--)this.siftUp_(e)}isEmpty(){return this.elements_.length===0}isKeyQueued(e){return e in this.queuedElements_}isQueued(e){return this.isKeyQueued(this.keyFunction_(e))}siftUp_(e){let t=this.elements_,n=this.priorities_,r=t.length,o=t[e],s=n[e],a=e;for(;e>1;){let A=this.getLeftChildIndex_(e),l=this.getRightChildIndex_(e),c=le;){let a=this.getParentIndex_(t);if(r[a]>s)n[t]=n[a],r[t]=r[a],t=a;else break}n[t]=o,r[t]=s}reprioritize(){let e=this.priorityFunction_,t=this.elements_,n=this.priorities_,r=0,o=t.length,s,a,A;for(a=0;ae.apply(null,n),n=>n[0].getKey()),this.boundHandleTileChange_=this.handleTileChange.bind(this),this.tileChangeCallback_=t,this.tilesLoading_=0,this.tilesLoadingKeys_={}}enqueue(e){let t=super.enqueue(e);return t&&e[0].addEventListener(U.CHANGE,this.boundHandleTileChange_),t}getTilesLoading(){return this.tilesLoading_}handleTileChange(e){let t=e.target,n=t.getState();if(n===G.LOADED||n===G.ERROR||n===G.EMPTY){n!==G.ERROR&&t.removeEventListener(U.CHANGE,this.boundHandleTileChange_);let r=t.getKey();r in this.tilesLoadingKeys_&&(delete this.tilesLoadingKeys_[r],--this.tilesLoading_),this.tileChangeCallback_()}}loadMoreTiles(e,t){let n=0;for(;this.tilesLoading_0;){let r=this.dequeue()[0],o=r.getKey();r.getState()===G.IDLE&&!(o in this.tilesLoadingKeys_)&&(this.tilesLoadingKeys_[o]=!0,++this.tilesLoading_,++n,r.load())}}},kE=Kf;function PE(i,e,t,n,r){if(!i||!(t in i.wantedTiles))return xa;if(!i.wantedTiles[t][e.getKey()])return xa;let o=i.viewState.center,s=n[0]-o[0],a=n[1]-o[1];return 65536*Math.log(r)+Math.sqrt(s*s+a*a)/r}var qf=class extends Oe{constructor(e){super();let t=e.element;t&&!e.target&&!t.style.pointerEvents&&(t.style.pointerEvents="auto"),this.element=t||null,this.target_=null,this.map_=null,this.listenerKeys=[],e.render&&(this.render=e.render),e.target&&this.setTarget(e.target)}disposeInternal(){this.element?.remove(),super.disposeInternal()}getMap(){return this.map_}setMap(e){this.map_&&this.element?.remove();for(let t=0,n=this.listenerKeys.length;tr.getAttributions(e)));if(this.attributions_!==void 0&&(Array.isArray(this.attributions_)?this.attributions_.forEach(r=>n.add(r)):n.add(this.attributions_)),!this.overrideCollapsible_){let r=!t.some(o=>o.getSource()?.getAttributionsCollapsible()===!1);this.setCollapsible(r)}return Array.from(n)}async updateElement_(e){if(!e){this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1);return}let t=await Promise.all(this.collectSourceAttributions_(e).map(r=>xA(()=>r))),n=t.length>0;if(this.renderedVisible_!=n&&(this.element.style.display=n?"":"none",this.renderedVisible_=n),!rt(t,this.renderedAttributions_)){rl(this.ulElement_);for(let r=0,o=t.length;r0&&n%(2*Math.PI)!==0?t.animate({rotation:0,duration:this.duration_,easing:Yt}):t.setRotation(0))}render(e){let t=e.frameState;if(!t)return;let n=t.viewState.rotation;if(n!=this.rotation_){let r="rotate("+n+"rad)";if(this.autoHide_){let o=this.element.classList.contains(sa);!o&&n===0?this.element.classList.add(sa):o&&n!==0&&this.element.classList.remove(sa)}this.label_.style.transform=r}this.rotation_=n}},GE=Xf;var Jf=class extends At{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target});let t=e.className!==void 0?e.className:"ol-zoom",n=e.delta!==void 0?e.delta:1,r=e.zoomInClassName!==void 0?e.zoomInClassName:t+"-in",o=e.zoomOutClassName!==void 0?e.zoomOutClassName:t+"-out",s=e.zoomInLabel!==void 0?e.zoomInLabel:"+",a=e.zoomOutLabel!==void 0?e.zoomOutLabel:"\u2013",A=e.zoomInTipLabel!==void 0?e.zoomInTipLabel:"Zoom in",l=e.zoomOutTipLabel!==void 0?e.zoomOutTipLabel:"Zoom out",c=document.createElement("button");c.className=r,c.setAttribute("type","button"),c.title=A,c.appendChild(typeof s=="string"?document.createTextNode(s):s),c.addEventListener(U.CLICK,this.handleClick_.bind(this,n),!1);let h=document.createElement("button");h.className=o,h.setAttribute("type","button"),h.title=l,h.appendChild(typeof a=="string"?document.createTextNode(a):a),h.addEventListener(U.CLICK,this.handleClick_.bind(this,-n),!1);let u=t+" "+gt+" "+fi,f=this.element;f.className=u,f.appendChild(c),f.appendChild(h),this.duration_=e.duration!==void 0?e.duration:250}handleClick_(e,t){t.preventDefault(),this.zoomByDelta_(e)}zoomByDelta_(e){let n=this.getMap().getView();if(!n)return;let r=n.getZoom();if(r!==void 0){let o=n.getConstrainedZoom(r+e);this.duration_>0?(n.getAnimating()&&n.cancelAnimations(),n.animate({zoom:o,duration:this.duration_,easing:Yt})):n.setZoom(o)}}},OE=Jf;function vl(i){i=i||{};let e=new st;return(i.zoom!==void 0?i.zoom:!0)&&e.push(new OE(i.zoomOptions)),(i.rotate!==void 0?i.rotate:!0)&&e.push(new GE(i.rotateOptions)),(i.attribution!==void 0?i.attribution:!0)&&e.push(new NE(i.attributionOptions)),e}var jf={ACTIVE:"active"};var Wf=class extends Oe{constructor(e){super(),this.on,this.once,this.un,e&&e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(jf.ACTIVE)}getMap(){return this.map_}handleEvent(e){return!0}setActive(e){this.set(jf.ACTIVE,e)}setMap(e){this.map_=e}};function UE(i,e,t){let n=i.getCenterInternal();if(n){let r=[n[0]+e[0],n[1]+e[1]];i.animateInternal({duration:t!==void 0?t:250,easing:wE,center:i.getConstrainedCenter(r)})}}function Jo(i,e,t,n){let r=i.getZoom();if(r===void 0)return;let o=i.getConstrainedZoom(r+e),s=i.getResolutionForZoom(o);i.getAnimating()&&i.cancelAnimations(),i.animate({resolution:s,anchor:t,duration:n!==void 0?n:250,easing:Yt})}var Xi=Wf;var Zf=class extends Xi{constructor(e){super(),e=e||{},this.delta_=e.delta?e.delta:1,this.duration_=e.duration!==void 0?e.duration:250}handleEvent(e){let t=!1;if(e.type==De.DBLCLICK){let n=e.originalEvent,r=e.map,o=e.coordinate,s=n.shiftKey?-this.delta_:this.delta_,a=r.getView();Jo(a,s,o,this.duration_),n.preventDefault(),t=!0}return!t}},YE=Zf;function wa(i){let e=arguments;return function(t){let n=!0;for(let r=0,o=e.length;r0}}else if(e.type==De.POINTERDOWN){let n=this.handleDownEvent(e);this.handlingDownUpSequence=n,t=this.stopDown(n)}else e.type==De.POINTERMOVE&&this.handleMoveEvent(e);return!t}handleMoveEvent(e){}handleUpEvent(e){return!1}stopDown(e){return e}updateTrackedPointers_(e){e.activePointers&&(this.targetPointers=e.activePointers)}};function jo(i){let e=i.length,t=0,n=0;for(let r=0;r0&&this.condition_(e)){let n=e.map.getView();return this.lastCentroid=null,n.getAnimating()&&n.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}},XE=eg;var tg=class extends Ji{constructor(e){e=e||{},super({stopDown:pn}),this.condition_=e.condition?e.condition:HE,this.lastAngle_=void 0,this.duration_=e.duration!==void 0?e.duration:250}handleDragEvent(e){if(!Ml(e))return;let t=e.map,n=t.getView();if(n.getConstraints().rotation===qo)return;let r=t.getSize(),o=e.pixel,s=Math.atan2(r[1]/2-o[1],o[0]-r[0]/2);if(this.lastAngle_!==void 0){let a=s-this.lastAngle_;n.adjustRotationInternal(-a)}this.lastAngle_=s}handleUpEvent(e){return Ml(e)?(e.map.getView().endInteraction(this.duration_),!1):!0}handleDownEvent(e){return Ml(e)&&bl(e)&&this.condition_(e)?(e.map.getView().beginInteraction(),this.lastAngle_=void 0,!0):!1}},JE=tg;var ig=class extends Li{constructor(e){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){let e=this.startPixel_,t=this.endPixel_,n="px",r=this.element_.style;r.left=Math.min(e[0],t[0])+n,r.top=Math.min(e[1],t[1])+n,r.width=Math.abs(t[0]-e[0])+n,r.height=Math.abs(t[1]-e[1])+n}setMap(e){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);let t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=e,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(e,t){this.startPixel_=e,this.endPixel_=t,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){if(!this.map_)return;let e=this.startPixel_,t=this.endPixel_,r=[e,[e[0],t[1]],t,[t[0],e[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);r[4]=r[0].slice(),this.geometry_?this.geometry_.setCoordinates([r]):this.geometry_=new xi([r])}getGeometry(){return this.geometry_}},jE=ig;var Wo={BOXSTART:"boxstart",BOXDRAG:"boxdrag",BOXEND:"boxend",BOXCANCEL:"boxcancel"},Kr=class extends ot{constructor(e,t,n){super(e),this.coordinate=t,this.mapBrowserEvent=n}},ng=class extends Ji{constructor(e){super(),this.on,this.once,this.un,e=e??{},this.box_=new jE(e.className||"ol-dragbox"),this.minArea_=e.minArea??64,e.onBoxEnd&&(this.onBoxEnd=e.onBoxEnd),this.startPixel_=null,this.condition_=e.condition??bl,this.boxEndCondition_=e.boxEndCondition??this.defaultBoxEndCondition}defaultBoxEndCondition(e,t,n){let r=n[0]-t[0],o=n[1]-t[1];return r*r+o*o>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(e){this.startPixel_&&(this.box_.setPixels(this.startPixel_,e.pixel),this.dispatchEvent(new Kr(Wo.BOXDRAG,e.coordinate,e)))}handleUpEvent(e){if(!this.startPixel_)return!1;let t=this.boxEndCondition_(e,this.startPixel_,e.pixel);return t&&this.onBoxEnd(e),this.dispatchEvent(new Kr(t?Wo.BOXEND:Wo.BOXCANCEL,e.coordinate,e)),this.box_.setMap(null),this.startPixel_=null,!1}handleDownEvent(e){return this.condition_(e)?(this.startPixel_=e.pixel,this.box_.setMap(e.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new Kr(Wo.BOXSTART,e.coordinate,e)),!0):!1}onBoxEnd(e){}setActive(e){e||(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new Kr(Wo.BOXCANCEL,this.startPixel_,null)),this.startPixel_=null)),super.setActive(e)}setMap(e){this.getMap()&&(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new Kr(Wo.BOXCANCEL,this.startPixel_,null)),this.startPixel_=null)),super.setMap(e)}},WE=ng;var rg=class extends WE{constructor(e){e=e||{};let t=e.condition?e.condition:qE;super({condition:t,className:e.className||"ol-dragzoom",minArea:e.minArea}),this.duration_=e.duration!==void 0?e.duration:200,this.out_=e.out!==void 0?e.out:!1}onBoxEnd(e){let n=this.getMap().getView(),r=this.getGeometry();if(this.out_){let o=n.rotatedExtentForGeometry(r),s=n.getResolutionForExtentInternal(o),a=n.getResolution()/s;r=r.clone(),r.scale(a*a)}n.fitInternal(r,{duration:this.duration_,easing:Yt})}},ZE=rg;var fr={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",DOWN:"ArrowDown"};var og=class extends Xi{constructor(e){super(),e=e||{},this.defaultCondition_=function(t){return Fl(t)&&Ll(t)},this.condition_=e.condition!==void 0?e.condition:this.defaultCondition_,this.duration_=e.duration!==void 0?e.duration:100,this.pixelDelta_=e.pixelDelta!==void 0?e.pixelDelta:128}handleEvent(e){let t=!1;if(e.type==U.KEYDOWN){let n=e.originalEvent,r=n.key;if(this.condition_(e)&&(r==fr.DOWN||r==fr.LEFT||r==fr.RIGHT||r==fr.UP)){let s=e.map.getView(),a=s.getResolution()*this.pixelDelta_,A=0,l=0;r==fr.DOWN?l=-a:r==fr.LEFT?A=-a:r==fr.RIGHT?A=a:l=a;let c=[A,l];wo(c,s.getRotation()),UE(s,c,this.duration_),n.preventDefault(),t=!0}}return!t}},$E=og;var sg=class extends Xi{constructor(e){super(),e=e||{},this.condition_=e.condition?e.condition:function(t){return!KE(t)&&Ll(t)},this.delta_=e.delta?e.delta:1,this.duration_=e.duration!==void 0?e.duration:100}handleEvent(e){let t=!1;if(e.type==U.KEYDOWN||e.type==U.KEYPRESS){let n=e.originalEvent,r=n.key;if(this.condition_(e)&&(r==="+"||r==="-")){let o=e.map,s=r==="+"?this.delta_:-this.delta_,a=o.getView();Jo(a,s,void 0,this.duration_),n.preventDefault(),t=!0}}return!t}},e0=sg;var ag=class extends Xi{constructor(e){e=e||{},super(e),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=e.maxDelta!==void 0?e.maxDelta:1,this.duration_=e.duration!==void 0?e.duration:250,this.timeout_=e.timeout!==void 0?e.timeout:80,this.useAnchor_=e.useAnchor!==void 0?e.useAnchor:!0,this.constrainResolution_=e.constrainResolution!==void 0?e.constrainResolution:!1;let t=e.condition?e.condition:zE;this.condition_=e.onFocusOnly?wa(Dl,t):t,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;let e=this.getMap();if(!e)return;e.getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null)}handleEvent(e){if(!this.condition_(e)||e.type!==U.WHEEL)return!0;let n=e.map,r=e.originalEvent;r.preventDefault(),this.useAnchor_&&(this.lastAnchor_=e.pixel);let o;if(e.type==U.WHEEL&&(o=r.deltaY,r.deltaMode===WheelEvent.DOM_DELTA_LINE&&(o*=40)),o===0)return!1;this.lastDelta_=o;let s=Date.now();this.startTime_===void 0&&(this.startTime_=s),(!this.mode_||s-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(o)<4?"trackpad":"wheel");let a=n.getView();if(this.mode_==="trackpad"&&!(a.getConstrainResolution()||this.constrainResolution_))return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(a.getAnimating()&&a.cancelAnimations(),a.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),a.adjustZoom(-o/this.deltaPerZoom_,this.lastAnchor_?n.getCoordinateFromPixel(this.lastAnchor_):null),this.startTime_=s,!1;this.totalDelta_+=o;let A=Math.max(this.timeout_-(s-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,n),A),!1}handleWheelZoom_(e){let t=e.getView();t.getAnimating()&&t.cancelAnimations();let n=-ce(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(t.getConstrainResolution()||this.constrainResolution_)&&(n=n?n>0?1:-1:0),Jo(t,n,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(e){this.useAnchor_=e,e||(this.lastAnchor_=null)}},t0=ag;var Ag=class extends Ji{constructor(e){e=e||{};let t=e;t.stopDown||(t.stopDown=pn),super(t),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=e.threshold!==void 0?e.threshold:.3,this.duration_=e.duration!==void 0?e.duration:250}handleDragEvent(e){let t=0,n=this.targetPointers[0],r=this.targetPointers[1],o=Math.atan2(r.clientY-n.clientY,r.clientX-n.clientX);if(this.lastAngle_!==void 0){let A=o-this.lastAngle_;this.rotationDelta_+=A,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),t=A}this.lastAngle_=o;let s=e.map,a=s.getView();a.getConstraints().rotation!==qo&&(this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(jo(this.targetPointers))),this.rotating_&&(s.render(),a.adjustRotationInternal(t,this.anchor_)))}handleUpEvent(e){return this.targetPointers.length<2?(e.map.getView().endInteraction(this.duration_),!1):!0}handleDownEvent(e){if(this.targetPointers.length>=2){let t=e.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},i0=Ag;var lg=class extends Ji{constructor(e){e=e||{};let t=e;t.stopDown||(t.stopDown=pn),super(t),this.anchor_=null,this.duration_=e.duration!==void 0?e.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(e){let t=1,n=this.targetPointers[0],r=this.targetPointers[1],o=n.clientX-r.clientX,s=n.clientY-r.clientY,a=Math.sqrt(o*o+s*s);this.lastDistance_!==void 0&&(t=this.lastDistance_/a),this.lastDistance_=a;let A=e.map,l=A.getView();t!=1&&(this.lastScaleDelta_=t),this.anchor_=A.getCoordinateFromPixelInternal(A.getEventPixel(jo(this.targetPointers))),A.render(),l.adjustResolutionInternal(t,this.anchor_)}handleUpEvent(e){if(this.targetPointers.length<2){let n=e.map.getView(),r=this.lastScaleDelta_>1?1:-1;return n.endInteraction(this.duration_,r),!1}return!0}handleDownEvent(e){if(this.targetPointers.length>=2){let t=e.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},n0=lg;function r0(i){i=i||{};let e=new st,t=new FE(-.005,.05,100);return(i.altShiftDragRotate!==void 0?i.altShiftDragRotate:!0)&&e.push(new JE),(i.doubleClickZoom!==void 0?i.doubleClickZoom:!0)&&e.push(new YE({delta:i.zoomDelta,duration:i.zoomDuration})),(i.dragPan!==void 0?i.dragPan:!0)&&e.push(new XE({onFocusOnly:i.onFocusOnly,kinetic:t})),(i.pinchRotate!==void 0?i.pinchRotate:!0)&&e.push(new i0),(i.pinchZoom!==void 0?i.pinchZoom:!0)&&e.push(new n0({duration:i.zoomDuration})),(i.keyboard!==void 0?i.keyboard:!0)&&(e.push(new $E),e.push(new e0({delta:i.zoomDelta,duration:i.zoomDuration}))),(i.mouseWheelZoom!==void 0?i.mouseWheelZoom:!0)&&e.push(new t0({onFocusOnly:i.onFocusOnly,duration:i.zoomDuration})),(i.shiftDragZoom!==void 0?i.shiftDragZoom:!0)&&e.push(new ZE({duration:i.zoomDuration})),e}var Ri=class extends ot{constructor(e,t){super(e),this.layer=t}},cg={LAYERS:"layers"},hg=class i extends Tl{constructor(e){e=e||{};let t=Object.assign({},e);delete t.layers;let n=e.layers;super(t),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(cg.LAYERS,this.handleLayersChanged_),n?Array.isArray(n)?n=new st(n.slice(),{unique:!0}):re(typeof n.getArray=="function","Expected `layers` to be an array or a `Collection`"):n=new st(void 0,{unique:!0}),this.setLayers(n)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(se),this.layersListenerKeys_.length=0;let e=this.getLayers();this.layersListenerKeys_.push(X(e,nt.ADD,this.handleLayersAdd_,this),X(e,nt.REMOVE,this.handleLayersRemove_,this));for(let n in this.listenerKeys_)this.listenerKeys_[n].forEach(se);ai(this.listenerKeys_);let t=e.getArray();for(let n=0,r=t.length;n=0;--E){let y=m[E],B=y.layer;if(B.hasRenderer()&&Ba(y,c)&&a.call(A,B)){let x=B.getRenderer(),Q=B.getSource();if(x&&Q){let w=Q.getWrapX()?f:e,T=h.bind(null,y.managed);p[0]=w[0]+g[C][0],p[1]=w[1]+g[C][1],l=x.forEachFeatureAtCoordinate(p,t,n,T,I)}if(l)return l}}if(I.length===0)return;let _=1/I.length;return I.forEach((C,E)=>C.distanceSq+=E*_),I.sort((C,E)=>C.distanceSq-E.distanceSq),I.some(C=>l=C.callback(C.feature,C.layer,C.geometry)),l}hasFeatureAtCoordinate(e,t,n,r,o,s){return this.forEachFeatureAtCoordinate(e,t,n,r,mn,this,o,s)!==void 0}getMap(){return this.map_}renderFrame(e){J()}scheduleExpireIconCache(e){_t.canExpireCache()&&e.postRenderFunctions.push(KQ)}};function KQ(i,e){_t.expire()}var o0=ug;var fg=class extends o0{constructor(e){super(e),this.fontChangeListenerKey_=X(Oi,qt.PROPERTYCHANGE,e.redrawText,e),this.element_=document.createElement("div");let t=this.element_.style;t.position="absolute",t.width="100%",t.height="100%",t.zIndex="0",this.element_.className=gt+" ol-layers";let n=e.getViewport();n.insertBefore(this.element_,n.firstChild||null),this.children_=[],this.renderedVisible_=!0}dispatchRenderEvent(e,t){let n=this.getMap();if(n.hasListener(e)){let r=new lr(e,void 0,t);n.dispatchEvent(r)}}disposeInternal(){se(this.fontChangeListenerKey_),this.element_.remove(),super.disposeInternal()}renderFrame(e){if(!e){this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1);return}this.calculateMatrices2D(e),this.dispatchRenderEvent(Fe.PRECOMPOSE,e);let t=e.layerStatesArray.sort((a,A)=>a.zIndex-A.zIndex);t.some(a=>a.layer instanceof Vo&&a.layer.getDeclutter())&&(e.declutter={});let r=e.viewState;this.children_.length=0;let o=[],s=null;for(let a=0,A=t.length;a=0;--n){let r=t[n],o=r.layer;o.getDeclutter()&&o.renderDeclutter(e,r)}t.forEach(n=>n.layer.renderDeferred(e))}}},s0=fg;function a0(i){if(i instanceof bn){i.setMapInternal(null);return}i instanceof Qa&&i.getLayers().forEach(a0)}function A0(i,e){if(i instanceof bn){i.setMapInternal(e);return}if(i instanceof Qa){let t=i.getLayers().getArray();for(let n=0,r=t.length;nthis.updateSize()),this.controls=t.controls||vl(),this.interactions=t.interactions||r0({onFocusOnly:!0}),this.overlays_=t.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new kE(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(Le.LAYERGROUP,this.handleLayerGroupChanged_),this.addChangeListener(Le.VIEW,this.handleViewChanged_),this.addChangeListener(Le.SIZE,this.handleSizeChanged_),this.addChangeListener(Le.TARGET,this.handleTargetChanged_),this.setProperties(t.values);let n=this;e.view&&!(e.view instanceof yt)&&e.view.then(function(r){n.setView(new yt(r))}),this.controls.addEventListener(nt.ADD,r=>{r.element.setMap(this)}),this.controls.addEventListener(nt.REMOVE,r=>{r.element.setMap(null)}),this.interactions.addEventListener(nt.ADD,r=>{r.element.setMap(this)}),this.interactions.addEventListener(nt.REMOVE,r=>{r.element.setMap(null)}),this.overlays_.addEventListener(nt.ADD,r=>{this.addOverlayInternal_(r.element)}),this.overlays_.addEventListener(nt.REMOVE,r=>{let o=r.element.getId();o!==void 0&&delete this.overlayIdIndex_[o.toString()],r.element.setMap(null)}),this.controls.forEach(r=>{r.setMap(this)}),this.interactions.forEach(r=>{r.setMap(this)}),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(e){this.getControls().push(e)}addInteraction(e){this.getInteractions().push(e)}addLayer(e){this.getLayerGroup().getLayers().push(e)}handleLayerAdd_(e){A0(e.layer,this)}addOverlay(e){this.getOverlays().push(e)}addOverlayInternal_(e){let t=e.getId();t!==void 0&&(this.overlayIdIndex_[t.toString()]=e),e.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(e,t,n){if(!this.frameState_||!this.renderer_)return;let r=this.getCoordinateFromPixelInternal(e);n=n!==void 0?n:{};let o=n.hitTolerance!==void 0?n.hitTolerance:0,s=n.layerFilter!==void 0?n.layerFilter:mn,a=n.checkWrapped!==!1;return this.renderer_.forEachFeatureAtCoordinate(r,this.frameState_,o,a,t,null,s,null)}getFeaturesAtPixel(e,t){let n=[];return this.forEachFeatureAtPixel(e,function(r){n.push(r)},t),n}getAllLayers(){let e=[];function t(n){n.forEach(function(r){r instanceof Qa?t(r.getLayers()):e.push(r)})}return t(this.getLayers()),e}hasFeatureAtPixel(e,t){if(!this.frameState_||!this.renderer_)return!1;let n=this.getCoordinateFromPixelInternal(e);t=t!==void 0?t:{};let r=t.layerFilter!==void 0?t.layerFilter:mn,o=t.hitTolerance!==void 0?t.hitTolerance:0,s=t.checkWrapped!==!1;return this.renderer_.hasFeatureAtCoordinate(n,this.frameState_,o,s,r,null)}getEventCoordinate(e){return this.getCoordinateFromPixel(this.getEventPixel(e))}getEventCoordinateInternal(e){return this.getCoordinateFromPixelInternal(this.getEventPixel(e))}getEventPixel(e){let n=this.viewport_.getBoundingClientRect(),r=this.getSize(),o=n.width/r[0],s=n.height/r[1],a="changedTouches"in e?e.changedTouches[0]:e;return[(a.clientX-n.left)/o,(a.clientY-n.top)/s]}getTarget(){return this.get(Le.TARGET)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(e){return Dr(this.getCoordinateFromPixelInternal(e),this.getView().getProjection())}getCoordinateFromPixelInternal(e){let t=this.frameState_;return t?ye(t.pixelToCoordinateTransform,e.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(e){let t=this.overlayIdIndex_[e.toString()];return t!==void 0?t:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(Le.LAYERGROUP)}setLayers(e){let t=this.getLayerGroup();if(e instanceof st){t.setLayers(e);return}let n=t.getLayers();n.clear(),n.extend(e)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){let e=this.getLayerGroup().getLayerStatesArray();for(let t=0,n=e.length;t=0;o--){let s=r[o];if(s.getMap()!==this||!s.getActive()||!this.getTargetElement())continue;if(!s.handleEvent(e)||e.propagationStopped)break}}}handlePostRender(){let e=this.frameState_,t=this.tileQueue_;if(!t.isEmpty()){let r=this.maxTilesLoading_,o=r;if(e){let s=e.viewHints;if(s[Ye.ANIMATING]||s[Ye.INTERACTING]){let a=Date.now()-e.time>8;r=a?0:8,o=a?0:2}}t.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()},0))}setLayerGroup(e){let t=this.getLayerGroup();t&&this.handleLayerRemove_(new Ri("removelayer",t)),this.set(Le.LAYERGROUP,e)}setSize(e){this.set(Le.SIZE,e)}setTarget(e){this.set(Le.TARGET,e)}setView(e){if(!e||e instanceof yt){this.set(Le.VIEW,e);return}this.set(Le.VIEW,new yt);let t=this;e.then(function(n){t.setView(new yt(n))})}updateSize(){let e=this.getTargetElement(),t;if(e){let r=getComputedStyle(e),o=e.offsetWidth-parseFloat(r.borderLeftWidth)-parseFloat(r.paddingLeft)-parseFloat(r.paddingRight)-parseFloat(r.borderRightWidth),s=e.offsetHeight-parseFloat(r.borderTopWidth)-parseFloat(r.paddingTop)-parseFloat(r.paddingBottom)-parseFloat(r.borderBottomWidth);!isNaN(o)&&!isNaN(s)&&(t=[Math.max(0,o),Math.max(0,s)],!Ku(t)&&(e.offsetWidth||e.offsetHeight||e.getClientRects().length)&&LA("No map visible because the map container's width or height are 0."))}let n=this.getSize();t&&(!n||!rt(t,n))&&(this.setSize(t),this.updateViewportSize_(t))}updateViewportSize_(e){let t=this.getView();t&&t.setViewportSize(e)}};function qQ(i){let e=null;i.keyboardEventTarget!==void 0&&(e=typeof i.keyboardEventTarget=="string"?document.getElementById(i.keyboardEventTarget):i.keyboardEventTarget);let t={},n=i.layers&&typeof i.layers.getLayers=="function"?i.layers:new Qa({layers:i.layers});t[Le.LAYERGROUP]=n,t[Le.TARGET]=i.target,t[Le.VIEW]=i.view instanceof yt?i.view:new yt;let r;i.controls!==void 0&&(Array.isArray(i.controls)?r=new st(i.controls.slice()):(re(typeof i.controls.getArray=="function","Expected `controls` to be an array or an `ol/Collection.js`"),r=i.controls));let o;i.interactions!==void 0&&(Array.isArray(i.interactions)?o=new st(i.interactions.slice()):(re(typeof i.interactions.getArray=="function","Expected `interactions` to be an array or an `ol/Collection.js`"),o=i.interactions));let s;return i.overlays!==void 0?Array.isArray(i.overlays)?s=new st(i.overlays.slice()):(re(typeof i.overlays.getArray=="function","Expected `overlays` to be an array or an `ol/Collection.js`"),s=i.overlays):s=new st,{controls:r,interactions:o,keyboardEventTarget:e,overlays:s,values:t}}var Sa=gg;var Bt={ELEMENT:"element",MAP:"map",OFFSET:"offset",POSITION:"position",POSITIONING:"positioning"},dg=class extends Oe{constructor(e){super(),this.on,this.once,this.un,this.options=e,this.id=e.id,this.insertFirst=e.insertFirst!==void 0?e.insertFirst:!0,this.stopEvent=e.stopEvent!==void 0?e.stopEvent:!0,this.element=document.createElement("div"),this.element.className=e.className!==void 0?e.className:"ol-overlay-container "+LI,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=e.autoPan===!0?{}:e.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(Bt.ELEMENT,this.handleElementChanged),this.addChangeListener(Bt.MAP,this.handleMapChanged),this.addChangeListener(Bt.OFFSET,this.handleOffsetChanged),this.addChangeListener(Bt.POSITION,this.handlePositionChanged),this.addChangeListener(Bt.POSITIONING,this.handlePositioningChanged),e.element!==void 0&&this.setElement(e.element),this.setOffset(e.offset!==void 0?e.offset:[0,0]),this.setPositioning(e.positioning||"top-left"),e.position!==void 0&&this.setPosition(e.position)}getElement(){return this.get(Bt.ELEMENT)}getId(){return this.id}getMap(){return this.get(Bt.MAP)||null}getOffset(){return this.get(Bt.OFFSET)}getPosition(){return this.get(Bt.POSITION)}getPositioning(){return this.get(Bt.POSITIONING)}handleElementChanged(){rl(this.element);let e=this.getElement();e&&this.element.appendChild(e)}handleMapChanged(){this.mapPostrenderListenerKey&&(this.element?.remove(),se(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);let e=this.getMap();if(e){this.mapPostrenderListenerKey=X(e,zt.POSTRENDER,this.render,this),this.updatePixelPosition();let t=this.stopEvent?e.getOverlayContainerStopEvent():e.getOverlayContainer();this.insertFirst?t.insertBefore(this.element,t.childNodes[0]||null):t.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(e){this.set(Bt.ELEMENT,e)}setMap(e){this.set(Bt.MAP,e)}setOffset(e){this.set(Bt.OFFSET,e)}setPosition(e){this.set(Bt.POSITION,e)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(e){let t=this.getMap();if(!t||!t.getTargetElement()||!this.get(Bt.POSITION))return;let n=this.getRect(t.getTargetElement(),t.getSize()),r=this.getElement(),o=this.getRect(r,[BI(r),xI(r)]);e=e||{};let s=e.margin===void 0?20:e.margin;if(!Ii(n,o)){let a=o[0]-n[0],A=n[2]-o[2],l=o[1]-n[1],c=n[3]-o[3],h=[0,0];if(a<0?h[0]=a-s:A<0&&(h[0]=Math.abs(A)+s),l<0?h[1]=l-s:c<0&&(h[1]=Math.abs(c)+s),h[0]!==0||h[1]!==0){let u=t.getView().getCenterInternal(),f=t.getPixelFromCoordinateInternal(u);if(!f)return;let g=[f[0]+h[0],f[1]+h[1]],m=e.animation||{};t.getView().animateInternal({center:t.getCoordinateFromPixelInternal(g),duration:m.duration,easing:m.easing})}}}getRect(e,t){let n=e.getBoundingClientRect(),r=n.left+window.pageXOffset,o=n.top+window.pageYOffset;return[r,o,r+t[0],o+t[1]]}setPositioning(e){this.set(Bt.POSITIONING,e)}setVisible(e){this.rendered.visible!==e&&(this.element.style.display=e?"":"none",this.rendered.visible=e)}updatePixelPosition(){let e=this.getMap(),t=this.getPosition();if(!e||!e.isRendered()||!t){this.setVisible(!1);return}let n=e.getPixelFromCoordinate(t),r=e.getSize();this.updateRenderedPosition(n,r)}updateRenderedPosition(e,t){let n=this.element.style,r=this.getOffset(),o=this.getPositioning();this.setVisible(!0);let s=Math.round(e[0]+r[0])+"px",a=Math.round(e[1]+r[1])+"px",A="0%",l="0%";o=="bottom-right"||o=="center-right"||o=="top-right"?A="-100%":(o=="bottom-center"||o=="center-center"||o=="top-center")&&(A="-50%"),o=="bottom-left"||o=="bottom-center"||o=="bottom-right"?l="-100%":(o=="center-left"||o=="center-center"||o=="center-right")&&(l="-50%");let c=`translate(${A}, ${l}) translate(${s}, ${a})`;this.rendered.transform_!=c&&(this.rendered.transform_=c,n.transform=c)}getOptions(){return this.options}},kl=dg;var Pl=class{constructor(e,t,n,r){this.minX=e,this.maxX=t,this.minY=n,this.maxY=r}contains(e){return this.containsXY(e[1],e[2])}containsTileRange(e){return this.minX<=e.minX&&e.maxX<=this.maxX&&this.minY<=e.minY&&e.maxY<=this.maxY}containsXY(e,t){return this.minX<=e&&e<=this.maxX&&this.minY<=t&&t<=this.maxY}equals(e){return this.minX==e.minX&&this.minY==e.minY&&this.maxX==e.maxX&&this.maxY==e.maxY}extend(e){e.minXthis.maxX&&(this.maxX=e.maxX),e.minYthis.maxY&&(this.maxY=e.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(e){return this.minX<=e.maxX&&this.maxX>=e.minX&&this.minY<=e.maxY&&this.maxY>=e.minY}};function qr(i,e,t,n,r){return r!==void 0?(r.minX=i,r.maxX=e,r.minY=t,r.maxY=n,r):new Pl(i,e,t,n)}var Zo=Pl;var mg=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.featureClass=Io,this.supportedMediaTypes=null}getReadOptions(e,t){if(t){let n=t.dataProjection?fe(t.dataProjection):this.readProjection(e);t.extent&&n&&n.getUnits()==="tile-pixels"&&(n=fe(n),n.setWorldExtent(t.extent)),t={dataProjection:n,featureProjection:t.featureProjection}}return this.adaptOptions(t)}adaptOptions(e){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection,featureClass:this.featureClass},e)}getType(){return J()}readFeature(e,t){return J()}readFeatures(e,t){return J()}readGeometry(e,t){return J()}readProjection(e){return J()}writeFeature(e,t){return J()}writeFeatures(e,t){return J()}writeGeometry(e,t){return J()}},Nl=mg;function Vr(i,e,t){let n=t?fe(t.featureProjection):null,r=t?fe(t.dataProjection):null,o=i;if(n&&r&&!Ni(n,r)){e&&(o=i.clone());let s=e?n:r,a=e?r:n;s.getUnits()==="tile-pixels"?o.transform(s,a):o.applyTransform(_n(s,a))}if(e&&t&&t.decimals!==void 0){let s=Math.pow(10,t.decimals),a=function(A){for(let l=0,c=A.length;lpg({...i,geometry:o})).flat();let n=t.type==="MultiPolygon"?"Polygon":t.type;if(n==="GeometryCollection"||n==="Circle")throw new Error("Unsupported geometry type: "+n);let r=t.layout.length;return Vr(new Zt(n,n==="Polygon"?XQ(t.flatCoordinates,t.ends,r):t.flatCoordinates,t.ends?.flat(),r,i.properties||{},i.id).enableSimplifyTransformed(),!1,e)}function Gl(i,e){if(!i)return null;if(Array.isArray(i)){let n=i.map(r=>Gl(r,e));return new wi(n)}let t=VQ[i.type];return Vr(new t(i.flatCoordinates,i.layout||"XY",i.ends),!1,e)}var Ig=class extends Nl{constructor(){super()}getType(){return"json"}readFeature(e,t){return this.readFeatureFromObject(Ol(e),this.getReadOptions(e,t))}readFeatures(e,t){return this.readFeaturesFromObject(Ol(e),this.getReadOptions(e,t))}readFeatureFromObject(e,t){return J()}readFeaturesFromObject(e,t){return J()}readGeometry(e,t){return this.readGeometryFromObject(Ol(e),this.getReadOptions(e,t))}readGeometryFromObject(e,t){return J()}readProjection(e){return this.readProjectionFromObject(Ol(e))}readProjectionFromObject(e){return J()}writeFeature(e,t){return JSON.stringify(this.writeFeatureObject(e,t))}writeFeatureObject(e,t){return J()}writeFeatures(e,t){return JSON.stringify(this.writeFeaturesObject(e,t))}writeFeaturesObject(e,t){return J()}writeGeometry(e,t){return JSON.stringify(this.writeGeometryObject(e,t))}writeGeometryObject(e,t){return J()}};function Ol(i){if(typeof i=="string"){let e=JSON.parse(i);return e||null}return i!==null?i:null}var l0=Ig;var Eg=class extends l0{constructor(e){e=e||{},super(),this.dataProjection=fe(e.dataProjection?e.dataProjection:"EPSG:4326"),e.featureProjection&&(this.defaultFeatureProjection=fe(e.featureProjection)),e.featureClass&&(this.featureClass=e.featureClass),this.geometryName_=e.geometryName,this.extractGeometryName_=e.extractGeometryName,this.supportedMediaTypes=["application/geo+json","application/vnd.geo+json"]}readFeatureFromObject(e,t){let n=null;e.type==="Feature"?n=e:n={type:"Feature",geometry:e,properties:null};let r=_g(n.geometry,t);if(this.featureClass===Zt)return pg({geometry:r,id:n.id,properties:n.properties},t);let o=new Io;return this.geometryName_?o.setGeometryName(this.geometryName_):this.extractGeometryName_&&n.geometry_name&&o.setGeometryName(n.geometry_name),o.setGeometry(Gl(r,t)),"id"in n&&o.setId(n.id),n.properties&&o.setProperties(n.properties,!0),o}readFeaturesFromObject(e,t){let n=e,r=null;if(n.type==="FeatureCollection"){let o=e;r=[];let s=o.features;for(let a=0,A=s.length;a2||Math.abs(i[e*4+3]-.75*255)>2}function u1(){if(Bg===void 0){let i=me(6,6,Xr);i.globalCompositeOperation="lighter",i.fillStyle="rgba(210, 0, 0, 0.75)",h0(i,4,5,4,0),h0(i,4,5,0,5);let e=i.getImageData(0,0,3,3).data;Bg=xg(e,0)||xg(e,4)||xg(e,8),kr(i),Xr.push(i.canvas)}return Bg}function u0(i,e,t,n){let r=Wn(t,e,i),o=Do(e,n,t),s=e.getMetersPerUnit();s!==void 0&&(o*=s);let a=i.getMetersPerUnit();a!==void 0&&(o/=a);let A=i.getExtent();if(!A||Mt(A,r)){let l=Do(i,o,r)/o;isFinite(l)&&l>0&&(o/=l)}return o}function Ul(i,e,t,n){let r=Et(t),o=u0(i,e,r,n);return(!isFinite(o)||o<=0)&&vA(t,function(s){return o=u0(i,e,s,n),isFinite(o)&&o>0}),o}function f0(i,e,t,n,r,o,s,a,A,l,c,h,u,f){let g=me(Math.round(t*i),Math.round(t*e),Xr);if(h||(g.imageSmoothingEnabled=!1),A.length===0)return g.canvas;g.scale(t,t);function m(E){return Math.round(E*t)/t}g.globalCompositeOperation="lighter";let d=be();A.forEach(function(E,y,B){Co(d,E.extent)});let I,p=t/n,_=(h?1:1+Math.pow(2,-24))/p;if(!u||A.length!==1||l!==0){if(I=me(Math.round(oe(d)*p),Math.round(Se(d)*p),Xr),h||(I.imageSmoothingEnabled=!1),r&&f){let E=(r[0]-d[0])*p,y=-(r[3]-d[3])*p,B=oe(r)*p,x=Se(r)*p;I.rect(E,y,B,x),I.clip()}A.forEach(function(E,y,B){if(E.image.width>0&&E.image.height>0){if(E.clipExtent){I.save();let R=(E.clipExtent[0]-d[0])*p,F=-(E.clipExtent[3]-d[3])*p,D=oe(E.clipExtent)*p,S=Se(E.clipExtent)*p;I.rect(h?R:Math.round(R),h?F:Math.round(F),h?D:Math.round(R+D)-Math.round(R),h?S:Math.round(F+S)-Math.round(F)),I.clip()}let x=(E.extent[0]-d[0])*p,Q=-(E.extent[3]-d[3])*p,w=oe(E.extent)*p,T=Se(E.extent)*p;I.drawImage(E.image,l,l,E.image.width-2*l,E.image.height-2*l,h?x:Math.round(x),h?Q:Math.round(Q),h?w:Math.round(x+w)-Math.round(x),h?T:Math.round(Q+T)-Math.round(Q)),E.clipExtent&&I.restore()}})}let C=ht(s);return a.getTriangles().forEach(function(E,y,B){let x=E.source,Q=E.target,w=x[0][0],T=x[0][1],R=x[1][0],F=x[1][1],D=x[2][0],S=x[2][1],k=m((Q[0][0]-C[0])/o),L=m(-(Q[0][1]-C[1])/o),b=m((Q[1][0]-C[0])/o),P=m(-(Q[1][1]-C[1])/o),N=m((Q[2][0]-C[0])/o),Y=m(-(Q[2][1]-C[1])/o),M=w,j=T;w=0,T=0,R-=M,F-=j,D-=M,S-=j;let H=[[R,F,0,0,b-k],[D,S,0,0,N-k],[0,0,R,F,P-L],[0,0,D,S,Y-L]],O=Sp(H);if(!O)return;if(g.save(),g.beginPath(),u1()||!h){g.moveTo(b,P);let ie=4,ge=k-b,Ie=L-P;for(let de=0;deye(a,Wn(_,this.targetProj_,this.sourceProj_))):_n(this.targetProj_,this.sourceProj_);this.transformInv_=function(_){let C=_[0]+"/"+_[1];return A[C]||(A[C]=l(_)),A[C]},this.maxSourceExtent_=r,this.errorThresholdSquared_=o*o,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&oe(r)>=oe(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?oe(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?oe(this.targetProj_.getExtent()):null;let c=ht(n),h=yo(n),u=Jn(n),f=_o(n),g=this.transformInv_(c),m=this.transformInv_(h),d=this.transformInv_(u),I=this.transformInv_(f),p=f1+(s?Math.max(0,Math.ceil(Math.log2(Xn(n)/(s*s*256*256)))):0);if(this.addQuad_(c,h,u,f,g,m,d,I,p),this.wrapsXInSource_){let _=1/0;this.triangles_.forEach(function(C,E,y){_=Math.min(_,C.source[0][0],C.source[1][0],C.source[2][0])}),this.triangles_.forEach(C=>{if(Math.max(C.source[0][0],C.source[1][0],C.source[2][0])-_>this.sourceWorldWidth_/2){let E=[[C.source[0][0],C.source[0][1]],[C.source[1][0],C.source[1][1]],[C.source[2][0],C.source[2][1]]];E[0][0]-_>this.sourceWorldWidth_/2&&(E[0][0]-=this.sourceWorldWidth_),E[1][0]-_>this.sourceWorldWidth_/2&&(E[1][0]-=this.sourceWorldWidth_),E[2][0]-_>this.sourceWorldWidth_/2&&(E[2][0]-=this.sourceWorldWidth_);let y=Math.min(E[0][0],E[1][0],E[2][0]);Math.max(E[0][0],E[1][0],E[2][0])-y.5&&h<1,g=!1;if(l>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_){let d=ks([e,t,n,r]);g=oe(d)/this.targetWorldWidth_>g0||g}!f&&this.sourceProj_.isGlobal()&&h&&(g=h>g0||g)}if(!g&&this.maxSourceExtent_&&isFinite(c[0])&&isFinite(c[1])&&isFinite(c[2])&&isFinite(c[3])&&!Ne(c,this.maxSourceExtent_))return;let m=0;if(!g&&(!isFinite(o[0])||!isFinite(o[1])||!isFinite(s[0])||!isFinite(s[1])||!isFinite(a[0])||!isFinite(a[1])||!isFinite(A[0])||!isFinite(A[1]))){if(l>0)g=!0;else if(m=(!isFinite(o[0])||!isFinite(o[1])?8:0)+(!isFinite(s[0])||!isFinite(s[1])?4:0)+(!isFinite(a[0])||!isFinite(a[1])?2:0)+(!isFinite(A[0])||!isFinite(A[1])?1:0),m!=1&&m!=2&&m!=4&&m!=8)return}if(l>0){if(!g){let d=[(e[0]+n[0])/2,(e[1]+n[1])/2],I=this.transformInv_(d),p;f?p=(Wt(o[0],u)+Wt(a[0],u))/2-Wt(I[0],u):p=(o[0]+a[0])/2-I[0];let _=(o[1]+a[1])/2-I[1];g=p*p+_*_>this.errorThresholdSquared_}if(g){if(Math.abs(e[0]-n[0])<=Math.abs(e[1]-n[1])){let d=[(t[0]+n[0])/2,(t[1]+n[1])/2],I=this.transformInv_(d),p=[(r[0]+e[0])/2,(r[1]+e[1])/2],_=this.transformInv_(p);this.addQuad_(e,t,d,p,o,s,I,_,l-1),this.addQuad_(p,d,n,r,_,I,a,A,l-1)}else{let d=[(e[0]+t[0])/2,(e[1]+t[1])/2],I=this.transformInv_(d),p=[(n[0]+r[0])/2,(n[1]+r[1])/2],_=this.transformInv_(p);this.addQuad_(e,d,p,r,o,I,_,A,l-1),this.addQuad_(d,t,n,p,I,s,a,_,l-1)}return}}if(f){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}(m&11)==0&&this.addTriangle_(e,n,r,o,a,A),(m&14)==0&&this.addTriangle_(e,n,t,o,a,s),m&&((m&13)==0&&this.addTriangle_(t,r,e,s,A,o),(m&7)==0&&this.addTriangle_(t,r,n,s,A,a))}calculateSourceExtent(){let e=be();return this.triangles_.forEach(function(t,n,r){let o=t.source;Rr(e,o[0]),Rr(e,o[1]),Rr(e,o[2])}),e}getTriangles(){return this.triangles_}},Yl=wg;var Qg=class extends Xo{constructor(e,t,n,r,o,s,a,A,l,c,h,u){super(o,G.IDLE,u),this.renderEdges_=h!==void 0?h:!1,this.pixelRatio_=a,this.gutter_=A,this.canvas_=null,this.sourceTileGrid_=t,this.targetTileGrid_=r,this.wrappedTileCoord_=s||o,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0,this.clipExtent_=e.canWrapX()?e.getExtent():void 0;let f=r.getTileCoordExtent(this.wrappedTileCoord_),g=this.targetTileGrid_.getExtent(),m=this.sourceTileGrid_.getExtent(),d=g?Ue(f,g):f;if(Xn(d)===0){this.state=G.EMPTY;return}let I=e.getExtent();I&&(m?m=Ue(m,I):m=I);let p=r.getResolution(this.wrappedTileCoord_[0]),_=Ul(e,n,d,p);if(!isFinite(_)||_<=0){this.state=G.EMPTY;return}let C=c!==void 0?c:.5;if(this.triangulation_=new Yl(e,n,d,m,_*C,p),this.triangulation_.getTriangles().length===0){this.state=G.EMPTY;return}this.sourceZ_=t.getZForResolution(_);let E=this.triangulation_.calculateSourceExtent();if(m&&(e.canWrapX()?(E[1]=ce(E[1],m[1],m[3]),E[3]=ce(E[3],m[1],m[3])):E=Ue(E,m)),!Xn(E))this.state=G.EMPTY;else{let y=0,B=0;e.canWrapX()&&(y=oe(I),B=Math.floor((E[0]-I[0])/y)),Bo(E.slice(),e,!0).forEach(Q=>{let w=t.getTileRangeForExtentAndZ(Q,this.sourceZ_);for(let T=w.minX;T<=w.maxX;T++)for(let R=w.minY;R<=w.maxY;R++){let F=l(this.sourceZ_,T,R,a);if(F){let D=B*y;this.sourceTiles_.push({tile:F,offset:D})}}++B}),this.sourceTiles_.length===0&&(this.state=G.EMPTY)}}getImage(){return this.canvas_}reproject_(){let e=[];if(this.sourceTiles_.forEach(t=>{let n=t.tile;if(n&&n.getState()==G.LOADED){let r=this.sourceTileGrid_.getTileCoordExtent(n.tileCoord);r[0]+=t.offset,r[2]+=t.offset;let o=this.clipExtent_?.slice();o&&(o[0]+=t.offset,o[2]+=t.offset),e.push({extent:r,clipExtent:o,image:n.getImage()})}}),this.sourceTiles_.length=0,e.length===0)this.state=G.ERROR;else{let t=this.wrappedTileCoord_[0],n=this.targetTileGrid_.getTileSize(t),r=typeof n=="number"?n:n[0],o=typeof n=="number"?n:n[1],s=this.targetTileGrid_.getResolution(t),a=this.sourceTileGrid_.getResolution(this.sourceZ_),A=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=f0(r,o,this.pixelRatio_,a,this.sourceTileGrid_.getExtent(),s,A,this.triangulation_,e,this.gutter_,this.renderEdges_,this.interpolate),this.state=G.LOADED}this.changed()}load(){if(this.state==G.IDLE){this.state=G.LOADING,this.changed();let e=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(({tile:t})=>{let n=t.getState();if(n==G.IDLE||n==G.LOADING){e++;let r=X(t,U.CHANGE,o=>{let s=t.getState();(s==G.LOADED||s==G.ERROR||s==G.EMPTY)&&(se(r),e--,e===0&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(r)}}),e===0?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:t},n,r){t.getState()==G.IDLE&&t.load()})}}unlistenSources_(){this.sourcesListenerKeys_.forEach(se),this.sourcesListenerKeys_=null}release(){this.canvas_&&(kr(this.canvas_.getContext("2d")),Xr.push(this.canvas_),this.canvas_=null),super.release()}},es=Qg;var Sg=class{constructor(e){this.highWaterMark=e!==void 0?e:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}deleteOldest(){let e=this.pop();e instanceof Li&&e.dispose()}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(e){for(;this.canExpireCache();)this.deleteOldest()}clear(){for(;this.oldest_;)this.deleteOldest()}containsKey(e){return this.entries_.hasOwnProperty(e)}forEach(e){let t=this.oldest_;for(;t;)e(t.value_,t.key_,this),t=t.newer}get(e,t){let n=this.entries_[e];return re(n!==void 0,"Tried to get a value for a key that does not exist in the cache"),n===this.newest_||(n===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(n.newer.older=n.older,n.older.newer=n.newer),n.newer=null,n.older=this.newest_,this.newest_.newer=n,this.newest_=n),n.value_}remove(e){let t=this.entries_[e];return re(t!==void 0,"Tried to get a value for a key that does not exist in the cache"),t===this.newest_?(this.newest_=t.older,this.newest_&&(this.newest_.newer=null)):t===this.oldest_?(this.oldest_=t.newer,this.oldest_&&(this.oldest_.older=null)):(t.newer.older=t.older,t.older.newer=t.newer),delete this.entries_[e],--this.count_,t.value_}getCount(){return this.count_}getKeys(){let e=new Array(this.count_),t=0,n;for(n=this.newest_;n;n=n.older)e[t++]=n.key_;return e}getValues(){let e=new Array(this.count_),t=0,n;for(n=this.newest_;n;n=n.older)e[t++]=n.value_;return e}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(e){return this.entries_[e]?.value_}pop(){let e=this.oldest_;return delete this.entries_[e.key_],e.newer&&(e.newer.older=null),this.oldest_=e.newer,this.oldest_||(this.newest_=null),--this.count_,e.value_}replace(e,t){this.get(e),this.entries_[e].value_=t}set(e,t){re(!(e in this.entries_),"Tried to set a value for a key that is used already");let n={key_:e,newer:null,older:this.newest_,value_:t};this.newest_?this.newest_.newer=n:this.oldest_=n,this.newest_=n,this.entries_[e]=n,++this.count_}setSize(e){this.highWaterMark=e}},Hl=Sg;function Mn(i,e,t,n){return n!==void 0?(n[0]=i,n[1]=e,n[2]=t,n):[i,e,t]}function Rg(i,e,t){return i+"/"+e+"/"+t}function Jr(i){return Rg(i[0],i[1],i[2])}function d0(i){return Tg(i[0],i[1],i[2])}function Tg(i,e,t){return(e<t||t>e.getMaxZoom())return!1;let o=e.getFullTileRange(t);return o?o.containsXY(n,r):!0}function vg(i,e,t,n){return`${i},${Rg(e,t,n)}`}function Dg(i,e,t){if(!(t in i))return i[t]=new Set([e]),!0;let n=i[t],r=n.has(e);return r||n.add(e),!r}function d1(i,e,t){let n=i[t];return n?n.delete(e):!1}function p0(i,e){let t=i.layerStatesArray[i.layerIndex];t.extent&&(e=Ue(e,Ct(t.extent,i.viewState.projection)));let n=t.layer.getRenderSource();if(!n.getWrapX()){let r=n.getTileGridForProjection(i.viewState.projection).getExtent();r&&(e=Ue(e,r))}return e}var bg=class extends yl{constructor(e,t){super(e),t=t||{},this.extentChanged=!0,this.renderComplete=!1,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedRevision_,this.renderedTiles=[],this.renderedSourceKey_,this.renderedSourceRevision_,this.tempExtent=be(),this.tempTileRange_=new Zo(0,0,0,0),this.tempTileCoord_=Mn(0,0,0);let n=t.cacheSize!==void 0?t.cacheSize:512;this.tileCache_=new Hl(n),this.maxStaleKeys=n*.5}getTileCache(){return this.tileCache_}getOrCreateTile(e,t,n,r){let o=this.tileCache_,a=this.getLayer().getSource(),A=vg(a.getKey(),e,t,n),l;if(o.containsKey(A))l=o.get(A);else{if(l=a.getTile(e,t,n,r.pixelRatio,r.viewState.projection),!l)return null;o.set(A,l)}return l}getTile(e,t,n,r){let o=this.getOrCreateTile(e,t,n,r);return o||null}getData(e){let t=this.frameState;if(!t)return null;let n=this.getLayer(),r=ye(t.pixelToCoordinateTransform,e.slice()),o=n.getExtent();if(o&&!Mt(o,r))return null;let s=t.viewState,a=n.getRenderSource(),A=a.getTileGridForProjection(s.projection),l=a.getTilePixelRatio(t.pixelRatio);for(let c=A.getZForResolution(s.resolution);c>=A.getMinZoom();--c){let h=A.getTileCoordForCoordAndZ(r,c),u=this.getTile(c,h[1],h[2],t);if(!u||u.getState()!==G.LOADED)continue;let f=A.getOrigin(c),g=_e(A.getTileSize(c)),m=A.getResolution(c),d;if(u instanceof hr||u instanceof es)d=u.getImage();else if(u instanceof Ln){if(d=Fn(u.getData()),!d)continue}else continue;let I=Math.floor(l*((r[0]-f[0])/m-h[1]*g[0])),p=Math.floor(l*((f[1]-r[1])/m-h[2]*g[1])),_=Math.round(l*a.getGutterForProjection(s.projection));return this.getImageData(d,I+_,p+_)}return null}prepareFrame(e){this.renderedProjection?e.viewState.projection!==this.renderedProjection&&(this.tileCache_.clear(),this.renderedProjection=e.viewState.projection):this.renderedProjection=e.viewState.projection;let t=this.getLayer().getSource();if(!t)return!1;let n=t.getRevision();return this.renderedRevision_?this.renderedRevision_!==n&&(this.renderedRevision_=n,this.renderedSourceKey_===t.getKey()&&this.tileCache_.clear()):this.renderedRevision_=n,!0}enqueueTiles(e,t,n,r,o){let s=e.viewState,a=this.getLayer(),A=a.getRenderSource(),l=A.getTileGridForProjection(s.projection),c=z(A);c in e.wantedTiles||(e.wantedTiles[c]={});let h=e.wantedTiles[c],u=a.getMapInternal(),f=Math.max(n-o,l.getMinZoom(),l.getZForResolution(Math.min(a.getMaxResolution(),u?u.getView().getResolutionForZoom(Math.max(a.getMinZoom(),0)):l.getResolution(0)),A.zDirection)),g=s.rotation,m=g?Gs(s.center,s.resolution,g,e.size):void 0;for(let d=n;d>=f;--d){let I=l.getTileRangeForExtentAndZ(t,d,this.tempTileRange_),p=l.getResolution(d);for(let _=I.minX;_<=I.maxX;++_)for(let C=I.minY;C<=I.maxY;++C){if(g&&!l.tileCoordIntersectsViewport([d,_,C],m))continue;let E=this.getTile(d,_,C,e);if(!E||!Dg(r,E,d))continue;let B=E.getKey();if(h[B]=!0,E.getState()===G.IDLE&&!e.tileQueue.isKeyQueued(B)){let x=Mn(d,_,C,this.tempTileCoord_);e.tileQueue.enqueue([E,c,l.getTileCoordCenter(x),p])}}}}findStaleTile_(e,t){let n=this.tileCache_,r=e[0],o=e[1],s=e[2],a=this.getStaleKeys();for(let A=0;A0&&setTimeout(()=>{this.enqueueTiles(e,Q,u-1,B,x-1)},0),!(u in B))return this.container;let w=z(this),T=e.time;for(let b of B[u]){let P=b.getState();if(P===G.EMPTY)continue;let N=b.tileCoord;if(P===G.LOADED&&b.getAlpha(w,T)===1){b.endTransition(w);continue}if(P!==G.ERROR&&(this.renderComplete=!1),this.findStaleTile_(N,B)){d1(B,b,u),e.animate=!0;continue}if(this.findAltTiles_(h,N,u+1,B))continue;let j=h.getMinZoom();for(let H=u-1;H>=j&&!this.findAltTiles_(h,N,H,B);--H);}let R=f/s*A/d,F=this.getRenderContext(e);Xe(this.tempTransform,I/2,p/2,R,R,0,-I/2,-p/2),n.extent&&this.clipUnrotated(F,e,_),c.getInterpolate()||(F.imageSmoothingEnabled=!1),this.preRender(F,e);let D=Object.keys(B).map(Number);D.sort(Ft);let S,k=[],L=[];for(let b=D.length-1;b>=0;--b){let P=D[b],N=c.getTilePixelSize(P,A,o),M=h.getResolution(P)/f,j=N[0]*M*R,H=N[1]*M*R,O=h.getTileCoordForCoordAndZ(ht(y),P),K=h.getTileCoordExtent(O),ie=ye(this.tempTransform,[d*(K[0]-y[0])/f,d*(y[3]-K[3])/f]),ge=d*c.getGutterForProjection(o);for(let Ie of B[P]){if(Ie.getState()!==G.LOADED)continue;let de=Ie.tileCoord,Pe=O[1]-de[1],tt=Math.round(ie[0]-(Pe-1)*j),xt=O[2]-de[2],Je=Math.round(ie[1]-(xt-1)*H),Te=Math.round(ie[0]-Pe*j),Dt=Math.round(ie[1]-xt*H),cn=tt-Te,wt=Je-Dt,hn=D.length===1,It=!1;S=[Te,Dt,Te+cn,Dt,Te+cn,Dt+wt,Te,Dt+wt];for(let ho=0,uo=k.length;ho{let Y=z(c),M=N.wantedTiles[Y],j=M?Object.keys(M).length:0;this.updateCacheSize(j),this.tileCache_.expireCache()};e.postRenderFunctions.push(b)}return this.container}updateCacheSize(e){this.tileCache_.highWaterMark=Math.max(this.tileCache_.highWaterMark,e*2)}drawTile(e,t,n,r,o,s,a,A){let l;if(e instanceof Ln){if(l=Fn(e.getData()),!l)throw new Error("Rendering array data is not yet supported")}else l=this.getTileImage(e);if(!l)return;let c=this.getRenderContext(t),h=z(this),u=t.layerStatesArray[t.layerIndex],f=u.opacity*(A?e.getAlpha(h,t.time):1),g=f!==c.globalAlpha;g&&(c.save(),c.globalAlpha=f),c.drawImage(l,a,a,l.width-2*a,l.height-2*a,n,r,o,s),g&&c.restore(),f!==u.opacity?t.animate=!0:A&&e.endTransition(h)}getImage(){let e=this.context;return e?e.canvas:null}getTileImage(e){return e.getImage()}updateUsedTiles(e,t,n){let r=z(t);r in e||(e[r]={}),e[r][n.getKey()]=!0}},I0=bg;var va={PRELOAD:"preload",USE_INTERIM_TILES_ON_ERROR:"useInterimTilesOnError"};var Fg=class extends bn{constructor(e){e=e||{};let t=Object.assign({},e),n=e.cacheSize;delete e.cacheSize,delete t.preload,delete t.useInterimTilesOnError,super(t),this.on,this.once,this.un,this.cacheSize_=n,this.setPreload(e.preload!==void 0?e.preload:0),this.setUseInterimTilesOnError(e.useInterimTilesOnError!==void 0?e.useInterimTilesOnError:!0)}getCacheSize(){return this.cacheSize_}getPreload(){return this.get(va.PRELOAD)}setPreload(e){this.set(va.PRELOAD,e)}getUseInterimTilesOnError(){return this.get(va.USE_INTERIM_TILES_ON_ERROR)}setUseInterimTilesOnError(e){this.set(va.USE_INTERIM_TILES_ON_ERROR,e)}getData(e){return super.getData(e)}},zl=Fg;var Lg=class extends zl{constructor(e){super(e)}createRenderer(){return new I0(this,{cacheSize:this.getCacheSize()})}},E0=Lg;var Mg=class i{constructor(){this.globalCounter_=0,this.refToFeature_=new Map,this.uidToRef_=new Map,this.freeGlobalRef_=[],this.polygonBatch={entries:{},geometriesCount:0,verticesCount:0,ringsCount:0},this.pointBatch={entries:{},geometriesCount:0},this.lineStringBatch={entries:{},geometriesCount:0,verticesCount:0}}addFeatures(e,t){for(let n=0;n0?l[c-1]:null,g=f?f[f.length-1]:0,m=u[u.length-1];u=g>0?u.map(d=>d-g):u,this.addCoordinates_("Polygon",t.slice(g,m),u,r,o,s,a)}break}case"MultiLineString":{let l=n;for(let c=0,h=l.length;c0?l[c-1]:0;this.addCoordinates_("LineString",t.slice(u,l[c]),null,r,o,s,a)}break}case"MultiPoint":for(let l=0,c=t.length;l1){this.addCoordinates_("MultiPolygon",t,u,r,o,s,a);return}}this.polygonBatch.entries[o]||(this.polygonBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[],verticesCount:0,ringsCount:0,ringsVerticesCounts:[]})),A=t.length/s;let c=n.length,h=n.map((u,f,g)=>f>0?(u-g[f-1])/s:u/s);this.polygonBatch.verticesCount+=A,this.polygonBatch.ringsCount+=c,this.polygonBatch.geometriesCount++,this.polygonBatch.entries[o].flatCoordss.push(m1(t,s)),this.polygonBatch.entries[o].ringsVerticesCounts.push(h),this.polygonBatch.entries[o].verticesCount+=A,this.polygonBatch.entries[o].ringsCount+=c;for(let u=0,f=l.length;u0?l[u-1]:0;this.addCoordinates_("LinearRing",t.slice(g,l[u]),null,r,o,s,a)}break}case"Point":this.pointBatch.entries[o]||(this.pointBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[]})),this.pointBatch.geometriesCount++,this.pointBatch.entries[o].flatCoordss.push(t);break;case"LineString":case"LinearRing":this.lineStringBatch.entries[o]||(this.lineStringBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[],verticesCount:0})),A=t.length/s,this.lineStringBatch.verticesCount+=A,this.lineStringBatch.geometriesCount++,this.lineStringBatch.entries[o].flatCoordss.push(p1(t,s,a)),this.lineStringBatch.entries[o].verticesCount+=A;break;default:}}addRefToEntry_(e,t){let n=this.uidToRef_.get(e),r=n||this.freeGlobalRef_.pop()||++this.globalCounter_;return t.ref=r,n||(this.refToFeature_.set(r,t.feature),this.uidToRef_.set(e,r)),t}removeRef_(e,t){if(!e)throw new Error("This feature has no ref: "+t);this.refToFeature_.delete(e),this.uidToRef_.delete(t),this.freeGlobalRef_.push(e)}changeFeature(e){if(!this.uidToRef_.get(z(e)))return;this.removeFeature(e);let t=e.getGeometry();t&&this.addGeometry_(t,e)}removeFeature(e){let t=this.clearFeatureEntryInPointBatch_(e);t=this.clearFeatureEntryInPolygonBatch_(e)||t,t=this.clearFeatureEntryInLineStringBatch_(e)||t,t&&this.removeRef_(t.ref,z(t.feature))}clear(){this.polygonBatch.entries={},this.polygonBatch.geometriesCount=0,this.polygonBatch.verticesCount=0,this.polygonBatch.ringsCount=0,this.lineStringBatch.entries={},this.lineStringBatch.geometriesCount=0,this.lineStringBatch.verticesCount=0,this.pointBatch.entries={},this.pointBatch.geometriesCount=0,this.globalCounter_=0,this.freeGlobalRef_=[],this.refToFeature_.clear(),this.uidToRef_.clear()}getFeatureFromRef(e){return this.refToFeature_.get(e)}isEmpty(){return this.globalCounter_===0}filter(e){let t=new i;t.globalCounter_=this.globalCounter_,t.uidToRef_=this.uidToRef_,t.refToFeature_=this.refToFeature_;let n=!0;for(let r of this.refToFeature_.values())e(r)&&(t.addFeature(r),n=!1);return n?new i:t}};function m1(i,e){return e===2?i:i.filter((t,n)=>n%e<2)}function p1(i,e,t){return e===3&&t==="XYM"?i:e===4?i.filter((n,r)=>r%e!==2):e===3?i.map((n,r)=>r%e!==2?n:0):new Array(i.length*1.5).fill(0).map((n,r)=>r%3===2?0:i[Math.round(r/1.5)])}var C0=Mg;var jr=34962,Wr=34963,y0=35040,ts=35044,Da=35048,B0=5121,x0=5123,w0=5125,kg=5126,_0=["experimental-webgl","webgl","webkit-3d","moz-webgl"];function Q0(i,e){e=Object.assign({preserveDrawingBuffer:!0,antialias:!CI},e);let t=_0.length;for(let n=0;nMath.max(r,Eu(i,o)),0);return t[e]=n,n}function Z_(i,e){let t=[],n=[],r=[],o=0,s=0,a=0,l=0;for(let A=0,c=e.length;A<=c;A+=2){let h=e[A];if(h===` +`||A===c){o=Math.max(o,s),r.push(s),s=0,a+=l,l=0;continue}let u=e[A+1]||i.font,f=Eu(u,h);t.push(f),s+=f;let g=P2(u);n.push(g),l=Math.max(l,g)}return{width:o,height:a,widths:t,heights:n,lineWidths:r}}function ex(i,e,t,n,r,o,s,a,l,A,c){i.save(),t!==1&&(i.globalAlpha===void 0?i.globalAlpha=h=>h.globalAlpha*=t:i.globalAlpha*=t),e&&i.transform.apply(i,e),n.contextInstructions?(i.translate(l,A),i.scale(c[0],c[1]),N2(n,i)):c[0]<0||c[1]<0?(i.translate(l,A),i.scale(c[0],c[1]),i.drawImage(n,r,o,s,a,0,0,s,a)):i.drawImage(n,r,o,s,a,l,A,s*c[0],a*c[1]),i.restore()}function N2(i,e){let t=i.contextInstructions;for(let n=0,r=t.length;nh*this.pixelRatio_),lineDashOffset:(s||on)*this.pixelRatio_,lineJoin:a!==void 0?a:vr,lineWidth:(l!==void 0?l:co)*this.pixelRatio_,miterLimit:A!==void 0?A:ao,strokeStyle:tn(n||lo)}}}setImageStyle(e){let t;if(!e||!(t=e.getSize())){this.image_=null;return}let n=e.getPixelRatio(this.pixelRatio_),r=e.getAnchor(),o=e.getOrigin();this.image_=e.getImage(this.pixelRatio_),this.imageAnchorX_=r[0]*n,this.imageAnchorY_=r[1]*n,this.imageHeight_=t[1]*n,this.imageOpacity_=e.getOpacity(),this.imageOriginX_=o[0],this.imageOriginY_=o[1],this.imageRotateWithView_=e.getRotateWithView(),this.imageRotation_=e.getRotation();let s=e.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/n,s[1]*this.pixelRatio_/n],this.imageWidth_=t[0]*n}setTextStyle(e){if(!e)this.text_="";else{let t=e.getFill();if(!t)this.textFillState_=null;else{let f=t.getColor();this.textFillState_={fillStyle:tn(f||Kt)}}let n=e.getStroke();if(!n)this.textStrokeState_=null;else{let f=n.getColor(),g=n.getLineCap(),p=n.getLineDash(),d=n.getLineDashOffset(),I=n.getLineJoin(),m=n.getWidth(),C=n.getMiterLimit();this.textStrokeState_={lineCap:g!==void 0?g:wr,lineDash:p||rn,lineDashOffset:d||on,lineJoin:I!==void 0?I:vr,lineWidth:m!==void 0?m:co,miterLimit:C!==void 0?C:ao,strokeStyle:tn(f||lo)}}let r=e.getFont(),o=e.getOffsetX(),s=e.getOffsetY(),a=e.getRotateWithView(),l=e.getRotation(),A=e.getScaleArray(),c=e.getText(),h=e.getTextAlign(),u=e.getTextBaseline();this.textState_={font:r!==void 0?r:Iu,textAlign:h!==void 0?h:As,textBaseline:u!==void 0?u:Ks},this.text_=c!==void 0?Array.isArray(c)?c.reduce((f,g,p)=>f+=p%2?" ":g,""):c:"",this.textOffsetX_=o!==void 0?this.pixelRatio_*o:0,this.textOffsetY_=s!==void 0?this.pixelRatio_*s:0,this.textRotateWithView_=a!==void 0?a:!1,this.textRotation_=l!==void 0?l:0,this.textScale_=[this.pixelRatio_*A[0],this.pixelRatio_*A[1]]}}},tx=Fp;var G2=.5,ix={Point:q2,LineString:Y2,Polygon:X2,MultiPoint:K2,MultiLineString:V2,MultiPolygon:H2,GeometryCollection:z2,Circle:O2};function nx(i,e){return parseInt(W(i),10)-parseInt(W(e),10)}function XA(i,e){let t=Lp(i,e);return t*t}function Lp(i,e){return G2*i/e}function O2(i,e,t,n,r){let o=t.getFill(),s=t.getStroke();if(o||s){let l=i.getBuilder(t.getZIndex(),"Circle");l.setFillStrokeStyle(o,s),l.drawCircle(e,n,r)}let a=t.getText();if(a&&a.getText()){let l=i.getBuilder(t.getZIndex(),"Text");l.setTextStyle(a),l.drawText(e,n)}}function Za(i,e,t,n,r,o,s,a){let l=[],A=t.getImage();if(A){let u=!0,f=A.getImageState();f==ie.LOADED||f==ie.ERROR?u=!1:f==ie.IDLE&&A.load(),u&&l.push(A.ready())}let c=t.getFill();c&&c.loading()&&l.push(c.ready());let h=l.length>0;return h&&Promise.all(l).then(()=>r(null)),U2(i,e,t,n,o,s,a),h}function U2(i,e,t,n,r,o,s){let a=t.getGeometryFunction()(e);if(!a)return;let l=a.simplifyTransformed(n,r);if(t.getRenderer())rx(i,l,t,e,s);else{let c=ix[l.getType()];c(i,l,t,e,s,o)}}function rx(i,e,t,n,r){if(e.getType()=="GeometryCollection"){let s=e.getGeometries();for(let a=0,l=s.length;a=200&&a.status<300){let A=e.getType();try{let c;A=="text"||A=="json"?c=a.responseText:A=="xml"?c=a.responseXML||a.responseText:A=="arraybuffer"&&(c=a.response),c?o(e.readFeatures(c,{extent:t,featureProjection:r}),e.readProjection(c)):s()}catch{s()}}else s()},a.onerror=s,a.send()}function kp(i,e){return function(t,n,r,o,s){Mp(i,e,t,n,r,(a,l)=>{this.addFeatures(a),o!==void 0&&o(a)},()=>{this.changed(),s!==void 0&&s()})}}function ox(i,e){return[[-1/0,-1/0,1/0,1/0]]}function Cu(i,e,t,n){let r=[],o=ot();for(let s=0,a=t.length;s=n[0]||e[1]<=n[1]&&e[3]>=n[1]?!0:Da(e,this.intersectsCoordinate.bind(this))}return!1}setCenter(e){let t=this.stride,n=this.flatCoordinates[t]-this.flatCoordinates[0],r=e.slice();r[t]=r[0]+n;for(let o=1;oe.clone())}var Pi=Np;var Gp=class i extends Ii{constructor(e,t,n){if(super(),this.ends_=[],this.maxDelta_=-1,this.maxDeltaRevision_=-1,Array.isArray(e[0]))this.setCoordinates(e,t);else if(t!==void 0&&n)this.setFlatCoordinates(t,e),this.ends_=n;else{let r=e,o=[],s=[];for(let l=0,A=r.length;l{if(e===this.squaredTolerance_)return this.simplifiedGeometry_;this.simplifiedGeometry_=this.clone(),t&&this.simplifiedGeometry_.applyTransform(t);let n=this.simplifiedGeometry_.getFlatCoordinates(),r;switch(this.type_){case"LineString":n.length=Ys(n,0,this.simplifiedGeometry_.flatCoordinates_.length,this.simplifiedGeometry_.stride_,e,n,0),r=[n.length];break;case"MultiLineString":r=[],n.length=au(n,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,e,n,0,r);break;case"Polygon":r=[],n.length=MA(n,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,Math.sqrt(e),n,0,r);break;default:}return r&&(this.simplifiedGeometry_=new i(this.type_,n,r,2,this.properties_,this.id_)),this.squaredTolerance_=e,this.simplifiedGeometry_}),this}};jA.prototype.getFlatCoordinates=jA.prototype.getOrientedFlatCoordinates;var yi=jA;function _u(i,e,t=0,n=i.length-1,r=W2){for(;n>t;){if(n-t>600){let l=n-t+1,A=e-t+1,c=Math.log(l),h=.5*Math.exp(2*c/3),u=.5*Math.sqrt(c*h*(l-h)/l)*(A-l/2<0?-1:1),f=Math.max(t,Math.floor(e-A*h/l+u)),g=Math.min(n,Math.floor(e+(l-A)*h/l+u));_u(i,e,f,g,r)}let o=i[e],s=t,a=n;for(WA(i,t,e),r(i[n],o)>0&&WA(i,t,n);s0;)a--}r(i[t],o)===0?WA(i,t,a):(a++,WA(i,a,n)),a<=e&&(t=a+1),e<=a&&(n=a-1)}}function WA(i,e,t){let n=i[e];i[e]=i[t],i[t]=n}function W2(i,e){return ie?1:0}var ho=class{constructor(e=9){this._maxEntries=Math.max(4,e),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()}all(){return this._all(this.data,[])}search(e){let t=this.data,n=[];if(!Bu(e,t))return n;let r=this.toBBox,o=[];for(;t;){for(let s=0;s=0&&o[t].children.length>this._maxEntries;)this._split(o,t),t--;this._adjustParentBBoxes(r,o,t)}_split(e,t){let n=e[t],r=n.children.length,o=this._minEntries;this._chooseSplitAxis(n,o,r);let s=this._chooseSplitIndex(n,o,r),a=tl(n.children.splice(s,n.children.length-s));a.height=n.height,a.leaf=n.leaf,el(n,this.toBBox),el(a,this.toBBox),t?e[t-1].children.push(a):this._splitRoot(n,a)}_splitRoot(e,t){this.data=tl([e,t]),this.data.height=e.height+1,this.data.leaf=!1,el(this.data,this.toBBox)}_chooseSplitIndex(e,t,n){let r,o=1/0,s=1/0;for(let a=t;a<=n-t;a++){let l=JA(e,0,a,this.toBBox),A=JA(e,a,n,this.toBBox),c=tb(l,A),h=zp(l)+zp(A);c=t;A--){let c=e.children[A];$A(a,e.leaf?o(c):c),l+=xu(a)}return l}_adjustParentBBoxes(e,t,n){for(let r=n;r>=0;r--)$A(t[r],e)}_condense(e){for(let t=e.length-1,n;t>=0;t--)e[t].children.length===0?t>0?(n=e[t-1].children,n.splice(n.indexOf(e[t]),1)):this.clear():el(e[t],this.toBBox)}};function J2(i,e,t){if(!t)return e.indexOf(i);for(let n=0;n=i.minX&&e.maxY>=i.minY}function tl(i){return{children:i,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function lx(i,e,t,n,r){let o=[e,t];for(;o.length;){if(t=o.pop(),e=o.pop(),t-e<=n)continue;let s=e+Math.ceil((t-e)/n/2)*n;_u(i,s,e,t,r),o.push(e,s,s,t)}}var Vp=class{constructor(e){this.rbush_=new ho(e),this.items_={}}insert(e,t){let n={minX:e[0],minY:e[1],maxX:e[2],maxY:e[3],value:t};this.rbush_.insert(n),this.items_[W(t)]=n}load(e,t){let n=new Array(t.length);for(let r=0,o=t.length;ri):null}var wu=Hp;var Et={ADDFEATURE:"addfeature",CHANGEFEATURE:"changefeature",CLEAR:"clear",REMOVEFEATURE:"removefeature",FEATURESLOADSTART:"featuresloadstart",FEATURESLOADEND:"featuresloadend",FEATURESLOADERROR:"featuresloaderror"};var Sr=class extends Pe{constructor(e,t,n){super(e),this.feature=t,this.features=n}},qp=class extends wu{constructor(e){e=e||{},super({attributions:e.attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:e.wrapX!==void 0?e.wrapX:!0}),this.on,this.once,this.un,this.loader_=eo,this.format_=e.format||null,this.overlaps_=e.overlaps===void 0?!0:e.overlaps,this.url_=e.url,e.loader!==void 0?this.loader_=e.loader:this.url_!==void 0&&(he(this.format_,"`format` must be set when `url` is set"),this.loader_=kp(this.url_,this.format_)),this.strategy_=e.strategy!==void 0?e.strategy:ox;let t=e.useSpatialIndex!==void 0?e.useSpatialIndex:!0;this.featuresRtree_=t?new Xs:null,this.loadedExtentsRtree_=new Xs,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null;let n,r;Array.isArray(e.features)?r=e.features:e.features&&(n=e.features,r=n.getArray()),!t&&n===void 0&&(n=new bt(r)),r!==void 0&&this.addFeaturesInternal(r),n!==void 0&&this.bindFeaturesCollection_(n)}addFeature(e){this.addFeatureInternal(e),this.changed()}addFeatureInternal(e){let t=W(e);if(!this.addToIndex_(t,e)){this.featuresCollection_&&this.featuresCollection_.remove(e);return}this.setupChangeEvents_(t,e);let n=e.getGeometry();if(n){let r=n.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(r,e)}else this.nullGeometryFeatures_[t]=e;this.dispatchEvent(new Sr(Et.ADDFEATURE,e))}setupChangeEvents_(e,t){t instanceof yi||(this.featureChangeKeys_[e]=[ee(t,K.CHANGE,this.handleFeatureChange_,this),ee(t,In.PROPERTYCHANGE,this.handleFeatureChange_,this)])}addToIndex_(e,t){let n=!0;if(t.getId()!==void 0){let r=String(t.getId());if(!(r in this.idIndex_))this.idIndex_[r]=t;else if(t instanceof yi){let o=this.idIndex_[r];o instanceof yi?Array.isArray(o)?o.push(t):this.idIndex_[r]=[o,t]:n=!1}else n=!1}return n&&(he(!(e in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[e]=t),n}addFeatures(e){this.addFeaturesInternal(e),this.changed()}addFeaturesInternal(e){let t=[],n=[],r=[];for(let o=0,s=e.length;o{t||(t=!0,this.addFeature(n.element),t=!1)}),e.addEventListener(pt.REMOVE,n=>{t||(t=!0,this.removeFeature(n.element),t=!1)}),this.featuresCollection_=e}clear(e){if(e){for(let n in this.featureChangeKeys_)this.featureChangeKeys_[n].forEach(ce);this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){this.featuresRtree_.forEach(n=>{this.removeFeatureInternal(n)});for(let n in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[n])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};let t=new Sr(Et.CLEAR);this.dispatchEvent(t),this.changed()}forEachFeature(e){if(this.featuresRtree_)return this.featuresRtree_.forEach(e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureAtCoordinateDirect(e,t){let n=[e[0],e[1],e[0],e[1]];return this.forEachFeatureInExtent(n,function(r){let o=r.getGeometry();if(o instanceof yi||o.intersectsCoordinate(e))return t(r)})}forEachFeatureInExtent(e,t){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(e,t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureIntersectingExtent(e,t){return this.forEachFeatureInExtent(e,function(n){let r=n.getGeometry();if(r instanceof yi||r.intersectsExtent(e)){let o=t(n);if(o)return o}})}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let e;return this.featuresCollection_?e=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(e=this.featuresRtree_.getAll(),Di(this.nullGeometryFeatures_)||Te(e,Object.values(this.nullGeometryFeatures_))),e}getFeaturesAtCoordinate(e){let t=[];return this.forEachFeatureAtCoordinateDirect(e,function(n){t.push(n)}),t}getFeaturesInExtent(e,t){if(this.featuresRtree_){if(!(t&&t.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(e);let r=La(e,t);return[].concat(...r.map(o=>this.featuresRtree_.getInExtent(o)))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(e,t){let n=e[0],r=e[1],o=null,s=[NaN,NaN],a=1/0,l=[-1/0,-1/0,1/0,1/0];return t=t||bi,this.featuresRtree_.forEachInExtent(l,function(A){if(t(A)){let c=A.getGeometry(),h=a;if(a=c instanceof yi?0:c.closestPointXY(n,r,s,a),a{--this.loadingExtentsCount_,this.dispatchEvent(new Sr(Et.FEATURESLOADEND,void 0,c))},()=>{--this.loadingExtentsCount_,this.dispatchEvent(new Sr(Et.FEATURESLOADERROR))}),r.insert(l,{extent:l.slice()}))}this.loading=this.loader_.length<4?!1:this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(e){let t=this.loadedExtentsRtree_,n=t.forEachInExtent(e,function(r){if(Mi(r.extent,e))return r});n&&t.remove(n)}removeFeatures(e){let t=!1;for(let n=0,r=e.length;n{this.patternImage_=null}),t.getImageState()===ie.IDLE&&t.load(),t.getImageState()===ie.LOADING&&(this.patternImage_=t)}this.color_=e}getKey(){let e=this.getColor();return e?e instanceof CanvasPattern||e instanceof CanvasGradient?W(e):typeof e=="object"&&"src"in e?e.src+":"+e.offset:Nt(e).toString():""}loading(){return!!this.patternImage_}ready(){return this.patternImage_?this.patternImage_.ready():Promise.resolve()}},Ai=Kp;var Xp=class i{constructor(e){e=e||{},this.color_=e.color!==void 0?e.color:null,this.lineCap_=e.lineCap,this.lineDash_=e.lineDash!==void 0?e.lineDash:null,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.width_=e.width}clone(){let e=this.getColor();return new i({color:Array.isArray(e)?e.slice():e||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getWidth(){return this.width_}setColor(e){this.color_=e}setLineCap(e){this.lineCap_=e}setLineDash(e){this.lineDash_=e}setLineDashOffset(e){this.lineDashOffset_=e}setLineJoin(e){this.lineJoin_=e}setMiterLimit(e){this.miterLimit_=e}setWidth(e){this.width_=e}},_i=Xp;function jp(i){return i[0]>0&&i[1]>0}function cx(i,e,t){return t===void 0&&(t=[0,0]),t[0]=i[0]*e+.5|0,t[1]=i[1]*e+.5|0,t}function Fe(i,e){return Array.isArray(i)?i:(e===void 0?e=[i,i]:(e[0]=i,e[1]=i),e)}var Wp=class i{constructor(e){this.opacity_=e.opacity,this.rotateWithView_=e.rotateWithView,this.rotation_=e.rotation,this.scale_=e.scale,this.scaleArray_=Fe(e.scale),this.displacement_=e.displacement,this.declutterMode_=e.declutterMode}clone(){let e=this.getScale();return new i({opacity:this.getOpacity(),scale:Array.isArray(e)?e.slice():e,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return ne()}getImage(e){return ne()}getHitDetectionImage(){return ne()}getPixelRatio(e){return 1}getImageState(){return ne()}getImageSize(){return ne()}getOrigin(){return ne()}getSize(){return ne()}setDisplacement(e){this.displacement_=e}setOpacity(e){this.opacity_=e}setRotateWithView(e){this.rotateWithView_=e}setRotation(e){this.rotation_=e}setScale(e){this.scale_=e,this.scaleArray_=Fe(e)}listenImageChange(e){ne()}load(){ne()}unlistenImageChange(e){ne()}ready(){return Promise.resolve()}},vu=Wp;var Jp=class i extends vu{constructor(e){super({opacity:1,rotateWithView:e.rotateWithView!==void 0?e.rotateWithView:!1,rotation:e.rotation!==void 0?e.rotation:0,scale:e.scale!==void 0?e.scale:1,displacement:e.displacement!==void 0?e.displacement:[0,0],declutterMode:e.declutterMode}),this.hitDetectionCanvas_=null,this.fill_=e.fill!==void 0?e.fill:null,this.origin_=[0,0],this.points_=e.points,this.radius=e.radius,this.radius2_=e.radius2,this.angle_=e.angle!==void 0?e.angle:0,this.stroke_=e.stroke!==void 0?e.stroke:null,this.size_,this.renderOptions_,this.imageState_=this.fill_&&this.fill_.loading()?ie.LOADING:ie.LOADED,this.imageState_===ie.LOADING&&this.ready().then(()=>this.imageState_=ie.LOADED),this.render()}clone(){let e=this.getScale(),t=new i({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(e)?e.slice():e,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return t.setOpacity(this.getOpacity()),t}getAnchor(){let e=this.size_,t=this.getDisplacement(),n=this.getScaleArray();return[e[0]/2-t[0]/n[0],e[1]/2+t[1]/n[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(e){this.fill_=e,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.createHitDetectionCanvas_(this.renderOptions_)),this.hitDetectionCanvas_}getImage(e){let t=this.fill_?.getKey(),n=`${e},${this.angle_},${this.radius},${this.radius2_},${this.points_},${t}`+Object.values(this.renderOptions_).join(","),r=Ci.get(n,null,null)?.getImage(1);if(!r){let o=this.renderOptions_,s=Math.ceil(o.size*e),a=Re(s,s);this.draw_(o,a,e),r=a.canvas,Ci.set(n,null,null,new X_(r,void 0,null,ie.LOADED,null))}return r}getPixelRatio(e){return e}getImageSize(){return this.size_}getImageState(){return this.imageState_}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius}getRadius2(){return this.radius2_}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(e){this.stroke_=e,this.render()}listenImageChange(e){}load(){}unlistenImageChange(e){}calculateLineJoinSize_(e,t,n){if(t===0||this.points_===1/0||e!=="bevel"&&e!=="miter")return t;let r=this.radius,o=this.radius2_===void 0?r:this.radius2_;if(rl&&(this.instructions.push([ae.CUSTOM,l,c,e,n,zn,o]),this.hitDetectionInstructions.push([ae.CUSTOM,l,c,e,r||n,zn,o]));break;case"Point":A=e.getFlatCoordinates(),this.coordinates.push(A[0],A[1]),c=this.coordinates.length,this.instructions.push([ae.CUSTOM,l,c,e,n,void 0,o]),this.hitDetectionInstructions.push([ae.CUSTOM,l,c,e,r||n,void 0,o]);break;default:}this.endGeometry(t)}beginGeometry(e,t,n){this.beginGeometryInstruction1_=[ae.BEGIN_GEOMETRY,t,0,e,n],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[ae.BEGIN_GEOMETRY,t,0,e,n],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){let e=this.hitDetectionInstructions;e.reverse();let t,n=e.length,r,o,s=-1;for(t=0;tthis.maxLineWidth&&(this.maxLineWidth=t.lineWidth,this.bufferedMaxExtent_=null)}else t.strokeStyle=void 0,t.lineCap=void 0,t.lineDash=null,t.lineDashOffset=void 0,t.lineJoin=void 0,t.lineWidth=void 0,t.miterLimit=void 0;return t}setFillStrokeStyle(e,t){let n=this.state;this.fillStyleToState(e,n),this.strokeStyleToState(t,n)}createFill(e){let t=e.fillStyle,n=[ae.SET_FILL_STYLE,t];return typeof t!="string"&&n.push(e.fillPatternScale),n}applyStroke(e){this.instructions.push(this.createStroke(e))}createStroke(e){return[ae.SET_STROKE_STYLE,e.strokeStyle,e.lineWidth*this.pixelRatio,e.lineCap,e.lineJoin,e.miterLimit,e.lineDash?this.applyPixelRatio(e.lineDash):null,e.lineDashOffset*this.pixelRatio]}updateFillStyle(e,t){let n=e.fillStyle;(typeof n!="string"||e.currentFillStyle!=n)&&(n!==void 0&&this.instructions.push(t.call(this,e)),e.currentFillStyle=n)}updateStrokeStyle(e,t){let n=e.strokeStyle,r=e.lineCap,o=e.lineDash,s=e.lineDashOffset,a=e.lineJoin,l=e.lineWidth,A=e.miterLimit;(e.currentStrokeStyle!=n||e.currentLineCap!=r||o!=e.currentLineDash&&!Mt(e.currentLineDash,o)||e.currentLineDashOffset!=s||e.currentLineJoin!=a||e.currentLineWidth!=l||e.currentMiterLimit!=A)&&(n!==void 0&&t.call(this,e),e.currentStrokeStyle=n,e.currentLineCap=r,e.currentLineDash=o,e.currentLineDashOffset=s,e.currentLineJoin=a,e.currentLineWidth=l,e.currentMiterLimit=A)}endGeometry(e){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;let t=[ae.END_GEOMETRY,e];this.instructions.push(t),this.hitDetectionInstructions.push(t)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=Yh(this.maxExtent),this.maxLineWidth>0)){let e=this.resolution*(this.maxLineWidth+1)/2;Vt(this.bufferedMaxExtent_,e,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}},Rr=nm;var rm=class extends Rr{constructor(e,t,n,r){super(e,t,n,r),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(e,t,n){if(!this.image_||this.maxExtent&&!di(this.maxExtent,e.getFlatCoordinates()))return;this.beginGeometry(e,t,n);let r=e.getFlatCoordinates(),o=e.getStride(),s=this.coordinates.length,a=this.appendFlatPointCoordinates(r,o);this.instructions.push([ae.DRAW_IMAGE,s,a,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([ae.DRAW_IMAGE,s,a,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(t)}drawMultiPoint(e,t,n){if(!this.image_)return;this.beginGeometry(e,t,n);let r=e.getFlatCoordinates(),o=[];for(let l=0,A=r.length;l=i){let g=(i-a+f)/f,p=ai(A,h,g),d=ai(c,u,g);l.push(p,d),o.push(l),l=[p,d],a==i&&(s+=r),a=0}else if(a0&&o.push(l),o}function px(i,e,t,n,r){let o=t,s=t,a=0,l=0,A=t,c,h,u,f,g,p,d,I,m,C;for(h=t;hi&&(l>a&&(a=l,o=A,s=h),l=0,A=h-r)),u=f,d=m,I=C),g=_,p=y}return l+=f,l>a?[A,h]:[o,s]}var ic={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},lm=class extends Rr{constructor(e,t,n,r){super(e,t,n,r),this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textKeepUpright_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.fillStates[Kt]={fillStyle:Kt},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.declutterMode_=void 0,this.declutterImageWithText_=void 0}finish(){let e=super.finish();return e.textStates=this.textStates,e.fillStates=this.fillStates,e.strokeStates=this.strokeStates,e}drawText(e,t,n){let r=this.textFillState_,o=this.textStrokeState_,s=this.textState_;if(this.text_===""||!s||!r&&!o)return;let a=this.coordinates,l=a.length,A=e.getType(),c=null,h=e.getStride();if(s.placement==="line"&&(A=="LineString"||A=="MultiLineString"||A=="Polygon"||A=="MultiPolygon")){if(!Qe(this.maxExtent,e.getExtent()))return;let u;if(c=e.getFlatCoordinates(),A=="LineString")u=[c.length];else if(A=="MultiLineString")u=e.getEnds();else if(A=="Polygon")u=e.getEnds().slice(0,1);else if(A=="MultiPolygon"){let d=e.getEndss();u=[];for(let I=0,m=d.length;I{let T=a[(_+w)*2]===c[w*h]&&a[(_+w)*2+1]===c[w*h+1];return T||--_,T})}this.saveTextStates_();let g=s.backgroundFill?this.createFill(this.fillStyleToState(s.backgroundFill)):null,p=s.backgroundStroke?this.createStroke(this.strokeStyleToState(s.backgroundStroke)):null;this.beginGeometry(e,t,n);let d=s.padding;if(d!=Ao&&(s.scale[0]<0||s.scale[1]<0)){let _=s.padding[0],y=s.padding[1],w=s.padding[2],T=s.padding[3];s.scale[0]<0&&(y=-y,T=-T),s.scale[1]<0&&(_=-_,w=-w),d=[_,y,w,T]}let I=this.pixelRatio;this.instructions.push([ae.DRAW_IMAGE,l,f,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,this.declutterMode_,this.declutterImageWithText_,d==Ao?Ao:d.map(function(_){return _*I}),g,p,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,u]);let m=1/I,C=g?g.slice(0):null;C&&(C[1]=Kt),this.hitDetectionInstructions.push([ae.DRAW_IMAGE,l,f,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[m,m],NaN,this.declutterMode_,this.declutterImageWithText_,d,C,p,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?Kt:this.fillKey_,this.textOffsetX_,this.textOffsetY_,u]),this.endGeometry(t)}}saveTextStates_(){let e=this.textStrokeState_,t=this.textState_,n=this.textFillState_,r=this.strokeKey_;e&&(r in this.strokeStates||(this.strokeStates[r]={strokeStyle:e.strokeStyle,lineCap:e.lineCap,lineDashOffset:e.lineDashOffset,lineWidth:e.lineWidth,lineJoin:e.lineJoin,miterLimit:e.miterLimit,lineDash:e.lineDash}));let o=this.textKey_;o in this.textStates||(this.textStates[o]={font:t.font,textAlign:t.textAlign||As,justify:t.justify,textBaseline:t.textBaseline||Ks,scale:t.scale});let s=this.fillKey_;n&&(s in this.fillStates||(this.fillStates[s]={fillStyle:n.fillStyle}))}drawChars_(e,t){let n=this.textStrokeState_,r=this.textState_,o=this.strokeKey_,s=this.textKey_,a=this.fillKey_;this.saveTextStates_();let l=this.pixelRatio,A=ic[r.textBaseline],c=this.textOffsetY_*l,h=this.text_,u=n?n.lineWidth*Math.abs(r.scale[0])/2:0;this.instructions.push([ae.DRAW_CHARS,e,t,A,r.overflow,a,r.maxAngle,l,c,o,u*l,h,s,1,this.declutterMode_,this.textKeepUpright_]),this.hitDetectionInstructions.push([ae.DRAW_CHARS,e,t,A,r.overflow,a&&Kt,r.maxAngle,l,c,o,u*l,h,s,1/l,this.declutterMode_,this.textKeepUpright_])}setTextStyle(e,t){let n,r,o;if(!e)this.text_="";else{let s=e.getFill();s?(r=this.textFillState_,r||(r={},this.textFillState_=r),r.fillStyle=tn(s.getColor()||Kt)):(r=null,this.textFillState_=r);let a=e.getStroke();if(!a)o=null,this.textStrokeState_=o;else{o=this.textStrokeState_,o||(o={},this.textStrokeState_=o);let p=a.getLineDash(),d=a.getLineDashOffset(),I=a.getWidth(),m=a.getMiterLimit();o.lineCap=a.getLineCap()||wr,o.lineDash=p?p.slice():rn,o.lineDashOffset=d===void 0?on:d,o.lineJoin=a.getLineJoin()||vr,o.lineWidth=I===void 0?co:I,o.miterLimit=m===void 0?ao:m,o.strokeStyle=tn(a.getColor()||lo)}n=this.textState_;let l=e.getFont()||Iu;J_(l);let A=e.getScaleArray();n.overflow=e.getOverflow(),n.font=l,n.maxAngle=e.getMaxAngle(),n.placement=e.getPlacement(),n.textAlign=e.getTextAlign(),n.repeat=e.getRepeat(),n.justify=e.getJustify(),n.textBaseline=e.getTextBaseline()||Ks,n.backgroundFill=e.getBackgroundFill(),n.backgroundStroke=e.getBackgroundStroke(),n.padding=e.getPadding()||Ao,n.scale=A===void 0?[1,1]:A;let c=e.getOffsetX(),h=e.getOffsetY(),u=e.getRotateWithView(),f=e.getKeepUpright(),g=e.getRotation();this.text_=e.getText()||"",this.textOffsetX_=c===void 0?0:c,this.textOffsetY_=h===void 0?0:h,this.textRotateWithView_=u===void 0?!1:u,this.textKeepUpright_=f===void 0?!0:f,this.textRotation_=g===void 0?0:g,this.strokeKey_=o?(typeof o.strokeStyle=="string"?o.strokeStyle:W(o.strokeStyle))+o.lineCap+o.lineDashOffset+"|"+o.lineWidth+o.lineJoin+o.miterLimit+"["+o.lineDash.join()+"]":"",this.textKey_=n.font+n.scale+(n.textAlign||"?")+(n.repeat||"?")+(n.justify||"?")+(n.textBaseline||"?"),this.fillKey_=r&&r.fillStyle?typeof r.fillStyle=="string"?r.fillStyle:"|"+W(r.fillStyle):""}this.declutterMode_=e.getDeclutterMode(),this.declutterImageWithText_=t}},mx=lm;var nb={Circle:am,Default:Rr,Image:fx,LineString:gx,Polygon:am,Text:mx},Am=class{constructor(e,t,n,r){this.tolerance_=e,this.maxExtent_=t,this.pixelRatio_=r,this.resolution_=n,this.buildersByZIndex_={}}finish(){let e={};for(let t in this.buildersByZIndex_){e[t]=e[t]||{};let n=this.buildersByZIndex_[t];for(let r in n){let o=n[r].finish();e[t][r]=o}}return e}getBuilder(e,t){let n=e!==void 0?e.toString():"0",r=this.buildersByZIndex_[n];r===void 0&&(r={},this.buildersByZIndex_[n]=r);let o=r[t];if(o===void 0){let s=nb[t];o=new s(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_),r[t]=o}return o}},Ru=Am;function Ex(i,e,t,n,r,o,s,a,l,A,c,h,u=!0){let f=i[e],g=i[e+1],p=0,d=0,I=0,m=0;function C(){p=f,d=g,e+=n,f=i[e],g=i[e+1],m+=I,I=Math.sqrt((f-p)*(f-p)+(g-d)*(g-d))}do C();while(eF[2]}else v=y>B;let D=Math.PI,Q=[],S=T+n===e;e=T,I=0,m=E,f=i[e],g=i[e+1];let b;if(S){C(),b=Math.atan2(g-d,f-p),v&&(b+=b>0?-D:D);let F=(B+y)/2,M=(R+w)/2;return Q[0]=[F,M,(x-o)/2,b,r],Q}r=r.replace(/\n/g," ");for(let F=0,M=r.length;F0?-D:D),b!==void 0){let z=k-b;if(z+=z>D?-2*D:z<-D?2*D:0,Math.abs(z)>s)return null}b=k;let P=F,U=0;for(;F{if(typeof ja()[t]=="function")return this.push_(t),this.pushMethodArgs_},set:(e,t,n)=>(this.push_(t,n),!0)})}push_(...e){let t=this.instructions_,n=this.zIndex+this.offset_;t[n]||(t[n]=[]),t[n].push(...e)}pushMethodArgs_=(...e)=>(this.push_(e),this);pushFunction(e){this.push_(e)}getContext(){return this.context_}draw(e){this.instructions_.forEach(t=>{for(let n=0,r=t.length;n0&&i.push(` +`,""),i.push(e,""),i}function ob(i,e,t){return t%2===0&&(i+=e),i}var um=class{constructor(e,t,n,r,o){this.overlaps=n,this.pixelRatio=t,this.resolution=e,this.alignAndScaleFill_,this.instructions=r.instructions,this.coordinates=r.coordinates,this.coordinateCache_={},this.renderedTransform_=Ce(),this.hitDetectionInstructions=r.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=r.fillStates||{},this.strokeStates=r.strokeStates||{},this.textStates=r.textStates||{},this.widths_={},this.labels_={},this.zIndexContext_=o?new il:null}getZIndexContext(){return this.zIndexContext_}createLabel(e,t,n,r){let o=e+t+n+r;if(this.labels_[o])return this.labels_[o];let s=r?this.strokeStates[r]:null,a=n?this.fillStates[n]:null,l=this.textStates[t],A=this.pixelRatio,c=[l.scale[0]*A,l.scale[1]*A],h=l.justify?ic[l.justify]:hm(Array.isArray(e)?e[0]:e,l.textAlign||As),u=r&&s.lineWidth?s.lineWidth:0,f=Array.isArray(e)?e:String(e).split(` +`).reduce(rb,[]),{width:g,height:p,widths:d,heights:I,lineWidths:m}=Z_(l,f),C=g+u,_=[],y=(C+2)*c[0],w=(p+u)*c[1],T={width:y<0?Math.floor(y):Math.ceil(y),height:w<0?Math.floor(w):Math.ceil(w),contextInstructions:_};(c[0]!=1||c[1]!=1)&&_.push("scale",c),r&&(_.push("strokeStyle",s.strokeStyle),_.push("lineWidth",u),_.push("lineCap",s.lineCap),_.push("lineJoin",s.lineJoin),_.push("miterLimit",s.miterLimit),_.push("setLineDash",[s.lineDash]),_.push("lineDashOffset",s.lineDashOffset)),n&&_.push("fillStyle",a.fillStyle),_.push("textBaseline","middle"),_.push("textAlign","center");let E=.5-h,x=h*C+E*u,B=[],R=[],v=0,D=0,Q=0,S=0,b;for(let F=0,M=f.length;Fe?e-A:o,_=s+c>t?t-c:s,y=g[3]+C*u[0]+g[1],w=g[0]+_*u[1]+g[2],T=I-g[3],E=m-g[0];(p||h!==0)&&(hs[0]=T,us[0]=T,hs[1]=E,fo[1]=E,fo[0]=T+y,go[0]=fo[0],go[1]=E+w,us[1]=go[1]);let x;return h!==0?(x=ct(Ce(),n,r,1,1,h,-n,-r),be(x,hs),be(x,fo),be(x,go),be(x,us),Li(Math.min(hs[0],fo[0],go[0],us[0]),Math.min(hs[1],fo[1],go[1],us[1]),Math.max(hs[0],fo[0],go[0],us[0]),Math.max(hs[1],fo[1],go[1],us[1]),nl)):Li(Math.min(T,T+y),Math.min(E,E+w),Math.max(T,T+y),Math.max(E,E+w),nl),f&&(I=Math.round(I),m=Math.round(m)),{drawImageX:I,drawImageY:m,drawImageW:C,drawImageH:_,originX:A,originY:c,declutterBox:{minX:nl[0],minY:nl[1],maxX:nl[2],maxY:nl[3],value:d},canvasTransform:x,scale:u}}replayImageOrLabel_(e,t,n,r,o,s,a){let l=!!(s||a),A=r.declutterBox,c=a?a[2]*r.scale[0]/2:0;return A.minX-c<=t[0]&&A.maxX+c>=0&&A.minY-c<=t[1]&&A.maxY+c>=0&&(l&&this.replayTextBackground_(e,hs,fo,go,us,s,a),ex(e,r.canvasTransform,o,n,r.originX,r.originY,r.drawImageW,r.drawImageH,r.drawImageX,r.drawImageY,r.scale)),!0}fill_(e){let t=this.alignAndScaleFill_;if(t){let n=be(this.renderedTransform_,[0,0]),r=512*this.pixelRatio;e.save(),e.translate(n[0]%r,n[1]%r),t!==1&&e.scale(t,t),e.rotate(this.viewRotation_)}e.fill(),t&&e.restore()}setStrokeStyle_(e,t){e.strokeStyle=t[1],e.lineWidth=t[2],e.lineCap=t[3],e.lineJoin=t[4],e.miterLimit=t[5],e.lineDashOffset=t[7],e.setLineDash(t[6])}drawLabelWithPointPlacement_(e,t,n,r){let o=this.textStates[t],s=this.createLabel(e,t,r,n),a=this.strokeStates[n],l=this.pixelRatio,A=hm(Array.isArray(e)?e[0]:e,o.textAlign||As),c=ic[o.textBaseline||Ks],h=a&&a.lineWidth?a.lineWidth:0,u=s.width/l-2*o.scale[0],f=A*u+2*(.5-A)*h,g=c*s.height/l+2*(.5-c)*h;return{label:s,anchorX:f,anchorY:g}}execute_(e,t,n,r,o,s,a,l){let A=this.zIndexContext_,c;this.pixelCoordinates_&&Mt(n,this.renderedTransform_)?c=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),c=li(this.coordinates,0,this.coordinates.length,2,n,this.pixelCoordinates_),Us(this.renderedTransform_,n));let h=0,u=r.length,f=0,g,p,d,I,m,C,_,y,w,T,E,x,B,R=0,v=0,D=this.coordinateCache_,Q=this.viewRotation_,S=Math.round(Math.atan2(-n[1],n[0])*1e12)/1e12,b={context:e,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:Q},F=this.instructions!=r||this.overlaps?0:200,M,k,P,U;for(;hF&&(this.fill_(e),R=0),v>F&&(e.stroke(),v=0),!R&&!v&&(e.beginPath(),m=NaN,C=NaN),++h;break;case ae.CIRCLE:f=N[1];let X=c[f],z=c[f+1],q=c[f+2],Z=c[f+3],ge=q-X,me=Z-z,de=Math.sqrt(ge*ge+me*me);e.moveTo(X+de,z),e.arc(X,z,de,0,2*Math.PI,!0),++h;break;case ae.CLOSE_PATH:e.closePath(),++h;break;case ae.CUSTOM:f=N[1],g=N[2];let ve=N[3],Ve=N[4],Me=N[5];b.geometry=ve,b.feature=M,h in D||(D[h]=[]);let Se=D[h];Me?Me(c,f,g,2,Se):(Se[0]=c[f],Se[1]=c[f+1],Se.length=2),A&&(A.zIndex=N[6]),Ve(Se,b),++h;break;case ae.DRAW_IMAGE:f=N[1],g=N[2],w=N[3],p=N[4],d=N[5];let Ae=N[6],ri=N[7],gn=N[8],Yt=N[9],or=N[10],$t=N[11],Xr=N[12],Yo=N[13];I=N[14]||"declutter";let Lt=N[15];if(!w&&N.length>=20){T=N[19],E=N[20],x=N[21],B=N[22];let Hi=this.drawLabelWithPointPlacement_(T,E,x,B);w=Hi.label,N[3]=w;let $r=N[23];p=(Hi.anchorX-$r)*this.pixelRatio,N[4]=p;let Ri=N[24];d=(Hi.anchorY-Ri)*this.pixelRatio,N[5]=d,Ae=w.height,N[6]=Ae,Yo=w.width,N[13]=Yo}let De;N.length>25&&(De=N[25]);let xt,se,Ms;N.length>17?(xt=N[16],se=N[17],Ms=N[18]):(xt=Ao,se=null,Ms=null),or&&S?$t+=Q:!or&&!S&&($t-=Q);let dn=0;for(;f!rl.includes(i)),gm=class{constructor(e,t,n,r,o,s,a){this.maxExtent_=e,this.overlaps_=r,this.pixelRatio_=n,this.resolution_=t,this.renderBuffer_=s,this.executorsByZIndex_={},this.hitDetectionContext_=null,this.hitDetectionTransform_=Ce(),this.renderedContext_=null,this.deferredZIndexContexts_={},this.createExecutors_(o,a)}clip(e,t){let n=this.getClipCoords(t);e.beginPath(),e.moveTo(n[0],n[1]),e.lineTo(n[2],n[3]),e.lineTo(n[4],n[5]),e.lineTo(n[6],n[7]),e.clip()}createExecutors_(e,t){for(let n in e){let r=this.executorsByZIndex_[n];r===void 0&&(r={},this.executorsByZIndex_[n]=r);let o=e[n];for(let s in o){let a=o[s];r[s]=new yx(this.resolution_,this.pixelRatio_,this.overlaps_,a,t)}}}hasExecutors(e){for(let t in this.executorsByZIndex_){let n=this.executorsByZIndex_[t];for(let r=0,o=e.length;r0){if(!s||T==="none"||f!=="Image"&&f!=="Text"||s.includes(y)){let R=(u[x]-3)/4,v=r-R%a,D=r-(R/a|0),Q=o(y,w,v*v+D*D);if(Q)return Q}c.clearRect(0,0,a,a);break}}let p=Object.keys(this.executorsByZIndex_).map(Number);p.sort(gi);let d,I,m,C,_;for(d=p.length-1;d>=0;--d){let y=p[d].toString();for(m=this.executorsByZIndex_[y],I=Ws.length-1;I>=0;--I)if(f=Ws[I],C=m[f],C!==void 0&&(_=C.executeHitDetection(c,l,n,g,h),_))return _}}getClipCoords(e){let t=this.maxExtent_;if(!t)return null;let n=t[0],r=t[1],o=t[2],s=t[3],a=[n,r,n,s,o,s,o,r];return li(a,0,8,2,e,a),a}isEmpty(){return Di(this.executorsByZIndex_)}execute(e,t,n,r,o,s,a){let l=Object.keys(this.executorsByZIndex_).map(Number);l.sort(a?Nh:gi),s=s||Ws;let A=Ws.length;for(let c=0,h=l.length;cI.execute(y,t,n,r,o,a)),_&&C.restore(),m){m.offset();let y=l[c]*A+g;this.deferredZIndexContexts_[y]||(this.deferredZIndexContexts_[y]=[]),this.deferredZIndexContexts_[y].push(m)}}}}this.renderedContext_=e}getDeferredZIndexContexts(){return this.deferredZIndexContexts_}getRenderedContext(){return this.renderedContext_}renderDeferred(){let e=this.deferredZIndexContexts_,t=Object.keys(e).map(Number).sort(gi);for(let n=0,r=t.length;n{o.draw(this.renderedContext_),o.clear()}),e[t[n]].length=0}},fm={};function sb(i){if(fm[i]!==void 0)return fm[i];let e=i*2+1,t=i*i,n=new Array(t+1);for(let o=0;o<=i;++o)for(let s=0;s<=i;++s){let a=o*o+s*s;if(a>t)break;let l=n[a];l||(l=[],n[a]=l),l.push(((i+o)*e+(i+s))*4+3),o>0&&l.push(((i-o)*e+(i+s))*4+3),s>0&&(l.push(((i+o)*e+(i-s))*4+3),o>0&&l.push(((i-o)*e+(i-s))*4+3))}let r=[];for(let o=0,s=n.length;o0,"A defined and non-empty `src` or `image` must be provided"),he(!((e.width!==void 0||e.height!==void 0)&&e.scale!==void 0),"`width` or `height` cannot be provided together with `scale`");let l;if(e.src!==void 0?l=ie.IDLE:s!==void 0&&("complete"in s?s.complete?l=s.src?ie.LOADED:ie.IDLE:l=ie.LOADING:l=ie.LOADED),this.color_=e.color!==void 0?Nt(e.color):null,this.iconImage_=Wa(s,a,this.crossOrigin_,l,this.color_),this.offset_=e.offset!==void 0?e.offset:[0,0],this.offsetOrigin_=e.offsetOrigin!==void 0?e.offsetOrigin:"top-left",this.origin_=null,this.size_=e.size!==void 0?e.size:null,this.initialOptions_,e.width!==void 0||e.height!==void 0){let A,c;if(e.size)[A,c]=e.size;else{let h=this.getImage(1);if(h.width&&h.height)A=h.width,c=h.height;else if(h instanceof HTMLImageElement){this.initialOptions_=e;let u=()=>{if(this.unlistenImageChange(u),!this.initialOptions_)return;let f=this.iconImage_.getSize();this.setScale(xx(f[0],f[1],e.width,e.height))};this.listenImageChange(u);return}}A!==void 0&&this.setScale(xx(A,c,e.width,e.height))}}clone(){let e,t,n;return this.initialOptions_?(t=this.initialOptions_.width,n=this.initialOptions_.height):(e=this.getScale(),e=Array.isArray(e)?e.slice():e),new i({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:e,width:t,height:n,size:this.size_!==null?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let e=this.normalizedAnchor_;if(!e){e=this.anchor_;let r=this.getSize();if(this.anchorXUnits_=="fraction"||this.anchorYUnits_=="fraction"){if(!r)return null;e=this.anchor_.slice(),this.anchorXUnits_=="fraction"&&(e[0]*=r[0]),this.anchorYUnits_=="fraction"&&(e[1]*=r[1])}if(this.anchorOrigin_!="top-left"){if(!r)return null;e===this.anchor_&&(e=this.anchor_.slice()),(this.anchorOrigin_=="top-right"||this.anchorOrigin_=="bottom-right")&&(e[0]=-e[0]+r[0]),(this.anchorOrigin_=="bottom-left"||this.anchorOrigin_=="bottom-right")&&(e[1]=-e[1]+r[1])}this.normalizedAnchor_=e}let t=this.getDisplacement(),n=this.getScaleArray();return[e[0]-t[0]/n[0],e[1]+t[1]/n[1]]}setAnchor(e){this.anchor_=e,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(e){return this.iconImage_.getImage(e)}getPixelRatio(e){return this.iconImage_.getPixelRatio(e)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let e=this.offset_;if(this.offsetOrigin_!="top-left"){let t=this.getSize(),n=this.iconImage_.getSize();if(!t||!n)return null;e=e.slice(),(this.offsetOrigin_=="top-right"||this.offsetOrigin_=="bottom-right")&&(e[0]=n[0]-t[0]-e[0]),(this.offsetOrigin_=="bottom-left"||this.offsetOrigin_=="bottom-right")&&(e[1]=n[1]-t[1]-e[1])}return this.origin_=e,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){let e=this.getScaleArray();if(this.size_)return this.size_[0]*e[0];if(this.iconImage_.getImageState()==ie.LOADED)return this.iconImage_.getSize()[0]*e[0]}getHeight(){let e=this.getScaleArray();if(this.size_)return this.size_[1]*e[1];if(this.iconImage_.getImageState()==ie.LOADED)return this.iconImage_.getSize()[1]*e[1]}setScale(e){delete this.initialOptions_,super.setScale(e)}listenImageChange(e){this.iconImage_.addEventListener(K.CHANGE,e)}load(){this.iconImage_.load()}unlistenImageChange(e){this.iconImage_.removeEventListener(K.CHANGE,e)}ready(){return this.iconImage_.ready()}},Qr=dm;var Gi=.5;function bu(i,e,t,n,r,o,s,a,l){let A=l?Ei(r,l):r,c=i[0]*Gi,h=i[1]*Gi,u=Re(c,h);u.imageSmoothingEnabled=!1;let f=u.canvas,g=new tx(u,Gi,r,null,s,a,l?$i(st(),l):null),p=t.length,d=Math.floor((256*256*256-1)/p),I={};for(let C=1;C<=p;++C){let _=t[C-1],y=_.getStyleFunction()||n;if(!y)continue;let w=y(_,o);if(!w)continue;Array.isArray(w)||(w=[w]);let E=(C*d).toString(16).padStart(7,"#00000");for(let x=0,B=w.length;xthis.maxStaleKeys&&(this.staleKeys_.length=this.maxStaleKeys)}getFeatures(e){return ne()}getData(e){return null}prepareFrame(e){return ne()}renderFrame(e,t){return ne()}forEachFeatureAtCoordinate(e,t,n,r,o){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(e){let t=e.target;(t.getState()===ie.LOADED||t.getState()===ie.ERROR)&&this.renderIfReadyAndVisible()}loadImage(e){let t=e.getState();return t!=ie.LOADED&&t!=ie.ERROR&&e.addEventListener(K.CHANGE,this.boundHandleImageChange_),t==ie.IDLE&&(e.load(),t=e.getState()),t==ie.LOADED}renderIfReadyAndVisible(){let e=this.getLayer();e&&e.getVisible()&&e.getSourceState()==="ready"&&e.changed()}renderDeferred(e){}disposeInternal(){delete this.layer_,super.disposeInternal()}},Fu=mm;var Im=[],ol=null;function lb(){ol=Re(1,1,void 0,{willReadFrequently:!0})}var Em=class extends Fu{constructor(e){super(e),this.container=null,this.renderedResolution,this.tempTransform=Ce(),this.pixelTransform=Ce(),this.inversePixelTransform=Ce(),this.context=null,this.deferredContext_=null,this.containerReused=!1,this.frameState=null}getImageData(e,t,n){ol||lb(),ol.clearRect(0,0,1,1);let r;try{ol.drawImage(e,t,n,1,1,0,0,1,1),r=ol.getImageData(0,0,1,1).data}catch{return ol=null,null}return r}getBackground(e){let n=this.getLayer().getBackground();return typeof n=="function"&&(n=n(e.viewState.resolution)),n||void 0}useContainer(e,t,n){let r=this.getLayer().getClassName(),o,s;if(e&&e.className===r&&(!n||e&&e.style.backgroundColor&&Mt(Nt(e.style.backgroundColor),Nt(n)))){let a=e.firstElementChild;a instanceof HTMLCanvasElement&&(s=a.getContext("2d"))}if(s&&m_(s.canvas.style.transform,t)?(this.container=e,this.context=s,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){o=document.createElement("div"),o.className=r;let a=o.style;a.position="absolute",a.width="100%",a.height="100%",s=Re();let l=s.canvas;o.appendChild(l),a=l.style,a.position="absolute",a.left="0",a.transformOrigin="top left",this.container=o,this.context=s}!this.containerReused&&n&&!this.container.style.backgroundColor&&(this.container.style.backgroundColor=n)}clipUnrotated(e,t,n){let r=Pt(n),o=Gs(n),s=io(n),a=Ns(n);be(t.coordinateToPixelTransform,r),be(t.coordinateToPixelTransform,o),be(t.coordinateToPixelTransform,s),be(t.coordinateToPixelTransform,a);let l=this.inversePixelTransform;be(l,r),be(l,o),be(l,s),be(l,a),e.save(),e.beginPath(),e.moveTo(Math.round(r[0]),Math.round(r[1])),e.lineTo(Math.round(o[0]),Math.round(o[1])),e.lineTo(Math.round(s[0]),Math.round(s[1])),e.lineTo(Math.round(a[0]),Math.round(a[1])),e.clip()}prepareContainer(e,t){let n=e.extent,r=e.viewState.resolution,o=e.viewState.rotation,s=e.pixelRatio,a=Math.round(ue(n)/r*s),l=Math.round(qe(n)/r*s);ct(this.pixelTransform,e.size[0]/2,e.size[1]/2,1/s,1/s,o,-a/2,-l/2),en(this.inversePixelTransform,this.pixelTransform);let A=p_(this.pixelTransform);if(this.useContainer(t,A,this.getBackground(e)),!this.containerReused){let c=this.context.canvas;c.width!=a||c.height!=l?(c.width=a,c.height=l):this.context.clearRect(0,0,a,l),A!==c.style.transform&&(c.style.transform=A)}}dispatchRenderEvent_(e,t,n){let r=this.getLayer();if(r.hasListener(e)){let o=new fs(e,this.inversePixelTransform,n,t);r.dispatchEvent(o)}}preRender(e,t){this.frameState=t,!t.declutter&&this.dispatchRenderEvent_(mt.PRERENDER,e,t)}postRender(e,t){t.declutter||this.dispatchRenderEvent_(mt.POSTRENDER,e,t)}renderDeferredInternal(e){}getRenderContext(e){return e.declutter&&!this.deferredContext_&&(this.deferredContext_=new il),e.declutter?this.deferredContext_.getContext():this.context}renderDeferred(e){e.declutter&&(this.dispatchRenderEvent_(mt.PRERENDER,this.context,e),e.declutter&&this.deferredContext_&&(this.deferredContext_.draw(this.context),this.deferredContext_.clear()),this.renderDeferredInternal(e),this.dispatchRenderEvent_(mt.POSTRENDER,this.context,e))}getRenderTransform(e,t,n,r,o,s,a){let l=o/2,A=s/2,c=r/t,h=-c,u=-e[0]+a,f=-e[1];return ct(this.tempTransform,l,A,c,h,-n,u,f)}disposeInternal(){delete this.frameState,super.disposeInternal()}},sl=Em;var Cm=class extends sl{constructor(e){super(e),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.animatingOrInteracting_,this.hitDetectionImageData_=null,this.clipped_=!1,this.renderedFeatures_=null,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=ot(),this.wrappedRenderedExtent_=ot(),this.renderedRotation_,this.renderedCenter_=null,this.renderedProjection_=null,this.renderedPixelRatio_=1,this.renderedRenderOrder_=null,this.renderedFrameDeclutter_,this.replayGroup_=null,this.replayGroupChanged=!0,this.clipping=!0,this.targetContext_=null,this.opacity_=1}renderWorlds(e,t,n){let r=t.extent,o=t.viewState,s=o.center,a=o.resolution,l=o.projection,A=o.rotation,c=l.getExtent(),h=this.getLayer().getSource(),u=this.getLayer().getDeclutter(),f=t.pixelRatio,g=t.viewHints,p=!(g[Ne.ANIMATING]||g[Ne.INTERACTING]),d=this.context,I=Math.round(ue(r)/a*f),m=Math.round(qe(r)/a*f),C=h.getWrapX()&&l.canWrapX(),_=C?ue(c):null,y=C?Math.ceil((r[2]-c[2])/_)+1:1,w=C?Math.floor((r[0]-c[0])/_):0;do{let T=this.getRenderTransform(s,a,0,f,I,m,w*_);t.declutter&&(T=T.slice(0)),e.execute(d,[d.canvas.width,d.canvas.height],T,A,p,n===void 0?Ws:n?rl:_x,n?u&&t.declutter[u]:void 0)}while(++w{if(this.frameState&&!this.hitDetectionImageData_&&!this.animatingOrInteracting_){let n=this.frameState.size.slice(),r=this.renderedCenter_,o=this.renderedResolution_,s=this.renderedRotation_,a=this.renderedProjection_,l=this.wrappedRenderedExtent_,A=this.getLayer(),c=[],h=n[0]*Gi,u=n[1]*Gi;c.push(this.getRenderTransform(r,o,s,Gi,h,u,0).slice());let f=A.getSource(),g=a.getExtent();if(f.getWrapX()&&a.canWrapX()&&!Fi(g,l)){let d=l[0],I=ue(g),m=0,C;for(;dg[2];)++m,C=I*m,c.push(this.getRenderTransform(r,o,s,Gi,h,u,C).slice()),d-=I}let p=st();this.hitDetectionImageData_=bu(n,c,this.renderedFeatures_,A.getStyleFunction(),l,o,s,XA(o,this.renderedPixelRatio_),p?a:null)}t(Du(e,this.renderedFeatures_,this.hitDetectionImageData_))})}forEachFeatureAtCoordinate(e,t,n,r,o){if(!this.replayGroup_)return;let s=t.viewState.resolution,a=t.viewState.rotation,l=this.getLayer(),A={},c=function(u,f,g){let p=W(u),d=A[p];if(d){if(d!==!0&&gu.value):null)}handleFontsChanged(){let e=this.getLayer();e.getVisible()&&this.replayGroup_&&e.changed()}handleStyleImageChange_(e){this.renderIfReadyAndVisible()}prepareFrame(e){let t=this.getLayer(),n=t.getSource();if(!n)return!1;let r=e.viewHints[Ne.ANIMATING],o=e.viewHints[Ne.INTERACTING],s=t.getUpdateWhileAnimating(),a=t.getUpdateWhileInteracting();if(this.ready&&!s&&r||!a&&o)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;let l=e.extent,A=e.viewState,c=A.projection,h=A.resolution,u=e.pixelRatio,f=t.getRevision(),g=t.getRenderBuffer(),p=t.getRenderOrder();p===void 0&&(p=nx);let d=A.center.slice(),I=Vt(l,g*h),m=I.slice(),C=[I.slice()],_=c.getExtent();if(n.getWrapX()&&c.canWrapX()&&!Fi(_,e.extent)){let S=ue(_),b=Math.max(ue(I)/2,S);I[0]=_[0]-b,I[2]=_[2]+b,Zo(d,c);let F=Nd(C[0],c);F[0]<_[0]&&F[2]<_[2]?C.push([F[0]+S,F[1],F[2]+S,F[3]]):F[0]>_[0]&&F[2]>_[2]&&C.push([F[0]-S,F[1],F[2]-S,F[3]])}if(this.ready&&this.renderedResolution_==h&&this.renderedRevision_==f&&this.renderedRenderOrder_==p&&this.renderedFrameDeclutter_===!!e.declutter&&Fi(this.wrappedRenderedExtent_,I))return Mt(this.renderedExtent_,m)||(this.hitDetectionImageData_=null,this.renderedExtent_=m),this.renderedCenter_=d,this.replayGroupChanged=!1,!0;this.replayGroup_=null;let y=new Ru(Lp(h,u),I,h,u),w=st(),T;if(w){for(let S=0,b=C.length;S{let F,M=S.getStyleFunction()||t.getStyleFunction();if(M&&(F=M(S,h)),F){let k=this.renderFeature(S,E,F,y,T,this.getLayer().getDeclutter(),b);x=x&&!k}},R=Ei(I,c),v=n.getFeaturesInExtent(R);p&&v.sort(p);for(let S=0,b=v.length;S",GreaterThanOrEqualTo:">=",LessThan:"<",LessThanOrEqualTo:"<=",Multiply:"*",Divide:"/",Add:"+",Subtract:"-",Clamp:"clamp",Mod:"%",Pow:"^",Abs:"abs",Floor:"floor",Ceil:"ceil",Round:"round",Sin:"sin",Cos:"cos",Atan:"atan",Sqrt:"sqrt",Match:"match",Between:"between",Interpolate:"interpolate",Coalesce:"coalesce",Case:"case",In:"in",Number:"number",String:"string",Array:"array",Color:"color",Id:"id",Band:"band",Palette:"palette",ToString:"to-string",Has:"has"},hb={[G.Get]:pe(we(1,1/0),Bx),[G.Var]:pe(we(1,1),ub),[G.Has]:pe(we(1,1/0),Bx),[G.Id]:pe(fb,al),[G.Concat]:pe(we(2,1/0),je(Rt)),[G.GeometryType]:pe(gb,al),[G.LineMetric]:pe(al),[G.Resolution]:pe(ym,al),[G.Zoom]:pe(ym,al),[G.Time]:pe(ym,al),[G.Any]:pe(we(2,1/0),je(It)),[G.All]:pe(we(2,1/0),je(It)),[G.Not]:pe(we(1,1),je(It)),[G.Equal]:pe(we(2,2),je(Mu)),[G.NotEqual]:pe(we(2,2),je(Mu)),[G.GreaterThan]:pe(we(2,2),je(te)),[G.GreaterThanOrEqualTo]:pe(we(2,2),je(te)),[G.LessThan]:pe(we(2,2),je(te)),[G.LessThanOrEqualTo]:pe(we(2,2),je(te)),[G.Multiply]:pe(we(2,1/0),wx),[G.Coalesce]:pe(we(2,1/0),wx),[G.Divide]:pe(we(2,2),je(te)),[G.Add]:pe(we(2,1/0),je(te)),[G.Subtract]:pe(we(2,2),je(te)),[G.Clamp]:pe(we(3,3),je(te)),[G.Mod]:pe(we(2,2),je(te)),[G.Pow]:pe(we(2,2),je(te)),[G.Abs]:pe(we(1,1),je(te)),[G.Floor]:pe(we(1,1),je(te)),[G.Ceil]:pe(we(1,1),je(te)),[G.Round]:pe(we(1,1),je(te)),[G.Sin]:pe(we(1,1),je(te)),[G.Cos]:pe(we(1,1),je(te)),[G.Atan]:pe(we(1,2),je(te)),[G.Sqrt]:pe(we(1,1),je(te)),[G.Match]:pe(we(4,1/0),vx,pb),[G.Between]:pe(we(3,3),je(te)),[G.Interpolate]:pe(we(6,1/0),vx,mb),[G.Case]:pe(we(3,1/0),db,Eb),[G.In]:pe(we(2,2),Ib),[G.Number]:pe(we(1,1/0),je(Mu)),[G.String]:pe(we(1,1/0),je(Mu)),[G.Array]:pe(we(1,1/0),je(te)),[G.Color]:pe(we(1,4),je(te)),[G.Band]:pe(we(1,3),je(te)),[G.Palette]:pe(we(2,2),Cb),[G.ToString]:pe(we(1,1),je(It|te|Rt|We))};function Bx(i,e,t){let n=i.length-1,r=new Array(n);for(let o=0;oe){let a=e===1/0?`${i} or more`:`${i} to ${e}`;throw new Error(`expected ${a} arguments for ${o}, got ${s}`)}}}function wx(i,e,t){let n=i.length-1,r=new Array(n);for(let o=0;on.featureId;case G.GeometryType:return n=>n.geometryType;case G.Concat:{let n=i.args.map(r=>cr(r,e));return r=>"".concat(...n.map(o=>o(r).toString()))}case G.Resolution:return n=>n.resolution;case G.Any:case G.All:case G.Between:case G.In:case G.Not:return wb(i,e);case G.Equal:case G.NotEqual:case G.LessThan:case G.LessThanOrEqualTo:case G.GreaterThan:case G.GreaterThanOrEqualTo:return Bb(i,e);case G.Multiply:case G.Divide:case G.Add:case G.Subtract:case G.Clamp:case G.Mod:case G.Pow:case G.Abs:case G.Floor:case G.Ceil:case G.Round:case G.Sin:case G.Cos:case G.Atan:case G.Sqrt:return vb(i,e);case G.Case:return Sb(i,e);case G.Match:return Tb(i,e);case G.Interpolate:return Rb(i,e);case G.ToString:return Qb(i,e);default:throw new Error(`Unsupported operator ${t}`)}}function _b(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{for(let s=0;s{for(let s=0;s{let o=i.args,s=r.properties[n];for(let a=1,l=o.length;ar.variables[n];case G.Has:return r=>{let o=i.args;if(!(n in r.properties))return!1;let s=r.properties[n];for(let a=1,l=o.length;an(o)===r(o);case G.NotEqual:return o=>n(o)!==r(o);case G.LessThan:return o=>n(o)n(o)<=r(o);case G.GreaterThan:return o=>n(o)>r(o);case G.GreaterThanOrEqualTo:return o=>n(o)>=r(o);default:throw new Error(`Unsupported comparison operator ${t}`)}}function wb(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{for(let s=0;s{for(let s=0;s{let s=r[0](o),a=r[1](o),l=r[2](o);return s>=a&&s<=l};case G.In:return o=>{let s=r[0](o);for(let a=1;a!r[0](o);default:throw new Error(`Unsupported logical operator ${t}`)}}function vb(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{let s=1;for(let a=0;ar[0](o)/r[1](o);case G.Add:return o=>{let s=0;for(let a=0;ar[0](o)-r[1](o);case G.Clamp:return o=>{let s=r[0](o),a=r[1](o);if(sl?l:s};case G.Mod:return o=>r[0](o)%r[1](o);case G.Pow:return o=>Math.pow(r[0](o),r[1](o));case G.Abs:return o=>Math.abs(r[0](o));case G.Floor:return o=>Math.floor(r[0](o));case G.Ceil:return o=>Math.ceil(r[0](o));case G.Round:return o=>Math.round(r[0](o));case G.Sin:return o=>Math.sin(r[0](o));case G.Cos:return o=>Math.cos(r[0](o));case G.Atan:return n===2?o=>Math.atan2(r[0](o),r[1](o)):o=>Math.atan(r[0](o));case G.Sqrt:return o=>Math.sqrt(r[0](o));default:throw new Error(`Unsupported numeric operator ${t}`)}}function Sb(i,e){let t=i.args.length,n=new Array(t);for(let r=0;r{for(let o=0;o{let o=n[0](r);for(let s=1;s{let o=n[0](r),s=n[1](r),a,l;for(let A=2;A=s)return A===2?h:u?bb(o,s,a,l,c,h):oc(o,s,a,l,c,h);a=c,l=h}return l}}function Qb(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{let s=r[0](o);return i.args[0].type===We?HA(s):s.toString()};default:throw new Error(`Unsupported convert operator ${t}`)}}function oc(i,e,t,n,r,o){let s=r-t;if(s===0)return n;let a=e-t,l=i===1?a/s:(Math.pow(i,a)-1)/(Math.pow(i,s)-1);return n+l*(o-n)}function bb(i,e,t,n,r,o){if(r-t===0)return n;let a=xp(n),l=xp(o),A=l[2]-a[2];A>180?A-=360:A<-180&&(A+=360);let c=[oc(i,e,t,a[0],r,l[0]),oc(i,e,t,a[1],r,l[1]),a[2]+oc(i,e,t,0,r,A),oc(i,e,t,n[3],r,o[3])];return V_(c)}function Db(i){return!0}function Qx(i){let e=Zs(),t=Fb(i,e),n=sc();return function(r,o){if(n.properties=r.getPropertiesInternal(),n.resolution=o,e.featureId){let s=r.getId();s!==void 0?n.featureId=s:n.featureId=null}return e.geometryType&&(n.geometryType=ea(r.getGeometry())),t(n)}}function wm(i){let e=Zs(),t=i.length,n=new Array(t);for(let s=0;snull;n=vm(i,e+"fill-color",t)}if(!n)return null;let r=new Ai;return function(o){let s=n(o);return s===du?null:(r.setColor(s),r)}}function lc(i,e,t){let n=an(i,e+"stroke-width",t),r=vm(i,e+"stroke-color",t);if(!n&&!r)return null;let o=po(i,e+"stroke-line-cap",t),s=po(i,e+"stroke-line-join",t),a=bx(i,e+"stroke-line-dash",t),l=an(i,e+"stroke-line-dash-offset",t),A=an(i,e+"stroke-miter-limit",t),c=new _i;return function(h){if(r){let u=r(h);if(u===du)return null;c.setColor(u)}if(n&&c.setWidth(n(h)),o){let u=o(h);if(u!=="butt"&&u!=="round"&&u!=="square")throw new Error("Expected butt, round, or square line cap");c.setLineCap(u)}if(s){let u=s(h);if(u!=="bevel"&&u!=="round"&&u!=="miter")throw new Error("Expected bevel, round, or miter line join");c.setLineJoin(u)}return a&&c.setLineDash(a(h)),l&&c.setLineDashOffset(l(h)),A&&c.setMiterLimit(A(h)),c}}function Lb(i,e){let t="text-",n=po(i,t+"value",e);if(!n)return null;let r=ac(i,t,e),o=ac(i,t+"background-",e),s=lc(i,t,e),a=lc(i,t+"background-",e),l=po(i,t+"font",e),A=an(i,t+"max-angle",e),c=an(i,t+"offset-x",e),h=an(i,t+"offset-y",e),u=ll(i,t+"overflow",e),f=po(i,t+"placement",e),g=an(i,t+"repeat",e),p=Nu(i,t+"scale",e),d=ll(i,t+"rotate-with-view",e),I=an(i,t+"rotation",e),m=po(i,t+"align",e),C=po(i,t+"justify",e),_=po(i,t+"baseline",e),y=ll(i,t+"keep-upright",e),w=bx(i,t+"padding",e),T=Gu(i,t+"declutter-mode"),E=new js({declutterMode:T});return function(x){if(E.setText(n(x)),r&&E.setFill(r(x)),o&&E.setBackgroundFill(o(x)),s&&E.setStroke(s(x)),a&&E.setBackgroundStroke(a(x)),l&&E.setFont(l(x)),A&&E.setMaxAngle(A(x)),c&&E.setOffsetX(c(x)),h&&E.setOffsetY(h(x)),u&&E.setOverflow(u(x)),f){let B=f(x);if(B!=="point"&&B!=="line")throw new Error("Expected point or line for text-placement");E.setPlacement(B)}if(g&&E.setRepeat(g(x)),p&&E.setScale(p(x)),d&&E.setRotateWithView(d(x)),I&&E.setRotation(I(x)),m){let B=m(x);if(B!=="left"&&B!=="center"&&B!=="right"&&B!=="end"&&B!=="start")throw new Error("Expected left, right, center, start, or end for text-align");E.setTextAlign(B)}if(C){let B=C(x);if(B!=="left"&&B!=="right"&&B!=="center")throw new Error("Expected left, right, or center for text-justify");E.setJustify(B)}if(_){let B=_(x);if(B!=="bottom"&&B!=="top"&&B!=="middle"&&B!=="alphabetic"&&B!=="hanging")throw new Error("Expected bottom, top, middle, alphabetic, or hanging for text-baseline");E.setTextBaseline(B)}return w&&E.setPadding(w(x)),y&&E.setKeepUpright(y(x)),E}}function Mb(i,e){return"icon-src"in i?kb(i,e):"shape-points"in i?Pb(i,e):"circle-radius"in i?Nb(i,e):null}function kb(i,e){let t="icon-",n=t+"src",r=Dx(i[n],n),o=ku(i,t+"anchor",e),s=Nu(i,t+"scale",e),a=an(i,t+"opacity",e),l=ku(i,t+"displacement",e),A=an(i,t+"rotation",e),c=ll(i,t+"rotate-with-view",e),h=Tx(i,t+"anchor-origin"),u=Rx(i,t+"anchor-x-units"),f=Rx(i,t+"anchor-y-units"),g=Yb(i,t+"color"),p=Ub(i,t+"cross-origin"),d=zb(i,t+"offset"),I=Tx(i,t+"offset-origin"),m=Pu(i,t+"width"),C=Pu(i,t+"height"),_=Ob(i,t+"size"),y=Gu(i,t+"declutter-mode"),w=new Qr({src:r,anchorOrigin:h,anchorXUnits:u,anchorYUnits:f,color:g,crossOrigin:p,offset:d,offsetOrigin:I,height:C,width:m,size:_,declutterMode:y});return function(T){return a&&w.setOpacity(a(T)),l&&w.setDisplacement(l(T)),A&&w.setRotation(A(T)),c&&w.setRotateWithView(c(T)),s&&w.setScale(s(T)),o&&w.setAnchor(o(T)),w}}function Pb(i,e){let t="shape-",n=t+"points",r=t+"radius",o=Bm(i[n],n),s=Bm(i[r],r),a=ac(i,t,e),l=lc(i,t,e),A=Nu(i,t+"scale",e),c=ku(i,t+"displacement",e),h=an(i,t+"rotation",e),u=ll(i,t+"rotate-with-view",e),f=Pu(i,t+"radius2"),g=Pu(i,t+"angle"),p=Gu(i,t+"declutter-mode"),d=new Su({points:o,radius:s,radius2:f,angle:g,declutterMode:p});return function(I){return a&&d.setFill(a(I)),l&&d.setStroke(l(I)),c&&d.setDisplacement(c(I)),h&&d.setRotation(h(I)),u&&d.setRotateWithView(u(I)),A&&d.setScale(A(I)),d}}function Nb(i,e){let t="circle-",n=ac(i,t,e),r=lc(i,t,e),o=an(i,t+"radius",e),s=Nu(i,t+"scale",e),a=ku(i,t+"displacement",e),l=an(i,t+"rotation",e),A=ll(i,t+"rotate-with-view",e),c=Gu(i,t+"declutter-mode"),h=new ZA({radius:5,declutterMode:c});return function(u){return o&&h.setRadius(o(u)),n&&h.setFill(n(u)),r&&h.setStroke(r(u)),a&&h.setDisplacement(a(u)),l&&h.setRotation(l(u)),A&&h.setRotateWithView(A(u)),s&&h.setScale(s(u)),h}}function an(i,e,t){if(!(e in i))return;let n=Yn(i[e],te,t);return function(r){return Bm(n(r),e)}}function po(i,e,t){if(!(e in i))return null;let n=Yn(i[e],Rt,t);return function(r){return Dx(n(r),e)}}function Gb(i,e,t){let n=po(i,e+"pattern-src",t),r=Sx(i,e+"pattern-offset",t),o=Sx(i,e+"pattern-size",t),s=vm(i,e+"color",t);return function(a){return{src:n(a),offset:r&&r(a),size:o&&o(a),color:s&&s(a)}}}function ll(i,e,t){if(!(e in i))return null;let n=Yn(i[e],It,t);return function(r){let o=n(r);if(typeof o!="boolean")throw new Error(`Expected a boolean for ${e}`);return o}}function vm(i,e,t){if(!(e in i))return null;let n=Yn(i[e],We,t);return function(r){return Fx(n(r),e)}}function bx(i,e,t){if(!(e in i))return null;let n=Yn(i[e],Xt,t);return function(r){return Ac(n(r),e)}}function ku(i,e,t){if(!(e in i))return null;let n=Yn(i[e],Xt,t);return function(r){let o=Ac(n(r),e);if(o.length!==2)throw new Error(`Expected two numbers for ${e}`);return o}}function Sx(i,e,t){if(!(e in i))return null;let n=Yn(i[e],Xt,t);return function(r){return Lx(n(r),e)}}function Nu(i,e,t){if(!(e in i))return null;let n=Yn(i[e],Xt|te,t);return function(r){return Vb(n(r),e)}}function Pu(i,e){let t=i[e];if(t!==void 0){if(typeof t!="number")throw new Error(`Expected a number for ${e}`);return t}}function Ob(i,e){let t=i[e];if(t!==void 0){if(typeof t=="number")return Fe(t);if(!Array.isArray(t))throw new Error(`Expected a number or size array for ${e}`);if(t.length!==2||typeof t[0]!="number"||typeof t[1]!="number")throw new Error(`Expected a number or size array for ${e}`);return t}}function Ub(i,e){let t=i[e];if(t!==void 0){if(typeof t!="string")throw new Error(`Expected a string for ${e}`);return t}}function Tx(i,e){let t=i[e];if(t!==void 0){if(t!=="bottom-left"&&t!=="bottom-right"&&t!=="top-left"&&t!=="top-right")throw new Error(`Expected bottom-left, bottom-right, top-left, or top-right for ${e}`);return t}}function Rx(i,e){let t=i[e];if(t!==void 0){if(t!=="pixels"&&t!=="fraction")throw new Error(`Expected pixels or fraction for ${e}`);return t}}function zb(i,e){let t=i[e];if(t!==void 0)return Ac(t,e)}function Gu(i,e){let t=i[e];if(t!==void 0){if(typeof t!="string")throw new Error(`Expected a string for ${e}`);if(t!=="declutter"&&t!=="obstacle"&&t!=="none")throw new Error(`Expected declutter, obstacle, or none for ${e}`);return t}}function Yb(i,e){let t=i[e];if(t!==void 0)return Fx(t,e)}function Ac(i,e){if(!Array.isArray(i))throw new Error(`Expected an array for ${e}`);let t=i.length;for(let n=0;n4)throw new Error(`Expected a color with 3 or 4 values for ${e}`);return t}function Lx(i,e){let t=Ac(i,e);if(t.length!==2)throw new Error(`Expected an array of two numbers for ${e}`);return t}function Vb(i,e){return typeof i=="number"?i:Lx(i,e)}var Oi={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};function Sm(i,e,t){return function(n,r,o,s,a){if(!n)return;if(!r&&!e)return n;let l=e?0:o[0]*r,A=e?0:o[1]*r,c=a?a[0]:0,h=a?a[1]:0,u=i[0]+l/2+c,f=i[2]-l/2+c,g=i[1]+A/2+h,p=i[3]-A/2+h;u>f&&(u=(f+u)/2,f=u),g>p&&(g=(p+g)/2,p=g);let d=Ee(n[0],u,f),I=Ee(n[1],g,p);if(s&&t&&r){let m=30*r;d+=-m*Math.log(1+Math.max(0,u-n[0])/m)+m*Math.log(1+Math.max(0,n[0]-f)/m),I+=-m*Math.log(1+Math.max(0,g-n[1])/m)+m*Math.log(1+Math.max(0,n[1]-p)/m)}return[d,I]}}function Mx(i){return i}function Tm(i){return Math.pow(i,3)}function ln(i){return 1-Tm(1-i)}function kx(i){return 3*i*i-2*i*i*i}function Px(i){return i}function Rm(i,e,t,n){let r=ue(e)/t[0],o=qe(e)/t[1];return n?Math.min(i,Math.max(r,o)):Math.min(i,Math.min(r,o))}function Qm(i,e,t){let n=Math.min(i,e),r=50;return n*=Math.log(1+r*Math.max(0,i/e-1))/r+1,t&&(n=Math.max(n,t),n/=Math.log(1+r*Math.max(0,t/i-1))/r+1),Ee(n,t/2,e*2)}function Nx(i,e,t,n){return e=e!==void 0?e:!0,function(r,o,s,a){if(r!==void 0){let l=i[0],A=i[i.length-1],c=t?Rm(l,t,s,n):l;if(a)return e?Qm(r,c,A):Ee(r,A,c);let h=Math.min(c,r),u=Math.floor(va(i,h,o));return i[u]>c&&u1&&typeof arguments[t-1]=="function"&&(n=arguments[t-1],--t);let r=0;for(;r0}getInteracting(){return this.hints_[Ne.INTERACTING]>0}cancelAnimations(){this.setHint(Ne.ANIMATING,-this.hints_[Ne.ANIMATING]);let e;for(let t=0,n=this.animations_.length;t=0;--n){let r=this.animations_[n],o=!0;for(let s=0,a=r.length;s0?A/l.duration:1;c>=1?(l.complete=!0,c=1):o=!1;let h=l.easing(c);if(l.sourceCenter){let u=l.sourceCenter[0],f=l.sourceCenter[1],g=l.targetCenter[0],p=l.targetCenter[1];this.nextCenter_=l.targetCenter;let d=u+h*(g-u),I=f+h*(p-f);this.targetCenter_=[d,I]}if(l.sourceResolution&&l.targetResolution){let u=h===1?l.targetResolution:l.sourceResolution+h*(l.targetResolution-l.sourceResolution);if(l.anchor){let f=this.getViewportSize_(this.getRotation()),g=this.constraints_.resolution(u,0,f,!0);this.targetCenter_=this.calculateCenterZoom(g,l.anchor)}this.nextResolution_=l.targetResolution,this.targetResolution_=u,this.applyTargetState_(!0)}if(l.sourceRotation!==void 0&&l.targetRotation!==void 0){let u=h===1?ki(l.targetRotation+Math.PI,2*Math.PI)-Math.PI:l.sourceRotation+h*(l.targetRotation-l.sourceRotation);if(l.anchor){let f=this.constraints_.rotation(u,!0);this.targetCenter_=this.calculateCenterRotate(f,l.anchor)}this.nextRotation_=l.targetRotation,this.targetRotation_=u}if(this.applyTargetState_(!0),t=!0,!l.complete)break}if(o){this.animations_[n]=null,this.setHint(Ne.ANIMATING,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;let s=r[0].callback;s&&Ou(s,!0)}}this.animations_=this.animations_.filter(Boolean),t&&this.updateAnimationKey_===void 0&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(e,t){let n,r=this.getCenterInternal();return r!==void 0&&(n=[r[0]-t[0],r[1]-t[1]],ka(n,e-this.getRotation()),Vy(n,t)),n}calculateCenterZoom(e,t){let n,r=this.getCenterInternal(),o=this.getResolution();if(r!==void 0&&o!==void 0){let s=t[0]-e*(t[0]-r[0])/o,a=t[1]-e*(t[1]-r[1])/o;n=[s,a]}return n}getViewportSize_(e){let t=this.viewportSize_;if(e){let n=t[0],r=t[1];return[Math.abs(n*Math.cos(e))+Math.abs(r*Math.sin(e)),Math.abs(n*Math.sin(e))+Math.abs(r*Math.cos(e))]}return t}setViewportSize(e){this.viewportSize_=Array.isArray(e)?e.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){let e=this.getCenterInternal();return e&&Zi(e,this.getProjection())}getCenterInternal(){return this.get(Oi.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(e){return e!==void 0?(e[0]=this.hints_[0],e[1]=this.hints_[1],e):this.hints_.slice()}calculateExtent(e){let t=this.calculateExtentInternal(e);return Ei(t,this.getProjection())}calculateExtentInternal(e){e=e||this.getViewportSizeMinusPadding_();let t=this.getCenterInternal();he(t,"The view center is not defined");let n=this.getResolution();he(n!==void 0,"The view resolution is not defined");let r=this.getRotation();return he(r!==void 0,"The view rotation is not defined"),CA(t,n,r,e)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(e){this.applyOptions_(this.getUpdatedOptions_({maxZoom:e}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(e){this.applyOptions_(this.getUpdatedOptions_({minZoom:e}))}setConstrainResolution(e){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:e}))}getProjection(){return this.projection_}getResolution(){return this.get(Oi.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(e,t){return this.getResolutionForExtentInternal(Bt(e,this.getProjection()),t)}getResolutionForExtentInternal(e,t){t=t||this.getViewportSizeMinusPadding_();let n=ue(e)/t[0],r=qe(e)/t[1];return Math.max(n,r)}getResolutionForValueFunction(e){e=e||2;let t=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(t/n)/Math.log(e);return function(o){return t/Math.pow(e,o*r)}}getRotation(){return this.get(Oi.ROTATION)}getValueForResolutionFunction(e){let t=Math.log(e||2),n=this.getConstrainedResolution(this.maxResolution_),r=this.minResolution_,o=Math.log(n/r)/t;return function(s){return Math.log(n/s)/t/o}}getViewportSizeMinusPadding_(e){let t=this.getViewportSize_(e),n=this.padding_;return n&&(t=[t[0]-n[1]-n[3],t[1]-n[0]-n[2]]),t}getState(){let e=this.getProjection(),t=this.getResolution(),n=this.getRotation(),r=this.getCenterInternal(),o=this.padding_;if(o){let s=this.getViewportSizeMinusPadding_();r=Lm(r,this.getViewportSize_(),[s[0]/2+o[3],s[1]/2+o[0]],t,n)}return{center:r.slice(0),projection:e!==void 0?e:null,resolution:t,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:n,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let e,t=this.getResolution();return t!==void 0&&(e=this.getZoomForResolution(t)),e}getZoomForResolution(e){let t=this.minZoom_||0,n,r;if(this.resolutions_){let o=va(this.resolutions_,e,1);t=o,n=this.resolutions_[o],o==this.resolutions_.length-1?r=2:r=n/this.resolutions_[o+1]}else n=this.maxResolution_,r=this.zoomFactor_;return t+Math.log(n/e)/Math.log(r)}getResolutionForZoom(e){if(this.resolutions_?.length){if(this.resolutions_.length===1)return this.resolutions_[0];let t=Ee(Math.floor(e),0,this.resolutions_.length-2),n=this.resolutions_[t]/this.resolutions_[t+1];return this.resolutions_[t]/Math.pow(n,Ee(e-t,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,e-this.minZoom_)}fit(e,t){let n;if(he(Array.isArray(e)||typeof e.getSimplifiedGeometry=="function","Invalid extent or geometry provided as `geometry`"),Array.isArray(e)){he(!mi(e),"Cannot fit empty extent provided as `geometry`");let r=Bt(e,this.getProjection());n=Vs(r)}else if(e.getType()==="Circle"){let r=Bt(e.getExtent(),this.getProjection());n=Vs(r),n.rotate(this.getRotation(),pi(r))}else{let r=st();r?n=e.clone().transform(r,this.getProjection()):n=e}this.fitInternal(n,t)}rotatedExtentForGeometry(e){let t=this.getRotation(),n=Math.cos(t),r=Math.sin(-t),o=e.getFlatCoordinates(),s=e.getStride(),a=1/0,l=1/0,A=-1/0,c=-1/0;for(let h=0,u=o.length;h{this.dispatchEvent("sourceready")},0)),this.clearRenderer()),this.changed()}getFeatures(e){return this.renderer_?this.renderer_.getFeatures(e):Promise.resolve([])}getData(e){return!this.renderer_||!this.rendered?null:this.renderer_.getData(e)}isVisible(e){let t,n=this.getMapInternal();!e&&n&&(e=n.getView()),e instanceof xi?t={viewState:e.getState(),extent:e.calculateExtent()}:t=e,!t.layerStatesArray&&n&&(t.layerStatesArray=n.getLayerGroup().getLayerStatesArray());let r;if(t.layerStatesArray){if(r=t.layerStatesArray.find(s=>s.layer===this),!r)return!1}else r=this.getLayerState();let o=this.getExtent();return cc(r,t.viewState)&&(!o||Qe(o,t.extent))}getAttributions(e){if(!this.isVisible(e))return[];let t=this.getSource()?.getAttributions();if(!t)return[];let n=e instanceof xi?e.getViewStateAndExtent():e,r=t(n);return Array.isArray(r)||(r=[r]),r}render(e,t){let n=this.getRenderer();return n.prepareFrame(e)?(this.rendered=!0,n.renderFrame(e,t)):null}unrender(){this.rendered=!1}getDeclutter(){}renderDeclutter(e,t){}renderDeferred(e){let t=this.getRenderer();t&&t.renderDeferred(e)}setMapInternal(e){e||this.unrender(),this.set(ke.MAP,e)}getMapInternal(){return this.get(ke.MAP)}setMap(e){this.mapPrecomposeKey_&&(ce(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),e||this.changed(),this.mapRenderKey_&&(ce(this.mapRenderKey_),this.mapRenderKey_=null),e&&(this.mapPrecomposeKey_=ee(e,mt.PRECOMPOSE,this.handlePrecompose_,this),this.mapRenderKey_=ee(this,K.CHANGE,e.render,e),this.changed())}handlePrecompose_(e){let t=e.frameState.layerStatesArray,n=this.getLayerState(!1);he(!t.some(r=>r.layer===n.layer),"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."),t.push(n)}setSource(e){this.set(ke.SOURCE,e)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}clearRenderer(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_)}disposeInternal(){this.clearRenderer(),this.setSource(null),super.disposeInternal()}};function cc(i,e){if(!i.visible)return!1;let t=e.resolution;if(t=i.maxResolution)return!1;let n=e.zoom;return n>i.minZoom&&n<=i.maxZoom}var hr=Pm;var Yx={RENDER_ORDER:"renderOrder"},Nm=class extends hr{constructor(e){e=e||{};let t=Object.assign({},e);delete t.style,delete t.renderBuffer,delete t.updateWhileAnimating,delete t.updateWhileInteracting,super(t),this.declutter_=e.declutter?String(e.declutter):void 0,this.renderBuffer_=e.renderBuffer!==void 0?e.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(e.style),this.updateWhileAnimating_=e.updateWhileAnimating!==void 0?e.updateWhileAnimating:!1,this.updateWhileInteracting_=e.updateWhileInteracting!==void 0?e.updateWhileInteracting:!1}getDeclutter(){return this.declutter_}getFeatures(e){return super.getFeatures(e)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(Yx.RENDER_ORDER)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(e,t){let n=this.getDeclutter();n in e.declutter||(e.declutter[n]=new ho(9)),this.getRenderer().renderDeclutter(e,t)}setRenderOrder(e){this.set(Yx.RENDER_ORDER,e)}setStyle(e){this.style_=e===void 0?em:e;let t=jb(e);this.styleFunction_=e===null?void 0:ux(t),this.changed()}setDeclutter(e){this.declutter_=e?String(e):void 0,this.changed()}};function jb(i){if(i===void 0)return em;if(!i)return null;if(typeof i=="function"||i instanceof ci)return i;if(!Array.isArray(i))return wm([i]);if(i.length===0)return[];let e=i.length,t=i[0];if(t instanceof ci){let r=new Array(e);for(let o=0;oe)throw new Error("Tile load sequence violation");this.state=e,this.changed()}}load(){ne()}getAlpha(e,t){if(!this.transition_)return 1;let n=this.transitionStarts_[e];if(!n)n=t,this.transitionStarts_[e]=n;else if(n===-1)return 1;let r=t-n+1e3/60;return r>=this.transition_?1:Tm(r/this.transition_)}inTransition(e){return this.transition_?this.transitionStarts_[e]!==-1:!1}endTransition(e){this.transition_&&(this.transitionStarts_[e]=-1)}disposeInternal(){this.release(),super.disposeInternal()}},br=Um;var zm=class extends br{constructor(e,t,n,r,o,s){super(e,t,s),this.crossOrigin_=r,this.src_=n,this.key=n,this.image_=new Image,r!==null&&(this.image_.crossOrigin=r),this.unlisten_=null,this.tileLoadFunction_=o}getImage(){return this.image_}setImage(e){this.image_=e,this.state=V.LOADED,this.unlistenImage_(),this.changed()}handleImageError_(){this.state=V.ERROR,this.unlistenImage_(),this.image_=Wb(),this.changed()}handleImageLoad_(){let e=this.image_;e.naturalWidth&&e.naturalHeight?this.state=V.LOADED:this.state=V.EMPTY,this.unlistenImage_(),this.changed()}load(){this.state==V.ERROR&&(this.state=V.IDLE,this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==V.IDLE&&(this.state=V.LOADING,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=H_(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}disposeInternal(){this.unlistenImage_(),this.image_=null,super.disposeInternal()}};function Wb(){let i=Re(1,1);return i.fillStyle="rgba(0,0,0,0)",i.fillRect(0,0,1,1),i.canvas}var ds=zm;var Ym=class{constructor(e,t,n){this.decay_=e,this.minVelocity_=t,this.delay_=n,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(e,t){this.points_.push(e,t,Date.now())}end(){if(this.points_.length<6)return!1;let e=Date.now()-this.delay_,t=this.points_.length-3;if(this.points_[t+2]0&&this.points_[n+2]>e;)n-=3;let r=this.points_[t+2]-this.points_[n+2];if(r<1e3/60)return!1;let o=this.points_[t]-this.points_[n],s=this.points_[t+1]-this.points_[n+1];return this.angle_=Math.atan2(s,o),this.initialVelocity_=Math.sqrt(o*o+s*s)/r,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}},Hx=Ym;var Vm=class extends Pe{constructor(e,t,n){super(e),this.map=t,this.frameState=n!==void 0?n:null}},ps=Vm;var Hm=class extends ps{constructor(e,t,n,r,o,s){super(e,t,o),this.originalEvent=n,this.pixel_=null,this.coordinate_=null,this.dragging=r!==void 0?r:!1,this.activePointers=s}get pixel(){return this.pixel_||(this.pixel_=this.map.getEventPixel(this.originalEvent)),this.pixel_}set pixel(e){this.pixel_=e}get coordinate(){return this.coordinate_||(this.coordinate_=this.map.getCoordinateFromPixel(this.pixel)),this.coordinate_}set coordinate(e){this.coordinate_=e}preventDefault(){super.preventDefault(),"preventDefault"in this.originalEvent&&this.originalEvent.preventDefault()}stopPropagation(){super.stopPropagation(),"stopPropagation"in this.originalEvent&&this.originalEvent.stopPropagation()}},Hn=Hm;var xe={SINGLECLICK:"singleclick",CLICK:K.CLICK,DBLCLICK:K.DBLCLICK,POINTERDRAG:"pointerdrag",POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"};var cn={POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"};var qm=class extends Mn{constructor(e,t){super(e),this.map_=e,this.clickTimeoutId_,this.emulateClicks_=!1,this.dragging_=!1,this.dragListenerKeys_=[],this.moveTolerance_=t===void 0?1:t,this.down_=null;let n=this.map_.getViewport();this.activePointers_=[],this.trackedTouches_={},this.element_=n,this.pointerdownListenerKey_=ee(n,cn.POINTERDOWN,this.handlePointerDown_,this),this.originalPointerMoveEvent_,this.relayedListenerKey_=ee(n,cn.POINTERMOVE,this.relayMoveEvent_,this),this.boundHandleTouchMove_=this.handleTouchMove_.bind(this),this.element_.addEventListener(K.TOUCHMOVE,this.boundHandleTouchMove_,uu?{passive:!1}:!1)}emulateClick_(e){let t=new Hn(xe.CLICK,this.map_,e);this.dispatchEvent(t),this.clickTimeoutId_!==void 0?(clearTimeout(this.clickTimeoutId_),this.clickTimeoutId_=void 0,t=new Hn(xe.DBLCLICK,this.map_,e),this.dispatchEvent(t)):this.clickTimeoutId_=setTimeout(()=>{this.clickTimeoutId_=void 0;let n=new Hn(xe.SINGLECLICK,this.map_,e);this.dispatchEvent(n)},250)}updateActivePointers_(e){let t=e,n=t.pointerId;if(t.type==xe.POINTERUP||t.type==xe.POINTERCANCEL){delete this.trackedTouches_[n];for(let r in this.trackedTouches_)if(this.trackedTouches_[r].target!==t.target){delete this.trackedTouches_[r];break}}else(t.type==xe.POINTERDOWN||t.type==xe.POINTERMOVE)&&(this.trackedTouches_[n]=t);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(e){this.updateActivePointers_(e);let t=new Hn(xe.POINTERUP,this.map_,e,void 0,void 0,this.activePointers_);this.dispatchEvent(t),this.emulateClicks_&&!t.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(e)&&this.emulateClick_(this.down_),this.activePointers_.length===0&&(this.dragListenerKeys_.forEach(ce),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(e){return e.button===0}handlePointerDown_(e){this.emulateClicks_=this.activePointers_.length===0,this.updateActivePointers_(e);let t=new Hn(xe.POINTERDOWN,this.map_,e,void 0,void 0,this.activePointers_);if(this.dispatchEvent(t),this.down_=new PointerEvent(e.type,e),Object.defineProperty(this.down_,"target",{writable:!1,value:e.target}),this.dragListenerKeys_.length===0){let n=this.map_.getOwnerDocument();this.dragListenerKeys_.push(ee(n,xe.POINTERMOVE,this.handlePointerMove_,this),ee(n,xe.POINTERUP,this.handlePointerUp_,this),ee(this.element_,xe.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==n&&this.dragListenerKeys_.push(ee(this.element_.getRootNode(),xe.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(e){if(this.isMoving_(e)){this.updateActivePointers_(e),this.dragging_=!0;let t=new Hn(xe.POINTERDRAG,this.map_,e,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(t)}}relayMoveEvent_(e){this.originalPointerMoveEvent_=e;let t=!!(this.down_&&this.isMoving_(e));this.dispatchEvent(new Hn(xe.POINTERMOVE,this.map_,e,t))}handleTouchMove_(e){let t=this.originalPointerMoveEvent_;(!t||t.defaultPrevented)&&(typeof e.cancelable!="boolean"||e.cancelable===!0)&&e.preventDefault()}isMoving_(e){return this.dragging_||Math.abs(e.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(e.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(ce(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(K.TOUCHMOVE,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(ce(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(ce),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},qx=qm;var hn={POSTRENDER:"postrender",MOVESTART:"movestart",MOVEEND:"moveend",LOADSTART:"loadstart",LOADEND:"loadend"};var Ct={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"};var hc=1/0,Km=class{constructor(e,t){this.priorityFunction_=e,this.keyFunction_=t,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,Ln(this.queuedElements_)}dequeue(){let e=this.elements_,t=this.priorities_,n=e[0];e.length==1?(e.length=0,t.length=0):(e[0]=e.pop(),t[0]=t.pop(),this.siftUp_(0));let r=this.keyFunction_(n);return delete this.queuedElements_[r],n}enqueue(e){he(!(this.keyFunction_(e)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");let t=this.priorityFunction_(e);return t!=hc?(this.elements_.push(e),this.priorities_.push(t),this.queuedElements_[this.keyFunction_(e)]=!0,this.siftDown_(0,this.elements_.length-1),!0):!1}getCount(){return this.elements_.length}getLeftChildIndex_(e){return e*2+1}getRightChildIndex_(e){return e*2+2}getParentIndex_(e){return e-1>>1}heapify_(){let e;for(e=(this.elements_.length>>1)-1;e>=0;e--)this.siftUp_(e)}isEmpty(){return this.elements_.length===0}isKeyQueued(e){return e in this.queuedElements_}isQueued(e){return this.isKeyQueued(this.keyFunction_(e))}siftUp_(e){let t=this.elements_,n=this.priorities_,r=t.length,o=t[e],s=n[e],a=e;for(;e>1;){let l=this.getLeftChildIndex_(e),A=this.getRightChildIndex_(e),c=Ae;){let a=this.getParentIndex_(t);if(r[a]>s)n[t]=n[a],r[t]=r[a],t=a;else break}n[t]=o,r[t]=s}reprioritize(){let e=this.priorityFunction_,t=this.elements_,n=this.priorities_,r=0,o=t.length,s,a,l;for(a=0;ae.apply(null,n),n=>n[0].getKey()),this.boundHandleTileChange_=this.handleTileChange.bind(this),this.tileChangeCallback_=t,this.tilesLoading_=0,this.tilesLoadingKeys_={}}enqueue(e){let t=super.enqueue(e);return t&&e[0].addEventListener(K.CHANGE,this.boundHandleTileChange_),t}getTilesLoading(){return this.tilesLoading_}handleTileChange(e){let t=e.target,n=t.getState();if(n===V.LOADED||n===V.ERROR||n===V.EMPTY){n!==V.ERROR&&t.removeEventListener(K.CHANGE,this.boundHandleTileChange_);let r=t.getKey();r in this.tilesLoadingKeys_&&(delete this.tilesLoadingKeys_[r],--this.tilesLoading_),this.tileChangeCallback_()}}loadMoreTiles(e,t){let n=0;for(;this.tilesLoading_0;){let r=this.dequeue()[0],o=r.getKey();r.getState()===V.IDLE&&!(o in this.tilesLoadingKeys_)&&(this.tilesLoadingKeys_[o]=!0,++this.tilesLoading_,++n,r.load())}}},Xx=Xm;function jx(i,e,t,n,r){if(!i||!(t in i.wantedTiles))return hc;if(!i.wantedTiles[t][e.getKey()])return hc;let o=i.viewState.center,s=n[0]-o[0],a=n[1]-o[1];return 65536*Math.log(r)+Math.sqrt(s*s+a*a)/r}var jm=class extends St{constructor(e){super();let t=e.element;t&&!e.target&&!t.style.pointerEvents&&(t.style.pointerEvents="auto"),this.element=t||null,this.target_=null,this.map_=null,this.listenerKeys=[],e.render&&(this.render=e.render),e.target&&this.setTarget(e.target)}disposeInternal(){this.element?.remove(),super.disposeInternal()}getMap(){return this.map_}setMap(e){this.map_&&this.element?.remove();for(let t=0,n=this.listenerKeys.length;tr.getAttributions(e)));if(this.attributions_!==void 0&&(Array.isArray(this.attributions_)?this.attributions_.forEach(r=>n.add(r)):n.add(this.attributions_)),!this.overrideCollapsible_){let r=!t.some(o=>o.getSource()?.getAttributionsCollapsible()===!1);this.setCollapsible(r)}return Array.from(n)}async updateElement_(e){if(!e){this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1);return}let t=await Promise.all(this.collectSourceAttributions_(e).map(r=>Sa(()=>r))),n=t.length>0;if(this.renderedVisible_!=n&&(this.element.style.display=n?"":"none",this.renderedVisible_=n),!Mt(t,this.renderedAttributions_)){fu(this.ulElement_);for(let r=0,o=t.length;r0&&n%(2*Math.PI)!==0?t.animate({rotation:0,duration:this.duration_,easing:ln}):t.setRotation(0))}render(e){let t=e.frameState;if(!t)return;let n=t.viewState.rotation;if(n!=this.rotation_){let r="rotate("+n+"rad)";if(this.autoHide_){let o=this.element.classList.contains(KA);!o&&n===0?this.element.classList.add(KA):o&&n!==0&&this.element.classList.remove(KA)}this.label_.style.transform=r}this.rotation_=n}},fc=Jm;var $m=class extends ut{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target});let t=e.className!==void 0?e.className:"ol-zoom",n=e.delta!==void 0?e.delta:1,r=e.zoomInClassName!==void 0?e.zoomInClassName:t+"-in",o=e.zoomOutClassName!==void 0?e.zoomOutClassName:t+"-out",s=e.zoomInLabel!==void 0?e.zoomInLabel:"+",a=e.zoomOutLabel!==void 0?e.zoomOutLabel:"\u2013",l=e.zoomInTipLabel!==void 0?e.zoomInTipLabel:"Zoom in",A=e.zoomOutTipLabel!==void 0?e.zoomOutTipLabel:"Zoom out",c=document.createElement("button");c.className=r,c.setAttribute("type","button"),c.title=l,c.appendChild(typeof s=="string"?document.createTextNode(s):s),c.addEventListener(K.CLICK,this.handleClick_.bind(this,n),!1);let h=document.createElement("button");h.className=o,h.setAttribute("type","button"),h.title=A,h.appendChild(typeof a=="string"?document.createTextNode(a):a),h.addEventListener(K.CLICK,this.handleClick_.bind(this,-n),!1);let u=t+" "+qt+" "+nn,f=this.element;f.className=u,f.appendChild(c),f.appendChild(h),this.duration_=e.duration!==void 0?e.duration:250}handleClick_(e,t){t.preventDefault(),this.zoomByDelta_(e)}zoomByDelta_(e){let n=this.getMap().getView();if(!n)return;let r=n.getZoom();if(r!==void 0){let o=n.getConstrainedZoom(r+e);this.duration_>0?(n.getAnimating()&&n.cancelAnimations(),n.animate({zoom:o,duration:this.duration_,easing:ln})):n.setZoom(o)}}},gc=$m;function Wx(i){i=i||{};let e=new bt;return(i.zoom!==void 0?i.zoom:!0)&&e.push(new gc(i.zoomOptions)),(i.rotate!==void 0?i.rotate:!0)&&e.push(new fc(i.rotateOptions)),(i.attribution!==void 0?i.attribution:!0)&&e.push(new uc(i.attributionOptions)),e}var dc={ACTIVE:"active"};var Zm=class extends St{constructor(e){super(),this.on,this.once,this.un,e&&e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(dc.ACTIVE)}getMap(){return this.map_}handleEvent(e){return!0}setActive(e){this.set(dc.ACTIVE,e)}setMap(e){this.map_=e}};function Jx(i,e,t){let n=i.getCenterInternal();if(n){let r=[n[0]+e[0],n[1]+e[1]];i.animateInternal({duration:t!==void 0?t:250,easing:Px,center:i.getConstrainedCenter(r)})}}function cl(i,e,t,n){let r=i.getZoom();if(r===void 0)return;let o=i.getConstrainedZoom(r+e),s=i.getResolutionForZoom(o);i.getAnimating()&&i.cancelAnimations(),i.animate({resolution:s,anchor:t,duration:n!==void 0?n:250,easing:ln})}var qn=Zm;var e0=class extends qn{constructor(e){super(),e=e||{},this.delta_=e.delta?e.delta:1,this.duration_=e.duration!==void 0?e.duration:250}handleEvent(e){let t=!1;if(e.type==xe.DBLCLICK){let n=e.originalEvent,r=e.map,o=e.coordinate,s=n.shiftKey?-this.delta_:this.delta_,a=r.getView();cl(a,s,o,this.duration_),n.preventDefault(),t=!0}return!t}},$x=e0;function pc(i){let e=arguments;return function(t){let n=!0;for(let r=0,o=e.length;r0}}else if(e.type==xe.POINTERDOWN){let n=this.handleDownEvent(e);this.handlingDownUpSequence=n,t=this.stopDown(n)}else e.type==xe.POINTERMOVE&&this.handleMoveEvent(e);return!t}handleMoveEvent(e){}handleUpEvent(e){return!1}stopDown(e){return e}updateTrackedPointers_(e){e.activePointers&&(this.targetPointers=e.activePointers)}};function ul(i){let e=i.length,t=0,n=0;for(let r=0;r0&&this.condition_(e)){let n=e.map.getView();return this.lastCentroid=null,n.getAnimating()&&n.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}},rB=i0;var n0=class extends Bi{constructor(e){e=e||{},super({stopDown:ji}),this.condition_=e.condition?e.condition:eB,this.lastAngle_=void 0,this.duration_=e.duration!==void 0?e.duration:250}handleDragEvent(e){if(!qu(e))return;let t=e.map,n=t.getView();if(n.getConstraints().rotation===Al)return;let r=t.getSize(),o=e.pixel,s=Math.atan2(r[1]/2-o[1],o[0]-r[0]/2);if(this.lastAngle_!==void 0){let a=s-this.lastAngle_;n.adjustRotationInternal(-a)}this.lastAngle_=s}handleUpEvent(e){return qu(e)?(e.map.getView().endInteraction(this.duration_),!1):!0}handleDownEvent(e){return qu(e)&&Yu(e)&&this.condition_(e)?(e.map.getView().beginInteraction(),this.lastAngle_=void 0,!0):!1}},oB=n0;var r0=class extends xr{constructor(e){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){let e=this.startPixel_,t=this.endPixel_,n="px",r=this.element_.style;r.left=Math.min(e[0],t[0])+n,r.top=Math.min(e[1],t[1])+n,r.width=Math.abs(t[0]-e[0])+n,r.height=Math.abs(t[1]-e[1])+n}setMap(e){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);let t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=e,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(e,t){this.startPixel_=e,this.endPixel_=t,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){if(!this.map_)return;let e=this.startPixel_,t=this.endPixel_,r=[e,[e[0],t[1]],t,[t[0],e[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);r[4]=r[0].slice(),this.geometry_?this.geometry_.setCoordinates([r]):this.geometry_=new Dt([r])}getGeometry(){return this.geometry_}},sB=r0;var fl={BOXSTART:"boxstart",BOXDRAG:"boxdrag",BOXEND:"boxend",BOXCANCEL:"boxcancel"},ia=class extends Pe{constructor(e,t,n){super(e),this.coordinate=t,this.mapBrowserEvent=n}},o0=class extends Bi{constructor(e){super(),this.on,this.once,this.un,e=e??{},this.box_=new sB(e.className||"ol-dragbox"),this.minArea_=e.minArea??64,e.onBoxEnd&&(this.onBoxEnd=e.onBoxEnd),this.startPixel_=null,this.condition_=e.condition??Yu,this.boxEndCondition_=e.boxEndCondition??this.defaultBoxEndCondition}defaultBoxEndCondition(e,t,n){let r=n[0]-t[0],o=n[1]-t[1];return r*r+o*o>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(e){this.startPixel_&&(this.box_.setPixels(this.startPixel_,e.pixel),this.dispatchEvent(new ia(fl.BOXDRAG,e.coordinate,e)))}handleUpEvent(e){if(!this.startPixel_)return!1;let t=this.boxEndCondition_(e,this.startPixel_,e.pixel);return t&&this.onBoxEnd(e),this.dispatchEvent(new ia(t?fl.BOXEND:fl.BOXCANCEL,e.coordinate,e)),this.box_.setMap(null),this.startPixel_=null,!1}handleDownEvent(e){return this.condition_(e)?(this.startPixel_=e.pixel,this.box_.setMap(e.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new ia(fl.BOXSTART,e.coordinate,e)),!0):!1}onBoxEnd(e){}setActive(e){e||(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new ia(fl.BOXCANCEL,this.startPixel_,null)),this.startPixel_=null)),super.setActive(e)}setMap(e){this.getMap()&&(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new ia(fl.BOXCANCEL,this.startPixel_,null)),this.startPixel_=null)),super.setMap(e)}},aB=o0;var s0=class extends aB{constructor(e){e=e||{};let t=e.condition?e.condition:Vu;super({condition:t,className:e.className||"ol-dragzoom",minArea:e.minArea}),this.duration_=e.duration!==void 0?e.duration:200,this.out_=e.out!==void 0?e.out:!1}onBoxEnd(e){let n=this.getMap().getView(),r=this.getGeometry();if(this.out_){let o=n.rotatedExtentForGeometry(r),s=n.getResolutionForExtentInternal(o),a=n.getResolution()/s;r=r.clone(),r.scale(a*a)}n.fitInternal(r,{duration:this.duration_,easing:ln})}},lB=s0;var ms={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",DOWN:"ArrowDown"};var a0=class extends qn{constructor(e){super(),e=e||{},this.defaultCondition_=function(t){return hl(t)&&Hu(t)},this.condition_=e.condition!==void 0?e.condition:this.defaultCondition_,this.duration_=e.duration!==void 0?e.duration:100,this.pixelDelta_=e.pixelDelta!==void 0?e.pixelDelta:128}handleEvent(e){let t=!1;if(e.type==K.KEYDOWN){let n=e.originalEvent,r=n.key;if(this.condition_(e)&&(r==ms.DOWN||r==ms.LEFT||r==ms.RIGHT||r==ms.UP)){let s=e.map.getView(),a=s.getResolution()*this.pixelDelta_,l=0,A=0;r==ms.DOWN?A=-a:r==ms.LEFT?l=-a:r==ms.RIGHT?l=a:A=a;let c=[l,A];ka(c,s.getRotation()),Jx(s,c,this.duration_),n.preventDefault(),t=!0}}return!t}},AB=a0;var l0=class extends qn{constructor(e){super(),e=e||{},this.condition_=e.condition?e.condition:function(t){return!nB(t)&&Hu(t)},this.delta_=e.delta?e.delta:1,this.duration_=e.duration!==void 0?e.duration:100}handleEvent(e){let t=!1;if(e.type==K.KEYDOWN||e.type==K.KEYPRESS){let n=e.originalEvent,r=n.key;if(this.condition_(e)&&(r==="+"||r==="-")){let o=e.map,s=r==="+"?this.delta_:-this.delta_,a=o.getView();cl(a,s,void 0,this.duration_),n.preventDefault(),t=!0}}return!t}},cB=l0;var A0=class extends qn{constructor(e){e=e||{},super(e),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=e.maxDelta!==void 0?e.maxDelta:1,this.duration_=e.duration!==void 0?e.duration:250,this.timeout_=e.timeout!==void 0?e.timeout:80,this.useAnchor_=e.useAnchor!==void 0?e.useAnchor:!0,this.constrainResolution_=e.constrainResolution!==void 0?e.constrainResolution:!1;let t=e.condition?e.condition:ta;this.condition_=e.onFocusOnly?pc(zu,t):t,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;let e=this.getMap();if(!e)return;e.getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null)}handleEvent(e){if(!this.condition_(e)||e.type!==K.WHEEL)return!0;let n=e.map,r=e.originalEvent;r.preventDefault(),this.useAnchor_&&(this.lastAnchor_=e.pixel);let o;if(e.type==K.WHEEL&&(o=r.deltaY,r.deltaMode===WheelEvent.DOM_DELTA_LINE&&(o*=40)),o===0)return!1;this.lastDelta_=o;let s=Date.now();this.startTime_===void 0&&(this.startTime_=s),(!this.mode_||s-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(o)<4?"trackpad":"wheel");let a=n.getView();if(this.mode_==="trackpad"&&!(a.getConstrainResolution()||this.constrainResolution_))return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(a.getAnimating()&&a.cancelAnimations(),a.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),a.adjustZoom(-o/this.deltaPerZoom_,this.lastAnchor_?n.getCoordinateFromPixel(this.lastAnchor_):null),this.startTime_=s,!1;this.totalDelta_+=o;let l=Math.max(this.timeout_-(s-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,n),l),!1}handleWheelZoom_(e){let t=e.getView();t.getAnimating()&&t.cancelAnimations();let n=-Ee(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(t.getConstrainResolution()||this.constrainResolution_)&&(n=n?n>0?1:-1:0),cl(t,n,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(e){this.useAnchor_=e,e||(this.lastAnchor_=null)}},hB=A0;var c0=class extends Bi{constructor(e){e=e||{};let t=e;t.stopDown||(t.stopDown=ji),super(t),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=e.threshold!==void 0?e.threshold:.3,this.duration_=e.duration!==void 0?e.duration:250}handleDragEvent(e){let t=0,n=this.targetPointers[0],r=this.targetPointers[1],o=Math.atan2(r.clientY-n.clientY,r.clientX-n.clientX);if(this.lastAngle_!==void 0){let l=o-this.lastAngle_;this.rotationDelta_+=l,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),t=l}this.lastAngle_=o;let s=e.map,a=s.getView();a.getConstraints().rotation!==Al&&(this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(ul(this.targetPointers))),this.rotating_&&(s.render(),a.adjustRotationInternal(t,this.anchor_)))}handleUpEvent(e){return this.targetPointers.length<2?(e.map.getView().endInteraction(this.duration_),!1):!0}handleDownEvent(e){if(this.targetPointers.length>=2){let t=e.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},uB=c0;var h0=class extends Bi{constructor(e){e=e||{};let t=e;t.stopDown||(t.stopDown=ji),super(t),this.anchor_=null,this.duration_=e.duration!==void 0?e.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(e){let t=1,n=this.targetPointers[0],r=this.targetPointers[1],o=n.clientX-r.clientX,s=n.clientY-r.clientY,a=Math.sqrt(o*o+s*s);this.lastDistance_!==void 0&&(t=this.lastDistance_/a),this.lastDistance_=a;let l=e.map,A=l.getView();t!=1&&(this.lastScaleDelta_=t),this.anchor_=l.getCoordinateFromPixelInternal(l.getEventPixel(ul(this.targetPointers))),l.render(),A.adjustResolutionInternal(t,this.anchor_)}handleUpEvent(e){if(this.targetPointers.length<2){let n=e.map.getView(),r=this.lastScaleDelta_>1?1:-1;return n.endInteraction(this.duration_,r),!1}return!0}handleDownEvent(e){if(this.targetPointers.length>=2){let t=e.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},fB=h0;function gB(i){i=i||{};let e=new bt,t=new Hx(-.005,.05,100);return(i.altShiftDragRotate!==void 0?i.altShiftDragRotate:!0)&&e.push(new oB),(i.doubleClickZoom!==void 0?i.doubleClickZoom:!0)&&e.push(new $x({delta:i.zoomDelta,duration:i.zoomDuration})),(i.dragPan!==void 0?i.dragPan:!0)&&e.push(new rB({onFocusOnly:i.onFocusOnly,kinetic:t})),(i.pinchRotate!==void 0?i.pinchRotate:!0)&&e.push(new uB),(i.pinchZoom!==void 0?i.pinchZoom:!0)&&e.push(new fB({duration:i.zoomDuration})),(i.keyboard!==void 0?i.keyboard:!0)&&(e.push(new AB),e.push(new cB({delta:i.zoomDelta,duration:i.zoomDuration}))),(i.mouseWheelZoom!==void 0?i.mouseWheelZoom:!0)&&e.push(new hB({onFocusOnly:i.onFocusOnly,duration:i.zoomDuration})),(i.shiftDragZoom!==void 0?i.shiftDragZoom:!0)&&e.push(new lB({duration:i.zoomDuration})),e}var ur=class extends Pe{constructor(e,t){super(e),this.layer=t}},u0={LAYERS:"layers"},f0=class i extends Uu{constructor(e){e=e||{};let t=Object.assign({},e);delete t.layers;let n=e.layers;super(t),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(u0.LAYERS,this.handleLayersChanged_),n?Array.isArray(n)?n=new bt(n.slice(),{unique:!0}):he(typeof n.getArray=="function","Expected `layers` to be an array or a `Collection`"):n=new bt(void 0,{unique:!0}),this.setLayers(n)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(ce),this.layersListenerKeys_.length=0;let e=this.getLayers();this.layersListenerKeys_.push(ee(e,pt.ADD,this.handleLayersAdd_,this),ee(e,pt.REMOVE,this.handleLayersRemove_,this));for(let n in this.listenerKeys_)this.listenerKeys_[n].forEach(ce);Ln(this.listenerKeys_);let t=e.getArray();for(let n=0,r=t.length;n=0;--y){let w=p[y],T=w.layer;if(T.hasRenderer()&&cc(w,c)&&a.call(l,T)){let E=T.getRenderer(),x=T.getSource();if(E&&x){let B=x.getWrapX()?f:e,R=h.bind(null,w.managed);m[0]=B[0]+g[_][0],m[1]=B[1]+g[_][1],A=E.forEachFeatureAtCoordinate(m,t,n,R,I)}if(A)return A}}if(I.length===0)return;let C=1/I.length;return I.forEach((_,y)=>_.distanceSq+=y*C),I.sort((_,y)=>_.distanceSq-y.distanceSq),I.some(_=>A=_.callback(_.feature,_.layer,_.geometry)),A}hasFeatureAtCoordinate(e,t,n,r,o,s){return this.forEachFeatureAtCoordinate(e,t,n,r,bi,this,o,s)!==void 0}getMap(){return this.map_}renderFrame(e){ne()}scheduleExpireIconCache(e){Ci.canExpireCache()&&e.postRenderFunctions.push($b)}};function $b(i,e){Ci.expire()}var dB=g0;var d0=class extends dB{constructor(e){super(e),this.fontChangeListenerKey_=ee(Br,In.PROPERTYCHANGE,e.redrawText,e),this.element_=document.createElement("div");let t=this.element_.style;t.position="absolute",t.width="100%",t.height="100%",t.zIndex="0",this.element_.className=qt+" ol-layers";let n=e.getViewport();n.insertBefore(this.element_,n.firstChild||null),this.children_=[],this.renderedVisible_=!0}dispatchRenderEvent(e,t){let n=this.getMap();if(n.hasListener(e)){let r=new fs(e,void 0,t);n.dispatchEvent(r)}}disposeInternal(){ce(this.fontChangeListenerKey_),this.element_.remove(),super.disposeInternal()}renderFrame(e){if(!e){this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1);return}this.calculateMatrices2D(e),this.dispatchRenderEvent(mt.PRECOMPOSE,e);let t=e.layerStatesArray.sort((a,l)=>a.zIndex-l.zIndex);t.some(a=>a.layer instanceof Vn&&a.layer.getDeclutter())&&(e.declutter={});let r=e.viewState;this.children_.length=0;let o=[],s=null;for(let a=0,l=t.length;a=0;--n){let r=t[n],o=r.layer;o.getDeclutter()&&o.renderDeclutter(e,r)}t.forEach(n=>n.layer.renderDeferred(e))}}},pB=d0;function mB(i){if(i instanceof hr){i.setMapInternal(null);return}i instanceof mc&&i.getLayers().forEach(mB)}function EB(i,e){if(i instanceof hr){i.setMapInternal(e);return}if(i instanceof mc){let t=i.getLayers().getArray();for(let n=0,r=t.length;nthis.updateSize()),this.controls=t.controls||Wx(),this.interactions=t.interactions||gB({onFocusOnly:!0}),this.overlays_=t.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new Xx(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(Ct.LAYERGROUP,this.handleLayerGroupChanged_),this.addChangeListener(Ct.VIEW,this.handleViewChanged_),this.addChangeListener(Ct.SIZE,this.handleSizeChanged_),this.addChangeListener(Ct.TARGET,this.handleTargetChanged_),this.setProperties(t.values);let n=this;e.view&&!(e.view instanceof xi)&&e.view.then(function(r){n.setView(new xi(r))}),this.controls.addEventListener(pt.ADD,r=>{r.element.setMap(this)}),this.controls.addEventListener(pt.REMOVE,r=>{r.element.setMap(null)}),this.interactions.addEventListener(pt.ADD,r=>{r.element.setMap(this)}),this.interactions.addEventListener(pt.REMOVE,r=>{r.element.setMap(null)}),this.overlays_.addEventListener(pt.ADD,r=>{this.addOverlayInternal_(r.element)}),this.overlays_.addEventListener(pt.REMOVE,r=>{let o=r.element.getId();o!==void 0&&delete this.overlayIdIndex_[o.toString()],r.element.setMap(null)}),this.controls.forEach(r=>{r.setMap(this)}),this.interactions.forEach(r=>{r.setMap(this)}),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(e){this.getControls().push(e)}addInteraction(e){this.getInteractions().push(e)}addLayer(e){this.getLayerGroup().getLayers().push(e)}handleLayerAdd_(e){EB(e.layer,this)}addOverlay(e){this.getOverlays().push(e)}addOverlayInternal_(e){let t=e.getId();t!==void 0&&(this.overlayIdIndex_[t.toString()]=e),e.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(e,t,n){if(!this.frameState_||!this.renderer_)return;let r=this.getCoordinateFromPixelInternal(e);n=n!==void 0?n:{};let o=n.hitTolerance!==void 0?n.hitTolerance:0,s=n.layerFilter!==void 0?n.layerFilter:bi,a=n.checkWrapped!==!1;return this.renderer_.forEachFeatureAtCoordinate(r,this.frameState_,o,a,t,null,s,null)}getFeaturesAtPixel(e,t){let n=[];return this.forEachFeatureAtPixel(e,function(r){n.push(r)},t),n}getAllLayers(){let e=[];function t(n){n.forEach(function(r){r instanceof mc?t(r.getLayers()):e.push(r)})}return t(this.getLayers()),e}hasFeatureAtPixel(e,t){if(!this.frameState_||!this.renderer_)return!1;let n=this.getCoordinateFromPixelInternal(e);t=t!==void 0?t:{};let r=t.layerFilter!==void 0?t.layerFilter:bi,o=t.hitTolerance!==void 0?t.hitTolerance:0,s=t.checkWrapped!==!1;return this.renderer_.hasFeatureAtCoordinate(n,this.frameState_,o,s,r,null)}getEventCoordinate(e){return this.getCoordinateFromPixel(this.getEventPixel(e))}getEventCoordinateInternal(e){return this.getCoordinateFromPixelInternal(this.getEventPixel(e))}getEventPixel(e){let n=this.viewport_.getBoundingClientRect(),r=this.getSize(),o=n.width/r[0],s=n.height/r[1],a="changedTouches"in e?e.changedTouches[0]:e;return[(a.clientX-n.left)/o,(a.clientY-n.top)/s]}getTarget(){return this.get(Ct.TARGET)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(e){return Zi(this.getCoordinateFromPixelInternal(e),this.getView().getProjection())}getCoordinateFromPixelInternal(e){let t=this.frameState_;return t?be(t.pixelToCoordinateTransform,e.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(e){let t=this.overlayIdIndex_[e.toString()];return t!==void 0?t:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(Ct.LAYERGROUP)}setLayers(e){let t=this.getLayerGroup();if(e instanceof bt){t.setLayers(e);return}let n=t.getLayers();n.clear(),n.extend(e)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){let e=this.getLayerGroup().getLayerStatesArray();for(let t=0,n=e.length;t=0;o--){let s=r[o];if(s.getMap()!==this||!s.getActive()||!this.getTargetElement())continue;if(!s.handleEvent(e)||e.propagationStopped)break}}}handlePostRender(){let e=this.frameState_,t=this.tileQueue_;if(!t.isEmpty()){let r=this.maxTilesLoading_,o=r;if(e){let s=e.viewHints;if(s[Ne.ANIMATING]||s[Ne.INTERACTING]){let a=Date.now()-e.time>8;r=a?0:8,o=a?0:2}}t.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()},0))}setLayerGroup(e){let t=this.getLayerGroup();t&&this.handleLayerRemove_(new ur("removelayer",t)),this.set(Ct.LAYERGROUP,e)}setSize(e){this.set(Ct.SIZE,e)}setTarget(e){this.set(Ct.TARGET,e)}setView(e){if(!e||e instanceof xi){this.set(Ct.VIEW,e);return}this.set(Ct.VIEW,new xi);let t=this;e.then(function(n){t.setView(new xi(n))})}updateSize(){let e=this.getTargetElement(),t;if(e){let r=getComputedStyle(e),o=e.offsetWidth-parseFloat(r.borderLeftWidth)-parseFloat(r.paddingLeft)-parseFloat(r.paddingRight)-parseFloat(r.borderRightWidth),s=e.offsetHeight-parseFloat(r.borderTopWidth)-parseFloat(r.paddingTop)-parseFloat(r.paddingBottom)-parseFloat(r.borderBottomWidth);!isNaN(o)&&!isNaN(s)&&(t=[Math.max(0,o),Math.max(0,s)],!jp(t)&&(e.offsetWidth||e.offsetHeight||e.getClientRects().length)&&Kh("No map visible because the map container's width or height are 0."))}let n=this.getSize();t&&(!n||!Mt(t,n))&&(this.setSize(t),this.updateViewportSize_(t))}updateViewportSize_(e){let t=this.getView();t&&t.setViewportSize(e)}};function Zb(i){let e=null;i.keyboardEventTarget!==void 0&&(e=typeof i.keyboardEventTarget=="string"?document.getElementById(i.keyboardEventTarget):i.keyboardEventTarget);let t={},n=i.layers&&typeof i.layers.getLayers=="function"?i.layers:new mc({layers:i.layers});t[Ct.LAYERGROUP]=n,t[Ct.TARGET]=i.target,t[Ct.VIEW]=i.view instanceof xi?i.view:new xi;let r;i.controls!==void 0&&(Array.isArray(i.controls)?r=new bt(i.controls.slice()):(he(typeof i.controls.getArray=="function","Expected `controls` to be an array or an `ol/Collection.js`"),r=i.controls));let o;i.interactions!==void 0&&(Array.isArray(i.interactions)?o=new bt(i.interactions.slice()):(he(typeof i.interactions.getArray=="function","Expected `interactions` to be an array or an `ol/Collection.js`"),o=i.interactions));let s;return i.overlays!==void 0?Array.isArray(i.overlays)?s=new bt(i.overlays.slice()):(he(typeof i.overlays.getArray=="function","Expected `overlays` to be an array or an `ol/Collection.js`"),s=i.overlays):s=new bt,{controls:r,interactions:o,keyboardEventTarget:e,overlays:s,values:t}}var Ec=p0;var wi={ELEMENT:"element",MAP:"map",OFFSET:"offset",POSITION:"position",POSITIONING:"positioning"},m0=class extends St{constructor(e){super(),this.on,this.once,this.un,this.options=e,this.id=e.id,this.insertFirst=e.insertFirst!==void 0?e.insertFirst:!0,this.stopEvent=e.stopEvent!==void 0?e.stopEvent:!0,this.element=document.createElement("div"),this.element.className=e.className!==void 0?e.className:"ol-overlay-container "+W_,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=e.autoPan===!0?{}:e.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(wi.ELEMENT,this.handleElementChanged),this.addChangeListener(wi.MAP,this.handleMapChanged),this.addChangeListener(wi.OFFSET,this.handleOffsetChanged),this.addChangeListener(wi.POSITION,this.handlePositionChanged),this.addChangeListener(wi.POSITIONING,this.handlePositioningChanged),e.element!==void 0&&this.setElement(e.element),this.setOffset(e.offset!==void 0?e.offset:[0,0]),this.setPositioning(e.positioning||"top-left"),e.position!==void 0&&this.setPosition(e.position)}getElement(){return this.get(wi.ELEMENT)}getId(){return this.id}getMap(){return this.get(wi.MAP)||null}getOffset(){return this.get(wi.OFFSET)}getPosition(){return this.get(wi.POSITION)}getPositioning(){return this.get(wi.POSITIONING)}handleElementChanged(){fu(this.element);let e=this.getElement();e&&this.element.appendChild(e)}handleMapChanged(){this.mapPostrenderListenerKey&&(this.element?.remove(),ce(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);let e=this.getMap();if(e){this.mapPostrenderListenerKey=ee(e,hn.POSTRENDER,this.render,this),this.updatePixelPosition();let t=this.stopEvent?e.getOverlayContainerStopEvent():e.getOverlayContainer();this.insertFirst?t.insertBefore(this.element,t.childNodes[0]||null):t.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(e){this.set(wi.ELEMENT,e)}setMap(e){this.set(wi.MAP,e)}setOffset(e){this.set(wi.OFFSET,e)}setPosition(e){this.set(wi.POSITION,e)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(e){let t=this.getMap();if(!t||!t.getTargetElement()||!this.get(wi.POSITION))return;let n=this.getRect(t.getTargetElement(),t.getSize()),r=this.getElement(),o=this.getRect(r,[N_(r),G_(r)]);e=e||{};let s=e.margin===void 0?20:e.margin;if(!Fi(n,o)){let a=o[0]-n[0],l=n[2]-o[2],A=o[1]-n[1],c=n[3]-o[3],h=[0,0];if(a<0?h[0]=a-s:l<0&&(h[0]=Math.abs(l)+s),A<0?h[1]=A-s:c<0&&(h[1]=Math.abs(c)+s),h[0]!==0||h[1]!==0){let u=t.getView().getCenterInternal(),f=t.getPixelFromCoordinateInternal(u);if(!f)return;let g=[f[0]+h[0],f[1]+h[1]],p=e.animation||{};t.getView().animateInternal({center:t.getCoordinateFromPixelInternal(g),duration:p.duration,easing:p.easing})}}}getRect(e,t){let n=e.getBoundingClientRect(),r=n.left+window.pageXOffset,o=n.top+window.pageYOffset;return[r,o,r+t[0],o+t[1]]}setPositioning(e){this.set(wi.POSITIONING,e)}setVisible(e){this.rendered.visible!==e&&(this.element.style.display=e?"":"none",this.rendered.visible=e)}updatePixelPosition(){let e=this.getMap(),t=this.getPosition();if(!e||!e.isRendered()||!t){this.setVisible(!1);return}let n=e.getPixelFromCoordinate(t),r=e.getSize();this.updateRenderedPosition(n,r)}updateRenderedPosition(e,t){let n=this.element.style,r=this.getOffset(),o=this.getPositioning();this.setVisible(!0);let s=Math.round(e[0]+r[0])+"px",a=Math.round(e[1]+r[1])+"px",l="0%",A="0%";o=="bottom-right"||o=="center-right"||o=="top-right"?l="-100%":(o=="bottom-center"||o=="center-center"||o=="top-center")&&(l="-50%"),o=="bottom-left"||o=="bottom-center"||o=="bottom-right"?A="-100%":(o=="center-left"||o=="center-center"||o=="center-right")&&(A="-50%");let c=`translate(${l}, ${A}) translate(${s}, ${a})`;this.rendered.transform_!=c&&(this.rendered.transform_=c,n.transform=c)}getOptions(){return this.options}},Xu=m0;var ju=class{constructor(e,t,n,r){this.minX=e,this.maxX=t,this.minY=n,this.maxY=r}contains(e){return this.containsXY(e[1],e[2])}containsTileRange(e){return this.minX<=e.minX&&e.maxX<=this.maxX&&this.minY<=e.minY&&e.maxY<=this.maxY}containsXY(e,t){return this.minX<=e&&e<=this.maxX&&this.minY<=t&&t<=this.maxY}equals(e){return this.minX==e.minX&&this.minY==e.minY&&this.maxX==e.maxX&&this.maxY==e.maxY}extend(e){e.minXthis.maxX&&(this.maxX=e.maxX),e.minYthis.maxY&&(this.maxY=e.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(e){return this.minX<=e.maxX&&this.maxX>=e.minX&&this.minY<=e.maxY&&this.maxY>=e.minY}};function na(i,e,t,n,r){return r!==void 0?(r.minX=i,r.maxX=e,r.minY=t,r.maxY=n,r):new ju(i,e,t,n)}var gl=ju;var IB=[],E0=class extends br{constructor(e,t,n,r,o){super(e,t,{transition:0}),this.context_=null,this.executorGroups={},this.loadingSourceTiles=0,this.hitDetectionImageData={},this.replayState_={},this.sourceTiles=[],this.errorTileKeys={},this.wantedResolution,this.getSourceTiles=r.bind(void 0,this),this.removeSourceTiles_=o,this.wrappedTileCoord=n}getContext(){return this.context_||(this.context_=Re(1,1,IB)),this.context_}hasContext(){return!!this.context_}getImage(){return this.hasContext()?this.getContext().canvas:null}getReplayState(e){let t=W(e);return t in this.replayState_||(this.replayState_[t]={dirty:!1,renderedRenderOrder:null,renderedResolution:NaN,renderedRevision:-1,renderedTileResolution:NaN,renderedTileRevision:-1,renderedTileZ:-1}),this.replayState_[t]}load(){this.getSourceTiles()}release(){this.context_&&(oo(this.context_),IB.push(this.context_.canvas),this.context_=null),this.removeSourceTiles_(this),this.sourceTiles.length=0,super.release()}},CB=E0;var I0=class extends br{constructor(e,t,n,r,o,s){super(e,t,s),this.extent=null,this.format_=r,this.features_=null,this.loader_,this.projection=null,this.resolution,this.tileLoadFunction_=o,this.url_=n,this.key=n}getTileUrl(){return this.url_}getFormat(){return this.format_}getFeatures(){return this.features_}load(){this.state==V.IDLE&&(this.setState(V.LOADING),this.tileLoadFunction_(this,this.url_),this.loader_&&this.loader_(this.extent,this.resolution,this.projection))}onLoad(e,t){this.setFeatures(e)}onError(){this.setState(V.ERROR)}setFeatures(e){this.features_=e,this.setState(V.LOADED)}setLoader(e){this.loader_=e}},yB=I0;var C0=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.featureClass=Oe,this.supportedMediaTypes=null}getReadOptions(e,t){if(t){let n=t.dataProjection?fe(t.dataProjection):this.readProjection(e);t.extent&&n&&n.getUnits()==="tile-pixels"&&(n=fe(n),n.setWorldExtent(t.extent)),t={dataProjection:n,featureProjection:t.featureProjection}}return this.adaptOptions(t)}adaptOptions(e){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection,featureClass:this.featureClass},e)}getType(){return ne()}readFeature(e,t){return ne()}readFeatures(e,t){return ne()}readGeometry(e,t){return ne()}readProjection(e){return ne()}writeFeature(e,t){return ne()}writeFeatures(e,t){return ne()}writeGeometry(e,t){return ne()}},Es=C0;function Ot(i,e,t){let n=t?fe(t.featureProjection):null,r=t?fe(t.dataProjection):null,o=i;if(n&&r&&!On(n,r)){e&&(o=i.clone());let s=e?n:r,a=e?r:n;s.getUnits()==="tile-pixels"?o.transform(s,a):o.applyTransform(ro(s,a))}if(e&&t&&t.decimals!==void 0){let s=Math.pow(10,t.decimals),a=function(l){for(let A=0,c=l.length;Ay0({...i,geometry:o})).flat();let n=t.type==="MultiPolygon"?"Polygon":t.type;if(n==="GeometryCollection"||n==="Circle")throw new Error("Unsupported geometry type: "+n);let r=t.layout.length;return Ot(new yi(n,n==="Polygon"?tD(t.flatCoordinates,t.ends,r):t.flatCoordinates,t.ends?.flat(),r,i.properties||{},i.id).enableSimplifyTransformed(),!1,e)}function Wu(i,e){if(!i)return null;if(Array.isArray(i)){let n=i.map(r=>Wu(r,e));return new Pi(n)}let t=eD[i.type];return Ot(new t(i.flatCoordinates,i.layout||"XY",i.ends),!1,e)}var _0=class extends Es{constructor(){super()}getType(){return"json"}readFeature(e,t){return this.readFeatureFromObject(Ju(e),this.getReadOptions(e,t))}readFeatures(e,t){return this.readFeaturesFromObject(Ju(e),this.getReadOptions(e,t))}readFeatureFromObject(e,t){return ne()}readFeaturesFromObject(e,t){return ne()}readGeometry(e,t){return this.readGeometryFromObject(Ju(e),this.getReadOptions(e,t))}readGeometryFromObject(e,t){return ne()}readProjection(e){return this.readProjectionFromObject(Ju(e))}readProjectionFromObject(e){return ne()}writeFeature(e,t){return JSON.stringify(this.writeFeatureObject(e,t))}writeFeatureObject(e,t){return ne()}writeFeatures(e,t){return JSON.stringify(this.writeFeaturesObject(e,t))}writeFeaturesObject(e,t){return ne()}writeGeometry(e,t){return JSON.stringify(this.writeGeometryObject(e,t))}writeGeometryObject(e,t){return ne()}};function Ju(i){if(typeof i=="string"){let e=JSON.parse(i);return e||null}return i!==null?i:null}var $u=_0;var x0=class extends $u{constructor(e){e=e||{},super(),this.dataProjection=fe(e.dataProjection?e.dataProjection:"EPSG:4326"),e.featureProjection&&(this.defaultFeatureProjection=fe(e.featureProjection)),e.featureClass&&(this.featureClass=e.featureClass),this.geometryName_=e.geometryName,this.extractGeometryName_=e.extractGeometryName,this.supportedMediaTypes=["application/geo+json","application/vnd.geo+json"]}readFeatureFromObject(e,t){let n=null;e.type==="Feature"?n=e:n={type:"Feature",geometry:e,properties:null};let r=w0(n.geometry,t);if(this.featureClass===yi)return y0({geometry:r,id:n.id,properties:n.properties},t);let o=new Oe;return this.geometryName_?o.setGeometryName(this.geometryName_):this.extractGeometryName_&&n.geometry_name&&o.setGeometryName(n.geometry_name),o.setGeometry(Wu(r,t)),"id"in n&&o.setId(n.id),n.properties&&o.setProperties(n.properties,!0),o}readFeaturesFromObject(e,t){let n=e,r=null;if(n.type==="FeatureCollection"){let o=e;r=[];let s=o.features;for(let a=0,l=s.length;a=0;--r){let o=n[r];for(let s=this.dragSegments_.length-1;s>=0;--s)this.dragSegments_[s][0]===o&&this.dragSegments_.splice(s,1);t.remove(o)}}setActive(e){this.vertexFeature_&&!e&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),super.setActive(e)}setMap(e){this.overlay_.setMap(e),super.setMap(e)}getOverlay(){return this.overlay_}handleSourceAdd_(e){e.feature&&this.features_.push(e.feature)}handleSourceRemove_(e){e.feature&&this.features_.remove(e.feature)}handleFeatureAdd_(e){this.addFeature_(e.element)}handleFeatureChange_(e){if(!this.changingFeature_){let t=e.target;this.removeFeature_(t),this.addFeature_(t)}}handleFeatureRemove_(e){this.removeFeature_(e.element)}writePointGeometry_(e,t){let n=t.getCoordinates(),r={feature:e,geometry:t,segment:[n,n]};this.rBush_.insert(t.getExtent(),r)}writeMultiPointGeometry_(e,t){let n=t.getCoordinates();for(let r=0,o=n.length;ro));let t=[e.coordinate[0]+this.delta_[0],e.coordinate[1]+this.delta_[1]],n=[],r=[];for(let o=0,s=this.dragSegments_.length;o=0;--o)this.insertVertex_(n[o],r);this.ignoreNextSingleClick_=!0}return!!this.vertexFeature_}handleUpEvent(e){for(let t=this.dragSegments_.length-1;t>=0;--t){let n=this.dragSegments_[t][0],r=n.geometry;if(r.getType()==="Circle"){let o=r,s=o.getCenter(),a=n.featureSegments[0],l=n.featureSegments[1];a.segment[0]=s,a.segment[1]=s,l.segment[0]=s,l.segment[1]=s,this.rBush_.update(Wo(s),a);let A=o,c=st();if(c){let h=e.map.getView().getProjection();A=A.clone().transform(c,h),A=qa(A).transform(h,c)}this.rBush_.update(A.getExtent(),l)}else this.rBush_.update(At(n.segment),n)}return this.featuresBeingModified_&&(this.dispatchEvent(new Cc(v0.MODIFYEND,this.featuresBeingModified_,e)),this.featuresBeingModified_=null),!1}handlePointerMove_(e){this.lastPixel_=e.pixel,this.handlePointerAtPixel_(e.coordinate)}handlePointerAtPixel_(e){let t=this.getMap(),n=t.getPixelFromCoordinate(e),r=t.getView().getProjection(),o=function(l,A){return BB(e,l,r)-BB(e,A,r)},s,a;if(this.hitDetection_){let l=typeof this.hitDetection_=="object"?A=>A===this.hitDetection_:void 0;t.forEachFeatureAtPixel(n,(A,c,h)=>{h&&h.getType()==="Point"&&(h=new at(Zi(h.getCoordinates(),r)));let u=h||A.getGeometry();if(u&&u.getType()==="Point"&&A instanceof Oe&&this.features_.getArray().includes(A)){a=u;let f=A.getGeometry().getFlatCoordinates().slice(0,2);s=[{feature:A,geometry:a,segment:[f,f]}]}return!0},{layerFilter:l})}if(!s){let l=Bt(Wo(e,xB),r),A=t.getView().getResolution()*this.pixelTolerance_,c=Ei(Vt(l,A,xB),r);s=this.rBush_.getInExtent(c)}if(s&&s.length>0){let l=s.sort(o)[0],A=l.segment,c=wB(e,l,r),h=t.getPixelFromCoordinate(c),u=Pa(n,h);if(a||u<=this.pixelTolerance_){let f={};if(f[W(A)]=!0,this.snapToPointer_||(this.delta_[0]=c[0]-e[0],this.delta_[1]=c[1]-e[1]),l.geometry.getType()==="Circle"&&l.index===Ic)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(c,[l.feature],[l.geometry],this.snappedToVertex_);else{let g=t.getPixelFromCoordinate(A[0]),p=t.getPixelFromCoordinate(A[1]),d=kn(h,g),I=kn(h,p);if(u=Math.sqrt(Math.min(d,I)),this.snappedToVertex_=u<=this.pixelTolerance_,!this.snappedToVertex_&&!this.insertVertexCondition_(this.lastPointerEvent_)){this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null);return}this.snappedToVertex_&&(c=d>I?A[1]:A[0]),this.createOrUpdateVertexFeature_(c,[l.feature],[l.geometry],this.snappedToVertex_);let m={};m[W(l.geometry)]=!0;for(let C=1,_=s.length;C<_;++C){let y=s[C].segment;if(Ht(A[0],y[0])&&Ht(A[1],y[1])||Ht(A[0],y[1])&&Ht(A[1],y[0])){let w=W(s[C].geometry);w in m||(m[w]=!0,f[W(y)]=!0)}else break}}this.vertexSegments_=f;return}}this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null)}insertVertex_(e,t){let n=e.segment,r=e.feature,o=e.geometry,s=e.depth,a=e.index,l;for(;t.lengthn.getType()==="Circle"||n.getType().endsWith("Point")))return!1;let e=this.vertexFeature_.getGeometry().getCoordinates();return this.rBush_.getInExtent(At([e])).some(({segment:n})=>Ht(n[0],e)||Ht(n[1],e))}removePoint(e){if(e&&(e=Ke(e,this.getMap().getView().getProjection()),this.updatePointer_(e)),!this.lastPointerEvent_||this.lastPointerEvent_&&this.lastPointerEvent_.type!=xe.POINTERDRAG){let t=this.lastPointerEvent_;this.willModifyFeatures_(t,this.dragSegments_.map(([r])=>r));let n=this.removeVertex_();return this.featuresBeingModified_&&this.dispatchEvent(new Cc(v0.MODIFYEND,this.featuresBeingModified_,t)),this.featuresBeingModified_=null,n}return!1}removeVertex_(){let e=this.dragSegments_,t={},n=!1,r,o,s,a,l,A,c,h,u,f,g;for(l=e.length-1;l>=0;--l)s=e[l],f=s[0],g=W(f.feature),f.depth&&(g+="-"+f.depth.join("-")),g in t||(t[g]={}),s[1]===0?(t[g].right=f,t[g].index=f.index):s[1]==1&&(t[g].left=f,t[g].index=f.index+1);for(g in t){switch(u=t[g].right,c=t[g].left,A=t[g].index,h=A-1,c!==void 0?f=c:f=u,h<0&&(h=0),a=f.geometry,o=a.getCoordinates(),r=o,n=!1,a.getType()){case"MultiLineString":o[f.depth[0]].length>2&&(o[f.depth[0]].splice(A,1),n=!0);break;case"LineString":o.length>2&&(o.splice(A,1),n=!0);break;case"MultiPolygon":r=r[f.depth[1]];case"Polygon":r=r[f.depth[0]],r.length>4&&(A==r.length-1&&(A=0),r.splice(A,1),n=!0,A===0&&(r.pop(),r.push(r[0]),h=r.length-1));break;default:}if(n){this.setGeometryCoordinates_(a,o);let p=[];if(c!==void 0&&(this.rBush_.remove(c),p.push(c.segment[0])),u!==void 0&&(this.rBush_.remove(u),p.push(u.segment[1])),c!==void 0&&u!==void 0){let d={depth:f.depth,feature:f.feature,geometry:f.geometry,index:h,segment:p};this.rBush_.insert(At(d.segment),d)}this.updateSegmentIndices_(a,A,f.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),e.length=0}}return n}canInsertPoint(){if(!this.vertexFeature_||this.vertexFeature_.get("geometries").every(n=>n.getType()==="Circle"||n.getType().endsWith("Point")))return!1;let e=this.vertexFeature_.getGeometry().getCoordinates();return this.rBush_.getInExtent(At([e])).some(({segment:n})=>!(Ht(n[0],e)||Ht(n[1],e)))}insertPoint(e){let t=e?Ke(e,this.getMap().getView().getProjection()):this.vertexFeature_?.getGeometry().getCoordinates();return t?this.findInsertVerticesAndUpdateDragSegments_(t).reduce((r,o)=>r||this.insertVertex_(o,t),!1):!1}setGeometryCoordinates_(e,t){this.changingFeature_=!0,e.setCoordinates(t),this.changingFeature_=!1}updateSegmentIndices_(e,t,n,r){this.rBush_.forEachInExtent(e.getExtent(),function(o){o.geometry===e&&(n===void 0||o.depth===void 0||Mt(o.depth,n))&&o.index>t&&(o.index+=r)})}};function mD(i,e){return i.index-e.index}function BB(i,e,t){let n=e.geometry;if(n.getType()==="Circle"){let o=n;if(e.index===Ic){let s=st();s&&(o=o.clone().transform(s,t));let a=kn(o.getCenter(),Ke(i,t)),l=Math.sqrt(a)-o.getRadius();return l*l}}let r=Ke(i,t);return dl[0]=Ke(e.segment[0],t),dl[1]=Ke(e.segment[1],t),Ky(r,dl)}function wB(i,e,t){let n=e.geometry;if(n.getType()==="Circle"&&e.index===Ic){let o=n,s=st();return s&&(o=o.clone().transform(s,t)),Zi(o.getClosestPoint(Ke(i,t)),t)}let r=Ke(i,t);return dl[0]=Ke(e.segment[0],t),dl[1]=Ke(e.segment[1],t),Zi(BA(r,dl),t)}function ED(){let i=Tu();return function(e,t){return i.Point}}var Zu=S0;var ef={SNAP:"snap",UNSNAP:"unsnap"},pl=class extends Pe{constructor(e,t){super(e),this.vertex=t.vertex,this.vertexPixel=t.vertexPixel,this.feature=t.feature,this.segment=t.segment}};var R0={Circle(i,e){let t=i,n=st();n&&(t=t.clone().transform(n,e));let r=qa(t);return n&&r.transform(e,n),R0.Polygon(r)},GeometryCollection(i,e){let t=[],n=i.getGeometriesArray();for(let r=0;r=0;--l)s.remove(a[l])}n&&(ce(this.featureChangeListenerKeys_[r]),delete this.featureChangeListenerKeys_[r])}setMap(e){let t=this.getMap(),n=this.featuresListenerKeys_,r=this.getFeatures_();if(Array.isArray(r)||(r=r.getArray()),t&&(n.forEach(ce),n.length=0,this.rBush_.clear(),Object.values(this.featureChangeListenerKeys_).forEach(ce),this.featureChangeListenerKeys_={}),super.setMap(e),e){this.features_?n.push(ee(this.features_,pt.ADD,this.handleFeatureAdd_,this),ee(this.features_,pt.REMOVE,this.handleFeatureRemove_,this)):this.source_&&n.push(ee(this.source_,Et.ADDFEATURE,this.handleFeatureAdd_,this),ee(this.source_,Et.REMOVEFEATURE,this.handleFeatureRemove_,this));for(let o of r)this.addFeature(o)}}snapTo(e,t,n){let r=n.getView().getProjection(),o=Ke(t,r),s=Ei(Vt(At([o]),n.getView().getResolution()*this.pixelTolerance_),r),a=this.rBush_.getInExtent(s),l=a.length;if(l===0)return null;let A,c=1/0,h,u=null,f,g=this.pixelTolerance_*this.pixelTolerance_,p=()=>{if(A){let d=n.getPixelFromCoordinate(A);if(kn(e,d)<=g&&(f&&this.intersection_||!f&&(this.vertex_||this.edge_)))return{vertex:A,vertexPixel:[Math.round(d[0]),Math.round(d[1])],feature:h,segment:u}}return null};if(this.vertex_||this.intersection_){for(let I=0;I2||Math.abs(i[e*4+3]-.75*255)>2}function yD(){if(D0===void 0){let i=Re(6,6,ra);i.globalCompositeOperation="lighter",i.fillStyle="rgba(210, 0, 0, 0.75)",TB(i,4,5,4,0),TB(i,4,5,0,5);let e=i.getImageData(0,0,3,3).data;D0=F0(e,0)||F0(e,4)||F0(e,8),oo(i),ra.push(i.canvas)}return D0}function RB(i,e,t,n){let r=ts(t,e,i),o=za(e,n,t),s=e.getMetersPerUnit();s!==void 0&&(o*=s);let a=i.getMetersPerUnit();a!==void 0&&(o/=a);let l=i.getExtent();if(!l||di(l,r)){let A=za(i,o,r)/o;isFinite(A)&&A>0&&(o/=A)}return o}function nf(i,e,t,n){let r=pi(t),o=RB(i,e,r,n);return(!isFinite(o)||o<=0)&&Da(t,function(s){return o=RB(i,e,s,n),isFinite(o)&&o>0}),o}function QB(i,e,t,n,r,o,s,a,l,A,c,h,u,f){let g=Re(Math.round(t*i),Math.round(t*e),ra);if(h||(g.imageSmoothingEnabled=!1),l.length===0)return g.canvas;g.scale(t,t);function p(y){return Math.round(y*t)/t}g.globalCompositeOperation="lighter";let d=ot();l.forEach(function(y,w,T){ba(d,y.extent)});let I,m=t/n,C=(h?1:1+Math.pow(2,-24))/m;if(!u||l.length!==1||A!==0){if(I=Re(Math.round(ue(d)*m),Math.round(qe(d)*m),ra),h||(I.imageSmoothingEnabled=!1),r&&f){let y=(r[0]-d[0])*m,w=-(r[3]-d[3])*m,T=ue(r)*m,E=qe(r)*m;I.rect(y,w,T,E),I.clip()}l.forEach(function(y,w,T){if(y.image.width>0&&y.image.height>0){if(y.clipExtent){I.save();let v=(y.clipExtent[0]-d[0])*m,D=-(y.clipExtent[3]-d[3])*m,Q=ue(y.clipExtent)*m,S=qe(y.clipExtent)*m;I.rect(h?v:Math.round(v),h?D:Math.round(D),h?Q:Math.round(v+Q)-Math.round(v),h?S:Math.round(D+S)-Math.round(D)),I.clip()}let E=(y.extent[0]-d[0])*m,x=-(y.extent[3]-d[3])*m,B=ue(y.extent)*m,R=qe(y.extent)*m;I.drawImage(y.image,A,A,y.image.width-2*A,y.image.height-2*A,h?E:Math.round(E),h?x:Math.round(x),h?B:Math.round(E+B)-Math.round(E),h?R:Math.round(x+R)-Math.round(x)),y.clipExtent&&I.restore()}})}let _=Pt(s);return a.getTriangles().forEach(function(y,w,T){let E=y.source,x=y.target,B=E[0][0],R=E[0][1],v=E[1][0],D=E[1][1],Q=E[2][0],S=E[2][1],b=p((x[0][0]-_[0])/o),F=p(-(x[0][1]-_[1])/o),M=p((x[1][0]-_[0])/o),k=p(-(x[1][1]-_[1])/o),P=p((x[2][0]-_[0])/o),U=p(-(x[2][1]-_[1])/o),N=B,j=R;B=0,R=0,v-=N,D-=j,Q-=N,S-=j;let X=[[v,D,0,0,M-b],[Q,S,0,0,P-b],[0,0,v,D,k-F],[0,0,Q,S,U-F]],z=zy(X);if(!z)return;if(g.save(),g.beginPath(),yD()||!h){g.moveTo(M,k);let Z=4,ge=b-M,me=F-k;for(let de=0;debe(a,ts(C,this.targetProj_,this.sourceProj_))):ro(this.targetProj_,this.sourceProj_);this.transformInv_=function(C){let _=C[0]+"/"+C[1];return l[_]||(l[_]=A(C)),l[_]},this.maxSourceExtent_=r,this.errorThresholdSquared_=o*o,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&ue(r)>=ue(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?ue(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?ue(this.targetProj_.getExtent()):null;let c=Pt(n),h=Gs(n),u=io(n),f=Ns(n),g=this.transformInv_(c),p=this.transformInv_(h),d=this.transformInv_(u),I=this.transformInv_(f),m=_D+(s?Math.max(0,Math.ceil(Math.log2(Jo(n)/(s*s*256*256)))):0);if(this.addQuad_(c,h,u,f,g,p,d,I,m),this.wrapsXInSource_){let C=1/0;this.triangles_.forEach(function(_,y,w){C=Math.min(C,_.source[0][0],_.source[1][0],_.source[2][0])}),this.triangles_.forEach(_=>{if(Math.max(_.source[0][0],_.source[1][0],_.source[2][0])-C>this.sourceWorldWidth_/2){let y=[[_.source[0][0],_.source[0][1]],[_.source[1][0],_.source[1][1]],[_.source[2][0],_.source[2][1]]];y[0][0]-C>this.sourceWorldWidth_/2&&(y[0][0]-=this.sourceWorldWidth_),y[1][0]-C>this.sourceWorldWidth_/2&&(y[1][0]-=this.sourceWorldWidth_),y[2][0]-C>this.sourceWorldWidth_/2&&(y[2][0]-=this.sourceWorldWidth_);let w=Math.min(y[0][0],y[1][0],y[2][0]);Math.max(y[0][0],y[1][0],y[2][0])-w.5&&h<1,g=!1;if(A>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_){let d=At([e,t,n,r]);g=ue(d)/this.targetWorldWidth_>bB||g}!f&&this.sourceProj_.isGlobal()&&h&&(g=h>bB||g)}if(!g&&this.maxSourceExtent_&&isFinite(c[0])&&isFinite(c[1])&&isFinite(c[2])&&isFinite(c[3])&&!Qe(c,this.maxSourceExtent_))return;let p=0;if(!g&&(!isFinite(o[0])||!isFinite(o[1])||!isFinite(s[0])||!isFinite(s[1])||!isFinite(a[0])||!isFinite(a[1])||!isFinite(l[0])||!isFinite(l[1]))){if(A>0)g=!0;else if(p=(!isFinite(o[0])||!isFinite(o[1])?8:0)+(!isFinite(s[0])||!isFinite(s[1])?4:0)+(!isFinite(a[0])||!isFinite(a[1])?2:0)+(!isFinite(l[0])||!isFinite(l[1])?1:0),p!=1&&p!=2&&p!=4&&p!=8)return}if(A>0){if(!g){let d=[(e[0]+n[0])/2,(e[1]+n[1])/2],I=this.transformInv_(d),m;f?m=(ki(o[0],u)+ki(a[0],u))/2-ki(I[0],u):m=(o[0]+a[0])/2-I[0];let C=(o[1]+a[1])/2-I[1];g=m*m+C*C>this.errorThresholdSquared_}if(g){if(Math.abs(e[0]-n[0])<=Math.abs(e[1]-n[1])){let d=[(t[0]+n[0])/2,(t[1]+n[1])/2],I=this.transformInv_(d),m=[(r[0]+e[0])/2,(r[1]+e[1])/2],C=this.transformInv_(m);this.addQuad_(e,t,d,m,o,s,I,C,A-1),this.addQuad_(m,d,n,r,C,I,a,l,A-1)}else{let d=[(e[0]+t[0])/2,(e[1]+t[1])/2],I=this.transformInv_(d),m=[(n[0]+r[0])/2,(n[1]+r[1])/2],C=this.transformInv_(m);this.addQuad_(e,d,m,r,o,I,C,l,A-1),this.addQuad_(d,t,n,m,I,s,a,C,A-1)}return}}if(f){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}(p&11)==0&&this.addTriangle_(e,n,r,o,a,l),(p&14)==0&&this.addTriangle_(e,n,t,o,a,s),p&&((p&13)==0&&this.addTriangle_(t,r,e,s,l,o),(p&7)==0&&this.addTriangle_(t,r,n,s,l,a))}calculateSourceExtent(){let e=ot();return this.triangles_.forEach(function(t,n,r){let o=t.source;Ps(e,o[0]),Ps(e,o[1]),Ps(e,o[2])}),e}getTriangles(){return this.triangles_}},rf=L0;var M0=class extends br{constructor(e,t,n,r,o,s,a,l,A,c,h,u){super(o,V.IDLE,u),this.renderEdges_=h!==void 0?h:!1,this.pixelRatio_=a,this.gutter_=l,this.canvas_=null,this.sourceTileGrid_=t,this.targetTileGrid_=r,this.wrappedTileCoord_=s||o,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0,this.clipExtent_=e.canWrapX()?e.getExtent():void 0;let f=r.getTileCoordExtent(this.wrappedTileCoord_),g=this.targetTileGrid_.getExtent(),p=this.sourceTileGrid_.getExtent(),d=g?Ze(f,g):f;if(Jo(d)===0){this.state=V.EMPTY;return}let I=e.getExtent();I&&(p?p=Ze(p,I):p=I);let m=r.getResolution(this.wrappedTileCoord_[0]),C=nf(e,n,d,m);if(!isFinite(C)||C<=0){this.state=V.EMPTY;return}let _=c!==void 0?c:.5;if(this.triangulation_=new rf(e,n,d,p,C*_,m),this.triangulation_.getTriangles().length===0){this.state=V.EMPTY;return}this.sourceZ_=t.getZForResolution(C);let y=this.triangulation_.calculateSourceExtent();if(p&&(e.canWrapX()?(y[1]=Ee(y[1],p[1],p[3]),y[3]=Ee(y[3],p[1],p[3])):y=Ze(y,p)),!Jo(y))this.state=V.EMPTY;else{let w=0,T=0;e.canWrapX()&&(w=ue(I),T=Math.floor((y[0]-I[0])/w)),La(y.slice(),e,!0).forEach(x=>{let B=t.getTileRangeForExtentAndZ(x,this.sourceZ_);for(let R=B.minX;R<=B.maxX;R++)for(let v=B.minY;v<=B.maxY;v++){let D=A(this.sourceZ_,R,v,a);if(D){let Q=T*w;this.sourceTiles_.push({tile:D,offset:Q})}}++T}),this.sourceTiles_.length===0&&(this.state=V.EMPTY)}}getImage(){return this.canvas_}reproject_(){let e=[];if(this.sourceTiles_.forEach(t=>{let n=t.tile;if(n&&n.getState()==V.LOADED){let r=this.sourceTileGrid_.getTileCoordExtent(n.tileCoord);r[0]+=t.offset,r[2]+=t.offset;let o=this.clipExtent_?.slice();o&&(o[0]+=t.offset,o[2]+=t.offset),e.push({extent:r,clipExtent:o,image:n.getImage()})}}),this.sourceTiles_.length=0,e.length===0)this.state=V.ERROR;else{let t=this.wrappedTileCoord_[0],n=this.targetTileGrid_.getTileSize(t),r=typeof n=="number"?n:n[0],o=typeof n=="number"?n:n[1],s=this.targetTileGrid_.getResolution(t),a=this.sourceTileGrid_.getResolution(this.sourceZ_),l=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=QB(r,o,this.pixelRatio_,a,this.sourceTileGrid_.getExtent(),s,l,this.triangulation_,e,this.gutter_,this.renderEdges_,this.interpolate),this.state=V.LOADED}this.changed()}load(){if(this.state==V.IDLE){this.state=V.LOADING,this.changed();let e=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(({tile:t})=>{let n=t.getState();if(n==V.IDLE||n==V.LOADING){e++;let r=ee(t,K.CHANGE,o=>{let s=t.getState();(s==V.LOADED||s==V.ERROR||s==V.EMPTY)&&(ce(r),e--,e===0&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(r)}}),e===0?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:t},n,r){t.getState()==V.IDLE&&t.load()})}}unlistenSources_(){this.sourcesListenerKeys_.forEach(ce),this.sourcesListenerKeys_=null}release(){this.canvas_&&(oo(this.canvas_.getContext("2d")),ra.push(this.canvas_),this.canvas_=null),super.release()}},Il=M0;var k0=class{constructor(e){this.highWaterMark=e!==void 0?e:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}deleteOldest(){let e=this.pop();e instanceof xr&&e.dispose()}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(e){for(;this.canExpireCache();)this.deleteOldest()}clear(){for(;this.oldest_;)this.deleteOldest()}containsKey(e){return this.entries_.hasOwnProperty(e)}forEach(e){let t=this.oldest_;for(;t;)e(t.value_,t.key_,this),t=t.newer}get(e,t){let n=this.entries_[e];return he(n!==void 0,"Tried to get a value for a key that does not exist in the cache"),n===this.newest_||(n===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(n.newer.older=n.older,n.older.newer=n.newer),n.newer=null,n.older=this.newest_,this.newest_.newer=n,this.newest_=n),n.value_}remove(e){let t=this.entries_[e];return he(t!==void 0,"Tried to get a value for a key that does not exist in the cache"),t===this.newest_?(this.newest_=t.older,this.newest_&&(this.newest_.newer=null)):t===this.oldest_?(this.oldest_=t.newer,this.oldest_&&(this.oldest_.older=null)):(t.newer.older=t.older,t.older.newer=t.newer),delete this.entries_[e],--this.count_,t.value_}getCount(){return this.count_}getKeys(){let e=new Array(this.count_),t=0,n;for(n=this.newest_;n;n=n.older)e[t++]=n.key_;return e}getValues(){let e=new Array(this.count_),t=0,n;for(n=this.newest_;n;n=n.older)e[t++]=n.value_;return e}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(e){return this.entries_[e]?.value_}pop(){let e=this.oldest_;return delete this.entries_[e.key_],e.newer&&(e.newer.older=null),this.oldest_=e.newer,this.oldest_||(this.newest_=null),--this.count_,e.value_}replace(e,t){this.get(e),this.entries_[e].value_=t}set(e,t){he(!(e in this.entries_),"Tried to set a value for a key that is used already");let n={key_:e,newer:null,older:this.newest_,value_:t};this.newest_?this.newest_.newer=n:this.oldest_=n,this.newest_=n,this.entries_[e]=n,++this.count_}setSize(e){this.highWaterMark=e}},of=k0;function Co(i,e,t,n){return n!==void 0?(n[0]=i,n[1]=e,n[2]=t,n):[i,e,t]}function P0(i,e,t){return i+"/"+e+"/"+t}function oa(i){return P0(i[0],i[1],i[2])}function DB(i){return N0(i[0],i[1],i[2])}function N0(i,e,t){return(e<t||t>e.getMaxZoom())return!1;let o=e.getFullTileRange(t);return o?o.containsXY(n,r):!0}function G0(i,e,t,n){return`${i},${P0(e,t,n)}`}function O0(i,e,t){if(!(t in i))return i[t]=new Set([e]),!0;let n=i[t],r=n.has(e);return r||n.add(e),!r}function BD(i,e,t){let n=i[t];return n?n.delete(e):!1}function LB(i,e){let t=i.layerStatesArray[i.layerIndex];t.extent&&(e=Ze(e,Bt(t.extent,i.viewState.projection)));let n=t.layer.getRenderSource();if(!n.getWrapX()){let r=n.getTileGridForProjection(i.viewState.projection).getExtent();r&&(e=Ze(e,r))}return e}var U0=class extends sl{constructor(e,t){super(e),t=t||{},this.extentChanged=!0,this.renderComplete=!1,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedRevision_,this.renderedTiles=[],this.renderedSourceKey_,this.renderedSourceRevision_,this.tempExtent=ot(),this.tempTileRange_=new gl(0,0,0,0),this.tempTileCoord_=Co(0,0,0);let n=t.cacheSize!==void 0?t.cacheSize:512;this.tileCache_=new of(n),this.maxStaleKeys=n*.5}getTileCache(){return this.tileCache_}getOrCreateTile(e,t,n,r){let o=this.tileCache_,a=this.getLayer().getSource(),l=G0(a.getKey(),e,t,n),A;if(o.containsKey(l))A=o.get(l);else{if(A=a.getTile(e,t,n,r.pixelRatio,r.viewState.projection),!A)return null;o.set(l,A)}return A}getTile(e,t,n,r){let o=this.getOrCreateTile(e,t,n,r);return o||null}getData(e){let t=this.frameState;if(!t)return null;let n=this.getLayer(),r=be(t.pixelToCoordinateTransform,e.slice()),o=n.getExtent();if(o&&!di(o,r))return null;let s=t.viewState,a=n.getRenderSource(),l=a.getTileGridForProjection(s.projection),A=a.getTilePixelRatio(t.pixelRatio);for(let c=l.getZForResolution(s.resolution);c>=l.getMinZoom();--c){let h=l.getTileCoordForCoordAndZ(r,c),u=this.getTile(c,h[1],h[2],t);if(!u||u.getState()!==V.LOADED)continue;let f=l.getOrigin(c),g=Fe(l.getTileSize(c)),p=l.getResolution(c),d;if(u instanceof ds||u instanceof Il)d=u.getImage();else if(u instanceof Io){if(d=Eo(u.getData()),!d)continue}else continue;let I=Math.floor(A*((r[0]-f[0])/p-h[1]*g[0])),m=Math.floor(A*((f[1]-r[1])/p-h[2]*g[1])),C=Math.round(A*a.getGutterForProjection(s.projection));return this.getImageData(d,I+C,m+C)}return null}prepareFrame(e){this.renderedProjection?e.viewState.projection!==this.renderedProjection&&(this.tileCache_.clear(),this.renderedProjection=e.viewState.projection):this.renderedProjection=e.viewState.projection;let t=this.getLayer().getSource();if(!t)return!1;let n=t.getRevision();return this.renderedRevision_?this.renderedRevision_!==n&&(this.renderedRevision_=n,this.renderedSourceKey_===t.getKey()&&this.tileCache_.clear()):this.renderedRevision_=n,!0}enqueueTiles(e,t,n,r,o){let s=e.viewState,a=this.getLayer(),l=a.getRenderSource(),A=l.getTileGridForProjection(s.projection),c=W(l);c in e.wantedTiles||(e.wantedTiles[c]={});let h=e.wantedTiles[c],u=a.getMapInternal(),f=Math.max(n-o,A.getMinZoom(),A.getZForResolution(Math.min(a.getMaxResolution(),u?u.getView().getResolutionForZoom(Math.max(a.getMinZoom(),0)):A.getResolution(0)),l.zDirection)),g=s.rotation,p=g?yA(s.center,s.resolution,g,e.size):void 0;for(let d=n;d>=f;--d){let I=A.getTileRangeForExtentAndZ(t,d,this.tempTileRange_),m=A.getResolution(d);for(let C=I.minX;C<=I.maxX;++C)for(let _=I.minY;_<=I.maxY;++_){if(g&&!A.tileCoordIntersectsViewport([d,C,_],p))continue;let y=this.getTile(d,C,_,e);if(!y||!O0(r,y,d))continue;let T=y.getKey();if(h[T]=!0,y.getState()===V.IDLE&&!e.tileQueue.isKeyQueued(T)){let E=Co(d,C,_,this.tempTileCoord_);e.tileQueue.enqueue([y,c,A.getTileCoordCenter(E),m])}}}}findStaleTile_(e,t){let n=this.tileCache_,r=e[0],o=e[1],s=e[2],a=this.getStaleKeys();for(let l=0;l0&&setTimeout(()=>{this.enqueueTiles(e,x,u-1,T,E-1)},0),!(u in T))return this.container;let B=W(this),R=e.time;for(let M of T[u]){let k=M.getState();if(k===V.EMPTY)continue;let P=M.tileCoord;if(k===V.LOADED&&M.getAlpha(B,R)===1){M.endTransition(B);continue}if(k!==V.ERROR&&(this.renderComplete=!1),this.findStaleTile_(P,T)){BD(T,M,u),e.animate=!0;continue}if(this.findAltTiles_(h,P,u+1,T))continue;let j=h.getMinZoom();for(let X=u-1;X>=j&&!this.findAltTiles_(h,P,X,T);--X);}let v=f/s*l/d,D=this.getRenderContext(e);ct(this.tempTransform,I/2,m/2,v,v,0,-I/2,-m/2),n.extent&&this.clipUnrotated(D,e,C),c.getInterpolate()||(D.imageSmoothingEnabled=!1),this.preRender(D,e);let Q=Object.keys(T).map(Number);Q.sort(gi);let S,b=[],F=[];for(let M=Q.length-1;M>=0;--M){let k=Q[M],P=c.getTilePixelSize(k,l,o),N=h.getResolution(k)/f,j=P[0]*N*v,X=P[1]*N*v,z=h.getTileCoordForCoordAndZ(Pt(w),k),q=h.getTileCoordExtent(z),Z=be(this.tempTransform,[d*(q[0]-w[0])/f,d*(w[3]-q[3])/f]),ge=d*c.getGutterForProjection(o);for(let me of T[k]){if(me.getState()!==V.LOADED)continue;let de=me.tileCoord,ve=z[1]-de[1],Ve=Math.round(Z[0]-(ve-1)*j),Me=z[2]-de[2],Se=Math.round(Z[1]-(Me-1)*X),Ae=Math.round(Z[0]-ve*j),ri=Math.round(Z[1]-Me*X),gn=Ve-Ae,Yt=Se-ri,or=Q.length===1,$t=!1;S=[Ae,ri,Ae+gn,ri,Ae+gn,ri+Yt,Ae,ri+Yt];for(let Xr=0,Yo=b.length;Xr{let U=W(c),N=P.wantedTiles[U],j=N?Object.keys(N).length:0;this.updateCacheSize(j),this.tileCache_.expireCache()};e.postRenderFunctions.push(M)}return this.container}updateCacheSize(e){this.tileCache_.highWaterMark=Math.max(this.tileCache_.highWaterMark,e*2)}drawTile(e,t,n,r,o,s,a,l){let A;if(e instanceof Io){if(A=Eo(e.getData()),!A)throw new Error("Rendering array data is not yet supported")}else A=this.getTileImage(e);if(!A)return;let c=this.getRenderContext(t),h=W(this),u=t.layerStatesArray[t.layerIndex],f=u.opacity*(l?e.getAlpha(h,t.time):1),g=f!==c.globalAlpha;g&&(c.save(),c.globalAlpha=f),c.drawImage(A,a,a,A.width-2*a,A.height-2*a,n,r,o,s),g&&c.restore(),f!==u.opacity?t.animate=!0:l&&e.endTransition(h)}getImage(){let e=this.context;return e?e.canvas:null}getTileImage(e){return e.getImage()}updateUsedTiles(e,t,n){let r=W(t);r in e||(e[r]={}),e[r][n.getKey()]=!0}},sf=U0;var Fr={PRELOAD:"preload",USE_INTERIM_TILES_ON_ERROR:"useInterimTilesOnError"};var z0=class extends hr{constructor(e){e=e||{};let t=Object.assign({},e),n=e.cacheSize;delete e.cacheSize,delete t.preload,delete t.useInterimTilesOnError,super(t),this.on,this.once,this.un,this.cacheSize_=n,this.setPreload(e.preload!==void 0?e.preload:0),this.setUseInterimTilesOnError(e.useInterimTilesOnError!==void 0?e.useInterimTilesOnError:!0)}getCacheSize(){return this.cacheSize_}getPreload(){return this.get(Fr.PRELOAD)}setPreload(e){this.set(Fr.PRELOAD,e)}getUseInterimTilesOnError(){return this.get(Fr.USE_INTERIM_TILES_ON_ERROR)}setUseInterimTilesOnError(e){this.set(Fr.USE_INTERIM_TILES_ON_ERROR,e)}getData(e){return super.getData(e)}},Cl=z0;var Y0=class extends Cl{constructor(e){super(e)}createRenderer(){return new sf(this,{cacheSize:this.getCacheSize()})}},MB=Y0;var wD={image:["Polygon","Circle","LineString","Image","Text"],hybrid:["Polygon","LineString"],vector:[]},kB={hybrid:["Image","Text","Default"],vector:["Polygon","Circle","LineString","Image","Text","Default"]},V0=class extends sf{constructor(e,t){super(e,t),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.renderedLayerRevision_,this.renderedPixelToCoordinateTransform_=null,this.renderedRotation_,this.renderedOpacity_=1,this.tmpTransform_=Ce(),this.tileClipContexts_=null}drawTile(e,t,n,r,o,s,a,l){this.updateExecutorGroup_(e,t.pixelRatio,t.viewState.projection),this.tileImageNeedsRender_(e)&&this.renderTileImage_(e,t),super.drawTile(e,t,n,r,o,s,a,l)}getTile(e,t,n,r){let o=this.getOrCreateTile(e,t,n,r);if(!o)return null;let a=r.viewState.resolution,l=r.viewHints;return(!(l[Ne.ANIMATING]||l[Ne.INTERACTING])||!o.wantedResolution)&&(o.wantedResolution=a),o}prepareFrame(e){let t=this.getLayer().getRevision();return this.renderedLayerRevision_!==t&&(this.renderedLayerRevision_=t,this.renderedTiles.length=0),super.prepareFrame(e)}updateExecutorGroup_(e,t,n){let r=this.getLayer(),o=r.getRevision(),s=r.getRenderOrder()||null,a=e.wantedResolution,l=e.getReplayState(r);if(!l.dirty&&l.renderedResolution===a&&l.renderedRevision==o&&l.renderedRenderOrder==s)return;let A=r.getSource(),c=!!r.getDeclutter(),h=A.getTileGrid(),f=A.getTileGridForProjection(n).getTileCoordExtent(e.wrappedTileCoord),g=A.getSourceTiles(t,n,e),p=W(r);delete e.hitDetectionImageData[p],e.executorGroups[p]=[],l.dirty=!1;for(let d=0,I=g.length;dC.value):null,m;e:for(let C=0,_=g.length;C<_;++C){let y=g[C],w=c.getTileCoordExtent(y.wrappedTileCoord);if(!Qe(w,h))continue;let T=y.executorGroups[p];for(let E=0,x=T.length;E{let r=this.getLayer(),o=r.getSource(),s=this.renderedProjection,a=s.getExtent(),l=this.renderedResolution,A=o.getTileGridForProjection(s),c=be(this.renderedPixelToCoordinateTransform_,e.slice()),h=A.getTileCoordForCoordAndResolution(c,l).toString(),u=this.renderedTiles.find(C=>C.tileCoord.toString()===h&&C.getState()===V.LOADED);if(!u||u.loadingSourceTiles>0){t([]);return}o.getWrapX()&&s.canWrapX()&&!Fi(a,A.getTileCoordExtent(u.tileCoord))&&Zo(c,s);let f=W(r),g=A.getTileCoordExtent(u.wrappedTileCoord),p=Pt(g),d=[(c[0]-p[0])/l,(p[1]-c[1])/l],I=u.getSourceTiles().reduce((C,_)=>C.concat(_.getFeatures()),[]),m=u.hitDetectionImageData[f];if(!m){let C=Fe(A.getTileSize(A.getZForResolution(l,o.zDirection))),_=this.renderedRotation_,y=[this.getRenderTransform(A.getTileCoordCenter(u.wrappedTileCoord),l,0,Gi,C[0]*Gi,C[1]*Gi,0)];m=bu(C,y,I,r.getStyleFunction(),A.getTileCoordExtent(u.wrappedTileCoord),u.getReplayState(r).renderedResolution,_),u.hitDetectionImageData[f]=m}t(Du(d,I,m))})}getFeaturesInExtent(e){let t=[],n=this.getTileCache();if(n.getCount()===0)return t;let o=this.getLayer().getSource().getTileGridForProjection(this.frameState.viewState.projection),s=o.getZForResolution(this.renderedResolution),a={};return n.forEach(l=>{if(l.tileCoord[0]!==s||l.getState()!==V.LOADED)return;let A=l.getSourceTiles();for(let c=0,h=A.length;c=0;--d)p[d].execute(this.context,a,this.getTileRenderTransform(g,e),e.viewState.rotation,s,rl,A)}n.globalAlpha=r}renderDeferredInternal(e){let t=this.renderedTiles,n=W(this.getLayer()),r=t.reduce((l,A,c)=>(A.executorGroups[n].forEach(h=>l.push({executorGroup:h,index:c})),l),[]),o=r.map(({executorGroup:l})=>l.getDeferredZIndexContexts()),s={};for(let l=0,A=r.length;l{o.forEach((A,c)=>{A[l]&&(A[l].forEach(h=>{let{executorGroup:u,index:f}=r[c],g=u.getRenderedContext(),p=g.globalAlpha;g.globalAlpha=this.renderedOpacity_;let d=this.tileClipContexts_[f];d&&d.draw(g),h.draw(g),d&&g.restore(),g.globalAlpha=p,h.clear()}),A[l].length=0)})})}getTileRenderTransform(e,t){let n=t.pixelRatio,r=t.viewState,o=r.center,s=r.resolution,a=r.rotation,l=t.size,A=Math.round(l[0]*n),c=Math.round(l[1]*n),u=this.getLayer().getSource().getTileGridForProjection(t.viewState.projection),f=e.tileCoord,g=u.getTileCoordExtent(e.wrappedTileCoord),p=u.getTileCoordExtent(f,this.tempExtent)[0]-g[0];return Un(is(this.inversePixelTransform.slice(),1/n,1/n),this.getRenderTransform(o,s,a,n,A,c,p))}postRender(e,t){let n=t.viewHints,r=!(n[Ne.ANIMATING]||n[Ne.INTERACTING]);this.renderedPixelToCoordinateTransform_=t.pixelToCoordinateTransform.slice(),this.renderedRotation_=t.viewState.rotation,this.renderedOpacity_=t.layerStatesArray[t.layerIndex].opacity;let o=this.getLayer(),s=o.getRenderMode(),a=e.globalAlpha;e.globalAlpha=this.renderedOpacity_;let l=o.getDeclutter(),A=l?kB[s].filter(y=>!rl.includes(y)):kB[s],c=t.viewState,h=c.rotation,u=o.getSource(),g=u.getTileGridForProjection(c.projection).getZForResolution(c.resolution,u.zDirection),p=this.renderedTiles,d=[],I=[],m=[],C=W(o),_=!0;for(let y=p.length-1;y>=0;--y){let w=p[y];_=_&&!w.getReplayState(o).dirty;let T=w.executorGroups[C].filter(Q=>Q.hasExecutors(A));if(T.length===0)continue;let E=this.getTileRenderTransform(w,t),x=w.tileCoord[0],B=!1,R=T[0].getClipCoords(E),v=e,D;if(R){D=new il,v=D.getContext();for(let Q=0,S=d.length;Q=a.width)return null;let c=qe(s),h=Math.floor(a.height*((s[3]-r[1])/c));return h<0||h>=a.height?null:this.getImageData(a,A,h)}renderFrame(e,t){let n=this.image,r=n.getExtent(),o=n.getResolution(),[s,a]=Array.isArray(o)?o:[o,o],l=n.getPixelRatio(),A=e.layerStatesArray[e.layerIndex],c=e.pixelRatio,h=e.viewState,u=h.center,f=h.resolution,g=c*s/(f*l),p=c*a/(f*l);this.prepareContainer(e,t);let d=this.context.canvas.width,I=this.context.canvas.height,m=this.getRenderContext(e),C=!1,_=!0;if(A.extent){let x=Bt(A.extent,h.projection);_=Qe(x,e.extent),C=_&&!Fi(x,e.extent),C&&this.clipUnrotated(m,e,x)}let y=n.getImage(),w=ct(this.tempTransform,d/2,I/2,g,p,0,l*(r[0]-u[0])/s,l*(u[1]-r[3])/a);this.renderedResolution=a*c/l;let T=y.width*w[0],E=y.height*w[3];if(this.getLayer().getSource().getInterpolate()||(m.imageSmoothingEnabled=!1),this.preRender(m,e),_&&T>=.5&&E>=.5){let x=w[4],B=w[5],R=A.opacity;R!==1&&(m.save(),m.globalAlpha=R),m.drawImage(y,0,0,+y.width,+y.height,x,B,T,E),R!==1&&m.restore()}return this.postRender(this.context,e),C&&m.restore(),m.imageSmoothingEnabled=!0,this.container}},af=q0;var K0=class extends hr{constructor(e){e=e||{},super(e)}},GB=K0;var X0=class extends GB{constructor(e){super(e)}createRenderer(){return new af(this)}getData(e){return super.getData(e)}},OB=X0;function UB(i){return Array.isArray(i)?Math.min(...i):i}var j0=class extends af{constructor(e){super(e),this.vectorRenderer_=new Lu(e),this.layerImageRatio_=e.getImageRatio(),this.coordinateToVectorPixelTransform_=Ce(),this.renderedPixelToCoordinateTransform_=null}disposeInternal(){this.vectorRenderer_.dispose(),super.disposeInternal()}getFeatures(e){if(!this.vectorRenderer_)return Promise.resolve([]);let t=be(this.coordinateToVectorPixelTransform_,be(this.renderedPixelToCoordinateTransform_,e.slice()));return this.vectorRenderer_.getFeatures(t)}handleFontsChanged(){this.vectorRenderer_.handleFontsChanged()}prepareFrame(e){let t=e.pixelRatio,n=e.viewState,r=n.resolution,o=e.viewHints,s=this.vectorRenderer_,a=e.extent;this.layerImageRatio_!==1&&(a=a.slice(0),Vh(a,this.layerImageRatio_));let l=ue(a)/r,A=qe(a)/r;if(!o[Ne.ANIMATING]&&!o[Ne.INTERACTING]&&!mi(a)){s.useContainer(null,null);let c=s.context,h=e.layerStatesArray[e.layerIndex],u=Object.assign({},h,{opacity:1}),f=Object.assign({},e,{extent:a,size:[l,A],viewState:Object.assign({},e.viewState,{rotation:0}),layerStatesArray:[u],layerIndex:0,declutter:null}),g=this.getLayer().getDeclutter();g&&(f.declutter={[g]:new ho(9)});let p=new Vx(a,r,t,c.canvas,function(d){s.prepareFrame(f)&&s.replayGroupChanged&&(s.clipping=!1,s.renderFrame(f,null),s.renderDeclutter(f),s.renderDeferred(f),d())});p.addEventListener(K.CHANGE,()=>{if(p.getState()!==ie.LOADED)return;this.image=p;let d=p.getPixelRatio(),I=UB(p.getResolution())*t/d;this.renderedResolution=I,this.coordinateToVectorPixelTransform_=ct(this.coordinateToVectorPixelTransform_,l/2,A/2,1/I,-1/I,0,-n.center[0],-n.center[1])}),p.load()}return this.image&&(this.renderedPixelToCoordinateTransform_=e.pixelToCoordinateTransform.slice()),!this.getLayer().getSource().loading&&!!this.image}preRender(){}postRender(){}renderDeclutter(){}forEachFeatureAtCoordinate(e,t,n,r,o){return this.vectorRenderer_?this.vectorRenderer_.forEachFeatureAtCoordinate(e,t,n,r,o):super.forEachFeatureAtCoordinate(e,t,n,r,o)}},zB=j0;var W0=class extends Vn{constructor(e){e=e||{};let t=Object.assign({},e);delete t.imageRatio,super(t),this.imageRatio_=e.imageRatio!==void 0?e.imageRatio:1}getImageRatio(){return this.imageRatio_}createRenderer(){return new zB(this)}},YB=W0;function Kn(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Xn(i,e){return i[0]=e[0],i[1]=e[1],i[4]=e[2],i[5]=e[3],i[12]=e[4],i[13]=e[5],i}function _c(i,e,t,n,r,o,s){s=s??Kn();let a=1/(i-e),l=1/(t-n),A=1/(r-o);return s[0]=-2*a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=-2*l,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=2*A,s[11]=0,s[12]=(i+e)*a,s[13]=(n+t)*l,s[14]=(o+r)*A,s[15]=1,s}function J0(i,e,t,n,r){return r=r??Kn(),r[0]=i[0]*e,r[1]=i[1]*e,r[2]=i[2]*e,r[3]=i[3]*e,r[4]=i[4]*t,r[5]=i[5]*t,r[6]=i[6]*t,r[7]=i[7]*t,r[8]=i[8]*n,r[9]=i[9]*n,r[10]=i[10]*n,r[11]=i[11]*n,r[12]=i[12],r[13]=i[13],r[14]=i[14],r[15]=i[15],r}function VB(i,e,t,n,r){r=r??Kn();let o,s,a,l,A,c,h,u,f,g,p,d;return i===r?(r[12]=i[0]*e+i[4]*t+i[8]*n+i[12],r[13]=i[1]*e+i[5]*t+i[9]*n+i[13],r[14]=i[2]*e+i[6]*t+i[10]*n+i[14],r[15]=i[3]*e+i[7]*t+i[11]*n+i[15]):(o=i[0],s=i[1],a=i[2],l=i[3],A=i[4],c=i[5],h=i[6],u=i[7],f=i[8],g=i[9],p=i[10],d=i[11],r[0]=o,r[1]=s,r[2]=a,r[3]=l,r[4]=A,r[5]=c,r[6]=h,r[7]=u,r[8]=f,r[9]=g,r[10]=p,r[11]=d,r[12]=o*e+A*t+f*n+i[12],r[13]=s*e+c*t+g*n+i[13],r[14]=a*e+h*t+p*n+i[14],r[15]=l*e+u*t+d*n+i[15]),r}function HB(i,e,t,n){return n=n??Kn(),n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=i,n[13]=e,n[14]=t,n[15]=1,n}var yo=34962,_o=34963,XB=35040,Lr=35044,xc=35048,jB=5121,WB=5123,JB=5125,$0=5126,KB=["experimental-webgl","webgl","webkit-3d","moz-webgl"];function $B(i,e){e=Object.assign({preserveDrawingBuffer:!0,antialias:!L_},e);let t=KB.length;for(let n=0;n{this.uniforms_.push({value:e.uniforms[s],location:t.getUniformLocation(this.renderTargetProgram_,s)})})}getRenderTargetTexture(){return this.renderTargetTexture_}getGL(){return this.gl_}init(e){let t=this.getGL(),n=[t.drawingBufferWidth*this.scaleRatio_,t.drawingBufferHeight*this.scaleRatio_];if(t.bindFramebuffer(t.FRAMEBUFFER,this.getFrameBuffer()),t.bindRenderbuffer(t.RENDERBUFFER,this.getDepthBuffer()),t.viewport(0,0,n[0],n[1]),!this.renderTargetTextureSize_||this.renderTargetTextureSize_[0]!==n[0]||this.renderTargetTextureSize_[1]!==n[1]){this.renderTargetTextureSize_=n;let r=0,o=t.RGBA,s=0,a=t.RGBA,A=t.UNSIGNED_BYTE,l=null;t.bindTexture(t.TEXTURE_2D,this.renderTargetTexture_),t.texImage2D(t.TEXTURE_2D,r,o,n[0],n[1],s,a,A,l),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.renderTargetTexture_,0),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,n[0],n[1]),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,this.depthBuffer_)}}apply(e,t,n,r){let o=this.getGL(),s=e.size;if(o.bindFramebuffer(o.FRAMEBUFFER,t?t.getFrameBuffer():null),o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.renderTargetTexture_),!t){let A=z(o.canvas);if(!e.renderTargets[A]){let l=o.getContextAttributes();l&&l.preserveDrawingBuffer&&(o.clearColor(0,0,0,0),o.clearDepth(1),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT)),e.renderTargets[A]=!0}}o.disable(o.DEPTH_TEST),o.enable(o.BLEND),o.blendFunc(o.ONE,o.ONE_MINUS_SRC_ALPHA),o.viewport(0,0,o.drawingBufferWidth,o.drawingBufferHeight),o.bindBuffer(o.ARRAY_BUFFER,this.renderTargetVerticesBuffer_),o.useProgram(this.renderTargetProgram_),o.enableVertexAttribArray(this.renderTargetAttribLocation_),o.vertexAttribPointer(this.renderTargetAttribLocation_,2,o.FLOAT,!1,0,0),o.uniform2f(this.renderTargetUniformLocation_,s[0],s[1]),o.uniform1i(this.renderTargetTextureLocation_,0);let a=e.layerStatesArray[e.layerIndex].opacity;o.uniform1f(this.renderTargetOpacityLocation_,a),this.applyUniforms(e),n&&n(o,e),o.drawArrays(o.TRIANGLES,0,6),r&&r(o,e)}getFrameBuffer(){return this.frameBuffer_}getDepthBuffer(){return this.depthBuffer_}applyUniforms(e){let t=this.getGL(),n,r=1;this.uniforms_.forEach(function(o){if(n=typeof o.value=="function"?o.value(e):o.value,n instanceof HTMLCanvasElement||n instanceof ImageData)o.texture||(o.texture=t.createTexture()),t.activeTexture(t[`TEXTURE${r}`]),t.bindTexture(t.TEXTURE_2D,o.texture),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),n instanceof ImageData?t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,n.width,n.height,0,t.UNSIGNED_BYTE,new Uint8Array(n.data)):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n),t.uniform1i(o.location,r++);else if(Array.isArray(n))switch(n.length){case 2:t.uniform2f(o.location,n[0],n[1]);return;case 3:t.uniform3f(o.location,n[0],n[1],n[2]);return;case 4:t.uniform4f(o.location,n[0],n[1],n[2],n[3]);return;default:return}else typeof n=="number"&&t.uniform1f(o.location,n)})}},Og=Gg;var Wi={PROJECTION_MATRIX:"u_projectionMatrix",SCREEN_TO_WORLD_MATRIX:"u_screenToWorldMatrix",TIME:"u_time",ZOOM:"u_zoom",RESOLUTION:"u_resolution",ROTATION:"u_rotation",VIEWPORT_SIZE_PX:"u_viewportSizePx",PIXEL_RATIO:"u_pixelRatio",HIT_DETECTION:"u_hitDetection"},lt={UNSIGNED_BYTE:B0,UNSIGNED_SHORT:x0,UNSIGNED_INT:w0,FLOAT:kg},ql={};function v0(i){return"shared/"+i}var D0=0;function _1(){let i="unique/"+D0;return D0+=1,i}function y1(i){let e=ql[i];if(!e){let t=document.createElement("canvas");t.width=1,t.height=1,t.style.position="absolute",t.style.left="0",e={users:0,context:Q0(t)},ql[i]=e}return e.users+=1,e.context}function B1(i){let e=ql[i];if(!e||(e.users-=1,e.users>0))return;let t=e.context,n=t.getExtension("WEBGL_lose_context");n&&n.loseContext();let r=t.canvas;r.width=1,r.height=1,delete ql[i]}var Ug=class extends Li{constructor(e){super(),e=e||{},this.boundHandleWebGLContextLost_=this.handleWebGLContextLost.bind(this),this.boundHandleWebGLContextRestored_=this.handleWebGLContextRestored.bind(this),this.canvasCacheKey_=e.canvasCacheKey?v0(e.canvasCacheKey):_1(),this.gl_=y1(this.canvasCacheKey_),this.bufferCache_={},this.extensionCache_={},this.currentProgram_=null,this.needsToBeRecreated_=!1;let t=this.gl_.canvas;t.addEventListener(Fa.LOST,this.boundHandleWebGLContextLost_),t.addEventListener(Fa.RESTORED,this.boundHandleWebGLContextRestored_),this.offsetRotateMatrix_=Ce(),this.offsetScaleMatrix_=Ce(),this.tmpMat4_=ji(),this.uniformLocationsByProgram_={},this.attribLocationsByProgram_={},this.uniforms_=[],e.uniforms&&this.setUniforms(e.uniforms),this.postProcessPasses_=e.postProcesses?e.postProcesses.map(n=>new Og({webGlContext:this.gl_,scaleRatio:n.scaleRatio,vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,uniforms:n.uniforms})):[new Og({webGlContext:this.gl_})],this.shaderCompileErrors_=null,this.startTime_=Date.now()}setUniforms(e){this.uniforms_=[],this.addUniforms(e)}addUniforms(e){for(let t in e)this.uniforms_.push({name:t,value:e[t]})}canvasCacheKeyMatches(e){return this.canvasCacheKey_===v0(e)}getExtension(e){if(e in this.extensionCache_)return this.extensionCache_[e];let t=this.gl_.getExtension(e);return this.extensionCache_[e]=t,t}bindBuffer(e){let t=this.gl_,n=z(e),r=this.bufferCache_[n];if(!r){let o=t.createBuffer();r={buffer:e,webGlBuffer:o},this.bufferCache_[n]=r}t.bindBuffer(e.getType(),r.webGlBuffer)}flushBufferData(e){let t=this.gl_;this.bindBuffer(e),t.bufferData(e.getType(),e.getArray(),e.getUsage())}deleteBuffer(e){let t=z(e);delete this.bufferCache_[t]}disposeInternal(){let e=this.gl_.canvas;e.removeEventListener(Fa.LOST,this.boundHandleWebGLContextLost_),e.removeEventListener(Fa.RESTORED,this.boundHandleWebGLContextRestored_),B1(this.canvasCacheKey_),delete this.gl_}prepareDraw(e,t,n){let r=this.gl_,o=this.getCanvas(),s=e.size,a=e.pixelRatio;(o.width!==s[0]*a||o.height!==s[1]*a)&&(o.width=s[0]*a,o.height=s[1]*a,o.style.width=s[0]+"px",o.style.height=s[1]+"px");for(let A=this.postProcessPasses_.length-1;A>=0;A--)this.postProcessPasses_[A].init(e);r.bindTexture(r.TEXTURE_2D,null),r.clearColor(0,0,0,0),r.depthRange(0,1),r.clearDepth(1),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT),r.enable(r.BLEND),r.blendFunc(r.ONE,t?r.ZERO:r.ONE_MINUS_SRC_ALPHA),n?(r.enable(r.DEPTH_TEST),r.depthFunc(r.LEQUAL)):r.disable(r.DEPTH_TEST)}bindFrameBuffer(e,t){let n=this.getGL();n.bindFramebuffer(n.FRAMEBUFFER,e),t&&n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,t,0)}bindInitialFrameBuffer(){let e=this.getGL(),t=this.postProcessPasses_[0].getFrameBuffer();e.bindFramebuffer(e.FRAMEBUFFER,t);let n=this.postProcessPasses_[0].getRenderTargetTexture();e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0)}bindTexture(e,t,n){let r=this.gl_;r.activeTexture(r.TEXTURE0+t),r.bindTexture(r.TEXTURE_2D,e),r.uniform1i(this.getUniformLocation(n),t)}bindAttribute(e,t,n){let r=this.getGL();this.bindBuffer(e);let o=this.getAttributeLocation(t);r.enableVertexAttribArray(o),r.vertexAttribPointer(o,n,r.FLOAT,!1,0,0)}prepareDrawToRenderTarget(e,t,n,r){let o=this.gl_,s=t.getSize();o.bindFramebuffer(o.FRAMEBUFFER,t.getFramebuffer()),o.bindRenderbuffer(o.RENDERBUFFER,t.getDepthbuffer()),o.viewport(0,0,s[0],s[1]),o.bindTexture(o.TEXTURE_2D,t.getTexture()),o.clearColor(0,0,0,0),o.depthRange(0,1),o.clearDepth(1),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT),o.enable(o.BLEND),o.blendFunc(o.ONE,n?o.ZERO:o.ONE_MINUS_SRC_ALPHA),r?(o.enable(o.DEPTH_TEST),o.depthFunc(o.LEQUAL)):o.disable(o.DEPTH_TEST)}drawElements(e,t){let n=this.gl_;this.getExtension("OES_element_index_uint");let r=n.UNSIGNED_INT,o=4,s=t-e,a=e*o;n.drawElements(n.TRIANGLES,s,r,a)}finalizeDraw(e,t,n){for(let r=0,o=this.postProcessPasses_.length;r{if(n=typeof o.value=="function"?o.value(e):o.value,n instanceof HTMLCanvasElement||n instanceof HTMLImageElement||n instanceof ImageData||n instanceof WebGLTexture){n instanceof WebGLTexture&&!o.texture?(o.prevValue=void 0,o.texture=n):o.texture||(o.prevValue=void 0,o.texture=t.createTexture()),this.bindTexture(o.texture,r,o.name),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE);let s=!(n instanceof HTMLImageElement)||n.complete;!(n instanceof WebGLTexture)&&s&&o.prevValue!==n&&(o.prevValue=n,t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n)),r++}else if(Array.isArray(n)&&n.length===6)this.setUniformMatrixValue(o.name,$r(this.tmpMat4_,n));else if(Array.isArray(n)&&n.length<=4)switch(n.length){case 2:t.uniform2f(this.getUniformLocation(o.name),n[0],n[1]);return;case 3:t.uniform3f(this.getUniformLocation(o.name),n[0],n[1],n[2]);return;case 4:t.uniform4f(this.getUniformLocation(o.name),n[0],n[1],n[2],n[3]);return;default:return}else typeof n=="number"&&t.uniform1f(this.getUniformLocation(o.name),n)})}useProgram(e,t){this.gl_.useProgram(e),this.currentProgram_=e,t&&(this.applyFrameState(t),this.applyUniforms(t))}compileShader(e,t){let n=this.gl_,r=n.createShader(t);return n.shaderSource(r,e),n.compileShader(r),r}getProgram(e,t){let n=this.gl_,r=this.compileShader(e,n.FRAGMENT_SHADER),o=this.compileShader(t,n.VERTEX_SHADER),s=n.createProgram();if(n.attachShader(s,r),n.attachShader(s,o),n.linkProgram(s),!n.getShaderParameter(r,n.COMPILE_STATUS)){let a=`Fragment shader compilation failed: ${n.getShaderInfoLog(r)}`;throw new Error(a)}if(n.deleteShader(r),!n.getShaderParameter(o,n.COMPILE_STATUS)){let a=`Vertex shader compilation failed: ${n.getShaderInfoLog(o)}`;throw new Error(a)}if(n.deleteShader(o),!n.getProgramParameter(s,n.LINK_STATUS)){let a=`GL program linking failed: ${n.getProgramInfoLog(s)}`;throw new Error(a)}return s}getUniformLocation(e){let t=z(this.currentProgram_);return this.uniformLocationsByProgram_[t]===void 0&&(this.uniformLocationsByProgram_[t]={}),this.uniformLocationsByProgram_[t][e]===void 0&&(this.uniformLocationsByProgram_[t][e]=this.gl_.getUniformLocation(this.currentProgram_,e)),this.uniformLocationsByProgram_[t][e]}getAttributeLocation(e){let t=z(this.currentProgram_);return this.attribLocationsByProgram_[t]===void 0&&(this.attribLocationsByProgram_[t]={}),this.attribLocationsByProgram_[t][e]===void 0&&(this.attribLocationsByProgram_[t][e]=this.gl_.getAttribLocation(this.currentProgram_,e)),this.attribLocationsByProgram_[t][e]}makeProjectionTransform(e,t){let n=e.size,r=e.viewState.rotation,o=e.viewState.resolution,s=e.viewState.center;return Xe(t,0,0,2/(o*n[0]),2/(o*n[1]),-r,-s[0],-s[1]),t}setUniformFloatValue(e,t){this.gl_.uniform1f(this.getUniformLocation(e),t)}setUniformFloatVec2(e,t){this.gl_.uniform2fv(this.getUniformLocation(e),t)}setUniformFloatVec4(e,t){this.gl_.uniform4fv(this.getUniformLocation(e),t)}setUniformMatrixValue(e,t){this.gl_.uniformMatrix4fv(this.getUniformLocation(e),!1,t)}enableAttributeArray_(e,t,n,r,o){let s=this.getAttributeLocation(e);s<0||(this.gl_.enableVertexAttribArray(s),this.gl_.vertexAttribPointer(s,t,n,!1,r,o))}enableAttributes(e){let t=x1(e),n=0;for(let r=0;r"u"?"data:application/javascript;base64,"+Buffer.from(i,"binary").toString("base64"):URL.createObjectURL(new Blob([i],{type:"application/javascript"})))}var Vl={GENERATE_POLYGON_BUFFERS:"GENERATE_POLYGON_BUFFERS",GENERATE_POINT_BUFFERS:"GENERATE_POINT_BUFFERS",GENERATE_LINE_STRING_BUFFERS:"GENERATE_LINE_STRING_BUFFERS"};function M0(i,e){e=e||[];let t=256,n=t-1;return e[0]=Math.floor(i/t/t/t)/n,e[1]=Math.floor(i/t/t)%t/n,e[2]=Math.floor(i/t)%t/n,e[3]=i%t/n,e}function k0(i){let e=0,t=256,n=t-1;return e+=Math.round(i[0]*t*t*t*n),e+=Math.round(i[1]*t*t*n),e+=Math.round(i[2]*t*n),e+=Math.round(i[3]*n),e}var Yg=class extends Mi{constructor(e){super(),this.tile,this.handleTileChange_=this.handleTileChange_.bind(this),this.gutter=e.gutter||0,this.helper=e.helper,this.loaded=!1,this.ready=!1}setTile(e){if(e!==this.tile)if(this.tile&&this.tile.removeEventListener(U.CHANGE,this.handleTileChange_),this.tile=e,this.loaded=e.getState()===G.LOADED,this.loaded)this.uploadTile();else{if(e instanceof hr){let t=e.getImage();t instanceof Image&&!t.crossOrigin&&(t.crossOrigin="anonymous")}e.addEventListener(U.CHANGE,this.handleTileChange_)}}uploadTile(){J()}setReady(){this.ready=!0,this.dispatchEvent(U.CHANGE)}handleTileChange_(){this.tile.getState()===G.LOADED&&(this.loaded=!0,this.uploadTile())}setHelper(e){this.helper=e,this.helper&&this.loaded&&this.uploadTile()}disposeInternal(){this.setHelper(null),this.tile.removeEventListener(U.CHANGE,this.handleTileChange_)}},P0=Yg;function G0(i,e,t){let n=t?i.LINEAR:i.NEAREST;i.bindTexture(i.TEXTURE_2D,e),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,n),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,n)}function w1(i,e,t,n){G0(i,e,n),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,t)}function N0(i,e,t,n,r,o){let s=i.getGL(),a,A;t instanceof Float32Array?(a=s.FLOAT,i.getExtension("OES_texture_float"),A=i.getExtension("OES_texture_float_linear")!==null):(a=s.UNSIGNED_BYTE,A=!0),G0(s,e,o&&A);let l=t.byteLength/n[1],c=1;l%8===0?c=8:l%4===0?c=4:l%2===0&&(c=2);let h;switch(r){case 1:{h=s.LUMINANCE;break}case 2:{h=s.LUMINANCE_ALPHA;break}case 3:{h=s.RGB;break}case 4:{h=s.RGBA;break}default:throw new Error(`Unsupported number of bands: ${r}`)}let u=s.getParameter(s.UNPACK_ALIGNMENT);s.pixelStorei(s.UNPACK_ALIGNMENT,c),s.texImage2D(s.TEXTURE_2D,0,h,n[0],n[1],0,h,a,t),s.pixelStorei(s.UNPACK_ALIGNMENT,u)}var is=null;function Q1(){is=me(1,1,void 0,{willReadFrequently:!0})}var Hg=class extends P0{constructor(e){super(e),this.textures=[],this.renderSize_=_e(e.grid.getTileSize(e.tile.tileCoord[0])),this.bandCount=NaN;let t=new Zr(jr,ts);t.fromArray([0,1,1,1,1,0,0,0]),this.helper.flushBufferData(t),this.coords=t,this.setTile(e.tile)}setHelper(e){let t=this.helper?.getGL();if(t){this.helper.deleteBuffer(this.coords);for(let n=0;n{this.clearCache(),this.removeHelper()},e.addChangeListener(pe.MAP,this.onMapChanged_),this.dispatchPreComposeEvent=this.dispatchPreComposeEvent.bind(this),this.dispatchPostComposeEvent=this.dispatchPostComposeEvent.bind(this)}dispatchPreComposeEvent(e,t){let n=this.getLayer();if(n.hasListener(Fe.PRECOMPOSE)){let r=new lr(Fe.PRECOMPOSE,void 0,t,e);n.dispatchEvent(r)}}dispatchPostComposeEvent(e,t){let n=this.getLayer();if(n.hasListener(Fe.POSTCOMPOSE)){let r=new lr(Fe.POSTCOMPOSE,void 0,t,e);n.dispatchEvent(r)}}reset(e){this.uniforms_=e.uniforms,this.helper&&this.helper.setUniforms(this.uniforms_)}removeHelper(){this.helper&&(this.helper.dispose(),delete this.helper)}prepareFrame(e){if(this.getLayer().getRenderSource()){let t=!0,n=-1,r;for(let s=0,a=e.layerStatesArray.length;s=m;--p){let _=l.getTileRangeForExtentAndZ(t,p,this.tempTileRange_),C=l.getResolution(p);for(let E=_.minX;E<=_.maxX;++E)for(let y=_.minY;y<=_.maxY;++y){if(d&&!l.tileCoordIntersectsViewport([p,E,y],I))continue;let B=Mn(p,E,y,this.tempTileCoord_),x=Jl(A,B),Q,w;if(f.containsKey(x)&&(Q=f.get(x),w=Q.tile),(!Q||Q.tile.key!==A.getKey())&&(w=A.getTile(p,E,y,e.pixelRatio,s.projection),!w)||Y0(r,w))continue;Q?Q.setTile(w):(Q=this.createTileRepresentation({tile:w,grid:l,helper:this.helper,gutter:c}),f.set(x,Q)),H0(r,Q,p);let T=w.getKey();u[T]=!0,w.getState()===G.IDLE&&(e.tileQueue.isKeyQueued(T)||e.tileQueue.enqueue([w,h,l.getTileCoordCenter(B),C]))}}}beforeTilesRender(e,t){this.helper.prepareDraw(this.frameState,!t,!0)}beforeTilesMaskRender(e){return!1}renderTile(e,t,n,r,o,s,a,A,l,c,h){}renderTileMask(e,t,n,r){}drawTile_(e,t,n,r,o,s,a){if(!t.ready)return;let l=t.tile.tileCoord,c=Jr(l),h=c in s?s[c]:1,u=a.getResolution(n),f=_e(a.getTileSize(n),this.tempSize_),g=a.getOrigin(n),m=a.getTileCoordExtent(l),d=h<1?-1:U0(n);h<1&&(e.animate=!0);let I=e.viewState,p=I.center[0],_=I.center[1],C=f[0]+2*r,E=f[1]+2*r,y=C/E,B=(p-g[0])/(f[0]*u),x=(g[1]-_)/(f[1]*u),Q=I.resolution/u,w=l[1],T=l[2];$p(this.tileTransform_),jh(this.tileTransform_,2/(e.size[0]*Q/C),-2/(e.size[1]*Q/C)),eI(this.tileTransform_,I.rotation),jh(this.tileTransform_,1,1/y),qA(this.tileTransform_,(f[0]*(w-B)-r)/C,(f[1]*(T-x)-r)/E),this.renderTile(t,this.tileTransform_,e,o,u,f,g,m,d,r,h)}renderFrame(e){this.frameState=e,this.renderComplete=!0;let t=this.helper.getGL();this.preRender(t,e);let n=e.viewState,r=this.getLayer(),o=r.getRenderSource(),s=o.getTileGridForProjection(n.projection),a=o.getGutterForProjection(n.projection),A=Kg(e,e.extent),l=s.getZForResolution(n.resolution,o.zDirection),c=S1(),h=r.getPreload();if(e.nextExtent){let _=s.getZForResolution(n.nextResolution,o.zDirection),C=Kg(e,e.nextExtent);this.enqueueTiles(e,C,_,c,h)}this.enqueueTiles(e,A,l,c,0),h>0&&setTimeout(()=>{this.enqueueTiles(e,A,l-1,c,h-1)},0);let u={},f=!1,g=c.representationsByZ;if(l in g){let _=z(this),C=e.time;for(let E of g[l]){let y=E.tile;if(y.getState()===G.EMPTY)continue;let B=y.tileCoord;if(E.ready){let w=y.getAlpha(_,C);if(w===1){y.endTransition(_);continue}f=!0;let T=Jr(B);u[T]=w}if(this.renderComplete=!1,this.findAltTiles_(s,B,l+1,c))continue;let Q=s.getMinZoom();for(let w=l-1;w>=Q&&!this.findAltTiles_(s,B,w,c);--w);}}let m=Object.keys(g).map(Number).sort(yA);if(this.beforeTilesMaskRender(e))for(let _=0,C=m.length;_t.dispose()),e.clear()}afterHelperCreated(){super.afterHelperCreated(),this.tileRepresentationCache.forEach(e=>e.setHelper(this.helper))}disposeInternal(){super.disposeInternal(),delete this.frameState}},K0=qg;var Ae={...z0,TILE_TEXTURE_ARRAY:"u_tileTextures",TEXTURE_PIXEL_WIDTH:"u_texturePixelWidth",TEXTURE_PIXEL_HEIGHT:"u_texturePixelHeight",TEXTURE_RESOLUTION:"u_textureResolution",TEXTURE_ORIGIN_X:"u_textureOriginX",TEXTURE_ORIGIN_Y:"u_textureOriginY"},La={TEXTURE_COORD:"a_textureCoord"},R1=[{name:La.TEXTURE_COORD,size:2,type:lt.FLOAT}],Vg=class extends K0{constructor(e,t){super(e,t),this.program_,this.vertexShader_=t.vertexShader,this.fragmentShader_=t.fragmentShader,this.indices_=new Zr(Wr,ts),this.indices_.fromArray([0,1,3,1,2,3]),this.paletteTextures_=t.paletteTextures||[]}reset(e){if(super.reset(e),this.helper){let t=this.helper.getGL();for(let n of this.paletteTextures_)n.delete(t)}if(this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.paletteTextures_=e.paletteTextures||[],this.helper){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_);let t=this.helper.getGL();for(let n of this.paletteTextures_)n.getTexture(t)}}afterHelperCreated(){super.afterHelperCreated();let e=this.helper.getGL();for(let t of this.paletteTextures_)t.getTexture(e);this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.helper.flushBufferData(this.indices_)}removeHelper(){if(this.helper){let e=this.helper.getGL();for(let t of this.paletteTextures_)t.delete(e)}super.removeHelper()}createTileRepresentation(e){return new O0(e)}beforeTilesRender(e,t){super.beforeTilesRender(e,t),this.helper.useProgram(this.program_,e)}renderTile(e,t,n,r,o,s,a,A,l,c,h){let u=this.helper.getGL();this.helper.bindBuffer(e.coords),this.helper.bindBuffer(this.indices_),this.helper.enableAttributes(R1);let f=0;for(;f0&&(E=A,Ue(E,r,E)),this.helper.setUniformFloatVec4(Ae.RENDER_EXTENT,E),this.helper.setUniformFloatValue(Ae.RESOLUTION,g.resolution),this.helper.setUniformFloatValue(Ae.ZOOM,g.zoom),this.helper.setUniformFloatValue(Ae.TEXTURE_PIXEL_WIDTH,m),this.helper.setUniformFloatValue(Ae.TEXTURE_PIXEL_HEIGHT,d),this.helper.setUniformFloatValue(Ae.TEXTURE_RESOLUTION,o),this.helper.setUniformFloatValue(Ae.TEXTURE_ORIGIN_X,a[0]+_*s[0]*o-c*o),this.helper.setUniformFloatValue(Ae.TEXTURE_ORIGIN_Y,a[1]-C*s[1]*o+c*o),this.helper.drawElements(0,this.indices_.getSize())}getData(e){if(!this.helper.getGL())return null;let n=this.frameState;if(!n)return null;let r=this.getLayer(),o=ye(n.pixelToCoordinateTransform,e.slice()),s=n.viewState,a=r.getExtent();if(a&&!Mt(Ct(a,s.projection),o))return null;let A=r.getSources(ks([o]),s.resolution),l,c,h;for(l=A.length-1;l>=0;--l)if(c=A[l],c.getState()==="ready"){if(h=c.getTileGridForProjection(s.projection),c.getWrapX())break;let f=h.getExtent();if(!f||Mt(f,o))break}if(l<0)return null;let u=this.tileRepresentationCache;for(let f=h.getZForResolution(s.resolution);f>=h.getMinZoom();--f){let g=h.getTileCoordForCoordAndZ(o,f),m=Jl(c,g);if(!u.containsKey(m))continue;let d=u.get(m);if(d.tile.getState()===G.EMPTY)return null;if(!d.loaded)continue;let p=h.getOrigin(f),_=_e(h.getTileSize(f)),C=h.getResolution(f),E=(o[0]-p[0])/C-g[1]*_[0],y=(p[1]-o[1])/C-g[2]*_[1];return d.getPixelData(E,y)}return null}disposeInternal(){let e=this.helper;if(e){let t=e.getGL();for(let n of this.paletteTextures_)n.delete(t);this.paletteTextures_.length=0,t.deleteProgram(this.program_),delete this.program_,e.deleteBuffer(this.indices_)}super.disposeInternal(),delete this.indices_}},q0=Vg;var Xg=class{constructor(e,t){this.name=e,this.data=t,this.texture_=null}getTexture(e){if(!this.texture_){let t=e.createTexture();e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,this.data.length/4,1,0,e.RGBA,e.UNSIGNED_BYTE,this.data),this.texture_=t}return this.texture_}delete(e){this.texture_&&e.deleteTexture(this.texture_),this.texture_=null}},V0=Xg;function T1(i,e){return`operator_${i}_${Object.keys(e.functions).length}`}function kn(i){let e=i.toString();return e.includes(".")?e:e+".0"}function Wg(i){if(i.length<2||i.length>4)throw new Error("`formatArray` can only output `vec2`, `vec3` or `vec4` arrays.");return`vec${i.length}(${i.map(kn).join(", ")})`}function Ma(i){let e=We(i),t=e.length>3?e[3]:1;return Wg([e[0]/255,e[1]/255,e[2]/255,t])}function v1(i){let e=_e(i);return Wg(e)}var Jg={},D1=0;function Pn(i){return i in Jg||(Jg[i]=D1++),Jg[i]}function Ti(i){return kn(Pn(i))}function ns(i){return"u_var_"+i}function jl(){return{variables:{},properties:{},functions:{},bandCount:0,featureId:!1,geometryType:!1}}var jg="getBandValue",Zg="u_paletteTextures",$g="featureId",ed="geometryType",Wl=-9999999;function X0(i,e,t,n){let r=Ze(i,e,t);return td(r,e,n)}function Be(i){return(e,t,n)=>{let r=t.args.length,o=new Array(r);for(let s=0;s{let n=e.args[0].value;return n in i.properties||(i.properties[n]={name:n,type:e.type}),"a_prop_"+n},[v.Id]:i=>(i.featureId=!0,"a_"+$g),[v.GeometryType]:i=>(i.geometryType=!0,"a_"+ed),[v.LineMetric]:()=>"currentLineMetric",[v.Var]:(i,e)=>{let n=e.args[0].value;return n in i.variables||(i.variables[n]={name:n,type:e.type}),ns(n)},[v.Has]:(i,e)=>{let n=e.args[0].value;return n in i.properties||(i.properties[n]={name:n,type:e.type}),`(a_prop_${n} != ${kn(Wl)})`},[v.Resolution]:()=>"u_resolution",[v.Zoom]:()=>"u_zoom",[v.Time]:()=>"u_time",[v.Any]:Be(i=>`(${i.join(" || ")})`),[v.All]:Be(i=>`(${i.join(" && ")})`),[v.Not]:Be(([i])=>`(!${i})`),[v.Equal]:Be(([i,e])=>`(${i} == ${e})`),[v.NotEqual]:Be(([i,e])=>`(${i} != ${e})`),[v.GreaterThan]:Be(([i,e])=>`(${i} > ${e})`),[v.GreaterThanOrEqualTo]:Be(([i,e])=>`(${i} >= ${e})`),[v.LessThan]:Be(([i,e])=>`(${i} < ${e})`),[v.LessThanOrEqualTo]:Be(([i,e])=>`(${i} <= ${e})`),[v.Multiply]:Be(i=>`(${i.join(" * ")})`),[v.Divide]:Be(([i,e])=>`(${i} / ${e})`),[v.Add]:Be(i=>`(${i.join(" + ")})`),[v.Subtract]:Be(([i,e])=>`(${i} - ${e})`),[v.Clamp]:Be(([i,e,t])=>`clamp(${i}, ${e}, ${t})`),[v.Mod]:Be(([i,e])=>`mod(${i}, ${e})`),[v.Pow]:Be(([i,e])=>`pow(${i}, ${e})`),[v.Abs]:Be(([i])=>`abs(${i})`),[v.Floor]:Be(([i])=>`floor(${i})`),[v.Ceil]:Be(([i])=>`ceil(${i})`),[v.Round]:Be(([i])=>`floor(${i} + 0.5)`),[v.Sin]:Be(([i])=>`sin(${i})`),[v.Cos]:Be(([i])=>`cos(${i})`),[v.Atan]:Be(([i,e])=>e!==void 0?`atan(${i}, ${e})`:`atan(${i})`),[v.Sqrt]:Be(([i])=>`sqrt(${i})`),[v.Match]:Be(i=>{let e=i[0],t=i[i.length-1],n=null;for(let r=i.length-3;r>=1;r-=2){let o=i[r],s=i[r+1];n=`(${e} == ${o} ? ${s} : ${n||t})`}return n}),[v.Between]:Be(([i,e,t])=>`(${i} >= ${e} && ${i} <= ${t})`),[v.Interpolate]:Be(([i,e,...t])=>{let n="";for(let r=0;r{let e=i[i.length-1],t=null;for(let n=i.length-3;n>=0;n-=2){let r=i[n],o=i[n+1];t=`(${r} ? ${o} : ${t||e})`}return t}),[v.In]:Be(([i,...e],t)=>{let n=T1("in",t),r=[];for(let o=0;o{this.uniforms_.push({value:e.uniforms[s],location:t.getUniformLocation(this.renderTargetProgram_,s)})})}getRenderTargetTexture(){return this.renderTargetTexture_}getGL(){return this.gl_}init(e){let t=this.getGL(),n=[t.drawingBufferWidth*this.scaleRatio_,t.drawingBufferHeight*this.scaleRatio_];if(t.bindFramebuffer(t.FRAMEBUFFER,this.getFrameBuffer()),t.bindRenderbuffer(t.RENDERBUFFER,this.getDepthBuffer()),t.viewport(0,0,n[0],n[1]),!this.renderTargetTextureSize_||this.renderTargetTextureSize_[0]!==n[0]||this.renderTargetTextureSize_[1]!==n[1]){this.renderTargetTextureSize_=n;let r=0,o=t.RGBA,s=0,a=t.RGBA,l=t.UNSIGNED_BYTE,A=null;t.bindTexture(t.TEXTURE_2D,this.renderTargetTexture_),t.texImage2D(t.TEXTURE_2D,r,o,n[0],n[1],s,a,l,A),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.renderTargetTexture_,0),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,n[0],n[1]),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,this.depthBuffer_)}}apply(e,t,n,r){let o=this.getGL(),s=e.size;if(o.bindFramebuffer(o.FRAMEBUFFER,t?t.getFrameBuffer():null),o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.renderTargetTexture_),!t){let l=W(o.canvas);if(!e.renderTargets[l]){let A=o.getContextAttributes();A&&A.preserveDrawingBuffer&&(o.clearColor(0,0,0,0),o.clearDepth(1),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT)),e.renderTargets[l]=!0}}o.disable(o.DEPTH_TEST),o.enable(o.BLEND),o.blendFunc(o.ONE,o.ONE_MINUS_SRC_ALPHA),o.viewport(0,0,o.drawingBufferWidth,o.drawingBufferHeight),o.bindBuffer(o.ARRAY_BUFFER,this.renderTargetVerticesBuffer_),o.useProgram(this.renderTargetProgram_),o.enableVertexAttribArray(this.renderTargetAttribLocation_),o.vertexAttribPointer(this.renderTargetAttribLocation_,2,o.FLOAT,!1,0,0),o.uniform2f(this.renderTargetUniformLocation_,s[0],s[1]),o.uniform1i(this.renderTargetTextureLocation_,0);let a=e.layerStatesArray[e.layerIndex].opacity;o.uniform1f(this.renderTargetOpacityLocation_,a),this.applyUniforms(e),n&&n(o,e),o.drawArrays(o.TRIANGLES,0,6),r&&r(o,e)}getFrameBuffer(){return this.frameBuffer_}getDepthBuffer(){return this.depthBuffer_}applyUniforms(e){let t=this.getGL(),n,r=1;this.uniforms_.forEach(function(o){if(n=typeof o.value=="function"?o.value(e):o.value,n instanceof HTMLCanvasElement||n instanceof ImageData)o.texture||(o.texture=t.createTexture()),t.activeTexture(t[`TEXTURE${r}`]),t.bindTexture(t.TEXTURE_2D,o.texture),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),n instanceof ImageData?t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,n.width,n.height,0,t.UNSIGNED_BYTE,new Uint8Array(n.data)):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n),t.uniform1i(o.location,r++);else if(Array.isArray(n))switch(n.length){case 2:t.uniform2f(o.location,n[0],n[1]);return;case 3:t.uniform3f(o.location,n[0],n[1],n[2]);return;case 4:t.uniform4f(o.location,n[0],n[1],n[2],n[3]);return;default:return}else typeof n=="number"&&t.uniform1f(o.location,n)})}},tE=eE;var Mr={PROJECTION_MATRIX:"u_projectionMatrix",SCREEN_TO_WORLD_MATRIX:"u_screenToWorldMatrix",TIME:"u_time",ZOOM:"u_zoom",RESOLUTION:"u_resolution",ROTATION:"u_rotation",VIEWPORT_SIZE_PX:"u_viewportSizePx",PIXEL_RATIO:"u_pixelRatio",HIT_DETECTION:"u_hitDetection"},Ut={UNSIGNED_BYTE:jB,UNSIGNED_SHORT:WB,UNSIGNED_INT:JB,FLOAT:$0},Af={};function ZB(i){return"shared/"+i}var e1=0;function RD(){let i="unique/"+e1;return e1+=1,i}function QD(i){let e=Af[i];if(!e){let t=document.createElement("canvas");t.width=1,t.height=1,t.style.position="absolute",t.style.left="0",e={users:0,context:$B(t)},Af[i]=e}return e.users+=1,e.context}function bD(i){let e=Af[i];if(!e||(e.users-=1,e.users>0))return;let t=e.context,n=t.getExtension("WEBGL_lose_context");n&&n.loseContext();let r=t.canvas;r.width=1,r.height=1,delete Af[i]}var iE=class extends xr{constructor(e){super(),e=e||{},this.boundHandleWebGLContextLost_=this.handleWebGLContextLost.bind(this),this.boundHandleWebGLContextRestored_=this.handleWebGLContextRestored.bind(this),this.canvasCacheKey_=e.canvasCacheKey?ZB(e.canvasCacheKey):RD(),this.gl_=QD(this.canvasCacheKey_),this.bufferCache_={},this.extensionCache_={},this.currentProgram_=null,this.needsToBeRecreated_=!1;let t=this.gl_.canvas;t.addEventListener(Bc.LOST,this.boundHandleWebGLContextLost_),t.addEventListener(Bc.RESTORED,this.boundHandleWebGLContextRestored_),this.offsetRotateMatrix_=Ce(),this.offsetScaleMatrix_=Ce(),this.tmpMat4_=Kn(),this.uniformLocationsByProgram_={},this.attribLocationsByProgram_={},this.uniforms_=[],e.uniforms&&this.setUniforms(e.uniforms),this.postProcessPasses_=e.postProcesses?e.postProcesses.map(n=>new tE({webGlContext:this.gl_,scaleRatio:n.scaleRatio,vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,uniforms:n.uniforms})):[new tE({webGlContext:this.gl_})],this.shaderCompileErrors_=null,this.startTime_=Date.now()}setUniforms(e){this.uniforms_=[],this.addUniforms(e)}addUniforms(e){for(let t in e)this.uniforms_.push({name:t,value:e[t]})}canvasCacheKeyMatches(e){return this.canvasCacheKey_===ZB(e)}getExtension(e){if(e in this.extensionCache_)return this.extensionCache_[e];let t=this.gl_.getExtension(e);return this.extensionCache_[e]=t,t}bindBuffer(e){let t=this.gl_,n=W(e),r=this.bufferCache_[n];if(!r){let o=t.createBuffer();r={buffer:e,webGlBuffer:o},this.bufferCache_[n]=r}t.bindBuffer(e.getType(),r.webGlBuffer)}flushBufferData(e){let t=this.gl_;this.bindBuffer(e),t.bufferData(e.getType(),e.getArray(),e.getUsage())}deleteBuffer(e){let t=W(e);delete this.bufferCache_[t]}disposeInternal(){let e=this.gl_.canvas;e.removeEventListener(Bc.LOST,this.boundHandleWebGLContextLost_),e.removeEventListener(Bc.RESTORED,this.boundHandleWebGLContextRestored_),bD(this.canvasCacheKey_),delete this.gl_}prepareDraw(e,t,n){let r=this.gl_,o=this.getCanvas(),s=e.size,a=e.pixelRatio;(o.width!==s[0]*a||o.height!==s[1]*a)&&(o.width=s[0]*a,o.height=s[1]*a,o.style.width=s[0]+"px",o.style.height=s[1]+"px");for(let l=this.postProcessPasses_.length-1;l>=0;l--)this.postProcessPasses_[l].init(e);r.bindTexture(r.TEXTURE_2D,null),r.clearColor(0,0,0,0),r.depthRange(0,1),r.clearDepth(1),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT),r.enable(r.BLEND),r.blendFunc(r.ONE,t?r.ZERO:r.ONE_MINUS_SRC_ALPHA),n?(r.enable(r.DEPTH_TEST),r.depthFunc(r.LEQUAL)):r.disable(r.DEPTH_TEST)}bindFrameBuffer(e,t){let n=this.getGL();n.bindFramebuffer(n.FRAMEBUFFER,e),t&&n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,t,0)}bindInitialFrameBuffer(){let e=this.getGL(),t=this.postProcessPasses_[0].getFrameBuffer();e.bindFramebuffer(e.FRAMEBUFFER,t);let n=this.postProcessPasses_[0].getRenderTargetTexture();e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0)}bindTexture(e,t,n){let r=this.gl_;r.activeTexture(r.TEXTURE0+t),r.bindTexture(r.TEXTURE_2D,e),r.uniform1i(this.getUniformLocation(n),t)}bindAttribute(e,t,n){let r=this.getGL();this.bindBuffer(e);let o=this.getAttributeLocation(t);r.enableVertexAttribArray(o),r.vertexAttribPointer(o,n,r.FLOAT,!1,0,0)}prepareDrawToRenderTarget(e,t,n,r){let o=this.gl_,s=t.getSize();o.bindFramebuffer(o.FRAMEBUFFER,t.getFramebuffer()),o.bindRenderbuffer(o.RENDERBUFFER,t.getDepthbuffer()),o.viewport(0,0,s[0],s[1]),o.bindTexture(o.TEXTURE_2D,t.getTexture()),o.clearColor(0,0,0,0),o.depthRange(0,1),o.clearDepth(1),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT),o.enable(o.BLEND),o.blendFunc(o.ONE,n?o.ZERO:o.ONE_MINUS_SRC_ALPHA),r?(o.enable(o.DEPTH_TEST),o.depthFunc(o.LEQUAL)):o.disable(o.DEPTH_TEST)}drawElements(e,t){let n=this.gl_;this.getExtension("OES_element_index_uint");let r=n.UNSIGNED_INT,o=4,s=t-e,a=e*o;n.drawElements(n.TRIANGLES,s,r,a)}finalizeDraw(e,t,n){for(let r=0,o=this.postProcessPasses_.length;r{if(n=typeof o.value=="function"?o.value(e):o.value,n instanceof HTMLCanvasElement||n instanceof HTMLImageElement||n instanceof ImageData||n instanceof WebGLTexture){n instanceof WebGLTexture&&!o.texture?(o.prevValue=void 0,o.texture=n):o.texture||(o.prevValue=void 0,o.texture=t.createTexture()),this.bindTexture(o.texture,r,o.name),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE);let s=!(n instanceof HTMLImageElement)||n.complete;!(n instanceof WebGLTexture)&&s&&o.prevValue!==n&&(o.prevValue=n,t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n)),r++}else if(Array.isArray(n)&&n.length===6)this.setUniformMatrixValue(o.name,Xn(this.tmpMat4_,n));else if(Array.isArray(n)&&n.length<=4)switch(n.length){case 2:t.uniform2f(this.getUniformLocation(o.name),n[0],n[1]);return;case 3:t.uniform3f(this.getUniformLocation(o.name),n[0],n[1],n[2]);return;case 4:t.uniform4f(this.getUniformLocation(o.name),n[0],n[1],n[2],n[3]);return;default:return}else typeof n=="number"&&t.uniform1f(this.getUniformLocation(o.name),n)})}useProgram(e,t){this.gl_.useProgram(e),this.currentProgram_=e,t&&(this.applyFrameState(t),this.applyUniforms(t))}compileShader(e,t){let n=this.gl_,r=n.createShader(t);return n.shaderSource(r,e),n.compileShader(r),r}getProgram(e,t){let n=this.gl_,r=this.compileShader(e,n.FRAGMENT_SHADER),o=this.compileShader(t,n.VERTEX_SHADER),s=n.createProgram();if(n.attachShader(s,r),n.attachShader(s,o),n.linkProgram(s),!n.getShaderParameter(r,n.COMPILE_STATUS)){let a=`Fragment shader compilation failed: ${n.getShaderInfoLog(r)}`;throw new Error(a)}if(n.deleteShader(r),!n.getShaderParameter(o,n.COMPILE_STATUS)){let a=`Vertex shader compilation failed: ${n.getShaderInfoLog(o)}`;throw new Error(a)}if(n.deleteShader(o),!n.getProgramParameter(s,n.LINK_STATUS)){let a=`GL program linking failed: ${n.getProgramInfoLog(s)}`;throw new Error(a)}return s}getUniformLocation(e){let t=W(this.currentProgram_);return this.uniformLocationsByProgram_[t]===void 0&&(this.uniformLocationsByProgram_[t]={}),this.uniformLocationsByProgram_[t][e]===void 0&&(this.uniformLocationsByProgram_[t][e]=this.gl_.getUniformLocation(this.currentProgram_,e)),this.uniformLocationsByProgram_[t][e]}getAttributeLocation(e){let t=W(this.currentProgram_);return this.attribLocationsByProgram_[t]===void 0&&(this.attribLocationsByProgram_[t]={}),this.attribLocationsByProgram_[t][e]===void 0&&(this.attribLocationsByProgram_[t][e]=this.gl_.getAttribLocation(this.currentProgram_,e)),this.attribLocationsByProgram_[t][e]}makeProjectionTransform(e,t){let n=e.size,r=e.viewState.rotation,o=e.viewState.resolution,s=e.viewState.center;return ct(t,0,0,2/(o*n[0]),2/(o*n[1]),-r,-s[0],-s[1]),t}setUniformFloatValue(e,t){this.gl_.uniform1f(this.getUniformLocation(e),t)}setUniformFloatVec2(e,t){this.gl_.uniform2fv(this.getUniformLocation(e),t)}setUniformFloatVec4(e,t){this.gl_.uniform4fv(this.getUniformLocation(e),t)}setUniformMatrixValue(e,t){this.gl_.uniformMatrix4fv(this.getUniformLocation(e),!1,t)}enableAttributeArray_(e,t,n,r,o){let s=this.getAttributeLocation(e);s<0||(this.gl_.enableVertexAttribArray(s),this.gl_.vertexAttribPointer(s,t,n,!1,r,o))}enableAttributes(e){let t=DD(e),n=0;for(let r=0;r{this.clearCache(),this.removeHelper()},e.addChangeListener(ke.MAP,this.onMapChanged_),this.dispatchPreComposeEvent=this.dispatchPreComposeEvent.bind(this),this.dispatchPostComposeEvent=this.dispatchPostComposeEvent.bind(this)}dispatchPreComposeEvent(e,t){let n=this.getLayer();if(n.hasListener(mt.PRECOMPOSE)){let r=new fs(mt.PRECOMPOSE,void 0,t,e);n.dispatchEvent(r)}}dispatchPostComposeEvent(e,t){let n=this.getLayer();if(n.hasListener(mt.POSTCOMPOSE)){let r=new fs(mt.POSTCOMPOSE,void 0,t,e);n.dispatchEvent(r)}}reset(e){this.uniforms_=e.uniforms,this.helper&&this.helper.setUniforms(this.uniforms_)}removeHelper(){this.helper&&(this.helper.dispose(),delete this.helper)}prepareFrame(e){if(this.getLayer().getRenderSource()){let t=!0,n=-1,r;for(let s=0,a=e.layerStatesArray.length;s=p;--m){let C=A.getTileRangeForExtentAndZ(t,m,this.tempTileRange_),_=A.getResolution(m);for(let y=C.minX;y<=C.maxX;++y)for(let w=C.minY;w<=C.maxY;++w){if(d&&!A.tileCoordIntersectsViewport([m,y,w],I))continue;let T=Co(m,y,w,this.tempTileCoord_),E=uf(l,T),x,B;if(f.containsKey(E)&&(x=f.get(E),B=x.tile),(!x||x.tile.key!==l.getKey())&&(B=l.getTile(m,y,w,e.pixelRatio,s.projection),!B)||a1(r,B))continue;x?x.setTile(B):(x=this.createTileRepresentation({tile:B,grid:A,helper:this.helper,gutter:c}),f.set(E,x)),l1(r,x,m);let R=B.getKey();u[R]=!0,B.getState()===V.IDLE&&(e.tileQueue.isKeyQueued(R)||e.tileQueue.enqueue([B,h,A.getTileCoordCenter(T),_]))}}}beforeTilesRender(e,t){this.helper.prepareDraw(this.frameState,!t,!0)}beforeTilesMaskRender(e){return!1}renderTile(e,t,n,r,o,s,a,l,A,c,h){}renderTileMask(e,t,n,r){}drawTile_(e,t,n,r,o,s,a){if(!t.ready)return;let A=t.tile.tileCoord,c=oa(A),h=c in s?s[c]:1,u=a.getResolution(n),f=Fe(a.getTileSize(n),this.tempSize_),g=a.getOrigin(n),p=a.getTileCoordExtent(A),d=h<1?-1:s1(n);h<1&&(e.animate=!0);let I=e.viewState,m=I.center[0],C=I.center[1],_=f[0]+2*r,y=f[1]+2*r,w=_/y,T=(m-g[0])/(f[0]*u),E=(g[1]-C)/(f[1]*u),x=I.resolution/u,B=A[1],R=A[2];TA(this.tileTransform_),is(this.tileTransform_,2/(e.size[0]*x/_),-2/(e.size[1]*x/_)),d_(this.tileTransform_,I.rotation),is(this.tileTransform_,1,1/w),ns(this.tileTransform_,(f[0]*(B-T)-r)/_,(f[1]*(R-E)-r)/y),this.renderTile(t,this.tileTransform_,e,o,u,f,g,p,d,r,h)}renderFrame(e){this.frameState=e,this.renderComplete=!0;let t=this.helper.getGL();this.preRender(t,e);let n=e.viewState,r=this.getLayer(),o=r.getRenderSource(),s=o.getTileGridForProjection(n.projection),a=o.getGutterForProjection(n.projection),l=sE(e,e.extent),A=s.getZForResolution(n.resolution,o.zDirection),c=MD(),h=r.getPreload();if(e.nextExtent){let C=s.getZForResolution(n.nextResolution,o.zDirection),_=sE(e,e.nextExtent);this.enqueueTiles(e,_,C,c,h)}this.enqueueTiles(e,l,A,c,0),h>0&&setTimeout(()=>{this.enqueueTiles(e,l,A-1,c,h-1)},0);let u={},f=!1,g=c.representationsByZ;if(A in g){let C=W(this),_=e.time;for(let y of g[A]){let w=y.tile;if(w.getState()===V.EMPTY)continue;let T=w.tileCoord;if(y.ready){let B=w.getAlpha(C,_);if(B===1){w.endTransition(C);continue}f=!0;let R=oa(T);u[R]=B}if(this.renderComplete=!1,this.findAltTiles_(s,T,A+1,c))continue;let x=s.getMinZoom();for(let B=A-1;B>=x&&!this.findAltTiles_(s,T,B,c);--B);}}let p=Object.keys(g).map(Number).sort(Nh);if(this.beforeTilesMaskRender(e))for(let C=0,_=p.length;C<_;++C){let y=p[C];for(let w of g[y]){let T=w.tile.tileCoord;if(oa(T)in u)continue;let x=s.getTileCoordExtent(T);this.renderTileMask(w,y,x,s1(y))}}this.beforeTilesRender(e,f);for(let C=0,_=p.length;C<_;++C){let y=p[C];for(let w of g[y]){let T=w.tile.tileCoord;oa(T)in u||this.drawTile_(e,w,y,a,l,u,s)}}if(A in g)for(let C of g[A]){let _=C.tile.tileCoord;oa(_)in u&&this.drawTile_(e,C,A,a,l,u,s)}this.beforeFinalize(e),this.helper.finalizeDraw(e,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);let I=this.helper.getCanvas(),m=this.tileRepresentationCache;for(;m.canExpireCache();)m.pop().dispose();return this.postRender(t,e),I}beforeFinalize(e){}findAltTiles_(e,t,n,r){let o=e.getTileRangeForTileCoordAndZ(t,n,this.tempTileRange_);if(!o)return!1;let s=!0,a=this.tileRepresentationCache,l=this.getLayer().getRenderSource();for(let A=o.minX;A<=o.maxX;++A)for(let c=o.minY;c<=o.maxY;++c){let h=uf(l,[n,A,c]),u=!1;if(a.containsKey(h)){let f=a.get(h);f.ready&&!a1(r,f.tile)&&(l1(r,f,n),u=!0)}u||(s=!1)}return s}clearCache(){super.clearCache();let e=this.tileRepresentationCache;e.forEach(t=>t.dispose()),e.clear()}afterHelperCreated(){super.afterHelperCreated(),this.tileRepresentationCache.forEach(e=>e.setHelper(this.helper))}disposeInternal(){super.disposeInternal(),delete this.frameState}},gf=aE;var Ie={...ff,TILE_TEXTURE_ARRAY:"u_tileTextures",TEXTURE_PIXEL_WIDTH:"u_texturePixelWidth",TEXTURE_PIXEL_HEIGHT:"u_texturePixelHeight",TEXTURE_RESOLUTION:"u_textureResolution",TEXTURE_ORIGIN_X:"u_textureOriginX",TEXTURE_ORIGIN_Y:"u_textureOriginY"},wc={TEXTURE_COORD:"a_textureCoord"},kD=[{name:wc.TEXTURE_COORD,size:2,type:Ut.FLOAT}],lE=class extends gf{constructor(e,t){super(e,t),this.program_,this.vertexShader_=t.vertexShader,this.fragmentShader_=t.fragmentShader,this.indices_=new fr(_o,Lr),this.indices_.fromArray([0,1,3,1,2,3]),this.paletteTextures_=t.paletteTextures||[]}reset(e){if(super.reset(e),this.helper){let t=this.helper.getGL();for(let n of this.paletteTextures_)n.delete(t)}if(this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.paletteTextures_=e.paletteTextures||[],this.helper){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_);let t=this.helper.getGL();for(let n of this.paletteTextures_)n.getTexture(t)}}afterHelperCreated(){super.afterHelperCreated();let e=this.helper.getGL();for(let t of this.paletteTextures_)t.getTexture(e);this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.helper.flushBufferData(this.indices_)}removeHelper(){if(this.helper){let e=this.helper.getGL();for(let t of this.paletteTextures_)t.delete(e)}super.removeHelper()}createTileRepresentation(e){return new o1(e)}beforeTilesRender(e,t){super.beforeTilesRender(e,t),this.helper.useProgram(this.program_,e)}renderTile(e,t,n,r,o,s,a,l,A,c,h){let u=this.helper.getGL();this.helper.bindBuffer(e.coords),this.helper.bindBuffer(this.indices_),this.helper.enableAttributes(kD);let f=0;for(;f0&&(y=l,Ze(y,r,y)),this.helper.setUniformFloatVec4(Ie.RENDER_EXTENT,y),this.helper.setUniformFloatValue(Ie.RESOLUTION,g.resolution),this.helper.setUniformFloatValue(Ie.ZOOM,g.zoom),this.helper.setUniformFloatValue(Ie.TEXTURE_PIXEL_WIDTH,p),this.helper.setUniformFloatValue(Ie.TEXTURE_PIXEL_HEIGHT,d),this.helper.setUniformFloatValue(Ie.TEXTURE_RESOLUTION,o),this.helper.setUniformFloatValue(Ie.TEXTURE_ORIGIN_X,a[0]+C*s[0]*o-c*o),this.helper.setUniformFloatValue(Ie.TEXTURE_ORIGIN_Y,a[1]-_*s[1]*o+c*o),this.helper.drawElements(0,this.indices_.getSize())}getData(e){if(!this.helper.getGL())return null;let n=this.frameState;if(!n)return null;let r=this.getLayer(),o=be(n.pixelToCoordinateTransform,e.slice()),s=n.viewState,a=r.getExtent();if(a&&!di(Bt(a,s.projection),o))return null;let l=r.getSources(At([o]),s.resolution),A,c,h;for(A=l.length-1;A>=0;--A)if(c=l[A],c.getState()==="ready"){if(h=c.getTileGridForProjection(s.projection),c.getWrapX())break;let f=h.getExtent();if(!f||di(f,o))break}if(A<0)return null;let u=this.tileRepresentationCache;for(let f=h.getZForResolution(s.resolution);f>=h.getMinZoom();--f){let g=h.getTileCoordForCoordAndZ(o,f),p=uf(c,g);if(!u.containsKey(p))continue;let d=u.get(p);if(d.tile.getState()===V.EMPTY)return null;if(!d.loaded)continue;let m=h.getOrigin(f),C=Fe(h.getTileSize(f)),_=h.getResolution(f),y=(o[0]-m[0])/_-g[1]*C[0],w=(m[1]-o[1])/_-g[2]*C[1];return d.getPixelData(y,w)}return null}disposeInternal(){let e=this.helper;if(e){let t=e.getGL();for(let n of this.paletteTextures_)n.delete(t);this.paletteTextures_.length=0,t.deleteProgram(this.program_),delete this.program_,e.deleteBuffer(this.indices_)}super.disposeInternal(),delete this.indices_}},A1=lE;var AE=class{constructor(e,t){this.name=e,this.data=t,this.texture_=null}getTexture(e){if(!this.texture_){let t=e.createTexture();e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,this.data.length/4,1,0,e.RGBA,e.UNSIGNED_BYTE,this.data),this.texture_=t}return this.texture_}delete(e){this.texture_&&e.deleteTexture(this.texture_),this.texture_=null}},c1=AE;function PD(i,e){return`operator_${i}_${Object.keys(e.functions).length}`}function xo(i){let e=i.toString();return e.includes(".")?e:e+".0"}function uE(i){if(i.length<2||i.length>4)throw new Error("`formatArray` can only output `vec2`, `vec3` or `vec4` arrays.");return`vec${i.length}(${i.map(xo).join(", ")})`}function vc(i){let e=Nt(i),t=e.length>3?e[3]:1;return uE([e[0]/255,e[1]/255,e[2]/255,t])}function ND(i){let e=Fe(i);return uE(e)}var cE={},GD=0;function Bo(i){return i in cE||(cE[i]=GD++),cE[i]}function gr(i){return xo(Bo(i))}function _l(i){return"u_var_"+i}function xl(){return{variables:{},properties:{},functions:{},bandCount:0,featureId:!1,geometryType:!1}}var hE="getBandValue",fE="u_paletteTextures",gE="featureId",dE="geometryType",df=-9999999;function h1(i,e,t,n){let r=Gt(i,e,t);return pE(r,e,n)}function Xe(i){return(e,t,n)=>{let r=t.args.length,o=new Array(r);for(let s=0;s{let n=e.args[0].value;return n in i.properties||(i.properties[n]={name:n,type:e.type}),"a_prop_"+n},[G.Id]:i=>(i.featureId=!0,"a_"+gE),[G.GeometryType]:i=>(i.geometryType=!0,"a_"+dE),[G.LineMetric]:()=>"currentLineMetric",[G.Var]:(i,e)=>{let n=e.args[0].value;return n in i.variables||(i.variables[n]={name:n,type:e.type}),_l(n)},[G.Has]:(i,e)=>{let n=e.args[0].value;return n in i.properties||(i.properties[n]={name:n,type:e.type}),`(a_prop_${n} != ${xo(df)})`},[G.Resolution]:()=>"u_resolution",[G.Zoom]:()=>"u_zoom",[G.Time]:()=>"u_time",[G.Any]:Xe(i=>`(${i.join(" || ")})`),[G.All]:Xe(i=>`(${i.join(" && ")})`),[G.Not]:Xe(([i])=>`(!${i})`),[G.Equal]:Xe(([i,e])=>`(${i} == ${e})`),[G.NotEqual]:Xe(([i,e])=>`(${i} != ${e})`),[G.GreaterThan]:Xe(([i,e])=>`(${i} > ${e})`),[G.GreaterThanOrEqualTo]:Xe(([i,e])=>`(${i} >= ${e})`),[G.LessThan]:Xe(([i,e])=>`(${i} < ${e})`),[G.LessThanOrEqualTo]:Xe(([i,e])=>`(${i} <= ${e})`),[G.Multiply]:Xe(i=>`(${i.join(" * ")})`),[G.Divide]:Xe(([i,e])=>`(${i} / ${e})`),[G.Add]:Xe(i=>`(${i.join(" + ")})`),[G.Subtract]:Xe(([i,e])=>`(${i} - ${e})`),[G.Clamp]:Xe(([i,e,t])=>`clamp(${i}, ${e}, ${t})`),[G.Mod]:Xe(([i,e])=>`mod(${i}, ${e})`),[G.Pow]:Xe(([i,e])=>`pow(${i}, ${e})`),[G.Abs]:Xe(([i])=>`abs(${i})`),[G.Floor]:Xe(([i])=>`floor(${i})`),[G.Ceil]:Xe(([i])=>`ceil(${i})`),[G.Round]:Xe(([i])=>`floor(${i} + 0.5)`),[G.Sin]:Xe(([i])=>`sin(${i})`),[G.Cos]:Xe(([i])=>`cos(${i})`),[G.Atan]:Xe(([i,e])=>e!==void 0?`atan(${i}, ${e})`:`atan(${i})`),[G.Sqrt]:Xe(([i])=>`sqrt(${i})`),[G.Match]:Xe(i=>{let e=i[0],t=i[i.length-1],n=null;for(let r=i.length-3;r>=1;r-=2){let o=i[r],s=i[r+1];n=`(${e} == ${o} ? ${s} : ${n||t})`}return n}),[G.Between]:Xe(([i,e,t])=>`(${i} >= ${e} && ${i} <= ${t})`),[G.Interpolate]:Xe(([i,e,...t])=>{let n="";for(let r=0;r{let e=i[i.length-1],t=null;for(let n=i.length-3;n>=0;n-=2){let r=i[n],o=i[n+1];t=`(${r} ? ${o} : ${t||e})`}return t}),[G.In]:Xe(([i,...e],t)=>{let n=PD("in",t),r=[];for(let o=0;o`vec${i.length}(${i.join(", ")})`),[v.Color]:Be(i=>{if(i.length===1)return`vec4(vec3(${i[0]} / 255.0), 1.0)`;if(i.length===2)return`vec4(vec3(${i[0]} / 255.0), ${i[1]})`;let e=i.slice(0,3).map(n=>`${n} / 255.0`);if(i.length===3)return`vec4(${e.join(", ")}, 1.0)`;let t=i[3];return`vec4(${e.join(", ")}, ${t})`}),[v.Band]:Be(([i,e,t],n)=>{if(!(jg in n.functions)){let r="",o=n.bandCount||1;for(let s=0;s`vec${i.length}(${i.join(", ")})`),[G.Color]:Xe(i=>{if(i.length===1)return`vec4(vec3(${i[0]} / 255.0), 1.0)`;if(i.length===2)return`vec4(vec3(${i[0]} / 255.0), ${i[1]})`;let e=i.slice(0,3).map(n=>`${n} / 255.0`);if(i.length===3)return`vec4(${e.join(", ")}, 1.0)`;let t=i[3];return`vec4(${e.join(", ")}, ${t})`}),[G.Band]:Xe(([i,e,t],n)=>{if(!(hE in n.functions)){let r="",o=n.bandCount||1;for(let s=0;s{let[t,...n]=e.args,r=n.length,o=new Uint8Array(r*4);for(let l=0;l0)return kn(i.value);if((i.type&ze)>0)return i.value.toString();if((i.type&Ke)>0)return Ti(i.value.toString());if((i.type&we)>0)return Ma(i.value);if((i.type&et)>0)return Wg(i.value);if((i.type&Ot)>0)return v1(i.value);throw new Error(`Unexpected expression ${i.value} (expected type ${Ur(e)})`)}function id(i,e,t,n){let r=0;for(let o in e){let s=e[o],a=s.callback.call(t,t.feature),A=a?.[0]??a;A===Wl&&console.warn('The "has" operator might return false positives.'),A===void 0?A=Wl:A===null&&(A=0),i[n+r++]=A,!(!s.size||s.size===1)&&(i[n+r++]=a[1],!(s.size<3)&&(i[n+r++]=a[2],!(s.size<4)&&(i[n+r++]=a[3])))}return r}function ka(i){return Object.keys(i).reduce((e,t)=>e+(i[t].size||1),0)}function J0(i,e,t,n){let r=(2+ka(t))*i.geometriesCount;(!e||e.length!==r)&&(e=new Float32Array(r));let o=[],s=0;for(let a in i.entries){let A=i.entries[a];for(let l=0,c=A.flatCoordss.length;l{let[t,...n]=e.args,r=n.length,o=new Uint8Array(r*4);for(let A=0;A0)return xo(i.value);if((i.type&It)>0)return i.value.toString();if((i.type&Rt)>0)return gr(i.value.toString());if((i.type&We)>0)return vc(i.value);if((i.type&Xt)>0)return uE(i.value);if((i.type&sn)>0)return ND(i.value);throw new Error(`Unexpected expression ${i.value} (expected type ${Js(e)})`)}function u1(){return{"fill-color":"rgba(255,255,255,0.4)","stroke-color":"#3399CC","stroke-width":1.25,"circle-radius":5,"circle-fill-color":"rgba(255,255,255,0.4)","circle-stroke-width":1.25,"circle-stroke-color":"#3399CC"}}var mE=.985;var Bl=`#ifdef GL_FRAGMENT_PRECISION_HIGH precision highp float; #else precision mediump float; @@ -66,7 +66,7 @@ uniform mediump int u_hitDetection; const float PI = 3.141592653589793238; const float TWO_PI = 2.0 * PI; float currentLineMetric = 0.; // an actual value will be used in the stroke shaders -`,os=Z0(),Zl=class{constructor(){this.uniforms_=[],this.attributes_=[],this.hasSymbol_=!1,this.symbolSizeExpression_=`vec2(${kn(os["circle-radius"])} + ${kn(os["circle-stroke-width"]*.5)})`,this.symbolRotationExpression_="0.0",this.symbolOffsetExpression_="vec2(0.0)",this.symbolColorExpression_=Ma(os["circle-fill-color"]),this.texCoordExpression_="vec4(0.0, 0.0, 1.0, 1.0)",this.discardExpression_="false",this.symbolRotateWithView_=!1,this.hasStroke_=!1,this.strokeWidthExpression_=kn(os["stroke-width"]),this.strokeColorExpression_=Ma(os["stroke-color"]),this.strokeOffsetExpression_="0.",this.strokeCapExpression_=Ti("round"),this.strokeJoinExpression_=Ti("round"),this.strokeMiterLimitExpression_="10.",this.strokeDistanceFieldExpression_="-1000.",this.hasFill_=!1,this.fillColorExpression_=Ma(os["fill-color"]),this.vertexShaderFunctions_=[],this.fragmentShaderFunctions_=[]}addUniform(e){return this.uniforms_.push(e),this}addAttribute(e,t,n,r){return this.attributes_.push({name:e,type:t,varyingName:e.replace(/^a_/,"v_"),varyingType:r??t,varyingExpression:n??e}),this}setSymbolSizeExpression(e){return this.hasSymbol_=!0,this.symbolSizeExpression_=e,this}getSymbolSizeExpression(){return this.symbolSizeExpression_}setSymbolRotationExpression(e){return this.symbolRotationExpression_=e,this}setSymbolOffsetExpression(e){return this.symbolOffsetExpression_=e,this}getSymbolOffsetExpression(){return this.symbolOffsetExpression_}setSymbolColorExpression(e){return this.hasSymbol_=!0,this.symbolColorExpression_=e,this}getSymbolColorExpression(){return this.symbolColorExpression_}setTextureCoordinateExpression(e){return this.texCoordExpression_=e,this}setFragmentDiscardExpression(e){return this.discardExpression_=e,this}getFragmentDiscardExpression(){return this.discardExpression_}setSymbolRotateWithView(e){return this.symbolRotateWithView_=e,this}setStrokeWidthExpression(e){return this.hasStroke_=!0,this.strokeWidthExpression_=e,this}setStrokeColorExpression(e){return this.hasStroke_=!0,this.strokeColorExpression_=e,this}getStrokeColorExpression(){return this.strokeColorExpression_}setStrokeOffsetExpression(e){return this.strokeOffsetExpression_=e,this}setStrokeCapExpression(e){return this.strokeCapExpression_=e,this}setStrokeJoinExpression(e){return this.strokeJoinExpression_=e,this}setStrokeMiterLimitExpression(e){return this.strokeMiterLimitExpression_=e,this}setStrokeDistanceFieldExpression(e){return this.strokeDistanceFieldExpression_=e,this}setFillColorExpression(e){return this.hasFill_=!0,this.fillColorExpression_=e,this}getFillColorExpression(){return this.fillColorExpression_}addVertexShaderFunction(e){return this.vertexShaderFunctions_.includes(e)?this:(this.vertexShaderFunctions_.push(e),this)}addFragmentShaderFunction(e){return this.fragmentShaderFunctions_.includes(e)?this:(this.fragmentShaderFunctions_.push(e),this)}getSymbolVertexShader(){return this.hasSymbol_?`${rs} +`,wl=u1(),Is=class{constructor(){this.uniforms_=[],this.attributes_=[],this.hasSymbol_=!1,this.symbolSizeExpression_=`vec2(${xo(wl["circle-radius"])} + ${xo(wl["circle-stroke-width"]*.5)})`,this.symbolRotationExpression_="0.0",this.symbolOffsetExpression_="vec2(0.0)",this.symbolColorExpression_=vc(wl["circle-fill-color"]),this.texCoordExpression_="vec4(0.0, 0.0, 1.0, 1.0)",this.discardExpression_="false",this.symbolRotateWithView_=!1,this.hasStroke_=!1,this.strokeWidthExpression_=xo(wl["stroke-width"]),this.strokeColorExpression_=vc(wl["stroke-color"]),this.strokeOffsetExpression_="0.",this.strokeCapExpression_=gr("round"),this.strokeJoinExpression_=gr("round"),this.strokeMiterLimitExpression_="10.",this.strokeDistanceFieldExpression_="-1000.",this.hasFill_=!1,this.fillColorExpression_=vc(wl["fill-color"]),this.vertexShaderFunctions_=[],this.fragmentShaderFunctions_=[]}addUniform(e){return this.uniforms_.push(e),this}addAttribute(e,t,n,r){return this.attributes_.push({name:e,type:t,varyingName:e.replace(/^a_/,"v_"),varyingType:r??t,varyingExpression:n??e}),this}setSymbolSizeExpression(e){return this.hasSymbol_=!0,this.symbolSizeExpression_=e,this}getSymbolSizeExpression(){return this.symbolSizeExpression_}setSymbolRotationExpression(e){return this.symbolRotationExpression_=e,this}setSymbolOffsetExpression(e){return this.symbolOffsetExpression_=e,this}getSymbolOffsetExpression(){return this.symbolOffsetExpression_}setSymbolColorExpression(e){return this.hasSymbol_=!0,this.symbolColorExpression_=e,this}getSymbolColorExpression(){return this.symbolColorExpression_}setTextureCoordinateExpression(e){return this.texCoordExpression_=e,this}setFragmentDiscardExpression(e){return this.discardExpression_=e,this}getFragmentDiscardExpression(){return this.discardExpression_}setSymbolRotateWithView(e){return this.symbolRotateWithView_=e,this}setStrokeWidthExpression(e){return this.hasStroke_=!0,this.strokeWidthExpression_=e,this}setStrokeColorExpression(e){return this.hasStroke_=!0,this.strokeColorExpression_=e,this}getStrokeColorExpression(){return this.strokeColorExpression_}setStrokeOffsetExpression(e){return this.strokeOffsetExpression_=e,this}setStrokeCapExpression(e){return this.strokeCapExpression_=e,this}setStrokeJoinExpression(e){return this.strokeJoinExpression_=e,this}setStrokeMiterLimitExpression(e){return this.strokeMiterLimitExpression_=e,this}setStrokeDistanceFieldExpression(e){return this.strokeDistanceFieldExpression_=e,this}setFillColorExpression(e){return this.hasFill_=!0,this.fillColorExpression_=e,this}getFillColorExpression(){return this.fillColorExpression_}addVertexShaderFunction(e){return this.vertexShaderFunctions_.includes(e)?this:(this.vertexShaderFunctions_.push(e),this)}addFragmentShaderFunction(e){return this.fragmentShaderFunctions_.includes(e)?this:(this.fragmentShaderFunctions_.push(e),this)}getSymbolVertexShader(){return this.hasSymbol_?`${Bl} ${this.uniforms_.map(e=>`uniform ${e};`).join(` `)} attribute vec2 a_position; @@ -127,7 +127,7 @@ void main(void) { v_centerPx = screenToPx(center.xy) + centerOffsetPx; ${this.attributes_.map(e=>` ${e.varyingName} = ${e.varyingExpression};`).join(` `)} -}`:null}getSymbolFragmentShader(){return this.hasSymbol_?`${rs} +}`:null}getSymbolFragmentShader(){return this.hasSymbol_?`${Bl} ${this.uniforms_.map(e=>`uniform ${e};`).join(` `)} varying vec2 v_texCoord; @@ -154,7 +154,7 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a if (gl_FragColor.a < 0.05) { discard; }; gl_FragColor = v_hitColor; } -}`:null}getStrokeVertexShader(){return this.hasStroke_?`${rs} +}`:null}getStrokeVertexShader(){return this.hasStroke_?`${Bl} ${this.uniforms_.map(e=>`uniform ${e};`).join(` `)} attribute vec2 a_segmentStart; @@ -239,7 +239,7 @@ void main(void) { vec2 joinDirection; vec2 positionPx = vertexNumber < 1.5 ? segmentStartPx : segmentEndPx; // if angle is too high, do not make a proper join - if (cos(angle) > ${nd} || isCap(angle)) { + if (cos(angle) > ${mE} || isCap(angle)) { joinDirection = normalPx * normalDir - tangentPx * tangentDir; } else { joinDirection = getJoinOffsetDirection(normalPx * normalDir, angle); @@ -256,7 +256,7 @@ void main(void) { v_measureEnd = a_measureEnd; ${this.attributes_.map(e=>` ${e.varyingName} = ${e.varyingExpression};`).join(` `)} -}`:null}getStrokeFragmentShader(){return this.hasStroke_?`${rs} +}`:null}getStrokeFragmentShader(){return this.hasStroke_?`${Bl} ${this.uniforms_.map(e=>`uniform ${e};`).join(` `)} varying vec2 v_segmentStart; @@ -320,7 +320,7 @@ float bevelJoinField(vec2 point, vec2 start, vec2 end, float width, float joinAn } float miterJoinDistanceField(vec2 point, vec2 start, vec2 end, float width, float joinAngle) { - if (cos(joinAngle) > ${nd}) { // avoid risking a division by zero + if (cos(joinAngle) > ${mE}) { // avoid risking a division by zero return bevelJoinField(point, start, end, width, joinAngle); } float miterLength = 1. / sin(joinAngle * 0.5); @@ -332,18 +332,18 @@ float miterJoinDistanceField(vec2 point, vec2 start, vec2 end, float width, floa } float capDistanceField(vec2 point, vec2 start, vec2 end, float width, float capType) { - if (capType == ${Ti("butt")}) { + if (capType == ${gr("butt")}) { return buttCapDistanceField(point, start, end); - } else if (capType == ${Ti("square")}) { + } else if (capType == ${gr("square")}) { return squareCapDistanceField(point, start, end, width); } return roundCapDistanceField(point, start, end, width); } float joinDistanceField(vec2 point, vec2 start, vec2 end, float width, float joinAngle, float joinType) { - if (joinType == ${Ti("bevel")}) { + if (joinType == ${gr("bevel")}) { return bevelJoinField(point, start, end, width, joinAngle); - } else if (joinType == ${Ti("miter")}) { + } else if (joinType == ${gr("miter")}) { return miterJoinDistanceField(point, start, end, width, joinAngle); } return roundJoinDistanceField(point, start, end, width); @@ -414,7 +414,7 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a if (gl_FragColor.a < 0.1) { discard; }; gl_FragColor = v_hitColor; } -}`:null}getFillVertexShader(){return this.hasFill_?`${rs} +}`:null}getFillVertexShader(){return this.hasFill_?`${Bl} ${this.uniforms_.map(e=>`uniform ${e};`).join(` `)} attribute vec2 a_position; @@ -432,7 +432,7 @@ void main(void) { v_hitColor = a_hitColor; ${this.attributes_.map(e=>` ${e.varyingName} = ${e.varyingExpression};`).join(` `)} -}`:null}getFillFragmentShader(){return this.hasFill_?`${rs} +}`:null}getFillFragmentShader(){return this.hasFill_?`${Bl} ${this.uniforms_.map(e=>`uniform ${e};`).join(` `)} varying vec4 v_hitColor; @@ -476,16 +476,16 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a if (gl_FragColor.a < 0.1) { discard; }; gl_FragColor = v_hitColor; } -}`:null}};function ne(i,e,t){let n=Hr();return X0(e,t,n,i)}function F1(i){let e=We(i),t=e[0]*256,n=e[1],r=e[2]*256,o=Math.round(e[3]*255);return[t+n,r+o]}var L1=`vec4 unpackColor(vec2 packedColor) { +}`:null}};function le(i,e,t){let n=Zs();return h1(e,t,n,i)}function UD(i){let e=Nt(i),t=e[0]*256,n=e[1],r=e[2]*256,o=Math.round(e[3]*255);return[t+n,r+o]}var zD=`vec4 unpackColor(vec2 packedColor) { return vec4( fract(floor(packedColor[0] / 256.0) / 256.0), fract(packedColor[0] / 256.0), fract(floor(packedColor[1] / 256.0) / 256.0), fract(packedColor[1] / 256.0) ); -}`;function ec(i){return i===we||i===Ot?2:i===et?4:1}function $l(i){let e=ec(i);return e>1?`vec${e}`:"float"}function $0(i,e){for(let t in e.variables){let n=e.variables[t],r=ns(n.name),o=$l(n.type);n.type===we&&(o="vec4"),i.addUniform(`${o} ${r}`)}for(let t in e.properties){let n=e.properties[t],r=$l(n.type),o=`a_prop_${n.name}`;n.type===we?(i.addAttribute(o,r,`unpackColor(${o})`,"vec4"),i.addVertexShaderFunction(L1)):i.addAttribute(o,r)}for(let t in e.functions)i.addVertexShaderFunction(e.functions[t]),i.addFragmentShaderFunction(e.functions[t])}function eC(i,e){let t={};for(let n in i.variables){let r=i.variables[n],o=ns(r.name);t[o]=()=>{let s=e[r.name];return typeof s=="number"?s:typeof s=="boolean"?s?1:0:r.type===we?We(s||"#eee"):typeof s=="string"?Pn(s):s}}return t}function tC(i){let e={};for(let t in i.properties){let n=i.properties[t],r=o=>{let s=o.get(n.name);return n.type===we?F1([...We(s||"#eee")]):typeof s=="string"?Pn(s):typeof s=="boolean"?s?1:0:s};e[`prop_${n.name}`]={size:ec(n.type),callback:r}}return e}function tc(i){return(JSON.stringify(i).split("").reduce((t,n)=>(t<<5)-t+n.charCodeAt(0),0)>>>0).toString()}function rd(i,e,t,n){if(`${n}radius`in i&&n!=="icon-"){let r=ne(t,i[`${n}radius`],q);if(`${n}radius2`in i){let o=ne(t,i[`${n}radius2`],q);r=`max(${r}, ${o})`}`${n}stroke-width`in i&&(r=`(${r} + ${ne(t,i[`${n}stroke-width`],q)} * 0.5)`),e.setSymbolSizeExpression(`vec2(${r} * 2. + 0.5)`)}if(`${n}scale`in i){let r=ne(t,i[`${n}scale`],Ot);e.setSymbolSizeExpression(`${e.getSymbolSizeExpression()} * ${r}`)}`${n}displacement`in i&&e.setSymbolOffsetExpression(ne(t,i[`${n}displacement`],et)),`${n}rotation`in i&&e.setSymbolRotationExpression(ne(t,i[`${n}rotation`],q)),`${n}rotate-with-view`in i&&e.setSymbolRotateWithView(!!i[`${n}rotate-with-view`])}function iC(i,e,t,n,r){let o="vec4(0.)";if(e!==null&&(o=e),t!==null&&n!==null){let A=`smoothstep(-${n} + 0.63, -${n} - 0.58, ${i})`;o=`mix(${t}, ${o}, ${A})`}let s=`(1.0 - smoothstep(-0.63, 0.58, ${i}))`,a=`${o} * vec4(1.0, 1.0, 1.0, ${s})`;return r!==null&&(a=`${a} * vec4(1.0, 1.0, 1.0, ${r})`),a}function od(i,e,t,n,r){let o=new Image;o.crossOrigin=i[`${n}cross-origin`]===void 0?"anonymous":i[`${n}cross-origin`],re(typeof i[`${n}src`]=="string",`WebGL layers do not support expressions for the ${n}src style property`),o.src=i[`${n}src`],t[`u_texture${r}_size`]=()=>o.complete?[o.width,o.height]:[0,0],e.addUniform(`vec2 u_texture${r}_size`);let s=`u_texture${r}_size`;return t[`u_texture${r}`]=o,e.addUniform(`sampler2D u_texture${r}`),s}function sd(i,e,t,n,r){let o=ne(t,i[`${e}offset`],et);if(`${e}offset-origin`in i)switch(i[`${e}offset-origin`]){case"top-right":o=`vec2(${n}.x, 0.) + ${r} * vec2(-1., 0.) + ${o} * vec2(-1., 1.)`;break;case"bottom-left":o=`vec2(0., ${n}.y) + ${r} * vec2(0., -1.) + ${o} * vec2(1., -1.)`;break;case"bottom-right":o=`${n} - ${r} - ${o}`;break;default:}return o}function M1(i,e,t,n){n.functions.circleDistanceField=`float circleDistanceField(vec2 point, float radius) { +}`;function mf(i){return i===We||i===sn?2:i===Xt?4:1}function pf(i){let e=mf(i);return e>1?`vec${e}`:"float"}function Ef(i,e){for(let t in e.variables){let n=e.variables[t],r=_l(n.name),o=pf(n.type);n.type===We&&(o="vec4"),i.addUniform(`${o} ${r}`)}for(let t in e.properties){let n=e.properties[t],r=pf(n.type),o=`a_prop_${n.name}`;n.type===We?(i.addAttribute(o,r,`unpackColor(${o})`,"vec4"),i.addVertexShaderFunction(zD)):i.addAttribute(o,r)}for(let t in e.functions)i.addVertexShaderFunction(e.functions[t]),i.addFragmentShaderFunction(e.functions[t])}function If(i,e){let t={};for(let n in i.variables){let r=i.variables[n],o=_l(r.name);t[o]=()=>{let s=e[r.name];return typeof s=="number"?s:typeof s=="boolean"?s?1:0:r.type===We?Nt(s||"#eee"):typeof s=="string"?Bo(s):s}}return t}function Cf(i){let e={};for(let t in i.properties){let n=i.properties[t],r=o=>{let s=o.get(n.name);return n.type===We?UD([...Nt(s||"#eee")]):typeof s=="string"?Bo(s):typeof s=="boolean"?s?1:0:s};e[`prop_${n.name}`]={size:mf(n.type),callback:r}}return e}var EE=class i{constructor(){this.globalCounter_=0,this.refToFeature_=new Map,this.uidToRef_=new Map,this.freeGlobalRef_=[],this.polygonBatch={entries:{},geometriesCount:0,verticesCount:0,ringsCount:0},this.pointBatch={entries:{},geometriesCount:0},this.lineStringBatch={entries:{},geometriesCount:0,verticesCount:0}}addFeatures(e,t){for(let n=0;n0?A[c-1]:null,g=f?f[f.length-1]:0,p=u[u.length-1];u=g>0?u.map(d=>d-g):u,this.addCoordinates_("Polygon",t.slice(g,p),u,r,o,s,a)}break}case"MultiLineString":{let A=n;for(let c=0,h=A.length;c0?A[c-1]:0;this.addCoordinates_("LineString",t.slice(u,A[c]),null,r,o,s,a)}break}case"MultiPoint":for(let A=0,c=t.length;A1){this.addCoordinates_("MultiPolygon",t,u,r,o,s,a);return}}this.polygonBatch.entries[o]||(this.polygonBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[],verticesCount:0,ringsCount:0,ringsVerticesCounts:[]})),l=t.length/s;let c=n.length,h=n.map((u,f,g)=>f>0?(u-g[f-1])/s:u/s);this.polygonBatch.verticesCount+=l,this.polygonBatch.ringsCount+=c,this.polygonBatch.geometriesCount++,this.polygonBatch.entries[o].flatCoordss.push(YD(t,s)),this.polygonBatch.entries[o].ringsVerticesCounts.push(h),this.polygonBatch.entries[o].verticesCount+=l,this.polygonBatch.entries[o].ringsCount+=c;for(let u=0,f=A.length;u0?A[u-1]:0;this.addCoordinates_("LinearRing",t.slice(g,A[u]),null,r,o,s,a)}break}case"Point":this.pointBatch.entries[o]||(this.pointBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[]})),this.pointBatch.geometriesCount++,this.pointBatch.entries[o].flatCoordss.push(t);break;case"LineString":case"LinearRing":this.lineStringBatch.entries[o]||(this.lineStringBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[],verticesCount:0})),l=t.length/s,this.lineStringBatch.verticesCount+=l,this.lineStringBatch.geometriesCount++,this.lineStringBatch.entries[o].flatCoordss.push(VD(t,s,a)),this.lineStringBatch.entries[o].verticesCount+=l;break;default:}}addRefToEntry_(e,t){let n=this.uidToRef_.get(e),r=n||this.freeGlobalRef_.pop()||++this.globalCounter_;return t.ref=r,n||(this.refToFeature_.set(r,t.feature),this.uidToRef_.set(e,r)),t}removeRef_(e,t){if(!e)throw new Error("This feature has no ref: "+t);this.refToFeature_.delete(e),this.uidToRef_.delete(t),this.freeGlobalRef_.push(e)}changeFeature(e){if(!this.uidToRef_.get(W(e)))return;this.removeFeature(e);let t=e.getGeometry();t&&this.addGeometry_(t,e)}removeFeature(e){let t=this.clearFeatureEntryInPointBatch_(e);t=this.clearFeatureEntryInPolygonBatch_(e)||t,t=this.clearFeatureEntryInLineStringBatch_(e)||t,t&&this.removeRef_(t.ref,W(t.feature))}clear(){this.polygonBatch.entries={},this.polygonBatch.geometriesCount=0,this.polygonBatch.verticesCount=0,this.polygonBatch.ringsCount=0,this.lineStringBatch.entries={},this.lineStringBatch.geometriesCount=0,this.lineStringBatch.verticesCount=0,this.pointBatch.entries={},this.pointBatch.geometriesCount=0,this.globalCounter_=0,this.freeGlobalRef_=[],this.refToFeature_.clear(),this.uidToRef_.clear()}getFeatureFromRef(e){return this.refToFeature_.get(e)}isEmpty(){return this.globalCounter_===0}filter(e){let t=new i;t.globalCounter_=this.globalCounter_,t.uidToRef_=this.uidToRef_,t.refToFeature_=this.refToFeature_;let n=!0;for(let r of this.refToFeature_.values())e(r)&&(t.addFeature(r),n=!1);return n?new i:t}};function YD(i,e){return e===2?i:i.filter((t,n)=>n%e<2)}function VD(i,e,t){return e===3&&t==="XYM"?i:e===4?i.filter((n,r)=>r%e!==2):e===3?i.map((n,r)=>r%e!==2?n:0):new Array(i.length*1.5).fill(0).map((n,r)=>r%3===2?0:i[Math.round(r/1.5)])}var yf=EE;function f1(){let i='function t(t,n,x=2){const o=n&&n.length,i=o?n[0]*x:t.length;let u=e(t,0,i,x,!0);const l=[];if(!u||u.next===u.prev)return l;let c,h,y;if(o&&(u=function(t,n,r,x){const o=[];for(let r=0,i=n.length;r80*x){c=1/0,h=1/0;let e=-1/0,n=-1/0;for(let r=x;re&&(e=x),o>n&&(n=o)}y=Math.max(e-c,n-h),y=0!==y?32767/y:0}return r(u,l,x,c,h,y,0),l}function e(t,e,n,r,x){let o;if(x===function(t,e,n,r){let x=0;for(let o=e,i=n-r;o0)for(let x=e;x=e;x-=r)o=w(x/r|0,t[x],t[x+1],o);return o&&g(o,o.next)&&(A(o),o=o.next),o}function n(t,e){if(!t)return t;e||(e=t);let n,r=t;do{if(n=!1,r.steiner||!g(r,r.next)&&0!==v(r.prev,r,r.next))r=r.next;else{if(A(r),r=e=r.prev,r===r.next)break;n=!0}}while(n||r!==e);return e}function r(t,e,f,s,l,a,h){if(!t)return;!h&&a&&function(t,e,n,r){let x=t;do{0===x.z&&(x.z=c(x.x,x.y,e,n,r)),x.prevZ=x.prev,x.nextZ=x.next,x=x.next}while(x!==t);x.prevZ.nextZ=null,x.prevZ=null,function(t){let e,n=1;do{let r,x=t;t=null;let o=null;for(e=0;x;){e++;let i=x,u=0;for(let t=0;t0||f>0&&i;)0!==u&&(0===f||!i||x.z<=i.z)?(r=x,x=x.nextZ,u--):(r=i,i=i.nextZ,f--),o?o.nextZ=r:t=r,r.prevZ=o,o=r;x=i}o.nextZ=null,n*=2}while(e>1)}(x)}(t,s,l,a);let y=t;for(;t.prev!==t.next;){const c=t.prev,p=t.next;if(a?o(t,s,l,a):x(t))e.push(c.i,t.i,p.i),A(t),t=p.next,y=p.next;else if((t=p)===y){h?1===h?r(t=i(n(t),e),e,f,s,l,a,2):2===h&&u(t,e,f,s,l,a):r(n(t),e,f,s,l,a,1);break}}}function x(t){const e=t.prev,n=t,r=t.next;if(v(e,n,r)>=0)return!1;const x=e.x,o=n.x,i=r.x,u=e.y,f=n.y,s=r.y,l=Math.min(x,o,i),c=Math.min(u,f,s),a=Math.max(x,o,i),h=Math.max(u,f,s);let p=r.next;for(;p!==e;){if(p.x>=l&&p.x<=a&&p.y>=c&&p.y<=h&&y(x,u,o,f,i,s,p.x,p.y)&&v(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function o(t,e,n,r){const x=t.prev,o=t,i=t.next;if(v(x,o,i)>=0)return!1;const u=x.x,f=o.x,s=i.x,l=x.y,a=o.y,h=i.y,p=Math.min(u,f,s),g=Math.min(l,a,h),b=Math.max(u,f,s),M=Math.max(l,a,h),m=c(p,g,e,n,r),Z=c(b,M,e,n,r);let d=t.prevZ,w=t.nextZ;for(;d&&d.z>=m&&w&&w.z<=Z;){if(d.x>=p&&d.x<=b&&d.y>=g&&d.y<=M&&d!==x&&d!==i&&y(u,l,f,a,s,h,d.x,d.y)&&v(d.prev,d,d.next)>=0)return!1;if(d=d.prevZ,w.x>=p&&w.x<=b&&w.y>=g&&w.y<=M&&w!==x&&w!==i&&y(u,l,f,a,s,h,w.x,w.y)&&v(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;d&&d.z>=m;){if(d.x>=p&&d.x<=b&&d.y>=g&&d.y<=M&&d!==x&&d!==i&&y(u,l,f,a,s,h,d.x,d.y)&&v(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;w&&w.z<=Z;){if(w.x>=p&&w.x<=b&&w.y>=g&&w.y<=M&&w!==x&&w!==i&&y(u,l,f,a,s,h,w.x,w.y)&&v(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function i(t,e){let r=t;do{const n=r.prev,x=r.next.next;!g(n,x)&&b(n,r,r.next,x)&&Z(n,x)&&Z(x,n)&&(e.push(n.i,r.i,x.i),A(r),A(r.next),r=t=x),r=r.next}while(r!==t);return n(r)}function u(t,e,x,o,i,u){let f=t;do{let t=f.next.next;for(;t!==f.prev;){if(f.i!==t.i&&p(f,t)){let s=d(f,t);return f=n(f,f.next),s=n(s,s.next),r(f,e,x,o,i,u,0),void r(s,e,x,o,i,u,0)}t=t.next}f=f.next}while(f!==t)}function f(t,e){let n=t.x-e.x;if(0===n&&(n=t.y-e.y,0===n)){n=(t.next.y-t.y)/(t.next.x-t.x)-(e.next.y-e.y)/(e.next.x-e.x)}return n}function s(t,e){const r=function(t,e){let n=e;const r=t.x,x=t.y;let o,i=-1/0;if(g(t,n))return n;do{if(g(t,n.next))return n.next;if(x<=n.y&&x>=n.next.y&&n.next.y!==n.y){const t=n.x+(x-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=r&&t>i&&(i=t,o=n.x=n.x&&n.x>=f&&r!==n.x&&h(xo.x||n.x===o.x&&l(o,n)))&&(o=n,c=e)}n=n.next}while(n!==u);return o}(t,e);if(!r)return e;const x=d(r,t);return n(x,x.next),n(r,r.next)}function l(t,e){return v(t.prev,t,e.prev)<0&&v(e.next,t,t.next)<0}function c(t,e,n,r,x){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*x|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*x|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function a(t){let e=t,n=t;do{(e.x=(t-i)*(o-u)&&(t-i)*(r-u)>=(n-i)*(e-u)&&(n-i)*(o-u)>=(x-i)*(r-u)}function y(t,e,n,r,x,o,i,u){return!(t===i&&e===u)&&h(t,e,n,r,x,o,i,u)}function p(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&b(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Z(t,e)&&Z(e,t)&&function(t,e){let n=t,r=!1;const x=(t.x+e.x)/2,o=(t.y+e.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&x<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==t);return r}(t,e)&&(v(t.prev,t,e.prev)||v(t,e.prev,e))||g(t,e)&&v(t.prev,t,t.next)>0&&v(e.prev,e,e.next)>0)}function v(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function g(t,e){return t.x===e.x&&t.y===e.y}function b(t,e,n,r){const x=m(v(t,e,n)),o=m(v(t,e,r)),i=m(v(n,r,t)),u=m(v(n,r,e));return x!==o&&i!==u||(!(0!==x||!M(t,n,e))||(!(0!==o||!M(t,r,e))||(!(0!==i||!M(n,t,r))||!(0!==u||!M(n,e,r)))))}function M(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function m(t){return t>0?1:t<0?-1:0}function Z(t,e){return v(t.prev,t,t.next)<0?v(t,e,t.next)>=0&&v(t,t.prev,e)>=0:v(t,e,t.prev)<0||v(t,t.next,e)<0}function d(t,e){const n=E(t.i,t.x,t.y),r=E(e.i,e.x,e.y),x=t.next,o=e.prev;return t.next=e,e.prev=t,n.next=x,x.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function w(t,e,n,r){const x=E(t,e,n);return r?(x.next=r.next,x.prev=r,r.next.prev=x,r.next=x):(x.prev=x,x.next=x),x}function A(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function E(t,e,n){return{i:t,x:e,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function I(t,e){const n=e[0],r=e[1];return e[0]=t[0]*n+t[2]*r+t[4],e[1]=t[1]*n+t[3]*r+t[5],e}function z(t,e){const n=(r=e)[0]*r[3]-r[1]*r[2];var r;!function(t,e){if(!t)throw new Error(e)}(0!==n,"Transformation matrix cannot be inverted");const x=e[0],o=e[1],i=e[2],u=e[3],f=e[4],s=e[5];return t[0]=u/n,t[1]=-o/n,t[2]=-i/n,t[3]=x/n,t[4]=(i*s-u*f)/n,t[5]=-(x*s-o*f)/n,t}new Array(6);const F=[],P={vertexPosition:0,indexPosition:0};function B(t,e,n,r,x){t[e+0]=n,t[e+1]=r,t[e+2]=x}function N(t,e,n,r,x,o){const i=3+x,u=t[e+0],f=t[e+1],s=F;s.length=x;for(let n=0;n0?f:2*Math.PI-f}let m=-1,Z=-1,d=l;const w=null!==x;if(null!==r){m=M(g,b,I(f,[...[t[r],t[r+1]]])),Math.cos(m)<=.985&&(d+=Math.tan((m-Math.PI)/2))}if(w){Z=M(b,g,I(f,[...[t[x],t[x+1]]])),Math.cos(Z)<=.985&&(d+=Math.tan((Math.PI-Z)/2))}function A(t,e){return 0===e?1e4*t:Math.sign(e)*(1e4*t+Math.abs(e))}return o.push(h[0],h[1],p,y[0],y[1],v,m,Z,s,A(0,l)),o.push(...u),o.push(h[0],h[1],p,y[0],y[1],v,m,Z,s,A(1,l)),o.push(...u),o.push(h[0],h[1],p,y[0],y[1],v,m,Z,s,A(2,l)),o.push(...u),o.push(h[0],h[1],p,y[0],y[1],v,m,Z,s,A(3,l)),o.push(...u),i.push(a,a+1,a+2,a+1,a+3,a+2),{length:s+Math.sqrt((b[0]-g[0])*(b[0]-g[0])+(b[1]-g[1])*(b[1]-g[1])),angle:d}}function S(e,n,r,x,o){const i=2+o;let u=n;const f=e.slice(u,u+o);u+=o;const s=e[u++];let l=0;const c=new Array(s-1);for(let t=0;t{const e=t.data;switch(e.type){case _:{const t=3,n=2,r=e.customAttributesSize,x=n+r,o=new Float32Array(e.renderInstructions),i=o.length/x,u=4*i*(r+t),f=new Uint32Array(6*i),s=new Float32Array(u);let l;for(let t=0;t0?y=i+(r-1)*x:c&&(y=l-x);let p=null;r"u"?"data:application/javascript;base64,"+Buffer.from(i,"binary").toString("base64"):URL.createObjectURL(new Blob([i],{type:"application/javascript"})))}var _f={GENERATE_POLYGON_BUFFERS:"GENERATE_POLYGON_BUFFERS",GENERATE_POINT_BUFFERS:"GENERATE_POINT_BUFFERS",GENERATE_LINE_STRING_BUFFERS:"GENERATE_LINE_STRING_BUFFERS"};function g1(i,e){e=e||[];let t=256,n=t-1;return e[0]=Math.floor(i/t/t/t)/n,e[1]=Math.floor(i/t/t)%t/n,e[2]=Math.floor(i/t)%t/n,e[3]=i%t/n,e}function d1(i){let e=0,t=256,n=t-1;return e+=Math.round(i[0]*t*t*t*n),e+=Math.round(i[1]*t*t*n),e+=Math.round(i[2]*t*n),e+=Math.round(i[3]*n),e}function IE(i,e,t,n){let r=0;for(let o in e){let s=e[o],a=s.callback.call(t,t.feature),l=a?.[0]??a;l===df&&console.warn('The "has" operator might return false positives.'),l===void 0?l=df:l===null&&(l=0),i[n+r++]=l,!(!s.size||s.size===1)&&(i[n+r++]=a[1],!(s.size<3)&&(i[n+r++]=a[2],!(s.size<4)&&(i[n+r++]=a[3])))}return r}function Sc(i){return Object.keys(i).reduce((e,t)=>e+(i[t].size||1),0)}function p1(i,e,t,n){let r=(2+Sc(t))*i.geometriesCount;(!e||e.length!==r)&&(e=new Float32Array(r));let o=[],s=0;for(let a in i.entries){let l=i.entries[a];for(let A=0,c=l.flatCoordss.length;A(t<<5)-t+n.charCodeAt(0),0)>>>0).toString()}function CE(i,e,t,n){if(`${n}radius`in i&&n!=="icon-"){let r=le(t,i[`${n}radius`],te);if(`${n}radius2`in i){let o=le(t,i[`${n}radius2`],te);r=`max(${r}, ${o})`}`${n}stroke-width`in i&&(r=`(${r} + ${le(t,i[`${n}stroke-width`],te)} * 0.5)`),e.setSymbolSizeExpression(`vec2(${r} * 2. + 0.5)`)}if(`${n}scale`in i){let r=le(t,i[`${n}scale`],sn);e.setSymbolSizeExpression(`${e.getSymbolSizeExpression()} * ${r}`)}`${n}displacement`in i&&e.setSymbolOffsetExpression(le(t,i[`${n}displacement`],Xt)),`${n}rotation`in i&&e.setSymbolRotationExpression(le(t,i[`${n}rotation`],te)),`${n}rotate-with-view`in i&&e.setSymbolRotateWithView(!!i[`${n}rotate-with-view`])}function I1(i,e,t,n,r){let o="vec4(0.)";if(e!==null&&(o=e),t!==null&&n!==null){let l=`smoothstep(-${n} + 0.63, -${n} - 0.58, ${i})`;o=`mix(${t}, ${o}, ${l})`}let s=`(1.0 - smoothstep(-0.63, 0.58, ${i}))`,a=`${o} * vec4(1.0, 1.0, 1.0, ${s})`;return r!==null&&(a=`${a} * vec4(1.0, 1.0, 1.0, ${r})`),a}function yE(i,e,t,n,r){let o=new Image;o.crossOrigin=i[`${n}cross-origin`]===void 0?"anonymous":i[`${n}cross-origin`],he(typeof i[`${n}src`]=="string",`WebGL layers do not support expressions for the ${n}src style property`),o.src=i[`${n}src`],t[`u_texture${r}_size`]=()=>o.complete?[o.width,o.height]:[0,0],e.addUniform(`vec2 u_texture${r}_size`);let s=`u_texture${r}_size`;return t[`u_texture${r}`]=o,e.addUniform(`sampler2D u_texture${r}`),s}function _E(i,e,t,n,r){let o=le(t,i[`${e}offset`],Xt);if(`${e}offset-origin`in i)switch(i[`${e}offset-origin`]){case"top-right":o=`vec2(${n}.x, 0.) + ${r} * vec2(-1., 0.) + ${o} * vec2(-1., 1.)`;break;case"bottom-left":o=`vec2(0., ${n}.y) + ${r} * vec2(0., -1.) + ${o} * vec2(1., -1.)`;break;case"bottom-right":o=`${n} - ${r} - ${o}`;break;default:}return o}function HD(i,e,t,n){n.functions.circleDistanceField=`float circleDistanceField(vec2 point, float radius) { return length(point) - radius; -}`,rd(i,e,n,"circle-");let r=null;"circle-opacity"in i&&(r=ne(n,i["circle-opacity"],q));let o="coordsPx";"circle-scale"in i&&(o=`coordsPx / ${ne(n,i["circle-scale"],Ot)}`);let s=null;"circle-fill-color"in i&&(s=ne(n,i["circle-fill-color"],we));let a=null;"circle-stroke-color"in i&&(a=ne(n,i["circle-stroke-color"],we));let A=ne(n,i["circle-radius"],q),l=null;"circle-stroke-width"in i&&(l=ne(n,i["circle-stroke-width"],q),A=`(${A} + ${l} * 0.5)`);let c=`circleDistanceField(${o}, ${A})`,h=iC(c,s,a,l,r);e.setSymbolColorExpression(h)}function k1(i,e,t,n){n.functions.round=`float round(float v) { +}`,CE(i,e,n,"circle-");let r=null;"circle-opacity"in i&&(r=le(n,i["circle-opacity"],te));let o="coordsPx";"circle-scale"in i&&(o=`coordsPx / ${le(n,i["circle-scale"],sn)}`);let s=null;"circle-fill-color"in i&&(s=le(n,i["circle-fill-color"],We));let a=null;"circle-stroke-color"in i&&(a=le(n,i["circle-stroke-color"],We));let l=le(n,i["circle-radius"],te),A=null;"circle-stroke-width"in i&&(A=le(n,i["circle-stroke-width"],te),l=`(${l} + ${A} * 0.5)`);let c=`circleDistanceField(${o}, ${l})`,h=I1(c,s,a,A,r);e.setSymbolColorExpression(h)}function qD(i,e,t,n){n.functions.round=`float round(float v) { return sign(v) * floor(abs(v) + 0.5); }`,n.functions.starDistanceField=`float starDistanceField(vec2 point, float numPoints, float radius, float radius2, float angle) { float startAngle = -PI * 0.5 + angle; // tip starts upwards and rotates clockwise with angle @@ -514,7 +514,7 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a s = sin(-gamma); vec2 inSector = vec2(c * pointRotated.x - s * pointRotated.y, abs(s * pointRotated.x + c * pointRotated.y)); return inSector.x - radiusIn; -}`,rd(i,e,n,"shape-");let r=null;"shape-opacity"in i&&(r=ne(n,i["shape-opacity"],q));let o="coordsPx";"shape-scale"in i&&(o=`coordsPx / ${ne(n,i["shape-scale"],Ot)}`);let s=null;"shape-fill-color"in i&&(s=ne(n,i["shape-fill-color"],we));let a=null;"shape-stroke-color"in i&&(a=ne(n,i["shape-stroke-color"],we));let A=null;"shape-stroke-width"in i&&(A=ne(n,i["shape-stroke-width"],q));let l=ne(n,i["shape-points"],q),c="0.";"shape-angle"in i&&(c=ne(n,i["shape-angle"],q));let h,u=ne(n,i["shape-radius"],q);if(A!==null&&(u=`${u} + ${A} * 0.5`),"shape-radius2"in i){let g=ne(n,i["shape-radius2"],q);A!==null&&(g=`${g} + ${A} * 0.5`),h=`starDistanceField(${o}, ${l}, ${u}, ${g}, ${c})`}else h=`regularDistanceField(${o}, ${l}, ${u}, ${c})`;let f=iC(h,s,a,A,r);e.setSymbolColorExpression(f)}function P1(i,e,t,n){let r="vec4(1.0)";"icon-color"in i&&(r=ne(n,i["icon-color"],we)),"icon-opacity"in i&&(r=`${r} * vec4(1.0, 1.0, 1.0, ${ne(n,i["icon-opacity"],q)})`);let o=tc(i["icon-src"]),s=od(i,e,t,"icon-",o);if(e.setSymbolColorExpression(`${r} * texture2D(u_texture${o}, v_texCoord)`).setSymbolSizeExpression(s),"icon-width"in i&&"icon-height"in i&&e.setSymbolSizeExpression(`vec2(${ne(n,i["icon-width"],q)}, ${ne(n,i["icon-height"],q)})`),"icon-offset"in i&&"icon-size"in i){let a=ne(n,i["icon-size"],et),A=e.getSymbolSizeExpression();e.setSymbolSizeExpression(a);let l=sd(i,"icon-",n,"v_quadSizePx",a);e.setTextureCoordinateExpression(`(vec4((${l}).xyxy) + vec4(0., 0., ${a})) / (${A}).xyxy`)}if(rd(i,e,n,"icon-"),"icon-anchor"in i){let a=ne(n,i["icon-anchor"],et),A="1.0";"icon-scale"in i&&(A=ne(n,i["icon-scale"],Ot));let l;i["icon-anchor-x-units"]==="pixels"&&i["icon-anchor-y-units"]==="pixels"?l=`${a} * ${A}`:i["icon-anchor-x-units"]==="pixels"?l=`${a} * vec2(vec2(${A}).x, v_quadSizePx.y)`:i["icon-anchor-y-units"]==="pixels"?l=`${a} * vec2(v_quadSizePx.x, vec2(${A}).x)`:l=`${a} * v_quadSizePx`;let c=`v_quadSizePx * vec2(0.5, -0.5) + ${l} * vec2(-1., 1.)`;if("icon-anchor-origin"in i)switch(i["icon-anchor-origin"]){case"top-right":c=`v_quadSizePx * -0.5 + ${l}`;break;case"bottom-left":c=`v_quadSizePx * 0.5 - ${l}`;break;case"bottom-right":c=`v_quadSizePx * vec2(-0.5, 0.5) + ${l} * vec2(1., -1.)`;break;default:}e.setSymbolOffsetExpression(`${e.getSymbolOffsetExpression()} + ${c}`)}}function N1(i,e,t,n){if("stroke-color"in i&&e.setStrokeColorExpression(ne(n,i["stroke-color"],we)),"stroke-pattern-src"in i){let r=tc(i["stroke-pattern-src"]),o=od(i,e,t,"stroke-pattern-",r),s=o,a="vec2(0.)";"stroke-pattern-offset"in i&&"stroke-pattern-size"in i&&(s=ne(n,i["stroke-pattern-size"],et),a=sd(i,"stroke-pattern-",n,o,s));let A="0.";"stroke-pattern-spacing"in i&&(A=ne(n,i["stroke-pattern-spacing"],q)),n.functions.sampleStrokePattern=`vec4 sampleStrokePattern(sampler2D texture, vec2 textureSize, vec2 textureOffset, vec2 sampleSize, float spacingPx, float currentLengthPx, float currentRadiusRatio, float lineWidth) { +}`,CE(i,e,n,"shape-");let r=null;"shape-opacity"in i&&(r=le(n,i["shape-opacity"],te));let o="coordsPx";"shape-scale"in i&&(o=`coordsPx / ${le(n,i["shape-scale"],sn)}`);let s=null;"shape-fill-color"in i&&(s=le(n,i["shape-fill-color"],We));let a=null;"shape-stroke-color"in i&&(a=le(n,i["shape-stroke-color"],We));let l=null;"shape-stroke-width"in i&&(l=le(n,i["shape-stroke-width"],te));let A=le(n,i["shape-points"],te),c="0.";"shape-angle"in i&&(c=le(n,i["shape-angle"],te));let h,u=le(n,i["shape-radius"],te);if(l!==null&&(u=`${u} + ${l} * 0.5`),"shape-radius2"in i){let g=le(n,i["shape-radius2"],te);l!==null&&(g=`${g} + ${l} * 0.5`),h=`starDistanceField(${o}, ${A}, ${u}, ${g}, ${c})`}else h=`regularDistanceField(${o}, ${A}, ${u}, ${c})`;let f=I1(h,s,a,l,r);e.setSymbolColorExpression(f)}function KD(i,e,t,n){let r="vec4(1.0)";"icon-color"in i&&(r=le(n,i["icon-color"],We)),"icon-opacity"in i&&(r=`${r} * vec4(1.0, 1.0, 1.0, ${le(n,i["icon-opacity"],te)})`);let o=xf(i["icon-src"]),s=yE(i,e,t,"icon-",o);if(e.setSymbolColorExpression(`${r} * texture2D(u_texture${o}, v_texCoord)`).setSymbolSizeExpression(s),"icon-width"in i&&"icon-height"in i&&e.setSymbolSizeExpression(`vec2(${le(n,i["icon-width"],te)}, ${le(n,i["icon-height"],te)})`),"icon-offset"in i&&"icon-size"in i){let a=le(n,i["icon-size"],Xt),l=e.getSymbolSizeExpression();e.setSymbolSizeExpression(a);let A=_E(i,"icon-",n,"v_quadSizePx",a);e.setTextureCoordinateExpression(`(vec4((${A}).xyxy) + vec4(0., 0., ${a})) / (${l}).xyxy`)}if(CE(i,e,n,"icon-"),"icon-anchor"in i){let a=le(n,i["icon-anchor"],Xt),l="1.0";"icon-scale"in i&&(l=le(n,i["icon-scale"],sn));let A;i["icon-anchor-x-units"]==="pixels"&&i["icon-anchor-y-units"]==="pixels"?A=`${a} * ${l}`:i["icon-anchor-x-units"]==="pixels"?A=`${a} * vec2(vec2(${l}).x, v_quadSizePx.y)`:i["icon-anchor-y-units"]==="pixels"?A=`${a} * vec2(v_quadSizePx.x, vec2(${l}).x)`:A=`${a} * v_quadSizePx`;let c=`v_quadSizePx * vec2(0.5, -0.5) + ${A} * vec2(-1., 1.)`;if("icon-anchor-origin"in i)switch(i["icon-anchor-origin"]){case"top-right":c=`v_quadSizePx * -0.5 + ${A}`;break;case"bottom-left":c=`v_quadSizePx * 0.5 - ${A}`;break;case"bottom-right":c=`v_quadSizePx * vec2(-0.5, 0.5) + ${A} * vec2(1., -1.)`;break;default:}e.setSymbolOffsetExpression(`${e.getSymbolOffsetExpression()} + ${c}`)}}function XD(i,e,t,n){if("stroke-color"in i&&e.setStrokeColorExpression(le(n,i["stroke-color"],We)),"stroke-pattern-src"in i){let r=xf(i["stroke-pattern-src"]),o=yE(i,e,t,"stroke-pattern-",r),s=o,a="vec2(0.)";"stroke-pattern-offset"in i&&"stroke-pattern-size"in i&&(s=le(n,i["stroke-pattern-size"],Xt),a=_E(i,"stroke-pattern-",n,o,s));let l="0.";"stroke-pattern-spacing"in i&&(l=le(n,i["stroke-pattern-spacing"],te)),n.functions.sampleStrokePattern=`vec4 sampleStrokePattern(sampler2D texture, vec2 textureSize, vec2 textureOffset, vec2 sampleSize, float spacingPx, float currentLengthPx, float currentRadiusRatio, float lineWidth) { float currentLengthScaled = currentLengthPx * sampleSize.y / lineWidth; float spacingScaled = spacingPx * sampleSize.y / lineWidth; float uCoordPx = mod(currentLengthScaled, (sampleSize.x + spacingScaled)); @@ -523,22 +523,22 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a float vCoordPx = (-currentRadiusRatio * 0.5 + 0.5) * sampleSize.y; vec2 texCoord = (vec2(uCoordPx, vCoordPx) + textureOffset) / textureSize; return texture2D(texture, texCoord); -}`;let l=`u_texture${r}`,c="1.";"stroke-color"in i&&(c=e.getStrokeColorExpression()),e.setStrokeColorExpression(`${c} * sampleStrokePattern(${l}, ${o}, ${a}, ${s}, ${A}, currentLengthPx, currentRadiusRatio, v_width)`)}if("stroke-width"in i&&e.setStrokeWidthExpression(ne(n,i["stroke-width"],q)),"stroke-offset"in i&&e.setStrokeOffsetExpression(ne(n,i["stroke-offset"],q)),"stroke-line-cap"in i&&e.setStrokeCapExpression(ne(n,i["stroke-line-cap"],Ke)),"stroke-line-join"in i&&e.setStrokeJoinExpression(ne(n,i["stroke-line-join"],Ke)),"stroke-miter-limit"in i&&e.setStrokeMiterLimitExpression(ne(n,i["stroke-miter-limit"],q)),"stroke-line-dash"in i){n.functions.getSingleDashDistance=`float getSingleDashDistance(float distance, float radius, float dashOffset, float dashLength, float dashLengthTotal, float capType, float lineWidth) { +}`;let A=`u_texture${r}`,c="1.";"stroke-color"in i&&(c=e.getStrokeColorExpression()),e.setStrokeColorExpression(`${c} * sampleStrokePattern(${A}, ${o}, ${a}, ${s}, ${l}, currentLengthPx, currentRadiusRatio, v_width)`)}if("stroke-width"in i&&e.setStrokeWidthExpression(le(n,i["stroke-width"],te)),"stroke-offset"in i&&e.setStrokeOffsetExpression(le(n,i["stroke-offset"],te)),"stroke-line-cap"in i&&e.setStrokeCapExpression(le(n,i["stroke-line-cap"],Rt)),"stroke-line-join"in i&&e.setStrokeJoinExpression(le(n,i["stroke-line-join"],Rt)),"stroke-miter-limit"in i&&e.setStrokeMiterLimitExpression(le(n,i["stroke-miter-limit"],te)),"stroke-line-dash"in i){n.functions.getSingleDashDistance=`float getSingleDashDistance(float distance, float radius, float dashOffset, float dashLength, float dashLengthTotal, float capType, float lineWidth) { float localDistance = mod(distance, dashLengthTotal); float distanceSegment = abs(localDistance - dashOffset - dashLength * 0.5) - dashLength * 0.5; distanceSegment = min(distanceSegment, dashLengthTotal - localDistance); - if (capType == ${Ti("square")}) { + if (capType == ${gr("square")}) { distanceSegment -= lineWidth * 0.5; - } else if (capType == ${Ti("round")}) { + } else if (capType == ${gr("round")}) { distanceSegment = min(distanceSegment, sqrt(distanceSegment * distanceSegment + radius * radius) - lineWidth * 0.5); } return distanceSegment; -}`;let r=i["stroke-line-dash"].map(u=>ne(n,u,q));r.length%2===1&&(r=[...r,...r]);let o="0.";"stroke-line-dash-offset"in i&&(o=ne(n,i["stroke-line-dash-offset"],q));let a=`dashDistanceField_${tc(i["stroke-line-dash"])}`,A=r.map((u,f)=>`float dashLength${f} = ${u};`),l=r.map((u,f)=>`dashLength${f}`).join(" + "),c="0.",h=`getSingleDashDistance(distance, radius, ${c}, dashLength0, totalDashLength, capType, lineWidth)`;for(let u=2;ule(n,u,te));r.length%2===1&&(r=[...r,...r]);let o="0.";"stroke-line-dash-offset"in i&&(o=le(n,i["stroke-line-dash-offset"],te));let a=`dashDistanceField_${xf(i["stroke-line-dash"])}`,l=r.map((u,f)=>`float dashLength${f} = ${u};`),A=r.map((u,f)=>`dashLength${f}`).join(" + "),c="0.",h=`getSingleDashDistance(distance, radius, ${c}, dashLength0, totalDashLength, capType, lineWidth)`;for(let u=2;u` ${e.varyingType} ${e.name} = ${e.varyingName}; // a samplePos = clamp(samplePos, vec2(0.5), sampleSize - vec2(0.5)); samplePos.y = sampleSize.y - samplePos.y; // invert y axis so that images appear upright return texture2D(texture, (samplePos + textureOffset) / textureSize); -}`;let A=`u_texture${r}`,l="1.";"fill-color"in i&&(l=e.getFillColorExpression()),e.setFillColorExpression(`${l} * sampleFillPattern(${A}, ${o}, ${a}, ${s}, pxOrigin, pxPos)`)}}function nC(i,e,t){let n=jl(),r=new Zl,o={};if("icon-src"in i?P1(i,r,o,n):"shape-points"in i?k1(i,r,o,n):"circle-radius"in i&&M1(i,r,o,n),N1(i,r,o,n),G1(i,r,o,n),t){let A=ne(n,t,ze);r.setFragmentDiscardExpression(`!${A}`)}let s={};function a(A,l,c,h){if(!n[A])return;let u=$l(c),f=ec(c);r.addAttribute(`a_${l}`,u),s[l]={size:f,callback:h}}return a("geometryType",ed,Ke,A=>Pn(zr(A.getGeometry()))),a("featureId",$g,Ke|q,A=>{let l=A.getId()??null;return typeof l=="string"?Pn(l):l}),$0(r,n),{builder:r,attributes:{...s,...tC(n)},uniforms:{...o,...eC(n,e)}}}function rC(i){let e=Array.isArray(i)?i:[i];if("style"in e[0]){let t=[],n=e,r=[];for(let o of n){let s=Array.isArray(o.style)?o.style:[o.style],a=o.filter;o.else&&r.length&&(a=["all",...r.map(l=>["!",l])],o.filter&&a.push(o.filter),a.length<3&&(a=a[1])),o.filter&&r.push(o.filter);let A=s.map(l=>({style:l,...a&&{filter:a}}));t.push(...A)}return t}return"builder"in e[0]?e:e.map(t=>({style:t}))}var O1=[],ad;function U1(){return ad||(ad=L0()),ad}var Y1=0,Zi={POSITION:"a_position",INDEX:"a_index",SEGMENT_START:"a_segmentStart",SEGMENT_END:"a_segmentEnd",MEASURE_START:"a_measureStart",MEASURE_END:"a_measureEnd",PARAMETERS:"a_parameters",JOIN_ANGLES:"a_joinAngles",DISTANCE:"a_distance"},Ad=class{constructor(e,t,n,r,o){this.helper_,this.hitDetectionEnabled_=!!r;let s=e;if(!("builder"in e)){let c=e,h=nC(c.style,t,c.filter);s={builder:h.builder,attributes:h.attributes,uniforms:h.uniforms}}this.fillProgram_,this.strokeProgram_,this.symbolProgram_,this.hasFill_=!!s.builder.getFillVertexShader(),this.hasFill_&&(this.fillVertexShader_=s.builder.getFillVertexShader(),this.fillFragmentShader_=s.builder.getFillFragmentShader()),this.hasStroke_=!!s.builder.getStrokeVertexShader(),this.hasStroke_&&(this.strokeVertexShader_=s.builder.getStrokeVertexShader(),this.strokeFragmentShader_=s.builder.getStrokeFragmentShader()),this.hasSymbol_=!!s.builder.getSymbolVertexShader(),this.hasSymbol_&&(this.symbolVertexShader_=s.builder.getSymbolVertexShader(),this.symbolFragmentShader_=s.builder.getSymbolFragmentShader()),this.featureFilter_=null,o&&(this.featureFilter_=this.computeFeatureFilter(o));let A=this.hitDetectionEnabled_?{hitColor:{callback(){return M0(this.ref,O1)},size:4}}:{};this.customAttributes_=Object.assign({},A,s.attributes),this.uniforms_=s.uniforms;let l=Object.entries(this.customAttributes_).map(([c,h])=>({name:`a_${c}`,size:h.size||1,type:lt.FLOAT}));this.polygonAttributesDesc_=[{name:Zi.POSITION,size:2,type:lt.FLOAT},...l],this.lineStringAttributesDesc_=[{name:Zi.SEGMENT_START,size:2,type:lt.FLOAT},{name:Zi.MEASURE_START,size:1,type:lt.FLOAT},{name:Zi.SEGMENT_END,size:2,type:lt.FLOAT},{name:Zi.MEASURE_END,size:1,type:lt.FLOAT},{name:Zi.JOIN_ANGLES,size:2,type:lt.FLOAT},{name:Zi.DISTANCE,size:1,type:lt.FLOAT},{name:Zi.PARAMETERS,size:1,type:lt.FLOAT},...l],this.pointAttributesDesc_=[{name:Zi.POSITION,size:2,type:lt.FLOAT},{name:Zi.INDEX,size:1,type:lt.FLOAT},...l],this.setHelper(n)}computeFeatureFilter(e){let t=Hr(),n;try{n=gi(e,ze,t)}catch{return null}if(t.mapState||t.variables.size>0)return null;let r=Ea();return o=>{if(r.properties=o.getPropertiesInternal(),t.featureId){let s=o.getId();s!==void 0?r.featureId=s:r.featureId=null}return r.geometryType=zr(o.getGeometry()),n(r)}}async generateBuffers(e,t){let n=e;if(this.featureFilter_&&(n=n.filter(this.featureFilter_),n.isEmpty()))return null;let r=this.generateRenderInstructions_(n,t),[o,s,a]=await Promise.all([this.generateBuffersForType_(r.polygonInstructions,"Polygon",t),this.generateBuffersForType_(r.lineStringInstructions,"LineString",t),this.generateBuffersForType_(r.pointInstructions,"Point",t)]),A=Bi(Ce(),t);return{polygonBuffers:o,lineStringBuffers:s,pointBuffers:a,invertVerticesTransform:A}}generateRenderInstructions_(e,t){let n=this.hasFill_?W0(e.polygonBatch,new Float32Array(0),this.customAttributes_,t):null,r=this.hasStroke_?j0(e.lineStringBatch,new Float32Array(0),this.customAttributes_,t):null,o=this.hasSymbol_?J0(e.pointBatch,new Float32Array(0),this.customAttributes_,t):null;return{polygonInstructions:n,lineStringInstructions:r,pointInstructions:o}}generateBuffersForType_(e,t,n){if(e===null)return null;let r=Y1++,o;switch(t){case"Polygon":o=Vl.GENERATE_POLYGON_BUFFERS;break;case"LineString":o=Vl.GENERATE_LINE_STRING_BUFFERS;break;case"Point":o=Vl.GENERATE_POINT_BUFFERS;break;default:}let s={id:r,type:o,renderInstructions:e.buffer,renderInstructionsTransform:n,customAttributesSize:ka(this.customAttributes_)},a=U1();return a.postMessage(s,[e.buffer]),e=null,new Promise(A=>{let l=c=>{let h=c.data;if(h.id!==r||(a.removeEventListener("message",l),!this.helper_.getGL()))return;let u=new Zr(jr,Da).fromArrayBuffer(h.vertexBuffer),f=new Zr(Wr,Da).fromArrayBuffer(h.indexBuffer);this.helper_.flushBufferData(u),this.helper_.flushBufferData(f),A([f,u])};a.addEventListener("message",l)})}render(e,t,n){this.hasFill_&&this.renderInternal_(e.polygonBuffers[0],e.polygonBuffers[1],this.fillProgram_,this.polygonAttributesDesc_,t,n),this.hasStroke_&&this.renderInternal_(e.lineStringBuffers[0],e.lineStringBuffers[1],this.strokeProgram_,this.lineStringAttributesDesc_,t,n),this.hasSymbol_&&this.renderInternal_(e.pointBuffers[0],e.pointBuffers[1],this.symbolProgram_,this.pointAttributesDesc_,t,n)}renderInternal_(e,t,n,r,o,s){let a=e.getSize();a!==0&&(this.helper_.useProgram(n,o),this.helper_.bindBuffer(t),this.helper_.bindBuffer(e),this.helper_.enableAttributes(r),s(),this.helper_.drawElements(0,a))}setHelper(e,t=null){this.helper_=e,this.hasFill_&&(this.fillProgram_=this.helper_.getProgram(this.fillFragmentShader_,this.fillVertexShader_)),this.hasStroke_&&(this.strokeProgram_=this.helper_.getProgram(this.strokeFragmentShader_,this.strokeVertexShader_)),this.hasSymbol_&&(this.symbolProgram_=this.helper_.getProgram(this.symbolFragmentShader_,this.symbolVertexShader_)),this.helper_.addUniforms(this.uniforms_),t&&(t.polygonBuffers&&(this.helper_.flushBufferData(t.polygonBuffers[0]),this.helper_.flushBufferData(t.polygonBuffers[1])),t.lineStringBuffers&&(this.helper_.flushBufferData(t.lineStringBuffers[0]),this.helper_.flushBufferData(t.lineStringBuffers[1])),t.pointBuffers&&(this.helper_.flushBufferData(t.pointBuffers[0]),this.helper_.flushBufferData(t.pointBuffers[1])))}},oC=Ad;var $i=new Uint8Array(4),ld=class{constructor(e,t){this.helper_=e;let n=e.getGL();this.texture_=n.createTexture(),this.framebuffer_=n.createFramebuffer(),this.depthbuffer_=n.createRenderbuffer(),this.size_=t||[1,1],this.data_=new Uint8Array(0),this.dataCacheDirty_=!0,this.updateSize_()}setSize(e){rt(e,this.size_)||(this.size_[0]=e[0],this.size_[1]=e[1],this.updateSize_())}getSize(){return this.size_}clearCachedData(){this.dataCacheDirty_=!0}readAll(){if(this.dataCacheDirty_){let e=this.size_,t=this.helper_.getGL();t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer_),t.readPixels(0,0,e[0],e[1],t.RGBA,t.UNSIGNED_BYTE,this.data_),this.dataCacheDirty_=!1}return this.data_}readPixel(e,t){if(e<0||t<0||e>this.size_[0]||t>=this.size_[1])return $i[0]=0,$i[1]=0,$i[2]=0,$i[3]=0,$i;this.readAll();let n=Math.floor(e)+(this.size_[1]-Math.floor(t)-1)*this.size_[0];return $i[0]=this.data_[n*4],$i[1]=this.data_[n*4+1],$i[2]=this.data_[n*4+2],$i[3]=this.data_[n*4+3],$i}getTexture(){return this.texture_}getFramebuffer(){return this.framebuffer_}getDepthbuffer(){return this.depthbuffer_}updateSize_(){let e=this.size_,t=this.helper_.getGL();this.texture_=this.helper_.createTexture(e,null,this.texture_),t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer_),t.viewport(0,0,e[0],e[1]),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.texture_,0),t.bindRenderbuffer(t.RENDERBUFFER,this.depthbuffer_),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,e[0],e[1]),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,this.depthbuffer_),this.data_=new Uint8Array(e[0]*e[1]*4)}},sC=ld;function aC(i,e){let t=i.viewState.projection,r=e.getSource().getWrapX()&&t.canWrapX(),o=t.getExtent(),s=i.extent,a=r?oe(o):null,A=r?Math.ceil((s[2]-o[2])/a)+1:1;return[r?Math.floor((s[0]-o[0])/a):0,A,a]}var ss={...Wi,RENDER_EXTENT:"u_renderExtent",PATTERN_ORIGIN:"u_patternOrigin",GLOBAL_ALPHA:"u_globalAlpha"},cd=class extends Xl{constructor(e,t){let n={[ss.RENDER_EXTENT]:[0,0,0,0],[ss.PATTERN_ORIGIN]:[0,0],[ss.GLOBAL_ALPHA]:1};super(e,{uniforms:n,postProcesses:t.postProcesses}),this.hitDetectionEnabled_=!t.disableHitDetection,this.hitRenderTarget_,this.sourceRevision_=-1,this.previousExtent_=be(),this.currentTransform_=Ce(),this.tmpCoords_=[0,0],this.tmpTransform_=Ce(),this.tmpMat4_=ji(),this.currentFrameStateTransform_=Ce(),this.styleVariables_={},this.styles_=[],this.styleRenderers_=[],this.buffers_=[],this.applyOptions_(t),this.batch_=new C0,this.initialFeaturesAdded_=!1,this.sourceListenKeys_=null}addInitialFeatures_(e){let t=this.getLayer().getSource(),n=ci(),r;n&&(r=li(n,e.viewState.projection)),this.batch_.addFeatures(t.getFeatures(),r),this.sourceListenKeys_=[X(t,at.ADDFEATURE,this.handleSourceFeatureAdded_.bind(this,r)),X(t,at.CHANGEFEATURE,this.handleSourceFeatureChanged_,this),X(t,at.REMOVEFEATURE,this.handleSourceFeatureDelete_,this),X(t,at.CLEAR,this.handleSourceFeatureClear_,this)]}applyOptions_(e){this.styleVariables_=e.variables,this.styles_=rC(e.style)}createRenderers_(){this.buffers_=[],this.styleRenderers_=this.styles_.map(e=>new oC(e,this.styleVariables_,this.helper,this.hitDetectionEnabled_,"filter"in e?e.filter:null))}reset(e){this.applyOptions_(e),this.helper&&this.createRenderers_(),super.reset(e)}afterHelperCreated(){this.styleRenderers_.length?this.styleRenderers_.forEach((e,t)=>e.setHelper(this.helper,this.buffers_[t])):this.createRenderers_(),this.hitDetectionEnabled_&&(this.hitRenderTarget_=new sC(this.helper))}handleSourceFeatureAdded_(e,t){let n=t.feature;this.batch_.addFeature(n,e)}handleSourceFeatureChanged_(e){let t=e.feature;this.batch_.changeFeature(t)}handleSourceFeatureDelete_(e){let t=e.feature;this.batch_.removeFeature(t)}handleSourceFeatureClear_(){this.batch_.clear()}applyUniforms_(e){KA(this.tmpTransform_,this.currentFrameStateTransform_),Zn(this.tmpTransform_,e),this.helper.setUniformMatrixValue(ss.PROJECTION_MATRIX,$r(this.tmpMat4_,this.tmpTransform_)),Bi(this.tmpTransform_,this.tmpTransform_),this.helper.setUniformMatrixValue(ss.SCREEN_TO_WORLD_MATRIX,$r(this.tmpMat4_,this.tmpTransform_)),this.tmpCoords_[0]=0,this.tmpCoords_[1]=0,Bi(this.tmpTransform_,e),ye(this.tmpTransform_,this.tmpCoords_),this.helper.setUniformFloatVec2(ss.PATTERN_ORIGIN,this.tmpCoords_)}renderFrame(e){let t=this.helper.getGL();this.preRender(t,e);let[n,r,o]=aC(e,this.getLayer());this.helper.prepareDraw(e),this.renderWorlds(e,!1,n,r,o),this.helper.finalizeDraw(e,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);let s=this.helper.getCanvas();return this.hitDetectionEnabled_&&(this.renderWorlds(e,!0,n,r,o),this.hitRenderTarget_.clearCachedData()),this.postRender(t,e),s}prepareFrameInternal(e){this.initialFeaturesAdded_||(this.addInitialFeatures_(e),this.initialFeaturesAdded_=!0);let t=this.getLayer(),n=t.getSource(),r=e.viewState,o=!e.viewHints[Ye.ANIMATING]&&!e.viewHints[Ye.INTERACTING],s=!Jt(this.previousExtent_,e.extent),a=this.sourceRevision_m.generateBuffers(this.batch_,f).then(I=>{this.buffers_[d]&&this.disposeBuffers(this.buffers_[d]),this.buffers_[d]=I}));Promise.all(g).then(()=>{this.ready=!0,this.getLayer().changed()}),this.previousExtent_=e.extent.slice()}return!0}renderWorlds(e,t,n,r,o){let s=n;t&&(this.hitRenderTarget_.setSize([Math.floor(e.size[0]/2),Math.floor(e.size[1]/2)]),this.helper.prepareDrawToRenderTarget(e,this.hitRenderTarget_,!0));do{this.helper.makeProjectionTransform(e,this.currentFrameStateTransform_),qA(this.currentFrameStateTransform_,s*o,0);for(let a=0,A=this.styleRenderers_.length;a{this.applyUniforms_(c.invertVerticesTransform),this.helper.applyHitDetectionUniform(t)})}}while(++s{for(let r of n)r&&this.helper.deleteBuffer(r)};e.pointBuffers&&t(e.pointBuffers),e.lineStringBuffers&&t(e.lineStringBuffers),e.polygonBuffers&&t(e.polygonBuffers)}disposeInternal(){this.buffers_.forEach(e=>{e&&this.disposeBuffers(e)}),this.sourceListenKeys_&&(this.sourceListenKeys_.forEach(function(e){se(e)}),this.sourceListenKeys_=null),super.disposeInternal()}renderDeclutter(){}},AC=cd;var hd=class extends bn{constructor(e){let t=Object.assign({},e);super(t),this.styleVariables_=e.variables||{},this.style_=e.style,this.hitDetectionDisabled_=!!e.disableHitDetection}createRenderer(){return new AC(this,{style:this.style_,variables:this.styleVariables_,disableHitDetection:this.hitDetectionDisabled_})}updateStyleVariables(e){Object.assign(this.styleVariables_,e),this.changed()}setStyle(e){this.style_=e,this.clearRenderer(),this.changed()}},lC=hd;function cC(i,e){let t=` - attribute vec2 ${La.TEXTURE_COORD}; - uniform mat4 ${Ae.TILE_TRANSFORM}; - uniform float ${Ae.TEXTURE_PIXEL_WIDTH}; - uniform float ${Ae.TEXTURE_PIXEL_HEIGHT}; - uniform float ${Ae.TEXTURE_RESOLUTION}; - uniform float ${Ae.TEXTURE_ORIGIN_X}; - uniform float ${Ae.TEXTURE_ORIGIN_Y}; - uniform float ${Ae.DEPTH}; +}`;let l=`u_texture${r}`,A="1.";"fill-color"in i&&(A=e.getFillColorExpression()),e.setFillColorExpression(`${A} * sampleFillPattern(${l}, ${o}, ${a}, ${s}, pxOrigin, pxPos)`)}}function Bf(i,e,t){let n=xl(),r=new Is,o={};if("icon-src"in i?KD(i,r,o,n):"shape-points"in i?qD(i,r,o,n):"circle-radius"in i&&HD(i,r,o,n),XD(i,r,o,n),jD(i,r,o,n),t){let l=le(n,t,It);r.setFragmentDiscardExpression(`!${l}`)}let s={};function a(l,A,c,h){if(!n[l])return;let u=pf(c),f=mf(c);r.addAttribute(`a_${A}`,u),s[A]={size:f,callback:h}}return a("geometryType",dE,Rt,l=>Bo(ea(l.getGeometry()))),a("featureId",gE,Rt|te,l=>{let A=l.getId()??null;return typeof A=="string"?Bo(A):A}),Ef(r,n),{builder:r,attributes:{...s,...Cf(n)},uniforms:{...o,...If(n,e)}}}function wf(i){let e=Array.isArray(i)?i:[i];if("style"in e[0]){let t=[],n=e,r=[];for(let o of n){let s=Array.isArray(o.style)?o.style:[o.style],a=o.filter;o.else&&r.length&&(a=["all",...r.map(A=>["!",A])],o.filter&&a.push(o.filter),a.length<3&&(a=a[1])),o.filter&&r.push(o.filter);let l=s.map(A=>({style:A,...a&&{filter:a}}));t.push(...l)}return t}return"builder"in e[0]?e:e.map(t=>({style:t}))}var WD=[],xE;function JD(){return xE||(xE=f1()),xE}var $D=0,kr={POSITION:"a_position",INDEX:"a_index",SEGMENT_START:"a_segmentStart",SEGMENT_END:"a_segmentEnd",MEASURE_START:"a_measureStart",MEASURE_END:"a_measureEnd",PARAMETERS:"a_parameters",JOIN_ANGLES:"a_joinAngles",DISTANCE:"a_distance"},BE=class{constructor(e,t,n,r,o){this.helper_,this.hitDetectionEnabled_=!!r;let s=e;if(!("builder"in e)){let c=e,h=Bf(c.style,t,c.filter);s={builder:h.builder,attributes:h.attributes,uniforms:h.uniforms}}this.fillProgram_,this.strokeProgram_,this.symbolProgram_,this.hasFill_=!!s.builder.getFillVertexShader(),this.hasFill_&&(this.fillVertexShader_=s.builder.getFillVertexShader(),this.fillFragmentShader_=s.builder.getFillFragmentShader()),this.hasStroke_=!!s.builder.getStrokeVertexShader(),this.hasStroke_&&(this.strokeVertexShader_=s.builder.getStrokeVertexShader(),this.strokeFragmentShader_=s.builder.getStrokeFragmentShader()),this.hasSymbol_=!!s.builder.getSymbolVertexShader(),this.hasSymbol_&&(this.symbolVertexShader_=s.builder.getSymbolVertexShader(),this.symbolFragmentShader_=s.builder.getSymbolFragmentShader()),this.featureFilter_=null,o&&(this.featureFilter_=this.computeFeatureFilter(o));let l=this.hitDetectionEnabled_?{hitColor:{callback(){return g1(this.ref,WD)},size:4}}:{};this.customAttributes_=Object.assign({},l,s.attributes),this.uniforms_=s.uniforms;let A=Object.entries(this.customAttributes_).map(([c,h])=>({name:`a_${c}`,size:h.size||1,type:Ut.FLOAT}));this.polygonAttributesDesc_=[{name:kr.POSITION,size:2,type:Ut.FLOAT},...A],this.lineStringAttributesDesc_=[{name:kr.SEGMENT_START,size:2,type:Ut.FLOAT},{name:kr.MEASURE_START,size:1,type:Ut.FLOAT},{name:kr.SEGMENT_END,size:2,type:Ut.FLOAT},{name:kr.MEASURE_END,size:1,type:Ut.FLOAT},{name:kr.JOIN_ANGLES,size:2,type:Ut.FLOAT},{name:kr.DISTANCE,size:1,type:Ut.FLOAT},{name:kr.PARAMETERS,size:1,type:Ut.FLOAT},...A],this.pointAttributesDesc_=[{name:kr.POSITION,size:2,type:Ut.FLOAT},{name:kr.INDEX,size:1,type:Ut.FLOAT},...A],this.setHelper(n)}computeFeatureFilter(e){let t=Zs(),n;try{n=Yn(e,It,t)}catch{return null}if(t.mapState||t.variables.size>0)return null;let r=sc();return o=>{if(r.properties=o.getPropertiesInternal(),t.featureId){let s=o.getId();s!==void 0?r.featureId=s:r.featureId=null}return r.geometryType=ea(o.getGeometry()),n(r)}}async generateBuffers(e,t){let n=e;if(this.featureFilter_&&(n=n.filter(this.featureFilter_),n.isEmpty()))return null;let r=this.generateRenderInstructions_(n,t),[o,s,a]=await Promise.all([this.generateBuffersForType_(r.polygonInstructions,"Polygon",t),this.generateBuffersForType_(r.lineStringInstructions,"LineString",t),this.generateBuffersForType_(r.pointInstructions,"Point",t)]),l=en(Ce(),t);return{polygonBuffers:o,lineStringBuffers:s,pointBuffers:a,invertVerticesTransform:l}}generateRenderInstructions_(e,t){let n=this.hasFill_?E1(e.polygonBatch,new Float32Array(0),this.customAttributes_,t):null,r=this.hasStroke_?m1(e.lineStringBatch,new Float32Array(0),this.customAttributes_,t):null,o=this.hasSymbol_?p1(e.pointBatch,new Float32Array(0),this.customAttributes_,t):null;return{polygonInstructions:n,lineStringInstructions:r,pointInstructions:o}}generateBuffersForType_(e,t,n){if(e===null)return null;let r=$D++,o;switch(t){case"Polygon":o=_f.GENERATE_POLYGON_BUFFERS;break;case"LineString":o=_f.GENERATE_LINE_STRING_BUFFERS;break;case"Point":o=_f.GENERATE_POINT_BUFFERS;break;default:}let s={id:r,type:o,renderInstructions:e.buffer,renderInstructionsTransform:n,customAttributesSize:Sc(this.customAttributes_)},a=JD();return a.postMessage(s,[e.buffer]),e=null,new Promise(l=>{let A=c=>{let h=c.data;if(h.id!==r||(a.removeEventListener("message",A),!this.helper_.getGL()))return;let u=new fr(yo,xc).fromArrayBuffer(h.vertexBuffer),f=new fr(_o,xc).fromArrayBuffer(h.indexBuffer);this.helper_.flushBufferData(u),this.helper_.flushBufferData(f),l([f,u])};a.addEventListener("message",A)})}render(e,t,n){this.hasFill_&&this.renderInternal_(e.polygonBuffers[0],e.polygonBuffers[1],this.fillProgram_,this.polygonAttributesDesc_,t,n),this.hasStroke_&&this.renderInternal_(e.lineStringBuffers[0],e.lineStringBuffers[1],this.strokeProgram_,this.lineStringAttributesDesc_,t,n),this.hasSymbol_&&this.renderInternal_(e.pointBuffers[0],e.pointBuffers[1],this.symbolProgram_,this.pointAttributesDesc_,t,n)}renderInternal_(e,t,n,r,o,s){let a=e.getSize();a!==0&&(this.helper_.useProgram(n,o),this.helper_.bindBuffer(t),this.helper_.bindBuffer(e),this.helper_.enableAttributes(r),s(),this.helper_.drawElements(0,a))}setHelper(e,t=null){this.helper_=e,this.hasFill_&&(this.fillProgram_=this.helper_.getProgram(this.fillFragmentShader_,this.fillVertexShader_)),this.hasStroke_&&(this.strokeProgram_=this.helper_.getProgram(this.strokeFragmentShader_,this.strokeVertexShader_)),this.hasSymbol_&&(this.symbolProgram_=this.helper_.getProgram(this.symbolFragmentShader_,this.symbolVertexShader_)),this.helper_.addUniforms(this.uniforms_),t&&(t.polygonBuffers&&(this.helper_.flushBufferData(t.polygonBuffers[0]),this.helper_.flushBufferData(t.polygonBuffers[1])),t.lineStringBuffers&&(this.helper_.flushBufferData(t.lineStringBuffers[0]),this.helper_.flushBufferData(t.lineStringBuffers[1])),t.pointBuffers&&(this.helper_.flushBufferData(t.pointBuffers[0]),this.helper_.flushBufferData(t.pointBuffers[1])))}},vf=BE;var Pr=new Uint8Array(4),wE=class{constructor(e,t){this.helper_=e;let n=e.getGL();this.texture_=n.createTexture(),this.framebuffer_=n.createFramebuffer(),this.depthbuffer_=n.createRenderbuffer(),this.size_=t||[1,1],this.data_=new Uint8Array(0),this.dataCacheDirty_=!0,this.updateSize_()}setSize(e){Mt(e,this.size_)||(this.size_[0]=e[0],this.size_[1]=e[1],this.updateSize_())}getSize(){return this.size_}clearCachedData(){this.dataCacheDirty_=!0}readAll(){if(this.dataCacheDirty_){let e=this.size_,t=this.helper_.getGL();t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer_),t.readPixels(0,0,e[0],e[1],t.RGBA,t.UNSIGNED_BYTE,this.data_),this.dataCacheDirty_=!1}return this.data_}readPixel(e,t){if(e<0||t<0||e>this.size_[0]||t>=this.size_[1])return Pr[0]=0,Pr[1]=0,Pr[2]=0,Pr[3]=0,Pr;this.readAll();let n=Math.floor(e)+(this.size_[1]-Math.floor(t)-1)*this.size_[0];return Pr[0]=this.data_[n*4],Pr[1]=this.data_[n*4+1],Pr[2]=this.data_[n*4+2],Pr[3]=this.data_[n*4+3],Pr}getTexture(){return this.texture_}getFramebuffer(){return this.framebuffer_}getDepthbuffer(){return this.depthbuffer_}updateSize_(){let e=this.size_,t=this.helper_.getGL();this.texture_=this.helper_.createTexture(e,null,this.texture_),t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer_),t.viewport(0,0,e[0],e[1]),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.texture_,0),t.bindRenderbuffer(t.RENDERBUFFER,this.depthbuffer_),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,e[0],e[1]),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,this.depthbuffer_),this.data_=new Uint8Array(e[0]*e[1]*4)}},Sf=wE;function C1(i,e){let t=i.viewState.projection,r=e.getSource().getWrapX()&&t.canWrapX(),o=t.getExtent(),s=i.extent,a=r?ue(o):null,l=r?Math.ceil((s[2]-o[2])/a)+1:1;return[r?Math.floor((s[0]-o[0])/a):0,l,a]}var vl={...Mr,RENDER_EXTENT:"u_renderExtent",PATTERN_ORIGIN:"u_patternOrigin",GLOBAL_ALPHA:"u_globalAlpha"},vE=class extends hf{constructor(e,t){let n={[vl.RENDER_EXTENT]:[0,0,0,0],[vl.PATTERN_ORIGIN]:[0,0],[vl.GLOBAL_ALPHA]:1};super(e,{uniforms:n,postProcesses:t.postProcesses}),this.hitDetectionEnabled_=!t.disableHitDetection,this.hitRenderTarget_,this.sourceRevision_=-1,this.previousExtent_=ot(),this.currentTransform_=Ce(),this.tmpCoords_=[0,0],this.tmpTransform_=Ce(),this.tmpMat4_=Kn(),this.currentFrameStateTransform_=Ce(),this.styleVariables_={},this.styles_=[],this.styleRenderers_=[],this.buffers_=[],this.applyOptions_(t),this.batch_=new yf,this.initialFeaturesAdded_=!1,this.sourceListenKeys_=null}addInitialFeatures_(e){let t=this.getLayer().getSource(),n=st(),r;n&&(r=$i(n,e.viewState.projection)),this.batch_.addFeatures(t.getFeatures(),r),this.sourceListenKeys_=[ee(t,Et.ADDFEATURE,this.handleSourceFeatureAdded_.bind(this,r)),ee(t,Et.CHANGEFEATURE,this.handleSourceFeatureChanged_,this),ee(t,Et.REMOVEFEATURE,this.handleSourceFeatureDelete_,this),ee(t,Et.CLEAR,this.handleSourceFeatureClear_,this)]}applyOptions_(e){this.styleVariables_=e.variables,this.styles_=wf(e.style)}createRenderers_(){this.buffers_=[],this.styleRenderers_=this.styles_.map(e=>new vf(e,this.styleVariables_,this.helper,this.hitDetectionEnabled_,"filter"in e?e.filter:null))}reset(e){this.applyOptions_(e),this.helper&&this.createRenderers_(),super.reset(e)}afterHelperCreated(){this.styleRenderers_.length?this.styleRenderers_.forEach((e,t)=>e.setHelper(this.helper,this.buffers_[t])):this.createRenderers_(),this.hitDetectionEnabled_&&(this.hitRenderTarget_=new Sf(this.helper))}handleSourceFeatureAdded_(e,t){let n=t.feature;this.batch_.addFeature(n,e)}handleSourceFeatureChanged_(e){let t=e.feature;this.batch_.changeFeature(t)}handleSourceFeatureDelete_(e){let t=e.feature;this.batch_.removeFeature(t)}handleSourceFeatureClear_(){this.batch_.clear()}applyUniforms_(e){Us(this.tmpTransform_,this.currentFrameStateTransform_),Un(this.tmpTransform_,e),this.helper.setUniformMatrixValue(vl.PROJECTION_MATRIX,Xn(this.tmpMat4_,this.tmpTransform_)),en(this.tmpTransform_,this.tmpTransform_),this.helper.setUniformMatrixValue(vl.SCREEN_TO_WORLD_MATRIX,Xn(this.tmpMat4_,this.tmpTransform_)),this.tmpCoords_[0]=0,this.tmpCoords_[1]=0,en(this.tmpTransform_,e),be(this.tmpTransform_,this.tmpCoords_),this.helper.setUniformFloatVec2(vl.PATTERN_ORIGIN,this.tmpCoords_)}renderFrame(e){let t=this.helper.getGL();this.preRender(t,e);let[n,r,o]=C1(e,this.getLayer());this.helper.prepareDraw(e),this.renderWorlds(e,!1,n,r,o),this.helper.finalizeDraw(e,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);let s=this.helper.getCanvas();return this.hitDetectionEnabled_&&(this.renderWorlds(e,!0,n,r,o),this.hitRenderTarget_.clearCachedData()),this.postRender(t,e),s}prepareFrameInternal(e){this.initialFeaturesAdded_||(this.addInitialFeatures_(e),this.initialFeaturesAdded_=!0);let t=this.getLayer(),n=t.getSource(),r=e.viewState,o=!e.viewHints[Ne.ANIMATING]&&!e.viewHints[Ne.INTERACTING],s=!Mi(this.previousExtent_,e.extent),a=this.sourceRevision_p.generateBuffers(this.batch_,f).then(I=>{this.buffers_[d]&&this.disposeBuffers(this.buffers_[d]),this.buffers_[d]=I}));Promise.all(g).then(()=>{this.ready=!0,this.getLayer().changed()}),this.previousExtent_=e.extent.slice()}return!0}renderWorlds(e,t,n,r,o){let s=n;t&&(this.hitRenderTarget_.setSize([Math.floor(e.size[0]/2),Math.floor(e.size[1]/2)]),this.helper.prepareDrawToRenderTarget(e,this.hitRenderTarget_,!0));do{this.helper.makeProjectionTransform(e,this.currentFrameStateTransform_),ns(this.currentFrameStateTransform_,s*o,0);for(let a=0,l=this.styleRenderers_.length;a{this.applyUniforms_(c.invertVerticesTransform),this.helper.applyHitDetectionUniform(t)})}}while(++s{for(let r of n)r&&this.helper.deleteBuffer(r)};e.pointBuffers&&t(e.pointBuffers),e.lineStringBuffers&&t(e.lineStringBuffers),e.polygonBuffers&&t(e.polygonBuffers)}disposeInternal(){this.buffers_.forEach(e=>{e&&this.disposeBuffers(e)}),this.sourceListenKeys_&&(this.sourceListenKeys_.forEach(function(e){ce(e)}),this.sourceListenKeys_=null),super.disposeInternal()}renderDeclutter(){}},Tf=vE;var wo={BLUR:"blur",GRADIENT:"gradient",RADIUS:"radius"},ZD=["#00f","#0ff","#0f0","#ff0","#f00"],SE=class extends Vn{constructor(e){e=e||{};let t=Object.assign({},e);delete t.gradient,delete t.radius,delete t.blur,delete t.weight,super(t),this.filter_=e.filter??!0,this.styleVariables_=e.variables||{},this.gradient_=null,this.addChangeListener(wo.GRADIENT,this.handleGradientChanged_),this.setGradient(e.gradient?e.gradient:ZD),this.setBlur(e.blur!==void 0?e.blur:15),this.setRadius(e.radius!==void 0?e.radius:8);let n=e.weight?e.weight:"weight";this.weight_=n,this.setRenderOrder(null)}getBlur(){return this.get(wo.BLUR)}getGradient(){return this.get(wo.GRADIENT)}getRadius(){return this.get(wo.RADIUS)}handleGradientChanged_(){this.gradient_=eF(this.getGradient())}setBlur(e){let t=this.get(wo.BLUR);if(this.set(wo.BLUR,e),typeof e=="number"&&typeof t=="number"){this.changed();return}this.clearRenderer()}setGradient(e){this.set(wo.GRADIENT,e)}setRadius(e){let t=this.get(wo.RADIUS);if(this.set(wo.RADIUS,e),typeof e=="number"&&typeof t=="number"){this.changed();return}this.clearRenderer()}setFilter(e){this.filter_=e,this.changed(),this.clearRenderer()}setWeight(e){this.weight_=e,this.changed(),this.clearRenderer()}createRenderer(){let e=new Is,t=xl(),n=le(t,this.filter_,It),r=le(t,this.getRadius(),te),o=le(t,this.getBlur(),te),s={};typeof this.getBlur()=="number"&&(o="a_blur",s.a_blur=()=>this.getBlur(),e.addUniform("float a_blur")),typeof this.getRadius()=="number"&&(r="a_radius",s.a_radius=()=>this.getRadius(),e.addUniform("float a_radius"));let a={},l=null;if(typeof this.weight_=="string"||typeof this.weight_=="function"){let h=typeof this.weight_=="string"?u=>u.get(this.weight_):this.weight_;a.prop_weight={size:1,callback:u=>{let f=h(u);return f!==void 0?Ee(f,0,1):1}},l="a_prop_weight",e.addAttribute("a_prop_weight","float")}else{let h=["clamp",this.weight_,0,1];l=le(t,h,te)}e.addFragmentShaderFunction(`float getBlurSlope() { + float blur = max(1., ${o}); + float radius = ${r}; + return radius / blur; +}`).setSymbolSizeExpression(`vec2(${r} + ${o}) * 2.`).setSymbolColorExpression(`vec4(smoothstep(0., 1., (1. - length(coordsPx * 2. / v_quadSizePx)) * getBlurSlope()) * ${l})`).setStrokeColorExpression(`vec4(smoothstep(0., 1., (1. - length(currentRadiusPx * 2. / v_width)) * getBlurSlope()) * ${l})`).setStrokeWidthExpression(`(${r} + ${o}) * 2.`).setFillColorExpression(`vec4(${l})`).setFragmentDiscardExpression(`!${n}`),Ef(e,t);let A=Cf(t),c=If(t,this.styleVariables_);return new Tf(this,{className:this.getClassName(),variables:this.styleVariables_,style:{builder:e,attributes:{...A,...a},uniforms:{...c,...s}},disableHitDetection:!1,postProcesses:[{fragmentShader:` + precision mediump float; + + uniform sampler2D u_image; + uniform sampler2D u_gradientTexture; + uniform float u_opacity; + + varying vec2 v_texCoord; + + void main() { + vec4 color = texture2D(u_image, v_texCoord); + gl_FragColor.a = color.a * u_opacity; + gl_FragColor.rgb = texture2D(u_gradientTexture, vec2(0.5, color.a)).rgb; + gl_FragColor.rgb *= gl_FragColor.a; + }`,uniforms:{u_gradientTexture:()=>this.gradient_,u_opacity:()=>this.getOpacity()}}]})}updateStyleVariables(e){Object.assign(this.styleVariables_,e),this.changed()}renderDeclutter(){}};function eF(i){let n=Re(1,256),r=n.createLinearGradient(0,0,1,256),o=1/(i.length-1);for(let s=0,a=i.length;s` ${e.varyingType} ${e.name} = ${e.varyingName}; // a sb, sb, sb + saturation ); color.rgb = clamp(saturationMatrix * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0)); - `)}if(i.gamma!==void 0){let h=ne(n,i.gamma,q);r.push(`color.rgb = pow(color.rgb, vec3(1.0 / ${h}));`)}if(i.brightness!==void 0){let h=ne(n,i.brightness,q);r.push(`color.rgb = clamp(color.rgb + ${h}, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}let o={},s=Object.keys(n.variables).length;if(s>1&&!i.variables)throw new Error(`Missing variables in style (expected ${n.variables})`);for(let h=0;h1&&!i.variables)throw new Error(`Missing variables in style (expected ${n.variables})`);for(let h=0;h` ${e.varyingType} ${e.name} = ${e.varyingName}; // a varying vec2 v_textureCoord; varying vec2 v_mapCoord; - uniform vec4 ${Ae.RENDER_EXTENT}; - uniform float ${Ae.TRANSITION_ALPHA}; - uniform float ${Ae.TEXTURE_PIXEL_WIDTH}; - uniform float ${Ae.TEXTURE_PIXEL_HEIGHT}; - uniform float ${Ae.RESOLUTION}; - uniform float ${Ae.ZOOM}; + uniform vec4 ${Ie.RENDER_EXTENT}; + uniform float ${Ie.TRANSITION_ALPHA}; + uniform float ${Ie.TEXTURE_PIXEL_WIDTH}; + uniform float ${Ie.TEXTURE_PIXEL_HEIGHT}; + uniform float ${Ie.RESOLUTION}; + uniform float ${Ie.ZOOM}; ${a.join(` `)} - ${l.join(` + ${A.join(` `)} void main() { if ( - v_mapCoord[0] < ${Ae.RENDER_EXTENT}[0] || - v_mapCoord[1] < ${Ae.RENDER_EXTENT}[1] || - v_mapCoord[0] > ${Ae.RENDER_EXTENT}[2] || - v_mapCoord[1] > ${Ae.RENDER_EXTENT}[3] + v_mapCoord[0] < ${Ie.RENDER_EXTENT}[0] || + v_mapCoord[1] < ${Ie.RENDER_EXTENT}[1] || + v_mapCoord[0] > ${Ie.RENDER_EXTENT}[2] || + v_mapCoord[1] > ${Ie.RENDER_EXTENT}[3] ) { discard; } - vec4 color = texture2D(${Ae.TILE_TEXTURE_ARRAY}[0], v_textureCoord); + vec4 color = texture2D(${Ie.TILE_TEXTURE_ARRAY}[0], v_textureCoord); ${r.join(` `)} gl_FragColor = color; gl_FragColor.rgb *= gl_FragColor.a; - gl_FragColor *= ${Ae.TRANSITION_ALPHA}; - }`;return{vertexShader:t,fragmentShader:c,uniforms:o,paletteTextures:n.paletteTextures}}var ic=class extends zl{constructor(e){e=e?Object.assign({},e):{};let t=e.style||{};delete e.style,super(e),this.sources_=e.sources,this.renderedSource_=null,this.renderedResolution_=NaN,this.style_=t,this.styleVariables_=this.style_.variables||{},this.handleSourceUpdate_(),this.addChangeListener(pe.SOURCE,this.handleSourceUpdate_)}getSources(e,t){let n=this.getSource();return this.sources_?typeof this.sources_=="function"?this.sources_(e,t):this.sources_:n?[n]:[]}getRenderSource(){return this.renderedSource_||this.getSource()}getSourceState(){let e=this.getRenderSource();return e?e.getState():"undefined"}handleSourceUpdate_(){this.hasRenderer()&&this.getRenderer().clearCache();let e=this.getSource();if(e)if(e.getState()==="loading"){let t=()=>{e.getState()==="ready"&&(e.removeEventListener("change",t),this.setStyle(this.style_))};e.addEventListener("change",t)}else this.setStyle(this.style_)}getSourceBandCount_(){let e=Number.MAX_SAFE_INTEGER,t=this.getSources([-e,-e,e,e],e);return t&&t.length&&"bandCount"in t[0]?t[0].bandCount:4}createRenderer(){let e=cC(this.style_,this.getSourceBandCount_());return new q0(this,{vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms,cacheSize:this.getCacheSize(),paletteTextures:e.paletteTextures})}renderSources(e,t){let n=this.getRenderer(),r;for(let o=0,s=t.length;o{l.getState()=="ready"&&(l.removeEventListener("change",h),this.changed())};l.addEventListener("change",h)}o=o&&c=="ready"}let s=this.renderSources(e,r);if(this.getRenderer().renderComplete&&o)return this.renderedResolution_=n.resolution,s;if(this.renderedResolution_>.5*n.resolution){let a=this.getSources(e.extent,this.renderedResolution_).filter(A=>!r.includes(A));if(a.length>0)return this.renderSources(e,a)}return s}setStyle(e){if(this.styleVariables_=e.variables||{},this.style_=e,this.hasRenderer()){let t=cC(this.style_,this.getSourceBandCount_());this.getRenderer().reset({vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms,paletteTextures:t.paletteTextures}),this.changed()}}updateStyleVariables(e){Object.assign(this.styleVariables_,e),this.changed()}};ic.prototype.dispose;var hC=ic;var uC={TileLayer:E0,VectorLayer:bE,WebGLVectorLayer:lC,WebGLTileLayer:hC};var as=[0,0,0],gr=5,ud=class{constructor(e){this.minZoom=e.minZoom!==void 0?e.minZoom:0,this.resolutions_=e.resolutions,re(Ep(this.resolutions_,(r,o)=>o-r,!0),"`resolutions` must be sorted in descending order");let t;if(!e.origins){for(let r=0,o=this.resolutions_.length-1;r{let s=new Zo(Math.min(0,r[0]),Math.max(r[0]-1,-1),Math.min(0,r[1]),Math.max(r[1]-1,-1));if(n){let a=this.getTileRangeForExtentAndZ(n,o);s.minX=Math.max(a.minX,s.minX),s.maxX=Math.min(a.maxX,s.maxX),s.minY=Math.max(a.minY,s.minY),s.maxY=Math.min(a.maxY,s.maxY)}return s}):n&&this.calculateTileRanges_(n)}forEachTileCoord(e,t,n){let r=this.getTileRangeForExtentAndZ(e,t);for(let o=r.minX,s=r.maxX;o<=s;++o)for(let a=r.minY,A=r.maxY;a<=A;++a)n([t,o,a])}forEachTileCoordParentTileRange(e,t,n,r){let o,s,a,A=null,l=e[0]-1;for(this.zoomFactor_===2?(s=e[1],a=e[2]):A=this.getTileCoordExtent(e,r);l>=this.minZoom;){if(s!==void 0&&a!==void 0?(s=Math.floor(s/2),a=Math.floor(a/2),o=qr(s,s,a,a,n)):o=this.getTileRangeForExtentAndZ(A,l,n),t(l,o))return!0;--l}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(e){return this.origin_?this.origin_:this.origins_[e]}getResolution(e){return this.resolutions_[e]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(e,t,n){if(e[0]this.maxZoom||t0?n:Math.max(o/t[0],r/t[1]);let s=e+1,a=new Array(s);for(let A=0;Athis.getTileInternal(f,g,m,d,s),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.tileOptions);return u.key=A,u}getTileInternal(e,t,n,r,o){let s=this.getKey();return this.createTile_(e,t,n,r,o,s)}setRenderReprojectionEdges(e){this.renderReprojectionEdges_!=e&&(this.renderReprojectionEdges_=e,this.changed())}setTileGridForProjection(e,t){let n=fe(e);if(n){let r=z(n);r in this.tileGridForProjection||(this.tileGridForProjection[r]=t)}}};function W1(i,e){i.getImage().src=e}var IC=dd;var md=class extends IC{constructor(e){e=e||{};let t=e.projection!==void 0?e.projection:"EPSG:3857",n=e.tileGrid!==void 0?e.tileGrid:nc({extent:ls(t),maxResolution:e.maxResolution,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize});super({attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,interpolate:e.interpolate,projection:t,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileGrid:n,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX!==void 0?e.wrapX:!0,transition:e.transition,attributionsCollapsible:e.attributionsCollapsible,zDirection:e.zDirection}),this.gutter_=e.gutter!==void 0?e.gutter:0}getGutter(){return this.gutter_}},EC=md;var Z1='© OpenStreetMap contributors.',pd=class extends EC{constructor(e){e=e||{};let t;e.attributions!==void 0?t=e.attributions:t=[Z1];let n=e.crossOrigin!==void 0?e.crossOrigin:"anonymous",r=e.url!==void 0?e.url:"https://tile.openstreetmap.org/{z}/{x}/{y}.png";super({attributions:t,attributionsCollapsible:!1,cacheSize:e.cacheSize,crossOrigin:n,interpolate:e.interpolate,maxZoom:e.maxZoom!==void 0?e.maxZoom:19,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileLoadFunction:e.tileLoadFunction,transition:e.transition,url:r,wrapX:e.wrapX,zDirection:e.zDirection})}},CC=pd;var _C="Cannot convert undefined or null to object";function ve(i){return(e,...t)=>$1(i,e,t)}function hs(i,e){return ve(ac(i,e).get)}var{apply:$1,construct:IK,defineProperty:EK,get:CK,getOwnPropertyDescriptor:ac,getPrototypeOf:Ac,has:_K,ownKeys:BC,set:yK,setPrototypeOf:BK}=Reflect;var{EPSILON:xC,MAX_SAFE_INTEGER:xK,isFinite:eS,isNaN:tS}=Number,{iterator:us,species:wK,toStringTag:iS,for:QK}=Symbol,lc=Object,{create:cc,defineProperty:wC,freeze:SK,is:RK}=lc,Id=lc.prototype,TK=Id.__lookupGetter__?ve(Id.__lookupGetter__):(i,e)=>{if(i==null)throw sS(_C);let t=lc(i);do{let n=ac(t,e);if(n!==void 0)return nS(n,"get")?n.get:void 0}while((t=Ac(t))!==null)},nS=lc.hasOwn||ve(Id.hasOwnProperty),QC=Array,vK=QC.isArray,hc=QC.prototype,DK=ve(hc.join),bK=ve(hc.push),FK=ve(hc.toLocaleString),Ed=hc[us],SC=ve(Ed),{abs:rS,trunc:LK}=Math,uc=ArrayBuffer,MK=uc.isView,RC=uc.prototype,kK=ve(RC.slice),PK=hs(RC,"byteLength"),yC=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:null,NK=yC&&hs(yC.prototype,"byteLength"),TC=Ac(Uint8Array),GK=TC.from,Rt=TC.prototype,OK=Rt[us],UK=ve(Rt.keys),YK=ve(Rt.values),HK=ve(Rt.entries),zK=ve(Rt.set),KK=ve(Rt.reverse),qK=ve(Rt.fill),VK=ve(Rt.copyWithin),XK=ve(Rt.sort),JK=ve(Rt.slice),jK=ve(Rt.subarray),WK=hs(Rt,"buffer"),ZK=hs(Rt,"byteOffset"),$K=hs(Rt,"length"),eq=hs(Rt,iS),vC=Uint8Array,Cd=Uint16Array;var fc=Uint32Array,DC=Float32Array,fs=Ac([][us]()),_d=ve(fs.next),bC=ve(function*(){}().next),FC=Ac(fs),LC=DataView.prototype,MC=ve(LC.getUint16),oS=ve(LC.setUint16),sS=TypeError;var aS=WeakSet,kC=aS.prototype,tq=ve(kC.add),iq=ve(kC.has),gc=WeakMap,yd=gc.prototype,Bd=ve(yd.get),nq=ve(yd.has),PC=ve(yd.set);var NC=new gc,AS=cc(null,{next:{value:function(){let e=Bd(NC,this);return _d(e)}},[us]:{value:function(){return this}}});function GC(i){if(i[us]===Ed&&fs.next===_d)return i;let e=cc(AS);return PC(NC,e,SC(i)),e}var lS=new gc,cS=cc(FC,{next:{value:function(){let e=Bd(lS,this);return bC(e)},writable:!0,configurable:!0}});for(let i of BC(fs))i!=="next"&&wC(cS,i,ac(fs,i));var hS=1/xC;var uS=6103515625e-14;var OC=.0009765625,Aq=OC*uS,lq=OC*hS;var UC=new uc(4),fS=new DC(UC),gS=new fc(UC),en=new Cd(512),tn=new vC(512);for(let i=0;i<256;++i){let e=i-127;e<-24?(en[i]=0,en[i|256]=32768,tn[i]=24,tn[i|256]=24):e<-14?(en[i]=1024>>-e-14,en[i|256]=1024>>-e-14|32768,tn[i]=-e-1,tn[i|256]=-e-1):e<=15?(en[i]=e+15<<10,en[i|256]=e+15<<10|32768,tn[i]=13,tn[i|256]=13):e<128?(en[i]=31744,en[i|256]=64512,tn[i]=24,tn[i|256]=24):(en[i]=31744,en[i|256]=64512,tn[i]=13,tn[i|256]=13)}var xd=new fc(2048);for(let i=1;i<1024;++i){let e=i<<13,t=0;for(;(e&8388608)===0;)e<<=1,t-=8388608;e&=-8388609,t+=947912704,xd[i]=e|t}for(let i=1024;i<2048;++i)xd[i]=939524096+(i-1024<<13);var gs=new fc(64);for(let i=1;i<31;++i)gs[i]=i<<23;gs[31]=1199570944;gs[32]=2147483648;for(let i=33;i<63;++i)gs[i]=2147483648+(i-32<<23);gs[63]=3347054592;var YC=new Cd(64);for(let i=1;i<64;++i)i!==32&&(YC[i]=1024);function HC(i){let e=i>>10;return gS[0]=xd[YC[e]+(i&1023)]+gs[e],fS[0]}function Na(i,e,...t){return HC(MC(i,e,...GC(t)))}var Xc=fo(KC(),1),tB=fo(i_(),1);Oa();function r_(i,e){let{width:t,height:n}=i,r=new Uint8Array(t*n*3),o;for(let s=0,a=0;s>24,A=i[r+2]<<24>>24,l=(s+16)/116,c=a/500+l,h=l-A/200,u,f,g;c=IS*(c*c*c>.008856?c*c*c:(c-16/116)/7.787),l=ES*(l*l*l>.008856?l*l*l:(l-16/116)/7.787),h=CS*(h*h*h>.008856?h*h*h:(h-16/116)/7.787),u=c*3.2406+l*-1.5372+h*-.4986,f=c*-.9689+l*1.8758+h*.0415,g=c*.0557+l*-.204+h*1.057,u=u>.0031308?1.055*u**(1/2.4)-.055:12.92*u,f=f>.0031308?1.055*f**(1/2.4)-.055:12.92*f,g=g>.0031308?1.055*g**(1/2.4)-.055:12.92*g,n[o]=Math.max(0,Math.min(1,u))*255,n[o+1]=Math.max(0,Math.min(1,f))*255,n[o+2]=Math.max(0,Math.min(1,g))*255}return n}var Zy=new Map;function yr(i,e){Array.isArray(i)||(i=[i]),i.forEach(t=>Zy.set(t,e))}async function qc(i){let e=Zy.get(i.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${i.Compression}`);let t=await e();return new t(i)}yr([void 0,1],()=>Promise.resolve().then(()=>(f_(),u_)).then(i=>i.default));yr(5,()=>Promise.resolve().then(()=>(m_(),d_)).then(i=>i.default));yr(6,()=>{throw new Error("old style JPEG compression is not supported.")});yr(7,()=>Promise.resolve().then(()=>(E_(),I_)).then(i=>i.default));yr([8,32946],()=>Promise.resolve().then(()=>(Oy(),Gy)).then(i=>i.default));yr(32773,()=>Promise.resolve().then(()=>(Yy(),Uy)).then(i=>i.default));yr(34887,()=>Promise.resolve().then(()=>(Jy(),Xy)).then(async i=>(await i.zstd.init(),i)).then(i=>i.default));yr(50001,()=>Promise.resolve().then(()=>(Wy(),jy)).then(i=>i.default));function Vc(i,e,t,n=1){return new(Object.getPrototypeOf(i)).constructor(e*t*n)}function av(i,e,t,n,r){let o=e/n,s=t/r;return i.map(a=>{let A=Vc(a,n,r);for(let l=0;l{let A=Vc(a,n,r);for(let l=0;l>8-r-y&h;else if(y+r<=16)c[C]=a.getUint16(E)>>16-r-y&h;else if(y+r<=24){let B=a.getUint16(E)<<8|a.getUint8(E+2);c[C]=B>>24-r-y&h}else c[C]=a.getUint32(E)>>32-r-y&h}}}}return c.buffer}var Em=class{constructor(e,t,n,r,o,s){this.fileDirectory=e,this.geoKeys=t,this.dataView=n,this.littleEndian=r,this.tiles=o?{}:null,this.isTiled=!e.StripOffsets;let a=e.PlanarConfiguration;if(this.planarConfiguration=typeof a>"u"?1:a,this.planarConfiguration!==1&&this.planarConfiguration!==2)throw new Error("Invalid planar configuration.");this.source=s}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return typeof this.fileDirectory.SamplesPerPixel<"u"?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:typeof this.fileDirectory.RowsPerStrip<"u"?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(e){return this.isTiled||(e+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-e*this.getTileHeight()}getBytesPerPixel(){let e=0;for(let t=0;t=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${e} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[e]/8)}getReaderForSample(e){let t=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1,n=this.fileDirectory.BitsPerSample[e];switch(t){case 1:if(n<=8)return DataView.prototype.getUint8;if(n<=16)return DataView.prototype.getUint16;if(n<=32)return DataView.prototype.getUint32;break;case 2:if(n<=8)return DataView.prototype.getInt8;if(n<=16)return DataView.prototype.getInt16;if(n<=32)return DataView.prototype.getInt32;break;case 3:switch(n){case 16:return function(r,o){return Na(this,r,o)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64;default:break}break;default:break}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(e=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1}getBitsPerSample(e=0){return this.fileDirectory.BitsPerSample[e]}getArrayForSample(e,t){let n=this.getSampleFormat(e),r=this.getBitsPerSample(e);return Im(n,r,t)}async getTileOrStrip(e,t,n,r,o){let s=Math.ceil(this.getWidth()/this.getTileWidth()),a=Math.ceil(this.getHeight()/this.getTileHeight()),A,{tiles:l}=this;this.planarConfiguration===1?A=t*s+e:this.planarConfiguration===2&&(A=n*s*a+t*s+e);let c,h;this.isTiled?(c=this.fileDirectory.TileOffsets[A],h=this.fileDirectory.TileByteCounts[A]):(c=this.fileDirectory.StripOffsets[A],h=this.fileDirectory.StripByteCounts[A]);let u=(await this.source.fetch([{offset:c,length:h}],o))[0],f;return l===null||!l[A]?(f=(async()=>{let g=await r.decode(this.fileDirectory,u),m=this.getSampleFormat(),d=this.getBitsPerSample();return uv(m,d)&&(g=fv(g,m,this.planarConfiguration,this.getSamplesPerPixel(),d,this.getTileWidth(),this.getBlockHeight(t))),g})(),l!==null&&(l[A]=f)):f=l[A],{x:e,y:t,sample:n,data:await f}}async _readRaster(e,t,n,r,o,s,a,A,l){let c=this.getTileWidth(),h=this.getTileHeight(),u=this.getWidth(),f=this.getHeight(),g=Math.max(Math.floor(e[0]/c),0),m=Math.min(Math.ceil(e[2]/c),Math.ceil(u/c)),d=Math.max(Math.floor(e[1]/h),0),I=Math.min(Math.ceil(e[3]/h),Math.ceil(f/h)),p=e[2]-e[0],_=this.getBytesPerPixel(),C=[],E=[];for(let x=0;x{let k=S.data,L=new DataView(k),b=this.getBlockHeight(S.y),P=S.y*h,N=S.x*c,Y=P+b,M=(S.x+1)*c,j=E[R],H=Math.min(b,b-(Y-e[3]),f-P),O=Math.min(c,c-(M-e[2]),u-N);for(let K=Math.max(0,e[1]-P);Kc[2]||c[1]>c[3])throw new Error("Invalid subsets");let h=c[2]-c[0],u=c[3]-c[1],f=h*u,g=this.getSamplesPerPixel();if(!t||!t.length)for(let p=0;p=g)return Promise.reject(new RangeError(`Invalid sample index '${t[p]}'.`));let m;if(n){let p=this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,_=Math.max.apply(null,this.fileDirectory.BitsPerSample);m=Im(p,_,f*t.length),A&&m.fill(A)}else{m=[];for(let p=0;pl[2]||l[1]>l[3])throw new Error("Invalid subsets");let c=this.fileDirectory.PhotometricInterpretation;if(c===Tt.RGB){let I=[0,1,2];if(this.fileDirectory.ExtraSamples!==Fd.Unspecified&&a){I=[];for(let p=0;p(0,Xc.default)(o,"sample")===void 0):r=r.filter(o=>Number((0,Xc.default)(o,"sample"))===e);for(let o=0;o[a+r*d+o*I,h+A*d+l*I]),g=f.map(d=>d[0]),m=f.map(d=>d[1]);return[Math.min(...g),Math.min(...m),Math.max(...g),Math.max(...m)]}else{let r=this.getOrigin(),o=this.getResolution(),s=r[0],a=r[1],A=s+o[0]*n,l=a+o[1]*t;return[Math.min(s,A),Math.min(a,l),Math.max(s,A),Math.max(a,l)]}}},Cm=Em;var aA=class{constructor(e){this._dataView=new DataView(e)}get buffer(){return this._dataView.buffer}getUint64(e,t){let n=this.getUint32(e,t),r=this.getUint32(e+4,t),o;if(t){if(o=n+2**32*r,!Number.isSafeInteger(o))throw new Error(`${o} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return o}if(o=2**32*n+r,!Number.isSafeInteger(o))throw new Error(`${o} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return o}getInt64(e,t){let n=0,r=(this._dataView.getUint8(e+(t?7:0))&128)>0,o=!0;for(let s=0;s<8;s++){let a=this._dataView.getUint8(e+(t?s:7-s));r&&(o?a!==0&&(a=~(a-1)&255,o=!1):a=~a&255),n+=a*256**s}return r&&(n=-n),n}getUint8(e,t){return this._dataView.getUint8(e,t)}getInt8(e,t){return this._dataView.getInt8(e,t)}getUint16(e,t){return this._dataView.getUint16(e,t)}getInt16(e,t){return this._dataView.getInt16(e,t)}getUint32(e,t){return this._dataView.getUint32(e,t)}getInt32(e,t){return this._dataView.getInt32(e,t)}getFloat16(e,t){return Na(this._dataView,e,t)}getFloat32(e,t){return this._dataView.getFloat32(e,t)}getFloat64(e,t){return this._dataView.getFloat64(e,t)}};var AA=class{constructor(e,t,n,r){this._dataView=new DataView(e),this._sliceOffset=t,this._littleEndian=n,this._bigTiff=r}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(e,t){return this.sliceOffset<=e&&this.sliceTop>=e+t}readUint8(e){return this._dataView.getUint8(e-this._sliceOffset,this._littleEndian)}readInt8(e){return this._dataView.getInt8(e-this._sliceOffset,this._littleEndian)}readUint16(e){return this._dataView.getUint16(e-this._sliceOffset,this._littleEndian)}readInt16(e){return this._dataView.getInt16(e-this._sliceOffset,this._littleEndian)}readUint32(e){return this._dataView.getUint32(e-this._sliceOffset,this._littleEndian)}readInt32(e){return this._dataView.getInt32(e-this._sliceOffset,this._littleEndian)}readFloat32(e){return this._dataView.getFloat32(e-this._sliceOffset,this._littleEndian)}readFloat64(e){return this._dataView.getFloat64(e-this._sliceOffset,this._littleEndian)}readUint64(e){let t=this.readUint32(e),n=this.readUint32(e+4),r;if(this._littleEndian){if(r=t+2**32*n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}if(r=2**32*t+n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}readInt64(e){let t=0,n=(this._dataView.getUint8(e+(this._littleEndian?7:0))&128)>0,r=!0;for(let o=0;o<8;o++){let s=this._dataView.getUint8(e+(this._littleEndian?o:7-o));n&&(r?s!==0&&(s=~(s-1)&255,r=!1):s=~s&255),t+=s*256**o}return n&&(t=-t),t}readOffset(e){return this._bigTiff?this.readUint64(e):this.readUint32(e)}};var dv=typeof navigator<"u"&&navigator.hardwareConcurrency||2,_m=class{constructor(e=dv,t){this.workers=null,this._awaitingDecoder=null,this.size=e,this.messageId=0,e&&(this._awaitingDecoder=t?Promise.resolve(t):new Promise(n=>{Promise.resolve().then(()=>(oB(),rB)).then(r=>{n(r.create)})}),this._awaitingDecoder.then(n=>{this._awaitingDecoder=null,this.workers=[];for(let r=0;rn.decode(e,t)):new Promise(n=>{let r=this.workers.find(a=>a.idle)||this.workers[Math.floor(Math.random()*this.size)];r.idle=!1;let o=this.messageId++,s=a=>{a.data.id===o&&(r.idle=!0,n(a.data.decoded),r.worker.removeEventListener("message",s))};r.worker.addEventListener("message",s),r.worker.postMessage({fileDirectory:e,buffer:t,id:o},[t])})}destroy(){this.workers&&(this.workers.forEach(e=>{e.worker.terminate()}),this.workers=null)}},ym=_m;var sB=`\r + gl_FragColor *= ${Ie.TRANSITION_ALPHA}; + }`;return{vertexShader:t,fragmentShader:c,uniforms:o,paletteTextures:n.paletteTextures}}var Rf=class extends Cl{constructor(e){e=e?Object.assign({},e):{};let t=e.style||{};delete e.style,super(e),this.sources_=e.sources,this.renderedSource_=null,this.renderedResolution_=NaN,this.style_=t,this.styleVariables_=this.style_.variables||{},this.handleSourceUpdate_(),this.addChangeListener(ke.SOURCE,this.handleSourceUpdate_)}getSources(e,t){let n=this.getSource();return this.sources_?typeof this.sources_=="function"?this.sources_(e,t):this.sources_:n?[n]:[]}getRenderSource(){return this.renderedSource_||this.getSource()}getSourceState(){let e=this.getRenderSource();return e?e.getState():"undefined"}handleSourceUpdate_(){this.hasRenderer()&&this.getRenderer().clearCache();let e=this.getSource();if(e)if(e.getState()==="loading"){let t=()=>{e.getState()==="ready"&&(e.removeEventListener("change",t),this.setStyle(this.style_))};e.addEventListener("change",t)}else this.setStyle(this.style_)}getSourceBandCount_(){let e=Number.MAX_SAFE_INTEGER,t=this.getSources([-e,-e,e,e],e);return t&&t.length&&"bandCount"in t[0]?t[0].bandCount:4}createRenderer(){let e=x1(this.style_,this.getSourceBandCount_());return new A1(this,{vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms,cacheSize:this.getCacheSize(),paletteTextures:e.paletteTextures})}renderSources(e,t){let n=this.getRenderer(),r;for(let o=0,s=t.length;o{A.getState()=="ready"&&(A.removeEventListener("change",h),this.changed())};A.addEventListener("change",h)}o=o&&c=="ready"}let s=this.renderSources(e,r);if(this.getRenderer().renderComplete&&o)return this.renderedResolution_=n.resolution,s;if(this.renderedResolution_>.5*n.resolution){let a=this.getSources(e.extent,this.renderedResolution_).filter(l=>!r.includes(l));if(a.length>0)return this.renderSources(e,a)}return s}setStyle(e){if(this.styleVariables_=e.variables||{},this.style_=e,this.hasRenderer()){let t=x1(this.style_,this.getSourceBandCount_());this.getRenderer().reset({vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms,paletteTextures:t.paletteTextures}),this.changed()}}updateStyleVariables(e){Object.assign(this.styleVariables_,e),this.changed()}};Rf.prototype.dispose;var B1=Rf;var RE=class extends cf{constructor(e,t){super(e),this.batch_=new yf,this.styleRenderers_=t,this.buffers=[],this.maskVertices=new fr(yo,Lr),this.setTile(e.tile)}generateMaskBuffer_(){let e=this.tile.getSourceTiles()[0].extent;this.maskVertices.fromArray([e[0],e[1],e[2],e[1],e[2],e[3],e[0],e[3]]),this.helper.flushBufferData(this.maskVertices)}uploadTile(){this.generateMaskBuffer_(),this.batch_.clear();let e=this.tile.getSourceTiles(),t=e.reduce((a,l)=>a.concat(l.getFeatures()),[]);this.batch_.addFeatures(t);let n=e[0].extent[0],r=e[0].extent[1],o=ns(Ce(),-n,-r),s=this.styleRenderers_.map((a,l)=>a.generateBuffers(this.batch_,o).then(A=>{this.buffers[l]=A}));Promise.all(s).then(()=>{this.setReady()})}disposeInternal(){this.buffers.forEach(e=>{this.disposeBuffers(e)}),super.disposeInternal()}disposeBuffers(e){if(!e)return;let t=n=>{for(let r of n)r&&this.helper.deleteBuffer(r)};e.pointBuffers&&t(e.pointBuffers),e.lineStringBuffers&&t(e.lineStringBuffers),e.polygonBuffers&&t(e.polygonBuffers)}},w1=RE;var zt={...ff,TILE_MASK_TEXTURE:"u_depthMask",TILE_ZOOM_LEVEL:"u_tileZoomLevel"},tF={POSITION:"a_position"},QE=class extends gf{constructor(e,t){super(e,{cacheSize:t.cacheSize,uniforms:{[zt.PATTERN_ORIGIN]:[0,0],[zt.TILE_MASK_TEXTURE]:()=>this.tileMaskTarget_.getTexture()}}),this.hitDetectionEnabled_=!t.disableHitDetection,this.styles_=[],this.styleVariables_=t.variables||{},this.styleRenderers_=[],this.currentFrameStateTransform_=Ce(),this.tmpTransform_=Ce(),this.tmpMat4_=Kn(),this.tileMaskTarget_=null,this.tileMaskIndices_=new fr(_o,Lr),this.tileMaskIndices_.fromArray([0,1,3,1,2,3]),this.tileMaskAttributes_=[{name:tF.POSITION,size:2,type:Ut.FLOAT}],this.tileMaskProgram_,this.applyOptions_(t)}reset(e){super.reset(e),this.applyOptions_(e),this.helper&&(this.createRenderers_(),this.initTileMask_())}applyOptions_(e){this.styles_=wf(e.style)}createRenderers_(){function e(t){let n=t.getFragmentDiscardExpression(),r=`texture2D(${zt.TILE_MASK_TEXTURE}, gl_FragCoord.xy / u_pixelRatio / u_viewportSizePx).r * 50. > ${zt.TILE_ZOOM_LEVEL} + 0.5`;t.setFragmentDiscardExpression(n!=="false"?`(${n}) || (${r})`:r),t.addUniform(`sampler2D ${zt.TILE_MASK_TEXTURE}`),t.addUniform(`float ${zt.TILE_ZOOM_LEVEL}`)}this.styleRenderers_=this.styles_.map(t=>{let n="builder"in t,r;if(n)e(t.builder),r=t;else{let o=Bf(t.style,this.styleVariables_,t.filter);e(o.builder),r={builder:o.builder,attributes:o.attributes,uniforms:o.uniforms}}return new vf(r,this.styleVariables_,this.helper,this.hitDetectionEnabled_,"filter"in t?t.filter:null)})}initTileMask_(){this.tileMaskTarget_=new Sf(this.helper);let e=new Is().setFillColorExpression(`vec4(${zt.TILE_ZOOM_LEVEL} / 50., 0., 0., 1.)`).addUniform(`float ${zt.TILE_ZOOM_LEVEL}`);this.tileMaskProgram_=this.helper.getProgram(e.getFillFragmentShader(),e.getFillVertexShader()),this.helper.flushBufferData(this.tileMaskIndices_)}afterHelperCreated(){this.createRenderers_(),this.initTileMask_()}createTileRepresentation(e){let t=new w1(e,this.styleRenderers_),n=()=>{t.ready&&(this.getLayer().changed(),t.removeEventListener(K.CHANGE,n))};return t.addEventListener(K.CHANGE,n),t}beforeTilesRender(e,t){super.beforeTilesRender(e,!0),this.helper.makeProjectionTransform(e,this.currentFrameStateTransform_)}beforeTilesMaskRender(e){this.helper.makeProjectionTransform(e,this.currentFrameStateTransform_);let t=e.pixelRatio,n=e.size;return this.tileMaskTarget_.setSize([n[0]*t,n[1]*t]),this.helper.prepareDrawToRenderTarget(e,this.tileMaskTarget_,!0,!0),this.helper.useProgram(this.tileMaskProgram_,e),Us(this.tmpTransform_,this.currentFrameStateTransform_),this.helper.setUniformMatrixValue(zt.PROJECTION_MATRIX,Xn(this.tmpMat4_,this.tmpTransform_)),en(this.tmpTransform_,this.currentFrameStateTransform_),this.helper.setUniformMatrixValue(zt.SCREEN_TO_WORLD_MATRIX,Xn(this.tmpMat4_,this.tmpTransform_)),!0}renderTileMask(e,t,n,r){if(!e.ready)return;this.helper.setUniformFloatValue(zt.DEPTH,r),this.helper.setUniformFloatValue(zt.TILE_ZOOM_LEVEL,t),this.helper.setUniformFloatVec4(zt.RENDER_EXTENT,n),this.helper.setUniformFloatValue(zt.GLOBAL_ALPHA,1),this.helper.bindBuffer(e.maskVertices),this.helper.bindBuffer(this.tileMaskIndices_),this.helper.enableAttributes(this.tileMaskAttributes_);let o=this.tileMaskIndices_.getSize();this.helper.drawElements(0,o)}applyUniforms_(e,t,n,r,o){Us(this.tmpTransform_,this.currentFrameStateTransform_),Un(this.tmpTransform_,n),this.helper.setUniformMatrixValue(zt.PROJECTION_MATRIX,Xn(this.tmpMat4_,this.tmpTransform_)),en(this.tmpTransform_,this.currentFrameStateTransform_),this.helper.setUniformMatrixValue(zt.SCREEN_TO_WORLD_MATRIX,Xn(this.tmpMat4_,this.tmpTransform_)),this.helper.setUniformFloatValue(zt.GLOBAL_ALPHA,e),this.helper.setUniformFloatValue(zt.DEPTH,o),this.helper.setUniformFloatValue(zt.TILE_ZOOM_LEVEL,r),this.helper.setUniformFloatVec4(zt.RENDER_EXTENT,t)}renderTile(e,t,n,r,o,s,a,l,A,c,h){let u=Ze(l,r,l),f=e.tile.getTileCoord()[0];for(let g=0,p=this.styleRenderers_.length;g{this.applyUniforms_(h,u,I.invertVerticesTransform,f,A)})}}renderDeclutter(e){}disposeInternal(){super.disposeInternal()}},v1=QE;var bE=class extends Cl{constructor(e){let t=Object.assign({},e);super(t),this.styleVariables_=e.variables||{},this.style_=e.style,this.hitDetectionDisabled_=!!e.disableHitDetection}createRenderer(){return new v1(this,{style:this.style_,variables:this.styleVariables_,disableHitDetection:this.hitDetectionDisabled_})}updateStyleVariables(e){Object.assign(this.styleVariables_,e),this.changed()}setStyle(e){this.style_=e,this.clearRenderer(),this.changed()}},S1=bE;var T1={TileLayer:MB,VectorLayer:An,WebGLVectorLayer:_1,WebGLTileLayer:B1,VectorTileLayer:NB,WebGLVectorTileLayer:S1,ImageLayer:OB,VectorImageLayer:YB,HeatmapLayer:y1};var Sl=[0,0,0],Cs=5,DE=class{constructor(e){this.minZoom=e.minZoom!==void 0?e.minZoom:0,this.resolutions_=e.resolutions,he(My(this.resolutions_,(r,o)=>o-r,!0),"`resolutions` must be sorted in descending order");let t;if(!e.origins){for(let r=0,o=this.resolutions_.length-1;r{let s=new gl(Math.min(0,r[0]),Math.max(r[0]-1,-1),Math.min(0,r[1]),Math.max(r[1]-1,-1));if(n){let a=this.getTileRangeForExtentAndZ(n,o);s.minX=Math.max(a.minX,s.minX),s.maxX=Math.min(a.maxX,s.maxX),s.minY=Math.max(a.minY,s.minY),s.maxY=Math.min(a.maxY,s.maxY)}return s}):n&&this.calculateTileRanges_(n)}forEachTileCoord(e,t,n){let r=this.getTileRangeForExtentAndZ(e,t);for(let o=r.minX,s=r.maxX;o<=s;++o)for(let a=r.minY,l=r.maxY;a<=l;++a)n([t,o,a])}forEachTileCoordParentTileRange(e,t,n,r){let o,s,a,l=null,A=e[0]-1;for(this.zoomFactor_===2?(s=e[1],a=e[2]):l=this.getTileCoordExtent(e,r);A>=this.minZoom;){if(s!==void 0&&a!==void 0?(s=Math.floor(s/2),a=Math.floor(a/2),o=na(s,s,a,a,n)):o=this.getTileRangeForExtentAndZ(l,A,n),t(A,o))return!0;--A}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(e){return this.origin_?this.origin_:this.origins_[e]}getResolution(e){return this.resolutions_[e]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(e,t,n){if(e[0]this.maxZoom||t0?n:Math.max(o/t[0],r/t[1]);let s=e+1,a=new Array(s);for(let l=0;lthis.getTileInternal(f,g,p,d,s),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.tileOptions);return u.key=l,u}getTileInternal(e,t,n,r,o){let s=this.getKey();return this.createTile_(e,t,n,r,o,s)}setRenderReprojectionEdges(e){this.renderReprojectionEdges_!=e&&(this.renderReprojectionEdges_=e,this.changed())}setTileGridForProjection(e,t){let n=fe(e);if(n){let r=W(n);r in this.tileGridForProjection||(this.tileGridForProjection[r]=t)}}};function hF(i,e){i.getImage().src=e}var Mf=ME;var kE=class extends Mf{constructor(e){e=e||{};let t=e.projection!==void 0?e.projection:"EPSG:3857",n=e.tileGrid!==void 0?e.tileGrid:dr({extent:xn(t),maxResolution:e.maxResolution,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize});super({attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,interpolate:e.interpolate,projection:t,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileGrid:n,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX!==void 0?e.wrapX:!0,transition:e.transition,attributionsCollapsible:e.attributionsCollapsible,zDirection:e.zDirection}),this.gutter_=e.gutter!==void 0?e.gutter:0}getGutter(){return this.gutter_}},D1=kE;var uF='© OpenStreetMap contributors.',PE=class extends D1{constructor(e){e=e||{};let t;e.attributions!==void 0?t=e.attributions:t=[uF];let n=e.crossOrigin!==void 0?e.crossOrigin:"anonymous",r=e.url!==void 0?e.url:"https://tile.openstreetmap.org/{z}/{x}/{y}.png";super({attributions:t,attributionsCollapsible:!1,cacheSize:e.cacheSize,crossOrigin:n,interpolate:e.interpolate,maxZoom:e.maxZoom!==void 0?e.maxZoom:19,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileLoadFunction:e.tileLoadFunction,transition:e.transition,url:r,wrapX:e.wrapX,zDirection:e.zDirection})}},F1=PE;var NE=class extends Lf{constructor(e){let t=e.projection||"EPSG:3857",n=e.extent||xn(t),r=e.tileGrid||dr({extent:n,maxResolution:e.maxResolution,maxZoom:e.maxZoom!==void 0?e.maxZoom:22,minZoom:e.minZoom,tileSize:e.tileSize||512});super({attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,cacheSize:e.cacheSize,interpolate:!0,projection:t,state:e.state,tileGrid:r,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:fF,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX===void 0?!0:e.wrapX,transition:e.transition,zDirection:e.zDirection===void 0?1:e.zDirection}),this.format_=e.format?e.format:null,this.tileKeysBySourceTileUrl_={},this.sourceTiles_={},this.overlaps_=e.overlaps==null?!0:e.overlaps,this.tileClass=e.tileClass?e.tileClass:yB,this.tileGrids_={}}getOverlaps(){return this.overlaps_}getSourceTiles(e,t,n){if(n.getState()===V.IDLE){n.setState(V.LOADING);let r=n.wrappedTileCoord,o=this.getTileGridForProjection(t),s=o.getTileCoordExtent(r),a=r[0],l=o.getResolution(a);Vt(s,-l,s);let A=this.tileGrid,c=A.getExtent();c&&Ze(s,c,s);let h=A.getZForResolution(l,this.zDirection);A.forEachTileCoord(s,h,u=>{let f=this.tileUrlFunction(u,e,t);this.sourceTiles_[f]||(this.sourceTiles_[f]=new this.tileClass(u,f?V.IDLE:V.EMPTY,f,this.format_,this.tileLoadFunction));let g=this.sourceTiles_[f];n.sourceTiles.push(g),this.tileKeysBySourceTileUrl_[f]||(this.tileKeysBySourceTileUrl_[f]=[]),this.tileKeysBySourceTileUrl_[f].push(n.getKey());let p=g.getState();if(p{this.handleTileChange(I);let m=g.getState();if(m===V.LOADED||m===V.ERROR){let C=g.getKey();C in n.errorTileKeys?g.getState()===V.LOADED&&delete n.errorTileKeys[C]:n.loadingSourceTiles--,m===V.ERROR?n.errorTileKeys[C]=!0:g.removeEventListener(K.CHANGE,d),n.loadingSourceTiles===0&&n.setState(Di(n.errorTileKeys)?V.LOADED:V.ERROR)}};g.addEventListener(K.CHANGE,d),n.loadingSourceTiles++}p===V.IDLE&&(g.extent=A.getTileCoordExtent(u),g.projection=t,g.resolution=A.getResolution(u[0]),g.load())}),n.loadingSourceTiles||n.setState(n.sourceTiles.some(u=>u.getState()===V.ERROR)?V.ERROR:V.LOADED)}return n.sourceTiles}removeSourceTiles(e){let t=e.getKey(),n=e.sourceTiles;for(let r=0,o=n.length;r{c=c&&!this.tileUrlFunction(d,r,o)})}let h=new CB(s,c?V.EMPTY:V.IDLE,a,this.getSourceTiles.bind(this,r,o),this.removeSourceTiles.bind(this));return h.key=this.getKey(),h}getTileGridForProjection(e){let t=e.getCode(),n=this.tileGrids_[t];if(!n){let r=this.getProjection();he(r===null||On(r,e),"A VectorTile source can only be rendered if it has a projection compatible with the view projection.");let o=this.tileGrid,s=o.getResolutions().slice(),a=s.map(function(c,h){return o.getOrigin(h)}),l=s.map(function(c,h){return o.getTileSize(h)}),A=43;for(let c=s.length;cgF(i,e,t)}function Ql(i,e){return lt(Pf(i,e).get)}var{apply:gF,construct:bne,defineProperty:Dne,get:Fne,getOwnPropertyDescriptor:Pf,getPrototypeOf:Nf,has:Lne,ownKeys:k1,set:Mne,setPrototypeOf:kne}=Reflect;var{EPSILON:P1,MAX_SAFE_INTEGER:Pne,isFinite:dF,isNaN:pF}=Number,{iterator:bl,species:Nne,toStringTag:mF,for:Gne}=Symbol,Gf=Object,{create:Of,defineProperty:N1,freeze:One,is:Une}=Gf,GE=Gf.prototype,zne=GE.__lookupGetter__?lt(GE.__lookupGetter__):(i,e)=>{if(i==null)throw yF(L1);let t=Gf(i);do{let n=Pf(t,e);if(n!==void 0)return EF(n,"get")?n.get:void 0}while((t=Nf(t))!==null)},EF=Gf.hasOwn||lt(GE.hasOwnProperty),G1=Array,Yne=G1.isArray,Uf=G1.prototype,Vne=lt(Uf.join),Hne=lt(Uf.push),qne=lt(Uf.toLocaleString),OE=Uf[bl],O1=lt(OE),{abs:IF,trunc:Kne}=Math,zf=ArrayBuffer,Xne=zf.isView,U1=zf.prototype,jne=lt(U1.slice),Wne=Ql(U1,"byteLength"),M1=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:null,Jne=M1&&Ql(M1.prototype,"byteLength"),z1=Nf(Uint8Array),$ne=z1.from,Ui=z1.prototype,Zne=Ui[bl],ere=lt(Ui.keys),tre=lt(Ui.values),ire=lt(Ui.entries),nre=lt(Ui.set),rre=lt(Ui.reverse),ore=lt(Ui.fill),sre=lt(Ui.copyWithin),are=lt(Ui.sort),lre=lt(Ui.slice),Are=lt(Ui.subarray),cre=Ql(Ui,"buffer"),hre=Ql(Ui,"byteOffset"),ure=Ql(Ui,"length"),fre=Ql(Ui,mF),Y1=Uint8Array,UE=Uint16Array;var Yf=Uint32Array,V1=Float32Array,Dl=Nf([][bl]()),zE=lt(Dl.next),H1=lt(function*(){}().next),q1=Nf(Dl),K1=DataView.prototype,X1=lt(K1.getUint16),CF=lt(K1.setUint16),yF=TypeError;var _F=WeakSet,j1=_F.prototype,gre=lt(j1.add),dre=lt(j1.has),Vf=WeakMap,YE=Vf.prototype,VE=lt(YE.get),pre=lt(YE.has),W1=lt(YE.set);var J1=new Vf,xF=Of(null,{next:{value:function(){let e=VE(J1,this);return zE(e)}},[bl]:{value:function(){return this}}});function $1(i){if(i[bl]===OE&&Dl.next===zE)return i;let e=Of(xF);return W1(J1,e,O1(i)),e}var BF=new Vf,wF=Of(q1,{next:{value:function(){let e=VE(BF,this);return H1(e)},writable:!0,configurable:!0}});for(let i of k1(Dl))i!=="next"&&N1(wF,i,Pf(Dl,i));var vF=1/P1;var SF=6103515625e-14;var Z1=.0009765625,yre=Z1*SF,_re=Z1*vF;var ew=new zf(4),TF=new V1(ew),RF=new Yf(ew),Nr=new UE(512),Gr=new Y1(512);for(let i=0;i<256;++i){let e=i-127;e<-24?(Nr[i]=0,Nr[i|256]=32768,Gr[i]=24,Gr[i|256]=24):e<-14?(Nr[i]=1024>>-e-14,Nr[i|256]=1024>>-e-14|32768,Gr[i]=-e-1,Gr[i|256]=-e-1):e<=15?(Nr[i]=e+15<<10,Nr[i|256]=e+15<<10|32768,Gr[i]=13,Gr[i|256]=13):e<128?(Nr[i]=31744,Nr[i|256]=64512,Gr[i]=24,Gr[i|256]=24):(Nr[i]=31744,Nr[i|256]=64512,Gr[i]=13,Gr[i|256]=13)}var HE=new Yf(2048);for(let i=1;i<1024;++i){let e=i<<13,t=0;for(;(e&8388608)===0;)e<<=1,t-=8388608;e&=-8388609,t+=947912704,HE[i]=e|t}for(let i=1024;i<2048;++i)HE[i]=939524096+(i-1024<<13);var Fl=new Yf(64);for(let i=1;i<31;++i)Fl[i]=i<<23;Fl[31]=1199570944;Fl[32]=2147483648;for(let i=33;i<63;++i)Fl[i]=2147483648+(i-32<<23);Fl[63]=3347054592;var tw=new UE(64);for(let i=1;i<64;++i)i!==32&&(tw[i]=1024);function iw(i){let e=i>>10;return RF[0]=HE[tw[e]+(i&1023)]+Fl[e],TF[0]}function Tc(i,e,...t){return iw(X1(i,e,...$1(t)))}var Bg=wa(rw(),1),gS=wa(dw(),1);Qc();function mw(i,e){let{width:t,height:n}=i,r=new Uint8Array(t*n*3),o;for(let s=0,a=0;s>24,l=i[r+2]<<24>>24,A=(s+16)/116,c=a/500+A,h=A-l/200,u,f,g;c=FF*(c*c*c>.008856?c*c*c:(c-16/116)/7.787),A=LF*(A*A*A>.008856?A*A*A:(A-16/116)/7.787),h=MF*(h*h*h>.008856?h*h*h:(h-16/116)/7.787),u=c*3.2406+A*-1.5372+h*-.4986,f=c*-.9689+A*1.8758+h*.0415,g=c*.0557+A*-.204+h*1.057,u=u>.0031308?1.055*u**(1/2.4)-.055:12.92*u,f=f>.0031308?1.055*f**(1/2.4)-.055:12.92*f,g=g>.0031308?1.055*g**(1/2.4)-.055:12.92*g,n[o]=Math.max(0,Math.min(1,u))*255,n[o+1]=Math.max(0,Math.min(1,f))*255,n[o+2]=Math.max(0,Math.min(1,g))*255}return n}var hS=new Map;function Ts(i,e){Array.isArray(i)||(i=[i]),i.forEach(t=>hS.set(t,e))}async function _g(i){let e=hS.get(i.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${i.Compression}`);let t=await e();return new t(i)}Ts([void 0,1],()=>Promise.resolve().then(()=>(vw(),ww)).then(i=>i.default));Ts(5,()=>Promise.resolve().then(()=>(Rw(),Tw)).then(i=>i.default));Ts(6,()=>{throw new Error("old style JPEG compression is not supported.")});Ts(7,()=>Promise.resolve().then(()=>(Dw(),bw)).then(i=>i.default));Ts([8,32946],()=>Promise.resolve().then(()=>(Zv(),$v)).then(i=>i.default));Ts(32773,()=>Promise.resolve().then(()=>(tS(),eS)).then(i=>i.default));Ts(34887,()=>Promise.resolve().then(()=>(lS(),aS)).then(async i=>(await i.zstd.init(),i)).then(i=>i.default));Ts(50001,()=>Promise.resolve().then(()=>(cS(),AS)).then(i=>i.default));function xg(i,e,t,n=1){return new(Object.getPrototypeOf(i)).constructor(e*t*n)}function _k(i,e,t,n,r){let o=e/n,s=t/r;return i.map(a=>{let l=xg(a,n,r);for(let A=0;A{let l=xg(a,n,r);for(let A=0;A>8-r-w&h;else if(w+r<=16)c[_]=a.getUint16(y)>>16-r-w&h;else if(w+r<=24){let T=a.getUint16(y)<<8|a.getUint8(y+2);c[_]=T>>24-r-w&h}else c[_]=a.getUint32(y)>>32-r-w&h}}}}return c.buffer}var OI=class{constructor(e,t,n,r,o,s){this.fileDirectory=e,this.geoKeys=t,this.dataView=n,this.littleEndian=r,this.tiles=o?{}:null,this.isTiled=!e.StripOffsets;let a=e.PlanarConfiguration;if(this.planarConfiguration=typeof a>"u"?1:a,this.planarConfiguration!==1&&this.planarConfiguration!==2)throw new Error("Invalid planar configuration.");this.source=s}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return typeof this.fileDirectory.SamplesPerPixel<"u"?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:typeof this.fileDirectory.RowsPerStrip<"u"?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(e){return this.isTiled||(e+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-e*this.getTileHeight()}getBytesPerPixel(){let e=0;for(let t=0;t=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${e} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[e]/8)}getReaderForSample(e){let t=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1,n=this.fileDirectory.BitsPerSample[e];switch(t){case 1:if(n<=8)return DataView.prototype.getUint8;if(n<=16)return DataView.prototype.getUint16;if(n<=32)return DataView.prototype.getUint32;break;case 2:if(n<=8)return DataView.prototype.getInt8;if(n<=16)return DataView.prototype.getInt16;if(n<=32)return DataView.prototype.getInt32;break;case 3:switch(n){case 16:return function(r,o){return Tc(this,r,o)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64;default:break}break;default:break}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(e=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1}getBitsPerSample(e=0){return this.fileDirectory.BitsPerSample[e]}getArrayForSample(e,t){let n=this.getSampleFormat(e),r=this.getBitsPerSample(e);return GI(n,r,t)}async getTileOrStrip(e,t,n,r,o){let s=Math.ceil(this.getWidth()/this.getTileWidth()),a=Math.ceil(this.getHeight()/this.getTileHeight()),l,{tiles:A}=this;this.planarConfiguration===1?l=t*s+e:this.planarConfiguration===2&&(l=n*s*a+t*s+e);let c,h;this.isTiled?(c=this.fileDirectory.TileOffsets[l],h=this.fileDirectory.TileByteCounts[l]):(c=this.fileDirectory.StripOffsets[l],h=this.fileDirectory.StripByteCounts[l]);let u=(await this.source.fetch([{offset:c,length:h}],o))[0],f;return A===null||!A[l]?(f=(async()=>{let g=await r.decode(this.fileDirectory,u),p=this.getSampleFormat(),d=this.getBitsPerSample();return Sk(p,d)&&(g=Tk(g,p,this.planarConfiguration,this.getSamplesPerPixel(),d,this.getTileWidth(),this.getBlockHeight(t))),g})(),A!==null&&(A[l]=f)):f=A[l],{x:e,y:t,sample:n,data:await f}}async _readRaster(e,t,n,r,o,s,a,l,A){let c=this.getTileWidth(),h=this.getTileHeight(),u=this.getWidth(),f=this.getHeight(),g=Math.max(Math.floor(e[0]/c),0),p=Math.min(Math.ceil(e[2]/c),Math.ceil(u/c)),d=Math.max(Math.floor(e[1]/h),0),I=Math.min(Math.ceil(e[3]/h),Math.ceil(f/h)),m=e[2]-e[0],C=this.getBytesPerPixel(),_=[],y=[];for(let E=0;E{let b=S.data,F=new DataView(b),M=this.getBlockHeight(S.y),k=S.y*h,P=S.x*c,U=k+M,N=(S.x+1)*c,j=y[v],X=Math.min(M,M-(U-e[3]),f-k),z=Math.min(c,c-(N-e[2]),u-P);for(let q=Math.max(0,e[1]-k);qc[2]||c[1]>c[3])throw new Error("Invalid subsets");let h=c[2]-c[0],u=c[3]-c[1],f=h*u,g=this.getSamplesPerPixel();if(!t||!t.length)for(let m=0;m=g)return Promise.reject(new RangeError(`Invalid sample index '${t[m]}'.`));let p;if(n){let m=this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,C=Math.max.apply(null,this.fileDirectory.BitsPerSample);p=GI(m,C,f*t.length),l&&p.fill(l)}else{p=[];for(let m=0;mA[2]||A[1]>A[3])throw new Error("Invalid subsets");let c=this.fileDirectory.PhotometricInterpretation;if(c===zi.RGB){let I=[0,1,2];if(this.fileDirectory.ExtraSamples!==eI.Unspecified&&a){I=[];for(let m=0;m(0,Bg.default)(o,"sample")===void 0):r=r.filter(o=>Number((0,Bg.default)(o,"sample"))===e);for(let o=0;o[a+r*d+o*I,h+l*d+A*I]),g=f.map(d=>d[0]),p=f.map(d=>d[1]);return[Math.min(...g),Math.min(...p),Math.max(...g),Math.max(...p)]}else{let r=this.getOrigin(),o=this.getResolution(),s=r[0],a=r[1],l=s+o[0]*n,A=a+o[1]*t;return[Math.min(s,l),Math.min(a,A),Math.max(s,l),Math.max(a,A)]}}},UI=OI;var Jc=class{constructor(e){this._dataView=new DataView(e)}get buffer(){return this._dataView.buffer}getUint64(e,t){let n=this.getUint32(e,t),r=this.getUint32(e+4,t),o;if(t){if(o=n+2**32*r,!Number.isSafeInteger(o))throw new Error(`${o} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return o}if(o=2**32*n+r,!Number.isSafeInteger(o))throw new Error(`${o} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return o}getInt64(e,t){let n=0,r=(this._dataView.getUint8(e+(t?7:0))&128)>0,o=!0;for(let s=0;s<8;s++){let a=this._dataView.getUint8(e+(t?s:7-s));r&&(o?a!==0&&(a=~(a-1)&255,o=!1):a=~a&255),n+=a*256**s}return r&&(n=-n),n}getUint8(e,t){return this._dataView.getUint8(e,t)}getInt8(e,t){return this._dataView.getInt8(e,t)}getUint16(e,t){return this._dataView.getUint16(e,t)}getInt16(e,t){return this._dataView.getInt16(e,t)}getUint32(e,t){return this._dataView.getUint32(e,t)}getInt32(e,t){return this._dataView.getInt32(e,t)}getFloat16(e,t){return Tc(this._dataView,e,t)}getFloat32(e,t){return this._dataView.getFloat32(e,t)}getFloat64(e,t){return this._dataView.getFloat64(e,t)}};var $c=class{constructor(e,t,n,r){this._dataView=new DataView(e),this._sliceOffset=t,this._littleEndian=n,this._bigTiff=r}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(e,t){return this.sliceOffset<=e&&this.sliceTop>=e+t}readUint8(e){return this._dataView.getUint8(e-this._sliceOffset,this._littleEndian)}readInt8(e){return this._dataView.getInt8(e-this._sliceOffset,this._littleEndian)}readUint16(e){return this._dataView.getUint16(e-this._sliceOffset,this._littleEndian)}readInt16(e){return this._dataView.getInt16(e-this._sliceOffset,this._littleEndian)}readUint32(e){return this._dataView.getUint32(e-this._sliceOffset,this._littleEndian)}readInt32(e){return this._dataView.getInt32(e-this._sliceOffset,this._littleEndian)}readFloat32(e){return this._dataView.getFloat32(e-this._sliceOffset,this._littleEndian)}readFloat64(e){return this._dataView.getFloat64(e-this._sliceOffset,this._littleEndian)}readUint64(e){let t=this.readUint32(e),n=this.readUint32(e+4),r;if(this._littleEndian){if(r=t+2**32*n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}if(r=2**32*t+n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}readInt64(e){let t=0,n=(this._dataView.getUint8(e+(this._littleEndian?7:0))&128)>0,r=!0;for(let o=0;o<8;o++){let s=this._dataView.getUint8(e+(this._littleEndian?o:7-o));n&&(r?s!==0&&(s=~(s-1)&255,r=!1):s=~s&255),t+=s*256**o}return n&&(t=-t),t}readOffset(e){return this._bigTiff?this.readUint64(e):this.readUint32(e)}};var Qk=typeof navigator<"u"&&navigator.hardwareConcurrency||2,zI=class{constructor(e=Qk,t){this.workers=null,this._awaitingDecoder=null,this.size=e,this.messageId=0,e&&(this._awaitingDecoder=t?Promise.resolve(t):new Promise(n=>{Promise.resolve().then(()=>(ES(),mS)).then(r=>{n(r.create)})}),this._awaitingDecoder.then(n=>{this._awaitingDecoder=null,this.workers=[];for(let r=0;rn.decode(e,t)):new Promise(n=>{let r=this.workers.find(a=>a.idle)||this.workers[Math.floor(Math.random()*this.size)];r.idle=!1;let o=this.messageId++,s=a=>{a.data.id===o&&(r.idle=!0,n(a.data.decoded),r.worker.removeEventListener("message",s))};r.worker.addEventListener("message",s),r.worker.postMessage({fileDirectory:e,buffer:t,id:o},[t])})}destroy(){this.workers&&(this.workers.forEach(e=>{e.worker.terminate()}),this.workers=null)}},YI=zI;var IS=`\r \r -`;function aB(i){if(typeof Object.fromEntries<"u")return Object.fromEntries(i);let e={};for(let[t,n]of i)e[t.toLowerCase()]=n;return e}function mv(i){let e=i.split(`\r -`).map(t=>{let n=t.split(":").map(r=>r.trim());return n[0]=n[0].toLowerCase(),n});return aB(e)}function AB(i){let[e,...t]=i.split(";").map(r=>r.trim()),n=t.map(r=>r.split("="));return{type:e,params:aB(n)}}function Jc(i){let e,t,n;return i&&([,e,t,n]=i.match(/bytes (\d+)-(\d+)\/(\d+)/),e=parseInt(e,10),t=parseInt(t,10),n=parseInt(n,10)),{start:e,end:t,total:n}}function lB(i,e){let t=null,n=new TextDecoder("ascii"),r=[],o=`--${e}`,s=`${o}--`;for(let a=0;a<10;++a)n.decode(new Uint8Array(i,a,o.length))===o&&(t=a);if(t===null)throw new Error("Could not find initial boundary");for(;tthis.fetchSlice(n,t)))}async fetchSlice(e){throw new Error(`fetching of slice ${e} not possible, not implemented`)}get fileSize(){return null}async close(){}};var lA=class extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof e.maxAge=="number"&&e.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if(typeof this.onEviction=="function")for(let[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return typeof t.expiry=="number"&&t.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(e,t.value),this.delete(e)):!1}_getOrDeleteIfExpired(e,t){if(this._deleteIfExpired(e,t)===!1)return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){let n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(let e of this.oldCache){let[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)===!1&&(yield e)}for(let e of this.cache){let[t,n]=e;this._deleteIfExpired(t,n)===!1&&(yield e)}}get(e){if(this.cache.has(e)){let t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){let t=this.oldCache.get(e);if(this._deleteIfExpired(e,t)===!1)return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){let r=typeof n=="number"&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:r}):this._set(e,{value:t,expiry:r}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):!1}peek(e){if(this.cache.has(e))return this._peek(e,this.cache);if(this.oldCache.has(e))return this._peek(e,this.oldCache)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache){let[t,n]=e;this._deleteIfExpired(t,n)===!1&&(yield[t,n.value])}for(let e of this.oldCache){let[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)===!1&&(yield[t,n.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){let n=e[t],[r,o]=n;this._deleteIfExpired(r,o)===!1&&(yield[r,o.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){let n=e[t],[r,o]=n;this.cache.has(r)||this._deleteIfExpired(r,o)===!1&&(yield[r,o.value])}}*entriesAscending(){for(let[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(let[n,r]of this.entriesAscending())e.call(t,r,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}};async function cB(i){return new Promise(e=>setTimeout(e,i))}function hB(i,e){let t=Array.isArray(i)?i:Array.from(i),n=Array.isArray(e)?e:Array.from(e);return t.map((r,o)=>[r,n[o]])}var Yn=class i extends Error{constructor(e){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,i),this.name="AbortError"}},Bm=class extends Error{constructor(e,t){super(t),this.errors=e,this.message=t,this.name="AggregateError"}},uB=Bm;var xm=class{constructor(e,t,n=null){this.offset=e,this.length=t,this.data=n}get top(){return this.offset+this.length}},jc=class{constructor(e,t,n){this.offset=e,this.length=t,this.blockIds=n}},Wc=class extends Br{constructor(e,{blockSize:t=65536,cacheSize:n=100}={}){super(),this.source=e,this.blockSize=t,this.blockCache=new lA({maxSize:n,onEviction:(r,o)=>{this.evictedBlocks.set(r,o)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(e,t){let n=[],r=[],o=[];this.evictedBlocks.clear();for(let{offset:u,length:f}of e){let g=u+f,{fileSize:m}=this;m!==null&&(g=Math.min(g,m));let d=Math.floor(u/this.blockSize)*this.blockSize;for(let I=d;Ithis.abortedBlockIds.has(u)||!this.blockCache.has(u));if(A.forEach(u=>this.blockIdsToFetch.add(u)),A.length>0&&t&&!t.aborted){this.fetchBlocks(null);for(let u of A){let f=this.blockRequests.get(u);if(!f)throw new Error(`Block ${u} is not in the block requests`);a.push(f)}await Promise.allSettled(a)}if(t&&t.aborted)throw new Yn("Request was aborted");let l=o.map(u=>this.blockCache.get(u)||this.evictedBlocks.get(u)),c=l.filter(u=>!u);if(c.length)throw new uB(c,"Request failed");let h=new Map(hB(o,l));return this.readSliceData(e,h)}fetchBlocks(e){if(this.blockIdsToFetch.size>0){let t=this.groupBlocks(this.blockIdsToFetch),n=this.source.fetch(t,e);for(let r=0;r{try{let a=(await n)[r],A=s*this.blockSize,l=A-a.offset,c=Math.min(l+this.blockSize,a.data.byteLength),h=a.data.slice(l,c),u=new xm(A,h.byteLength,h,s);this.blockCache.set(s,u),this.abortedBlockIds.delete(s)}catch(a){if(a.name==="AbortError")a.signal=e,this.blockCache.delete(s),this.abortedBlockIds.add(s);else throw a}finally{this.blockRequests.delete(s)}})())}this.blockIdsToFetch.clear()}}groupBlocks(e){let t=Array.from(e).sort((s,a)=>s-a);if(t.length===0)return[];let n=[],r=null,o=[];for(let s of t)r===null||r+1===s?(n.push(s),r=s):(o.push(new jc(n[0]*this.blockSize,n.length*this.blockSize,n)),n=[s],r=s);return o.push(new jc(n[0]*this.blockSize,n.length*this.blockSize,n)),o}readSliceData(e,t){return e.map(n=>{let r=n.offset+n.length;this.fileSize!==null&&(r=Math.min(this.fileSize,r));let o=Math.floor(n.offset/this.blockSize),s=Math.floor(r/this.blockSize),a=new ArrayBuffer(n.length),A=new Uint8Array(a);for(let l=o;l<=s;++l){let c=t.get(l),h=c.offset-n.offset,u=c.top-r,f=0,g=0,m;h<0?f=-h:h>0&&(g=h),u<0?m=c.length-f:m=r-c.offset-f;let d=new Uint8Array(c.data,f,m);A.set(d,g)}return a})}};var xr=class{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(e){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}},wr=class{constructor(e){this.url=e}async request({headers:e,signal:t}={}){throw new Error("request is not implemented")}};var wm=class extends xr{constructor(e){super(),this.response=e}get status(){return this.response.status}getHeader(e){return this.response.headers.get(e)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}},Zc=class extends wr{constructor(e,t){super(e),this.credentials=t}async request({headers:e,signal:t}={}){let n=await fetch(this.url,{headers:e,credentials:this.credentials,signal:t});return new wm(n)}};var Qm=class extends xr{constructor(e,t){super(),this.xhr=e,this.data=t}get status(){return this.xhr.status}getHeader(e){return this.xhr.getResponseHeader(e)}async getData(){return this.data}},$c=class extends wr{constructRequest(e,t){return new Promise((n,r)=>{let o=new XMLHttpRequest;o.open("GET",this.url),o.responseType="arraybuffer";for(let[s,a]of Object.entries(e))o.setRequestHeader(s,a);o.onload=()=>{let s=o.response;n(new Qm(o,s))},o.onerror=r,o.onabort=()=>r(new Yn("Request aborted")),o.send(),t&&(t.aborted&&o.abort(),t.addEventListener("abort",()=>o.abort()))})}async request({headers:e,signal:t}={}){return await this.constructRequest(e,t)}};var mB=fo(fB(),1),pB=fo(gB(),1),IB=fo(dB(),1);var Sm=class extends xr{constructor(e,t){super(),this.response=e,this.dataPromise=t}get status(){return this.response.statusCode}getHeader(e){return this.response.headers[e]}async getData(){return await this.dataPromise}},eh=class extends wr{constructor(e){super(e),this.parsedUrl=IB.default.parse(this.url),this.httpApi=this.parsedUrl.protocol==="http:"?mB.default:pB.default}constructRequest(e,t){return new Promise((n,r)=>{let o=this.httpApi.get({...this.parsedUrl,headers:e},s=>{let a=new Promise(A=>{let l=[];s.on("data",c=>{l.push(c)}),s.on("end",()=>{let c=Buffer.concat(l).buffer;A(c)}),s.on("error",r)});n(new Sm(s,a))});o.on("error",r),t&&(t.aborted&&o.destroy(new Yn("Request aborted")),t.addEventListener("abort",()=>o.destroy(new Yn("Request aborted"))))})}async request({headers:e,signal:t}={}){return await this.constructRequest(e,t)}};var cA=class extends Br{constructor(e,t,n,r){super(),this.client=e,this.headers=t,this.maxRanges=n,this.allowFullFile=r,this._fileSize=null}async fetch(e,t){return this.maxRanges>=e.length?this.fetchSlices(e,t):(this.maxRanges>0&&e.length>1,Promise.all(e.map(n=>this.fetchSlice(n,t))))}async fetchSlices(e,t){let n=await this.client.request({headers:{...this.headers,Range:`bytes=${e.map(({offset:r,length:o})=>`${r}-${r+o}`).join(",")}`},signal:t});if(n.ok)if(n.status===206){let{type:r,params:o}=AB(n.getHeader("content-type"));if(r==="multipart/byteranges"){let h=lB(await n.getData(),o.boundary);return this._fileSize=h[0].fileSize||null,h}let s=await n.getData(),{start:a,end:A,total:l}=Jc(n.getHeader("content-range"));this._fileSize=l||null;let c=[{data:s,offset:a,length:A-a}];if(e.length>1){let h=await Promise.all(e.slice(1).map(u=>this.fetchSlice(u,t)));return c.concat(h)}return c}else{if(!this.allowFullFile)throw new Error("Server responded with full file");let r=await n.getData();return this._fileSize=r.byteLength,[{data:r,offset:0,length:r.byteLength}]}else throw new Error("Error fetching data.")}async fetchSlice(e,t){let{offset:n,length:r}=e,o=await this.client.request({headers:{...this.headers,Range:`bytes=${n}-${n+r}`},signal:t});if(o.ok)if(o.status===206){let s=await o.getData(),{total:a}=Jc(o.getHeader("content-range"));return this._fileSize=a||null,{data:s,offset:n,length:r}}else{if(!this.allowFullFile)throw new Error("Server responded with full file");let s=await o.getData();return this._fileSize=s.byteLength,{data:s,offset:0,length:s.byteLength}}else throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}};function Rm(i,{blockSize:e,cacheSize:t}){return e===null?i:new Wc(i,{blockSize:e,cacheSize:t})}function pv(i,{headers:e={},credentials:t,maxRanges:n=0,allowFullFile:r=!1,...o}={}){let s=new Zc(i,t),a=new cA(s,e,n,r);return Rm(a,o)}function Iv(i,{headers:e={},maxRanges:t=0,allowFullFile:n=!1,...r}={}){let o=new $c(i),s=new cA(o,e,t,n);return Rm(s,r)}function Ev(i,{headers:e={},maxRanges:t=0,allowFullFile:n=!1,...r}={}){let o=new eh(i),s=new cA(o,e,t,n);return Rm(s,r)}function th(i,{forceXHR:e=!1,...t}={}){return typeof fetch=="function"&&!e?pv(i,t):typeof XMLHttpRequest<"u"?Iv(i,t):Ev(i,t)}var Tm=class extends Br{constructor(e){super(),this.file=e}async fetchSlice(e,t){return new Promise((n,r)=>{let o=this.file.slice(e.offset,e.offset+e.length),s=new FileReader;s.onload=a=>n(a.target.result),s.onerror=r,s.onabort=r,s.readAsArrayBuffer(o),t&&t.addEventListener("abort",()=>s.abort())})}};function EB(i){return new Tm(i)}Oa();Oa();function vm(i){switch(i){case le.BYTE:case le.ASCII:case le.SBYTE:case le.UNDEFINED:return 1;case le.SHORT:case le.SSHORT:return 2;case le.LONG:case le.SLONG:case le.FLOAT:case le.IFD:return 4;case le.RATIONAL:case le.SRATIONAL:case le.DOUBLE:case le.LONG8:case le.SLONG8:case le.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${i}`)}}function Cv(i){let e=i.GeoKeyDirectory;if(!e)return null;let t={};for(let n=4;n<=e[3]*4;n+=4){let r=ds[e[n]],o=e[n+1]?eo[e[n+1]]:null,s=e[n+2],a=e[n+3],A=null;if(!o)A=a;else{if(A=i[o],typeof A>"u"||A===null)throw new Error(`Could not get value of geoKey '${r}'.`);typeof A=="string"?A=A.substring(a,a+s-1):A.subarray&&(A=A.subarray(a,a+s),s===1&&(A=A[0]))}t[r]=A}return t}function Ss(i,e,t,n){let r=null,o=null,s=vm(e);switch(e){case le.BYTE:case le.ASCII:case le.UNDEFINED:r=new Uint8Array(t),o=i.readUint8;break;case le.SBYTE:r=new Int8Array(t),o=i.readInt8;break;case le.SHORT:r=new Uint16Array(t),o=i.readUint16;break;case le.SSHORT:r=new Int16Array(t),o=i.readInt16;break;case le.LONG:case le.IFD:r=new Uint32Array(t),o=i.readUint32;break;case le.SLONG:r=new Int32Array(t),o=i.readInt32;break;case le.LONG8:case le.IFD8:r=new Array(t),o=i.readUint64;break;case le.SLONG8:r=new Array(t),o=i.readInt64;break;case le.RATIONAL:r=new Uint32Array(t*2),o=i.readUint32;break;case le.SRATIONAL:r=new Int32Array(t*2),o=i.readInt32;break;case le.FLOAT:r=new Float32Array(t),o=i.readFloat32;break;case le.DOUBLE:r=new Float64Array(t),o=i.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e===le.RATIONAL||e===le.SRATIONAL)for(let a=0;ag.getWidth()-m.getWidth());for(let g=0;gd||s&&s>I)break}}let u=t;if(a){let[f,g]=A.getOrigin(),[m,d]=l.getResolution(A);u=[Math.round((a[0]-f)/m),Math.round((a[1]-g)/d),Math.round((a[2]-f)/m),Math.round((a[3]-g)/d)],u=[Math.min(u[0],u[2]),Math.min(u[1],u[3]),Math.max(u[0],u[2]),Math.max(u[1],u[3])]}return l.readRasters({...e,window:u})}},Ts=class i extends ih{constructor(e,t,n,r,o={}){super(),this.source=e,this.littleEndian=t,this.bigTiff=n,this.firstIFDOffset=r,this.cache=o.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(e,t){let n=this.bigTiff?4048:1024;return new AA((await this.source.fetch([{offset:e,length:typeof t<"u"?t:n}]))[0],e,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(e){let t=this.bigTiff?20:12,n=this.bigTiff?8:2,r=await this.getSlice(e),o=this.bigTiff?r.readUint64(e):r.readUint16(e),s=o*t+(this.bigTiff?16:6);r.covers(e,s)||(r=await this.getSlice(e,s));let a={},A=e+(this.bigTiff?8:2);for(let h=0;h{let t=await this.ifdRequests[e-1];if(t.nextIFDByteOffset===0)throw new Rs(e);return this.parseFileDirectoryAt(t.nextIFDByteOffset)})(),this.ifdRequests[e]}async getImage(e=0){let t=await this.requestIFD(e);return new Cm(t.fileDirectory,t.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let e=0,t=!0;for(;t;)try{await this.requestIFD(e),++e}catch(n){if(n instanceof Rs)t=!1;else throw n}return e}async getGhostValues(){let e=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;let t="GDAL_STRUCTURAL_METADATA_SIZE=",n=t.length+100,r=await this.getSlice(e,n);if(t===Ss(r,le.ASCII,t.length,e)){let s=Ss(r,le.ASCII,n,e).split(` -`)[0],a=Number(s.split("=")[1].split(" ")[0])+s.length;a>n&&(r=await this.getSlice(e,a));let A=Ss(r,le.ASCII,a,e);this.ghostValues={},A.split(` -`).filter(l=>l.length>0).map(l=>l.split("=")).forEach(([l,c])=>{this.ghostValues[l]=c})}return this.ghostValues}static async fromSource(e,t,n){let r=(await e.fetch([{offset:0,length:1024}],n))[0],o=new aA(r),s=o.getUint16(0,0),a;if(s===18761)a=!0;else if(s===19789)a=!1;else throw new TypeError("Invalid byte order value.");let A=o.getUint16(2,a),l;if(A===42)l=!1;else if(A===43){if(l=!0,o.getUint16(4,a)!==8)throw new Error("Unsupported offset byte-size.")}else throw new TypeError("Invalid magic number.");let c=l?o.getUint64(8,a):o.getUint32(4,a);return new i(e,a,l,c,t)}close(){return typeof this.source.close=="function"?this.source.close():!1}};var bm=class extends ih{constructor(e,t){super(),this.mainFile=e,this.overviewFiles=t,this.imageFiles=[e].concat(t),this.fileDirectoriesPerFile=null,this.fileDirectoriesPerFileParsing=null,this.imageCount=null}async parseFileDirectoriesPerFile(){let e=[this.mainFile.parseFileDirectoryAt(this.mainFile.firstIFDOffset)].concat(this.overviewFiles.map(t=>t.parseFileDirectoryAt(t.firstIFDOffset)));return this.fileDirectoriesPerFile=await Promise.all(e),this.fileDirectoriesPerFile}async getImage(e=0){await this.getImageCount(),await this.parseFileDirectoriesPerFile();let t=0,n=0;for(let r=0;rt.getImageCount()));return this.imageCounts=await Promise.all(e),this.imageCount=this.imageCounts.reduce((t,n)=>t+n,0),this.imageCount}};async function CB(i,e={},t){return Ts.fromSource(th(i,e),t)}async function _B(i,e){return Ts.fromSource(EB(i),e)}async function yB(i,e=[],t={},n){let r=await Ts.fromSource(th(i,t),n),o=await Promise.all(e.map(s=>Ts.fromSource(th(s,t))));return new bm(r,o)}var _v=` +`;function CS(i){if(typeof Object.fromEntries<"u")return Object.fromEntries(i);let e={};for(let[t,n]of i)e[t.toLowerCase()]=n;return e}function bk(i){let e=i.split(`\r +`).map(t=>{let n=t.split(":").map(r=>r.trim());return n[0]=n[0].toLowerCase(),n});return CS(e)}function yS(i){let[e,...t]=i.split(";").map(r=>r.trim()),n=t.map(r=>r.split("="));return{type:e,params:CS(n)}}function wg(i){let e,t,n;return i&&([,e,t,n]=i.match(/bytes (\d+)-(\d+)\/(\d+)/),e=parseInt(e,10),t=parseInt(t,10),n=parseInt(n,10)),{start:e,end:t,total:n}}function _S(i,e){let t=null,n=new TextDecoder("ascii"),r=[],o=`--${e}`,s=`${o}--`;for(let a=0;a<10;++a)n.decode(new Uint8Array(i,a,o.length))===o&&(t=a);if(t===null)throw new Error("Could not find initial boundary");for(;tthis.fetchSlice(n,t)))}async fetchSlice(e){throw new Error(`fetching of slice ${e} not possible, not implemented`)}get fileSize(){return null}async close(){}};var Zc=class extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof e.maxAge=="number"&&e.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if(typeof this.onEviction=="function")for(let[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return typeof t.expiry=="number"&&t.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(e,t.value),this.delete(e)):!1}_getOrDeleteIfExpired(e,t){if(this._deleteIfExpired(e,t)===!1)return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){let n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(let e of this.oldCache){let[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)===!1&&(yield e)}for(let e of this.cache){let[t,n]=e;this._deleteIfExpired(t,n)===!1&&(yield e)}}get(e){if(this.cache.has(e)){let t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){let t=this.oldCache.get(e);if(this._deleteIfExpired(e,t)===!1)return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){let r=typeof n=="number"&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:r}):this._set(e,{value:t,expiry:r}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):!1}peek(e){if(this.cache.has(e))return this._peek(e,this.cache);if(this.oldCache.has(e))return this._peek(e,this.oldCache)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache){let[t,n]=e;this._deleteIfExpired(t,n)===!1&&(yield[t,n.value])}for(let e of this.oldCache){let[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)===!1&&(yield[t,n.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){let n=e[t],[r,o]=n;this._deleteIfExpired(r,o)===!1&&(yield[r,o.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){let n=e[t],[r,o]=n;this.cache.has(r)||this._deleteIfExpired(r,o)===!1&&(yield[r,o.value])}}*entriesAscending(){for(let[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(let[n,r]of this.entriesAscending())e.call(t,r,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}};async function xS(i){return new Promise(e=>setTimeout(e,i))}function BS(i,e){let t=Array.isArray(i)?i:Array.from(i),n=Array.isArray(e)?e:Array.from(e);return t.map((r,o)=>[r,n[o]])}var Qo=class i extends Error{constructor(e){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,i),this.name="AbortError"}},VI=class extends Error{constructor(e,t){super(t),this.errors=e,this.message=t,this.name="AggregateError"}},wS=VI;var HI=class{constructor(e,t,n=null){this.offset=e,this.length=t,this.data=n}get top(){return this.offset+this.length}},vg=class{constructor(e,t,n){this.offset=e,this.length=t,this.blockIds=n}},Sg=class extends Rs{constructor(e,{blockSize:t=65536,cacheSize:n=100}={}){super(),this.source=e,this.blockSize=t,this.blockCache=new Zc({maxSize:n,onEviction:(r,o)=>{this.evictedBlocks.set(r,o)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(e,t){let n=[],r=[],o=[];this.evictedBlocks.clear();for(let{offset:u,length:f}of e){let g=u+f,{fileSize:p}=this;p!==null&&(g=Math.min(g,p));let d=Math.floor(u/this.blockSize)*this.blockSize;for(let I=d;Ithis.abortedBlockIds.has(u)||!this.blockCache.has(u));if(l.forEach(u=>this.blockIdsToFetch.add(u)),l.length>0&&t&&!t.aborted){this.fetchBlocks(null);for(let u of l){let f=this.blockRequests.get(u);if(!f)throw new Error(`Block ${u} is not in the block requests`);a.push(f)}await Promise.allSettled(a)}if(t&&t.aborted)throw new Qo("Request was aborted");let A=o.map(u=>this.blockCache.get(u)||this.evictedBlocks.get(u)),c=A.filter(u=>!u);if(c.length)throw new wS(c,"Request failed");let h=new Map(BS(o,A));return this.readSliceData(e,h)}fetchBlocks(e){if(this.blockIdsToFetch.size>0){let t=this.groupBlocks(this.blockIdsToFetch),n=this.source.fetch(t,e);for(let r=0;r{try{let a=(await n)[r],l=s*this.blockSize,A=l-a.offset,c=Math.min(A+this.blockSize,a.data.byteLength),h=a.data.slice(A,c),u=new HI(l,h.byteLength,h,s);this.blockCache.set(s,u),this.abortedBlockIds.delete(s)}catch(a){if(a.name==="AbortError")a.signal=e,this.blockCache.delete(s),this.abortedBlockIds.add(s);else throw a}finally{this.blockRequests.delete(s)}})())}this.blockIdsToFetch.clear()}}groupBlocks(e){let t=Array.from(e).sort((s,a)=>s-a);if(t.length===0)return[];let n=[],r=null,o=[];for(let s of t)r===null||r+1===s?(n.push(s),r=s):(o.push(new vg(n[0]*this.blockSize,n.length*this.blockSize,n)),n=[s],r=s);return o.push(new vg(n[0]*this.blockSize,n.length*this.blockSize,n)),o}readSliceData(e,t){return e.map(n=>{let r=n.offset+n.length;this.fileSize!==null&&(r=Math.min(this.fileSize,r));let o=Math.floor(n.offset/this.blockSize),s=Math.floor(r/this.blockSize),a=new ArrayBuffer(n.length),l=new Uint8Array(a);for(let A=o;A<=s;++A){let c=t.get(A),h=c.offset-n.offset,u=c.top-r,f=0,g=0,p;h<0?f=-h:h>0&&(g=h),u<0?p=c.length-f:p=r-c.offset-f;let d=new Uint8Array(c.data,f,p);l.set(d,g)}return a})}};var Qs=class{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(e){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}},bs=class{constructor(e){this.url=e}async request({headers:e,signal:t}={}){throw new Error("request is not implemented")}};var qI=class extends Qs{constructor(e){super(),this.response=e}get status(){return this.response.status}getHeader(e){return this.response.headers.get(e)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}},Tg=class extends bs{constructor(e,t){super(e),this.credentials=t}async request({headers:e,signal:t}={}){let n=await fetch(this.url,{headers:e,credentials:this.credentials,signal:t});return new qI(n)}};var KI=class extends Qs{constructor(e,t){super(),this.xhr=e,this.data=t}get status(){return this.xhr.status}getHeader(e){return this.xhr.getResponseHeader(e)}async getData(){return this.data}},Rg=class extends bs{constructRequest(e,t){return new Promise((n,r)=>{let o=new XMLHttpRequest;o.open("GET",this.url),o.responseType="arraybuffer";for(let[s,a]of Object.entries(e))o.setRequestHeader(s,a);o.onload=()=>{let s=o.response;n(new KI(o,s))},o.onerror=r,o.onabort=()=>r(new Qo("Request aborted")),o.send(),t&&(t.aborted&&o.abort(),t.addEventListener("abort",()=>o.abort()))})}async request({headers:e,signal:t}={}){return await this.constructRequest(e,t)}};var RS=wa(vS(),1),QS=wa(SS(),1),bS=wa(TS(),1);var XI=class extends Qs{constructor(e,t){super(),this.response=e,this.dataPromise=t}get status(){return this.response.statusCode}getHeader(e){return this.response.headers[e]}async getData(){return await this.dataPromise}},Qg=class extends bs{constructor(e){super(e),this.parsedUrl=bS.default.parse(this.url),this.httpApi=this.parsedUrl.protocol==="http:"?RS.default:QS.default}constructRequest(e,t){return new Promise((n,r)=>{let o=this.httpApi.get({...this.parsedUrl,headers:e},s=>{let a=new Promise(l=>{let A=[];s.on("data",c=>{A.push(c)}),s.on("end",()=>{let c=Buffer.concat(A).buffer;l(c)}),s.on("error",r)});n(new XI(s,a))});o.on("error",r),t&&(t.aborted&&o.destroy(new Qo("Request aborted")),t.addEventListener("abort",()=>o.destroy(new Qo("Request aborted"))))})}async request({headers:e,signal:t}={}){return await this.constructRequest(e,t)}};var eh=class extends Rs{constructor(e,t,n,r){super(),this.client=e,this.headers=t,this.maxRanges=n,this.allowFullFile=r,this._fileSize=null}async fetch(e,t){return this.maxRanges>=e.length?this.fetchSlices(e,t):(this.maxRanges>0&&e.length>1,Promise.all(e.map(n=>this.fetchSlice(n,t))))}async fetchSlices(e,t){let n=await this.client.request({headers:{...this.headers,Range:`bytes=${e.map(({offset:r,length:o})=>`${r}-${r+o}`).join(",")}`},signal:t});if(n.ok)if(n.status===206){let{type:r,params:o}=yS(n.getHeader("content-type"));if(r==="multipart/byteranges"){let h=_S(await n.getData(),o.boundary);return this._fileSize=h[0].fileSize||null,h}let s=await n.getData(),{start:a,end:l,total:A}=wg(n.getHeader("content-range"));this._fileSize=A||null;let c=[{data:s,offset:a,length:l-a}];if(e.length>1){let h=await Promise.all(e.slice(1).map(u=>this.fetchSlice(u,t)));return c.concat(h)}return c}else{if(!this.allowFullFile)throw new Error("Server responded with full file");let r=await n.getData();return this._fileSize=r.byteLength,[{data:r,offset:0,length:r.byteLength}]}else throw new Error("Error fetching data.")}async fetchSlice(e,t){let{offset:n,length:r}=e,o=await this.client.request({headers:{...this.headers,Range:`bytes=${n}-${n+r}`},signal:t});if(o.ok)if(o.status===206){let s=await o.getData(),{total:a}=wg(o.getHeader("content-range"));return this._fileSize=a||null,{data:s,offset:n,length:r}}else{if(!this.allowFullFile)throw new Error("Server responded with full file");let s=await o.getData();return this._fileSize=s.byteLength,{data:s,offset:0,length:s.byteLength}}else throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}};function jI(i,{blockSize:e,cacheSize:t}){return e===null?i:new Sg(i,{blockSize:e,cacheSize:t})}function Dk(i,{headers:e={},credentials:t,maxRanges:n=0,allowFullFile:r=!1,...o}={}){let s=new Tg(i,t),a=new eh(s,e,n,r);return jI(a,o)}function Fk(i,{headers:e={},maxRanges:t=0,allowFullFile:n=!1,...r}={}){let o=new Rg(i),s=new eh(o,e,t,n);return jI(s,r)}function Lk(i,{headers:e={},maxRanges:t=0,allowFullFile:n=!1,...r}={}){let o=new Qg(i),s=new eh(o,e,t,n);return jI(s,r)}function bg(i,{forceXHR:e=!1,...t}={}){return typeof fetch=="function"&&!e?Dk(i,t):typeof XMLHttpRequest<"u"?Fk(i,t):Lk(i,t)}var WI=class extends Rs{constructor(e){super(),this.file=e}async fetchSlice(e,t){return new Promise((n,r)=>{let o=this.file.slice(e.offset,e.offset+e.length),s=new FileReader;s.onload=a=>n(a.target.result),s.onerror=r,s.onabort=r,s.readAsArrayBuffer(o),t&&t.addEventListener("abort",()=>s.abort())})}};function DS(i){return new WI(i)}Qc();Qc();function JI(i){switch(i){case ye.BYTE:case ye.ASCII:case ye.SBYTE:case ye.UNDEFINED:return 1;case ye.SHORT:case ye.SSHORT:return 2;case ye.LONG:case ye.SLONG:case ye.FLOAT:case ye.IFD:return 4;case ye.RATIONAL:case ye.SRATIONAL:case ye.DOUBLE:case ye.LONG8:case ye.SLONG8:case ye.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${i}`)}}function Mk(i){let e=i.GeoKeyDirectory;if(!e)return null;let t={};for(let n=4;n<=e[3]*4;n+=4){let r=Ll[e[n]],o=e[n+1]?aa[e[n+1]]:null,s=e[n+2],a=e[n+3],l=null;if(!o)l=a;else{if(l=i[o],typeof l>"u"||l===null)throw new Error(`Could not get value of geoKey '${r}'.`);typeof l=="string"?l=l.substring(a,a+s-1):l.subarray&&(l=l.subarray(a,a+s),s===1&&(l=l[0]))}t[r]=l}return t}function ql(i,e,t,n){let r=null,o=null,s=JI(e);switch(e){case ye.BYTE:case ye.ASCII:case ye.UNDEFINED:r=new Uint8Array(t),o=i.readUint8;break;case ye.SBYTE:r=new Int8Array(t),o=i.readInt8;break;case ye.SHORT:r=new Uint16Array(t),o=i.readUint16;break;case ye.SSHORT:r=new Int16Array(t),o=i.readInt16;break;case ye.LONG:case ye.IFD:r=new Uint32Array(t),o=i.readUint32;break;case ye.SLONG:r=new Int32Array(t),o=i.readInt32;break;case ye.LONG8:case ye.IFD8:r=new Array(t),o=i.readUint64;break;case ye.SLONG8:r=new Array(t),o=i.readInt64;break;case ye.RATIONAL:r=new Uint32Array(t*2),o=i.readUint32;break;case ye.SRATIONAL:r=new Int32Array(t*2),o=i.readInt32;break;case ye.FLOAT:r=new Float32Array(t),o=i.readFloat32;break;case ye.DOUBLE:r=new Float64Array(t),o=i.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e===ye.RATIONAL||e===ye.SRATIONAL)for(let a=0;ag.getWidth()-p.getWidth());for(let g=0;gd||s&&s>I)break}}let u=t;if(a){let[f,g]=l.getOrigin(),[p,d]=A.getResolution(l);u=[Math.round((a[0]-f)/p),Math.round((a[1]-g)/d),Math.round((a[2]-f)/p),Math.round((a[3]-g)/d)],u=[Math.min(u[0],u[2]),Math.min(u[1],u[3]),Math.max(u[0],u[2]),Math.max(u[1],u[3])]}return A.readRasters({...e,window:u})}},Xl=class i extends Dg{constructor(e,t,n,r,o={}){super(),this.source=e,this.littleEndian=t,this.bigTiff=n,this.firstIFDOffset=r,this.cache=o.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(e,t){let n=this.bigTiff?4048:1024;return new $c((await this.source.fetch([{offset:e,length:typeof t<"u"?t:n}]))[0],e,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(e){let t=this.bigTiff?20:12,n=this.bigTiff?8:2,r=await this.getSlice(e),o=this.bigTiff?r.readUint64(e):r.readUint16(e),s=o*t+(this.bigTiff?16:6);r.covers(e,s)||(r=await this.getSlice(e,s));let a={},l=e+(this.bigTiff?8:2);for(let h=0;h{let t=await this.ifdRequests[e-1];if(t.nextIFDByteOffset===0)throw new Kl(e);return this.parseFileDirectoryAt(t.nextIFDByteOffset)})(),this.ifdRequests[e]}async getImage(e=0){let t=await this.requestIFD(e);return new UI(t.fileDirectory,t.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let e=0,t=!0;for(;t;)try{await this.requestIFD(e),++e}catch(n){if(n instanceof Kl)t=!1;else throw n}return e}async getGhostValues(){let e=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;let t="GDAL_STRUCTURAL_METADATA_SIZE=",n=t.length+100,r=await this.getSlice(e,n);if(t===ql(r,ye.ASCII,t.length,e)){let s=ql(r,ye.ASCII,n,e).split(` +`)[0],a=Number(s.split("=")[1].split(" ")[0])+s.length;a>n&&(r=await this.getSlice(e,a));let l=ql(r,ye.ASCII,a,e);this.ghostValues={},l.split(` +`).filter(A=>A.length>0).map(A=>A.split("=")).forEach(([A,c])=>{this.ghostValues[A]=c})}return this.ghostValues}static async fromSource(e,t,n){let r=(await e.fetch([{offset:0,length:1024}],n))[0],o=new Jc(r),s=o.getUint16(0,0),a;if(s===18761)a=!0;else if(s===19789)a=!1;else throw new TypeError("Invalid byte order value.");let l=o.getUint16(2,a),A;if(l===42)A=!1;else if(l===43){if(A=!0,o.getUint16(4,a)!==8)throw new Error("Unsupported offset byte-size.")}else throw new TypeError("Invalid magic number.");let c=A?o.getUint64(8,a):o.getUint32(4,a);return new i(e,a,A,c,t)}close(){return typeof this.source.close=="function"?this.source.close():!1}};var ZI=class extends Dg{constructor(e,t){super(),this.mainFile=e,this.overviewFiles=t,this.imageFiles=[e].concat(t),this.fileDirectoriesPerFile=null,this.fileDirectoriesPerFileParsing=null,this.imageCount=null}async parseFileDirectoriesPerFile(){let e=[this.mainFile.parseFileDirectoryAt(this.mainFile.firstIFDOffset)].concat(this.overviewFiles.map(t=>t.parseFileDirectoryAt(t.firstIFDOffset)));return this.fileDirectoriesPerFile=await Promise.all(e),this.fileDirectoriesPerFile}async getImage(e=0){await this.getImageCount(),await this.parseFileDirectoriesPerFile();let t=0,n=0;for(let r=0;rt.getImageCount()));return this.imageCounts=await Promise.all(e),this.imageCount=this.imageCounts.reduce((t,n)=>t+n,0),this.imageCount}};async function FS(i,e={},t){return Xl.fromSource(bg(i,e),t)}async function LS(i,e){return Xl.fromSource(DS(i),e)}async function MS(i,e=[],t={},n){let r=await Xl.fromSource(bg(i,t),n),o=await Promise.all(e.map(s=>Xl.fromSource(bg(s,t))));return new ZI(r,o)}var kk=` attribute vec4 a_position; attribute vec4 a_texcoord; @@ -641,7 +659,7 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a vec2 texcoord = (u_textureMatrix * a_texcoord).xy; v_texcoord = texcoord; } -`,yv=` +`,Pk=` precision mediump float; varying vec2 v_texcoord; @@ -659,7 +677,7 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a } gl_FragColor = texture2D(u_texture, v_texcoord); } -`,nh=class{constructor(e){this.gl_=e,this.program_=rh(e,yv,_v),this.positionLocation=e.getAttribLocation(this.program_,"a_position"),this.texcoordLocation=e.getAttribLocation(this.program_,"a_texcoord"),this.matrixLocation=e.getUniformLocation(this.program_,"u_matrix"),this.textureMatrixLocation=e.getUniformLocation(this.program_,"u_textureMatrix"),this.textureLocation=e.getUniformLocation(this.program_,"u_texture"),this.positionBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.positionBuffer),this.positions=[0,0,0,1,1,0,1,0,0,1,1,1],e.bufferData(e.ARRAY_BUFFER,new Float32Array(this.positions),e.STATIC_DRAW),this.texcoordBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.texcoordBuffer),this.texcoords=[0,0,0,1,1,0,1,0,0,1,1,1],e.bufferData(e.ARRAY_BUFFER,new Float32Array(this.texcoords),e.STATIC_DRAW)}drawImage(e,t,n,r,o,s,a,A,l,c,h,u,f){let g=this.gl_;A===void 0&&(A=r),l===void 0&&(l=o),s===void 0&&(s=t),a===void 0&&(a=n),c===void 0&&(c=s),h===void 0&&(h=a),u===void 0&&(u=g.canvas.width),f===void 0&&(f=g.canvas.height),g.bindTexture(g.TEXTURE_2D,e),g.useProgram(this.program_),g.bindBuffer(g.ARRAY_BUFFER,this.positionBuffer),g.enableVertexAttribArray(this.positionLocation),g.vertexAttribPointer(this.positionLocation,2,g.FLOAT,!1,0,0),g.bindBuffer(g.ARRAY_BUFFER,this.texcoordBuffer),g.enableVertexAttribArray(this.texcoordLocation),g.vertexAttribPointer(this.texcoordLocation,2,g.FLOAT,!1,0,0);let m=ba(0,u,0,f,-1,1);m=S0(m,A,l,0),m=Ng(m,c,h,1),g.uniformMatrix4fv(this.matrixLocation,!1,m);let d=R0(r/t,o/n,0);d=Ng(d,s/t,a/n,1),g.uniformMatrix4fv(this.textureMatrixLocation,!1,d),g.uniform1i(this.textureLocation,0),g.drawArrays(g.TRIANGLES,0,this.positions.length/2)}};function BB(i,e,t){let n=i.createShader(e);if(n===null)throw new Error("Shader compilation failed");if(i.shaderSource(n,t),i.compileShader(n),!i.getShaderParameter(n,i.COMPILE_STATUS)){let r=i.getShaderInfoLog(n);throw r===null?new Error("Shader info log creation failed"):new Error(r)}return n}function rh(i,e,t){let n=i.createProgram(),r=BB(i,i.VERTEX_SHADER,t),o=BB(i,i.FRAGMENT_SHADER,e);if(n===null)throw new Error("Program creation failed");if(i.attachShader(n,r),i.attachShader(n,o),i.linkProgram(n),!i.getProgramParameter(n,i.LINK_STATUS))throw i.getProgramInfoLog(n)===null?new Error("Program info log creation failed"):new Error;return n}var Bv=` +`,Fg=class{constructor(e){this.gl_=e,this.program_=Lg(e,Pk,kk),this.positionLocation=e.getAttribLocation(this.program_,"a_position"),this.texcoordLocation=e.getAttribLocation(this.program_,"a_texcoord"),this.matrixLocation=e.getUniformLocation(this.program_,"u_matrix"),this.textureMatrixLocation=e.getUniformLocation(this.program_,"u_textureMatrix"),this.textureLocation=e.getUniformLocation(this.program_,"u_texture"),this.positionBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.positionBuffer),this.positions=[0,0,0,1,1,0,1,0,0,1,1,1],e.bufferData(e.ARRAY_BUFFER,new Float32Array(this.positions),e.STATIC_DRAW),this.texcoordBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.texcoordBuffer),this.texcoords=[0,0,0,1,1,0,1,0,0,1,1,1],e.bufferData(e.ARRAY_BUFFER,new Float32Array(this.texcoords),e.STATIC_DRAW)}drawImage(e,t,n,r,o,s,a,l,A,c,h,u,f){let g=this.gl_;l===void 0&&(l=r),A===void 0&&(A=o),s===void 0&&(s=t),a===void 0&&(a=n),c===void 0&&(c=s),h===void 0&&(h=a),u===void 0&&(u=g.canvas.width),f===void 0&&(f=g.canvas.height),g.bindTexture(g.TEXTURE_2D,e),g.useProgram(this.program_),g.bindBuffer(g.ARRAY_BUFFER,this.positionBuffer),g.enableVertexAttribArray(this.positionLocation),g.vertexAttribPointer(this.positionLocation,2,g.FLOAT,!1,0,0),g.bindBuffer(g.ARRAY_BUFFER,this.texcoordBuffer),g.enableVertexAttribArray(this.texcoordLocation),g.vertexAttribPointer(this.texcoordLocation,2,g.FLOAT,!1,0,0);let p=_c(0,u,0,f,-1,1);p=VB(p,l,A,0),p=J0(p,c,h,1),g.uniformMatrix4fv(this.matrixLocation,!1,p);let d=HB(r/t,o/n,0);d=J0(d,s/t,a/n,1),g.uniformMatrix4fv(this.textureMatrixLocation,!1,d),g.uniform1i(this.textureLocation,0),g.drawArrays(g.TRIANGLES,0,this.positions.length/2)}};function kS(i,e,t){let n=i.createShader(e);if(n===null)throw new Error("Shader compilation failed");if(i.shaderSource(n,t),i.compileShader(n),!i.getShaderParameter(n,i.COMPILE_STATUS)){let r=i.getShaderInfoLog(n);throw r===null?new Error("Shader info log creation failed"):new Error(r)}return n}function Lg(i,e,t){let n=i.createProgram(),r=kS(i,i.VERTEX_SHADER,t),o=kS(i,i.FRAGMENT_SHADER,e);if(n===null)throw new Error("Program creation failed");if(i.attachShader(n,r),i.attachShader(n,o),i.linkProgram(n),!i.getProgramParameter(n,i.LINK_STATUS))throw i.getProgramInfoLog(n)===null?new Error("Program info log creation failed"):new Error;return n}var Nk=` attribute vec4 a_position; uniform mat4 u_matrix; @@ -667,14 +685,14 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a void main() { gl_Position = u_matrix * a_position; } -`,xv=` +`,Gk=` precision mediump float; uniform vec4 u_val; void main() { gl_FragColor = u_val; } -`,wv=` +`,Ok=` attribute vec4 a_position; attribute vec2 a_texcoord; @@ -686,7 +704,7 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a gl_Position = u_matrix * a_position; v_texcoord = a_texcoord; } -`,Qv=` +`,Uk=` precision mediump float; varying vec2 v_texcoord; @@ -699,8 +717,23 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a } gl_FragColor = texture2D(u_texture, v_texcoord); } -`;function xB(i,e,t,n){let r;return t&&t.length?r=t.shift():Lo?r=new OffscreenCanvas(i||300,e||300):r=document.createElement("canvas"),i&&(r.width=i),e&&(r.height=e),r.getContext("webgl",n)}function wB(i){let e=i.canvas;e.width=1,e.height=1,i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT|i.STENCIL_BUFFER_BIT)}var Fm=[];function QB(i,e,t,n,r,o,s,a,A,l,c,h,u,f){let g=Math.round(n*e),m=Math.round(n*t);i.canvas.width=g,i.canvas.height=m;let d,I;if(I=i.createTexture(),i.bindTexture(i.TEXTURE_2D,I),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),u?(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR)):(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST)),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,g,m,0,i.RGBA,c,null),d=i.createFramebuffer(),i.bindFramebuffer(i.FRAMEBUFFER,d),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,I,0),d===null)throw new Error("Could not create framebuffer");if(I===null)throw new Error("Could not create texture");if(A.length===0)return{width:g,height:m,framebuffer:d,texture:I};let p=be();A.forEach(function(w,T,R){Co(p,w.extent)});let _,C,E,y=1/r;if(!f||A.length!==1||l!==0){if(_=i.createTexture(),I===null)throw new Error("Could not create texture");C=Math.round(oe(p)*y),E=Math.round(Se(p)*y);let w=i.getParameter(i.MAX_TEXTURE_SIZE),T=Math.max(C,E),R=T>w?w/T:1,F=Math.round(C*R),D=Math.round(E*R);i.bindTexture(i.TEXTURE_2D,_),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),u?(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR)):(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST)),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,F,D,0,i.RGBA,c,null);let S=i.createFramebuffer();i.bindFramebuffer(i.FRAMEBUFFER,S),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,_,0);let k=new nh(i);A.forEach(function(L,b,P){let N=(L.extent[0]-p[0])*y*R,Y=-(L.extent[3]-p[3])*y*R,M=oe(L.extent)*y*R,j=Se(L.extent)*y*R;if(i.bindFramebuffer(i.FRAMEBUFFER,S),i.viewport(0,0,F,D),L.clipExtent){let H=(L.clipExtent[0]-p[0])*y*R,O=-(L.clipExtent[3]-p[3])*y*R,K=oe(L.clipExtent)*y*R,ie=Se(L.clipExtent)*y*R;i.enable(i.SCISSOR_TEST),i.scissor(u?H:Math.round(H),u?O:Math.round(O),u?K:Math.round(H+K)-Math.round(H),u?ie:Math.round(O+ie)-Math.round(O))}k.drawImage(L.texture,L.width,L.height,l,l,L.width-2*l,L.height-2*l,u?N:Math.round(N),u?Y:Math.round(Y),u?M:Math.round(N+M)-Math.round(N),u?j:Math.round(Y+j)-Math.round(Y),F,D),i.disable(i.SCISSOR_TEST)}),i.deleteFramebuffer(S)}else _=A[0].texture,C=A[0].width,E=A[0].width;let B=ht(s),x=ht(p),Q=w=>{let T=(w[0][0]-B[0])/o*n,R=-(w[0][1]-B[1])/o*n,F=(w[1][0]-B[0])/o*n,D=-(w[1][1]-B[1])/o*n,S=(w[2][0]-B[0])/o*n,k=-(w[2][1]-B[1])/o*n;return{u1:F,v1:D,u0:T,v0:R,u2:S,v2:k}};i.bindFramebuffer(i.FRAMEBUFFER,d),i.viewport(0,0,g,m);{let w=[],T=[],R=rh(i,Qv,wv);i.useProgram(R);let F=i.getUniformLocation(R,"u_texture");i.bindTexture(i.TEXTURE_2D,_),i.uniform1i(F,0),a.getTriangles().forEach(function(N,Y,M){let j=N.source,H=N.target,{u1:O,v1:K,u0:ie,v0:ge,u2:Ie,v2:de}=Q(H),Pe=(j[0][0]-x[0])/r/C,tt=-(j[0][1]-x[1])/r/E,xt=(j[1][0]-x[0])/r/C,Je=-(j[1][1]-x[1])/r/E,Te=(j[2][0]-x[0])/r/C,Dt=-(j[2][1]-x[1])/r/E;w.push(O,K,ie,ge,Ie,de),T.push(xt,Je,Pe,tt,Te,Dt)});let D=ba(0,g,m,0,-1,1),S=i.getUniformLocation(R,"u_matrix");i.uniformMatrix4fv(S,!1,D);let k=i.getAttribLocation(R,"a_position"),L=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,L),i.bufferData(i.ARRAY_BUFFER,new Float32Array(w),i.STATIC_DRAW),i.vertexAttribPointer(k,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(k);let b=i.getAttribLocation(R,"a_texcoord"),P=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,P),i.bufferData(i.ARRAY_BUFFER,new Float32Array(T),i.STATIC_DRAW),i.vertexAttribPointer(b,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(b),i.drawArrays(i.TRIANGLES,0,w.length/2)}if(h){let w=rh(i,xv,Bv);i.useProgram(w);let T=ba(0,g,m,0,-1,1),R=i.getUniformLocation(w,"u_matrix");i.uniformMatrix4fv(R,!1,T);let F=Array.isArray(h)?h:[0,0,0,255],D=i.getUniformLocation(w,"u_val");!0?i.uniform4fv(D,F):i.uniform4iv(D,F);let k=i.getAttribLocation(w,"a_position"),L=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,L),i.vertexAttribPointer(k,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(k);let b=a.getTriangles().reduce(function(P,N){let Y=N.target,{u1:M,v1:j,u0:H,v0:O,u2:K,v2:ie}=Q(Y);return P.concat([M,j,H,O,H,O,K,ie,K,ie,M,j])},[]);i.bufferData(i.ARRAY_BUFFER,new Float32Array(b),i.STATIC_DRAW),i.drawArrays(i.LINES,0,b.length/2)}return{width:g,height:m,framebuffer:d,texture:I}}var Lm=class extends Ln{constructor(e){super({tileCoord:e.tileCoord,loader:()=>Promise.resolve(new Uint8ClampedArray(4)),interpolate:e.interpolate,transition:e.transition}),this.renderEdges_=e.renderEdges!==void 0?e.renderEdges:!1,this.pixelRatio_=e.pixelRatio,this.gutter_=e.gutter,this.reprojData_=null,this.reprojError_=null,this.reprojSize_=void 0,this.sourceTileGrid_=e.sourceTileGrid,this.targetTileGrid_=e.targetTileGrid,this.wrappedTileCoord_=e.wrappedTileCoord||e.tileCoord,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;let t=e.sourceProj,n=t.getExtent(),r=e.sourceTileGrid.getExtent();this.clipExtent_=t.canWrapX()?r?Ue(n,r):n:r;let o=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),s=this.targetTileGrid_.getExtent(),a=this.sourceTileGrid_.getExtent(),A=s?Ue(o,s):o;if(Xn(A)===0){this.state=G.EMPTY;return}n&&(a?a=Ue(a,n):a=n);let l=this.targetTileGrid_.getResolution(this.wrappedTileCoord_[0]),c=e.targetProj,h=Ul(t,c,A,l);if(!isFinite(h)||h<=0){this.state=G.EMPTY;return}let u=e.errorThreshold!==void 0?e.errorThreshold:.5;if(this.triangulation_=new Yl(t,c,A,a,h*u,l,e.transformMatrix),this.triangulation_.getTriangles().length===0){this.state=G.EMPTY;return}this.sourceZ_=this.sourceTileGrid_.getZForResolution(h);let f=this.triangulation_.calculateSourceExtent();if(a&&(t.canWrapX()?(f[1]=ce(f[1],a[1],a[3]),f[3]=ce(f[3],a[1],a[3])):f=Ue(f,a)),!Xn(f))this.state=G.EMPTY;else{let g=0,m=0;t.canWrapX()&&(g=oe(n),m=Math.floor((f[0]-n[0])/g)),Bo(f.slice(),t,!0).forEach(I=>{let p=this.sourceTileGrid_.getTileRangeForExtentAndZ(I,this.sourceZ_),_=e.getTileFunction;for(let C=p.minX;C<=p.maxX;C++)for(let E=p.minY;E<=p.maxY;E++){let y=_(this.sourceZ_,C,E,this.pixelRatio_);if(y){let B=m*g;this.sourceTiles_.push({tile:y,offset:B})}}++m}),this.sourceTiles_.length===0&&(this.state=G.EMPTY)}}getSize(){return this.reprojSize_}getData(){return this.reprojData_}getError(){return this.reprojError_}reproject_(){let e=[],t=!1;if(this.sourceTiles_.forEach(C=>{let E=C.tile;if(!E||E.getState()!==G.LOADED)return;let y=E.getSize(),B=this.gutter_,x,Q=Ta(E.getData());Q?x=Q:(t=!0,x=c0(Fn(E.getData())));let w=[y[0]+2*B,y[1]+2*B],T=x instanceof Float32Array,R=w[0]*w[1],F=T?Float32Array:Uint8ClampedArray,D=new F(x.buffer),S=F.BYTES_PER_ELEMENT,k=S*D.length/R,L=D.byteLength/w[1],b=Math.floor(L/S/w[0]),P=this.sourceTileGrid_.getTileCoordExtent(E.tileCoord);P[0]+=C.offset,P[2]+=C.offset;let N=this.clipExtent_?.slice();N&&(N[0]+=C.offset,N[2]+=C.offset),e.push({extent:P,clipExtent:N,data:D,dataType:F,bytesPerPixel:k,pixelSize:w,bandCount:b})}),this.sourceTiles_.length=0,e.length===0){this.state=G.ERROR,this.changed();return}let n=this.wrappedTileCoord_[0],r=this.targetTileGrid_.getTileSize(n),o=typeof r=="number"?r:r[0],s=typeof r=="number"?r:r[1],a=o*this.pixelRatio_,A=s*this.pixelRatio_,l=this.targetTileGrid_.getResolution(n),c=this.sourceTileGrid_.getResolution(this.sourceZ_),h=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),u=e[0].bandCount,f=new e[0].dataType(u*a*A),g=xB(a,A,Fm,{premultipliedAlpha:!1,antialias:!1}),m,d=g.RGBA,I;e[0].dataType==Float32Array?(I=g.FLOAT,g.getExtension("WEBGL_color_buffer_float"),g.getExtension("OES_texture_float"),g.getExtension("EXT_float_blend"),m=g.getExtension("OES_texture_float_linear")!==null&&this.interpolate):(I=g.UNSIGNED_BYTE,m=this.interpolate);let p=4,_=Math.ceil(u/p);for(let C=_-1;C>=0;--C){let E=[];for(let F=0,D=e.length;F{let n=t.getState();if(n!==G.IDLE&&n!==G.LOADING)return;e++;let r=X(t,U.CHANGE,()=>{let o=t.getState();(o==G.LOADED||o==G.ERROR||o==G.EMPTY)&&(se(r),e--,e===0&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(r)}),e===0?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:t}){t.getState()==G.IDLE&&t.load()})}unlistenSources_(){this.sourcesListenerKeys_.forEach(se),this.sourcesListenerKeys_=null}},SB=Lm;var Mm=class extends sc{constructor(e){let t=e.projection===void 0?"EPSG:3857":e.projection,n=e.tileGrid;n===void 0&&t&&(n=nc({extent:ls(t),maxResolution:e.maxResolution,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize})),super({cacheSize:.1,attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,projection:t,tileGrid:n,state:e.state,wrapX:e.wrapX,transition:e.transition,interpolate:e.interpolate,key:e.key,zDirection:e.zDirection}),this.gutter_=e.gutter!==void 0?e.gutter:0,this.tileSize_=e.tileSize?_e(e.tileSize):null,this.tileSizes_=null,this.tileLoadingKeys_={},this.loader_=e.loader,this.handleTileChange_=this.handleTileChange_.bind(this),this.bandCount=e.bandCount===void 0?4:e.bandCount,this.tileGridForProjection_={},this.crossOrigin_=e.crossOrigin||"anonymous",this.transformMatrix=null}setTileSizes(e){this.tileSizes_=e}getTileSize(e){if(this.tileSizes_)return this.tileSizes_[e];if(this.tileSize_)return this.tileSize_;let t=this.getTileGrid();return t?_e(t.getTileSize(e)):[256,256]}getGutterForProjection(e){let t=this.getProjection();return(!t||Ni(t,e))&&!this.transformMatrix?this.gutter_:0}setLoader(e){this.loader_=e}getReprojTile_(e,t,n,r,o){let s=this.tileGrid||this.getTileGridForProjection(o||r),a=Math.max.apply(null,s.getResolutions().map((f,g)=>{let m=_e(s.getTileSize(g)),d=this.getTileSize(g);return Math.max(d[0]/m[0],d[1]/m[1])})),A=this.getTileGridForProjection(r),l=[e,t,n],c=this.getTileCoordForTileUrlFunction(l,r),h=Object.assign({sourceProj:o||r,sourceTileGrid:s,targetProj:r,targetTileGrid:A,tileCoord:l,wrappedTileCoord:c,pixelRatio:a,gutter:this.gutter_,getTileFunction:(f,g,m,d)=>this.getTile(f,g,m,d),transformMatrix:this.transformMatrix},this.tileOptions),u=new SB(h);return u.key=this.getKey(),u}getTile(e,t,n,r,o){let s=this.getProjection();if(o&&(s&&!Ni(s,o)||this.transformMatrix))return this.getReprojTile_(e,t,n,o,s);let a=this.getTileSize(e),A=this.loader_,l=new AbortController,c={signal:l.signal,crossOrigin:this.crossOrigin_},h=this.getTileCoordForTileUrlFunction([e,t,n]);if(!h)return null;let u=h[0],f=h[1],g=h[2],m=this.getTileGrid()?.getFullTileRange(u);m&&(c.maxY=m.getHeight()-1);function d(){return xA(function(){return A(u,f,g,c)})}let I=Object.assign({tileCoord:[e,t,n],loader:d,size:a,controller:l},this.tileOptions),p=new Ln(I);return p.key=this.getKey(),p.addEventListener(U.CHANGE,this.handleTileChange_),p}handleTileChange_(e){let t=e.target,n=z(t),r=t.getState(),o;r==G.LOADING?(this.tileLoadingKeys_[n]=!0,o=dr.TILELOADSTART):n in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[n],o=r==G.ERROR?dr.TILELOADERROR:r==G.LOADED?dr.TILELOADEND:void 0),o&&this.dispatchEvent(new cs(o,t))}getTileGridForProjection(e){let t=this.getProjection();if(this.tileGrid&&(!t||Ni(t,e))&&!this.transformMatrix)return this.tileGrid;let n=z(e);return n in this.tileGridForProjection_||(this.tileGridForProjection_[n]=As(e)),this.tileGridForProjection_[n]}setTileGridForProjection(e,t){let n=fe(e);if(n){let r=z(n);r in this.tileGridForProjection_||(this.tileGridForProjection_[r]=t)}}},oh=Mm;function Sv(i){return((i.fileDirectory.NewSubfileType||0)&4)===4}function Rv(i,e){if(!i)return!1;if(i===!0)return!0;if(e.getSamplesPerPixel()!==3)return!1;let t=e.fileDirectory.PhotometricInterpretation,n=mc.photometricInterpretations;return t===n.CMYK||t===n.YCbCr||t===n.CIELab||t===n.ICCLab}var RB="STATISTICS_MAXIMUM",TB="STATISTICS_MINIMUM",km=256,Pm;function Tv(){return Pm||(Pm=new ym),Pm}function vv(i){try{return i.getBoundingBox(!0)}catch{return[0,0,i.getWidth(),i.getHeight()]}}function Dv(i){try{return i.getOrigin().slice(0,2)}catch{return[0,i.getHeight()]}}function bv(i,e){try{return i.getResolution(e)}catch{return[e.getWidth()/i.getWidth(),e.getHeight()/i.getHeight()]}}function Fv(i){let e=i.geoKeys;if(!e)return null;if(e.ProjectedCSTypeGeoKey&&e.ProjectedCSTypeGeoKey!==32767){let t="EPSG:"+e.ProjectedCSTypeGeoKey,n=fe(t);if(!n){let r=kh(e.ProjLinearUnitsGeoKey);r&&(n=new Pi({code:t,units:r}))}return n}if(e.GeographicTypeGeoKey&&e.GeographicTypeGeoKey!==32767){let t="EPSG:"+e.GeographicTypeGeoKey,n=fe(t);if(!n){let r=kh(e.GeogAngularUnitsGeoKey);r&&(n=new Pi({code:t,units:r}))}return n}return null}function Lv(i){return i.getImageCount().then(function(e){let t=new Array(e);for(let n=0;nt*i)throw new Error(n)}function kv(i){return i instanceof Int8Array?-128:i instanceof Int16Array?-32768:i instanceof Int32Array?-2147483648:i instanceof Float32Array?12e-39:0}function Pv(i){return i instanceof Int8Array?127:i instanceof Uint8Array||i instanceof Uint8ClampedArray?255:i instanceof Int16Array?32767:i instanceof Uint16Array?65535:i instanceof Int32Array?2147483647:i instanceof Uint32Array?4294967295:i instanceof Float32Array?34e37:255}var sh=class extends oh{constructor(e){super({state:"loading",tileGrid:null,projection:e.projection||null,transition:e.transition,interpolate:e.interpolate!==!1,wrapX:e.wrapX}),this.sourceInfo_=e.sources;let t=this.sourceInfo_.length;this.sourceOptions_=e.sourceOptions,this.sourceImagery_=new Array(t),this.sourceMasks_=new Array(t),this.resolutionFactors_=new Array(t),this.samplesPerPixel_,this.nodataValues_,this.metadata_,this.normalize_=e.normalize!==!1,this.addAlpha_=!1,this.error_=null,this.convertToRGB_=e.convertToRGB||!1,this.setKey(this.sourceInfo_.map(o=>o.url).join(","));let n=this,r=new Array(t);for(let o=0;o=0;--n){let r=t[n],o=Fv(r);if(o){this.projection=o;break}}}determineTransformMatrix(e){let t=e[0];for(let n=t.length-1;n>=0;--n){let o=t[n].fileDirectory.ModelTransformation;if(o){let[s,a,A,l,c,h,u,f]=o,g=Zn(Zn([1/Math.sqrt(s*s+c*c),0,0,-1/Math.sqrt(a*a+h*h),l,f],[s,c,a,h,0,0]),[1,0,0,1,-l,-f]);this.transformMatrix=g,this.addAlpha_=!0;break}}}configure_(e){let t,n,r,o,s,a=new Array(e.length),A=new Array(e.length),l=new Array(e.length),c=0,h=e.length;for(let d=0;d{Sv(Q)?p.push(Q):I.push(Q)});let _=I.length;if(p.length>0&&p.length!==_)throw new Error(`Expected one mask per image found ${p.length} masks and ${_} images`);let C,E,y=new Array(_),B=new Array(_),x=new Array(_);A[d]=new Array(_),l[d]=new Array(_);for(let Q=0;Q<_;++Q){let w=I[Q],T=w.getGDALNoData();l[d][Q]=w.getGDALMetadata(0),A[d][Q]=T;let R=this.sourceInfo_[d].bands;a[d]=R?R.length:w.getSamplesPerPixel();let F=_-(Q+1);C||(C=vv(w)),E||(E=Dv(w));let D=bv(w,I[0]);x[F]=D[0];let S=[w.getTileWidth(),w.getTileHeight()];S[0]!==S[1]&&S[1]x.length&&(c=s.length-x.length);let Q=s[s.length-1]/x[x.length-1];this.resolutionFactors_[d]=Q;let w=x.map(R=>R*=Q),T=`Resolution mismatch for source ${d}, got [${w}] but expected [${s}]`;hA(s.slice(c,s.length),w,.02,T,this.viewRejector)}r?hA(r.slice(c,r.length),B,.01,`Tile size mismatch for source ${d}`,this.viewRejector):r=B,o?hA(o.slice(c,o.length),y,0,`Tile size mismatch for source ${d}`,this.viewRejector):o=y,this.sourceImagery_[d]=I.reverse(),this.sourceMasks_[d]=p.reverse()}for(let d=0,I=this.sourceImagery_.length;dye(d,p));m=DA(t,I)}this.viewResolver({showFullExtent:!0,projection:this.projection,resolutions:s,center:Dr(Et(m),this.projection),extent:hi(m,this.projection),zoom:g})}loadTile_(e,t,n,r){let o=this.getTileSize(e),s=this.sourceImagery_.length,a=new Array(s*2),A=this.nodataValues_,l=this.sourceInfo_,c=Tv();for(let h=0;h{let a=new Image;a.crossOrigin=r.crossOrigin??null,a.addEventListener("load",()=>o(a)),a.addEventListener("error",()=>s(Nv)),a.src=rc(i,e,t,n,r.maxY)})}function DB(i){return function(e,t,n,r){let o=dC(i,e,t,n);return MB(o,e,t,n,r)}}function Gv(i){return function(e,t,n,r){let o=i(e,t,n,r);return MB(o,e,t,n,r)}}function bB(i){let e;if(Array.isArray(i))e=DB(i);else if(typeof i=="string"){let t=oc(i);e=DB(t)}else if(typeof i=="function")e=Gv(i);else throw new Error("The url option must be a single template, an array of templates, or a function for getting a URL");return e}var FB=0;function LB(i){return Array.isArray(i)?i.join(` -`):typeof i=="string"?i:(++FB,"url-function-key-"+FB)}var Nm=class extends oh{constructor(e){e=e||{};let t=e.loader,n;e.url&&(t=bB(e.url),n=LB(e.url));let r=t?e.state:"loading",o=e.wrapX===void 0?!0:e.wrapX;super({loader:t,key:n,attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize,gutter:e.gutter,maxResolution:e.maxResolution,projection:e.projection,tileGrid:e.tileGrid,state:r,wrapX:o,transition:e.transition,interpolate:e.interpolate!==!1,crossOrigin:e.crossOrigin,zDirection:e.zDirection})}setUrl(e){let t=bB(e);this.setLoader(t),this.setKey(LB(e)),this.getState()!=="ready"&&this.setState("ready")}},kB=Nm;var PB={OSM:CC,VectorSource:Yu,GeoTIFFSource:vB,GeoJSONSource:Yu,ImageTileSource:kB};var Gm="units",Ov=[1,2,5],uA=25.4/.28,Om=class extends At{constructor(e){e=e||{};let t=document.createElement("div");t.style.pointerEvents="none",super({element:t,render:e.render,target:e.target}),this.on,this.once,this.un;let n=e.className!==void 0?e.className:e.bar?"ol-scale-bar":"ol-scale-line";this.innerElement_=document.createElement("div"),this.innerElement_.className=n+"-inner",this.element.className=n+" "+gt,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=e.minWidth!==void 0?e.minWidth:64,this.maxWidth_=e.maxWidth,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",this.addChangeListener(Gm,this.handleUnitsChanged_),this.setUnits(e.units||"metric"),this.scaleBar_=e.bar||!1,this.scaleBarSteps_=e.steps||4,this.scaleBarText_=e.text||!1,this.dpi_=e.dpi||void 0}getUnits(){return this.get(Gm)}handleUnitsChanged_(){this.updateElement_()}setUnits(e){this.set(Gm,e)}setDpi(e){this.dpi_=e}updateElement_(){let e=this.viewState_;if(!e){this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1);return}let t=e.center,n=e.projection,r=this.getUnits(),o=r=="degrees"?"degrees":"m",s=Do(n,e.resolution,t,o),a=this.minWidth_*(this.dpi_||uA)/uA,A=this.maxWidth_!==void 0?this.maxWidth_*(this.dpi_||uA)/uA:void 0,l=a*s,c="";if(r=="degrees"){let _=Ci.degrees;l*=_,l<_/60?(c="\u2033",s*=3600):l<_?(c="\u2032",s*=60):c="\xB0"}else if(r=="imperial")l<.9144?(c="in",s/=.0254):l<1609.344?(c="ft",s/=.3048):(c="mi",s/=1609.344);else if(r=="nautical")s/=1852,c="NM";else if(r=="metric")l<1e-6?(c="nm",s*=1e9):l<.001?(c="\u03BCm",s*=1e6):l<1?(c="mm",s*=1e3):l<1e3?c="m":(c="km",s/=1e3);else if(r=="us")l<.9144?(c="in",s*=39.37):l<1609.344?(c="ft",s/=.30480061):(c="mi",s/=1609.3472);else throw new Error("Invalid units");let h=3*Math.floor(Math.log(a*s)/Math.log(10)),u,f,g,m=0,d,I;for(;;){g=Math.floor(h/3);let _=Math.pow(10,g);if(u=Ov[(h%3+3)%3]*_,f=Math.round(u/s),isNaN(f)){this.element.style.display="none",this.renderedVisible_=!1;return}if(A!==void 0&&f>=A){u=m,f=d,g=I;break}else if(f>=a)break;m=u,d=f,I=g,++h}let p=this.scaleBar_?this.createScaleBar(f,u,c):u.toFixed(g<0?-g:0)+" "+c;this.renderedHTML_!=p&&(this.innerElement_.innerHTML=p,this.renderedHTML_=p),this.renderedWidth_!=f&&(this.innerElement_.style.width=f+"px",this.renderedWidth_=f),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}createScaleBar(e,t,n){let r=this.getScaleForResolution(),o=r<1?Math.round(1/r).toLocaleString()+" : 1":"1 : "+Math.round(r).toLocaleString(),s=this.scaleBarSteps_,a=e/s,A=[this.createMarker("absolute")];for(let c=0;c
`+this.createMarker("relative")+(c%2===0||s===2?this.createStepText(c,e,!1,t,n):"")+"")}return A.push(this.createStepText(s,e,!0,t,n)),(this.scaleBarText_?`
`+o+"
":"")+A.join("")}createMarker(e){return`
`}createStepText(e,t,n,r,o){let a=(e===0?0:Math.round(r/this.scaleBarSteps_*e*100)/100)+(e===0?"":" "+o),A=e===0?-3:t/this.scaleBarSteps_*-1,l=e===0?0:t/this.scaleBarSteps_*2;return`
`+a+"
"}getScaleForResolution(){let e=Do(this.viewState_.projection,this.viewState_.resolution,this.viewState_.center,"m"),t=this.dpi_||uA,n=1e3/25.4;return e*n*t}render(e){let t=e.frameState;t?this.viewState_=t.viewState:this.viewState_=null,this.updateElement_()}},NB=Om;var GB=["fullscreenchange","webkitfullscreenchange"],OB={ENTERFULLSCREEN:"enterfullscreen",LEAVEFULLSCREEN:"leavefullscreen"},Um=class extends At{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target}),this.on,this.once,this.un,this.keys_=e.keys!==void 0?e.keys:!1,this.source_=e.source,this.isInFullscreen_=!1,this.boundHandleMapTargetChange_=this.handleMapTargetChange_.bind(this),this.cssClassName_=e.className!==void 0?e.className:"ol-full-screen",this.documentListeners_=[],this.activeClassName_=e.activeClassName!==void 0?e.activeClassName.split(" "):[this.cssClassName_+"-true"],this.inactiveClassName_=e.inactiveClassName!==void 0?e.inactiveClassName.split(" "):[this.cssClassName_+"-false"];let t=e.label!==void 0?e.label:"\u2922";this.labelNode_=typeof t=="string"?document.createTextNode(t):t;let n=e.labelActive!==void 0?e.labelActive:"\xD7";this.labelActiveNode_=typeof n=="string"?document.createTextNode(n):n;let r=e.tipLabel?e.tipLabel:"Toggle full-screen";this.button_=document.createElement("button"),this.button_.title=r,this.button_.setAttribute("type","button"),this.button_.appendChild(this.labelNode_),this.button_.addEventListener(U.CLICK,this.handleClick_.bind(this),!1),this.setClassName_(this.button_,this.isInFullscreen_),this.element.className=`${this.cssClassName_} ${gt} ${fi}`,this.element.appendChild(this.button_)}handleClick_(e){e.preventDefault(),this.handleFullScreen_()}handleFullScreen_(){let e=this.getMap();if(!e)return;let t=e.getOwnerDocument();if(UB(t))if(YB(t))Yv(t);else{let n;this.source_?n=typeof this.source_=="string"?t.getElementById(this.source_):this.source_:n=e.getTargetElement(),this.keys_?Uv(n):HB(n)}}handleFullScreenChange_(){let e=this.getMap();if(!e)return;let t=this.isInFullscreen_;this.isInFullscreen_=YB(e.getOwnerDocument()),t!==this.isInFullscreen_&&(this.setClassName_(this.button_,this.isInFullscreen_),this.isInFullscreen_?(Bn(this.labelActiveNode_,this.labelNode_),this.dispatchEvent(OB.ENTERFULLSCREEN)):(Bn(this.labelNode_,this.labelActiveNode_),this.dispatchEvent(OB.LEAVEFULLSCREEN)),e.updateSize())}setClassName_(e,t){t?(e.classList.remove(...this.inactiveClassName_),e.classList.add(...this.activeClassName_)):(e.classList.remove(...this.activeClassName_),e.classList.add(...this.inactiveClassName_))}setMap(e){let t=this.getMap();t&&t.removeChangeListener(Le.TARGET,this.boundHandleMapTargetChange_),super.setMap(e),this.handleMapTargetChange_(),e&&e.addChangeListener(Le.TARGET,this.boundHandleMapTargetChange_)}handleMapTargetChange_(){let e=this.documentListeners_;for(let n=0,r=e.length;nn?(this.direction_=fA.HORIZONTAL,this.widthLimit_=t-a):(this.direction_=fA.VERTICAL,this.heightLimit_=n-A),this.sliderInitialized_=!0}handleContainerClick_(e){let t=this.getMap().getView(),n=this.getRelativePosition_(e.offsetX-this.thumbSize_[0]/2,e.offsetY-this.thumbSize_[1]/2),r=this.getResolutionForPosition_(n),o=t.getConstrainedZoom(t.getZoomForResolution(r));t.animateInternal({zoom:o,duration:this.duration_,easing:Yt})}handleDraggerStart_(e){if(!this.dragging_&&e.target===this.element.firstElementChild){let t=this.element.firstElementChild;if(this.getMap().getView().beginInteraction(),this.startX_=e.clientX-parseFloat(t.style.left),this.startY_=e.clientY-parseFloat(t.style.top),this.dragging_=!0,this.dragListenerKeys_.length===0){let n=this.handleDraggerDrag_,r=this.handleDraggerEnd_,o=this.getMap().getOwnerDocument();this.dragListenerKeys_.push(X(o,Ht.POINTERMOVE,n,this),X(o,Ht.POINTERUP,r,this))}}}handleDraggerDrag_(e){if(this.dragging_){let t=e.clientX-this.startX_,n=e.clientY-this.startY_,r=this.getRelativePosition_(t,n);this.currentResolution_=this.getResolutionForPosition_(r),this.getMap().getView().setResolution(this.currentResolution_)}}handleDraggerEnd_(e){this.dragging_&&(this.getMap().getView().endInteraction(),this.dragging_=!1,this.startX_=void 0,this.startY_=void 0,this.dragListenerKeys_.forEach(se),this.dragListenerKeys_.length=0)}setThumbPosition_(e){let t=this.getPositionForResolution_(e),n=this.element.firstElementChild;this.direction_==fA.HORIZONTAL?n.style.left=this.widthLimit_*t+"px":n.style.top=this.heightLimit_*t+"px"}getRelativePosition_(e,t){let n;return this.direction_===fA.HORIZONTAL?n=e/this.widthLimit_:n=t/this.heightLimit_,ce(n,0,1)}getResolutionForPosition_(e){return this.getMap().getView().getResolutionForValueFunction()(1-e)}getPositionForResolution_(e){let t=this.getMap().getView().getValueForResolutionFunction();return ce(1-t(e),0,1)}render(e){if(!e.frameState||!this.sliderInitialized_&&!this.initSlider_())return;let t=e.frameState.viewState.resolution;this.currentResolution_=t,this.setThumbPosition_(t)}},KB=Ym;var Hm="projection",qB="coordinateFormat",zm=class extends At{constructor(e){e=e||{};let t=document.createElement("div");t.className=e.className!==void 0?e.className:"ol-mouse-position",super({element:t,render:e.render,target:e.target}),this.on,this.once,this.un,this.addChangeListener(Hm,this.handleProjectionChanged_),e.coordinateFormat&&this.setCoordinateFormat(e.coordinateFormat),e.projection&&this.setProjection(e.projection),this.renderOnMouseOut_=e.placeholder!==void 0,this.placeholder_=this.renderOnMouseOut_?e.placeholder:" ",this.renderedHTML_=t.innerHTML,this.mapProjection_=null,this.transform_=null,this.wrapX_=e.wrapX!==!1}handleProjectionChanged_(){this.transform_=null}getCoordinateFormat(){return this.get(qB)}getProjection(){return this.get(Hm)}handleMouseMove(e){let t=this.getMap();this.updateHTML_(t.getEventPixel(e))}handleMouseOut(e){this.updateHTML_(null)}setMap(e){if(super.setMap(e),e){let t=e.getViewport();this.listenerKeys.push(X(t,Ht.POINTERMOVE,this.handleMouseMove,this)),this.renderOnMouseOut_&&this.listenerKeys.push(X(t,Ht.POINTEROUT,this.handleMouseOut,this)),this.updateHTML_(null)}}setCoordinateFormat(e){this.set(qB,e)}setProjection(e){this.set(Hm,fe(e))}updateHTML_(e){let t=this.placeholder_;if(e&&this.mapProjection_){if(!this.transform_){let o=this.getProjection();o?this.transform_=li(this.mapProjection_,o):this.transform_=Jp}let r=this.getMap().getCoordinateFromPixelInternal(e);if(r){let o=ci();if(o&&(this.transform_=li(this.mapProjection_,o)),this.transform_(r,r),this.wrapX_){let a=o||this.getProjection()||this.mapProjection_;Qo(r,a)}let s=this.getCoordinateFormat();s?t=s(r):t=r.toString()}}(!this.renderedHTML_||t!==this.renderedHTML_)&&(this.element.innerHTML=t,this.renderedHTML_=t)}render(e){let t=e.frameState;t?this.mapProjection_!=t.viewState.projection&&(this.mapProjection_=t.viewState.projection,this.transform_=null):this.mapProjection_=null}},VB=zm;var ah=.75,gA=.1,Km=class extends At{constructor(e){e=e||{},super({element:document.createElement("div"),render:e.render,target:e.target}),this.boundHandleRotationChanged_=this.handleRotationChanged_.bind(this),this.collapsed_=e.collapsed!==void 0?e.collapsed:!0,this.collapsible_=e.collapsible!==void 0?e.collapsible:!0,this.collapsible_||(this.collapsed_=!1),this.rotateWithView_=e.rotateWithView!==void 0?e.rotateWithView:!1,this.viewExtent_=void 0;let t=e.className!==void 0?e.className:"ol-overviewmap",n=e.tipLabel!==void 0?e.tipLabel:"Overview map",r=e.collapseLabel!==void 0?e.collapseLabel:"\u2039";typeof r=="string"?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=r):this.collapseLabel_=r;let o=e.label!==void 0?e.label:"\u203A";typeof o=="string"?(this.label_=document.createElement("span"),this.label_.textContent=o):this.label_=o;let s=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_,a=document.createElement("button");a.setAttribute("type","button"),a.title=n,a.appendChild(s),a.addEventListener(U.CLICK,this.handleClick_.bind(this),!1),this.ovmapDiv_=document.createElement("div"),this.ovmapDiv_.className="ol-overviewmap-map",this.view_=e.view;let A=new Sa({view:e.view,controls:new st,interactions:new st});this.ovmap_=A,e.layers&&e.layers.forEach(function(I){A.addLayer(I)});let l=document.createElement("div");l.className="ol-overviewmap-box",l.style.boxSizing="border-box",this.boxOverlay_=new kl({position:[0,0],positioning:"center-center",element:l}),this.ovmap_.addOverlay(this.boxOverlay_);let c=t+" "+gt+" "+fi+(this.collapsed_&&this.collapsible_?" "+Po:"")+(this.collapsible_?"":" ol-uncollapsible"),h=this.element;h.className=c,h.appendChild(this.ovmapDiv_),h.appendChild(a);let u=this.boxOverlay_,f=this.boxOverlay_.getElement(),g=I=>({clientX:I.clientX,clientY:I.clientY}),m=function(I){let p=g(I),_=A.getEventCoordinate(p);u.setPosition(_)},d=I=>{let p=A.getEventCoordinateInternal(I),_=this.getMap();_.getView().setCenterInternal(p);let C=_.getOwnerDocument();C.removeEventListener("pointermove",m),C.removeEventListener("pointerup",d)};this.ovmapDiv_.addEventListener("pointerdown",I=>{let p=this.getMap().getOwnerDocument();I.target===f&&p.addEventListener("pointermove",m),p.addEventListener("pointerup",d)})}setMap(e){let t=this.getMap();if(e!==t){if(t){let n=t.getView();n&&this.unbindView_(n),this.ovmap_.setTarget(null)}if(super.setMap(e),e){this.ovmap_.setTarget(this.ovmapDiv_),this.listenerKeys.push(X(e,qt.PROPERTYCHANGE,this.handleMapPropertyChange_,this));let n=e.getView();n&&this.bindView_(n),this.ovmap_.isRendered()||this.updateBoxAfterOvmapIsRendered_()}}}handleMapPropertyChange_(e){if(e.key===Le.VIEW){let t=e.oldValue;t&&this.unbindView_(t);let n=this.getMap().getView();this.bindView_(n)}else!this.ovmap_.isRendered()&&(e.key===Le.TARGET||e.key===Le.SIZE)&&this.ovmap_.updateSize()}bindView_(e){if(!this.view_){let t=new yt({projection:e.getProjection()});this.ovmap_.setView(t)}e.addChangeListener(St.ROTATION,this.boundHandleRotationChanged_),this.handleRotationChanged_(),e.isDef()&&(this.ovmap_.updateSize(),this.resetExtent_())}unbindView_(e){e.removeChangeListener(St.ROTATION,this.boundHandleRotationChanged_)}handleRotationChanged_(){this.rotateWithView_&&this.ovmap_.getView().setRotation(this.getMap().getView().getRotation())}validateExtent_(){let e=this.getMap(),t=this.ovmap_;if(!e.isRendered()||!t.isRendered())return;let n=e.getSize(),o=e.getView().calculateExtentInternal(n);if(this.viewExtent_&&Jt(o,this.viewExtent_))return;this.viewExtent_=o;let s=t.getSize(),A=t.getView().calculateExtentInternal(s),l=t.getPixelFromCoordinateInternal(ht(o)),c=t.getPixelFromCoordinateInternal(Jn(o)),h=Math.abs(l[0]-c[0]),u=Math.abs(l[1]-c[1]),f=s[0],g=s[1];hf*ah||u>g*ah?this.resetExtent_():Ii(A,o)||this.recenter_()}resetExtent_(){if(ah===0||gA===0)return;let e=this.getMap(),t=this.ovmap_,n=e.getSize(),o=e.getView().calculateExtentInternal(n),s=t.getView(),a=Math.log(ah/gA)/Math.LN2,A=1/(Math.pow(2,a/2)*gA);xp(o,A),s.fitInternal(ea(o))}recenter_(){let e=this.getMap(),t=this.ovmap_,n=e.getView();t.getView().setCenterInternal(n.getCenterInternal())}updateBox_(){let e=this.getMap(),t=this.ovmap_;if(!e.isRendered()||!t.isRendered())return;let n=e.getSize(),r=e.getView(),o=t.getView(),s=this.rotateWithView_?0:-r.getRotation(),a=this.boxOverlay_,A=this.boxOverlay_.getElement(),l=r.getCenter(),c=r.getResolution(),h=o.getResolution(),u=n[0]*c/h,f=n[1]*c/h;if(a.setPosition(l),A){A.style.width=u+"px",A.style.height=f+"px";let g="rotate("+s+"rad)";A.style.transform=g}}updateBoxAfterOvmapIsRendered_(){this.ovmapPostrenderKey_||(this.ovmapPostrenderKey_=qn(this.ovmap_,zt.POSTRENDER,e=>{delete this.ovmapPostrenderKey_,this.updateBox_()}))}handleClick_(e){e.preventDefault(),this.handleToggle_()}handleToggle_(){this.element.classList.toggle(Po),this.collapsed_?Bn(this.collapseLabel_,this.label_):Bn(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;let e=this.ovmap_;if(!this.collapsed_){if(e.isRendered()){this.viewExtent_=void 0,e.render();return}e.updateSize(),this.resetExtent_(),this.updateBoxAfterOvmapIsRendered_()}}getCollapsible(){return this.collapsible_}setCollapsible(e){this.collapsible_!==e&&(this.collapsible_=e,this.element.classList.toggle("ol-uncollapsible"),!e&&this.collapsed_&&this.handleToggle_())}setCollapsed(e){!this.collapsible_||this.collapsed_===e||this.handleToggle_()}getCollapsed(){return this.collapsed_}getRotateWithView(){return this.rotateWithView_}setRotateWithView(e){this.rotateWithView_!==e&&(this.rotateWithView_=e,this.getMap().getView().getRotation()!==0&&(this.rotateWithView_?this.handleRotationChanged_():this.ovmap_.getView().setRotation(0),this.viewExtent_=void 0,this.validateExtent_(),this.updateBox_()))}getOverviewMap(){return this.ovmap_}render(e){this.validateExtent_(),this.updateBox_()}},XB=Km;var Ah=class extends At{constructor(e){let t=document.createElement("div");t.className="ol-control ol-unselectable info-box",t.style.cssText=e.cssText||"top: 65px; left: .5em; padding: 5px;",t.innerHTML=e.html,super({element:t,target:e.target})}};var JB={ScaleLineControl:NB,FullScreenControl:zB,ZoomSliderControl:KB,MousePositionControl:VB,OverviewMapControl:XB,InfoBox:Ah};var Xm="http://www.w3.org/2001/XMLSchema-instance";function vs(i,e){return dA().createElementNS(i,e)}function Di(i,e){return jB(i,e,[]).join("")}function jB(i,e,t){if(i.nodeType==Node.CDATA_SECTION_NODE||i.nodeType==Node.TEXT_NODE)e?t.push(String(i.nodeValue).replace(/(\r\n|\r|\n)/g,"")):t.push(i.nodeValue);else{let n;for(n=i.firstChild;n;n=n.nextSibling)jB(n,e,t)}return t}function an(i){return"documentElement"in i}function An(i){return new DOMParser().parseFromString(i,"application/xml")}function Jm(i,e){return function(t,n){let r=i.call(e??this,t,n);if(r!==void 0){let o=n[n.length-1];ue(o,r)}}}function Hn(i,e){return function(t,n){let r=i.call(e??this,t,n);r!==void 0&&n[n.length-1].push(r)}}function lh(i,e){return function(t,n){let r=i.call(e??this,t,n);r!==void 0&&(n[n.length-1]=r)}}function V(i,e,t){return function(n,r){let o=i.call(t??this,n,r);if(o!==void 0){let s=r[r.length-1],a=e!==void 0?e:n.localName;s[a]=o}}}function te(i,e){return function(t,n,r){i.call(e??this,t,n,r),r[r.length-1].node.appendChild(t)}}function ln(i,e){return function(t,n,r){let s=n[n.length-1].node,a=i;a===void 0&&(a=r);let A=e!==void 0?e:s.namespaceURI;return vs(A,a)}}var ii=ln();function pi(i,e){let t=e.length,n=new Array(t);for(let r=0;r0?n[0]:null}readFeatureFromNode(e,t){return null}readFeatures(e,t){if(!e)return[];if(typeof e=="string"){let n=An(e);return this.readFeaturesFromDocument(n,t)}return an(e)?this.readFeaturesFromDocument(e,t):this.readFeaturesFromNode(e,t)}readFeaturesFromDocument(e,t){let n=[];for(let r=e.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&ue(n,this.readFeaturesFromNode(r,t));return n}readFeaturesFromNode(e,t){return J()}readGeometry(e,t){if(!e)return null;if(typeof e=="string"){let n=An(e);return this.readGeometryFromDocument(n,t)}return an(e)?this.readGeometryFromDocument(e,t):this.readGeometryFromNode(e,t)}readGeometryFromDocument(e,t){return null}readGeometryFromNode(e,t){return null}readProjection(e){if(!e)return null;if(typeof e=="string"){let t=An(e);return this.readProjectionFromDocument(t)}return an(e)?this.readProjectionFromDocument(e):this.readProjectionFromNode(e)}readProjectionFromDocument(e){return this.dataProjection}readProjectionFromNode(e){return this.dataProjection}writeFeature(e,t){let n=this.writeFeatureNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeFeatureNode(e,t){return null}writeFeatures(e,t){let n=this.writeFeaturesNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeFeaturesNode(e,t){return null}writeGeometry(e,t){let n=this.writeGeometryNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeGeometryNode(e,t){return null}},ZB=jm;function zn(i){let e=Di(i,!1);return zv(e)}function zv(i){let e=/^\s*(true|1)|(false|0)\s*$/.exec(i);if(e)return e[1]!==void 0||!1}function ke(i){let e=Di(i,!1);return Kv(e)}function Kv(i){let e=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*$/i.exec(i);if(e)return parseFloat(e[1])}function pt(i){return Di(i,!1).trim()}function lo(i,e){ni(i,e?"1":"0")}function qv(i,e){i.appendChild(dA().createCDATASection(e))}function Qr(i,e){let t=e.toPrecision();i.appendChild(dA().createTextNode(t))}var Vv=/^\s/,Xv=/\s$/,Jv=/(\n|\t|\r|<|&| {2})/;function ni(i,e){typeof e=="string"&&(Vv.test(e)||Xv.test(e)||Jv.test(e))?e.split("]]>").forEach((t,n,r)=>{n0&&(t=">"+t),qv(i,t)}):i.appendChild(dA().createTextNode(e))}var Kn=["http://www.google.com/kml/ext/2.2"],W=[null,"http://earth.google.com/kml/2.0","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.2","http://www.opengis.net/kml/2.2"],jv="http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd",$B={fraction:"fraction",pixels:"pixels",insetPixels:"pixels"},Wv=Z(W,{ExtendedData:Ex,Region:Cx,MultiGeometry:V(mx,"geometry"),LineString:V(gx,"geometry"),LinearRing:V(dx,"geometry"),Point:V(px,"geometry"),Polygon:V(Ix,"geometry"),Style:V(ap),StyleMap:FD,address:V(pt),description:V(pt),name:V(pt),open:V(zn),phoneNumber:V(pt),styleUrl:V(lx),visibility:V(zn)},Z(Kn,{MultiTrack:V(CD,"geometry"),Track:V(fx,"geometry")})),Zv=Z(W,{ExtendedData:Ex,Region:Cx,Link:KD,address:V(pt),description:V(pt),name:V(pt),open:V(zn),phoneNumber:V(pt),visibility:V(zn)}),$v=Z(W,{href:V(Ax)}),eD=Z(W,{Altitude:V(ke),Longitude:V(ke),Latitude:V(ke),Tilt:V(ke),AltitudeMode:V(pt),Heading:V(ke),Roll:V(ke)}),ox=Z(W,{LatLonAltBox:ND,Lod:OD}),tD=Z(W,["Document","Placemark"]),iD=Z(W,{Document:te($D),Placemark:te(Bx)}),Ds,hh=null;var $m,mA,pA,IA,fh,ep=null;var op,tp=null;var ip,co=null;var ex=null;var np=null;function gh(i){return 32/Math.min(i[0],i[1])}function nD(){Ds=[255,255,255,1],hh=new zi({color:Ds}),$m=[20,2],mA="pixels",pA="pixels",IA=[64,64],fh="https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png",ep=new Ar({anchor:$m,anchorOrigin:"bottom-left",anchorXUnits:mA,anchorYUnits:pA,crossOrigin:"anonymous",rotation:0,scale:gh(IA),size:IA,src:fh}),op="NO_IMAGE",tp=new or({color:Ds,width:1}),ip=new or({color:[51,51,51,1],width:2}),co=new ua({font:"bold 16px Helvetica",fill:hh,stroke:ip,scale:.8}),ex=new $t({fill:hh,image:ep,text:co,stroke:tp,zIndex:0}),np=[ex]}var ch;function rD(i){return i}var rp=class extends ZB{constructor(e){super(),e=e||{},np||nD(),this.dataProjection=fe("EPSG:4326"),this.defaultStyle_=e.defaultStyle?e.defaultStyle:np,this.extractStyles_=e.extractStyles!==void 0?e.extractStyles:!0,this.writeStyles_=e.writeStyles!==void 0?e.writeStyles:!0,this.sharedStyles_={},this.showPointNames_=e.showPointNames!==void 0?e.showPointNames:!0,this.crossOrigin_=e.crossOrigin!==void 0?e.crossOrigin:"anonymous",this.iconUrlFunction_=e.iconUrlFunction?e.iconUrlFunction:rD,this.supportedMediaTypes=["application/vnd.google-earth.kml+xml"]}readDocumentOrFolder_(e,t){let n=Z(W,{Document:Jm(this.readDocumentOrFolder_,this),Folder:Jm(this.readDocumentOrFolder_,this),Placemark:Hn(this.readPlacemark_,this),Style:this.readSharedStyle_.bind(this),StyleMap:this.readSharedStyleMap_.bind(this)}),r=Re([],n,e,t,this);if(r)return r}readPlacemark_(e,t){let n=Re({geometry:null},Wv,e,t,this);if(!n)return;let r=new Io,o=e.getAttribute("id");o!==null&&r.setId(o);let s=t[0],a=n.geometry;if(a&&Vr(a,!1,s),r.setGeometry(a),delete n.geometry,this.extractStyles_){let A=n.Style,l=n.styleUrl,c=sD(A,l,this.defaultStyle_,this.sharedStyles_,this.showPointNames_);r.setStyle(c)}return delete n.Style,r.setProperties(n,!0),r}readSharedStyle_(e,t){let n=e.getAttribute("id");if(n!==null){let r=ap.call(this,e,t);if(r){let o,s=e.baseURI;(!s||s=="about:blank")&&(s=window.location.href),s?o=new URL("#"+n,s).href:o="#"+n,this.sharedStyles_[o]=r}}}readSharedStyleMap_(e,t){let n=e.getAttribute("id");if(n===null)return;let r=hx.call(this,e,t);if(!r)return;let o,s=e.baseURI;(!s||s=="about:blank")&&(s=window.location.href),s?o=new URL("#"+n,s).href:o="#"+n,this.sharedStyles_[o]=r}readFeatureFromNode(e,t){if(!W.includes(e.namespaceURI))return null;let n=this.readPlacemark_(e,[this.getReadOptions(e,t)]);return n||null}readFeaturesFromNode(e,t){if(!W.includes(e.namespaceURI))return[];let n,r=e.localName;if(r=="Document"||r=="Folder")return n=this.readDocumentOrFolder_(e,[this.getReadOptions(e,t)]),n||[];if(r=="Placemark"){let o=this.readPlacemark_(e,[this.getReadOptions(e,t)]);return o?[o]:[]}if(r=="kml"){n=[];for(let o=e.firstElementChild;o;o=o.nextElementSibling){let s=this.readFeaturesFromNode(o,t);s&&ue(n,s)}return n}return[]}readName(e){if(e){if(typeof e=="string"){let t=An(e);return this.readNameFromDocument(t)}return an(e)?this.readNameFromDocument(e):this.readNameFromNode(e)}}readNameFromDocument(e){for(let t=e.firstChild;t;t=t.nextSibling)if(t.nodeType==Node.ELEMENT_NODE){let n=this.readNameFromNode(t);if(n)return n}}readNameFromNode(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(W.includes(t.namespaceURI)&&t.localName=="name")return pt(t);for(let t=e.firstElementChild;t;t=t.nextElementSibling){let n=t.localName;if(W.includes(t.namespaceURI)&&(n=="Document"||n=="Folder"||n=="Placemark"||n=="kml")){let r=this.readNameFromNode(t);if(r)return r}}}readNetworkLinks(e){let t=[];if(typeof e=="string"){let n=An(e);ue(t,this.readNetworkLinksFromDocument(n))}else an(e)?ue(t,this.readNetworkLinksFromDocument(e)):ue(t,this.readNetworkLinksFromNode(e));return t}readNetworkLinksFromDocument(e){let t=[];for(let n=e.firstChild;n;n=n.nextSibling)n.nodeType==Node.ELEMENT_NODE&&ue(t,this.readNetworkLinksFromNode(n));return t}readNetworkLinksFromNode(e){let t=[];for(let n=e.firstElementChild;n;n=n.nextElementSibling)if(W.includes(n.namespaceURI)&&n.localName=="NetworkLink"){let r=Re({},Zv,n,[]);t.push(r)}for(let n=e.firstElementChild;n;n=n.nextElementSibling){let r=n.localName;W.includes(n.namespaceURI)&&(r=="Document"||r=="Folder"||r=="kml")&&ue(t,this.readNetworkLinksFromNode(n))}return t}readRegion(e){let t=[];if(typeof e=="string"){let n=An(e);ue(t,this.readRegionFromDocument(n))}else an(e)?ue(t,this.readRegionFromDocument(e)):ue(t,this.readRegionFromNode(e));return t}readRegionFromDocument(e){let t=[];for(let n=e.firstChild;n;n=n.nextSibling)n.nodeType==Node.ELEMENT_NODE&&ue(t,this.readRegionFromNode(n));return t}readRegionFromNode(e){let t=[];for(let n=e.firstElementChild;n;n=n.nextElementSibling)if(W.includes(n.namespaceURI)&&n.localName=="Region"){let r=Re({},ox,n,[]);t.push(r)}for(let n=e.firstElementChild;n;n=n.nextElementSibling){let r=n.localName;W.includes(n.namespaceURI)&&(r=="Document"||r=="Folder"||r=="kml")&&ue(t,this.readRegionFromNode(n))}return t}readCamera(e){let t=[];if(typeof e=="string"){let n=An(e);ue(t,this.readCameraFromDocument(n))}else an(e)?ue(t,this.readCameraFromDocument(e)):ue(t,this.readCameraFromNode(e));return t}readCameraFromDocument(e){let t=[];for(let n=e.firstChild;n;n=n.nextSibling)n.nodeType===Node.ELEMENT_NODE&&ue(t,this.readCameraFromNode(n));return t}readCameraFromNode(e){let t=[];for(let n=e.firstElementChild;n;n=n.nextElementSibling)if(W.includes(n.namespaceURI)&&n.localName==="Camera"){let r=Re({},eD,n,[]);t.push(r)}for(let n=e.firstElementChild;n;n=n.nextElementSibling){let r=n.localName;W.includes(n.namespaceURI)&&(r==="Document"||r==="Folder"||r==="Placemark"||r==="kml")&&ue(t,this.readCameraFromNode(n))}return t}writeFeaturesNode(e,t){t=this.adaptOptions(t);let n=vs(W[4],"kml"),r="http://www.w3.org/2000/xmlns/";n.setAttributeNS(r,"xmlns:gx",Kn[0]),n.setAttributeNS(r,"xmlns:xsi",Xm),n.setAttributeNS(Xm,"xsi:schemaLocation",jv);let o={node:n},s={};e.length>1?s.Document=e:e.length==1&&(s.Placemark=e[0]);let a=tD[n.namespaceURI],A=pi(s,a);return qe(o,iD,ii,A,[t],a,this),n}};function oD(i,e){let t=[0,0],n="start",r=i.getImage();if(r){let a=r.getSize();if(a&&a.length==2){let A=r.getScaleArray(),l=r.getAnchor();t[0]=A[0]*(a[0]-l[0]),t[1]=A[1]*(a[1]/2-l[1]),n="left"}}let o=i.getText();return o?(o=o.clone(),o.setFont(o.getFont()||co.getFont()),o.setScale(o.getScale()||co.getScale()),o.setFill(o.getFill()||co.getFill()),o.setStroke(o.getStroke()||ip)):o=co.clone(),o.setText(e),o.setOffsetX(t[0]),o.setOffsetY(t[1]),o.setTextAlign(n),new $t({image:r,text:o})}function sD(i,e,t,n,r){return function(o,s){let a=r,A="",l=[];if(a){let h=o.getGeometry();if(h)if(h instanceof wi)l=h.getGeometriesArrayRecursive().filter(function(u){let f=u.getType();return f==="Point"||f==="MultiPoint"}),a=l.length>0;else{let u=h.getType();a=u==="Point"||u==="MultiPoint"}}a&&(A=o.get("name"),a=a&&!!A,a&&/&[^&]+;/.test(A)&&(ch||(ch=document.createElement("textarea")),ch.innerHTML=A,A=ch.value));let c=t;if(i?c=i:e&&(c=sx(e,t,n)),a){let h=oD(c[0],A);if(l.length>0){h.setGeometry(new wi(l));let u=new $t({geometry:c[0].getGeometry(),image:null,fill:c[0].getFill(),stroke:c[0].getStroke(),text:null});return[h,u].concat(c.slice(1))}return h}return c}}function sx(i,e,t){return Array.isArray(i)?i:typeof i=="string"?sx(t[i],e,t):e}function dh(i){let e=Di(i,!1),t=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(t){let n=t[1];return[parseInt(n.substr(6,2),16),parseInt(n.substr(4,2),16),parseInt(n.substr(2,2),16),parseInt(n.substr(0,2),16)/255]}}function ax(i){let e=Di(i,!1),t=[];e=e.replace(/\s*,\s*/g,",");let n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?),([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|,|$)(?:([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|$))?\s*/i,r;for(;r=n.exec(e);){let o=parseFloat(r[1]),s=parseFloat(r[2]),a=r[3]?parseFloat(r[3]):0;t.push(o,s,a),e=e.substr(r[0].length)}if(e==="")return t}function Ax(i){let e=Di(i,!1).trim(),t=i.baseURI;return(!t||t=="about:blank")&&(t=window.location.href),t?new URL(e,t).href:e}function lx(i){let e=Di(i,!1).trim().replace(/^(?!.*#)/,"#"),t=i.baseURI;return(!t||t=="about:blank")&&(t=window.location.href),t?new URL(e,t).href:e}function aD(i){let e=i.getAttribute("xunits"),t=i.getAttribute("yunits"),n;return e!=="insetPixels"?t!=="insetPixels"?n="bottom-left":n="top-left":t!=="insetPixels"?n="bottom-right":n="top-right",{x:parseFloat(i.getAttribute("x")),xunits:$B[e],y:parseFloat(i.getAttribute("y")),yunits:$B[t],origin:n}}function cx(i){return ke(i)}var AD=Z(W,{Pair:bD});function hx(i,e){return Re(void 0,AD,i,e,this)}var lD=Z(W,{Icon:V(BD),color:V(dh),heading:V(ke),hotSpot:V(aD),scale:V(cx)});function cD(i,e){let t=Re({},lD,i,e);if(!t)return;let n=e[e.length-1],r="Icon"in t?t.Icon:{},o=!("Icon"in t)||Object.keys(r).length>0,s,a=r.href;a?s=a:o&&(s=fh);let A,l,c,h="bottom-left",u=t.hotSpot;u?(A=[u.x,u.y],l=u.xunits,c=u.yunits,h=u.origin):/^https?:\/\/maps\.(?:google|gstatic)\.com\//.test(s)&&(s.includes("pushpin")?(A=$m,l=mA,c=pA):s.includes("arrow-reverse")?(A=[54,42],l=mA,c=pA):s.includes("paddle")&&(A=[32,1],l=mA,c=pA));let f,g=r.x,m=r.y;g!==void 0&&m!==void 0&&(f=[g,m]);let d,I=r.w,p=r.h;I!==void 0&&p!==void 0&&(d=[I,p]);let _,C=t.heading;C!==void 0&&(_=jt(C));let E=t.scale,y=t.color;if(o){s==fh&&(d=IA);let B=new Ar({anchor:A,anchorOrigin:h,anchorXUnits:l,anchorYUnits:c,crossOrigin:this.crossOrigin_,offset:f,offsetOrigin:"bottom-left",rotation:_,scale:E,size:d,src:this.iconUrlFunction_(s),color:y}),x=B.getScaleArray()[0],Q=B.getSize();if(Q===null){let w=B.getImageState();if(w===ee.IDLE||w===ee.LOADING){let T=function(){let R=B.getImageState();if(!(R===ee.IDLE||R===ee.LOADING)){let F=B.getSize();if(F&&F.length==2){let D=gh(F);B.setScale(x*D)}B.unlistenImageChange(T)}};B.listenImageChange(T),w===ee.IDLE&&B.load()}}else if(Q.length==2){let w=gh(Q);B.setScale(x*w)}n.imageStyle=B}else n.imageStyle=op}var hD=Z(W,{color:V(dh),scale:V(cx)});function uD(i,e){let t=Re({},hD,i,e);if(!t)return;let n=e[e.length-1],r=new ua({fill:new zi({color:"color"in t?t.color:Ds}),scale:t.scale});n.textStyle=r}var fD=Z(W,{color:V(dh),width:V(ke)});function gD(i,e){let t=Re({},fD,i,e);if(!t)return;let n=e[e.length-1],r=new or({color:"color"in t?t.color:Ds,width:"width"in t?t.width:1});n.strokeStyle=r}var dD=Z(W,{color:V(dh),fill:V(zn),outline:V(zn)});function mD(i,e){let t=Re({},dD,i,e);if(!t)return;let n=e[e.length-1],r=new zi({color:"color"in t?t.color:Ds});n.fillStyle=r;let o=t.fill;o!==void 0&&(n.fill=o);let s=t.outline;s!==void 0&&(n.outline=s)}var pD=Z(W,{coordinates:lh(ax)});function ux(i,e){return Re(null,pD,i,e)}function ID(i,e){let n=e[e.length-1].coordinates,r=Di(i,!1),s=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(r);if(s){let a=parseFloat(s[1]),A=parseFloat(s[2]),l=parseFloat(s[3]);n.push([a,A,l])}else n.push([])}var ED=Z(Kn,{Track:Hn(fx)});function CD(i,e){let t=Re([],ED,i,e);if(t)return new Go(t)}var _D=Z(W,{when:qD},Z(Kn,{coord:ID}));function fx(i,e){let t=Re({coordinates:[],whens:[]},_D,i,e);if(!t)return;let n=[],r=t.coordinates,o=t.whens;for(let s=0,a=Math.min(r.length,o.length);s0&&e[e.length-1].push(...t)}var HD=Z(W,{LinearRing:lh(ux)});function zD(i,e){let t=Re(void 0,HD,i,e);if(t){let n=e[e.length-1];n[0]=t}}function KD(i,e){Ao($v,i,e)}function qD(i,e){let n=e[e.length-1].whens,r=Di(i,!1),o=Date.parse(r);n.push(isNaN(o)?0:o)}function ph(i,e){let t=We(e),r=[(t.length==4?t[3]:1)*255,t[2],t[1],t[0]];for(let o=0;o<4;++o){let s=Math.floor(r[o]).toString(16);r[o]=s.length==1?"0"+s:s}ni(i,r.join(""))}function VD(i,e,t){let n=t[t.length-1],r=n.layout,o=n.stride,s;if(r=="XY"||r=="XYM")s=2;else if(r=="XYZ"||r=="XYZM")s=3;else throw new Error("Invalid geometry layout");let a=e.length,A="";if(a>0){A+=e[0];for(let l=1;l0){let f=pi(r,s);qe(n,Zm,_2,[{names:s,values:f}],t)}let h=t[0],u=e.getGeometry();u&&(u=Vr(u,!0,h)),qe(n,Zm,_x,[u],t)}var y2=Z(W,["extrude","tessellate","altitudeMode","coordinates"]),B2=Z(W,{extrude:te(lo),tessellate:te(lo),altitudeMode:te(ni),coordinates:te(VD)});function bs(i,e,t){let n=e.getFlatCoordinates(),r={node:i};r.layout=e.getLayout(),r.stride=e.getStride();let o=e.getProperties();o.coordinates=n;let s=t[t.length-1].node,a=y2[s.namespaceURI],A=pi(o,a);qe(r,B2,ii,A,t,a)}var x2=Z(W,["color","fill","outline"]),rx=Z(W,{outerBoundaryIs:te(nx),innerBoundaryIs:te(nx)}),w2=ln("innerBoundaryIs"),Q2=ln("outerBoundaryIs");function xx(i,e,t){let n=e.getLinearRings(),r=n.shift(),o={node:i};qe(o,rx,w2,n,t),qe(o,rx,Q2,[r],t)}var S2=Z(W,{color:te(ph),fill:te(lo),outline:te(lo)});function R2(i,e,t){let n={node:i},r=e.getFill(),o=e.getStroke(),s={color:r?r.getColor():void 0,fill:r?void 0:!1,outline:o?void 0:!1},a=t[t.length-1].node,A=x2[a.namespaceURI],l=pi(s,A);qe(n,S2,ii,l,t,A)}function wx(i,e){Qr(i,Math.round(e*1e6)/1e6)}var T2=Z(W,["IconStyle","LabelStyle","LineStyle","PolyStyle"]),v2=Z(W,{IconStyle:te(s2),LabelStyle:te(l2),LineStyle:te(u2),PolyStyle:te(R2)});function D2(i,e,t){let n={node:i},r={};if(e.pointStyles.length){let A=e.pointStyles[0].getText();A&&(r.LabelStyle=A);let l=e.pointStyles[0].getImage();l&&typeof l.getSrc=="function"&&(r.IconStyle=l)}if(e.lineStyles.length){let A=e.lineStyles[0].getStroke();A&&(r.LineStyle=A)}if(e.polyStyles.length){let A=e.polyStyles[0].getStroke();A&&!r.LineStyle&&(r.LineStyle=A),r.PolyStyle=e.polyStyles[0]}let o=t[t.length-1].node,s=T2[o.namespaceURI],a=pi(r,s);qe(n,v2,ii,a,t,s)}function b2(i,e){i.setAttribute("x",String(e.x)),i.setAttribute("y",String(e.y)),i.setAttribute("xunits",e.xunits),i.setAttribute("yunits",e.yunits)}var Ap=rp;var Ih=class{constructor(){this._catalog=Object.assign(Object.assign(Object.assign(Object.assign({},JB),uC),PB),{GeoJSON:Ra,KML:Ap,View:yt})}moveTypeDefToTop(e){let t={};return Object.keys(e).sort().forEach(n=>t[n]=e[n]),console.log("sortedOptions",t),t}parseOptions(e){let t={};for(let n in e){let r=e[n];Array.isArray(r)&&typeof r[0]=="object"?(console.log("Parse items of array"),t[n]=r.map(o=>o["@@type"]?this.parse(o):this.parseOptions(o))):typeof r=="object"&&r["@@type"]!==void 0?t[n]=this.parse(r):n!=="@@type"&&n!=="@@geojson"&&(t[n]=r)}return t}parse(e){let t=this.parseOptions(e);return console.log("parsed options",t),console.log("type detected",e["@@type"]),new this._catalog[e["@@type"]](t)}};var F2=function(i,e){var t={};for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&e.indexOf(n)<0&&(t[n]=i[n]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(i);r`${n}: ${t[n]}`).join("
")}function Rx(i,e){Ve.id="ol-tooltip",i.getTargetElement().appendChild(Ve),console.log("tooltip element added",Ve);let t,n=function(r,o){let s=o.closest(".ol-control")?void 0:i.forEachFeatureAtPixel(r,function(a){return a});s?(Ve.style.left=r[0]+15+"px",Ve.style.top=r[1]+"px",s!==t&&(Ve.style.visibility="visible",Ve.innerHTML=L2(s,e))):Ve.style.visibility="hidden",t=s};i.on("pointermove",function(r){if(r.dragging){Ve.style.visibility="hidden",t=void 0;return}n(r.pixel,r.originalEvent.target)}),i.on("click",function(r){n(r.pixel,r.originalEvent.target)}),i.getTargetElement().addEventListener("pointerleave",function(){t=void 0,Ve.style.visibility="hidden"})}var Tx="@@type",M2="@@geojson",lp=new Ih;function k2(i){let e=lp.parse(i),t=e.getCenter();if(console.log("view center",t),t&&e.getProjection().getCode()!=="EPSG:4326"){let n=jp(t);console.log("view center transformed",n),e.setCenter(n)}return e}function P2(i){let e=lp.parse(i);return console.log("layerDef",i),e.set("id",i.id),N2(e,i.source[M2]),e}function N2(i,e){e&&(i.getSource().addFeatures(new Ra().readFeatures(e)),console.log("geojson features added",e))}var EA=class{constructor(e,t,n){this._metadata={layers:[],controls:[]},this._model=n;let r=k2(t.view),o=[],s=[];this._container=e,this._map=new Sa({target:e,view:r,controls:vl().extend(o),layers:s});for(let a of t.controls||[])this.addControl(a);for(let a of t.layers||[])this.addLayer(a)}getElement(){return this._container}getMap(){return this._map}getMetadata(){return this._metadata}setViewFromSource(e){let t=this.getLayer(e),n=t?.getSource(),r=n?.getView();r&&this._map.setView(r)}setExtentFromSource(){}getLayer(e){for(let t of this._map.getLayers().getArray())if(t.get("id")===e)return t}addLayer(e){let t=P2(e);this._map.addLayer(t),this._metadata.layers.push({id:t.get("id"),type:e[Tx]}),console.log("layer",t.get("id"),"added",this._metadata)}removeLayer(e){let t=this.getLayer(e);t&&(this._map.removeLayer(t),this._metadata.layers=this._metadata.layers.filter(n=>n.id!=e),console.log("layer",e,"removed",this._metadata))}setLayerStyle(e,t){let n=this.getLayer(e);n&&(console.log("set layer style",e,t),n.setStyle(t))}applyCallToLayer(e,t){console.log("run layer method",e),this.getLayer(e)[t.method](...t.args)}getControl(e){for(let t of this._map.getControls().getArray())if(t.get("id")===e)return t}addControl(e){let t=lp.parse(e);t.set("id",e.id),this._map.addControl(t),this._metadata.controls.push({id:t.get("id"),type:e[Tx]}),console.log("control",t.get("id"),"added",this._metadata)}removeControl(e){let t=this.getControl(e);t&&(this._map.removeControl(t),this._metadata.controls=this._metadata.controls.filter(n=>n.id!=e),console.log("control",e,"removed",this._metadata))}addOverlay(e){let t=document.createElement("div");t.style.cssText="",t.innerHTML="We are out here.";let n=new kl({element:t,position:e});this._map.addOverlay(n)}addTooltip(e){Rx(this._map,e)}};function G2({model:i,el:e}){function t(){i.set("map_metadata",a.getMetadata()),i.save_changes()}function n(){let c=l.getView(),h=Qx(c);i.set("map_view_state",h),i.save_changes()}console.log("Welcome to ol-anywidget",e);let r=i.get("height")||"400px";console.log("height",r);let o=document.createElement("div");o.id="ol-map-widget",o.style.height=r;let s=i.get("map_options");console.log("mapOptions",s);let a=window.anywidgetMapWidget=new EA(o,s,i);i.set("map_created",!0),i.save_changes();let A=i.get("calls");console.log("calls",A);for(let c of A)a[c.method](...c.args);t();let l=a.getMap();n(),l.on("moveend",c=>{n()}),i.on("msg:custom",c=>{console.log("thanx for your message",c);try{a[c.method](...c.args),t()}catch(h){console.log("error in anywidget msg call",h)}}),e.appendChild(o)}var Hj={render:G2};export{Hj as default}; +`;function PS(i,e,t,n){let r;return t&&t.length?r=t.shift():Xa?r=new OffscreenCanvas(i||300,e||300):r=document.createElement("canvas"),i&&(r.width=i),e&&(r.height=e),r.getContext("webgl",n)}function NS(i){let e=i.canvas;e.width=1,e.height=1,i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT|i.STENCIL_BUFFER_BIT)}var eC=[];function GS(i,e,t,n,r,o,s,a,l,A,c,h,u,f){let g=Math.round(n*e),p=Math.round(n*t);i.canvas.width=g,i.canvas.height=p;let d,I;if(I=i.createTexture(),i.bindTexture(i.TEXTURE_2D,I),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),u?(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR)):(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST)),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,g,p,0,i.RGBA,c,null),d=i.createFramebuffer(),i.bindFramebuffer(i.FRAMEBUFFER,d),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,I,0),d===null)throw new Error("Could not create framebuffer");if(I===null)throw new Error("Could not create texture");if(l.length===0)return{width:g,height:p,framebuffer:d,texture:I};let m=ot();l.forEach(function(B,R,v){ba(m,B.extent)});let C,_,y,w=1/r;if(!f||l.length!==1||A!==0){if(C=i.createTexture(),I===null)throw new Error("Could not create texture");_=Math.round(ue(m)*w),y=Math.round(qe(m)*w);let B=i.getParameter(i.MAX_TEXTURE_SIZE),R=Math.max(_,y),v=R>B?B/R:1,D=Math.round(_*v),Q=Math.round(y*v);i.bindTexture(i.TEXTURE_2D,C),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),u?(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR)):(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST)),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,D,Q,0,i.RGBA,c,null);let S=i.createFramebuffer();i.bindFramebuffer(i.FRAMEBUFFER,S),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,C,0);let b=new Fg(i);l.forEach(function(F,M,k){let P=(F.extent[0]-m[0])*w*v,U=-(F.extent[3]-m[3])*w*v,N=ue(F.extent)*w*v,j=qe(F.extent)*w*v;if(i.bindFramebuffer(i.FRAMEBUFFER,S),i.viewport(0,0,D,Q),F.clipExtent){let X=(F.clipExtent[0]-m[0])*w*v,z=-(F.clipExtent[3]-m[3])*w*v,q=ue(F.clipExtent)*w*v,Z=qe(F.clipExtent)*w*v;i.enable(i.SCISSOR_TEST),i.scissor(u?X:Math.round(X),u?z:Math.round(z),u?q:Math.round(X+q)-Math.round(X),u?Z:Math.round(z+Z)-Math.round(z))}b.drawImage(F.texture,F.width,F.height,A,A,F.width-2*A,F.height-2*A,u?P:Math.round(P),u?U:Math.round(U),u?N:Math.round(P+N)-Math.round(P),u?j:Math.round(U+j)-Math.round(U),D,Q),i.disable(i.SCISSOR_TEST)}),i.deleteFramebuffer(S)}else C=l[0].texture,_=l[0].width,y=l[0].width;let T=Pt(s),E=Pt(m),x=B=>{let R=(B[0][0]-T[0])/o*n,v=-(B[0][1]-T[1])/o*n,D=(B[1][0]-T[0])/o*n,Q=-(B[1][1]-T[1])/o*n,S=(B[2][0]-T[0])/o*n,b=-(B[2][1]-T[1])/o*n;return{u1:D,v1:Q,u0:R,v0:v,u2:S,v2:b}};i.bindFramebuffer(i.FRAMEBUFFER,d),i.viewport(0,0,g,p);{let B=[],R=[],v=Lg(i,Uk,Ok);i.useProgram(v);let D=i.getUniformLocation(v,"u_texture");i.bindTexture(i.TEXTURE_2D,C),i.uniform1i(D,0),a.getTriangles().forEach(function(P,U,N){let j=P.source,X=P.target,{u1:z,v1:q,u0:Z,v0:ge,u2:me,v2:de}=x(X),ve=(j[0][0]-E[0])/r/_,Ve=-(j[0][1]-E[1])/r/y,Me=(j[1][0]-E[0])/r/_,Se=-(j[1][1]-E[1])/r/y,Ae=(j[2][0]-E[0])/r/_,ri=-(j[2][1]-E[1])/r/y;B.push(z,q,Z,ge,me,de),R.push(Me,Se,ve,Ve,Ae,ri)});let Q=_c(0,g,p,0,-1,1),S=i.getUniformLocation(v,"u_matrix");i.uniformMatrix4fv(S,!1,Q);let b=i.getAttribLocation(v,"a_position"),F=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,F),i.bufferData(i.ARRAY_BUFFER,new Float32Array(B),i.STATIC_DRAW),i.vertexAttribPointer(b,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(b);let M=i.getAttribLocation(v,"a_texcoord"),k=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,k),i.bufferData(i.ARRAY_BUFFER,new Float32Array(R),i.STATIC_DRAW),i.vertexAttribPointer(M,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(M),i.drawArrays(i.TRIANGLES,0,B.length/2)}if(h){let B=Lg(i,Gk,Nk);i.useProgram(B);let R=_c(0,g,p,0,-1,1),v=i.getUniformLocation(B,"u_matrix");i.uniformMatrix4fv(v,!1,R);let D=Array.isArray(h)?h:[0,0,0,255],Q=i.getUniformLocation(B,"u_val");!0?i.uniform4fv(Q,D):i.uniform4iv(Q,D);let b=i.getAttribLocation(B,"a_position"),F=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,F),i.vertexAttribPointer(b,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(b);let M=a.getTriangles().reduce(function(k,P){let U=P.target,{u1:N,v1:j,u0:X,v0:z,u2:q,v2:Z}=x(U);return k.concat([N,j,X,z,X,z,q,Z,q,Z,N,j])},[]);i.bufferData(i.ARRAY_BUFFER,new Float32Array(M),i.STATIC_DRAW),i.drawArrays(i.LINES,0,M.length/2)}return{width:g,height:p,framebuffer:d,texture:I}}var tC=class extends Io{constructor(e){super({tileCoord:e.tileCoord,loader:()=>Promise.resolve(new Uint8ClampedArray(4)),interpolate:e.interpolate,transition:e.transition}),this.renderEdges_=e.renderEdges!==void 0?e.renderEdges:!1,this.pixelRatio_=e.pixelRatio,this.gutter_=e.gutter,this.reprojData_=null,this.reprojError_=null,this.reprojSize_=void 0,this.sourceTileGrid_=e.sourceTileGrid,this.targetTileGrid_=e.targetTileGrid,this.wrappedTileCoord_=e.wrappedTileCoord||e.tileCoord,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;let t=e.sourceProj,n=t.getExtent(),r=e.sourceTileGrid.getExtent();this.clipExtent_=t.canWrapX()?r?Ze(n,r):n:r;let o=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),s=this.targetTileGrid_.getExtent(),a=this.sourceTileGrid_.getExtent(),l=s?Ze(o,s):o;if(Jo(l)===0){this.state=V.EMPTY;return}n&&(a?a=Ze(a,n):a=n);let A=this.targetTileGrid_.getResolution(this.wrappedTileCoord_[0]),c=e.targetProj,h=nf(t,c,l,A);if(!isFinite(h)||h<=0){this.state=V.EMPTY;return}let u=e.errorThreshold!==void 0?e.errorThreshold:.5;if(this.triangulation_=new rf(t,c,l,a,h*u,A,e.transformMatrix),this.triangulation_.getTriangles().length===0){this.state=V.EMPTY;return}this.sourceZ_=this.sourceTileGrid_.getZForResolution(h);let f=this.triangulation_.calculateSourceExtent();if(a&&(t.canWrapX()?(f[1]=Ee(f[1],a[1],a[3]),f[3]=Ee(f[3],a[1],a[3])):f=Ze(f,a)),!Jo(f))this.state=V.EMPTY;else{let g=0,p=0;t.canWrapX()&&(g=ue(n),p=Math.floor((f[0]-n[0])/g)),La(f.slice(),t,!0).forEach(I=>{let m=this.sourceTileGrid_.getTileRangeForExtentAndZ(I,this.sourceZ_),C=e.getTileFunction;for(let _=m.minX;_<=m.maxX;_++)for(let y=m.minY;y<=m.maxY;y++){let w=C(this.sourceZ_,_,y,this.pixelRatio_);if(w){let T=p*g;this.sourceTiles_.push({tile:w,offset:T})}}++p}),this.sourceTiles_.length===0&&(this.state=V.EMPTY)}}getSize(){return this.reprojSize_}getData(){return this.reprojData_}getError(){return this.reprojError_}reproject_(){let e=[],t=!1;if(this.sourceTiles_.forEach(_=>{let y=_.tile;if(!y||y.getState()!==V.LOADED)return;let w=y.getSize(),T=this.gutter_,E,x=yc(y.getData());x?E=x:(t=!0,E=SB(Eo(y.getData())));let B=[w[0]+2*T,w[1]+2*T],R=E instanceof Float32Array,v=B[0]*B[1],D=R?Float32Array:Uint8ClampedArray,Q=new D(E.buffer),S=D.BYTES_PER_ELEMENT,b=S*Q.length/v,F=Q.byteLength/B[1],M=Math.floor(F/S/B[0]),k=this.sourceTileGrid_.getTileCoordExtent(y.tileCoord);k[0]+=_.offset,k[2]+=_.offset;let P=this.clipExtent_?.slice();P&&(P[0]+=_.offset,P[2]+=_.offset),e.push({extent:k,clipExtent:P,data:Q,dataType:D,bytesPerPixel:b,pixelSize:B,bandCount:M})}),this.sourceTiles_.length=0,e.length===0){this.state=V.ERROR,this.changed();return}let n=this.wrappedTileCoord_[0],r=this.targetTileGrid_.getTileSize(n),o=typeof r=="number"?r:r[0],s=typeof r=="number"?r:r[1],a=o*this.pixelRatio_,l=s*this.pixelRatio_,A=this.targetTileGrid_.getResolution(n),c=this.sourceTileGrid_.getResolution(this.sourceZ_),h=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),u=e[0].bandCount,f=new e[0].dataType(u*a*l),g=PS(a,l,eC,{premultipliedAlpha:!1,antialias:!1}),p,d=g.RGBA,I;e[0].dataType==Float32Array?(I=g.FLOAT,g.getExtension("WEBGL_color_buffer_float"),g.getExtension("OES_texture_float"),g.getExtension("EXT_float_blend"),p=g.getExtension("OES_texture_float_linear")!==null&&this.interpolate):(I=g.UNSIGNED_BYTE,p=this.interpolate);let m=4,C=Math.ceil(u/m);for(let _=C-1;_>=0;--_){let y=[];for(let D=0,Q=e.length;D{let n=t.getState();if(n!==V.IDLE&&n!==V.LOADING)return;e++;let r=ee(t,K.CHANGE,()=>{let o=t.getState();(o==V.LOADED||o==V.ERROR||o==V.EMPTY)&&(ce(r),e--,e===0&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(r)}),e===0?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:t}){t.getState()==V.IDLE&&t.load()})}unlistenSources_(){this.sourcesListenerKeys_.forEach(ce),this.sourcesListenerKeys_=null}},OS=tC;var iC=class extends Ff{constructor(e){let t=e.projection===void 0?"EPSG:3857":e.projection,n=e.tileGrid;n===void 0&&t&&(n=dr({extent:xn(t),maxResolution:e.maxResolution,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize})),super({cacheSize:.1,attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,projection:t,tileGrid:n,state:e.state,wrapX:e.wrapX,transition:e.transition,interpolate:e.interpolate,key:e.key,zDirection:e.zDirection}),this.gutter_=e.gutter!==void 0?e.gutter:0,this.tileSize_=e.tileSize?Fe(e.tileSize):null,this.tileSizes_=null,this.tileLoadingKeys_={},this.loader_=e.loader,this.handleTileChange_=this.handleTileChange_.bind(this),this.bandCount=e.bandCount===void 0?4:e.bandCount,this.tileGridForProjection_={},this.crossOrigin_=e.crossOrigin||"anonymous",this.transformMatrix=null}setTileSizes(e){this.tileSizes_=e}getTileSize(e){if(this.tileSizes_)return this.tileSizes_[e];if(this.tileSize_)return this.tileSize_;let t=this.getTileGrid();return t?Fe(t.getTileSize(e)):[256,256]}getGutterForProjection(e){let t=this.getProjection();return(!t||On(t,e))&&!this.transformMatrix?this.gutter_:0}setLoader(e){this.loader_=e}getReprojTile_(e,t,n,r,o){let s=this.tileGrid||this.getTileGridForProjection(o||r),a=Math.max.apply(null,s.getResolutions().map((f,g)=>{let p=Fe(s.getTileSize(g)),d=this.getTileSize(g);return Math.max(d[0]/p[0],d[1]/p[1])})),l=this.getTileGridForProjection(r),A=[e,t,n],c=this.getTileCoordForTileUrlFunction(A,r),h=Object.assign({sourceProj:o||r,sourceTileGrid:s,targetProj:r,targetTileGrid:l,tileCoord:A,wrappedTileCoord:c,pixelRatio:a,gutter:this.gutter_,getTileFunction:(f,g,p,d)=>this.getTile(f,g,p,d),transformMatrix:this.transformMatrix},this.tileOptions),u=new OS(h);return u.key=this.getKey(),u}getTile(e,t,n,r,o){let s=this.getProjection();if(o&&(s&&!On(s,o)||this.transformMatrix))return this.getReprojTile_(e,t,n,o,s);let a=this.getTileSize(e),l=this.loader_,A=new AbortController,c={signal:A.signal,crossOrigin:this.crossOrigin_},h=this.getTileCoordForTileUrlFunction([e,t,n]);if(!h)return null;let u=h[0],f=h[1],g=h[2],p=this.getTileGrid()?.getFullTileRange(u);p&&(c.maxY=p.getHeight()-1);function d(){return Sa(function(){return l(u,f,g,c)})}let I=Object.assign({tileCoord:[e,t,n],loader:d,size:a,controller:A},this.tileOptions),m=new Io(I);return m.key=this.getKey(),m.addEventListener(K.CHANGE,this.handleTileChange_),m}handleTileChange_(e){let t=e.target,n=W(t),r=t.getState(),o;r==V.LOADING?(this.tileLoadingKeys_[n]=!0,o=ys.TILELOADSTART):n in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[n],o=r==V.ERROR?ys.TILELOADERROR:r==V.LOADED?ys.TILELOADEND:void 0),o&&this.dispatchEvent(new Rl(o,t))}getTileGridForProjection(e){let t=this.getProjection();if(this.tileGrid&&(!t||On(t,e))&&!this.transformMatrix)return this.tileGrid;let n=W(e);return n in this.tileGridForProjection_||(this.tileGridForProjection_[n]=Tl(e)),this.tileGridForProjection_[n]}setTileGridForProjection(e,t){let n=fe(e);if(n){let r=W(n);r in this.tileGridForProjection_||(this.tileGridForProjection_[r]=t)}}},jl=iC;function zk(i){return((i.fileDirectory.NewSubfileType||0)&4)===4}function Yk(i,e){if(!i)return!1;if(i===!0)return!0;if(e.getSamplesPerPixel()!==3)return!1;let t=e.fileDirectory.PhotometricInterpretation,n=qf.photometricInterpretations;return t===n.CMYK||t===n.YCbCr||t===n.CIELab||t===n.ICCLab}var US="STATISTICS_MAXIMUM",zS="STATISTICS_MINIMUM",nC=256,rC;function Vk(){return rC||(rC=new YI),rC}function Hk(i){try{return i.getBoundingBox(!0)}catch{return[0,0,i.getWidth(),i.getHeight()]}}function qk(i){try{return i.getOrigin().slice(0,2)}catch{return[0,i.getHeight()]}}function Kk(i,e){try{return i.getResolution(e)}catch{return[e.getWidth()/i.getWidth(),e.getHeight()/i.getHeight()]}}function Xk(i){let e=i.geoKeys;if(!e)return null;if(e.ProjectedCSTypeGeoKey&&e.ProjectedCSTypeGeoKey!==32767){let t="EPSG:"+e.ProjectedCSTypeGeoKey,n=fe(t);if(!n){let r=zd(e.ProjLinearUnitsGeoKey);r&&(n=new Pn({code:t,units:r}))}return n}if(e.GeographicTypeGeoKey&&e.GeographicTypeGeoKey!==32767){let t="EPSG:"+e.GeographicTypeGeoKey,n=fe(t);if(!n){let r=zd(e.GeogAngularUnitsGeoKey);r&&(n=new Pn({code:t,units:r}))}return n}return null}function jk(i){return i.getImageCount().then(function(e){let t=new Array(e);for(let n=0;nt*i)throw new Error(n)}function Jk(i){return i instanceof Int8Array?-128:i instanceof Int16Array?-32768:i instanceof Int32Array?-2147483648:i instanceof Float32Array?12e-39:0}function $k(i){return i instanceof Int8Array?127:i instanceof Uint8Array||i instanceof Uint8ClampedArray?255:i instanceof Int16Array?32767:i instanceof Uint16Array?65535:i instanceof Int32Array?2147483647:i instanceof Uint32Array?4294967295:i instanceof Float32Array?34e37:255}var Mg=class extends jl{constructor(e){super({state:"loading",tileGrid:null,projection:e.projection||null,transition:e.transition,interpolate:e.interpolate!==!1,wrapX:e.wrapX}),this.sourceInfo_=e.sources;let t=this.sourceInfo_.length;this.sourceOptions_=e.sourceOptions,this.sourceImagery_=new Array(t),this.sourceMasks_=new Array(t),this.resolutionFactors_=new Array(t),this.samplesPerPixel_,this.nodataValues_,this.metadata_,this.normalize_=e.normalize!==!1,this.addAlpha_=!1,this.error_=null,this.convertToRGB_=e.convertToRGB||!1,this.setKey(this.sourceInfo_.map(o=>o.url).join(","));let n=this,r=new Array(t);for(let o=0;o=0;--n){let r=t[n],o=Xk(r);if(o){this.projection=o;break}}}determineTransformMatrix(e){let t=e[0];for(let n=t.length-1;n>=0;--n){let o=t[n].fileDirectory.ModelTransformation;if(o){let[s,a,l,A,c,h,u,f]=o,g=Un(Un([1/Math.sqrt(s*s+c*c),0,0,-1/Math.sqrt(a*a+h*h),A,f],[s,c,a,h,0,0]),[1,0,0,1,-A,-f]);this.transformMatrix=g,this.addAlpha_=!0;break}}}configure_(e){let t,n,r,o,s,a=new Array(e.length),l=new Array(e.length),A=new Array(e.length),c=0,h=e.length;for(let d=0;d{zk(x)?m.push(x):I.push(x)});let C=I.length;if(m.length>0&&m.length!==C)throw new Error(`Expected one mask per image found ${m.length} masks and ${C} images`);let _,y,w=new Array(C),T=new Array(C),E=new Array(C);l[d]=new Array(C),A[d]=new Array(C);for(let x=0;xE.length&&(c=s.length-E.length);let x=s[s.length-1]/E[E.length-1];this.resolutionFactors_[d]=x;let B=E.map(v=>v*=x),R=`Resolution mismatch for source ${d}, got [${B}] but expected [${s}]`;th(s.slice(c,s.length),B,.02,R,this.viewRejector)}r?th(r.slice(c,r.length),T,.01,`Tile size mismatch for source ${d}`,this.viewRejector):r=T,o?th(o.slice(c,o.length),w,0,`Tile size mismatch for source ${d}`,this.viewRejector):o=w,this.sourceImagery_[d]=I.reverse(),this.sourceMasks_[d]=m.reverse()}for(let d=0,I=this.sourceImagery_.length;dbe(d,m));p=Fa(t,I)}this.viewResolver({showFullExtent:!0,projection:this.projection,resolutions:s,center:Zi(pi(p),this.projection),extent:Ei(p,this.projection),zoom:g})}loadTile_(e,t,n,r){let o=this.getTileSize(e),s=this.sourceImagery_.length,a=new Array(s*2),l=this.nodataValues_,A=this.sourceInfo_,c=Vk();for(let h=0;h{let a=new Image;a.crossOrigin=r.crossOrigin??null,a.addEventListener("load",()=>o(a)),a.addEventListener("error",()=>s(Zk)),a.src=Qf(i,e,t,n,r.maxY)})}function VS(i){return function(e,t,n,r){let o=b1(i,e,t,n);return XS(o,e,t,n,r)}}function eP(i){return function(e,t,n,r){let o=i(e,t,n,r);return XS(o,e,t,n,r)}}function HS(i){let e;if(Array.isArray(i))e=VS(i);else if(typeof i=="string"){let t=bf(i);e=VS(t)}else if(typeof i=="function")e=eP(i);else throw new Error("The url option must be a single template, an array of templates, or a function for getting a URL");return e}var qS=0;function KS(i){return Array.isArray(i)?i.join(` +`):typeof i=="string"?i:(++qS,"url-function-key-"+qS)}var oC=class extends jl{constructor(e){e=e||{};let t=e.loader,n;e.url&&(t=HS(e.url),n=KS(e.url));let r=t?e.state:"loading",o=e.wrapX===void 0?!0:e.wrapX;super({loader:t,key:n,attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize,gutter:e.gutter,maxResolution:e.maxResolution,projection:e.projection,tileGrid:e.tileGrid,state:r,wrapX:o,transition:e.transition,interpolate:e.interpolate!==!1,crossOrigin:e.crossOrigin,zDirection:e.zDirection})}setUrl(e){let t=HS(e);this.setLoader(t),this.setKey(KS(e)),this.getState()!=="ready"&&this.setState("ready")}},jS=oC;function WS(i,e,t,n){let r=document.createElement("script"),o="olc_"+W(e);function s(){delete window[o],r.parentNode.removeChild(r)}r.async=!0,r.src=i+(i.includes("?")?"&":"?")+(n||"callback")+"="+o;let a=setTimeout(function(){s(),t&&t()},1e4);window[o]=function(l){clearTimeout(a),s(),e(l)},document.head.appendChild(r)}var sC=class extends Mf{constructor(e){if(super({attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,interpolate:e.interpolate,projection:fe("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:"loading",tileLoadFunction:e.tileLoadFunction,wrapX:e.wrapX!==void 0?e.wrapX:!0,transition:e.transition,zDirection:e.zDirection}),this.tileJSON_=null,this.tileSize_=e.tileSize,e.url)if(e.jsonp)WS(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{let t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",e.url),t.send()}else if(e.tileJSON)this.handleTileJSONResponse(e.tileJSON);else throw new Error("Either `url` or `tileJSON` options must be provided")}onXHRLoad_(e){let t=e.target;if(!t.status||t.status>=200&&t.status<300){let n;try{n=JSON.parse(t.responseText)}catch{this.handleTileJSONError();return}this.handleTileJSONResponse(n)}else this.handleTileJSONError()}onXHRError_(e){this.handleTileJSONError()}getTileJSON(){return this.tileJSON_}handleTileJSONResponse(e){let t=fe("EPSG:4326"),n=this.getProjection(),r;if(e.bounds!==void 0){let A=$i(t,n);r=Fa(e.bounds,A)}let o=xn(n),s=e.minzoom||0,a=e.maxzoom||22,l=dr({extent:o,maxZoom:a,minZoom:s,tileSize:this.tileSize_});if(this.tileGrid=l,this.tileUrlFunction=Df(e.tiles,l),e.attribution&&!this.getAttributions()){let A=r!==void 0?r:o;this.setAttributions(function(c){return Qe(A,c.extent)?[e.attribution]:null})}this.tileJSON_=e,this.setState("ready")}handleTileJSONError(){this.setState("error")}},JS=sC;var Wl="http://www.w3.org/2001/XMLSchema-instance";function bo(i,e){return da().createElementNS(i,e)}function vn(i,e){return $S(i,e,[]).join("")}function $S(i,e,t){if(i.nodeType==Node.CDATA_SECTION_NODE||i.nodeType==Node.TEXT_NODE)e?t.push(String(i.nodeValue).replace(/(\r\n|\r|\n)/g,"")):t.push(i.nodeValue);else{let n;for(n=i.firstChild;n;n=n.nextSibling)$S(n,e,t)}return t}function Jn(i){return"documentElement"in i}function $n(i){return new DOMParser().parseFromString(i,"application/xml")}function AC(i,e){return function(t,n){let r=i.call(e??this,t,n);if(r!==void 0){let o=n[n.length-1];Te(o,r)}}}function Sn(i,e){return function(t,n){let r=i.call(e??this,t,n);r!==void 0&&n[n.length-1].push(r)}}function kg(i,e){return function(t,n){let r=i.call(e??this,t,n);r!==void 0&&(n[n.length-1]=r)}}function H(i,e,t){return function(n,r){let o=i.call(t??this,n,r);if(o!==void 0){let s=r[r.length-1],a=e!==void 0?e:n.localName;s[a]=o}}}function J(i,e){return function(t,n,r){i.call(e??this,t,n,r),r[r.length-1].node.appendChild(t)}}function cC(i,e){let t,n;return function(r,o,s){if(t===void 0){t={};let a={};a[r.localName]=i,t[r.namespaceURI]=a,n=Tn(r.localName)}ZS(t,n,o,s)}}function Tn(i,e){return function(t,n,r){let s=n[n.length-1].node,a=i;a===void 0&&(a=r);let l=e!==void 0?e:s.namespaceURI;return bo(l,a)}}var ti=Tn();function vi(i,e){let t=e.length,n=new Array(t);for(let r=0;r0?n[0]:null}readFeatureFromNode(e,t){return null}readFeatures(e,t){if(!e)return[];if(typeof e=="string"){let n=$n(e);return this.readFeaturesFromDocument(n,t)}return Jn(e)?this.readFeaturesFromDocument(e,t):this.readFeaturesFromNode(e,t)}readFeaturesFromDocument(e,t){let n=[];for(let r=e.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&Te(n,this.readFeaturesFromNode(r,t));return n}readFeaturesFromNode(e,t){return ne()}readGeometry(e,t){if(!e)return null;if(typeof e=="string"){let n=$n(e);return this.readGeometryFromDocument(n,t)}return Jn(e)?this.readGeometryFromDocument(e,t):this.readGeometryFromNode(e,t)}readGeometryFromDocument(e,t){return null}readGeometryFromNode(e,t){return null}readProjection(e){if(!e)return null;if(typeof e=="string"){let t=$n(e);return this.readProjectionFromDocument(t)}return Jn(e)?this.readProjectionFromDocument(e):this.readProjectionFromNode(e)}readProjectionFromDocument(e){return this.dataProjection}readProjectionFromNode(e){return this.dataProjection}writeFeature(e,t){let n=this.writeFeatureNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeFeatureNode(e,t){return null}writeFeatures(e,t){let n=this.writeFeaturesNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeFeaturesNode(e,t){return null}writeGeometry(e,t){let n=this.writeGeometryNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeGeometryNode(e,t){return null}},Pg=hC;function Do(i){let e=vn(i,!1);return tP(e)}function tP(i){let e=/^\s*(true|1)|(false|0)\s*$/.exec(i);if(e)return e[1]!==void 0||!1}function ih(i){let e=vn(i,!1),t=Date.parse(e);return isNaN(t)?void 0:t/1e3}function Ue(i){let e=vn(i,!1);return iP(e)}function iP(i){let e=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*$/i.exec(i);if(e)return parseFloat(e[1])}function Jl(i){let e=vn(i,!1);return nP(e)}function nP(i){let e=/^\s*(\d+)\s*$/.exec(i);if(e)return parseInt(e[1],10)}function Be(i){return vn(i,!1).trim()}function pa(i,e){Ye(i,e?"1":"0")}function rP(i,e){i.appendChild(da().createCDATASection(e))}function tT(i,e){let t=new Date(e*1e3),n=t.getUTCFullYear()+"-"+Ma(t.getUTCMonth()+1,2)+"-"+Ma(t.getUTCDate(),2)+"T"+Ma(t.getUTCHours(),2)+":"+Ma(t.getUTCMinutes(),2)+":"+Ma(t.getUTCSeconds(),2)+"Z";i.appendChild(da().createTextNode(n))}function Si(i,e){let t=e.toPrecision();i.appendChild(da().createTextNode(t))}function nh(i,e){let t=e.toString();i.appendChild(da().createTextNode(t))}var oP=/^\s/,sP=/\s$/,aP=/(\n|\t|\r|<|&| {2})/;function Ye(i,e){typeof e=="string"&&(oP.test(e)||sP.test(e)||aP.test(e))?e.split("]]>").forEach((t,n,r)=>{n0&&(t=">"+t),rP(i,t)}):i.appendChild(da().createTextNode(e))}var ft=[null,"http://www.topografix.com/GPX/1/0","http://www.topografix.com/GPX/1/1"],lP="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd",AP={rte:iT,trk:nT,wpt:rT},cP=$(ft,{rte:Sn(iT),trk:Sn(nT),wpt:Sn(rT)}),hP=$(ft,{text:H(Be,"linkText"),type:H(Be,"linkType")}),uP=$(ft,{name:H(Be),email:NP,link:rh}),fP=$(ft,{name:H(Be),desc:H(Be),author:H(MP),copyright:H(kP),link:rh,time:H(ih),keywords:H(Be),bounds:PP,extensions:Ng}),gP=$(ft,{year:H(Jl),license:H(Be)}),dP=$(ft,{rte:J(zP),trk:J(YP),wpt:J(HP)}),uC=class extends Pg{constructor(e){super(),e=e||{},this.dataProjection=fe("EPSG:4326"),this.readExtensions_=e.readExtensions}handleReadExtensions_(e){e||(e=[]);for(let t=0,n=e.length;t1?s.Document=e:e.length==1&&(s.Placemark=e[0]);let a=iN[n.namespaceURI],l=vi(s,a);return it(o,nN,ti,l,[t],a,this),n}};function sN(i,e){let t=[0,0],n="start",r=i.getImage();if(r){let a=r.getSize();if(a&&a.length==2){let l=r.getScaleArray(),A=r.getAnchor();t[0]=l[0]*(a[0]-A[0]),t[1]=l[1]*(a[1]/2-A[1]),n="left"}}let o=i.getText();return o?(o=o.clone(),o.setFont(o.getFont()||ma.getFont()),o.setScale(o.getScale()||ma.getScale()),o.setFill(o.getFill()||ma.getFill()),o.setStroke(o.getStroke()||BC)):o=ma.clone(),o.setText(e),o.setOffsetX(t[0]),o.setOffsetY(t[1]),o.setTextAlign(n),new ci({image:r,text:o})}function aN(i,e,t,n,r){return function(o,s){let a=r,l="",A=[];if(a){let h=o.getGeometry();if(h)if(h instanceof Pi)A=h.getGeometriesArrayRecursive().filter(function(u){let f=u.getType();return f==="Point"||f==="MultiPoint"}),a=A.length>0;else{let u=h.getType();a=u==="Point"||u==="MultiPoint"}}a&&(l=o.get("name"),a=a&&!!l,a&&/&[^&]+;/.test(l)&&(Og||(Og=document.createElement("textarea")),Og.innerHTML=l,l=Og.value));let c=t;if(i?c=i:e&&(c=fT(e,t,n)),a){let h=sN(c[0],l);if(A.length>0){h.setGeometry(new Pi(A));let u=new ci({geometry:c[0].getGeometry(),image:null,fill:c[0].getFill(),stroke:c[0].getStroke(),text:null});return[h,u].concat(c.slice(1))}return h}return c}}function fT(i,e,t){return Array.isArray(i)?i:typeof i=="string"?fT(t[i],e,t):e}function Hg(i){let e=vn(i,!1),t=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(t){let n=t[1];return[parseInt(n.substr(6,2),16),parseInt(n.substr(4,2),16),parseInt(n.substr(2,2),16),parseInt(n.substr(0,2),16)/255]}}function gT(i){let e=vn(i,!1),t=[];e=e.replace(/\s*,\s*/g,",");let n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?),([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|,|$)(?:([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|$))?\s*/i,r;for(;r=n.exec(e);){let o=parseFloat(r[1]),s=parseFloat(r[2]),a=r[3]?parseFloat(r[3]):0;t.push(o,s,a),e=e.substr(r[0].length)}if(e==="")return t}function dT(i){let e=vn(i,!1).trim(),t=i.baseURI;return(!t||t=="about:blank")&&(t=window.location.href),t?new URL(e,t).href:e}function pT(i){let e=vn(i,!1).trim().replace(/^(?!.*#)/,"#"),t=i.baseURI;return(!t||t=="about:blank")&&(t=window.location.href),t?new URL(e,t).href:e}function lN(i){let e=i.getAttribute("xunits"),t=i.getAttribute("yunits"),n;return e!=="insetPixels"?t!=="insetPixels"?n="bottom-left":n="top-left":t!=="insetPixels"?n="bottom-right":n="top-right",{x:parseFloat(i.getAttribute("x")),xunits:sT[e],y:parseFloat(i.getAttribute("y")),yunits:sT[t],origin:n}}function mT(i){return Ue(i)}var AN=$(oe,{Pair:FN});function ET(i,e){return Le(void 0,AN,i,e,this)}var cN=$(oe,{Icon:H(BN),color:H(Hg),heading:H(Ue),hotSpot:H(lN),scale:H(mT)});function hN(i,e){let t=Le({},cN,i,e);if(!t)return;let n=e[e.length-1],r="Icon"in t?t.Icon:{},o=!("Icon"in t)||Object.keys(r).length>0,s,a=r.href;a?s=a:o&&(s=Yg);let l,A,c,h="bottom-left",u=t.hotSpot;u?(l=[u.x,u.y],A=u.xunits,c=u.yunits,h=u.origin):/^https?:\/\/maps\.(?:google|gstatic)\.com\//.test(s)&&(s.includes("pushpin")?(l=yC,A=ah,c=lh):s.includes("arrow-reverse")?(l=[54,42],A=ah,c=lh):s.includes("paddle")&&(l=[32,1],A=ah,c=lh));let f,g=r.x,p=r.y;g!==void 0&&p!==void 0&&(f=[g,p]);let d,I=r.w,m=r.h;I!==void 0&&m!==void 0&&(d=[I,m]);let C,_=t.heading;_!==void 0&&(C=Cn(_));let y=t.scale,w=t.color;if(o){s==Yg&&(d=Ah);let T=new Qr({anchor:l,anchorOrigin:h,anchorXUnits:A,anchorYUnits:c,crossOrigin:this.crossOrigin_,offset:f,offsetOrigin:"bottom-left",rotation:C,scale:y,size:d,src:this.iconUrlFunction_(s),color:w}),E=T.getScaleArray()[0],x=T.getSize();if(x===null){let B=T.getImageState();if(B===ie.IDLE||B===ie.LOADING){let R=function(){let v=T.getImageState();if(!(v===ie.IDLE||v===ie.LOADING)){let D=T.getSize();if(D&&D.length==2){let Q=Vg(D);T.setScale(E*Q)}T.unlistenImageChange(R)}};T.listenImageChange(R),B===ie.IDLE&&T.load()}}else if(x.length==2){let B=Vg(x);T.setScale(E*B)}n.imageStyle=T}else n.imageStyle=SC}var uN=$(oe,{color:H(Hg),scale:H(mT)});function fN(i,e){let t=Le({},uN,i,e);if(!t)return;let n=e[e.length-1],r=new js({fill:new Ai({color:"color"in t?t.color:$l}),scale:t.scale});n.textStyle=r}var gN=$(oe,{color:H(Hg),width:H(Ue)});function dN(i,e){let t=Le({},gN,i,e);if(!t)return;let n=e[e.length-1],r=new _i({color:"color"in t?t.color:$l,width:"width"in t?t.width:1});n.strokeStyle=r}var pN=$(oe,{color:H(Hg),fill:H(Do),outline:H(Do)});function mN(i,e){let t=Le({},pN,i,e);if(!t)return;let n=e[e.length-1],r=new Ai({color:"color"in t?t.color:$l});n.fillStyle=r;let o=t.fill;o!==void 0&&(n.fill=o);let s=t.outline;s!==void 0&&(n.outline=s)}var EN=$(oe,{coordinates:kg(gT)});function IT(i,e){return Le(null,EN,i,e)}function IN(i,e){let n=e[e.length-1].coordinates,r=vn(i,!1),s=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(r);if(s){let a=parseFloat(s[1]),l=parseFloat(s[2]),A=parseFloat(s[3]);n.push([a,l,A])}else n.push([])}var CN=$(Fo,{Track:Sn(CT)});function yN(i,e){let t=Le([],CN,i,e);if(t)return new Zt(t)}var _N=$(oe,{when:KN},$(Fo,{coord:IN}));function CT(i,e){let t=Le({coordinates:[],whens:[]},_N,i,e);if(!t)return;let n=[],r=t.coordinates,o=t.whens;for(let s=0,a=Math.min(r.length,o.length);s0&&e[e.length-1].push(...t)}var VN=$(oe,{LinearRing:kg(IT)});function HN(i,e){let t=Le(void 0,VN,i,e);if(t){let n=e[e.length-1];n[0]=t}}function qN(i,e){Vr(eN,i,e)}function KN(i,e){let n=e[e.length-1].whens,r=vn(i,!1),o=Date.parse(r);n.push(isNaN(o)?0:o)}function Kg(i,e){let t=Nt(e),r=[(t.length==4?t[3]:1)*255,t[2],t[1],t[0]];for(let o=0;o<4;++o){let s=Math.floor(r[o]).toString(16);r[o]=s.length==1?"0"+s:s}Ye(i,r.join(""))}function XN(i,e,t){let n=t[t.length-1],r=n.layout,o=n.stride,s;if(r=="XY"||r=="XYM")s=2;else if(r=="XYZ"||r=="XYZM")s=3;else throw new Error("Invalid geometry layout");let a=e.length,l="";if(a>0){l+=e[0];for(let A=1;A0){let f=vi(r,s);it(n,CC,_G,[{names:s,values:f}],t)}let h=t[0],u=e.getGeometry();u&&(u=Ot(u,!0,h)),it(n,CC,TT,[u],t)}var xG=$(oe,["extrude","tessellate","altitudeMode","coordinates"]),BG=$(oe,{extrude:J(pa),tessellate:J(pa),altitudeMode:J(Ye),coordinates:J(XN)});function Zl(i,e,t){let n=e.getFlatCoordinates(),r={node:i};r.layout=e.getLayout(),r.stride=e.getStride();let o=e.getProperties();o.coordinates=n;let s=t[t.length-1].node,a=xG[s.namespaceURI],l=vi(o,a);it(r,BG,ti,l,t,a)}var wG=$(oe,["color","fill","outline"]),hT=$(oe,{outerBoundaryIs:J(cT),innerBoundaryIs:J(cT)}),vG=Tn("innerBoundaryIs"),SG=Tn("outerBoundaryIs");function bT(i,e,t){let n=e.getLinearRings(),r=n.shift(),o={node:i};it(o,hT,vG,n,t),it(o,hT,SG,[r],t)}var TG=$(oe,{color:J(Kg),fill:J(pa),outline:J(pa)});function RG(i,e,t){let n={node:i},r=e.getFill(),o=e.getStroke(),s={color:r?r.getColor():void 0,fill:r?void 0:!1,outline:o?void 0:!1},a=t[t.length-1].node,l=wG[a.namespaceURI],A=vi(s,l);it(n,TG,ti,A,t,l)}function DT(i,e){Si(i,Math.round(e*1e6)/1e6)}var QG=$(oe,["IconStyle","LabelStyle","LineStyle","PolyStyle"]),bG=$(oe,{IconStyle:J(aG),LabelStyle:J(cG),LineStyle:J(fG),PolyStyle:J(RG)});function DG(i,e,t){let n={node:i},r={};if(e.pointStyles.length){let l=e.pointStyles[0].getText();l&&(r.LabelStyle=l);let A=e.pointStyles[0].getImage();A&&typeof A.getSrc=="function"&&(r.IconStyle=A)}if(e.lineStyles.length){let l=e.lineStyles[0].getStroke();l&&(r.LineStyle=l)}if(e.polyStyles.length){let l=e.polyStyles[0].getStroke();l&&!r.LineStyle&&(r.LineStyle=l),r.PolyStyle=e.polyStyles[0]}let o=t[t.length-1].node,s=QG[o.namespaceURI],a=vi(r,s);it(n,bG,ti,a,t,s)}function FG(i,e){i.setAttribute("x",String(e.x)),i.setAttribute("y",String(e.y)),i.setAttribute("xunits",e.xunits),i.setAttribute("yunits",e.yunits)}var ch=vC;var FT=23283064365386963e-26,LG=12,LT=typeof TextDecoder>"u"?null:new TextDecoder("utf-8"),QC=0,Xg=1,hh=2,jg=5,uh=class{constructor(e=new Uint8Array(16)){this.buf=ArrayBuffer.isView(e)?e:new Uint8Array(e),this.dataView=new DataView(this.buf.buffer),this.pos=0,this.type=0,this.length=this.buf.length}readFields(e,t,n=this.length){for(;this.pos>3,s=this.pos;this.type=r&7,e(o,t,this),this.pos===s&&this.skip(r)}return t}readMessage(e,t){return this.readFields(e,t,this.readVarint()+this.pos)}readFixed32(){let e=this.dataView.getUint32(this.pos,!0);return this.pos+=4,e}readSFixed32(){let e=this.dataView.getInt32(this.pos,!0);return this.pos+=4,e}readFixed64(){let e=this.dataView.getUint32(this.pos,!0)+this.dataView.getUint32(this.pos+4,!0)*4294967296;return this.pos+=8,e}readSFixed64(){let e=this.dataView.getUint32(this.pos,!0)+this.dataView.getInt32(this.pos+4,!0)*4294967296;return this.pos+=8,e}readFloat(){let e=this.dataView.getFloat32(this.pos,!0);return this.pos+=4,e}readDouble(){let e=this.dataView.getFloat64(this.pos,!0);return this.pos+=8,e}readVarint(e){let t=this.buf,n,r;return r=t[this.pos++],n=r&127,r<128||(r=t[this.pos++],n|=(r&127)<<7,r<128)||(r=t[this.pos++],n|=(r&127)<<14,r<128)||(r=t[this.pos++],n|=(r&127)<<21,r<128)?n:(r=t[this.pos],n|=(r&15)<<28,MG(n,e,this))}readVarint64(){return this.readVarint(!0)}readSVarint(){let e=this.readVarint();return e%2===1?(e+1)/-2:e/2}readBoolean(){return!!this.readVarint()}readString(){let e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=LG&<?LT.decode(this.buf.subarray(t,e)):XG(this.buf,t,e)}readBytes(){let e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t}readPackedVarint(e=[],t){let n=this.readPackedEnd();for(;this.pos127;);else if(t===hh)this.pos=this.readVarint()+this.pos;else if(t===jg)this.pos+=4;else if(t===Xg)this.pos+=8;else throw new Error(`Unimplemented type: ${t}`)}writeTag(e,t){this.writeVarint(e<<3|t)}realloc(e){let t=this.length||16;for(;t268435455||e<0){kG(e,this);return}this.realloc(4),this.buf[this.pos++]=e&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=e>>>7&127)))}writeSVarint(e){this.writeVarint(e<0?-e*2-1:e*2)}writeBoolean(e){this.writeVarint(+e)}writeString(e){e=String(e),this.realloc(e.length*4),this.pos++;let t=this.pos;this.pos=jG(this.buf,e,this.pos);let n=this.pos-t;n>=128&&MT(t,n,this),this.pos=t-1,this.writeVarint(n),this.pos+=n}writeFloat(e){this.realloc(4),this.dataView.setFloat32(this.pos,e,!0),this.pos+=4}writeDouble(e){this.realloc(8),this.dataView.setFloat64(this.pos,e,!0),this.pos+=8}writeBytes(e){let t=e.length;this.writeVarint(t),this.realloc(t);for(let n=0;n=128&&MT(n,r,this),this.pos=n-1,this.writeVarint(r),this.pos+=r}writeMessage(e,t,n){this.writeTag(e,hh),this.writeRawMessage(t,n)}writePackedVarint(e,t){t.length&&this.writeMessage(e,GG,t)}writePackedSVarint(e,t){t.length&&this.writeMessage(e,OG,t)}writePackedBoolean(e,t){t.length&&this.writeMessage(e,YG,t)}writePackedFloat(e,t){t.length&&this.writeMessage(e,UG,t)}writePackedDouble(e,t){t.length&&this.writeMessage(e,zG,t)}writePackedFixed32(e,t){t.length&&this.writeMessage(e,VG,t)}writePackedSFixed32(e,t){t.length&&this.writeMessage(e,HG,t)}writePackedFixed64(e,t){t.length&&this.writeMessage(e,qG,t)}writePackedSFixed64(e,t){t.length&&this.writeMessage(e,KG,t)}writeBytesField(e,t){this.writeTag(e,hh),this.writeBytes(t)}writeFixed32Field(e,t){this.writeTag(e,jg),this.writeFixed32(t)}writeSFixed32Field(e,t){this.writeTag(e,jg),this.writeSFixed32(t)}writeFixed64Field(e,t){this.writeTag(e,Xg),this.writeFixed64(t)}writeSFixed64Field(e,t){this.writeTag(e,Xg),this.writeSFixed64(t)}writeVarintField(e,t){this.writeTag(e,QC),this.writeVarint(t)}writeSVarintField(e,t){this.writeTag(e,QC),this.writeSVarint(t)}writeStringField(e,t){this.writeTag(e,hh),this.writeString(t)}writeFloatField(e,t){this.writeTag(e,jg),this.writeFloat(t)}writeDoubleField(e,t){this.writeTag(e,Xg),this.writeDouble(t)}writeBooleanField(e,t){this.writeVarintField(e,+t)}};function MG(i,e,t){let n=t.buf,r,o;if(o=n[t.pos++],r=(o&112)>>4,o<128||(o=n[t.pos++],r|=(o&127)<<3,o<128)||(o=n[t.pos++],r|=(o&127)<<10,o<128)||(o=n[t.pos++],r|=(o&127)<<17,o<128)||(o=n[t.pos++],r|=(o&127)<<24,o<128)||(o=n[t.pos++],r|=(o&1)<<31,o<128))return eA(i,r,e);throw new Error("Expected varint not more than 10 bytes")}function eA(i,e,t){return t?e*4294967296+(i>>>0):(e>>>0)*4294967296+(i>>>0)}function kG(i,e){let t,n;if(i>=0?(t=i%4294967296|0,n=i/4294967296|0):(t=~(-i%4294967296),n=~(-i/4294967296),t^4294967295?t=t+1|0:(t=0,n=n+1|0)),i>=18446744073709552e3||i<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),PG(t,n,e),NG(n,e)}function PG(i,e,t){t.buf[t.pos++]=i&127|128,i>>>=7,t.buf[t.pos++]=i&127|128,i>>>=7,t.buf[t.pos++]=i&127|128,i>>>=7,t.buf[t.pos++]=i&127|128,i>>>=7,t.buf[t.pos]=i&127}function NG(i,e){let t=(i&7)<<4;e.buf[e.pos++]|=t|((i>>>=3)?128:0),i&&(e.buf[e.pos++]=i&127|((i>>>=7)?128:0),i&&(e.buf[e.pos++]=i&127|((i>>>=7)?128:0),i&&(e.buf[e.pos++]=i&127|((i>>>=7)?128:0),i&&(e.buf[e.pos++]=i&127|((i>>>=7)?128:0),i&&(e.buf[e.pos++]=i&127)))))}function MT(i,e,t){let n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(Math.LN2*7));t.realloc(n);for(let r=t.pos-1;r>=i;r--)t.buf[r+n]=t.buf[r]}function GG(i,e){for(let t=0;t239?4:o>223?3:o>191?2:1;if(r+a>t)break;let l,A,c;a===1?o<128&&(s=o):a===2?(l=i[r+1],(l&192)===128&&(s=(o&31)<<6|l&63,s<=127&&(s=null))):a===3?(l=i[r+1],A=i[r+2],(l&192)===128&&(A&192)===128&&(s=(o&15)<<12|(l&63)<<6|A&63,(s<=2047||s>=55296&&s<=57343)&&(s=null))):a===4&&(l=i[r+1],A=i[r+2],c=i[r+3],(l&192)===128&&(A&192)===128&&(c&192)===128&&(s=(o&15)<<18|(l&63)<<12|(A&63)<<6|c&63,(s<=65535||s>=1114112)&&(s=null))),s===null?(s=65533,a=1):s>65535&&(s-=65536,n+=String.fromCharCode(s>>>10&1023|55296),s=56320|s&1023),n+=String.fromCharCode(s),r+=a}return n}function jG(i,e,t){for(let n=0,r,o;n55295&&r<57344)if(o)if(r<56320){i[t++]=239,i[t++]=191,i[t++]=189,o=r;continue}else r=o-55296<<10|r-56320|65536,o=null;else{r>56319||n+1===e.length?(i[t++]=239,i[t++]=191,i[t++]=189):o=r;continue}else o&&(i[t++]=239,i[t++]=191,i[t++]=189,o=null);r<128?i[t++]=r:(r<2048?i[t++]=r>>6|192:(r<65536?i[t++]=r>>12|224:(i[t++]=r>>18|240,i[t++]=r>>12&63|128),i[t++]=r>>6&63|128),i[t++]=r&63|128)}return t}var bC=class extends Es{constructor(e){super(),e=e||{},this.dataProjection=new Pn({code:"",units:"tile-pixels"}),this.featureClass=e.featureClass?e.featureClass:yi,this.geometryName_=e.geometryName,this.layerName_=e.layerName?e.layerName:"layer",this.layers_=e.layers?e.layers:null,this.idProperty_=e.idProperty,this.supportedMediaTypes=["application/vnd.mapbox-vector-tile","application/x-protobuf"]}readRawGeometry_(e,t,n,r){e.pos=t.geometry;let o=e.readVarint()+e.pos,s=1,a=0,l=0,A=0,c=0,h=0;for(;e.pos>3}if(a--,s===1||s===2)l+=e.readSVarint(),A+=e.readSVarint(),s===1&&c>h&&(r.push(c),h=c),n.push(l,A),c+=2;else if(s===7)c>h&&(n.push(n[h],n[h+1]),c+=2);else throw new Error("Invalid command found in the PBF")}c>h&&(r.push(c),h=c)}createFeature_(e,t,n){let r=t.type;if(r===0)return null;let o,s=t.properties,a;this.idProperty_?(a=s[this.idProperty_],delete s[this.idProperty_]):a=t.id,s[this.layerName_]=t.layer.name;let l=[],A=[];this.readRawGeometry_(e,t,l,A);let c=e3(r,A.length);if(this.featureClass===yi)o=new this.featureClass(c,l,A,2,s,a),o.transform(n.dataProjection);else{let h;if(c=="Polygon"){let g=Ha(l,A);h=g.length>1?new Ni(l,"XY",g):new Dt(l,"XY",A)}else h=c==="Point"?new at(l,"XY"):c==="LineString"?new ht(l,"XY"):c==="MultiPoint"?new yn(l,"XY"):c==="MultiLineString"?new Zt(l,"XY",A):null;let u=this.featureClass;o=new u,this.geometryName_&&o.setGeometryName(this.geometryName_);let f=Ot(h,!1,n);o.setGeometry(f),a!==void 0&&o.setId(a),o.setProperties(s,!0)}return o}getType(){return"arraybuffer"}readFeatures(e,t){let n=this.layers_;t=this.adaptOptions(t);let r=fe(t.dataProjection);r.setWorldExtent(t.extent),t.dataProjection=r;let o=new uh(e),s=o.readFields(WG,{}),a=[];for(let l in s){if(n&&!n.includes(l))continue;let A=s[l],c=A?[0,0,A.extent,A.extent]:null;r.setExtent(c);for(let h=0,u=A.length;h>3,n=i===1?t.readString():i===2?t.readFloat():i===3?t.readDouble():i===4?t.readVarint64():i===5?t.readVarint():i===6?t.readSVarint():i===7?t.readBoolean():null;e.values.push(n)}}function $G(i,e,t){if(i==1)e.id=t.readVarint();else if(i==2){let n=t.readVarint()+t.pos;for(;t.pos0&&t.pop(),n>=0){let s=e[n];for(let a=0,l=s.length;a=0;--a)t.push(s[a].slice(0))}return t}function i3(i,e,t){let n=i.coordinates;return e&&t&&FC(n,e,t),new at(n)}function n3(i,e,t){let n=i.coordinates;if(e&&t)for(let r=0,o=n.length;r>1|($e&21845)<<1,Lo=(Lo&52428)>>2|(Lo&13107)<<2,Lo=(Lo&61680)>>4|(Lo&3855)<<4,kC[$e]=((Lo&65280)>>8|(Lo&255)<<8)>>1;var Lo,$e,dh=function(i,e,t){for(var n=i.length,r=0,o=new tA(e);r>l]=A}else for(a=new tA(n),r=0;r>15-i[r]);return a},ph=new Qn(288);for($e=0;$e<144;++$e)ph[$e]=8;var $e;for($e=144;$e<256;++$e)ph[$e]=9;var $e;for($e=256;$e<280;++$e)ph[$e]=7;var $e;for($e=280;$e<288;++$e)ph[$e]=8;var $e,YT=new Qn(32);for($e=0;$e<32;++$e)YT[$e]=5;var $e;var d3=dh(ph,9,1);var p3=dh(YT,5,1),LC=function(i){for(var e=i[0],t=1;te&&(e=i[t]);return e},mr=function(i,e,t){var n=e/8|0;return(i[n]|i[n+1]<<8)>>(e&7)&t},MC=function(i,e){var t=e/8|0;return(i[t]|i[t+1]<<8|i[t+2]<<16)>>(e&7)},m3=function(i){return(i+7)/8|0},E3=function(i,e,t){return(e==null||e<0)&&(e=0),(t==null||t>i.length)&&(t=i.length),new Qn(i.subarray(e,t))};var I3=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Rn=function(i,e,t){var n=new Error(e||I3[i]);if(n.code=i,Error.captureStackTrace&&Error.captureStackTrace(n,Rn),!t)throw n;return n},PC=function(i,e,t,n){var r=i.length,o=n?n.length:0;if(!r||e.f&&!e.l)return t||new Qn(0);var s=!t,a=s||e.i!=2,l=e.i;s&&(t=new Qn(r*3));var A=function(ve){var Ve=t.length;if(ve>Ve){var Me=new Qn(Math.max(Ve*2,ve));Me.set(t),t=Me}},c=e.f||0,h=e.p||0,u=e.b||0,f=e.l,g=e.d,p=e.m,d=e.n,I=r*8;do{if(!f){c=mr(i,h,1);var m=mr(i,h+1,3);if(h+=3,m)if(m==1)f=d3,g=p3,p=9,d=5;else if(m==2){var w=mr(i,h,31)+257,T=mr(i,h+10,15)+4,E=w+mr(i,h+5,31)+1;h+=14;for(var x=new Qn(E),B=new Qn(19),R=0;R>4;if(C<16)x[R++]=C;else{var b=0,F=0;for(C==16?(F=3+mr(i,h,3),h+=2,b=x[R-1]):C==17?(F=3+mr(i,h,7),h+=3):C==18&&(F=11+mr(i,h,127),h+=7);F--;)x[R++]=b}}var M=x.subarray(0,w),k=x.subarray(w);p=LC(M),d=LC(k),f=dh(M,p,1),g=dh(k,d,1)}else Rn(1);else{var C=m3(h)+4,_=i[C-4]|i[C-3]<<8,y=C+_;if(y>r){l&&Rn(0);break}a&&A(u+_),t.set(i.subarray(C,y),u),e.b=u+=_,e.p=h=y*8,e.f=c;continue}if(h>I){l&&Rn(0);break}}a&&A(u+131072);for(var P=(1<>4;if(h+=b&15,h>I){l&&Rn(0);break}if(b||Rn(2),j<256)t[u++]=j;else if(j==256){N=h,f=null;break}else{var X=j-254;if(j>264){var R=j-257,z=PT[R];X=mr(i,h,(1<>4;q||Rn(3),h+=q&15;var k=g3[Z];if(Z>3){var z=NT[Z];k+=MC(i,h)&(1<I){l&&Rn(0);break}a&&A(u+131072);var ge=u+X;if(u>3&1)+(e>>4&1);n>0;n-=!i[t++]);return t+(e&2)},_3=function(i){var e=i.length;return(i[e-4]|i[e-3]<<8|i[e-2]<<16|i[e-1]<<24)>>>0};var x3=function(i,e){return((i[0]&15)!=8||i[0]>>4>7||(i[0]<<8|i[1])%31)&&Rn(6,"invalid zlib data"),(i[1]>>5&1)==+!e&&Rn(6,"invalid zlib data: "+(i[1]&32?"need":"unexpected")+" dictionary"),(i[1]>>3&4)+2};function B3(i,e){return PC(i,{i:2},e&&e.out,e&&e.dictionary)}function w3(i,e){var t=y3(i);return t+8>i.length&&Rn(6,"invalid gzip data"),PC(i.subarray(t,-8),{i:2},e&&e.out||new Qn(_3(i)),e&&e.dictionary)}function v3(i,e){return PC(i.subarray(x3(i,e&&e.dictionary),-4),{i:2},e&&e.out,e&&e.dictionary)}function VT(i,e){return i[0]==31&&i[1]==139&&i[2]==8?w3(i,e):(i[0]&15)!=8||i[0]>>4>7||(i[0]<<8|i[1])%31?B3(i,e):v3(i,e)}var S3=typeof TextDecoder<"u"&&new TextDecoder,T3=0;try{S3.decode(C3,{stream:!0}),T3=1}catch{}var R3=Object.defineProperty,mh=Math.pow,rt=(i,e)=>R3(i,"name",{value:e,configurable:!0}),ii=(i,e,t)=>new Promise((n,r)=>{var o=l=>{try{a(t.next(l))}catch(A){r(A)}},s=l=>{try{a(t.throw(l))}catch(A){r(A)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(o,s);a((t=t.apply(i,e)).next())}),Ole=rt((i,e)=>{let t=!1,n="",r=L.GridLayer.extend({createTile:rt((o,s)=>{let a=document.createElement("img"),l=new AbortController,A=l.signal;return a.cancel=()=>{l.abort()},t||(i.getHeader().then(c=>{c.tileType===1?console.error("Error: archive contains MVT vector tiles, but leafletRasterLayer is for displaying raster tiles. See https://github.com/protomaps/PMTiles/tree/main/js for details."):c.tileType===2?n="image/png":c.tileType===3?n="image/jpeg":c.tileType===4?n="image/webp":c.tileType===5&&(n="image/avif")}),t=!0),i.getZxy(o.z,o.x,o.y,A).then(c=>{if(c){let h=new Blob([c.data],{type:n}),u=window.URL.createObjectURL(h);a.src=u,a.cancel=void 0,s(void 0,a)}}).catch(c=>{if(c.name!=="AbortError")throw c}),a},"createTile"),_removeTile:rt(function(o){let s=this._tiles[o];s&&(s.el.cancel&&s.el.cancel(),s.el.width=0,s.el.height=0,s.el.deleted=!0,L.DomUtil.remove(s.el),delete this._tiles[o],this.fire("tileunload",{tile:s.el,coords:this._keyToTileCoords(o)}))},"_removeTile")});return new r(e)},"leafletRasterLayer"),Q3=rt(i=>(e,t)=>{if(t instanceof AbortController)return i(e,t);let n=new AbortController;return i(e,n).then(r=>t(void 0,r.data,r.cacheControl||"",r.expires||""),r=>t(r)).catch(r=>t(r)),{cancel:rt(()=>n.abort(),"cancel")}},"v3compat"),b3=class{constructor(e){this.tilev4=rt((t,n)=>ii(this,null,function*(){if(t.type==="json"){let f=t.url.substr(10),g=this.tiles.get(f);if(g||(g=new Eh(f),this.tiles.set(f,g)),this.metadata)return{data:yield g.getTileJson(t.url)};let p=yield g.getHeader();return(p.minLon>=p.maxLon||p.minLat>=p.maxLat)&&console.error(`Bounds of PMTiles archive ${p.minLon},${p.minLat},${p.maxLon},${p.maxLat} are not valid.`),{data:{tiles:[`${t.url}/{z}/{x}/{y}`],minzoom:p.minZoom,maxzoom:p.maxZoom,bounds:[p.minLon,p.minLat,p.maxLon,p.maxLat]}}}let r=new RegExp(/pmtiles:\/\/(.+)\/(\d+)\/(\d+)\/(\d+)/),o=t.url.match(r);if(!o)throw new Error("Invalid PMTiles protocol URL");let s=o[1],a=this.tiles.get(s);a||(a=new Eh(s),this.tiles.set(s,a));let l=o[2],A=o[3],c=o[4],h=yield a.getHeader(),u=yield a?.getZxy(+l,+A,+c,n.signal);if(u)return{data:new Uint8Array(u.data),cacheControl:u.cacheControl,expires:u.expires};if(h.tileType===1){if(this.errorOnMissingTile)throw new Error("Tile not found.");return{data:new Uint8Array}}return{data:null}}),"tilev4"),this.tile=Q3(this.tilev4),this.tiles=new Map,this.metadata=e?.metadata||!1,this.errorOnMissingTile=e?.errorOnMissingTile||!1}add(e){this.tiles.set(e.source.getKey(),e)}get(e){return this.tiles.get(e)}};rt(b3,"Protocol");function HT(i,e){return(e>>>0)*4294967296+(i>>>0)}rt(HT,"toNum");function qT(i,e){let t=e.buf,n=t[e.pos++],r=(n&112)>>4;if(n<128||(n=t[e.pos++],r|=(n&127)<<3,n<128)||(n=t[e.pos++],r|=(n&127)<<10,n<128)||(n=t[e.pos++],r|=(n&127)<<17,n<128)||(n=t[e.pos++],r|=(n&127)<<24,n<128)||(n=t[e.pos++],r|=(n&1)<<31,n<128))return HT(i,r);throw new Error("Expected varint not more than 10 bytes")}rt(qT,"readVarintRemainder");function iA(i){let e=i.buf,t=e[i.pos++],n=t&127;return t<128||(t=e[i.pos++],n|=(t&127)<<7,t<128)||(t=e[i.pos++],n|=(t&127)<<14,t<128)||(t=e[i.pos++],n|=(t&127)<<21,t<128)?n:(t=e[i.pos],n|=(t&15)<<28,qT(n,i))}rt(iA,"readVarint");function GC(i,e,t,n){if(n===0){t===1&&(e[0]=i-1-e[0],e[1]=i-1-e[1]);let r=e[0];e[0]=e[1],e[1]=r}}rt(GC,"rotate");function KT(i,e){let t=mh(2,i),n=e,r=e,o=e,s=[0,0],a=1;for(;a26)throw new Error("Tile zoom level exceeds max safe number limit (26)");if(e>mh(2,i)-1||t>mh(2,i)-1)throw new Error("tile x/y outside zoom level bounds");let n=D3[i],r=mh(2,i),o=0,s=0,a=0,l=[e,t],A=r/2;for(;A>0;)o=(l[0]&A)>0?1:0,s=(l[1]&A)>0?1:0,a+=A*A*(3*o^s),GC(A,l,o,s),A=A/2;return n+a}rt(XT,"zxyToTileId");function F3(i){let e=0,t=0;for(let n=0;n<27;n++){let r=(1<i)return KT(n,i-e);e+=r}throw new Error("Tile zoom level exceeds max safe number limit (26)")}rt(F3,"tileIdToZxy");var L3=(i=>(i[i.Unknown=0]="Unknown",i[i.None=1]="None",i[i.Gzip=2]="Gzip",i[i.Brotli=3]="Brotli",i[i.Zstd=4]="Zstd",i))(L3||{});function Jg(i,e){return ii(this,null,function*(){if(e===1||e===0)return i;if(e===2){if(typeof globalThis.DecompressionStream>"u")return VT(new Uint8Array(i));let t=new Response(i).body;if(!t)throw new Error("Failed to read response stream");let n=t.pipeThrough(new globalThis.DecompressionStream("gzip"));return new Response(n).arrayBuffer()}throw new Error("Compression method not supported")})}rt(Jg,"defaultDecompress");var M3=(i=>(i[i.Unknown=0]="Unknown",i[i.Mvt=1]="Mvt",i[i.Png=2]="Png",i[i.Jpeg=3]="Jpeg",i[i.Webp=4]="Webp",i[i.Avif=5]="Avif",i))(M3||{});function jT(i){return i===1?".mvt":i===2?".png":i===3?".jpg":i===4?".webp":i===5?".avif":""}rt(jT,"tileTypeExt");var k3=127;function WT(i,e){let t=0,n=i.length-1;for(;t<=n;){let r=n+t>>1,o=e-i[r].tileId;if(o>0)t=r+1;else if(o<0)n=r-1;else return i[r]}return n>=0&&(i[n].runLength===0||e-i[n].tileId-1,o=/Chrome|Chromium|Edg|OPR|Brave/.test(n);this.chromeWindowsNoCache=!1,r&&o&&(this.chromeWindowsNoCache=!0)}getKey(){return this.url}setHeaders(e){this.customHeaders=e}getBytes(e,t,n,r){return ii(this,null,function*(){let o,s;n?s=n:(o=new AbortController,s=o.signal);let a=new Headers(this.customHeaders);a.set("range",`bytes=${e}-${e+t-1}`);let l;this.mustReload?l="reload":this.chromeWindowsNoCache&&(l="no-store");let A=yield fetch(this.url,{signal:s,cache:l,headers:a});if(e===0&&A.status===416){let u=A.headers.get("Content-Range");if(!u||!u.startsWith("bytes */"))throw new Error("Missing content-length on 416 response");let f=+u.substr(8);A=yield fetch(this.url,{signal:s,cache:"reload",headers:{range:`bytes=0-${f-1}`}})}let c=A.headers.get("Etag");if(c!=null&&c.startsWith("W/")&&(c=null),A.status===416||r&&c&&c!==r)throw this.mustReload=!0,new NC(`Server returned non-matching ETag ${r} after one retry. Check browser extensions and servers for issues that may affect correct ETag headers.`);if(A.status>=300)throw new Error(`Bad response code: ${A.status}`);let h=A.headers.get("Content-Length");if(A.status===200&&(!h||+h>t))throw o&&o.abort(),new Error("Server returned no content-length header or content-length exceeding request. Check that your storage backend supports HTTP Byte Serving.");return{data:yield A.arrayBuffer(),etag:c||void 0,cacheControl:A.headers.get("Cache-Control")||void 0,expires:A.headers.get("Expires")||void 0}})}};rt(JT,"FetchSource");var N3=JT;function Zn(i,e){let t=i.getUint32(e+4,!0),n=i.getUint32(e+0,!0);return t*mh(2,32)+n}rt(Zn,"getUint64");function $T(i,e){let t=new DataView(i),n=t.getUint8(7);if(n>3)throw new Error(`Archive is spec version ${n} but this library supports up to spec version 3`);return{specVersion:n,rootDirectoryOffset:Zn(t,8),rootDirectoryLength:Zn(t,16),jsonMetadataOffset:Zn(t,24),jsonMetadataLength:Zn(t,32),leafDirectoryOffset:Zn(t,40),leafDirectoryLength:Zn(t,48),tileDataOffset:Zn(t,56),tileDataLength:Zn(t,64),numAddressedTiles:Zn(t,72),numTileEntries:Zn(t,80),numTileContents:Zn(t,88),clustered:t.getUint8(96)===1,internalCompression:t.getUint8(97),tileCompression:t.getUint8(98),tileType:t.getUint8(99),minZoom:t.getUint8(100),maxZoom:t.getUint8(101),minLon:t.getInt32(102,!0)/1e7,minLat:t.getInt32(106,!0)/1e7,maxLon:t.getInt32(110,!0)/1e7,maxLat:t.getInt32(114,!0)/1e7,centerZoom:t.getUint8(118),centerLon:t.getInt32(119,!0)/1e7,centerLat:t.getInt32(123,!0)/1e7,etag:e}}rt($T,"bytesToHeader");function OC(i){let e={buf:new Uint8Array(i),pos:0},t=iA(e),n=[],r=0;for(let o=0;o0?n[o].offset=n[o-1].offset+n[o-1].length:n[o].offset=s-1}return n}rt(OC,"deserializeIndex");var ZT=class extends Error{};rt(ZT,"EtagMismatch");var NC=ZT;function UC(i,e){return ii(this,null,function*(){let t=yield i.getBytes(0,16384);if(new DataView(t.data).getUint16(0,!0)!==19792)throw new Error("Wrong magic number for PMTiles archive");let n=t.data.slice(0,k3),r=$T(n,t.etag),o=t.data.slice(r.rootDirectoryOffset,r.rootDirectoryOffset+r.rootDirectoryLength),s=`${i.getKey()}|${r.etag||""}|${r.rootDirectoryOffset}|${r.rootDirectoryLength}`,a=OC(yield e(o,r.internalCompression));return[r,[s,a.length,a]]})}rt(UC,"getHeaderAndRoot");function zC(i,e,t,n,r){return ii(this,null,function*(){let o=yield i.getBytes(t,n,void 0,r.etag),s=yield e(o.data,r.internalCompression),a=OC(s);if(a.length===0)throw new Error("Empty directory is invalid");return a})}rt(zC,"getDirectory");var G3=class{constructor(e=100,t=!0,n=Jg){this.cache=new Map,this.maxCacheEntries=e,this.counter=1,this.decompress=n}getHeader(e){return ii(this,null,function*(){let t=e.getKey(),n=this.cache.get(t);if(n)return n.lastUsed=this.counter++,n.data;let r=yield UC(e,this.decompress);return r[1]&&this.cache.set(r[1][0],{lastUsed:this.counter++,data:r[1][2]}),this.cache.set(t,{lastUsed:this.counter++,data:r[0]}),this.prune(),r[0]})}getDirectory(e,t,n,r){return ii(this,null,function*(){let o=`${e.getKey()}|${r.etag||""}|${t}|${n}`,s=this.cache.get(o);if(s)return s.lastUsed=this.counter++,s.data;let a=yield zC(e,this.decompress,t,n,r);return this.cache.set(o,{lastUsed:this.counter++,data:a}),this.prune(),a})}prune(){if(this.cache.size>this.maxCacheEntries){let e=1/0,t;this.cache.forEach((n,r)=>{n.lastUsed{UC(e,this.decompress).then(a=>{a[1]&&this.cache.set(a[1][0],{lastUsed:this.counter++,data:Promise.resolve(a[1][2])}),o(a[0]),this.prune()}).catch(a=>{s(a)})});return this.cache.set(t,{lastUsed:this.counter++,data:r}),r})}getDirectory(e,t,n,r){return ii(this,null,function*(){let o=`${e.getKey()}|${r.etag||""}|${t}|${n}`,s=this.cache.get(o);if(s)return s.lastUsed=this.counter++,yield s.data;let a=new Promise((l,A)=>{zC(e,this.decompress,t,n,r).then(c=>{l(c),this.prune()}).catch(c=>{A(c)})});return this.cache.set(o,{lastUsed:this.counter++,data:a}),a})}prune(){if(this.cache.size>=this.maxCacheEntries){let e=1/0,t;this.cache.forEach((n,r)=>{n.lastUsed{this.getHeader(e).then(s=>{r(),this.invalidations.delete(t)}).catch(s=>{o(s)})});this.invalidations.set(t,n)})}};rt(eR,"SharedPromiseCache");var O3=eR,tR=class{constructor(e,t,n){typeof e=="string"?this.source=new N3(e):this.source=e,n?this.decompress=n:this.decompress=Jg,t?this.cache=t:this.cache=new O3}getHeader(){return ii(this,null,function*(){return yield this.cache.getHeader(this.source)})}getZxyAttempt(e,t,n,r){return ii(this,null,function*(){let o=XT(e,t,n),s=yield this.cache.getHeader(this.source);if(es.maxZoom)return;let a=s.rootDirectoryOffset,l=s.rootDirectoryLength;for(let A=0;A<=3;A++){let c=yield this.cache.getDirectory(this.source,a,l,s),h=WT(c,o);if(h){if(h.runLength>0){let u=yield this.source.getBytes(s.tileDataOffset+h.offset,h.length,r,s.etag);return{data:yield this.decompress(u.data,s.tileCompression),cacheControl:u.cacheControl,expires:u.expires}}a=s.leafDirectoryOffset+h.offset,l=h.length}else return}throw new Error("Maximum directory depth exceeded")})}getZxy(e,t,n,r){return ii(this,null,function*(){try{return yield this.getZxyAttempt(e,t,n,r)}catch(o){if(o instanceof NC)return this.cache.invalidate(this.source),yield this.getZxyAttempt(e,t,n,r);throw o}})}getMetadataAttempt(){return ii(this,null,function*(){let e=yield this.cache.getHeader(this.source),t=yield this.source.getBytes(e.jsonMetadataOffset,e.jsonMetadataLength,void 0,e.etag),n=yield this.decompress(t.data,e.internalCompression),r=new TextDecoder("utf-8");return JSON.parse(r.decode(n))})}getMetadata(){return ii(this,null,function*(){try{return yield this.getMetadataAttempt()}catch(e){if(e instanceof NC)return this.cache.invalidate(this.source),yield this.getMetadataAttempt();throw e}})}getTileJson(e){return ii(this,null,function*(){let t=yield this.getHeader(),n=yield this.getMetadata(),r=jT(t.tileType);return{tilejson:"3.0.0",scheme:"xyz",tiles:[`${e}/{z}/{x}/{y}${r}`],vector_layers:n.vector_layers,attribution:n.attribution,description:n.description,name:n.name,version:n.version,bounds:[t.minLon,t.minLat,t.maxLon,t.maxLat],center:[t.centerLon,t.centerLat,t.centerZoom],minzoom:t.minZoom,maxzoom:t.maxZoom}})}};rt(tR,"PMTiles");var Eh=tR;var rR=Object.defineProperty,iR=Object.getOwnPropertySymbols,U3=Object.prototype.hasOwnProperty,z3=Object.prototype.propertyIsEnumerable,nR=(i,e,t)=>e in i?rR(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,$g=(i,e)=>{for(var t in e||(e={}))U3.call(e,t)&&nR(i,t,e[t]);if(iR)for(var t of iR(e))z3.call(e,t)&&nR(i,t,e[t]);return i},Zg=(i,e)=>rR(i,"name",{value:e,configurable:!0}),Y3=(i,e,t)=>new Promise((n,r)=>{var o=l=>{try{a(t.next(l))}catch(A){r(A)}},s=l=>{try{a(t.throw(l))}catch(A){r(A)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(o,s);a((t=t.apply(i,e)).next())}),oR=class extends jl{constructor(e){super($g($g({},e),{state:"loading"})),this.loadImage=Zg(n=>new Promise((r,o)=>{let s=new Image;s.addEventListener("load",()=>r(s)),s.addEventListener("error",()=>o(new Error("load failed"))),s.src=n}),"loadImage");let t=new Eh(e.url);t.getHeader().then(n=>{let r=e.projection===void 0?"EPSG:3857":e.projection;this.tileGrid=e.tileGrid||dr({extent:xn(r),maxResolution:e.maxResolution,minZoom:n.minZoom,maxZoom:n.maxZoom,tileSize:e.tileSize}),this.setLoader((o,s,a)=>Y3(this,null,function*(){let l=yield t.getZxy(o,s,a);if(!l)return new Uint8Array;let A=URL.createObjectURL(new Blob([l.data])),c=yield this.loadImage(A);return URL.revokeObjectURL(A),c})),this.setState("ready")})}};Zg(oR,"PMTilesRasterSource");var sR=oR,aR=class extends kf{constructor(e){super($g($g({},e),{state:"loading",url:"pmtiles://{z}/{x}/{y}",format:e.format||new fh})),this.tileLoadFunction=Zg((t,n)=>{let r=t,o=new RegExp(/pmtiles:\/\/(\d+)\/(\d+)\/(\d+)/),s=n.match(o);if(!(s&&s.length>=4))throw Error("Could not parse tile URL");let a=+s[1],l=+s[2],A=+s[3];r.setLoader((c,h,u)=>{this.pmtiles_.getZxy(a,l,A).then(f=>{if(f){let g=r.getFormat();r.setFeatures(g.readFeatures(f.data,{extent:c,featureProjection:u})),r.setState(V.LOADED)}else r.setFeatures([]),r.setState(V.EMPTY)}).catch(f=>{r.setFeatures([]),r.setState(V.ERROR)})})},"tileLoadFunction"),this.pmtiles_=new Eh(e.url),this.pmtiles_.getHeader().then(t=>{let n=e.projection||"EPSG:3857",r=e.extent||xn(n);this.tileGrid=e.tileGrid||dr({extent:r,maxResolution:e.maxResolution,maxZoom:e.maxZoom!==void 0?e.maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:e.tileSize||512}),this.setTileLoadFunction(this.tileLoadFunction),this.setState("ready")})}};Zg(aR,"PMTilesVectorSource");var lR=aR;var AR={OSM:F1,VectorSource:_n,VectorTileSource:kf,GeoTIFFSource:YS,GeoJSONSource:_n,ImageTileSource:jS,TileJSON:JS,PMTilesVectorSource:lR,PMTilesRasterSource:sR};var YC="units",V3=[1,2,5],Ih=25.4/.28,VC=class extends ut{constructor(e){e=e||{};let t=document.createElement("div");t.style.pointerEvents="none",super({element:t,render:e.render,target:e.target}),this.on,this.once,this.un;let n=e.className!==void 0?e.className:e.bar?"ol-scale-bar":"ol-scale-line";this.innerElement_=document.createElement("div"),this.innerElement_.className=n+"-inner",this.element.className=n+" "+qt,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=e.minWidth!==void 0?e.minWidth:64,this.maxWidth_=e.maxWidth,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",this.addChangeListener(YC,this.handleUnitsChanged_),this.setUnits(e.units||"metric"),this.scaleBar_=e.bar||!1,this.scaleBarSteps_=e.steps||4,this.scaleBarText_=e.text||!1,this.dpi_=e.dpi||void 0}getUnits(){return this.get(YC)}handleUnitsChanged_(){this.updateElement_()}setUnits(e){this.set(YC,e)}setDpi(e){this.dpi_=e}updateElement_(){let e=this.viewState_;if(!e){this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1);return}let t=e.center,n=e.projection,r=this.getUnits(),o=r=="degrees"?"degrees":"m",s=za(n,e.resolution,t,o),a=this.minWidth_*(this.dpi_||Ih)/Ih,l=this.maxWidth_!==void 0?this.maxWidth_*(this.dpi_||Ih)/Ih:void 0,A=a*s,c="";if(r=="degrees"){let C=Ar.degrees;A*=C,A=l){u=p,f=d,g=I;break}else if(f>=a)break;p=u,d=f,I=g,++h}let m=this.scaleBar_?this.createScaleBar(f,u,c):u.toFixed(g<0?-g:0)+" "+c;this.renderedHTML_!=m&&(this.innerElement_.innerHTML=m,this.renderedHTML_=m),this.renderedWidth_!=f&&(this.innerElement_.style.width=f+"px",this.renderedWidth_=f),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}createScaleBar(e,t,n){let r=this.getScaleForResolution(),o=r<1?Math.round(1/r).toLocaleString()+" : 1":"1 : "+Math.round(r).toLocaleString(),s=this.scaleBarSteps_,a=e/s,l=[this.createMarker("absolute")];for(let c=0;c
`+this.createMarker("relative")+(c%2===0||s===2?this.createStepText(c,e,!1,t,n):"")+"")}return l.push(this.createStepText(s,e,!0,t,n)),(this.scaleBarText_?`
`+o+"
":"")+l.join("")}createMarker(e){return`
`}createStepText(e,t,n,r,o){let a=(e===0?0:Math.round(r/this.scaleBarSteps_*e*100)/100)+(e===0?"":" "+o),l=e===0?-3:t/this.scaleBarSteps_*-1,A=e===0?0:t/this.scaleBarSteps_*2;return`
`+a+"
"}getScaleForResolution(){let e=za(this.viewState_.projection,this.viewState_.resolution,this.viewState_.center,"m"),t=this.dpi_||Ih,n=1e3/25.4;return e*n*t}render(e){let t=e.frameState;t?this.viewState_=t.viewState:this.viewState_=null,this.updateElement_()}},cR=VC;var hR=["fullscreenchange","webkitfullscreenchange"],uR={ENTERFULLSCREEN:"enterfullscreen",LEAVEFULLSCREEN:"leavefullscreen"},HC=class extends ut{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target}),this.on,this.once,this.un,this.keys_=e.keys!==void 0?e.keys:!1,this.source_=e.source,this.isInFullscreen_=!1,this.boundHandleMapTargetChange_=this.handleMapTargetChange_.bind(this),this.cssClassName_=e.className!==void 0?e.className:"ol-full-screen",this.documentListeners_=[],this.activeClassName_=e.activeClassName!==void 0?e.activeClassName.split(" "):[this.cssClassName_+"-true"],this.inactiveClassName_=e.inactiveClassName!==void 0?e.inactiveClassName.split(" "):[this.cssClassName_+"-false"];let t=e.label!==void 0?e.label:"\u2922";this.labelNode_=typeof t=="string"?document.createTextNode(t):t;let n=e.labelActive!==void 0?e.labelActive:"\xD7";this.labelActiveNode_=typeof n=="string"?document.createTextNode(n):n;let r=e.tipLabel?e.tipLabel:"Toggle full-screen";this.button_=document.createElement("button"),this.button_.title=r,this.button_.setAttribute("type","button"),this.button_.appendChild(this.labelNode_),this.button_.addEventListener(K.CLICK,this.handleClick_.bind(this),!1),this.setClassName_(this.button_,this.isInFullscreen_),this.element.className=`${this.cssClassName_} ${qt} ${nn}`,this.element.appendChild(this.button_)}handleClick_(e){e.preventDefault(),this.handleFullScreen_()}handleFullScreen_(){let e=this.getMap();if(!e)return;let t=e.getOwnerDocument();if(fR(t))if(gR(t))q3(t);else{let n;this.source_?n=typeof this.source_=="string"?t.getElementById(this.source_):this.source_:n=e.getTargetElement(),this.keys_?H3(n):dR(n)}}handleFullScreenChange_(){let e=this.getMap();if(!e)return;let t=this.isInFullscreen_;this.isInFullscreen_=gR(e.getOwnerDocument()),t!==this.isInFullscreen_&&(this.setClassName_(this.button_,this.isInFullscreen_),this.isInFullscreen_?(so(this.labelActiveNode_,this.labelNode_),this.dispatchEvent(uR.ENTERFULLSCREEN)):(so(this.labelNode_,this.labelActiveNode_),this.dispatchEvent(uR.LEAVEFULLSCREEN)),e.updateSize())}setClassName_(e,t){t?(e.classList.remove(...this.inactiveClassName_),e.classList.add(...this.activeClassName_)):(e.classList.remove(...this.activeClassName_),e.classList.add(...this.inactiveClassName_))}setMap(e){let t=this.getMap();t&&t.removeChangeListener(Ct.TARGET,this.boundHandleMapTargetChange_),super.setMap(e),this.handleMapTargetChange_(),e&&e.addChangeListener(Ct.TARGET,this.boundHandleMapTargetChange_)}handleMapTargetChange_(){let e=this.documentListeners_;for(let n=0,r=e.length;nn?(this.direction_=Ch.HORIZONTAL,this.widthLimit_=t-a):(this.direction_=Ch.VERTICAL,this.heightLimit_=n-l),this.sliderInitialized_=!0}handleContainerClick_(e){let t=this.getMap().getView(),n=this.getRelativePosition_(e.offsetX-this.thumbSize_[0]/2,e.offsetY-this.thumbSize_[1]/2),r=this.getResolutionForPosition_(n),o=t.getConstrainedZoom(t.getZoomForResolution(r));t.animateInternal({zoom:o,duration:this.duration_,easing:ln})}handleDraggerStart_(e){if(!this.dragging_&&e.target===this.element.firstElementChild){let t=this.element.firstElementChild;if(this.getMap().getView().beginInteraction(),this.startX_=e.clientX-parseFloat(t.style.left),this.startY_=e.clientY-parseFloat(t.style.top),this.dragging_=!0,this.dragListenerKeys_.length===0){let n=this.handleDraggerDrag_,r=this.handleDraggerEnd_,o=this.getMap().getOwnerDocument();this.dragListenerKeys_.push(ee(o,cn.POINTERMOVE,n,this),ee(o,cn.POINTERUP,r,this))}}}handleDraggerDrag_(e){if(this.dragging_){let t=e.clientX-this.startX_,n=e.clientY-this.startY_,r=this.getRelativePosition_(t,n);this.currentResolution_=this.getResolutionForPosition_(r),this.getMap().getView().setResolution(this.currentResolution_)}}handleDraggerEnd_(e){this.dragging_&&(this.getMap().getView().endInteraction(),this.dragging_=!1,this.startX_=void 0,this.startY_=void 0,this.dragListenerKeys_.forEach(ce),this.dragListenerKeys_.length=0)}setThumbPosition_(e){let t=this.getPositionForResolution_(e),n=this.element.firstElementChild;this.direction_==Ch.HORIZONTAL?n.style.left=this.widthLimit_*t+"px":n.style.top=this.heightLimit_*t+"px"}getRelativePosition_(e,t){let n;return this.direction_===Ch.HORIZONTAL?n=e/this.widthLimit_:n=t/this.heightLimit_,Ee(n,0,1)}getResolutionForPosition_(e){return this.getMap().getView().getResolutionForValueFunction()(1-e)}getPositionForResolution_(e){let t=this.getMap().getView().getValueForResolutionFunction();return Ee(1-t(e),0,1)}render(e){if(!e.frameState||!this.sliderInitialized_&&!this.initSlider_())return;let t=e.frameState.viewState.resolution;this.currentResolution_=t,this.setThumbPosition_(t)}},mR=qC;var KC="projection",ER="coordinateFormat",XC=class extends ut{constructor(e){e=e||{};let t=document.createElement("div");t.className=e.className!==void 0?e.className:"ol-mouse-position",super({element:t,render:e.render,target:e.target}),this.on,this.once,this.un,this.addChangeListener(KC,this.handleProjectionChanged_),e.coordinateFormat&&this.setCoordinateFormat(e.coordinateFormat),e.projection&&this.setProjection(e.projection),this.renderOnMouseOut_=e.placeholder!==void 0,this.placeholder_=this.renderOnMouseOut_?e.placeholder:" ",this.renderedHTML_=t.innerHTML,this.mapProjection_=null,this.transform_=null,this.wrapX_=e.wrapX!==!1}handleProjectionChanged_(){this.transform_=null}getCoordinateFormat(){return this.get(ER)}getProjection(){return this.get(KC)}handleMouseMove(e){let t=this.getMap();this.updateHTML_(t.getEventPixel(e))}handleMouseOut(e){this.updateHTML_(null)}setMap(e){if(super.setMap(e),e){let t=e.getViewport();this.listenerKeys.push(ee(t,cn.POINTERMOVE,this.handleMouseMove,this)),this.renderOnMouseOut_&&this.listenerKeys.push(ee(t,cn.POINTEROUT,this.handleMouseOut,this)),this.updateHTML_(null)}}setCoordinateFormat(e){this.set(ER,e)}setProjection(e){this.set(KC,fe(e))}updateHTML_(e){let t=this.placeholder_;if(e&&this.mapProjection_){if(!this.transform_){let o=this.getProjection();o?this.transform_=$i(this.mapProjection_,o):this.transform_=u_}let r=this.getMap().getCoordinateFromPixelInternal(e);if(r){let o=st();if(o&&(this.transform_=$i(this.mapProjection_,o)),this.transform_(r,r),this.wrapX_){let a=o||this.getProjection()||this.mapProjection_;Zo(r,a)}let s=this.getCoordinateFormat();s?t=s(r):t=r.toString()}}(!this.renderedHTML_||t!==this.renderedHTML_)&&(this.element.innerHTML=t,this.renderedHTML_=t)}render(e){let t=e.frameState;t?this.mapProjection_!=t.viewState.projection&&(this.mapProjection_=t.viewState.projection,this.transform_=null):this.mapProjection_=null}},IR=XC;var ed=.75,yh=.1,jC=class extends ut{constructor(e){e=e||{},super({element:document.createElement("div"),render:e.render,target:e.target}),this.boundHandleRotationChanged_=this.handleRotationChanged_.bind(this),this.collapsed_=e.collapsed!==void 0?e.collapsed:!0,this.collapsible_=e.collapsible!==void 0?e.collapsible:!0,this.collapsible_||(this.collapsed_=!1),this.rotateWithView_=e.rotateWithView!==void 0?e.rotateWithView:!1,this.viewExtent_=void 0;let t=e.className!==void 0?e.className:"ol-overviewmap",n=e.tipLabel!==void 0?e.tipLabel:"Overview map",r=e.collapseLabel!==void 0?e.collapseLabel:"\u2039";typeof r=="string"?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=r):this.collapseLabel_=r;let o=e.label!==void 0?e.label:"\u203A";typeof o=="string"?(this.label_=document.createElement("span"),this.label_.textContent=o):this.label_=o;let s=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_,a=document.createElement("button");a.setAttribute("type","button"),a.title=n,a.appendChild(s),a.addEventListener(K.CLICK,this.handleClick_.bind(this),!1),this.ovmapDiv_=document.createElement("div"),this.ovmapDiv_.className="ol-overviewmap-map",this.view_=e.view;let l=new Ec({view:e.view,controls:new bt,interactions:new bt});this.ovmap_=l,e.layers&&e.layers.forEach(function(I){l.addLayer(I)});let A=document.createElement("div");A.className="ol-overviewmap-box",A.style.boxSizing="border-box",this.boxOverlay_=new Xu({position:[0,0],positioning:"center-center",element:A}),this.ovmap_.addOverlay(this.boxOverlay_);let c=t+" "+qt+" "+nn+(this.collapsed_&&this.collapsible_?" "+Ja:"")+(this.collapsible_?"":" ol-uncollapsible"),h=this.element;h.className=c,h.appendChild(this.ovmapDiv_),h.appendChild(a);let u=this.boxOverlay_,f=this.boxOverlay_.getElement(),g=I=>({clientX:I.clientX,clientY:I.clientY}),p=function(I){let m=g(I),C=l.getEventCoordinate(m);u.setPosition(C)},d=I=>{let m=l.getEventCoordinateInternal(I),C=this.getMap();C.getView().setCenterInternal(m);let _=C.getOwnerDocument();_.removeEventListener("pointermove",p),_.removeEventListener("pointerup",d)};this.ovmapDiv_.addEventListener("pointerdown",I=>{let m=this.getMap().getOwnerDocument();I.target===f&&m.addEventListener("pointermove",p),m.addEventListener("pointerup",d)})}setMap(e){let t=this.getMap();if(e!==t){if(t){let n=t.getView();n&&this.unbindView_(n),this.ovmap_.setTarget(null)}if(super.setMap(e),e){this.ovmap_.setTarget(this.ovmapDiv_),this.listenerKeys.push(ee(e,In.PROPERTYCHANGE,this.handleMapPropertyChange_,this));let n=e.getView();n&&this.bindView_(n),this.ovmap_.isRendered()||this.updateBoxAfterOvmapIsRendered_()}}}handleMapPropertyChange_(e){if(e.key===Ct.VIEW){let t=e.oldValue;t&&this.unbindView_(t);let n=this.getMap().getView();this.bindView_(n)}else!this.ovmap_.isRendered()&&(e.key===Ct.TARGET||e.key===Ct.SIZE)&&this.ovmap_.updateSize()}bindView_(e){if(!this.view_){let t=new xi({projection:e.getProjection()});this.ovmap_.setView(t)}e.addChangeListener(Oi.ROTATION,this.boundHandleRotationChanged_),this.handleRotationChanged_(),e.isDef()&&(this.ovmap_.updateSize(),this.resetExtent_())}unbindView_(e){e.removeChangeListener(Oi.ROTATION,this.boundHandleRotationChanged_)}handleRotationChanged_(){this.rotateWithView_&&this.ovmap_.getView().setRotation(this.getMap().getView().getRotation())}validateExtent_(){let e=this.getMap(),t=this.ovmap_;if(!e.isRendered()||!t.isRendered())return;let n=e.getSize(),o=e.getView().calculateExtentInternal(n);if(this.viewExtent_&&Mi(o,this.viewExtent_))return;this.viewExtent_=o;let s=t.getSize(),l=t.getView().calculateExtentInternal(s),A=t.getPixelFromCoordinateInternal(Pt(o)),c=t.getPixelFromCoordinateInternal(io(o)),h=Math.abs(A[0]-c[0]),u=Math.abs(A[1]-c[1]),f=s[0],g=s[1];hf*ed||u>g*ed?this.resetExtent_():Fi(l,o)||this.recenter_()}resetExtent_(){if(ed===0||yh===0)return;let e=this.getMap(),t=this.ovmap_,n=e.getSize(),o=e.getView().calculateExtentInternal(n),s=t.getView(),a=Math.log(ed/yh)/Math.LN2,l=1/(Math.pow(2,a/2)*yh);Vh(o,l),s.fitInternal(Vs(o))}recenter_(){let e=this.getMap(),t=this.ovmap_,n=e.getView();t.getView().setCenterInternal(n.getCenterInternal())}updateBox_(){let e=this.getMap(),t=this.ovmap_;if(!e.isRendered()||!t.isRendered())return;let n=e.getSize(),r=e.getView(),o=t.getView(),s=this.rotateWithView_?0:-r.getRotation(),a=this.boxOverlay_,l=this.boxOverlay_.getElement(),A=r.getCenter(),c=r.getResolution(),h=o.getResolution(),u=n[0]*c/h,f=n[1]*c/h;if(a.setPosition(A),l){l.style.width=u+"px",l.style.height=f+"px";let g="rotate("+s+"rad)";l.style.transform=g}}updateBoxAfterOvmapIsRendered_(){this.ovmapPostrenderKey_||(this.ovmapPostrenderKey_=jo(this.ovmap_,hn.POSTRENDER,e=>{delete this.ovmapPostrenderKey_,this.updateBox_()}))}handleClick_(e){e.preventDefault(),this.handleToggle_()}handleToggle_(){this.element.classList.toggle(Ja),this.collapsed_?so(this.collapseLabel_,this.label_):so(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;let e=this.ovmap_;if(!this.collapsed_){if(e.isRendered()){this.viewExtent_=void 0,e.render();return}e.updateSize(),this.resetExtent_(),this.updateBoxAfterOvmapIsRendered_()}}getCollapsible(){return this.collapsible_}setCollapsible(e){this.collapsible_!==e&&(this.collapsible_=e,this.element.classList.toggle("ol-uncollapsible"),!e&&this.collapsed_&&this.handleToggle_())}setCollapsed(e){!this.collapsible_||this.collapsed_===e||this.handleToggle_()}getCollapsed(){return this.collapsed_}getRotateWithView(){return this.rotateWithView_}setRotateWithView(e){this.rotateWithView_!==e&&(this.rotateWithView_=e,this.getMap().getView().getRotation()!==0&&(this.rotateWithView_?this.handleRotationChanged_():this.ovmap_.getView().setRotation(0),this.viewExtent_=void 0,this.validateExtent_(),this.updateBox_()))}getOverviewMap(){return this.ovmap_}render(e){this.validateExtent_(),this.updateBox_()}},CR=jC;var WC=class extends ut{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target}),this.extent=e.extent?e.extent:null;let t=e.className!==void 0?e.className:"ol-zoom-extent",n=e.label!==void 0?e.label:"E",r=e.tipLabel!==void 0?e.tipLabel:"Fit to extent",o=document.createElement("button");o.setAttribute("type","button"),o.title=r,o.appendChild(typeof n=="string"?document.createTextNode(n):n),o.addEventListener(K.CLICK,this.handleClick_.bind(this),!1);let s=t+" "+qt+" "+nn,a=this.element;a.className=s,a.appendChild(o)}handleClick_(e){e.preventDefault(),this.handleZoomToExtent()}handleZoomToExtent(){let t=this.getMap().getView(),n=this.extent?Bt(this.extent,t.getProjection()):t.getProjection().getExtent();t.fitInternal(Vs(n))}},yR=WC;var K3=Object.defineProperty,$R=i=>{throw TypeError(i)},X3=(i,e,t)=>e in i?K3(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,re=(i,e,t)=>X3(i,typeof e!="symbol"?e+"":e,t),ZR=(i,e,t)=>e.has(i)||$R("Cannot "+t),jt=(i,e,t)=>(ZR(i,e,"read from private field"),t?t.call(i):e.get(i)),_R=(i,e,t)=>e.has(i)?$R("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,t),xR=(i,e,t,n)=>(ZR(i,e,"write to private field"),n?n.call(i,t):e.set(i,t),t);function vt(){}function j3(i,e){for(let t in e)i[t]=e[t];return i}function eQ(i){return i()}function BR(){return Object.create(null)}function Uo(i){i.forEach(eQ)}function tQ(i){return typeof i=="function"}function Ca(i,e){return i!=i?e==e:i!==e||i&&typeof i=="object"||typeof i=="function"}var td;function Ti(i,e){return i===e?!0:(td||(td=document.createElement("a")),td.href=e,i===td.href)}function W3(i){return Object.keys(i).length===0}function J3(i,e,t,n){if(i){let r=iQ(i,e,t,n);return i[0](r)}}function iQ(i,e,t,n){return i[1]&&n?j3(t.ctx.slice(),i[1](n(e))):t.ctx}function $3(i,e,t,n){return i[2],e.dirty}function Z3(i,e,t,n,r,o){if(r){let s=iQ(e,t,n,o);i.p(s,r)}}function eO(i){if(i.ctx.length>32){let e=[],t=i.ctx.length/32;for(let n=0;ni.removeEventListener(e,t,n)}function iO(i){return function(e){return e.preventDefault(),i.call(this,e)}}function Y(i,e,t){t==null?i.removeAttribute(e):i.getAttribute(e)!==t&&i.setAttribute(e,t)}function nO(i){return Array.from(i.childNodes)}function Rh(i,e){e=""+e,i.data!==e&&(i.data=e)}function wR(i,e){i.value=e??""}function sA(i,e,t){i.classList.toggle(e,!!t)}function rO(i,e,{bubbles:t=!1,cancelable:n=!1}={}){return new CustomEvent(i,{detail:e,bubbles:t,cancelable:n})}var Qh;function Th(i){Qh=i}function nQ(){if(!Qh)throw new Error("Function called outside component initialization");return Qh}function oO(i){nQ().$$.on_destroy.push(i)}function rQ(){let i=nQ();return(e,t,{cancelable:n=!1}={})=>{let r=i.$$.callbacks[e];if(r){let o=rO(e,t,{cancelable:n});return r.slice().forEach(s=>{s.call(i,o)}),!o.defaultPrevented}return!0}}function sO(i,e){let t=i.$$.callbacks[e.type];t&&t.slice().forEach(n=>n.call(this,e))}var rA=[],ey=[],aA=[],vR=[],aO=Promise.resolve(),ty=!1;function lO(){ty||(ty=!0,aO.then(oQ))}function iy(i){aA.push(i)}var JC=new Set,nA=0;function oQ(){if(nA!==0)return;let i=Qh;do{try{for(;nAi.indexOf(n)===-1?e.push(n):t.push(n)),t.forEach(n=>n()),aA=e}var od=new Set,Ia;function sd(){Ia={r:0,c:[],p:Ia}}function ad(){Ia.r||Uo(Ia.c),Ia=Ia.p}function Ft(i,e){i&&i.i&&(od.delete(i),i.i(e))}function ni(i,e,t,n){if(i&&i.o){if(od.has(i))return;od.add(i),Ia.c.push(()=>{od.delete(i),n&&(t&&i.d(1),n())}),i.o(e)}else n&&n()}function SR(i){return i?.length!==void 0?i:Array.from(i)}function hO(i,e){ni(i,1,1,()=>{e.delete(i.key)})}function uO(i,e,t,n,r,o,s,a,l,A,c,h){let u=i.length,f=o.length,g=u,p={};for(;g--;)p[i[g].key]=g;let d=[],I=new Map,m=new Map,C=[];for(g=f;g--;){let T=h(r,o,g),E=t(T),x=s.get(E);x?C.push(()=>x.p(T,e)):(x=A(E,T),x.c()),I.set(E,d[g]=x),E in p&&m.set(E,Math.abs(g-p[E]))}let _=new Set,y=new Set;function w(T){Ft(T,1),T.m(a,c),s.set(T.key,T),c=T.first,f--}for(;u&&f;){let T=d[f-1],E=i[u-1],x=T.key,B=E.key;T===E?(c=T.first,u--,f--):I.has(B)?!s.has(x)||_.has(x)?w(T):y.has(B)?u--:m.get(x)>m.get(B)?(y.add(x),w(T)):(_.add(B),u--):(l(E,s),u--)}for(;u--;){let T=i[u];I.has(T.key)||l(T,s)}for(;f;)w(d[f-1]);return Uo(C),d}function Ls(i){i&&i.c()}function Po(i,e,t){let{fragment:n,after_update:r}=i.$$;n&&n.m(e,t),iy(()=>{let o=i.$$.on_mount.map(eQ).filter(tQ);i.$$.on_destroy?i.$$.on_destroy.push(...o):Uo(o),i.$$.on_mount=[]}),r.forEach(iy)}function No(i,e){let t=i.$$;t.fragment!==null&&(cO(t.after_update),Uo(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function fO(i,e){i.$$.dirty[0]===-1&&(rA.push(i),lO(),i.$$.dirty.fill(0)),i.$$.dirty[e/31|0]|=1<{let g=f.length?f[0]:u;return A.ctx&&r(A.ctx[h],A.ctx[h]=g)&&(!A.skip_bound&&A.bound[h]&&A.bound[h](g),c&&fO(i,h)),u}):[],A.update(),c=!0,Uo(A.before_update),A.fragment=n?n(A.ctx):!1,e.target){if(e.hydrate){let h=nO(e.target);A.fragment&&A.fragment.l(h),h.forEach(gt)}else A.fragment&&A.fragment.c();e.intro&&Ft(i.$$.fragment),Po(i,e.target,e.anchor),oQ()}Th(l)}var Go=class{constructor(){re(this,"$$"),re(this,"$$set")}$destroy(){No(this,1),this.$destroy=vt}$on(e,t){if(!tQ(t))return vt;let n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{let r=n.indexOf(t);r!==-1&&n.splice(r,1)}}$set(e){this.$$set&&!W3(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}},gO="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(gO);function dO(i){let e,t;return{c(){e=ko("svg"),t=ko("path"),Y(t,"d","M13.12.706a.982.982 0 0 0-1.391 0L6.907 5.517 2.087.696a.982.982 0 1 0-1.391 1.39l4.821 4.821L.696 11.73a.982.982 0 1 0 1.39 1.39l4.821-4.821 4.822 4.821a.982.982 0 1 0 1.39-1.39L8.298 6.908l4.821-4.822a.988.988 0 0 0 0-1.38Z"),Y(e,"viewBox","0 0 14 14"),Y(e,"width","13"),Y(e,"height","13"),Y(e,"class","svelte-en2qvf")},m(n,r){_t(n,e,r),ze(e,t)},p:vt,i:vt,o:vt,d(n){n&>(e)}}}var hd=class extends Go{constructor(e){super(),ya(this,e,null,dO,Ca,{})}};function pO(i){let e,t;return{c(){e=ko("svg"),t=ko("path"),Y(t,"d","M15 0C6.705 0 0 6.705 0 15C0 23.295 6.705 30 15 30C23.295 30 30 23.295 30 15C30 6.705 23.295 0 15 0ZM22.5 20.385L20.385 22.5L15 17.115L9.615 22.5L7.5 20.385L12.885 15L7.5 9.615L9.615 7.5L15 12.885L20.385 7.5L22.5 9.615L17.115 15L22.5 20.385Z"),Y(e,"viewBox","0 0 30 30"),Y(e,"fill","none"),Y(e,"xmlns","http://www.w3.org/2000/svg"),Y(e,"class","svelte-d2loi5")},m(n,r){_t(n,e,r),ze(e,t)},p:vt,i:vt,o:vt,d(n){n&>(e)}}}var ud=class extends Go{constructor(e){super(),ya(this,e,null,pO,Ca,{})}};function mO(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"area.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"area.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function EO(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"reverse.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"reverse.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function IO(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"poi.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"poi.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function CO(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"postal_code.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"postal_code.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function yO(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"street.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"street.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function _O(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"road.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"road.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function xO(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"housenumber.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"housenumber.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function BO(i){let e,t,n,r;return{c(){e=nt("img"),Ti(e.src,t=i[5])||Y(e,"src",t),Y(e,"alt",i[4]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(o,s){_t(o,e,s),n||(r=Jt(e,"error",i[14]),n=!0)},p(o,s){s&32&&!Ti(e.src,t=o[5])&&Y(e,"src",t),s&16&&Y(e,"alt",o[4]),s&128&&Y(e,"title",o[7])},d(o){o&>(e),n=!1,r()}}}function wO(i){let e,t;return{c(){e=nt("div"),Y(e,"class","sprite-icon svelte-w9y5n9"),Y(e,"style",t=` + width: ${i[6].width/er}px; + height: ${i[6].height/er}px; + background-image: url(${i[3]}sprite${ny}.png); + background-position: -${i[6].x/er}px -${i[6].y/er}px; + background-size: ${qr.width/er}px ${qr.height/er}px; + `),Y(e,"title",i[7])},m(n,r){_t(n,e,r)},p(n,r){r&72&&t!==(t=` + width: ${n[6].width/er}px; + height: ${n[6].height/er}px; + background-image: url(${n[3]}sprite${ny}.png); + background-position: -${n[6].x/er}px -${n[6].y/er}px; + background-size: ${qr.width/er}px ${qr.height/er}px; + `)&&Y(e,"style",t),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function TR(i){let e,t;return{c(){e=nt("span"),t=Fs(i[7]),Y(e,"class","secondary svelte-w9y5n9")},m(n,r){_t(n,e,r),ze(e,t)},p(n,r){r&128&&Rh(t,n[7])},d(n){n&>(e)}}}function vO(i){let e,t,n,r,o,s,a,l,A,c=(i[8]?i[0].place_name:i[0].place_name.replace(/,.*/,""))+"",h,u,f=i[2]==="always"||i[2]!=="never"&&!i[0].address&&!i[0].id.startsWith("road.")&&!i[0].id.startsWith("address.")&&!i[0].id.startsWith("postal_code.")&&(!i[0].id.startsWith("poi.")||!i[5])&&!i[8],g,p,d=(i[8]?"":i[0].place_name.replace(/[^,]*,?\s*/,""))+"",I,m,C,_,y,w;function T(R,v){return v&1&&(t=null),v&1&&(n=null),v&1&&(r=null),v&1&&(o=null),qr&&R[6]?wO:R[5]?BO:R[0].address?xO:(t==null&&(t=!!R[0].id.startsWith("road.")),t?_O:(n==null&&(n=!!R[0].id.startsWith("address.")),n?yO:(r==null&&(r=!!R[0].id.startsWith("postal_code.")),r?CO:(o==null&&(o=!!R[0].id.startsWith("poi.")),o?IO:R[8]?EO:mO))))}let E=T(i,-1),x=E(i),B=f&&TR(i);return{c(){e=nt("li"),x.c(),s=Dn(),a=nt("span"),l=nt("span"),A=nt("span"),h=Fs(c),u=Dn(),B&&B.c(),g=Dn(),p=nt("span"),I=Fs(d),Y(A,"class","primary svelte-w9y5n9"),Y(l,"class","svelte-w9y5n9"),Y(p,"class","line2 svelte-w9y5n9"),Y(a,"class","texts svelte-w9y5n9"),Y(e,"tabindex","-1"),Y(e,"role","option"),Y(e,"aria-selected",m=i[1]==="selected"),Y(e,"aria-checked",C=i[1]==="picked"),Y(e,"class",_=cd(i[1])+" svelte-w9y5n9")},m(R,v){_t(R,e,v),x.m(e,null),ze(e,s),ze(e,a),ze(a,l),ze(l,A),ze(A,h),ze(l,u),B&&B.m(l,null),ze(a,g),ze(a,p),ze(p,I),y||(w=[Jt(e,"mouseenter",i[13]),Jt(e,"focus",i[15]),Jt(e,"click",i[16])],y=!0)},p(R,[v]){E===(E=T(R,v))&&x?x.p(R,v):(x.d(1),x=E(R),x&&(x.c(),x.m(e,s))),v&257&&c!==(c=(R[8]?R[0].place_name:R[0].place_name.replace(/,.*/,""))+"")&&Rh(h,c),v&293&&(f=R[2]==="always"||R[2]!=="never"&&!R[0].address&&!R[0].id.startsWith("road.")&&!R[0].id.startsWith("address.")&&!R[0].id.startsWith("postal_code.")&&(!R[0].id.startsWith("poi.")||!R[5])&&!R[8]),f?B?B.p(R,v):(B=TR(R),B.c(),B.m(l,null)):B&&(B.d(1),B=null),v&257&&d!==(d=(R[8]?"":R[0].place_name.replace(/[^,]*,?\s*/,""))+"")&&Rh(I,d),v&2&&m!==(m=R[1]==="selected")&&Y(e,"aria-selected",m),v&2&&C!==(C=R[1]==="picked")&&Y(e,"aria-checked",C),v&2&&_!==(_=cd(R[1])+" svelte-w9y5n9")&&Y(e,"class",_)},i:vt,o:vt,d(R){R&>(e),x.d(),B&&B.d(),y=!1,Uo(w)}}}var sQ=typeof devicePixelRatio>"u"?1:devicePixelRatio>1.25,ny=sQ?"@2x":"",er=sQ?2:1,qr,id;function SO(i,e,t){let n,r,o,{feature:s}=e,{style:a="default"}=e,{showPlaceType:l}=e,{missingIconsCache:A}=e,{iconsBaseUrl:c}=e,h=rQ(),u,f,g,p;function d(){id??(id=fetch(`${c}sprite${ny}.json`).then(E=>E.json()).then(E=>{qr=E}).catch(()=>{qr=null}))}function I(){f&&A.add(f),m()}function m(){qr!==void 0?C():(d(),id?.then(C))}function C(){do{if(p--,t(4,u=n?.[p]),t(6,g=u?qr?.icons[u]:void 0),g)break;t(5,f=u?c+u.replace(/ /g,"_")+".svg":void 0)}while(p>-1&&(!f||A.has(f)))}function _(E){sO.call(this,i,E)}let y=()=>I(),w=()=>h("select",void 0),T=E=>{document.activeElement!==E.target&&h("select",void 0)};return i.$$set=E=>{"feature"in E&&t(0,s=E.feature),"style"in E&&t(1,a=E.style),"showPlaceType"in E&&t(2,l=E.showPlaceType),"missingIconsCache"in E&&t(11,A=E.missingIconsCache),"iconsBaseUrl"in E&&t(3,c=E.iconsBaseUrl)},i.$$.update=()=>{var E,x,B,R,v;i.$$.dirty&1&&t(12,n=(E=s.properties)==null?void 0:E.categories),i.$$.dirty&1&&t(8,r=s.place_type[0]==="reverse"),i.$$.dirty&1&&t(7,o=((B=(x=s.properties)==null?void 0:x.categories)==null?void 0:B.join(", "))??((v=(R=s.properties)==null?void 0:R.place_type_name)==null?void 0:v[0])??s.place_type[0]),i.$$.dirty&4096&&(p=n?.length??0,m())},[s,a,l,c,u,f,g,o,r,h,I,A,n,_,y,w,T]}var ry=class extends Go{constructor(e){super(),ya(this,e,SO,vO,Ca,{feature:0,style:1,showPlaceType:2,missingIconsCache:11,iconsBaseUrl:3})}};function TO(i){let e;return{c(){e=nt("div"),e.innerHTML='',Y(e,"class","svelte-7cmwmc")},m(t,n){_t(t,e,n)},p:vt,i:vt,o:vt,d(t){t&>(e)}}}var oy=class extends Go{constructor(e){super(),ya(this,e,null,TO,Ca,{})}};function RO(i){let e,t;return{c(){e=ko("svg"),t=ko("path"),Y(t,"d","M30.003-26.765C13.46-26.765 0-14.158 0 1.337c0 23.286 24.535 42.952 28.39 46.04.24.192.402.316.471.376.323.282.732.424 1.142.424.41 0 .82-.142 1.142-.424.068-.06.231-.183.471-.376 3.856-3.09 28.39-22.754 28.39-46.04 0-15.495-13.46-28.102-30.003-28.102Zm1.757 12.469c4.38 0 7.858 1.052 10.431 3.158 2.595 2.105 3.89 4.913 3.89 8.422 0 2.34-.53 4.362-1.593 6.063-1.063 1.702-3.086 3.616-6.063 5.742-2.042 1.51-3.337 2.659-3.89 3.446-.532.787-.8 1.82-.8 3.096v1.914h-8.449V15.18c0-2.041.434-3.815 1.306-5.325.872-1.51 2.467-3.118 4.785-4.82 2.233-1.594 3.7-2.89 4.402-3.889a5.582 5.582 0 0 0 1.087-3.35c0-1.382-.51-2.435-1.531-3.158-1.02-.723-2.45-1.087-4.28-1.087-3.19 0-6.826 1.047-10.91 3.131l-3.472-6.986c4.742-2.659 9.77-3.992 15.087-3.992Zm-1.88 37.324c1.765 0 3.124.472 4.08 1.408.98.936 1.47 2.276 1.47 4.02 0 1.68-.49 3.007-1.47 3.985-.977.957-2.336 1.435-4.08 1.435-1.787 0-3.171-.465-4.15-1.4-.978-.958-1.47-2.298-1.47-4.02 0-1.787.48-3.14 1.436-4.054.957-.915 2.355-1.374 4.184-1.374Z"),Y(e,"viewBox","0 0 60.006 21.412"),Y(e,"width","14"),Y(e,"height","20"),Y(e,"class","svelte-en2qvf")},m(n,r){_t(n,e,r),ze(e,t)},p:vt,i:vt,o:vt,d(n){n&>(e)}}}var sy=class extends Go{constructor(e){super(),ya(this,e,null,RO,Ca,{})}};function QO(i){let e,t,n;return{c(){e=ko("svg"),t=ko("circle"),n=ko("path"),Y(t,"cx","4.789"),Y(t,"cy","4.787"),Y(t,"r","3.85"),Y(t,"class","svelte-1aq105l"),Y(n,"d","M12.063 12.063 7.635 7.635"),Y(n,"class","svelte-1aq105l"),Y(e,"xmlns","http://www.w3.org/2000/svg"),Y(e,"width","13"),Y(e,"height","13"),Y(e,"viewBox","0 0 13 13"),Y(e,"class","svelte-1aq105l")},m(r,o){_t(r,e,o),ze(e,t),ze(e,n)},p:vt,i:vt,o:vt,d(r){r&>(e)}}}var ay=class extends Go{constructor(e){super(),ya(this,e,null,QO,Ca,{})}};function bO(i,e,t){let n=e[1],r=e[0],o=n-r;return i===n&&t?i:((i-r)%o+o)%o+r}function fd(i){let e=[...i];return e[2]Math.abs((e[0]-360+e[2])/2)?e[0]-=360:e[2]+=360),e}var _h;async function DO(i,e,t){let n=i?.getCenterAndZoom();for(let r of e??[])if(!(n&&(r.minZoom!=null&&r.minZoom>n[0]||r.maxZoom!=null&&r.maxZoomDate.now()){if(!_h.coords)break e;return _h.coords}let o;try{return o=await new Promise((s,a)=>{t.signal.addEventListener("abort",()=>{a(Error("aborted"))}),navigator.geolocation.getCurrentPosition(l=>{s([l.coords.longitude,l.coords.latitude].map(A=>A.toFixed(6)).join(","))},l=>{a(l)},r)}),o}catch{}finally{r.cachedLocationExpiry&&(_h={time:Date.now(),coords:o})}if(t.signal.aborted)return}if(r.type==="server-geolocation")return"ip";if(n&&r.type==="map-center")return n[1].toFixed(6)+","+n[2].toFixed(6)}}var FO=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([6-9][0-9])\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([6-9][0-9])\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*(EAST|WEST|[EW])?$/i,RR=/^([+-]?[0-8]?[0-9])\s+([0-5]?[0-9]\.\d{3,})[\s,]{1,}([+-]?[0-1]?[0-9]?[0-9])\s+([0-5]?[0-9]\.\d{3,})$/,QR=/^(NORTH|SOUTH|[NS])?[\s]*([+-]?[0-8]?[0-9](?:[\.,]\d{3,}))[\s]*([•º°]?)[\s]*(NORTH|SOUTH|[NS])?[\s]*[,/;]?[\s]*(EAST|WEST|[EW])?[\s]*([+-]?[0-1]?[0-9]?[0-9](?:[\.,]\d{3,}))[\s]*([•º°]?)[\s]*(EAST|WEST|[EW])?$/i,bR=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*(\.)\s*([0-5]?[0-9])\s*(\.)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*(\.)\s*([0-5]?[0-9])\s*(\.)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(EAST|WEST|[EW])?$/i,DR=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*(D(?:EG)?(?:REES)?)\s*([0-5]?[0-9])\s*(M(?:IN)?(?:UTES)?)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(S(?:EC)?(?:ONDS)?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*(D(?:EG)?(?:REES)?)\s*([0-5]?[0-9])\s*(M(?:IN)?(?:UTES)?)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(S(?:EC)?(?:ONDS)?)\s*(EAST|WEST|[EW])?$/i,FR=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([0-5]?[0-9](?:[\.,]\d{1,})?)?\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*,?((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(''|′′|’’|´´|["″”\.])?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([0-5]?[0-9](?:[\.,]\d{1,})?)?\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*,?((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(''|′′|´´|’’|["″”\.])?\s*(EAST|WEST|[EW])?$/i;function LO(i){if(!["DMS","DM","DD"].includes(i))throw new Error("invalid format specified");if(this.decimalCoordinates&&this.decimalCoordinates.trim()){let e=this.decimalCoordinates.split(",").map(f=>Number(f.trim())),t=Number(e[0]),n=Number(e[1]),r=Math.abs(t),o=Math.abs(n),s=t>0?"N":"S",a=n>0?"E":"W",l;i=="DD"&&(l=`${r}\xB0 ${s}, ${o}\xB0 ${a}`);let A=Math.floor(r),c=Math.floor(o),h=(r-A)*60,u=(o-c)*60;if(i=="DM"){let f=LR(h,3).toFixed(3).padStart(6,"0"),g=LR(u,3).toFixed(3).padStart(6,"0");f.endsWith(".000")&&g.endsWith(".000")&&(f=f.replace(/\.000$/,""),g=g.replace(/\.000$/,"")),l=`${A}\xB0 ${f}' ${s}, ${c}\xB0 ${g}' ${a}`}if(i=="DMS"){let f=Math.floor(h),g=Math.floor(u),p=((h-f)*60).toFixed(1).padStart(4,"0"),d=((u-g)*60).toFixed(1).padStart(4,"0"),I=f.toString().padStart(2,"0"),m=g.toString().padStart(2,"0");p.endsWith(".0")&&d.endsWith(".0")&&(p=p.replace(/\.0$/,""),d=d.replace(/\.0$/,"")),l=`${A}\xB0 ${I}' ${p}" ${s}, ${c}\xB0 ${m}' ${d}" ${a}`}return l}else throw new Error("no decimal coordinates to convert")}function LR(i,e){let t=Math.pow(10,e);return Math.round((i+Number.EPSILON)*t)/t}function yy(i,e){e||(e=5),i=i.replace(/\s+/g," ").trim();let t=null,n=null,r="",o="",s=null,a=[],l=!1;if(FO.test(i))throw new Error("invalid coordinate value");if(RR.test(i))if(a=RR.exec(i),l=xh(a),l)t=Math.abs(a[1])+a[2]/60,Number(a[1])<0&&(t*=-1),n=Math.abs(a[3])+a[4]/60,Number(a[3])<0&&(n*=-1),s="DM";else throw new Error("invalid coordinate format");else if(QR.test(i))if(a=QR.exec(i),l=xh(a),l){if(t=a[2],n=a[6],t.includes(",")&&(t=t.replace(",",".")),n.includes(",")&&(n=n.replace(",",".")),s="DD",Number(Math.round(t))==Number(t))throw new Error("integer only coordinate provided");if(Number(Math.round(n))==Number(n))throw new Error("integer only coordinate provided");a[1]?(r=a[1],o=a[5]):a[4]&&(r=a[4],o=a[8])}else throw new Error("invalid decimal coordinate format");else if(bR.test(i))if(a=bR.exec(i),l=xh(a),l)t=Math.abs(parseInt(a[2])),a[4]&&(t+=a[4]/60,s="DM"),a[6]&&(t+=a[6].replace(",",".")/3600,s="DMS"),parseInt(a[2])<0&&(t=-1*t),n=Math.abs(parseInt(a[9])),a[11]&&(n+=a[11]/60),a[13]&&(n+=a[13].replace(",",".")/3600),parseInt(a[9])<0&&(n=-1*n),a[1]?(r=a[1],o=a[8]):a[7]&&(r=a[7],o=a[14]);else throw new Error("invalid DMS coordinates format");else if(DR.test(i))if(a=DR.exec(i),l=xh(a),l)t=Math.abs(parseInt(a[2])),a[4]&&(t+=a[4]/60,s="DM"),a[6]&&(t+=a[6]/3600,s="DMS"),parseInt(a[2])<0&&(t=-1*t),n=Math.abs(parseInt(a[10])),a[12]&&(n+=a[12]/60),a[14]&&(n+=a[14]/3600),parseInt(a[10])<0&&(n=-1*n),a[1]?(r=a[1],o=a[9]):a[8]&&(r=a[8],o=a[16]);else throw new Error("invalid DMS coordinates format");else if(FR.test(i)){if(a=FR.exec(i),l=xh(a),a.filter(A=>A).length<=5)throw new Error("invalid coordinates format");if(l)t=Math.abs(parseInt(a[2])),a[4]&&(t+=a[4].replace(",",".")/60,s="DM"),a[6]&&(t+=a[6].replace(",",".")/3600,s="DMS"),parseInt(a[2])<0&&(t=-1*t),n=Math.abs(parseInt(a[10])),a[12]&&(n+=a[12].replace(",",".")/60),a[14]&&(n+=a[14].replace(",",".")/3600),parseInt(a[10])<0&&(n=-1*n),a[1]?(r=a[1],o=a[9]):a[8]&&(r=a[8],o=a[16]);else throw new Error("invalid coordinates format")}if(l){if(Math.abs(n)>=180)throw new Error("invalid longitude value");if(Math.abs(t)>=90)throw new Error("invalid latitude value");if(r&&!o||!r&&o)throw new Error("invalid coordinates value");if(r&&r==o)throw new Error("invalid coordinates format");t.toString().includes(",")&&(t=t.replace(",",".")),n.toString().includes(",")&&(n=n.replace(",","."));let A=/S|SOUTH/i;A.test(r)&&t>0&&(t=-1*t),A=/W|WEST/i,A.test(o)&&n>0&&(n=-1*n);let c=a[0].trim(),h,u,f=/[,/;\u0020]/g,g=c.match(f);if(g==null){let I=Math.floor(i.length/2);h=c.substring(0,I).trim(),u=c.substring(I).trim()}else{let I;g.length%2==1?I=Math.floor(g.length/2):I=g.length/2-1;let m=0;if(I==0)m=c.indexOf(g[0]),h=c.substring(0,m).trim(),u=c.substring(m+1).trim();else{let C=0,_=0;for(;C<=I;)m=c.indexOf(g[C],_),_=m+1,C++;h=c.substring(0,m).trim(),u=c.substring(m+1).trim()}}let p=h.split(".");if(p.length==2&&p[1]==0&&p[1].length!=2)throw new Error("invalid coordinates format");let d=u.split(".");if(d.length==2&&d[1]==0&&d[1].length!=2)throw new Error("invalid coordinates format");if(/^\d+$/.test(h)||/^\d+$/.test(u))throw new Error("degree only coordinate/s provided");return t=Number(Number(t).toFixed(e)),n=Number(Number(n).toFixed(e)),Object.freeze({verbatimCoordinates:c,verbatimLatitude:h,verbatimLongitude:u,decimalLatitude:t,decimalLongitude:n,decimalCoordinates:`${t},${n}`,originalFormat:s,closeEnough:MO,toCoordinateFormat:LO})}else throw new Error("coordinates pattern match failed")}function xh(i){if(!isNaN(i[0]))return!1;let e=[...i];if(e.shift(),e.length%2>0)return!1;let t=/^[-+]?\d+([\.,]\d+)?$/,n=/[eastsouthnorthwest]+/i,r=e.length/2;for(let o=0;o{e.decimalLatitude?i.push(e):i.push({...e,...NO})}),[...i,...GO,...OO]}var zO=UO();yy.formats=zO.map(i=>i.verbatimCoordinates);var YO=yy;function kR(i,e,t){let n=i.slice();return n[97]=e[t],n[99]=t,n}function PR(i){let e,t;return e=new oy({}),{c(){Ls(e.$$.fragment)},m(n,r){Po(e,n,r),t=!0},i(n){t||(Ft(e.$$.fragment,n),t=!0)},o(n){ni(e.$$.fragment,n),t=!1},d(n){No(e,n)}}}function NR(i){let e,t,n,r,o;return t=new sy({}),{c(){e=nt("button"),Ls(t.$$.fragment),Y(e,"type","button"),Y(e,"title",i[10]),Y(e,"class","svelte-bz0zu3"),sA(e,"active",i[0])},m(s,a){_t(s,e,a),Po(t,e,null),n=!0,r||(o=Jt(e,"click",i[79]),r=!0)},p(s,a){(!n||a[0]&1024)&&Y(e,"title",s[10]),(!n||a[0]&1)&&sA(e,"active",s[0])},i(s){n||(Ft(t.$$.fragment,s),n=!0)},o(s){ni(t.$$.fragment,s),n=!1},d(s){s&>(e),No(t),r=!1,o()}}}function VO(i){let e,t=[],n=new Map,r,o,s,a=SR(i[13]),l=A=>A[97].id+(A[97].address?","+A[97].address:"");for(let A=0;A{T=null}),ad()),(!C||S[0]&2)&&sA(A,"displayable",Q[1]!==""),Q[6]==="button"?E?(E.p(Q,S),S[0]&64&&Ft(E,1)):(E=NR(Q),E.c(),Ft(E,1),E.m(n,g)):E&&(sd(),ni(E,1,1,()=>{E=null}),ad()),B&&B.p&&(!C||S[2]&128)&&Z3(B,x,Q,Q[69],C?$3(x,Q[69],S,null):eO(Q[69]),null);let b=d;d=D(Q),d===b?~d&&v[d].p(Q,S):(I&&(sd(),ni(v[b],1,1,()=>{v[b]=null}),ad()),~d?(I=v[d],I?I.p(Q,S):(I=v[d]=R[d](Q),I.c()),Ft(I,1),I.m(t,null)):I=null),(!C||S[0]&4&&m!==(m=cd(Q[2])+" svelte-bz0zu3"))&&Y(t,"class",m),(!C||S[0]&38)&&sA(t,"can-collapse",Q[5]&&Q[1]==="")},i(Q){C||(Ft(w),Ft(o.$$.fragment,Q),Ft(h.$$.fragment,Q),Ft(T),Ft(E),Ft(B,Q),Ft(I),C=!0)},o(Q){ni(w),ni(o.$$.fragment,Q),ni(h.$$.fragment,Q),ni(T),ni(E),ni(B,Q),ni(I),C=!1},d(Q){Q&&(gt(e),gt(t)),No(o),i[72](null),No(h),T&&T.d(),E&&E.d(),B&&B.d(Q),~d&&v[d].d(),_=!1,Uo(y)}}}function jO(i,e,t){let n,r,o,{$$slots:s={},$$scope:a}=e,l={continental_marine:4,country:4,major_landform:8,region:5,subregion:6,county:7,joint_municipality:8,joint_submunicipality:9,municipality:10,municipal_district:11,locality:12,neighbourhood:13,place:14,postal_code:14,road:16,poi:17,address:18,"poi.peak":15,"poi.shop":18,"poi.cafe":18,"poi.restaurant":18,"poi.aerodrome":13},{class:A=void 0}=e,{apiKey:c}=e,{bbox:h=void 0}=e,{clearButtonTitle:u="clear"}=e,{clearOnBlur:f=!1}=e,{clearListOnPick:g=!1}=e,{keepListOpen:p=!1}=e,{collapsed:d=!1}=e,{country:I=void 0}=e,{debounceSearch:m=200}=e,{enableReverse:C="never"}=e,{errorMessage:_="Something went wrong\u2026"}=e,{filter:y=()=>!0}=e,{flyTo:w=!0}=e,{fuzzyMatch:T=!0}=e,{language:E=void 0}=e,{limit:x=void 0}=e,B=41415112612,{reverseGeocodingLimit:R=B}=e,{mapController:v=void 0}=e,{minLength:D=2}=e,{noResultsMessage:Q="Oops! Looks like you're trying to predict something that's not quite right. We can't seem to find what you're looking for. Maybe try double-checking your spelling or try a different search term. Keep on typing - we'll do our best to get you where you need to go!"}=e,{placeholder:S="Search"}=e,{proximity:b=[{type:"server-geolocation"}]}=e,{reverseActive:F=C==="always"}=e,{reverseButtonTitle:M="toggle reverse geocoding"}=e,{searchValue:k=""}=e,{pickedResultStyle:P="full-geometry"}=e,{showPlaceType:U="if-needed"}=e,{showResultsWhileTyping:N=!0}=e,{selectFirst:j=!0}=e,{flyToSelected:X=!1}=e,{markerOnSelected:z=!0}=e,{types:q=void 0}=e,Z=[],{reverseGeocodingTypes:ge=Z}=e,{exhaustiveReverseGeocoding:me=!1}=e,{excludeTypes:de=!1}=e,ve=void 0,{reverseGeocodingExcludeTypes:Ve=ve}=e,{zoom:Me=l}=e,{apiUrl:Se="https://api.maptiler.com/geocoding"}=e,{fetchParameters:Ae={}}=e,{iconsBaseUrl:ri="https://cdn.maptiler.com/maptiler-geocoding-control/v2.1.6/icons/"}=e,{adjustUrlQuery:gn=()=>{}}=e,{adjustUrl:Yt=()=>{}}=e;function or(O){dn.focus(O)}function $t(){dn.blur()}function Xr(O,et=!0,si=!1){t(1,k=O),et?(t(15,He=-1),xa()):(Ri(void 0,!si,si),setTimeout(()=>{dn.focus(),dn.select()}))}function Yo(){t(13,De=void 0),t(14,se=void 0),t(15,He=-1)}function Lt(){t(64,xt=[]),t(14,se=void 0)}let De,xt,se,Ms="",dn,He=-1,pn,Vo=[],Ho,qo,jr,_a,mn=!1,kh=new Set,Ir=rQ();oO(()=>{v&&(v.setEventHandler(void 0),v.indicateReverse(!1),v.setSelectedMarker(-1),v.setFeatures(void 0,void 0,!1))});function xa(O){if(t(17,mn=!1),qo&&(clearTimeout(qo),qo=void 0),He>-1&&De)t(14,se=De[He]),t(1,k=se.place_type[0]==="reverse"?se.place_name:se.place_name.replace(/,.*/,"")),t(19,pn=void 0),t(64,xt=void 0),t(15,He=-1);else if(k){let et=O||!Wr(k);Jr(k,{exact:!0}).then(()=>{t(64,xt=De),t(14,se=void 0),et&&ks()}).catch(si=>t(19,pn=si))}}function Wr(O){try{return YO(O,6)}catch{return!1}}async function Jr(O,{byId:et=!1,exact:si=!1}={}){var Ki,En,Cr;t(19,pn=void 0),Ho?.abort();let yr=new AbortController;t(20,Ho=yr);try{let tt=Wr(O),pA=new URL(Se+"/"+encodeURIComponent(tt?tt.decimalLongitude+","+tt.decimalLatitude:O)+".json"),Fn=pA.searchParams;E!==void 0&&Fn.set("language",Array.isArray(E)?E.join(","):E??"");let[Rd]=v?.getCenterAndZoom()??[],Xo=(Ki=!tt||ge===Z?q:ge)==null?void 0:Ki.map(fi=>typeof fi=="string"?fi:Rd===void 0||(fi[0]??0)<=Rd&&Rd<(fi[1]??1/0)?fi[2]:void 0).filter(fi=>fi!==void 0);Xo&&(Xo=[...new Set(Xo)],Fn.set("types",Xo.join(",")));let Dy=!tt||Ve===ve?de:Ve;if(Dy&&Fn.set("excludeTypes",String(Dy)),h&&Fn.set("bbox",h.map(fi=>fi.toFixed(6)).join(",")),I&&Fn.set("country",Array.isArray(I)?I.join(","):I),!et&&!tt){let fi=await DO(v,b,yr);fi&&Fn.set("proximity",fi),(si||!N)&&Fn.set("autocomplete","false"),Fn.set("fuzzyMatch",String(T))}let mA=R===B?x:R;mA!==void 0&&mA>1&&Xo?.length!==1&&console.warn("For reverse geocoding when limit > 1 then types must contain single value."),tt?(mA===1||mA!==void 0&&(me||Xo?.length===1))&&Fn.set("limit",String(mA)):x!==void 0&&Fn.set("limit",String(x)),c&&Fn.set("key",c),gn(Fn),Yt(pA);let UQ=pA.searchParams.get("types")===""&&pA.searchParams.get("excludeTypes")!=="true",Ph=pA.toString();if(Ph===Ms){et?(g&&t(13,De=void 0),t(14,se=Vo[0])):(t(13,De=Vo),((En=De[He])==null?void 0:En.id)!==r?.id&&t(15,He=-1));return}Ms=Ph;let EA;if(UQ)EA={type:"FeatureCollection",features:[]};else{let fi=await fetch(Ph,{signal:yr.signal,...Ae});if(!fi.ok)throw new Error(await fi.text());EA=await fi.json()}Ir("response",{url:Ph,featureCollection:EA}),et?(g&&t(13,De=void 0),t(14,se=EA.features[0]),Vo=[se]):(t(13,De=EA.features.filter(y)),tt&&De.unshift({type:"Feature",properties:{},id:"reverse_"+tt.decimalLongitude+"_"+tt.decimalLatitude,text:tt.decimalLatitude+", "+tt.decimalLongitude,place_name:tt.decimalLatitude+", "+tt.decimalLongitude,place_type:["reverse"],center:[tt.decimalLongitude,tt.decimalLatitude],bbox:[tt.decimalLongitude,tt.decimalLatitude,tt.decimalLongitude,tt.decimalLatitude],geometry:{type:"Point",coordinates:[tt.decimalLongitude,tt.decimalLatitude]}}),Vo=De,((Cr=De[He])==null?void 0:Cr.id)!==r?.id&&t(15,He=-1),tt&&dn.focus())}catch(tt){if(tt&&typeof tt=="object"&&"name"in tt&&tt.name==="AbortError")return;throw tt}finally{yr===Ho&&t(20,Ho=void 0)}}function ks(){var O;if(!(xt!=null&&xt.length)||!w)return;let et=[180,90,-180,-90],si=!xt.some(En=>!En.matching_text),Ki;for(let En of xt){let Cr=Ko(En);if(Ki=Ki===void 0?Cr:Cr===void 0?Ki:Math.max(Ki,Cr),si||!En.matching_text)for(let yr of[0,1,2,3])et[yr]=Math[yr<2?"min":"max"](et[yr],((O=En.bbox)==null?void 0:O[yr])??En.center[yr%2])}v&&xt.length>0&&(se&&et[0]===et[2]&&et[1]===et[3]?v.flyTo(se.center,Ko(se)):v.fitBounds(fd(et),50,Ki))}function Ba(){!se||!v||(!se.bbox||se.bbox[0]===se.bbox[2]&&se.bbox[1]===se.bbox[3]?v.flyTo(se.center,Ko(se)):v.fitBounds(fd(se.bbox),50,Ko(se)))}function Ko(O){var et;if(!O.bbox||O.bbox[0]!==O.bbox[2]&&O.bbox[1]!==O.bbox[3])return;let si=O.id.replace(/\..*/,"");return(Array.isArray((et=O.properties)==null?void 0:et.categories)?O.properties.categories.reduce((Ki,En)=>{let Cr=Me[si+"."+En];return Ki===void 0?Cr:Cr===void 0?Ki:Math.max(Ki,Cr)},void 0):void 0)??Me[si]}function Hi(O){t(0,F=C==="always"),t(13,De=void 0),t(14,se=void 0),t(15,He=-1),Xr(O[1].toFixed(6)+", "+bO(O[0],[-180,180],!0).toFixed(6),!1,!0)}function $r(O){if(!De)return;let et=O.key==="ArrowDown"?1:O.key==="ArrowUp"?-1:0;et&&(dn.focus(),t(17,mn=!0),O.preventDefault(),se&&He===-1&&t(15,He=De.findIndex(si=>si.id===se?.id)),He===(se||j?0:-1)&&et===-1&&t(15,He=De.length),t(15,He+=et),He>=De.length&&t(15,He=-1),He<0&&(se||j)&&t(15,He=0))}function Ri(O,et=!0,si=!1){if(t(19,pn=void 0),t(14,se=void 0),t(17,mn=!0),N||si){if(qo&&clearTimeout(qo),k.length{Jr(Ki).catch(En=>t(19,pn=En))},et?m:0)}else t(13,De=void 0),t(19,pn=void 0)}function qi(O){se&&se?.id===O?.id?Ba():(t(14,se=O),t(1,k=O.place_name))}function Qi(O){t(15,He=O)}function sr(){(!j||se)&&t(15,He=-1),X&&Ba()}let ar=()=>dn.focus();function dt(O){ey[O?"unshift":"push"](()=>{dn=O,t(18,dn)})}function oi(){k=this.value,t(1,k),t(17,mn),t(31,f),t(16,jr)}let lr=()=>t(17,mn=!0),Td=()=>t(17,mn=!1),FQ=()=>t(17,mn=!0),LQ=()=>t(14,se=void 0),MQ=()=>{t(1,k=""),t(14,se=void 0),dn.focus()},kQ=()=>t(0,F=!F),PQ=()=>t(19,pn=void 0),NQ=O=>Qi(O),GQ=O=>qi(O),OQ=()=>{};return i.$$set=O=>{"class"in O&&t(2,A=O.class),"apiKey"in O&&t(29,c=O.apiKey),"bbox"in O&&t(30,h=O.bbox),"clearButtonTitle"in O&&t(3,u=O.clearButtonTitle),"clearOnBlur"in O&&t(31,f=O.clearOnBlur),"clearListOnPick"in O&&t(32,g=O.clearListOnPick),"keepListOpen"in O&&t(4,p=O.keepListOpen),"collapsed"in O&&t(5,d=O.collapsed),"country"in O&&t(33,I=O.country),"debounceSearch"in O&&t(34,m=O.debounceSearch),"enableReverse"in O&&t(6,C=O.enableReverse),"errorMessage"in O&&t(7,_=O.errorMessage),"filter"in O&&t(35,y=O.filter),"flyTo"in O&&t(36,w=O.flyTo),"fuzzyMatch"in O&&t(37,T=O.fuzzyMatch),"language"in O&&t(38,E=O.language),"limit"in O&&t(39,x=O.limit),"reverseGeocodingLimit"in O&&t(40,R=O.reverseGeocodingLimit),"mapController"in O&&t(41,v=O.mapController),"minLength"in O&&t(42,D=O.minLength),"noResultsMessage"in O&&t(8,Q=O.noResultsMessage),"placeholder"in O&&t(9,S=O.placeholder),"proximity"in O&&t(43,b=O.proximity),"reverseActive"in O&&t(0,F=O.reverseActive),"reverseButtonTitle"in O&&t(10,M=O.reverseButtonTitle),"searchValue"in O&&t(1,k=O.searchValue),"pickedResultStyle"in O&&t(44,P=O.pickedResultStyle),"showPlaceType"in O&&t(11,U=O.showPlaceType),"showResultsWhileTyping"in O&&t(45,N=O.showResultsWhileTyping),"selectFirst"in O&&t(46,j=O.selectFirst),"flyToSelected"in O&&t(47,X=O.flyToSelected),"markerOnSelected"in O&&t(48,z=O.markerOnSelected),"types"in O&&t(49,q=O.types),"reverseGeocodingTypes"in O&&t(50,ge=O.reverseGeocodingTypes),"exhaustiveReverseGeocoding"in O&&t(51,me=O.exhaustiveReverseGeocoding),"excludeTypes"in O&&t(52,de=O.excludeTypes),"reverseGeocodingExcludeTypes"in O&&t(53,Ve=O.reverseGeocodingExcludeTypes),"zoom"in O&&t(54,Me=O.zoom),"apiUrl"in O&&t(55,Se=O.apiUrl),"fetchParameters"in O&&t(56,Ae=O.fetchParameters),"iconsBaseUrl"in O&&t(12,ri=O.iconsBaseUrl),"adjustUrlQuery"in O&&t(57,gn=O.adjustUrlQuery),"adjustUrl"in O&&t(58,Yt=O.adjustUrl),"$$scope"in O&&t(69,a=O.$$scope)},i.$$.update=()=>{if(i.$$.dirty[0]&64&&t(0,F=C==="always"),i.$$.dirty[0]&16384|i.$$.dirty[1]&8192&&P!=="marker-only"&&se&&!se.address&&se.geometry.type==="Point"&&se.place_type[0]!=="reverse"&&Jr(se.id,{byId:!0}).catch(O=>t(19,pn=O)),i.$$.dirty[0]&16384|i.$$.dirty[1]&1058|i.$$.dirty[2]&8&&(v&&se&&se.id!==_a&&w&&(Ba(),g&&t(13,De=void 0),t(64,xt=void 0),t(15,He=-1)),t(65,_a=se?.id)),i.$$.dirty[0]&196608|i.$$.dirty[1]&1&&setTimeout(()=>{t(16,jr=mn),f&&!jr&&t(1,k="")}),i.$$.dirty[0]&8194|i.$$.dirty[1]&2048&&k.length{switch(O.type){case"mapClick":F&&Hi(O.coordinates);break;case"markerClick":{let et=De?.find(si=>si.id===O.id);et&&qi(et)}break;case"markerMouseEnter":xt&&t(15,He=jr?De?.findIndex(et=>et.id===O.id)??-1:-1);break;case"markerMouseLeave":xt&&t(15,He=-1);break}}),i.$$.dirty[0]&40960&&t(66,r=De?.[He]),i.$$.dirty[1]&66592|i.$$.dirty[2]&16&&v&&r&&w&&X&&v.flyTo(r.center,Ko(r)),i.$$.dirty[1]&8192&&t(68,n=P==="full-geometry-including-polygon-center-marker"),i.$$.dirty[1]&132096|i.$$.dirty[2]&64&&(z||v==null||v.setFeatures(void 0,void 0,n)),i.$$.dirty[0]&16384|i.$$.dirty[1]&132096|i.$$.dirty[2]&84&&v&&z&&!xt&&(v.setFeatures(r?[r]:void 0,se,n),v.setSelectedMarker(r?0:-1)),i.$$.dirty[0]&16384|i.$$.dirty[1]&1024|i.$$.dirty[2]&68&&v&&v.setFeatures(xt,se,n),i.$$.dirty[0]&32768|i.$$.dirty[1]&1024|i.$$.dirty[2]&4&&xt&&v&&v.setSelectedMarker(He),i.$$.dirty[0]&2|i.$$.dirty[1]&1024&&v){let O=Wr(k);v.setReverseMarker(O?[O.decimalLongitude,O.decimalLatitude]:void 0)}i.$$.dirty[2]&16&&Ir("select",{feature:r}),i.$$.dirty[0]&16384&&Ir("pick",{feature:se}),i.$$.dirty[0]&73744&&t(67,o=!!(De!=null&&De.length)&&(jr||p)),i.$$.dirty[2]&32&&Ir("optionsvisibilitychange",{optionsVisible:o}),i.$$.dirty[0]&8192&&Ir("featureslisted",{features:De}),i.$$.dirty[2]&4&&Ir("featuresmarked",{features:xt}),i.$$.dirty[0]&1&&Ir("reversetoggle",{reverse:F}),i.$$.dirty[0]&2&&Ir("querychange",{query:k}),i.$$.dirty[0]&1|i.$$.dirty[1]&1024&&v&&v.indicateReverse(F)},[F,k,A,u,p,d,C,_,Q,S,M,U,ri,De,se,He,jr,mn,dn,pn,Ho,kh,xa,$r,Ri,qi,Qi,sr,l,c,h,f,g,I,m,y,w,T,E,x,R,v,D,b,P,N,j,X,z,q,ge,me,de,Ve,Me,Se,Ae,gn,Yt,or,$t,Xr,Yo,Lt,xt,_a,r,o,n,a,s,ar,dt,oi,lr,Td,FQ,LQ,MQ,kQ,PQ,NQ,GQ,OQ]}var WO=class extends Go{constructor(i){super(),ya(this,i,jO,XO,Ca,{ZOOM_DEFAULTS:28,class:2,apiKey:29,bbox:30,clearButtonTitle:3,clearOnBlur:31,clearListOnPick:32,keepListOpen:4,collapsed:5,country:33,debounceSearch:34,enableReverse:6,errorMessage:7,filter:35,flyTo:36,fuzzyMatch:37,language:38,limit:39,reverseGeocodingLimit:40,mapController:41,minLength:42,noResultsMessage:8,placeholder:9,proximity:43,reverseActive:0,reverseButtonTitle:10,searchValue:1,pickedResultStyle:44,showPlaceType:11,showResultsWhileTyping:45,selectFirst:46,flyToSelected:47,markerOnSelected:48,types:49,reverseGeocodingTypes:50,exhaustiveReverseGeocoding:51,excludeTypes:52,reverseGeocodingExcludeTypes:53,zoom:54,apiUrl:55,fetchParameters:56,iconsBaseUrl:12,adjustUrlQuery:57,adjustUrl:58,focus:59,blur:60,setQuery:61,clearList:62,clearMap:63},null,[-1,-1,-1,-1])}get ZOOM_DEFAULTS(){return this.$$.ctx[28]}get focus(){return this.$$.ctx[59]}get blur(){return this.$$.ctx[60]}get setQuery(){return this.$$.ctx[61]}get clearList(){return this.$$.ctx[62]}get clearMap(){return this.$$.ctx[63]}};function gd(i,e,t={}){let n={type:"Feature"};return(t.id===0||t.id)&&(n.id=t.id),t.bbox&&(n.bbox=t.bbox),n.properties=e||{},n.geometry=i,n}function _y(i,e,t={}){for(let n of i){if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(n[n.length-1].length!==n[0].length)throw new Error("First and last Position are not equivalent.");for(let r=0;r{t[0]>n[0]&&(t[0]=n[0]),t[1]>n[1]&&(t[1]=n[1]),t[2]h?M.c=M.e=null:E.e=10;Q/=10,D++);D>h?M.c=M.e=null:(M.e=D,M.c=[E]);return}F=String(E)}else{if(!ZO.test(F=String(E)))return n(M,F,S);M.s=F.charCodeAt(0)==45?(F=F.slice(1),-1):1}(D=F.indexOf("."))>-1&&(F=F.replace(".","")),(Q=F.search(/e/i))>0?(D<0&&(D=Q),D+=+F.slice(Q+1),F=F.substring(0,Q)):D<0&&(D=F.length)}else{if(wt(x,2,d.length,"Base"),x==10&&I)return M=new m(E),w(M,s+M.e+1,a);if(F=String(E),S=typeof E=="number"){if(E*0!=0)return n(M,F,S,x);if(M.s=1/E<0?(F=F.slice(1),-1):1,m.DEBUG&&F.replace(/^0\.0*|\./,"").length>15)throw Error(UR+E)}else M.s=F.charCodeAt(0)===45?(F=F.slice(1),-1):1;for(B=d.slice(0,x),D=Q=0,b=F.length;QD){D=b;continue}}else if(!v&&(F==F.toUpperCase()&&(F=F.toLowerCase())||F==F.toLowerCase()&&(F=F.toUpperCase()))){v=!0,Q=-1,D=0;continue}return n(M,String(E),S,x)}S=!1,F=t(F,x,10,M.s),(D=F.indexOf("."))>-1?F=F.replace(".",""):D=F.length}for(Q=0;F.charCodeAt(Q)===48;Q++);for(b=F.length;F.charCodeAt(--b)===48;);if(F=F.slice(Q,++b)){if(b-=Q,S&&m.DEBUG&&b>15&&(E>zR||E!==ir(E)))throw Error(UR+M.s*E);if((D=D-Q-1)>h)M.c=M.e=null;else if(D=-1e9&&v<=bn&&v===ir(v)){if(R[0]===0){if(v===0&&R.length===1)return!0;break e}if(x=(v+1)%_e,x<1&&(x+=_e),String(R[0]).length==x){for(x=0;x=Er||B!==ir(B))break e;if(B!==0)return!0}}}else if(R===null&&v===null&&(D===null||D===1||D===-1))return!0;throw Error(fn+"Invalid BigNumber: "+E)},m.maximum=m.max=function(){return _(arguments,-1)},m.minimum=m.min=function(){return _(arguments,1)},m.random=function(){var E=9007199254740992,x=Math.random()*E&2097151?function(){return ir(Math.random()*E)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(B){var R,v,D,Q,S,b=0,F=[],M=new m(o);if(B==null?B=s:wt(B,0,bn),Q=$C(B/_e),u)if(crypto.getRandomValues){for(R=crypto.getRandomValues(new Uint32Array(Q*=2));b>>11),S>=9e15?(v=crypto.getRandomValues(new Uint32Array(2)),R[b]=v[0],R[b+1]=v[1]):(F.push(S%1e14),b+=2);b=Q/2}else if(crypto.randomBytes){for(R=crypto.randomBytes(Q*=7);b=9e15?crypto.randomBytes(7).copy(R,b):(F.push(S%1e14),b+=7);b=Q/7}else throw u=!1,Error(fn+"crypto unavailable");if(!u)for(;b=10;S/=10,b++);b<_e&&(D-=_e-b)}return M.e=D,M.c=F,M}}(),m.sum=function(){for(var E=1,x=arguments,B=new m(x[0]);Ev-1&&(S[Q+1]==null&&(S[Q+1]=0),S[Q+1]+=S[Q]/v|0,S[Q]%=v)}return S.reverse()}return function(B,R,v,D,Q){var S,b,F,M,k,P,U,N,j=B.indexOf("."),X=s,z=a;for(j>=0&&(M=g,g=0,B=B.replace(".",""),N=new m(R),P=N.pow(B.length-j),g=M,N.c=x(Mo(tr(P.c),P.e,"0"),10,v,E),N.e=N.c.length),U=x(B,R,v,Q?(S=d,E):(S=E,d)),F=M=U.length;U[--M]==0;U.pop());if(!U[0])return S.charAt(0);if(j<0?--F:(P.c=U,P.e=F,P.s=D,P=e(P,N,X,z,v),U=P.c,k=P.r,F=P.e),b=F+X+1,j=U[b],M=v/2,k=k||b<0||U[b+1]!=null,k=z<4?(j!=null||k)&&(z==0||z==(P.s<0?3:2)):j>M||j==M&&(z==4||k||z==6&&U[b-1]&1||z==(P.s<0?8:7)),b<1||!U[0])B=k?Mo(S.charAt(1),-X,S.charAt(0)):S.charAt(0);else{if(U.length=b,k)for(--v;++U[--b]>v;)U[b]=0,b||(++F,U=[1].concat(U));for(M=U.length;!U[--M];);for(j=0,B="";j<=M;B+=S.charAt(U[j++]));B=Mo(B,F,S.charAt(0))}return B}}(),e=function(){function E(R,v,D){var Q,S,b,F,M=0,k=R.length,P=v%Ds,U=v/Ds|0;for(R=R.slice();k--;)b=R[k]%Ds,F=R[k]/Ds|0,Q=U*b+F*P,S=P*b+Q%Ds*Ds+M,M=(S/D|0)+(Q/Ds|0)+U*F,R[k]=S%D;return M&&(R=[M].concat(R)),R}function x(R,v,D,Q){var S,b;if(D!=Q)b=D>Q?1:-1;else for(S=b=0;Sv[S]?1:-1;break}return b}function B(R,v,D,Q){for(var S=0;D--;)R[D]-=S,S=R[D]1;R.splice(0,1));}return function(R,v,D,Q,S){var b,F,M,k,P,U,N,j,X,z,q,Z,ge,me,de,ve,Ve,Me=R.s==v.s?1:-1,Se=R.c,Ae=v.c;if(!Se||!Se[0]||!Ae||!Ae[0])return new m(!R.s||!v.s||(Se?Ae&&Se[0]==Ae[0]:!Ae)?NaN:Se&&Se[0]==0||!Ae?Me*0:Me/0);for(j=new m(Me),X=j.c=[],F=R.e-v.e,Me=D+F+1,S||(S=Er,F=nr(R.e/_e)-nr(v.e/_e),Me=Me/_e|0),M=0;Ae[M]==(Se[M]||0);M++);if(Ae[M]>(Se[M]||0)&&F--,Me<0)X.push(1),k=!0;else{for(me=Se.length,ve=Ae.length,M=0,Me+=2,P=ir(S/(Ae[0]+1)),P>1&&(Ae=E(Ae,P,S),Se=E(Se,P,S),ve=Ae.length,me=Se.length),ge=ve,z=Se.slice(0,ve),q=z.length;q=S/2&&de++;do{if(P=0,b=x(Ae,z,ve,q),b<0){if(Z=z[0],ve!=q&&(Z=Z*S+(z[1]||0)),P=ir(Z/de),P>1)for(P>=S&&(P=S-1),U=E(Ae,P,S),N=U.length,q=z.length;x(U,z,N,q)==1;)P--,B(U,ve=10;Me/=10,M++);w(j,D+(j.e=M+F*_e-1)+1,Q,k)}else j.e=F,j.r=+k;return j}}();function C(E,x,B,R){var v,D,Q,S,b;if(B==null?B=a:wt(B,0,8),!E.c)return E.toString();if(v=E.c[0],Q=E.e,x==null)b=tr(E.c),b=R==1||R==2&&(Q<=l||Q>=A)?rd(b,Q):Mo(b,Q,"0");else if(E=w(new m(E),x,B),D=E.e,b=tr(E.c),S=b.length,R==1||R==2&&(x<=D||D<=l)){for(;SS){if(--x>0)for(b+=".";x--;b+="0");}else if(x+=D-S,x>0)for(D+1==S&&(b+=".");x--;b+="0");return E.s<0&&v?"-"+b:b}function _(E,x){for(var B,R,v=1,D=new m(E[0]);v=10;v/=10,R++);return(B=R+B*_e-1)>h?E.c=E.e=null:B=10;S/=10,v++);if(D=x-v,D<0)D+=_e,Q=x,b=k[F=0],M=ir(b/P[v-Q-1]%10);else if(F=$C((D+1)/_e),F>=k.length)if(R){for(;k.length<=F;k.push(0));b=M=0,v=1,D%=_e,Q=D-_e+1}else break e;else{for(b=S=k[F],v=1;S>=10;S/=10,v++);D%=_e,Q=D-_e+v,M=Q<0?0:ir(b/P[v-Q-1]%10)}if(R=R||x<0||k[F+1]!=null||(Q<0?b:b%P[v-Q-1]),R=B<4?(M||R)&&(B==0||B==(E.s<0?3:2)):M>5||M==5&&(B==4||R||B==6&&(D>0?Q>0?b/P[v-Q]:0:k[F-1])%10&1||B==(E.s<0?8:7)),x<1||!k[0])return k.length=0,R?(x-=E.e+1,k[0]=P[(_e-x%_e)%_e],E.e=-x||0):k[0]=E.e=0,E;if(D==0?(k.length=F,S=1,F--):(k.length=F+1,S=P[_e-D],k[F]=Q>0?ir(b/P[v-Q]%P[Q])*S:0),R)for(;;)if(F==0){for(D=1,Q=k[0];Q>=10;Q/=10,D++);for(Q=k[0]+=S,S=1;Q>=10;Q/=10,S++);D!=S&&(E.e++,k[0]==Er&&(k[0]=1));break}else{if(k[F]+=S,k[F]!=Er)break;k[F--]=0,S=1}for(D=k.length;k[--D]===0;k.pop());}E.e>h?E.c=E.e=null:E.e=A?rd(x,B):Mo(x,B,"0"),E.s<0?"-"+x:x)}return r.absoluteValue=r.abs=function(){var E=new m(this);return E.s<0&&(E.s=1),E},r.comparedTo=function(E,x){return Ea(this,new m(E,x))},r.decimalPlaces=r.dp=function(E,x){var B,R,v,D=this;if(E!=null)return wt(E,0,bn),x==null?x=a:wt(x,0,8),w(new m(D),E+D.e+1,x);if(!(B=D.c))return null;if(R=((v=B.length-1)-nr(this.e/_e))*_e,v=B[v])for(;v%10==0;v/=10,R--);return R<0&&(R=0),R},r.dividedBy=r.div=function(E,x){return e(this,new m(E,x),s,a)},r.dividedToIntegerBy=r.idiv=function(E,x){return e(this,new m(E,x),0,1)},r.exponentiatedBy=r.pow=function(E,x){var B,R,v,D,Q,S,b,F,M,k=this;if(E=new m(E),E.c&&!E.isInteger())throw Error(fn+"Exponent not an integer: "+T(E));if(x!=null&&(x=new m(x)),S=E.e>14,!k.c||!k.c[0]||k.c[0]==1&&!k.e&&k.c.length==1||!E.c||!E.c[0])return M=new m(Math.pow(+T(k),S?E.s*(2-nd(E)):+T(E))),x?M.mod(x):M;if(b=E.s<0,x){if(x.c?!x.c[0]:!x.s)return new m(NaN);R=!b&&k.isInteger()&&x.isInteger(),R&&(k=k.mod(x))}else{if(E.e>9&&(k.e>0||k.e<-1||(k.e==0?k.c[0]>1||S&&k.c[1]>=24e7:k.c[0]<8e13||S&&k.c[0]<=9999975e7)))return D=k.s<0&&nd(E)?-0:0,k.e>-1&&(D=1/D),new m(b?1/D:D);g&&(D=$C(g/_e+2))}for(S?(B=new m(.5),b&&(E.s=1),F=nd(E)):(v=Math.abs(+T(E)),F=v%2),M=new m(o);;){if(F){if(M=M.times(k),!M.c)break;D?M.c.length>D&&(M.c.length=D):R&&(M=M.mod(x))}if(v){if(v=ir(v/2),v===0)break;F=v%2}else if(E=E.times(B),w(E,E.e+1,1),E.e>14)F=nd(E);else{if(v=+T(E),v===0)break;F=v%2}k=k.times(k),D?k.c&&k.c.length>D&&(k.c.length=D):R&&(k=k.mod(x))}return R?M:(b&&(M=o.div(M)),x?M.mod(x):D?w(M,g,a,Q):M)},r.integerValue=function(E){var x=new m(this);return E==null?E=a:wt(E,0,8),w(x,x.e+1,E)},r.isEqualTo=r.eq=function(E,x){return Ea(this,new m(E,x))===0},r.isFinite=function(){return!!this.c},r.isGreaterThan=r.gt=function(E,x){return Ea(this,new m(E,x))>0},r.isGreaterThanOrEqualTo=r.gte=function(E,x){return(x=Ea(this,new m(E,x)))===1||x===0},r.isInteger=function(){return!!this.c&&nr(this.e/_e)>this.c.length-2},r.isLessThan=r.lt=function(E,x){return Ea(this,new m(E,x))<0},r.isLessThanOrEqualTo=r.lte=function(E,x){return(x=Ea(this,new m(E,x)))===-1||x===0},r.isNaN=function(){return!this.s},r.isNegative=function(){return this.s<0},r.isPositive=function(){return this.s>0},r.isZero=function(){return!!this.c&&this.c[0]==0},r.minus=function(E,x){var B,R,v,D,Q=this,S=Q.s;if(E=new m(E,x),x=E.s,!S||!x)return new m(NaN);if(S!=x)return E.s=-x,Q.plus(E);var b=Q.e/_e,F=E.e/_e,M=Q.c,k=E.c;if(!b||!F){if(!M||!k)return M?(E.s=-x,E):new m(k?Q:NaN);if(!M[0]||!k[0])return k[0]?(E.s=-x,E):new m(M[0]?Q:a==3?-0:0)}if(b=nr(b),F=nr(F),M=M.slice(),S=b-F){for((D=S<0)?(S=-S,v=M):(F=b,v=k),v.reverse(),x=S;x--;v.push(0));v.reverse()}else for(R=(D=(S=M.length)<(x=k.length))?S:x,S=x=0;x0)for(;x--;M[B++]=0);for(x=Er-1;R>S;){if(M[--R]=0;){for(B=0,P=Z[v]%X,U=Z[v]/X|0,Q=b,D=v+Q;D>v;)F=q[--Q]%X,M=q[Q]/X|0,S=U*F+M*P,F=P*F+S%X*X+N[D]+B,B=(F/j|0)+(S/X|0)+U*M,N[D--]=F%j;N[D]=B}return B?++R:N.splice(0,1),y(E,N,R)},r.negated=function(){var E=new m(this);return E.s=-E.s||null,E},r.plus=function(E,x){var B,R=this,v=R.s;if(E=new m(E,x),x=E.s,!v||!x)return new m(NaN);if(v!=x)return E.s=-x,R.minus(E);var D=R.e/_e,Q=E.e/_e,S=R.c,b=E.c;if(!D||!Q){if(!S||!b)return new m(v/0);if(!S[0]||!b[0])return b[0]?E:new m(S[0]?R:v*0)}if(D=nr(D),Q=nr(Q),S=S.slice(),v=D-Q){for(v>0?(Q=D,B=b):(v=-v,B=S),B.reverse();v--;B.push(0));B.reverse()}for(v=S.length,x=b.length,v-x<0&&(B=b,b=S,S=B,x=v),v=0;x;)v=(S[--x]=S[x]+b[x]+v)/Er|0,S[x]=Er===S[x]?0:S[x]%Er;return v&&(S=[v].concat(S),++Q),y(E,S,Q)},r.precision=r.sd=function(E,x){var B,R,v,D=this;if(E!=null&&E!==!!E)return wt(E,1,bn),x==null?x=a:wt(x,0,8),w(new m(D),E,x);if(!(B=D.c))return null;if(v=B.length-1,R=v*_e+1,v=B[v]){for(;v%10==0;v/=10,R--);for(v=B[0];v>=10;v/=10,R++);}return E&&D.e+1>R&&(R=D.e+1),R},r.shiftedBy=function(E){return wt(E,-9007199254740991,zR),this.times("1e"+E)},r.squareRoot=r.sqrt=function(){var E,x,B,R,v,D=this,Q=D.c,S=D.s,b=D.e,F=s+4,M=new m("0.5");if(S!==1||!Q||!Q[0])return new m(!S||S<0&&(!Q||Q[0])?NaN:Q?D:1/0);if(S=Math.sqrt(+T(D)),S==0||S==1/0?(x=tr(Q),(x.length+b)%2==0&&(x+="0"),S=Math.sqrt(+x),b=nr((b+1)/2)-(b<0||b%2),S==1/0?x="5e"+b:(x=S.toExponential(),x=x.slice(0,x.indexOf("e")+1)+b),B=new m(x)):B=new m(S+""),B.c[0]){for(b=B.e,S=b+F,S<3&&(S=0);;)if(v=B,B=M.times(v.plus(e(D,v,F,1))),tr(v.c).slice(0,S)===(x=tr(B.c)).slice(0,S))if(B.e0&&N>0){for(D=N%S||S,M=U.substr(0,D);D0&&(M+=F+U.slice(D)),P&&(M="-"+M)}R=k?M+(B.decimalSeparator||"")+((b=+B.fractionGroupSize)?k.replace(new RegExp("\\d{"+b+"}\\B","g"),"$&"+(B.fractionGroupSeparator||"")):k):M}return(B.prefix||"")+R+(B.suffix||"")},r.toFraction=function(E){var x,B,R,v,D,Q,S,b,F,M,k,P,U=this,N=U.c;if(E!=null&&(S=new m(E),!S.isInteger()&&(S.c||S.s!==1)||S.lt(o)))throw Error(fn+"Argument "+(S.isInteger()?"out of range: ":"not an integer: ")+T(S));if(!N)return new m(U);for(x=new m(o),F=B=new m(o),R=b=new m(o),P=tr(N),D=x.e=P.length-U.e-1,x.c[0]=ZC[(Q=D%_e)<0?_e+Q:Q],E=!E||S.comparedTo(x)>0?D>0?x:F:S,Q=h,h=1/0,S=new m(P),b.c[0]=0;M=e(S,x,0,1),v=B.plus(M.times(R)),v.comparedTo(E)!=1;)B=R,R=v,F=b.plus(M.times(v=F)),b=v,x=S.minus(M.times(v=x)),S=v;return v=e(E.minus(B),R,0,1),b=b.plus(v.times(F)),B=B.plus(v.times(R)),b.s=F.s=U.s,D=D*2,k=e(F,R,D,a).minus(U).abs().comparedTo(e(b,B,D,a).minus(U).abs())<1?[F,R]:[b,B],h=Q,k},r.toNumber=function(){return+T(this)},r.toPrecision=function(E,x){return E!=null&&wt(E,1,bn),C(this,E,x,2)},r.toString=function(E){var x,B=this,R=B.s,v=B.e;return v===null?R?(x="Infinity",R<0&&(x="-"+x)):x="NaN":(E==null?x=v<=l||v>=A?rd(tr(B.c),v):Mo(tr(B.c),v,"0"):E===10&&I?(B=w(new m(B),s+v+1,a),x=Mo(tr(B.c),B.e,"0")):(wt(E,2,d.length,"Base"),x=t(Mo(tr(B.c),v,"0"),10,E,R,!0)),R<0&&B.c[0]&&(x="-"+x)),x},r.valueOf=r.toJSON=function(){return T(this)},r._isBigNumber=!0,r[Symbol.toStringTag]="BigNumber",r[Symbol.for("nodejs.util.inspect.custom")]=r.valueOf,i!=null&&m.set(i),m}function nr(i){var e=i|0;return i>0||i===e?e:e-1}function tr(i){for(var e,t,n=1,r=i.length,o=i[0]+"";nA^t?1:-1;for(a=(l=r.length)<(A=o.length)?l:A,s=0;so[s]^t?1:-1;return l==A?0:l>A^t?1:-1}function wt(i,e,t,n){if(it||i!==ir(i))throw Error(fn+(n||"Argument")+(typeof i=="number"?it?" out of range: ":" not an integer: ":" not a primitive number: ")+String(i))}function nd(i){var e=i.c.length-1;return nr(i.e/_e)==e&&i.c[e]%2!=0}function rd(i,e){return(i.length>1?i.charAt(0)+"."+i.slice(1):i)+(e<0?"e":"e+")+e}function Mo(i,e,t){var n,r;if(e<0){for(r=t+".";++e;r+=t);i=r+i}else if(n=i.length,++e>n){for(r=t,e-=n;--e;r+=t);i+=r}else e0){let A=s.left;if(A==null||(l=a(A.key,i),l>0&&(s.left=A.right,A.right=s,s=A,A=s.left,A==null)))break;t==null?n=s:t.left=s,t=s,s=A}else if(l<0){let A=s.right;if(A==null||(l=a(A.key,i),l<0&&(s.right=A.left,A.left=s,s=A,A=s.right,A==null)))break;r==null?o=s:r.right=s,r=s,s=A}else break;return r!=null&&(r.right=s.left,s.left=o),t!=null&&(t.left=s.right,s.right=n),this.root!==s&&(this.root=s,this.splayCount++),l}splayMin(i){let e=i,t=e.left;for(;t!=null;){let n=t;e.left=n.right,n.right=e,e=n,t=e.left}return e}splayMax(i){let e=i,t=e.right;for(;t!=null;){let n=t;e.right=n.left,n.left=e,e=n,t=e.right}return e}_delete(i){if(this.root==null||this.splay(i)!=0)return null;let e=this.root,t=e,n=e.left;if(this.size--,n==null)this.root=e.right;else{let r=e.right;e=this.splayMax(n),e.right=r,this.root=e}return this.modificationCount++,t}addNewRoot(i,e){this.size++,this.modificationCount++;let t=this.root;if(t==null){this.root=i;return}e<0?(i.left=t,i.right=t.right,t.right=null):(i.right=t,i.left=t.left,t.left=null),this.root=i}_first(){let i=this.root;return i==null?null:(this.root=this.splayMin(i),this.root)}_last(){let i=this.root;return i==null?null:(this.root=this.splayMax(i),this.root)}clear(){this.root=null,this.size=0,this.modificationCount++}has(i){return this.validKey(i)&&this.splay(i)==0}defaultCompare(){return(i,e)=>ie?1:0}wrap(){return{getRoot:()=>this.root,setRoot:i=>{this.root=i},getSize:()=>this.size,getModificationCount:()=>this.modificationCount,getSplayCount:()=>this.splayCount,setSplayCount:i=>{this.splayCount=i},splay:i=>this.splay(i),has:i=>this.has(i)}}},YR,VR,dd=class vh extends tU{constructor(e,t){super(),re(this,"root",null),re(this,"compare"),re(this,"validKey"),re(this,YR,"[object Set]"),this.compare=e??this.defaultCompare(),this.validKey=t??(n=>n!=null&&n!=null)}delete(e){return this.validKey(e)?this._delete(e)!=null:!1}deleteAll(e){for(let t of e)this.delete(t)}forEach(e){let t=this[Symbol.iterator](),n;for(;n=t.next(),!n.done;)e(n.value,n.value,this)}add(e){let t=this.splay(e);return t!=0&&this.addNewRoot(new Bh(e),t),this}addAndReturn(e){let t=this.splay(e);return t!=0&&this.addNewRoot(new Bh(e),t),this.root.key}addAll(e){for(let t of e)this.add(t)}isEmpty(){return this.root==null}isNotEmpty(){return this.root!=null}single(){if(this.size==0)throw"Bad state: No element";if(this.size>1)throw"Bad state: Too many element";return this.root.key}first(){if(this.size==0)throw"Bad state: No element";return this._first().key}last(){if(this.size==0)throw"Bad state: No element";return this._last().key}lastBefore(e){if(e==null)throw"Invalid arguments(s)";if(this.root==null)return null;if(this.splay(e)<0)return this.root.key;let t=this.root.left;if(t==null)return null;let n=t.right;for(;n!=null;)t=n,n=t.right;return t.key}firstAfter(e){if(e==null)throw"Invalid arguments(s)";if(this.root==null)return null;if(this.splay(e)>0)return this.root.key;let t=this.root.right;if(t==null)return null;let n=t.left;for(;n!=null;)t=n,n=t.left;return t.key}retainAll(e){let t=new vh(this.compare,this.validKey),n=this.modificationCount;for(let r of e){if(n!=this.modificationCount)throw"Concurrent modification during iteration.";this.validKey(r)&&this.splay(r)==0&&t.add(this.root.key)}t.size!=this.size&&(this.root=t.root,this.size=t.size,this.modificationCount++)}lookup(e){return!this.validKey(e)||this.splay(e)!=0?null:this.root.key}intersection(e){let t=new vh(this.compare,this.validKey);for(let n of this)e.has(n)&&t.add(n);return t}difference(e){let t=new vh(this.compare,this.validKey);for(let n of this)e.has(n)||t.add(n);return t}union(e){let t=this.clone();return t.addAll(e),t}clone(){let e=new vh(this.compare,this.validKey);return e.size=this.size,e.root=this.copyNode(this.root),e}copyNode(e){if(e==null)return null;function t(r,o){let s,a;do{if(s=r.left,a=r.right,s!=null){let l=new Bh(s.key);o.left=l,t(s,l)}if(a!=null){let l=new Bh(a.key);o.right=l,r=a,o=l}}while(a!=null)}let n=new Bh(e.key);return t(e,n),n}toSet(){return this.clone()}entries(){return new nU(this.wrap())}keys(){return this[Symbol.iterator]()}values(){return this[Symbol.iterator]()}[(VR=Symbol.iterator,YR=Symbol.toStringTag,VR)](){return new iU(this.wrap())}},cQ=class{constructor(i){re(this,"tree"),re(this,"path",new Array),re(this,"modificationCount",null),re(this,"splayCount"),this.tree=i,this.splayCount=i.getSplayCount()}[Symbol.iterator](){return this}next(){return this.moveNext()?{done:!1,value:this.current()}:{done:!0,value:null}}current(){if(!this.path.length)return null;let i=this.path[this.path.length-1];return this.getValue(i)}rebuildPath(i){this.path.splice(0,this.path.length),this.tree.splay(i),this.path.push(this.tree.getRoot()),this.splayCount=this.tree.getSplayCount()}findLeftMostDescendent(i){for(;i!=null;)this.path.push(i),i=i.left}moveNext(){if(this.modificationCount!=this.tree.getModificationCount()){if(this.modificationCount==null){this.modificationCount=this.tree.getModificationCount();let t=this.tree.getRoot();for(;t!=null;)this.path.push(t),t=t.left;return this.path.length>0}throw"Concurrent modification during iteration."}if(!this.path.length)return!1;this.splayCount!=this.tree.getSplayCount()&&this.rebuildPath(this.path[this.path.length-1].key);let i=this.path[this.path.length-1],e=i.right;if(e!=null){for(;e!=null;)this.path.push(e),e=e.left;return!0}for(this.path.pop();this.path.length&&this.path[this.path.length-1].right===i;)i=this.path.pop();return this.path.length>0}},iU=class extends cQ{getValue(i){return i.key}},nU=class extends cQ{getValue(i){return[i.key,i.key]}},hQ=i=>()=>i,Ay=i=>{let e=i?(t,n)=>n.minus(t).abs().isLessThanOrEqualTo(i):hQ(!1);return(t,n)=>e(t,n)?0:t.comparedTo(n)};function rU(i){let e=i?(t,n,r,o,s)=>t.exponentiatedBy(2).isLessThanOrEqualTo(o.minus(n).exponentiatedBy(2).plus(s.minus(r).exponentiatedBy(2)).times(i)):hQ(!1);return(t,n,r)=>{let o=t.x,s=t.y,a=r.x,l=r.y,A=s.minus(l).times(n.x.minus(a)).minus(o.minus(a).times(n.y.minus(l)));return e(A,o,s,a,l)?0:A.comparedTo(0)}}var oU=i=>i,sU=i=>{if(i){let e=new dd(Ay(i)),t=new dd(Ay(i)),n=(o,s)=>s.addAndReturn(o),r=o=>({x:n(o.x,e),y:n(o.y,t)});return r({x:new Kr(0),y:new Kr(0)}),r}return oU},cy=i=>({set:e=>{Oo=cy(e)},reset:()=>cy(i),compare:Ay(i),snap:sU(i),orient:rU(i)}),Oo=cy(),wh=(i,e)=>i.ll.x.isLessThanOrEqualTo(e.x)&&e.x.isLessThanOrEqualTo(i.ur.x)&&i.ll.y.isLessThanOrEqualTo(e.y)&&e.y.isLessThanOrEqualTo(i.ur.y),hy=(i,e)=>{if(e.ur.x.isLessThan(i.ll.x)||i.ur.x.isLessThan(e.ll.x)||e.ur.y.isLessThan(i.ll.y)||i.ur.y.isLessThan(e.ll.y))return null;let t=i.ll.x.isLessThan(e.ll.x)?e.ll.x:i.ll.x,n=i.ur.x.isLessThan(e.ur.x)?i.ur.x:e.ur.x,r=i.ll.y.isLessThan(e.ll.y)?e.ll.y:i.ll.y,o=i.ur.y.isLessThan(e.ur.y)?i.ur.y:e.ur.y;return{ll:{x:t,y:r},ur:{x:n,y:o}}},ld=(i,e)=>i.x.times(e.y).minus(i.y.times(e.x)),uQ=(i,e)=>i.x.times(e.x).plus(i.y.times(e.y)),pd=i=>uQ(i,i).sqrt(),aU=(i,e,t)=>{let n={x:e.x.minus(i.x),y:e.y.minus(i.y)},r={x:t.x.minus(i.x),y:t.y.minus(i.y)};return ld(r,n).div(pd(r)).div(pd(n))},lU=(i,e,t)=>{let n={x:e.x.minus(i.x),y:e.y.minus(i.y)},r={x:t.x.minus(i.x),y:t.y.minus(i.y)};return uQ(r,n).div(pd(r)).div(pd(n))},HR=(i,e,t)=>e.y.isZero()?null:{x:i.x.plus(e.x.div(e.y).times(t.minus(i.y))),y:t},qR=(i,e,t)=>e.x.isZero()?null:{x:t,y:i.y.plus(e.y.div(e.x).times(t.minus(i.x)))},AU=(i,e,t,n)=>{if(e.x.isZero())return qR(t,n,i.x);if(n.x.isZero())return qR(i,e,t.x);if(e.y.isZero())return HR(t,n,i.y);if(n.y.isZero())return HR(i,e,t.y);let r=ld(e,n);if(r.isZero())return null;let o={x:t.x.minus(i.x),y:t.y.minus(i.y)},s=ld(o,e).div(r),a=ld(o,n).div(r),l=i.x.plus(a.times(e.x)),A=t.x.plus(s.times(n.x)),c=i.y.plus(a.times(e.y)),h=t.y.plus(s.times(n.y)),u=l.plus(A).div(2),f=c.plus(h).div(2);return{x:u,y:f}},Hr=class fQ{constructor(e,t){re(this,"point"),re(this,"isLeft"),re(this,"segment"),re(this,"otherSE"),re(this,"consumedBy"),e.events===void 0?e.events=[this]:e.events.push(this),this.point=e,this.isLeft=t}static compare(e,t){let n=fQ.comparePoints(e.point,t.point);return n!==0?n:(e.point!==t.point&&e.link(t),e.isLeft!==t.isLeft?e.isLeft?1:-1:Ed.compare(e.segment,t.segment))}static comparePoints(e,t){return e.x.isLessThan(t.x)?-1:e.x.isGreaterThan(t.x)?1:e.y.isLessThan(t.y)?-1:e.y.isGreaterThan(t.y)?1:0}link(e){if(e.point===this.point)throw new Error("Tried to link already linked events");let t=e.point.events;for(let n=0,r=t.length;n{let o=r.otherSE;t.set(r,{sine:aU(this.point,e.point,o.point),cosine:lU(this.point,e.point,o.point)})};return(r,o)=>{t.has(r)||n(r),t.has(o)||n(o);let{sine:s,cosine:a}=t.get(r),{sine:l,cosine:A}=t.get(o);return s.isGreaterThanOrEqualTo(0)&&l.isGreaterThanOrEqualTo(0)?a.isLessThan(A)?1:a.isGreaterThan(A)?-1:0:s.isLessThan(0)&&l.isLessThan(0)?a.isLessThan(A)?-1:a.isGreaterThan(A)?1:0:l.isLessThan(s)?-1:l.isGreaterThan(s)?1:0}}},cU=class uy{constructor(e){re(this,"events"),re(this,"poly"),re(this,"_isExteriorRing"),re(this,"_enclosingRing"),this.events=e;for(let t=0,n=e.length;t0&&(n=l)}let r=n.segment.prevInResult(),o=r?r.prevInResult():null;for(;;){if(!r)return null;if(!o)return r.ringOut;if(o.ringOut!==r.ringOut)return((e=o.ringOut)==null?void 0:e.enclosingRing())!==r.ringOut?r.ringOut:(t=r.ringOut)==null?void 0:t.enclosingRing();r=o.prevInResult(),o=r?r.prevInResult():null}}},KR=class{constructor(i){re(this,"exteriorRing"),re(this,"interiorRings"),this.exteriorRing=i,i.poly=this,this.interiorRings=[]}addInterior(i){this.interiorRings.push(i),i.poly=this}getGeom(){let i=this.exteriorRing.getGeom();if(i===null)return null;let e=[i];for(let t=0,n=this.interiorRings.length;t0?(this.tree.delete(e),t.push(i)):(this.segments.push(e),e.prev=n)}else{if(n&&r){let o=n.getIntersection(r);if(o!==null){if(!n.isAnEndpoint(o)){let s=this._splitSafely(n,o);for(let a=0,l=s.length;a0)return-1;let u=t.comparePoint(e.rightSE.point);return u!==0?u:-1}if(n.isGreaterThan(r)){if(a.isLessThan(l)&&a.isLessThan(c))return-1;if(a.isGreaterThan(l)&&a.isGreaterThan(c))return 1;let h=t.comparePoint(e.leftSE.point);if(h!==0)return h;let u=e.comparePoint(t.rightSE.point);return u<0?1:u>0?-1:1}if(a.isLessThan(l))return-1;if(a.isGreaterThan(l))return 1;if(o.isLessThan(s)){let h=t.comparePoint(e.rightSE.point);if(h!==0)return h}if(o.isGreaterThan(s)){let h=e.comparePoint(t.rightSE.point);if(h<0)return 1;if(h>0)return-1}if(!o.eq(s)){let h=A.minus(a),u=o.minus(n),f=c.minus(l),g=s.minus(r);if(h.isGreaterThan(u)&&f.isLessThan(g))return 1;if(h.isLessThan(u)&&f.isGreaterThan(g))return-1}return o.isGreaterThan(s)?1:o.isLessThan(s)||A.isLessThan(c)?-1:A.isGreaterThan(c)?1:e.idt.id?1:0}static fromRing(e,t,n){let r,o,s,a=Hr.comparePoints(e,t);if(a<0)r=e,o=t,s=1;else if(a>0)r=t,o=e,s=-1;else throw new Error(`Tried to create degenerate segment at [${e.x}, ${e.y}]`);let l=new Hr(r,!0),A=new Hr(o,!1);return new Ad(l,A,[n],[s])}replaceRightSE(e){this.rightSE=e,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){let e=this.leftSE.point.y,t=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:e.isLessThan(t)?e:t},ur:{x:this.rightSE.point.x,y:e.isGreaterThan(t)?e:t}}}vector(){return{x:this.rightSE.point.x.minus(this.leftSE.point.x),y:this.rightSE.point.y.minus(this.leftSE.point.y)}}isAnEndpoint(e){return e.x.eq(this.leftSE.point.x)&&e.y.eq(this.leftSE.point.y)||e.x.eq(this.rightSE.point.x)&&e.y.eq(this.rightSE.point.y)}comparePoint(e){return Oo.orient(this.leftSE.point,e,this.rightSE.point)}getIntersection(e){let t=this.bbox(),n=e.bbox(),r=hy(t,n);if(r===null)return null;let o=this.leftSE.point,s=this.rightSE.point,a=e.leftSE.point,l=e.rightSE.point,A=wh(t,a)&&this.comparePoint(a)===0,c=wh(n,o)&&e.comparePoint(o)===0,h=wh(t,l)&&this.comparePoint(l)===0,u=wh(n,s)&&e.comparePoint(s)===0;if(c&&A)return u&&!h?s:!u&&h?l:null;if(c)return h&&o.x.eq(l.x)&&o.y.eq(l.y)?null:o;if(A)return u&&s.x.eq(a.x)&&s.y.eq(a.y)?null:a;if(u&&h)return null;if(u)return s;if(h)return l;let f=AU(o,this.vector(),a,e.vector());return f===null||!wh(r,f)?null:Oo.snap(f)}split(e){let t=[],n=e.events!==void 0,r=new Hr(e,!0),o=new Hr(e,!1),s=this.rightSE;this.replaceRightSE(o),t.push(o),t.push(r);let a=new Ad(r,s,this.rings.slice(),this.windings.slice());return Hr.comparePoints(a.leftSE.point,a.rightSE.point)>0&&a.swapEvents(),Hr.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),n&&(r.checkForConsuming(),o.checkForConsuming()),t}swapEvents(){let e=this.rightSE;this.rightSE=this.leftSE,this.leftSE=e,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let t=0,n=this.windings.length;t0){let o=t;t=n,n=o}if(t.prev===n){let o=t;t=n,n=o}for(let o=0,s=n.rings.length;or.length===1&&r[0].isSubject;this._isInResult=n(e)!==n(t);break}}return this._isInResult}},XR=class{constructor(i,e,t){if(re(this,"poly"),re(this,"isExterior"),re(this,"segments"),re(this,"bbox"),!Array.isArray(i)||i.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=e,this.isExterior=t,this.segments=[],typeof i[0][0]!="number"||typeof i[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");let n=Oo.snap({x:new Kr(i[0][0]),y:new Kr(i[0][1])});this.bbox={ll:{x:n.x,y:n.y},ur:{x:n.x,y:n.y}};let r=n;for(let o=1,s=i.length;omd.run("union",i,e),mU=(i,...e)=>md.run("difference",i,e);Oo.set;function EU(i){let e=[];if(xy(i,r=>{e.push(r.coordinates)}),e.length<2)throw new Error("Must have at least two features");let t=i.features[0].properties||{},n=mU(e[0],...e.slice(1));return n.length===0?null:n.length===1?_y(n[0],t):aQ(n,t)}var IU=EU;function CU(i){if(!i)throw new Error("geojson is required");var e=[];return JO(i,function(t){e.push(t)}),ly(e)}var yU=CU;function _U(i,e={}){let t=[];if(xy(i,r=>{t.push(r.coordinates)}),t.length<2)throw new Error("Must have at least 2 geometries");let n=pU(t[0],...t.slice(1));return n.length===0?null:n.length===1?_y(n[0],e.properties):aQ(n,e.properties)}var xU=_U;function WR(i,e){let t=IU(ly([_y([[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]]),i]));if(!t)return;t.properties={isMask:!0};let n=fd(OR(i)),r=(n[2]-n[0])/360/1e3,o=n[0]<-180,s=n[2]>180,a=yU(i);if(a.features.length>1&&(o||s))for(let l of a.features){let A=fd(OR(l));if(s&&A[0]<-180+r)for(let c of l.geometry.coordinates)for(let h of c)h[0]+=360-r;if(o&&A[2]>180-r)for(let c of l.geometry.coordinates)for(let h of c)h[0]-=360-r}e(ly([a.features.length<2?i:xU(a)??i,t]))}var JR="EPSG:4326";function BU(i){var e;let t=i.getProperties(),{isMask:n}=t,r=(e=i.getGeometry())==null?void 0:e.getType(),o=n?0:r==="LineString"||r==="MultiLineString"?3:2;return new ci({stroke:n?void 0:new _i({color:"#3170fe",lineDash:[o,o],width:o,lineCap:"butt"}),fill:n?new Ai({color:"#00000020"}):void 0,image:new Qr({src:`/icons/marker_${t.isReverse?"reverse":t.isSelected?"selected":"unselected"}.svg`,anchor:[.5,1]}),zIndex:t.isSelected?2:t.isReverse?0:1,text:t.isSelected&&t.tooltip?new js({backgroundFill:new Ai({color:"white"}),text:t.tooltip,offsetY:-40,backgroundStroke:new _i({color:"white",lineJoin:"round",width:3}),padding:[2,0,0,2]}):void 0})}function wU(i,e={},t={},n=BU){let r=-1,o,s,a,l=!1,A=new An({updateWhileAnimating:!0});i.addLayer(A);let c=new _n({});A.setSource(c),A.setStyle(n),i.on("click",g=>{i.forEachFeatureAtPixel(g.pixel,p=>{let d=p.getId();if(d)return g.stopPropagation(),s?.({type:"markerClick",id:d}),p})}),i.on("pointermove",g=>{let p=i.forEachFeatureAtPixel(g.pixel,d=>d.getId());o!==p&&(o&&s?.({type:"markerMouseLeave",id:o}),p&&s?.({type:"markerMouseEnter",id:p}),i.getTargetElement().style.cursor=p?"pointer":l?"crosshair":"",o=p)});function h(){return st()??i.getView().getProjection()}function u(g){return g.transform(JR,h())}let f=g=>{s?.({type:"mapClick",coordinates:ep(g.coordinate,h())})};return{setEventHandler(g){g?(s=g,i.on("click",f)):(s=void 0,i.un("click",f))},flyTo(g,p){i.getView().animate({center:vA(g,h()),...p?{zoom:p}:{},duration:2e3,...e})},fitBounds(g,p,d){i.getView().fit(SA(g,JR,h()),{padding:[p,p,p,p],...d?{maxZoom:d}:{},duration:2e3,...t})},indicateReverse(g){l=g,i.getTargetElement().style.cursor=g?"crosshair":""},setReverseMarker(g){a?g?a.getGeometry().setCoordinates(vA(g,h())):(c.removeFeature(a),a.dispose(),a=void 0):g&&(a=new Oe(new at(vA(g,h()))),a.setProperties({isReverse:!0}),c.addFeature(a))},setFeatures(g,p,d){function I(m){var C;if(m)for(let _ of m.features){let y=_.geometry.type==="Polygon"?new Dt(_.geometry.coordinates):_.geometry.type==="MultiPolygon"?new Ni(_.geometry.coordinates):null;y&&c.addFeature(new Oe({isMask:!!((C=_.properties)!=null&&C.isMask),geometry:u(y)}))}}c.clear(),a&&c.addFeature(a);e:if(p){let m=!1;if(p.geometry.type==="GeometryCollection"){let C=p.geometry.geometries.map(_=>_.type==="Polygon"?new Dt(_.coordinates):_.type==="MultiPolygon"?new Ni(_.coordinates):null).filter(_=>!!_);if(C.length>0)c.addFeature(new Oe(u(new Pi(C)))),m=!0;else for(let _ of p.geometry.geometries)_.type==="LineString"?(c.addFeature(new Oe(u(new ht(_.coordinates)))),m=!0):_.type==="MultiLineString"&&c.addFeature(new Oe(u(new Zt(_.coordinates)))),m=!0}if(!m){if(p.geometry.type==="Polygon")WR(p,I);else if(p.geometry.type==="MultiPolygon")WR(p,I);else if(p.geometry.type==="LineString"){c.addFeature(new Oe(u(new ht(p.geometry.coordinates))));break e}else if(p.geometry.type==="MultiLineString"){c.addFeature(new Oe(u(new Zt(p.geometry.coordinates))));break e}}if(!d&&!p.geometry.type.endsWith("Point"))break e;c.addFeature(new Oe(u(new at(p.center))))}for(let m of g??[]){if(m===p)continue;let C=new Oe(new at(vA(m.center,h())));C.setId(m.id),C.setProperties({fuzzy:!!m.matching_text,tooltip:m.place_type[0]==="reverse"?m.place_name:m.place_name.replace(/,.*/,"")}),c.addFeature(C)}},setSelectedMarker(g){var p,d,I;let m=c.getFeatures(),C=(p=m[0])!=null&&p.getProperties().isReverse?1:0;r>-1&&((d=m[r+C])==null||d.setProperties({isSelected:!1})),g>-1&&((I=m[g+C])==null||I.setProperties({isSelected:!0})),r=g},getCenterAndZoom(){let g=i.getView(),p=g.getCenter(),d=g.getZoom();if(!(!p||d===void 0))return[d,...ep(p,h())]}}}var Wt,oA,Id=class extends ut{constructor(e){let t=document.createElement("div");t.className="ol-search",super({element:t,target:e.target}),_R(this,Wt),_R(this,oA);let{flyTo:n,fullGeometryStyle:r,...o}=e;xR(this,Wt,new WO({target:t,props:{flyTo:n===void 0?!0:!!n,...o}})),jt(this,Wt).$on("select",s=>{this.dispatchEvent(new fy(s.detail.feature))}),jt(this,Wt).$on("pick",s=>{this.dispatchEvent(new my(s.detail.feature))}),jt(this,Wt).$on("featureslisted",s=>{this.dispatchEvent(new gy(s.detail.features))}),jt(this,Wt).$on("featuresmarked",s=>{this.dispatchEvent(new dy(s.detail.features))}),jt(this,Wt).$on("response",s=>{this.dispatchEvent(new Iy(s.detail.url,s.detail.featureCollection))}),jt(this,Wt).$on("optionsvisibilitychange",s=>{this.dispatchEvent(new py(s.detail.optionsVisible))}),jt(this,Wt).$on("reversetoggle",s=>{this.dispatchEvent(new Cy(s.detail.reverse))}),jt(this,Wt).$on("querychange",s=>{this.dispatchEvent(new Ey(s.detail.query))}),xR(this,oA,e)}setMap(e){var t;if(super.setMap(e),e){let{flyTo:n,fullGeometryStyle:r}=jt(this,oA),o=wU(e,typeof n=="boolean"?void 0:n,typeof n=="boolean"?void 0:n,r);(t=jt(this,Wt))==null||t.$set({mapController:o})}}setOptions(e){var t;Object.assign(jt(this,oA),e);let{flyTo:n,fullGeometryStyle:r,...o}=jt(this,oA);(t=jt(this,Wt))==null||t.$set({...o,flyTo:n===void 0?!0:!!n})}setQuery(e,t=!0){var n;(n=jt(this,Wt))==null||n.setQuery(e,t)}clearMap(){var e;(e=jt(this,Wt))==null||e.clearMap()}clearList(){var e;(e=jt(this,Wt))==null||e.clearList()}setReverseMode(e){var t;(t=jt(this,Wt))==null||t.$set({reverseActive:e})}focus(e){var t;(t=jt(this,Wt))==null||t.focus(e)}blur(){var e;(e=jt(this,Wt))==null||e.blur()}};Wt=new WeakMap,oA=new WeakMap;var fy=class extends Pe{constructor(e){super("select"),re(this,"feature"),this.feature=e}},gy=class extends Pe{constructor(e){super("featureslisted"),re(this,"features"),this.features=e}},dy=class extends Pe{constructor(e){super("featuresmarked"),re(this,"features"),this.features=e}},py=class extends Pe{constructor(e){super("optionsvisibilitychange"),re(this,"optionsVisible"),this.optionsVisible=e}},my=class extends Pe{constructor(e){super("pick"),re(this,"feature"),this.feature=e}},Ey=class extends Pe{constructor(e){super("querychange"),re(this,"query"),this.query=e}},Iy=class extends Pe{constructor(e,t){super("response"),re(this,"url"),re(this,"featureCollection"),this.url=e,this.featureCollection=t}},Cy=class extends Pe{constructor(e){super("reversetoggle"),re(this,"reverse"),this.reverse=e}};var Cd=class extends ut{constructor(e){let t=document.createElement("div");t.className="ol-control ol-unselectable info-box",t.style.cssText=e.cssText||"top: 65px; left: .5em; padding: 5px;",t.innerHTML=e.html,super({element:t,target:e.target})}};var yd={DRAWSTART:"drawstart",DRAWEND:"drawend",DRAWABORT:"drawabort"},lA=class extends Pe{constructor(e,t){super(e),this.feature=t}};function vU(i,e){let t=[];for(let n=0;n=t?i[e-t]:i[e]}function xd(i,e,t){let n,r;es){let l=cA(i,n),A=cA(i,r);return _d(l,A)}let a=0;if(nu.startIndex?pu.startIndex&&(p-=f.length)),l=p,a=h)}let A=e.targets[a],c=A.ring;if(e.targetIndex===a&&c){let h=cA(A.coordinates,l),u=t.getPixelFromCoordinate(h);Pa(u,e.startPx)>n&&(c=!1)}if(c){let h=A.coordinates,u=h.length,f=A.startIndex,g=l;if(f=t?n-=t:n<0&&(n+=t);let o=n+1;o>=t&&(o-=t);let s=i[n],a=s[0],l=s[1],A=i[o],c=A[0]-a,h=A[1]-l;return[a+c*r,l+h*r]}var vy=class extends Bi{constructor(e){let t=e;t.stopDown||(t.stopDown=ji),super(t),this.on,this.once,this.un,this.shouldHandle_=!1,this.downPx_=null,this.downTimeout_,this.lastDragTime_,this.pointerType_,this.freehand_=!1,this.source_=e.source?e.source:null,this.features_=e.features?e.features:null,this.snapTolerance_=e.snapTolerance?e.snapTolerance:12,this.type_=e.type,this.mode_=RU(this.type_),this.stopClick_=!!e.stopClick,this.minPoints_=e.minPoints?e.minPoints:this.mode_==="Polygon"?3:2,this.maxPoints_=this.mode_==="Circle"?2:e.maxPoints?e.maxPoints:1/0,this.finishCondition_=e.finishCondition?e.finishCondition:bi,this.geometryLayout_=e.geometryLayout?e.geometryLayout:"XY";let n=e.geometryFunction;if(!n){let r=this.mode_;if(r==="Circle")n=(o,s,a)=>{let l=s||new sx([NaN,NaN]),A=Ke(o[0],a),c=kn(A,Ke(o[o.length-1],a));l.setCenterAndRadius(A,Math.sqrt(c),this.geometryLayout_);let h=st();return h&&l.transform(a,h),l};else{let o;r==="Point"?o=at:r==="LineString"?o=ht:r==="Polygon"&&(o=Dt),n=(s,a,l)=>(a?r==="Polygon"?s[0].length?a.setCoordinates([s[0].concat([s[0][0]])],this.geometryLayout_):a.setCoordinates([],this.geometryLayout_):a.setCoordinates(s,this.geometryLayout_):a=new o(s,this.geometryLayout_),a)}}this.geometryFunction_=n,this.dragVertexDelay_=e.dragVertexDelay!==void 0?e.dragVertexDelay:500,this.finishCoordinate_=null,this.sketchFeature_=null,this.sketchPoint_=null,this.sketchCoords_=null,this.sketchLine_=null,this.sketchLineCoords_=null,this.squaredClickTolerance_=e.clickTolerance?e.clickTolerance*e.clickTolerance:36,this.overlay_=new An({source:new _n({useSpatialIndex:!1,wrapX:e.wrapX?e.wrapX:!1}),style:e.style?e.style:TU(),updateWhileInteracting:!0}),this.geometryName_=e.geometryName,this.condition_=e.condition?e.condition:hl,this.freehandCondition_,e.freehand?this.freehandCondition_=ta:this.freehandCondition_=e.freehandCondition?e.freehandCondition:Vu,this.traceCondition_,this.setTrace(e.trace||!1),this.traceState_={active:!1},this.traceSource_=e.traceSource||e.source||null,this.addChangeListener(dc.ACTIVE,this.updateState_)}setTrace(e){let t;e?e===!0?t=ta:t=e:t=tB,this.traceCondition_=t}setMap(e){super.setMap(e),this.updateState_()}getOverlay(){return this.overlay_}handleEvent(e){e.originalEvent.type===K.CONTEXTMENU&&e.originalEvent.preventDefault(),this.freehand_=this.mode_!=="Point"&&this.freehandCondition_(e);let t=e.type===xe.POINTERMOVE,n=!0;return!this.freehand_&&this.lastDragTime_&&e.type===xe.POINTERDRAG&&(Date.now()-this.lastDragTime_>=this.dragVertexDelay_?(this.downPx_=e.pixel,this.shouldHandle_=!this.freehand_,t=!0):this.lastDragTime_=void 0,this.shouldHandle_&&this.downTimeout_!==void 0&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0)),this.freehand_&&e.type===xe.POINTERDRAG&&this.sketchFeature_!==null?(this.addToDrawing_(e.coordinate),n=!1):this.freehand_&&e.type===xe.POINTERDOWN?n=!1:t&&this.getPointerCount()<2?(n=e.type===xe.POINTERMOVE,n&&this.freehand_?(this.handlePointerMove_(e),this.shouldHandle_&&e.originalEvent.preventDefault()):(e.originalEvent.pointerType==="mouse"||e.type===xe.POINTERDRAG&&this.downTimeout_===void 0)&&this.handlePointerMove_(e)):e.type===xe.DBLCLICK&&(n=!1),super.handleEvent(e)&&n}handleDownEvent(e){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=e.pixel,this.finishCoordinate_||this.startDrawing_(e.coordinate),!0):this.condition_(e)?(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout(()=>{this.handlePointerMove_(new Hn(xe.POINTERMOVE,e.map,e.originalEvent,!1,e.frameState))},this.dragVertexDelay_),this.downPx_=e.pixel,!0):(this.lastDragTime_=void 0,!1)}deactivateTrace_(){this.traceState_={active:!1}}toggleTraceState_(e){if(!this.traceSource_||!this.traceCondition_(e))return;if(this.traceState_.active){this.deactivateTrace_();return}let t=this.getMap(),n=t.getCoordinateFromPixel([e.pixel[0]-this.snapTolerance_,e.pixel[1]+this.snapTolerance_]),r=t.getCoordinateFromPixel([e.pixel[0]+this.snapTolerance_,e.pixel[1]-this.snapTolerance_]),o=At([n,r]),s=this.traceSource_.getFeaturesInExtent(o);if(s.length===0)return;let a=vU(e.coordinate,s);a.length&&(this.traceState_={active:!0,startPx:e.pixel.slice(),targets:a,targetIndex:-1})}addOrRemoveTracedCoordinates_(e,t){let n=e.startIndex<=e.endIndex,r=e.startIndex<=t;n===r?n&&t>e.endIndex||!n&&te.endIndex)&&this.removeTracedCoordinates_(t,e.endIndex):(this.removeTracedCoordinates_(e.startIndex,e.endIndex),this.addTracedCoordinates_(e,e.startIndex,t))}removeTracedCoordinates_(e,t){if(e===t)return;let n=0;if(e0&&this.removeLastPoints_(n)}addTracedCoordinates_(e,t,n){if(t===n)return;let r=[];if(t=s;--a)r.push(AA(e.coordinates,a))}r.length&&this.appendCoordinates(r)}updateTrace_(e){let t=this.traceState_;if(!t.active||t.targetIndex===-1&&Pa(t.startPx,e.pixel)this.squaredClickTolerance_:s<=this.squaredClickTolerance_,!this.shouldHandle_)return}if(!this.finishCoordinate_){this.createOrUpdateSketchPoint_(e.coordinate.slice());return}this.updateTrace_(e),this.modifyDrawing_(e.coordinate)}atFinish_(e,t){let n=!1;if(this.sketchFeature_){let r=!1,o=[this.finishCoordinate_],s=this.mode_;if(s==="Point")n=!0;else if(s==="Circle")n=this.sketchCoords_.length===2;else if(s==="LineString")r=!t&&this.sketchCoords_.length>this.minPoints_;else if(s==="Polygon"){let a=this.sketchCoords_;r=a[0].length>this.minPoints_,o=[a[0][0],a[0][a[0].length-2]],t?o=[a[0][0]]:o=[a[0][0],a[0][a[0].length-2]]}if(r){let a=this.getMap();for(let l=0,A=o.length;l=this.maxPoints_&&(this.freehand_?o.pop():r=!0),o.push(e.slice()),this.geometryFunction_(o,t,n)):s==="Polygon"&&(o=this.sketchCoords_[0],o.length>=this.maxPoints_&&(this.freehand_?o.pop():r=!0),o.push(e.slice()),r&&(this.finishCoordinate_=o[0]),this.geometryFunction_(this.sketchCoords_,t,n)),this.createOrUpdateSketchPoint_(e.slice()),this.updateSketchFeatures_(),r?this.finishDrawing():this.sketchFeature_}removeLastPoints_(e){if(!this.sketchFeature_)return;let t=this.sketchFeature_.getGeometry(),n=this.getMap().getView().getProjection(),r=this.mode_;for(let o=0;o=2){this.finishCoordinate_=s[s.length-2].slice();let a=this.finishCoordinate_.slice();s[s.length-1]=a,this.createOrUpdateSketchPoint_(a)}this.geometryFunction_(s,t,n),t.getType()==="Polygon"&&this.sketchLine_&&this.createOrUpdateCustomSketchLine_(t)}else if(r==="Polygon"){s=this.sketchCoords_[0],s.splice(-2,1);let a=this.sketchLine_.getGeometry();if(s.length>=2){let l=s[s.length-2].slice();s[s.length-1]=l,this.createOrUpdateSketchPoint_(l)}a.setCoordinates(s),this.geometryFunction_(this.sketchCoords_,t,n)}if(s.length===1){this.abortDrawing();break}}this.updateSketchFeatures_()}removeLastPoint(){this.removeLastPoints_(1)}finishDrawing(){let e=this.abortDrawing_();if(!e)return null;let t=this.sketchCoords_,n=e.getGeometry(),r=this.getMap().getView().getProjection();return this.mode_==="LineString"?(t.pop(),this.geometryFunction_(t,n,r)):this.mode_==="Polygon"&&(t[0].pop(),this.geometryFunction_(t,n,r),t=n.getCoordinates()),this.type_==="MultiPoint"?e.setGeometry(new yn([t])):this.type_==="MultiLineString"?e.setGeometry(new Zt([t])):this.type_==="MultiPolygon"&&e.setGeometry(new Ni([t])),this.dispatchEvent(new lA(yd.DRAWEND,e)),this.features_&&this.features_.push(e),this.source_&&this.source_.addFeature(e),e}abortDrawing_(){this.finishCoordinate_=null;let e=this.sketchFeature_;return this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0),this.deactivateTrace_(),e}abortDrawing(){let e=this.abortDrawing_();e&&this.dispatchEvent(new lA(yd.DRAWABORT,e))}appendCoordinates(e){let t=this.mode_,n=!this.sketchFeature_;n&&this.startDrawing_(e[0]);let r;if(t==="LineString"||t==="Circle")r=this.sketchCoords_;else if(t==="Polygon")r=this.sketchCoords_&&this.sketchCoords_.length?this.sketchCoords_[0]:[];else return;n&&r.shift(),r.pop();for(let s=0;s{i.removeInteraction(wd),i.removeInteraction(vd),t()},t()}var uA=class extends ut{constructor(e){e=e||{};let t=document.createElement("div");t.className="ol-draw ol-control ol-unselectable",t.style.cssText=e.cssText||"top: .5em; left: 35px;",super({element:t,target:e.target}),this.setProperties({id:"draw",type:"DrawControl"})}onAdd(){let e=this.getMap();e?.addLayer(Sy);let t=FU();e&&(LU(e,t),this.element.appendChild(t))}getDraw(){return wd}getSnap(){return vd}getGeoJSONFeatures(){return bh.getFeatures().map(e=>hA(e))}getLayer(){return Sy}};var IQ=document.createElement("style");IQ.innerText=".ol-search {position: absolute; top: .5em; right: .5em;}";document.head.appendChild(IQ);var CQ=new gc;CQ.setProperties({id:"zoom",type:"ZoomControl"});var yQ=new fc;yQ.setProperties({id:"rotate",type:"RotateControl"});var _Q=new uc;_Q.setProperties({id:"attribution",type:"AttributionControl"});var xQ=[CQ,yQ,_Q],BQ={ScaleLineControl:cR,FullScreenControl:pR,ZoomSliderControl:mR,MousePositionControl:IR,OverviewMapControl:CR,ZoomControl:gc,RotateControl:fc,AttributionControl:uc,InfoBox:Cd,DrawControl:uA,ZoomToExtentControl:yR,MapTilerGeocodingControl:Id};var zo="@@type",Dh="@@geojson";var Sd=class{constructor(e){this._catalog=e||Object.assign(Object.assign(Object.assign(Object.assign({},BQ),T1),AR),{GeoJSON:Dr,KML:ch,GPX:oh,TopoJSON:gh,IGC:sh,MVT:fh,View:xi})}parseOptions(e){let t={};for(let n in e){let r=e[n];Array.isArray(r)&&typeof r[0]=="object"?(console.log("Parse items of array"),t[n]=r.map(o=>o[zo]?this.parse(o):this.parseOptions(o))):r instanceof Object&&r[zo]?t[n]=this.parse(r):[zo,Dh].includes(n)||(t[n]=r)}return t}parse(e){let t=this.parseOptions(e);return console.log("parsed options",t),console.log("type detected",e[zo]),new this._catalog[e[zo]](t)}};var MU=Object.prototype.toString,gA=Array.isArray||function(e){return MU.call(e)==="[object Array]"};function Ry(i){return typeof i=="function"}function kU(i){return gA(i)?"array":typeof i}function Ty(i){return i.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function wQ(i,e){return i!=null&&typeof i=="object"&&e in i}function PU(i,e){return i!=null&&typeof i!="object"&&i.hasOwnProperty&&i.hasOwnProperty(e)}var NU=RegExp.prototype.test;function GU(i,e){return NU.call(i,e)}var OU=/\S/;function UU(i){return!GU(OU,i)}var zU={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function YU(i){return String(i).replace(/[&<>"'`=\/]/g,function(t){return zU[t]})}var VU=/\s*/,HU=/\s+/,vQ=/\s*=/,qU=/\s*\}/,KU=/#|\^|\/|>|\{|&|=|!/;function XU(i,e){if(!i)return[];var t=!1,n=[],r=[],o=[],s=!1,a=!1,l="",A=0;function c(){if(s&&!a)for(;o.length;)delete r[o.pop()];else o=[];s=!1,a=!1}var h,u,f;function g(E){if(typeof E=="string"&&(E=E.split(HU,2)),!gA(E)||E.length!==2)throw new Error("Invalid tags: "+E);h=new RegExp(Ty(E[0])+"\\s*"),u=new RegExp("\\s*"+Ty(E[1])),f=new RegExp("\\s*"+Ty("}"+E[1]))}g(e||rr.tags);for(var p=new Lh(i),d,I,m,C,_,y;!p.eos();){if(d=p.pos,m=p.scanUntil(h),m)for(var w=0,T=m.length;w"?_=[I,m,d,p.pos,l,A,t]:_=[I,m,d,p.pos],A++,r.push(_),I==="#"||I==="^")n.push(_);else if(I==="/"){if(y=n.pop(),!y)throw new Error('Unopened section "'+m+'" at '+d);if(y[1]!==m)throw new Error('Unclosed section "'+y[1]+'" at '+d)}else I==="name"||I==="{"||I==="&"?a=!0:I==="="&&g(m)}if(c(),y=n.pop(),y)throw new Error('Unclosed section "'+y[1]+'" at '+p.pos);return WU(jU(r))}function jU(i){for(var e=[],t,n,r=0,o=i.length;r0?n[n.length-1][4]:e;break;default:t.push(r)}return e}function Lh(i){this.string=i,this.tail=i,this.pos=0}Lh.prototype.eos=function(){return this.tail===""};Lh.prototype.scan=function(e){var t=this.tail.match(e);if(!t||t.index!==0)return"";var n=t[0];return this.tail=this.tail.substring(n.length),this.pos+=n.length,n};Lh.prototype.scanUntil=function(e){var t=this.tail.search(e),n;switch(t){case-1:n=this.tail,this.tail="";break;case 0:n="";break;default:n=this.tail.substring(0,t),this.tail=this.tail.substring(t)}return this.pos+=n.length,n};function fA(i,e){this.view=i,this.cache={".":this.view},this.parent=e}fA.prototype.push=function(e){return new fA(e,this)};fA.prototype.lookup=function(e){var t=this.cache,n;if(t.hasOwnProperty(e))n=t[e];else{for(var r=this,o,s,a,l=!1;r;){if(e.indexOf(".")>0)for(o=r.view,s=e.split("."),a=0;o!=null&&a"?A=this.renderPartial(a,t,n,o):l==="&"?A=this.unescapedValue(a,t):l==="name"?A=this.escapedValue(a,t,o):l==="text"&&(A=this.rawValue(a)),A!==void 0&&(s+=A);return s};Vi.prototype.renderSection=function(e,t,n,r,o){var s=this,a="",l=t.lookup(e[1]);function A(u){return s.render(u,t,n,o)}if(l){if(gA(l))for(var c=0,h=l.length;c0||!n)&&(o[s]=r+o[s]);return o.join(` +`)};Vi.prototype.renderPartial=function(e,t,n,r){if(n){var o=this.getConfigTags(r),s=Ry(n)?n(e[1]):n[e[1]];if(s!=null){var a=e[6],l=e[5],A=e[4],c=s;l==0&&A&&(c=this.indentPartial(s,A,a));var h=this.parse(c,o);return this.renderTokens(h,t,n,c,r)}}};Vi.prototype.unescapedValue=function(e,t){var n=t.lookup(e[1]);if(n!=null)return n};Vi.prototype.escapedValue=function(e,t,n){var r=this.getConfigEscape(n)||rr.escape,o=t.lookup(e[1]);if(o!=null)return typeof o=="number"&&r===rr.escape?String(o):r(o)};Vi.prototype.rawValue=function(e){return e[1]};Vi.prototype.getConfigTags=function(e){return gA(e)?e:e&&typeof e=="object"?e.tags:void 0};Vi.prototype.getConfigEscape=function(e){if(e&&typeof e=="object"&&!gA(e))return e.escape};var rr={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(i){Fh.templateCache=i},get templateCache(){return Fh.templateCache}},Fh=new Vi;rr.clearCache=function(){return Fh.clearCache()};rr.parse=function(e,t){return Fh.parse(e,t)};rr.render=function(e,t,n,r){if(typeof e!="string")throw new TypeError('Invalid template! Template should be a "string" but "'+kU(e)+'" was given as the first argument for mustache#render(template, view, partials)');return Fh.render(e,t,n,r)};rr.escape=YU;rr.Scanner=Lh;rr.Context=fA;rr.Writer=Vi;var SQ=rr;var Qt=document.createElement("div");Qt.style.position="absolute";Qt.style.display="inline-block";Qt.style.height="auto";Qt.style.width="auto";Qt.style.zIndex="100";Qt.style.backgroundColor="#333";Qt.style.color="#fff";Qt.style.borderRadius="4px";Qt.style.padding="7px";Qt.style.left="50%";Qt.style.visibility="hidden";Qt.style.pointerEvents="none";function JU(i,e){let t=EQ(i);return e?SQ.render(e,t):Object.keys(t).map(n=>`${n}: ${t[n]}`).join("
")}function TQ(i,e){Qt.id="ol-tooltip",i.getTargetElement().appendChild(Qt),console.log("tooltip element added",Qt);let t,n=function(r,o){let s=o.closest(".ol-control")?void 0:i.forEachFeatureAtPixel(r,function(a){return a});s?(Qt.style.left=r[0]+15+"px",Qt.style.top=r[1]+"px",s!==t&&(Qt.style.visibility="visible",Qt.innerHTML=JU(s,e))):Qt.style.visibility="hidden",t=s};i.on("pointermove",function(r){if(r.dragging){Qt.style.visibility="hidden",t=void 0;return}n(r.pixel,r.originalEvent.target)}),i.on("click",function(r){n(r.pixel,r.originalEvent.target)}),i.getTargetElement().addEventListener("pointerleave",function(){t=void 0,Qt.style.visibility="hidden"})}function $U(i){let e={};for(let t in i)typeof i[t]!="object"&&(e[t]=i[t]);return e}function RQ(i){let e=i.getMap(),t=i.getMetadata(),n=i.getAnywidgetModel(),r=()=>{n&&(n.set("metadata",t),n.save_changes())};e.getLayers().on("add",o=>{let s=o.element,a=$U(s.getProperties());t.layers.push(a),console.log("layer",s.get("id"),"added",t),r()}),e.getLayers().on("remove",o=>{let a=o.element.get("id");t.layers=t.layers.filter(l=>l.id!=a),console.log("layer",a,"removed",t),r()}),e.getControls().on("add",o=>{var s;let a=o.element;if(a instanceof uA){a.onAdd();for(let l of["addfeature","changefeature"]){let A=a.getLayer();(s=A.getSource())===null||s===void 0||s.on(l,c=>{let h=a.getGeoJSONFeatures();console.log(h),n&&(n.set("features",{[A.get("id")]:h}),n.save_changes())})}}t.controls.push(a.getProperties()),console.log("control",a.get("id"),"added",t),r()}),e.getControls().on("remove",o=>{let a=o.element.get("id");t.controls=t.controls.filter(l=>l.id!=a),console.log("control",a,"removed",t),r()})}var ZU=new ci({fill:new Ai({color:"rgba(58, 154, 178,0.7)"}),stroke:new _i({color:"rgba(220, 203, 78, 0.7)",width:2})});function QQ(i,e){let t=[];i.on("singleclick",function(n){i.forEachFeatureAtPixel(n.pixel,function(o,s){let a=s instanceof An,l=o;l.set("layer",s.get("id"));let A=t.indexOf(l);A<0?(console.log("push"),t.push(l),a&&l.setStyle(ZU)):(console.log("delete"),t.splice(A,1),a&&l.setStyle())});let r=t.map(o=>hA(o));e?(e.set("features",{selected:r}),e.save_changes()):console.log(r)})}var e8={ADD_FEATURES:"addfeatures"},Qy=class extends Pe{constructor(e,t,n,r){super(e),this.features=n,this.file=t,this.projection=r}},by=class extends qn{constructor(e){e=e||{},super({handleEvent:bi}),this.on,this.once,this.un,this.readAsBuffer_=!1,this.formats_=[];let t=e.formatConstructors?e.formatConstructors:[];for(let n=0,r=t.length;n0){this.source_&&(this.source_.clear(),this.source_.addFeatures(u)),this.dispatchEvent(new Qy(e8.ADD_FEATURES,e,u,o));break}}}registerListeners_(){let e=this.getMap();if(e){let t=this.target?this.target:e.getViewport();this.dropListenKeys_=[ee(t,K.DROP,this.handleDrop,this),ee(t,K.DRAGENTER,this.handleStop,this),ee(t,K.DRAGOVER,this.handleStop,this),ee(t,K.DROP,this.handleStop,this)]}}setActive(e){!this.getActive()&&e&&this.registerListeners_(),this.getActive()&&!e&&this.unregisterListeners_(),super.setActive(e)}setMap(e){this.unregisterListeners_(),super.setMap(e),this.getActive()&&this.registerListeners_()}tryReadFeatures_(e,t,n){try{return e.readFeatures(t,n)}catch{return null}}unregisterListeners_(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(ce),this.dropListenKeys_=null)}handleDrop(e){let t=e.dataTransfer.files;for(let n=0,r=t.length;n{this._map.getView().fit(e.getExtent())}):this._map.getView().fit(e.getExtent()))}fitBounds(e){this._map.getView().fit(e)}setView(e){let t=dA.parse(e);this._map.setView(t)}applyCallToView(e){let t=this._map.getView();console.log("run view method",t),t[e.method](...e.args)}getLayer(e){for(let t of this._map.getLayers().getArray())if(t.get("id")===e)return t}addLayer(e){let t=i8(e);if(t.get("fitBounds")){let n=t.getSource();this.setExtentFromSource(n)}this._map.addLayer(t)}removeLayer(e){let t=this.getLayer(e);t&&this._map.removeLayer(t)}setLayerStyle(e,t){let n=this.getLayer(e);n&&(n.setStyle(t),console.log("style",e,"updated",t))}applyCallToLayer(e,t){console.log("run layer method",e),this.getLayer(e)[t.method](...t.args)}setSource(e,t){let n=this.getLayer(e);if(n){let r=dA.parse(t);n.setSource(r);let o=t[Dh];o&&r.addFeatures(new Dr().readFeatures(o))}}getControl(e){for(let t of this._map.getControls().getArray())if(t.get("id")===e)return t}addControl(e){let t=dA.parse(e);t.setProperties({id:e.id,type:e[zo]}),this._map.addControl(t)}removeControl(e){let t=this.getControl(e);t&&this._map.removeControl(t)}addOverlay(e,t,n,r="ol-overlay"){let o=document.createElement("div");o.id=r,o.style.cssText=n||"",o.innerHTML=t;let s=new Xu({element:o,position:e});this._map.addOverlay(s)}addTooltip(e){TQ(this._map,e)}addSelectFeatures(){QQ(this._map,this._model)}addDragAndDropVectorLayers(e,t){let n=e?.map(r=>dA.parse(r));console.log("drag and drop formats",n),DQ(this._map,n,t)}addModifyInteraction(e){var t;let n=(t=this.getLayer(e))===null||t===void 0?void 0:t.getSource();if(n){let r=new tf({source:n});this._map.addInteraction(r);let o=new Zu({source:n});this._map.addInteraction(o),n.on("changefeature",s=>{if(s.feature){let a=hA(s.feature);console.log("feature changed",a),this._model&&(this._model.set("features",{[e]:[a]}),this._model.save_changes())}})}}};function r8({model:i,el:e}){function t(){let A=l.getView(),c=mQ(A);i.set("view_state",c),i.save_changes()}console.log("Welcome to ol-anywidget",e);let n=i.get("height")||"400px";console.log("height",n);let r=document.createElement("div");r.id="ol-map-widget",r.style.height=n;let o=i.get("options");console.log("mapOptions",o);let s=window.anywidgetMapWidget=new Mh(r,o,i);i.set("created",!0),i.save_changes();let a=i.get("calls");console.log("calls",a);for(let A of a)s[A.method](...A.args);let l=s.getMap();t(),l.on("moveend",A=>{t()}),i.on("msg:custom",A=>{console.log("thanx for your message",A);try{s[A.method](...A.args)}catch(c){console.log("error in anywidget msg call",c)}}),e.appendChild(r)}var kue={render:r8};export{kue as default}; /*! Bundled license information: pako/dist/pako.esm.mjs: @@ -708,4 +741,10 @@ pako/dist/pako.esm.mjs: lerc/LercDecode.js: (* Copyright 2015-2021 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve *) + +mustache/mustache.mjs: + (*! + * mustache.js - Logic-less {{mustache}} templates with JavaScript + * http://github.com/janl/mustache.js + *) */ diff --git a/src/openlayers/js/openlayers.standalone.css b/src/openlayers/js/openlayers.standalone.css index 7284050..a2f9fbe 100644 --- a/src/openlayers/js/openlayers.standalone.css +++ b/src/openlayers/js/openlayers.standalone.css @@ -1 +1 @@ -:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer} +:root,:host{--ol-background-color: white;--ol-accent-background-color: #F5F5F5;--ol-subtle-background-color: rgba(128, 128, 128, .25);--ol-partial-background-color: rgba(255, 255, 255, .75);--ol-foreground-color: #333333;--ol-subtle-foreground-color: #666666;--ol-brand-color: #00AAFF}.ol-box{box-sizing:border-box;border-radius:2px;border:1.5px solid var(--ol-background-color);background-color:var(--ol-partial-background-color)}.ol-mouse-position{top:8px;right:8px;position:absolute}.ol-scale-line{background:var(--ol-partial-background-color);border-radius:4px;bottom:8px;left:8px;padding:2px;position:absolute}.ol-scale-line-inner{border:1px solid var(--ol-subtle-foreground-color);border-top:none;color:var(--ol-foreground-color);font-size:10px;text-align:center;margin:1px;will-change:contents,width;transition:all .25s}.ol-scale-bar{position:absolute;bottom:8px;left:8px}.ol-scale-bar-inner{display:flex}.ol-scale-step-marker{width:1px;height:15px;background-color:var(--ol-foreground-color);float:right;z-index:10}.ol-scale-step-text{position:absolute;bottom:-5px;font-size:10px;z-index:11;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-text{position:absolute;font-size:12px;text-align:center;bottom:25px;color:var(--ol-foreground-color);text-shadow:-1.5px 0 var(--ol-partial-background-color),0 1.5px var(--ol-partial-background-color),1.5px 0 var(--ol-partial-background-color),0 -1.5px var(--ol-partial-background-color)}.ol-scale-singlebar{position:relative;height:10px;z-index:9;box-sizing:border-box;border:1px solid var(--ol-foreground-color)}.ol-scale-singlebar-even{background-color:var(--ol-subtle-foreground-color)}.ol-scale-singlebar-odd{background-color:var(--ol-background-color)}.ol-unsupported{display:none}.ol-viewport,.ol-unselectable{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.ol-viewport canvas{all:unset;overflow:hidden}.ol-viewport{touch-action:pan-x pan-y}.ol-selectable{-webkit-touch-callout:default;-webkit-user-select:text;-moz-user-select:text;user-select:text}.ol-grabbing{cursor:-webkit-grabbing;cursor:-moz-grabbing;cursor:grabbing}.ol-grab{cursor:move;cursor:-webkit-grab;cursor:-moz-grab;cursor:grab}.ol-control{position:absolute;background-color:var(--ol-subtle-background-color);border-radius:4px}.ol-zoom{top:.5em;left:.5em}.ol-rotate{top:.5em;right:.5em;transition:opacity .25s linear,visibility 0s linear}.ol-rotate.ol-hidden{opacity:0;visibility:hidden;transition:opacity .25s linear,visibility 0s linear .25s}.ol-zoom-extent{top:4.643em;left:.5em}.ol-full-screen{right:.5em;top:.5em}.ol-control button{display:block;margin:1px;padding:0;color:var(--ol-subtle-foreground-color);font-weight:700;text-decoration:none;font-size:inherit;text-align:center;height:1.375em;width:1.375em;line-height:.4em;background-color:var(--ol-background-color);border:none;border-radius:2px}.ol-control button::-moz-focus-inner{border:none;padding:0}.ol-zoom-extent button{line-height:1.4em}.ol-compass{display:block;font-weight:400;will-change:transform}.ol-touch .ol-control button{font-size:1.5em}.ol-touch .ol-zoom-extent{top:5.5em}.ol-control button:hover,.ol-control button:focus{text-decoration:none;outline:1px solid var(--ol-subtle-foreground-color);color:var(--ol-foreground-color)}.ol-zoom .ol-zoom-in{border-radius:2px 2px 0 0}.ol-zoom .ol-zoom-out{border-radius:0 0 2px 2px}.ol-attribution{text-align:right;bottom:.5em;right:.5em;max-width:calc(100% - 1.3em);display:flex;flex-flow:row-reverse;align-items:center}.ol-attribution a{color:var(--ol-subtle-foreground-color);text-decoration:none}.ol-attribution ul{margin:0;padding:1px .5em;color:var(--ol-foreground-color);text-shadow:0 0 2px var(--ol-background-color);font-size:12px}.ol-attribution li{display:inline;list-style:none}.ol-attribution li:not(:last-child):after{content:" "}.ol-attribution img{max-height:2em;max-width:inherit;vertical-align:middle}.ol-attribution button{flex-shrink:0}.ol-attribution.ol-collapsed ul{display:none}.ol-attribution:not(.ol-collapsed){background:var(--ol-partial-background-color)}.ol-attribution.ol-uncollapsible{bottom:0;right:0;border-radius:4px 0 0}.ol-attribution.ol-uncollapsible img{margin-top:-.2em;max-height:1.6em}.ol-attribution.ol-uncollapsible button{display:none}.ol-zoomslider{top:4.5em;left:.5em;height:200px}.ol-zoomslider button{position:relative;height:10px}.ol-touch .ol-zoomslider{top:5.5em}.ol-overviewmap{left:.5em;bottom:.5em}.ol-overviewmap.ol-uncollapsible{bottom:0;left:0;border-radius:0 4px 0 0}.ol-overviewmap .ol-overviewmap-map,.ol-overviewmap button{display:block}.ol-overviewmap .ol-overviewmap-map{border:1px solid var(--ol-subtle-foreground-color);height:150px;width:150px}.ol-overviewmap:not(.ol-collapsed) button{bottom:0;left:0;position:absolute}.ol-overviewmap.ol-collapsed .ol-overviewmap-map,.ol-overviewmap.ol-uncollapsible button{display:none}.ol-overviewmap:not(.ol-collapsed){background:var(--ol-subtle-background-color)}.ol-overviewmap-box{border:1.5px dotted var(--ol-subtle-foreground-color)}.ol-overviewmap .ol-overviewmap-box:hover{cursor:move}.ol-overviewmap .ol-viewport:hover{cursor:pointer}svg.svelte-d2loi5{display:block;fill:#e15042}.sprite-icon.svelte-w9y5n9.svelte-w9y5n9{align-self:center;justify-self:center;opacity:.75;background-repeat:no-repeat}li.svelte-w9y5n9.svelte-w9y5n9{text-align:left;cursor:default;display:grid;grid-template-columns:40px 1fr;color:var(--color-text);padding:8px 0;font-size:14px;line-height:18px;min-width:fit-content;outline:0}li.svelte-w9y5n9.svelte-w9y5n9:first-child{padding-top:10px}li.svelte-w9y5n9.svelte-w9y5n9:last-child{padding-bottom:10px}li.picked.svelte-w9y5n9.svelte-w9y5n9{background-color:#e7edff}li.picked.svelte-w9y5n9 .secondary.svelte-w9y5n9{color:#96a4c7;padding-left:4px}li.picked.svelte-w9y5n9 .line2.svelte-w9y5n9{color:#96a4c7}li.selected.svelte-w9y5n9.svelte-w9y5n9{background-color:#f3f6ff}li.selected.svelte-w9y5n9.svelte-w9y5n9{animation:svelte-w9y5n9-backAndForth 5s linear infinite}li.selected.svelte-w9y5n9 .primary.svelte-w9y5n9{color:#2b8bfb}li.selected.svelte-w9y5n9 .secondary.svelte-w9y5n9{color:#a2adc7;padding-left:4px}li.selected.svelte-w9y5n9 .line2.svelte-w9y5n9{color:#a2adc7}li.svelte-w9y5n9>img.svelte-w9y5n9{align-self:center;justify-self:center;opacity:.75}.texts.svelte-w9y5n9.svelte-w9y5n9{padding:0 17px 0 0}.texts.svelte-w9y5n9>.svelte-w9y5n9{white-space:nowrap;display:block;min-width:fit-content}.primary.svelte-w9y5n9.svelte-w9y5n9{font-weight:600}.secondary.svelte-w9y5n9.svelte-w9y5n9{color:#aeb6c7;padding-left:4px}.line2.svelte-w9y5n9.svelte-w9y5n9{color:#aeb6c7}@keyframes svelte-w9y5n9-backAndForth{0%{transform:translate(0)}10%{transform:translate(0)}45%{transform:translate(calc(-100% + 270px))}55%{transform:translate(calc(-100% + 270px))}90%{transform:translate(0)}to{transform:translate(0)}}div.svelte-7cmwmc{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;display:flex;align-items:center}svg.svelte-7cmwmc{animation:svelte-7cmwmc-rotate .8s infinite cubic-bezier(.45,.05,.55,.95)}@keyframes svelte-7cmwmc-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}svg.svelte-gzo3ar.svelte-gzo3ar{display:block;fill:#6b7c93;stroke:#6b7c93}.list-icon.svelte-gzo3ar.svelte-gzo3ar{grid-row:1/3;align-self:center;margin:8px}.in-map.svelte-gzo3ar.svelte-gzo3ar{height:30px}.maplibregl-canvas-container .marker-selected{z-index:1}.maplibregl-canvas-container svg.svelte-gzo3ar path.svelte-gzo3ar,.leaflet-map-pane svg.svelte-gzo3ar path.svelte-gzo3ar{fill:#3170fe;stroke:#3170fe}.marker-selected svg.svelte-gzo3ar path.svelte-gzo3ar{fill:#98b7ff;stroke:#3170fe}.marker-reverse svg.svelte-gzo3ar path.svelte-gzo3ar{fill:silver;stroke:gray}.marker-interactive{cursor:pointer!important}.maptiler-gc-popup>.maplibregl-popup-content{padding:2px 8px}svg.svelte-en2qvf{display:block;fill:var(--color-icon-button)}circle.svelte-1aq105l{stroke-width:1.875;fill:none}path.svelte-1aq105l{stroke-width:1.875;stroke-linecap:round}svg.svelte-1aq105l{display:block;stroke:var(--color-icon-button)}form.svelte-bz0zu3.svelte-bz0zu3{font-family:Open Sans,Ubuntu,Helvetica Neue,Arial,Helvetica,sans-serif;position:relative;background-color:#fff;z-index:10;border-radius:4px;margin:0;transition:max-width .25s;box-shadow:0 2px 5px #33335926;--color-text:#444952;--color-icon-button:#444952}form.svelte-bz0zu3.svelte-bz0zu3,form.svelte-bz0zu3 .svelte-bz0zu3,form.svelte-bz0zu3 .svelte-bz0zu3:after,form.svelte-bz0zu3 .svelte-bz0zu3:before{box-sizing:border-box}form.can-collapse.svelte-bz0zu3.svelte-bz0zu3{max-width:29px}form.can-collapse.svelte-bz0zu3 input.svelte-bz0zu3::placeholder{transition:opacity .25s;opacity:0}form.svelte-bz0zu3.svelte-bz0zu3,form.svelte-bz0zu3.svelte-bz0zu3:focus-within,form.svelte-bz0zu3.svelte-bz0zu3:hover{width:270px;max-width:270px}form.svelte-bz0zu3 input.svelte-bz0zu3::placeholder,form.svelte-bz0zu3:focus-within input.svelte-bz0zu3::placeholder,form.svelte-bz0zu3:hover input.svelte-bz0zu3::placeholder{opacity:1}input.svelte-bz0zu3.svelte-bz0zu3{font:inherit;font-size:14px;flex-grow:1;min-height:29px;background-color:transparent;color:#444952;white-space:nowrap;overflow:hidden;border:0;margin:0;padding:0}input.svelte-bz0zu3.svelte-bz0zu3:focus{color:#444952;outline:0;outline:none;box-shadow:none}ul.svelte-bz0zu3.svelte-bz0zu3,div.error.svelte-bz0zu3.svelte-bz0zu3,div.no-results.svelte-bz0zu3.svelte-bz0zu3{background-color:#fff;border-radius:4px;left:0;list-style:none;margin:0;padding:0;position:absolute;width:100%;top:calc(100% + 6px);overflow:hidden}ul.svelte-bz0zu3.svelte-bz0zu3{font-size:14px;line-height:16px;box-shadow:0 5px 10px #33335926}div.error.svelte-bz0zu3.svelte-bz0zu3,div.no-results.svelte-bz0zu3.svelte-bz0zu3{font:inherit;line-height:18px;font-size:12px;display:flex;gap:16px}div.error.svelte-bz0zu3.svelte-bz0zu3{padding:16px;font-weight:600;color:#e25041;background-color:#fbeae8}div.error.svelte-bz0zu3 div.svelte-bz0zu3{flex-grow:1}div.error.svelte-bz0zu3 svg{flex-shrink:0;width:20px;height:20px}div.error.svelte-bz0zu3 button.svelte-bz0zu3{flex-shrink:0}div.error.svelte-bz0zu3 button.svelte-bz0zu3>svg{width:13px;fill:#e25041}div.error.svelte-bz0zu3 button.svelte-bz0zu3:hover svg,div.error.svelte-bz0zu3 button.svelte-bz0zu3:active svg{fill:#444952}div.no-results.svelte-bz0zu3.svelte-bz0zu3{padding:14px 24px 14px 16px;font-weight:400;color:#6b7c93;box-shadow:0 5px 10px #33335926}div.no-results.svelte-bz0zu3 svg{margin-top:4px;flex-shrink:0;width:20px;height:20px;width:30px;height:30px}.leaflet-bottom ul.options.svelte-bz0zu3.svelte-bz0zu3,.maplibregl-ctrl-bottom-left ul.options.svelte-bz0zu3.svelte-bz0zu3,.maplibregl-ctrl-bottom-right ul.options.svelte-bz0zu3.svelte-bz0zu3{top:auto;bottom:calc(100% + 6px)}button.svelte-bz0zu3.svelte-bz0zu3{padding:0;margin:0;border:0;background-color:transparent;height:auto;width:auto}button.svelte-bz0zu3.svelte-bz0zu3:hover{background-color:transparent}button.svelte-bz0zu3:hover svg,button.svelte-bz0zu3:active svg{fill:#2b8bfb}.input-group.svelte-bz0zu3.svelte-bz0zu3{display:flex;align-items:stretch;gap:7px;padding-inline:8px;border-radius:4px;overflow:hidden}.input-group.svelte-bz0zu3.svelte-bz0zu3:focus-within{outline:#2b8bfb solid 2px}.search-button.svelte-bz0zu3.svelte-bz0zu3{flex-shrink:0}.maplibregl-ctrl-geocoder:not(.maptiler-ctrl) .search-button svg{width:12px!important;transform:translate(.5px)}.clear-button-container.svelte-bz0zu3.svelte-bz0zu3{display:flex;display:none;position:relative;align-items:stretch}.clear-button-container.displayable.svelte-bz0zu3.svelte-bz0zu3{display:flex;flex-shrink:0}.maplibregl-ctrl-geocoder{position:relative;z-index:3}.maptiler-ctrl:not(:empty){box-shadow:none}.maptiler-ctrl .input-group.svelte-bz0zu3.svelte-bz0zu3{padding-inline:8px;border:white solid 2px}.maptiler-ctrl .input-group.svelte-bz0zu3.svelte-bz0zu3:focus-within{border:#2b8bfb solid 2px;outline:0;outline:none}.maptiler-ctrl form.can-collapse.svelte-bz0zu3.svelte-bz0zu3{max-width:33px}.maptiler-ctrl form.svelte-bz0zu3.svelte-bz0zu3,.maptiler-ctrl form.svelte-bz0zu3.svelte-bz0zu3:focus-within,.maptiler-ctrl form.svelte-bz0zu3.svelte-bz0zu3:hover{width:270px;max-width:270px} diff --git a/src/openlayers/js/openlayers.standalone.js b/src/openlayers/js/openlayers.standalone.js index e9daae0..274ee4b 100644 --- a/src/openlayers/js/openlayers.standalone.js +++ b/src/openlayers/js/openlayers.standalone.js @@ -1,14 +1,14 @@ -"use strict";(()=>{var zx=Object.create;var Th=Object.defineProperty;var Kx=Object.getOwnPropertyDescriptor;var qx=Object.getOwnPropertyNames;var Vx=Object.getPrototypeOf,Xx=Object.prototype.hasOwnProperty;var Ft=(i,e)=>()=>(i&&(e=i(i=0)),e);var Mi=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),pn=(i,e)=>{for(var t in e)Th(i,t,{get:e[t],enumerable:!0})},Jx=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of qx(e))!Xx.call(i,r)&&r!==t&&Th(i,r,{get:()=>e[r],enumerable:!(n=Kx(e,r))||n.enumerable});return i};var mo=(i,e,t)=>(t=i!=null?zx(Vx(i)):{},Jx(e||!i||!i.__esModule?Th(t,"default",{value:i,enumerable:!0}):t,i));var ZC=Mi((Hq,Dd)=>{function WC(i,e,t){let n=t&&t.debug||!1;n&&console.log("[xml-utils] getting "+e+" in "+i);let r=typeof i=="object"?i.outer:i,o=r.slice(0,r.indexOf(">")+1),s=['"',"'"];for(let a=0;a{function $C(i,e,t){let r=new RegExp(e).exec(i.slice(t));return r?t+r.index:-1}bd.exports=$C;bd.exports.default=$C});var i_=Mi((Kq,Fd)=>{function t_(i,e,t){let r=new RegExp(e).exec(i.slice(t));return r?t+r.index+r[0].length-1:-1}Fd.exports=t_;Fd.exports.default=t_});var r_=Mi((qq,Ld)=>{function n_(i,e){let t=new RegExp(e,"g"),n=i.match(t);return n?n.length:0}Ld.exports=n_;Ld.exports.default=n_});var a_=Mi((Vq,kd)=>{var xS=e_(),Md=i_(),o_=r_();function s_(i,e,t){let n=t&&t.debug||!1,r=!(t&&typeof t.nested===!1),o=t&&t.startIndex||0;n&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let s=xS(i,`<${e}[ ->/]`,o);if(n&&console.log("[xml-utils] start:",s),s===-1)return;let a=i.slice(s+e.length),A=Md(a,"^[^<]*[ /]>",0),l=A!==-1&&a[A-1]==="/";if(n&&console.log("[xml-utils] selfClosing:",l),l===!1)if(r){let f=0,g=1,m=0;for(;(A=Md(a,"[ /]"+e+">",f))!==-1;){let d=a.substring(f,A+1);if(g+=o_(d,"<"+e+`[ - >]`),m+=o_(d,""),m>=g)break;f=A}}else A=Md(a,"[ /]"+e+">",0);let c=s+e.length+A+1;if(n&&console.log("[xml-utils] end:",c),c===-1)return;let h=i.slice(s,c),u;return l?u=null:u=h.slice(h.indexOf(">")+1,h.lastIndexOf("<")),{inner:u,outer:h,start:s,end:c}}kd.exports=s_;kd.exports.default=s_});var l_=Mi((Xq,Pd)=>{var wS=a_();function A_(i,e,t){let n=[],r=t&&t.debug||!1,o=t&&typeof t.nested=="boolean"?t.nested:!0,s=t&&t.startIndex||0,a;for(;a=wS(i,e,{debug:r,startIndex:s});)o?s=a.start+1+e.length:s=a.end,n.push(a);return r&&console.log("findTagsByName found",n.length,"tags"),n}Pd.exports=A_;Pd.exports.default=A_});var yc={};pn(yc,{ExtraSamplesValues:()=>Gd,LercAddCompression:()=>Ha,LercParameters:()=>Od,arrayFields:()=>Nd,fieldTagNames:()=>io,fieldTagTypes:()=>QS,fieldTags:()=>bi,fieldTypeNames:()=>_c,fieldTypes:()=>le,geoKeyNames:()=>ps,geoKeys:()=>c_,photometricInterpretations:()=>vt});var io,bi,QS,Nd,_c,le,vt,Gd,Od,Ha,ps,c_,za=Ft(()=>{io={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},bi={};for(let i in io)io.hasOwnProperty(i)&&(bi[io[i]]=parseInt(i,10));QS={256:"SHORT",257:"SHORT",258:"SHORT",259:"SHORT",262:"SHORT",273:"LONG",274:"SHORT",277:"SHORT",278:"LONG",279:"LONG",282:"RATIONAL",283:"RATIONAL",284:"SHORT",286:"SHORT",287:"RATIONAL",296:"SHORT",297:"SHORT",305:"ASCII",306:"ASCII",338:"SHORT",339:"SHORT",513:"LONG",514:"LONG",1024:"SHORT",1025:"SHORT",2048:"SHORT",2049:"ASCII",3072:"SHORT",3073:"ASCII",33550:"DOUBLE",33922:"DOUBLE",34264:"DOUBLE",34665:"LONG",34735:"SHORT",34736:"DOUBLE",34737:"ASCII",42113:"ASCII"},Nd=[bi.BitsPerSample,bi.ExtraSamples,bi.SampleFormat,bi.StripByteCounts,bi.StripOffsets,bi.StripRowCounts,bi.TileByteCounts,bi.TileOffsets,bi.SubIFDs],_c={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},le={};for(let i in _c)_c.hasOwnProperty(i)&&(le[_c[i]]=parseInt(i,10));vt={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},Gd={Unspecified:0,Assocalpha:1,Unassalpha:2},Od={Version:0,AddCompression:1},Ha={None:0,Deflate:1,Zstandard:2},ps={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},c_={};for(let i in ps)ps.hasOwnProperty(i)&&(c_[ps[i]]=parseInt(i,10))});function TS(i,e){let t=i.length-e,n=0;do{for(let r=e;r>0;r--)i[n+e]+=i[n],n++;t-=e}while(t>0)}function DS(i,e,t){let n=0,r=i.length,o=r/t;for(;r>e;){for(let a=e;a>0;--a)i[n+e]+=i[n],++n;r-=e}let s=i.slice();for(let a=0;a=i.byteLength);++A){let l;if(e===2){switch(r[0]){case 8:l=new Uint8Array(i,A*a*t*s,a*t*s);break;case 16:l=new Uint16Array(i,A*a*t*s,a*t*s/2);break;case 32:l=new Uint32Array(i,A*a*t*s,a*t*s/4);break;default:throw new Error(`Predictor 2 not allowed with ${r[0]} bits per sample.`)}TS(l,a,s)}else e===3&&(l=new Uint8Array(i,A*a*t*s,a*t*s),DS(l,a,s))}return i}var E_=Ft(()=>{});var dt,pr=Ft(()=>{E_();dt=class{async decode(e,t){let n=await this.decodeBlock(t),r=e.Predictor||1;if(r!==1){let o=!e.StripOffsets,s=o?e.TileWidth:e.ImageWidth,a=o?e.TileLength:e.RowsPerStrip||e.ImageLength;return p_(n,r,s,a,e.BitsPerSample,e.PlanarConfiguration)}return n}}});var I_={};pn(I_,{default:()=>Bc});var Bc,C_=Ft(()=>{pr();Bc=class extends dt{decodeBlock(e){return e}}});var y_={};pn(y_,{default:()=>xc});function FS(i,e,t){let n=e%8,r=Math.floor(e/8),o=8-n,s=e+t-(r+1)*8,a=8*(r+2)-(e+t),A=(r+2)*8-e;if(a=Math.max(0,a),r>=i.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),Hd;let l=i[r]&2**(8-n)-1;l<<=t-o;let c=l;if(r+1>>a;h<<=Math.max(0,t-A),c+=h}if(s>8&&r+2>>h;c+=u}return c}function Yd(i,e){for(let t=e.length-1;t>=0;t--)i.push(e[t]);return i}function LS(i){let e=new Uint16Array(4093),t=new Uint8Array(4093);for(let g=0;g<=257;g++)e[g]=4096,t[g]=g;let n=258,r=__,o=0;function s(){n=258,r=__}function a(g){let m=FS(g,o,r);return o+=r,m}function A(g,m){return t[n]=m,e[n]=g,n++,n-1}function l(g){let m=[];for(let d=g;d!==4096;d=e[d])m.push(t[d]);return m}let c=[];s();let h=new Uint8Array(i),u=a(h),f;for(;u!==Hd;){if(u===Ud){for(s(),u=a(h);u===Ud;)u=a(h);if(u===Hd)break;if(u>Ud)throw new Error(`corrupted code at scanline ${u}`);{let g=l(u);Yd(c,g),f=u}}else if(u=2**r&&(r===bS?f=void 0:r++),u=a(h)}return new Uint8Array(c)}var __,Ud,Hd,bS,xc,B_=Ft(()=>{pr();__=9,Ud=256,Hd=257,bS=12;xc=class extends dt{decodeBlock(e){return LS(e,!1).buffer}}});var w_={};pn(w_,{default:()=>bc});function x_(i,e){let t=0,n=[],r=16;for(;r>0&&!i[r-1];)--r;n.push({children:[],index:0});let o=n[0],s;for(let a=0;a0;)o=n.pop();for(o.index++,n.push(o);n.length<=a;)n.push(s={children:[],index:0}),o.children[o.index]=s.children,o=s;t++}a+10)return g--,f>>g&1;if(f=i[u++],f===255){let H=i[u++];if(H)throw new Error(`unexpected marker: ${(f<<8|H).toString(16)}`)}return g=7,f>>>7}function d(H){let O=H,K;for(;(K=m())!==null;){if(O=O[K],typeof O=="number")return O;if(typeof O!="object")throw new Error("invalid huffman sequence")}return null}function E(H){let O=H,K=0;for(;O>0;){let ie=m();if(ie===null)return;K=K<<1|ie,--O}return K}function p(H){let O=E(H);return O>=1<>4;if(de===0){if(Pe<15)break;ge+=16}else{ge+=Pe;let tt=Ka[ge];O[tt]=p(de),ge++}}}function C(H,O){let K=d(H.huffmanTableDC),ie=K===0?0:p(K)<0){y--;return}let K=o,ie=s;for(;K<=ie;){let ge=d(H.huffmanTableAC),Ee=ge&15,de=ge>>4;if(Ee===0){if(de<15){y=E(de)+(1<>4,tt===0)ge<15?(y=E(ge)+(1<=65488&&Y<=65495)u+=2;else break}return u-h}function kS(i,e){let t=[],{blocksPerLine:n,blocksPerColumn:r}=e,o=n<<3,s=new Int32Array(64),a=new Uint8Array(64);function A(l,c,h){let u=e.quantizationTable,f,g,m,d,E,p,_,C,I,y=h,x;for(x=0;x<64;x++)y[x]=l[x]*u[x];for(x=0;x<8;++x){let B=8*x;if(y[1+B]===0&&y[2+B]===0&&y[3+B]===0&&y[4+B]===0&&y[5+B]===0&&y[6+B]===0&&y[7+B]===0){I=Es*y[0+B]+512>>10,y[0+B]=I,y[1+B]=I,y[2+B]=I,y[3+B]=I,y[4+B]=I,y[5+B]=I,y[6+B]=I,y[7+B]=I;continue}f=Es*y[0+B]+128>>8,g=Es*y[4+B]+128>>8,m=y[2+B],d=y[6+B],E=Dc*(y[1+B]-y[7+B])+128>>8,C=Dc*(y[1+B]+y[7+B])+128>>8,p=y[3+B]<<4,_=y[5+B]<<4,I=f-g+1>>1,f=f+g+1>>1,g=I,I=m*Tc+d*vc+128>>8,m=m*vc-d*Tc+128>>8,d=I,I=E-_+1>>1,E=E+_+1>>1,_=I,I=C+p+1>>1,p=C-p+1>>1,C=I,I=f-d+1>>1,f=f+d+1>>1,d=I,I=g-m+1>>1,g=g+m+1>>1,m=I,I=E*Rc+C*Sc+2048>>12,E=E*Sc-C*Rc+2048>>12,C=I,I=p*Qc+_*wc+2048>>12,p=p*wc-_*Qc+2048>>12,_=I,y[0+B]=f+C,y[7+B]=f-C,y[1+B]=g+_,y[6+B]=g-_,y[2+B]=m+p,y[5+B]=m-p,y[3+B]=d+E,y[4+B]=d-E}for(x=0;x<8;++x){let B=x;if(y[1*8+B]===0&&y[2*8+B]===0&&y[3*8+B]===0&&y[4*8+B]===0&&y[5*8+B]===0&&y[6*8+B]===0&&y[7*8+B]===0){I=Es*h[x+0]+8192>>14,y[0*8+B]=I,y[1*8+B]=I,y[2*8+B]=I,y[3*8+B]=I,y[4*8+B]=I,y[5*8+B]=I,y[6*8+B]=I,y[7*8+B]=I;continue}f=Es*y[0*8+B]+2048>>12,g=Es*y[4*8+B]+2048>>12,m=y[2*8+B],d=y[6*8+B],E=Dc*(y[1*8+B]-y[7*8+B])+2048>>12,C=Dc*(y[1*8+B]+y[7*8+B])+2048>>12,p=y[3*8+B],_=y[5*8+B],I=f-g+1>>1,f=f+g+1>>1,g=I,I=m*Tc+d*vc+2048>>12,m=m*vc-d*Tc+2048>>12,d=I,I=E-_+1>>1,E=E+_+1>>1,_=I,I=C+p+1>>1,p=C-p+1>>1,C=I,I=f-d+1>>1,f=f+d+1>>1,d=I,I=g-m+1>>1,g=g+m+1>>1,m=I,I=E*Rc+C*Sc+2048>>12,E=E*Sc-C*Rc+2048>>12,C=I,I=p*Qc+_*wc+2048>>12,p=p*wc-_*Qc+2048>>12,_=I,y[0*8+B]=f+C,y[7*8+B]=f-C,y[1*8+B]=g+_,y[6*8+B]=g-_,y[2*8+B]=m+p,y[5*8+B]=m-p,y[3*8+B]=d+E,y[4*8+B]=d-E}for(x=0;x<64;++x){let B=128+(y[x]+8>>4);B<0?c[x]=0:B>255?c[x]=255:c[x]=B}}for(let l=0;l{pr();Ka=new Int32Array([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]),wc=4017,Qc=799,Sc=3406,Rc=2276,vc=1567,Tc=3784,Es=5793,Dc=2896;zd=class{constructor(){this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}resetFrames(){this.frames=[]}parse(e){let t=0;function n(){let a=e[t]<<8|e[t+1];return t+=2,a}function r(){let a=n(),A=e.subarray(t,t+a-2);return t+=A.length,A}function o(a){let A=0,l=0,c,h;for(h in a.components)a.components.hasOwnProperty(h)&&(c=a.components[h],A>4===0)for(let h=0;h<64;h++){let u=Ka[h];c[u]=e[t++]}else if(l>>4===1)for(let h=0;h<64;h++){let u=Ka[h];c[u]=n()}else throw new Error("DQT: invalid table spec");this.quantizationTables[l&15]=c}break}case 65472:case 65473:case 65474:{n();let a={extended:s===65473,progressive:s===65474,precision:e[t++],scanLines:n(),samplesPerLine:n(),components:{},componentsOrder:[]},A=e[t++],l;for(let c=0;c>4,u=e[t+1]&15,f=e[t+2];a.componentsOrder.push(l),a.components[l]={h,v:u,quantizationIdx:f},t+=3}o(a),this.frames.push(a);break}case 65476:{let a=n();for(let A=2;A>4===0?this.huffmanTablesDC[l&15]=x_(c,u):this.huffmanTablesAC[l&15]=x_(c,u)}break}case 65501:n(),this.resetInterval=n();break;case 65498:{n();let a=e[t++],A=[],l=this.frames[0];for(let g=0;g>4],m.huffmanTableAC=this.huffmanTablesAC[d&15],A.push(m)}let c=e[t++],h=e[t++],u=e[t++],f=MS(e,t,l,A,this.resetInterval,c,h,u>>4,u&15);t+=f;break}case 65535:e[t]!==255&&t--;break;default:if(e[t-3]===255&&e[t-2]>=192&&e[t-2]<=254){t-=3;break}throw new Error(`unknown JPEG marker ${s.toString(16)}`)}s=n()}}getResult(){let{frames:e}=this;if(this.frames.length===0)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let c=0;c=0;)i[e]=0}function qd(i,e,t,n,r){this.static_tree=i,this.extra_bits=e,this.extra_base=t,this.elems=n,this.max_length=r,this.has_stree=i&&i.length}function Vd(i,e){this.dyn_tree=i,this.max_code=0,this.stat_desc=e}function on(i,e,t,n,r){this.good_length=i,this.max_lazy=e,this.nice_length=t,this.max_chain=n,this.func=r}function NR(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=Yc,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(vR*2),this.dyn_dtree=new Uint16Array((2*SR+1)*2),this.bl_tree=new Uint16Array((2*RR+1)*2),Er(this.dyn_ltree),Er(this.dyn_dtree),Er(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(TR+1),this.heap=new Uint16Array(2*Am+1),Er(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*Am+1),Er(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function sv(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}function AA(i){this.options=Hc.assign({level:uv,method:gv,chunkSize:16384,windowBits:15,memLevel:8,strategy:fv},i||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new by,this.strm.avail_out=0;let t=ja.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==Oc)throw new Error(so[t]);if(e.header&&ja.deflateSetHeader(this.strm,e.header),e.dictionary){let n;if(typeof e.dictionary=="string"?n=rA.string2buf(e.dictionary):Fy.call(e.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(e.dictionary):n=e.dictionary,t=ja.deflateSetDictionary(this.strm,n),t!==Oc)throw new Error(so[t]);this._dict_set=!0}}function Im(i,e){let t=new AA(e);if(t.push(i,!0),t.err)throw t.msg||so[t.err];return t.result}function dv(i,e){return e=e||{},e.raw=!0,Im(i,e)}function mv(i,e){return e=e||{},e.gzip=!0,Im(i,e)}function Gv(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function iT(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}function lA(i){this.options=Hc.assign({chunkSize:1024*64,windowBits:15,to:""},i||{});let e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(i&&i.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15)===0&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new by,this.strm.avail_out=0;let t=Yn.inflateInit2(this.strm,e.windowBits);if(t!==oA)throw new Error(so[t]);if(this.header=new nT,Yn.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=rA.string2buf(e.dictionary):Ky.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=Yn.inflateSetDictionary(this.strm,e.dictionary),t!==oA)))throw new Error(so[t])}function Cm(i,e){let t=new lA(e);if(t.push(i),t.err)throw t.msg||so[t.err];return t.result}function AT(i,e){return e=e||{},e.raw=!0,Cm(i,e)}var PS,hy,NS,GS,OS,gm,sA,Za,_s,dm,uy,no,Kd,US,mm,fy,gy,dy,om,Nc,YS,my,HS,Un,Ja,$a,eA,pm,Gc,py,Ey,Iy,Cy,tA,qt,sn,_y,zS,KS,yy,qS,By,xy,S_,Xd,R_,sm,v_,T_,VS,XS,JS,D_,jS,wy,WS,ZS,$S,eR,tR,iR,nR,rR,oR,sR,iA,aR,AR,lR,ct,so,ws,cR,am,hR,Cr,uR,_r,fR,gR,di,b_,mt,F_,an,dR,Jd,mR,pR,Fc,ER,IR,CR,_R,Yc,yR,BR,xR,wR,QR,Am,SR,RR,vR,TR,Ie,Ir,An,DR,ys,Em,lm,cm,hm,um,ro,Va,Tt,Qs,ao,Ss,bR,oo,L_,Er,FR,LR,yr,ei,ti,Qe,qa,fm,Qy,Bs,Sy,jd,Is,MR,kR,Xa,PR,aA,Ry,vy,GR,Ty,OR,UR,YR,HR,zR,KR,qR,VR,XR,JR,jR,WR,ZR,ja,$R,ev,tv,Hc,Dy,nA,iv,nv,rv,ov,rA,by,Fy,av,Av,lv,cv,Oc,hv,uv,fv,gv,pv,Ev,Iv,Cv,_v,yv,Lc,Bv,xv,Cs,M_,k_,P_,Wd,N_,wv,Qv,Sv,Rv,vv,Wa,Tv,Ly,My,G_,Dv,Mc,Ao,bv,Fv,mi,ky,Py,Lv,O_,zc,U_,Y_,H_,z_,K_,q_,V_,X_,J_,Uc,On,Zd,j_,$d,W_,Z_,$_,ey,kc,Pc,ty,iy,ny,ry,oy,em,sy,ay,Me,Ny,Gy,Mv,kv,Pv,Nv,Ay,lo,Oy,Uy,Yy,Hy,Ov,ly,tm,im,Uv,zy,Yv,Hv,zv,Kv,qv,Vv,Xv,Jv,jv,Wv,Zv,$v,eT,tT,Yn,nT,Ky,rT,oT,oA,nm,rm,sT,cy,aT,lT,cT,hT,uT,fT,gT,iV,nV,rV,oV,sV,dT,aV,AV,Kc,_m=Ft(()=>{PS=0,hy=1,NS=2,GS=3,OS=258,gm=29,sA=256,Za=sA+1+gm,_s=30,dm=19,uy=2*Za+1,no=15,Kd=16,US=7,mm=256,fy=16,gy=17,dy=18,om=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),Nc=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),YS=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),my=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),HS=512,Un=new Array((Za+2)*2);xs(Un);Ja=new Array(_s*2);xs(Ja);$a=new Array(HS);xs($a);eA=new Array(OS-GS+1);xs(eA);pm=new Array(gm);xs(pm);Gc=new Array(_s);xs(Gc);Cy=i=>i<256?$a[i]:$a[256+(i>>>7)],tA=(i,e)=>{i.pending_buf[i.pending++]=e&255,i.pending_buf[i.pending++]=e>>>8&255},qt=(i,e,t)=>{i.bi_valid>Kd-t?(i.bi_buf|=e<>Kd-i.bi_valid,i.bi_valid+=t-Kd):(i.bi_buf|=e<{qt(i,t[e*2],t[e*2+1])},_y=(i,e)=>{let t=0;do t|=i&1,i>>>=1,t<<=1;while(--e>0);return t>>>1},zS=i=>{i.bi_valid===16?(tA(i,i.bi_buf),i.bi_buf=0,i.bi_valid=0):i.bi_valid>=8&&(i.pending_buf[i.pending++]=i.bi_buf&255,i.bi_buf>>=8,i.bi_valid-=8)},KS=(i,e)=>{let t=e.dyn_tree,n=e.max_code,r=e.stat_desc.static_tree,o=e.stat_desc.has_stree,s=e.stat_desc.extra_bits,a=e.stat_desc.extra_base,A=e.stat_desc.max_length,l,c,h,u,f,g,m=0;for(u=0;u<=no;u++)i.bl_count[u]=0;for(t[i.heap[i.heap_max]*2+1]=0,l=i.heap_max+1;lA&&(u=A,m++),t[c*2+1]=u,!(c>n)&&(i.bl_count[u]++,f=0,c>=a&&(f=s[c-a]),g=t[c*2],i.opt_len+=g*(u+f),o&&(i.static_len+=g*(r[c*2+1]+f)));if(m!==0){do{for(u=A-1;i.bl_count[u]===0;)u--;i.bl_count[u]--,i.bl_count[u+1]+=2,i.bl_count[A]--,m-=2}while(m>0);for(u=A;u!==0;u--)for(c=i.bl_count[u];c!==0;)h=i.heap[--l],!(h>n)&&(t[h*2+1]!==u&&(i.opt_len+=(u-t[h*2+1])*t[h*2],t[h*2+1]=u),c--)}},yy=(i,e,t)=>{let n=new Array(no+1),r=0,o,s;for(o=1;o<=no;o++)r=r+t[o-1]<<1,n[o]=r;for(s=0;s<=e;s++){let a=i[s*2+1];a!==0&&(i[s*2]=_y(n[a]++,a))}},qS=()=>{let i,e,t,n,r,o=new Array(no+1);for(t=0,n=0;n>=7;n<_s;n++)for(Gc[n]=r<<7,i=0;i<1<{let e;for(e=0;e{i.bi_valid>8?tA(i,i.bi_buf):i.bi_valid>0&&(i.pending_buf[i.pending++]=i.bi_buf),i.bi_buf=0,i.bi_valid=0},S_=(i,e,t,n)=>{let r=e*2,o=t*2;return i[r]{let n=i.heap[t],r=t<<1;for(;r<=i.heap_len&&(r{let n,r,o=0,s,a;if(i.sym_next!==0)do n=i.pending_buf[i.sym_buf+o++]&255,n+=(i.pending_buf[i.sym_buf+o++]&255)<<8,r=i.pending_buf[i.sym_buf+o++],n===0?sn(i,r,e):(s=eA[r],sn(i,s+sA+1,e),a=om[s],a!==0&&(r-=pm[s],qt(i,r,a)),n--,s=Cy(n),sn(i,s,t),a=Nc[s],a!==0&&(n-=Gc[s],qt(i,n,a)));while(o{let t=e.dyn_tree,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,o=e.stat_desc.elems,s,a,A=-1,l;for(i.heap_len=0,i.heap_max=uy,s=0;s>1;s>=1;s--)Xd(i,t,s);l=o;do s=i.heap[1],i.heap[1]=i.heap[i.heap_len--],Xd(i,t,1),a=i.heap[1],i.heap[--i.heap_max]=s,i.heap[--i.heap_max]=a,t[l*2]=t[s*2]+t[a*2],i.depth[l]=(i.depth[s]>=i.depth[a]?i.depth[s]:i.depth[a])+1,t[s*2+1]=t[a*2+1]=l,i.heap[1]=l++,Xd(i,t,1);while(i.heap_len>=2);i.heap[--i.heap_max]=i.heap[1],KS(i,e),yy(t,A,i.bl_count)},v_=(i,e,t)=>{let n,r=-1,o,s=e[0*2+1],a=0,A=7,l=4;for(s===0&&(A=138,l=3),e[(t+1)*2+1]=65535,n=0;n<=t;n++)o=s,s=e[(n+1)*2+1],!(++a{let n,r=-1,o,s=e[0*2+1],a=0,A=7,l=4;for(s===0&&(A=138,l=3),n=0;n<=t;n++)if(o=s,s=e[(n+1)*2+1],!(++a{let e;for(v_(i,i.dyn_ltree,i.l_desc.max_code),v_(i,i.dyn_dtree,i.d_desc.max_code),sm(i,i.bl_desc),e=dm-1;e>=3&&i.bl_tree[my[e]*2+1]===0;e--);return i.opt_len+=3*(e+1)+5+5+4,e},XS=(i,e,t,n)=>{let r;for(qt(i,e-257,5),qt(i,t-1,5),qt(i,n-4,4),r=0;r{let e=4093624447,t;for(t=0;t<=31;t++,e>>>=1)if(e&1&&i.dyn_ltree[t*2]!==0)return 0;if(i.dyn_ltree[9*2]!==0||i.dyn_ltree[10*2]!==0||i.dyn_ltree[13*2]!==0)return 1;for(t=32;t{D_||(qS(),D_=!0),i.l_desc=new Vd(i.dyn_ltree,py),i.d_desc=new Vd(i.dyn_dtree,Ey),i.bl_desc=new Vd(i.bl_tree,Iy),i.bi_buf=0,i.bi_valid=0,By(i)},wy=(i,e,t,n)=>{qt(i,(PS<<1)+(n?1:0),3),xy(i),tA(i,t),tA(i,~t),t&&i.pending_buf.set(i.window.subarray(e,e+t),i.pending),i.pending+=t},WS=i=>{qt(i,hy<<1,3),sn(i,mm,Un),zS(i)},ZS=(i,e,t,n)=>{let r,o,s=0;i.level>0?(i.strm.data_type===2&&(i.strm.data_type=JS(i)),sm(i,i.l_desc),sm(i,i.d_desc),s=VS(i),r=i.opt_len+3+7>>>3,o=i.static_len+3+7>>>3,o<=r&&(r=o)):r=o=t+5,t+4<=r&&e!==-1?wy(i,e,t,n):i.strategy===4||o===r?(qt(i,(hy<<1)+(n?1:0),3),R_(i,Un,Ja)):(qt(i,(NS<<1)+(n?1:0),3),XS(i,i.l_desc.max_code+1,i.d_desc.max_code+1,s+1),R_(i,i.dyn_ltree,i.dyn_dtree)),By(i),n&&xy(i)},$S=(i,e,t)=>(i.pending_buf[i.sym_buf+i.sym_next++]=e,i.pending_buf[i.sym_buf+i.sym_next++]=e>>8,i.pending_buf[i.sym_buf+i.sym_next++]=t,e===0?i.dyn_ltree[t*2]++:(i.matches++,e--,i.dyn_ltree[(eA[t]+sA+1)*2]++,i.dyn_dtree[Cy(e)*2]++),i.sym_next===i.sym_end),eR=jS,tR=wy,iR=ZS,nR=$S,rR=WS,oR={_tr_init:eR,_tr_stored_block:tR,_tr_flush_block:iR,_tr_tally:nR,_tr_align:rR},sR=(i,e,t,n)=>{let r=i&65535|0,o=i>>>16&65535|0,s=0;for(;t!==0;){s=t>2e3?2e3:t,t-=s;do r=r+e[n++]|0,o=o+r|0;while(--s);r%=65521,o%=65521}return r|o<<16|0},iA=sR,aR=()=>{let i,e=[];for(var t=0;t<256;t++){i=t;for(var n=0;n<8;n++)i=i&1?3988292384^i>>>1:i>>>1;e[t]=i}return e},AR=new Uint32Array(aR()),lR=(i,e,t,n)=>{let r=AR,o=n+t;i^=-1;for(let s=n;s>>8^r[(i^e[s])&255];return i^-1},ct=lR,so={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},ws={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:cR,_tr_stored_block:am,_tr_flush_block:hR,_tr_tally:Cr,_tr_align:uR}=oR,{Z_NO_FLUSH:_r,Z_PARTIAL_FLUSH:fR,Z_FULL_FLUSH:gR,Z_FINISH:di,Z_BLOCK:b_,Z_OK:mt,Z_STREAM_END:F_,Z_STREAM_ERROR:an,Z_DATA_ERROR:dR,Z_BUF_ERROR:Jd,Z_DEFAULT_COMPRESSION:mR,Z_FILTERED:pR,Z_HUFFMAN_ONLY:Fc,Z_RLE:ER,Z_FIXED:IR,Z_DEFAULT_STRATEGY:CR,Z_UNKNOWN:_R,Z_DEFLATED:Yc}=ws,yR=9,BR=15,xR=8,wR=29,QR=256,Am=QR+1+wR,SR=30,RR=19,vR=2*Am+1,TR=15,Ie=3,Ir=258,An=Ir+Ie+1,DR=32,ys=42,Em=57,lm=69,cm=73,hm=91,um=103,ro=113,Va=666,Tt=1,Qs=2,ao=3,Ss=4,bR=3,oo=(i,e)=>(i.msg=so[e],e),L_=i=>i*2-(i>4?9:0),Er=i=>{let e=i.length;for(;--e>=0;)i[e]=0},FR=i=>{let e,t,n,r=i.w_size;e=i.hash_size,n=e;do t=i.head[--n],i.head[n]=t>=r?t-r:0;while(--e);e=r,n=e;do t=i.prev[--n],i.prev[n]=t>=r?t-r:0;while(--e)},LR=(i,e,t)=>(e<{let e=i.state,t=e.pending;t>i.avail_out&&(t=i.avail_out),t!==0&&(i.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),i.next_out),i.next_out+=t,e.pending_out+=t,i.total_out+=t,i.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0))},ti=(i,e)=>{hR(i,i.block_start>=0?i.block_start:-1,i.strstart-i.block_start,e),i.block_start=i.strstart,ei(i.strm)},Qe=(i,e)=>{i.pending_buf[i.pending++]=e},qa=(i,e)=>{i.pending_buf[i.pending++]=e>>>8&255,i.pending_buf[i.pending++]=e&255},fm=(i,e,t,n)=>{let r=i.avail_in;return r>n&&(r=n),r===0?0:(i.avail_in-=r,e.set(i.input.subarray(i.next_in,i.next_in+r),t),i.state.wrap===1?i.adler=iA(i.adler,e,r,t):i.state.wrap===2&&(i.adler=ct(i.adler,e,r,t)),i.next_in+=r,i.total_in+=r,r)},Qy=(i,e)=>{let t=i.max_chain_length,n=i.strstart,r,o,s=i.prev_length,a=i.nice_match,A=i.strstart>i.w_size-An?i.strstart-(i.w_size-An):0,l=i.window,c=i.w_mask,h=i.prev,u=i.strstart+Ir,f=l[n+s-1],g=l[n+s];i.prev_length>=i.good_match&&(t>>=2),a>i.lookahead&&(a=i.lookahead);do if(r=e,!(l[r+s]!==g||l[r+s-1]!==f||l[r]!==l[n]||l[++r]!==l[n+1])){n+=2,r++;do;while(l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&l[++n]===l[++r]&&ns){if(i.match_start=e,s=o,o>=a)break;f=l[n+s-1],g=l[n+s]}}while((e=h[e&c])>A&&--t!==0);return s<=i.lookahead?s:i.lookahead},Bs=i=>{let e=i.w_size,t,n,r;do{if(n=i.window_size-i.lookahead-i.strstart,i.strstart>=e+(e-An)&&(i.window.set(i.window.subarray(e,e+e-n),0),i.match_start-=e,i.strstart-=e,i.block_start-=e,i.insert>i.strstart&&(i.insert=i.strstart),FR(i),n+=e),i.strm.avail_in===0)break;if(t=fm(i.strm,i.window,i.strstart+i.lookahead,n),i.lookahead+=t,i.lookahead+i.insert>=Ie)for(r=i.strstart-i.insert,i.ins_h=i.window[r],i.ins_h=yr(i,i.ins_h,i.window[r+1]);i.insert&&(i.ins_h=yr(i,i.ins_h,i.window[r+Ie-1]),i.prev[r&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=r,r++,i.insert--,!(i.lookahead+i.insert{let t=i.pending_buf_size-5>i.w_size?i.w_size:i.pending_buf_size-5,n,r,o,s=0,a=i.strm.avail_in;do{if(n=65535,o=i.bi_valid+42>>3,i.strm.avail_outr+i.strm.avail_in&&(n=r+i.strm.avail_in),n>o&&(n=o),n>8,i.pending_buf[i.pending-2]=~n,i.pending_buf[i.pending-1]=~n>>8,ei(i.strm),r&&(r>n&&(r=n),i.strm.output.set(i.window.subarray(i.block_start,i.block_start+r),i.strm.next_out),i.strm.next_out+=r,i.strm.avail_out-=r,i.strm.total_out+=r,i.block_start+=r,n-=r),n&&(fm(i.strm,i.strm.output,i.strm.next_out,n),i.strm.next_out+=n,i.strm.avail_out-=n,i.strm.total_out+=n)}while(s===0);return a-=i.strm.avail_in,a&&(a>=i.w_size?(i.matches=2,i.window.set(i.strm.input.subarray(i.strm.next_in-i.w_size,i.strm.next_in),0),i.strstart=i.w_size,i.insert=i.strstart):(i.window_size-i.strstart<=a&&(i.strstart-=i.w_size,i.window.set(i.window.subarray(i.w_size,i.w_size+i.strstart),0),i.matches<2&&i.matches++,i.insert>i.strstart&&(i.insert=i.strstart)),i.window.set(i.strm.input.subarray(i.strm.next_in-a,i.strm.next_in),i.strstart),i.strstart+=a,i.insert+=a>i.w_size-i.insert?i.w_size-i.insert:a),i.block_start=i.strstart),i.high_watero&&i.block_start>=i.w_size&&(i.block_start-=i.w_size,i.strstart-=i.w_size,i.window.set(i.window.subarray(i.w_size,i.w_size+i.strstart),0),i.matches<2&&i.matches++,o+=i.w_size,i.insert>i.strstart&&(i.insert=i.strstart)),o>i.strm.avail_in&&(o=i.strm.avail_in),o&&(fm(i.strm,i.window,i.strstart,o),i.strstart+=o,i.insert+=o>i.w_size-i.insert?i.w_size-i.insert:o),i.high_water>3,o=i.pending_buf_size-o>65535?65535:i.pending_buf_size-o,t=o>i.w_size?i.w_size:o,r=i.strstart-i.block_start,(r>=t||(r||e===di)&&e!==_r&&i.strm.avail_in===0&&r<=o)&&(n=r>o?o:r,s=e===di&&i.strm.avail_in===0&&n===r?1:0,am(i,i.block_start,n,s),i.block_start+=n,ei(i.strm)),s?ao:Tt)},jd=(i,e)=>{let t,n;for(;;){if(i.lookahead=Ie&&(i.ins_h=yr(i,i.ins_h,i.window[i.strstart+Ie-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart),t!==0&&i.strstart-t<=i.w_size-An&&(i.match_length=Qy(i,t)),i.match_length>=Ie)if(n=Cr(i,i.strstart-i.match_start,i.match_length-Ie),i.lookahead-=i.match_length,i.match_length<=i.max_lazy_match&&i.lookahead>=Ie){i.match_length--;do i.strstart++,i.ins_h=yr(i,i.ins_h,i.window[i.strstart+Ie-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart;while(--i.match_length!==0);i.strstart++}else i.strstart+=i.match_length,i.match_length=0,i.ins_h=i.window[i.strstart],i.ins_h=yr(i,i.ins_h,i.window[i.strstart+1]);else n=Cr(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++;if(n&&(ti(i,!1),i.strm.avail_out===0))return Tt}return i.insert=i.strstart{let t,n,r;for(;;){if(i.lookahead=Ie&&(i.ins_h=yr(i,i.ins_h,i.window[i.strstart+Ie-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart),i.prev_length=i.match_length,i.prev_match=i.match_start,i.match_length=Ie-1,t!==0&&i.prev_length4096)&&(i.match_length=Ie-1)),i.prev_length>=Ie&&i.match_length<=i.prev_length){r=i.strstart+i.lookahead-Ie,n=Cr(i,i.strstart-1-i.prev_match,i.prev_length-Ie),i.lookahead-=i.prev_length-1,i.prev_length-=2;do++i.strstart<=r&&(i.ins_h=yr(i,i.ins_h,i.window[i.strstart+Ie-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart);while(--i.prev_length!==0);if(i.match_available=0,i.match_length=Ie-1,i.strstart++,n&&(ti(i,!1),i.strm.avail_out===0))return Tt}else if(i.match_available){if(n=Cr(i,0,i.window[i.strstart-1]),n&&ti(i,!1),i.strstart++,i.lookahead--,i.strm.avail_out===0)return Tt}else i.match_available=1,i.strstart++,i.lookahead--}return i.match_available&&(n=Cr(i,0,i.window[i.strstart-1]),i.match_available=0),i.insert=i.strstart{let t,n,r,o,s=i.window;for(;;){if(i.lookahead<=Ir){if(Bs(i),i.lookahead<=Ir&&e===_r)return Tt;if(i.lookahead===0)break}if(i.match_length=0,i.lookahead>=Ie&&i.strstart>0&&(r=i.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){o=i.strstart+Ir;do;while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&ri.lookahead&&(i.match_length=i.lookahead)}if(i.match_length>=Ie?(t=Cr(i,1,i.match_length-Ie),i.lookahead-=i.match_length,i.strstart+=i.match_length,i.match_length=0):(t=Cr(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++),t&&(ti(i,!1),i.strm.avail_out===0))return Tt}return i.insert=0,e===di?(ti(i,!0),i.strm.avail_out===0?ao:Ss):i.sym_next&&(ti(i,!1),i.strm.avail_out===0)?Tt:Qs},kR=(i,e)=>{let t;for(;;){if(i.lookahead===0&&(Bs(i),i.lookahead===0)){if(e===_r)return Tt;break}if(i.match_length=0,t=Cr(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++,t&&(ti(i,!1),i.strm.avail_out===0))return Tt}return i.insert=0,e===di?(ti(i,!0),i.strm.avail_out===0?ao:Ss):i.sym_next&&(ti(i,!1),i.strm.avail_out===0)?Tt:Qs};Xa=[new on(0,0,0,0,Sy),new on(4,4,8,4,jd),new on(4,5,16,8,jd),new on(4,6,32,32,jd),new on(4,4,16,16,Is),new on(8,16,32,32,Is),new on(8,16,128,128,Is),new on(8,32,128,256,Is),new on(32,128,258,1024,Is),new on(32,258,258,4096,Is)],PR=i=>{i.window_size=2*i.w_size,Er(i.head),i.max_lazy_match=Xa[i.level].max_lazy,i.good_match=Xa[i.level].good_length,i.nice_match=Xa[i.level].nice_length,i.max_chain_length=Xa[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=Ie-1,i.match_available=0,i.ins_h=0};aA=i=>{if(!i)return 1;let e=i.state;return!e||e.strm!==i||e.status!==ys&&e.status!==Em&&e.status!==lm&&e.status!==cm&&e.status!==hm&&e.status!==um&&e.status!==ro&&e.status!==Va?1:0},Ry=i=>{if(aA(i))return oo(i,an);i.total_in=i.total_out=0,i.data_type=_R;let e=i.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?Em:e.wrap?ys:ro,i.adler=e.wrap===2?0:1,e.last_flush=-2,cR(e),mt},vy=i=>{let e=Ry(i);return e===mt&&PR(i.state),e},GR=(i,e)=>aA(i)||i.state.wrap!==2?an:(i.state.gzhead=e,mt),Ty=(i,e,t,n,r,o)=>{if(!i)return an;let s=1;if(e===mR&&(e=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>yR||t!==Yc||n<8||n>15||e<0||e>9||o<0||o>IR||n===8&&s!==1)return oo(i,an);n===8&&(n=9);let a=new NR;return i.state=a,a.strm=i,a.status=ys,a.wrap=s,a.gzhead=null,a.w_bits=n,a.w_size=1<Ty(i,e,Yc,BR,xR,CR),UR=(i,e)=>{if(aA(i)||e>b_||e<0)return i?oo(i,an):an;let t=i.state;if(!i.output||i.avail_in!==0&&!i.input||t.status===Va&&e!==di)return oo(i,i.avail_out===0?Jd:an);let n=t.last_flush;if(t.last_flush=e,t.pending!==0){if(ei(i),i.avail_out===0)return t.last_flush=-1,mt}else if(i.avail_in===0&&L_(e)<=L_(n)&&e!==di)return oo(i,Jd);if(t.status===Va&&i.avail_in!==0)return oo(i,Jd);if(t.status===ys&&t.wrap===0&&(t.status=ro),t.status===ys){let r=Yc+(t.w_bits-8<<4)<<8,o=-1;if(t.strategy>=Fc||t.level<2?o=0:t.level<6?o=1:t.level===6?o=2:o=3,r|=o<<6,t.strstart!==0&&(r|=DR),r+=31-r%31,qa(t,r),t.strstart!==0&&(qa(t,i.adler>>>16),qa(t,i.adler&65535)),i.adler=1,t.status=ro,ei(i),t.pending!==0)return t.last_flush=-1,mt}if(t.status===Em){if(i.adler=0,Qe(t,31),Qe(t,139),Qe(t,8),t.gzhead)Qe(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),Qe(t,t.gzhead.time&255),Qe(t,t.gzhead.time>>8&255),Qe(t,t.gzhead.time>>16&255),Qe(t,t.gzhead.time>>24&255),Qe(t,t.level===9?2:t.strategy>=Fc||t.level<2?4:0),Qe(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(Qe(t,t.gzhead.extra.length&255),Qe(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(i.adler=ct(i.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=lm;else if(Qe(t,0),Qe(t,0),Qe(t,0),Qe(t,0),Qe(t,0),Qe(t,t.level===9?2:t.strategy>=Fc||t.level<2?4:0),Qe(t,bR),t.status=ro,ei(i),t.pending!==0)return t.last_flush=-1,mt}if(t.status===lm){if(t.gzhead.extra){let r=t.pending,o=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+o>t.pending_buf_size;){let a=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+a),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>r&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex+=a,ei(i),t.pending!==0)return t.last_flush=-1,mt;r=0,o-=a}let s=new Uint8Array(t.gzhead.extra);t.pending_buf.set(s.subarray(t.gzindex,t.gzindex+o),t.pending),t.pending+=o,t.gzhead.hcrc&&t.pending>r&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex=0}t.status=cm}if(t.status===cm){if(t.gzhead.name){let r=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>r&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),ei(i),t.pending!==0)return t.last_flush=-1,mt;r=0}t.gzindexr&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex=0}t.status=hm}if(t.status===hm){if(t.gzhead.comment){let r=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>r&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r)),ei(i),t.pending!==0)return t.last_flush=-1,mt;r=0}t.gzindexr&&(i.adler=ct(i.adler,t.pending_buf,t.pending-r,r))}t.status=um}if(t.status===um){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(ei(i),t.pending!==0))return t.last_flush=-1,mt;Qe(t,i.adler&255),Qe(t,i.adler>>8&255),i.adler=0}if(t.status=ro,ei(i),t.pending!==0)return t.last_flush=-1,mt}if(i.avail_in!==0||t.lookahead!==0||e!==_r&&t.status!==Va){let r=t.level===0?Sy(t,e):t.strategy===Fc?kR(t,e):t.strategy===ER?MR(t,e):Xa[t.level].func(t,e);if((r===ao||r===Ss)&&(t.status=Va),r===Tt||r===ao)return i.avail_out===0&&(t.last_flush=-1),mt;if(r===Qs&&(e===fR?uR(t):e!==b_&&(am(t,0,0,!1),e===gR&&(Er(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),ei(i),i.avail_out===0))return t.last_flush=-1,mt}return e!==di?mt:t.wrap<=0?F_:(t.wrap===2?(Qe(t,i.adler&255),Qe(t,i.adler>>8&255),Qe(t,i.adler>>16&255),Qe(t,i.adler>>24&255),Qe(t,i.total_in&255),Qe(t,i.total_in>>8&255),Qe(t,i.total_in>>16&255),Qe(t,i.total_in>>24&255)):(qa(t,i.adler>>>16),qa(t,i.adler&65535)),ei(i),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?mt:F_)},YR=i=>{if(aA(i))return an;let e=i.state.status;return i.state=null,e===ro?oo(i,dR):mt},HR=(i,e)=>{let t=e.length;if(aA(i))return an;let n=i.state,r=n.wrap;if(r===2||r===1&&n.status!==ys||n.lookahead)return an;if(r===1&&(i.adler=iA(i.adler,e,t,0)),n.wrap=0,t>=n.w_size){r===0&&(Er(n.head),n.strstart=0,n.block_start=0,n.insert=0);let A=new Uint8Array(n.w_size);A.set(e.subarray(t-n.w_size,t),0),e=A,t=n.w_size}let o=i.avail_in,s=i.next_in,a=i.input;for(i.avail_in=t,i.next_in=0,i.input=e,Bs(n);n.lookahead>=Ie;){let A=n.strstart,l=n.lookahead-(Ie-1);do n.ins_h=yr(n,n.ins_h,n.window[A+Ie-1]),n.prev[A&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=A,A++;while(--l);n.strstart=A,n.lookahead=Ie-1,Bs(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=Ie-1,n.match_available=0,i.next_in=s,i.input=a,i.avail_in=o,n.wrap=r,mt},zR=OR,KR=Ty,qR=vy,VR=Ry,XR=GR,JR=UR,jR=YR,WR=HR,ZR="pako deflate (from Nodeca project)",ja={deflateInit:zR,deflateInit2:KR,deflateReset:qR,deflateResetKeep:VR,deflateSetHeader:XR,deflate:JR,deflateEnd:jR,deflateSetDictionary:WR,deflateInfo:ZR},$R=(i,e)=>Object.prototype.hasOwnProperty.call(i,e),ev=function(i){let e=Array.prototype.slice.call(arguments,1);for(;e.length;){let t=e.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(let n in t)$R(t,n)&&(i[n]=t[n])}}return i},tv=i=>{let e=0;for(let n=0,r=i.length;n=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1;nA[254]=nA[254]=1;iv=i=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(i);let e,t,n,r,o,s=i.length,a=0;for(r=0;r>>6,e[o++]=128|t&63):t<65536?(e[o++]=224|t>>>12,e[o++]=128|t>>>6&63,e[o++]=128|t&63):(e[o++]=240|t>>>18,e[o++]=128|t>>>12&63,e[o++]=128|t>>>6&63,e[o++]=128|t&63);return e},nv=(i,e)=>{if(e<65534&&i.subarray&&Dy)return String.fromCharCode.apply(null,i.length===e?i:i.subarray(0,e));let t="";for(let n=0;n{let t=e||i.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(i.subarray(0,e));let n,r,o=new Array(t*2);for(r=0,n=0;n4){o[r++]=65533,n+=a-1;continue}for(s&=a===2?31:a===3?15:7;a>1&&n1){o[r++]=65533;continue}s<65536?o[r++]=s:(s-=65536,o[r++]=55296|s>>10&1023,o[r++]=56320|s&1023)}return nv(o,r)},ov=(i,e)=>{e=e||i.length,e>i.length&&(e=i.length);let t=e-1;for(;t>=0&&(i[t]&192)===128;)t--;return t<0||t===0?e:t+nA[i[t]]>e?t:e},rA={string2buf:iv,buf2string:rv,utf8border:ov};by=sv,Fy=Object.prototype.toString,{Z_NO_FLUSH:av,Z_SYNC_FLUSH:Av,Z_FULL_FLUSH:lv,Z_FINISH:cv,Z_OK:Oc,Z_STREAM_END:hv,Z_DEFAULT_COMPRESSION:uv,Z_DEFAULT_STRATEGY:fv,Z_DEFLATED:gv}=ws;AA.prototype.push=function(i,e){let t=this.strm,n=this.options.chunkSize,r,o;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?cv:av,typeof i=="string"?t.input=rA.string2buf(i):Fy.call(i)==="[object ArrayBuffer]"?t.input=new Uint8Array(i):t.input=i,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),(o===Av||o===lv)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(r=ja.deflate(t,o),r===hv)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),r=ja.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===Oc;if(t.avail_out===0){this.onData(t.output);continue}if(o>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};AA.prototype.onData=function(i){this.chunks.push(i)};AA.prototype.onEnd=function(i){i===Oc&&(this.result=Hc.flattenChunks(this.chunks)),this.chunks=[],this.err=i,this.msg=this.strm.msg};pv=AA,Ev=Im,Iv=dv,Cv=mv,_v=ws,yv={Deflate:pv,deflate:Ev,deflateRaw:Iv,gzip:Cv,constants:_v},Lc=16209,Bv=16191,xv=function(e,t){let n,r,o,s,a,A,l,c,h,u,f,g,m,d,E,p,_,C,I,y,x,B,Q,w,v=e.state;n=e.next_in,Q=e.input,r=n+(e.avail_in-5),o=e.next_out,w=e.output,s=o-(t-e.avail_out),a=o+(e.avail_out-257),A=v.dmax,l=v.wsize,c=v.whave,h=v.wnext,u=v.window,f=v.hold,g=v.bits,m=v.lencode,d=v.distcode,E=(1<>>24,f>>>=C,g-=C,C=_>>>16&255,C===0)w[o++]=_&65535;else if(C&16){I=_&65535,C&=15,C&&(g>>=C,g-=C),g<15&&(f+=Q[n++]<>>24,f>>>=C,g-=C,C=_>>>16&255,C&16){if(y=_&65535,C&=15,gA){e.msg="invalid distance too far back",v.mode=Lc;break e}if(f>>>=C,g-=C,C=o-s,y>C){if(C=y-C,C>c&&v.sane){e.msg="invalid distance too far back",v.mode=Lc;break e}if(x=0,B=u,h===0){if(x+=l-C,C2;)w[o++]=B[x++],w[o++]=B[x++],w[o++]=B[x++],I-=3;I&&(w[o++]=B[x++],I>1&&(w[o++]=B[x++]))}else{x=o-y;do w[o++]=w[x++],w[o++]=w[x++],w[o++]=w[x++],I-=3;while(I>2);I&&(w[o++]=w[x++],I>1&&(w[o++]=w[x++]))}}else if((C&64)===0){_=d[(_&65535)+(f&(1<>3,n-=I,g-=I<<3,f&=(1<{let A=a.bits,l=0,c=0,h=0,u=0,f=0,g=0,m=0,d=0,E=0,p=0,_,C,I,y,x,B=null,Q,w=new Uint16Array(Cs+1),v=new Uint16Array(Cs+1),R=null,F,D,S;for(l=0;l<=Cs;l++)w[l]=0;for(c=0;c=1&&w[u]===0;u--);if(f>u&&(f=u),u===0)return r[o++]=1<<24|64<<16|0,r[o++]=1<<24|64<<16|0,a.bits=1,0;for(h=1;h0&&(i===P_||u!==1))return-1;for(v[1]=0,l=1;lM_||i===N_&&E>k_)return 1;for(;;){F=l-m,s[c]+1=Q?(D=R[s[c]-Q],S=B[s[c]-Q]):(D=96,S=0),_=1<>m)+C]=F<<24|D<<16|S|0;while(C!==0);for(_=1<>=1;if(_!==0?(p&=_-1,p+=_):p=0,c++,--w[l]===0){if(l===u)break;l=e[t+s[c]]}if(l>f&&(p&y)!==I){for(m===0&&(m=f),x+=h,g=l-m,d=1<M_||i===N_&&E>k_)return 1;I=p&y,r[I]=f<<24|g<<16|x-o|0}}return p!==0&&(r[x+p]=l-m<<24|64<<16|0),a.bits=f,0},Wa=vv,Tv=0,Ly=1,My=2,{Z_FINISH:G_,Z_BLOCK:Dv,Z_TREES:Mc,Z_OK:Ao,Z_STREAM_END:bv,Z_NEED_DICT:Fv,Z_STREAM_ERROR:mi,Z_DATA_ERROR:ky,Z_MEM_ERROR:Py,Z_BUF_ERROR:Lv,Z_DEFLATED:O_}=ws,zc=16180,U_=16181,Y_=16182,H_=16183,z_=16184,K_=16185,q_=16186,V_=16187,X_=16188,J_=16189,Uc=16190,On=16191,Zd=16192,j_=16193,$d=16194,W_=16195,Z_=16196,$_=16197,ey=16198,kc=16199,Pc=16200,ty=16201,iy=16202,ny=16203,ry=16204,oy=16205,em=16206,sy=16207,ay=16208,Me=16209,Ny=16210,Gy=16211,Mv=852,kv=592,Pv=15,Nv=Pv,Ay=i=>(i>>>24&255)+(i>>>8&65280)+((i&65280)<<8)+((i&255)<<24);lo=i=>{if(!i)return 1;let e=i.state;return!e||e.strm!==i||e.modeGy?1:0},Oy=i=>{if(lo(i))return mi;let e=i.state;return i.total_in=i.total_out=e.total=0,i.msg="",e.wrap&&(i.adler=e.wrap&1),e.mode=zc,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(Mv),e.distcode=e.distdyn=new Int32Array(kv),e.sane=1,e.back=-1,Ao},Uy=i=>{if(lo(i))return mi;let e=i.state;return e.wsize=0,e.whave=0,e.wnext=0,Oy(i)},Yy=(i,e)=>{let t;if(lo(i))return mi;let n=i.state;return e<0?(t=0,e=-e):(t=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?mi:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=t,n.wbits=e,Uy(i))},Hy=(i,e)=>{if(!i)return mi;let t=new Gv;i.state=t,t.strm=i,t.window=null,t.mode=zc;let n=Yy(i,e);return n!==Ao&&(i.state=null),n},Ov=i=>Hy(i,Nv),ly=!0,Uv=i=>{if(ly){tm=new Int32Array(512),im=new Int32Array(32);let e=0;for(;e<144;)i.lens[e++]=8;for(;e<256;)i.lens[e++]=9;for(;e<280;)i.lens[e++]=7;for(;e<288;)i.lens[e++]=8;for(Wa(Ly,i.lens,0,288,tm,0,i.work,{bits:9}),e=0;e<32;)i.lens[e++]=5;Wa(My,i.lens,0,32,im,0,i.work,{bits:5}),ly=!1}i.lencode=tm,i.lenbits=9,i.distcode=im,i.distbits=5},zy=(i,e,t,n)=>{let r,o=i.state;return o.window===null&&(o.wsize=1<=o.wsize?(o.window.set(e.subarray(t-o.wsize,t),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>n&&(r=n),o.window.set(e.subarray(t-n,t-n+r),o.wnext),n-=r,n?(o.window.set(e.subarray(t-n,t),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave{let t,n,r,o,s,a,A,l,c,h,u,f,g,m,d=0,E,p,_,C,I,y,x,B,Q=new Uint8Array(4),w,v,R=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(lo(i)||!i.output||!i.input&&i.avail_in!==0)return mi;t=i.state,t.mode===On&&(t.mode=Zd),s=i.next_out,r=i.output,A=i.avail_out,o=i.next_in,n=i.input,a=i.avail_in,l=t.hold,c=t.bits,h=a,u=A,B=Ao;e:for(;;)switch(t.mode){case zc:if(t.wrap===0){t.mode=Zd;break}for(;c<16;){if(a===0)break e;a--,l+=n[o++]<>>8&255,t.check=ct(t.check,Q,2,0),l=0,c=0,t.mode=U_;break}if(t.head&&(t.head.done=!1),!(t.wrap&1)||(((l&255)<<8)+(l>>8))%31){i.msg="incorrect header check",t.mode=Me;break}if((l&15)!==O_){i.msg="unknown compression method",t.mode=Me;break}if(l>>>=4,c-=4,x=(l&15)+8,t.wbits===0&&(t.wbits=x),x>15||x>t.wbits){i.msg="invalid window size",t.mode=Me;break}t.dmax=1<>8&1),t.flags&512&&t.wrap&4&&(Q[0]=l&255,Q[1]=l>>>8&255,t.check=ct(t.check,Q,2,0)),l=0,c=0,t.mode=Y_;case Y_:for(;c<32;){if(a===0)break e;a--,l+=n[o++]<>>8&255,Q[2]=l>>>16&255,Q[3]=l>>>24&255,t.check=ct(t.check,Q,4,0)),l=0,c=0,t.mode=H_;case H_:for(;c<16;){if(a===0)break e;a--,l+=n[o++]<>8),t.flags&512&&t.wrap&4&&(Q[0]=l&255,Q[1]=l>>>8&255,t.check=ct(t.check,Q,2,0)),l=0,c=0,t.mode=z_;case z_:if(t.flags&1024){for(;c<16;){if(a===0)break e;a--,l+=n[o++]<>>8&255,t.check=ct(t.check,Q,2,0)),l=0,c=0}else t.head&&(t.head.extra=null);t.mode=K_;case K_:if(t.flags&1024&&(f=t.length,f>a&&(f=a),f&&(t.head&&(x=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(n.subarray(o,o+f),x)),t.flags&512&&t.wrap&4&&(t.check=ct(t.check,n,f,o)),a-=f,o+=f,t.length-=f),t.length))break e;t.length=0,t.mode=q_;case q_:if(t.flags&2048){if(a===0)break e;f=0;do x=n[o+f++],t.head&&x&&t.length<65536&&(t.head.name+=String.fromCharCode(x));while(x&&f>9&1,t.head.done=!0),i.adler=t.check=0,t.mode=On;break;case J_:for(;c<32;){if(a===0)break e;a--,l+=n[o++]<>>=c&7,c-=c&7,t.mode=em;break}for(;c<3;){if(a===0)break e;a--,l+=n[o++]<>>=1,c-=1,l&3){case 0:t.mode=j_;break;case 1:if(Uv(t),t.mode=kc,e===Mc){l>>>=2,c-=2;break e}break;case 2:t.mode=Z_;break;case 3:i.msg="invalid block type",t.mode=Me}l>>>=2,c-=2;break;case j_:for(l>>>=c&7,c-=c&7;c<32;){if(a===0)break e;a--,l+=n[o++]<>>16^65535)){i.msg="invalid stored block lengths",t.mode=Me;break}if(t.length=l&65535,l=0,c=0,t.mode=$d,e===Mc)break e;case $d:t.mode=W_;case W_:if(f=t.length,f){if(f>a&&(f=a),f>A&&(f=A),f===0)break e;r.set(n.subarray(o,o+f),s),a-=f,o+=f,A-=f,s+=f,t.length-=f;break}t.mode=On;break;case Z_:for(;c<14;){if(a===0)break e;a--,l+=n[o++]<>>=5,c-=5,t.ndist=(l&31)+1,l>>>=5,c-=5,t.ncode=(l&15)+4,l>>>=4,c-=4,t.nlen>286||t.ndist>30){i.msg="too many length or distance symbols",t.mode=Me;break}t.have=0,t.mode=$_;case $_:for(;t.have>>=3,c-=3}for(;t.have<19;)t.lens[R[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,w={bits:t.lenbits},B=Wa(Tv,t.lens,0,19,t.lencode,0,t.work,w),t.lenbits=w.bits,B){i.msg="invalid code lengths set",t.mode=Me;break}t.have=0,t.mode=ey;case ey:for(;t.have>>24,p=d>>>16&255,_=d&65535,!(E<=c);){if(a===0)break e;a--,l+=n[o++]<>>=E,c-=E,t.lens[t.have++]=_;else{if(_===16){for(v=E+2;c>>=E,c-=E,t.have===0){i.msg="invalid bit length repeat",t.mode=Me;break}x=t.lens[t.have-1],f=3+(l&3),l>>>=2,c-=2}else if(_===17){for(v=E+3;c>>=E,c-=E,x=0,f=3+(l&7),l>>>=3,c-=3}else{for(v=E+7;c>>=E,c-=E,x=0,f=11+(l&127),l>>>=7,c-=7}if(t.have+f>t.nlen+t.ndist){i.msg="invalid bit length repeat",t.mode=Me;break}for(;f--;)t.lens[t.have++]=x}}if(t.mode===Me)break;if(t.lens[256]===0){i.msg="invalid code -- missing end-of-block",t.mode=Me;break}if(t.lenbits=9,w={bits:t.lenbits},B=Wa(Ly,t.lens,0,t.nlen,t.lencode,0,t.work,w),t.lenbits=w.bits,B){i.msg="invalid literal/lengths set",t.mode=Me;break}if(t.distbits=6,t.distcode=t.distdyn,w={bits:t.distbits},B=Wa(My,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,w),t.distbits=w.bits,B){i.msg="invalid distances set",t.mode=Me;break}if(t.mode=kc,e===Mc)break e;case kc:t.mode=Pc;case Pc:if(a>=6&&A>=258){i.next_out=s,i.avail_out=A,i.next_in=o,i.avail_in=a,t.hold=l,t.bits=c,xv(i,u),s=i.next_out,r=i.output,A=i.avail_out,o=i.next_in,n=i.input,a=i.avail_in,l=t.hold,c=t.bits,t.mode===On&&(t.back=-1);break}for(t.back=0;d=t.lencode[l&(1<>>24,p=d>>>16&255,_=d&65535,!(E<=c);){if(a===0)break e;a--,l+=n[o++]<>C)],E=d>>>24,p=d>>>16&255,_=d&65535,!(C+E<=c);){if(a===0)break e;a--,l+=n[o++]<>>=C,c-=C,t.back+=C}if(l>>>=E,c-=E,t.back+=E,t.length=_,p===0){t.mode=oy;break}if(p&32){t.back=-1,t.mode=On;break}if(p&64){i.msg="invalid literal/length code",t.mode=Me;break}t.extra=p&15,t.mode=ty;case ty:if(t.extra){for(v=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=iy;case iy:for(;d=t.distcode[l&(1<>>24,p=d>>>16&255,_=d&65535,!(E<=c);){if(a===0)break e;a--,l+=n[o++]<>C)],E=d>>>24,p=d>>>16&255,_=d&65535,!(C+E<=c);){if(a===0)break e;a--,l+=n[o++]<>>=C,c-=C,t.back+=C}if(l>>>=E,c-=E,t.back+=E,p&64){i.msg="invalid distance code",t.mode=Me;break}t.offset=_,t.extra=p&15,t.mode=ny;case ny:if(t.extra){for(v=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){i.msg="invalid distance too far back",t.mode=Me;break}t.mode=ry;case ry:if(A===0)break e;if(f=u-A,t.offset>f){if(f=t.offset-f,f>t.whave&&t.sane){i.msg="invalid distance too far back",t.mode=Me;break}f>t.wnext?(f-=t.wnext,g=t.wsize-f):g=t.wnext-f,f>t.length&&(f=t.length),m=t.window}else m=r,g=s-t.offset,f=t.length;f>A&&(f=A),A-=f,t.length-=f;do r[s++]=m[g++];while(--f);t.length===0&&(t.mode=Pc);break;case oy:if(A===0)break e;r[s++]=t.length,A--,t.mode=Pc;break;case em:if(t.wrap){for(;c<32;){if(a===0)break e;a--,l|=n[o++]<{if(lo(i))return mi;let e=i.state;return e.window&&(e.window=null),i.state=null,Ao},zv=(i,e)=>{if(lo(i))return mi;let t=i.state;return(t.wrap&2)===0?mi:(t.head=e,e.done=!1,Ao)},Kv=(i,e)=>{let t=e.length,n,r,o;return lo(i)||(n=i.state,n.wrap!==0&&n.mode!==Uc)?mi:n.mode===Uc&&(r=1,r=iA(r,e,t,0),r!==n.check)?ky:(o=zy(i,e,t,t),o?(n.mode=Ny,Py):(n.havedict=1,Ao))},qv=Uy,Vv=Yy,Xv=Oy,Jv=Ov,jv=Hy,Wv=Yv,Zv=Hv,$v=zv,eT=Kv,tT="pako inflate (from Nodeca project)",Yn={inflateReset:qv,inflateReset2:Vv,inflateResetKeep:Xv,inflateInit:Jv,inflateInit2:jv,inflate:Wv,inflateEnd:Zv,inflateGetHeader:$v,inflateSetDictionary:eT,inflateInfo:tT};nT=iT,Ky=Object.prototype.toString,{Z_NO_FLUSH:rT,Z_FINISH:oT,Z_OK:oA,Z_STREAM_END:nm,Z_NEED_DICT:rm,Z_STREAM_ERROR:sT,Z_DATA_ERROR:cy,Z_MEM_ERROR:aT}=ws;lA.prototype.push=function(i,e){let t=this.strm,n=this.options.chunkSize,r=this.options.dictionary,o,s,a;if(this.ended)return!1;for(e===~~e?s=e:s=e===!0?oT:rT,Ky.call(i)==="[object ArrayBuffer]"?t.input=new Uint8Array(i):t.input=i,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),o=Yn.inflate(t,s),o===rm&&r&&(o=Yn.inflateSetDictionary(t,r),o===oA?o=Yn.inflate(t,s):o===cy&&(o=rm));t.avail_in>0&&o===nm&&t.state.wrap>0&&i[t.next_in]!==0;)Yn.inflateReset(t),o=Yn.inflate(t,s);switch(o){case sT:case cy:case rm:case aT:return this.onEnd(o),this.ended=!0,!1}if(a=t.avail_out,t.next_out&&(t.avail_out===0||o===nm))if(this.options.to==="string"){let A=rA.utf8border(t.output,t.next_out),l=t.next_out-A,c=rA.buf2string(t.output,A);t.next_out=l,t.avail_out=n-l,l&&t.output.set(t.output.subarray(A,A+l),0),this.onData(c)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(o===oA&&a===0)){if(o===nm)return o=Yn.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};lA.prototype.onData=function(i){this.chunks.push(i)};lA.prototype.onEnd=function(i){i===oA&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Hc.flattenChunks(this.chunks)),this.chunks=[],this.err=i,this.msg=this.strm.msg};lT=lA,cT=Cm,hT=AT,uT=Cm,fT=ws,gT={Inflate:lT,inflate:cT,inflateRaw:hT,ungzip:uT,constants:fT},{Deflate:iV,deflate:nV,deflateRaw:rV,gzip:oV}=yv,{Inflate:sV,inflate:dT,inflateRaw:aV,ungzip:AV}=gT,Kc=dT});var qy={};pn(qy,{default:()=>qc});var qc,Vy=Ft(()=>{_m();pr();qc=class extends dt{decodeBlock(e){return Kc(new Uint8Array(e)).buffer}}});var Xy={};pn(Xy,{default:()=>Vc});var Vc,Jy=Ft(()=>{pr();Vc=class extends dt{decodeBlock(e){let t=new DataView(e),n=[];for(let r=0;r{(function(){var i=function(){var r={};r.defaultNoDataValue=-34027999387901484e22,r.decode=function(c,h){h=h||{};var u=h.encodedMaskData||h.encodedMaskData===null,f=A(c,h.inputOffset||0,u),g=h.noDataValue!==null?h.noDataValue:r.defaultNoDataValue,m=o(f,h.pixelType||Float32Array,h.encodedMaskData,g,h.returnMask),d={width:f.width,height:f.height,pixelData:m.resultPixels,minValue:m.minValue,maxValue:f.pixels.maxValue,noDataValue:g};return m.resultMask&&(d.maskData=m.resultMask),h.returnEncodedMask&&f.mask&&(d.encodedMaskData=f.mask.bitset?f.mask.bitset:null),h.returnFileInfo&&(d.fileInfo=s(f),h.computeUsedBitDepths&&(d.fileInfo.bitDepths=a(f))),d};var o=function(c,h,u,f,g){var m=0,d=c.pixels.numBlocksX,E=c.pixels.numBlocksY,p=Math.floor(c.width/d),_=Math.floor(c.height/E),C=2*c.maxZError,I=Number.MAX_VALUE,y;u=u||(c.mask?c.mask.bitset:null);var x,B;x=new h(c.width*c.height),g&&u&&(B=new Uint8Array(c.width*c.height));for(var Q=new Float32Array(p*_),w,v,R=0;R<=E;R++){var F=R!==E?_:c.height%E;if(F!==0)for(var D=0;D<=d;D++){var S=D!==d?p:c.width%d;if(S!==0){var k=R*c.width*_+D*p,L=c.width-S,b=c.pixels.blocks[m],P,N,Y;b.encoding<2?(b.encoding===0?P=b.rawData:(l(b.stuffedData,b.bitsPerPixel,b.numValidPixels,b.offset,C,Q,c.pixels.maxValue),P=Q),N=0):b.encoding===2?Y=0:Y=b.offset;var M;if(u)for(v=0;v>3],M<<=k&7),w=0;w>3]),M&128?(B&&(B[k]=1),y=b.encoding<2?P[N++]:Y,I=I>y?y:I,x[k++]=y):(B&&(B[k]=0),x[k++]=f),M<<=1;k+=L}else if(b.encoding<2)for(v=0;vy?y:I,x[k++]=y;k+=L}else for(I=I>Y?Y:I,v=0;v0){var d=new Uint8Array(Math.ceil(f.width*f.height/8));m=new DataView(c,h,f.mask.numBytes);var E=m.getInt16(0,!0),p=2,_=0;do{if(E>0)for(;E--;)d[_++]=m.getUint8(p++);else{var C=m.getUint8(p++);for(E=-E;E--;)d[_++]=C}E=m.getInt16(p,!0),p+=2}while(p0?1:0),B=y+(f.height%y>0?1:0);f.pixels.blocks=new Array(x*B);for(var Q=0,w=0;w3)throw"Invalid block encoding ("+D.encoding+")";if(D.encoding===2){h++;continue}if(S!==0&&S!==2){if(S>>=6,D.offsetType=S,S===2)D.offset=m.getInt8(1),R++;else if(S===1)D.offset=m.getInt16(1,!0),R+=2;else if(S===0)D.offset=m.getFloat32(1,!0),R+=4;else throw"Invalid block offset type";if(D.encoding===1)if(S=m.getUint8(R),R++,D.bitsPerPixel=S&63,S>>=6,D.numValidPixelsType=S,S===2)D.numValidPixels=m.getUint8(R),R++;else if(S===1)D.numValidPixels=m.getUint16(R,!0),R+=2;else if(S===0)D.numValidPixels=m.getUint32(R,!0),R+=4;else throw"Invalid valid pixel count type"}if(h+=R,D.encoding!==3){var k,L;if(D.encoding===0){var b=(f.pixels.numBytes-1)/4;if(b!==Math.floor(b))throw"uncompressed block has invalid length";k=new ArrayBuffer(b*4),L=new Uint8Array(k),L.set(new Uint8Array(c,h,b*4));var P=new Float32Array(k);D.rawData=P,h+=b*4}else if(D.encoding===1){var N=Math.ceil(D.numValidPixels*D.bitsPerPixel/8),Y=Math.ceil(N/4);k=new ArrayBuffer(Y*4),L=new Uint8Array(k),L.set(new Uint8Array(c,h,N)),D.stuffedData=new Uint32Array(k),h+=N}}}return f.eofOffset=h,f},l=function(c,h,u,f,g,m,d){var E=(1<=h)I=y>>>C-h&E,C-=h;else{var Q=h-C;I=(y&E)<>>C}m[_]=I=c?(C=I>>>_-c&d,_-=c):(y=c-_,C=(I&d)<>>_),l[p]=u[C];else for(x=Math.ceil((m-f)/g),p=0;p=c?(C=I>>>_-c&d,_-=c):(y=c-_,C=(I&d)<>>_),l[p]=C=l?(_=C>>>p-l&g,p-=l):(E=l-p,_=(C&g)<>>p),I[d]=_=c?(I=y>>>C&d,_-=c,C+=c):(x=c-_,I=y>>>C&d,y=A[E++],_=32-x,I|=(y&(1<=c?(I=y>>>C&d,_-=c,C+=c):(x=c-_,I=y>>>C&d,y=A[E++],_=32-x,I|=(y&(1<=l?(_=I>>>C&g,p-=l,C+=l):(E=l-p,_=I>>>C&g,I=A[m++],p=32-E,_|=(I&(1<=c?(d=E>>>m-c&u,m-=c):(p=c-m,d=(E&u)<>>m),l[g]=d;return l},originalUnstuff2:function(A,l,c,h){var u=(1<=c?(E=p>>>d&u,m-=c,d+=c):(_=c-m,E=p>>>d&u,p=A[f++],m=32-_,E|=(p&(1<<_)-1)<=359?359:u;u-=g;do l+=A[f++]<<8,c+=l+=A[f++];while(--g);l=(l&65535)+(l>>>16),c=(c&65535)+(c>>>16)}return h&1&&(c+=l+=A[f]<<8),l=(l&65535)+(l>>>16),c=(c&65535)+(c>>>16),(c<<16|l)>>>0},readHeaderInfo:function(A,l){var c=l.ptr,h=new Uint8Array(A,c,6),u={};if(u.fileIdentifierString=String.fromCharCode.apply(null,h),u.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+u.fileIdentifierString;c+=6;var f=new DataView(A,c,8),g=f.getInt32(0,!0);u.fileVersion=g,c+=4,g>=3&&(u.checksum=f.getUint32(4,!0),c+=4),f=new DataView(A,c,12),u.height=f.getUint32(0,!0),u.width=f.getUint32(4,!0),c+=8,g>=4?(u.numDims=f.getUint32(8,!0),c+=4):u.numDims=1,f=new DataView(A,c,40),u.numValidPixel=f.getUint32(0,!0),u.microBlockSize=f.getInt32(4,!0),u.blobSize=f.getInt32(8,!0),u.imageType=f.getInt32(12,!0),u.maxZError=f.getFloat64(16,!0),u.zMin=f.getFloat64(24,!0),u.zMax=f.getFloat64(32,!0),c+=40,l.headerInfo=u,l.ptr=c;var m,d;if(g>=3&&(d=g>=4?52:48,m=this.computeChecksumFletcher32(new Uint8Array(A,c-d,u.blobSize-14)),m!==u.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,l){var c=l.headerInfo,h=this.getDataTypeArray(c.imageType),u=c.numDims*this.getDataTypeSize(c.imageType),f=this.readSubArray(A,l.ptr,h,u),g=this.readSubArray(A,l.ptr+u,h,u);l.ptr+=2*u;var m,d=!0;for(m=0;m0){d=new Uint8Array(Math.ceil(u/8)),g=new DataView(A,c,m.numBytes);var p=g.getInt16(0,!0),_=2,C=0,I=0;do{if(p>0)for(;p--;)d[C++]=g.getUint8(_++);else for(I=g.getUint8(_++),p=-p;p--;)d[C++]=I;p=g.getInt16(_,!0),_+=2}while(_>3],y<<=x&7):y=d[x>>3],y&128&&(E[x]=1);l.pixels.resultMask=E,m.bitset=d,c+=m.numBytes}return l.ptr=c,l.mask=m,!0},readDataOneSweep:function(A,l,c,h){var u=l.ptr,f=l.headerInfo,g=f.numDims,m=f.width*f.height,d=f.imageType,E=f.numValidPixel*o.getDataTypeSize(d)*g,p,_=l.pixels.resultMask;if(c===Uint8Array)p=new Uint8Array(A,u,E);else{var C=new ArrayBuffer(E),I=new Uint8Array(C);I.set(new Uint8Array(A,u,E)),p=new c(C)}if(p.length===m*g)h?l.pixels.resultPixels=o.swapDimensionOrder(p,m,g,c,!0):l.pixels.resultPixels=p;else{l.pixels.resultPixels=new c(m*g);var y=0,x=0,B=0,Q=0;if(g>1){if(h){for(x=0;x=m)return!1;var d=new Uint32Array(m-g);o.decodeBits(A,l,d);var E=[],p,_,C,I;for(p=g;p0&&(E[_].second=R<>>32-I,32-v>=I?(v+=I,v===32&&(v=0,F++,R=w[F])):(v+=I-32,F++,R=w[F],E[_].second|=R>>>32-v));var D=0,S=0,k=new s;for(p=0;p=c?S=c:S=D;var L=[],b,P,N,Y,M,j;for(p=g;p0)if(b=[I,_],I<=S)for(P=E[_].second<=0;Y--)M=P>>>Y&1,M?(j.right||(j.right=new s),j=j.right):(j.left||(j.left=new s),j=j.left),Y===0&&!j.val&&(j.val=b[1]);return{decodeLut:L,numBitsLUTQick:S,numBitsLUT:D,tree:k,stuffedData:w,srcPtr:F,bitPos:v}},readHuffman:function(A,l,c,h){var u=l.headerInfo,f=u.numDims,g=l.headerInfo.height,m=l.headerInfo.width,d=m*g,E=this.readHuffmanTree(A,l),p=E.decodeLut,_=E.tree,C=E.stuffedData,I=E.srcPtr,y=E.bitPos,x=E.numBitsLUTQick,B=E.numBitsLUT,Q=l.headerInfo.imageType===0?128:0,w,v,R,F=l.pixels.resultMask,D,S,k,L,b,P,N,Y=0;y>0&&(I++,y=0);var M=C[I],j=l.encodeMode===1,H=new c(d*f),O=H,K;if(f<2||j){for(K=0;K1&&(O=new c(H.buffer,d*K,d),Y=0),l.headerInfo.numValidPixel===m*g)for(P=0,L=0;L>>32-x,S=D,32-y>>64-y-x,S=D),p[S])v=p[S][1],y+=p[S][0];else for(D=M<>>32-B,S=D,32-y>>64-y-B,S=D),w=_,N=0;N>>B-N-1&1,w=k?w.right:w.left,!(w.left||w.right)){v=w.val,y=y+N+1;break}y>=32&&(y-=32,I++,M=C[I]),R=v-Q,j?(b>0?R+=Y:L>0?R+=O[P-m]:R+=Y,R&=255,O[P]=R,Y=R):O[P]=R}else for(P=0,L=0;L>>32-x,S=D,32-y>>64-y-x,S=D),p[S])v=p[S][1],y+=p[S][0];else for(D=M<>>32-B,S=D,32-y>>64-y-B,S=D),w=_,N=0;N>>B-N-1&1,w=k?w.right:w.left,!(w.left||w.right)){v=w.val,y=y+N+1;break}y>=32&&(y-=32,I++,M=C[I]),R=v-Q,j?(b>0&&F[P-1]?R+=Y:L>0&&F[P-m]?R+=O[P-m]:R+=Y,R&=255,O[P]=R,Y=R):O[P]=R}}else for(P=0,L=0;L>>32-x,S=D,32-y>>64-y-x,S=D),p[S])v=p[S][1],y+=p[S][0];else for(D=M<>>32-B,S=D,32-y>>64-y-B,S=D),w=_,N=0;N>>B-N-1&1,w=k?w.right:w.left,!(w.left||w.right)){v=w.val,y=y+N+1;break}y>=32&&(y-=32,I++,M=C[I]),R=v-Q,O[P]=R}l.ptr=l.ptr+(I+1)*4+(y>0?4:0),l.pixels.resultPixels=H,f>1&&!h&&(l.pixels.resultPixels=o.swapDimensionOrder(H,d,f,c))},decodeBits:function(A,l,c,h,u){{var f=l.headerInfo,g=f.fileVersion,m=0,d=A.byteLength-l.ptr>=5?5:A.byteLength-l.ptr,E=new DataView(A,l.ptr,d),p=E.getUint8(0);m++;var _=p>>6,C=_===0?4:3-_,I=(p&32)>0,y=p&31,x=0;if(C===1)x=E.getUint8(m),m++;else if(C===2)x=E.getUint16(m,!0),m+=2;else if(C===4)x=E.getUint32(m,!0),m+=4;else throw"Invalid valid pixel count type";var B=2*f.maxZError,Q,w,v,R,F,D,S,k,L,b,P=f.numDims>1?f.maxValues[u]:f.zMax;if(I){for(l.counter.lut++,k=E.getUint8(m),L=y,m++,R=Math.ceil((k-1)*y/8),F=Math.ceil(R/4),w=new ArrayBuffer(F*4),v=new Uint8Array(w),l.ptr+=m,v.set(new Uint8Array(A,l.ptr,R)),S=new Uint32Array(w),l.ptr+=R,b=0;k-1>>>b;)b++;R=Math.ceil(x*b/8),F=Math.ceil(R/4),w=new ArrayBuffer(F*4),v=new Uint8Array(w),v.set(new Uint8Array(A,l.ptr,R)),Q=new Uint32Array(w),l.ptr+=R,g>=3?D=r.unstuffLUT2(S,y,k-1,h,B,P):D=r.unstuffLUT(S,y,k-1,h,B,P),g>=3?r.unstuff2(Q,c,b,x,D):r.unstuff(Q,c,b,x,D)}else l.counter.bitstuffer++,b=y,l.ptr+=m,b>0&&(R=Math.ceil(x*b/8),F=Math.ceil(R/4),w=new ArrayBuffer(F*4),v=new Uint8Array(w),v.set(new Uint8Array(A,l.ptr,R)),Q=new Uint32Array(w),l.ptr+=R,g>=3?h==null?r.originalUnstuff2(Q,c,b,x):r.unstuff2(Q,c,b,x,!1,h,B,P):h==null?r.originalUnstuff(Q,c,b,x):r.unstuff(Q,c,b,x,!1,h,B,P))}},readTiles:function(A,l,c,h){var u=l.headerInfo,f=u.width,g=u.height,m=f*g,d=u.microBlockSize,E=u.imageType,p=o.getDataTypeSize(E),_=Math.ceil(f/d),C=Math.ceil(g/d);l.pixels.numBlocksY=C,l.pixels.numBlocksX=_,l.pixels.ptr=0;var I=0,y=0,x=0,B=0,Q=0,w=0,v=0,R=0,F=0,D=0,S=0,k=0,L=0,b=0,P=0,N=0,Y,M,j,H,O,K,ie=new c(d*d),ge=g%d||d,Ee=f%d||d,de,Pe,tt=u.numDims,xt,Je=l.pixels.resultMask,ve=l.pixels.resultPixels,bt=u.fileVersion,un=bt>=5?14:15,wt,fn=u.zMax,Et;for(x=0;x1?(Et=ve,S=x*f*d+B*d,ve=new c(l.pixels.resultPixels.buffer,m*xt*p,m),fn=u.maxValues[xt]):Et=null,v=A.byteLength-l.ptr,Y=new DataView(A,l.ptr,Math.min(10,v)),M={},N=0,R=Y.getUint8(0),N++,wt=u.fileVersion>=5?R&4:0,F=R>>6&255,D=R>>2&un,D!==(B*d>>3&un)||wt&&xt===0)throw"integrity issue";if(K=R&3,K>3)throw l.ptr+=N,"Invalid block encoding ("+K+")";if(K===2){if(wt)if(Je)for(I=0;I1&&!h&&(l.pixels.resultPixels=o.swapDimensionOrder(l.pixels.resultPixels,m,tt,c))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:o.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,l){var c=A.headerInfo.zMax,h=A.headerInfo.zMin,u=A.headerInfo.maxValues,f=A.headerInfo.numDims,g=A.headerInfo.height*A.headerInfo.width,m=0,d=0,E=0,p=A.pixels.resultMask,_=A.pixels.resultPixels;if(p)if(f>1){if(l)for(m=0;m1&&h!==c)if(l)for(m=0;m=-128&&l<=127;break;case 1:c=l>=0&&l<=255;break;case 2:c=l>=-32768&&l<=32767;break;case 3:c=l>=0&&l<=65536;break;case 4:c=l>=-2147483648&&l<=2147483647;break;case 5:c=l>=0&&l<=4294967296;break;case 6:c=l>=-34027999387901484e22&&l<=34027999387901484e22;break;case 7:c=l>=-17976931348623157e292&&l<=17976931348623157e292;break;default:c=!1}return c},getDataTypeSize:function(A){var l=0;switch(A){case 0:case 1:l=1;break;case 2:case 3:l=2;break;case 4:case 5:case 6:l=4;break;case 7:l=8;break;default:l=A}return l},getDataTypeUsed:function(A,l){var c=A;switch(A){case 2:case 4:c=A-l;break;case 3:case 5:c=A-2*l;break;case 6:l===0?c=A:l===1?c=2:c=1;break;case 7:l===0?c=A:c=A-2*l+1;break;default:c=A;break}return c},getOnePixel:function(A,l,c,h){var u=0;switch(c){case 0:u=h.getInt8(l);break;case 1:u=h.getUint8(l);break;case 2:u=h.getInt16(l,!0);break;case 3:u=h.getUint16(l,!0);break;case 4:u=h.getInt32(l,!0);break;case 5:u=h.getUInt32(l,!0);break;case 6:u=h.getFloat32(l,!0);break;case 7:u=h.getFloat64(l,!0);break;default:throw"the decoder does not understand this pixel type"}return u},swapDimensionOrder:function(A,l,c,h,u){var f=0,g=0,m=0,d=0,E=A;if(c>1)if(E=new h(l*c),u)for(f=0;f5)throw"unsupported lerc version 2."+g;o.readMask(A,u),f.numValidPixel!==f.width*f.height&&!u.pixels.resultMask&&(u.pixels.resultMask=l.maskData);var d=f.width*f.height;u.pixels.resultPixels=new m(d*f.numDims),u.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var E=!l.returnPixelInterleavedDims;if(f.numValidPixel!==0)if(f.zMax===f.zMin)o.constructConstantSurface(u,E);else if(g>=4&&o.checkMinMaxRanges(A,u))o.constructConstantSurface(u,E);else{var p=new DataView(A,u.ptr,2),_=p.getUint8(0);if(u.ptr++,_)o.readDataOneSweep(A,u,m,E);else if(g>1&&f.imageType<=1&&Math.abs(f.maxZError-.5)<1e-5){var C=p.getUint8(1);if(u.ptr++,u.encodeMode=C,C>2||g<4&&C>1)throw"Invalid Huffman flag "+C;C?o.readHuffman(A,u,m,E):o.readTiles(A,u,m,E)}else o.readTiles(A,u,m,E)}u.eofOffset=u.ptr;var I;l.inputOffset?(I=u.headerInfo.blobSize+l.inputOffset-u.ptr,Math.abs(I)>=1&&(u.eofOffset=l.inputOffset+u.headerInfo.blobSize)):(I=u.headerInfo.blobSize-u.ptr,Math.abs(I)>=1&&(u.eofOffset=u.headerInfo.blobSize));var y={width:f.width,height:f.height,pixelData:u.pixels.resultPixels,minValue:f.zMin,maxValue:f.zMax,validPixelCount:f.numValidPixel,dimCount:f.numDims,dimStats:{minValues:f.minValues,maxValues:f.maxValues},maskData:u.pixels.resultMask};if(u.pixels.resultMask&&o.isValidPixelValue(f.imageType,c)){var x=u.pixels.resultMask;for(h=0;h1&&(d&&g.push(d),_.fileInfo.mask&&_.fileInfo.mask.numBytes>0&&p++),h++,E.pixels.push(_.pixelData),E.statistics.push({minValue:_.minValue,maxValue:_.maxValue,noDataValue:_.noDataValue,dimStats:_.dimStats})}var C,I,y;if(c>1&&p>1){for(y=E.width*E.height,E.bandMasks=g,d=new Uint8Array(y),d.set(g[0]),C=1;C{ym={env:{emscripten_notify_memory_growth:function(i){Bm=new Uint8Array(Hn.exports.memory.buffer)}}},Jc=class{init(){return cA||(typeof fetch<"u"?cA=fetch("data:application/wasm;base64,"+Wy).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,ym)).then(this._init):cA=WebAssembly.instantiate(Buffer.from(Wy,"base64"),ym).then(this._init),cA)}_init(e){Hn=e.instance,ym.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!Hn)throw new Error("ZSTDDecoder: Await .init() before decoding.");let n=e.byteLength,r=Hn.exports.malloc(n);Bm.set(e,r),t=t||Number(Hn.exports.ZSTD_findDecompressedSize(r,n));let o=Hn.exports.malloc(t),s=Hn.exports.ZSTD_decompress(o,t,r,n),a=Bm.slice(o,o+s);return Hn.exports.free(r),Hn.exports.free(o),a}},Wy="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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"});var tB={};pn(tB,{default:()=>jc,zstd:()=>eB});var $y,eB,jc,iB=Ft(()=>{_m();$y=mo(jy(),1);Zy();pr();za();eB=new Jc,jc=class extends dt{constructor(e){super(),this.planarConfiguration=typeof e.PlanarConfiguration<"u"?e.PlanarConfiguration:1,this.samplesPerPixel=typeof e.SamplesPerPixel<"u"?e.SamplesPerPixel:1,this.addCompression=e.LercParameters[Od.AddCompression]}decodeBlock(e){switch(this.addCompression){case Ha.None:break;case Ha.Deflate:e=Kc(new Uint8Array(e)).buffer;break;case Ha.Zstandard:e=eB.decode(new Uint8Array(e)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return $y.default.decode(e,{returnPixelInterleavedDims:this.planarConfiguration===1}).pixels[0].buffer}}});var nB={};pn(nB,{default:()=>Wc});var Wc,rB=Ft(()=>{pr();Wc=class extends dt{constructor(){if(super(),typeof createImageBitmap>"u")throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if(typeof document>"u"&&typeof OffscreenCanvas>"u")throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decode(e,t){let n=new Blob([t]),r=await createImageBitmap(n),o;typeof document<"u"?(o=document.createElement("canvas"),o.width=r.width,o.height=r.height):o=new OffscreenCanvas(r.width,r.height);let s=o.getContext("2d");return s.drawImage(r,0,0),s.getImageData(0,0,r.width,r.height).data.buffer}}});var lB,cB=Ft(()=>{lB=typeof Worker<"u"?Worker:void 0});var hB={};pn(hB,{create:()=>BT});function BT(){let i='function A(A,e,t,i,r,I,g){try{var n=A[I](g),a=n.value}catch(A){return void t(A)}n.done?e(a):Promise.resolve(a).then(i,r)}function e(e){return function(){var t=this,i=arguments;return new Promise((function(r,I){var g=e.apply(t,i);function n(e){A(g,r,I,n,a,"next",e)}function a(e){A(g,r,I,n,a,"throw",e)}n(void 0)}))}}function t(A){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},t(A)}var i={exports:{}};!function(A){var e=function(A){var e,i=Object.prototype,r=i.hasOwnProperty,I="function"==typeof Symbol?Symbol:{},g=I.iterator||"@@iterator",n=I.asyncIterator||"@@asyncIterator",a=I.toStringTag||"@@toStringTag";function o(A,e,t){return Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}),A[e]}try{o({},"")}catch(A){o=function(A,e,t){return A[e]=t}}function B(A,e,t,i){var r=e&&e.prototype instanceof h?e:h,I=Object.create(r.prototype),g=new S(i||[]);return I._invoke=function(A,e,t){var i=Q;return function(r,I){if(i===s)throw new Error("Generator is already running");if(i===f){if("throw"===r)throw I;return R()}for(t.method=r,t.arg=I;;){var g=t.delegate;if(g){var n=m(g,t);if(n){if(n===c)continue;return n}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(i===Q)throw i=f,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);i=s;var a=C(A,e,t);if("normal"===a.type){if(i=t.done?f:E,a.arg===c)continue;return{value:a.arg,done:t.done}}"throw"===a.type&&(i=f,t.method="throw",t.arg=a.arg)}}}(A,t,g),I}function C(A,e,t){try{return{type:"normal",arg:A.call(e,t)}}catch(A){return{type:"throw",arg:A}}}A.wrap=B;var Q="suspendedStart",E="suspendedYield",s="executing",f="completed",c={};function h(){}function l(){}function u(){}var w={};o(w,g,(function(){return this}));var d=Object.getPrototypeOf,D=d&&d(d(v([])));D&&D!==i&&r.call(D,g)&&(w=D);var y=u.prototype=h.prototype=Object.create(w);function k(A){["next","throw","return"].forEach((function(e){o(A,e,(function(A){return this._invoke(e,A)}))}))}function p(A,e){function i(I,g,n,a){var o=C(A[I],A,g);if("throw"!==o.type){var B=o.arg,Q=B.value;return Q&&"object"===t(Q)&&r.call(Q,"__await")?e.resolve(Q.__await).then((function(A){i("next",A,n,a)}),(function(A){i("throw",A,n,a)})):e.resolve(Q).then((function(A){B.value=A,n(B)}),(function(A){return i("throw",A,n,a)}))}a(o.arg)}var I;this._invoke=function(A,t){function r(){return new e((function(e,r){i(A,t,e,r)}))}return I=I?I.then(r,r):r()}}function m(A,t){var i=A.iterator[t.method];if(i===e){if(t.delegate=null,"throw"===t.method){if(A.iterator.return&&(t.method="return",t.arg=e,m(A,t),"throw"===t.method))return c;t.method="throw",t.arg=new TypeError("The iterator does not provide a \'throw\' method")}return c}var r=C(i,A.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,c;var I=r.arg;return I?I.done?(t[A.resultName]=I.value,t.next=A.nextLoc,"return"!==t.method&&(t.method="next",t.arg=e),t.delegate=null,c):I:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,c)}function G(A){var e={tryLoc:A[0]};1 in A&&(e.catchLoc=A[1]),2 in A&&(e.finallyLoc=A[2],e.afterLoc=A[3]),this.tryEntries.push(e)}function F(A){var e=A.completion||{};e.type="normal",delete e.arg,A.completion=e}function S(A){this.tryEntries=[{tryLoc:"root"}],A.forEach(G,this),this.reset(!0)}function v(A){if(A){var t=A[g];if(t)return t.call(A);if("function"==typeof A.next)return A;if(!isNaN(A.length)){var i=-1,I=function t(){for(;++i=0;--I){var g=this.tryEntries[I],n=g.completion;if("root"===g.tryLoc)return i("end");if(g.tryLoc<=this.prev){var a=r.call(g,"catchLoc"),o=r.call(g,"finallyLoc");if(a&&o){if(this.prev=0;--t){var i=this.tryEntries[t];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var t=this.tryEntries[e];if(t.finallyLoc===A)return this.complete(t.completion,t.afterLoc),F(t),c}},catch:function(A){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.tryLoc===A){var i=t.completion;if("throw"===i.type){var r=i.arg;F(t)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(A,t,i){return this.delegate={iterator:v(A),resultName:t,nextLoc:i},"next"===this.method&&(this.arg=e),c}},A}(A.exports);try{regeneratorRuntime=e}catch(A){"object"===("undefined"==typeof globalThis?"undefined":t(globalThis))?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}}(i);var r=i.exports,I=new Map;function g(A,e){Array.isArray(A)||(A=[A]),A.forEach((function(A){return I.set(A,e)}))}function n(A){return a.apply(this,arguments)}function a(){return(a=e(r.mark((function A(e){var t,i;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(t=I.get(e.Compression)){A.next=3;break}throw new Error("Unknown compression method identifier: ".concat(e.Compression));case 3:return A.next=5,t();case 5:return i=A.sent,A.abrupt("return",new i(e));case 7:case"end":return A.stop()}}),A)})))).apply(this,arguments)}g([void 0,1],(function(){return Promise.resolve().then((function(){return y})).then((function(A){return A.default}))})),g(5,(function(){return Promise.resolve().then((function(){return F})).then((function(A){return A.default}))})),g(6,(function(){throw new Error("old style JPEG compression is not supported.")})),g(7,(function(){return Promise.resolve().then((function(){return N})).then((function(A){return A.default}))})),g([8,32946],(function(){return Promise.resolve().then((function(){return OA})).then((function(A){return A.default}))})),g(32773,(function(){return Promise.resolve().then((function(){return _A})).then((function(A){return A.default}))})),g(34887,(function(){return Promise.resolve().then((function(){return le})).then(function(){var A=e(r.mark((function A(e){return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,e.zstd.init();case 2:return A.abrupt("return",e);case 3:case"end":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}()).then((function(A){return A.default}))})),g(50001,(function(){return Promise.resolve().then((function(){return de})).then((function(A){return A.default}))}));var o=globalThis;function B(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")}function C(A,e){for(var t=0;t0;r--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function l(A,e,t){for(var i=0,r=A.length,I=r/t;r>e;){for(var g=e;g>0;--g)A[i+e]+=A[i],++i;r-=e}for(var n=A.slice(),a=0;a=A.byteLength);++o){var B=void 0;if(2===e){switch(r[0]){case 8:B=new Uint8Array(A,o*a*t*n,a*t*n);break;case 16:B=new Uint16Array(A,o*a*t*n,a*t*n/2);break;case 32:B=new Uint32Array(A,o*a*t*n,a*t*n/4);break;default:throw new Error("Predictor 2 not allowed with ".concat(r[0]," bits per sample."))}h(B,a)}else 3===e&&l(B=new Uint8Array(A,o*a*t*n,a*t*n),a,n)}return A}o.addEventListener("message",function(){var A=e(r.mark((function A(e){var t,i,I,g,a,B;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=e.data,i=t.id,I=t.fileDirectory,g=t.buffer,A.next=3,n(I);case 3:return a=A.sent,A.next=6,a.decode(I,g);case 6:B=A.sent,o.postMessage({decoded:B,id:i},[B]);case 8:case"end":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}());var w=function(){function A(){B(this,A)}var t;return Q(A,[{key:"decode",value:(t=e(r.mark((function A(e,t){var i,I,g,n,a;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,this.decodeBlock(t);case 2:if(i=A.sent,1===(I=e.Predictor||1)){A.next=9;break}return g=!e.StripOffsets,n=g?e.TileWidth:e.ImageWidth,a=g?e.TileLength:e.RowsPerStrip||e.ImageLength,A.abrupt("return",u(i,I,n,a,e.BitsPerSample,e.PlanarConfiguration));case 9:return A.abrupt("return",i);case 10:case"end":return A.stop()}}),A,this)}))),function(A,e){return t.apply(this,arguments)})}]),A}();function d(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var D=function(A){s(t,w);var e=d(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return A}}]),t}(),y=Object.freeze({__proto__:null,default:D});function k(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}function p(A,e){for(var t=e.length-1;t>=0;t--)A.push(e[t]);return A}function m(A){for(var e=new Uint16Array(4093),t=new Uint8Array(4093),i=0;i<=257;i++)e[i]=4096,t[i]=i;var r=258,I=9,g=0;function n(){r=258,I=9}function a(A){var e=function(A,e,t){var i=e%8,r=Math.floor(e/8),I=8-i,g=e+t-8*(r+1),n=8*(r+2)-(e+t),a=8*(r+2)-e;if(n=Math.max(0,n),r>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;var o=A[r]&Math.pow(2,8-i)-1,B=o<<=t-I;if(r+1>>n;B+=C<<=Math.max(0,t-a)}if(g>8&&r+2>>Q}return B}(A,g,I);return g+=I,e}function o(A,i){return t[r]=i,e[r]=A,++r-1}function B(A){for(var i=[],r=A;4096!==r;r=e[r])i.push(t[r]);return i}var C=[];n();for(var Q,E=new Uint8Array(A),s=a(E);257!==s;){if(256===s){for(n(),s=a(E);256===s;)s=a(E);if(257===s)break;if(s>256)throw new Error("corrupted code at scanline ".concat(s));p(C,B(s)),Q=s}else if(s=Math.pow(2,I)&&(12===I?Q=void 0:I++),s=a(E)}return new Uint8Array(C)}var G=function(A){s(t,w);var e=k(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return m(A).buffer}}]),t}(),F=Object.freeze({__proto__:null,default:G});function S(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var v=new Int32Array([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]);function R(A,e){for(var t=0,i=[],r=16;r>0&&!A[r-1];)--r;i.push({children:[],index:0});for(var I,g=i[0],n=0;n0;)g=i.pop();for(g.index++,i.push(g);i.length<=n;)i.push(I={children:[],index:0}),g.children[g.index]=I.children,g=I;t++}n+10)return f--,s>>f&1;if(255===(s=A[E++])){var e=A[E++];if(e)throw new Error("unexpected marker: ".concat((s<<8|e).toString(16)))}return f=7,s>>>7}function h(A){for(var e,i=A;null!==(e=c());){if("number"==typeof(i=i[e]))return i;if("object"!==t(i))throw new Error("invalid huffman sequence")}return null}function l(A){for(var e=A,t=0;e>0;){var i=c();if(null===i)return;t=t<<1|i,--e}return t}function u(A){var e=l(A);return e>=1<0)w--;else for(var t=g,i=n;t<=i;){var r=h(A.huffmanTableAC),I=15&r,a=r>>4;if(0===I){if(a<15){w=l(a)+(1<>4,0===C)r<15?(w=l(r)+(1<>4;if(0===g){if(n<15)break;r+=16}else e[v[r+=n]]=u(g),r++}};var L,b,M=0;b=1===U?r[0].blocksPerLine*r[0].blocksPerColumn:B*i.mcusPerColumn;for(var N=I||b;M=65488&&L<=65495))break;E+=2}return E-Q}function L(A,e){var t=[],i=e.blocksPerLine,r=e.blocksPerColumn,I=i<<3,g=new Int32Array(64),n=new Uint8Array(64);function a(A,t,i){var r,I,g,n,a,o,B,C,Q,E,s=e.quantizationTable,f=i;for(E=0;E<64;E++)f[E]=A[E]*s[E];for(E=0;E<8;++E){var c=8*E;0!==f[1+c]||0!==f[2+c]||0!==f[3+c]||0!==f[4+c]||0!==f[5+c]||0!==f[6+c]||0!==f[7+c]?(r=5793*f[0+c]+128>>8,I=5793*f[4+c]+128>>8,g=f[2+c],n=f[6+c],a=2896*(f[1+c]-f[7+c])+128>>8,C=2896*(f[1+c]+f[7+c])+128>>8,o=f[3+c]<<4,Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+128>>8,g=1567*g-3784*n+128>>8,n=Q,Q=a-(B=f[5+c]<<4)+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+c]=r+C,f[7+c]=r-C,f[1+c]=I+B,f[6+c]=I-B,f[2+c]=g+o,f[5+c]=g-o,f[3+c]=n+a,f[4+c]=n-a):(Q=5793*f[0+c]+512>>10,f[0+c]=Q,f[1+c]=Q,f[2+c]=Q,f[3+c]=Q,f[4+c]=Q,f[5+c]=Q,f[6+c]=Q,f[7+c]=Q)}for(E=0;E<8;++E){var h=E;0!==f[8+h]||0!==f[16+h]||0!==f[24+h]||0!==f[32+h]||0!==f[40+h]||0!==f[48+h]||0!==f[56+h]?(r=5793*f[0+h]+2048>>12,I=5793*f[32+h]+2048>>12,g=f[16+h],n=f[48+h],a=2896*(f[8+h]-f[56+h])+2048>>12,C=2896*(f[8+h]+f[56+h])+2048>>12,o=f[24+h],Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+2048>>12,g=1567*g-3784*n+2048>>12,n=Q,Q=a-(B=f[40+h])+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+h]=r+C,f[56+h]=r-C,f[8+h]=I+B,f[48+h]=I-B,f[16+h]=g+o,f[40+h]=g-o,f[24+h]=n+a,f[32+h]=n-a):(Q=5793*i[E+0]+8192>>14,f[0+h]=Q,f[8+h]=Q,f[16+h]=Q,f[24+h]=Q,f[32+h]=Q,f[40+h]=Q,f[48+h]=Q,f[56+h]=Q)}for(E=0;E<64;++E){var l=128+(f[E]+8>>4);t[E]=l<0?0:l>255?255:l}}for(var o=0;o>4==0)for(var C=0;C<64;C++){B[v[C]]=A[e++]}else{if(o>>4!=1)throw new Error("DQT: invalid table spec");for(var Q=0;Q<64;Q++){B[v[Q]]=t()}}this.quantizationTables[15&o]=B}break;case 65472:case 65473:case 65474:t();for(var E={extended:65473===g,progressive:65474===g,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},s=A[e++],f=void 0,c=0;c>4,l=15&A[e+1],u=A[e+2];E.componentsOrder.push(f),E.components[f]={h:h,v:l,quantizationIdx:u},e+=3}i(E),this.frames.push(E);break;case 65476:for(var w=t(),d=2;d>4==0?this.huffmanTablesDC[15&D]=R(y,m):this.huffmanTablesAC[15&D]=R(y,m)}break;case 65501:t(),this.resetInterval=t();break;case 65498:t();for(var F=A[e++],S=[],L=this.frames[0],b=0;b>4],M.huffmanTableAC=this.huffmanTablesAC[15&N],S.push(M)}var x=A[e++],J=A[e++],q=A[e++],Y=U(A,e,L,S,this.resetInterval,x,J,q>>4,15&q);e+=Y;break;case 65535:255!==A[e]&&e--;break;default:if(255===A[e-3]&&A[e-2]>=192&&A[e-2]<=254){e-=3;break}throw new Error("unknown JPEG marker ".concat(g.toString(16)))}g=t()}}},{key:"getResult",value:function(){var A=this.frames;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(var e=0;e=0;)A[e]=0}x(new Array(576)),x(new Array(60)),x(new Array(512)),x(new Array(256)),x(new Array(29)),x(new Array(30));var J=function(A,e,t,i){for(var r=65535&A|0,I=A>>>16&65535|0,g=0;0!==t;){t-=g=t>2e3?2e3:t;do{I=I+(r=r+e[i++]|0)|0}while(--g);r%=65521,I%=65521}return r|I<<16|0},q=new Uint32Array(function(){for(var A,e=[],t=0;t<256;t++){A=t;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;e[t]=A}return e}()),Y=function(A,e,t,i){var r=q,I=i+t;A^=-1;for(var g=i;g>>8^r[255&(A^e[g])];return-1^A},K={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},H={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},O=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},P=function(A){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var i=e.shift();if(i){if("object"!==t(i))throw new TypeError(i+"must be non-object");for(var r in i)O(i,r)&&(A[r]=i[r])}}return A},T=function(A){for(var e=0,t=0,i=A.length;t=252?6:X>=248?5:X>=240?4:X>=224?3:X>=192?2:1;_[254]=_[254]=1;var Z=function(A){if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);var e,t,i,r,I,g=A.length,n=0;for(r=0;r>>6,e[I++]=128|63&t):t<65536?(e[I++]=224|t>>>12,e[I++]=128|t>>>6&63,e[I++]=128|63&t):(e[I++]=240|t>>>18,e[I++]=128|t>>>12&63,e[I++]=128|t>>>6&63,e[I++]=128|63&t);return e},j=function(A,e){var t,i,r=e||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));var I=new Array(2*r);for(i=0,t=0;t4)I[i++]=65533,t+=n-1;else{for(g&=2===n?31:3===n?15:7;n>1&&t1?I[i++]=65533:g<65536?I[i++]=g:(g-=65536,I[i++]=55296|g>>10&1023,I[i++]=56320|1023&g)}}}return function(A,e){if(e<65534&&A.subarray&&V)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));for(var t="",i=0;iA.length&&(e=A.length);for(var t=e-1;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+_[A[t]]>e?t:e};var z=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},$=function(A,e){var t,i,r,I,g,n,a,o,B,C,Q,E,s,f,c,h,l,u,w,d,D,y,k,p,m=A.state;t=A.next_in,k=A.input,i=t+(A.avail_in-5),r=A.next_out,p=A.output,I=r-(e-A.avail_out),g=r+(A.avail_out-257),n=m.dmax,a=m.wsize,o=m.whave,B=m.wnext,C=m.window,Q=m.hold,E=m.bits,s=m.lencode,f=m.distcode,c=(1<>>=u=l>>>24,E-=u,0===(u=l>>>16&255))p[r++]=65535&l;else{if(!(16&u)){if(0==(64&u)){l=s[(65535&l)+(Q&(1<>>=u,E-=u),E<15&&(Q+=k[t++]<>>=u=l>>>24,E-=u,!(16&(u=l>>>16&255))){if(0==(64&u)){l=f[(65535&l)+(Q&(1<n){A.msg="invalid distance too far back",m.mode=30;break A}if(Q>>>=u,E-=u,d>(u=r-I)){if((u=d-u)>o&&m.sane){A.msg="invalid distance too far back",m.mode=30;break A}if(D=0,y=C,0===B){if(D+=a-u,u2;)p[r++]=y[D++],p[r++]=y[D++],p[r++]=y[D++],w-=3;w&&(p[r++]=y[D++],w>1&&(p[r++]=y[D++]))}else{D=r-d;do{p[r++]=p[D++],p[r++]=p[D++],p[r++]=p[D++],w-=3}while(w>2);w&&(p[r++]=p[D++],w>1&&(p[r++]=p[D++]))}break}}break}}while(t>3,Q&=(1<<(E-=w<<3))-1,A.next_in=t,A.next_out=r,A.avail_in=t=1&&0===v[d];d--);if(D>d&&(D=d),0===d)return r[I++]=20971520,r[I++]=20971520,n.bits=1,0;for(w=1;w0&&(0===A||1!==d))return-1;for(R[1]=0,l=1;l<15;l++)R[l+1]=R[l]+v[l];for(u=0;u852||2===A&&m>592)return 1;for(;;){s=l-k,g[u]E?(f=U[L+g[u]],c=F[S+g[u]]):(f=96,c=0),a=1<>k)+(o-=a)]=s<<24|f<<16|c|0}while(0!==o);for(a=1<>=1;if(0!==a?(G&=a-1,G+=a):G=0,u++,0==--v[l]){if(l===d)break;l=e[t+g[u]]}if(l>D&&(G&C)!==B){for(0===k&&(k=D),Q+=w,p=1<<(y=l-k);y+k852||2===A&&m>592)return 1;r[B=G&C]=D<<24|y<<16|Q-I|0}}return 0!==G&&(r[Q+G]=l-k<<24|64<<16|0),n.bits=D,0},IA=H.Z_FINISH,gA=H.Z_BLOCK,nA=H.Z_TREES,aA=H.Z_OK,oA=H.Z_STREAM_END,BA=H.Z_NEED_DICT,CA=H.Z_STREAM_ERROR,QA=H.Z_DATA_ERROR,EA=H.Z_MEM_ERROR,sA=H.Z_BUF_ERROR,fA=H.Z_DEFLATED,cA=function(A){return(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)};function hA(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var lA,uA,wA=function(A){if(!A||!A.state)return CA;var e=A.state;return A.total_in=A.total_out=e.total=0,A.msg="",e.wrap&&(A.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,aA},dA=function(A){if(!A||!A.state)return CA;var e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,wA(A)},DA=function(A,e){var t;if(!A||!A.state)return CA;var i=A.state;return e<0?(t=0,e=-e):(t=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?CA:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,dA(A))},yA=function(A,e){if(!A)return CA;var t=new hA;A.state=t,t.window=null;var i=DA(A,e);return i!==aA&&(A.state=null),i},kA=!0,pA=function(A){if(kA){lA=new Int32Array(512),uA=new Int32Array(32);for(var e=0;e<144;)A.lens[e++]=8;for(;e<256;)A.lens[e++]=9;for(;e<280;)A.lens[e++]=7;for(;e<288;)A.lens[e++]=8;for(rA(1,A.lens,0,288,lA,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;rA(2,A.lens,0,32,uA,0,A.work,{bits:5}),kA=!1}A.lencode=lA,A.lenbits=9,A.distcode=uA,A.distbits=5},mA=function(A,e,t,i){var r,I=A.state;return null===I.window&&(I.wsize=1<=I.wsize?(I.window.set(e.subarray(t-I.wsize,t),0),I.wnext=0,I.whave=I.wsize):((r=I.wsize-I.wnext)>i&&(r=i),I.window.set(e.subarray(t-i,t-i+r),I.wnext),(i-=r)?(I.window.set(e.subarray(t-i,t),0),I.wnext=i,I.whave=I.wsize):(I.wnext+=r,I.wnext===I.wsize&&(I.wnext=0),I.whave>>8&255,t.check=Y(t.check,G,2,0),o=0,B=0,t.mode=2;break}if(t.flags=0,t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&o)<<8)+(o>>8))%31){A.msg="incorrect header check",t.mode=30;break}if((15&o)!==fA){A.msg="unknown compression method",t.mode=30;break}if(B-=4,D=8+(15&(o>>>=4)),0===t.wbits)t.wbits=D;else if(D>t.wbits){A.msg="invalid window size",t.mode=30;break}t.dmax=1<>8&1),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=3;case 3:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>8&255,G[2]=o>>>16&255,G[3]=o>>>24&255,t.check=Y(t.check,G,4,0)),o=0,B=0,t.mode=4;case 4:for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>8),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=5;case 5:if(1024&t.flags){for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0}else t.head&&(t.head.extra=null);t.mode=6;case 6:if(1024&t.flags&&((E=t.length)>n&&(E=n),E&&(t.head&&(D=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(I,I+E),D)),512&t.flags&&(t.check=Y(t.check,i,E,I)),n-=E,I+=E,t.length-=E),t.length))break A;t.length=0,t.mode=7;case 7:if(2048&t.flags){if(0===n)break A;E=0;do{D=i[I+E++],t.head&&D&&t.length<65536&&(t.head.name+=String.fromCharCode(D))}while(D&&E>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=12;break;case 10:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>=7&B,B-=7&B,t.mode=27;break}for(;B<3;){if(0===n)break A;n--,o+=i[I++]<>>=1)){case 0:t.mode=14;break;case 1:if(pA(t),t.mode=20,e===nA){o>>>=2,B-=2;break A}break;case 2:t.mode=17;break;case 3:A.msg="invalid block type",t.mode=30}o>>>=2,B-=2;break;case 14:for(o>>>=7&B,B-=7&B;B<32;){if(0===n)break A;n--,o+=i[I++]<>>16^65535)){A.msg="invalid stored block lengths",t.mode=30;break}if(t.length=65535&o,o=0,B=0,t.mode=15,e===nA)break A;case 15:t.mode=16;case 16:if(E=t.length){if(E>n&&(E=n),E>a&&(E=a),0===E)break A;r.set(i.subarray(I,I+E),g),n-=E,I+=E,a-=E,g+=E,t.length-=E;break}t.mode=12;break;case 17:for(;B<14;){if(0===n)break A;n--,o+=i[I++]<>>=5,B-=5,t.ndist=1+(31&o),o>>>=5,B-=5,t.ncode=4+(15&o),o>>>=4,B-=4,t.nlen>286||t.ndist>30){A.msg="too many length or distance symbols",t.mode=30;break}t.have=0,t.mode=18;case 18:for(;t.have>>=3,B-=3}for(;t.have<19;)t.lens[F[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,k={bits:t.lenbits},y=rA(0,t.lens,0,19,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg="invalid code lengths set",t.mode=30;break}t.have=0,t.mode=19;case 19:for(;t.have>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=c,B-=c,t.lens[t.have++]=l;else{if(16===l){for(p=c+2;B>>=c,B-=c,0===t.have){A.msg="invalid bit length repeat",t.mode=30;break}D=t.lens[t.have-1],E=3+(3&o),o>>>=2,B-=2}else if(17===l){for(p=c+3;B>>=c)),o>>>=3,B-=3}else{for(p=c+7;B>>=c)),o>>>=7,B-=7}if(t.have+E>t.nlen+t.ndist){A.msg="invalid bit length repeat",t.mode=30;break}for(;E--;)t.lens[t.have++]=D}}if(30===t.mode)break;if(0===t.lens[256]){A.msg="invalid code -- missing end-of-block",t.mode=30;break}if(t.lenbits=9,k={bits:t.lenbits},y=rA(1,t.lens,0,t.nlen,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg="invalid literal/lengths set",t.mode=30;break}if(t.distbits=6,t.distcode=t.distdyn,k={bits:t.distbits},y=rA(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,k),t.distbits=k.bits,y){A.msg="invalid distances set",t.mode=30;break}if(t.mode=20,e===nA)break A;case 20:t.mode=21;case 21:if(n>=6&&a>=258){A.next_out=g,A.avail_out=a,A.next_in=I,A.avail_in=n,t.hold=o,t.bits=B,$(A,Q),g=A.next_out,r=A.output,a=A.avail_out,I=A.next_in,i=A.input,n=A.avail_in,o=t.hold,B=t.bits,12===t.mode&&(t.back=-1);break}for(t.back=0;h=(m=t.lencode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,t.length=l,0===h){t.mode=26;break}if(32&h){t.back=-1,t.mode=12;break}if(64&h){A.msg="invalid literal/length code",t.mode=30;break}t.extra=15&h,t.mode=22;case 22:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=23;case 23:for(;h=(m=t.distcode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,64&h){A.msg="invalid distance code",t.mode=30;break}t.offset=l,t.extra=15&h,t.mode=24;case 24:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg="invalid distance too far back",t.mode=30;break}t.mode=25;case 25:if(0===a)break A;if(E=Q-a,t.offset>E){if((E=t.offset-E)>t.whave&&t.sane){A.msg="invalid distance too far back",t.mode=30;break}E>t.wnext?(E-=t.wnext,s=t.wsize-E):s=t.wnext-E,E>t.length&&(E=t.length),f=t.window}else f=r,s=g-t.offset,E=t.length;E>a&&(E=a),a-=E,t.length-=E;do{r[g++]=f[s++]}while(--E);0===t.length&&(t.mode=21);break;case 26:if(0===a)break A;r[g++]=t.length,a--,t.mode=21;break;case 27:if(t.wrap){for(;B<32;){if(0===n)break A;n--,o|=i[I++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||A&&A.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new z,this.strm.avail_out=0;var t=GA.inflateInit2(this.strm,e.windowBits);if(t!==UA)throw new Error(K[t]);if(this.header=new FA,GA.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Z(e.dictionary):"[object ArrayBuffer]"===SA.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=GA.inflateSetDictionary(this.strm,e.dictionary))!==UA))throw new Error(K[t])}function qA(A,e){var t=new JA(e);if(t.push(A),t.err)throw t.msg||K[t.err];return t.result}JA.prototype.push=function(A,e){var t,i,r,I=this.strm,g=this.options.chunkSize,n=this.options.dictionary;if(this.ended)return!1;for(i=e===~~e?e:!0===e?RA:vA,"[object ArrayBuffer]"===SA.call(A)?I.input=new Uint8Array(A):I.input=A,I.next_in=0,I.avail_in=I.input.length;;){for(0===I.avail_out&&(I.output=new Uint8Array(g),I.next_out=0,I.avail_out=g),(t=GA.inflate(I,i))===bA&&n&&((t=GA.inflateSetDictionary(I,n))===UA?t=GA.inflate(I,i):t===NA&&(t=bA));I.avail_in>0&&t===LA&&I.state.wrap>0&&0!==A[I.next_in];)GA.inflateReset(I),t=GA.inflate(I,i);switch(t){case MA:case NA:case bA:case xA:return this.onEnd(t),this.ended=!0,!1}if(r=I.avail_out,I.next_out&&(0===I.avail_out||t===LA))if("string"===this.options.to){var a=W(I.output,I.next_out),o=I.next_out-a,B=j(I.output,a);I.next_out=o,I.avail_out=g-o,o&&I.output.set(I.output.subarray(a,a+o),0),this.onData(B)}else this.onData(I.output.length===I.next_out?I.output:I.output.subarray(0,I.next_out));if(t!==UA||0!==r){if(t===LA)return t=GA.inflateEnd(this.strm),this.onEnd(t),this.ended=!0,!0;if(0===I.avail_in)break}}return!0},JA.prototype.onData=function(A){this.chunks.push(A)},JA.prototype.onEnd=function(A){A===UA&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=T(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var YA={Inflate:JA,inflate:qA,inflateRaw:function(A,e){return(e=e||{}).raw=!0,qA(A,e)},ungzip:qA,constants:H}.inflate;function KA(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var HA=function(A){s(t,w);var e=KA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return YA(new Uint8Array(A)).buffer}}]),t}(),OA=Object.freeze({__proto__:null,default:HA});function PA(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var TA,VA=function(A){s(t,w);var e=PA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){for(var e=new DataView(A),t=[],i=0;i>3],m<<=7&G),c=0;c>3]),128&m?(a&&(a[G]=1),f=f>(g=S.encoding<2?y[k++]:p)?g:f,n[G++]=g):(a&&(a[G]=0),n[G++]=i),m<<=1;G+=F}else if(S.encoding<2)for(h=0;h(g=y[k++])?g:f,n[G++]=g;G+=F}else for(f=f>p?p:f,h=0;h0){var g=new Uint8Array(Math.ceil(i.width*i.height/8)),n=(I=new DataView(A,e,i.mask.numBytes)).getInt16(0,!0),a=2,o=0;do{if(n>0)for(;n--;)g[o++]=I.getUint8(a++);else{var B=I.getUint8(a++);for(n=-n;n--;)g[o++]=B}n=I.getInt16(a,!0),a+=2}while(a0?1:0),s=Q+(i.height%Q>0?1:0);i.pixels.blocks=new Array(E*s);for(var f=0,c=0;c3)throw"Invalid block encoding ("+w.encoding+")";if(2!==w.encoding){if(0!==d&&2!==d){if(d>>=6,w.offsetType=d,2===d)w.offset=I.getInt8(1),l++;else if(1===d)w.offset=I.getInt16(1,!0),l+=2;else{if(0!==d)throw"Invalid block offset type";w.offset=I.getFloat32(1,!0),l+=4}if(1===w.encoding)if(d=I.getUint8(l),l++,w.bitsPerPixel=63&d,d>>=6,w.numValidPixelsType=d,2===d)w.numValidPixels=I.getUint8(l),l++;else if(1===d)w.numValidPixels=I.getUint16(l,!0),l+=2;else{if(0!==d)throw"Invalid valid pixel count type";w.numValidPixels=I.getUint32(l,!0),l+=4}}var D;if(e+=l,3!==w.encoding)if(0===w.encoding){var y=(i.pixels.numBytes-1)/4;if(y!==Math.floor(y))throw"uncompressed block has invalid length";D=new ArrayBuffer(4*y),new Uint8Array(D).set(new Uint8Array(A,e,4*y));var k=new Float32Array(D);w.rawData=k,e+=4*y}else if(1===w.encoding){var p=Math.ceil(w.numValidPixels*w.bitsPerPixel/8),m=Math.ceil(p/4);D=new ArrayBuffer(4*m),new Uint8Array(D).set(new Uint8Array(A,e,p)),w.stuffedData=new Uint32Array(D),e+=p}}else e++}return i.eofOffset=e,i},I=function(A,e,t,i,r,I,g){var n,a,o,B=(1<=e)a=o>>>Q-e&B,Q-=e;else{var f=e-Q;a=(o&B)<>>(Q=32-f)}I[n]=a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=r[o];else for(Q=Math.ceil((n-I)/g),a=0;a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=o=e?(Q=g>>>C-e&n,C-=e):(Q=(g&n)<<(B=e-C)&n,Q+=(g=A[a++])>>>(C=32-B)),E[o]=Q=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=e?(Q=g>>>E&n,C-=e,E+=e):(Q=g>>>E&n,C=32-(B=e-C),Q|=((g=A[a++])&(1<=t?(I=g>>>B-t&a,B-=t):(I=(g&a)<<(n=t-B)&a,I+=(g=A[o++])>>>(B=32-n)),e[r]=I;return e},C=function(A,e,t,i){var r,I,g,n,a=(1<=t?(I=g>>>C&a,B-=t,C+=t):(I=g>>>C&a,B=32-(n=t-B),I|=((g=A[o++])&(1<=359?359:r;r-=g;do{e+=A[I++]<<8,t+=e+=A[I++]}while(--g);e=(65535&e)+(e>>>16),t=(65535&t)+(t>>>16)}return 1&i&&(t+=e+=A[I]<<8),((t=(65535&t)+(t>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(A,e){var t=e.ptr,i=new Uint8Array(A,t,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,i),0!==r.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+r.fileIdentifierString;t+=6;var I,g=new DataView(A,t,8),n=g.getInt32(0,!0);if(r.fileVersion=n,t+=4,n>=3&&(r.checksum=g.getUint32(4,!0),t+=4),g=new DataView(A,t,12),r.height=g.getUint32(0,!0),r.width=g.getUint32(4,!0),t+=8,n>=4?(r.numDims=g.getUint32(8,!0),t+=4):r.numDims=1,g=new DataView(A,t,40),r.numValidPixel=g.getUint32(0,!0),r.microBlockSize=g.getInt32(4,!0),r.blobSize=g.getInt32(8,!0),r.imageType=g.getInt32(12,!0),r.maxZError=g.getFloat64(16,!0),r.zMin=g.getFloat64(24,!0),r.zMax=g.getFloat64(32,!0),t+=40,e.headerInfo=r,e.ptr=t,n>=3&&(I=n>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,t-I,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,e){var t=e.headerInfo,i=this.getDataTypeArray(t.imageType),r=t.numDims*this.getDataTypeSize(t.imageType),I=this.readSubArray(A,e.ptr,i,r),g=this.readSubArray(A,e.ptr+r,i,r);e.ptr+=2*r;var n,a=!0;for(n=0;n0){t=new Uint8Array(Math.ceil(g/8));var B=(a=new DataView(A,r,o.numBytes)).getInt16(0,!0),C=2,Q=0,E=0;do{if(B>0)for(;B--;)t[Q++]=a.getUint8(C++);else for(E=a.getUint8(C++),B=-B;B--;)t[Q++]=E;B=a.getInt16(C,!0),C+=2}while(C>3],s<<=7&f):s=t[f>>3],128&s&&(i[f]=1);e.pixels.resultMask=i,o.bitset=t,r+=o.numBytes}return e.ptr=r,e.mask=o,!0},readDataOneSweep:function(A,e,t,i){var r,I=e.ptr,g=e.headerInfo,n=g.numDims,a=g.width*g.height,o=g.imageType,B=g.numValidPixel*Q.getDataTypeSize(o)*n,C=e.pixels.resultMask;if(t===Uint8Array)r=new Uint8Array(A,I,B);else{var E=new ArrayBuffer(B);new Uint8Array(E).set(new Uint8Array(A,I,B)),r=new t(E)}if(r.length===a*n)e.pixels.resultPixels=i?Q.swapDimensionOrder(r,a,n,t,!0):r;else{e.pixels.resultPixels=new t(a*n);var s=0,f=0,c=0,h=0;if(n>1){if(i){for(f=0;f=g)return!1;var n=new Uint32Array(g-I);Q.decodeBits(A,e,n);var a,o,B,C,s=[];for(a=I;a0&&(s[o].second=l<>>32-C,32-w>=C?32===(w+=C)&&(w=0,l=u[++d]):(w+=C-32,l=u[++d],s[o].second|=l>>>32-w));var D=0,y=0,k=new E;for(a=0;a=t?t:D;var p,m,G,F,S,v=[];for(a=I;a0)if(p=[C,o],C<=y)for(m=s[o].second<=0;F--)m>>>F&1?(S.right||(S.right=new E),S=S.right):(S.left||(S.left=new E),S=S.left),0!==F||S.val||(S.val=p[1]);return{decodeLut:v,numBitsLUTQick:y,numBitsLUT:D,tree:k,stuffedData:u,srcPtr:d,bitPos:w}},readHuffman:function(A,e,t,i){var r,I,g,n,a,o,B,C,E,s=e.headerInfo.numDims,f=e.headerInfo.height,c=e.headerInfo.width,h=c*f,l=this.readHuffmanTree(A,e),u=l.decodeLut,w=l.tree,d=l.stuffedData,D=l.srcPtr,y=l.bitPos,k=l.numBitsLUTQick,p=l.numBitsLUT,m=0===e.headerInfo.imageType?128:0,G=e.pixels.resultMask,F=0;y>0&&(D++,y=0);var S,v=d[D],R=1===e.encodeMode,U=new t(h*s),L=U;if(s<2||R){for(S=0;S1&&(L=new t(U.buffer,h*S,h),F=0),e.headerInfo.numValidPixel===c*f)for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(g+=B>0?F:o>0?L[C-c]:F,g&=255,L[C]=g,F=g):L[C]=g}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(B>0&&G[C-1]?g+=F:o>0&&G[C-c]?g+=L[C-c]:g+=F,g&=255,L[C]=g,F=g):L[C]=g}}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,L[C]=g}e.ptr=e.ptr+4*(D+1)+(y>0?4:0),e.pixels.resultPixels=U,s>1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(U,h,s,t))},decodeBits:function(A,e,t,i,r){var I=e.headerInfo,Q=I.fileVersion,E=0,s=A.byteLength-e.ptr>=5?5:A.byteLength-e.ptr,f=new DataView(A,e.ptr,s),c=f.getUint8(0);E++;var h=c>>6,l=0===h?4:3-h,u=(32&c)>0,w=31&c,d=0;if(1===l)d=f.getUint8(E),E++;else if(2===l)d=f.getUint16(E,!0),E+=2;else{if(4!==l)throw"Invalid valid pixel count type";d=f.getUint32(E,!0),E+=4}var D,y,k,p,m,G,F,S,v,R=2*I.maxZError,U=I.numDims>1?I.maxValues[r]:I.zMax;if(u){for(e.counter.lut++,S=f.getUint8(E),E++,p=Math.ceil((S-1)*w/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),k=new Uint8Array(y),e.ptr+=E,k.set(new Uint8Array(A,e.ptr,p)),F=new Uint32Array(y),e.ptr+=p,v=0;S-1>>>v;)v++;p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,G=Q>=3?o(F,w,S-1,i,R,U):n(F,w,S-1,i,R,U),Q>=3?a(D,t,v,d,G):g(D,t,v,d,G)}else e.counter.bitstuffer++,v=w,e.ptr+=E,v>0&&(p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,Q>=3?null==i?C(D,t,v,d):a(D,t,v,d,!1,i,R,U):null==i?B(D,t,v,d):g(D,t,v,d,!1,i,R,U))},readTiles:function(A,e,t,i){var r=e.headerInfo,I=r.width,g=r.height,n=I*g,a=r.microBlockSize,o=r.imageType,B=Q.getDataTypeSize(o),C=Math.ceil(I/a),E=Math.ceil(g/a);e.pixels.numBlocksY=E,e.pixels.numBlocksX=C,e.pixels.ptr=0;var s,f,c,h,l,u,w,d,D,y,k=0,p=0,m=0,G=0,F=0,S=0,v=0,R=0,U=0,L=0,b=0,M=0,N=0,x=0,J=0,q=new t(a*a),Y=g%a||a,K=I%a||a,H=r.numDims,O=e.pixels.resultMask,P=e.pixels.resultPixels,T=r.fileVersion>=5?14:15,V=r.zMax;for(m=0;m1?(y=P,L=m*I*a+G*a,P=new t(e.pixels.resultPixels.buffer,n*d*B,n),V=r.maxValues[d]):y=null,v=A.byteLength-e.ptr,f={},J=0,R=(s=new DataView(A,e.ptr,Math.min(10,v))).getUint8(0),J++,D=r.fileVersion>=5?4&R:0,U=R>>6&255,(R>>2&T)!=(G*a>>3&T))throw"integrity issue";if(D&&0===d)throw"integrity issue";if((l=3&R)>3)throw e.ptr+=J,"Invalid block encoding ("+l+")";if(2!==l)if(0===l){if(D)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=J,M=(M=F*S*B)<(N=A.byteLength-e.ptr)?M:N,c=new ArrayBuffer(M%B==0?M:M+B-M%B),new Uint8Array(c).set(new Uint8Array(A,e.ptr,M)),h=new t(c),x=0,O)for(k=0;k1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(e.pixels.resultPixels,n,H,t))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:Q.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,e){var t=A.headerInfo.zMax,i=A.headerInfo.zMin,r=A.headerInfo.maxValues,I=A.headerInfo.numDims,g=A.headerInfo.height*A.headerInfo.width,n=0,a=0,o=0,B=A.pixels.resultMask,C=A.pixels.resultPixels;if(B)if(I>1){if(e)for(n=0;n1&&i!==t)if(e)for(n=0;n=-128&&e<=127;break;case 1:t=e>=0&&e<=255;break;case 2:t=e>=-32768&&e<=32767;break;case 3:t=e>=0&&e<=65536;break;case 4:t=e>=-2147483648&&e<=2147483647;break;case 5:t=e>=0&&e<=4294967296;break;case 6:t=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:t=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:t=!1}return t},getDataTypeSize:function(A){var e=0;switch(A){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=A}return e},getDataTypeUsed:function(A,e){var t=A;switch(A){case 2:case 4:t=A-e;break;case 3:case 5:t=A-2*e;break;case 6:t=0===e?A:1===e?2:1;break;case 7:t=0===e?A:A-2*e+1;break;default:t=A}return t},getOnePixel:function(A,e,t,i){var r=0;switch(t){case 0:r=i.getInt8(e);break;case 1:r=i.getUint8(e);break;case 2:r=i.getInt16(e,!0);break;case 3:r=i.getUint16(e,!0);break;case 4:r=i.getInt32(e,!0);break;case 5:r=i.getUInt32(e,!0);break;case 6:r=i.getFloat32(e,!0);break;case 7:r=i.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return r},swapDimensionOrder:function(A,e,t,i,r){var I=0,g=0,n=0,a=0,o=A;if(t>1)if(o=new i(e*t),r)for(I=0;I5)throw"unsupported lerc version 2."+g;Q.readMask(A,r),I.numValidPixel===I.width*I.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var a=I.width*I.height;r.pixels.resultPixels=new n(a*I.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var o,B=!e.returnPixelInterleavedDims;if(0!==I.numValidPixel)if(I.zMax===I.zMin)Q.constructConstantSurface(r,B);else if(g>=4&&Q.checkMinMaxRanges(A,r))Q.constructConstantSurface(r,B);else{var C=new DataView(A,r.ptr,2),E=C.getUint8(0);if(r.ptr++,E)Q.readDataOneSweep(A,r,n,B);else if(g>1&&I.imageType<=1&&Math.abs(I.maxZError-.5)<1e-5){var s=C.getUint8(1);if(r.ptr++,r.encodeMode=s,s>2||g<4&&s>1)throw"Invalid Huffman flag "+s;s?Q.readHuffman(A,r,n,B):Q.readTiles(A,r,n,B)}else Q.readTiles(A,r,n,B)}r.eofOffset=r.ptr,e.inputOffset?(o=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(o)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(o=r.headerInfo.blobSize-r.ptr,Math.abs(o)>=1&&(r.eofOffset=r.headerInfo.blobSize));var f={width:I.width,height:I.height,pixelData:r.pixels.resultPixels,minValue:I.zMin,maxValue:I.zMax,validPixelCount:I.numValidPixel,dimCount:I.numDims,dimStats:{minValues:I.minValues,maxValues:I.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&Q.isValidPixelValue(I.imageType,t)){var c=r.pixels.resultMask;for(i=0;i1&&(o&&f.push(o),d.fileInfo.mask&&d.fileInfo.mask.numBytes>0&&w++),E++,u.pixels.push(d.pixelData),u.statistics.push({minValue:d.minValue,maxValue:d.maxValue,noDataValue:d.noDataValue,dimStats:d.dimStats})}if(i>1&&w>1){for(Q=u.width*u.height,u.bandMasks=f,(o=new Uint8Array(Q)).set(f[0]),B=1;B1&&void 0!==arguments[1]?arguments[1]:0;if(!jA)throw new Error("ZSTDDecoder: Await .init() before decoding.");var t=A.byteLength,i=jA.exports.malloc(t);WA.set(A,i),e=e||Number(jA.exports.ZSTD_findDecompressedSize(i,t));var r=jA.exports.malloc(e),I=jA.exports.ZSTD_decompress(r,e,i,t),g=WA.slice(r,r+I);return jA.exports.free(i),jA.exports.free(r),g}}]),A}(),ee="AGFzbQEAAAABpQEVYAF/AX9gAn9/AGADf39/AX9gBX9/f39/AX9gAX8AYAJ/fwF/YAR/f39/AX9gA39/fwBgBn9/f39/fwF/YAd/f39/f39/AX9gAn9/AX5gAn5+AX5gAABgBX9/f39/AGAGf39/f39/AGAIf39/f39/f38AYAl/f39/f39/f38AYAABf2AIf39/f39/f38Bf2ANf39/f39/f39/f39/fwF/YAF/AX4CJwEDZW52H2Vtc2NyaXB0ZW5fbm90aWZ5X21lbW9yeV9ncm93dGgABANpaAEFAAAFAgEFCwACAQABAgIFBQcAAwABDgsBAQcAEhMHAAUBDAQEAAANBwQCAgYCBAgDAwMDBgEACQkHBgICAAYGAgQUBwYGAwIGAAMCAQgBBwUGCgoEEQAEBAEIAwgDBQgDEA8IAAcABAUBcAECAgUEAQCAAgYJAX8BQaCgwAILB2AHBm1lbW9yeQIABm1hbGxvYwAoBGZyZWUAJgxaU1REX2lzRXJyb3IAaBlaU1REX2ZpbmREZWNvbXByZXNzZWRTaXplAFQPWlNURF9kZWNvbXByZXNzAEoGX3N0YXJ0ACQJBwEAQQELASQKussBaA8AIAAgACgCBCABajYCBAsZACAAKAIAIAAoAgRBH3F0QQAgAWtBH3F2CwgAIABBiH9LC34BBH9BAyEBIAAoAgQiA0EgTQRAIAAoAggiASAAKAIQTwRAIAAQDQ8LIAAoAgwiAiABRgRAQQFBAiADQSBJGw8LIAAgASABIAJrIANBA3YiBCABIARrIAJJIgEbIgJrIgQ2AgggACADIAJBA3RrNgIEIAAgBCgAADYCAAsgAQsUAQF/IAAgARACIQIgACABEAEgAgv3AQECfyACRQRAIABCADcCACAAQQA2AhAgAEIANwIIQbh/DwsgACABNgIMIAAgAUEEajYCECACQQRPBEAgACABIAJqIgFBfGoiAzYCCCAAIAMoAAA2AgAgAUF/ai0AACIBBEAgAEEIIAEQFGs2AgQgAg8LIABBADYCBEF/DwsgACABNgIIIAAgAS0AACIDNgIAIAJBfmoiBEEBTQRAIARBAWtFBEAgACABLQACQRB0IANyIgM2AgALIAAgAS0AAUEIdCADajYCAAsgASACakF/ai0AACIBRQRAIABBADYCBEFsDwsgAEEoIAEQFCACQQN0ams2AgQgAgsWACAAIAEpAAA3AAAgACABKQAINwAICy8BAX8gAUECdEGgHWooAgAgACgCAEEgIAEgACgCBGprQR9xdnEhAiAAIAEQASACCyEAIAFCz9bTvtLHq9lCfiAAfEIfiUKHla+vmLbem55/fgsdAQF/IAAoAgggACgCDEYEfyAAKAIEQSBGBUEACwuCBAEDfyACQYDAAE8EQCAAIAEgAhBnIAAPCyAAIAJqIQMCQCAAIAFzQQNxRQRAAkAgAkEBSARAIAAhAgwBCyAAQQNxRQRAIAAhAgwBCyAAIQIDQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADTw0BIAJBA3ENAAsLAkAgA0F8cSIEQcAASQ0AIAIgBEFAaiIFSw0AA0AgAiABKAIANgIAIAIgASgCBDYCBCACIAEoAgg2AgggAiABKAIMNgIMIAIgASgCEDYCECACIAEoAhQ2AhQgAiABKAIYNgIYIAIgASgCHDYCHCACIAEoAiA2AiAgAiABKAIkNgIkIAIgASgCKDYCKCACIAEoAiw2AiwgAiABKAIwNgIwIAIgASgCNDYCNCACIAEoAjg2AjggAiABKAI8NgI8IAFBQGshASACQUBrIgIgBU0NAAsLIAIgBE8NAQNAIAIgASgCADYCACABQQRqIQEgAkEEaiICIARJDQALDAELIANBBEkEQCAAIQIMAQsgA0F8aiIEIABJBEAgACECDAELIAAhAgNAIAIgAS0AADoAACACIAEtAAE6AAEgAiABLQACOgACIAIgAS0AAzoAAyABQQRqIQEgAkEEaiICIARNDQALCyACIANJBEADQCACIAEtAAA6AAAgAUEBaiEBIAJBAWoiAiADRw0ACwsgAAsMACAAIAEpAAA3AAALQQECfyAAKAIIIgEgACgCEEkEQEEDDwsgACAAKAIEIgJBB3E2AgQgACABIAJBA3ZrIgE2AgggACABKAAANgIAQQALDAAgACABKAIANgAAC/cCAQJ/AkAgACABRg0AAkAgASACaiAASwRAIAAgAmoiBCABSw0BCyAAIAEgAhALDwsgACABc0EDcSEDAkACQCAAIAFJBEAgAwRAIAAhAwwDCyAAQQNxRQRAIAAhAwwCCyAAIQMDQCACRQ0EIAMgAS0AADoAACABQQFqIQEgAkF/aiECIANBAWoiA0EDcQ0ACwwBCwJAIAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdBKGogACgCBBATQQAhBCAHQeAAaiEMIAdB5ABqIQoDQCAHQShqEARBAksgBCAXTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEJIAcoAkggBygCREEDdGopAgAiH0IgiKchCCAeQiCIISAgHUIgiKchAgJAIB9CEIinQf8BcSIDQQJPBEACQCAGRSADQRlJckUEQCAIIAdBKGogA0EgIAcoAixrIg0gDSADSxsiDRAFIAMgDWsiA3RqIQggB0EoahAEGiADRQ0BIAdBKGogAxAFIAhqIQgMAQsgB0EoaiADEAUgCGohCCAHQShqEAQaCyAHKQJUISEgByAINgJUIAcgITcDWAwBCwJAIANFBEAgAgRAIAcoAlQhCAwDCyAHKAJYIQgMAQsCQAJAIAdBKGpBARAFIAggAkVqaiIDQQNGBEAgBygCVEF/aiIDIANFaiEIDAELIANBAnQgB2ooAlQiCCAIRWohCCADQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAg2AlQLICCnIQMgCQRAIAdBKGogCRAFIANqIQMLIAkgC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgAmohAgsgB0EoahAEGiAHIAcoAmggAmoiCSADajYCaCAKIAwgCCAJSxsoAgAhDSAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogB0EoaiAfQhiIp0H/AXEQCCEOIAdB8ABqIARBBHRqIgsgCSANaiAIazYCDCALIAg2AgggCyADNgIEIAsgAjYCACAHIA4gH6dB//8DcWo2AkQgBEEBaiEEDAELCyAEIBdIDQEgEkFgaiEYIAdB4ABqIRogB0HkAGohGyABIQMDQCAHQShqEARBAksgBCAFTnJFBEAgBygCQCAHKAI8QQN0aikCACIdQhCIp0H/AXEhCyAHKAJQIAcoAkxBA3RqKQIAIh5CEIinQf8BcSEIIAcoAkggBygCREEDdGopAgAiH0IgiKchCSAeQiCIISAgHUIgiKchDAJAIB9CEIinQf8BcSICQQJPBEACQCAGRSACQRlJckUEQCAJIAdBKGogAkEgIAcoAixrIgogCiACSxsiChAFIAIgCmsiAnRqIQkgB0EoahAEGiACRQ0BIAdBKGogAhAFIAlqIQkMAQsgB0EoaiACEAUgCWohCSAHQShqEAQaCyAHKQJUISEgByAJNgJUIAcgITcDWAwBCwJAIAJFBEAgDARAIAcoAlQhCQwDCyAHKAJYIQkMAQsCQAJAIAdBKGpBARAFIAkgDEVqaiICQQNGBEAgBygCVEF/aiICIAJFaiEJDAELIAJBAnQgB2ooAlQiCSAJRWohCSACQQFGDQELIAcgBygCWDYCXAsLIAcgBygCVDYCWCAHIAk2AlQLICCnIRQgCARAIAdBKGogCBAFIBRqIRQLIAggC2pBFE8EQCAHQShqEAQaCyALBEAgB0EoaiALEAUgDGohDAsgB0EoahAEGiAHIAcoAmggDGoiGSAUajYCaCAbIBogCSAZSxsoAgAhHCAHIAdBKGogHUIYiKdB/wFxEAggHadB//8DcWo2AjwgByAHQShqIB5CGIinQf8BcRAIIB6nQf//A3FqNgJMIAdBKGoQBBogByAHQShqIB9CGIinQf8BcRAIIB+nQf//A3FqNgJEIAcgB0HwAGogBEEDcUEEdGoiDSkDCCIdNwPIASAHIA0pAwAiHjcDwAECQAJAAkAgBygCvAEiDiAepyICaiIWIBNLDQAgAyAHKALEASIKIAJqIgtqIBhLDQAgEiADayALQSBqTw0BCyAHIAcpA8gBNwMQIAcgBykDwAE3AwggAyASIAdBCGogB0G8AWogEyAPIBUgERAeIQsMAQsgAiADaiEIIAMgDhAHIAJBEU8EQCADQRBqIQIDQCACIA5BEGoiDhAHIAJBEGoiAiAISQ0ACwsgCCAdpyIOayECIAcgFjYCvAEgDiAIIA9rSwRAIA4gCCAVa0sEQEFsIQsMAgsgESACIA9rIgJqIhYgCmogEU0EQCAIIBYgChAPGgwCCyAIIBZBACACaxAPIQggByACIApqIgo2AsQBIAggAmshCCAPIQILIA5BEE8EQCAIIApqIQoDQCAIIAIQByACQRBqIQIgCEEQaiIIIApJDQALDAELAkAgDkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgDkECdCIKQcAeaigCAGoiAhAXIAIgCkHgHmooAgBrIQIgBygCxAEhCgwBCyAIIAIQDAsgCkEJSQ0AIAggCmohCiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAKSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAKSQ0ACwsgCxADBEAgCyEQDAQFIA0gDDYCACANIBkgHGogCWs2AgwgDSAJNgIIIA0gFDYCBCAEQQFqIQQgAyALaiEDDAILAAsLIAQgBUgNASAEIBdrIQtBACEEA0AgCyAFSARAIAcgB0HwAGogC0EDcUEEdGoiAikDCCIdNwPIASAHIAIpAwAiHjcDwAECQAJAAkAgBygCvAEiDCAepyICaiIKIBNLDQAgAyAHKALEASIJIAJqIhBqIBhLDQAgEiADayAQQSBqTw0BCyAHIAcpA8gBNwMgIAcgBykDwAE3AxggAyASIAdBGGogB0G8AWogEyAPIBUgERAeIRAMAQsgAiADaiEIIAMgDBAHIAJBEU8EQCADQRBqIQIDQCACIAxBEGoiDBAHIAJBEGoiAiAISQ0ACwsgCCAdpyIGayECIAcgCjYCvAEgBiAIIA9rSwRAIAYgCCAVa0sEQEFsIRAMAgsgESACIA9rIgJqIgwgCWogEU0EQCAIIAwgCRAPGgwCCyAIIAxBACACaxAPIQggByACIAlqIgk2AsQBIAggAmshCCAPIQILIAZBEE8EQCAIIAlqIQYDQCAIIAIQByACQRBqIQIgCEEQaiIIIAZJDQALDAELAkAgBkEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgBkECdCIGQcAeaigCAGoiAhAXIAIgBkHgHmooAgBrIQIgBygCxAEhCQwBCyAIIAIQDAsgCUEJSQ0AIAggCWohBiAIQQhqIgggAkEIaiICa0EPTARAA0AgCCACEAwgAkEIaiECIAhBCGoiCCAGSQ0ADAIACwALA0AgCCACEAcgAkEQaiECIAhBEGoiCCAGSQ0ACwsgEBADDQMgC0EBaiELIAMgEGohAwwBCwsDQCAEQQNHBEAgACAEQQJ0IgJqQazQAWogAiAHaigCVDYCACAEQQFqIQQMAQsLIAcoArwBIQgLQbp/IRAgEyAIayIAIBIgA2tLDQAgAwR/IAMgCCAAEAsgAGoFQQALIAFrIRALIAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY0AAQMyIFEAMiBg0AIANBHzYCfCADIANB/ABqIANB+ABqIAQgBCAFaiAGGyIEIAEgAmoiAiAEaxAVIgUQAw0AIAMoAnwiBkEfSw0AIAMoAngiB0EJTw0AIABBiCBqIAMgBkGAC0GADCAHEBggA0E0NgJ8IAMgA0H8AGogA0H4AGogBCAFaiIEIAIgBGsQFSIFEAMNACADKAJ8IgZBNEsNACADKAJ4IgdBCk8NACAAQZAwaiADIAZBgA1B4A4gBxAYIANBIzYCfCADIANB/ABqIANB+ABqIAQgBWoiBCACIARrEBUiBRADDQAgAygCfCIGQSNLDQAgAygCeCIHQQpPDQAgACADIAZBwBBB0BEgBxAYIAQgBWoiBEEMaiIFIAJLDQAgAiAFayEFQQAhAgNAIAJBA0cEQCAEKAAAIgZBf2ogBU8NAiAAIAJBAnRqQZzQAWogBjYCACACQQFqIQIgBEEEaiEEDAELCyAEIAFrIQgLIANBgAFqJAAgCAtGAQN/IABBCGohAyAAKAIEIQJBACEAA0AgACACdkUEQCABIAMgAEEDdGotAAJBFktqIQEgAEEBaiEADAELCyABQQggAmt0C4YDAQV/Qbh/IQcCQCADRQ0AIAItAAAiBEUEQCABQQA2AgBBAUG4fyADQQFGGw8LAn8gAkEBaiIFIARBGHRBGHUiBkF/Sg0AGiAGQX9GBEAgA0EDSA0CIAUvAABBgP4BaiEEIAJBA2oMAQsgA0ECSA0BIAItAAEgBEEIdHJBgIB+aiEEIAJBAmoLIQUgASAENgIAIAVBAWoiASACIANqIgNLDQBBbCEHIABBEGogACAFLQAAIgVBBnZBI0EJIAEgAyABa0HAEEHQEUHwEiAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBmCBqIABBCGogBUEEdkEDcUEfQQggASABIAZqIAgbIgEgAyABa0GAC0GADEGAFyAAKAKM4QEgACgCnOIBIAQQHyIGEAMiCA0AIABBoDBqIABBBGogBUECdkEDcUE0QQkgASABIAZqIAgbIgEgAyABa0GADUHgDkGQGSAAKAKM4QEgACgCnOIBIAQQHyIAEAMNACAAIAFqIAJrIQcLIAcLrQMBCn8jAEGABGsiCCQAAn9BUiACQf8BSw0AGkFUIANBDEsNABogAkEBaiELIABBBGohCUGAgAQgA0F/anRBEHUhCkEAIQJBASEEQQEgA3QiB0F/aiIMIQUDQCACIAtGRQRAAkAgASACQQF0Ig1qLwEAIgZB//8DRgRAIAkgBUECdGogAjoAAiAFQX9qIQVBASEGDAELIARBACAKIAZBEHRBEHVKGyEECyAIIA1qIAY7AQAgAkEBaiECDAELCyAAIAQ7AQIgACADOwEAIAdBA3YgB0EBdmpBA2ohBkEAIQRBACECA0AgBCALRkUEQCABIARBAXRqLgEAIQpBACEAA0AgACAKTkUEQCAJIAJBAnRqIAQ6AAIDQCACIAZqIAxxIgIgBUsNAAsgAEEBaiEADAELCyAEQQFqIQQMAQsLQX8gAg0AGkEAIQIDfyACIAdGBH9BAAUgCCAJIAJBAnRqIgAtAAJBAXRqIgEgAS8BACIBQQFqOwEAIAAgAyABEBRrIgU6AAMgACABIAVB/wFxdCAHazsBACACQQFqIQIMAQsLCyEFIAhBgARqJAAgBQvjBgEIf0FsIQcCQCACQQNJDQACQAJAAkACQCABLQAAIgNBA3EiCUEBaw4DAwEAAgsgACgCiOEBDQBBYg8LIAJBBUkNAkEDIQYgASgAACEFAn8CQAJAIANBAnZBA3EiCEF+aiIEQQFNBEAgBEEBaw0BDAILIAVBDnZB/wdxIQQgBUEEdkH/B3EhAyAIRQwCCyAFQRJ2IQRBBCEGIAVBBHZB//8AcSEDQQAMAQsgBUEEdkH//w9xIgNBgIAISw0DIAEtAARBCnQgBUEWdnIhBEEFIQZBAAshBSAEIAZqIgogAksNAgJAIANBgQZJDQAgACgCnOIBRQ0AQQAhAgNAIAJBg4ABSw0BIAJBQGshAgwAAAsACwJ/IAlBA0YEQCABIAZqIQEgAEHw4gFqIQIgACgCDCEGIAUEQCACIAMgASAEIAYQXwwCCyACIAMgASAEIAYQXQwBCyAAQbjQAWohAiABIAZqIQEgAEHw4gFqIQYgAEGo0ABqIQggBQRAIAggBiADIAEgBCACEF4MAQsgCCAGIAMgASAEIAIQXAsQAw0CIAAgAzYCgOIBIABBATYCiOEBIAAgAEHw4gFqNgLw4QEgCUECRgRAIAAgAEGo0ABqNgIMCyAAIANqIgBBiOMBakIANwAAIABBgOMBakIANwAAIABB+OIBakIANwAAIABB8OIBakIANwAAIAoPCwJ/AkACQAJAIANBAnZBA3FBf2oiBEECSw0AIARBAWsOAgACAQtBASEEIANBA3YMAgtBAiEEIAEvAABBBHYMAQtBAyEEIAEQIUEEdgsiAyAEaiIFQSBqIAJLBEAgBSACSw0CIABB8OIBaiABIARqIAMQCyEBIAAgAzYCgOIBIAAgATYC8OEBIAEgA2oiAEIANwAYIABCADcAECAAQgA3AAggAEIANwAAIAUPCyAAIAM2AoDiASAAIAEgBGo2AvDhASAFDwsCfwJAAkACQCADQQJ2QQNxQX9qIgRBAksNACAEQQFrDgIAAgELQQEhByADQQN2DAILQQIhByABLwAAQQR2DAELIAJBBEkgARAhIgJBj4CAAUtyDQFBAyEHIAJBBHYLIQIgAEHw4gFqIAEgB2otAAAgAkEgahAQIQEgACACNgKA4gEgACABNgLw4QEgB0EBaiEHCyAHC0sAIABC+erQ0OfJoeThADcDICAAQgA3AxggAELP1tO+0ser2UI3AxAgAELW64Lu6v2J9eAANwMIIABCADcDACAAQShqQQBBKBAQGgviAgICfwV+IABBKGoiASAAKAJIaiECAn4gACkDACIDQiBaBEAgACkDECIEQgeJIAApAwgiBUIBiXwgACkDGCIGQgyJfCAAKQMgIgdCEol8IAUQGSAEEBkgBhAZIAcQGQwBCyAAKQMYQsXP2bLx5brqJ3wLIAN8IQMDQCABQQhqIgAgAk0EQEIAIAEpAAAQCSADhUIbiUKHla+vmLbem55/fkLj3MqV/M7y9YV/fCEDIAAhAQwBCwsCQCABQQRqIgAgAksEQCABIQAMAQsgASgAAK1Ch5Wvr5i23puef34gA4VCF4lCz9bTvtLHq9lCfkL5893xmfaZqxZ8IQMLA0AgACACSQRAIAAxAABCxc/ZsvHluuonfiADhUILiUKHla+vmLbem55/fiEDIABBAWohAAwBCwsgA0IhiCADhULP1tO+0ser2UJ+IgNCHYggA4VC+fPd8Zn2masWfiIDQiCIIAOFC+8CAgJ/BH4gACAAKQMAIAKtfDcDAAJAAkAgACgCSCIDIAJqIgRBH00EQCABRQ0BIAAgA2pBKGogASACECAgACgCSCACaiEEDAELIAEgAmohAgJ/IAMEQCAAQShqIgQgA2ogAUEgIANrECAgACAAKQMIIAQpAAAQCTcDCCAAIAApAxAgACkAMBAJNwMQIAAgACkDGCAAKQA4EAk3AxggACAAKQMgIABBQGspAAAQCTcDICAAKAJIIQMgAEEANgJIIAEgA2tBIGohAQsgAUEgaiACTQsEQCACQWBqIQMgACkDICEFIAApAxghBiAAKQMQIQcgACkDCCEIA0AgCCABKQAAEAkhCCAHIAEpAAgQCSEHIAYgASkAEBAJIQYgBSABKQAYEAkhBSABQSBqIgEgA00NAAsgACAFNwMgIAAgBjcDGCAAIAc3AxAgACAINwMICyABIAJPDQEgAEEoaiABIAIgAWsiBBAgCyAAIAQ2AkgLCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQEBogAwVBun8LCy8BAX8gAEUEQEG2f0EAIAMbDwtBun8hBCADIAFNBH8gACACIAMQCxogAwVBun8LC6gCAQZ/IwBBEGsiByQAIABB2OABaikDAEKAgIAQViEIQbh/IQUCQCAEQf//B0sNACAAIAMgBBBCIgUQAyIGDQAgACgCnOIBIQkgACAHQQxqIAMgAyAFaiAGGyIKIARBACAFIAYbayIGEEAiAxADBEAgAyEFDAELIAcoAgwhBCABRQRAQbp/IQUgBEEASg0BCyAGIANrIQUgAyAKaiEDAkAgCQRAIABBADYCnOIBDAELAkACQAJAIARBBUgNACAAQdjgAWopAwBCgICACFgNAAwBCyAAQQA2ApziAQwBCyAAKAIIED8hBiAAQQA2ApziASAGQRRPDQELIAAgASACIAMgBSAEIAgQOSEFDAELIAAgASACIAMgBSAEIAgQOiEFCyAHQRBqJAAgBQtnACAAQdDgAWogASACIAAoAuzhARAuIgEQAwRAIAEPC0G4fyECAkAgAQ0AIABB7OABaigCACIBBEBBYCECIAAoApjiASABRw0BC0EAIQIgAEHw4AFqKAIARQ0AIABBkOEBahBDCyACCycBAX8QVyIERQRAQUAPCyAEIAAgASACIAMgBBBLEE8hACAEEFYgAAs/AQF/AkACQAJAIAAoAqDiAUEBaiIBQQJLDQAgAUEBaw4CAAECCyAAEDBBAA8LIABBADYCoOIBCyAAKAKU4gELvAMCB38BfiMAQRBrIgkkAEG4fyEGAkAgBCgCACIIQQVBCSAAKALs4QEiBRtJDQAgAygCACIHQQFBBSAFGyAFEC8iBRADBEAgBSEGDAELIAggBUEDakkNACAAIAcgBRBJIgYQAw0AIAEgAmohCiAAQZDhAWohCyAIIAVrIQIgBSAHaiEHIAEhBQNAIAcgAiAJECwiBhADDQEgAkF9aiICIAZJBEBBuH8hBgwCCyAJKAIAIghBAksEQEFsIQYMAgsgB0EDaiEHAn8CQAJAAkAgCEEBaw4CAgABCyAAIAUgCiAFayAHIAYQSAwCCyAFIAogBWsgByAGEEcMAQsgBSAKIAVrIActAAAgCSgCCBBGCyIIEAMEQCAIIQYMAgsgACgC8OABBEAgCyAFIAgQRQsgAiAGayECIAYgB2ohByAFIAhqIQUgCSgCBEUNAAsgACkD0OABIgxCf1IEQEFsIQYgDCAFIAFrrFINAQsgACgC8OABBEBBaiEGIAJBBEkNASALEEQhDCAHKAAAIAynRw0BIAdBBGohByACQXxqIQILIAMgBzYCACAEIAI2AgAgBSABayEGCyAJQRBqJAAgBgsuACAAECsCf0EAQQAQAw0AGiABRSACRXJFBEBBYiAAIAEgAhA9EAMNARoLQQALCzcAIAEEQCAAIAAoAsTgASABKAIEIAEoAghqRzYCnOIBCyAAECtBABADIAFFckUEQCAAIAEQWwsL0QIBB38jAEEQayIGJAAgBiAENgIIIAYgAzYCDCAFBEAgBSgCBCEKIAUoAgghCQsgASEIAkACQANAIAAoAuzhARAWIQsCQANAIAQgC0kNASADKAAAQXBxQdDUtMIBRgRAIAMgBBAiIgcQAw0EIAQgB2shBCADIAdqIQMMAQsLIAYgAzYCDCAGIAQ2AggCQCAFBEAgACAFEE5BACEHQQAQA0UNAQwFCyAAIAogCRBNIgcQAw0ECyAAIAgQUCAMQQFHQQAgACAIIAIgBkEMaiAGQQhqEEwiByIDa0EAIAMQAxtBCkdyRQRAQbh/IQcMBAsgBxADDQMgAiAHayECIAcgCGohCEEBIQwgBigCDCEDIAYoAgghBAwBCwsgBiADNgIMIAYgBDYCCEG4fyEHIAQNASAIIAFrIQcMAQsgBiADNgIMIAYgBDYCCAsgBkEQaiQAIAcLRgECfyABIAAoArjgASICRwRAIAAgAjYCxOABIAAgATYCuOABIAAoArzgASEDIAAgATYCvOABIAAgASADIAJrajYCwOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",te={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},ie={};for(var re in te)te.hasOwnProperty(re)&&(ie[te[re]]=parseInt(re,10));ie.BitsPerSample,ie.ExtraSamples,ie.SampleFormat,ie.StripByteCounts,ie.StripOffsets,ie.StripRowCounts,ie.TileByteCounts,ie.TileOffsets,ie.SubIFDs;var Ie={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},ge={};for(var ne in Ie)Ie.hasOwnProperty(ne)&&(ge[Ie[ne]]=parseInt(ne,10));var ae=1,oe=0,Be=1,Ce=2,Qe={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},Ee={};for(var se in Qe)Qe.hasOwnProperty(se)&&(Ee[Qe[se]]=parseInt(se,10));function fe(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var ce=new Ae,he=function(A){s(t,w);var e=fe(t);function t(A){var i;return B(this,t),(i=e.call(this)).planarConfiguration=void 0!==A.PlanarConfiguration?A.PlanarConfiguration:1,i.samplesPerPixel=void 0!==A.SamplesPerPixel?A.SamplesPerPixel:1,i.addCompression=A.LercParameters[ae],i}return Q(t,[{key:"decodeBlock",value:function(A){switch(this.addCompression){case oe:break;case Be:A=YA(new Uint8Array(A)).buffer;break;case Ce:A=ce.decode(new Uint8Array(A)).buffer;break;default:throw new Error("Unsupported LERC additional compression method identifier: ".concat(this.addCompression))}return zA.decode(A,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}}]),t}(),le=Object.freeze({__proto__:null,zstd:ce,default:he});function ue(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var we=function(A){s(I,w);var t,i=ue(I);function I(){var A;if(B(this,I),A=i.call(this),"undefined"==typeof createImageBitmap)throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if("undefined"==typeof document&&"undefined"==typeof OffscreenCanvas)throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available");return A}return Q(I,[{key:"decode",value:(t=e(r.mark((function A(e,t){var i,I,g,n;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return i=new Blob([t]),A.next=3,createImageBitmap(i);case 3:return I=A.sent,"undefined"!=typeof document?((g=document.createElement("canvas")).width=I.width,g.height=I.height):g=new OffscreenCanvas(I.width,I.height),(n=g.getContext("2d")).drawImage(I,0,0),A.abrupt("return",n.getImageData(0,0,I.width,I.height).data.buffer);case 8:case"end":return A.stop()}}),A)}))),function(A,e){return t.apply(this,arguments)})}]),I}(),de=Object.freeze({__proto__:null,default:we});';return new lB(typeof Buffer<"u"?"data:application/javascript;base64,"+Buffer.from(i,"binary").toString("base64"):URL.createObjectURL(new Blob([i],{type:"application/javascript"})))}var uB=Ft(()=>{cB()});var CB=Mi(()=>{});var _B=Mi(()=>{});var yB=Mi(()=>{});var nt={ADD:"add",REMOVE:"remove"};var Vt={PROPERTYCHANGE:"propertychange"};var U={CHANGE:"change",ERROR:"error",BLUR:"blur",CLEAR:"clear",CONTEXTMENU:"contextmenu",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",FOCUS:"focus",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",RESIZE:"resize",TOUCHMOVE:"touchmove",WHEEL:"wheel"};var Dh=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}},ki=Dh;function wp(i,e,t){let n,r;t=t||Lt;let o=0,s=i.length,a=!1;for(;o>1),r=+t(i[n],e),r<0?o=n+1:(s=n,a=!r);return a?o:~o}function Lt(i,e){return i>e?1:ie?-1:0}function po(i,e,t){if(i[0]<=e)return 0;let n=i.length;if(e<=i[n-1])return n-1;if(typeof t=="function"){for(let r=1;r0?r-1:r}return n-1}if(t>0){for(let r=1;r0||t&&s===0)})}function En(){return!0}function In(){return!1}function Cn(){}function vA(i){let e,t,n;return function(){let r=Array.prototype.slice.call(arguments);return(!t||this!==n||!rt(r,t))&&(n=this,t=r,e=i.apply(this,arguments)),e}}function TA(i){function e(){let t;try{t=i()}catch(n){return Promise.reject(n)}return t instanceof Promise?t:Promise.resolve(t)}return e()}function ai(i){for(let e in i)delete i[e]}function Xt(i){let e;for(e in i)return!1;return!e}var bh=class{constructor(e){this.propagationStopped,this.defaultPrevented,this.type=e,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}};function Rp(i){i.stopPropagation()}var ot=bh;var Fh=class extends ki{constructor(e){super(),this.eventTarget_=e,this.pendingRemovals_=null,this.dispatching_=null,this.listeners_=null}addEventListener(e,t){if(!e||!t)return;let n=this.listeners_||(this.listeners_={}),r=n[e]||(n[e]=[]);r.includes(t)||r.push(t)}dispatchEvent(e){let t=typeof e=="string",n=t?e:e.type,r=this.listeners_&&this.listeners_[n];if(!r)return;let o=t?new ot(e):e;o.target||(o.target=this.eventTarget_||this);let s=this.dispatching_||(this.dispatching_={}),a=this.pendingRemovals_||(this.pendingRemovals_={});n in s||(s[n]=0,a[n]=0),++s[n];let A;for(let l=0,c=r.length;l0:!1}removeEventListener(e,t){if(!this.listeners_)return;let n=this.listeners_[e];if(!n)return;let r=n.indexOf(t);r!==-1&&(this.pendingRemovals_&&e in this.pendingRemovals_?(n[r]=Cn,++this.pendingRemovals_[e]):(n.splice(r,1),n.length===0&&delete this.listeners_[e]))}},Pi=Fh;function X(i,e,t,n,r){if(r){let s=t;t=function(a){return i.removeEventListener(e,t),s.call(n??this,a)}}else n&&n!==i&&(t=t.bind(n));let o={target:i,type:e,listener:t};return i.addEventListener(e,t),o}function Xn(i,e,t,n){return X(i,e,t,n,!0)}function se(i){i&&i.target&&(i.target.removeEventListener(i.type,i.listener),ai(i))}var Eo=class extends Pi{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(U.CHANGE)}getRevision(){return this.revision_}onInternal(e,t){if(Array.isArray(e)){let n=e.length,r=new Array(n);for(let o=0;o0;)this.pop()}extend(e){for(let t=0,n=e.length;tthis.getLength())throw new Error("Index out of bounds: "+e);this.unique_&&this.assertUnique_(t),this.array_.splice(e,0,t),this.updateLength_(),this.dispatchEvent(new Io(nt.ADD,t,e))}pop(){return this.removeAt(this.getLength()-1)}push(e){this.unique_&&this.assertUnique_(e);let t=this.getLength();return this.insertAt(t,e),this.getLength()}remove(e){let t=this.array_;for(let n=0,r=t.length;n=this.getLength())return;let t=this.array_[e];return this.array_.splice(e,1),this.updateLength_(),this.dispatchEvent(new Io(nt.REMOVE,t,e)),t}setAt(e,t){let n=this.getLength();if(e>=n){this.insertAt(e,t);return}if(e<0)throw new Error("Index out of bounds: "+e);this.unique_&&this.assertUnique_(t,e);let r=this.array_[e];this.array_[e]=t,this.dispatchEvent(new Io(nt.REMOVE,r,e)),this.dispatchEvent(new Io(nt.ADD,t,e))}updateLength_(){this.set(vp.LENGTH,this.array_.length)}assertUnique_(e,t){for(let n=0,r=this.array_.length;nr&&(A=A|je.RIGHT),ao&&(A=A|je.ABOVE),A===je.UNKNOWN&&(A=je.INTERSECTING),A}function be(){return[1/0,1/0,-1/0,-1/0]}function Jt(i,e,t,n,r){return r?(r[0]=i,r[1]=e,r[2]=t,r[3]=n,r):[i,e,t,n]}function _n(i){return Jt(1/0,1/0,-1/0,-1/0,i)}function MA(i,e){let t=i[0],n=i[1];return Jt(t,n,t,n,e)}function _o(i,e,t,n,r){let o=_n(r);return Ph(o,i,e,t,n)}function jt(i,e){return i[0]==e[0]&&i[2]==e[2]&&i[1]==e[1]&&i[3]==e[3]}function yo(i,e){return e[0]i[2]&&(i[2]=e[2]),e[1]i[3]&&(i[3]=e[3]),i}function vr(i,e){e[0]i[2]&&(i[2]=e[0]),e[1]i[3]&&(i[3]=e[1])}function Ph(i,e,t,n,r){for(;te[0]?n[0]=i[0]:n[0]=e[0],i[1]>e[1]?n[1]=i[1]:n[1]=e[1],i[2]=e[0]&&i[1]<=e[3]&&i[3]>=e[1]}function Ni(i){return i[2]=s&&m<=A),!n&&o&je.RIGHT&&!(r&je.RIGHT)&&(d=f-(u-A)*g,n=d>=a&&d<=l),!n&&o&je.BELOW&&!(r&je.BELOW)&&(m=u-(f-a)/g,n=m>=s&&m<=A),!n&&o&je.LEFT&&!(r&je.LEFT)&&(d=f-(u-s)*g,n=d>=a&&d<=l)}return n}function PA(i,e,t,n){if(Ni(i))return _n(t);let r=[];if(n>1){let a=i[2]-i[0],A=i[3]-i[1];for(let l=0;l=t[2])){let r=oe(t),s=Math.floor((n[0]-t[0])/r)*r;i[0]-=s,i[2]-=s}return i}function wo(i,e,t){if(e.canWrapX()){let n=e.getExtent();if(!isFinite(i[0])||!isFinite(i[2]))return[[n[0],i[1],n[2],i[3]]];Nh(i,e);let r=oe(n);if(oe(i)>r&&!t)return[[n[0],i[1],n[2],i[3]]];if(i[0]n[2])return[[i[0],i[1],n[2],i[3]],[n[0],i[1],i[2]-r,i[3]]]}return[i]}function ue(i,e,t){return Math.min(Math.max(i,e),t)}function Lp(i,e,t,n,r,o){let s=r-t,a=o-n;if(s!==0||a!==0){let A=((i-t)*s+(e-n)*a)/(s*s+a*a);A>1?(t=r,n=o):A>0&&(t+=s*A,n+=a*A)}return Ci(i,e,t,n)}function Ci(i,e,t,n){let r=t-i,o=n-e;return r*r+o*o}function Mp(i){let e=i.length;for(let n=0;no&&(o=A,r=a)}if(o===0)return null;let s=i[r];i[r]=i[n],i[n]=s;for(let a=n+1;a=0;n--){t[n]=i[n][e]/i[n][n];for(let r=n-1;r>=0;r--)i[r][e]-=i[r][n]*t[n]}return t}function NA(i){return i*180/Math.PI}function Wt(i){return i*Math.PI/180}function _i(i,e){let t=i%e;return t*e<0?t+e:t}function ut(i,e,t){return i+t*(e-i)}function Qo(i,e){let t=Math.pow(10,e);return Math.round(i*t)/t}function zs(i,e){return Math.floor(Qo(i,e))}function Ks(i,e){return Math.ceil(Qo(i,e))}function GA(i,e,t){if(i>=e&&iOh.warn||console.warn(...i)}function Uh(...i){kp>Oh.error||console.error(...i)}function Pp(i,e){return i[0]+=+e[0],i[1]+=+e[1],i}function Tr(i,e){let t=!0;for(let n=i.length-1;n>=0;--n)if(i[n]!=e[n]){t=!1;break}return t}function So(i,e){let t=Math.cos(e),n=Math.sin(e),r=i[0]*t-i[1]*n,o=i[1]*t+i[0]*n;return i[0]=r,i[1]=o,i}function Np(i,e){return i[0]*=e,i[1]*=e,i}function Ro(i,e){if(e.canWrapX()){let t=oe(e.getExtent()),n=Gp(i,e,t);n&&(i[0]-=n*t)}return i}function Gp(i,e,t){let n=e.getExtent(),r=0;return e.canWrapX()&&(i[0]n[2])&&(t=t||oe(n),r=Math.floor((i[0]-n[0])/t)),r}var iw={9001:"m",9002:"ft",9003:"us-ft",9101:"radians",9102:"degrees"};function Yh(i){return iw[i]}var yi={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};var Hh=class{constructor(e){this.code_=e.code,this.units_=e.units,this.extent_=e.extent!==void 0?e.extent:null,this.worldExtent_=e.worldExtent!==void 0?e.worldExtent:null,this.axisOrientation_=e.axisOrientation!==void 0?e.axisOrientation:"enu",this.global_=e.global!==void 0?e.global:!1,this.canWrapX_=!!(this.global_&&this.extent_),this.getPointResolutionFunc_=e.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=e.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||yi[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(e){this.global_=e,this.canWrapX_=!!(e&&this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(e){this.defaultTileGrid_=e}setExtent(e){this.extent_=e,this.canWrapX_=!!(this.global_&&e)}setWorldExtent(e){this.worldExtent_=e}setGetPointResolution(e){this.getPointResolutionFunc_=e}getPointResolutionFunc(){return this.getPointResolutionFunc_}},Gi=Hh;var qs=6378137,vo=Math.PI*qs,nw=[-vo,-vo,vo,vo],rw=[-180,-85,180,85],UA=qs*Math.log(Math.tan(Math.PI/2)),Zn=class extends Gi{constructor(e){super({code:e,units:"m",extent:nw,global:!0,worldExtent:rw,getPointResolution:function(t,n){return t/Math.cosh(n[1]/qs)}})}},zh=[new Zn("EPSG:3857"),new Zn("EPSG:102100"),new Zn("EPSG:102113"),new Zn("EPSG:900913"),new Zn("http://www.opengis.net/def/crs/EPSG/0/3857"),new Zn("http://www.opengis.net/gml/srs/epsg.xml#3857")];function Op(i,e,t,n){let r=i.length;t=t>1?t:2,n=n??t,e===void 0&&(t>2?e=i.slice():e=new Array(r));for(let o=0;oUA?s=UA:s<-UA&&(s=-UA),e[o+1]=s}return e}function Up(i,e,t,n){let r=i.length;t=t>1?t:2,n=n??t,e===void 0&&(t>2?e=i.slice():e=new Array(r));for(let o=0;oVp&&(e=Vp);let n=Wt(e),r=Math.sin(n),o=Math.cos(n),s=r/o,a=s*s,A=a*a,l=Wt(i),c=Zp(t.number),h=Wt(c),u=zA/Math.sqrt(1-Ai*r**2),f=Dr*o**2,g=o*GA(l-h,-Math.PI,Math.PI),m=g*g,d=m*g,E=d*g,p=E*g,_=p*g,C=zA*(Wp*n-aw*Math.sin(2*n)+Aw*Math.sin(4*n)-lw*Math.sin(6*n)),I=HA*u*(g+d/6*(1-a+f)+p/120*(5-18*a+A+72*f-58*Dr))+5e5,y=HA*(C+u*s*(m/2+E/24*(5-a+9*f+4*f**2)+_/720*(61-58*a+A+600*f-330*Dr)));return t.north||(y+=1e7),[I,y]}function Zp(i){return(i-1)*6-180+3}var Ew=[/^EPSG:(\d+)$/,/^urn:ogc:def:crs:EPSG::(\d+)$/,/^http:\/\/www\.opengis\.net\/def\/crs\/EPSG\/0\/(\d+)$/];function $p(i){let e=0;for(let r of Ew){let o=i.match(r);if(o){e=parseInt(o[1]);break}}if(!e)return null;let t=0,n=!1;return e>32700&&e<32761?t=e-32700:e>32600&&e<32661&&(n=!0,t=e-32600),t?{number:t,north:n}:null}function Xp(i,e){return function(t,n,r,o){let s=t.length;r=r>1?r:2,o=o??r,n||(r>2?n=t.slice():n=new Array(s));for(let a=0;a=A?e[s+l]:a[l]}return t}}function rE(i,e){return Zh(),br(i,"EPSG:4326",e!==void 0?e:"EPSG:3857")}function Oi(i,e){if(i===e)return!0;let t=i.getUnits()===e.getUnits();return(i.getCode()===e.getCode()||li(i,e)===$h)&&t}function li(i,e){let t=i.getCode(),n=e.getCode(),r=YA(t,n);if(r)return r;let o=null,s=null;for(let A of Iw)o||(o=A(i)),s||(s=A(e));if(!o&&!s)return null;let a="EPSG:4326";if(s)if(o)r=Jh(o.inverse,s.forward);else{let A=YA(t,a);A&&(r=Jh(A,s.forward))}else{let A=YA(a,n);A&&(r=Jh(o.inverse,A))}return r&&(Wh(i),Wh(e),Do(i,e,r)),r}function Jh(i,e){return function(t,n,r,o){return n=i(t,n,r,o),e(n,n,r,o)}}function Bn(i,e){let t=fe(i),n=fe(e);return li(t,n)}function br(i,e,t){let n=Bn(e,t);if(!n){let r=fe(e).getCode(),o=fe(t).getCode();throw new Error(`No transform available between ${r} and ${o}`)}return n(i,void 0,i.length)}function eu(i,e,t,n){let r=Bn(e,t);return PA(i,r,void 0,n)}var Bi=null;function ci(){return Bi}function Fr(i,e){return Bi?br(i,e,Bi):i}function xi(i,e){return Bi?br(i,Bi,e):(jh&&!Tr(i,[0,0])&&i[0]>=-180&&i[0]<=180&&i[1]>=-90&&i[1]<=90&&(jh=!1,OA("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),i)}function hi(i,e){return Bi?eu(i,e,Bi):i}function Ct(i,e){return Bi?eu(i,Bi,e):i}function JA(i,e){if(!Bi)return i;let t=fe(e).getMetersPerUnit(),n=Bi.getMetersPerUnit();return t&&n?i*t/n:i}function Bw(){iE(zh),iE(Kh),yw(Kh,zh,Op,Up)}Bw();var tu=new Array(6);function Ce(){return[1,0,0,1,0,0]}function sE(i){return jA(i,1,0,0,1,0,0)}function $n(i,e){let t=i[0],n=i[1],r=i[2],o=i[3],s=i[4],a=i[5],A=e[0],l=e[1],c=e[2],h=e[3],u=e[4],f=e[5];return i[0]=t*A+r*l,i[1]=n*A+o*l,i[2]=t*c+r*h,i[3]=n*c+o*h,i[4]=t*u+r*f+s,i[5]=n*u+o*f+a,i}function jA(i,e,t,n,r,o,s){return i[0]=e,i[1]=t,i[2]=n,i[3]=r,i[4]=o,i[5]=s,i}function WA(i,e){return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i}function ye(i,e){let t=e[0],n=e[1];return e[0]=i[0]*t+i[2]*n+i[4],e[1]=i[1]*t+i[3]*n+i[5],e}function aE(i,e){let t=Math.cos(e),n=Math.sin(e);return $n(i,jA(tu,t,n,-n,t,0,0))}function iu(i,e,t){return $n(i,jA(tu,e,0,0,t,0,0))}function ZA(i,e,t){return $n(i,jA(tu,1,0,0,1,e,t))}function Xe(i,e,t,n,r,o,s,a){let A=Math.sin(o),l=Math.cos(o);return i[0]=n*l,i[1]=r*A,i[2]=-n*A,i[3]=r*l,i[4]=s*n*l-a*n*A+e,i[5]=s*r*A+a*r*l+t,i}function wi(i,e){let t=xw(e);re(t!==0,"Transformation matrix cannot be inverted");let n=e[0],r=e[1],o=e[2],s=e[3],a=e[4],A=e[5];return i[0]=s/t,i[1]=-r/t,i[2]=-o/t,i[3]=n/t,i[4]=(o*A-s*a)/t,i[5]=-(n*A-r*a)/t,i}function xw(i){return i[0]*i[3]-i[1]*i[2]}var ww=[1e5,1e5,1e5,1e5,2,2];function AE(i){return"matrix("+i.join(", ")+")"}function oE(i){return i.substring(7,i.length-1).split(",").map(parseFloat)}function lE(i,e){let t=oE(i),n=oE(e);for(let r=0;r<6;++r)if(Math.round((t[r]-n[r])*ww[r])!==0)return!1;return!0}function ft(i,e,t,n,r,o,s){o=o||[],s=s||2;let a=0;for(let A=e;A{if(!n)return this.getSimplifiedGeometry(t);let r=this.clone();return r.applyTransform(n),r.getSimplifiedGeometry(t)})}simplifyTransformed(e,t){return this.simplifyTransformedInternal(this.getRevision(),e,t)}clone(){return J()}closestPointXY(e,t,n,r){return J()}containsXY(e,t){return this.closestPointXY(e,t,Qw,Number.MIN_VALUE)===0}getClosestPoint(e,t){return t=t||[NaN,NaN],this.closestPointXY(e[0],e[1],t,1/0),t}intersectsCoordinate(e){return this.containsXY(e[0],e[1])}computeExtent(e){return J()}getExtent(e){if(this.extentRevision_!=this.getRevision()){let t=this.computeExtent(this.extent_);(isNaN(t[0])||isNaN(t[1]))&&_n(t),this.extentRevision_=this.getRevision()}return Dp(this.extent_,e)}rotate(e,t){J()}scale(e,t,n){J()}simplify(e){return this.getSimplifiedGeometry(e*e)}getSimplifiedGeometry(e){return J()}getType(){return J()}applyTransform(e){J()}intersectsExtent(e){return J()}translate(e,t){J()}transform(e,t){let n=fe(e),r=n.getUnits()=="tile-pixels"?function(o,s,a){let A=n.getExtent(),l=n.getWorldExtent(),c=Se(l)/Se(A);Xe(uE,l[0],l[3],c,-c,0,0,0);let h=ft(o,0,o.length,a,uE,s),u=Bn(n,t);return u?u(h,h,a):h}:Bn(n,t);return this.applyTransform(r),this}},el=nu;var ru=class extends el{constructor(){super(),this.layout="XY",this.stride=2,this.flatCoordinates}computeExtent(e){return _o(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,e)}getCoordinates(){return J()}getFirstCoordinate(){return this.flatCoordinates.slice(0,this.stride)}getFlatCoordinates(){return this.flatCoordinates}getLastCoordinate(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)}getLayout(){return this.layout}getSimplifiedGeometry(e){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),e<0||this.simplifiedGeometryMaxMinSquaredTolerance!==0&&e<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;let t=this.getSimplifiedGeometryInternal(e);return t.getFlatCoordinates().length1)h=t;else if(u>0){for(let f=0;fr&&(r=l),o=a,s=A}return r}function Xs(i,e,t,n,r){for(let o=0,s=t.length;o0;){let h=l.pop(),u=l.pop(),f=0,g=i[u],m=i[u+1],d=i[h],E=i[h+1];for(let p=u+n;pf&&(c=p,f=I)}f>r&&(A[(c-e)/n]=1,u+n0&&m>f)&&(g<0&&d0&&d>g)){l=h,c=u;continue}o[s++]=l,o[s++]=c,a=l,A=c,l=h,c=u}return o[s++]=l,o[s++]=c,s}function Zs(i,e,t,n,r,o,s,a){for(let A=0,l=t.length;Ao&&(l-a)*(o-A)-(r-a)*(c-A)>0&&s++:c<=o&&(l-a)*(o-A)-(r-a)*(c-A)<0&&s--,a=l,A=c}return s!==0}function $s(i,e,t,n,r,o){if(t.length===0||!rr(i,e,t[0],n,r,o))return!1;for(let s=1,a=t.length;sE&&(l=(c+h)/2,$s(i,e,t,n,l,g)&&(d=l,E=p)),c=h}return isNaN(d)&&(d=r[o]),s?(s.push(d,g,E),s):[d,g,E]}function nl(i,e,t,n,r){let o=[];for(let s=0,a=t.length;s=r[0]&&o[2]<=r[2]||o[1]>=r[1]&&o[3]<=r[3]?!0:rl(i,e,t,n,function(s,a){return Fp(r,s,a)}):!1}function BE(i,e,t,n,r){for(let o=0,s=t.length;o0}function ia(i,e,t,n,r){r=r!==void 0?r:!1;for(let o=0,s=t.length;o1?s:2,o=o||new Array(s);for(let c=0;c>1;r.0031308?Math.pow(i,1/2.4)*269.025-14.025:i*3294.6}function Cu(i){return i>.2068965?Math.pow(i,3):(i-4/29)*(108/841)}function _u(i){return i>10.314724?Math.pow((i+14.025)/269.025,2.4):i/3294.6}function yu(i){return i>.0088564?Math.pow(i,1/3):i/(108/841)+4/29}function Bu(i){let e=_u(i[0]),t=_u(i[1]),n=_u(i[2]),r=yu(e*.222488403+t*.716873169+n*.06060791),o=500*(yu(e*.452247074+t*.399439023+n*.148375274)-r),s=200*(r-yu(e*.016863605+t*.117638439+n*.865350722)),a=Math.atan2(s,o)*(180/Math.PI);return[116*r-16,Math.sqrt(o*o+s*s),a<0?a+360:a,i[3]]}function kE(i){let e=(i[0]+16)/116,t=i[1],n=i[2]*Math.PI/180,r=Cu(e),o=Cu(e+t/500*Math.cos(n)),s=Cu(e-t/200*Math.sin(n)),a=Iu(o*3.021973625-r*1.617392459-s*.404875592),A=Iu(o*-.943766287+r*1.916279586+s*.027607165),l=Iu(o*.069407491-r*.22898585+s*1.159737864);return[ue(a+.5|0,0,255),ue(A+.5|0,0,255),ue(l+.5|0,0,255),i[3]]}function aa(i){if(i==="none")return ul;if(oa.hasOwnProperty(i))return oa[i];if(Eu>=Lw){let t=0;for(let n in oa)(t++&3)===0&&(delete oa[n],--Eu)}let e=FE(i);e.length!==4&&sa(i);for(let t of e)isNaN(t)&&sa(i);return oa[i]=e,++Eu,e}function We(i){return Array.isArray(i)?i:aa(i)}function Aa(i){let e=i[0];e!=(e|0)&&(e=e+.5|0);let t=i[1];t!=(t|0)&&(t=t+.5|0);let n=i[2];n!=(n|0)&&(n=n+.5|0);let r=i[3]===void 0?1:Math.round(i[3]*1e3)/1e3;return"rgba("+e+","+t+","+n+","+r+")"}function PE(i,e,t){let n=i,r=!0,o=!1,s=!1,a=[Xn(n,U.LOAD,function(){s=!0,o||e()})];return n.src&&du?(o=!0,n.decode().then(function(){r&&e()}).catch(function(A){r&&(s?e():t())})):a.push(Xn(n,U.ERROR,t)),function(){r=!1,a.forEach(se)}}function Mw(i,e){return new Promise((t,n)=>{function r(){s(),t(i)}function o(){s(),n(new Error("Image load error"))}function s(){i.removeEventListener("load",r),i.removeEventListener("error",o)}i.addEventListener("load",r),i.addEventListener("error",o),e&&(i.src=e)})}function NE(i,e){return e&&(i.src=e),i.src&&du?new Promise((t,n)=>i.decode().then(()=>t(i)).catch(r=>i.complete&&i.width?t(i):n(r))):Mw(i)}var wu=class{constructor(){this.cache_={},this.patternCache_={},this.cacheSize_=0,this.maxCacheSize_=1024}clear(){this.cache_={},this.patternCache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let e=0;for(let t in this.cache_){let n=this.cache_[t];(e++&3)===0&&!n.hasListener()&&(delete this.cache_[t],delete this.patternCache_[t],--this.cacheSize_)}}}get(e,t,n){let r=xu(e,t,n);return r in this.cache_?this.cache_[r]:null}getPattern(e,t,n){let r=xu(e,t,n);return r in this.patternCache_?this.patternCache_[r]:null}set(e,t,n,r,o){let s=xu(e,t,n),a=s in this.cache_;this.cache_[s]=r,o&&(r.getImageState()===ee.IDLE&&r.load(),r.getImageState()===ee.LOADING?r.ready().then(()=>{this.patternCache_[s]=Po().createPattern(r.getImage(1),"repeat")}):this.patternCache_[s]=Po().createPattern(r.getImage(1),"repeat")),a||++this.cacheSize_}setSize(e){this.maxCacheSize_=e,this.expire()}};function xu(i,e,t){let n=t?We(t):"null";return e+":"+i+":"+n}var _t=new wu;var la=null,fl=class extends Pi{constructor(e,t,n,r,o){super(),this.hitDetectionImage_=null,this.image_=e,this.crossOrigin_=n,this.canvas_={},this.color_=o,this.imageState_=r===void 0?ee.IDLE:r,this.size_=e&&e.width&&e.height?[e.width,e.height]:null,this.src_=t,this.tainted_,this.ready_=null}initializeImage_(){this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(this.tainted_===void 0&&this.imageState_===ee.LOADED){la||(la=me(1,1,void 0,{willReadFrequently:!0})),la.drawImage(this.image_,0,0);try{la.getImageData(0,0,1,1),this.tainted_=!1}catch{la=null,this.tainted_=!0}}return this.tainted_===!0}dispatchChangeEvent_(){this.dispatchEvent(U.CHANGE)}handleImageError_(){this.imageState_=ee.ERROR,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=ee.LOADED,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(e){return this.image_||this.initializeImage_(),this.replaceColor_(e),this.canvas_[e]?this.canvas_[e]:this.image_}getPixelRatio(e){return this.replaceColor_(e),this.canvas_[e]?e:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){let e=this.size_[0],t=this.size_[1],n=me(e,t);n.fillRect(0,0,e,t),this.hitDetectionImage_=n.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(this.imageState_===ee.IDLE){this.image_||this.initializeImage_(),this.imageState_=ee.LOADING;try{this.src_!==void 0&&(this.image_.src=this.src_)}catch{this.handleImageError_()}this.image_ instanceof HTMLImageElement&&NE(this.image_,this.src_).then(e=>{this.image_=e,this.handleImageLoad_()}).catch(this.handleImageError_.bind(this))}}replaceColor_(e){if(!this.color_||this.canvas_[e]||this.imageState_!==ee.LOADED)return;let t=this.image_,n=me(Math.ceil(t.width*e),Math.ceil(t.height*e)),r=n.canvas;n.scale(e,e),n.drawImage(t,0,0),n.globalCompositeOperation="multiply",n.fillStyle=LE(this.color_),n.fillRect(0,0,r.width/e,r.height/e),n.globalCompositeOperation="destination-in",n.drawImage(t,0,0),this.canvas_[e]=r}ready(){return this.ready_||(this.ready_=new Promise(e=>{if(this.imageState_===ee.LOADED||this.imageState_===ee.ERROR)e();else{let t=()=>{(this.imageState_===ee.LOADED||this.imageState_===ee.ERROR)&&(this.removeEventListener(U.CHANGE,t),e())};this.addEventListener(U.CHANGE,t)}})),this.ready_}};function No(i,e,t,n,r,o){let s=e===void 0?void 0:_t.get(e,t,r);return s||(s=new fl(i,i&&"src"in i?i.src||void 0:e,t,n,r),_t.set(e,t,r,s,o)),o&&s&&!_t.getPattern(e,t,r)&&_t.set(e,t,r,s,o),s}var GE=fl;function Nt(i){return i?Array.isArray(i)?Aa(i):typeof i=="object"&&"src"in i?kw(i):i:null}function kw(i){if(!i.offset||!i.size)return _t.getPattern(i.src,"anonymous",i.color);let e=i.src+":"+i.offset,t=_t.getPattern(e,void 0,i.color);if(t)return t;let n=_t.get(i.src,"anonymous",null);if(n.getImageState()!==ee.LOADED)return null;let r=me(i.size[0],i.size[1]);return r.drawImage(n.getImage(1),i.offset[0],i.offset[1],i.size[0],i.size[1],0,0,i.size[0],i.size[1]),No(r.canvas,e,void 0,ee.LOADED,i.color,!0),_t.getPattern(e,void 0,i.color)}var Qu=class{drawCustom(e,t,n,r,o){}drawGeometry(e){}setStyle(e){}drawCircle(e,t,n){}drawFeature(e,t,n){}drawGeometryCollection(e,t,n){}drawLineString(e,t,n){}drawMultiLineString(e,t,n){}drawMultiPoint(e,t,n){}drawMultiPolygon(e,t,n){}drawPoint(e,t,n){}drawPolygon(e,t,n){}drawText(e,t,n){}setFillStrokeStyle(e,t){}setImageStyle(e,t){}setTextStyle(e,t){}},gl=Qu;var ca="ol-hidden",UE="ol-selectable",gt="ol-unselectable",Su="ol-unsupported",fi="ol-control",Go="ol-collapsed",Pw=new RegExp(["^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)","(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?","(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))","(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))",`?\\s*([-,\\"\\'\\sa-z0-9]+?)\\s*$`].join(""),"i"),OE=["style","variant","weight","size","lineHeight","family"],Ru=function(i){let e=i.match(Pw);if(!e)return null;let t={lineHeight:"normal",size:"1.2em",style:"normal",weight:"normal",variant:"normal"};for(let n=0,r=OE.length;n{var UQ=Object.create;var Qd=Object.defineProperty;var zQ=Object.getOwnPropertyDescriptor;var YQ=Object.getOwnPropertyNames;var VQ=Object.getPrototypeOf,HQ=Object.prototype.hasOwnProperty;var Xi=(i,e)=>()=>(i&&(e=i(i=0)),e);var _r=(i,e)=>()=>(e||i((e={exports:{}}).exports,e),e.exports),Zr=(i,e)=>{for(var t in e)Qd(i,t,{get:e[t],enumerable:!0})},qQ=(i,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of YQ(e))!HQ.call(i,r)&&r!==t&&Qd(i,r,{get:()=>e[r],enumerable:!(n=zQ(e,r))||n.enumerable});return i};var wa=(i,e,t)=>(t=i!=null?UQ(VQ(i)):{},qQ(e||!i||!i.__esModule?Qd(t,"default",{value:i,enumerable:!0}):t,i));var rw=_r((bre,qE)=>{function nw(i,e,t){let n=t&&t.debug||!1;n&&console.log("[xml-utils] getting "+e+" in "+i);let r=typeof i=="object"?i.outer:i,o=r.slice(0,r.indexOf(">")+1),s=['"',"'"];for(let a=0;a{function ow(i,e,t){let r=new RegExp(e).exec(i.slice(t));return r?t+r.index:-1}KE.exports=ow;KE.exports.default=ow});var lw=_r((Fre,XE)=>{function aw(i,e,t){let r=new RegExp(e).exec(i.slice(t));return r?t+r.index+r[0].length-1:-1}XE.exports=aw;XE.exports.default=aw});var cw=_r((Lre,jE)=>{function Aw(i,e){let t=new RegExp(e,"g"),n=i.match(t);return n?n.length:0}jE.exports=Aw;jE.exports.default=Aw});var fw=_r((Mre,JE)=>{var RF=sw(),WE=lw(),hw=cw();function uw(i,e,t){let n=t&&t.debug||!1,r=!(t&&typeof t.nested===!1),o=t&&t.startIndex||0;n&&console.log("[xml-utils] starting findTagByName with",e," and ",t);let s=RF(i,`<${e}[ +>/]`,o);if(n&&console.log("[xml-utils] start:",s),s===-1)return;let a=i.slice(s+e.length),l=WE(a,"^[^<]*[ /]>",0),A=l!==-1&&a[l-1]==="/";if(n&&console.log("[xml-utils] selfClosing:",A),A===!1)if(r){let f=0,g=1,p=0;for(;(l=WE(a,"[ /]"+e+">",f))!==-1;){let d=a.substring(f,l+1);if(g+=hw(d,"<"+e+`[ + >]`),p+=hw(d,""),p>=g)break;f=l}}else l=WE(a,"[ /]"+e+">",0);let c=s+e.length+l+1;if(n&&console.log("[xml-utils] end:",c),c===-1)return;let h=i.slice(s,c),u;return A?u=null:u=h.slice(h.indexOf(">")+1,h.lastIndexOf("<")),{inner:u,outer:h,start:s,end:c}}JE.exports=uw;JE.exports.default=uw});var dw=_r((kre,$E)=>{var QF=fw();function gw(i,e,t){let n=[],r=t&&t.debug||!1,o=t&&typeof t.nested=="boolean"?t.nested:!0,s=t&&t.startIndex||0,a;for(;a=QF(i,e,{debug:r,startIndex:s});)o?s=a.start+1+e.length:s=a.end,n.push(a);return r&&console.log("findTagsByName found",n.length,"tags"),n}$E.exports=gw;$E.exports.default=gw});var qf={};Zr(qf,{ExtraSamplesValues:()=>eI,LercAddCompression:()=>Rc,LercParameters:()=>tI,arrayFields:()=>ZE,fieldTagNames:()=>aa,fieldTagTypes:()=>bF,fieldTags:()=>pr,fieldTypeNames:()=>Hf,fieldTypes:()=>ye,geoKeyNames:()=>Ll,geoKeys:()=>pw,photometricInterpretations:()=>zi});var aa,pr,bF,ZE,Hf,ye,zi,eI,tI,Rc,Ll,pw,Qc=Xi(()=>{aa={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},pr={};for(let i in aa)aa.hasOwnProperty(i)&&(pr[aa[i]]=parseInt(i,10));bF={256:"SHORT",257:"SHORT",258:"SHORT",259:"SHORT",262:"SHORT",273:"LONG",274:"SHORT",277:"SHORT",278:"LONG",279:"LONG",282:"RATIONAL",283:"RATIONAL",284:"SHORT",286:"SHORT",287:"RATIONAL",296:"SHORT",297:"SHORT",305:"ASCII",306:"ASCII",338:"SHORT",339:"SHORT",513:"LONG",514:"LONG",1024:"SHORT",1025:"SHORT",2048:"SHORT",2049:"ASCII",3072:"SHORT",3073:"ASCII",33550:"DOUBLE",33922:"DOUBLE",34264:"DOUBLE",34665:"LONG",34735:"SHORT",34736:"DOUBLE",34737:"ASCII",42113:"ASCII"},ZE=[pr.BitsPerSample,pr.ExtraSamples,pr.SampleFormat,pr.StripByteCounts,pr.StripOffsets,pr.StripRowCounts,pr.TileByteCounts,pr.TileOffsets,pr.SubIFDs],Hf={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},ye={};for(let i in Hf)Hf.hasOwnProperty(i)&&(ye[Hf[i]]=parseInt(i,10));zi={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},eI={Unspecified:0,Assocalpha:1,Unassalpha:2},tI={Version:0,AddCompression:1},Rc={None:0,Deflate:1,Zstandard:2},Ll={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},pw={};for(let i in Ll)Ll.hasOwnProperty(i)&&(pw[Ll[i]]=parseInt(i,10))});function MF(i,e){let t=i.length-e,n=0;do{for(let r=e;r>0;r--)i[n+e]+=i[n],n++;t-=e}while(t>0)}function kF(i,e,t){let n=0,r=i.length,o=r/t;for(;r>e;){for(let a=e;a>0;--a)i[n+e]+=i[n],++n;r-=e}let s=i.slice();for(let a=0;a=i.byteLength);++l){let A;if(e===2){switch(r[0]){case 8:A=new Uint8Array(i,l*a*t*s,a*t*s);break;case 16:A=new Uint16Array(i,l*a*t*s,a*t*s/2);break;case 32:A=new Uint32Array(i,l*a*t*s,a*t*s/4);break;default:throw new Error(`Predictor 2 not allowed with ${r[0]} bits per sample.`)}MF(A,a,s)}else e===3&&(A=new Uint8Array(i,l*a*t*s,a*t*s),kF(A,a,s))}return i}var Bw=Xi(()=>{});var hi,_s=Xi(()=>{Bw();hi=class{async decode(e,t){let n=await this.decodeBlock(t),r=e.Predictor||1;if(r!==1){let o=!e.StripOffsets,s=o?e.TileWidth:e.ImageWidth,a=o?e.TileLength:e.RowsPerStrip||e.ImageLength;return xw(n,r,s,a,e.BitsPerSample,e.PlanarConfiguration)}return n}}});var ww={};Zr(ww,{default:()=>Kf});var Kf,vw=Xi(()=>{_s();Kf=class extends hi{decodeBlock(e){return e}}});var Tw={};Zr(Tw,{default:()=>Xf});function NF(i,e,t){let n=e%8,r=Math.floor(e/8),o=8-n,s=e+t-(r+1)*8,a=8*(r+2)-(e+t),l=(r+2)*8-e;if(a=Math.max(0,a),r>=i.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),rI;let A=i[r]&2**(8-n)-1;A<<=t-o;let c=A;if(r+1>>a;h<<=Math.max(0,t-l),c+=h}if(s>8&&r+2>>h;c+=u}return c}function nI(i,e){for(let t=e.length-1;t>=0;t--)i.push(e[t]);return i}function GF(i){let e=new Uint16Array(4093),t=new Uint8Array(4093);for(let g=0;g<=257;g++)e[g]=4096,t[g]=g;let n=258,r=Sw,o=0;function s(){n=258,r=Sw}function a(g){let p=NF(g,o,r);return o+=r,p}function l(g,p){return t[n]=p,e[n]=g,n++,n-1}function A(g){let p=[];for(let d=g;d!==4096;d=e[d])p.push(t[d]);return p}let c=[];s();let h=new Uint8Array(i),u=a(h),f;for(;u!==rI;){if(u===iI){for(s(),u=a(h);u===iI;)u=a(h);if(u===rI)break;if(u>iI)throw new Error(`corrupted code at scanline ${u}`);{let g=A(u);nI(c,g),f=u}}else if(u=2**r&&(r===PF?f=void 0:r++),u=a(h)}return new Uint8Array(c)}var Sw,iI,rI,PF,Xf,Rw=Xi(()=>{_s();Sw=9,iI=256,rI=257,PF=12;Xf=class extends hi{decodeBlock(e){return GF(e,!1).buffer}}});var bw={};Zr(bw,{default:()=>ig});function Qw(i,e){let t=0,n=[],r=16;for(;r>0&&!i[r-1];)--r;n.push({children:[],index:0});let o=n[0],s;for(let a=0;a0;)o=n.pop();for(o.index++,n.push(o);n.length<=a;)n.push(s={children:[],index:0}),o.children[o.index]=s.children,o=s;t++}a+10)return g--,f>>g&1;if(f=i[u++],f===255){let X=i[u++];if(X)throw new Error(`unexpected marker: ${(f<<8|X).toString(16)}`)}return g=7,f>>>7}function d(X){let z=X,q;for(;(q=p())!==null;){if(z=z[q],typeof z=="number")return z;if(typeof z!="object")throw new Error("invalid huffman sequence")}return null}function I(X){let z=X,q=0;for(;z>0;){let Z=p();if(Z===null)return;q=q<<1|Z,--z}return q}function m(X){let z=I(X);return z>=1<>4;if(de===0){if(ve<15)break;ge+=16}else{ge+=ve;let Ve=bc[ge];z[Ve]=m(de),ge++}}}function _(X,z){let q=d(X.huffmanTableDC),Z=q===0?0:m(q)<0){w--;return}let q=o,Z=s;for(;q<=Z;){let ge=d(X.huffmanTableAC),me=ge&15,de=ge>>4;if(me===0){if(de<15){w=I(de)+(1<>4,Ve===0)ge<15?(w=I(ge)+(1<=65488&&U<=65495)u+=2;else break}return u-h}function UF(i,e){let t=[],{blocksPerLine:n,blocksPerColumn:r}=e,o=n<<3,s=new Int32Array(64),a=new Uint8Array(64);function l(A,c,h){let u=e.quantizationTable,f,g,p,d,I,m,C,_,y,w=h,T;for(T=0;T<64;T++)w[T]=A[T]*u[T];for(T=0;T<8;++T){let E=8*T;if(w[1+E]===0&&w[2+E]===0&&w[3+E]===0&&w[4+E]===0&&w[5+E]===0&&w[6+E]===0&&w[7+E]===0){y=Ml*w[0+E]+512>>10,w[0+E]=y,w[1+E]=y,w[2+E]=y,w[3+E]=y,w[4+E]=y,w[5+E]=y,w[6+E]=y,w[7+E]=y;continue}f=Ml*w[0+E]+128>>8,g=Ml*w[4+E]+128>>8,p=w[2+E],d=w[6+E],I=tg*(w[1+E]-w[7+E])+128>>8,_=tg*(w[1+E]+w[7+E])+128>>8,m=w[3+E]<<4,C=w[5+E]<<4,y=f-g+1>>1,f=f+g+1>>1,g=y,y=p*eg+d*Zf+128>>8,p=p*Zf-d*eg+128>>8,d=y,y=I-C+1>>1,I=I+C+1>>1,C=y,y=_+m+1>>1,m=_-m+1>>1,_=y,y=f-d+1>>1,f=f+d+1>>1,d=y,y=g-p+1>>1,g=g+p+1>>1,p=y,y=I*$f+_*Jf+2048>>12,I=I*Jf-_*$f+2048>>12,_=y,y=m*Wf+C*jf+2048>>12,m=m*jf-C*Wf+2048>>12,C=y,w[0+E]=f+_,w[7+E]=f-_,w[1+E]=g+C,w[6+E]=g-C,w[2+E]=p+m,w[5+E]=p-m,w[3+E]=d+I,w[4+E]=d-I}for(T=0;T<8;++T){let E=T;if(w[1*8+E]===0&&w[2*8+E]===0&&w[3*8+E]===0&&w[4*8+E]===0&&w[5*8+E]===0&&w[6*8+E]===0&&w[7*8+E]===0){y=Ml*h[T+0]+8192>>14,w[0*8+E]=y,w[1*8+E]=y,w[2*8+E]=y,w[3*8+E]=y,w[4*8+E]=y,w[5*8+E]=y,w[6*8+E]=y,w[7*8+E]=y;continue}f=Ml*w[0*8+E]+2048>>12,g=Ml*w[4*8+E]+2048>>12,p=w[2*8+E],d=w[6*8+E],I=tg*(w[1*8+E]-w[7*8+E])+2048>>12,_=tg*(w[1*8+E]+w[7*8+E])+2048>>12,m=w[3*8+E],C=w[5*8+E],y=f-g+1>>1,f=f+g+1>>1,g=y,y=p*eg+d*Zf+2048>>12,p=p*Zf-d*eg+2048>>12,d=y,y=I-C+1>>1,I=I+C+1>>1,C=y,y=_+m+1>>1,m=_-m+1>>1,_=y,y=f-d+1>>1,f=f+d+1>>1,d=y,y=g-p+1>>1,g=g+p+1>>1,p=y,y=I*$f+_*Jf+2048>>12,I=I*Jf-_*$f+2048>>12,_=y,y=m*Wf+C*jf+2048>>12,m=m*jf-C*Wf+2048>>12,C=y,w[0*8+E]=f+_,w[7*8+E]=f-_,w[1*8+E]=g+C,w[6*8+E]=g-C,w[2*8+E]=p+m,w[5*8+E]=p-m,w[3*8+E]=d+I,w[4*8+E]=d-I}for(T=0;T<64;++T){let E=128+(w[T]+8>>4);E<0?c[T]=0:E>255?c[T]=255:c[T]=E}}for(let A=0;A{_s();bc=new Int32Array([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]),jf=4017,Wf=799,Jf=3406,$f=2276,Zf=1567,eg=3784,Ml=5793,tg=2896;oI=class{constructor(){this.jfif=null,this.adobe=null,this.quantizationTables=[],this.huffmanTablesAC=[],this.huffmanTablesDC=[],this.resetFrames()}resetFrames(){this.frames=[]}parse(e){let t=0;function n(){let a=e[t]<<8|e[t+1];return t+=2,a}function r(){let a=n(),l=e.subarray(t,t+a-2);return t+=l.length,l}function o(a){let l=0,A=0,c,h;for(h in a.components)a.components.hasOwnProperty(h)&&(c=a.components[h],l>4===0)for(let h=0;h<64;h++){let u=bc[h];c[u]=e[t++]}else if(A>>4===1)for(let h=0;h<64;h++){let u=bc[h];c[u]=n()}else throw new Error("DQT: invalid table spec");this.quantizationTables[A&15]=c}break}case 65472:case 65473:case 65474:{n();let a={extended:s===65473,progressive:s===65474,precision:e[t++],scanLines:n(),samplesPerLine:n(),components:{},componentsOrder:[]},l=e[t++],A;for(let c=0;c>4,u=e[t+1]&15,f=e[t+2];a.componentsOrder.push(A),a.components[A]={h,v:u,quantizationIdx:f},t+=3}o(a),this.frames.push(a);break}case 65476:{let a=n();for(let l=2;l>4===0?this.huffmanTablesDC[A&15]=Qw(c,u):this.huffmanTablesAC[A&15]=Qw(c,u)}break}case 65501:n(),this.resetInterval=n();break;case 65498:{n();let a=e[t++],l=[],A=this.frames[0];for(let g=0;g>4],p.huffmanTableAC=this.huffmanTablesAC[d&15],l.push(p)}let c=e[t++],h=e[t++],u=e[t++],f=OF(e,t,A,l,this.resetInterval,c,h,u>>4,u&15);t+=f;break}case 65535:e[t]!==255&&t--;break;default:if(e[t-3]===255&&e[t-2]>=192&&e[t-2]<=254){t-=3;break}throw new Error(`unknown JPEG marker ${s.toString(16)}`)}s=n()}}getResult(){let{frames:e}=this;if(this.frames.length===0)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(let c=0;c=0;)i[e]=0}function aI(i,e,t,n,r){this.static_tree=i,this.extra_bits=e,this.extra_base=t,this.elems=n,this.max_length=r,this.has_stree=i&&i.length}function lI(i,e){this.dyn_tree=i,this.max_code=0,this.stat_desc=e}function Or(i,e,t,n,r){this.good_length=i,this.max_lazy=e,this.nice_length=t,this.max_chain=n,this.func=r}function YL(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ug,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(LL*2),this.dyn_dtree=new Uint16Array((2*DL+1)*2),this.bl_tree=new Uint16Array((2*FL+1)*2),xs(this.dyn_ltree),xs(this.dyn_dtree),xs(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(ML+1),this.heap=new Uint16Array(2*xI+1),xs(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*xI+1),xs(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function hM(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}function Xc(i){this.options=fg.assign({level:mM,method:IM,chunkSize:16384,windowBits:15,memLevel:8,strategy:EM},i||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Nv,this.strm.avail_out=0;let t=kc.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(t!==cg)throw new Error(ha[t]);if(e.header&&kc.deflateSetHeader(this.strm,e.header),e.dictionary){let n;if(typeof e.dictionary=="string"?n=Vc.string2buf(e.dictionary):Gv.call(e.dictionary)==="[object ArrayBuffer]"?n=new Uint8Array(e.dictionary):n=e.dictionary,t=kc.deflateSetDictionary(this.strm,n),t!==cg)throw new Error(ha[t]);this._dict_set=!0}}function LI(i,e){let t=new Xc(e);if(t.push(i,!0),t.err)throw t.msg||ha[t.err];return t.result}function CM(i,e){return e=e||{},e.raw=!0,LI(i,e)}function yM(i,e){return e=e||{},e.gzip=!0,LI(i,e)}function VM(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function ak(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}function jc(i){this.options=fg.assign({chunkSize:1024*64,windowBits:15,to:""},i||{});let e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(i&&i.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15)===0&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Nv,this.strm.avail_out=0;let t=To.inflateInit2(this.strm,e.windowBits);if(t!==Hc)throw new Error(ha[t]);if(this.header=new lk,To.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=Vc.string2buf(e.dictionary):Jv.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=To.inflateSetDictionary(this.strm,e.dictionary),t!==Hc)))throw new Error(ha[t])}function MI(i,e){let t=new jc(e);if(t.push(i),t.err)throw t.msg||ha[t.err];return t.result}function fk(i,e){return e=e||{},e.raw=!0,MI(i,e)}var zF,mv,YF,VF,HF,RI,qc,Nc,Nl,QI,Ev,la,sI,qF,bI,Iv,Cv,yv,CI,lg,KF,_v,XF,So,Mc,Gc,Oc,DI,Ag,xv,Bv,wv,vv,Uc,un,Ur,Sv,jF,WF,Tv,JF,Rv,Qv,Fw,AI,Lw,yI,Mw,kw,$F,ZF,eL,Pw,tL,bv,iL,nL,rL,oL,sL,aL,lL,AL,cL,hL,zc,uL,fL,gL,ei,ha,zl,dL,_I,pL,ws,mL,vs,EL,IL,jn,Nw,ui,Gw,zr,CL,cI,yL,_L,ng,xL,BL,wL,vL,ug,SL,TL,RL,QL,bL,xI,DL,FL,LL,ML,Ge,Bs,Yr,kL,Gl,FI,BI,wI,vI,SI,Aa,Fc,Yi,Yl,ua,Vl,PL,ca,Ow,xs,NL,GL,Ss,Bn,wn,Je,Dc,TI,Dv,Ol,Fv,hI,kl,OL,UL,Lc,zL,Kc,Lv,Mv,VL,kv,HL,qL,KL,XL,jL,WL,JL,$L,ZL,eM,tM,iM,nM,kc,rM,oM,sM,fg,Pv,Yc,aM,lM,AM,cM,Vc,Nv,Gv,uM,fM,gM,dM,cg,pM,mM,EM,IM,_M,xM,BM,wM,vM,SM,rg,TM,RM,Pl,Uw,zw,Yw,uI,Vw,QM,bM,DM,FM,LM,Pc,MM,Ov,Uv,Hw,kM,og,fa,PM,NM,Wn,zv,Yv,GM,qw,gg,Kw,Xw,jw,Ww,Jw,$w,Zw,ev,tv,hg,vo,fI,iv,gI,nv,rv,ov,sv,sg,ag,av,lv,Av,cv,hv,dI,uv,fv,yt,Vv,Hv,OM,UM,zM,YM,gv,ga,qv,Kv,Xv,jv,HM,dv,pI,mI,qM,Wv,KM,XM,jM,WM,JM,$M,ZM,ek,tk,ik,nk,rk,ok,sk,To,lk,Jv,Ak,ck,Hc,EI,II,hk,pv,uk,gk,dk,pk,mk,Ek,Ik,Vre,Hre,qre,Kre,Xre,Ck,jre,Wre,dg,kI=Xi(()=>{zF=0,mv=1,YF=2,VF=3,HF=258,RI=29,qc=256,Nc=qc+1+RI,Nl=30,QI=19,Ev=2*Nc+1,la=15,sI=16,qF=7,bI=256,Iv=16,Cv=17,yv=18,CI=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),lg=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),KF=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),_v=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),XF=512,So=new Array((Nc+2)*2);Ul(So);Mc=new Array(Nl*2);Ul(Mc);Gc=new Array(XF);Ul(Gc);Oc=new Array(HF-VF+1);Ul(Oc);DI=new Array(RI);Ul(DI);Ag=new Array(Nl);Ul(Ag);vv=i=>i<256?Gc[i]:Gc[256+(i>>>7)],Uc=(i,e)=>{i.pending_buf[i.pending++]=e&255,i.pending_buf[i.pending++]=e>>>8&255},un=(i,e,t)=>{i.bi_valid>sI-t?(i.bi_buf|=e<>sI-i.bi_valid,i.bi_valid+=t-sI):(i.bi_buf|=e<{un(i,t[e*2],t[e*2+1])},Sv=(i,e)=>{let t=0;do t|=i&1,i>>>=1,t<<=1;while(--e>0);return t>>>1},jF=i=>{i.bi_valid===16?(Uc(i,i.bi_buf),i.bi_buf=0,i.bi_valid=0):i.bi_valid>=8&&(i.pending_buf[i.pending++]=i.bi_buf&255,i.bi_buf>>=8,i.bi_valid-=8)},WF=(i,e)=>{let t=e.dyn_tree,n=e.max_code,r=e.stat_desc.static_tree,o=e.stat_desc.has_stree,s=e.stat_desc.extra_bits,a=e.stat_desc.extra_base,l=e.stat_desc.max_length,A,c,h,u,f,g,p=0;for(u=0;u<=la;u++)i.bl_count[u]=0;for(t[i.heap[i.heap_max]*2+1]=0,A=i.heap_max+1;Al&&(u=l,p++),t[c*2+1]=u,!(c>n)&&(i.bl_count[u]++,f=0,c>=a&&(f=s[c-a]),g=t[c*2],i.opt_len+=g*(u+f),o&&(i.static_len+=g*(r[c*2+1]+f)));if(p!==0){do{for(u=l-1;i.bl_count[u]===0;)u--;i.bl_count[u]--,i.bl_count[u+1]+=2,i.bl_count[l]--,p-=2}while(p>0);for(u=l;u!==0;u--)for(c=i.bl_count[u];c!==0;)h=i.heap[--A],!(h>n)&&(t[h*2+1]!==u&&(i.opt_len+=(u-t[h*2+1])*t[h*2],t[h*2+1]=u),c--)}},Tv=(i,e,t)=>{let n=new Array(la+1),r=0,o,s;for(o=1;o<=la;o++)r=r+t[o-1]<<1,n[o]=r;for(s=0;s<=e;s++){let a=i[s*2+1];a!==0&&(i[s*2]=Sv(n[a]++,a))}},JF=()=>{let i,e,t,n,r,o=new Array(la+1);for(t=0,n=0;n>=7;n{let e;for(e=0;e{i.bi_valid>8?Uc(i,i.bi_buf):i.bi_valid>0&&(i.pending_buf[i.pending++]=i.bi_buf),i.bi_buf=0,i.bi_valid=0},Fw=(i,e,t,n)=>{let r=e*2,o=t*2;return i[r]{let n=i.heap[t],r=t<<1;for(;r<=i.heap_len&&(r{let n,r,o=0,s,a;if(i.sym_next!==0)do n=i.pending_buf[i.sym_buf+o++]&255,n+=(i.pending_buf[i.sym_buf+o++]&255)<<8,r=i.pending_buf[i.sym_buf+o++],n===0?Ur(i,r,e):(s=Oc[r],Ur(i,s+qc+1,e),a=CI[s],a!==0&&(r-=DI[s],un(i,r,a)),n--,s=vv(n),Ur(i,s,t),a=lg[s],a!==0&&(n-=Ag[s],un(i,n,a)));while(o{let t=e.dyn_tree,n=e.stat_desc.static_tree,r=e.stat_desc.has_stree,o=e.stat_desc.elems,s,a,l=-1,A;for(i.heap_len=0,i.heap_max=Ev,s=0;s>1;s>=1;s--)AI(i,t,s);A=o;do s=i.heap[1],i.heap[1]=i.heap[i.heap_len--],AI(i,t,1),a=i.heap[1],i.heap[--i.heap_max]=s,i.heap[--i.heap_max]=a,t[A*2]=t[s*2]+t[a*2],i.depth[A]=(i.depth[s]>=i.depth[a]?i.depth[s]:i.depth[a])+1,t[s*2+1]=t[a*2+1]=A,i.heap[1]=A++,AI(i,t,1);while(i.heap_len>=2);i.heap[--i.heap_max]=i.heap[1],WF(i,e),Tv(t,l,i.bl_count)},Mw=(i,e,t)=>{let n,r=-1,o,s=e[0*2+1],a=0,l=7,A=4;for(s===0&&(l=138,A=3),e[(t+1)*2+1]=65535,n=0;n<=t;n++)o=s,s=e[(n+1)*2+1],!(++a{let n,r=-1,o,s=e[0*2+1],a=0,l=7,A=4;for(s===0&&(l=138,A=3),n=0;n<=t;n++)if(o=s,s=e[(n+1)*2+1],!(++a{let e;for(Mw(i,i.dyn_ltree,i.l_desc.max_code),Mw(i,i.dyn_dtree,i.d_desc.max_code),yI(i,i.bl_desc),e=QI-1;e>=3&&i.bl_tree[_v[e]*2+1]===0;e--);return i.opt_len+=3*(e+1)+5+5+4,e},ZF=(i,e,t,n)=>{let r;for(un(i,e-257,5),un(i,t-1,5),un(i,n-4,4),r=0;r{let e=4093624447,t;for(t=0;t<=31;t++,e>>>=1)if(e&1&&i.dyn_ltree[t*2]!==0)return 0;if(i.dyn_ltree[9*2]!==0||i.dyn_ltree[10*2]!==0||i.dyn_ltree[13*2]!==0)return 1;for(t=32;t{Pw||(JF(),Pw=!0),i.l_desc=new lI(i.dyn_ltree,xv),i.d_desc=new lI(i.dyn_dtree,Bv),i.bl_desc=new lI(i.bl_tree,wv),i.bi_buf=0,i.bi_valid=0,Rv(i)},bv=(i,e,t,n)=>{un(i,(zF<<1)+(n?1:0),3),Qv(i),Uc(i,t),Uc(i,~t),t&&i.pending_buf.set(i.window.subarray(e,e+t),i.pending),i.pending+=t},iL=i=>{un(i,mv<<1,3),Ur(i,bI,So),jF(i)},nL=(i,e,t,n)=>{let r,o,s=0;i.level>0?(i.strm.data_type===2&&(i.strm.data_type=eL(i)),yI(i,i.l_desc),yI(i,i.d_desc),s=$F(i),r=i.opt_len+3+7>>>3,o=i.static_len+3+7>>>3,o<=r&&(r=o)):r=o=t+5,t+4<=r&&e!==-1?bv(i,e,t,n):i.strategy===4||o===r?(un(i,(mv<<1)+(n?1:0),3),Lw(i,So,Mc)):(un(i,(YF<<1)+(n?1:0),3),ZF(i,i.l_desc.max_code+1,i.d_desc.max_code+1,s+1),Lw(i,i.dyn_ltree,i.dyn_dtree)),Rv(i),n&&Qv(i)},rL=(i,e,t)=>(i.pending_buf[i.sym_buf+i.sym_next++]=e,i.pending_buf[i.sym_buf+i.sym_next++]=e>>8,i.pending_buf[i.sym_buf+i.sym_next++]=t,e===0?i.dyn_ltree[t*2]++:(i.matches++,e--,i.dyn_ltree[(Oc[t]+qc+1)*2]++,i.dyn_dtree[vv(e)*2]++),i.sym_next===i.sym_end),oL=tL,sL=bv,aL=nL,lL=rL,AL=iL,cL={_tr_init:oL,_tr_stored_block:sL,_tr_flush_block:aL,_tr_tally:lL,_tr_align:AL},hL=(i,e,t,n)=>{let r=i&65535|0,o=i>>>16&65535|0,s=0;for(;t!==0;){s=t>2e3?2e3:t,t-=s;do r=r+e[n++]|0,o=o+r|0;while(--s);r%=65521,o%=65521}return r|o<<16|0},zc=hL,uL=()=>{let i,e=[];for(var t=0;t<256;t++){i=t;for(var n=0;n<8;n++)i=i&1?3988292384^i>>>1:i>>>1;e[t]=i}return e},fL=new Uint32Array(uL()),gL=(i,e,t,n)=>{let r=fL,o=n+t;i^=-1;for(let s=n;s>>8^r[(i^e[s])&255];return i^-1},ei=gL,ha={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},zl={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},{_tr_init:dL,_tr_stored_block:_I,_tr_flush_block:pL,_tr_tally:ws,_tr_align:mL}=cL,{Z_NO_FLUSH:vs,Z_PARTIAL_FLUSH:EL,Z_FULL_FLUSH:IL,Z_FINISH:jn,Z_BLOCK:Nw,Z_OK:ui,Z_STREAM_END:Gw,Z_STREAM_ERROR:zr,Z_DATA_ERROR:CL,Z_BUF_ERROR:cI,Z_DEFAULT_COMPRESSION:yL,Z_FILTERED:_L,Z_HUFFMAN_ONLY:ng,Z_RLE:xL,Z_FIXED:BL,Z_DEFAULT_STRATEGY:wL,Z_UNKNOWN:vL,Z_DEFLATED:ug}=zl,SL=9,TL=15,RL=8,QL=29,bL=256,xI=bL+1+QL,DL=30,FL=19,LL=2*xI+1,ML=15,Ge=3,Bs=258,Yr=Bs+Ge+1,kL=32,Gl=42,FI=57,BI=69,wI=73,vI=91,SI=103,Aa=113,Fc=666,Yi=1,Yl=2,ua=3,Vl=4,PL=3,ca=(i,e)=>(i.msg=ha[e],e),Ow=i=>i*2-(i>4?9:0),xs=i=>{let e=i.length;for(;--e>=0;)i[e]=0},NL=i=>{let e,t,n,r=i.w_size;e=i.hash_size,n=e;do t=i.head[--n],i.head[n]=t>=r?t-r:0;while(--e);e=r,n=e;do t=i.prev[--n],i.prev[n]=t>=r?t-r:0;while(--e)},GL=(i,e,t)=>(e<{let e=i.state,t=e.pending;t>i.avail_out&&(t=i.avail_out),t!==0&&(i.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+t),i.next_out),i.next_out+=t,e.pending_out+=t,i.total_out+=t,i.avail_out-=t,e.pending-=t,e.pending===0&&(e.pending_out=0))},wn=(i,e)=>{pL(i,i.block_start>=0?i.block_start:-1,i.strstart-i.block_start,e),i.block_start=i.strstart,Bn(i.strm)},Je=(i,e)=>{i.pending_buf[i.pending++]=e},Dc=(i,e)=>{i.pending_buf[i.pending++]=e>>>8&255,i.pending_buf[i.pending++]=e&255},TI=(i,e,t,n)=>{let r=i.avail_in;return r>n&&(r=n),r===0?0:(i.avail_in-=r,e.set(i.input.subarray(i.next_in,i.next_in+r),t),i.state.wrap===1?i.adler=zc(i.adler,e,r,t):i.state.wrap===2&&(i.adler=ei(i.adler,e,r,t)),i.next_in+=r,i.total_in+=r,r)},Dv=(i,e)=>{let t=i.max_chain_length,n=i.strstart,r,o,s=i.prev_length,a=i.nice_match,l=i.strstart>i.w_size-Yr?i.strstart-(i.w_size-Yr):0,A=i.window,c=i.w_mask,h=i.prev,u=i.strstart+Bs,f=A[n+s-1],g=A[n+s];i.prev_length>=i.good_match&&(t>>=2),a>i.lookahead&&(a=i.lookahead);do if(r=e,!(A[r+s]!==g||A[r+s-1]!==f||A[r]!==A[n]||A[++r]!==A[n+1])){n+=2,r++;do;while(A[++n]===A[++r]&&A[++n]===A[++r]&&A[++n]===A[++r]&&A[++n]===A[++r]&&A[++n]===A[++r]&&A[++n]===A[++r]&&A[++n]===A[++r]&&A[++n]===A[++r]&&ns){if(i.match_start=e,s=o,o>=a)break;f=A[n+s-1],g=A[n+s]}}while((e=h[e&c])>l&&--t!==0);return s<=i.lookahead?s:i.lookahead},Ol=i=>{let e=i.w_size,t,n,r;do{if(n=i.window_size-i.lookahead-i.strstart,i.strstart>=e+(e-Yr)&&(i.window.set(i.window.subarray(e,e+e-n),0),i.match_start-=e,i.strstart-=e,i.block_start-=e,i.insert>i.strstart&&(i.insert=i.strstart),NL(i),n+=e),i.strm.avail_in===0)break;if(t=TI(i.strm,i.window,i.strstart+i.lookahead,n),i.lookahead+=t,i.lookahead+i.insert>=Ge)for(r=i.strstart-i.insert,i.ins_h=i.window[r],i.ins_h=Ss(i,i.ins_h,i.window[r+1]);i.insert&&(i.ins_h=Ss(i,i.ins_h,i.window[r+Ge-1]),i.prev[r&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=r,r++,i.insert--,!(i.lookahead+i.insert{let t=i.pending_buf_size-5>i.w_size?i.w_size:i.pending_buf_size-5,n,r,o,s=0,a=i.strm.avail_in;do{if(n=65535,o=i.bi_valid+42>>3,i.strm.avail_outr+i.strm.avail_in&&(n=r+i.strm.avail_in),n>o&&(n=o),n>8,i.pending_buf[i.pending-2]=~n,i.pending_buf[i.pending-1]=~n>>8,Bn(i.strm),r&&(r>n&&(r=n),i.strm.output.set(i.window.subarray(i.block_start,i.block_start+r),i.strm.next_out),i.strm.next_out+=r,i.strm.avail_out-=r,i.strm.total_out+=r,i.block_start+=r,n-=r),n&&(TI(i.strm,i.strm.output,i.strm.next_out,n),i.strm.next_out+=n,i.strm.avail_out-=n,i.strm.total_out+=n)}while(s===0);return a-=i.strm.avail_in,a&&(a>=i.w_size?(i.matches=2,i.window.set(i.strm.input.subarray(i.strm.next_in-i.w_size,i.strm.next_in),0),i.strstart=i.w_size,i.insert=i.strstart):(i.window_size-i.strstart<=a&&(i.strstart-=i.w_size,i.window.set(i.window.subarray(i.w_size,i.w_size+i.strstart),0),i.matches<2&&i.matches++,i.insert>i.strstart&&(i.insert=i.strstart)),i.window.set(i.strm.input.subarray(i.strm.next_in-a,i.strm.next_in),i.strstart),i.strstart+=a,i.insert+=a>i.w_size-i.insert?i.w_size-i.insert:a),i.block_start=i.strstart),i.high_watero&&i.block_start>=i.w_size&&(i.block_start-=i.w_size,i.strstart-=i.w_size,i.window.set(i.window.subarray(i.w_size,i.w_size+i.strstart),0),i.matches<2&&i.matches++,o+=i.w_size,i.insert>i.strstart&&(i.insert=i.strstart)),o>i.strm.avail_in&&(o=i.strm.avail_in),o&&(TI(i.strm,i.window,i.strstart,o),i.strstart+=o,i.insert+=o>i.w_size-i.insert?i.w_size-i.insert:o),i.high_water>3,o=i.pending_buf_size-o>65535?65535:i.pending_buf_size-o,t=o>i.w_size?i.w_size:o,r=i.strstart-i.block_start,(r>=t||(r||e===jn)&&e!==vs&&i.strm.avail_in===0&&r<=o)&&(n=r>o?o:r,s=e===jn&&i.strm.avail_in===0&&n===r?1:0,_I(i,i.block_start,n,s),i.block_start+=n,Bn(i.strm)),s?ua:Yi)},hI=(i,e)=>{let t,n;for(;;){if(i.lookahead=Ge&&(i.ins_h=Ss(i,i.ins_h,i.window[i.strstart+Ge-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart),t!==0&&i.strstart-t<=i.w_size-Yr&&(i.match_length=Dv(i,t)),i.match_length>=Ge)if(n=ws(i,i.strstart-i.match_start,i.match_length-Ge),i.lookahead-=i.match_length,i.match_length<=i.max_lazy_match&&i.lookahead>=Ge){i.match_length--;do i.strstart++,i.ins_h=Ss(i,i.ins_h,i.window[i.strstart+Ge-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart;while(--i.match_length!==0);i.strstart++}else i.strstart+=i.match_length,i.match_length=0,i.ins_h=i.window[i.strstart],i.ins_h=Ss(i,i.ins_h,i.window[i.strstart+1]);else n=ws(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++;if(n&&(wn(i,!1),i.strm.avail_out===0))return Yi}return i.insert=i.strstart{let t,n,r;for(;;){if(i.lookahead=Ge&&(i.ins_h=Ss(i,i.ins_h,i.window[i.strstart+Ge-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart),i.prev_length=i.match_length,i.prev_match=i.match_start,i.match_length=Ge-1,t!==0&&i.prev_length4096)&&(i.match_length=Ge-1)),i.prev_length>=Ge&&i.match_length<=i.prev_length){r=i.strstart+i.lookahead-Ge,n=ws(i,i.strstart-1-i.prev_match,i.prev_length-Ge),i.lookahead-=i.prev_length-1,i.prev_length-=2;do++i.strstart<=r&&(i.ins_h=Ss(i,i.ins_h,i.window[i.strstart+Ge-1]),t=i.prev[i.strstart&i.w_mask]=i.head[i.ins_h],i.head[i.ins_h]=i.strstart);while(--i.prev_length!==0);if(i.match_available=0,i.match_length=Ge-1,i.strstart++,n&&(wn(i,!1),i.strm.avail_out===0))return Yi}else if(i.match_available){if(n=ws(i,0,i.window[i.strstart-1]),n&&wn(i,!1),i.strstart++,i.lookahead--,i.strm.avail_out===0)return Yi}else i.match_available=1,i.strstart++,i.lookahead--}return i.match_available&&(n=ws(i,0,i.window[i.strstart-1]),i.match_available=0),i.insert=i.strstart{let t,n,r,o,s=i.window;for(;;){if(i.lookahead<=Bs){if(Ol(i),i.lookahead<=Bs&&e===vs)return Yi;if(i.lookahead===0)break}if(i.match_length=0,i.lookahead>=Ge&&i.strstart>0&&(r=i.strstart-1,n=s[r],n===s[++r]&&n===s[++r]&&n===s[++r])){o=i.strstart+Bs;do;while(n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&n===s[++r]&&ri.lookahead&&(i.match_length=i.lookahead)}if(i.match_length>=Ge?(t=ws(i,1,i.match_length-Ge),i.lookahead-=i.match_length,i.strstart+=i.match_length,i.match_length=0):(t=ws(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++),t&&(wn(i,!1),i.strm.avail_out===0))return Yi}return i.insert=0,e===jn?(wn(i,!0),i.strm.avail_out===0?ua:Vl):i.sym_next&&(wn(i,!1),i.strm.avail_out===0)?Yi:Yl},UL=(i,e)=>{let t;for(;;){if(i.lookahead===0&&(Ol(i),i.lookahead===0)){if(e===vs)return Yi;break}if(i.match_length=0,t=ws(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++,t&&(wn(i,!1),i.strm.avail_out===0))return Yi}return i.insert=0,e===jn?(wn(i,!0),i.strm.avail_out===0?ua:Vl):i.sym_next&&(wn(i,!1),i.strm.avail_out===0)?Yi:Yl};Lc=[new Or(0,0,0,0,Fv),new Or(4,4,8,4,hI),new Or(4,5,16,8,hI),new Or(4,6,32,32,hI),new Or(4,4,16,16,kl),new Or(8,16,32,32,kl),new Or(8,16,128,128,kl),new Or(8,32,128,256,kl),new Or(32,128,258,1024,kl),new Or(32,258,258,4096,kl)],zL=i=>{i.window_size=2*i.w_size,xs(i.head),i.max_lazy_match=Lc[i.level].max_lazy,i.good_match=Lc[i.level].good_length,i.nice_match=Lc[i.level].nice_length,i.max_chain_length=Lc[i.level].max_chain,i.strstart=0,i.block_start=0,i.lookahead=0,i.insert=0,i.match_length=i.prev_length=Ge-1,i.match_available=0,i.ins_h=0};Kc=i=>{if(!i)return 1;let e=i.state;return!e||e.strm!==i||e.status!==Gl&&e.status!==FI&&e.status!==BI&&e.status!==wI&&e.status!==vI&&e.status!==SI&&e.status!==Aa&&e.status!==Fc?1:0},Lv=i=>{if(Kc(i))return ca(i,zr);i.total_in=i.total_out=0,i.data_type=vL;let e=i.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?FI:e.wrap?Gl:Aa,i.adler=e.wrap===2?0:1,e.last_flush=-2,dL(e),ui},Mv=i=>{let e=Lv(i);return e===ui&&zL(i.state),e},VL=(i,e)=>Kc(i)||i.state.wrap!==2?zr:(i.state.gzhead=e,ui),kv=(i,e,t,n,r,o)=>{if(!i)return zr;let s=1;if(e===yL&&(e=6),n<0?(s=0,n=-n):n>15&&(s=2,n-=16),r<1||r>SL||t!==ug||n<8||n>15||e<0||e>9||o<0||o>BL||n===8&&s!==1)return ca(i,zr);n===8&&(n=9);let a=new YL;return i.state=a,a.strm=i,a.status=Gl,a.wrap=s,a.gzhead=null,a.w_bits=n,a.w_size=1<kv(i,e,ug,TL,RL,wL),qL=(i,e)=>{if(Kc(i)||e>Nw||e<0)return i?ca(i,zr):zr;let t=i.state;if(!i.output||i.avail_in!==0&&!i.input||t.status===Fc&&e!==jn)return ca(i,i.avail_out===0?cI:zr);let n=t.last_flush;if(t.last_flush=e,t.pending!==0){if(Bn(i),i.avail_out===0)return t.last_flush=-1,ui}else if(i.avail_in===0&&Ow(e)<=Ow(n)&&e!==jn)return ca(i,cI);if(t.status===Fc&&i.avail_in!==0)return ca(i,cI);if(t.status===Gl&&t.wrap===0&&(t.status=Aa),t.status===Gl){let r=ug+(t.w_bits-8<<4)<<8,o=-1;if(t.strategy>=ng||t.level<2?o=0:t.level<6?o=1:t.level===6?o=2:o=3,r|=o<<6,t.strstart!==0&&(r|=kL),r+=31-r%31,Dc(t,r),t.strstart!==0&&(Dc(t,i.adler>>>16),Dc(t,i.adler&65535)),i.adler=1,t.status=Aa,Bn(i),t.pending!==0)return t.last_flush=-1,ui}if(t.status===FI){if(i.adler=0,Je(t,31),Je(t,139),Je(t,8),t.gzhead)Je(t,(t.gzhead.text?1:0)+(t.gzhead.hcrc?2:0)+(t.gzhead.extra?4:0)+(t.gzhead.name?8:0)+(t.gzhead.comment?16:0)),Je(t,t.gzhead.time&255),Je(t,t.gzhead.time>>8&255),Je(t,t.gzhead.time>>16&255),Je(t,t.gzhead.time>>24&255),Je(t,t.level===9?2:t.strategy>=ng||t.level<2?4:0),Je(t,t.gzhead.os&255),t.gzhead.extra&&t.gzhead.extra.length&&(Je(t,t.gzhead.extra.length&255),Je(t,t.gzhead.extra.length>>8&255)),t.gzhead.hcrc&&(i.adler=ei(i.adler,t.pending_buf,t.pending,0)),t.gzindex=0,t.status=BI;else if(Je(t,0),Je(t,0),Je(t,0),Je(t,0),Je(t,0),Je(t,t.level===9?2:t.strategy>=ng||t.level<2?4:0),Je(t,PL),t.status=Aa,Bn(i),t.pending!==0)return t.last_flush=-1,ui}if(t.status===BI){if(t.gzhead.extra){let r=t.pending,o=(t.gzhead.extra.length&65535)-t.gzindex;for(;t.pending+o>t.pending_buf_size;){let a=t.pending_buf_size-t.pending;if(t.pending_buf.set(t.gzhead.extra.subarray(t.gzindex,t.gzindex+a),t.pending),t.pending=t.pending_buf_size,t.gzhead.hcrc&&t.pending>r&&(i.adler=ei(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex+=a,Bn(i),t.pending!==0)return t.last_flush=-1,ui;r=0,o-=a}let s=new Uint8Array(t.gzhead.extra);t.pending_buf.set(s.subarray(t.gzindex,t.gzindex+o),t.pending),t.pending+=o,t.gzhead.hcrc&&t.pending>r&&(i.adler=ei(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex=0}t.status=wI}if(t.status===wI){if(t.gzhead.name){let r=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>r&&(i.adler=ei(i.adler,t.pending_buf,t.pending-r,r)),Bn(i),t.pending!==0)return t.last_flush=-1,ui;r=0}t.gzindexr&&(i.adler=ei(i.adler,t.pending_buf,t.pending-r,r)),t.gzindex=0}t.status=vI}if(t.status===vI){if(t.gzhead.comment){let r=t.pending,o;do{if(t.pending===t.pending_buf_size){if(t.gzhead.hcrc&&t.pending>r&&(i.adler=ei(i.adler,t.pending_buf,t.pending-r,r)),Bn(i),t.pending!==0)return t.last_flush=-1,ui;r=0}t.gzindexr&&(i.adler=ei(i.adler,t.pending_buf,t.pending-r,r))}t.status=SI}if(t.status===SI){if(t.gzhead.hcrc){if(t.pending+2>t.pending_buf_size&&(Bn(i),t.pending!==0))return t.last_flush=-1,ui;Je(t,i.adler&255),Je(t,i.adler>>8&255),i.adler=0}if(t.status=Aa,Bn(i),t.pending!==0)return t.last_flush=-1,ui}if(i.avail_in!==0||t.lookahead!==0||e!==vs&&t.status!==Fc){let r=t.level===0?Fv(t,e):t.strategy===ng?UL(t,e):t.strategy===xL?OL(t,e):Lc[t.level].func(t,e);if((r===ua||r===Vl)&&(t.status=Fc),r===Yi||r===ua)return i.avail_out===0&&(t.last_flush=-1),ui;if(r===Yl&&(e===EL?mL(t):e!==Nw&&(_I(t,0,0,!1),e===IL&&(xs(t.head),t.lookahead===0&&(t.strstart=0,t.block_start=0,t.insert=0))),Bn(i),i.avail_out===0))return t.last_flush=-1,ui}return e!==jn?ui:t.wrap<=0?Gw:(t.wrap===2?(Je(t,i.adler&255),Je(t,i.adler>>8&255),Je(t,i.adler>>16&255),Je(t,i.adler>>24&255),Je(t,i.total_in&255),Je(t,i.total_in>>8&255),Je(t,i.total_in>>16&255),Je(t,i.total_in>>24&255)):(Dc(t,i.adler>>>16),Dc(t,i.adler&65535)),Bn(i),t.wrap>0&&(t.wrap=-t.wrap),t.pending!==0?ui:Gw)},KL=i=>{if(Kc(i))return zr;let e=i.state.status;return i.state=null,e===Aa?ca(i,CL):ui},XL=(i,e)=>{let t=e.length;if(Kc(i))return zr;let n=i.state,r=n.wrap;if(r===2||r===1&&n.status!==Gl||n.lookahead)return zr;if(r===1&&(i.adler=zc(i.adler,e,t,0)),n.wrap=0,t>=n.w_size){r===0&&(xs(n.head),n.strstart=0,n.block_start=0,n.insert=0);let l=new Uint8Array(n.w_size);l.set(e.subarray(t-n.w_size,t),0),e=l,t=n.w_size}let o=i.avail_in,s=i.next_in,a=i.input;for(i.avail_in=t,i.next_in=0,i.input=e,Ol(n);n.lookahead>=Ge;){let l=n.strstart,A=n.lookahead-(Ge-1);do n.ins_h=Ss(n,n.ins_h,n.window[l+Ge-1]),n.prev[l&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=l,l++;while(--A);n.strstart=l,n.lookahead=Ge-1,Ol(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=Ge-1,n.match_available=0,i.next_in=s,i.input=a,i.avail_in=o,n.wrap=r,ui},jL=HL,WL=kv,JL=Mv,$L=Lv,ZL=VL,eM=qL,tM=KL,iM=XL,nM="pako deflate (from Nodeca project)",kc={deflateInit:jL,deflateInit2:WL,deflateReset:JL,deflateResetKeep:$L,deflateSetHeader:ZL,deflate:eM,deflateEnd:tM,deflateSetDictionary:iM,deflateInfo:nM},rM=(i,e)=>Object.prototype.hasOwnProperty.call(i,e),oM=function(i){let e=Array.prototype.slice.call(arguments,1);for(;e.length;){let t=e.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(let n in t)rM(t,n)&&(i[n]=t[n])}}return i},sM=i=>{let e=0;for(let n=0,r=i.length;n=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1;Yc[254]=Yc[254]=1;aM=i=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(i);let e,t,n,r,o,s=i.length,a=0;for(r=0;r>>6,e[o++]=128|t&63):t<65536?(e[o++]=224|t>>>12,e[o++]=128|t>>>6&63,e[o++]=128|t&63):(e[o++]=240|t>>>18,e[o++]=128|t>>>12&63,e[o++]=128|t>>>6&63,e[o++]=128|t&63);return e},lM=(i,e)=>{if(e<65534&&i.subarray&&Pv)return String.fromCharCode.apply(null,i.length===e?i:i.subarray(0,e));let t="";for(let n=0;n{let t=e||i.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(i.subarray(0,e));let n,r,o=new Array(t*2);for(r=0,n=0;n4){o[r++]=65533,n+=a-1;continue}for(s&=a===2?31:a===3?15:7;a>1&&n1){o[r++]=65533;continue}s<65536?o[r++]=s:(s-=65536,o[r++]=55296|s>>10&1023,o[r++]=56320|s&1023)}return lM(o,r)},cM=(i,e)=>{e=e||i.length,e>i.length&&(e=i.length);let t=e-1;for(;t>=0&&(i[t]&192)===128;)t--;return t<0||t===0?e:t+Yc[i[t]]>e?t:e},Vc={string2buf:aM,buf2string:AM,utf8border:cM};Nv=hM,Gv=Object.prototype.toString,{Z_NO_FLUSH:uM,Z_SYNC_FLUSH:fM,Z_FULL_FLUSH:gM,Z_FINISH:dM,Z_OK:cg,Z_STREAM_END:pM,Z_DEFAULT_COMPRESSION:mM,Z_DEFAULT_STRATEGY:EM,Z_DEFLATED:IM}=zl;Xc.prototype.push=function(i,e){let t=this.strm,n=this.options.chunkSize,r,o;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?dM:uM,typeof i=="string"?t.input=Vc.string2buf(i):Gv.call(i)==="[object ArrayBuffer]"?t.input=new Uint8Array(i):t.input=i,t.next_in=0,t.avail_in=t.input.length;;){if(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),(o===fM||o===gM)&&t.avail_out<=6){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(r=kc.deflate(t,o),r===pM)return t.next_out>0&&this.onData(t.output.subarray(0,t.next_out)),r=kc.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===cg;if(t.avail_out===0){this.onData(t.output);continue}if(o>0&&t.next_out>0){this.onData(t.output.subarray(0,t.next_out)),t.avail_out=0;continue}if(t.avail_in===0)break}return!0};Xc.prototype.onData=function(i){this.chunks.push(i)};Xc.prototype.onEnd=function(i){i===cg&&(this.result=fg.flattenChunks(this.chunks)),this.chunks=[],this.err=i,this.msg=this.strm.msg};_M=Xc,xM=LI,BM=CM,wM=yM,vM=zl,SM={Deflate:_M,deflate:xM,deflateRaw:BM,gzip:wM,constants:vM},rg=16209,TM=16191,RM=function(e,t){let n,r,o,s,a,l,A,c,h,u,f,g,p,d,I,m,C,_,y,w,T,E,x,B,R=e.state;n=e.next_in,x=e.input,r=n+(e.avail_in-5),o=e.next_out,B=e.output,s=o-(t-e.avail_out),a=o+(e.avail_out-257),l=R.dmax,A=R.wsize,c=R.whave,h=R.wnext,u=R.window,f=R.hold,g=R.bits,p=R.lencode,d=R.distcode,I=(1<>>24,f>>>=_,g-=_,_=C>>>16&255,_===0)B[o++]=C&65535;else if(_&16){y=C&65535,_&=15,_&&(g<_&&(f+=x[n++]<>>=_,g-=_),g<15&&(f+=x[n++]<>>24,f>>>=_,g-=_,_=C>>>16&255,_&16){if(w=C&65535,_&=15,g<_&&(f+=x[n++]<l){e.msg="invalid distance too far back",R.mode=rg;break e}if(f>>>=_,g-=_,_=o-s,w>_){if(_=w-_,_>c&&R.sane){e.msg="invalid distance too far back",R.mode=rg;break e}if(T=0,E=u,h===0){if(T+=A-_,_2;)B[o++]=E[T++],B[o++]=E[T++],B[o++]=E[T++],y-=3;y&&(B[o++]=E[T++],y>1&&(B[o++]=E[T++]))}else{T=o-w;do B[o++]=B[T++],B[o++]=B[T++],B[o++]=B[T++],y-=3;while(y>2);y&&(B[o++]=B[T++],y>1&&(B[o++]=B[T++]))}}else if((_&64)===0){C=d[(C&65535)+(f&(1<<_)-1)];continue i}else{e.msg="invalid distance code",R.mode=rg;break e}break}}else if((_&64)===0){C=p[(C&65535)+(f&(1<<_)-1)];continue t}else if(_&32){R.mode=TM;break e}else{e.msg="invalid literal/length code",R.mode=rg;break e}break}}while(n>3,n-=y,g-=y<<3,f&=(1<{let l=a.bits,A=0,c=0,h=0,u=0,f=0,g=0,p=0,d=0,I=0,m=0,C,_,y,w,T,E=null,x,B=new Uint16Array(Pl+1),R=new Uint16Array(Pl+1),v=null,D,Q,S;for(A=0;A<=Pl;A++)B[A]=0;for(c=0;c=1&&B[u]===0;u--);if(f>u&&(f=u),u===0)return r[o++]=1<<24|64<<16|0,r[o++]=1<<24|64<<16|0,a.bits=1,0;for(h=1;h0&&(i===Yw||u!==1))return-1;for(R[1]=0,A=1;AUw||i===Vw&&I>zw)return 1;for(;;){D=A-p,s[c]+1=x?(Q=v[s[c]-x],S=E[s[c]-x]):(Q=96,S=0),C=1<>p)+_]=D<<24|Q<<16|S|0;while(_!==0);for(C=1<>=1;if(C!==0?(m&=C-1,m+=C):m=0,c++,--B[A]===0){if(A===u)break;A=e[t+s[c]]}if(A>f&&(m&w)!==y){for(p===0&&(p=f),T+=h,g=A-p,d=1<Uw||i===Vw&&I>zw)return 1;y=m&w,r[y]=f<<24|g<<16|T-o|0}}return m!==0&&(r[T+m]=A-p<<24|64<<16|0),a.bits=f,0},Pc=LM,MM=0,Ov=1,Uv=2,{Z_FINISH:Hw,Z_BLOCK:kM,Z_TREES:og,Z_OK:fa,Z_STREAM_END:PM,Z_NEED_DICT:NM,Z_STREAM_ERROR:Wn,Z_DATA_ERROR:zv,Z_MEM_ERROR:Yv,Z_BUF_ERROR:GM,Z_DEFLATED:qw}=zl,gg=16180,Kw=16181,Xw=16182,jw=16183,Ww=16184,Jw=16185,$w=16186,Zw=16187,ev=16188,tv=16189,hg=16190,vo=16191,fI=16192,iv=16193,gI=16194,nv=16195,rv=16196,ov=16197,sv=16198,sg=16199,ag=16200,av=16201,lv=16202,Av=16203,cv=16204,hv=16205,dI=16206,uv=16207,fv=16208,yt=16209,Vv=16210,Hv=16211,OM=852,UM=592,zM=15,YM=zM,gv=i=>(i>>>24&255)+(i>>>8&65280)+((i&65280)<<8)+((i&255)<<24);ga=i=>{if(!i)return 1;let e=i.state;return!e||e.strm!==i||e.modeHv?1:0},qv=i=>{if(ga(i))return Wn;let e=i.state;return i.total_in=i.total_out=e.total=0,i.msg="",e.wrap&&(i.adler=e.wrap&1),e.mode=gg,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(OM),e.distcode=e.distdyn=new Int32Array(UM),e.sane=1,e.back=-1,fa},Kv=i=>{if(ga(i))return Wn;let e=i.state;return e.wsize=0,e.whave=0,e.wnext=0,qv(i)},Xv=(i,e)=>{let t;if(ga(i))return Wn;let n=i.state;return e<0?(t=0,e=-e):(t=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?Wn:(n.window!==null&&n.wbits!==e&&(n.window=null),n.wrap=t,n.wbits=e,Kv(i))},jv=(i,e)=>{if(!i)return Wn;let t=new VM;i.state=t,t.strm=i,t.window=null,t.mode=gg;let n=Xv(i,e);return n!==fa&&(i.state=null),n},HM=i=>jv(i,YM),dv=!0,qM=i=>{if(dv){pI=new Int32Array(512),mI=new Int32Array(32);let e=0;for(;e<144;)i.lens[e++]=8;for(;e<256;)i.lens[e++]=9;for(;e<280;)i.lens[e++]=7;for(;e<288;)i.lens[e++]=8;for(Pc(Ov,i.lens,0,288,pI,0,i.work,{bits:9}),e=0;e<32;)i.lens[e++]=5;Pc(Uv,i.lens,0,32,mI,0,i.work,{bits:5}),dv=!1}i.lencode=pI,i.lenbits=9,i.distcode=mI,i.distbits=5},Wv=(i,e,t,n)=>{let r,o=i.state;return o.window===null&&(o.wsize=1<=o.wsize?(o.window.set(e.subarray(t-o.wsize,t),0),o.wnext=0,o.whave=o.wsize):(r=o.wsize-o.wnext,r>n&&(r=n),o.window.set(e.subarray(t-n,t-n+r),o.wnext),n-=r,n?(o.window.set(e.subarray(t-n,t),0),o.wnext=n,o.whave=o.wsize):(o.wnext+=r,o.wnext===o.wsize&&(o.wnext=0),o.whave{let t,n,r,o,s,a,l,A,c,h,u,f,g,p,d=0,I,m,C,_,y,w,T,E,x=new Uint8Array(4),B,R,v=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(ga(i)||!i.output||!i.input&&i.avail_in!==0)return Wn;t=i.state,t.mode===vo&&(t.mode=fI),s=i.next_out,r=i.output,l=i.avail_out,o=i.next_in,n=i.input,a=i.avail_in,A=t.hold,c=t.bits,h=a,u=l,E=fa;e:for(;;)switch(t.mode){case gg:if(t.wrap===0){t.mode=fI;break}for(;c<16;){if(a===0)break e;a--,A+=n[o++]<>>8&255,t.check=ei(t.check,x,2,0),A=0,c=0,t.mode=Kw;break}if(t.head&&(t.head.done=!1),!(t.wrap&1)||(((A&255)<<8)+(A>>8))%31){i.msg="incorrect header check",t.mode=yt;break}if((A&15)!==qw){i.msg="unknown compression method",t.mode=yt;break}if(A>>>=4,c-=4,T=(A&15)+8,t.wbits===0&&(t.wbits=T),T>15||T>t.wbits){i.msg="invalid window size",t.mode=yt;break}t.dmax=1<>8&1),t.flags&512&&t.wrap&4&&(x[0]=A&255,x[1]=A>>>8&255,t.check=ei(t.check,x,2,0)),A=0,c=0,t.mode=Xw;case Xw:for(;c<32;){if(a===0)break e;a--,A+=n[o++]<>>8&255,x[2]=A>>>16&255,x[3]=A>>>24&255,t.check=ei(t.check,x,4,0)),A=0,c=0,t.mode=jw;case jw:for(;c<16;){if(a===0)break e;a--,A+=n[o++]<>8),t.flags&512&&t.wrap&4&&(x[0]=A&255,x[1]=A>>>8&255,t.check=ei(t.check,x,2,0)),A=0,c=0,t.mode=Ww;case Ww:if(t.flags&1024){for(;c<16;){if(a===0)break e;a--,A+=n[o++]<>>8&255,t.check=ei(t.check,x,2,0)),A=0,c=0}else t.head&&(t.head.extra=null);t.mode=Jw;case Jw:if(t.flags&1024&&(f=t.length,f>a&&(f=a),f&&(t.head&&(T=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(n.subarray(o,o+f),T)),t.flags&512&&t.wrap&4&&(t.check=ei(t.check,n,f,o)),a-=f,o+=f,t.length-=f),t.length))break e;t.length=0,t.mode=$w;case $w:if(t.flags&2048){if(a===0)break e;f=0;do T=n[o+f++],t.head&&T&&t.length<65536&&(t.head.name+=String.fromCharCode(T));while(T&&f>9&1,t.head.done=!0),i.adler=t.check=0,t.mode=vo;break;case tv:for(;c<32;){if(a===0)break e;a--,A+=n[o++]<>>=c&7,c-=c&7,t.mode=dI;break}for(;c<3;){if(a===0)break e;a--,A+=n[o++]<>>=1,c-=1,A&3){case 0:t.mode=iv;break;case 1:if(qM(t),t.mode=sg,e===og){A>>>=2,c-=2;break e}break;case 2:t.mode=rv;break;case 3:i.msg="invalid block type",t.mode=yt}A>>>=2,c-=2;break;case iv:for(A>>>=c&7,c-=c&7;c<32;){if(a===0)break e;a--,A+=n[o++]<>>16^65535)){i.msg="invalid stored block lengths",t.mode=yt;break}if(t.length=A&65535,A=0,c=0,t.mode=gI,e===og)break e;case gI:t.mode=nv;case nv:if(f=t.length,f){if(f>a&&(f=a),f>l&&(f=l),f===0)break e;r.set(n.subarray(o,o+f),s),a-=f,o+=f,l-=f,s+=f,t.length-=f;break}t.mode=vo;break;case rv:for(;c<14;){if(a===0)break e;a--,A+=n[o++]<>>=5,c-=5,t.ndist=(A&31)+1,A>>>=5,c-=5,t.ncode=(A&15)+4,A>>>=4,c-=4,t.nlen>286||t.ndist>30){i.msg="too many length or distance symbols",t.mode=yt;break}t.have=0,t.mode=ov;case ov:for(;t.have>>=3,c-=3}for(;t.have<19;)t.lens[v[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,B={bits:t.lenbits},E=Pc(MM,t.lens,0,19,t.lencode,0,t.work,B),t.lenbits=B.bits,E){i.msg="invalid code lengths set",t.mode=yt;break}t.have=0,t.mode=sv;case sv:for(;t.have>>24,m=d>>>16&255,C=d&65535,!(I<=c);){if(a===0)break e;a--,A+=n[o++]<>>=I,c-=I,t.lens[t.have++]=C;else{if(C===16){for(R=I+2;c>>=I,c-=I,t.have===0){i.msg="invalid bit length repeat",t.mode=yt;break}T=t.lens[t.have-1],f=3+(A&3),A>>>=2,c-=2}else if(C===17){for(R=I+3;c>>=I,c-=I,T=0,f=3+(A&7),A>>>=3,c-=3}else{for(R=I+7;c>>=I,c-=I,T=0,f=11+(A&127),A>>>=7,c-=7}if(t.have+f>t.nlen+t.ndist){i.msg="invalid bit length repeat",t.mode=yt;break}for(;f--;)t.lens[t.have++]=T}}if(t.mode===yt)break;if(t.lens[256]===0){i.msg="invalid code -- missing end-of-block",t.mode=yt;break}if(t.lenbits=9,B={bits:t.lenbits},E=Pc(Ov,t.lens,0,t.nlen,t.lencode,0,t.work,B),t.lenbits=B.bits,E){i.msg="invalid literal/lengths set",t.mode=yt;break}if(t.distbits=6,t.distcode=t.distdyn,B={bits:t.distbits},E=Pc(Uv,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,B),t.distbits=B.bits,E){i.msg="invalid distances set",t.mode=yt;break}if(t.mode=sg,e===og)break e;case sg:t.mode=ag;case ag:if(a>=6&&l>=258){i.next_out=s,i.avail_out=l,i.next_in=o,i.avail_in=a,t.hold=A,t.bits=c,RM(i,u),s=i.next_out,r=i.output,l=i.avail_out,o=i.next_in,n=i.input,a=i.avail_in,A=t.hold,c=t.bits,t.mode===vo&&(t.back=-1);break}for(t.back=0;d=t.lencode[A&(1<>>24,m=d>>>16&255,C=d&65535,!(I<=c);){if(a===0)break e;a--,A+=n[o++]<>_)],I=d>>>24,m=d>>>16&255,C=d&65535,!(_+I<=c);){if(a===0)break e;a--,A+=n[o++]<>>=_,c-=_,t.back+=_}if(A>>>=I,c-=I,t.back+=I,t.length=C,m===0){t.mode=hv;break}if(m&32){t.back=-1,t.mode=vo;break}if(m&64){i.msg="invalid literal/length code",t.mode=yt;break}t.extra=m&15,t.mode=av;case av:if(t.extra){for(R=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=lv;case lv:for(;d=t.distcode[A&(1<>>24,m=d>>>16&255,C=d&65535,!(I<=c);){if(a===0)break e;a--,A+=n[o++]<>_)],I=d>>>24,m=d>>>16&255,C=d&65535,!(_+I<=c);){if(a===0)break e;a--,A+=n[o++]<>>=_,c-=_,t.back+=_}if(A>>>=I,c-=I,t.back+=I,m&64){i.msg="invalid distance code",t.mode=yt;break}t.offset=C,t.extra=m&15,t.mode=Av;case Av:if(t.extra){for(R=t.extra;c>>=t.extra,c-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){i.msg="invalid distance too far back",t.mode=yt;break}t.mode=cv;case cv:if(l===0)break e;if(f=u-l,t.offset>f){if(f=t.offset-f,f>t.whave&&t.sane){i.msg="invalid distance too far back",t.mode=yt;break}f>t.wnext?(f-=t.wnext,g=t.wsize-f):g=t.wnext-f,f>t.length&&(f=t.length),p=t.window}else p=r,g=s-t.offset,f=t.length;f>l&&(f=l),l-=f,t.length-=f;do r[s++]=p[g++];while(--f);t.length===0&&(t.mode=ag);break;case hv:if(l===0)break e;r[s++]=t.length,l--,t.mode=ag;break;case dI:if(t.wrap){for(;c<32;){if(a===0)break e;a--,A|=n[o++]<{if(ga(i))return Wn;let e=i.state;return e.window&&(e.window=null),i.state=null,fa},jM=(i,e)=>{if(ga(i))return Wn;let t=i.state;return(t.wrap&2)===0?Wn:(t.head=e,e.done=!1,fa)},WM=(i,e)=>{let t=e.length,n,r,o;return ga(i)||(n=i.state,n.wrap!==0&&n.mode!==hg)?Wn:n.mode===hg&&(r=1,r=zc(r,e,t,0),r!==n.check)?zv:(o=Wv(i,e,t,t),o?(n.mode=Vv,Yv):(n.havedict=1,fa))},JM=Kv,$M=Xv,ZM=qv,ek=HM,tk=jv,ik=KM,nk=XM,rk=jM,ok=WM,sk="pako inflate (from Nodeca project)",To={inflateReset:JM,inflateReset2:$M,inflateResetKeep:ZM,inflateInit:ek,inflateInit2:tk,inflate:ik,inflateEnd:nk,inflateGetHeader:rk,inflateSetDictionary:ok,inflateInfo:sk};lk=ak,Jv=Object.prototype.toString,{Z_NO_FLUSH:Ak,Z_FINISH:ck,Z_OK:Hc,Z_STREAM_END:EI,Z_NEED_DICT:II,Z_STREAM_ERROR:hk,Z_DATA_ERROR:pv,Z_MEM_ERROR:uk}=zl;jc.prototype.push=function(i,e){let t=this.strm,n=this.options.chunkSize,r=this.options.dictionary,o,s,a;if(this.ended)return!1;for(e===~~e?s=e:s=e===!0?ck:Ak,Jv.call(i)==="[object ArrayBuffer]"?t.input=new Uint8Array(i):t.input=i,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(n),t.next_out=0,t.avail_out=n),o=To.inflate(t,s),o===II&&r&&(o=To.inflateSetDictionary(t,r),o===Hc?o=To.inflate(t,s):o===pv&&(o=II));t.avail_in>0&&o===EI&&t.state.wrap>0&&i[t.next_in]!==0;)To.inflateReset(t),o=To.inflate(t,s);switch(o){case hk:case pv:case II:case uk:return this.onEnd(o),this.ended=!0,!1}if(a=t.avail_out,t.next_out&&(t.avail_out===0||o===EI))if(this.options.to==="string"){let l=Vc.utf8border(t.output,t.next_out),A=t.next_out-l,c=Vc.buf2string(t.output,l);t.next_out=A,t.avail_out=n-A,A&&t.output.set(t.output.subarray(l,l+A),0),this.onData(c)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(!(o===Hc&&a===0)){if(o===EI)return o=To.inflateEnd(this.strm),this.onEnd(o),this.ended=!0,!0;if(t.avail_in===0)break}}return!0};jc.prototype.onData=function(i){this.chunks.push(i)};jc.prototype.onEnd=function(i){i===Hc&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=fg.flattenChunks(this.chunks)),this.chunks=[],this.err=i,this.msg=this.strm.msg};gk=jc,dk=MI,pk=fk,mk=MI,Ek=zl,Ik={Inflate:gk,inflate:dk,inflateRaw:pk,ungzip:mk,constants:Ek},{Deflate:Vre,deflate:Hre,deflateRaw:qre,gzip:Kre}=SM,{Inflate:Xre,inflate:Ck,inflateRaw:jre,ungzip:Wre}=Ik,dg=Ck});var $v={};Zr($v,{default:()=>pg});var pg,Zv=Xi(()=>{kI();_s();pg=class extends hi{decodeBlock(e){return dg(new Uint8Array(e)).buffer}}});var eS={};Zr(eS,{default:()=>mg});var mg,tS=Xi(()=>{_s();mg=class extends hi{decodeBlock(e){let t=new DataView(e),n=[];for(let r=0;r{(function(){var i=function(){var r={};r.defaultNoDataValue=-34027999387901484e22,r.decode=function(c,h){h=h||{};var u=h.encodedMaskData||h.encodedMaskData===null,f=l(c,h.inputOffset||0,u),g=h.noDataValue!==null?h.noDataValue:r.defaultNoDataValue,p=o(f,h.pixelType||Float32Array,h.encodedMaskData,g,h.returnMask),d={width:f.width,height:f.height,pixelData:p.resultPixels,minValue:p.minValue,maxValue:f.pixels.maxValue,noDataValue:g};return p.resultMask&&(d.maskData=p.resultMask),h.returnEncodedMask&&f.mask&&(d.encodedMaskData=f.mask.bitset?f.mask.bitset:null),h.returnFileInfo&&(d.fileInfo=s(f),h.computeUsedBitDepths&&(d.fileInfo.bitDepths=a(f))),d};var o=function(c,h,u,f,g){var p=0,d=c.pixels.numBlocksX,I=c.pixels.numBlocksY,m=Math.floor(c.width/d),C=Math.floor(c.height/I),_=2*c.maxZError,y=Number.MAX_VALUE,w;u=u||(c.mask?c.mask.bitset:null);var T,E;T=new h(c.width*c.height),g&&u&&(E=new Uint8Array(c.width*c.height));for(var x=new Float32Array(m*C),B,R,v=0;v<=I;v++){var D=v!==I?C:c.height%I;if(D!==0)for(var Q=0;Q<=d;Q++){var S=Q!==d?m:c.width%d;if(S!==0){var b=v*c.width*C+Q*m,F=c.width-S,M=c.pixels.blocks[p],k,P,U;M.encoding<2?(M.encoding===0?k=M.rawData:(A(M.stuffedData,M.bitsPerPixel,M.numValidPixels,M.offset,_,x,c.pixels.maxValue),k=x),P=0):M.encoding===2?U=0:U=M.offset;var N;if(u)for(R=0;R>3],N<<=b&7),B=0;B>3]),N&128?(E&&(E[b]=1),w=M.encoding<2?k[P++]:U,y=y>w?w:y,T[b++]=w):(E&&(E[b]=0),T[b++]=f),N<<=1;b+=F}else if(M.encoding<2)for(R=0;Rw?w:y,T[b++]=w;b+=F}else for(y=y>U?U:y,R=0;R0){var d=new Uint8Array(Math.ceil(f.width*f.height/8));p=new DataView(c,h,f.mask.numBytes);var I=p.getInt16(0,!0),m=2,C=0;do{if(I>0)for(;I--;)d[C++]=p.getUint8(m++);else{var _=p.getUint8(m++);for(I=-I;I--;)d[C++]=_}I=p.getInt16(m,!0),m+=2}while(m0?1:0),E=w+(f.height%w>0?1:0);f.pixels.blocks=new Array(T*E);for(var x=0,B=0;B3)throw"Invalid block encoding ("+Q.encoding+")";if(Q.encoding===2){h++;continue}if(S!==0&&S!==2){if(S>>=6,Q.offsetType=S,S===2)Q.offset=p.getInt8(1),v++;else if(S===1)Q.offset=p.getInt16(1,!0),v+=2;else if(S===0)Q.offset=p.getFloat32(1,!0),v+=4;else throw"Invalid block offset type";if(Q.encoding===1)if(S=p.getUint8(v),v++,Q.bitsPerPixel=S&63,S>>=6,Q.numValidPixelsType=S,S===2)Q.numValidPixels=p.getUint8(v),v++;else if(S===1)Q.numValidPixels=p.getUint16(v,!0),v+=2;else if(S===0)Q.numValidPixels=p.getUint32(v,!0),v+=4;else throw"Invalid valid pixel count type"}if(h+=v,Q.encoding!==3){var b,F;if(Q.encoding===0){var M=(f.pixels.numBytes-1)/4;if(M!==Math.floor(M))throw"uncompressed block has invalid length";b=new ArrayBuffer(M*4),F=new Uint8Array(b),F.set(new Uint8Array(c,h,M*4));var k=new Float32Array(b);Q.rawData=k,h+=M*4}else if(Q.encoding===1){var P=Math.ceil(Q.numValidPixels*Q.bitsPerPixel/8),U=Math.ceil(P/4);b=new ArrayBuffer(U*4),F=new Uint8Array(b),F.set(new Uint8Array(c,h,P)),Q.stuffedData=new Uint32Array(b),h+=P}}}return f.eofOffset=h,f},A=function(c,h,u,f,g,p,d){var I=(1<=h)y=w>>>_-h&I,_-=h;else{var x=h-_;y=(w&I)<>>_}p[C]=y=c?(_=y>>>C-c&d,C-=c):(w=c-C,_=(y&d)<>>C),A[m]=u[_];else for(T=Math.ceil((p-f)/g),m=0;m=c?(_=y>>>C-c&d,C-=c):(w=c-C,_=(y&d)<>>C),A[m]=_=A?(C=_>>>m-A&g,m-=A):(I=A-m,C=(_&g)<>>m),y[d]=C=c?(y=w>>>_&d,C-=c,_+=c):(T=c-C,y=w>>>_&d,w=l[I++],C=32-T,y|=(w&(1<=c?(y=w>>>_&d,C-=c,_+=c):(T=c-C,y=w>>>_&d,w=l[I++],C=32-T,y|=(w&(1<=A?(C=y>>>_&g,m-=A,_+=A):(I=A-m,C=y>>>_&g,y=l[p++],m=32-I,C|=(y&(1<=c?(d=I>>>p-c&u,p-=c):(m=c-p,d=(I&u)<>>p),A[g]=d;return A},originalUnstuff2:function(l,A,c,h){var u=(1<=c?(I=m>>>d&u,p-=c,d+=c):(C=c-p,I=m>>>d&u,m=l[f++],p=32-C,I|=(m&(1<=359?359:u;u-=g;do A+=l[f++]<<8,c+=A+=l[f++];while(--g);A=(A&65535)+(A>>>16),c=(c&65535)+(c>>>16)}return h&1&&(c+=A+=l[f]<<8),A=(A&65535)+(A>>>16),c=(c&65535)+(c>>>16),(c<<16|A)>>>0},readHeaderInfo:function(l,A){var c=A.ptr,h=new Uint8Array(l,c,6),u={};if(u.fileIdentifierString=String.fromCharCode.apply(null,h),u.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+u.fileIdentifierString;c+=6;var f=new DataView(l,c,8),g=f.getInt32(0,!0);u.fileVersion=g,c+=4,g>=3&&(u.checksum=f.getUint32(4,!0),c+=4),f=new DataView(l,c,12),u.height=f.getUint32(0,!0),u.width=f.getUint32(4,!0),c+=8,g>=4?(u.numDims=f.getUint32(8,!0),c+=4):u.numDims=1,f=new DataView(l,c,40),u.numValidPixel=f.getUint32(0,!0),u.microBlockSize=f.getInt32(4,!0),u.blobSize=f.getInt32(8,!0),u.imageType=f.getInt32(12,!0),u.maxZError=f.getFloat64(16,!0),u.zMin=f.getFloat64(24,!0),u.zMax=f.getFloat64(32,!0),c+=40,A.headerInfo=u,A.ptr=c;var p,d;if(g>=3&&(d=g>=4?52:48,p=this.computeChecksumFletcher32(new Uint8Array(l,c-d,u.blobSize-14)),p!==u.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(l,A){var c=A.headerInfo,h=this.getDataTypeArray(c.imageType),u=c.numDims*this.getDataTypeSize(c.imageType),f=this.readSubArray(l,A.ptr,h,u),g=this.readSubArray(l,A.ptr+u,h,u);A.ptr+=2*u;var p,d=!0;for(p=0;p0){d=new Uint8Array(Math.ceil(u/8)),g=new DataView(l,c,p.numBytes);var m=g.getInt16(0,!0),C=2,_=0,y=0;do{if(m>0)for(;m--;)d[_++]=g.getUint8(C++);else for(y=g.getUint8(C++),m=-m;m--;)d[_++]=y;m=g.getInt16(C,!0),C+=2}while(C>3],w<<=T&7):w=d[T>>3],w&128&&(I[T]=1);A.pixels.resultMask=I,p.bitset=d,c+=p.numBytes}return A.ptr=c,A.mask=p,!0},readDataOneSweep:function(l,A,c,h){var u=A.ptr,f=A.headerInfo,g=f.numDims,p=f.width*f.height,d=f.imageType,I=f.numValidPixel*o.getDataTypeSize(d)*g,m,C=A.pixels.resultMask;if(c===Uint8Array)m=new Uint8Array(l,u,I);else{var _=new ArrayBuffer(I),y=new Uint8Array(_);y.set(new Uint8Array(l,u,I)),m=new c(_)}if(m.length===p*g)h?A.pixels.resultPixels=o.swapDimensionOrder(m,p,g,c,!0):A.pixels.resultPixels=m;else{A.pixels.resultPixels=new c(p*g);var w=0,T=0,E=0,x=0;if(g>1){if(h){for(T=0;T=p)return!1;var d=new Uint32Array(p-g);o.decodeBits(l,A,d);var I=[],m,C,_,y;for(m=g;m0&&(I[C].second=v<>>32-y,32-R>=y?(R+=y,R===32&&(R=0,D++,v=B[D])):(R+=y-32,D++,v=B[D],I[C].second|=v>>>32-R));var Q=0,S=0,b=new s;for(m=0;m=c?S=c:S=Q;var F=[],M,k,P,U,N,j;for(m=g;m0)if(M=[y,C],y<=S)for(k=I[C].second<=0;U--)N=k>>>U&1,N?(j.right||(j.right=new s),j=j.right):(j.left||(j.left=new s),j=j.left),U===0&&!j.val&&(j.val=M[1]);return{decodeLut:F,numBitsLUTQick:S,numBitsLUT:Q,tree:b,stuffedData:B,srcPtr:D,bitPos:R}},readHuffman:function(l,A,c,h){var u=A.headerInfo,f=u.numDims,g=A.headerInfo.height,p=A.headerInfo.width,d=p*g,I=this.readHuffmanTree(l,A),m=I.decodeLut,C=I.tree,_=I.stuffedData,y=I.srcPtr,w=I.bitPos,T=I.numBitsLUTQick,E=I.numBitsLUT,x=A.headerInfo.imageType===0?128:0,B,R,v,D=A.pixels.resultMask,Q,S,b,F,M,k,P,U=0;w>0&&(y++,w=0);var N=_[y],j=A.encodeMode===1,X=new c(d*f),z=X,q;if(f<2||j){for(q=0;q1&&(z=new c(X.buffer,d*q,d),U=0),A.headerInfo.numValidPixel===p*g)for(k=0,F=0;F>>32-T,S=Q,32-w>>64-w-T,S=Q),m[S])R=m[S][1],w+=m[S][0];else for(Q=N<>>32-E,S=Q,32-w>>64-w-E,S=Q),B=C,P=0;P>>E-P-1&1,B=b?B.right:B.left,!(B.left||B.right)){R=B.val,w=w+P+1;break}w>=32&&(w-=32,y++,N=_[y]),v=R-x,j?(M>0?v+=U:F>0?v+=z[k-p]:v+=U,v&=255,z[k]=v,U=v):z[k]=v}else for(k=0,F=0;F>>32-T,S=Q,32-w>>64-w-T,S=Q),m[S])R=m[S][1],w+=m[S][0];else for(Q=N<>>32-E,S=Q,32-w>>64-w-E,S=Q),B=C,P=0;P>>E-P-1&1,B=b?B.right:B.left,!(B.left||B.right)){R=B.val,w=w+P+1;break}w>=32&&(w-=32,y++,N=_[y]),v=R-x,j?(M>0&&D[k-1]?v+=U:F>0&&D[k-p]?v+=z[k-p]:v+=U,v&=255,z[k]=v,U=v):z[k]=v}}else for(k=0,F=0;F>>32-T,S=Q,32-w>>64-w-T,S=Q),m[S])R=m[S][1],w+=m[S][0];else for(Q=N<>>32-E,S=Q,32-w>>64-w-E,S=Q),B=C,P=0;P>>E-P-1&1,B=b?B.right:B.left,!(B.left||B.right)){R=B.val,w=w+P+1;break}w>=32&&(w-=32,y++,N=_[y]),v=R-x,z[k]=v}A.ptr=A.ptr+(y+1)*4+(w>0?4:0),A.pixels.resultPixels=X,f>1&&!h&&(A.pixels.resultPixels=o.swapDimensionOrder(X,d,f,c))},decodeBits:function(l,A,c,h,u){{var f=A.headerInfo,g=f.fileVersion,p=0,d=l.byteLength-A.ptr>=5?5:l.byteLength-A.ptr,I=new DataView(l,A.ptr,d),m=I.getUint8(0);p++;var C=m>>6,_=C===0?4:3-C,y=(m&32)>0,w=m&31,T=0;if(_===1)T=I.getUint8(p),p++;else if(_===2)T=I.getUint16(p,!0),p+=2;else if(_===4)T=I.getUint32(p,!0),p+=4;else throw"Invalid valid pixel count type";var E=2*f.maxZError,x,B,R,v,D,Q,S,b,F,M,k=f.numDims>1?f.maxValues[u]:f.zMax;if(y){for(A.counter.lut++,b=I.getUint8(p),F=w,p++,v=Math.ceil((b-1)*w/8),D=Math.ceil(v/4),B=new ArrayBuffer(D*4),R=new Uint8Array(B),A.ptr+=p,R.set(new Uint8Array(l,A.ptr,v)),S=new Uint32Array(B),A.ptr+=v,M=0;b-1>>>M;)M++;v=Math.ceil(T*M/8),D=Math.ceil(v/4),B=new ArrayBuffer(D*4),R=new Uint8Array(B),R.set(new Uint8Array(l,A.ptr,v)),x=new Uint32Array(B),A.ptr+=v,g>=3?Q=r.unstuffLUT2(S,w,b-1,h,E,k):Q=r.unstuffLUT(S,w,b-1,h,E,k),g>=3?r.unstuff2(x,c,M,T,Q):r.unstuff(x,c,M,T,Q)}else A.counter.bitstuffer++,M=w,A.ptr+=p,M>0&&(v=Math.ceil(T*M/8),D=Math.ceil(v/4),B=new ArrayBuffer(D*4),R=new Uint8Array(B),R.set(new Uint8Array(l,A.ptr,v)),x=new Uint32Array(B),A.ptr+=v,g>=3?h==null?r.originalUnstuff2(x,c,M,T):r.unstuff2(x,c,M,T,!1,h,E,k):h==null?r.originalUnstuff(x,c,M,T):r.unstuff(x,c,M,T,!1,h,E,k))}},readTiles:function(l,A,c,h){var u=A.headerInfo,f=u.width,g=u.height,p=f*g,d=u.microBlockSize,I=u.imageType,m=o.getDataTypeSize(I),C=Math.ceil(f/d),_=Math.ceil(g/d);A.pixels.numBlocksY=_,A.pixels.numBlocksX=C,A.pixels.ptr=0;var y=0,w=0,T=0,E=0,x=0,B=0,R=0,v=0,D=0,Q=0,S=0,b=0,F=0,M=0,k=0,P=0,U,N,j,X,z,q,Z=new c(d*d),ge=g%d||d,me=f%d||d,de,ve,Ve=u.numDims,Me,Se=A.pixels.resultMask,Ae=A.pixels.resultPixels,ri=u.fileVersion,gn=ri>=5?14:15,Yt,or=u.zMax,$t;for(T=0;T<_;T++)for(x=T!==_-1?d:ge,E=0;E1?($t=Ae,S=T*f*d+E*d,Ae=new c(A.pixels.resultPixels.buffer,p*Me*m,p),or=u.maxValues[Me]):$t=null,R=l.byteLength-A.ptr,U=new DataView(l,A.ptr,Math.min(10,R)),N={},P=0,v=U.getUint8(0),P++,Yt=u.fileVersion>=5?v&4:0,D=v>>6&255,Q=v>>2&gn,Q!==(E*d>>3&gn)||Yt&&Me===0)throw"integrity issue";if(q=v&3,q>3)throw A.ptr+=P,"Invalid block encoding ("+q+")";if(q===2){if(Yt)if(Se)for(y=0;y1&&!h&&(A.pixels.resultPixels=o.swapDimensionOrder(A.pixels.resultPixels,p,Ve,c))},formatFileInfo:function(l){return{fileIdentifierString:l.headerInfo.fileIdentifierString,fileVersion:l.headerInfo.fileVersion,imageType:l.headerInfo.imageType,height:l.headerInfo.height,width:l.headerInfo.width,numValidPixel:l.headerInfo.numValidPixel,microBlockSize:l.headerInfo.microBlockSize,blobSize:l.headerInfo.blobSize,maxZError:l.headerInfo.maxZError,pixelType:o.getPixelType(l.headerInfo.imageType),eofOffset:l.eofOffset,mask:l.mask?{numBytes:l.mask.numBytes}:null,pixels:{numBlocksX:l.pixels.numBlocksX,numBlocksY:l.pixels.numBlocksY,maxValue:l.headerInfo.zMax,minValue:l.headerInfo.zMin,noDataValue:l.noDataValue}}},constructConstantSurface:function(l,A){var c=l.headerInfo.zMax,h=l.headerInfo.zMin,u=l.headerInfo.maxValues,f=l.headerInfo.numDims,g=l.headerInfo.height*l.headerInfo.width,p=0,d=0,I=0,m=l.pixels.resultMask,C=l.pixels.resultPixels;if(m)if(f>1){if(A)for(p=0;p1&&h!==c)if(A)for(p=0;p=-128&&A<=127;break;case 1:c=A>=0&&A<=255;break;case 2:c=A>=-32768&&A<=32767;break;case 3:c=A>=0&&A<=65536;break;case 4:c=A>=-2147483648&&A<=2147483647;break;case 5:c=A>=0&&A<=4294967296;break;case 6:c=A>=-34027999387901484e22&&A<=34027999387901484e22;break;case 7:c=A>=-17976931348623157e292&&A<=17976931348623157e292;break;default:c=!1}return c},getDataTypeSize:function(l){var A=0;switch(l){case 0:case 1:A=1;break;case 2:case 3:A=2;break;case 4:case 5:case 6:A=4;break;case 7:A=8;break;default:A=l}return A},getDataTypeUsed:function(l,A){var c=l;switch(l){case 2:case 4:c=l-A;break;case 3:case 5:c=l-2*A;break;case 6:A===0?c=l:A===1?c=2:c=1;break;case 7:A===0?c=l:c=l-2*A+1;break;default:c=l;break}return c},getOnePixel:function(l,A,c,h){var u=0;switch(c){case 0:u=h.getInt8(A);break;case 1:u=h.getUint8(A);break;case 2:u=h.getInt16(A,!0);break;case 3:u=h.getUint16(A,!0);break;case 4:u=h.getInt32(A,!0);break;case 5:u=h.getUInt32(A,!0);break;case 6:u=h.getFloat32(A,!0);break;case 7:u=h.getFloat64(A,!0);break;default:throw"the decoder does not understand this pixel type"}return u},swapDimensionOrder:function(l,A,c,h,u){var f=0,g=0,p=0,d=0,I=l;if(c>1)if(I=new h(A*c),u)for(f=0;f5)throw"unsupported lerc version 2."+g;o.readMask(l,u),f.numValidPixel!==f.width*f.height&&!u.pixels.resultMask&&(u.pixels.resultMask=A.maskData);var d=f.width*f.height;u.pixels.resultPixels=new p(d*f.numDims),u.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var I=!A.returnPixelInterleavedDims;if(f.numValidPixel!==0)if(f.zMax===f.zMin)o.constructConstantSurface(u,I);else if(g>=4&&o.checkMinMaxRanges(l,u))o.constructConstantSurface(u,I);else{var m=new DataView(l,u.ptr,2),C=m.getUint8(0);if(u.ptr++,C)o.readDataOneSweep(l,u,p,I);else if(g>1&&f.imageType<=1&&Math.abs(f.maxZError-.5)<1e-5){var _=m.getUint8(1);if(u.ptr++,u.encodeMode=_,_>2||g<4&&_>1)throw"Invalid Huffman flag "+_;_?o.readHuffman(l,u,p,I):o.readTiles(l,u,p,I)}else o.readTiles(l,u,p,I)}u.eofOffset=u.ptr;var y;A.inputOffset?(y=u.headerInfo.blobSize+A.inputOffset-u.ptr,Math.abs(y)>=1&&(u.eofOffset=A.inputOffset+u.headerInfo.blobSize)):(y=u.headerInfo.blobSize-u.ptr,Math.abs(y)>=1&&(u.eofOffset=u.headerInfo.blobSize));var w={width:f.width,height:f.height,pixelData:u.pixels.resultPixels,minValue:f.zMin,maxValue:f.zMax,validPixelCount:f.numValidPixel,dimCount:f.numDims,dimStats:{minValues:f.minValues,maxValues:f.maxValues},maskData:u.pixels.resultMask};if(u.pixels.resultMask&&o.isValidPixelValue(f.imageType,c)){var T=u.pixels.resultMask;for(h=0;h1&&(d&&g.push(d),C.fileInfo.mask&&C.fileInfo.mask.numBytes>0&&m++),h++,I.pixels.push(C.pixelData),I.statistics.push({minValue:C.minValue,maxValue:C.maxValue,noDataValue:C.noDataValue,dimStats:C.dimStats})}var _,y,w;if(c>1&&m>1){for(w=I.width*I.height,I.bandMasks=g,d=new Uint8Array(w),d.set(g[0]),_=1;_{PI={env:{emscripten_notify_memory_growth:function(i){NI=new Uint8Array(Ro.exports.memory.buffer)}}},Ig=class{init(){return Wc||(typeof fetch<"u"?Wc=fetch("data:application/wasm;base64,"+nS).then(e=>e.arrayBuffer()).then(e=>WebAssembly.instantiate(e,PI)).then(this._init):Wc=WebAssembly.instantiate(Buffer.from(nS,"base64"),PI).then(this._init),Wc)}_init(e){Ro=e.instance,PI.env.emscripten_notify_memory_growth(0)}decode(e,t=0){if(!Ro)throw new Error("ZSTDDecoder: Await .init() before decoding.");let n=e.byteLength,r=Ro.exports.malloc(n);NI.set(e,r),t=t||Number(Ro.exports.ZSTD_findDecompressedSize(r,n));let o=Ro.exports.malloc(t),s=Ro.exports.ZSTD_decompress(o,t,r,n),a=NI.slice(o,o+s);return Ro.exports.free(r),Ro.exports.free(o),a}},nS="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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"});var aS={};Zr(aS,{default:()=>Cg,zstd:()=>sS});var oS,sS,Cg,lS=Xi(()=>{kI();oS=wa(iS(),1);rS();_s();Qc();sS=new Ig,Cg=class extends hi{constructor(e){super(),this.planarConfiguration=typeof e.PlanarConfiguration<"u"?e.PlanarConfiguration:1,this.samplesPerPixel=typeof e.SamplesPerPixel<"u"?e.SamplesPerPixel:1,this.addCompression=e.LercParameters[tI.AddCompression]}decodeBlock(e){switch(this.addCompression){case Rc.None:break;case Rc.Deflate:e=dg(new Uint8Array(e)).buffer;break;case Rc.Zstandard:e=sS.decode(new Uint8Array(e)).buffer;break;default:throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`)}return oS.default.decode(e,{returnPixelInterleavedDims:this.planarConfiguration===1}).pixels[0].buffer}}});var AS={};Zr(AS,{default:()=>yg});var yg,cS=Xi(()=>{_s();yg=class extends hi{constructor(){if(super(),typeof createImageBitmap>"u")throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if(typeof document>"u"&&typeof OffscreenCanvas>"u")throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available")}async decode(e,t){let n=new Blob([t]),r=await createImageBitmap(n),o;typeof document<"u"?(o=document.createElement("canvas"),o.width=r.width,o.height=r.height):o=new OffscreenCanvas(r.width,r.height);let s=o.getContext("2d");return s.drawImage(r,0,0),s.getImageData(0,0,r.width,r.height).data.buffer}}});var dS,pS=Xi(()=>{dS=typeof Worker<"u"?Worker:void 0});var mS={};Zr(mS,{create:()=>Tk});function Tk(){let i='function A(A,e,t,i,r,I,g){try{var n=A[I](g),a=n.value}catch(A){return void t(A)}n.done?e(a):Promise.resolve(a).then(i,r)}function e(e){return function(){var t=this,i=arguments;return new Promise((function(r,I){var g=e.apply(t,i);function n(e){A(g,r,I,n,a,"next",e)}function a(e){A(g,r,I,n,a,"throw",e)}n(void 0)}))}}function t(A){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(A){return typeof A}:function(A){return A&&"function"==typeof Symbol&&A.constructor===Symbol&&A!==Symbol.prototype?"symbol":typeof A},t(A)}var i={exports:{}};!function(A){var e=function(A){var e,i=Object.prototype,r=i.hasOwnProperty,I="function"==typeof Symbol?Symbol:{},g=I.iterator||"@@iterator",n=I.asyncIterator||"@@asyncIterator",a=I.toStringTag||"@@toStringTag";function o(A,e,t){return Object.defineProperty(A,e,{value:t,enumerable:!0,configurable:!0,writable:!0}),A[e]}try{o({},"")}catch(A){o=function(A,e,t){return A[e]=t}}function B(A,e,t,i){var r=e&&e.prototype instanceof h?e:h,I=Object.create(r.prototype),g=new S(i||[]);return I._invoke=function(A,e,t){var i=Q;return function(r,I){if(i===s)throw new Error("Generator is already running");if(i===f){if("throw"===r)throw I;return R()}for(t.method=r,t.arg=I;;){var g=t.delegate;if(g){var n=m(g,t);if(n){if(n===c)continue;return n}}if("next"===t.method)t.sent=t._sent=t.arg;else if("throw"===t.method){if(i===Q)throw i=f,t.arg;t.dispatchException(t.arg)}else"return"===t.method&&t.abrupt("return",t.arg);i=s;var a=C(A,e,t);if("normal"===a.type){if(i=t.done?f:E,a.arg===c)continue;return{value:a.arg,done:t.done}}"throw"===a.type&&(i=f,t.method="throw",t.arg=a.arg)}}}(A,t,g),I}function C(A,e,t){try{return{type:"normal",arg:A.call(e,t)}}catch(A){return{type:"throw",arg:A}}}A.wrap=B;var Q="suspendedStart",E="suspendedYield",s="executing",f="completed",c={};function h(){}function l(){}function u(){}var w={};o(w,g,(function(){return this}));var d=Object.getPrototypeOf,D=d&&d(d(v([])));D&&D!==i&&r.call(D,g)&&(w=D);var y=u.prototype=h.prototype=Object.create(w);function k(A){["next","throw","return"].forEach((function(e){o(A,e,(function(A){return this._invoke(e,A)}))}))}function p(A,e){function i(I,g,n,a){var o=C(A[I],A,g);if("throw"!==o.type){var B=o.arg,Q=B.value;return Q&&"object"===t(Q)&&r.call(Q,"__await")?e.resolve(Q.__await).then((function(A){i("next",A,n,a)}),(function(A){i("throw",A,n,a)})):e.resolve(Q).then((function(A){B.value=A,n(B)}),(function(A){return i("throw",A,n,a)}))}a(o.arg)}var I;this._invoke=function(A,t){function r(){return new e((function(e,r){i(A,t,e,r)}))}return I=I?I.then(r,r):r()}}function m(A,t){var i=A.iterator[t.method];if(i===e){if(t.delegate=null,"throw"===t.method){if(A.iterator.return&&(t.method="return",t.arg=e,m(A,t),"throw"===t.method))return c;t.method="throw",t.arg=new TypeError("The iterator does not provide a \'throw\' method")}return c}var r=C(i,A.iterator,t.arg);if("throw"===r.type)return t.method="throw",t.arg=r.arg,t.delegate=null,c;var I=r.arg;return I?I.done?(t[A.resultName]=I.value,t.next=A.nextLoc,"return"!==t.method&&(t.method="next",t.arg=e),t.delegate=null,c):I:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,c)}function G(A){var e={tryLoc:A[0]};1 in A&&(e.catchLoc=A[1]),2 in A&&(e.finallyLoc=A[2],e.afterLoc=A[3]),this.tryEntries.push(e)}function F(A){var e=A.completion||{};e.type="normal",delete e.arg,A.completion=e}function S(A){this.tryEntries=[{tryLoc:"root"}],A.forEach(G,this),this.reset(!0)}function v(A){if(A){var t=A[g];if(t)return t.call(A);if("function"==typeof A.next)return A;if(!isNaN(A.length)){var i=-1,I=function t(){for(;++i=0;--I){var g=this.tryEntries[I],n=g.completion;if("root"===g.tryLoc)return i("end");if(g.tryLoc<=this.prev){var a=r.call(g,"catchLoc"),o=r.call(g,"finallyLoc");if(a&&o){if(this.prev=0;--t){var i=this.tryEntries[t];if(i.tryLoc<=this.prev&&r.call(i,"finallyLoc")&&this.prev=0;--e){var t=this.tryEntries[e];if(t.finallyLoc===A)return this.complete(t.completion,t.afterLoc),F(t),c}},catch:function(A){for(var e=this.tryEntries.length-1;e>=0;--e){var t=this.tryEntries[e];if(t.tryLoc===A){var i=t.completion;if("throw"===i.type){var r=i.arg;F(t)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(A,t,i){return this.delegate={iterator:v(A),resultName:t,nextLoc:i},"next"===this.method&&(this.arg=e),c}},A}(A.exports);try{regeneratorRuntime=e}catch(A){"object"===("undefined"==typeof globalThis?"undefined":t(globalThis))?globalThis.regeneratorRuntime=e:Function("r","regeneratorRuntime = r")(e)}}(i);var r=i.exports,I=new Map;function g(A,e){Array.isArray(A)||(A=[A]),A.forEach((function(A){return I.set(A,e)}))}function n(A){return a.apply(this,arguments)}function a(){return(a=e(r.mark((function A(e){var t,i;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:if(t=I.get(e.Compression)){A.next=3;break}throw new Error("Unknown compression method identifier: ".concat(e.Compression));case 3:return A.next=5,t();case 5:return i=A.sent,A.abrupt("return",new i(e));case 7:case"end":return A.stop()}}),A)})))).apply(this,arguments)}g([void 0,1],(function(){return Promise.resolve().then((function(){return y})).then((function(A){return A.default}))})),g(5,(function(){return Promise.resolve().then((function(){return F})).then((function(A){return A.default}))})),g(6,(function(){throw new Error("old style JPEG compression is not supported.")})),g(7,(function(){return Promise.resolve().then((function(){return N})).then((function(A){return A.default}))})),g([8,32946],(function(){return Promise.resolve().then((function(){return OA})).then((function(A){return A.default}))})),g(32773,(function(){return Promise.resolve().then((function(){return _A})).then((function(A){return A.default}))})),g(34887,(function(){return Promise.resolve().then((function(){return le})).then(function(){var A=e(r.mark((function A(e){return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,e.zstd.init();case 2:return A.abrupt("return",e);case 3:case"end":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}()).then((function(A){return A.default}))})),g(50001,(function(){return Promise.resolve().then((function(){return de})).then((function(A){return A.default}))}));var o=globalThis;function B(A,e){if(!(A instanceof e))throw new TypeError("Cannot call a class as a function")}function C(A,e){for(var t=0;t0;r--)A[i+e]+=A[i],i++;t-=e}while(t>0)}function l(A,e,t){for(var i=0,r=A.length,I=r/t;r>e;){for(var g=e;g>0;--g)A[i+e]+=A[i],++i;r-=e}for(var n=A.slice(),a=0;a=A.byteLength);++o){var B=void 0;if(2===e){switch(r[0]){case 8:B=new Uint8Array(A,o*a*t*n,a*t*n);break;case 16:B=new Uint16Array(A,o*a*t*n,a*t*n/2);break;case 32:B=new Uint32Array(A,o*a*t*n,a*t*n/4);break;default:throw new Error("Predictor 2 not allowed with ".concat(r[0]," bits per sample."))}h(B,a)}else 3===e&&l(B=new Uint8Array(A,o*a*t*n,a*t*n),a,n)}return A}o.addEventListener("message",function(){var A=e(r.mark((function A(e){var t,i,I,g,a,B;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return t=e.data,i=t.id,I=t.fileDirectory,g=t.buffer,A.next=3,n(I);case 3:return a=A.sent,A.next=6,a.decode(I,g);case 6:B=A.sent,o.postMessage({decoded:B,id:i},[B]);case 8:case"end":return A.stop()}}),A)})));return function(e){return A.apply(this,arguments)}}());var w=function(){function A(){B(this,A)}var t;return Q(A,[{key:"decode",value:(t=e(r.mark((function A(e,t){var i,I,g,n,a;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return A.next=2,this.decodeBlock(t);case 2:if(i=A.sent,1===(I=e.Predictor||1)){A.next=9;break}return g=!e.StripOffsets,n=g?e.TileWidth:e.ImageWidth,a=g?e.TileLength:e.RowsPerStrip||e.ImageLength,A.abrupt("return",u(i,I,n,a,e.BitsPerSample,e.PlanarConfiguration));case 9:return A.abrupt("return",i);case 10:case"end":return A.stop()}}),A,this)}))),function(A,e){return t.apply(this,arguments)})}]),A}();function d(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var D=function(A){s(t,w);var e=d(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return A}}]),t}(),y=Object.freeze({__proto__:null,default:D});function k(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}function p(A,e){for(var t=e.length-1;t>=0;t--)A.push(e[t]);return A}function m(A){for(var e=new Uint16Array(4093),t=new Uint8Array(4093),i=0;i<=257;i++)e[i]=4096,t[i]=i;var r=258,I=9,g=0;function n(){r=258,I=9}function a(A){var e=function(A,e,t){var i=e%8,r=Math.floor(e/8),I=8-i,g=e+t-8*(r+1),n=8*(r+2)-(e+t),a=8*(r+2)-e;if(n=Math.max(0,n),r>=A.length)return console.warn("ran off the end of the buffer before finding EOI_CODE (end on input code)"),257;var o=A[r]&Math.pow(2,8-i)-1,B=o<<=t-I;if(r+1>>n;B+=C<<=Math.max(0,t-a)}if(g>8&&r+2>>Q}return B}(A,g,I);return g+=I,e}function o(A,i){return t[r]=i,e[r]=A,++r-1}function B(A){for(var i=[],r=A;4096!==r;r=e[r])i.push(t[r]);return i}var C=[];n();for(var Q,E=new Uint8Array(A),s=a(E);257!==s;){if(256===s){for(n(),s=a(E);256===s;)s=a(E);if(257===s)break;if(s>256)throw new Error("corrupted code at scanline ".concat(s));p(C,B(s)),Q=s}else if(s=Math.pow(2,I)&&(12===I?Q=void 0:I++),s=a(E)}return new Uint8Array(C)}var G=function(A){s(t,w);var e=k(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return m(A).buffer}}]),t}(),F=Object.freeze({__proto__:null,default:G});function S(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var v=new Int32Array([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]);function R(A,e){for(var t=0,i=[],r=16;r>0&&!A[r-1];)--r;i.push({children:[],index:0});for(var I,g=i[0],n=0;n0;)g=i.pop();for(g.index++,i.push(g);i.length<=n;)i.push(I={children:[],index:0}),g.children[g.index]=I.children,g=I;t++}n+10)return f--,s>>f&1;if(255===(s=A[E++])){var e=A[E++];if(e)throw new Error("unexpected marker: ".concat((s<<8|e).toString(16)))}return f=7,s>>>7}function h(A){for(var e,i=A;null!==(e=c());){if("number"==typeof(i=i[e]))return i;if("object"!==t(i))throw new Error("invalid huffman sequence")}return null}function l(A){for(var e=A,t=0;e>0;){var i=c();if(null===i)return;t=t<<1|i,--e}return t}function u(A){var e=l(A);return e>=1<0)w--;else for(var t=g,i=n;t<=i;){var r=h(A.huffmanTableAC),I=15&r,a=r>>4;if(0===I){if(a<15){w=l(a)+(1<>4,0===C)r<15?(w=l(r)+(1<>4;if(0===g){if(n<15)break;r+=16}else e[v[r+=n]]=u(g),r++}};var L,b,M=0;b=1===U?r[0].blocksPerLine*r[0].blocksPerColumn:B*i.mcusPerColumn;for(var N=I||b;M=65488&&L<=65495))break;E+=2}return E-Q}function L(A,e){var t=[],i=e.blocksPerLine,r=e.blocksPerColumn,I=i<<3,g=new Int32Array(64),n=new Uint8Array(64);function a(A,t,i){var r,I,g,n,a,o,B,C,Q,E,s=e.quantizationTable,f=i;for(E=0;E<64;E++)f[E]=A[E]*s[E];for(E=0;E<8;++E){var c=8*E;0!==f[1+c]||0!==f[2+c]||0!==f[3+c]||0!==f[4+c]||0!==f[5+c]||0!==f[6+c]||0!==f[7+c]?(r=5793*f[0+c]+128>>8,I=5793*f[4+c]+128>>8,g=f[2+c],n=f[6+c],a=2896*(f[1+c]-f[7+c])+128>>8,C=2896*(f[1+c]+f[7+c])+128>>8,o=f[3+c]<<4,Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+128>>8,g=1567*g-3784*n+128>>8,n=Q,Q=a-(B=f[5+c]<<4)+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+c]=r+C,f[7+c]=r-C,f[1+c]=I+B,f[6+c]=I-B,f[2+c]=g+o,f[5+c]=g-o,f[3+c]=n+a,f[4+c]=n-a):(Q=5793*f[0+c]+512>>10,f[0+c]=Q,f[1+c]=Q,f[2+c]=Q,f[3+c]=Q,f[4+c]=Q,f[5+c]=Q,f[6+c]=Q,f[7+c]=Q)}for(E=0;E<8;++E){var h=E;0!==f[8+h]||0!==f[16+h]||0!==f[24+h]||0!==f[32+h]||0!==f[40+h]||0!==f[48+h]||0!==f[56+h]?(r=5793*f[0+h]+2048>>12,I=5793*f[32+h]+2048>>12,g=f[16+h],n=f[48+h],a=2896*(f[8+h]-f[56+h])+2048>>12,C=2896*(f[8+h]+f[56+h])+2048>>12,o=f[24+h],Q=r-I+1>>1,r=r+I+1>>1,I=Q,Q=3784*g+1567*n+2048>>12,g=1567*g-3784*n+2048>>12,n=Q,Q=a-(B=f[40+h])+1>>1,a=a+B+1>>1,B=Q,Q=C+o+1>>1,o=C-o+1>>1,C=Q,Q=r-n+1>>1,r=r+n+1>>1,n=Q,Q=I-g+1>>1,I=I+g+1>>1,g=Q,Q=2276*a+3406*C+2048>>12,a=3406*a-2276*C+2048>>12,C=Q,Q=799*o+4017*B+2048>>12,o=4017*o-799*B+2048>>12,B=Q,f[0+h]=r+C,f[56+h]=r-C,f[8+h]=I+B,f[48+h]=I-B,f[16+h]=g+o,f[40+h]=g-o,f[24+h]=n+a,f[32+h]=n-a):(Q=5793*i[E+0]+8192>>14,f[0+h]=Q,f[8+h]=Q,f[16+h]=Q,f[24+h]=Q,f[32+h]=Q,f[40+h]=Q,f[48+h]=Q,f[56+h]=Q)}for(E=0;E<64;++E){var l=128+(f[E]+8>>4);t[E]=l<0?0:l>255?255:l}}for(var o=0;o>4==0)for(var C=0;C<64;C++){B[v[C]]=A[e++]}else{if(o>>4!=1)throw new Error("DQT: invalid table spec");for(var Q=0;Q<64;Q++){B[v[Q]]=t()}}this.quantizationTables[15&o]=B}break;case 65472:case 65473:case 65474:t();for(var E={extended:65473===g,progressive:65474===g,precision:A[e++],scanLines:t(),samplesPerLine:t(),components:{},componentsOrder:[]},s=A[e++],f=void 0,c=0;c>4,l=15&A[e+1],u=A[e+2];E.componentsOrder.push(f),E.components[f]={h:h,v:l,quantizationIdx:u},e+=3}i(E),this.frames.push(E);break;case 65476:for(var w=t(),d=2;d>4==0?this.huffmanTablesDC[15&D]=R(y,m):this.huffmanTablesAC[15&D]=R(y,m)}break;case 65501:t(),this.resetInterval=t();break;case 65498:t();for(var F=A[e++],S=[],L=this.frames[0],b=0;b>4],M.huffmanTableAC=this.huffmanTablesAC[15&N],S.push(M)}var x=A[e++],J=A[e++],q=A[e++],Y=U(A,e,L,S,this.resetInterval,x,J,q>>4,15&q);e+=Y;break;case 65535:255!==A[e]&&e--;break;default:if(255===A[e-3]&&A[e-2]>=192&&A[e-2]<=254){e-=3;break}throw new Error("unknown JPEG marker ".concat(g.toString(16)))}g=t()}}},{key:"getResult",value:function(){var A=this.frames;if(0===this.frames.length)throw new Error("no frames were decoded");this.frames.length>1&&console.warn("more than one frame is not supported");for(var e=0;e=0;)A[e]=0}x(new Array(576)),x(new Array(60)),x(new Array(512)),x(new Array(256)),x(new Array(29)),x(new Array(30));var J=function(A,e,t,i){for(var r=65535&A|0,I=A>>>16&65535|0,g=0;0!==t;){t-=g=t>2e3?2e3:t;do{I=I+(r=r+e[i++]|0)|0}while(--g);r%=65521,I%=65521}return r|I<<16|0},q=new Uint32Array(function(){for(var A,e=[],t=0;t<256;t++){A=t;for(var i=0;i<8;i++)A=1&A?3988292384^A>>>1:A>>>1;e[t]=A}return e}()),Y=function(A,e,t,i){var r=q,I=i+t;A^=-1;for(var g=i;g>>8^r[255&(A^e[g])];return-1^A},K={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},H={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8},O=function(A,e){return Object.prototype.hasOwnProperty.call(A,e)},P=function(A){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var i=e.shift();if(i){if("object"!==t(i))throw new TypeError(i+"must be non-object");for(var r in i)O(i,r)&&(A[r]=i[r])}}return A},T=function(A){for(var e=0,t=0,i=A.length;t=252?6:X>=248?5:X>=240?4:X>=224?3:X>=192?2:1;_[254]=_[254]=1;var Z=function(A){if("function"==typeof TextEncoder&&TextEncoder.prototype.encode)return(new TextEncoder).encode(A);var e,t,i,r,I,g=A.length,n=0;for(r=0;r>>6,e[I++]=128|63&t):t<65536?(e[I++]=224|t>>>12,e[I++]=128|t>>>6&63,e[I++]=128|63&t):(e[I++]=240|t>>>18,e[I++]=128|t>>>12&63,e[I++]=128|t>>>6&63,e[I++]=128|63&t);return e},j=function(A,e){var t,i,r=e||A.length;if("function"==typeof TextDecoder&&TextDecoder.prototype.decode)return(new TextDecoder).decode(A.subarray(0,e));var I=new Array(2*r);for(i=0,t=0;t4)I[i++]=65533,t+=n-1;else{for(g&=2===n?31:3===n?15:7;n>1&&t1?I[i++]=65533:g<65536?I[i++]=g:(g-=65536,I[i++]=55296|g>>10&1023,I[i++]=56320|1023&g)}}}return function(A,e){if(e<65534&&A.subarray&&V)return String.fromCharCode.apply(null,A.length===e?A:A.subarray(0,e));for(var t="",i=0;iA.length&&(e=A.length);for(var t=e-1;t>=0&&128==(192&A[t]);)t--;return t<0||0===t?e:t+_[A[t]]>e?t:e};var z=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},$=function(A,e){var t,i,r,I,g,n,a,o,B,C,Q,E,s,f,c,h,l,u,w,d,D,y,k,p,m=A.state;t=A.next_in,k=A.input,i=t+(A.avail_in-5),r=A.next_out,p=A.output,I=r-(e-A.avail_out),g=r+(A.avail_out-257),n=m.dmax,a=m.wsize,o=m.whave,B=m.wnext,C=m.window,Q=m.hold,E=m.bits,s=m.lencode,f=m.distcode,c=(1<>>=u=l>>>24,E-=u,0===(u=l>>>16&255))p[r++]=65535&l;else{if(!(16&u)){if(0==(64&u)){l=s[(65535&l)+(Q&(1<>>=u,E-=u),E<15&&(Q+=k[t++]<>>=u=l>>>24,E-=u,!(16&(u=l>>>16&255))){if(0==(64&u)){l=f[(65535&l)+(Q&(1<n){A.msg="invalid distance too far back",m.mode=30;break A}if(Q>>>=u,E-=u,d>(u=r-I)){if((u=d-u)>o&&m.sane){A.msg="invalid distance too far back",m.mode=30;break A}if(D=0,y=C,0===B){if(D+=a-u,u2;)p[r++]=y[D++],p[r++]=y[D++],p[r++]=y[D++],w-=3;w&&(p[r++]=y[D++],w>1&&(p[r++]=y[D++]))}else{D=r-d;do{p[r++]=p[D++],p[r++]=p[D++],p[r++]=p[D++],w-=3}while(w>2);w&&(p[r++]=p[D++],w>1&&(p[r++]=p[D++]))}break}}break}}while(t>3,Q&=(1<<(E-=w<<3))-1,A.next_in=t,A.next_out=r,A.avail_in=t=1&&0===v[d];d--);if(D>d&&(D=d),0===d)return r[I++]=20971520,r[I++]=20971520,n.bits=1,0;for(w=1;w0&&(0===A||1!==d))return-1;for(R[1]=0,l=1;l<15;l++)R[l+1]=R[l]+v[l];for(u=0;u852||2===A&&m>592)return 1;for(;;){s=l-k,g[u]E?(f=U[L+g[u]],c=F[S+g[u]]):(f=96,c=0),a=1<>k)+(o-=a)]=s<<24|f<<16|c|0}while(0!==o);for(a=1<>=1;if(0!==a?(G&=a-1,G+=a):G=0,u++,0==--v[l]){if(l===d)break;l=e[t+g[u]]}if(l>D&&(G&C)!==B){for(0===k&&(k=D),Q+=w,p=1<<(y=l-k);y+k852||2===A&&m>592)return 1;r[B=G&C]=D<<24|y<<16|Q-I|0}}return 0!==G&&(r[Q+G]=l-k<<24|64<<16|0),n.bits=D,0},IA=H.Z_FINISH,gA=H.Z_BLOCK,nA=H.Z_TREES,aA=H.Z_OK,oA=H.Z_STREAM_END,BA=H.Z_NEED_DICT,CA=H.Z_STREAM_ERROR,QA=H.Z_DATA_ERROR,EA=H.Z_MEM_ERROR,sA=H.Z_BUF_ERROR,fA=H.Z_DEFLATED,cA=function(A){return(A>>>24&255)+(A>>>8&65280)+((65280&A)<<8)+((255&A)<<24)};function hA(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var lA,uA,wA=function(A){if(!A||!A.state)return CA;var e=A.state;return A.total_in=A.total_out=e.total=0,A.msg="",e.wrap&&(A.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(852),e.distcode=e.distdyn=new Int32Array(592),e.sane=1,e.back=-1,aA},dA=function(A){if(!A||!A.state)return CA;var e=A.state;return e.wsize=0,e.whave=0,e.wnext=0,wA(A)},DA=function(A,e){var t;if(!A||!A.state)return CA;var i=A.state;return e<0?(t=0,e=-e):(t=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?CA:(null!==i.window&&i.wbits!==e&&(i.window=null),i.wrap=t,i.wbits=e,dA(A))},yA=function(A,e){if(!A)return CA;var t=new hA;A.state=t,t.window=null;var i=DA(A,e);return i!==aA&&(A.state=null),i},kA=!0,pA=function(A){if(kA){lA=new Int32Array(512),uA=new Int32Array(32);for(var e=0;e<144;)A.lens[e++]=8;for(;e<256;)A.lens[e++]=9;for(;e<280;)A.lens[e++]=7;for(;e<288;)A.lens[e++]=8;for(rA(1,A.lens,0,288,lA,0,A.work,{bits:9}),e=0;e<32;)A.lens[e++]=5;rA(2,A.lens,0,32,uA,0,A.work,{bits:5}),kA=!1}A.lencode=lA,A.lenbits=9,A.distcode=uA,A.distbits=5},mA=function(A,e,t,i){var r,I=A.state;return null===I.window&&(I.wsize=1<=I.wsize?(I.window.set(e.subarray(t-I.wsize,t),0),I.wnext=0,I.whave=I.wsize):((r=I.wsize-I.wnext)>i&&(r=i),I.window.set(e.subarray(t-i,t-i+r),I.wnext),(i-=r)?(I.window.set(e.subarray(t-i,t),0),I.wnext=i,I.whave=I.wsize):(I.wnext+=r,I.wnext===I.wsize&&(I.wnext=0),I.whave>>8&255,t.check=Y(t.check,G,2,0),o=0,B=0,t.mode=2;break}if(t.flags=0,t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&o)<<8)+(o>>8))%31){A.msg="incorrect header check",t.mode=30;break}if((15&o)!==fA){A.msg="unknown compression method",t.mode=30;break}if(B-=4,D=8+(15&(o>>>=4)),0===t.wbits)t.wbits=D;else if(D>t.wbits){A.msg="invalid window size",t.mode=30;break}t.dmax=1<>8&1),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=3;case 3:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>8&255,G[2]=o>>>16&255,G[3]=o>>>24&255,t.check=Y(t.check,G,4,0)),o=0,B=0,t.mode=4;case 4:for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>8),512&t.flags&&(G[0]=255&o,G[1]=o>>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0,t.mode=5;case 5:if(1024&t.flags){for(;B<16;){if(0===n)break A;n--,o+=i[I++]<>>8&255,t.check=Y(t.check,G,2,0)),o=0,B=0}else t.head&&(t.head.extra=null);t.mode=6;case 6:if(1024&t.flags&&((E=t.length)>n&&(E=n),E&&(t.head&&(D=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(i.subarray(I,I+E),D)),512&t.flags&&(t.check=Y(t.check,i,E,I)),n-=E,I+=E,t.length-=E),t.length))break A;t.length=0,t.mode=7;case 7:if(2048&t.flags){if(0===n)break A;E=0;do{D=i[I+E++],t.head&&D&&t.length<65536&&(t.head.name+=String.fromCharCode(D))}while(D&&E>9&1,t.head.done=!0),A.adler=t.check=0,t.mode=12;break;case 10:for(;B<32;){if(0===n)break A;n--,o+=i[I++]<>>=7&B,B-=7&B,t.mode=27;break}for(;B<3;){if(0===n)break A;n--,o+=i[I++]<>>=1)){case 0:t.mode=14;break;case 1:if(pA(t),t.mode=20,e===nA){o>>>=2,B-=2;break A}break;case 2:t.mode=17;break;case 3:A.msg="invalid block type",t.mode=30}o>>>=2,B-=2;break;case 14:for(o>>>=7&B,B-=7&B;B<32;){if(0===n)break A;n--,o+=i[I++]<>>16^65535)){A.msg="invalid stored block lengths",t.mode=30;break}if(t.length=65535&o,o=0,B=0,t.mode=15,e===nA)break A;case 15:t.mode=16;case 16:if(E=t.length){if(E>n&&(E=n),E>a&&(E=a),0===E)break A;r.set(i.subarray(I,I+E),g),n-=E,I+=E,a-=E,g+=E,t.length-=E;break}t.mode=12;break;case 17:for(;B<14;){if(0===n)break A;n--,o+=i[I++]<>>=5,B-=5,t.ndist=1+(31&o),o>>>=5,B-=5,t.ncode=4+(15&o),o>>>=4,B-=4,t.nlen>286||t.ndist>30){A.msg="too many length or distance symbols",t.mode=30;break}t.have=0,t.mode=18;case 18:for(;t.have>>=3,B-=3}for(;t.have<19;)t.lens[F[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,k={bits:t.lenbits},y=rA(0,t.lens,0,19,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg="invalid code lengths set",t.mode=30;break}t.have=0,t.mode=19;case 19:for(;t.have>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=c,B-=c,t.lens[t.have++]=l;else{if(16===l){for(p=c+2;B>>=c,B-=c,0===t.have){A.msg="invalid bit length repeat",t.mode=30;break}D=t.lens[t.have-1],E=3+(3&o),o>>>=2,B-=2}else if(17===l){for(p=c+3;B>>=c)),o>>>=3,B-=3}else{for(p=c+7;B>>=c)),o>>>=7,B-=7}if(t.have+E>t.nlen+t.ndist){A.msg="invalid bit length repeat",t.mode=30;break}for(;E--;)t.lens[t.have++]=D}}if(30===t.mode)break;if(0===t.lens[256]){A.msg="invalid code -- missing end-of-block",t.mode=30;break}if(t.lenbits=9,k={bits:t.lenbits},y=rA(1,t.lens,0,t.nlen,t.lencode,0,t.work,k),t.lenbits=k.bits,y){A.msg="invalid literal/lengths set",t.mode=30;break}if(t.distbits=6,t.distcode=t.distdyn,k={bits:t.distbits},y=rA(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,k),t.distbits=k.bits,y){A.msg="invalid distances set",t.mode=30;break}if(t.mode=20,e===nA)break A;case 20:t.mode=21;case 21:if(n>=6&&a>=258){A.next_out=g,A.avail_out=a,A.next_in=I,A.avail_in=n,t.hold=o,t.bits=B,$(A,Q),g=A.next_out,r=A.output,a=A.avail_out,I=A.next_in,i=A.input,n=A.avail_in,o=t.hold,B=t.bits,12===t.mode&&(t.back=-1);break}for(t.back=0;h=(m=t.lencode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,t.length=l,0===h){t.mode=26;break}if(32&h){t.back=-1,t.mode=12;break}if(64&h){A.msg="invalid literal/length code",t.mode=30;break}t.extra=15&h,t.mode=22;case 22:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=23;case 23:for(;h=(m=t.distcode[o&(1<>>16&255,l=65535&m,!((c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>u)])>>>16&255,l=65535&m,!(u+(c=m>>>24)<=B);){if(0===n)break A;n--,o+=i[I++]<>>=u,B-=u,t.back+=u}if(o>>>=c,B-=c,t.back+=c,64&h){A.msg="invalid distance code",t.mode=30;break}t.offset=l,t.extra=15&h,t.mode=24;case 24:if(t.extra){for(p=t.extra;B>>=t.extra,B-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){A.msg="invalid distance too far back",t.mode=30;break}t.mode=25;case 25:if(0===a)break A;if(E=Q-a,t.offset>E){if((E=t.offset-E)>t.whave&&t.sane){A.msg="invalid distance too far back",t.mode=30;break}E>t.wnext?(E-=t.wnext,s=t.wsize-E):s=t.wnext-E,E>t.length&&(E=t.length),f=t.window}else f=r,s=g-t.offset,E=t.length;E>a&&(E=a),a-=E,t.length-=E;do{r[g++]=f[s++]}while(--E);0===t.length&&(t.mode=21);break;case 26:if(0===a)break A;r[g++]=t.length,a--,t.mode=21;break;case 27:if(t.wrap){for(;B<32;){if(0===n)break A;n--,o|=i[I++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||A&&A.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new z,this.strm.avail_out=0;var t=GA.inflateInit2(this.strm,e.windowBits);if(t!==UA)throw new Error(K[t]);if(this.header=new FA,GA.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Z(e.dictionary):"[object ArrayBuffer]"===SA.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(t=GA.inflateSetDictionary(this.strm,e.dictionary))!==UA))throw new Error(K[t])}function qA(A,e){var t=new JA(e);if(t.push(A),t.err)throw t.msg||K[t.err];return t.result}JA.prototype.push=function(A,e){var t,i,r,I=this.strm,g=this.options.chunkSize,n=this.options.dictionary;if(this.ended)return!1;for(i=e===~~e?e:!0===e?RA:vA,"[object ArrayBuffer]"===SA.call(A)?I.input=new Uint8Array(A):I.input=A,I.next_in=0,I.avail_in=I.input.length;;){for(0===I.avail_out&&(I.output=new Uint8Array(g),I.next_out=0,I.avail_out=g),(t=GA.inflate(I,i))===bA&&n&&((t=GA.inflateSetDictionary(I,n))===UA?t=GA.inflate(I,i):t===NA&&(t=bA));I.avail_in>0&&t===LA&&I.state.wrap>0&&0!==A[I.next_in];)GA.inflateReset(I),t=GA.inflate(I,i);switch(t){case MA:case NA:case bA:case xA:return this.onEnd(t),this.ended=!0,!1}if(r=I.avail_out,I.next_out&&(0===I.avail_out||t===LA))if("string"===this.options.to){var a=W(I.output,I.next_out),o=I.next_out-a,B=j(I.output,a);I.next_out=o,I.avail_out=g-o,o&&I.output.set(I.output.subarray(a,a+o),0),this.onData(B)}else this.onData(I.output.length===I.next_out?I.output:I.output.subarray(0,I.next_out));if(t!==UA||0!==r){if(t===LA)return t=GA.inflateEnd(this.strm),this.onEnd(t),this.ended=!0,!0;if(0===I.avail_in)break}}return!0},JA.prototype.onData=function(A){this.chunks.push(A)},JA.prototype.onEnd=function(A){A===UA&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=T(this.chunks)),this.chunks=[],this.err=A,this.msg=this.strm.msg};var YA={Inflate:JA,inflate:qA,inflateRaw:function(A,e){return(e=e||{}).raw=!0,qA(A,e)},ungzip:qA,constants:H}.inflate;function KA(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var HA=function(A){s(t,w);var e=KA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){return YA(new Uint8Array(A)).buffer}}]),t}(),OA=Object.freeze({__proto__:null,default:HA});function PA(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var TA,VA=function(A){s(t,w);var e=PA(t);function t(){return B(this,t),e.apply(this,arguments)}return Q(t,[{key:"decodeBlock",value:function(A){for(var e=new DataView(A),t=[],i=0;i>3],m<<=7&G),c=0;c>3]),128&m?(a&&(a[G]=1),f=f>(g=S.encoding<2?y[k++]:p)?g:f,n[G++]=g):(a&&(a[G]=0),n[G++]=i),m<<=1;G+=F}else if(S.encoding<2)for(h=0;h(g=y[k++])?g:f,n[G++]=g;G+=F}else for(f=f>p?p:f,h=0;h0){var g=new Uint8Array(Math.ceil(i.width*i.height/8)),n=(I=new DataView(A,e,i.mask.numBytes)).getInt16(0,!0),a=2,o=0;do{if(n>0)for(;n--;)g[o++]=I.getUint8(a++);else{var B=I.getUint8(a++);for(n=-n;n--;)g[o++]=B}n=I.getInt16(a,!0),a+=2}while(a0?1:0),s=Q+(i.height%Q>0?1:0);i.pixels.blocks=new Array(E*s);for(var f=0,c=0;c3)throw"Invalid block encoding ("+w.encoding+")";if(2!==w.encoding){if(0!==d&&2!==d){if(d>>=6,w.offsetType=d,2===d)w.offset=I.getInt8(1),l++;else if(1===d)w.offset=I.getInt16(1,!0),l+=2;else{if(0!==d)throw"Invalid block offset type";w.offset=I.getFloat32(1,!0),l+=4}if(1===w.encoding)if(d=I.getUint8(l),l++,w.bitsPerPixel=63&d,d>>=6,w.numValidPixelsType=d,2===d)w.numValidPixels=I.getUint8(l),l++;else if(1===d)w.numValidPixels=I.getUint16(l,!0),l+=2;else{if(0!==d)throw"Invalid valid pixel count type";w.numValidPixels=I.getUint32(l,!0),l+=4}}var D;if(e+=l,3!==w.encoding)if(0===w.encoding){var y=(i.pixels.numBytes-1)/4;if(y!==Math.floor(y))throw"uncompressed block has invalid length";D=new ArrayBuffer(4*y),new Uint8Array(D).set(new Uint8Array(A,e,4*y));var k=new Float32Array(D);w.rawData=k,e+=4*y}else if(1===w.encoding){var p=Math.ceil(w.numValidPixels*w.bitsPerPixel/8),m=Math.ceil(p/4);D=new ArrayBuffer(4*m),new Uint8Array(D).set(new Uint8Array(A,e,p)),w.stuffedData=new Uint32Array(D),e+=p}}else e++}return i.eofOffset=e,i},I=function(A,e,t,i,r,I,g){var n,a,o,B=(1<=e)a=o>>>Q-e&B,Q-=e;else{var f=e-Q;a=(o&B)<>>(Q=32-f)}I[n]=a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=r[o];else for(Q=Math.ceil((n-I)/g),a=0;a=t?(o=B>>>f-t&E,f-=t):(o=(B&E)<<(C=t-f)&E,o+=(B=A[s++])>>>(f=32-C)),e[a]=o=e?(Q=g>>>C-e&n,C-=e):(Q=(g&n)<<(B=e-C)&n,Q+=(g=A[a++])>>>(C=32-B)),E[o]=Q=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=t?(o=B>>>f&Q,s-=t,f+=t):(o=B>>>f&Q,s=32-(C=t-s),o|=((B=A[E++])&(1<=e?(Q=g>>>E&n,C-=e,E+=e):(Q=g>>>E&n,C=32-(B=e-C),Q|=((g=A[a++])&(1<=t?(I=g>>>B-t&a,B-=t):(I=(g&a)<<(n=t-B)&a,I+=(g=A[o++])>>>(B=32-n)),e[r]=I;return e},C=function(A,e,t,i){var r,I,g,n,a=(1<=t?(I=g>>>C&a,B-=t,C+=t):(I=g>>>C&a,B=32-(n=t-B),I|=((g=A[o++])&(1<=359?359:r;r-=g;do{e+=A[I++]<<8,t+=e+=A[I++]}while(--g);e=(65535&e)+(e>>>16),t=(65535&t)+(t>>>16)}return 1&i&&(t+=e+=A[I]<<8),((t=(65535&t)+(t>>>16))<<16|(e=(65535&e)+(e>>>16)))>>>0},readHeaderInfo:function(A,e){var t=e.ptr,i=new Uint8Array(A,t,6),r={};if(r.fileIdentifierString=String.fromCharCode.apply(null,i),0!==r.fileIdentifierString.lastIndexOf("Lerc2",0))throw"Unexpected file identifier string (expect Lerc2 ): "+r.fileIdentifierString;t+=6;var I,g=new DataView(A,t,8),n=g.getInt32(0,!0);if(r.fileVersion=n,t+=4,n>=3&&(r.checksum=g.getUint32(4,!0),t+=4),g=new DataView(A,t,12),r.height=g.getUint32(0,!0),r.width=g.getUint32(4,!0),t+=8,n>=4?(r.numDims=g.getUint32(8,!0),t+=4):r.numDims=1,g=new DataView(A,t,40),r.numValidPixel=g.getUint32(0,!0),r.microBlockSize=g.getInt32(4,!0),r.blobSize=g.getInt32(8,!0),r.imageType=g.getInt32(12,!0),r.maxZError=g.getFloat64(16,!0),r.zMin=g.getFloat64(24,!0),r.zMax=g.getFloat64(32,!0),t+=40,e.headerInfo=r,e.ptr=t,n>=3&&(I=n>=4?52:48,this.computeChecksumFletcher32(new Uint8Array(A,t-I,r.blobSize-14))!==r.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(A,e){var t=e.headerInfo,i=this.getDataTypeArray(t.imageType),r=t.numDims*this.getDataTypeSize(t.imageType),I=this.readSubArray(A,e.ptr,i,r),g=this.readSubArray(A,e.ptr+r,i,r);e.ptr+=2*r;var n,a=!0;for(n=0;n0){t=new Uint8Array(Math.ceil(g/8));var B=(a=new DataView(A,r,o.numBytes)).getInt16(0,!0),C=2,Q=0,E=0;do{if(B>0)for(;B--;)t[Q++]=a.getUint8(C++);else for(E=a.getUint8(C++),B=-B;B--;)t[Q++]=E;B=a.getInt16(C,!0),C+=2}while(C>3],s<<=7&f):s=t[f>>3],128&s&&(i[f]=1);e.pixels.resultMask=i,o.bitset=t,r+=o.numBytes}return e.ptr=r,e.mask=o,!0},readDataOneSweep:function(A,e,t,i){var r,I=e.ptr,g=e.headerInfo,n=g.numDims,a=g.width*g.height,o=g.imageType,B=g.numValidPixel*Q.getDataTypeSize(o)*n,C=e.pixels.resultMask;if(t===Uint8Array)r=new Uint8Array(A,I,B);else{var E=new ArrayBuffer(B);new Uint8Array(E).set(new Uint8Array(A,I,B)),r=new t(E)}if(r.length===a*n)e.pixels.resultPixels=i?Q.swapDimensionOrder(r,a,n,t,!0):r;else{e.pixels.resultPixels=new t(a*n);var s=0,f=0,c=0,h=0;if(n>1){if(i){for(f=0;f=g)return!1;var n=new Uint32Array(g-I);Q.decodeBits(A,e,n);var a,o,B,C,s=[];for(a=I;a0&&(s[o].second=l<>>32-C,32-w>=C?32===(w+=C)&&(w=0,l=u[++d]):(w+=C-32,l=u[++d],s[o].second|=l>>>32-w));var D=0,y=0,k=new E;for(a=0;a=t?t:D;var p,m,G,F,S,v=[];for(a=I;a0)if(p=[C,o],C<=y)for(m=s[o].second<=0;F--)m>>>F&1?(S.right||(S.right=new E),S=S.right):(S.left||(S.left=new E),S=S.left),0!==F||S.val||(S.val=p[1]);return{decodeLut:v,numBitsLUTQick:y,numBitsLUT:D,tree:k,stuffedData:u,srcPtr:d,bitPos:w}},readHuffman:function(A,e,t,i){var r,I,g,n,a,o,B,C,E,s=e.headerInfo.numDims,f=e.headerInfo.height,c=e.headerInfo.width,h=c*f,l=this.readHuffmanTree(A,e),u=l.decodeLut,w=l.tree,d=l.stuffedData,D=l.srcPtr,y=l.bitPos,k=l.numBitsLUTQick,p=l.numBitsLUT,m=0===e.headerInfo.imageType?128:0,G=e.pixels.resultMask,F=0;y>0&&(D++,y=0);var S,v=d[D],R=1===e.encodeMode,U=new t(h*s),L=U;if(s<2||R){for(S=0;S1&&(L=new t(U.buffer,h*S,h),F=0),e.headerInfo.numValidPixel===c*f)for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(g+=B>0?F:o>0?L[C-c]:F,g&=255,L[C]=g,F=g):L[C]=g}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,R?(B>0&&G[C-1]?g+=F:o>0&&G[C-c]?g+=L[C-c]:g+=F,g&=255,L[C]=g,F=g):L[C]=g}}else for(C=0,o=0;o>>32-k,32-y>>64-y-k),u[a])I=u[a][1],y+=u[a][0];else for(a=n=v<>>32-p,32-y>>64-y-p),r=w,E=0;E>>p-E-1&1?r.right:r.left).left&&!r.right){I=r.val,y=y+E+1;break}y>=32&&(y-=32,v=d[++D]),g=I-m,L[C]=g}e.ptr=e.ptr+4*(D+1)+(y>0?4:0),e.pixels.resultPixels=U,s>1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(U,h,s,t))},decodeBits:function(A,e,t,i,r){var I=e.headerInfo,Q=I.fileVersion,E=0,s=A.byteLength-e.ptr>=5?5:A.byteLength-e.ptr,f=new DataView(A,e.ptr,s),c=f.getUint8(0);E++;var h=c>>6,l=0===h?4:3-h,u=(32&c)>0,w=31&c,d=0;if(1===l)d=f.getUint8(E),E++;else if(2===l)d=f.getUint16(E,!0),E+=2;else{if(4!==l)throw"Invalid valid pixel count type";d=f.getUint32(E,!0),E+=4}var D,y,k,p,m,G,F,S,v,R=2*I.maxZError,U=I.numDims>1?I.maxValues[r]:I.zMax;if(u){for(e.counter.lut++,S=f.getUint8(E),E++,p=Math.ceil((S-1)*w/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),k=new Uint8Array(y),e.ptr+=E,k.set(new Uint8Array(A,e.ptr,p)),F=new Uint32Array(y),e.ptr+=p,v=0;S-1>>>v;)v++;p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,G=Q>=3?o(F,w,S-1,i,R,U):n(F,w,S-1,i,R,U),Q>=3?a(D,t,v,d,G):g(D,t,v,d,G)}else e.counter.bitstuffer++,v=w,e.ptr+=E,v>0&&(p=Math.ceil(d*v/8),m=Math.ceil(p/4),y=new ArrayBuffer(4*m),(k=new Uint8Array(y)).set(new Uint8Array(A,e.ptr,p)),D=new Uint32Array(y),e.ptr+=p,Q>=3?null==i?C(D,t,v,d):a(D,t,v,d,!1,i,R,U):null==i?B(D,t,v,d):g(D,t,v,d,!1,i,R,U))},readTiles:function(A,e,t,i){var r=e.headerInfo,I=r.width,g=r.height,n=I*g,a=r.microBlockSize,o=r.imageType,B=Q.getDataTypeSize(o),C=Math.ceil(I/a),E=Math.ceil(g/a);e.pixels.numBlocksY=E,e.pixels.numBlocksX=C,e.pixels.ptr=0;var s,f,c,h,l,u,w,d,D,y,k=0,p=0,m=0,G=0,F=0,S=0,v=0,R=0,U=0,L=0,b=0,M=0,N=0,x=0,J=0,q=new t(a*a),Y=g%a||a,K=I%a||a,H=r.numDims,O=e.pixels.resultMask,P=e.pixels.resultPixels,T=r.fileVersion>=5?14:15,V=r.zMax;for(m=0;m1?(y=P,L=m*I*a+G*a,P=new t(e.pixels.resultPixels.buffer,n*d*B,n),V=r.maxValues[d]):y=null,v=A.byteLength-e.ptr,f={},J=0,R=(s=new DataView(A,e.ptr,Math.min(10,v))).getUint8(0),J++,D=r.fileVersion>=5?4&R:0,U=R>>6&255,(R>>2&T)!=(G*a>>3&T))throw"integrity issue";if(D&&0===d)throw"integrity issue";if((l=3&R)>3)throw e.ptr+=J,"Invalid block encoding ("+l+")";if(2!==l)if(0===l){if(D)throw"integrity issue";if(e.counter.uncompressed++,e.ptr+=J,M=(M=F*S*B)<(N=A.byteLength-e.ptr)?M:N,c=new ArrayBuffer(M%B==0?M:M+B-M%B),new Uint8Array(c).set(new Uint8Array(A,e.ptr,M)),h=new t(c),x=0,O)for(k=0;k1&&!i&&(e.pixels.resultPixels=Q.swapDimensionOrder(e.pixels.resultPixels,n,H,t))},formatFileInfo:function(A){return{fileIdentifierString:A.headerInfo.fileIdentifierString,fileVersion:A.headerInfo.fileVersion,imageType:A.headerInfo.imageType,height:A.headerInfo.height,width:A.headerInfo.width,numValidPixel:A.headerInfo.numValidPixel,microBlockSize:A.headerInfo.microBlockSize,blobSize:A.headerInfo.blobSize,maxZError:A.headerInfo.maxZError,pixelType:Q.getPixelType(A.headerInfo.imageType),eofOffset:A.eofOffset,mask:A.mask?{numBytes:A.mask.numBytes}:null,pixels:{numBlocksX:A.pixels.numBlocksX,numBlocksY:A.pixels.numBlocksY,maxValue:A.headerInfo.zMax,minValue:A.headerInfo.zMin,noDataValue:A.noDataValue}}},constructConstantSurface:function(A,e){var t=A.headerInfo.zMax,i=A.headerInfo.zMin,r=A.headerInfo.maxValues,I=A.headerInfo.numDims,g=A.headerInfo.height*A.headerInfo.width,n=0,a=0,o=0,B=A.pixels.resultMask,C=A.pixels.resultPixels;if(B)if(I>1){if(e)for(n=0;n1&&i!==t)if(e)for(n=0;n=-128&&e<=127;break;case 1:t=e>=0&&e<=255;break;case 2:t=e>=-32768&&e<=32767;break;case 3:t=e>=0&&e<=65536;break;case 4:t=e>=-2147483648&&e<=2147483647;break;case 5:t=e>=0&&e<=4294967296;break;case 6:t=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:t=e>=-17976931348623157e292&&e<=17976931348623157e292;break;default:t=!1}return t},getDataTypeSize:function(A){var e=0;switch(A){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=A}return e},getDataTypeUsed:function(A,e){var t=A;switch(A){case 2:case 4:t=A-e;break;case 3:case 5:t=A-2*e;break;case 6:t=0===e?A:1===e?2:1;break;case 7:t=0===e?A:A-2*e+1;break;default:t=A}return t},getOnePixel:function(A,e,t,i){var r=0;switch(t){case 0:r=i.getInt8(e);break;case 1:r=i.getUint8(e);break;case 2:r=i.getInt16(e,!0);break;case 3:r=i.getUint16(e,!0);break;case 4:r=i.getInt32(e,!0);break;case 5:r=i.getUInt32(e,!0);break;case 6:r=i.getFloat32(e,!0);break;case 7:r=i.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return r},swapDimensionOrder:function(A,e,t,i,r){var I=0,g=0,n=0,a=0,o=A;if(t>1)if(o=new i(e*t),r)for(I=0;I5)throw"unsupported lerc version 2."+g;Q.readMask(A,r),I.numValidPixel===I.width*I.height||r.pixels.resultMask||(r.pixels.resultMask=e.maskData);var a=I.width*I.height;r.pixels.resultPixels=new n(a*I.numDims),r.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0};var o,B=!e.returnPixelInterleavedDims;if(0!==I.numValidPixel)if(I.zMax===I.zMin)Q.constructConstantSurface(r,B);else if(g>=4&&Q.checkMinMaxRanges(A,r))Q.constructConstantSurface(r,B);else{var C=new DataView(A,r.ptr,2),E=C.getUint8(0);if(r.ptr++,E)Q.readDataOneSweep(A,r,n,B);else if(g>1&&I.imageType<=1&&Math.abs(I.maxZError-.5)<1e-5){var s=C.getUint8(1);if(r.ptr++,r.encodeMode=s,s>2||g<4&&s>1)throw"Invalid Huffman flag "+s;s?Q.readHuffman(A,r,n,B):Q.readTiles(A,r,n,B)}else Q.readTiles(A,r,n,B)}r.eofOffset=r.ptr,e.inputOffset?(o=r.headerInfo.blobSize+e.inputOffset-r.ptr,Math.abs(o)>=1&&(r.eofOffset=e.inputOffset+r.headerInfo.blobSize)):(o=r.headerInfo.blobSize-r.ptr,Math.abs(o)>=1&&(r.eofOffset=r.headerInfo.blobSize));var f={width:I.width,height:I.height,pixelData:r.pixels.resultPixels,minValue:I.zMin,maxValue:I.zMax,validPixelCount:I.numValidPixel,dimCount:I.numDims,dimStats:{minValues:I.minValues,maxValues:I.maxValues},maskData:r.pixels.resultMask};if(r.pixels.resultMask&&Q.isValidPixelValue(I.imageType,t)){var c=r.pixels.resultMask;for(i=0;i1&&(o&&f.push(o),d.fileInfo.mask&&d.fileInfo.mask.numBytes>0&&w++),E++,u.pixels.push(d.pixelData),u.statistics.push({minValue:d.minValue,maxValue:d.maxValue,noDataValue:d.noDataValue,dimStats:d.dimStats})}if(i>1&&w>1){for(Q=u.width*u.height,u.bandMasks=f,(o=new Uint8Array(Q)).set(f[0]),B=1;B1&&void 0!==arguments[1]?arguments[1]:0;if(!jA)throw new Error("ZSTDDecoder: Await .init() before decoding.");var t=A.byteLength,i=jA.exports.malloc(t);WA.set(A,i),e=e||Number(jA.exports.ZSTD_findDecompressedSize(i,t));var r=jA.exports.malloc(e),I=jA.exports.ZSTD_decompress(r,e,i,t),g=WA.slice(r,r+I);return jA.exports.free(i),jA.exports.free(r),g}}]),A}(),ee="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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQh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ASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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",te={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},ie={};for(var re in te)te.hasOwnProperty(re)&&(ie[te[re]]=parseInt(re,10));ie.BitsPerSample,ie.ExtraSamples,ie.SampleFormat,ie.StripByteCounts,ie.StripOffsets,ie.StripRowCounts,ie.TileByteCounts,ie.TileOffsets,ie.SubIFDs;var Ie={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},ge={};for(var ne in Ie)Ie.hasOwnProperty(ne)&&(ge[Ie[ne]]=parseInt(ne,10));var ae=1,oe=0,Be=1,Ce=2,Qe={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"},Ee={};for(var se in Qe)Qe.hasOwnProperty(se)&&(Ee[Qe[se]]=parseInt(se,10));function fe(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var ce=new Ae,he=function(A){s(t,w);var e=fe(t);function t(A){var i;return B(this,t),(i=e.call(this)).planarConfiguration=void 0!==A.PlanarConfiguration?A.PlanarConfiguration:1,i.samplesPerPixel=void 0!==A.SamplesPerPixel?A.SamplesPerPixel:1,i.addCompression=A.LercParameters[ae],i}return Q(t,[{key:"decodeBlock",value:function(A){switch(this.addCompression){case oe:break;case Be:A=YA(new Uint8Array(A)).buffer;break;case Ce:A=ce.decode(new Uint8Array(A)).buffer;break;default:throw new Error("Unsupported LERC additional compression method identifier: ".concat(this.addCompression))}return zA.decode(A,{returnPixelInterleavedDims:1===this.planarConfiguration}).pixels[0].buffer}}]),t}(),le=Object.freeze({__proto__:null,zstd:ce,default:he});function ue(A){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(A){return!1}}();return function(){var t,i=c(A);if(e){var r=c(this).constructor;t=Reflect.construct(i,arguments,r)}else t=i.apply(this,arguments);return f(this,t)}}var we=function(A){s(I,w);var t,i=ue(I);function I(){var A;if(B(this,I),A=i.call(this),"undefined"==typeof createImageBitmap)throw new Error("Cannot decode WebImage as `createImageBitmap` is not available");if("undefined"==typeof document&&"undefined"==typeof OffscreenCanvas)throw new Error("Cannot decode WebImage as neither `document` nor `OffscreenCanvas` is not available");return A}return Q(I,[{key:"decode",value:(t=e(r.mark((function A(e,t){var i,I,g,n;return r.wrap((function(A){for(;;)switch(A.prev=A.next){case 0:return i=new Blob([t]),A.next=3,createImageBitmap(i);case 3:return I=A.sent,"undefined"!=typeof document?((g=document.createElement("canvas")).width=I.width,g.height=I.height):g=new OffscreenCanvas(I.width,I.height),(n=g.getContext("2d")).drawImage(I,0,0),A.abrupt("return",n.getImageData(0,0,I.width,I.height).data.buffer);case 8:case"end":return A.stop()}}),A)}))),function(A,e){return t.apply(this,arguments)})}]),I}(),de=Object.freeze({__proto__:null,default:we});';return new dS(typeof Buffer<"u"?"data:application/javascript;base64,"+Buffer.from(i,"binary").toString("base64"):URL.createObjectURL(new Blob([i],{type:"application/javascript"})))}var ES=Xi(()=>{pS()});var vS=_r(()=>{});var SS=_r(()=>{});var TS=_r(()=>{});var pt={ADD:"add",REMOVE:"remove"};var In={PROPERTYCHANGE:"propertychange"};var K={CHANGE:"change",ERROR:"error",BLUR:"blur",CLEAR:"clear",CONTEXTMENU:"contextmenu",CLICK:"click",DBLCLICK:"dblclick",DRAGENTER:"dragenter",DRAGOVER:"dragover",DROP:"drop",FOCUS:"focus",KEYDOWN:"keydown",KEYPRESS:"keypress",LOAD:"load",RESIZE:"resize",TOUCHMOVE:"touchmove",WHEEL:"wheel"};var bd=class{constructor(){this.disposed=!1}dispose(){this.disposed||(this.disposed=!0,this.disposeInternal())}disposeInternal(){}},xr=bd;function Fy(i,e,t){let n,r;t=t||gi;let o=0,s=i.length,a=!1;for(;o>1),r=+t(i[n],e),r<0?o=n+1:(s=n,a=!r);return a?o:~o}function gi(i,e){return i>e?1:ie?-1:0}function va(i,e,t){if(i[0]<=e)return 0;let n=i.length;if(e<=i[n-1])return n-1;if(typeof t=="function"){for(let r=1;r0?r-1:r}return n-1}if(t>0){for(let r=1;r0||t&&s===0)})}function bi(){return!0}function ji(){return!1}function eo(){}function Gh(i){let e,t,n;return function(){let r=Array.prototype.slice.call(arguments);return(!t||this!==n||!Mt(r,t))&&(n=this,t=r,e=i.apply(this,arguments)),e}}function Sa(i){function e(){let t;try{t=i()}catch(n){return Promise.reject(n)}return t instanceof Promise?t:Promise.resolve(t)}return e()}function Ln(i){for(let e in i)delete i[e]}function Di(i){let e;for(e in i)return!1;return!e}var Dd=class{constructor(e){this.propagationStopped,this.defaultPrevented,this.type=e,this.target=null}preventDefault(){this.defaultPrevented=!0}stopPropagation(){this.propagationStopped=!0}};function ky(i){i.stopPropagation()}var Pe=Dd;var Fd=class extends xr{constructor(e){super(),this.eventTarget_=e,this.pendingRemovals_=null,this.dispatching_=null,this.listeners_=null}addEventListener(e,t){if(!e||!t)return;let n=this.listeners_||(this.listeners_={}),r=n[e]||(n[e]=[]);r.includes(t)||r.push(t)}dispatchEvent(e){let t=typeof e=="string",n=t?e:e.type,r=this.listeners_&&this.listeners_[n];if(!r)return;let o=t?new Pe(e):e;o.target||(o.target=this.eventTarget_||this);let s=this.dispatching_||(this.dispatching_={}),a=this.pendingRemovals_||(this.pendingRemovals_={});n in s||(s[n]=0,a[n]=0),++s[n];let l;for(let A=0,c=r.length;A0:!1}removeEventListener(e,t){if(!this.listeners_)return;let n=this.listeners_[e];if(!n)return;let r=n.indexOf(t);r!==-1&&(this.pendingRemovals_&&e in this.pendingRemovals_?(n[r]=eo,++this.pendingRemovals_[e]):(n.splice(r,1),n.length===0&&delete this.listeners_[e]))}},Mn=Fd;function ee(i,e,t,n,r){if(r){let s=t;t=function(a){return i.removeEventListener(e,t),s.call(n??this,a)}}else n&&n!==i&&(t=t.bind(n));let o={target:i,type:e,listener:t};return i.addEventListener(e,t),o}function jo(i,e,t,n){return ee(i,e,t,n,!0)}function ce(i){i&&i.target&&(i.target.removeEventListener(i.type,i.listener),Ln(i))}var Ta=class extends Mn{constructor(){super(),this.on=this.onInternal,this.once=this.onceInternal,this.un=this.unInternal,this.revision_=0}changed(){++this.revision_,this.dispatchEvent(K.CHANGE)}getRevision(){return this.revision_}onInternal(e,t){if(Array.isArray(e)){let n=e.length,r=new Array(n);for(let o=0;o0;)this.pop()}extend(e){for(let t=0,n=e.length;tthis.getLength())throw new Error("Index out of bounds: "+e);this.unique_&&this.assertUnique_(t),this.array_.splice(e,0,t),this.updateLength_(),this.dispatchEvent(new Ra(pt.ADD,t,e))}pop(){return this.removeAt(this.getLength()-1)}push(e){this.unique_&&this.assertUnique_(e);let t=this.getLength();return this.insertAt(t,e),this.getLength()}remove(e){let t=this.array_;for(let n=0,r=t.length;n=this.getLength())return;let t=this.array_[e];return this.array_.splice(e,1),this.updateLength_(),this.dispatchEvent(new Ra(pt.REMOVE,t,e)),t}setAt(e,t){let n=this.getLength();if(e>=n){this.insertAt(e,t);return}if(e<0)throw new Error("Index out of bounds: "+e);this.unique_&&this.assertUnique_(t,e);let r=this.array_[e];this.array_[e]=t,this.dispatchEvent(new Ra(pt.REMOVE,r,e)),this.dispatchEvent(new Ra(pt.ADD,t,e))}updateLength_(){this.set(Py.LENGTH,this.array_.length)}assertUnique_(e,t){for(let n=0,r=this.array_.length;nr&&(l=l|kt.RIGHT),ao&&(l=l|kt.ABOVE),l===kt.UNKNOWN&&(l=kt.INTERSECTING),l}function ot(){return[1/0,1/0,-1/0,-1/0]}function Li(i,e,t,n,r){return r?(r[0]=i,r[1]=e,r[2]=t,r[3]=n,r):[i,e,t,n]}function to(i){return Li(1/0,1/0,-1/0,-1/0,i)}function Wo(i,e){let t=i[0],n=i[1];return Li(t,n,t,n,e)}function Qa(i,e,t,n,r){let o=to(r);return Pd(o,i,e,t,n)}function Mi(i,e){return i[0]==e[0]&&i[2]==e[2]&&i[1]==e[1]&&i[3]==e[3]}function ba(i,e){return e[0]i[2]&&(i[2]=e[2]),e[1]i[3]&&(i[3]=e[3]),i}function Ps(i,e){e[0]i[2]&&(i[2]=e[0]),e[1]i[3]&&(i[3]=e[1])}function Pd(i,e,t,n,r){for(;te[0]?n[0]=i[0]:n[0]=e[0],i[1]>e[1]?n[1]=i[1]:n[1]=e[1],i[2]=e[0]&&i[1]<=e[3]&&i[3]>=e[1]}function mi(i){return i[2]=s&&p<=l),!n&&o&kt.RIGHT&&!(r&kt.RIGHT)&&(d=f-(u-l)*g,n=d>=a&&d<=A),!n&&o&kt.BELOW&&!(r&kt.BELOW)&&(p=u-(f-a)/g,n=p>=s&&p<=l),!n&&o&kt.LEFT&&!(r&kt.LEFT)&&(d=f-(u-s)*g,n=d>=a&&d<=A)}return n}function Fa(i,e,t,n){if(mi(i))return to(t);let r=[];if(n>1){let a=i[2]-i[0],l=i[3]-i[1];for(let A=0;A=t[2])){let r=ue(t),s=Math.floor((n[0]-t[0])/r)*r;i[0]-=s,i[2]-=s}return i}function La(i,e,t){if(e.canWrapX()){let n=e.getExtent();if(!isFinite(i[0])||!isFinite(i[2]))return[[n[0],i[1],n[2],i[3]]];Nd(i,e);let r=ue(n);if(ue(i)>r&&!t)return[[n[0],i[1],n[2],i[3]]];if(i[0]n[2])return[[i[0],i[1],n[2],i[3]],[n[0],i[1],i[2]-r,i[3]]]}return[i]}function Ee(i,e,t){return Math.min(Math.max(i,e),t)}function Uy(i,e,t,n,r,o){let s=r-t,a=o-n;if(s!==0||a!==0){let l=((i-t)*s+(e-n)*a)/(s*s+a*a);l>1?(t=r,n=o):l>0&&(t+=s*l,n+=a*l)}return Ji(i,e,t,n)}function Ji(i,e,t,n){let r=t-i,o=n-e;return r*r+o*o}function zy(i){let e=i.length;for(let n=0;no&&(o=l,r=a)}if(o===0)return null;let s=i[r];i[r]=i[n],i[n]=s;for(let a=n+1;a=0;n--){t[n]=i[n][e]/i[n][n];for(let r=n-1;r>=0;r--)i[r][e]-=i[r][n]*t[n]}return t}function Hh(i){return i*180/Math.PI}function Cn(i){return i*Math.PI/180}function ki(i,e){let t=i%e;return t*e<0?t+e:t}function ai(i,e,t){return i+t*(e-i)}function $o(i,e){let t=Math.pow(10,e);return Math.round(i*t)/t}function _A(i,e){return Math.floor($o(i,e))}function xA(i,e){return Math.ceil($o(i,e))}function qh(i,e,t){if(i>=e&&iOd.warn||console.warn(...i)}function Ud(...i){Yy>Od.error||console.error(...i)}function Ma(i,e,t){let n=t!==void 0?i.toFixed(t):""+i,r=n.indexOf(".");return r=r===-1?n.length:r,r>e?n:new Array(1+e-r).join("0")+n}function Vy(i,e){return i[0]+=+e[0],i[1]+=+e[1],i}function Hy(i,e){let t=e.getRadius(),n=e.getCenter(),r=n[0],o=n[1],s=i[0],a=i[1],l=s-r,A=a-o;l===0&&A===0&&(l=1);let c=Math.sqrt(l*l+A*A),h=r+t*l/c,u=o+t*A/c;return[h,u]}function BA(i,e){let t=i[0],n=i[1],r=e[0],o=e[1],s=r[0],a=r[1],l=o[0],A=o[1],c=l-s,h=A-a,u=c===0&&h===0?0:(c*(t-s)+h*(n-a))/(c*c+h*h||0),f,g;return u<=0?(f=s,g=a):u>=1?(f=l,g=A):(f=s+u*c,g=a+u*h),[f,g]}function Ht(i,e){let t=!0;for(let n=i.length-1;n>=0;--n)if(i[n]!=e[n]){t=!1;break}return t}function ka(i,e){let t=Math.cos(e),n=Math.sin(e),r=i[0]*t-i[1]*n,o=i[1]*t+i[0]*n;return i[0]=r,i[1]=o,i}function qy(i,e){return i[0]*=e,i[1]*=e,i}function kn(i,e){let t=i[0]-e[0],n=i[1]-e[1];return t*t+n*n}function Pa(i,e){return Math.sqrt(kn(i,e))}function Ky(i,e){return kn(i,BA(i,e))}function Zo(i,e){if(e.canWrapX()){let t=ue(e.getExtent()),n=Xy(i,e,t);n&&(i[0]-=n*t)}return i}function Xy(i,e,t){let n=e.getExtent(),r=0;return e.canWrapX()&&(i[0]n[2])&&(t=t||ue(n),r=Math.floor((i[0]-n[0])/t)),r}var ZQ={9001:"m",9002:"ft",9003:"us-ft",9101:"radians",9102:"degrees"};function zd(i){return ZQ[i]}var Ar={radians:6370997/(2*Math.PI),degrees:2*Math.PI*6370997/360,ft:.3048,m:1,"us-ft":1200/3937};var Yd=class{constructor(e){this.code_=e.code,this.units_=e.units,this.extent_=e.extent!==void 0?e.extent:null,this.worldExtent_=e.worldExtent!==void 0?e.worldExtent:null,this.axisOrientation_=e.axisOrientation!==void 0?e.axisOrientation:"enu",this.global_=e.global!==void 0?e.global:!1,this.canWrapX_=!!(this.global_&&this.extent_),this.getPointResolutionFunc_=e.getPointResolution,this.defaultTileGrid_=null,this.metersPerUnit_=e.metersPerUnit}canWrapX(){return this.canWrapX_}getCode(){return this.code_}getExtent(){return this.extent_}getUnits(){return this.units_}getMetersPerUnit(){return this.metersPerUnit_||Ar[this.units_]}getWorldExtent(){return this.worldExtent_}getAxisOrientation(){return this.axisOrientation_}isGlobal(){return this.global_}setGlobal(e){this.global_=e,this.canWrapX_=!!(e&&this.extent_)}getDefaultTileGrid(){return this.defaultTileGrid_}setDefaultTileGrid(e){this.defaultTileGrid_=e}setExtent(e){this.extent_=e,this.canWrapX_=!!(this.global_&&e)}setWorldExtent(e){this.worldExtent_=e}setGetPointResolution(e){this.getPointResolutionFunc_=e}getPointResolutionFunc(){return this.getPointResolutionFunc_}},Pn=Yd;var wA=6378137,Na=Math.PI*wA,e2=[-Na,-Na,Na,Na],t2=[-180,-85,180,85],Xh=wA*Math.log(Math.tan(Math.PI/2)),es=class extends Pn{constructor(e){super({code:e,units:"m",extent:e2,global:!0,worldExtent:t2,getPointResolution:function(t,n){return t/Math.cosh(n[1]/wA)}})}},Vd=[new es("EPSG:3857"),new es("EPSG:102100"),new es("EPSG:102113"),new es("EPSG:900913"),new es("http://www.opengis.net/def/crs/EPSG/0/3857"),new es("http://www.opengis.net/gml/srs/epsg.xml#3857")];function jy(i,e,t,n){let r=i.length;t=t>1?t:2,n=n??t,e===void 0&&(t>2?e=i.slice():e=new Array(r));for(let o=0;oXh?s=Xh:s<-Xh&&(s=-Xh),e[o+1]=s}return e}function Wy(i,e,t,n){let r=i.length;t=t>1?t:2,n=n??t,e===void 0&&(t>2?e=i.slice():e=new Array(r));for(let o=0;oi_&&(e=i_);let n=Cn(e),r=Math.sin(n),o=Math.cos(n),s=r/o,a=s*s,l=a*a,A=Cn(i),c=a_(t.number),h=Cn(c),u=Jh/Math.sqrt(1-Nn*r**2),f=Os*o**2,g=o*qh(A-h,-Math.PI,Math.PI),p=g*g,d=p*g,I=d*g,m=I*g,C=m*g,_=Jh*(s_*n-r2*Math.sin(2*n)+o2*Math.sin(4*n)-s2*Math.sin(6*n)),y=Wh*u*(g+d/6*(1-a+f)+m/120*(5-18*a+l+72*f-58*Os))+5e5,w=Wh*(_+u*s*(p/2+I/24*(5-a+9*f+4*f**2)+C/720*(61-58*a+l+600*f-330*Os)));return t.north||(w+=1e7),[y,w]}function a_(i){return(i-1)*6-180+3}var d2=[/^EPSG:(\d+)$/,/^urn:ogc:def:crs:EPSG::(\d+)$/,/^http:\/\/www\.opengis\.net\/def\/crs\/EPSG\/0\/(\d+)$/];function l_(i){let e=0;for(let r of d2){let o=i.match(r);if(o){e=parseInt(o[1]);break}}if(!e)return null;let t=0,n=!1;return e>32700&&e<32761?t=e-32700:e>32600&&e<32661&&(n=!0,t=e-32600),t?{number:t,north:n}:null}function n_(i,e){return function(t,n,r,o){let s=t.length;r=r>1?r:2,o=o??r,n||(r>2?n=t.slice():n=new Array(s));for(let a=0;a=l?e[s+A]:a[A]}return t}}function vA(i,e){return $d(),ts(i,"EPSG:4326",e!==void 0?e:"EPSG:3857")}function ep(i,e){let t=ts(i,e!==void 0?e:"EPSG:3857","EPSG:4326"),n=t[0];return(n<-180||n>180)&&(t[0]=ki(n+180,360)-180),t}function On(i,e){if(i===e)return!0;let t=i.getUnits()===e.getUnits();return(i.getCode()===e.getCode()||$i(i,e)===Zd)&&t}function $i(i,e){let t=i.getCode(),n=e.getCode(),r=jh(t,n);if(r)return r;let o=null,s=null;for(let l of p2)o||(o=l(i)),s||(s=l(e));if(!o&&!s)return null;let a="EPSG:4326";if(s)if(o)r=jd(o.inverse,s.forward);else{let l=jh(t,a);l&&(r=jd(l,s.forward))}else{let l=jh(a,n);l&&(r=jd(o.inverse,l))}return r&&(Jd(i),Jd(e),Oa(i,e,r)),r}function jd(i,e){return function(t,n,r,o){return n=i(t,n,r,o),e(n,n,r,o)}}function ro(i,e){let t=fe(i),n=fe(e);return $i(t,n)}function ts(i,e,t){let n=ro(e,t);if(!n){let r=fe(e).getCode(),o=fe(t).getCode();throw new Error(`No transform available between ${r} and ${o}`)}return n(i,void 0,i.length)}function SA(i,e,t,n){let r=ro(e,t);return Fa(i,r,void 0,n)}var Gn=null;function C2(i){Gn=fe(i)}function st(){return Gn}function f_(){C2("EPSG:4326")}function Zi(i,e){return Gn?ts(i,e,Gn):i}function Ke(i,e){return Gn?ts(i,Gn,e):(Wd&&!Ht(i,[0,0])&&i[0]>=-180&&i[0]<=180&&i[1]>=-90&&i[1]<=90&&(Wd=!1,Kh("Call useGeographic() from ol/proj once to work with [longitude, latitude] coordinates.")),i)}function Ei(i,e){return Gn?SA(i,e,Gn):i}function Bt(i,e){return Gn?SA(i,Gn,e):i}function iu(i,e){if(!Gn)return i;let t=fe(e).getMetersPerUnit(),n=Gn.getMetersPerUnit();return t&&n?i*t/n:i}function y2(){h_(Vd),h_(Hd),I2(Hd,Vd,jy,Wy)}y2();var tp=new Array(6);function Ce(){return[1,0,0,1,0,0]}function TA(i){return nu(i,1,0,0,1,0,0)}function Un(i,e){let t=i[0],n=i[1],r=i[2],o=i[3],s=i[4],a=i[5],l=e[0],A=e[1],c=e[2],h=e[3],u=e[4],f=e[5];return i[0]=t*l+r*A,i[1]=n*l+o*A,i[2]=t*c+r*h,i[3]=n*c+o*h,i[4]=t*u+r*f+s,i[5]=n*u+o*f+a,i}function nu(i,e,t,n,r,o,s){return i[0]=e,i[1]=t,i[2]=n,i[3]=r,i[4]=o,i[5]=s,i}function Us(i,e){return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i}function be(i,e){let t=e[0],n=e[1];return e[0]=i[0]*t+i[2]*n+i[4],e[1]=i[1]*t+i[3]*n+i[5],e}function d_(i,e){let t=Math.cos(e),n=Math.sin(e);return Un(i,nu(tp,t,n,-n,t,0,0))}function is(i,e,t){return Un(i,nu(tp,e,0,0,t,0,0))}function ns(i,e,t){return Un(i,nu(tp,1,0,0,1,e,t))}function ct(i,e,t,n,r,o,s,a){let l=Math.sin(o),A=Math.cos(o);return i[0]=n*A,i[1]=r*l,i[2]=-n*l,i[3]=r*A,i[4]=s*n*A-a*n*l+e,i[5]=s*r*l+a*r*A+t,i}function en(i,e){let t=_2(e);he(t!==0,"Transformation matrix cannot be inverted");let n=e[0],r=e[1],o=e[2],s=e[3],a=e[4],l=e[5];return i[0]=s/t,i[1]=-r/t,i[2]=-o/t,i[3]=n/t,i[4]=(o*l-s*a)/t,i[5]=-(n*l-r*a)/t,i}function _2(i){return i[0]*i[3]-i[1]*i[2]}var x2=[1e5,1e5,1e5,1e5,2,2];function p_(i){return"matrix("+i.join(", ")+")"}function g_(i){return i.substring(7,i.length-1).split(",").map(parseFloat)}function m_(i,e){let t=g_(i),n=g_(e);for(let r=0;r<6;++r)if(Math.round((t[r]-n[r])*x2[r])!==0)return!1;return!0}function li(i,e,t,n,r,o,s){o=o||[],s=s||2;let a=0;for(let l=e;l{if(!n)return this.getSimplifiedGeometry(t);let r=this.clone();return r.applyTransform(n),r.getSimplifiedGeometry(t)})}simplifyTransformed(e,t){return this.simplifyTransformedInternal(this.getRevision(),e,t)}clone(){return ne()}closestPointXY(e,t,n,r){return ne()}containsXY(e,t){return this.closestPointXY(e,t,B2,Number.MIN_VALUE)===0}getClosestPoint(e,t){return t=t||[NaN,NaN],this.closestPointXY(e[0],e[1],t,1/0),t}intersectsCoordinate(e){return this.containsXY(e[0],e[1])}computeExtent(e){return ne()}getExtent(e){if(this.extentRevision_!=this.getRevision()){let t=this.computeExtent(this.extent_);(isNaN(t[0])||isNaN(t[1]))&&to(t),this.extentRevision_=this.getRevision()}return Gy(this.extent_,e)}rotate(e,t){ne()}scale(e,t,n){ne()}simplify(e){return this.getSimplifiedGeometry(e*e)}getSimplifiedGeometry(e){return ne()}getType(){return ne()}applyTransform(e){ne()}intersectsExtent(e){return ne()}translate(e,t){ne()}transform(e,t){let n=fe(e),r=n.getUnits()=="tile-pixels"?function(o,s,a){let l=n.getExtent(),A=n.getWorldExtent(),c=qe(A)/qe(l);ct(C_,A[0],A[3],c,-c,0,0,0);let h=li(o,0,o.length,a,C_,s),u=ro(n,t);return u?u(h,h,a):h}:ro(n,t);return this.applyTransform(r),this}},ru=ip;var np=class extends ru{constructor(){super(),this.layout="XY",this.stride=2,this.flatCoordinates}computeExtent(e){return Qa(this.flatCoordinates,0,this.flatCoordinates.length,this.stride,e)}getCoordinates(){return ne()}getFirstCoordinate(){return this.flatCoordinates.slice(0,this.stride)}getFlatCoordinates(){return this.flatCoordinates}getLastCoordinate(){return this.flatCoordinates.slice(this.flatCoordinates.length-this.stride)}getLayout(){return this.layout}getSimplifiedGeometry(e){if(this.simplifiedGeometryRevision!==this.getRevision()&&(this.simplifiedGeometryMaxMinSquaredTolerance=0,this.simplifiedGeometryRevision=this.getRevision()),e<0||this.simplifiedGeometryMaxMinSquaredTolerance!==0&&e<=this.simplifiedGeometryMaxMinSquaredTolerance)return this;let t=this.getSimplifiedGeometryInternal(e);return t.getFlatCoordinates().length1)h=t;else if(u>0){for(let f=0;fr&&(r=A),o=a,s=l}return r}function bA(i,e,t,n,r){for(let o=0,s=t.length;o0;){let h=A.pop(),u=A.pop(),f=0,g=i[u],p=i[u+1],d=i[h],I=i[h+1];for(let m=u+n;mf&&(c=m,f=y)}f>r&&(l[(c-e)/n]=1,u+n0&&p>f)&&(g<0&&d0&&d>g)){A=h,c=u;continue}o[s++]=A,o[s++]=c,a=A,l=c,A=h,c=u}return o[s++]=A,o[s++]=c,s}function MA(i,e,t,n,r,o,s,a){for(let l=0,A=t.length;lo&&(A-a)*(o-l)-(r-a)*(c-l)>0&&s++:c<=o&&(A-a)*(o-l)-(r-a)*(c-l)<0&&s--,a=A,l=c}return s!==0}function kA(i,e,t,n,r,o){if(t.length===0||!ls(i,e,t[0],n,r,o))return!1;for(let s=1,a=t.length;sI&&(A=(c+h)/2,kA(i,e,t,n,A,g)&&(d=A,I=m)),c=h}return isNaN(d)&&(d=r[o]),s?(s.push(d,g,I),s):[d,g,I]}function lu(i,e,t,n,r){let o=[];for(let s=0,a=t.length;s=r[0]&&o[2]<=r[2]||o[1]>=r[1]&&o[3]<=r[3]?!0:Au(i,e,t,n,function(s,a){return Oy(r,s,a)}):!1}function R_(i,e,t,n,r){for(let o=0,s=t.length;o0}function GA(i,e,t,n,r){r=r!==void 0?r:!1;for(let o=0,s=t.length;o1?s:2,o=o||new Array(s);for(let c=0;c>1;r.0031308?Math.pow(i,1/2.4)*269.025-14.025:i*3294.6}function Cp(i){return i>.2068965?Math.pow(i,3):(i-4/29)*(108/841)}function yp(i){return i>10.314724?Math.pow((i+14.025)/269.025,2.4):i/3294.6}function _p(i){return i>.0088564?Math.pow(i,1/3):i/(108/841)+4/29}function xp(i){let e=yp(i[0]),t=yp(i[1]),n=yp(i[2]),r=_p(e*.222488403+t*.716873169+n*.06060791),o=500*(_p(e*.452247074+t*.399439023+n*.148375274)-r),s=200*(r-_p(e*.016863605+t*.117638439+n*.865350722)),a=Math.atan2(s,o)*(180/Math.PI);return[116*r-16,Math.sqrt(o*o+s*s),a<0?a+360:a,i[3]]}function V_(i){let e=(i[0]+16)/116,t=i[1],n=i[2]*Math.PI/180,r=Cp(e),o=Cp(e+t/500*Math.cos(n)),s=Cp(e-t/200*Math.sin(n)),a=Ip(o*3.021973625-r*1.617392459-s*.404875592),l=Ip(o*-.943766287+r*1.916279586+s*.027607165),A=Ip(o*.069407491-r*.22898585+s*1.159737864);return[Ee(a+.5|0,0,255),Ee(l+.5|0,0,255),Ee(A+.5|0,0,255),i[3]]}function VA(i){if(i==="none")return du;if(zA.hasOwnProperty(i))return zA[i];if(Ep>=D2){let t=0;for(let n in zA)(t++&3)===0&&(delete zA[n],--Ep)}let e=U_(i);e.length!==4&&YA(i);for(let t of e)isNaN(t)&&YA(i);return zA[i]=e,++Ep,e}function Nt(i){return Array.isArray(i)?i:VA(i)}function HA(i){let e=i[0];e!=(e|0)&&(e=e+.5|0);let t=i[1];t!=(t|0)&&(t=t+.5|0);let n=i[2];n!=(n|0)&&(n=n+.5|0);let r=i[3]===void 0?1:Math.round(i[3]*1e3)/1e3;return"rgba("+e+","+t+","+n+","+r+")"}var Bp=class extends Mn{constructor(e,t,n,r){super(),this.extent=e,this.pixelRatio_=n,this.resolution=t,this.state=typeof r=="function"?ie.IDLE:r,this.image_=null,this.loader=typeof r=="function"?r:null}changed(){this.dispatchEvent(K.CHANGE)}getExtent(){return this.extent}getImage(){return this.image_}getPixelRatio(){return this.pixelRatio_}getResolution(){return this.resolution}getState(){return this.state}load(){if(this.state==ie.IDLE&&this.loader){this.state=ie.LOADING,this.changed();let e=this.getResolution(),t=Array.isArray(e)?e[0]:e;Sa(()=>this.loader(this.getExtent(),t,this.getPixelRatio())).then(n=>{"image"in n&&(this.image_=n.image),"extent"in n&&(this.extent=n.extent),"resolution"in n&&(this.resolution=n.resolution),"pixelRatio"in n&&(this.pixelRatio_=n.pixelRatio),(n instanceof HTMLImageElement||P_&&n instanceof ImageBitmap||n instanceof HTMLCanvasElement||n instanceof HTMLVideoElement)&&(this.image_=n),this.state=ie.LOADED}).catch(n=>{this.state=ie.ERROR,console.error(n)}).finally(()=>this.changed())}}setImage(e){this.image_=e}setResolution(e){this.resolution=e}};function H_(i,e,t){let n=i,r=!0,o=!1,s=!1,a=[jo(n,K.LOAD,function(){s=!0,o||e()})];return n.src&&dp?(o=!0,n.decode().then(function(){r&&e()}).catch(function(l){r&&(s?e():t())})):a.push(jo(n,K.ERROR,t)),function(){r=!1,a.forEach(ce)}}function F2(i,e){return new Promise((t,n)=>{function r(){s(),t(i)}function o(){s(),n(new Error("Image load error"))}function s(){i.removeEventListener("load",r),i.removeEventListener("error",o)}i.addEventListener("load",r),i.addEventListener("error",o),e&&(i.src=e)})}function q_(i,e){return e&&(i.src=e),i.src&&dp?new Promise((t,n)=>i.decode().then(()=>t(i)).catch(r=>i.complete&&i.width?t(i):n(r))):F2(i)}var K_=Bp;var vp=class{constructor(){this.cache_={},this.patternCache_={},this.cacheSize_=0,this.maxCacheSize_=1024}clear(){this.cache_={},this.patternCache_={},this.cacheSize_=0}canExpireCache(){return this.cacheSize_>this.maxCacheSize_}expire(){if(this.canExpireCache()){let e=0;for(let t in this.cache_){let n=this.cache_[t];(e++&3)===0&&!n.hasListener()&&(delete this.cache_[t],delete this.patternCache_[t],--this.cacheSize_)}}}get(e,t,n){let r=wp(e,t,n);return r in this.cache_?this.cache_[r]:null}getPattern(e,t,n){let r=wp(e,t,n);return r in this.patternCache_?this.patternCache_[r]:null}set(e,t,n,r,o){let s=wp(e,t,n),a=s in this.cache_;this.cache_[s]=r,o&&(r.getImageState()===ie.IDLE&&r.load(),r.getImageState()===ie.LOADING?r.ready().then(()=>{this.patternCache_[s]=ja().createPattern(r.getImage(1),"repeat")}):this.patternCache_[s]=ja().createPattern(r.getImage(1),"repeat")),a||++this.cacheSize_}setSize(e){this.maxCacheSize_=e,this.expire()}};function wp(i,e,t){let n=t?Nt(t):"null";return e+":"+i+":"+n}var Ci=new vp;var qA=null,pu=class extends Mn{constructor(e,t,n,r,o){super(),this.hitDetectionImage_=null,this.image_=e,this.crossOrigin_=n,this.canvas_={},this.color_=o,this.imageState_=r===void 0?ie.IDLE:r,this.size_=e&&e.width&&e.height?[e.width,e.height]:null,this.src_=t,this.tainted_,this.ready_=null}initializeImage_(){this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_)}isTainted_(){if(this.tainted_===void 0&&this.imageState_===ie.LOADED){qA||(qA=Re(1,1,void 0,{willReadFrequently:!0})),qA.drawImage(this.image_,0,0);try{qA.getImageData(0,0,1,1),this.tainted_=!1}catch{qA=null,this.tainted_=!0}}return this.tainted_===!0}dispatchChangeEvent_(){this.dispatchEvent(K.CHANGE)}handleImageError_(){this.imageState_=ie.ERROR,this.dispatchChangeEvent_()}handleImageLoad_(){this.imageState_=ie.LOADED,this.size_=[this.image_.width,this.image_.height],this.dispatchChangeEvent_()}getImage(e){return this.image_||this.initializeImage_(),this.replaceColor_(e),this.canvas_[e]?this.canvas_[e]:this.image_}getPixelRatio(e){return this.replaceColor_(e),this.canvas_[e]?e:1}getImageState(){return this.imageState_}getHitDetectionImage(){if(this.image_||this.initializeImage_(),!this.hitDetectionImage_)if(this.isTainted_()){let e=this.size_[0],t=this.size_[1],n=Re(e,t);n.fillRect(0,0,e,t),this.hitDetectionImage_=n.canvas}else this.hitDetectionImage_=this.image_;return this.hitDetectionImage_}getSize(){return this.size_}getSrc(){return this.src_}load(){if(this.imageState_===ie.IDLE){this.image_||this.initializeImage_(),this.imageState_=ie.LOADING;try{this.src_!==void 0&&(this.image_.src=this.src_)}catch{this.handleImageError_()}this.image_ instanceof HTMLImageElement&&q_(this.image_,this.src_).then(e=>{this.image_=e,this.handleImageLoad_()}).catch(this.handleImageError_.bind(this))}}replaceColor_(e){if(!this.color_||this.canvas_[e]||this.imageState_!==ie.LOADED)return;let t=this.image_,n=Re(Math.ceil(t.width*e),Math.ceil(t.height*e)),r=n.canvas;n.scale(e,e),n.drawImage(t,0,0),n.globalCompositeOperation="multiply",n.fillStyle=z_(this.color_),n.fillRect(0,0,r.width/e,r.height/e),n.globalCompositeOperation="destination-in",n.drawImage(t,0,0),this.canvas_[e]=r}ready(){return this.ready_||(this.ready_=new Promise(e=>{if(this.imageState_===ie.LOADED||this.imageState_===ie.ERROR)e();else{let t=()=>{(this.imageState_===ie.LOADED||this.imageState_===ie.ERROR)&&(this.removeEventListener(K.CHANGE,t),e())};this.addEventListener(K.CHANGE,t)}})),this.ready_}};function Wa(i,e,t,n,r,o){let s=e===void 0?void 0:Ci.get(e,t,r);return s||(s=new pu(i,i&&"src"in i?i.src||void 0:e,t,n,r),Ci.set(e,t,r,s,o)),o&&s&&!Ci.getPattern(e,t,r)&&Ci.set(e,t,r,s,o),s}var X_=pu;function tn(i){return i?Array.isArray(i)?HA(i):typeof i=="object"&&"src"in i?L2(i):i:null}function L2(i){if(!i.offset||!i.size)return Ci.getPattern(i.src,"anonymous",i.color);let e=i.src+":"+i.offset,t=Ci.getPattern(e,void 0,i.color);if(t)return t;let n=Ci.get(i.src,"anonymous",null);if(n.getImageState()!==ie.LOADED)return null;let r=Re(i.size[0],i.size[1]);return r.drawImage(n.getImage(1),i.offset[0],i.offset[1],i.size[0],i.size[1],0,0,i.size[0],i.size[1]),Wa(r.canvas,e,void 0,ie.LOADED,i.color,!0),Ci.getPattern(e,void 0,i.color)}var Sp=class{drawCustom(e,t,n,r,o){}drawGeometry(e){}setStyle(e){}drawCircle(e,t,n){}drawFeature(e,t,n){}drawGeometryCollection(e,t,n){}drawLineString(e,t,n){}drawMultiLineString(e,t,n){}drawMultiPoint(e,t,n){}drawMultiPolygon(e,t,n){}drawPoint(e,t,n){}drawPolygon(e,t,n){}drawText(e,t,n){}setFillStrokeStyle(e,t){}setImageStyle(e,t){}setTextStyle(e,t){}},mu=Sp;var KA="ol-hidden",W_="ol-selectable",qt="ol-unselectable",Tp="ol-unsupported",nn="ol-control",Ja="ol-collapsed",M2=new RegExp(["^\\s*(?=(?:(?:[-a-z]+\\s*){0,2}(italic|oblique))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(small-caps))?)","(?=(?:(?:[-a-z]+\\s*){0,2}(bold(?:er)?|lighter|[1-9]00 ))?)","(?:(?:normal|\\1|\\2|\\3)\\s*){0,3}((?:xx?-)?","(?:small|large)|medium|smaller|larger|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx]))","(?:\\s*\\/\\s*(normal|[\\.\\d]+(?:\\%|in|[cem]m|ex|p[ctx])?))",`?\\s*([-,\\"\\'\\sa-z0-9]+?)\\s*$`].join(""),"i"),j_=["style","variant","weight","size","lineHeight","family"],Rp=function(i){let e=i.match(M2);if(!e)return null;let t={lineHeight:"normal",size:"1.2em",style:"normal",weight:"normal",variant:"normal"};for(let n=0,r=j_.length;nMath.max(r,dl(i,o)),0);return t[e]=n,n}function zE(i,e){let t=[],n=[],r=[],o=0,s=0,a=0,A=0;for(let l=0,c=e.length;l<=c;l+=2){let h=e[l];if(h===` -`||l===c){o=Math.max(o,s),r.push(s),s=0,a+=A,A=0;continue}let u=e[l+1]||i.font,f=dl(u,h);t.push(f),s+=f;let g=Nw(u);n.push(g),A=Math.max(A,g)}return{width:o,height:a,widths:t,heights:n,lineWidths:r}}function KE(i,e,t,n,r,o,s,a,A,l,c){i.save(),t!==1&&(i.globalAlpha===void 0?i.globalAlpha=h=>h.globalAlpha*=t:i.globalAlpha*=t),e&&i.transform.apply(i,e),n.contextInstructions?(i.translate(A,l),i.scale(c[0],c[1]),Gw(n,i)):c[0]<0||c[1]<0?(i.translate(A,l),i.scale(c[0],c[1]),i.drawImage(n,r,o,s,a,0,0,s,a)):i.drawImage(n,r,o,s,a,A,l,s*c[0],a*c[1]),i.restore()}function Gw(i,e){let t=i.contextInstructions;for(let n=0,r=t.length;nh*this.pixelRatio_),lineDashOffset:(s||Ot)*this.pixelRatio_,lineJoin:a!==void 0?a:zi,lineWidth:(A!==void 0?A:vn)*this.pixelRatio_,miterLimit:l!==void 0?l:Qn,strokeStyle:Nt(n||Sn)}}}setImageStyle(e){let t;if(!e||!(t=e.getSize())){this.image_=null;return}let n=e.getPixelRatio(this.pixelRatio_),r=e.getAnchor(),o=e.getOrigin();this.image_=e.getImage(this.pixelRatio_),this.imageAnchorX_=r[0]*n,this.imageAnchorY_=r[1]*n,this.imageHeight_=t[1]*n,this.imageOpacity_=e.getOpacity(),this.imageOriginX_=o[0],this.imageOriginY_=o[1],this.imageRotateWithView_=e.getRotateWithView(),this.imageRotation_=e.getRotation();let s=e.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/n,s[1]*this.pixelRatio_/n],this.imageWidth_=t[0]*n}setTextStyle(e){if(!e)this.text_="";else{let t=e.getFill();if(!t)this.textFillState_=null;else{let f=t.getColor();this.textFillState_={fillStyle:Nt(f||$e)}}let n=e.getStroke();if(!n)this.textStrokeState_=null;else{let f=n.getColor(),g=n.getLineCap(),m=n.getLineDash(),d=n.getLineDashOffset(),E=n.getLineJoin(),p=n.getWidth(),_=n.getMiterLimit();this.textStrokeState_={lineCap:g!==void 0?g:Hi,lineDash:m||Gt,lineDashOffset:d||Ot,lineJoin:E!==void 0?E:zi,lineWidth:p!==void 0?p:vn,miterLimit:_!==void 0?_:Qn,strokeStyle:Nt(f||Sn)}}let r=e.getFont(),o=e.getOffsetX(),s=e.getOffsetY(),a=e.getRotateWithView(),A=e.getRotation(),l=e.getScaleArray(),c=e.getText(),h=e.getTextAlign(),u=e.getTextBaseline();this.textState_={font:r!==void 0?r:ml,textAlign:h!==void 0?h:or,textBaseline:u!==void 0?u:Gr},this.text_=c!==void 0?Array.isArray(c)?c.reduce((f,g,m)=>f+=m%2?" ":g,""):c:"",this.textOffsetX_=o!==void 0?this.pixelRatio_*o:0,this.textOffsetY_=s!==void 0?this.pixelRatio_*s:0,this.textRotateWithView_=a!==void 0?a:!1,this.textRotation_=A!==void 0?A:0,this.textScale_=[this.pixelRatio_*l[0],this.pixelRatio_*l[1]]}}},qE=bu;var Ow=.5,VE={Point:Vw,LineString:zw,Polygon:Jw,MultiPoint:Xw,MultiLineString:Kw,MultiPolygon:qw,GeometryCollection:Hw,Circle:Uw};function XE(i,e){return parseInt(z(i),10)-parseInt(z(e),10)}function Fu(i,e){let t=Lu(i,e);return t*t}function Lu(i,e){return Ow*i/e}function Uw(i,e,t,n,r){let o=t.getFill(),s=t.getStroke();if(o||s){let A=i.getBuilder(t.getZIndex(),"Circle");A.setFillStrokeStyle(o,s),A.drawCircle(e,n,r)}let a=t.getText();if(a&&a.getText()){let A=i.getBuilder(t.getZIndex(),"Text");A.setTextStyle(a),A.drawText(e,n)}}function Mu(i,e,t,n,r,o,s,a){let A=[],l=t.getImage();if(l){let u=!0,f=l.getImageState();f==ee.LOADED||f==ee.ERROR?u=!1:f==ee.IDLE&&l.load(),u&&A.push(l.ready())}let c=t.getFill();c&&c.loading()&&A.push(c.ready());let h=A.length>0;return h&&Promise.all(A).then(()=>r(null)),Yw(i,e,t,n,o,s,a),h}function Yw(i,e,t,n,r,o,s){let a=t.getGeometryFunction()(e);if(!a)return;let A=a.simplifyTransformed(n,r);if(t.getRenderer())JE(i,A,t,e,s);else{let c=VE[A.getType()];c(i,A,t,e,s,o)}}function JE(i,e,t,n,r){if(e.getType()=="GeometryCollection"){let s=e.getGeometries();for(let a=0,A=s.length;a=200&&a.status<300){let l=e.getType();try{let c;l=="text"||l=="json"?c=a.responseText:l=="xml"?c=a.responseXML||a.responseText:l=="arraybuffer"&&(c=a.response),c?o(e.readFeatures(c,{extent:t,featureProjection:r}),e.readProjection(c)):s()}catch{s()}}else s()},a.onerror=s,a.send()}function ku(i,e){return function(t,n,r,o,s){Ww(i,e,t,n,r,(a,A)=>{this.addFeatures(a),o!==void 0&&o(a)},()=>{this.changed(),s!==void 0&&s()})}}function jE(i,e){return[[-1/0,-1/0,1/0,1/0]]}function pl(i,e,t,n){let r=[],o=be();for(let s=0,a=t.length;se.clone())}var Si=Nu;var Gu=class i extends Pt{constructor(e,t,n){if(super(),this.ends_=[],this.maxDelta_=-1,this.maxDeltaRevision_=-1,Array.isArray(e[0]))this.setCoordinates(e,t);else if(t!==void 0&&n)this.setFlatCoordinates(t,e),this.ends_=n;else{let r=e,o=[],s=[];for(let A=0,l=r.length;A{if(e===this.squaredTolerance_)return this.simplifiedGeometry_;this.simplifiedGeometry_=this.clone(),t&&this.simplifiedGeometry_.applyTransform(t);let n=this.simplifiedGeometry_.getFlatCoordinates(),r;switch(this.type_){case"LineString":n.length=Mr(n,0,this.simplifiedGeometry_.flatCoordinates_.length,this.simplifiedGeometry_.stride_,e,n,0),r=[n.length];break;case"MultiLineString":r=[],n.length=il(n,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,e,n,0,r);break;case"Polygon":r=[],n.length=Zs(n,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,Math.sqrt(e),n,0,r);break;default:}return r&&(this.simplifiedGeometry_=new i(this.type_,n,r,2,this.properties_,this.id_)),this.squaredTolerance_=e,this.simplifiedGeometry_}),this}};ua.prototype.getFlatCoordinates=ua.prototype.getOrientedFlatCoordinates;var Zt=ua;function El(i,e,t=0,n=i.length-1,r=Zw){for(;n>t;){if(n-t>600){let A=n-t+1,l=e-t+1,c=Math.log(A),h=.5*Math.exp(2*c/3),u=.5*Math.sqrt(c*h*(A-h)/A)*(l-A/2<0?-1:1),f=Math.max(t,Math.floor(e-l*h/A+u)),g=Math.min(n,Math.floor(e+(A-l)*h/A+u));El(i,e,f,g,r)}let o=i[e],s=t,a=n;for(fa(i,t,e),r(i[n],o)>0&&fa(i,t,n);s0;)a--}r(i[t],o)===0?fa(i,t,a):(a++,fa(i,a,n)),a<=e&&(t=a+1),e<=a&&(n=a-1)}}function fa(i,e,t){let n=i[e];i[e]=i[t],i[t]=n}function Zw(i,e){return ie?1:0}var Ur=class{constructor(e=9){this._maxEntries=Math.max(4,e),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()}all(){return this._all(this.data,[])}search(e){let t=this.data,n=[];if(!Cl(e,t))return n;let r=this.toBBox,o=[];for(;t;){for(let s=0;s=0&&o[t].children.length>this._maxEntries;)this._split(o,t),t--;this._adjustParentBBoxes(r,o,t)}_split(e,t){let n=e[t],r=n.children.length,o=this._minEntries;this._chooseSplitAxis(n,o,r);let s=this._chooseSplitIndex(n,o,r),a=Ho(n.children.splice(s,n.children.length-s));a.height=n.height,a.leaf=n.leaf,Yo(n,this.toBBox),Yo(a,this.toBBox),t?e[t-1].children.push(a):this._splitRoot(n,a)}_splitRoot(e,t){this.data=Ho([e,t]),this.data.height=e.height+1,this.data.leaf=!1,Yo(this.data,this.toBBox)}_chooseSplitIndex(e,t,n){let r,o=1/0,s=1/0;for(let a=t;a<=n-t;a++){let A=ga(e,0,a,this.toBBox),l=ga(e,a,n,this.toBBox),c=nQ(A,l),h=Yu(A)+Yu(l);c=t;l--){let c=e.children[l];da(a,e.leaf?o(c):c),A+=Il(a)}return A}_adjustParentBBoxes(e,t,n){for(let r=n;r>=0;r--)da(t[r],e)}_condense(e){for(let t=e.length-1,n;t>=0;t--)e[t].children.length===0?t>0?(n=e[t-1].children,n.splice(n.indexOf(e[t]),1)):this.clear():Yo(e[t],this.toBBox)}};function $w(i,e,t){if(!t)return e.indexOf(i);for(let n=0;n=i.minX&&e.maxY>=i.minY}function Ho(i){return{children:i,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function ZE(i,e,t,n,r){let o=[e,t];for(;o.length;){if(t=o.pop(),e=o.pop(),t-e<=n)continue;let s=e+Math.ceil((t-e)/n/2)*n;El(i,s,e,t,r),o.push(e,s,s,t)}}var zu=class{constructor(e){this.rbush_=new Ur(e),this.items_={}}insert(e,t){let n={minX:e[0],minY:e[1],maxX:e[2],maxY:e[3],value:t};this.rbush_.insert(n),this.items_[z(t)]=n}load(e,t){let n=new Array(t.length);for(let r=0,o=t.length;ri):null}var _l=qu;var at={ADDFEATURE:"addfeature",CHANGEFEATURE:"changefeature",CLEAR:"clear",REMOVEFEATURE:"removefeature",FEATURESLOADSTART:"featuresloadstart",FEATURESLOADEND:"featuresloadend",FEATURESLOADERROR:"featuresloaderror"};var Ki=class extends ot{constructor(e,t,n){super(e),this.feature=t,this.features=n}},Vu=class extends _l{constructor(e){e=e||{},super({attributions:e.attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:e.wrapX!==void 0?e.wrapX:!0}),this.on,this.once,this.un,this.loader_=Cn,this.format_=e.format||null,this.overlaps_=e.overlaps===void 0?!0:e.overlaps,this.url_=e.url,e.loader!==void 0?this.loader_=e.loader:this.url_!==void 0&&(re(this.format_,"`format` must be set when `url` is set"),this.loader_=ku(this.url_,this.format_)),this.strategy_=e.strategy!==void 0?e.strategy:jE;let t=e.useSpatialIndex!==void 0?e.useSpatialIndex:!0;this.featuresRtree_=t?new Ku:null,this.loadedExtentsRtree_=new Ku,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null;let n,r;Array.isArray(e.features)?r=e.features:e.features&&(n=e.features,r=n.getArray()),!t&&n===void 0&&(n=new st(r)),r!==void 0&&this.addFeaturesInternal(r),n!==void 0&&this.bindFeaturesCollection_(n)}addFeature(e){this.addFeatureInternal(e),this.changed()}addFeatureInternal(e){let t=z(e);if(!this.addToIndex_(t,e)){this.featuresCollection_&&this.featuresCollection_.remove(e);return}this.setupChangeEvents_(t,e);let n=e.getGeometry();if(n){let r=n.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(r,e)}else this.nullGeometryFeatures_[t]=e;this.dispatchEvent(new Ki(at.ADDFEATURE,e))}setupChangeEvents_(e,t){t instanceof Zt||(this.featureChangeKeys_[e]=[X(t,U.CHANGE,this.handleFeatureChange_,this),X(t,Vt.PROPERTYCHANGE,this.handleFeatureChange_,this)])}addToIndex_(e,t){let n=!0;if(t.getId()!==void 0){let r=String(t.getId());if(!(r in this.idIndex_))this.idIndex_[r]=t;else if(t instanceof Zt){let o=this.idIndex_[r];o instanceof Zt?Array.isArray(o)?o.push(t):this.idIndex_[r]=[o,t]:n=!1}else n=!1}return n&&(re(!(e in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[e]=t),n}addFeatures(e){this.addFeaturesInternal(e),this.changed()}addFeaturesInternal(e){let t=[],n=[],r=[];for(let o=0,s=e.length;o{t||(t=!0,this.addFeature(n.element),t=!1)}),e.addEventListener(nt.REMOVE,n=>{t||(t=!0,this.removeFeature(n.element),t=!1)}),this.featuresCollection_=e}clear(e){if(e){for(let n in this.featureChangeKeys_)this.featureChangeKeys_[n].forEach(se);this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){this.featuresRtree_.forEach(n=>{this.removeFeatureInternal(n)});for(let n in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[n])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};let t=new Ki(at.CLEAR);this.dispatchEvent(t),this.changed()}forEachFeature(e){if(this.featuresRtree_)return this.featuresRtree_.forEach(e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureAtCoordinateDirect(e,t){let n=[e[0],e[1],e[0],e[1]];return this.forEachFeatureInExtent(n,function(r){let o=r.getGeometry();if(o instanceof Zt||o.intersectsCoordinate(e))return t(r)})}forEachFeatureInExtent(e,t){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(e,t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureIntersectingExtent(e,t){return this.forEachFeatureInExtent(e,function(n){let r=n.getGeometry();if(r instanceof Zt||r.intersectsExtent(e)){let o=t(n);if(o)return o}})}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let e;return this.featuresCollection_?e=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(e=this.featuresRtree_.getAll(),Xt(this.nullGeometryFeatures_)||he(e,Object.values(this.nullGeometryFeatures_))),e}getFeaturesAtCoordinate(e){let t=[];return this.forEachFeatureAtCoordinateDirect(e,function(n){t.push(n)}),t}getFeaturesInExtent(e,t){if(this.featuresRtree_){if(!(t&&t.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(e);let r=wo(e,t);return[].concat(...r.map(o=>this.featuresRtree_.getInExtent(o)))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(e,t){let n=e[0],r=e[1],o=null,s=[NaN,NaN],a=1/0,A=[-1/0,-1/0,1/0,1/0];return t=t||En,this.featuresRtree_.forEachInExtent(A,function(l){if(t(l)){let c=l.getGeometry(),h=a;if(a=c instanceof Zt?0:c.closestPointXY(n,r,s,a),a{--this.loadingExtentsCount_,this.dispatchEvent(new Ki(at.FEATURESLOADEND,void 0,c))},()=>{--this.loadingExtentsCount_,this.dispatchEvent(new Ki(at.FEATURESLOADERROR))}),r.insert(A,{extent:A.slice()}))}this.loading=this.loader_.length<4?!1:this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(e){let t=this.loadedExtentsRtree_,n=t.forEachInExtent(e,function(r){if(jt(r.extent,e))return r});n&&t.remove(n)}removeFeatures(e){let t=!1;for(let n=0,r=e.length;n{this.patternImage_=null}),t.getImageState()===ee.IDLE&&t.load(),t.getImageState()===ee.LOADING&&(this.patternImage_=t)}this.color_=e}getKey(){let e=this.getColor();return e?e instanceof CanvasPattern||e instanceof CanvasGradient?z(e):typeof e=="object"&&"src"in e?e.src+":"+e.offset:We(e).toString():""}loading(){return!!this.patternImage_}ready(){return this.patternImage_?this.patternImage_.ready():Promise.resolve()}},qi=Ju;var ju=class i{constructor(e){e=e||{},this.color_=e.color!==void 0?e.color:null,this.lineCap_=e.lineCap,this.lineDash_=e.lineDash!==void 0?e.lineDash:null,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.width_=e.width}clone(){let e=this.getColor();return new i({color:Array.isArray(e)?e.slice():e||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getWidth(){return this.width_}setColor(e){this.color_=e}setLineCap(e){this.lineCap_=e}setLineDash(e){this.lineDash_=e}setLineDashOffset(e){this.lineDashOffset_=e}setLineJoin(e){this.lineJoin_=e}setMiterLimit(e){this.miterLimit_=e}setWidth(e){this.width_=e}},sr=ju;function Wu(i){return i[0]>0&&i[1]>0}function eI(i,e,t){return t===void 0&&(t=[0,0]),t[0]=i[0]*e+.5|0,t[1]=i[1]*e+.5|0,t}function _e(i,e){return Array.isArray(i)?i:(e===void 0?e=[i,i]:(e[0]=i,e[1]=i),e)}var Zu=class i{constructor(e){this.opacity_=e.opacity,this.rotateWithView_=e.rotateWithView,this.rotation_=e.rotation,this.scale_=e.scale,this.scaleArray_=_e(e.scale),this.displacement_=e.displacement,this.declutterMode_=e.declutterMode}clone(){let e=this.getScale();return new i({opacity:this.getOpacity(),scale:Array.isArray(e)?e.slice():e,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return J()}getImage(e){return J()}getHitDetectionImage(){return J()}getPixelRatio(e){return 1}getImageState(){return J()}getImageSize(){return J()}getOrigin(){return J()}getSize(){return J()}setDisplacement(e){this.displacement_=e}setOpacity(e){this.opacity_=e}setRotateWithView(e){this.rotateWithView_=e}setRotation(e){this.rotation_=e}setScale(e){this.scale_=e,this.scaleArray_=_e(e)}listenImageChange(e){J()}load(){J()}unlistenImageChange(e){J()}ready(){return Promise.resolve()}},yl=Zu;var $u=class i extends yl{constructor(e){super({opacity:1,rotateWithView:e.rotateWithView!==void 0?e.rotateWithView:!1,rotation:e.rotation!==void 0?e.rotation:0,scale:e.scale!==void 0?e.scale:1,displacement:e.displacement!==void 0?e.displacement:[0,0],declutterMode:e.declutterMode}),this.hitDetectionCanvas_=null,this.fill_=e.fill!==void 0?e.fill:null,this.origin_=[0,0],this.points_=e.points,this.radius=e.radius,this.radius2_=e.radius2,this.angle_=e.angle!==void 0?e.angle:0,this.stroke_=e.stroke!==void 0?e.stroke:null,this.size_,this.renderOptions_,this.imageState_=this.fill_&&this.fill_.loading()?ee.LOADING:ee.LOADED,this.imageState_===ee.LOADING&&this.ready().then(()=>this.imageState_=ee.LOADED),this.render()}clone(){let e=this.getScale(),t=new i({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(e)?e.slice():e,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return t.setOpacity(this.getOpacity()),t}getAnchor(){let e=this.size_,t=this.getDisplacement(),n=this.getScaleArray();return[e[0]/2-t[0]/n[0],e[1]/2+t[1]/n[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(e){this.fill_=e,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.createHitDetectionCanvas_(this.renderOptions_)),this.hitDetectionCanvas_}getImage(e){let t=this.fill_?.getKey(),n=`${e},${this.angle_},${this.radius},${this.radius2_},${this.points_},${t}`+Object.values(this.renderOptions_).join(","),r=_t.get(n,null,null)?.getImage(1);if(!r){let o=this.renderOptions_,s=Math.ceil(o.size*e),a=me(s,s);this.draw_(o,a,e),r=a.canvas,_t.set(n,null,null,new GE(r,void 0,null,ee.LOADED,null))}return r}getPixelRatio(e){return e}getImageSize(){return this.size_}getImageState(){return this.imageState_}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius}getRadius2(){return this.radius2_}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(e){this.stroke_=e,this.render()}listenImageChange(e){}load(){}unlistenImageChange(e){}calculateLineJoinSize_(e,t,n){if(t===0||this.points_===1/0||e!=="bevel"&&e!=="miter")return t;let r=this.radius,o=this.radius2_===void 0?r:this.radius2_;if(rA&&(this.instructions.push([$.CUSTOM,A,c,e,n,ui,o]),this.hitDetectionInstructions.push([$.CUSTOM,A,c,e,r||n,ui,o]));break;case"Point":l=e.getFlatCoordinates(),this.coordinates.push(l[0],l[1]),c=this.coordinates.length,this.instructions.push([$.CUSTOM,A,c,e,n,void 0,o]),this.hitDetectionInstructions.push([$.CUSTOM,A,c,e,r||n,void 0,o]);break;default:}this.endGeometry(t)}beginGeometry(e,t,n){this.beginGeometryInstruction1_=[$.BEGIN_GEOMETRY,t,0,e,n],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[$.BEGIN_GEOMETRY,t,0,e,n],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){let e=this.hitDetectionInstructions;e.reverse();let t,n=e.length,r,o,s=-1;for(t=0;tthis.maxLineWidth&&(this.maxLineWidth=t.lineWidth,this.bufferedMaxExtent_=null)}else t.strokeStyle=void 0,t.lineCap=void 0,t.lineDash=null,t.lineDashOffset=void 0,t.lineJoin=void 0,t.lineWidth=void 0,t.miterLimit=void 0;return t}setFillStrokeStyle(e,t){let n=this.state;this.fillStyleToState(e,n),this.strokeStyleToState(t,n)}createFill(e){let t=e.fillStyle,n=[$.SET_FILL_STYLE,t];return typeof t!="string"&&n.push(e.fillPatternScale),n}applyStroke(e){this.instructions.push(this.createStroke(e))}createStroke(e){return[$.SET_STROKE_STYLE,e.strokeStyle,e.lineWidth*this.pixelRatio,e.lineCap,e.lineJoin,e.miterLimit,e.lineDash?this.applyPixelRatio(e.lineDash):null,e.lineDashOffset*this.pixelRatio]}updateFillStyle(e,t){let n=e.fillStyle;(typeof n!="string"||e.currentFillStyle!=n)&&(n!==void 0&&this.instructions.push(t.call(this,e)),e.currentFillStyle=n)}updateStrokeStyle(e,t){let n=e.strokeStyle,r=e.lineCap,o=e.lineDash,s=e.lineDashOffset,a=e.lineJoin,A=e.lineWidth,l=e.miterLimit;(e.currentStrokeStyle!=n||e.currentLineCap!=r||o!=e.currentLineDash&&!rt(e.currentLineDash,o)||e.currentLineDashOffset!=s||e.currentLineJoin!=a||e.currentLineWidth!=A||e.currentMiterLimit!=l)&&(n!==void 0&&t.call(this,e),e.currentStrokeStyle=n,e.currentLineCap=r,e.currentLineDash=o,e.currentLineDashOffset=s,e.currentLineJoin=a,e.currentLineWidth=A,e.currentMiterLimit=l)}endGeometry(e){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;let t=[$.END_GEOMETRY,e];this.instructions.push(t),this.hitDetectionInstructions.push(t)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=LA(this.maxExtent),this.maxLineWidth>0)){let e=this.resolution*(this.maxLineWidth+1)/2;Jn(this.bufferedMaxExtent_,e,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}},Xi=sf;var af=class extends Xi{constructor(e,t,n,r){super(e,t,n,r),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(e,t,n){if(!this.image_||this.maxExtent&&!kt(this.maxExtent,e.getFlatCoordinates()))return;this.beginGeometry(e,t,n);let r=e.getFlatCoordinates(),o=e.getStride(),s=this.coordinates.length,a=this.appendFlatPointCoordinates(r,o);this.instructions.push([$.DRAW_IMAGE,s,a,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([$.DRAW_IMAGE,s,a,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(t)}drawMultiPoint(e,t,n){if(!this.image_)return;this.beginGeometry(e,t,n);let r=e.getFlatCoordinates(),o=[];for(let A=0,l=r.length;A=i){let g=(i-a+f)/f,m=ut(l,h,g),d=ut(c,u,g);A.push(m,d),o.push(A),A=[m,d],a==i&&(s+=r),a=0}else if(a0&&o.push(A),o}function sI(i,e,t,n,r){let o=t,s=t,a=0,A=0,l=t,c,h,u,f,g,m,d,E,p,_;for(h=t;hi&&(A>a&&(a=A,o=l,s=h),A=0,l=h-r)),u=f,d=p,E=_),g=C,m=I}return A+=f,A>a?[l,h]:[o,s]}var Ia={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},hf=class extends Xi{constructor(e,t,n,r){super(e,t,n,r),this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textKeepUpright_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.fillStates[$e]={fillStyle:$e},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.declutterMode_=void 0,this.declutterImageWithText_=void 0}finish(){let e=super.finish();return e.textStates=this.textStates,e.fillStates=this.fillStates,e.strokeStates=this.strokeStates,e}drawText(e,t,n){let r=this.textFillState_,o=this.textStrokeState_,s=this.textState_;if(this.text_===""||!s||!r&&!o)return;let a=this.coordinates,A=a.length,l=e.getType(),c=null,h=e.getStride();if(s.placement==="line"&&(l=="LineString"||l=="MultiLineString"||l=="Polygon"||l=="MultiPolygon")){if(!Ne(this.maxExtent,e.getExtent()))return;let u;if(c=e.getFlatCoordinates(),l=="LineString")u=[c.length];else if(l=="MultiLineString")u=e.getEnds();else if(l=="Polygon")u=e.getEnds().slice(0,1);else if(l=="MultiPolygon"){let d=e.getEndss();u=[];for(let E=0,p=d.length;E{let x=a[(C+y)*2]===c[y*h]&&a[(C+y)*2+1]===c[y*h+1];return x||--C,x})}this.saveTextStates_();let g=s.backgroundFill?this.createFill(this.fillStyleToState(s.backgroundFill)):null,m=s.backgroundStroke?this.createStroke(this.strokeStyleToState(s.backgroundStroke)):null;this.beginGeometry(e,t,n);let d=s.padding;if(d!=Rn&&(s.scale[0]<0||s.scale[1]<0)){let C=s.padding[0],I=s.padding[1],y=s.padding[2],x=s.padding[3];s.scale[0]<0&&(I=-I,x=-x),s.scale[1]<0&&(C=-C,y=-y),d=[C,I,y,x]}let E=this.pixelRatio;this.instructions.push([$.DRAW_IMAGE,A,f,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,this.declutterMode_,this.declutterImageWithText_,d==Rn?Rn:d.map(function(C){return C*E}),g,m,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,u]);let p=1/E,_=g?g.slice(0):null;_&&(_[1]=$e),this.hitDetectionInstructions.push([$.DRAW_IMAGE,A,f,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[p,p],NaN,this.declutterMode_,this.declutterImageWithText_,d,_,m,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?$e:this.fillKey_,this.textOffsetX_,this.textOffsetY_,u]),this.endGeometry(t)}}saveTextStates_(){let e=this.textStrokeState_,t=this.textState_,n=this.textFillState_,r=this.strokeKey_;e&&(r in this.strokeStates||(this.strokeStates[r]={strokeStyle:e.strokeStyle,lineCap:e.lineCap,lineDashOffset:e.lineDashOffset,lineWidth:e.lineWidth,lineJoin:e.lineJoin,miterLimit:e.miterLimit,lineDash:e.lineDash}));let o=this.textKey_;o in this.textStates||(this.textStates[o]={font:t.font,textAlign:t.textAlign||or,justify:t.justify,textBaseline:t.textBaseline||Gr,scale:t.scale});let s=this.fillKey_;n&&(s in this.fillStates||(this.fillStates[s]={fillStyle:n.fillStyle}))}drawChars_(e,t){let n=this.textStrokeState_,r=this.textState_,o=this.strokeKey_,s=this.textKey_,a=this.fillKey_;this.saveTextStates_();let A=this.pixelRatio,l=Ia[r.textBaseline],c=this.textOffsetY_*A,h=this.text_,u=n?n.lineWidth*Math.abs(r.scale[0])/2:0;this.instructions.push([$.DRAW_CHARS,e,t,l,r.overflow,a,r.maxAngle,A,c,o,u*A,h,s,1,this.declutterMode_,this.textKeepUpright_]),this.hitDetectionInstructions.push([$.DRAW_CHARS,e,t,l,r.overflow,a&&$e,r.maxAngle,A,c,o,u*A,h,s,1/A,this.declutterMode_,this.textKeepUpright_])}setTextStyle(e,t){let n,r,o;if(!e)this.text_="";else{let s=e.getFill();s?(r=this.textFillState_,r||(r={},this.textFillState_=r),r.fillStyle=Nt(s.getColor()||$e)):(r=null,this.textFillState_=r);let a=e.getStroke();if(!a)o=null,this.textStrokeState_=o;else{o=this.textStrokeState_,o||(o={},this.textStrokeState_=o);let m=a.getLineDash(),d=a.getLineDashOffset(),E=a.getWidth(),p=a.getMiterLimit();o.lineCap=a.getLineCap()||Hi,o.lineDash=m?m.slice():Gt,o.lineDashOffset=d===void 0?Ot:d,o.lineJoin=a.getLineJoin()||zi,o.lineWidth=E===void 0?vn:E,o.miterLimit=p===void 0?Qn:p,o.strokeStyle=Nt(a.getColor()||Sn)}n=this.textState_;let A=e.getFont()||ml;YE(A);let l=e.getScaleArray();n.overflow=e.getOverflow(),n.font=A,n.maxAngle=e.getMaxAngle(),n.placement=e.getPlacement(),n.textAlign=e.getTextAlign(),n.repeat=e.getRepeat(),n.justify=e.getJustify(),n.textBaseline=e.getTextBaseline()||Gr,n.backgroundFill=e.getBackgroundFill(),n.backgroundStroke=e.getBackgroundStroke(),n.padding=e.getPadding()||Rn,n.scale=l===void 0?[1,1]:l;let c=e.getOffsetX(),h=e.getOffsetY(),u=e.getRotateWithView(),f=e.getKeepUpright(),g=e.getRotation();this.text_=e.getText()||"",this.textOffsetX_=c===void 0?0:c,this.textOffsetY_=h===void 0?0:h,this.textRotateWithView_=u===void 0?!1:u,this.textKeepUpright_=f===void 0?!0:f,this.textRotation_=g===void 0?0:g,this.strokeKey_=o?(typeof o.strokeStyle=="string"?o.strokeStyle:z(o.strokeStyle))+o.lineCap+o.lineDashOffset+"|"+o.lineWidth+o.lineJoin+o.miterLimit+"["+o.lineDash.join()+"]":"",this.textKey_=n.font+n.scale+(n.textAlign||"?")+(n.repeat||"?")+(n.justify||"?")+(n.textBaseline||"?"),this.fillKey_=r&&r.fillStyle?typeof r.fillStyle=="string"?r.fillStyle:"|"+z(r.fillStyle):""}this.declutterMode_=e.getDeclutterMode(),this.declutterImageWithText_=t}},aI=hf;var oQ={Circle:cf,Default:Xi,Image:nI,LineString:rI,Polygon:cf,Text:aI},uf=class{constructor(e,t,n,r){this.tolerance_=e,this.maxExtent_=t,this.pixelRatio_=r,this.resolution_=n,this.buildersByZIndex_={}}finish(){let e={};for(let t in this.buildersByZIndex_){e[t]=e[t]||{};let n=this.buildersByZIndex_[t];for(let r in n){let o=n[r].finish();e[t][r]=o}}return e}getBuilder(e,t){let n=e!==void 0?e.toString():"0",r=this.buildersByZIndex_[n];r===void 0&&(r={},this.buildersByZIndex_[n]=r);let o=r[t];if(o===void 0){let s=oQ[t];o=new s(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_),r[t]=o}return o}},AI=uf;function lI(i,e,t,n,r,o,s,a,A,l,c,h,u=!0){let f=i[e],g=i[e+1],m=0,d=0,E=0,p=0;function _(){m=f,d=g,e+=n,f=i[e],g=i[e+1],p+=E,E=Math.sqrt((f-m)*(f-m)+(g-d)*(g-d))}do _();while(eL[2]}else R=I>w;let F=Math.PI,D=[],S=x+n===e;e=x,E=0,p=B,f=i[e],g=i[e+1];let k;if(S){_(),k=Math.atan2(g-d,f-m),R&&(k+=k>0?-F:F);let L=(w+I)/2,b=(v+y)/2;return D[0]=[L,b,(Q-o)/2,k,r],D}r=r.replace(/\n/g," ");for(let L=0,b=r.length;L0?-F:F),k!==void 0){let O=P-k;if(O+=O>F?-2*F:O<-F?2*F:0,Math.abs(O)>s)return null}k=P;let N=L,Y=0;for(;L{if(typeof Po()[t]=="function")return this.push_(t),this.pushMethodArgs_},set:(e,t,n)=>(this.push_(t,n),!0)})}push_(...e){let t=this.instructions_,n=this.zIndex+this.offset_;t[n]||(t[n]=[]),t[n].push(...e)}pushMethodArgs_=(...e)=>(this.push_(e),this);pushFunction(e){this.push_(e)}getContext(){return this.context_}draw(e){this.instructions_.forEach(t=>{for(let n=0,r=t.length;n0&&i.push(` -`,""),i.push(e,""),i}function aQ(i,e,t){return t%2===0&&(i+=e),i}var df=class{constructor(e,t,n,r,o){this.overlaps=n,this.pixelRatio=t,this.resolution=e,this.alignAndScaleFill_,this.instructions=r.instructions,this.coordinates=r.coordinates,this.coordinateCache_={},this.renderedTransform_=Ce(),this.hitDetectionInstructions=r.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=r.fillStates||{},this.strokeStates=r.strokeStates||{},this.textStates=r.textStates||{},this.widths_={},this.labels_={},this.zIndexContext_=o?new Ql:null}getZIndexContext(){return this.zIndexContext_}createLabel(e,t,n,r){let o=e+t+n+r;if(this.labels_[o])return this.labels_[o];let s=r?this.strokeStates[r]:null,a=n?this.fillStates[n]:null,A=this.textStates[t],l=this.pixelRatio,c=[A.scale[0]*l,A.scale[1]*l],h=A.justify?Ia[A.justify]:gf(Array.isArray(e)?e[0]:e,A.textAlign||or),u=r&&s.lineWidth?s.lineWidth:0,f=Array.isArray(e)?e:String(e).split(` -`).reduce(sQ,[]),{width:g,height:m,widths:d,heights:E,lineWidths:p}=zE(A,f),_=g+u,C=[],I=(_+2)*c[0],y=(m+u)*c[1],x={width:I<0?Math.floor(I):Math.ceil(I),height:y<0?Math.floor(y):Math.ceil(y),contextInstructions:C};(c[0]!=1||c[1]!=1)&&C.push("scale",c),r&&(C.push("strokeStyle",s.strokeStyle),C.push("lineWidth",u),C.push("lineCap",s.lineCap),C.push("lineJoin",s.lineJoin),C.push("miterLimit",s.miterLimit),C.push("setLineDash",[s.lineDash]),C.push("lineDashOffset",s.lineDashOffset)),n&&C.push("fillStyle",a.fillStyle),C.push("textBaseline","middle"),C.push("textAlign","center");let B=.5-h,Q=h*_+B*u,w=[],v=[],R=0,F=0,D=0,S=0,k;for(let L=0,b=f.length;Le?e-l:o,C=s+c>t?t-c:s,I=g[3]+_*u[0]+g[1],y=g[0]+C*u[1]+g[2],x=E-g[3],B=p-g[0];(m||h!==0)&&(ar[0]=x,Ar[0]=x,ar[1]=B,Dn[1]=B,Dn[0]=x+I,bn[0]=Dn[0],bn[1]=B+y,Ar[1]=bn[1]);let Q;return h!==0?(Q=Xe(Ce(),n,r,1,1,h,-n,-r),ye(Q,ar),ye(Q,Dn),ye(Q,bn),ye(Q,Ar),Jt(Math.min(ar[0],Dn[0],bn[0],Ar[0]),Math.min(ar[1],Dn[1],bn[1],Ar[1]),Math.max(ar[0],Dn[0],bn[0],Ar[0]),Math.max(ar[1],Dn[1],bn[1],Ar[1]),zo)):Jt(Math.min(x,x+I),Math.min(B,B+y),Math.max(x,x+I),Math.max(B,B+y),zo),f&&(E=Math.round(E),p=Math.round(p)),{drawImageX:E,drawImageY:p,drawImageW:_,drawImageH:C,originX:l,originY:c,declutterBox:{minX:zo[0],minY:zo[1],maxX:zo[2],maxY:zo[3],value:d},canvasTransform:Q,scale:u}}replayImageOrLabel_(e,t,n,r,o,s,a){let A=!!(s||a),l=r.declutterBox,c=a?a[2]*r.scale[0]/2:0;return l.minX-c<=t[0]&&l.maxX+c>=0&&l.minY-c<=t[1]&&l.maxY+c>=0&&(A&&this.replayTextBackground_(e,ar,Dn,bn,Ar,s,a),KE(e,r.canvasTransform,o,n,r.originX,r.originY,r.drawImageW,r.drawImageH,r.drawImageX,r.drawImageY,r.scale)),!0}fill_(e){let t=this.alignAndScaleFill_;if(t){let n=ye(this.renderedTransform_,[0,0]),r=512*this.pixelRatio;e.save(),e.translate(n[0]%r,n[1]%r),t!==1&&e.scale(t,t),e.rotate(this.viewRotation_)}e.fill(),t&&e.restore()}setStrokeStyle_(e,t){e.strokeStyle=t[1],e.lineWidth=t[2],e.lineCap=t[3],e.lineJoin=t[4],e.miterLimit=t[5],e.lineDashOffset=t[7],e.setLineDash(t[6])}drawLabelWithPointPlacement_(e,t,n,r){let o=this.textStates[t],s=this.createLabel(e,t,r,n),a=this.strokeStates[n],A=this.pixelRatio,l=gf(Array.isArray(e)?e[0]:e,o.textAlign||or),c=Ia[o.textBaseline||Gr],h=a&&a.lineWidth?a.lineWidth:0,u=s.width/A-2*o.scale[0],f=l*u+2*(.5-l)*h,g=c*s.height/A+2*(.5-c)*h;return{label:s,anchorX:f,anchorY:g}}execute_(e,t,n,r,o,s,a,A){let l=this.zIndexContext_,c;this.pixelCoordinates_&&rt(n,this.renderedTransform_)?c=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),c=ft(this.coordinates,0,this.coordinates.length,2,n,this.pixelCoordinates_),WA(this.renderedTransform_,n));let h=0,u=r.length,f=0,g,m,d,E,p,_,C,I,y,x,B,Q,w,v=0,R=0,F=this.coordinateCache_,D=this.viewRotation_,S=Math.round(Math.atan2(-n[1],n[0])*1e12)/1e12,k={context:e,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:D},L=this.instructions!=r||this.overlaps?0:200,b,P,N,Y;for(;hL&&(this.fill_(e),v=0),R>L&&(e.stroke(),R=0),!v&&!R&&(e.beginPath(),p=NaN,_=NaN),++h;break;case $.CIRCLE:f=M[1];let H=c[f],O=c[f+1],K=c[f+2],ie=c[f+3],ge=K-H,Ee=ie-O,de=Math.sqrt(ge*ge+Ee*Ee);e.moveTo(H+de,O),e.arc(H,O,de,0,2*Math.PI,!0),++h;break;case $.CLOSE_PATH:e.closePath(),++h;break;case $.CUSTOM:f=M[1],g=M[2];let Pe=M[3],tt=M[4],xt=M[5];k.geometry=Pe,k.feature=b,h in F||(F[h]=[]);let Je=F[h];xt?xt(c,f,g,2,Je):(Je[0]=c[f],Je[1]=c[f+1],Je.length=2),l&&(l.zIndex=M[6]),tt(Je,k),++h;break;case $.DRAW_IMAGE:f=M[1],g=M[2],y=M[3],m=M[4],d=M[5];let ve=M[6],bt=M[7],un=M[8],wt=M[9],fn=M[10],Et=M[11],fo=M[12],go=M[13];E=M[14]||"declutter";let it=M[15];if(!y&&M.length>=20){x=M[19],B=M[20],Q=M[21],w=M[22];let ri=this.drawLabelWithPointPlacement_(x,B,Q,w);y=ri.label,M[3]=y;let Rr=M[23];m=(ri.anchorX-Rr)*this.pixelRatio,M[4]=m;let oi=M[24];d=(ri.anchorY-oi)*this.pixelRatio,M[5]=d,ve=y.height,M[6]=ve,go=y.width,M[13]=go}let wh;M.length>25&&(wh=M[25]);let Qh,QA,SA;M.length>17?(Qh=M[16],QA=M[17],SA=M[18]):(Qh=Rn,QA=null,SA=null),fn&&S?Et+=D:!fn&&!S&&(Et-=D);let Gx=0;for(;f!Ef.includes(i)),pf=class{constructor(e,t,n,r,o,s,a){this.maxExtent_=e,this.overlaps_=r,this.pixelRatio_=n,this.resolution_=t,this.renderBuffer_=s,this.executorsByZIndex_={},this.hitDetectionContext_=null,this.hitDetectionTransform_=Ce(),this.renderedContext_=null,this.deferredZIndexContexts_={},this.createExecutors_(o,a)}clip(e,t){let n=this.getClipCoords(t);e.beginPath(),e.moveTo(n[0],n[1]),e.lineTo(n[2],n[3]),e.lineTo(n[4],n[5]),e.lineTo(n[6],n[7]),e.clip()}createExecutors_(e,t){for(let n in e){let r=this.executorsByZIndex_[n];r===void 0&&(r={},this.executorsByZIndex_[n]=r);let o=e[n];for(let s in o){let a=o[s];r[s]=new uI(this.resolution_,this.pixelRatio_,this.overlaps_,a,t)}}}hasExecutors(e){for(let t in this.executorsByZIndex_){let n=this.executorsByZIndex_[t];for(let r=0,o=e.length;r0){if(!s||x==="none"||f!=="Image"&&f!=="Text"||s.includes(I)){let v=(u[Q]-3)/4,R=r-v%a,F=r-(v/a|0),D=o(I,y,R*R+F*F);if(D)return D}c.clearRect(0,0,a,a);break}}let m=Object.keys(this.executorsByZIndex_).map(Number);m.sort(Lt);let d,E,p,_,C;for(d=m.length-1;d>=0;--d){let I=m[d].toString();for(p=this.executorsByZIndex_[I],E=Yr.length-1;E>=0;--E)if(f=Yr[E],_=p[f],_!==void 0&&(C=_.executeHitDetection(c,A,n,g,h),C))return C}}getClipCoords(e){let t=this.maxExtent_;if(!t)return null;let n=t[0],r=t[1],o=t[2],s=t[3],a=[n,r,n,s,o,s,o,r];return ft(a,0,8,2,e,a),a}isEmpty(){return Xt(this.executorsByZIndex_)}execute(e,t,n,r,o,s,a){let A=Object.keys(this.executorsByZIndex_).map(Number);A.sort(a?RA:Lt),s=s||Yr;let l=Yr.length;for(let c=0,h=A.length;cE.execute(I,t,n,r,o,a)),C&&_.restore(),p){p.offset();let I=A[c]*l+g;this.deferredZIndexContexts_[I]||(this.deferredZIndexContexts_[I]=[]),this.deferredZIndexContexts_[I].push(p)}}}}this.renderedContext_=e}getDeferredZIndexContexts(){return this.deferredZIndexContexts_}getRenderedContext(){return this.renderedContext_}renderDeferred(){let e=this.deferredZIndexContexts_,t=Object.keys(e).map(Number).sort(Lt);for(let n=0,r=t.length;n{o.draw(this.renderedContext_),o.clear()}),e[t[n]].length=0}},mf={};function AQ(i){if(mf[i]!==void 0)return mf[i];let e=i*2+1,t=i*i,n=new Array(t+1);for(let o=0;o<=i;++o)for(let s=0;s<=i;++s){let a=o*o+s*s;if(a>t)break;let A=n[a];A||(A=[],n[a]=A),A.push(((i+o)*e+(i+s))*4+3),o>0&&A.push(((i-o)*e+(i+s))*4+3),s>0&&(A.push(((i+o)*e+(i-s))*4+3),o>0&&A.push(((i-o)*e+(i-s))*4+3))}let r=[];for(let o=0,s=n.length;o0,"A defined and non-empty `src` or `image` must be provided"),re(!((e.width!==void 0||e.height!==void 0)&&e.scale!==void 0),"`width` or `height` cannot be provided together with `scale`");let A;if(e.src!==void 0?A=ee.IDLE:s!==void 0&&("complete"in s?s.complete?A=s.src?ee.LOADED:ee.IDLE:A=ee.LOADING:A=ee.LOADED),this.color_=e.color!==void 0?We(e.color):null,this.iconImage_=No(s,a,this.crossOrigin_,A,this.color_),this.offset_=e.offset!==void 0?e.offset:[0,0],this.offsetOrigin_=e.offsetOrigin!==void 0?e.offsetOrigin:"top-left",this.origin_=null,this.size_=e.size!==void 0?e.size:null,this.initialOptions_,e.width!==void 0||e.height!==void 0){let l,c;if(e.size)[l,c]=e.size;else{let h=this.getImage(1);if(h.width&&h.height)l=h.width,c=h.height;else if(h instanceof HTMLImageElement){this.initialOptions_=e;let u=()=>{if(this.unlistenImageChange(u),!this.initialOptions_)return;let f=this.iconImage_.getSize();this.setScale(dI(f[0],f[1],e.width,e.height))};this.listenImageChange(u);return}}l!==void 0&&this.setScale(dI(l,c,e.width,e.height))}}clone(){let e,t,n;return this.initialOptions_?(t=this.initialOptions_.width,n=this.initialOptions_.height):(e=this.getScale(),e=Array.isArray(e)?e.slice():e),new i({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:e,width:t,height:n,size:this.size_!==null?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let e=this.normalizedAnchor_;if(!e){e=this.anchor_;let r=this.getSize();if(this.anchorXUnits_=="fraction"||this.anchorYUnits_=="fraction"){if(!r)return null;e=this.anchor_.slice(),this.anchorXUnits_=="fraction"&&(e[0]*=r[0]),this.anchorYUnits_=="fraction"&&(e[1]*=r[1])}if(this.anchorOrigin_!="top-left"){if(!r)return null;e===this.anchor_&&(e=this.anchor_.slice()),(this.anchorOrigin_=="top-right"||this.anchorOrigin_=="bottom-right")&&(e[0]=-e[0]+r[0]),(this.anchorOrigin_=="bottom-left"||this.anchorOrigin_=="bottom-right")&&(e[1]=-e[1]+r[1])}this.normalizedAnchor_=e}let t=this.getDisplacement(),n=this.getScaleArray();return[e[0]-t[0]/n[0],e[1]+t[1]/n[1]]}setAnchor(e){this.anchor_=e,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(e){return this.iconImage_.getImage(e)}getPixelRatio(e){return this.iconImage_.getPixelRatio(e)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let e=this.offset_;if(this.offsetOrigin_!="top-left"){let t=this.getSize(),n=this.iconImage_.getSize();if(!t||!n)return null;e=e.slice(),(this.offsetOrigin_=="top-right"||this.offsetOrigin_=="bottom-right")&&(e[0]=n[0]-t[0]-e[0]),(this.offsetOrigin_=="bottom-left"||this.offsetOrigin_=="bottom-right")&&(e[1]=n[1]-t[1]-e[1])}return this.origin_=e,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){let e=this.getScaleArray();if(this.size_)return this.size_[0]*e[0];if(this.iconImage_.getImageState()==ee.LOADED)return this.iconImage_.getSize()[0]*e[0]}getHeight(){let e=this.getScaleArray();if(this.size_)return this.size_[1]*e[1];if(this.iconImage_.getImageState()==ee.LOADED)return this.iconImage_.getSize()[1]*e[1]}setScale(e){delete this.initialOptions_,super.setScale(e)}listenImageChange(e){this.iconImage_.addEventListener(U.CHANGE,e)}load(){this.iconImage_.load()}unlistenImageChange(e){this.iconImage_.removeEventListener(U.CHANGE,e)}ready(){return this.iconImage_.ready()}},lr=If;var Ri=.5;function mI(i,e,t,n,r,o,s,a,A){let l=A?hi(r,A):r,c=i[0]*Ri,h=i[1]*Ri,u=me(c,h);u.imageSmoothingEnabled=!1;let f=u.canvas,g=new qE(u,Ri,r,null,s,a,A?li(ci(),A):null),m=t.length,d=Math.floor((256*256*256-1)/m),E={};for(let _=1;_<=m;++_){let C=t[_-1],I=C.getStyleFunction()||n;if(!I)continue;let y=I(C,o);if(!y)continue;Array.isArray(y)||(y=[y]);let B=(_*d).toString(16).padStart(7,"#00000");for(let Q=0,w=y.length;Qthis.maxStaleKeys&&(this.staleKeys_.length=this.maxStaleKeys)}getFeatures(e){return J()}getData(e){return null}prepareFrame(e){return J()}renderFrame(e,t){return J()}forEachFeatureAtCoordinate(e,t,n,r,o){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(e){let t=e.target;(t.getState()===ee.LOADED||t.getState()===ee.ERROR)&&this.renderIfReadyAndVisible()}loadImage(e){let t=e.getState();return t!=ee.LOADED&&t!=ee.ERROR&&e.addEventListener(U.CHANGE,this.boundHandleImageChange_),t==ee.IDLE&&(e.load(),t=e.getState()),t==ee.LOADED}renderIfReadyAndVisible(){let e=this.getLayer();e&&e.getVisible()&&e.getSourceState()==="ready"&&e.changed()}renderDeferred(e){}disposeInternal(){delete this.layer_,super.disposeInternal()}},Sl=_f;var Bf=[],Ko=null;function cQ(){Ko=me(1,1,void 0,{willReadFrequently:!0})}var yf=class extends Sl{constructor(e){super(e),this.container=null,this.renderedResolution,this.tempTransform=Ce(),this.pixelTransform=Ce(),this.inversePixelTransform=Ce(),this.context=null,this.deferredContext_=null,this.containerReused=!1,this.frameState=null}getImageData(e,t,n){Ko||cQ(),Ko.clearRect(0,0,1,1);let r;try{Ko.drawImage(e,t,n,1,1,0,0,1,1),r=Ko.getImageData(0,0,1,1).data}catch{return Ko=null,null}return r}getBackground(e){let n=this.getLayer().getBackground();return typeof n=="function"&&(n=n(e.viewState.resolution)),n||void 0}useContainer(e,t,n){let r=this.getLayer().getClassName(),o,s;if(e&&e.className===r&&(!n||e&&e.style.backgroundColor&&rt(We(e.style.backgroundColor),We(n)))){let a=e.firstElementChild;a instanceof HTMLCanvasElement&&(s=a.getContext("2d"))}if(s&&lE(s.canvas.style.transform,t)?(this.container=e,this.context=s,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){o=document.createElement("div"),o.className=r;let a=o.style;a.position="absolute",a.width="100%",a.height="100%",s=me();let A=s.canvas;o.appendChild(A),a=A.style,a.position="absolute",a.left="0",a.transformOrigin="top left",this.container=o,this.context=s}!this.containerReused&&n&&!this.container.style.backgroundColor&&(this.container.style.backgroundColor=n)}clipUnrotated(e,t,n){let r=ht(n),o=xo(n),s=Wn(n),a=Bo(n);ye(t.coordinateToPixelTransform,r),ye(t.coordinateToPixelTransform,o),ye(t.coordinateToPixelTransform,s),ye(t.coordinateToPixelTransform,a);let A=this.inversePixelTransform;ye(A,r),ye(A,o),ye(A,s),ye(A,a),e.save(),e.beginPath(),e.moveTo(Math.round(r[0]),Math.round(r[1])),e.lineTo(Math.round(o[0]),Math.round(o[1])),e.lineTo(Math.round(s[0]),Math.round(s[1])),e.lineTo(Math.round(a[0]),Math.round(a[1])),e.clip()}prepareContainer(e,t){let n=e.extent,r=e.viewState.resolution,o=e.viewState.rotation,s=e.pixelRatio,a=Math.round(oe(n)/r*s),A=Math.round(Se(n)/r*s);Xe(this.pixelTransform,e.size[0]/2,e.size[1]/2,1/s,1/s,o,-a/2,-A/2),wi(this.inversePixelTransform,this.pixelTransform);let l=AE(this.pixelTransform);if(this.useContainer(t,l,this.getBackground(e)),!this.containerReused){let c=this.context.canvas;c.width!=a||c.height!=A?(c.width=a,c.height=A):this.context.clearRect(0,0,a,A),l!==c.style.transform&&(c.style.transform=l)}}dispatchRenderEvent_(e,t,n){let r=this.getLayer();if(r.hasListener(e)){let o=new cr(e,this.inversePixelTransform,n,t);r.dispatchEvent(o)}}preRender(e,t){this.frameState=t,!t.declutter&&this.dispatchRenderEvent_(Fe.PRERENDER,e,t)}postRender(e,t){t.declutter||this.dispatchRenderEvent_(Fe.POSTRENDER,e,t)}renderDeferredInternal(e){}getRenderContext(e){return e.declutter&&!this.deferredContext_&&(this.deferredContext_=new Ql),e.declutter?this.deferredContext_.getContext():this.context}renderDeferred(e){e.declutter&&(this.dispatchRenderEvent_(Fe.PRERENDER,this.context,e),e.declutter&&this.deferredContext_&&(this.deferredContext_.draw(this.context),this.deferredContext_.clear()),this.renderDeferredInternal(e),this.dispatchRenderEvent_(Fe.POSTRENDER,this.context,e))}getRenderTransform(e,t,n,r,o,s,a){let A=o/2,l=s/2,c=r/t,h=-c,u=-e[0]+a,f=-e[1];return Xe(this.tempTransform,A,l,c,h,-n,u,f)}disposeInternal(){delete this.frameState,super.disposeInternal()}},Rl=yf;var xf=class extends Rl{constructor(e){super(e),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.animatingOrInteracting_,this.hitDetectionImageData_=null,this.clipped_=!1,this.renderedFeatures_=null,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=be(),this.wrappedRenderedExtent_=be(),this.renderedRotation_,this.renderedCenter_=null,this.renderedProjection_=null,this.renderedPixelRatio_=1,this.renderedRenderOrder_=null,this.renderedFrameDeclutter_,this.replayGroup_=null,this.replayGroupChanged=!0,this.clipping=!0,this.targetContext_=null,this.opacity_=1}renderWorlds(e,t,n){let r=t.extent,o=t.viewState,s=o.center,a=o.resolution,A=o.projection,l=o.rotation,c=A.getExtent(),h=this.getLayer().getSource(),u=this.getLayer().getDeclutter(),f=t.pixelRatio,g=t.viewHints,m=!(g[Ye.ANIMATING]||g[Ye.INTERACTING]),d=this.context,E=Math.round(oe(r)/a*f),p=Math.round(Se(r)/a*f),_=h.getWrapX()&&A.canWrapX(),C=_?oe(c):null,I=_?Math.ceil((r[2]-c[2])/C)+1:1,y=_?Math.floor((r[0]-c[0])/C):0;do{let x=this.getRenderTransform(s,a,0,f,E,p,y*C);t.declutter&&(x=x.slice(0)),e.execute(d,[d.canvas.width,d.canvas.height],x,l,m,n===void 0?Yr:n?Ef:fI,n?u&&t.declutter[u]:void 0)}while(++y{if(this.frameState&&!this.hitDetectionImageData_&&!this.animatingOrInteracting_){let n=this.frameState.size.slice(),r=this.renderedCenter_,o=this.renderedResolution_,s=this.renderedRotation_,a=this.renderedProjection_,A=this.wrappedRenderedExtent_,l=this.getLayer(),c=[],h=n[0]*Ri,u=n[1]*Ri;c.push(this.getRenderTransform(r,o,s,Ri,h,u,0).slice());let f=l.getSource(),g=a.getExtent();if(f.getWrapX()&&a.canWrapX()&&!Ii(g,A)){let d=A[0],E=oe(g),p=0,_;for(;dg[2];)++p,_=E*p,c.push(this.getRenderTransform(r,o,s,Ri,h,u,_).slice()),d-=E}let m=ci();this.hitDetectionImageData_=mI(n,c,this.renderedFeatures_,l.getStyleFunction(),A,o,s,Fu(o,this.renderedPixelRatio_),m?a:null)}t(pI(e,this.renderedFeatures_,this.hitDetectionImageData_))})}forEachFeatureAtCoordinate(e,t,n,r,o){if(!this.replayGroup_)return;let s=t.viewState.resolution,a=t.viewState.rotation,A=this.getLayer(),l={},c=function(u,f,g){let m=z(u),d=l[m];if(d){if(d!==!0&&gu.value):null)}handleFontsChanged(){let e=this.getLayer();e.getVisible()&&this.replayGroup_&&e.changed()}handleStyleImageChange_(e){this.renderIfReadyAndVisible()}prepareFrame(e){let t=this.getLayer(),n=t.getSource();if(!n)return!1;let r=e.viewHints[Ye.ANIMATING],o=e.viewHints[Ye.INTERACTING],s=t.getUpdateWhileAnimating(),a=t.getUpdateWhileInteracting();if(this.ready&&!s&&r||!a&&o)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;let A=e.extent,l=e.viewState,c=l.projection,h=l.resolution,u=e.pixelRatio,f=t.getRevision(),g=t.getRenderBuffer(),m=t.getRenderOrder();m===void 0&&(m=XE);let d=l.center.slice(),E=Jn(A,g*h),p=E.slice(),_=[E.slice()],C=c.getExtent();if(n.getWrapX()&&c.canWrapX()&&!Ii(C,e.extent)){let S=oe(C),k=Math.max(oe(E)/2,S);E[0]=C[0]-k,E[2]=C[2]+k,Ro(d,c);let L=Nh(_[0],c);L[0]C[0]&&L[2]>C[2]&&_.push([L[0]-S,L[1],L[2]-S,L[3]])}if(this.ready&&this.renderedResolution_==h&&this.renderedRevision_==f&&this.renderedRenderOrder_==m&&this.renderedFrameDeclutter_===!!e.declutter&&Ii(this.wrappedRenderedExtent_,E))return rt(this.renderedExtent_,p)||(this.hitDetectionImageData_=null,this.renderedExtent_=p),this.renderedCenter_=d,this.replayGroupChanged=!1,!0;this.replayGroup_=null;let I=new AI(Lu(h,u),E,h,u),y=ci(),x;if(y){for(let S=0,k=_.length;S{let L,b=S.getStyleFunction()||t.getStyleFunction();if(b&&(L=b(S,h)),L){let P=this.renderFeature(S,B,L,I,x,this.getLayer().getDeclutter(),k);Q=Q&&!P}},v=hi(E,c),R=n.getFeaturesInExtent(v);m&&R.sort(m);for(let S=0,k=R.length;S",GreaterThanOrEqualTo:">=",LessThan:"<",LessThanOrEqualTo:"<=",Multiply:"*",Divide:"/",Add:"+",Subtract:"-",Clamp:"clamp",Mod:"%",Pow:"^",Abs:"abs",Floor:"floor",Ceil:"ceil",Round:"round",Sin:"sin",Cos:"cos",Atan:"atan",Sqrt:"sqrt",Match:"match",Between:"between",Interpolate:"interpolate",Coalesce:"coalesce",Case:"case",In:"in",Number:"number",String:"string",Array:"array",Color:"color",Id:"id",Band:"band",Palette:"palette",ToString:"to-string",Has:"has"},fQ={[T.Get]:ae(ce(1,1/0),II),[T.Var]:ae(ce(1,1),gQ),[T.Has]:ae(ce(1,1/0),II),[T.Id]:ae(dQ,qo),[T.Concat]:ae(ce(2,1/0),xe(Ke)),[T.GeometryType]:ae(mQ,qo),[T.LineMetric]:ae(qo),[T.Resolution]:ae(wf,qo),[T.Zoom]:ae(wf,qo),[T.Time]:ae(wf,qo),[T.Any]:ae(ce(2,1/0),xe(ze)),[T.All]:ae(ce(2,1/0),xe(ze)),[T.Not]:ae(ce(1,1),xe(ze)),[T.Equal]:ae(ce(2,2),xe(vl)),[T.NotEqual]:ae(ce(2,2),xe(vl)),[T.GreaterThan]:ae(ce(2,2),xe(q)),[T.GreaterThanOrEqualTo]:ae(ce(2,2),xe(q)),[T.LessThan]:ae(ce(2,2),xe(q)),[T.LessThanOrEqualTo]:ae(ce(2,2),xe(q)),[T.Multiply]:ae(ce(2,1/0),CI),[T.Coalesce]:ae(ce(2,1/0),CI),[T.Divide]:ae(ce(2,2),xe(q)),[T.Add]:ae(ce(2,1/0),xe(q)),[T.Subtract]:ae(ce(2,2),xe(q)),[T.Clamp]:ae(ce(3,3),xe(q)),[T.Mod]:ae(ce(2,2),xe(q)),[T.Pow]:ae(ce(2,2),xe(q)),[T.Abs]:ae(ce(1,1),xe(q)),[T.Floor]:ae(ce(1,1),xe(q)),[T.Ceil]:ae(ce(1,1),xe(q)),[T.Round]:ae(ce(1,1),xe(q)),[T.Sin]:ae(ce(1,1),xe(q)),[T.Cos]:ae(ce(1,1),xe(q)),[T.Atan]:ae(ce(1,2),xe(q)),[T.Sqrt]:ae(ce(1,1),xe(q)),[T.Match]:ae(ce(4,1/0),_I,EQ),[T.Between]:ae(ce(3,3),xe(q)),[T.Interpolate]:ae(ce(6,1/0),_I,IQ),[T.Case]:ae(ce(3,1/0),pQ,CQ),[T.In]:ae(ce(2,2),_Q),[T.Number]:ae(ce(1,1/0),xe(vl)),[T.String]:ae(ce(1,1/0),xe(vl)),[T.Array]:ae(ce(1,1/0),xe(q)),[T.Color]:ae(ce(1,4),xe(q)),[T.Band]:ae(ce(1,3),xe(q)),[T.Palette]:ae(ce(2,2),yQ),[T.ToString]:ae(ce(1,1),xe(ze|q|Ke|we))};function II(i,e,t){let n=i.length-1,r=new Array(n);for(let o=0;oe){let a=e===1/0?`${i} or more`:`${i} to ${e}`;throw new Error(`expected ${a} arguments for ${o}, got ${s}`)}}}function CI(i,e,t){let n=i.length-1,r=new Array(n);for(let o=0;on.featureId;case T.GeometryType:return n=>n.geometryType;case T.Concat:{let n=i.args.map(r=>vi(r,e));return r=>"".concat(...n.map(o=>o(r).toString()))}case T.Resolution:return n=>n.resolution;case T.Any:case T.All:case T.Between:case T.In:case T.Not:return SQ(i,e);case T.Equal:case T.NotEqual:case T.LessThan:case T.LessThanOrEqualTo:case T.GreaterThan:case T.GreaterThanOrEqualTo:return QQ(i,e);case T.Multiply:case T.Divide:case T.Add:case T.Subtract:case T.Clamp:case T.Mod:case T.Pow:case T.Abs:case T.Floor:case T.Ceil:case T.Round:case T.Sin:case T.Cos:case T.Atan:case T.Sqrt:return RQ(i,e);case T.Case:return vQ(i,e);case T.Match:return TQ(i,e);case T.Interpolate:return DQ(i,e);case T.ToString:return bQ(i,e);default:throw new Error(`Unsupported operator ${t}`)}}function xQ(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{for(let s=0;s{for(let s=0;s{let o=i.args,s=r.properties[n];for(let a=1,A=o.length;ar.variables[n];case T.Has:return r=>{let o=i.args;if(!(n in r.properties))return!1;let s=r.properties[n];for(let a=1,A=o.length;an(o)===r(o);case T.NotEqual:return o=>n(o)!==r(o);case T.LessThan:return o=>n(o)n(o)<=r(o);case T.GreaterThan:return o=>n(o)>r(o);case T.GreaterThanOrEqualTo:return o=>n(o)>=r(o);default:throw new Error(`Unsupported comparison operator ${t}`)}}function SQ(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{for(let s=0;s{for(let s=0;s{let s=r[0](o),a=r[1](o),A=r[2](o);return s>=a&&s<=A};case T.In:return o=>{let s=r[0](o);for(let a=1;a!r[0](o);default:throw new Error(`Unsupported logical operator ${t}`)}}function RQ(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{let s=1;for(let a=0;ar[0](o)/r[1](o);case T.Add:return o=>{let s=0;for(let a=0;ar[0](o)-r[1](o);case T.Clamp:return o=>{let s=r[0](o),a=r[1](o);if(sA?A:s};case T.Mod:return o=>r[0](o)%r[1](o);case T.Pow:return o=>Math.pow(r[0](o),r[1](o));case T.Abs:return o=>Math.abs(r[0](o));case T.Floor:return o=>Math.floor(r[0](o));case T.Ceil:return o=>Math.ceil(r[0](o));case T.Round:return o=>Math.round(r[0](o));case T.Sin:return o=>Math.sin(r[0](o));case T.Cos:return o=>Math.cos(r[0](o));case T.Atan:return n===2?o=>Math.atan2(r[0](o),r[1](o)):o=>Math.atan(r[0](o));case T.Sqrt:return o=>Math.sqrt(r[0](o));default:throw new Error(`Unsupported numeric operator ${t}`)}}function vQ(i,e){let t=i.args.length,n=new Array(t);for(let r=0;r{for(let o=0;o{let o=n[0](r);for(let s=1;s{let o=n[0](r),s=n[1](r),a,A;for(let l=2;l=s)return l===2?h:u?FQ(o,s,a,A,c,h):ya(o,s,a,A,c,h);a=c,A=h}return A}}function bQ(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{let s=r[0](o);return i.args[0].type===we?Aa(s):s.toString()};default:throw new Error(`Unsupported convert operator ${t}`)}}function ya(i,e,t,n,r,o){let s=r-t;if(s===0)return n;let a=e-t,A=i===1?a/s:(Math.pow(i,a)-1)/(Math.pow(i,s)-1);return n+A*(o-n)}function FQ(i,e,t,n,r,o){if(r-t===0)return n;let a=Bu(n),A=Bu(o),l=A[2]-a[2];l>180?l-=360:l<-180&&(l+=360);let c=[ya(i,e,t,a[0],r,A[0]),ya(i,e,t,a[1],r,A[1]),a[2]+ya(i,e,t,0,r,l),ya(i,e,t,n[3],r,o[3])];return kE(c)}function LQ(i){return!0}function wI(i){let e=Kr(),t=MQ(i,e),n=Ba();return function(r,o){if(n.properties=r.getPropertiesInternal(),n.resolution=o,e.featureId){let s=r.getId();s!==void 0?n.featureId=s:n.featureId=null}return e.geometryType&&(n.geometryType=qr(r.getGeometry())),t(n)}}function vf(i){let e=Kr(),t=i.length,n=new Array(t);for(let s=0;snull;n=Tf(i,e+"fill-color",t)}if(!n)return null;let r=new qi;return function(o){let s=n(o);return s===ul?null:(r.setColor(s),r)}}function wa(i,e,t){let n=Yt(i,e+"stroke-width",t),r=Tf(i,e+"stroke-color",t);if(!n&&!r)return null;let o=Fn(i,e+"stroke-line-cap",t),s=Fn(i,e+"stroke-line-join",t),a=QI(i,e+"stroke-line-dash",t),A=Yt(i,e+"stroke-line-dash-offset",t),l=Yt(i,e+"stroke-miter-limit",t),c=new sr;return function(h){if(r){let u=r(h);if(u===ul)return null;c.setColor(u)}if(n&&c.setWidth(n(h)),o){let u=o(h);if(u!=="butt"&&u!=="round"&&u!=="square")throw new Error("Expected butt, round, or square line cap");c.setLineCap(u)}if(s){let u=s(h);if(u!=="bevel"&&u!=="round"&&u!=="miter")throw new Error("Expected bevel, round, or miter line join");c.setLineJoin(u)}return a&&c.setLineDash(a(h)),A&&c.setLineDashOffset(A(h)),l&&c.setMiterLimit(l(h)),c}}function kQ(i,e){let t="text-",n=Fn(i,t+"value",e);if(!n)return null;let r=xa(i,t,e),o=xa(i,t+"background-",e),s=wa(i,t,e),a=wa(i,t+"background-",e),A=Fn(i,t+"font",e),l=Yt(i,t+"max-angle",e),c=Yt(i,t+"offset-x",e),h=Yt(i,t+"offset-y",e),u=Vo(i,t+"overflow",e),f=Fn(i,t+"placement",e),g=Yt(i,t+"repeat",e),m=bl(i,t+"scale",e),d=Vo(i,t+"rotate-with-view",e),E=Yt(i,t+"rotation",e),p=Fn(i,t+"align",e),_=Fn(i,t+"justify",e),C=Fn(i,t+"baseline",e),I=Vo(i,t+"keep-upright",e),y=QI(i,t+"padding",e),x=Fl(i,t+"declutter-mode"),B=new ma({declutterMode:x});return function(Q){if(B.setText(n(Q)),r&&B.setFill(r(Q)),o&&B.setBackgroundFill(o(Q)),s&&B.setStroke(s(Q)),a&&B.setBackgroundStroke(a(Q)),A&&B.setFont(A(Q)),l&&B.setMaxAngle(l(Q)),c&&B.setOffsetX(c(Q)),h&&B.setOffsetY(h(Q)),u&&B.setOverflow(u(Q)),f){let w=f(Q);if(w!=="point"&&w!=="line")throw new Error("Expected point or line for text-placement");B.setPlacement(w)}if(g&&B.setRepeat(g(Q)),m&&B.setScale(m(Q)),d&&B.setRotateWithView(d(Q)),E&&B.setRotation(E(Q)),p){let w=p(Q);if(w!=="left"&&w!=="center"&&w!=="right"&&w!=="end"&&w!=="start")throw new Error("Expected left, right, center, start, or end for text-align");B.setTextAlign(w)}if(_){let w=_(Q);if(w!=="left"&&w!=="right"&&w!=="center")throw new Error("Expected left, right, or center for text-justify");B.setJustify(w)}if(C){let w=C(Q);if(w!=="bottom"&&w!=="top"&&w!=="middle"&&w!=="alphabetic"&&w!=="hanging")throw new Error("Expected bottom, top, middle, alphabetic, or hanging for text-baseline");B.setTextBaseline(w)}return y&&B.setPadding(y(Q)),I&&B.setKeepUpright(I(Q)),B}}function PQ(i,e){return"icon-src"in i?NQ(i,e):"shape-points"in i?GQ(i,e):"circle-radius"in i?OQ(i,e):null}function NQ(i,e){let t="icon-",n=t+"src",r=SI(i[n],n),o=Tl(i,t+"anchor",e),s=bl(i,t+"scale",e),a=Yt(i,t+"opacity",e),A=Tl(i,t+"displacement",e),l=Yt(i,t+"rotation",e),c=Vo(i,t+"rotate-with-view",e),h=BI(i,t+"anchor-origin"),u=xI(i,t+"anchor-x-units"),f=xI(i,t+"anchor-y-units"),g=KQ(i,t+"color"),m=HQ(i,t+"cross-origin"),d=zQ(i,t+"offset"),E=BI(i,t+"offset-origin"),p=Dl(i,t+"width"),_=Dl(i,t+"height"),C=YQ(i,t+"size"),I=Fl(i,t+"declutter-mode"),y=new lr({src:r,anchorOrigin:h,anchorXUnits:u,anchorYUnits:f,color:g,crossOrigin:m,offset:d,offsetOrigin:E,height:_,width:p,size:C,declutterMode:I});return function(x){return a&&y.setOpacity(a(x)),A&&y.setDisplacement(A(x)),l&&y.setRotation(l(x)),c&&y.setRotateWithView(c(x)),s&&y.setScale(s(x)),o&&y.setAnchor(o(x)),y}}function GQ(i,e){let t="shape-",n=t+"points",r=t+"radius",o=Rf(i[n],n),s=Rf(i[r],r),a=xa(i,t,e),A=wa(i,t,e),l=bl(i,t+"scale",e),c=Tl(i,t+"displacement",e),h=Yt(i,t+"rotation",e),u=Vo(i,t+"rotate-with-view",e),f=Dl(i,t+"radius2"),g=Dl(i,t+"angle"),m=Fl(i,t+"declutter-mode"),d=new Bl({points:o,radius:s,radius2:f,angle:g,declutterMode:m});return function(E){return a&&d.setFill(a(E)),A&&d.setStroke(A(E)),c&&d.setDisplacement(c(E)),h&&d.setRotation(h(E)),u&&d.setRotateWithView(u(E)),l&&d.setScale(l(E)),d}}function OQ(i,e){let t="circle-",n=xa(i,t,e),r=wa(i,t,e),o=Yt(i,t+"radius",e),s=bl(i,t+"scale",e),a=Tl(i,t+"displacement",e),A=Yt(i,t+"rotation",e),l=Vo(i,t+"rotate-with-view",e),c=Fl(i,t+"declutter-mode"),h=new xl({radius:5,declutterMode:c});return function(u){return o&&h.setRadius(o(u)),n&&h.setFill(n(u)),r&&h.setStroke(r(u)),a&&h.setDisplacement(a(u)),A&&h.setRotation(A(u)),l&&h.setRotateWithView(l(u)),s&&h.setScale(s(u)),h}}function Yt(i,e,t){if(!(e in i))return;let n=gi(i[e],q,t);return function(r){return Rf(n(r),e)}}function Fn(i,e,t){if(!(e in i))return null;let n=gi(i[e],Ke,t);return function(r){return SI(n(r),e)}}function UQ(i,e,t){let n=Fn(i,e+"pattern-src",t),r=yI(i,e+"pattern-offset",t),o=yI(i,e+"pattern-size",t),s=Tf(i,e+"color",t);return function(a){return{src:n(a),offset:r&&r(a),size:o&&o(a),color:s&&s(a)}}}function Vo(i,e,t){if(!(e in i))return null;let n=gi(i[e],ze,t);return function(r){let o=n(r);if(typeof o!="boolean")throw new Error(`Expected a boolean for ${e}`);return o}}function Tf(i,e,t){if(!(e in i))return null;let n=gi(i[e],we,t);return function(r){return RI(n(r),e)}}function QI(i,e,t){if(!(e in i))return null;let n=gi(i[e],et,t);return function(r){return Qa(n(r),e)}}function Tl(i,e,t){if(!(e in i))return null;let n=gi(i[e],et,t);return function(r){let o=Qa(n(r),e);if(o.length!==2)throw new Error(`Expected two numbers for ${e}`);return o}}function yI(i,e,t){if(!(e in i))return null;let n=gi(i[e],et,t);return function(r){return vI(n(r),e)}}function bl(i,e,t){if(!(e in i))return null;let n=gi(i[e],et|q,t);return function(r){return qQ(n(r),e)}}function Dl(i,e){let t=i[e];if(t!==void 0){if(typeof t!="number")throw new Error(`Expected a number for ${e}`);return t}}function YQ(i,e){let t=i[e];if(t!==void 0){if(typeof t=="number")return _e(t);if(!Array.isArray(t))throw new Error(`Expected a number or size array for ${e}`);if(t.length!==2||typeof t[0]!="number"||typeof t[1]!="number")throw new Error(`Expected a number or size array for ${e}`);return t}}function HQ(i,e){let t=i[e];if(t!==void 0){if(typeof t!="string")throw new Error(`Expected a string for ${e}`);return t}}function BI(i,e){let t=i[e];if(t!==void 0){if(t!=="bottom-left"&&t!=="bottom-right"&&t!=="top-left"&&t!=="top-right")throw new Error(`Expected bottom-left, bottom-right, top-left, or top-right for ${e}`);return t}}function xI(i,e){let t=i[e];if(t!==void 0){if(t!=="pixels"&&t!=="fraction")throw new Error(`Expected pixels or fraction for ${e}`);return t}}function zQ(i,e){let t=i[e];if(t!==void 0)return Qa(t,e)}function Fl(i,e){let t=i[e];if(t!==void 0){if(typeof t!="string")throw new Error(`Expected a string for ${e}`);if(t!=="declutter"&&t!=="obstacle"&&t!=="none")throw new Error(`Expected declutter, obstacle, or none for ${e}`);return t}}function KQ(i,e){let t=i[e];if(t!==void 0)return RI(t,e)}function Qa(i,e){if(!Array.isArray(i))throw new Error(`Expected an array for ${e}`);let t=i.length;for(let n=0;n4)throw new Error(`Expected a color with 3 or 4 values for ${e}`);return t}function vI(i,e){let t=Qa(i,e);if(t.length!==2)throw new Error(`Expected an array of two numbers for ${e}`);return t}function qQ(i,e){return typeof i=="number"?i:vI(i,e)}var St={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};function Df(i,e,t){return function(n,r,o,s,a){if(!n)return;if(!r&&!e)return n;let A=e?0:o[0]*r,l=e?0:o[1]*r,c=a?a[0]:0,h=a?a[1]:0,u=i[0]+A/2+c,f=i[2]-A/2+c,g=i[1]+l/2+h,m=i[3]-l/2+h;u>f&&(u=(f+u)/2,f=u),g>m&&(g=(m+g)/2,m=g);let d=ue(n[0],u,f),E=ue(n[1],g,m);if(s&&t&&r){let p=30*r;d+=-p*Math.log(1+Math.max(0,u-n[0])/p)+p*Math.log(1+Math.max(0,n[0]-f)/p),E+=-p*Math.log(1+Math.max(0,g-n[1])/p)+p*Math.log(1+Math.max(0,n[1]-m)/p)}return[d,E]}}function TI(i){return i}function bf(i){return Math.pow(i,3)}function Ht(i){return 1-bf(1-i)}function DI(i){return 3*i*i-2*i*i*i}function bI(i){return i}function Ff(i,e,t,n){let r=oe(e)/t[0],o=Se(e)/t[1];return n?Math.min(i,Math.max(r,o)):Math.min(i,Math.min(r,o))}function Lf(i,e,t){let n=Math.min(i,e),r=50;return n*=Math.log(1+r*Math.max(0,i/e-1))/r+1,t&&(n=Math.max(n,t),n/=Math.log(1+r*Math.max(0,t/i-1))/r+1),ue(n,t/2,e*2)}function FI(i,e,t,n){return e=e!==void 0?e:!0,function(r,o,s,a){if(r!==void 0){let A=i[0],l=i[i.length-1],c=t?Ff(A,t,s,n):A;if(a)return e?Lf(r,c,l):ue(r,l,c);let h=Math.min(c,r),u=Math.floor(po(i,h,o));return i[u]>c&&u1&&typeof arguments[t-1]=="function"&&(n=arguments[t-1],--t);let r=0;for(;r0}getInteracting(){return this.hints_[Ye.INTERACTING]>0}cancelAnimations(){this.setHint(Ye.ANIMATING,-this.hints_[Ye.ANIMATING]);let e;for(let t=0,n=this.animations_.length;t=0;--n){let r=this.animations_[n],o=!0;for(let s=0,a=r.length;s0?l/A.duration:1;c>=1?(A.complete=!0,c=1):o=!1;let h=A.easing(c);if(A.sourceCenter){let u=A.sourceCenter[0],f=A.sourceCenter[1],g=A.targetCenter[0],m=A.targetCenter[1];this.nextCenter_=A.targetCenter;let d=u+h*(g-u),E=f+h*(m-f);this.targetCenter_=[d,E]}if(A.sourceResolution&&A.targetResolution){let u=h===1?A.targetResolution:A.sourceResolution+h*(A.targetResolution-A.sourceResolution);if(A.anchor){let f=this.getViewportSize_(this.getRotation()),g=this.constraints_.resolution(u,0,f,!0);this.targetCenter_=this.calculateCenterZoom(g,A.anchor)}this.nextResolution_=A.targetResolution,this.targetResolution_=u,this.applyTargetState_(!0)}if(A.sourceRotation!==void 0&&A.targetRotation!==void 0){let u=h===1?_i(A.targetRotation+Math.PI,2*Math.PI)-Math.PI:A.sourceRotation+h*(A.targetRotation-A.sourceRotation);if(A.anchor){let f=this.constraints_.rotation(u,!0);this.targetCenter_=this.calculateCenterRotate(f,A.anchor)}this.nextRotation_=A.targetRotation,this.targetRotation_=u}if(this.applyTargetState_(!0),t=!0,!A.complete)break}if(o){this.animations_[n]=null,this.setHint(Ye.ANIMATING,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;let s=r[0].callback;s&&Ll(s,!0)}}this.animations_=this.animations_.filter(Boolean),t&&this.updateAnimationKey_===void 0&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(e,t){let n,r=this.getCenterInternal();return r!==void 0&&(n=[r[0]-t[0],r[1]-t[1]],So(n,e-this.getRotation()),Pp(n,t)),n}calculateCenterZoom(e,t){let n,r=this.getCenterInternal(),o=this.getResolution();if(r!==void 0&&o!==void 0){let s=t[0]-e*(t[0]-r[0])/o,a=t[1]-e*(t[1]-r[1])/o;n=[s,a]}return n}getViewportSize_(e){let t=this.viewportSize_;if(e){let n=t[0],r=t[1];return[Math.abs(n*Math.cos(e))+Math.abs(r*Math.sin(e)),Math.abs(n*Math.sin(e))+Math.abs(r*Math.cos(e))]}return t}setViewportSize(e){this.viewportSize_=Array.isArray(e)?e.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){let e=this.getCenterInternal();return e&&Fr(e,this.getProjection())}getCenterInternal(){return this.get(St.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(e){return e!==void 0?(e[0]=this.hints_[0],e[1]=this.hints_[1],e):this.hints_.slice()}calculateExtent(e){let t=this.calculateExtentInternal(e);return hi(t,this.getProjection())}calculateExtentInternal(e){e=e||this.getViewportSizeMinusPadding_();let t=this.getCenterInternal();re(t,"The view center is not defined");let n=this.getResolution();re(n!==void 0,"The view resolution is not defined");let r=this.getRotation();return re(r!==void 0,"The view rotation is not defined"),Ys(t,n,r,e)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(e){this.applyOptions_(this.getUpdatedOptions_({maxZoom:e}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(e){this.applyOptions_(this.getUpdatedOptions_({minZoom:e}))}setConstrainResolution(e){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:e}))}getProjection(){return this.projection_}getResolution(){return this.get(St.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(e,t){return this.getResolutionForExtentInternal(Ct(e,this.getProjection()),t)}getResolutionForExtentInternal(e,t){t=t||this.getViewportSizeMinusPadding_();let n=oe(e)/t[0],r=Se(e)/t[1];return Math.max(n,r)}getResolutionForValueFunction(e){e=e||2;let t=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(t/n)/Math.log(e);return function(o){return t/Math.pow(e,o*r)}}getRotation(){return this.get(St.ROTATION)}getValueForResolutionFunction(e){let t=Math.log(e||2),n=this.getConstrainedResolution(this.maxResolution_),r=this.minResolution_,o=Math.log(n/r)/t;return function(s){return Math.log(n/s)/t/o}}getViewportSizeMinusPadding_(e){let t=this.getViewportSize_(e),n=this.padding_;return n&&(t=[t[0]-n[1]-n[3],t[1]-n[0]-n[2]]),t}getState(){let e=this.getProjection(),t=this.getResolution(),n=this.getRotation(),r=this.getCenterInternal(),o=this.padding_;if(o){let s=this.getViewportSizeMinusPadding_();r=Nf(r,this.getViewportSize_(),[s[0]/2+o[3],s[1]/2+o[0]],t,n)}return{center:r.slice(0),projection:e!==void 0?e:null,resolution:t,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:n,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let e,t=this.getResolution();return t!==void 0&&(e=this.getZoomForResolution(t)),e}getZoomForResolution(e){let t=this.minZoom_||0,n,r;if(this.resolutions_){let o=po(this.resolutions_,e,1);t=o,n=this.resolutions_[o],o==this.resolutions_.length-1?r=2:r=n/this.resolutions_[o+1]}else n=this.maxResolution_,r=this.zoomFactor_;return t+Math.log(n/e)/Math.log(r)}getResolutionForZoom(e){if(this.resolutions_?.length){if(this.resolutions_.length===1)return this.resolutions_[0];let t=ue(Math.floor(e),0,this.resolutions_.length-2),n=this.resolutions_[t]/this.resolutions_[t+1];return this.resolutions_[t]/Math.pow(n,ue(e-t,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,e-this.minZoom_)}fit(e,t){let n;if(re(Array.isArray(e)||typeof e.getSimplifiedGeometry=="function","Invalid extent or geometry provided as `geometry`"),Array.isArray(e)){re(!Ni(e),"Cannot fit empty extent provided as `geometry`");let r=Ct(e,this.getProjection());n=ra(r)}else if(e.getType()==="Circle"){let r=Ct(e.getExtent(),this.getProjection());n=ra(r),n.rotate(this.getRotation(),It(r))}else{let r=ci();r?n=e.clone().transform(r,this.getProjection()):n=e}this.fitInternal(n,t)}rotatedExtentForGeometry(e){let t=this.getRotation(),n=Math.cos(t),r=Math.sin(-t),o=e.getFlatCoordinates(),s=e.getStride(),a=1/0,A=1/0,l=-1/0,c=-1/0;for(let h=0,u=o.length;h{this.dispatchEvent("sourceready")},0)),this.clearRenderer()),this.changed()}getFeatures(e){return this.renderer_?this.renderer_.getFeatures(e):Promise.resolve([])}getData(e){return!this.renderer_||!this.rendered?null:this.renderer_.getData(e)}isVisible(e){let t,n=this.getMapInternal();!e&&n&&(e=n.getView()),e instanceof yt?t={viewState:e.getState(),extent:e.calculateExtent()}:t=e,!t.layerStatesArray&&n&&(t.layerStatesArray=n.getLayerGroup().getLayerStatesArray());let r;if(t.layerStatesArray){if(r=t.layerStatesArray.find(s=>s.layer===this),!r)return!1}else r=this.getLayerState();let o=this.getExtent();return Sa(r,t.viewState)&&(!o||Ne(o,t.extent))}getAttributions(e){if(!this.isVisible(e))return[];let t=this.getSource()?.getAttributions();if(!t)return[];let n=e instanceof yt?e.getViewStateAndExtent():e,r=t(n);return Array.isArray(r)||(r=[r]),r}render(e,t){let n=this.getRenderer();return n.prepareFrame(e)?(this.rendered=!0,n.renderFrame(e,t)):null}unrender(){this.rendered=!1}getDeclutter(){}renderDeclutter(e,t){}renderDeferred(e){let t=this.getRenderer();t&&t.renderDeferred(e)}setMapInternal(e){e||this.unrender(),this.set(pe.MAP,e)}getMapInternal(){return this.get(pe.MAP)}setMap(e){this.mapPrecomposeKey_&&(se(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),e||this.changed(),this.mapRenderKey_&&(se(this.mapRenderKey_),this.mapRenderKey_=null),e&&(this.mapPrecomposeKey_=X(e,Fe.PRECOMPOSE,this.handlePrecompose_,this),this.mapRenderKey_=X(this,U.CHANGE,e.render,e),this.changed())}handlePrecompose_(e){let t=e.frameState.layerStatesArray,n=this.getLayerState(!1);re(!t.some(r=>r.layer===n.layer),"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."),t.push(n)}setSource(e){this.set(pe.SOURCE,e)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}clearRenderer(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_)}disposeInternal(){this.clearRenderer(),this.setSource(null),super.disposeInternal()}};function Sa(i,e){if(!i.visible)return!1;let t=e.resolution;if(t=i.maxResolution)return!1;let n=e.zoom;return n>i.minZoom&&n<=i.maxZoom}var Ln=Uf;var NI={RENDER_ORDER:"renderOrder"},Yf=class extends Ln{constructor(e){e=e||{};let t=Object.assign({},e);delete t.style,delete t.renderBuffer,delete t.updateWhileAnimating,delete t.updateWhileInteracting,super(t),this.declutter_=e.declutter?String(e.declutter):void 0,this.renderBuffer_=e.renderBuffer!==void 0?e.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(e.style),this.updateWhileAnimating_=e.updateWhileAnimating!==void 0?e.updateWhileAnimating:!1,this.updateWhileInteracting_=e.updateWhileInteracting!==void 0?e.updateWhileInteracting:!1}getDeclutter(){return this.declutter_}getFeatures(e){return super.getFeatures(e)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(NI.RENDER_ORDER)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(e,t){let n=this.getDeclutter();n in e.declutter||(e.declutter[n]=new Ur(9)),this.getRenderer().renderDeclutter(e,t)}setRenderOrder(e){this.set(NI.RENDER_ORDER,e)}setStyle(e){this.style_=e===void 0?nf:e;let t=WQ(e);this.styleFunction_=e===null?void 0:iI(t),this.changed()}setDeclutter(e){this.declutter_=e?String(e):void 0,this.changed()}};function WQ(i){if(i===void 0)return nf;if(!i)return null;if(typeof i=="function"||i instanceof $t)return i;if(!Array.isArray(i))return vf([i]);if(i.length===0)return[];let e=i.length,t=i[0];if(t instanceof $t){let r=new Array(e);for(let o=0;oe)throw new Error("Tile load sequence violation");this.state=e,this.changed()}}load(){J()}getAlpha(e,t){if(!this.transition_)return 1;let n=this.transitionStarts_[e];if(!n)n=t,this.transitionStarts_[e]=n;else if(n===-1)return 1;let r=t-n+1e3/60;return r>=this.transition_?1:bf(r/this.transition_)}inTransition(e){return this.transition_?this.transitionStarts_[e]!==-1:!1}endTransition(e){this.transition_&&(this.transitionStarts_[e]=-1)}disposeInternal(){this.release(),super.disposeInternal()}},jo=zf;var Kf=class extends jo{constructor(e,t,n,r,o,s){super(e,t,s),this.crossOrigin_=r,this.src_=n,this.key=n,this.image_=new Image,r!==null&&(this.image_.crossOrigin=r),this.unlisten_=null,this.tileLoadFunction_=o}getImage(){return this.image_}setImage(e){this.image_=e,this.state=G.LOADED,this.unlistenImage_(),this.changed()}handleImageError_(){this.state=G.ERROR,this.unlistenImage_(),this.image_=ZQ(),this.changed()}handleImageLoad_(){let e=this.image_;e.naturalWidth&&e.naturalHeight?this.state=G.LOADED:this.state=G.EMPTY,this.unlistenImage_(),this.changed()}load(){this.state==G.ERROR&&(this.state=G.IDLE,this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==G.IDLE&&(this.state=G.LOADING,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=PE(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}disposeInternal(){this.unlistenImage_(),this.image_=null,super.disposeInternal()}};function ZQ(){let i=me(1,1);return i.fillStyle="rgba(0,0,0,0)",i.fillRect(0,0,1,1),i.canvas}var ur=Kf;var qf=class{constructor(e,t,n){this.decay_=e,this.minVelocity_=t,this.delay_=n,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(e,t){this.points_.push(e,t,Date.now())}end(){if(this.points_.length<6)return!1;let e=Date.now()-this.delay_,t=this.points_.length-3;if(this.points_[t+2]0&&this.points_[n+2]>e;)n-=3;let r=this.points_[t+2]-this.points_[n+2];if(r<1e3/60)return!1;let o=this.points_[t]-this.points_[n],s=this.points_[t+1]-this.points_[n+1];return this.angle_=Math.atan2(s,o),this.initialVelocity_=Math.sqrt(o*o+s*s)/r,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}},OI=qf;var Vf=class extends ot{constructor(e,t,n){super(e),this.map=t,this.frameState=n!==void 0?n:null}},fr=Vf;var Xf=class extends fr{constructor(e,t,n,r,o,s){super(e,t,o),this.originalEvent=n,this.pixel_=null,this.coordinate_=null,this.dragging=r!==void 0?r:!1,this.activePointers=s}get pixel(){return this.pixel_||(this.pixel_=this.map.getEventPixel(this.originalEvent)),this.pixel_}set pixel(e){this.pixel_=e}get coordinate(){return this.coordinate_||(this.coordinate_=this.map.getCoordinateFromPixel(this.pixel)),this.coordinate_}set coordinate(e){this.coordinate_=e}preventDefault(){super.preventDefault(),"preventDefault"in this.originalEvent&&this.originalEvent.preventDefault()}stopPropagation(){super.stopPropagation(),"stopPropagation"in this.originalEvent&&this.originalEvent.stopPropagation()}},Ji=Xf;var De={SINGLECLICK:"singleclick",CLICK:U.CLICK,DBLCLICK:U.DBLCLICK,POINTERDRAG:"pointerdrag",POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"};var zt={POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"};var Jf=class extends Pi{constructor(e,t){super(e),this.map_=e,this.clickTimeoutId_,this.emulateClicks_=!1,this.dragging_=!1,this.dragListenerKeys_=[],this.moveTolerance_=t===void 0?1:t,this.down_=null;let n=this.map_.getViewport();this.activePointers_=[],this.trackedTouches_={},this.element_=n,this.pointerdownListenerKey_=X(n,zt.POINTERDOWN,this.handlePointerDown_,this),this.originalPointerMoveEvent_,this.relayedListenerKey_=X(n,zt.POINTERMOVE,this.relayMoveEvent_,this),this.boundHandleTouchMove_=this.handleTouchMove_.bind(this),this.element_.addEventListener(U.TOUCHMOVE,this.boundHandleTouchMove_,ll?{passive:!1}:!1)}emulateClick_(e){let t=new Ji(De.CLICK,this.map_,e);this.dispatchEvent(t),this.clickTimeoutId_!==void 0?(clearTimeout(this.clickTimeoutId_),this.clickTimeoutId_=void 0,t=new Ji(De.DBLCLICK,this.map_,e),this.dispatchEvent(t)):this.clickTimeoutId_=setTimeout(()=>{this.clickTimeoutId_=void 0;let n=new Ji(De.SINGLECLICK,this.map_,e);this.dispatchEvent(n)},250)}updateActivePointers_(e){let t=e,n=t.pointerId;if(t.type==De.POINTERUP||t.type==De.POINTERCANCEL){delete this.trackedTouches_[n];for(let r in this.trackedTouches_)if(this.trackedTouches_[r].target!==t.target){delete this.trackedTouches_[r];break}}else(t.type==De.POINTERDOWN||t.type==De.POINTERMOVE)&&(this.trackedTouches_[n]=t);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(e){this.updateActivePointers_(e);let t=new Ji(De.POINTERUP,this.map_,e,void 0,void 0,this.activePointers_);this.dispatchEvent(t),this.emulateClicks_&&!t.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(e)&&this.emulateClick_(this.down_),this.activePointers_.length===0&&(this.dragListenerKeys_.forEach(se),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(e){return e.button===0}handlePointerDown_(e){this.emulateClicks_=this.activePointers_.length===0,this.updateActivePointers_(e);let t=new Ji(De.POINTERDOWN,this.map_,e,void 0,void 0,this.activePointers_);if(this.dispatchEvent(t),this.down_=new PointerEvent(e.type,e),Object.defineProperty(this.down_,"target",{writable:!1,value:e.target}),this.dragListenerKeys_.length===0){let n=this.map_.getOwnerDocument();this.dragListenerKeys_.push(X(n,De.POINTERMOVE,this.handlePointerMove_,this),X(n,De.POINTERUP,this.handlePointerUp_,this),X(this.element_,De.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==n&&this.dragListenerKeys_.push(X(this.element_.getRootNode(),De.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(e){if(this.isMoving_(e)){this.updateActivePointers_(e),this.dragging_=!0;let t=new Ji(De.POINTERDRAG,this.map_,e,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(t)}}relayMoveEvent_(e){this.originalPointerMoveEvent_=e;let t=!!(this.down_&&this.isMoving_(e));this.dispatchEvent(new Ji(De.POINTERMOVE,this.map_,e,t))}handleTouchMove_(e){let t=this.originalPointerMoveEvent_;(!t||t.defaultPrevented)&&(typeof e.cancelable!="boolean"||e.cancelable===!0)&&e.preventDefault()}isMoving_(e){return this.dragging_||Math.abs(e.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(e.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(se(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(U.TOUCHMOVE,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(se(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(se),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},UI=Jf;var Kt={POSTRENDER:"postrender",MOVESTART:"movestart",MOVEEND:"moveend",LOADSTART:"loadstart",LOADEND:"loadend"};var Le={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"};var Ra=1/0,jf=class{constructor(e,t){this.priorityFunction_=e,this.keyFunction_=t,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,ai(this.queuedElements_)}dequeue(){let e=this.elements_,t=this.priorities_,n=e[0];e.length==1?(e.length=0,t.length=0):(e[0]=e.pop(),t[0]=t.pop(),this.siftUp_(0));let r=this.keyFunction_(n);return delete this.queuedElements_[r],n}enqueue(e){re(!(this.keyFunction_(e)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");let t=this.priorityFunction_(e);return t!=Ra?(this.elements_.push(e),this.priorities_.push(t),this.queuedElements_[this.keyFunction_(e)]=!0,this.siftDown_(0,this.elements_.length-1),!0):!1}getCount(){return this.elements_.length}getLeftChildIndex_(e){return e*2+1}getRightChildIndex_(e){return e*2+2}getParentIndex_(e){return e-1>>1}heapify_(){let e;for(e=(this.elements_.length>>1)-1;e>=0;e--)this.siftUp_(e)}isEmpty(){return this.elements_.length===0}isKeyQueued(e){return e in this.queuedElements_}isQueued(e){return this.isKeyQueued(this.keyFunction_(e))}siftUp_(e){let t=this.elements_,n=this.priorities_,r=t.length,o=t[e],s=n[e],a=e;for(;e>1;){let A=this.getLeftChildIndex_(e),l=this.getRightChildIndex_(e),c=le;){let a=this.getParentIndex_(t);if(r[a]>s)n[t]=n[a],r[t]=r[a],t=a;else break}n[t]=o,r[t]=s}reprioritize(){let e=this.priorityFunction_,t=this.elements_,n=this.priorities_,r=0,o=t.length,s,a,A;for(a=0;ae.apply(null,n),n=>n[0].getKey()),this.boundHandleTileChange_=this.handleTileChange.bind(this),this.tileChangeCallback_=t,this.tilesLoading_=0,this.tilesLoadingKeys_={}}enqueue(e){let t=super.enqueue(e);return t&&e[0].addEventListener(U.CHANGE,this.boundHandleTileChange_),t}getTilesLoading(){return this.tilesLoading_}handleTileChange(e){let t=e.target,n=t.getState();if(n===G.LOADED||n===G.ERROR||n===G.EMPTY){n!==G.ERROR&&t.removeEventListener(U.CHANGE,this.boundHandleTileChange_);let r=t.getKey();r in this.tilesLoadingKeys_&&(delete this.tilesLoadingKeys_[r],--this.tilesLoading_),this.tileChangeCallback_()}}loadMoreTiles(e,t){let n=0;for(;this.tilesLoading_0;){let r=this.dequeue()[0],o=r.getKey();r.getState()===G.IDLE&&!(o in this.tilesLoadingKeys_)&&(this.tilesLoadingKeys_[o]=!0,++this.tilesLoading_,++n,r.load())}}},HI=Wf;function zI(i,e,t,n,r){if(!i||!(t in i.wantedTiles))return Ra;if(!i.wantedTiles[t][e.getKey()])return Ra;let o=i.viewState.center,s=n[0]-o[0],a=n[1]-o[1];return 65536*Math.log(r)+Math.sqrt(s*s+a*a)/r}var Zf=class extends Oe{constructor(e){super();let t=e.element;t&&!e.target&&!t.style.pointerEvents&&(t.style.pointerEvents="auto"),this.element=t||null,this.target_=null,this.map_=null,this.listenerKeys=[],e.render&&(this.render=e.render),e.target&&this.setTarget(e.target)}disposeInternal(){this.element?.remove(),super.disposeInternal()}getMap(){return this.map_}setMap(e){this.map_&&this.element?.remove();for(let t=0,n=this.listenerKeys.length;tr.getAttributions(e)));if(this.attributions_!==void 0&&(Array.isArray(this.attributions_)?this.attributions_.forEach(r=>n.add(r)):n.add(this.attributions_)),!this.overrideCollapsible_){let r=!t.some(o=>o.getSource()?.getAttributionsCollapsible()===!1);this.setCollapsible(r)}return Array.from(n)}async updateElement_(e){if(!e){this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1);return}let t=await Promise.all(this.collectSourceAttributions_(e).map(r=>TA(()=>r))),n=t.length>0;if(this.renderedVisible_!=n&&(this.element.style.display=n?"":"none",this.renderedVisible_=n),!rt(t,this.renderedAttributions_)){cl(this.ulElement_);for(let r=0,o=t.length;r0&&n%(2*Math.PI)!==0?t.animate({rotation:0,duration:this.duration_,easing:Ht}):t.setRotation(0))}render(e){let t=e.frameState;if(!t)return;let n=t.viewState.rotation;if(n!=this.rotation_){let r="rotate("+n+"rad)";if(this.autoHide_){let o=this.element.classList.contains(ca);!o&&n===0?this.element.classList.add(ca):o&&n!==0&&this.element.classList.remove(ca)}this.label_.style.transform=r}this.rotation_=n}},qI=eg;var tg=class extends At{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target});let t=e.className!==void 0?e.className:"ol-zoom",n=e.delta!==void 0?e.delta:1,r=e.zoomInClassName!==void 0?e.zoomInClassName:t+"-in",o=e.zoomOutClassName!==void 0?e.zoomOutClassName:t+"-out",s=e.zoomInLabel!==void 0?e.zoomInLabel:"+",a=e.zoomOutLabel!==void 0?e.zoomOutLabel:"\u2013",A=e.zoomInTipLabel!==void 0?e.zoomInTipLabel:"Zoom in",l=e.zoomOutTipLabel!==void 0?e.zoomOutTipLabel:"Zoom out",c=document.createElement("button");c.className=r,c.setAttribute("type","button"),c.title=A,c.appendChild(typeof s=="string"?document.createTextNode(s):s),c.addEventListener(U.CLICK,this.handleClick_.bind(this,n),!1);let h=document.createElement("button");h.className=o,h.setAttribute("type","button"),h.title=l,h.appendChild(typeof a=="string"?document.createTextNode(a):a),h.addEventListener(U.CLICK,this.handleClick_.bind(this,-n),!1);let u=t+" "+gt+" "+fi,f=this.element;f.className=u,f.appendChild(c),f.appendChild(h),this.duration_=e.duration!==void 0?e.duration:250}handleClick_(e,t){t.preventDefault(),this.zoomByDelta_(e)}zoomByDelta_(e){let n=this.getMap().getView();if(!n)return;let r=n.getZoom();if(r!==void 0){let o=n.getConstrainedZoom(r+e);this.duration_>0?(n.getAnimating()&&n.cancelAnimations(),n.animate({zoom:o,duration:this.duration_,easing:Ht})):n.setZoom(o)}}},VI=tg;function kl(i){i=i||{};let e=new st;return(i.zoom!==void 0?i.zoom:!0)&&e.push(new VI(i.zoomOptions)),(i.rotate!==void 0?i.rotate:!0)&&e.push(new qI(i.rotateOptions)),(i.attribution!==void 0?i.attribution:!0)&&e.push(new KI(i.attributionOptions)),e}var ig={ACTIVE:"active"};var ng=class extends Oe{constructor(e){super(),this.on,this.once,this.un,e&&e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(ig.ACTIVE)}getMap(){return this.map_}handleEvent(e){return!0}setActive(e){this.set(ig.ACTIVE,e)}setMap(e){this.map_=e}};function XI(i,e,t){let n=i.getCenterInternal();if(n){let r=[n[0]+e[0],n[1]+e[1]];i.animateInternal({duration:t!==void 0?t:250,easing:bI,center:i.getConstrainedCenter(r)})}}function Wo(i,e,t,n){let r=i.getZoom();if(r===void 0)return;let o=i.getConstrainedZoom(r+e),s=i.getResolutionForZoom(o);i.getAnimating()&&i.cancelAnimations(),i.animate({resolution:s,anchor:t,duration:n!==void 0?n:250,easing:Ht})}var ji=ng;var rg=class extends ji{constructor(e){super(),e=e||{},this.delta_=e.delta?e.delta:1,this.duration_=e.duration!==void 0?e.duration:250}handleEvent(e){let t=!1;if(e.type==De.DBLCLICK){let n=e.originalEvent,r=e.map,o=e.coordinate,s=n.shiftKey?-this.delta_:this.delta_,a=r.getView();Wo(a,s,o,this.duration_),n.preventDefault(),t=!0}return!t}},JI=rg;function va(i){let e=arguments;return function(t){let n=!0;for(let r=0,o=e.length;r0}}else if(e.type==De.POINTERDOWN){let n=this.handleDownEvent(e);this.handlingDownUpSequence=n,t=this.stopDown(n)}else e.type==De.POINTERMOVE&&this.handleMoveEvent(e);return!t}handleMoveEvent(e){}handleUpEvent(e){return!1}stopDown(e){return e}updateTrackedPointers_(e){e.activePointers&&(this.targetPointers=e.activePointers)}};function Zo(i){let e=i.length,t=0,n=0;for(let r=0;r0&&this.condition_(e)){let n=e.map.getView();return this.lastCentroid=null,n.getAnimating()&&n.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}},t0=sg;var ag=class extends Wi{constructor(e){e=e||{},super({stopDown:In}),this.condition_=e.condition?e.condition:jI,this.lastAngle_=void 0,this.duration_=e.duration!==void 0?e.duration:250}handleDragEvent(e){if(!Ul(e))return;let t=e.map,n=t.getView();if(n.getConstraints().rotation===Xo)return;let r=t.getSize(),o=e.pixel,s=Math.atan2(r[1]/2-o[1],o[0]-r[0]/2);if(this.lastAngle_!==void 0){let a=s-this.lastAngle_;n.adjustRotationInternal(-a)}this.lastAngle_=s}handleUpEvent(e){return Ul(e)?(e.map.getView().endInteraction(this.duration_),!1):!0}handleDownEvent(e){return Ul(e)&&Nl(e)&&this.condition_(e)?(e.map.getView().beginInteraction(),this.lastAngle_=void 0,!0):!1}},i0=ag;var Ag=class extends ki{constructor(e){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){let e=this.startPixel_,t=this.endPixel_,n="px",r=this.element_.style;r.left=Math.min(e[0],t[0])+n,r.top=Math.min(e[1],t[1])+n,r.width=Math.abs(t[0]-e[0])+n,r.height=Math.abs(t[1]-e[1])+n}setMap(e){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);let t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=e,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(e,t){this.startPixel_=e,this.endPixel_=t,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){if(!this.map_)return;let e=this.startPixel_,t=this.endPixel_,r=[e,[e[0],t[1]],t,[t[0],e[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);r[4]=r[0].slice(),this.geometry_?this.geometry_.setCoordinates([r]):this.geometry_=new Qi([r])}getGeometry(){return this.geometry_}},n0=Ag;var $o={BOXSTART:"boxstart",BOXDRAG:"boxdrag",BOXEND:"boxend",BOXCANCEL:"boxcancel"},Vr=class extends ot{constructor(e,t,n){super(e),this.coordinate=t,this.mapBrowserEvent=n}},lg=class extends Wi{constructor(e){super(),this.on,this.once,this.un,e=e??{},this.box_=new n0(e.className||"ol-dragbox"),this.minArea_=e.minArea??64,e.onBoxEnd&&(this.onBoxEnd=e.onBoxEnd),this.startPixel_=null,this.condition_=e.condition??Nl,this.boxEndCondition_=e.boxEndCondition??this.defaultBoxEndCondition}defaultBoxEndCondition(e,t,n){let r=n[0]-t[0],o=n[1]-t[1];return r*r+o*o>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(e){this.startPixel_&&(this.box_.setPixels(this.startPixel_,e.pixel),this.dispatchEvent(new Vr($o.BOXDRAG,e.coordinate,e)))}handleUpEvent(e){if(!this.startPixel_)return!1;let t=this.boxEndCondition_(e,this.startPixel_,e.pixel);return t&&this.onBoxEnd(e),this.dispatchEvent(new Vr(t?$o.BOXEND:$o.BOXCANCEL,e.coordinate,e)),this.box_.setMap(null),this.startPixel_=null,!1}handleDownEvent(e){return this.condition_(e)?(this.startPixel_=e.pixel,this.box_.setMap(e.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new Vr($o.BOXSTART,e.coordinate,e)),!0):!1}onBoxEnd(e){}setActive(e){e||(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new Vr($o.BOXCANCEL,this.startPixel_,null)),this.startPixel_=null)),super.setActive(e)}setMap(e){this.getMap()&&(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new Vr($o.BOXCANCEL,this.startPixel_,null)),this.startPixel_=null)),super.setMap(e)}},r0=lg;var cg=class extends r0{constructor(e){e=e||{};let t=e.condition?e.condition:$I;super({condition:t,className:e.className||"ol-dragzoom",minArea:e.minArea}),this.duration_=e.duration!==void 0?e.duration:200,this.out_=e.out!==void 0?e.out:!1}onBoxEnd(e){let n=this.getMap().getView(),r=this.getGeometry();if(this.out_){let o=n.rotatedExtentForGeometry(r),s=n.getResolutionForExtentInternal(o),a=n.getResolution()/s;r=r.clone(),r.scale(a*a)}n.fitInternal(r,{duration:this.duration_,easing:Ht})}},o0=cg;var gr={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",DOWN:"ArrowDown"};var hg=class extends ji{constructor(e){super(),e=e||{},this.defaultCondition_=function(t){return Gl(t)&&Ol(t)},this.condition_=e.condition!==void 0?e.condition:this.defaultCondition_,this.duration_=e.duration!==void 0?e.duration:100,this.pixelDelta_=e.pixelDelta!==void 0?e.pixelDelta:128}handleEvent(e){let t=!1;if(e.type==U.KEYDOWN){let n=e.originalEvent,r=n.key;if(this.condition_(e)&&(r==gr.DOWN||r==gr.LEFT||r==gr.RIGHT||r==gr.UP)){let s=e.map.getView(),a=s.getResolution()*this.pixelDelta_,A=0,l=0;r==gr.DOWN?l=-a:r==gr.LEFT?A=-a:r==gr.RIGHT?A=a:l=a;let c=[A,l];So(c,s.getRotation()),XI(s,c,this.duration_),n.preventDefault(),t=!0}}return!t}},s0=hg;var ug=class extends ji{constructor(e){super(),e=e||{},this.condition_=e.condition?e.condition:function(t){return!ZI(t)&&Ol(t)},this.delta_=e.delta?e.delta:1,this.duration_=e.duration!==void 0?e.duration:100}handleEvent(e){let t=!1;if(e.type==U.KEYDOWN||e.type==U.KEYPRESS){let n=e.originalEvent,r=n.key;if(this.condition_(e)&&(r==="+"||r==="-")){let o=e.map,s=r==="+"?this.delta_:-this.delta_,a=o.getView();Wo(a,s,void 0,this.duration_),n.preventDefault(),t=!0}}return!t}},a0=ug;var fg=class extends ji{constructor(e){e=e||{},super(e),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=e.maxDelta!==void 0?e.maxDelta:1,this.duration_=e.duration!==void 0?e.duration:250,this.timeout_=e.timeout!==void 0?e.timeout:80,this.useAnchor_=e.useAnchor!==void 0?e.useAnchor:!0,this.constrainResolution_=e.constrainResolution!==void 0?e.constrainResolution:!1;let t=e.condition?e.condition:WI;this.condition_=e.onFocusOnly?va(Pl,t):t,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;let e=this.getMap();if(!e)return;e.getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null)}handleEvent(e){if(!this.condition_(e)||e.type!==U.WHEEL)return!0;let n=e.map,r=e.originalEvent;r.preventDefault(),this.useAnchor_&&(this.lastAnchor_=e.pixel);let o;if(e.type==U.WHEEL&&(o=r.deltaY,r.deltaMode===WheelEvent.DOM_DELTA_LINE&&(o*=40)),o===0)return!1;this.lastDelta_=o;let s=Date.now();this.startTime_===void 0&&(this.startTime_=s),(!this.mode_||s-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(o)<4?"trackpad":"wheel");let a=n.getView();if(this.mode_==="trackpad"&&!(a.getConstrainResolution()||this.constrainResolution_))return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(a.getAnimating()&&a.cancelAnimations(),a.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),a.adjustZoom(-o/this.deltaPerZoom_,this.lastAnchor_?n.getCoordinateFromPixel(this.lastAnchor_):null),this.startTime_=s,!1;this.totalDelta_+=o;let A=Math.max(this.timeout_-(s-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,n),A),!1}handleWheelZoom_(e){let t=e.getView();t.getAnimating()&&t.cancelAnimations();let n=-ue(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(t.getConstrainResolution()||this.constrainResolution_)&&(n=n?n>0?1:-1:0),Wo(t,n,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(e){this.useAnchor_=e,e||(this.lastAnchor_=null)}},A0=fg;var gg=class extends Wi{constructor(e){e=e||{};let t=e;t.stopDown||(t.stopDown=In),super(t),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=e.threshold!==void 0?e.threshold:.3,this.duration_=e.duration!==void 0?e.duration:250}handleDragEvent(e){let t=0,n=this.targetPointers[0],r=this.targetPointers[1],o=Math.atan2(r.clientY-n.clientY,r.clientX-n.clientX);if(this.lastAngle_!==void 0){let A=o-this.lastAngle_;this.rotationDelta_+=A,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),t=A}this.lastAngle_=o;let s=e.map,a=s.getView();a.getConstraints().rotation!==Xo&&(this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(Zo(this.targetPointers))),this.rotating_&&(s.render(),a.adjustRotationInternal(t,this.anchor_)))}handleUpEvent(e){return this.targetPointers.length<2?(e.map.getView().endInteraction(this.duration_),!1):!0}handleDownEvent(e){if(this.targetPointers.length>=2){let t=e.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},l0=gg;var dg=class extends Wi{constructor(e){e=e||{};let t=e;t.stopDown||(t.stopDown=In),super(t),this.anchor_=null,this.duration_=e.duration!==void 0?e.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(e){let t=1,n=this.targetPointers[0],r=this.targetPointers[1],o=n.clientX-r.clientX,s=n.clientY-r.clientY,a=Math.sqrt(o*o+s*s);this.lastDistance_!==void 0&&(t=this.lastDistance_/a),this.lastDistance_=a;let A=e.map,l=A.getView();t!=1&&(this.lastScaleDelta_=t),this.anchor_=A.getCoordinateFromPixelInternal(A.getEventPixel(Zo(this.targetPointers))),A.render(),l.adjustResolutionInternal(t,this.anchor_)}handleUpEvent(e){if(this.targetPointers.length<2){let n=e.map.getView(),r=this.lastScaleDelta_>1?1:-1;return n.endInteraction(this.duration_,r),!1}return!0}handleDownEvent(e){if(this.targetPointers.length>=2){let t=e.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},c0=dg;function h0(i){i=i||{};let e=new st,t=new OI(-.005,.05,100);return(i.altShiftDragRotate!==void 0?i.altShiftDragRotate:!0)&&e.push(new i0),(i.doubleClickZoom!==void 0?i.doubleClickZoom:!0)&&e.push(new JI({delta:i.zoomDelta,duration:i.zoomDuration})),(i.dragPan!==void 0?i.dragPan:!0)&&e.push(new t0({onFocusOnly:i.onFocusOnly,kinetic:t})),(i.pinchRotate!==void 0?i.pinchRotate:!0)&&e.push(new l0),(i.pinchZoom!==void 0?i.pinchZoom:!0)&&e.push(new c0({duration:i.zoomDuration})),(i.keyboard!==void 0?i.keyboard:!0)&&(e.push(new s0),e.push(new a0({delta:i.zoomDelta,duration:i.zoomDuration}))),(i.mouseWheelZoom!==void 0?i.mouseWheelZoom:!0)&&e.push(new A0({onFocusOnly:i.onFocusOnly,duration:i.zoomDuration})),(i.shiftDragZoom!==void 0?i.shiftDragZoom:!0)&&e.push(new o0({duration:i.zoomDuration})),e}var Ti=class extends ot{constructor(e,t){super(e),this.layer=t}},mg={LAYERS:"layers"},pg=class i extends Ml{constructor(e){e=e||{};let t=Object.assign({},e);delete t.layers;let n=e.layers;super(t),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(mg.LAYERS,this.handleLayersChanged_),n?Array.isArray(n)?n=new st(n.slice(),{unique:!0}):re(typeof n.getArray=="function","Expected `layers` to be an array or a `Collection`"):n=new st(void 0,{unique:!0}),this.setLayers(n)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(se),this.layersListenerKeys_.length=0;let e=this.getLayers();this.layersListenerKeys_.push(X(e,nt.ADD,this.handleLayersAdd_,this),X(e,nt.REMOVE,this.handleLayersRemove_,this));for(let n in this.listenerKeys_)this.listenerKeys_[n].forEach(se);ai(this.listenerKeys_);let t=e.getArray();for(let n=0,r=t.length;n=0;--I){let y=m[I],x=y.layer;if(x.hasRenderer()&&Sa(y,c)&&a.call(A,x)){let B=x.getRenderer(),Q=x.getSource();if(B&&Q){let w=Q.getWrapX()?f:e,v=h.bind(null,y.managed);p[0]=w[0]+g[C][0],p[1]=w[1]+g[C][1],l=B.forEachFeatureAtCoordinate(p,t,n,v,E)}if(l)return l}}if(E.length===0)return;let _=1/E.length;return E.forEach((C,I)=>C.distanceSq+=I*_),E.sort((C,I)=>C.distanceSq-I.distanceSq),E.some(C=>l=C.callback(C.feature,C.layer,C.geometry)),l}hasFeatureAtCoordinate(e,t,n,r,o,s){return this.forEachFeatureAtCoordinate(e,t,n,r,En,this,o,s)!==void 0}getMap(){return this.map_}renderFrame(e){J()}scheduleExpireIconCache(e){_t.canExpireCache()&&e.postRenderFunctions.push(e1)}};function e1(i,e){_t.expire()}var u0=Eg;var Ig=class extends u0{constructor(e){super(e),this.fontChangeListenerKey_=X(Yi,Vt.PROPERTYCHANGE,e.redrawText,e),this.element_=document.createElement("div");let t=this.element_.style;t.position="absolute",t.width="100%",t.height="100%",t.zIndex="0",this.element_.className=gt+" ol-layers";let n=e.getViewport();n.insertBefore(this.element_,n.firstChild||null),this.children_=[],this.renderedVisible_=!0}dispatchRenderEvent(e,t){let n=this.getMap();if(n.hasListener(e)){let r=new cr(e,void 0,t);n.dispatchEvent(r)}}disposeInternal(){se(this.fontChangeListenerKey_),this.element_.remove(),super.disposeInternal()}renderFrame(e){if(!e){this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1);return}this.calculateMatrices2D(e),this.dispatchRenderEvent(Fe.PRECOMPOSE,e);let t=e.layerStatesArray.sort((a,A)=>a.zIndex-A.zIndex);t.some(a=>a.layer instanceof Jo&&a.layer.getDeclutter())&&(e.declutter={});let r=e.viewState;this.children_.length=0;let o=[],s=null;for(let a=0,A=t.length;a=0;--n){let r=t[n],o=r.layer;o.getDeclutter()&&o.renderDeclutter(e,r)}t.forEach(n=>n.layer.renderDeferred(e))}}},f0=Ig;function g0(i){if(i instanceof Ln){i.setMapInternal(null);return}i instanceof Ta&&i.getLayers().forEach(g0)}function d0(i,e){if(i instanceof Ln){i.setMapInternal(e);return}if(i instanceof Ta){let t=i.getLayers().getArray();for(let n=0,r=t.length;nthis.updateSize()),this.controls=t.controls||kl(),this.interactions=t.interactions||h0({onFocusOnly:!0}),this.overlays_=t.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new HI(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(Le.LAYERGROUP,this.handleLayerGroupChanged_),this.addChangeListener(Le.VIEW,this.handleViewChanged_),this.addChangeListener(Le.SIZE,this.handleSizeChanged_),this.addChangeListener(Le.TARGET,this.handleTargetChanged_),this.setProperties(t.values);let n=this;e.view&&!(e.view instanceof yt)&&e.view.then(function(r){n.setView(new yt(r))}),this.controls.addEventListener(nt.ADD,r=>{r.element.setMap(this)}),this.controls.addEventListener(nt.REMOVE,r=>{r.element.setMap(null)}),this.interactions.addEventListener(nt.ADD,r=>{r.element.setMap(this)}),this.interactions.addEventListener(nt.REMOVE,r=>{r.element.setMap(null)}),this.overlays_.addEventListener(nt.ADD,r=>{this.addOverlayInternal_(r.element)}),this.overlays_.addEventListener(nt.REMOVE,r=>{let o=r.element.getId();o!==void 0&&delete this.overlayIdIndex_[o.toString()],r.element.setMap(null)}),this.controls.forEach(r=>{r.setMap(this)}),this.interactions.forEach(r=>{r.setMap(this)}),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(e){this.getControls().push(e)}addInteraction(e){this.getInteractions().push(e)}addLayer(e){this.getLayerGroup().getLayers().push(e)}handleLayerAdd_(e){d0(e.layer,this)}addOverlay(e){this.getOverlays().push(e)}addOverlayInternal_(e){let t=e.getId();t!==void 0&&(this.overlayIdIndex_[t.toString()]=e),e.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(e,t,n){if(!this.frameState_||!this.renderer_)return;let r=this.getCoordinateFromPixelInternal(e);n=n!==void 0?n:{};let o=n.hitTolerance!==void 0?n.hitTolerance:0,s=n.layerFilter!==void 0?n.layerFilter:En,a=n.checkWrapped!==!1;return this.renderer_.forEachFeatureAtCoordinate(r,this.frameState_,o,a,t,null,s,null)}getFeaturesAtPixel(e,t){let n=[];return this.forEachFeatureAtPixel(e,function(r){n.push(r)},t),n}getAllLayers(){let e=[];function t(n){n.forEach(function(r){r instanceof Ta?t(r.getLayers()):e.push(r)})}return t(this.getLayers()),e}hasFeatureAtPixel(e,t){if(!this.frameState_||!this.renderer_)return!1;let n=this.getCoordinateFromPixelInternal(e);t=t!==void 0?t:{};let r=t.layerFilter!==void 0?t.layerFilter:En,o=t.hitTolerance!==void 0?t.hitTolerance:0,s=t.checkWrapped!==!1;return this.renderer_.hasFeatureAtCoordinate(n,this.frameState_,o,s,r,null)}getEventCoordinate(e){return this.getCoordinateFromPixel(this.getEventPixel(e))}getEventCoordinateInternal(e){return this.getCoordinateFromPixelInternal(this.getEventPixel(e))}getEventPixel(e){let n=this.viewport_.getBoundingClientRect(),r=this.getSize(),o=n.width/r[0],s=n.height/r[1],a="changedTouches"in e?e.changedTouches[0]:e;return[(a.clientX-n.left)/o,(a.clientY-n.top)/s]}getTarget(){return this.get(Le.TARGET)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(e){return Fr(this.getCoordinateFromPixelInternal(e),this.getView().getProjection())}getCoordinateFromPixelInternal(e){let t=this.frameState_;return t?ye(t.pixelToCoordinateTransform,e.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(e){let t=this.overlayIdIndex_[e.toString()];return t!==void 0?t:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(Le.LAYERGROUP)}setLayers(e){let t=this.getLayerGroup();if(e instanceof st){t.setLayers(e);return}let n=t.getLayers();n.clear(),n.extend(e)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){let e=this.getLayerGroup().getLayerStatesArray();for(let t=0,n=e.length;t=0;o--){let s=r[o];if(s.getMap()!==this||!s.getActive()||!this.getTargetElement())continue;if(!s.handleEvent(e)||e.propagationStopped)break}}}handlePostRender(){let e=this.frameState_,t=this.tileQueue_;if(!t.isEmpty()){let r=this.maxTilesLoading_,o=r;if(e){let s=e.viewHints;if(s[Ye.ANIMATING]||s[Ye.INTERACTING]){let a=Date.now()-e.time>8;r=a?0:8,o=a?0:2}}t.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()},0))}setLayerGroup(e){let t=this.getLayerGroup();t&&this.handleLayerRemove_(new Ti("removelayer",t)),this.set(Le.LAYERGROUP,e)}setSize(e){this.set(Le.SIZE,e)}setTarget(e){this.set(Le.TARGET,e)}setView(e){if(!e||e instanceof yt){this.set(Le.VIEW,e);return}this.set(Le.VIEW,new yt);let t=this;e.then(function(n){t.setView(new yt(n))})}updateSize(){let e=this.getTargetElement(),t;if(e){let r=getComputedStyle(e),o=e.offsetWidth-parseFloat(r.borderLeftWidth)-parseFloat(r.paddingLeft)-parseFloat(r.paddingRight)-parseFloat(r.borderRightWidth),s=e.offsetHeight-parseFloat(r.borderTopWidth)-parseFloat(r.paddingTop)-parseFloat(r.paddingBottom)-parseFloat(r.borderBottomWidth);!isNaN(o)&&!isNaN(s)&&(t=[Math.max(0,o),Math.max(0,s)],!Wu(t)&&(e.offsetWidth||e.offsetHeight||e.getClientRects().length)&&OA("No map visible because the map container's width or height are 0."))}let n=this.getSize();t&&(!n||!rt(t,n))&&(this.setSize(t),this.updateViewportSize_(t))}updateViewportSize_(e){let t=this.getView();t&&t.setViewportSize(e)}};function t1(i){let e=null;i.keyboardEventTarget!==void 0&&(e=typeof i.keyboardEventTarget=="string"?document.getElementById(i.keyboardEventTarget):i.keyboardEventTarget);let t={},n=i.layers&&typeof i.layers.getLayers=="function"?i.layers:new Ta({layers:i.layers});t[Le.LAYERGROUP]=n,t[Le.TARGET]=i.target,t[Le.VIEW]=i.view instanceof yt?i.view:new yt;let r;i.controls!==void 0&&(Array.isArray(i.controls)?r=new st(i.controls.slice()):(re(typeof i.controls.getArray=="function","Expected `controls` to be an array or an `ol/Collection.js`"),r=i.controls));let o;i.interactions!==void 0&&(Array.isArray(i.interactions)?o=new st(i.interactions.slice()):(re(typeof i.interactions.getArray=="function","Expected `interactions` to be an array or an `ol/Collection.js`"),o=i.interactions));let s;return i.overlays!==void 0?Array.isArray(i.overlays)?s=new st(i.overlays.slice()):(re(typeof i.overlays.getArray=="function","Expected `overlays` to be an array or an `ol/Collection.js`"),s=i.overlays):s=new st,{controls:r,interactions:o,keyboardEventTarget:e,overlays:s,values:t}}var Da=Cg;var Bt={ELEMENT:"element",MAP:"map",OFFSET:"offset",POSITION:"position",POSITIONING:"positioning"},_g=class extends Oe{constructor(e){super(),this.on,this.once,this.un,this.options=e,this.id=e.id,this.insertFirst=e.insertFirst!==void 0?e.insertFirst:!0,this.stopEvent=e.stopEvent!==void 0?e.stopEvent:!0,this.element=document.createElement("div"),this.element.className=e.className!==void 0?e.className:"ol-overlay-container "+UE,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=e.autoPan===!0?{}:e.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(Bt.ELEMENT,this.handleElementChanged),this.addChangeListener(Bt.MAP,this.handleMapChanged),this.addChangeListener(Bt.OFFSET,this.handleOffsetChanged),this.addChangeListener(Bt.POSITION,this.handlePositionChanged),this.addChangeListener(Bt.POSITIONING,this.handlePositioningChanged),e.element!==void 0&&this.setElement(e.element),this.setOffset(e.offset!==void 0?e.offset:[0,0]),this.setPositioning(e.positioning||"top-left"),e.position!==void 0&&this.setPosition(e.position)}getElement(){return this.get(Bt.ELEMENT)}getId(){return this.id}getMap(){return this.get(Bt.MAP)||null}getOffset(){return this.get(Bt.OFFSET)}getPosition(){return this.get(Bt.POSITION)}getPositioning(){return this.get(Bt.POSITIONING)}handleElementChanged(){cl(this.element);let e=this.getElement();e&&this.element.appendChild(e)}handleMapChanged(){this.mapPostrenderListenerKey&&(this.element?.remove(),se(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);let e=this.getMap();if(e){this.mapPostrenderListenerKey=X(e,Kt.POSTRENDER,this.render,this),this.updatePixelPosition();let t=this.stopEvent?e.getOverlayContainerStopEvent():e.getOverlayContainer();this.insertFirst?t.insertBefore(this.element,t.childNodes[0]||null):t.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(e){this.set(Bt.ELEMENT,e)}setMap(e){this.set(Bt.MAP,e)}setOffset(e){this.set(Bt.OFFSET,e)}setPosition(e){this.set(Bt.POSITION,e)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(e){let t=this.getMap();if(!t||!t.getTargetElement()||!this.get(Bt.POSITION))return;let n=this.getRect(t.getTargetElement(),t.getSize()),r=this.getElement(),o=this.getRect(r,[TE(r),DE(r)]);e=e||{};let s=e.margin===void 0?20:e.margin;if(!Ii(n,o)){let a=o[0]-n[0],A=n[2]-o[2],l=o[1]-n[1],c=n[3]-o[3],h=[0,0];if(a<0?h[0]=a-s:A<0&&(h[0]=Math.abs(A)+s),l<0?h[1]=l-s:c<0&&(h[1]=Math.abs(c)+s),h[0]!==0||h[1]!==0){let u=t.getView().getCenterInternal(),f=t.getPixelFromCoordinateInternal(u);if(!f)return;let g=[f[0]+h[0],f[1]+h[1]],m=e.animation||{};t.getView().animateInternal({center:t.getCoordinateFromPixelInternal(g),duration:m.duration,easing:m.easing})}}}getRect(e,t){let n=e.getBoundingClientRect(),r=n.left+window.pageXOffset,o=n.top+window.pageYOffset;return[r,o,r+t[0],o+t[1]]}setPositioning(e){this.set(Bt.POSITIONING,e)}setVisible(e){this.rendered.visible!==e&&(this.element.style.display=e?"":"none",this.rendered.visible=e)}updatePixelPosition(){let e=this.getMap(),t=this.getPosition();if(!e||!e.isRendered()||!t){this.setVisible(!1);return}let n=e.getPixelFromCoordinate(t),r=e.getSize();this.updateRenderedPosition(n,r)}updateRenderedPosition(e,t){let n=this.element.style,r=this.getOffset(),o=this.getPositioning();this.setVisible(!0);let s=Math.round(e[0]+r[0])+"px",a=Math.round(e[1]+r[1])+"px",A="0%",l="0%";o=="bottom-right"||o=="center-right"||o=="top-right"?A="-100%":(o=="bottom-center"||o=="center-center"||o=="top-center")&&(A="-50%"),o=="bottom-left"||o=="bottom-center"||o=="bottom-right"?l="-100%":(o=="center-left"||o=="center-center"||o=="center-right")&&(l="-50%");let c=`translate(${A}, ${l}) translate(${s}, ${a})`;this.rendered.transform_!=c&&(this.rendered.transform_=c,n.transform=c)}getOptions(){return this.options}},Yl=_g;var Hl=class{constructor(e,t,n,r){this.minX=e,this.maxX=t,this.minY=n,this.maxY=r}contains(e){return this.containsXY(e[1],e[2])}containsTileRange(e){return this.minX<=e.minX&&e.maxX<=this.maxX&&this.minY<=e.minY&&e.maxY<=this.maxY}containsXY(e,t){return this.minX<=e&&e<=this.maxX&&this.minY<=t&&t<=this.maxY}equals(e){return this.minX==e.minX&&this.minY==e.minY&&this.maxX==e.maxX&&this.maxY==e.maxY}extend(e){e.minXthis.maxX&&(this.maxX=e.maxX),e.minYthis.maxY&&(this.maxY=e.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(e){return this.minX<=e.maxX&&this.maxX>=e.minX&&this.minY<=e.maxY&&this.maxY>=e.minY}};function Xr(i,e,t,n,r){return r!==void 0?(r.minX=i,r.maxX=e,r.minY=t,r.maxY=n,r):new Hl(i,e,t,n)}var es=Hl;var yg=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.featureClass=Co,this.supportedMediaTypes=null}getReadOptions(e,t){if(t){let n=t.dataProjection?fe(t.dataProjection):this.readProjection(e);t.extent&&n&&n.getUnits()==="tile-pixels"&&(n=fe(n),n.setWorldExtent(t.extent)),t={dataProjection:n,featureProjection:t.featureProjection}}return this.adaptOptions(t)}adaptOptions(e){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection,featureClass:this.featureClass},e)}getType(){return J()}readFeature(e,t){return J()}readFeatures(e,t){return J()}readGeometry(e,t){return J()}readProjection(e){return J()}writeFeature(e,t){return J()}writeFeatures(e,t){return J()}writeGeometry(e,t){return J()}},zl=yg;function Jr(i,e,t){let n=t?fe(t.featureProjection):null,r=t?fe(t.dataProjection):null,o=i;if(n&&r&&!Oi(n,r)){e&&(o=i.clone());let s=e?n:r,a=e?r:n;s.getUnits()==="tile-pixels"?o.transform(s,a):o.applyTransform(Bn(s,a))}if(e&&t&&t.decimals!==void 0){let s=Math.pow(10,t.decimals),a=function(A){for(let l=0,c=A.length;lBg({...i,geometry:o})).flat();let n=t.type==="MultiPolygon"?"Polygon":t.type;if(n==="GeometryCollection"||n==="Circle")throw new Error("Unsupported geometry type: "+n);let r=t.layout.length;return Jr(new Zt(n,n==="Polygon"?n1(t.flatCoordinates,t.ends,r):t.flatCoordinates,t.ends?.flat(),r,i.properties||{},i.id).enableSimplifyTransformed(),!1,e)}function Kl(i,e){if(!i)return null;if(Array.isArray(i)){let n=i.map(r=>Kl(r,e));return new Si(n)}let t=i1[i.type];return Jr(new t(i.flatCoordinates,i.layout||"XY",i.ends),!1,e)}var xg=class extends zl{constructor(){super()}getType(){return"json"}readFeature(e,t){return this.readFeatureFromObject(ql(e),this.getReadOptions(e,t))}readFeatures(e,t){return this.readFeaturesFromObject(ql(e),this.getReadOptions(e,t))}readFeatureFromObject(e,t){return J()}readFeaturesFromObject(e,t){return J()}readGeometry(e,t){return this.readGeometryFromObject(ql(e),this.getReadOptions(e,t))}readGeometryFromObject(e,t){return J()}readProjection(e){return this.readProjectionFromObject(ql(e))}readProjectionFromObject(e){return J()}writeFeature(e,t){return JSON.stringify(this.writeFeatureObject(e,t))}writeFeatureObject(e,t){return J()}writeFeatures(e,t){return JSON.stringify(this.writeFeaturesObject(e,t))}writeFeaturesObject(e,t){return J()}writeGeometry(e,t){return JSON.stringify(this.writeGeometryObject(e,t))}writeGeometryObject(e,t){return J()}};function ql(i){if(typeof i=="string"){let e=JSON.parse(i);return e||null}return i!==null?i:null}var m0=xg;var wg=class extends m0{constructor(e){e=e||{},super(),this.dataProjection=fe(e.dataProjection?e.dataProjection:"EPSG:4326"),e.featureProjection&&(this.defaultFeatureProjection=fe(e.featureProjection)),e.featureClass&&(this.featureClass=e.featureClass),this.geometryName_=e.geometryName,this.extractGeometryName_=e.extractGeometryName,this.supportedMediaTypes=["application/geo+json","application/vnd.geo+json"]}readFeatureFromObject(e,t){let n=null;e.type==="Feature"?n=e:n={type:"Feature",geometry:e,properties:null};let r=Sg(n.geometry,t);if(this.featureClass===Zt)return Bg({geometry:r,id:n.id,properties:n.properties},t);let o=new Co;return this.geometryName_?o.setGeometryName(this.geometryName_):this.extractGeometryName_&&n.geometry_name&&o.setGeometryName(n.geometry_name),o.setGeometry(Kl(r,t)),"id"in n&&o.setId(n.id),n.properties&&o.setProperties(n.properties,!0),o}readFeaturesFromObject(e,t){let n=e,r=null;if(n.type==="FeatureCollection"){let o=e;r=[];let s=o.features;for(let a=0,A=s.length;a2||Math.abs(i[e*4+3]-.75*255)>2}function _1(){if(vg===void 0){let i=me(6,6,jr);i.globalCompositeOperation="lighter",i.fillStyle="rgba(210, 0, 0, 0.75)",E0(i,4,5,4,0),E0(i,4,5,0,5);let e=i.getImageData(0,0,3,3).data;vg=Tg(e,0)||Tg(e,4)||Tg(e,8),Nr(i),jr.push(i.canvas)}return vg}function I0(i,e,t,n){let r=br(t,e,i),o=Fo(e,n,t),s=e.getMetersPerUnit();s!==void 0&&(o*=s);let a=i.getMetersPerUnit();a!==void 0&&(o/=a);let A=i.getExtent();if(!A||kt(A,r)){let l=Fo(i,o,r)/o;isFinite(l)&&l>0&&(o/=l)}return o}function Vl(i,e,t,n){let r=It(t),o=I0(i,e,r,n);return(!isFinite(o)||o<=0)&&kA(t,function(s){return o=I0(i,e,s,n),isFinite(o)&&o>0}),o}function C0(i,e,t,n,r,o,s,a,A,l,c,h,u,f){let g=me(Math.round(t*i),Math.round(t*e),jr);if(h||(g.imageSmoothingEnabled=!1),A.length===0)return g.canvas;g.scale(t,t);function m(I){return Math.round(I*t)/t}g.globalCompositeOperation="lighter";let d=be();A.forEach(function(I,y,x){yo(d,I.extent)});let E,p=t/n,_=(h?1:1+Math.pow(2,-24))/p;if(!u||A.length!==1||l!==0){if(E=me(Math.round(oe(d)*p),Math.round(Se(d)*p),jr),h||(E.imageSmoothingEnabled=!1),r&&f){let I=(r[0]-d[0])*p,y=-(r[3]-d[3])*p,x=oe(r)*p,B=Se(r)*p;E.rect(I,y,x,B),E.clip()}A.forEach(function(I,y,x){if(I.image.width>0&&I.image.height>0){if(I.clipExtent){E.save();let R=(I.clipExtent[0]-d[0])*p,F=-(I.clipExtent[3]-d[3])*p,D=oe(I.clipExtent)*p,S=Se(I.clipExtent)*p;E.rect(h?R:Math.round(R),h?F:Math.round(F),h?D:Math.round(R+D)-Math.round(R),h?S:Math.round(F+S)-Math.round(F)),E.clip()}let B=(I.extent[0]-d[0])*p,Q=-(I.extent[3]-d[3])*p,w=oe(I.extent)*p,v=Se(I.extent)*p;E.drawImage(I.image,l,l,I.image.width-2*l,I.image.height-2*l,h?B:Math.round(B),h?Q:Math.round(Q),h?w:Math.round(B+w)-Math.round(B),h?v:Math.round(Q+v)-Math.round(Q)),I.clipExtent&&E.restore()}})}let C=ht(s);return a.getTriangles().forEach(function(I,y,x){let B=I.source,Q=I.target,w=B[0][0],v=B[0][1],R=B[1][0],F=B[1][1],D=B[2][0],S=B[2][1],k=m((Q[0][0]-C[0])/o),L=m(-(Q[0][1]-C[1])/o),b=m((Q[1][0]-C[0])/o),P=m(-(Q[1][1]-C[1])/o),N=m((Q[2][0]-C[0])/o),Y=m(-(Q[2][1]-C[1])/o),M=w,j=v;w=0,v=0,R-=M,F-=j,D-=M,S-=j;let H=[[R,F,0,0,b-k],[D,S,0,0,N-k],[0,0,R,F,P-L],[0,0,D,S,Y-L]],O=Mp(H);if(!O)return;if(g.save(),g.beginPath(),_1()||!h){g.moveTo(b,P);let ie=4,ge=k-b,Ee=L-P;for(let de=0;deye(a,br(_,this.targetProj_,this.sourceProj_))):Bn(this.targetProj_,this.sourceProj_);this.transformInv_=function(_){let C=_[0]+"/"+_[1];return A[C]||(A[C]=l(_)),A[C]},this.maxSourceExtent_=r,this.errorThresholdSquared_=o*o,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&oe(r)>=oe(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?oe(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?oe(this.targetProj_.getExtent()):null;let c=ht(n),h=xo(n),u=Wn(n),f=Bo(n),g=this.transformInv_(c),m=this.transformInv_(h),d=this.transformInv_(u),E=this.transformInv_(f),p=y1+(s?Math.max(0,Math.ceil(Math.log2(jn(n)/(s*s*256*256)))):0);if(this.addQuad_(c,h,u,f,g,m,d,E,p),this.wrapsXInSource_){let _=1/0;this.triangles_.forEach(function(C,I,y){_=Math.min(_,C.source[0][0],C.source[1][0],C.source[2][0])}),this.triangles_.forEach(C=>{if(Math.max(C.source[0][0],C.source[1][0],C.source[2][0])-_>this.sourceWorldWidth_/2){let I=[[C.source[0][0],C.source[0][1]],[C.source[1][0],C.source[1][1]],[C.source[2][0],C.source[2][1]]];I[0][0]-_>this.sourceWorldWidth_/2&&(I[0][0]-=this.sourceWorldWidth_),I[1][0]-_>this.sourceWorldWidth_/2&&(I[1][0]-=this.sourceWorldWidth_),I[2][0]-_>this.sourceWorldWidth_/2&&(I[2][0]-=this.sourceWorldWidth_);let y=Math.min(I[0][0],I[1][0],I[2][0]);Math.max(I[0][0],I[1][0],I[2][0])-y.5&&h<1,g=!1;if(l>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_){let d=Os([e,t,n,r]);g=oe(d)/this.targetWorldWidth_>_0||g}!f&&this.sourceProj_.isGlobal()&&h&&(g=h>_0||g)}if(!g&&this.maxSourceExtent_&&isFinite(c[0])&&isFinite(c[1])&&isFinite(c[2])&&isFinite(c[3])&&!Ne(c,this.maxSourceExtent_))return;let m=0;if(!g&&(!isFinite(o[0])||!isFinite(o[1])||!isFinite(s[0])||!isFinite(s[1])||!isFinite(a[0])||!isFinite(a[1])||!isFinite(A[0])||!isFinite(A[1]))){if(l>0)g=!0;else if(m=(!isFinite(o[0])||!isFinite(o[1])?8:0)+(!isFinite(s[0])||!isFinite(s[1])?4:0)+(!isFinite(a[0])||!isFinite(a[1])?2:0)+(!isFinite(A[0])||!isFinite(A[1])?1:0),m!=1&&m!=2&&m!=4&&m!=8)return}if(l>0){if(!g){let d=[(e[0]+n[0])/2,(e[1]+n[1])/2],E=this.transformInv_(d),p;f?p=(_i(o[0],u)+_i(a[0],u))/2-_i(E[0],u):p=(o[0]+a[0])/2-E[0];let _=(o[1]+a[1])/2-E[1];g=p*p+_*_>this.errorThresholdSquared_}if(g){if(Math.abs(e[0]-n[0])<=Math.abs(e[1]-n[1])){let d=[(t[0]+n[0])/2,(t[1]+n[1])/2],E=this.transformInv_(d),p=[(r[0]+e[0])/2,(r[1]+e[1])/2],_=this.transformInv_(p);this.addQuad_(e,t,d,p,o,s,E,_,l-1),this.addQuad_(p,d,n,r,_,E,a,A,l-1)}else{let d=[(e[0]+t[0])/2,(e[1]+t[1])/2],E=this.transformInv_(d),p=[(n[0]+r[0])/2,(n[1]+r[1])/2],_=this.transformInv_(p);this.addQuad_(e,d,p,r,o,E,_,A,l-1),this.addQuad_(d,t,n,p,E,s,a,_,l-1)}return}}if(f){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}(m&11)==0&&this.addTriangle_(e,n,r,o,a,A),(m&14)==0&&this.addTriangle_(e,n,t,o,a,s),m&&((m&13)==0&&this.addTriangle_(t,r,e,s,A,o),(m&7)==0&&this.addTriangle_(t,r,n,s,A,a))}calculateSourceExtent(){let e=be();return this.triangles_.forEach(function(t,n,r){let o=t.source;vr(e,o[0]),vr(e,o[1]),vr(e,o[2])}),e}getTriangles(){return this.triangles_}},Xl=Dg;var bg=class extends jo{constructor(e,t,n,r,o,s,a,A,l,c,h,u){super(o,G.IDLE,u),this.renderEdges_=h!==void 0?h:!1,this.pixelRatio_=a,this.gutter_=A,this.canvas_=null,this.sourceTileGrid_=t,this.targetTileGrid_=r,this.wrappedTileCoord_=s||o,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0,this.clipExtent_=e.canWrapX()?e.getExtent():void 0;let f=r.getTileCoordExtent(this.wrappedTileCoord_),g=this.targetTileGrid_.getExtent(),m=this.sourceTileGrid_.getExtent(),d=g?Ue(f,g):f;if(jn(d)===0){this.state=G.EMPTY;return}let E=e.getExtent();E&&(m?m=Ue(m,E):m=E);let p=r.getResolution(this.wrappedTileCoord_[0]),_=Vl(e,n,d,p);if(!isFinite(_)||_<=0){this.state=G.EMPTY;return}let C=c!==void 0?c:.5;if(this.triangulation_=new Xl(e,n,d,m,_*C,p),this.triangulation_.getTriangles().length===0){this.state=G.EMPTY;return}this.sourceZ_=t.getZForResolution(_);let I=this.triangulation_.calculateSourceExtent();if(m&&(e.canWrapX()?(I[1]=ue(I[1],m[1],m[3]),I[3]=ue(I[3],m[1],m[3])):I=Ue(I,m)),!jn(I))this.state=G.EMPTY;else{let y=0,x=0;e.canWrapX()&&(y=oe(E),x=Math.floor((I[0]-E[0])/y)),wo(I.slice(),e,!0).forEach(Q=>{let w=t.getTileRangeForExtentAndZ(Q,this.sourceZ_);for(let v=w.minX;v<=w.maxX;v++)for(let R=w.minY;R<=w.maxY;R++){let F=l(this.sourceZ_,v,R,a);if(F){let D=x*y;this.sourceTiles_.push({tile:F,offset:D})}}++x}),this.sourceTiles_.length===0&&(this.state=G.EMPTY)}}getImage(){return this.canvas_}reproject_(){let e=[];if(this.sourceTiles_.forEach(t=>{let n=t.tile;if(n&&n.getState()==G.LOADED){let r=this.sourceTileGrid_.getTileCoordExtent(n.tileCoord);r[0]+=t.offset,r[2]+=t.offset;let o=this.clipExtent_?.slice();o&&(o[0]+=t.offset,o[2]+=t.offset),e.push({extent:r,clipExtent:o,image:n.getImage()})}}),this.sourceTiles_.length=0,e.length===0)this.state=G.ERROR;else{let t=this.wrappedTileCoord_[0],n=this.targetTileGrid_.getTileSize(t),r=typeof n=="number"?n:n[0],o=typeof n=="number"?n:n[1],s=this.targetTileGrid_.getResolution(t),a=this.sourceTileGrid_.getResolution(this.sourceZ_),A=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=C0(r,o,this.pixelRatio_,a,this.sourceTileGrid_.getExtent(),s,A,this.triangulation_,e,this.gutter_,this.renderEdges_,this.interpolate),this.state=G.LOADED}this.changed()}load(){if(this.state==G.IDLE){this.state=G.LOADING,this.changed();let e=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(({tile:t})=>{let n=t.getState();if(n==G.IDLE||n==G.LOADING){e++;let r=X(t,U.CHANGE,o=>{let s=t.getState();(s==G.LOADED||s==G.ERROR||s==G.EMPTY)&&(se(r),e--,e===0&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(r)}}),e===0?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:t},n,r){t.getState()==G.IDLE&&t.load()})}}unlistenSources_(){this.sourcesListenerKeys_.forEach(se),this.sourcesListenerKeys_=null}release(){this.canvas_&&(Nr(this.canvas_.getContext("2d")),jr.push(this.canvas_),this.canvas_=null),super.release()}},is=bg;var Fg=class{constructor(e){this.highWaterMark=e!==void 0?e:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}deleteOldest(){let e=this.pop();e instanceof ki&&e.dispose()}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(e){for(;this.canExpireCache();)this.deleteOldest()}clear(){for(;this.oldest_;)this.deleteOldest()}containsKey(e){return this.entries_.hasOwnProperty(e)}forEach(e){let t=this.oldest_;for(;t;)e(t.value_,t.key_,this),t=t.newer}get(e,t){let n=this.entries_[e];return re(n!==void 0,"Tried to get a value for a key that does not exist in the cache"),n===this.newest_||(n===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(n.newer.older=n.older,n.older.newer=n.newer),n.newer=null,n.older=this.newest_,this.newest_.newer=n,this.newest_=n),n.value_}remove(e){let t=this.entries_[e];return re(t!==void 0,"Tried to get a value for a key that does not exist in the cache"),t===this.newest_?(this.newest_=t.older,this.newest_&&(this.newest_.newer=null)):t===this.oldest_?(this.oldest_=t.newer,this.oldest_&&(this.oldest_.older=null)):(t.newer.older=t.older,t.older.newer=t.newer),delete this.entries_[e],--this.count_,t.value_}getCount(){return this.count_}getKeys(){let e=new Array(this.count_),t=0,n;for(n=this.newest_;n;n=n.older)e[t++]=n.key_;return e}getValues(){let e=new Array(this.count_),t=0,n;for(n=this.newest_;n;n=n.older)e[t++]=n.value_;return e}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(e){return this.entries_[e]?.value_}pop(){let e=this.oldest_;return delete this.entries_[e.key_],e.newer&&(e.newer.older=null),this.oldest_=e.newer,this.oldest_||(this.newest_=null),--this.count_,e.value_}replace(e,t){this.get(e),this.entries_[e].value_=t}set(e,t){re(!(e in this.entries_),"Tried to set a value for a key that is used already");let n={key_:e,newer:null,older:this.newest_,value_:t};this.newest_?this.newest_.newer=n:this.oldest_=n,this.newest_=n,this.entries_[e]=n,++this.count_}setSize(e){this.highWaterMark=e}},Jl=Fg;function Pn(i,e,t,n){return n!==void 0?(n[0]=i,n[1]=e,n[2]=t,n):[i,e,t]}function Lg(i,e,t){return i+"/"+e+"/"+t}function Wr(i){return Lg(i[0],i[1],i[2])}function y0(i){return Mg(i[0],i[1],i[2])}function Mg(i,e,t){return(e<t||t>e.getMaxZoom())return!1;let o=e.getFullTileRange(t);return o?o.containsXY(n,r):!0}function kg(i,e,t,n){return`${i},${Lg(e,t,n)}`}function Pg(i,e,t){if(!(t in i))return i[t]=new Set([e]),!0;let n=i[t],r=n.has(e);return r||n.add(e),!r}function x1(i,e,t){let n=i[t];return n?n.delete(e):!1}function x0(i,e){let t=i.layerStatesArray[i.layerIndex];t.extent&&(e=Ue(e,Ct(t.extent,i.viewState.projection)));let n=t.layer.getRenderSource();if(!n.getWrapX()){let r=n.getTileGridForProjection(i.viewState.projection).getExtent();r&&(e=Ue(e,r))}return e}var Ng=class extends Rl{constructor(e,t){super(e),t=t||{},this.extentChanged=!0,this.renderComplete=!1,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedRevision_,this.renderedTiles=[],this.renderedSourceKey_,this.renderedSourceRevision_,this.tempExtent=be(),this.tempTileRange_=new es(0,0,0,0),this.tempTileCoord_=Pn(0,0,0);let n=t.cacheSize!==void 0?t.cacheSize:512;this.tileCache_=new Jl(n),this.maxStaleKeys=n*.5}getTileCache(){return this.tileCache_}getOrCreateTile(e,t,n,r){let o=this.tileCache_,a=this.getLayer().getSource(),A=kg(a.getKey(),e,t,n),l;if(o.containsKey(A))l=o.get(A);else{if(l=a.getTile(e,t,n,r.pixelRatio,r.viewState.projection),!l)return null;o.set(A,l)}return l}getTile(e,t,n,r){let o=this.getOrCreateTile(e,t,n,r);return o||null}getData(e){let t=this.frameState;if(!t)return null;let n=this.getLayer(),r=ye(t.pixelToCoordinateTransform,e.slice()),o=n.getExtent();if(o&&!kt(o,r))return null;let s=t.viewState,a=n.getRenderSource(),A=a.getTileGridForProjection(s.projection),l=a.getTilePixelRatio(t.pixelRatio);for(let c=A.getZForResolution(s.resolution);c>=A.getMinZoom();--c){let h=A.getTileCoordForCoordAndZ(r,c),u=this.getTile(c,h[1],h[2],t);if(!u||u.getState()!==G.LOADED)continue;let f=A.getOrigin(c),g=_e(A.getTileSize(c)),m=A.getResolution(c),d;if(u instanceof ur||u instanceof is)d=u.getImage();else if(u instanceof kn){if(d=Mn(u.getData()),!d)continue}else continue;let E=Math.floor(l*((r[0]-f[0])/m-h[1]*g[0])),p=Math.floor(l*((f[1]-r[1])/m-h[2]*g[1])),_=Math.round(l*a.getGutterForProjection(s.projection));return this.getImageData(d,E+_,p+_)}return null}prepareFrame(e){this.renderedProjection?e.viewState.projection!==this.renderedProjection&&(this.tileCache_.clear(),this.renderedProjection=e.viewState.projection):this.renderedProjection=e.viewState.projection;let t=this.getLayer().getSource();if(!t)return!1;let n=t.getRevision();return this.renderedRevision_?this.renderedRevision_!==n&&(this.renderedRevision_=n,this.renderedSourceKey_===t.getKey()&&this.tileCache_.clear()):this.renderedRevision_=n,!0}enqueueTiles(e,t,n,r,o){let s=e.viewState,a=this.getLayer(),A=a.getRenderSource(),l=A.getTileGridForProjection(s.projection),c=z(A);c in e.wantedTiles||(e.wantedTiles[c]={});let h=e.wantedTiles[c],u=a.getMapInternal(),f=Math.max(n-o,l.getMinZoom(),l.getZForResolution(Math.min(a.getMaxResolution(),u?u.getView().getResolutionForZoom(Math.max(a.getMinZoom(),0)):l.getResolution(0)),A.zDirection)),g=s.rotation,m=g?Hs(s.center,s.resolution,g,e.size):void 0;for(let d=n;d>=f;--d){let E=l.getTileRangeForExtentAndZ(t,d,this.tempTileRange_),p=l.getResolution(d);for(let _=E.minX;_<=E.maxX;++_)for(let C=E.minY;C<=E.maxY;++C){if(g&&!l.tileCoordIntersectsViewport([d,_,C],m))continue;let I=this.getTile(d,_,C,e);if(!I||!Pg(r,I,d))continue;let x=I.getKey();if(h[x]=!0,I.getState()===G.IDLE&&!e.tileQueue.isKeyQueued(x)){let B=Pn(d,_,C,this.tempTileCoord_);e.tileQueue.enqueue([I,c,l.getTileCoordCenter(B),p])}}}}findStaleTile_(e,t){let n=this.tileCache_,r=e[0],o=e[1],s=e[2],a=this.getStaleKeys();for(let A=0;A0&&setTimeout(()=>{this.enqueueTiles(e,Q,u-1,x,B-1)},0),!(u in x))return this.container;let w=z(this),v=e.time;for(let b of x[u]){let P=b.getState();if(P===G.EMPTY)continue;let N=b.tileCoord;if(P===G.LOADED&&b.getAlpha(w,v)===1){b.endTransition(w);continue}if(P!==G.ERROR&&(this.renderComplete=!1),this.findStaleTile_(N,x)){x1(x,b,u),e.animate=!0;continue}if(this.findAltTiles_(h,N,u+1,x))continue;let j=h.getMinZoom();for(let H=u-1;H>=j&&!this.findAltTiles_(h,N,H,x);--H);}let R=f/s*A/d,F=this.getRenderContext(e);Xe(this.tempTransform,E/2,p/2,R,R,0,-E/2,-p/2),n.extent&&this.clipUnrotated(F,e,_),c.getInterpolate()||(F.imageSmoothingEnabled=!1),this.preRender(F,e);let D=Object.keys(x).map(Number);D.sort(Lt);let S,k=[],L=[];for(let b=D.length-1;b>=0;--b){let P=D[b],N=c.getTilePixelSize(P,A,o),M=h.getResolution(P)/f,j=N[0]*M*R,H=N[1]*M*R,O=h.getTileCoordForCoordAndZ(ht(y),P),K=h.getTileCoordExtent(O),ie=ye(this.tempTransform,[d*(K[0]-y[0])/f,d*(y[3]-K[3])/f]),ge=d*c.getGutterForProjection(o);for(let Ee of x[P]){if(Ee.getState()!==G.LOADED)continue;let de=Ee.tileCoord,Pe=O[1]-de[1],tt=Math.round(ie[0]-(Pe-1)*j),xt=O[2]-de[2],Je=Math.round(ie[1]-(xt-1)*H),ve=Math.round(ie[0]-Pe*j),bt=Math.round(ie[1]-xt*H),un=tt-ve,wt=Je-bt,fn=D.length===1,Et=!1;S=[ve,bt,ve+un,bt,ve+un,bt+wt,ve,bt+wt];for(let fo=0,go=k.length;fo{let Y=z(c),M=N.wantedTiles[Y],j=M?Object.keys(M).length:0;this.updateCacheSize(j),this.tileCache_.expireCache()};e.postRenderFunctions.push(b)}return this.container}updateCacheSize(e){this.tileCache_.highWaterMark=Math.max(this.tileCache_.highWaterMark,e*2)}drawTile(e,t,n,r,o,s,a,A){let l;if(e instanceof kn){if(l=Mn(e.getData()),!l)throw new Error("Rendering array data is not yet supported")}else l=this.getTileImage(e);if(!l)return;let c=this.getRenderContext(t),h=z(this),u=t.layerStatesArray[t.layerIndex],f=u.opacity*(A?e.getAlpha(h,t.time):1),g=f!==c.globalAlpha;g&&(c.save(),c.globalAlpha=f),c.drawImage(l,a,a,l.width-2*a,l.height-2*a,n,r,o,s),g&&c.restore(),f!==u.opacity?t.animate=!0:A&&e.endTransition(h)}getImage(){let e=this.context;return e?e.canvas:null}getTileImage(e){return e.getImage()}updateUsedTiles(e,t,n){let r=z(t);r in e||(e[r]={}),e[r][n.getKey()]=!0}},w0=Ng;var La={PRELOAD:"preload",USE_INTERIM_TILES_ON_ERROR:"useInterimTilesOnError"};var Gg=class extends Ln{constructor(e){e=e||{};let t=Object.assign({},e),n=e.cacheSize;delete e.cacheSize,delete t.preload,delete t.useInterimTilesOnError,super(t),this.on,this.once,this.un,this.cacheSize_=n,this.setPreload(e.preload!==void 0?e.preload:0),this.setUseInterimTilesOnError(e.useInterimTilesOnError!==void 0?e.useInterimTilesOnError:!0)}getCacheSize(){return this.cacheSize_}getPreload(){return this.get(La.PRELOAD)}setPreload(e){this.set(La.PRELOAD,e)}getUseInterimTilesOnError(){return this.get(La.USE_INTERIM_TILES_ON_ERROR)}setUseInterimTilesOnError(e){this.set(La.USE_INTERIM_TILES_ON_ERROR,e)}getData(e){return super.getData(e)}},jl=Gg;var Og=class extends jl{constructor(e){super(e)}createRenderer(){return new w0(this,{cacheSize:this.getCacheSize()})}},Q0=Og;var Ug=class i{constructor(){this.globalCounter_=0,this.refToFeature_=new Map,this.uidToRef_=new Map,this.freeGlobalRef_=[],this.polygonBatch={entries:{},geometriesCount:0,verticesCount:0,ringsCount:0},this.pointBatch={entries:{},geometriesCount:0},this.lineStringBatch={entries:{},geometriesCount:0,verticesCount:0}}addFeatures(e,t){for(let n=0;n0?l[c-1]:null,g=f?f[f.length-1]:0,m=u[u.length-1];u=g>0?u.map(d=>d-g):u,this.addCoordinates_("Polygon",t.slice(g,m),u,r,o,s,a)}break}case"MultiLineString":{let l=n;for(let c=0,h=l.length;c0?l[c-1]:0;this.addCoordinates_("LineString",t.slice(u,l[c]),null,r,o,s,a)}break}case"MultiPoint":for(let l=0,c=t.length;l1){this.addCoordinates_("MultiPolygon",t,u,r,o,s,a);return}}this.polygonBatch.entries[o]||(this.polygonBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[],verticesCount:0,ringsCount:0,ringsVerticesCounts:[]})),A=t.length/s;let c=n.length,h=n.map((u,f,g)=>f>0?(u-g[f-1])/s:u/s);this.polygonBatch.verticesCount+=A,this.polygonBatch.ringsCount+=c,this.polygonBatch.geometriesCount++,this.polygonBatch.entries[o].flatCoordss.push(w1(t,s)),this.polygonBatch.entries[o].ringsVerticesCounts.push(h),this.polygonBatch.entries[o].verticesCount+=A,this.polygonBatch.entries[o].ringsCount+=c;for(let u=0,f=l.length;u0?l[u-1]:0;this.addCoordinates_("LinearRing",t.slice(g,l[u]),null,r,o,s,a)}break}case"Point":this.pointBatch.entries[o]||(this.pointBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[]})),this.pointBatch.geometriesCount++,this.pointBatch.entries[o].flatCoordss.push(t);break;case"LineString":case"LinearRing":this.lineStringBatch.entries[o]||(this.lineStringBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[],verticesCount:0})),A=t.length/s,this.lineStringBatch.verticesCount+=A,this.lineStringBatch.geometriesCount++,this.lineStringBatch.entries[o].flatCoordss.push(Q1(t,s,a)),this.lineStringBatch.entries[o].verticesCount+=A;break;default:}}addRefToEntry_(e,t){let n=this.uidToRef_.get(e),r=n||this.freeGlobalRef_.pop()||++this.globalCounter_;return t.ref=r,n||(this.refToFeature_.set(r,t.feature),this.uidToRef_.set(e,r)),t}removeRef_(e,t){if(!e)throw new Error("This feature has no ref: "+t);this.refToFeature_.delete(e),this.uidToRef_.delete(t),this.freeGlobalRef_.push(e)}changeFeature(e){if(!this.uidToRef_.get(z(e)))return;this.removeFeature(e);let t=e.getGeometry();t&&this.addGeometry_(t,e)}removeFeature(e){let t=this.clearFeatureEntryInPointBatch_(e);t=this.clearFeatureEntryInPolygonBatch_(e)||t,t=this.clearFeatureEntryInLineStringBatch_(e)||t,t&&this.removeRef_(t.ref,z(t.feature))}clear(){this.polygonBatch.entries={},this.polygonBatch.geometriesCount=0,this.polygonBatch.verticesCount=0,this.polygonBatch.ringsCount=0,this.lineStringBatch.entries={},this.lineStringBatch.geometriesCount=0,this.lineStringBatch.verticesCount=0,this.pointBatch.entries={},this.pointBatch.geometriesCount=0,this.globalCounter_=0,this.freeGlobalRef_=[],this.refToFeature_.clear(),this.uidToRef_.clear()}getFeatureFromRef(e){return this.refToFeature_.get(e)}isEmpty(){return this.globalCounter_===0}filter(e){let t=new i;t.globalCounter_=this.globalCounter_,t.uidToRef_=this.uidToRef_,t.refToFeature_=this.refToFeature_;let n=!0;for(let r of this.refToFeature_.values())e(r)&&(t.addFeature(r),n=!1);return n?new i:t}};function w1(i,e){return e===2?i:i.filter((t,n)=>n%e<2)}function Q1(i,e,t){return e===3&&t==="XYM"?i:e===4?i.filter((n,r)=>r%e!==2):e===3?i.map((n,r)=>r%e!==2?n:0):new Array(i.length*1.5).fill(0).map((n,r)=>r%3===2?0:i[Math.round(r/1.5)])}var S0=Ug;var Zr=34962,$r=34963,v0=35040,ns=35044,Ma=35048,T0=5121,D0=5123,b0=5125,Yg=5126,R0=["experimental-webgl","webgl","webkit-3d","moz-webgl"];function F0(i,e){e=Object.assign({preserveDrawingBuffer:!0,antialias:!SE},e);let t=R0.length;for(let n=0;nMath.max(r,Eu(i,o)),0);return t[e]=n,n}function Z_(i,e){let t=[],n=[],r=[],o=0,s=0,a=0,l=0;for(let A=0,c=e.length;A<=c;A+=2){let h=e[A];if(h===` +`||A===c){o=Math.max(o,s),r.push(s),s=0,a+=l,l=0;continue}let u=e[A+1]||i.font,f=Eu(u,h);t.push(f),s+=f;let g=k2(u);n.push(g),l=Math.max(l,g)}return{width:o,height:a,widths:t,heights:n,lineWidths:r}}function ex(i,e,t,n,r,o,s,a,l,A,c){i.save(),t!==1&&(i.globalAlpha===void 0?i.globalAlpha=h=>h.globalAlpha*=t:i.globalAlpha*=t),e&&i.transform.apply(i,e),n.contextInstructions?(i.translate(l,A),i.scale(c[0],c[1]),P2(n,i)):c[0]<0||c[1]<0?(i.translate(l,A),i.scale(c[0],c[1]),i.drawImage(n,r,o,s,a,0,0,s,a)):i.drawImage(n,r,o,s,a,l,A,s*c[0],a*c[1]),i.restore()}function P2(i,e){let t=i.contextInstructions;for(let n=0,r=t.length;nh*this.pixelRatio_),lineDashOffset:(s||on)*this.pixelRatio_,lineJoin:a!==void 0?a:vr,lineWidth:(l!==void 0?l:co)*this.pixelRatio_,miterLimit:A!==void 0?A:ao,strokeStyle:tn(n||lo)}}}setImageStyle(e){let t;if(!e||!(t=e.getSize())){this.image_=null;return}let n=e.getPixelRatio(this.pixelRatio_),r=e.getAnchor(),o=e.getOrigin();this.image_=e.getImage(this.pixelRatio_),this.imageAnchorX_=r[0]*n,this.imageAnchorY_=r[1]*n,this.imageHeight_=t[1]*n,this.imageOpacity_=e.getOpacity(),this.imageOriginX_=o[0],this.imageOriginY_=o[1],this.imageRotateWithView_=e.getRotateWithView(),this.imageRotation_=e.getRotation();let s=e.getScaleArray();this.imageScale_=[s[0]*this.pixelRatio_/n,s[1]*this.pixelRatio_/n],this.imageWidth_=t[0]*n}setTextStyle(e){if(!e)this.text_="";else{let t=e.getFill();if(!t)this.textFillState_=null;else{let f=t.getColor();this.textFillState_={fillStyle:tn(f||Kt)}}let n=e.getStroke();if(!n)this.textStrokeState_=null;else{let f=n.getColor(),g=n.getLineCap(),p=n.getLineDash(),d=n.getLineDashOffset(),I=n.getLineJoin(),m=n.getWidth(),C=n.getMiterLimit();this.textStrokeState_={lineCap:g!==void 0?g:wr,lineDash:p||rn,lineDashOffset:d||on,lineJoin:I!==void 0?I:vr,lineWidth:m!==void 0?m:co,miterLimit:C!==void 0?C:ao,strokeStyle:tn(f||lo)}}let r=e.getFont(),o=e.getOffsetX(),s=e.getOffsetY(),a=e.getRotateWithView(),l=e.getRotation(),A=e.getScaleArray(),c=e.getText(),h=e.getTextAlign(),u=e.getTextBaseline();this.textState_={font:r!==void 0?r:Iu,textAlign:h!==void 0?h:As,textBaseline:u!==void 0?u:Ks},this.text_=c!==void 0?Array.isArray(c)?c.reduce((f,g,p)=>f+=p%2?" ":g,""):c:"",this.textOffsetX_=o!==void 0?this.pixelRatio_*o:0,this.textOffsetY_=s!==void 0?this.pixelRatio_*s:0,this.textRotateWithView_=a!==void 0?a:!1,this.textRotation_=l!==void 0?l:0,this.textScale_=[this.pixelRatio_*A[0],this.pixelRatio_*A[1]]}}},tx=Fp;var N2=.5,ix={Point:H2,LineString:z2,Polygon:K2,MultiPoint:q2,MultiLineString:Y2,MultiPolygon:V2,GeometryCollection:U2,Circle:G2};function nx(i,e){return parseInt(W(i),10)-parseInt(W(e),10)}function XA(i,e){let t=Lp(i,e);return t*t}function Lp(i,e){return N2*i/e}function G2(i,e,t,n,r){let o=t.getFill(),s=t.getStroke();if(o||s){let l=i.getBuilder(t.getZIndex(),"Circle");l.setFillStrokeStyle(o,s),l.drawCircle(e,n,r)}let a=t.getText();if(a&&a.getText()){let l=i.getBuilder(t.getZIndex(),"Text");l.setTextStyle(a),l.drawText(e,n)}}function Za(i,e,t,n,r,o,s,a){let l=[],A=t.getImage();if(A){let u=!0,f=A.getImageState();f==ie.LOADED||f==ie.ERROR?u=!1:f==ie.IDLE&&A.load(),u&&l.push(A.ready())}let c=t.getFill();c&&c.loading()&&l.push(c.ready());let h=l.length>0;return h&&Promise.all(l).then(()=>r(null)),O2(i,e,t,n,o,s,a),h}function O2(i,e,t,n,r,o,s){let a=t.getGeometryFunction()(e);if(!a)return;let l=a.simplifyTransformed(n,r);if(t.getRenderer())rx(i,l,t,e,s);else{let c=ix[l.getType()];c(i,l,t,e,s,o)}}function rx(i,e,t,n,r){if(e.getType()=="GeometryCollection"){let s=e.getGeometries();for(let a=0,l=s.length;a=200&&a.status<300){let A=e.getType();try{let c;A=="text"||A=="json"?c=a.responseText:A=="xml"?c=a.responseXML||a.responseText:A=="arraybuffer"&&(c=a.response),c?o(e.readFeatures(c,{extent:t,featureProjection:r}),e.readProjection(c)):s()}catch{s()}}else s()},a.onerror=s,a.send()}function kp(i,e){return function(t,n,r,o,s){Mp(i,e,t,n,r,(a,l)=>{this.addFeatures(a),o!==void 0&&o(a)},()=>{this.changed(),s!==void 0&&s()})}}function ox(i,e){return[[-1/0,-1/0,1/0,1/0]]}function Cu(i,e,t,n){let r=[],o=ot();for(let s=0,a=t.length;s=n[0]||e[1]<=n[1]&&e[3]>=n[1]?!0:Da(e,this.intersectsCoordinate.bind(this))}return!1}setCenter(e){let t=this.stride,n=this.flatCoordinates[t]-this.flatCoordinates[0],r=e.slice();r[t]=r[0]+n;for(let o=1;oe.clone())}var Pi=Np;var Gp=class i extends Ii{constructor(e,t,n){if(super(),this.ends_=[],this.maxDelta_=-1,this.maxDeltaRevision_=-1,Array.isArray(e[0]))this.setCoordinates(e,t);else if(t!==void 0&&n)this.setFlatCoordinates(t,e),this.ends_=n;else{let r=e,o=[],s=[];for(let l=0,A=r.length;l{if(e===this.squaredTolerance_)return this.simplifiedGeometry_;this.simplifiedGeometry_=this.clone(),t&&this.simplifiedGeometry_.applyTransform(t);let n=this.simplifiedGeometry_.getFlatCoordinates(),r;switch(this.type_){case"LineString":n.length=Ys(n,0,this.simplifiedGeometry_.flatCoordinates_.length,this.simplifiedGeometry_.stride_,e,n,0),r=[n.length];break;case"MultiLineString":r=[],n.length=au(n,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,e,n,0,r);break;case"Polygon":r=[],n.length=MA(n,0,this.simplifiedGeometry_.ends_,this.simplifiedGeometry_.stride_,Math.sqrt(e),n,0,r);break;default:}return r&&(this.simplifiedGeometry_=new i(this.type_,n,r,2,this.properties_,this.id_)),this.squaredTolerance_=e,this.simplifiedGeometry_}),this}};jA.prototype.getFlatCoordinates=jA.prototype.getOrientedFlatCoordinates;var yi=jA;function _u(i,e,t=0,n=i.length-1,r=j2){for(;n>t;){if(n-t>600){let l=n-t+1,A=e-t+1,c=Math.log(l),h=.5*Math.exp(2*c/3),u=.5*Math.sqrt(c*h*(l-h)/l)*(A-l/2<0?-1:1),f=Math.max(t,Math.floor(e-A*h/l+u)),g=Math.min(n,Math.floor(e+(l-A)*h/l+u));_u(i,e,f,g,r)}let o=i[e],s=t,a=n;for(WA(i,t,e),r(i[n],o)>0&&WA(i,t,n);s0;)a--}r(i[t],o)===0?WA(i,t,a):(a++,WA(i,a,n)),a<=e&&(t=a+1),e<=a&&(n=a-1)}}function WA(i,e,t){let n=i[e];i[e]=i[t],i[t]=n}function j2(i,e){return ie?1:0}var ho=class{constructor(e=9){this._maxEntries=Math.max(4,e),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()}all(){return this._all(this.data,[])}search(e){let t=this.data,n=[];if(!Bu(e,t))return n;let r=this.toBBox,o=[];for(;t;){for(let s=0;s=0&&o[t].children.length>this._maxEntries;)this._split(o,t),t--;this._adjustParentBBoxes(r,o,t)}_split(e,t){let n=e[t],r=n.children.length,o=this._minEntries;this._chooseSplitAxis(n,o,r);let s=this._chooseSplitIndex(n,o,r),a=tl(n.children.splice(s,n.children.length-s));a.height=n.height,a.leaf=n.leaf,el(n,this.toBBox),el(a,this.toBBox),t?e[t-1].children.push(a):this._splitRoot(n,a)}_splitRoot(e,t){this.data=tl([e,t]),this.data.height=e.height+1,this.data.leaf=!1,el(this.data,this.toBBox)}_chooseSplitIndex(e,t,n){let r,o=1/0,s=1/0;for(let a=t;a<=n-t;a++){let l=JA(e,0,a,this.toBBox),A=JA(e,a,n,this.toBBox),c=eb(l,A),h=zp(l)+zp(A);c=t;A--){let c=e.children[A];$A(a,e.leaf?o(c):c),l+=xu(a)}return l}_adjustParentBBoxes(e,t,n){for(let r=n;r>=0;r--)$A(t[r],e)}_condense(e){for(let t=e.length-1,n;t>=0;t--)e[t].children.length===0?t>0?(n=e[t-1].children,n.splice(n.indexOf(e[t]),1)):this.clear():el(e[t],this.toBBox)}};function W2(i,e,t){if(!t)return e.indexOf(i);for(let n=0;n=i.minX&&e.maxY>=i.minY}function tl(i){return{children:i,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function lx(i,e,t,n,r){let o=[e,t];for(;o.length;){if(t=o.pop(),e=o.pop(),t-e<=n)continue;let s=e+Math.ceil((t-e)/n/2)*n;_u(i,s,e,t,r),o.push(e,s,s,t)}}var Vp=class{constructor(e){this.rbush_=new ho(e),this.items_={}}insert(e,t){let n={minX:e[0],minY:e[1],maxX:e[2],maxY:e[3],value:t};this.rbush_.insert(n),this.items_[W(t)]=n}load(e,t){let n=new Array(t.length);for(let r=0,o=t.length;ri):null}var wu=Hp;var Et={ADDFEATURE:"addfeature",CHANGEFEATURE:"changefeature",CLEAR:"clear",REMOVEFEATURE:"removefeature",FEATURESLOADSTART:"featuresloadstart",FEATURESLOADEND:"featuresloadend",FEATURESLOADERROR:"featuresloaderror"};var Sr=class extends Pe{constructor(e,t,n){super(e),this.feature=t,this.features=n}},qp=class extends wu{constructor(e){e=e||{},super({attributions:e.attributions,interpolate:!0,projection:void 0,state:"ready",wrapX:e.wrapX!==void 0?e.wrapX:!0}),this.on,this.once,this.un,this.loader_=eo,this.format_=e.format||null,this.overlaps_=e.overlaps===void 0?!0:e.overlaps,this.url_=e.url,e.loader!==void 0?this.loader_=e.loader:this.url_!==void 0&&(he(this.format_,"`format` must be set when `url` is set"),this.loader_=kp(this.url_,this.format_)),this.strategy_=e.strategy!==void 0?e.strategy:ox;let t=e.useSpatialIndex!==void 0?e.useSpatialIndex:!0;this.featuresRtree_=t?new Xs:null,this.loadedExtentsRtree_=new Xs,this.loadingExtentsCount_=0,this.nullGeometryFeatures_={},this.idIndex_={},this.uidIndex_={},this.featureChangeKeys_={},this.featuresCollection_=null;let n,r;Array.isArray(e.features)?r=e.features:e.features&&(n=e.features,r=n.getArray()),!t&&n===void 0&&(n=new bt(r)),r!==void 0&&this.addFeaturesInternal(r),n!==void 0&&this.bindFeaturesCollection_(n)}addFeature(e){this.addFeatureInternal(e),this.changed()}addFeatureInternal(e){let t=W(e);if(!this.addToIndex_(t,e)){this.featuresCollection_&&this.featuresCollection_.remove(e);return}this.setupChangeEvents_(t,e);let n=e.getGeometry();if(n){let r=n.getExtent();this.featuresRtree_&&this.featuresRtree_.insert(r,e)}else this.nullGeometryFeatures_[t]=e;this.dispatchEvent(new Sr(Et.ADDFEATURE,e))}setupChangeEvents_(e,t){t instanceof yi||(this.featureChangeKeys_[e]=[ee(t,K.CHANGE,this.handleFeatureChange_,this),ee(t,In.PROPERTYCHANGE,this.handleFeatureChange_,this)])}addToIndex_(e,t){let n=!0;if(t.getId()!==void 0){let r=String(t.getId());if(!(r in this.idIndex_))this.idIndex_[r]=t;else if(t instanceof yi){let o=this.idIndex_[r];o instanceof yi?Array.isArray(o)?o.push(t):this.idIndex_[r]=[o,t]:n=!1}else n=!1}return n&&(he(!(e in this.uidIndex_),"The passed `feature` was already added to the source"),this.uidIndex_[e]=t),n}addFeatures(e){this.addFeaturesInternal(e),this.changed()}addFeaturesInternal(e){let t=[],n=[],r=[];for(let o=0,s=e.length;o{t||(t=!0,this.addFeature(n.element),t=!1)}),e.addEventListener(pt.REMOVE,n=>{t||(t=!0,this.removeFeature(n.element),t=!1)}),this.featuresCollection_=e}clear(e){if(e){for(let n in this.featureChangeKeys_)this.featureChangeKeys_[n].forEach(ce);this.featuresCollection_||(this.featureChangeKeys_={},this.idIndex_={},this.uidIndex_={})}else if(this.featuresRtree_){this.featuresRtree_.forEach(n=>{this.removeFeatureInternal(n)});for(let n in this.nullGeometryFeatures_)this.removeFeatureInternal(this.nullGeometryFeatures_[n])}this.featuresCollection_&&this.featuresCollection_.clear(),this.featuresRtree_&&this.featuresRtree_.clear(),this.nullGeometryFeatures_={};let t=new Sr(Et.CLEAR);this.dispatchEvent(t),this.changed()}forEachFeature(e){if(this.featuresRtree_)return this.featuresRtree_.forEach(e);this.featuresCollection_&&this.featuresCollection_.forEach(e)}forEachFeatureAtCoordinateDirect(e,t){let n=[e[0],e[1],e[0],e[1]];return this.forEachFeatureInExtent(n,function(r){let o=r.getGeometry();if(o instanceof yi||o.intersectsCoordinate(e))return t(r)})}forEachFeatureInExtent(e,t){if(this.featuresRtree_)return this.featuresRtree_.forEachInExtent(e,t);this.featuresCollection_&&this.featuresCollection_.forEach(t)}forEachFeatureIntersectingExtent(e,t){return this.forEachFeatureInExtent(e,function(n){let r=n.getGeometry();if(r instanceof yi||r.intersectsExtent(e)){let o=t(n);if(o)return o}})}getFeaturesCollection(){return this.featuresCollection_}getFeatures(){let e;return this.featuresCollection_?e=this.featuresCollection_.getArray().slice(0):this.featuresRtree_&&(e=this.featuresRtree_.getAll(),Di(this.nullGeometryFeatures_)||Te(e,Object.values(this.nullGeometryFeatures_))),e}getFeaturesAtCoordinate(e){let t=[];return this.forEachFeatureAtCoordinateDirect(e,function(n){t.push(n)}),t}getFeaturesInExtent(e,t){if(this.featuresRtree_){if(!(t&&t.canWrapX()&&this.getWrapX()))return this.featuresRtree_.getInExtent(e);let r=La(e,t);return[].concat(...r.map(o=>this.featuresRtree_.getInExtent(o)))}return this.featuresCollection_?this.featuresCollection_.getArray().slice(0):[]}getClosestFeatureToCoordinate(e,t){let n=e[0],r=e[1],o=null,s=[NaN,NaN],a=1/0,l=[-1/0,-1/0,1/0,1/0];return t=t||bi,this.featuresRtree_.forEachInExtent(l,function(A){if(t(A)){let c=A.getGeometry(),h=a;if(a=c instanceof yi?0:c.closestPointXY(n,r,s,a),a{--this.loadingExtentsCount_,this.dispatchEvent(new Sr(Et.FEATURESLOADEND,void 0,c))},()=>{--this.loadingExtentsCount_,this.dispatchEvent(new Sr(Et.FEATURESLOADERROR))}),r.insert(l,{extent:l.slice()}))}this.loading=this.loader_.length<4?!1:this.loadingExtentsCount_>0}refresh(){this.clear(!0),this.loadedExtentsRtree_.clear(),super.refresh()}removeLoadedExtent(e){let t=this.loadedExtentsRtree_,n=t.forEachInExtent(e,function(r){if(Mi(r.extent,e))return r});n&&t.remove(n)}removeFeatures(e){let t=!1;for(let n=0,r=e.length;n{this.patternImage_=null}),t.getImageState()===ie.IDLE&&t.load(),t.getImageState()===ie.LOADING&&(this.patternImage_=t)}this.color_=e}getKey(){let e=this.getColor();return e?e instanceof CanvasPattern||e instanceof CanvasGradient?W(e):typeof e=="object"&&"src"in e?e.src+":"+e.offset:Nt(e).toString():""}loading(){return!!this.patternImage_}ready(){return this.patternImage_?this.patternImage_.ready():Promise.resolve()}},Ai=Kp;var Xp=class i{constructor(e){e=e||{},this.color_=e.color!==void 0?e.color:null,this.lineCap_=e.lineCap,this.lineDash_=e.lineDash!==void 0?e.lineDash:null,this.lineDashOffset_=e.lineDashOffset,this.lineJoin_=e.lineJoin,this.miterLimit_=e.miterLimit,this.width_=e.width}clone(){let e=this.getColor();return new i({color:Array.isArray(e)?e.slice():e||void 0,lineCap:this.getLineCap(),lineDash:this.getLineDash()?this.getLineDash().slice():void 0,lineDashOffset:this.getLineDashOffset(),lineJoin:this.getLineJoin(),miterLimit:this.getMiterLimit(),width:this.getWidth()})}getColor(){return this.color_}getLineCap(){return this.lineCap_}getLineDash(){return this.lineDash_}getLineDashOffset(){return this.lineDashOffset_}getLineJoin(){return this.lineJoin_}getMiterLimit(){return this.miterLimit_}getWidth(){return this.width_}setColor(e){this.color_=e}setLineCap(e){this.lineCap_=e}setLineDash(e){this.lineDash_=e}setLineDashOffset(e){this.lineDashOffset_=e}setLineJoin(e){this.lineJoin_=e}setMiterLimit(e){this.miterLimit_=e}setWidth(e){this.width_=e}},_i=Xp;function jp(i){return i[0]>0&&i[1]>0}function cx(i,e,t){return t===void 0&&(t=[0,0]),t[0]=i[0]*e+.5|0,t[1]=i[1]*e+.5|0,t}function Fe(i,e){return Array.isArray(i)?i:(e===void 0?e=[i,i]:(e[0]=i,e[1]=i),e)}var Wp=class i{constructor(e){this.opacity_=e.opacity,this.rotateWithView_=e.rotateWithView,this.rotation_=e.rotation,this.scale_=e.scale,this.scaleArray_=Fe(e.scale),this.displacement_=e.displacement,this.declutterMode_=e.declutterMode}clone(){let e=this.getScale();return new i({opacity:this.getOpacity(),scale:Array.isArray(e)?e.slice():e,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getOpacity(){return this.opacity_}getRotateWithView(){return this.rotateWithView_}getRotation(){return this.rotation_}getScale(){return this.scale_}getScaleArray(){return this.scaleArray_}getDisplacement(){return this.displacement_}getDeclutterMode(){return this.declutterMode_}getAnchor(){return ne()}getImage(e){return ne()}getHitDetectionImage(){return ne()}getPixelRatio(e){return 1}getImageState(){return ne()}getImageSize(){return ne()}getOrigin(){return ne()}getSize(){return ne()}setDisplacement(e){this.displacement_=e}setOpacity(e){this.opacity_=e}setRotateWithView(e){this.rotateWithView_=e}setRotation(e){this.rotation_=e}setScale(e){this.scale_=e,this.scaleArray_=Fe(e)}listenImageChange(e){ne()}load(){ne()}unlistenImageChange(e){ne()}ready(){return Promise.resolve()}},vu=Wp;var Jp=class i extends vu{constructor(e){super({opacity:1,rotateWithView:e.rotateWithView!==void 0?e.rotateWithView:!1,rotation:e.rotation!==void 0?e.rotation:0,scale:e.scale!==void 0?e.scale:1,displacement:e.displacement!==void 0?e.displacement:[0,0],declutterMode:e.declutterMode}),this.hitDetectionCanvas_=null,this.fill_=e.fill!==void 0?e.fill:null,this.origin_=[0,0],this.points_=e.points,this.radius=e.radius,this.radius2_=e.radius2,this.angle_=e.angle!==void 0?e.angle:0,this.stroke_=e.stroke!==void 0?e.stroke:null,this.size_,this.renderOptions_,this.imageState_=this.fill_&&this.fill_.loading()?ie.LOADING:ie.LOADED,this.imageState_===ie.LOADING&&this.ready().then(()=>this.imageState_=ie.LOADED),this.render()}clone(){let e=this.getScale(),t=new i({fill:this.getFill()?this.getFill().clone():void 0,points:this.getPoints(),radius:this.getRadius(),radius2:this.getRadius2(),angle:this.getAngle(),stroke:this.getStroke()?this.getStroke().clone():void 0,rotation:this.getRotation(),rotateWithView:this.getRotateWithView(),scale:Array.isArray(e)?e.slice():e,displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()});return t.setOpacity(this.getOpacity()),t}getAnchor(){let e=this.size_,t=this.getDisplacement(),n=this.getScaleArray();return[e[0]/2-t[0]/n[0],e[1]/2+t[1]/n[1]]}getAngle(){return this.angle_}getFill(){return this.fill_}setFill(e){this.fill_=e,this.render()}getHitDetectionImage(){return this.hitDetectionCanvas_||(this.hitDetectionCanvas_=this.createHitDetectionCanvas_(this.renderOptions_)),this.hitDetectionCanvas_}getImage(e){let t=this.fill_?.getKey(),n=`${e},${this.angle_},${this.radius},${this.radius2_},${this.points_},${t}`+Object.values(this.renderOptions_).join(","),r=Ci.get(n,null,null)?.getImage(1);if(!r){let o=this.renderOptions_,s=Math.ceil(o.size*e),a=Re(s,s);this.draw_(o,a,e),r=a.canvas,Ci.set(n,null,null,new X_(r,void 0,null,ie.LOADED,null))}return r}getPixelRatio(e){return e}getImageSize(){return this.size_}getImageState(){return this.imageState_}getOrigin(){return this.origin_}getPoints(){return this.points_}getRadius(){return this.radius}getRadius2(){return this.radius2_}getSize(){return this.size_}getStroke(){return this.stroke_}setStroke(e){this.stroke_=e,this.render()}listenImageChange(e){}load(){}unlistenImageChange(e){}calculateLineJoinSize_(e,t,n){if(t===0||this.points_===1/0||e!=="bevel"&&e!=="miter")return t;let r=this.radius,o=this.radius2_===void 0?r:this.radius2_;if(rl&&(this.instructions.push([ae.CUSTOM,l,c,e,n,zn,o]),this.hitDetectionInstructions.push([ae.CUSTOM,l,c,e,r||n,zn,o]));break;case"Point":A=e.getFlatCoordinates(),this.coordinates.push(A[0],A[1]),c=this.coordinates.length,this.instructions.push([ae.CUSTOM,l,c,e,n,void 0,o]),this.hitDetectionInstructions.push([ae.CUSTOM,l,c,e,r||n,void 0,o]);break;default:}this.endGeometry(t)}beginGeometry(e,t,n){this.beginGeometryInstruction1_=[ae.BEGIN_GEOMETRY,t,0,e,n],this.instructions.push(this.beginGeometryInstruction1_),this.beginGeometryInstruction2_=[ae.BEGIN_GEOMETRY,t,0,e,n],this.hitDetectionInstructions.push(this.beginGeometryInstruction2_)}finish(){return{instructions:this.instructions,hitDetectionInstructions:this.hitDetectionInstructions,coordinates:this.coordinates}}reverseHitDetectionInstructions(){let e=this.hitDetectionInstructions;e.reverse();let t,n=e.length,r,o,s=-1;for(t=0;tthis.maxLineWidth&&(this.maxLineWidth=t.lineWidth,this.bufferedMaxExtent_=null)}else t.strokeStyle=void 0,t.lineCap=void 0,t.lineDash=null,t.lineDashOffset=void 0,t.lineJoin=void 0,t.lineWidth=void 0,t.miterLimit=void 0;return t}setFillStrokeStyle(e,t){let n=this.state;this.fillStyleToState(e,n),this.strokeStyleToState(t,n)}createFill(e){let t=e.fillStyle,n=[ae.SET_FILL_STYLE,t];return typeof t!="string"&&n.push(e.fillPatternScale),n}applyStroke(e){this.instructions.push(this.createStroke(e))}createStroke(e){return[ae.SET_STROKE_STYLE,e.strokeStyle,e.lineWidth*this.pixelRatio,e.lineCap,e.lineJoin,e.miterLimit,e.lineDash?this.applyPixelRatio(e.lineDash):null,e.lineDashOffset*this.pixelRatio]}updateFillStyle(e,t){let n=e.fillStyle;(typeof n!="string"||e.currentFillStyle!=n)&&(n!==void 0&&this.instructions.push(t.call(this,e)),e.currentFillStyle=n)}updateStrokeStyle(e,t){let n=e.strokeStyle,r=e.lineCap,o=e.lineDash,s=e.lineDashOffset,a=e.lineJoin,l=e.lineWidth,A=e.miterLimit;(e.currentStrokeStyle!=n||e.currentLineCap!=r||o!=e.currentLineDash&&!Mt(e.currentLineDash,o)||e.currentLineDashOffset!=s||e.currentLineJoin!=a||e.currentLineWidth!=l||e.currentMiterLimit!=A)&&(n!==void 0&&t.call(this,e),e.currentStrokeStyle=n,e.currentLineCap=r,e.currentLineDash=o,e.currentLineDashOffset=s,e.currentLineJoin=a,e.currentLineWidth=l,e.currentMiterLimit=A)}endGeometry(e){this.beginGeometryInstruction1_[2]=this.instructions.length,this.beginGeometryInstruction1_=null,this.beginGeometryInstruction2_[2]=this.hitDetectionInstructions.length,this.beginGeometryInstruction2_=null;let t=[ae.END_GEOMETRY,e];this.instructions.push(t),this.hitDetectionInstructions.push(t)}getBufferedMaxExtent(){if(!this.bufferedMaxExtent_&&(this.bufferedMaxExtent_=Yh(this.maxExtent),this.maxLineWidth>0)){let e=this.resolution*(this.maxLineWidth+1)/2;Vt(this.bufferedMaxExtent_,e,this.bufferedMaxExtent_)}return this.bufferedMaxExtent_}},Rr=nm;var rm=class extends Rr{constructor(e,t,n,r){super(e,t,n,r),this.hitDetectionImage_=null,this.image_=null,this.imagePixelRatio_=void 0,this.anchorX_=void 0,this.anchorY_=void 0,this.height_=void 0,this.opacity_=void 0,this.originX_=void 0,this.originY_=void 0,this.rotateWithView_=void 0,this.rotation_=void 0,this.scale_=void 0,this.width_=void 0,this.declutterMode_=void 0,this.declutterImageWithText_=void 0}drawPoint(e,t,n){if(!this.image_||this.maxExtent&&!di(this.maxExtent,e.getFlatCoordinates()))return;this.beginGeometry(e,t,n);let r=e.getFlatCoordinates(),o=e.getStride(),s=this.coordinates.length,a=this.appendFlatPointCoordinates(r,o);this.instructions.push([ae.DRAW_IMAGE,s,a,this.image_,this.anchorX_*this.imagePixelRatio_,this.anchorY_*this.imagePixelRatio_,Math.ceil(this.height_*this.imagePixelRatio_),this.opacity_,this.originX_*this.imagePixelRatio_,this.originY_*this.imagePixelRatio_,this.rotateWithView_,this.rotation_,[this.scale_[0]*this.pixelRatio/this.imagePixelRatio_,this.scale_[1]*this.pixelRatio/this.imagePixelRatio_],Math.ceil(this.width_*this.imagePixelRatio_),this.declutterMode_,this.declutterImageWithText_]),this.hitDetectionInstructions.push([ae.DRAW_IMAGE,s,a,this.hitDetectionImage_,this.anchorX_,this.anchorY_,this.height_,1,this.originX_,this.originY_,this.rotateWithView_,this.rotation_,this.scale_,this.width_,this.declutterMode_,this.declutterImageWithText_]),this.endGeometry(t)}drawMultiPoint(e,t,n){if(!this.image_)return;this.beginGeometry(e,t,n);let r=e.getFlatCoordinates(),o=[];for(let l=0,A=r.length;l=i){let g=(i-a+f)/f,p=ai(A,h,g),d=ai(c,u,g);l.push(p,d),o.push(l),l=[p,d],a==i&&(s+=r),a=0}else if(a0&&o.push(l),o}function px(i,e,t,n,r){let o=t,s=t,a=0,l=0,A=t,c,h,u,f,g,p,d,I,m,C;for(h=t;hi&&(l>a&&(a=l,o=A,s=h),l=0,A=h-r)),u=f,d=m,I=C),g=_,p=y}return l+=f,l>a?[A,h]:[o,s]}var ic={left:0,center:.5,right:1,top:0,middle:.5,hanging:.2,alphabetic:.8,ideographic:.8,bottom:1},lm=class extends Rr{constructor(e,t,n,r){super(e,t,n,r),this.labels_=null,this.text_="",this.textOffsetX_=0,this.textOffsetY_=0,this.textRotateWithView_=void 0,this.textKeepUpright_=void 0,this.textRotation_=0,this.textFillState_=null,this.fillStates={},this.fillStates[Kt]={fillStyle:Kt},this.textStrokeState_=null,this.strokeStates={},this.textState_={},this.textStates={},this.textKey_="",this.fillKey_="",this.strokeKey_="",this.declutterMode_=void 0,this.declutterImageWithText_=void 0}finish(){let e=super.finish();return e.textStates=this.textStates,e.fillStates=this.fillStates,e.strokeStates=this.strokeStates,e}drawText(e,t,n){let r=this.textFillState_,o=this.textStrokeState_,s=this.textState_;if(this.text_===""||!s||!r&&!o)return;let a=this.coordinates,l=a.length,A=e.getType(),c=null,h=e.getStride();if(s.placement==="line"&&(A=="LineString"||A=="MultiLineString"||A=="Polygon"||A=="MultiPolygon")){if(!Qe(this.maxExtent,e.getExtent()))return;let u;if(c=e.getFlatCoordinates(),A=="LineString")u=[c.length];else if(A=="MultiLineString")u=e.getEnds();else if(A=="Polygon")u=e.getEnds().slice(0,1);else if(A=="MultiPolygon"){let d=e.getEndss();u=[];for(let I=0,m=d.length;I{let T=a[(_+w)*2]===c[w*h]&&a[(_+w)*2+1]===c[w*h+1];return T||--_,T})}this.saveTextStates_();let g=s.backgroundFill?this.createFill(this.fillStyleToState(s.backgroundFill)):null,p=s.backgroundStroke?this.createStroke(this.strokeStyleToState(s.backgroundStroke)):null;this.beginGeometry(e,t,n);let d=s.padding;if(d!=Ao&&(s.scale[0]<0||s.scale[1]<0)){let _=s.padding[0],y=s.padding[1],w=s.padding[2],T=s.padding[3];s.scale[0]<0&&(y=-y,T=-T),s.scale[1]<0&&(_=-_,w=-w),d=[_,y,w,T]}let I=this.pixelRatio;this.instructions.push([ae.DRAW_IMAGE,l,f,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[1,1],NaN,this.declutterMode_,this.declutterImageWithText_,d==Ao?Ao:d.map(function(_){return _*I}),g,p,this.text_,this.textKey_,this.strokeKey_,this.fillKey_,this.textOffsetX_,this.textOffsetY_,u]);let m=1/I,C=g?g.slice(0):null;C&&(C[1]=Kt),this.hitDetectionInstructions.push([ae.DRAW_IMAGE,l,f,null,NaN,NaN,NaN,1,0,0,this.textRotateWithView_,this.textRotation_,[m,m],NaN,this.declutterMode_,this.declutterImageWithText_,d,C,p,this.text_,this.textKey_,this.strokeKey_,this.fillKey_?Kt:this.fillKey_,this.textOffsetX_,this.textOffsetY_,u]),this.endGeometry(t)}}saveTextStates_(){let e=this.textStrokeState_,t=this.textState_,n=this.textFillState_,r=this.strokeKey_;e&&(r in this.strokeStates||(this.strokeStates[r]={strokeStyle:e.strokeStyle,lineCap:e.lineCap,lineDashOffset:e.lineDashOffset,lineWidth:e.lineWidth,lineJoin:e.lineJoin,miterLimit:e.miterLimit,lineDash:e.lineDash}));let o=this.textKey_;o in this.textStates||(this.textStates[o]={font:t.font,textAlign:t.textAlign||As,justify:t.justify,textBaseline:t.textBaseline||Ks,scale:t.scale});let s=this.fillKey_;n&&(s in this.fillStates||(this.fillStates[s]={fillStyle:n.fillStyle}))}drawChars_(e,t){let n=this.textStrokeState_,r=this.textState_,o=this.strokeKey_,s=this.textKey_,a=this.fillKey_;this.saveTextStates_();let l=this.pixelRatio,A=ic[r.textBaseline],c=this.textOffsetY_*l,h=this.text_,u=n?n.lineWidth*Math.abs(r.scale[0])/2:0;this.instructions.push([ae.DRAW_CHARS,e,t,A,r.overflow,a,r.maxAngle,l,c,o,u*l,h,s,1,this.declutterMode_,this.textKeepUpright_]),this.hitDetectionInstructions.push([ae.DRAW_CHARS,e,t,A,r.overflow,a&&Kt,r.maxAngle,l,c,o,u*l,h,s,1/l,this.declutterMode_,this.textKeepUpright_])}setTextStyle(e,t){let n,r,o;if(!e)this.text_="";else{let s=e.getFill();s?(r=this.textFillState_,r||(r={},this.textFillState_=r),r.fillStyle=tn(s.getColor()||Kt)):(r=null,this.textFillState_=r);let a=e.getStroke();if(!a)o=null,this.textStrokeState_=o;else{o=this.textStrokeState_,o||(o={},this.textStrokeState_=o);let p=a.getLineDash(),d=a.getLineDashOffset(),I=a.getWidth(),m=a.getMiterLimit();o.lineCap=a.getLineCap()||wr,o.lineDash=p?p.slice():rn,o.lineDashOffset=d===void 0?on:d,o.lineJoin=a.getLineJoin()||vr,o.lineWidth=I===void 0?co:I,o.miterLimit=m===void 0?ao:m,o.strokeStyle=tn(a.getColor()||lo)}n=this.textState_;let l=e.getFont()||Iu;J_(l);let A=e.getScaleArray();n.overflow=e.getOverflow(),n.font=l,n.maxAngle=e.getMaxAngle(),n.placement=e.getPlacement(),n.textAlign=e.getTextAlign(),n.repeat=e.getRepeat(),n.justify=e.getJustify(),n.textBaseline=e.getTextBaseline()||Ks,n.backgroundFill=e.getBackgroundFill(),n.backgroundStroke=e.getBackgroundStroke(),n.padding=e.getPadding()||Ao,n.scale=A===void 0?[1,1]:A;let c=e.getOffsetX(),h=e.getOffsetY(),u=e.getRotateWithView(),f=e.getKeepUpright(),g=e.getRotation();this.text_=e.getText()||"",this.textOffsetX_=c===void 0?0:c,this.textOffsetY_=h===void 0?0:h,this.textRotateWithView_=u===void 0?!1:u,this.textKeepUpright_=f===void 0?!0:f,this.textRotation_=g===void 0?0:g,this.strokeKey_=o?(typeof o.strokeStyle=="string"?o.strokeStyle:W(o.strokeStyle))+o.lineCap+o.lineDashOffset+"|"+o.lineWidth+o.lineJoin+o.miterLimit+"["+o.lineDash.join()+"]":"",this.textKey_=n.font+n.scale+(n.textAlign||"?")+(n.repeat||"?")+(n.justify||"?")+(n.textBaseline||"?"),this.fillKey_=r&&r.fillStyle?typeof r.fillStyle=="string"?r.fillStyle:"|"+W(r.fillStyle):""}this.declutterMode_=e.getDeclutterMode(),this.declutterImageWithText_=t}},mx=lm;var ib={Circle:am,Default:Rr,Image:fx,LineString:gx,Polygon:am,Text:mx},Am=class{constructor(e,t,n,r){this.tolerance_=e,this.maxExtent_=t,this.pixelRatio_=r,this.resolution_=n,this.buildersByZIndex_={}}finish(){let e={};for(let t in this.buildersByZIndex_){e[t]=e[t]||{};let n=this.buildersByZIndex_[t];for(let r in n){let o=n[r].finish();e[t][r]=o}}return e}getBuilder(e,t){let n=e!==void 0?e.toString():"0",r=this.buildersByZIndex_[n];r===void 0&&(r={},this.buildersByZIndex_[n]=r);let o=r[t];if(o===void 0){let s=ib[t];o=new s(this.tolerance_,this.maxExtent_,this.resolution_,this.pixelRatio_),r[t]=o}return o}},Ru=Am;function Ex(i,e,t,n,r,o,s,a,l,A,c,h,u=!0){let f=i[e],g=i[e+1],p=0,d=0,I=0,m=0;function C(){p=f,d=g,e+=n,f=i[e],g=i[e+1],m+=I,I=Math.sqrt((f-p)*(f-p)+(g-d)*(g-d))}do C();while(eF[2]}else v=y>B;let D=Math.PI,Q=[],S=T+n===e;e=T,I=0,m=E,f=i[e],g=i[e+1];let b;if(S){C(),b=Math.atan2(g-d,f-p),v&&(b+=b>0?-D:D);let F=(B+y)/2,M=(R+w)/2;return Q[0]=[F,M,(x-o)/2,b,r],Q}r=r.replace(/\n/g," ");for(let F=0,M=r.length;F0?-D:D),b!==void 0){let z=k-b;if(z+=z>D?-2*D:z<-D?2*D:0,Math.abs(z)>s)return null}b=k;let P=F,U=0;for(;F{if(typeof ja()[t]=="function")return this.push_(t),this.pushMethodArgs_},set:(e,t,n)=>(this.push_(t,n),!0)})}push_(...e){let t=this.instructions_,n=this.zIndex+this.offset_;t[n]||(t[n]=[]),t[n].push(...e)}pushMethodArgs_=(...e)=>(this.push_(e),this);pushFunction(e){this.push_(e)}getContext(){return this.context_}draw(e){this.instructions_.forEach(t=>{for(let n=0,r=t.length;n0&&i.push(` +`,""),i.push(e,""),i}function rb(i,e,t){return t%2===0&&(i+=e),i}var um=class{constructor(e,t,n,r,o){this.overlaps=n,this.pixelRatio=t,this.resolution=e,this.alignAndScaleFill_,this.instructions=r.instructions,this.coordinates=r.coordinates,this.coordinateCache_={},this.renderedTransform_=Ce(),this.hitDetectionInstructions=r.hitDetectionInstructions,this.pixelCoordinates_=null,this.viewRotation_=0,this.fillStates=r.fillStates||{},this.strokeStates=r.strokeStates||{},this.textStates=r.textStates||{},this.widths_={},this.labels_={},this.zIndexContext_=o?new il:null}getZIndexContext(){return this.zIndexContext_}createLabel(e,t,n,r){let o=e+t+n+r;if(this.labels_[o])return this.labels_[o];let s=r?this.strokeStates[r]:null,a=n?this.fillStates[n]:null,l=this.textStates[t],A=this.pixelRatio,c=[l.scale[0]*A,l.scale[1]*A],h=l.justify?ic[l.justify]:hm(Array.isArray(e)?e[0]:e,l.textAlign||As),u=r&&s.lineWidth?s.lineWidth:0,f=Array.isArray(e)?e:String(e).split(` +`).reduce(nb,[]),{width:g,height:p,widths:d,heights:I,lineWidths:m}=Z_(l,f),C=g+u,_=[],y=(C+2)*c[0],w=(p+u)*c[1],T={width:y<0?Math.floor(y):Math.ceil(y),height:w<0?Math.floor(w):Math.ceil(w),contextInstructions:_};(c[0]!=1||c[1]!=1)&&_.push("scale",c),r&&(_.push("strokeStyle",s.strokeStyle),_.push("lineWidth",u),_.push("lineCap",s.lineCap),_.push("lineJoin",s.lineJoin),_.push("miterLimit",s.miterLimit),_.push("setLineDash",[s.lineDash]),_.push("lineDashOffset",s.lineDashOffset)),n&&_.push("fillStyle",a.fillStyle),_.push("textBaseline","middle"),_.push("textAlign","center");let E=.5-h,x=h*C+E*u,B=[],R=[],v=0,D=0,Q=0,S=0,b;for(let F=0,M=f.length;Fe?e-A:o,_=s+c>t?t-c:s,y=g[3]+C*u[0]+g[1],w=g[0]+_*u[1]+g[2],T=I-g[3],E=m-g[0];(p||h!==0)&&(hs[0]=T,us[0]=T,hs[1]=E,fo[1]=E,fo[0]=T+y,go[0]=fo[0],go[1]=E+w,us[1]=go[1]);let x;return h!==0?(x=ct(Ce(),n,r,1,1,h,-n,-r),be(x,hs),be(x,fo),be(x,go),be(x,us),Li(Math.min(hs[0],fo[0],go[0],us[0]),Math.min(hs[1],fo[1],go[1],us[1]),Math.max(hs[0],fo[0],go[0],us[0]),Math.max(hs[1],fo[1],go[1],us[1]),nl)):Li(Math.min(T,T+y),Math.min(E,E+w),Math.max(T,T+y),Math.max(E,E+w),nl),f&&(I=Math.round(I),m=Math.round(m)),{drawImageX:I,drawImageY:m,drawImageW:C,drawImageH:_,originX:A,originY:c,declutterBox:{minX:nl[0],minY:nl[1],maxX:nl[2],maxY:nl[3],value:d},canvasTransform:x,scale:u}}replayImageOrLabel_(e,t,n,r,o,s,a){let l=!!(s||a),A=r.declutterBox,c=a?a[2]*r.scale[0]/2:0;return A.minX-c<=t[0]&&A.maxX+c>=0&&A.minY-c<=t[1]&&A.maxY+c>=0&&(l&&this.replayTextBackground_(e,hs,fo,go,us,s,a),ex(e,r.canvasTransform,o,n,r.originX,r.originY,r.drawImageW,r.drawImageH,r.drawImageX,r.drawImageY,r.scale)),!0}fill_(e){let t=this.alignAndScaleFill_;if(t){let n=be(this.renderedTransform_,[0,0]),r=512*this.pixelRatio;e.save(),e.translate(n[0]%r,n[1]%r),t!==1&&e.scale(t,t),e.rotate(this.viewRotation_)}e.fill(),t&&e.restore()}setStrokeStyle_(e,t){e.strokeStyle=t[1],e.lineWidth=t[2],e.lineCap=t[3],e.lineJoin=t[4],e.miterLimit=t[5],e.lineDashOffset=t[7],e.setLineDash(t[6])}drawLabelWithPointPlacement_(e,t,n,r){let o=this.textStates[t],s=this.createLabel(e,t,r,n),a=this.strokeStates[n],l=this.pixelRatio,A=hm(Array.isArray(e)?e[0]:e,o.textAlign||As),c=ic[o.textBaseline||Ks],h=a&&a.lineWidth?a.lineWidth:0,u=s.width/l-2*o.scale[0],f=A*u+2*(.5-A)*h,g=c*s.height/l+2*(.5-c)*h;return{label:s,anchorX:f,anchorY:g}}execute_(e,t,n,r,o,s,a,l){let A=this.zIndexContext_,c;this.pixelCoordinates_&&Mt(n,this.renderedTransform_)?c=this.pixelCoordinates_:(this.pixelCoordinates_||(this.pixelCoordinates_=[]),c=li(this.coordinates,0,this.coordinates.length,2,n,this.pixelCoordinates_),Us(this.renderedTransform_,n));let h=0,u=r.length,f=0,g,p,d,I,m,C,_,y,w,T,E,x,B,R=0,v=0,D=this.coordinateCache_,Q=this.viewRotation_,S=Math.round(Math.atan2(-n[1],n[0])*1e12)/1e12,b={context:e,pixelRatio:this.pixelRatio,resolution:this.resolution,rotation:Q},F=this.instructions!=r||this.overlaps?0:200,M,k,P,U;for(;hF&&(this.fill_(e),R=0),v>F&&(e.stroke(),v=0),!R&&!v&&(e.beginPath(),m=NaN,C=NaN),++h;break;case ae.CIRCLE:f=N[1];let X=c[f],z=c[f+1],q=c[f+2],Z=c[f+3],ge=q-X,me=Z-z,de=Math.sqrt(ge*ge+me*me);e.moveTo(X+de,z),e.arc(X,z,de,0,2*Math.PI,!0),++h;break;case ae.CLOSE_PATH:e.closePath(),++h;break;case ae.CUSTOM:f=N[1],g=N[2];let ve=N[3],Ve=N[4],Me=N[5];b.geometry=ve,b.feature=M,h in D||(D[h]=[]);let Se=D[h];Me?Me(c,f,g,2,Se):(Se[0]=c[f],Se[1]=c[f+1],Se.length=2),A&&(A.zIndex=N[6]),Ve(Se,b),++h;break;case ae.DRAW_IMAGE:f=N[1],g=N[2],w=N[3],p=N[4],d=N[5];let Ae=N[6],ri=N[7],gn=N[8],Yt=N[9],or=N[10],$t=N[11],Xr=N[12],Yo=N[13];I=N[14]||"declutter";let Lt=N[15];if(!w&&N.length>=20){T=N[19],E=N[20],x=N[21],B=N[22];let Hi=this.drawLabelWithPointPlacement_(T,E,x,B);w=Hi.label,N[3]=w;let $r=N[23];p=(Hi.anchorX-$r)*this.pixelRatio,N[4]=p;let Ri=N[24];d=(Hi.anchorY-Ri)*this.pixelRatio,N[5]=d,Ae=w.height,N[6]=Ae,Yo=w.width,N[13]=Yo}let De;N.length>25&&(De=N[25]);let xt,se,Ms;N.length>17?(xt=N[16],se=N[17],Ms=N[18]):(xt=Ao,se=null,Ms=null),or&&S?$t+=Q:!or&&!S&&($t-=Q);let dn=0;for(;f!rl.includes(i)),gm=class{constructor(e,t,n,r,o,s,a){this.maxExtent_=e,this.overlaps_=r,this.pixelRatio_=n,this.resolution_=t,this.renderBuffer_=s,this.executorsByZIndex_={},this.hitDetectionContext_=null,this.hitDetectionTransform_=Ce(),this.renderedContext_=null,this.deferredZIndexContexts_={},this.createExecutors_(o,a)}clip(e,t){let n=this.getClipCoords(t);e.beginPath(),e.moveTo(n[0],n[1]),e.lineTo(n[2],n[3]),e.lineTo(n[4],n[5]),e.lineTo(n[6],n[7]),e.clip()}createExecutors_(e,t){for(let n in e){let r=this.executorsByZIndex_[n];r===void 0&&(r={},this.executorsByZIndex_[n]=r);let o=e[n];for(let s in o){let a=o[s];r[s]=new yx(this.resolution_,this.pixelRatio_,this.overlaps_,a,t)}}}hasExecutors(e){for(let t in this.executorsByZIndex_){let n=this.executorsByZIndex_[t];for(let r=0,o=e.length;r0){if(!s||T==="none"||f!=="Image"&&f!=="Text"||s.includes(y)){let R=(u[x]-3)/4,v=r-R%a,D=r-(R/a|0),Q=o(y,w,v*v+D*D);if(Q)return Q}c.clearRect(0,0,a,a);break}}let p=Object.keys(this.executorsByZIndex_).map(Number);p.sort(gi);let d,I,m,C,_;for(d=p.length-1;d>=0;--d){let y=p[d].toString();for(m=this.executorsByZIndex_[y],I=Ws.length-1;I>=0;--I)if(f=Ws[I],C=m[f],C!==void 0&&(_=C.executeHitDetection(c,l,n,g,h),_))return _}}getClipCoords(e){let t=this.maxExtent_;if(!t)return null;let n=t[0],r=t[1],o=t[2],s=t[3],a=[n,r,n,s,o,s,o,r];return li(a,0,8,2,e,a),a}isEmpty(){return Di(this.executorsByZIndex_)}execute(e,t,n,r,o,s,a){let l=Object.keys(this.executorsByZIndex_).map(Number);l.sort(a?Nh:gi),s=s||Ws;let A=Ws.length;for(let c=0,h=l.length;cI.execute(y,t,n,r,o,a)),_&&C.restore(),m){m.offset();let y=l[c]*A+g;this.deferredZIndexContexts_[y]||(this.deferredZIndexContexts_[y]=[]),this.deferredZIndexContexts_[y].push(m)}}}}this.renderedContext_=e}getDeferredZIndexContexts(){return this.deferredZIndexContexts_}getRenderedContext(){return this.renderedContext_}renderDeferred(){let e=this.deferredZIndexContexts_,t=Object.keys(e).map(Number).sort(gi);for(let n=0,r=t.length;n{o.draw(this.renderedContext_),o.clear()}),e[t[n]].length=0}},fm={};function ob(i){if(fm[i]!==void 0)return fm[i];let e=i*2+1,t=i*i,n=new Array(t+1);for(let o=0;o<=i;++o)for(let s=0;s<=i;++s){let a=o*o+s*s;if(a>t)break;let l=n[a];l||(l=[],n[a]=l),l.push(((i+o)*e+(i+s))*4+3),o>0&&l.push(((i-o)*e+(i+s))*4+3),s>0&&(l.push(((i+o)*e+(i-s))*4+3),o>0&&l.push(((i-o)*e+(i-s))*4+3))}let r=[];for(let o=0,s=n.length;o0,"A defined and non-empty `src` or `image` must be provided"),he(!((e.width!==void 0||e.height!==void 0)&&e.scale!==void 0),"`width` or `height` cannot be provided together with `scale`");let l;if(e.src!==void 0?l=ie.IDLE:s!==void 0&&("complete"in s?s.complete?l=s.src?ie.LOADED:ie.IDLE:l=ie.LOADING:l=ie.LOADED),this.color_=e.color!==void 0?Nt(e.color):null,this.iconImage_=Wa(s,a,this.crossOrigin_,l,this.color_),this.offset_=e.offset!==void 0?e.offset:[0,0],this.offsetOrigin_=e.offsetOrigin!==void 0?e.offsetOrigin:"top-left",this.origin_=null,this.size_=e.size!==void 0?e.size:null,this.initialOptions_,e.width!==void 0||e.height!==void 0){let A,c;if(e.size)[A,c]=e.size;else{let h=this.getImage(1);if(h.width&&h.height)A=h.width,c=h.height;else if(h instanceof HTMLImageElement){this.initialOptions_=e;let u=()=>{if(this.unlistenImageChange(u),!this.initialOptions_)return;let f=this.iconImage_.getSize();this.setScale(xx(f[0],f[1],e.width,e.height))};this.listenImageChange(u);return}}A!==void 0&&this.setScale(xx(A,c,e.width,e.height))}}clone(){let e,t,n;return this.initialOptions_?(t=this.initialOptions_.width,n=this.initialOptions_.height):(e=this.getScale(),e=Array.isArray(e)?e.slice():e),new i({anchor:this.anchor_.slice(),anchorOrigin:this.anchorOrigin_,anchorXUnits:this.anchorXUnits_,anchorYUnits:this.anchorYUnits_,color:this.color_&&this.color_.slice?this.color_.slice():this.color_||void 0,crossOrigin:this.crossOrigin_,offset:this.offset_.slice(),offsetOrigin:this.offsetOrigin_,opacity:this.getOpacity(),rotateWithView:this.getRotateWithView(),rotation:this.getRotation(),scale:e,width:t,height:n,size:this.size_!==null?this.size_.slice():void 0,src:this.getSrc(),displacement:this.getDisplacement().slice(),declutterMode:this.getDeclutterMode()})}getAnchor(){let e=this.normalizedAnchor_;if(!e){e=this.anchor_;let r=this.getSize();if(this.anchorXUnits_=="fraction"||this.anchorYUnits_=="fraction"){if(!r)return null;e=this.anchor_.slice(),this.anchorXUnits_=="fraction"&&(e[0]*=r[0]),this.anchorYUnits_=="fraction"&&(e[1]*=r[1])}if(this.anchorOrigin_!="top-left"){if(!r)return null;e===this.anchor_&&(e=this.anchor_.slice()),(this.anchorOrigin_=="top-right"||this.anchorOrigin_=="bottom-right")&&(e[0]=-e[0]+r[0]),(this.anchorOrigin_=="bottom-left"||this.anchorOrigin_=="bottom-right")&&(e[1]=-e[1]+r[1])}this.normalizedAnchor_=e}let t=this.getDisplacement(),n=this.getScaleArray();return[e[0]-t[0]/n[0],e[1]+t[1]/n[1]]}setAnchor(e){this.anchor_=e,this.normalizedAnchor_=null}getColor(){return this.color_}getImage(e){return this.iconImage_.getImage(e)}getPixelRatio(e){return this.iconImage_.getPixelRatio(e)}getImageSize(){return this.iconImage_.getSize()}getImageState(){return this.iconImage_.getImageState()}getHitDetectionImage(){return this.iconImage_.getHitDetectionImage()}getOrigin(){if(this.origin_)return this.origin_;let e=this.offset_;if(this.offsetOrigin_!="top-left"){let t=this.getSize(),n=this.iconImage_.getSize();if(!t||!n)return null;e=e.slice(),(this.offsetOrigin_=="top-right"||this.offsetOrigin_=="bottom-right")&&(e[0]=n[0]-t[0]-e[0]),(this.offsetOrigin_=="bottom-left"||this.offsetOrigin_=="bottom-right")&&(e[1]=n[1]-t[1]-e[1])}return this.origin_=e,this.origin_}getSrc(){return this.iconImage_.getSrc()}getSize(){return this.size_?this.size_:this.iconImage_.getSize()}getWidth(){let e=this.getScaleArray();if(this.size_)return this.size_[0]*e[0];if(this.iconImage_.getImageState()==ie.LOADED)return this.iconImage_.getSize()[0]*e[0]}getHeight(){let e=this.getScaleArray();if(this.size_)return this.size_[1]*e[1];if(this.iconImage_.getImageState()==ie.LOADED)return this.iconImage_.getSize()[1]*e[1]}setScale(e){delete this.initialOptions_,super.setScale(e)}listenImageChange(e){this.iconImage_.addEventListener(K.CHANGE,e)}load(){this.iconImage_.load()}unlistenImageChange(e){this.iconImage_.removeEventListener(K.CHANGE,e)}ready(){return this.iconImage_.ready()}},Qr=dm;var Gi=.5;function bu(i,e,t,n,r,o,s,a,l){let A=l?Ei(r,l):r,c=i[0]*Gi,h=i[1]*Gi,u=Re(c,h);u.imageSmoothingEnabled=!1;let f=u.canvas,g=new tx(u,Gi,r,null,s,a,l?$i(st(),l):null),p=t.length,d=Math.floor((256*256*256-1)/p),I={};for(let C=1;C<=p;++C){let _=t[C-1],y=_.getStyleFunction()||n;if(!y)continue;let w=y(_,o);if(!w)continue;Array.isArray(w)||(w=[w]);let E=(C*d).toString(16).padStart(7,"#00000");for(let x=0,B=w.length;xthis.maxStaleKeys&&(this.staleKeys_.length=this.maxStaleKeys)}getFeatures(e){return ne()}getData(e){return null}prepareFrame(e){return ne()}renderFrame(e,t){return ne()}forEachFeatureAtCoordinate(e,t,n,r,o){}getLayer(){return this.layer_}handleFontsChanged(){}handleImageChange_(e){let t=e.target;(t.getState()===ie.LOADED||t.getState()===ie.ERROR)&&this.renderIfReadyAndVisible()}loadImage(e){let t=e.getState();return t!=ie.LOADED&&t!=ie.ERROR&&e.addEventListener(K.CHANGE,this.boundHandleImageChange_),t==ie.IDLE&&(e.load(),t=e.getState()),t==ie.LOADED}renderIfReadyAndVisible(){let e=this.getLayer();e&&e.getVisible()&&e.getSourceState()==="ready"&&e.changed()}renderDeferred(e){}disposeInternal(){delete this.layer_,super.disposeInternal()}},Fu=mm;var Im=[],ol=null;function ab(){ol=Re(1,1,void 0,{willReadFrequently:!0})}var Em=class extends Fu{constructor(e){super(e),this.container=null,this.renderedResolution,this.tempTransform=Ce(),this.pixelTransform=Ce(),this.inversePixelTransform=Ce(),this.context=null,this.deferredContext_=null,this.containerReused=!1,this.frameState=null}getImageData(e,t,n){ol||ab(),ol.clearRect(0,0,1,1);let r;try{ol.drawImage(e,t,n,1,1,0,0,1,1),r=ol.getImageData(0,0,1,1).data}catch{return ol=null,null}return r}getBackground(e){let n=this.getLayer().getBackground();return typeof n=="function"&&(n=n(e.viewState.resolution)),n||void 0}useContainer(e,t,n){let r=this.getLayer().getClassName(),o,s;if(e&&e.className===r&&(!n||e&&e.style.backgroundColor&&Mt(Nt(e.style.backgroundColor),Nt(n)))){let a=e.firstElementChild;a instanceof HTMLCanvasElement&&(s=a.getContext("2d"))}if(s&&m_(s.canvas.style.transform,t)?(this.container=e,this.context=s,this.containerReused=!0):this.containerReused?(this.container=null,this.context=null,this.containerReused=!1):this.container&&(this.container.style.backgroundColor=null),!this.container){o=document.createElement("div"),o.className=r;let a=o.style;a.position="absolute",a.width="100%",a.height="100%",s=Re();let l=s.canvas;o.appendChild(l),a=l.style,a.position="absolute",a.left="0",a.transformOrigin="top left",this.container=o,this.context=s}!this.containerReused&&n&&!this.container.style.backgroundColor&&(this.container.style.backgroundColor=n)}clipUnrotated(e,t,n){let r=Pt(n),o=Gs(n),s=io(n),a=Ns(n);be(t.coordinateToPixelTransform,r),be(t.coordinateToPixelTransform,o),be(t.coordinateToPixelTransform,s),be(t.coordinateToPixelTransform,a);let l=this.inversePixelTransform;be(l,r),be(l,o),be(l,s),be(l,a),e.save(),e.beginPath(),e.moveTo(Math.round(r[0]),Math.round(r[1])),e.lineTo(Math.round(o[0]),Math.round(o[1])),e.lineTo(Math.round(s[0]),Math.round(s[1])),e.lineTo(Math.round(a[0]),Math.round(a[1])),e.clip()}prepareContainer(e,t){let n=e.extent,r=e.viewState.resolution,o=e.viewState.rotation,s=e.pixelRatio,a=Math.round(ue(n)/r*s),l=Math.round(qe(n)/r*s);ct(this.pixelTransform,e.size[0]/2,e.size[1]/2,1/s,1/s,o,-a/2,-l/2),en(this.inversePixelTransform,this.pixelTransform);let A=p_(this.pixelTransform);if(this.useContainer(t,A,this.getBackground(e)),!this.containerReused){let c=this.context.canvas;c.width!=a||c.height!=l?(c.width=a,c.height=l):this.context.clearRect(0,0,a,l),A!==c.style.transform&&(c.style.transform=A)}}dispatchRenderEvent_(e,t,n){let r=this.getLayer();if(r.hasListener(e)){let o=new fs(e,this.inversePixelTransform,n,t);r.dispatchEvent(o)}}preRender(e,t){this.frameState=t,!t.declutter&&this.dispatchRenderEvent_(mt.PRERENDER,e,t)}postRender(e,t){t.declutter||this.dispatchRenderEvent_(mt.POSTRENDER,e,t)}renderDeferredInternal(e){}getRenderContext(e){return e.declutter&&!this.deferredContext_&&(this.deferredContext_=new il),e.declutter?this.deferredContext_.getContext():this.context}renderDeferred(e){e.declutter&&(this.dispatchRenderEvent_(mt.PRERENDER,this.context,e),e.declutter&&this.deferredContext_&&(this.deferredContext_.draw(this.context),this.deferredContext_.clear()),this.renderDeferredInternal(e),this.dispatchRenderEvent_(mt.POSTRENDER,this.context,e))}getRenderTransform(e,t,n,r,o,s,a){let l=o/2,A=s/2,c=r/t,h=-c,u=-e[0]+a,f=-e[1];return ct(this.tempTransform,l,A,c,h,-n,u,f)}disposeInternal(){delete this.frameState,super.disposeInternal()}},sl=Em;var Cm=class extends sl{constructor(e){super(e),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.animatingOrInteracting_,this.hitDetectionImageData_=null,this.clipped_=!1,this.renderedFeatures_=null,this.renderedRevision_=-1,this.renderedResolution_=NaN,this.renderedExtent_=ot(),this.wrappedRenderedExtent_=ot(),this.renderedRotation_,this.renderedCenter_=null,this.renderedProjection_=null,this.renderedPixelRatio_=1,this.renderedRenderOrder_=null,this.renderedFrameDeclutter_,this.replayGroup_=null,this.replayGroupChanged=!0,this.clipping=!0,this.targetContext_=null,this.opacity_=1}renderWorlds(e,t,n){let r=t.extent,o=t.viewState,s=o.center,a=o.resolution,l=o.projection,A=o.rotation,c=l.getExtent(),h=this.getLayer().getSource(),u=this.getLayer().getDeclutter(),f=t.pixelRatio,g=t.viewHints,p=!(g[Ne.ANIMATING]||g[Ne.INTERACTING]),d=this.context,I=Math.round(ue(r)/a*f),m=Math.round(qe(r)/a*f),C=h.getWrapX()&&l.canWrapX(),_=C?ue(c):null,y=C?Math.ceil((r[2]-c[2])/_)+1:1,w=C?Math.floor((r[0]-c[0])/_):0;do{let T=this.getRenderTransform(s,a,0,f,I,m,w*_);t.declutter&&(T=T.slice(0)),e.execute(d,[d.canvas.width,d.canvas.height],T,A,p,n===void 0?Ws:n?rl:_x,n?u&&t.declutter[u]:void 0)}while(++w{if(this.frameState&&!this.hitDetectionImageData_&&!this.animatingOrInteracting_){let n=this.frameState.size.slice(),r=this.renderedCenter_,o=this.renderedResolution_,s=this.renderedRotation_,a=this.renderedProjection_,l=this.wrappedRenderedExtent_,A=this.getLayer(),c=[],h=n[0]*Gi,u=n[1]*Gi;c.push(this.getRenderTransform(r,o,s,Gi,h,u,0).slice());let f=A.getSource(),g=a.getExtent();if(f.getWrapX()&&a.canWrapX()&&!Fi(g,l)){let d=l[0],I=ue(g),m=0,C;for(;dg[2];)++m,C=I*m,c.push(this.getRenderTransform(r,o,s,Gi,h,u,C).slice()),d-=I}let p=st();this.hitDetectionImageData_=bu(n,c,this.renderedFeatures_,A.getStyleFunction(),l,o,s,XA(o,this.renderedPixelRatio_),p?a:null)}t(Du(e,this.renderedFeatures_,this.hitDetectionImageData_))})}forEachFeatureAtCoordinate(e,t,n,r,o){if(!this.replayGroup_)return;let s=t.viewState.resolution,a=t.viewState.rotation,l=this.getLayer(),A={},c=function(u,f,g){let p=W(u),d=A[p];if(d){if(d!==!0&&gu.value):null)}handleFontsChanged(){let e=this.getLayer();e.getVisible()&&this.replayGroup_&&e.changed()}handleStyleImageChange_(e){this.renderIfReadyAndVisible()}prepareFrame(e){let t=this.getLayer(),n=t.getSource();if(!n)return!1;let r=e.viewHints[Ne.ANIMATING],o=e.viewHints[Ne.INTERACTING],s=t.getUpdateWhileAnimating(),a=t.getUpdateWhileInteracting();if(this.ready&&!s&&r||!a&&o)return this.animatingOrInteracting_=!0,!0;this.animatingOrInteracting_=!1;let l=e.extent,A=e.viewState,c=A.projection,h=A.resolution,u=e.pixelRatio,f=t.getRevision(),g=t.getRenderBuffer(),p=t.getRenderOrder();p===void 0&&(p=nx);let d=A.center.slice(),I=Vt(l,g*h),m=I.slice(),C=[I.slice()],_=c.getExtent();if(n.getWrapX()&&c.canWrapX()&&!Fi(_,e.extent)){let S=ue(_),b=Math.max(ue(I)/2,S);I[0]=_[0]-b,I[2]=_[2]+b,Zo(d,c);let F=Nd(C[0],c);F[0]<_[0]&&F[2]<_[2]?C.push([F[0]+S,F[1],F[2]+S,F[3]]):F[0]>_[0]&&F[2]>_[2]&&C.push([F[0]-S,F[1],F[2]-S,F[3]])}if(this.ready&&this.renderedResolution_==h&&this.renderedRevision_==f&&this.renderedRenderOrder_==p&&this.renderedFrameDeclutter_===!!e.declutter&&Fi(this.wrappedRenderedExtent_,I))return Mt(this.renderedExtent_,m)||(this.hitDetectionImageData_=null,this.renderedExtent_=m),this.renderedCenter_=d,this.replayGroupChanged=!1,!0;this.replayGroup_=null;let y=new Ru(Lp(h,u),I,h,u),w=st(),T;if(w){for(let S=0,b=C.length;S{let F,M=S.getStyleFunction()||t.getStyleFunction();if(M&&(F=M(S,h)),F){let k=this.renderFeature(S,E,F,y,T,this.getLayer().getDeclutter(),b);x=x&&!k}},R=Ei(I,c),v=n.getFeaturesInExtent(R);p&&v.sort(p);for(let S=0,b=v.length;S",GreaterThanOrEqualTo:">=",LessThan:"<",LessThanOrEqualTo:"<=",Multiply:"*",Divide:"/",Add:"+",Subtract:"-",Clamp:"clamp",Mod:"%",Pow:"^",Abs:"abs",Floor:"floor",Ceil:"ceil",Round:"round",Sin:"sin",Cos:"cos",Atan:"atan",Sqrt:"sqrt",Match:"match",Between:"between",Interpolate:"interpolate",Coalesce:"coalesce",Case:"case",In:"in",Number:"number",String:"string",Array:"array",Color:"color",Id:"id",Band:"band",Palette:"palette",ToString:"to-string",Has:"has"},cb={[G.Get]:pe(we(1,1/0),Bx),[G.Var]:pe(we(1,1),hb),[G.Has]:pe(we(1,1/0),Bx),[G.Id]:pe(ub,al),[G.Concat]:pe(we(2,1/0),je(Rt)),[G.GeometryType]:pe(fb,al),[G.LineMetric]:pe(al),[G.Resolution]:pe(ym,al),[G.Zoom]:pe(ym,al),[G.Time]:pe(ym,al),[G.Any]:pe(we(2,1/0),je(It)),[G.All]:pe(we(2,1/0),je(It)),[G.Not]:pe(we(1,1),je(It)),[G.Equal]:pe(we(2,2),je(Mu)),[G.NotEqual]:pe(we(2,2),je(Mu)),[G.GreaterThan]:pe(we(2,2),je(te)),[G.GreaterThanOrEqualTo]:pe(we(2,2),je(te)),[G.LessThan]:pe(we(2,2),je(te)),[G.LessThanOrEqualTo]:pe(we(2,2),je(te)),[G.Multiply]:pe(we(2,1/0),wx),[G.Coalesce]:pe(we(2,1/0),wx),[G.Divide]:pe(we(2,2),je(te)),[G.Add]:pe(we(2,1/0),je(te)),[G.Subtract]:pe(we(2,2),je(te)),[G.Clamp]:pe(we(3,3),je(te)),[G.Mod]:pe(we(2,2),je(te)),[G.Pow]:pe(we(2,2),je(te)),[G.Abs]:pe(we(1,1),je(te)),[G.Floor]:pe(we(1,1),je(te)),[G.Ceil]:pe(we(1,1),je(te)),[G.Round]:pe(we(1,1),je(te)),[G.Sin]:pe(we(1,1),je(te)),[G.Cos]:pe(we(1,1),je(te)),[G.Atan]:pe(we(1,2),je(te)),[G.Sqrt]:pe(we(1,1),je(te)),[G.Match]:pe(we(4,1/0),vx,db),[G.Between]:pe(we(3,3),je(te)),[G.Interpolate]:pe(we(6,1/0),vx,pb),[G.Case]:pe(we(3,1/0),gb,mb),[G.In]:pe(we(2,2),Eb),[G.Number]:pe(we(1,1/0),je(Mu)),[G.String]:pe(we(1,1/0),je(Mu)),[G.Array]:pe(we(1,1/0),je(te)),[G.Color]:pe(we(1,4),je(te)),[G.Band]:pe(we(1,3),je(te)),[G.Palette]:pe(we(2,2),Ib),[G.ToString]:pe(we(1,1),je(It|te|Rt|We))};function Bx(i,e,t){let n=i.length-1,r=new Array(n);for(let o=0;oe){let a=e===1/0?`${i} or more`:`${i} to ${e}`;throw new Error(`expected ${a} arguments for ${o}, got ${s}`)}}}function wx(i,e,t){let n=i.length-1,r=new Array(n);for(let o=0;on.featureId;case G.GeometryType:return n=>n.geometryType;case G.Concat:{let n=i.args.map(r=>cr(r,e));return r=>"".concat(...n.map(o=>o(r).toString()))}case G.Resolution:return n=>n.resolution;case G.Any:case G.All:case G.Between:case G.In:case G.Not:return Bb(i,e);case G.Equal:case G.NotEqual:case G.LessThan:case G.LessThanOrEqualTo:case G.GreaterThan:case G.GreaterThanOrEqualTo:return xb(i,e);case G.Multiply:case G.Divide:case G.Add:case G.Subtract:case G.Clamp:case G.Mod:case G.Pow:case G.Abs:case G.Floor:case G.Ceil:case G.Round:case G.Sin:case G.Cos:case G.Atan:case G.Sqrt:return wb(i,e);case G.Case:return vb(i,e);case G.Match:return Sb(i,e);case G.Interpolate:return Tb(i,e);case G.ToString:return Rb(i,e);default:throw new Error(`Unsupported operator ${t}`)}}function yb(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{for(let s=0;s{for(let s=0;s{let o=i.args,s=r.properties[n];for(let a=1,l=o.length;ar.variables[n];case G.Has:return r=>{let o=i.args;if(!(n in r.properties))return!1;let s=r.properties[n];for(let a=1,l=o.length;an(o)===r(o);case G.NotEqual:return o=>n(o)!==r(o);case G.LessThan:return o=>n(o)n(o)<=r(o);case G.GreaterThan:return o=>n(o)>r(o);case G.GreaterThanOrEqualTo:return o=>n(o)>=r(o);default:throw new Error(`Unsupported comparison operator ${t}`)}}function Bb(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{for(let s=0;s{for(let s=0;s{let s=r[0](o),a=r[1](o),l=r[2](o);return s>=a&&s<=l};case G.In:return o=>{let s=r[0](o);for(let a=1;a!r[0](o);default:throw new Error(`Unsupported logical operator ${t}`)}}function wb(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{let s=1;for(let a=0;ar[0](o)/r[1](o);case G.Add:return o=>{let s=0;for(let a=0;ar[0](o)-r[1](o);case G.Clamp:return o=>{let s=r[0](o),a=r[1](o);if(sl?l:s};case G.Mod:return o=>r[0](o)%r[1](o);case G.Pow:return o=>Math.pow(r[0](o),r[1](o));case G.Abs:return o=>Math.abs(r[0](o));case G.Floor:return o=>Math.floor(r[0](o));case G.Ceil:return o=>Math.ceil(r[0](o));case G.Round:return o=>Math.round(r[0](o));case G.Sin:return o=>Math.sin(r[0](o));case G.Cos:return o=>Math.cos(r[0](o));case G.Atan:return n===2?o=>Math.atan2(r[0](o),r[1](o)):o=>Math.atan(r[0](o));case G.Sqrt:return o=>Math.sqrt(r[0](o));default:throw new Error(`Unsupported numeric operator ${t}`)}}function vb(i,e){let t=i.args.length,n=new Array(t);for(let r=0;r{for(let o=0;o{let o=n[0](r);for(let s=1;s{let o=n[0](r),s=n[1](r),a,l;for(let A=2;A=s)return A===2?h:u?Qb(o,s,a,l,c,h):oc(o,s,a,l,c,h);a=c,l=h}return l}}function Rb(i,e){let t=i.operator,n=i.args.length,r=new Array(n);for(let o=0;o{let s=r[0](o);return i.args[0].type===We?HA(s):s.toString()};default:throw new Error(`Unsupported convert operator ${t}`)}}function oc(i,e,t,n,r,o){let s=r-t;if(s===0)return n;let a=e-t,l=i===1?a/s:(Math.pow(i,a)-1)/(Math.pow(i,s)-1);return n+l*(o-n)}function Qb(i,e,t,n,r,o){if(r-t===0)return n;let a=xp(n),l=xp(o),A=l[2]-a[2];A>180?A-=360:A<-180&&(A+=360);let c=[oc(i,e,t,a[0],r,l[0]),oc(i,e,t,a[1],r,l[1]),a[2]+oc(i,e,t,0,r,A),oc(i,e,t,n[3],r,o[3])];return V_(c)}function bb(i){return!0}function Qx(i){let e=Zs(),t=Db(i,e),n=sc();return function(r,o){if(n.properties=r.getPropertiesInternal(),n.resolution=o,e.featureId){let s=r.getId();s!==void 0?n.featureId=s:n.featureId=null}return e.geometryType&&(n.geometryType=ea(r.getGeometry())),t(n)}}function wm(i){let e=Zs(),t=i.length,n=new Array(t);for(let s=0;snull;n=vm(i,e+"fill-color",t)}if(!n)return null;let r=new Ai;return function(o){let s=n(o);return s===du?null:(r.setColor(s),r)}}function lc(i,e,t){let n=an(i,e+"stroke-width",t),r=vm(i,e+"stroke-color",t);if(!n&&!r)return null;let o=po(i,e+"stroke-line-cap",t),s=po(i,e+"stroke-line-join",t),a=bx(i,e+"stroke-line-dash",t),l=an(i,e+"stroke-line-dash-offset",t),A=an(i,e+"stroke-miter-limit",t),c=new _i;return function(h){if(r){let u=r(h);if(u===du)return null;c.setColor(u)}if(n&&c.setWidth(n(h)),o){let u=o(h);if(u!=="butt"&&u!=="round"&&u!=="square")throw new Error("Expected butt, round, or square line cap");c.setLineCap(u)}if(s){let u=s(h);if(u!=="bevel"&&u!=="round"&&u!=="miter")throw new Error("Expected bevel, round, or miter line join");c.setLineJoin(u)}return a&&c.setLineDash(a(h)),l&&c.setLineDashOffset(l(h)),A&&c.setMiterLimit(A(h)),c}}function Fb(i,e){let t="text-",n=po(i,t+"value",e);if(!n)return null;let r=ac(i,t,e),o=ac(i,t+"background-",e),s=lc(i,t,e),a=lc(i,t+"background-",e),l=po(i,t+"font",e),A=an(i,t+"max-angle",e),c=an(i,t+"offset-x",e),h=an(i,t+"offset-y",e),u=ll(i,t+"overflow",e),f=po(i,t+"placement",e),g=an(i,t+"repeat",e),p=Nu(i,t+"scale",e),d=ll(i,t+"rotate-with-view",e),I=an(i,t+"rotation",e),m=po(i,t+"align",e),C=po(i,t+"justify",e),_=po(i,t+"baseline",e),y=ll(i,t+"keep-upright",e),w=bx(i,t+"padding",e),T=Gu(i,t+"declutter-mode"),E=new js({declutterMode:T});return function(x){if(E.setText(n(x)),r&&E.setFill(r(x)),o&&E.setBackgroundFill(o(x)),s&&E.setStroke(s(x)),a&&E.setBackgroundStroke(a(x)),l&&E.setFont(l(x)),A&&E.setMaxAngle(A(x)),c&&E.setOffsetX(c(x)),h&&E.setOffsetY(h(x)),u&&E.setOverflow(u(x)),f){let B=f(x);if(B!=="point"&&B!=="line")throw new Error("Expected point or line for text-placement");E.setPlacement(B)}if(g&&E.setRepeat(g(x)),p&&E.setScale(p(x)),d&&E.setRotateWithView(d(x)),I&&E.setRotation(I(x)),m){let B=m(x);if(B!=="left"&&B!=="center"&&B!=="right"&&B!=="end"&&B!=="start")throw new Error("Expected left, right, center, start, or end for text-align");E.setTextAlign(B)}if(C){let B=C(x);if(B!=="left"&&B!=="right"&&B!=="center")throw new Error("Expected left, right, or center for text-justify");E.setJustify(B)}if(_){let B=_(x);if(B!=="bottom"&&B!=="top"&&B!=="middle"&&B!=="alphabetic"&&B!=="hanging")throw new Error("Expected bottom, top, middle, alphabetic, or hanging for text-baseline");E.setTextBaseline(B)}return w&&E.setPadding(w(x)),y&&E.setKeepUpright(y(x)),E}}function Lb(i,e){return"icon-src"in i?Mb(i,e):"shape-points"in i?kb(i,e):"circle-radius"in i?Pb(i,e):null}function Mb(i,e){let t="icon-",n=t+"src",r=Dx(i[n],n),o=ku(i,t+"anchor",e),s=Nu(i,t+"scale",e),a=an(i,t+"opacity",e),l=ku(i,t+"displacement",e),A=an(i,t+"rotation",e),c=ll(i,t+"rotate-with-view",e),h=Tx(i,t+"anchor-origin"),u=Rx(i,t+"anchor-x-units"),f=Rx(i,t+"anchor-y-units"),g=zb(i,t+"color"),p=Ob(i,t+"cross-origin"),d=Ub(i,t+"offset"),I=Tx(i,t+"offset-origin"),m=Pu(i,t+"width"),C=Pu(i,t+"height"),_=Gb(i,t+"size"),y=Gu(i,t+"declutter-mode"),w=new Qr({src:r,anchorOrigin:h,anchorXUnits:u,anchorYUnits:f,color:g,crossOrigin:p,offset:d,offsetOrigin:I,height:C,width:m,size:_,declutterMode:y});return function(T){return a&&w.setOpacity(a(T)),l&&w.setDisplacement(l(T)),A&&w.setRotation(A(T)),c&&w.setRotateWithView(c(T)),s&&w.setScale(s(T)),o&&w.setAnchor(o(T)),w}}function kb(i,e){let t="shape-",n=t+"points",r=t+"radius",o=Bm(i[n],n),s=Bm(i[r],r),a=ac(i,t,e),l=lc(i,t,e),A=Nu(i,t+"scale",e),c=ku(i,t+"displacement",e),h=an(i,t+"rotation",e),u=ll(i,t+"rotate-with-view",e),f=Pu(i,t+"radius2"),g=Pu(i,t+"angle"),p=Gu(i,t+"declutter-mode"),d=new Su({points:o,radius:s,radius2:f,angle:g,declutterMode:p});return function(I){return a&&d.setFill(a(I)),l&&d.setStroke(l(I)),c&&d.setDisplacement(c(I)),h&&d.setRotation(h(I)),u&&d.setRotateWithView(u(I)),A&&d.setScale(A(I)),d}}function Pb(i,e){let t="circle-",n=ac(i,t,e),r=lc(i,t,e),o=an(i,t+"radius",e),s=Nu(i,t+"scale",e),a=ku(i,t+"displacement",e),l=an(i,t+"rotation",e),A=ll(i,t+"rotate-with-view",e),c=Gu(i,t+"declutter-mode"),h=new ZA({radius:5,declutterMode:c});return function(u){return o&&h.setRadius(o(u)),n&&h.setFill(n(u)),r&&h.setStroke(r(u)),a&&h.setDisplacement(a(u)),l&&h.setRotation(l(u)),A&&h.setRotateWithView(A(u)),s&&h.setScale(s(u)),h}}function an(i,e,t){if(!(e in i))return;let n=Yn(i[e],te,t);return function(r){return Bm(n(r),e)}}function po(i,e,t){if(!(e in i))return null;let n=Yn(i[e],Rt,t);return function(r){return Dx(n(r),e)}}function Nb(i,e,t){let n=po(i,e+"pattern-src",t),r=Sx(i,e+"pattern-offset",t),o=Sx(i,e+"pattern-size",t),s=vm(i,e+"color",t);return function(a){return{src:n(a),offset:r&&r(a),size:o&&o(a),color:s&&s(a)}}}function ll(i,e,t){if(!(e in i))return null;let n=Yn(i[e],It,t);return function(r){let o=n(r);if(typeof o!="boolean")throw new Error(`Expected a boolean for ${e}`);return o}}function vm(i,e,t){if(!(e in i))return null;let n=Yn(i[e],We,t);return function(r){return Fx(n(r),e)}}function bx(i,e,t){if(!(e in i))return null;let n=Yn(i[e],Xt,t);return function(r){return Ac(n(r),e)}}function ku(i,e,t){if(!(e in i))return null;let n=Yn(i[e],Xt,t);return function(r){let o=Ac(n(r),e);if(o.length!==2)throw new Error(`Expected two numbers for ${e}`);return o}}function Sx(i,e,t){if(!(e in i))return null;let n=Yn(i[e],Xt,t);return function(r){return Lx(n(r),e)}}function Nu(i,e,t){if(!(e in i))return null;let n=Yn(i[e],Xt|te,t);return function(r){return Yb(n(r),e)}}function Pu(i,e){let t=i[e];if(t!==void 0){if(typeof t!="number")throw new Error(`Expected a number for ${e}`);return t}}function Gb(i,e){let t=i[e];if(t!==void 0){if(typeof t=="number")return Fe(t);if(!Array.isArray(t))throw new Error(`Expected a number or size array for ${e}`);if(t.length!==2||typeof t[0]!="number"||typeof t[1]!="number")throw new Error(`Expected a number or size array for ${e}`);return t}}function Ob(i,e){let t=i[e];if(t!==void 0){if(typeof t!="string")throw new Error(`Expected a string for ${e}`);return t}}function Tx(i,e){let t=i[e];if(t!==void 0){if(t!=="bottom-left"&&t!=="bottom-right"&&t!=="top-left"&&t!=="top-right")throw new Error(`Expected bottom-left, bottom-right, top-left, or top-right for ${e}`);return t}}function Rx(i,e){let t=i[e];if(t!==void 0){if(t!=="pixels"&&t!=="fraction")throw new Error(`Expected pixels or fraction for ${e}`);return t}}function Ub(i,e){let t=i[e];if(t!==void 0)return Ac(t,e)}function Gu(i,e){let t=i[e];if(t!==void 0){if(typeof t!="string")throw new Error(`Expected a string for ${e}`);if(t!=="declutter"&&t!=="obstacle"&&t!=="none")throw new Error(`Expected declutter, obstacle, or none for ${e}`);return t}}function zb(i,e){let t=i[e];if(t!==void 0)return Fx(t,e)}function Ac(i,e){if(!Array.isArray(i))throw new Error(`Expected an array for ${e}`);let t=i.length;for(let n=0;n4)throw new Error(`Expected a color with 3 or 4 values for ${e}`);return t}function Lx(i,e){let t=Ac(i,e);if(t.length!==2)throw new Error(`Expected an array of two numbers for ${e}`);return t}function Yb(i,e){return typeof i=="number"?i:Lx(i,e)}var Oi={CENTER:"center",RESOLUTION:"resolution",ROTATION:"rotation"};function Sm(i,e,t){return function(n,r,o,s,a){if(!n)return;if(!r&&!e)return n;let l=e?0:o[0]*r,A=e?0:o[1]*r,c=a?a[0]:0,h=a?a[1]:0,u=i[0]+l/2+c,f=i[2]-l/2+c,g=i[1]+A/2+h,p=i[3]-A/2+h;u>f&&(u=(f+u)/2,f=u),g>p&&(g=(p+g)/2,p=g);let d=Ee(n[0],u,f),I=Ee(n[1],g,p);if(s&&t&&r){let m=30*r;d+=-m*Math.log(1+Math.max(0,u-n[0])/m)+m*Math.log(1+Math.max(0,n[0]-f)/m),I+=-m*Math.log(1+Math.max(0,g-n[1])/m)+m*Math.log(1+Math.max(0,n[1]-p)/m)}return[d,I]}}function Mx(i){return i}function Tm(i){return Math.pow(i,3)}function ln(i){return 1-Tm(1-i)}function kx(i){return 3*i*i-2*i*i*i}function Px(i){return i}function Rm(i,e,t,n){let r=ue(e)/t[0],o=qe(e)/t[1];return n?Math.min(i,Math.max(r,o)):Math.min(i,Math.min(r,o))}function Qm(i,e,t){let n=Math.min(i,e),r=50;return n*=Math.log(1+r*Math.max(0,i/e-1))/r+1,t&&(n=Math.max(n,t),n/=Math.log(1+r*Math.max(0,t/i-1))/r+1),Ee(n,t/2,e*2)}function Nx(i,e,t,n){return e=e!==void 0?e:!0,function(r,o,s,a){if(r!==void 0){let l=i[0],A=i[i.length-1],c=t?Rm(l,t,s,n):l;if(a)return e?Qm(r,c,A):Ee(r,A,c);let h=Math.min(c,r),u=Math.floor(va(i,h,o));return i[u]>c&&u1&&typeof arguments[t-1]=="function"&&(n=arguments[t-1],--t);let r=0;for(;r0}getInteracting(){return this.hints_[Ne.INTERACTING]>0}cancelAnimations(){this.setHint(Ne.ANIMATING,-this.hints_[Ne.ANIMATING]);let e;for(let t=0,n=this.animations_.length;t=0;--n){let r=this.animations_[n],o=!0;for(let s=0,a=r.length;s0?A/l.duration:1;c>=1?(l.complete=!0,c=1):o=!1;let h=l.easing(c);if(l.sourceCenter){let u=l.sourceCenter[0],f=l.sourceCenter[1],g=l.targetCenter[0],p=l.targetCenter[1];this.nextCenter_=l.targetCenter;let d=u+h*(g-u),I=f+h*(p-f);this.targetCenter_=[d,I]}if(l.sourceResolution&&l.targetResolution){let u=h===1?l.targetResolution:l.sourceResolution+h*(l.targetResolution-l.sourceResolution);if(l.anchor){let f=this.getViewportSize_(this.getRotation()),g=this.constraints_.resolution(u,0,f,!0);this.targetCenter_=this.calculateCenterZoom(g,l.anchor)}this.nextResolution_=l.targetResolution,this.targetResolution_=u,this.applyTargetState_(!0)}if(l.sourceRotation!==void 0&&l.targetRotation!==void 0){let u=h===1?ki(l.targetRotation+Math.PI,2*Math.PI)-Math.PI:l.sourceRotation+h*(l.targetRotation-l.sourceRotation);if(l.anchor){let f=this.constraints_.rotation(u,!0);this.targetCenter_=this.calculateCenterRotate(f,l.anchor)}this.nextRotation_=l.targetRotation,this.targetRotation_=u}if(this.applyTargetState_(!0),t=!0,!l.complete)break}if(o){this.animations_[n]=null,this.setHint(Ne.ANIMATING,-1),this.nextCenter_=null,this.nextResolution_=NaN,this.nextRotation_=NaN;let s=r[0].callback;s&&Ou(s,!0)}}this.animations_=this.animations_.filter(Boolean),t&&this.updateAnimationKey_===void 0&&(this.updateAnimationKey_=requestAnimationFrame(this.updateAnimations_.bind(this)))}calculateCenterRotate(e,t){let n,r=this.getCenterInternal();return r!==void 0&&(n=[r[0]-t[0],r[1]-t[1]],ka(n,e-this.getRotation()),Vy(n,t)),n}calculateCenterZoom(e,t){let n,r=this.getCenterInternal(),o=this.getResolution();if(r!==void 0&&o!==void 0){let s=t[0]-e*(t[0]-r[0])/o,a=t[1]-e*(t[1]-r[1])/o;n=[s,a]}return n}getViewportSize_(e){let t=this.viewportSize_;if(e){let n=t[0],r=t[1];return[Math.abs(n*Math.cos(e))+Math.abs(r*Math.sin(e)),Math.abs(n*Math.sin(e))+Math.abs(r*Math.cos(e))]}return t}setViewportSize(e){this.viewportSize_=Array.isArray(e)?e.slice():[100,100],this.getAnimating()||this.resolveConstraints(0)}getCenter(){let e=this.getCenterInternal();return e&&Zi(e,this.getProjection())}getCenterInternal(){return this.get(Oi.CENTER)}getConstraints(){return this.constraints_}getConstrainResolution(){return this.get("constrainResolution")}getHints(e){return e!==void 0?(e[0]=this.hints_[0],e[1]=this.hints_[1],e):this.hints_.slice()}calculateExtent(e){let t=this.calculateExtentInternal(e);return Ei(t,this.getProjection())}calculateExtentInternal(e){e=e||this.getViewportSizeMinusPadding_();let t=this.getCenterInternal();he(t,"The view center is not defined");let n=this.getResolution();he(n!==void 0,"The view resolution is not defined");let r=this.getRotation();return he(r!==void 0,"The view rotation is not defined"),CA(t,n,r,e)}getMaxResolution(){return this.maxResolution_}getMinResolution(){return this.minResolution_}getMaxZoom(){return this.getZoomForResolution(this.minResolution_)}setMaxZoom(e){this.applyOptions_(this.getUpdatedOptions_({maxZoom:e}))}getMinZoom(){return this.getZoomForResolution(this.maxResolution_)}setMinZoom(e){this.applyOptions_(this.getUpdatedOptions_({minZoom:e}))}setConstrainResolution(e){this.applyOptions_(this.getUpdatedOptions_({constrainResolution:e}))}getProjection(){return this.projection_}getResolution(){return this.get(Oi.RESOLUTION)}getResolutions(){return this.resolutions_}getResolutionForExtent(e,t){return this.getResolutionForExtentInternal(Bt(e,this.getProjection()),t)}getResolutionForExtentInternal(e,t){t=t||this.getViewportSizeMinusPadding_();let n=ue(e)/t[0],r=qe(e)/t[1];return Math.max(n,r)}getResolutionForValueFunction(e){e=e||2;let t=this.getConstrainedResolution(this.maxResolution_),n=this.minResolution_,r=Math.log(t/n)/Math.log(e);return function(o){return t/Math.pow(e,o*r)}}getRotation(){return this.get(Oi.ROTATION)}getValueForResolutionFunction(e){let t=Math.log(e||2),n=this.getConstrainedResolution(this.maxResolution_),r=this.minResolution_,o=Math.log(n/r)/t;return function(s){return Math.log(n/s)/t/o}}getViewportSizeMinusPadding_(e){let t=this.getViewportSize_(e),n=this.padding_;return n&&(t=[t[0]-n[1]-n[3],t[1]-n[0]-n[2]]),t}getState(){let e=this.getProjection(),t=this.getResolution(),n=this.getRotation(),r=this.getCenterInternal(),o=this.padding_;if(o){let s=this.getViewportSizeMinusPadding_();r=Lm(r,this.getViewportSize_(),[s[0]/2+o[3],s[1]/2+o[0]],t,n)}return{center:r.slice(0),projection:e!==void 0?e:null,resolution:t,nextCenter:this.nextCenter_,nextResolution:this.nextResolution_,nextRotation:this.nextRotation_,rotation:n,zoom:this.getZoom()}}getViewStateAndExtent(){return{viewState:this.getState(),extent:this.calculateExtent()}}getZoom(){let e,t=this.getResolution();return t!==void 0&&(e=this.getZoomForResolution(t)),e}getZoomForResolution(e){let t=this.minZoom_||0,n,r;if(this.resolutions_){let o=va(this.resolutions_,e,1);t=o,n=this.resolutions_[o],o==this.resolutions_.length-1?r=2:r=n/this.resolutions_[o+1]}else n=this.maxResolution_,r=this.zoomFactor_;return t+Math.log(n/e)/Math.log(r)}getResolutionForZoom(e){if(this.resolutions_?.length){if(this.resolutions_.length===1)return this.resolutions_[0];let t=Ee(Math.floor(e),0,this.resolutions_.length-2),n=this.resolutions_[t]/this.resolutions_[t+1];return this.resolutions_[t]/Math.pow(n,Ee(e-t,0,1))}return this.maxResolution_/Math.pow(this.zoomFactor_,e-this.minZoom_)}fit(e,t){let n;if(he(Array.isArray(e)||typeof e.getSimplifiedGeometry=="function","Invalid extent or geometry provided as `geometry`"),Array.isArray(e)){he(!mi(e),"Cannot fit empty extent provided as `geometry`");let r=Bt(e,this.getProjection());n=Vs(r)}else if(e.getType()==="Circle"){let r=Bt(e.getExtent(),this.getProjection());n=Vs(r),n.rotate(this.getRotation(),pi(r))}else{let r=st();r?n=e.clone().transform(r,this.getProjection()):n=e}this.fitInternal(n,t)}rotatedExtentForGeometry(e){let t=this.getRotation(),n=Math.cos(t),r=Math.sin(-t),o=e.getFlatCoordinates(),s=e.getStride(),a=1/0,l=1/0,A=-1/0,c=-1/0;for(let h=0,u=o.length;h{this.dispatchEvent("sourceready")},0)),this.clearRenderer()),this.changed()}getFeatures(e){return this.renderer_?this.renderer_.getFeatures(e):Promise.resolve([])}getData(e){return!this.renderer_||!this.rendered?null:this.renderer_.getData(e)}isVisible(e){let t,n=this.getMapInternal();!e&&n&&(e=n.getView()),e instanceof xi?t={viewState:e.getState(),extent:e.calculateExtent()}:t=e,!t.layerStatesArray&&n&&(t.layerStatesArray=n.getLayerGroup().getLayerStatesArray());let r;if(t.layerStatesArray){if(r=t.layerStatesArray.find(s=>s.layer===this),!r)return!1}else r=this.getLayerState();let o=this.getExtent();return cc(r,t.viewState)&&(!o||Qe(o,t.extent))}getAttributions(e){if(!this.isVisible(e))return[];let t=this.getSource()?.getAttributions();if(!t)return[];let n=e instanceof xi?e.getViewStateAndExtent():e,r=t(n);return Array.isArray(r)||(r=[r]),r}render(e,t){let n=this.getRenderer();return n.prepareFrame(e)?(this.rendered=!0,n.renderFrame(e,t)):null}unrender(){this.rendered=!1}getDeclutter(){}renderDeclutter(e,t){}renderDeferred(e){let t=this.getRenderer();t&&t.renderDeferred(e)}setMapInternal(e){e||this.unrender(),this.set(ke.MAP,e)}getMapInternal(){return this.get(ke.MAP)}setMap(e){this.mapPrecomposeKey_&&(ce(this.mapPrecomposeKey_),this.mapPrecomposeKey_=null),e||this.changed(),this.mapRenderKey_&&(ce(this.mapRenderKey_),this.mapRenderKey_=null),e&&(this.mapPrecomposeKey_=ee(e,mt.PRECOMPOSE,this.handlePrecompose_,this),this.mapRenderKey_=ee(this,K.CHANGE,e.render,e),this.changed())}handlePrecompose_(e){let t=e.frameState.layerStatesArray,n=this.getLayerState(!1);he(!t.some(r=>r.layer===n.layer),"A layer can only be added to the map once. Use either `layer.setMap()` or `map.addLayer()`, not both."),t.push(n)}setSource(e){this.set(ke.SOURCE,e)}getRenderer(){return this.renderer_||(this.renderer_=this.createRenderer()),this.renderer_}hasRenderer(){return!!this.renderer_}createRenderer(){return null}clearRenderer(){this.renderer_&&(this.renderer_.dispose(),delete this.renderer_)}disposeInternal(){this.clearRenderer(),this.setSource(null),super.disposeInternal()}};function cc(i,e){if(!i.visible)return!1;let t=e.resolution;if(t=i.maxResolution)return!1;let n=e.zoom;return n>i.minZoom&&n<=i.maxZoom}var hr=Pm;var Yx={RENDER_ORDER:"renderOrder"},Nm=class extends hr{constructor(e){e=e||{};let t=Object.assign({},e);delete t.style,delete t.renderBuffer,delete t.updateWhileAnimating,delete t.updateWhileInteracting,super(t),this.declutter_=e.declutter?String(e.declutter):void 0,this.renderBuffer_=e.renderBuffer!==void 0?e.renderBuffer:100,this.style_=null,this.styleFunction_=void 0,this.setStyle(e.style),this.updateWhileAnimating_=e.updateWhileAnimating!==void 0?e.updateWhileAnimating:!1,this.updateWhileInteracting_=e.updateWhileInteracting!==void 0?e.updateWhileInteracting:!1}getDeclutter(){return this.declutter_}getFeatures(e){return super.getFeatures(e)}getRenderBuffer(){return this.renderBuffer_}getRenderOrder(){return this.get(Yx.RENDER_ORDER)}getStyle(){return this.style_}getStyleFunction(){return this.styleFunction_}getUpdateWhileAnimating(){return this.updateWhileAnimating_}getUpdateWhileInteracting(){return this.updateWhileInteracting_}renderDeclutter(e,t){let n=this.getDeclutter();n in e.declutter||(e.declutter[n]=new ho(9)),this.getRenderer().renderDeclutter(e,t)}setRenderOrder(e){this.set(Yx.RENDER_ORDER,e)}setStyle(e){this.style_=e===void 0?em:e;let t=Xb(e);this.styleFunction_=e===null?void 0:ux(t),this.changed()}setDeclutter(e){this.declutter_=e?String(e):void 0,this.changed()}};function Xb(i){if(i===void 0)return em;if(!i)return null;if(typeof i=="function"||i instanceof ci)return i;if(!Array.isArray(i))return wm([i]);if(i.length===0)return[];let e=i.length,t=i[0];if(t instanceof ci){let r=new Array(e);for(let o=0;oe)throw new Error("Tile load sequence violation");this.state=e,this.changed()}}load(){ne()}getAlpha(e,t){if(!this.transition_)return 1;let n=this.transitionStarts_[e];if(!n)n=t,this.transitionStarts_[e]=n;else if(n===-1)return 1;let r=t-n+1e3/60;return r>=this.transition_?1:Tm(r/this.transition_)}inTransition(e){return this.transition_?this.transitionStarts_[e]!==-1:!1}endTransition(e){this.transition_&&(this.transitionStarts_[e]=-1)}disposeInternal(){this.release(),super.disposeInternal()}},br=Um;var zm=class extends br{constructor(e,t,n,r,o,s){super(e,t,s),this.crossOrigin_=r,this.src_=n,this.key=n,this.image_=new Image,r!==null&&(this.image_.crossOrigin=r),this.unlisten_=null,this.tileLoadFunction_=o}getImage(){return this.image_}setImage(e){this.image_=e,this.state=V.LOADED,this.unlistenImage_(),this.changed()}handleImageError_(){this.state=V.ERROR,this.unlistenImage_(),this.image_=jb(),this.changed()}handleImageLoad_(){let e=this.image_;e.naturalWidth&&e.naturalHeight?this.state=V.LOADED:this.state=V.EMPTY,this.unlistenImage_(),this.changed()}load(){this.state==V.ERROR&&(this.state=V.IDLE,this.image_=new Image,this.crossOrigin_!==null&&(this.image_.crossOrigin=this.crossOrigin_)),this.state==V.IDLE&&(this.state=V.LOADING,this.changed(),this.tileLoadFunction_(this,this.src_),this.unlisten_=H_(this.image_,this.handleImageLoad_.bind(this),this.handleImageError_.bind(this)))}unlistenImage_(){this.unlisten_&&(this.unlisten_(),this.unlisten_=null)}disposeInternal(){this.unlistenImage_(),this.image_=null,super.disposeInternal()}};function jb(){let i=Re(1,1);return i.fillStyle="rgba(0,0,0,0)",i.fillRect(0,0,1,1),i.canvas}var ds=zm;var Ym=class{constructor(e,t,n){this.decay_=e,this.minVelocity_=t,this.delay_=n,this.points_=[],this.angle_=0,this.initialVelocity_=0}begin(){this.points_.length=0,this.angle_=0,this.initialVelocity_=0}update(e,t){this.points_.push(e,t,Date.now())}end(){if(this.points_.length<6)return!1;let e=Date.now()-this.delay_,t=this.points_.length-3;if(this.points_[t+2]0&&this.points_[n+2]>e;)n-=3;let r=this.points_[t+2]-this.points_[n+2];if(r<1e3/60)return!1;let o=this.points_[t]-this.points_[n],s=this.points_[t+1]-this.points_[n+1];return this.angle_=Math.atan2(s,o),this.initialVelocity_=Math.sqrt(o*o+s*s)/r,this.initialVelocity_>this.minVelocity_}getDistance(){return(this.minVelocity_-this.initialVelocity_)/this.decay_}getAngle(){return this.angle_}},Hx=Ym;var Vm=class extends Pe{constructor(e,t,n){super(e),this.map=t,this.frameState=n!==void 0?n:null}},ps=Vm;var Hm=class extends ps{constructor(e,t,n,r,o,s){super(e,t,o),this.originalEvent=n,this.pixel_=null,this.coordinate_=null,this.dragging=r!==void 0?r:!1,this.activePointers=s}get pixel(){return this.pixel_||(this.pixel_=this.map.getEventPixel(this.originalEvent)),this.pixel_}set pixel(e){this.pixel_=e}get coordinate(){return this.coordinate_||(this.coordinate_=this.map.getCoordinateFromPixel(this.pixel)),this.coordinate_}set coordinate(e){this.coordinate_=e}preventDefault(){super.preventDefault(),"preventDefault"in this.originalEvent&&this.originalEvent.preventDefault()}stopPropagation(){super.stopPropagation(),"stopPropagation"in this.originalEvent&&this.originalEvent.stopPropagation()}},Hn=Hm;var xe={SINGLECLICK:"singleclick",CLICK:K.CLICK,DBLCLICK:K.DBLCLICK,POINTERDRAG:"pointerdrag",POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"};var cn={POINTERMOVE:"pointermove",POINTERDOWN:"pointerdown",POINTERUP:"pointerup",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",POINTERCANCEL:"pointercancel"};var qm=class extends Mn{constructor(e,t){super(e),this.map_=e,this.clickTimeoutId_,this.emulateClicks_=!1,this.dragging_=!1,this.dragListenerKeys_=[],this.moveTolerance_=t===void 0?1:t,this.down_=null;let n=this.map_.getViewport();this.activePointers_=[],this.trackedTouches_={},this.element_=n,this.pointerdownListenerKey_=ee(n,cn.POINTERDOWN,this.handlePointerDown_,this),this.originalPointerMoveEvent_,this.relayedListenerKey_=ee(n,cn.POINTERMOVE,this.relayMoveEvent_,this),this.boundHandleTouchMove_=this.handleTouchMove_.bind(this),this.element_.addEventListener(K.TOUCHMOVE,this.boundHandleTouchMove_,uu?{passive:!1}:!1)}emulateClick_(e){let t=new Hn(xe.CLICK,this.map_,e);this.dispatchEvent(t),this.clickTimeoutId_!==void 0?(clearTimeout(this.clickTimeoutId_),this.clickTimeoutId_=void 0,t=new Hn(xe.DBLCLICK,this.map_,e),this.dispatchEvent(t)):this.clickTimeoutId_=setTimeout(()=>{this.clickTimeoutId_=void 0;let n=new Hn(xe.SINGLECLICK,this.map_,e);this.dispatchEvent(n)},250)}updateActivePointers_(e){let t=e,n=t.pointerId;if(t.type==xe.POINTERUP||t.type==xe.POINTERCANCEL){delete this.trackedTouches_[n];for(let r in this.trackedTouches_)if(this.trackedTouches_[r].target!==t.target){delete this.trackedTouches_[r];break}}else(t.type==xe.POINTERDOWN||t.type==xe.POINTERMOVE)&&(this.trackedTouches_[n]=t);this.activePointers_=Object.values(this.trackedTouches_)}handlePointerUp_(e){this.updateActivePointers_(e);let t=new Hn(xe.POINTERUP,this.map_,e,void 0,void 0,this.activePointers_);this.dispatchEvent(t),this.emulateClicks_&&!t.defaultPrevented&&!this.dragging_&&this.isMouseActionButton_(e)&&this.emulateClick_(this.down_),this.activePointers_.length===0&&(this.dragListenerKeys_.forEach(ce),this.dragListenerKeys_.length=0,this.dragging_=!1,this.down_=null)}isMouseActionButton_(e){return e.button===0}handlePointerDown_(e){this.emulateClicks_=this.activePointers_.length===0,this.updateActivePointers_(e);let t=new Hn(xe.POINTERDOWN,this.map_,e,void 0,void 0,this.activePointers_);if(this.dispatchEvent(t),this.down_=new PointerEvent(e.type,e),Object.defineProperty(this.down_,"target",{writable:!1,value:e.target}),this.dragListenerKeys_.length===0){let n=this.map_.getOwnerDocument();this.dragListenerKeys_.push(ee(n,xe.POINTERMOVE,this.handlePointerMove_,this),ee(n,xe.POINTERUP,this.handlePointerUp_,this),ee(this.element_,xe.POINTERCANCEL,this.handlePointerUp_,this)),this.element_.getRootNode&&this.element_.getRootNode()!==n&&this.dragListenerKeys_.push(ee(this.element_.getRootNode(),xe.POINTERUP,this.handlePointerUp_,this))}}handlePointerMove_(e){if(this.isMoving_(e)){this.updateActivePointers_(e),this.dragging_=!0;let t=new Hn(xe.POINTERDRAG,this.map_,e,this.dragging_,void 0,this.activePointers_);this.dispatchEvent(t)}}relayMoveEvent_(e){this.originalPointerMoveEvent_=e;let t=!!(this.down_&&this.isMoving_(e));this.dispatchEvent(new Hn(xe.POINTERMOVE,this.map_,e,t))}handleTouchMove_(e){let t=this.originalPointerMoveEvent_;(!t||t.defaultPrevented)&&(typeof e.cancelable!="boolean"||e.cancelable===!0)&&e.preventDefault()}isMoving_(e){return this.dragging_||Math.abs(e.clientX-this.down_.clientX)>this.moveTolerance_||Math.abs(e.clientY-this.down_.clientY)>this.moveTolerance_}disposeInternal(){this.relayedListenerKey_&&(ce(this.relayedListenerKey_),this.relayedListenerKey_=null),this.element_.removeEventListener(K.TOUCHMOVE,this.boundHandleTouchMove_),this.pointerdownListenerKey_&&(ce(this.pointerdownListenerKey_),this.pointerdownListenerKey_=null),this.dragListenerKeys_.forEach(ce),this.dragListenerKeys_.length=0,this.element_=null,super.disposeInternal()}},qx=qm;var hn={POSTRENDER:"postrender",MOVESTART:"movestart",MOVEEND:"moveend",LOADSTART:"loadstart",LOADEND:"loadend"};var Ct={LAYERGROUP:"layergroup",SIZE:"size",TARGET:"target",VIEW:"view"};var hc=1/0,Km=class{constructor(e,t){this.priorityFunction_=e,this.keyFunction_=t,this.elements_=[],this.priorities_=[],this.queuedElements_={}}clear(){this.elements_.length=0,this.priorities_.length=0,Ln(this.queuedElements_)}dequeue(){let e=this.elements_,t=this.priorities_,n=e[0];e.length==1?(e.length=0,t.length=0):(e[0]=e.pop(),t[0]=t.pop(),this.siftUp_(0));let r=this.keyFunction_(n);return delete this.queuedElements_[r],n}enqueue(e){he(!(this.keyFunction_(e)in this.queuedElements_),"Tried to enqueue an `element` that was already added to the queue");let t=this.priorityFunction_(e);return t!=hc?(this.elements_.push(e),this.priorities_.push(t),this.queuedElements_[this.keyFunction_(e)]=!0,this.siftDown_(0,this.elements_.length-1),!0):!1}getCount(){return this.elements_.length}getLeftChildIndex_(e){return e*2+1}getRightChildIndex_(e){return e*2+2}getParentIndex_(e){return e-1>>1}heapify_(){let e;for(e=(this.elements_.length>>1)-1;e>=0;e--)this.siftUp_(e)}isEmpty(){return this.elements_.length===0}isKeyQueued(e){return e in this.queuedElements_}isQueued(e){return this.isKeyQueued(this.keyFunction_(e))}siftUp_(e){let t=this.elements_,n=this.priorities_,r=t.length,o=t[e],s=n[e],a=e;for(;e>1;){let l=this.getLeftChildIndex_(e),A=this.getRightChildIndex_(e),c=Ae;){let a=this.getParentIndex_(t);if(r[a]>s)n[t]=n[a],r[t]=r[a],t=a;else break}n[t]=o,r[t]=s}reprioritize(){let e=this.priorityFunction_,t=this.elements_,n=this.priorities_,r=0,o=t.length,s,a,l;for(a=0;ae.apply(null,n),n=>n[0].getKey()),this.boundHandleTileChange_=this.handleTileChange.bind(this),this.tileChangeCallback_=t,this.tilesLoading_=0,this.tilesLoadingKeys_={}}enqueue(e){let t=super.enqueue(e);return t&&e[0].addEventListener(K.CHANGE,this.boundHandleTileChange_),t}getTilesLoading(){return this.tilesLoading_}handleTileChange(e){let t=e.target,n=t.getState();if(n===V.LOADED||n===V.ERROR||n===V.EMPTY){n!==V.ERROR&&t.removeEventListener(K.CHANGE,this.boundHandleTileChange_);let r=t.getKey();r in this.tilesLoadingKeys_&&(delete this.tilesLoadingKeys_[r],--this.tilesLoading_),this.tileChangeCallback_()}}loadMoreTiles(e,t){let n=0;for(;this.tilesLoading_0;){let r=this.dequeue()[0],o=r.getKey();r.getState()===V.IDLE&&!(o in this.tilesLoadingKeys_)&&(this.tilesLoadingKeys_[o]=!0,++this.tilesLoading_,++n,r.load())}}},Xx=Xm;function jx(i,e,t,n,r){if(!i||!(t in i.wantedTiles))return hc;if(!i.wantedTiles[t][e.getKey()])return hc;let o=i.viewState.center,s=n[0]-o[0],a=n[1]-o[1];return 65536*Math.log(r)+Math.sqrt(s*s+a*a)/r}var jm=class extends St{constructor(e){super();let t=e.element;t&&!e.target&&!t.style.pointerEvents&&(t.style.pointerEvents="auto"),this.element=t||null,this.target_=null,this.map_=null,this.listenerKeys=[],e.render&&(this.render=e.render),e.target&&this.setTarget(e.target)}disposeInternal(){this.element?.remove(),super.disposeInternal()}getMap(){return this.map_}setMap(e){this.map_&&this.element?.remove();for(let t=0,n=this.listenerKeys.length;tr.getAttributions(e)));if(this.attributions_!==void 0&&(Array.isArray(this.attributions_)?this.attributions_.forEach(r=>n.add(r)):n.add(this.attributions_)),!this.overrideCollapsible_){let r=!t.some(o=>o.getSource()?.getAttributionsCollapsible()===!1);this.setCollapsible(r)}return Array.from(n)}async updateElement_(e){if(!e){this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1);return}let t=await Promise.all(this.collectSourceAttributions_(e).map(r=>Sa(()=>r))),n=t.length>0;if(this.renderedVisible_!=n&&(this.element.style.display=n?"":"none",this.renderedVisible_=n),!Mt(t,this.renderedAttributions_)){fu(this.ulElement_);for(let r=0,o=t.length;r0&&n%(2*Math.PI)!==0?t.animate({rotation:0,duration:this.duration_,easing:ln}):t.setRotation(0))}render(e){let t=e.frameState;if(!t)return;let n=t.viewState.rotation;if(n!=this.rotation_){let r="rotate("+n+"rad)";if(this.autoHide_){let o=this.element.classList.contains(KA);!o&&n===0?this.element.classList.add(KA):o&&n!==0&&this.element.classList.remove(KA)}this.label_.style.transform=r}this.rotation_=n}},fc=Jm;var $m=class extends ut{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target});let t=e.className!==void 0?e.className:"ol-zoom",n=e.delta!==void 0?e.delta:1,r=e.zoomInClassName!==void 0?e.zoomInClassName:t+"-in",o=e.zoomOutClassName!==void 0?e.zoomOutClassName:t+"-out",s=e.zoomInLabel!==void 0?e.zoomInLabel:"+",a=e.zoomOutLabel!==void 0?e.zoomOutLabel:"\u2013",l=e.zoomInTipLabel!==void 0?e.zoomInTipLabel:"Zoom in",A=e.zoomOutTipLabel!==void 0?e.zoomOutTipLabel:"Zoom out",c=document.createElement("button");c.className=r,c.setAttribute("type","button"),c.title=l,c.appendChild(typeof s=="string"?document.createTextNode(s):s),c.addEventListener(K.CLICK,this.handleClick_.bind(this,n),!1);let h=document.createElement("button");h.className=o,h.setAttribute("type","button"),h.title=A,h.appendChild(typeof a=="string"?document.createTextNode(a):a),h.addEventListener(K.CLICK,this.handleClick_.bind(this,-n),!1);let u=t+" "+qt+" "+nn,f=this.element;f.className=u,f.appendChild(c),f.appendChild(h),this.duration_=e.duration!==void 0?e.duration:250}handleClick_(e,t){t.preventDefault(),this.zoomByDelta_(e)}zoomByDelta_(e){let n=this.getMap().getView();if(!n)return;let r=n.getZoom();if(r!==void 0){let o=n.getConstrainedZoom(r+e);this.duration_>0?(n.getAnimating()&&n.cancelAnimations(),n.animate({zoom:o,duration:this.duration_,easing:ln})):n.setZoom(o)}}},gc=$m;function Wx(i){i=i||{};let e=new bt;return(i.zoom!==void 0?i.zoom:!0)&&e.push(new gc(i.zoomOptions)),(i.rotate!==void 0?i.rotate:!0)&&e.push(new fc(i.rotateOptions)),(i.attribution!==void 0?i.attribution:!0)&&e.push(new uc(i.attributionOptions)),e}var dc={ACTIVE:"active"};var Zm=class extends St{constructor(e){super(),this.on,this.once,this.un,e&&e.handleEvent&&(this.handleEvent=e.handleEvent),this.map_=null,this.setActive(!0)}getActive(){return this.get(dc.ACTIVE)}getMap(){return this.map_}handleEvent(e){return!0}setActive(e){this.set(dc.ACTIVE,e)}setMap(e){this.map_=e}};function Jx(i,e,t){let n=i.getCenterInternal();if(n){let r=[n[0]+e[0],n[1]+e[1]];i.animateInternal({duration:t!==void 0?t:250,easing:Px,center:i.getConstrainedCenter(r)})}}function cl(i,e,t,n){let r=i.getZoom();if(r===void 0)return;let o=i.getConstrainedZoom(r+e),s=i.getResolutionForZoom(o);i.getAnimating()&&i.cancelAnimations(),i.animate({resolution:s,anchor:t,duration:n!==void 0?n:250,easing:ln})}var qn=Zm;var e0=class extends qn{constructor(e){super(),e=e||{},this.delta_=e.delta?e.delta:1,this.duration_=e.duration!==void 0?e.duration:250}handleEvent(e){let t=!1;if(e.type==xe.DBLCLICK){let n=e.originalEvent,r=e.map,o=e.coordinate,s=n.shiftKey?-this.delta_:this.delta_,a=r.getView();cl(a,s,o,this.duration_),n.preventDefault(),t=!0}return!t}},$x=e0;function pc(i){let e=arguments;return function(t){let n=!0;for(let r=0,o=e.length;r0}}else if(e.type==xe.POINTERDOWN){let n=this.handleDownEvent(e);this.handlingDownUpSequence=n,t=this.stopDown(n)}else e.type==xe.POINTERMOVE&&this.handleMoveEvent(e);return!t}handleMoveEvent(e){}handleUpEvent(e){return!1}stopDown(e){return e}updateTrackedPointers_(e){e.activePointers&&(this.targetPointers=e.activePointers)}};function ul(i){let e=i.length,t=0,n=0;for(let r=0;r0&&this.condition_(e)){let n=e.map.getView();return this.lastCentroid=null,n.getAnimating()&&n.cancelAnimations(),this.kinetic_&&this.kinetic_.begin(),this.noKinetic_=this.targetPointers.length>1,!0}return!1}},rB=i0;var n0=class extends Bi{constructor(e){e=e||{},super({stopDown:ji}),this.condition_=e.condition?e.condition:eB,this.lastAngle_=void 0,this.duration_=e.duration!==void 0?e.duration:250}handleDragEvent(e){if(!qu(e))return;let t=e.map,n=t.getView();if(n.getConstraints().rotation===Al)return;let r=t.getSize(),o=e.pixel,s=Math.atan2(r[1]/2-o[1],o[0]-r[0]/2);if(this.lastAngle_!==void 0){let a=s-this.lastAngle_;n.adjustRotationInternal(-a)}this.lastAngle_=s}handleUpEvent(e){return qu(e)?(e.map.getView().endInteraction(this.duration_),!1):!0}handleDownEvent(e){return qu(e)&&Yu(e)&&this.condition_(e)?(e.map.getView().beginInteraction(),this.lastAngle_=void 0,!0):!1}},oB=n0;var r0=class extends xr{constructor(e){super(),this.geometry_=null,this.element_=document.createElement("div"),this.element_.style.position="absolute",this.element_.style.pointerEvents="auto",this.element_.className="ol-box "+e,this.map_=null,this.startPixel_=null,this.endPixel_=null}disposeInternal(){this.setMap(null)}render_(){let e=this.startPixel_,t=this.endPixel_,n="px",r=this.element_.style;r.left=Math.min(e[0],t[0])+n,r.top=Math.min(e[1],t[1])+n,r.width=Math.abs(t[0]-e[0])+n,r.height=Math.abs(t[1]-e[1])+n}setMap(e){if(this.map_){this.map_.getOverlayContainer().removeChild(this.element_);let t=this.element_.style;t.left="inherit",t.top="inherit",t.width="inherit",t.height="inherit"}this.map_=e,this.map_&&this.map_.getOverlayContainer().appendChild(this.element_)}setPixels(e,t){this.startPixel_=e,this.endPixel_=t,this.createOrUpdateGeometry(),this.render_()}createOrUpdateGeometry(){if(!this.map_)return;let e=this.startPixel_,t=this.endPixel_,r=[e,[e[0],t[1]],t,[t[0],e[1]]].map(this.map_.getCoordinateFromPixelInternal,this.map_);r[4]=r[0].slice(),this.geometry_?this.geometry_.setCoordinates([r]):this.geometry_=new Dt([r])}getGeometry(){return this.geometry_}},sB=r0;var fl={BOXSTART:"boxstart",BOXDRAG:"boxdrag",BOXEND:"boxend",BOXCANCEL:"boxcancel"},ia=class extends Pe{constructor(e,t,n){super(e),this.coordinate=t,this.mapBrowserEvent=n}},o0=class extends Bi{constructor(e){super(),this.on,this.once,this.un,e=e??{},this.box_=new sB(e.className||"ol-dragbox"),this.minArea_=e.minArea??64,e.onBoxEnd&&(this.onBoxEnd=e.onBoxEnd),this.startPixel_=null,this.condition_=e.condition??Yu,this.boxEndCondition_=e.boxEndCondition??this.defaultBoxEndCondition}defaultBoxEndCondition(e,t,n){let r=n[0]-t[0],o=n[1]-t[1];return r*r+o*o>=this.minArea_}getGeometry(){return this.box_.getGeometry()}handleDragEvent(e){this.startPixel_&&(this.box_.setPixels(this.startPixel_,e.pixel),this.dispatchEvent(new ia(fl.BOXDRAG,e.coordinate,e)))}handleUpEvent(e){if(!this.startPixel_)return!1;let t=this.boxEndCondition_(e,this.startPixel_,e.pixel);return t&&this.onBoxEnd(e),this.dispatchEvent(new ia(t?fl.BOXEND:fl.BOXCANCEL,e.coordinate,e)),this.box_.setMap(null),this.startPixel_=null,!1}handleDownEvent(e){return this.condition_(e)?(this.startPixel_=e.pixel,this.box_.setMap(e.map),this.box_.setPixels(this.startPixel_,this.startPixel_),this.dispatchEvent(new ia(fl.BOXSTART,e.coordinate,e)),!0):!1}onBoxEnd(e){}setActive(e){e||(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new ia(fl.BOXCANCEL,this.startPixel_,null)),this.startPixel_=null)),super.setActive(e)}setMap(e){this.getMap()&&(this.box_.setMap(null),this.startPixel_&&(this.dispatchEvent(new ia(fl.BOXCANCEL,this.startPixel_,null)),this.startPixel_=null)),super.setMap(e)}},aB=o0;var s0=class extends aB{constructor(e){e=e||{};let t=e.condition?e.condition:Vu;super({condition:t,className:e.className||"ol-dragzoom",minArea:e.minArea}),this.duration_=e.duration!==void 0?e.duration:200,this.out_=e.out!==void 0?e.out:!1}onBoxEnd(e){let n=this.getMap().getView(),r=this.getGeometry();if(this.out_){let o=n.rotatedExtentForGeometry(r),s=n.getResolutionForExtentInternal(o),a=n.getResolution()/s;r=r.clone(),r.scale(a*a)}n.fitInternal(r,{duration:this.duration_,easing:ln})}},lB=s0;var ms={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",DOWN:"ArrowDown"};var a0=class extends qn{constructor(e){super(),e=e||{},this.defaultCondition_=function(t){return hl(t)&&Hu(t)},this.condition_=e.condition!==void 0?e.condition:this.defaultCondition_,this.duration_=e.duration!==void 0?e.duration:100,this.pixelDelta_=e.pixelDelta!==void 0?e.pixelDelta:128}handleEvent(e){let t=!1;if(e.type==K.KEYDOWN){let n=e.originalEvent,r=n.key;if(this.condition_(e)&&(r==ms.DOWN||r==ms.LEFT||r==ms.RIGHT||r==ms.UP)){let s=e.map.getView(),a=s.getResolution()*this.pixelDelta_,l=0,A=0;r==ms.DOWN?A=-a:r==ms.LEFT?l=-a:r==ms.RIGHT?l=a:A=a;let c=[l,A];ka(c,s.getRotation()),Jx(s,c,this.duration_),n.preventDefault(),t=!0}}return!t}},AB=a0;var l0=class extends qn{constructor(e){super(),e=e||{},this.condition_=e.condition?e.condition:function(t){return!nB(t)&&Hu(t)},this.delta_=e.delta?e.delta:1,this.duration_=e.duration!==void 0?e.duration:100}handleEvent(e){let t=!1;if(e.type==K.KEYDOWN||e.type==K.KEYPRESS){let n=e.originalEvent,r=n.key;if(this.condition_(e)&&(r==="+"||r==="-")){let o=e.map,s=r==="+"?this.delta_:-this.delta_,a=o.getView();cl(a,s,void 0,this.duration_),n.preventDefault(),t=!0}}return!t}},cB=l0;var A0=class extends qn{constructor(e){e=e||{},super(e),this.totalDelta_=0,this.lastDelta_=0,this.maxDelta_=e.maxDelta!==void 0?e.maxDelta:1,this.duration_=e.duration!==void 0?e.duration:250,this.timeout_=e.timeout!==void 0?e.timeout:80,this.useAnchor_=e.useAnchor!==void 0?e.useAnchor:!0,this.constrainResolution_=e.constrainResolution!==void 0?e.constrainResolution:!1;let t=e.condition?e.condition:ta;this.condition_=e.onFocusOnly?pc(zu,t):t,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_,this.mode_=void 0,this.trackpadEventGap_=400,this.trackpadTimeoutId_,this.deltaPerZoom_=300}endInteraction_(){this.trackpadTimeoutId_=void 0;let e=this.getMap();if(!e)return;e.getView().endInteraction(void 0,this.lastDelta_?this.lastDelta_>0?1:-1:0,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null)}handleEvent(e){if(!this.condition_(e)||e.type!==K.WHEEL)return!0;let n=e.map,r=e.originalEvent;r.preventDefault(),this.useAnchor_&&(this.lastAnchor_=e.pixel);let o;if(e.type==K.WHEEL&&(o=r.deltaY,r.deltaMode===WheelEvent.DOM_DELTA_LINE&&(o*=40)),o===0)return!1;this.lastDelta_=o;let s=Date.now();this.startTime_===void 0&&(this.startTime_=s),(!this.mode_||s-this.startTime_>this.trackpadEventGap_)&&(this.mode_=Math.abs(o)<4?"trackpad":"wheel");let a=n.getView();if(this.mode_==="trackpad"&&!(a.getConstrainResolution()||this.constrainResolution_))return this.trackpadTimeoutId_?clearTimeout(this.trackpadTimeoutId_):(a.getAnimating()&&a.cancelAnimations(),a.beginInteraction()),this.trackpadTimeoutId_=setTimeout(this.endInteraction_.bind(this),this.timeout_),a.adjustZoom(-o/this.deltaPerZoom_,this.lastAnchor_?n.getCoordinateFromPixel(this.lastAnchor_):null),this.startTime_=s,!1;this.totalDelta_+=o;let l=Math.max(this.timeout_-(s-this.startTime_),0);return clearTimeout(this.timeoutId_),this.timeoutId_=setTimeout(this.handleWheelZoom_.bind(this,n),l),!1}handleWheelZoom_(e){let t=e.getView();t.getAnimating()&&t.cancelAnimations();let n=-Ee(this.totalDelta_,-this.maxDelta_*this.deltaPerZoom_,this.maxDelta_*this.deltaPerZoom_)/this.deltaPerZoom_;(t.getConstrainResolution()||this.constrainResolution_)&&(n=n?n>0?1:-1:0),cl(t,n,this.lastAnchor_?e.getCoordinateFromPixel(this.lastAnchor_):null,this.duration_),this.mode_=void 0,this.totalDelta_=0,this.lastAnchor_=null,this.startTime_=void 0,this.timeoutId_=void 0}setMouseAnchor(e){this.useAnchor_=e,e||(this.lastAnchor_=null)}},hB=A0;var c0=class extends Bi{constructor(e){e=e||{};let t=e;t.stopDown||(t.stopDown=ji),super(t),this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.threshold_=e.threshold!==void 0?e.threshold:.3,this.duration_=e.duration!==void 0?e.duration:250}handleDragEvent(e){let t=0,n=this.targetPointers[0],r=this.targetPointers[1],o=Math.atan2(r.clientY-n.clientY,r.clientX-n.clientX);if(this.lastAngle_!==void 0){let l=o-this.lastAngle_;this.rotationDelta_+=l,!this.rotating_&&Math.abs(this.rotationDelta_)>this.threshold_&&(this.rotating_=!0),t=l}this.lastAngle_=o;let s=e.map,a=s.getView();a.getConstraints().rotation!==Al&&(this.anchor_=s.getCoordinateFromPixelInternal(s.getEventPixel(ul(this.targetPointers))),this.rotating_&&(s.render(),a.adjustRotationInternal(t,this.anchor_)))}handleUpEvent(e){return this.targetPointers.length<2?(e.map.getView().endInteraction(this.duration_),!1):!0}handleDownEvent(e){if(this.targetPointers.length>=2){let t=e.map;return this.anchor_=null,this.lastAngle_=void 0,this.rotating_=!1,this.rotationDelta_=0,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},uB=c0;var h0=class extends Bi{constructor(e){e=e||{};let t=e;t.stopDown||(t.stopDown=ji),super(t),this.anchor_=null,this.duration_=e.duration!==void 0?e.duration:400,this.lastDistance_=void 0,this.lastScaleDelta_=1}handleDragEvent(e){let t=1,n=this.targetPointers[0],r=this.targetPointers[1],o=n.clientX-r.clientX,s=n.clientY-r.clientY,a=Math.sqrt(o*o+s*s);this.lastDistance_!==void 0&&(t=this.lastDistance_/a),this.lastDistance_=a;let l=e.map,A=l.getView();t!=1&&(this.lastScaleDelta_=t),this.anchor_=l.getCoordinateFromPixelInternal(l.getEventPixel(ul(this.targetPointers))),l.render(),A.adjustResolutionInternal(t,this.anchor_)}handleUpEvent(e){if(this.targetPointers.length<2){let n=e.map.getView(),r=this.lastScaleDelta_>1?1:-1;return n.endInteraction(this.duration_,r),!1}return!0}handleDownEvent(e){if(this.targetPointers.length>=2){let t=e.map;return this.anchor_=null,this.lastDistance_=void 0,this.lastScaleDelta_=1,this.handlingDownUpSequence||t.getView().beginInteraction(),!0}return!1}},fB=h0;function gB(i){i=i||{};let e=new bt,t=new Hx(-.005,.05,100);return(i.altShiftDragRotate!==void 0?i.altShiftDragRotate:!0)&&e.push(new oB),(i.doubleClickZoom!==void 0?i.doubleClickZoom:!0)&&e.push(new $x({delta:i.zoomDelta,duration:i.zoomDuration})),(i.dragPan!==void 0?i.dragPan:!0)&&e.push(new rB({onFocusOnly:i.onFocusOnly,kinetic:t})),(i.pinchRotate!==void 0?i.pinchRotate:!0)&&e.push(new uB),(i.pinchZoom!==void 0?i.pinchZoom:!0)&&e.push(new fB({duration:i.zoomDuration})),(i.keyboard!==void 0?i.keyboard:!0)&&(e.push(new AB),e.push(new cB({delta:i.zoomDelta,duration:i.zoomDuration}))),(i.mouseWheelZoom!==void 0?i.mouseWheelZoom:!0)&&e.push(new hB({onFocusOnly:i.onFocusOnly,duration:i.zoomDuration})),(i.shiftDragZoom!==void 0?i.shiftDragZoom:!0)&&e.push(new lB({duration:i.zoomDuration})),e}var ur=class extends Pe{constructor(e,t){super(e),this.layer=t}},u0={LAYERS:"layers"},f0=class i extends Uu{constructor(e){e=e||{};let t=Object.assign({},e);delete t.layers;let n=e.layers;super(t),this.on,this.once,this.un,this.layersListenerKeys_=[],this.listenerKeys_={},this.addChangeListener(u0.LAYERS,this.handleLayersChanged_),n?Array.isArray(n)?n=new bt(n.slice(),{unique:!0}):he(typeof n.getArray=="function","Expected `layers` to be an array or a `Collection`"):n=new bt(void 0,{unique:!0}),this.setLayers(n)}handleLayerChange_(){this.changed()}handleLayersChanged_(){this.layersListenerKeys_.forEach(ce),this.layersListenerKeys_.length=0;let e=this.getLayers();this.layersListenerKeys_.push(ee(e,pt.ADD,this.handleLayersAdd_,this),ee(e,pt.REMOVE,this.handleLayersRemove_,this));for(let n in this.listenerKeys_)this.listenerKeys_[n].forEach(ce);Ln(this.listenerKeys_);let t=e.getArray();for(let n=0,r=t.length;n=0;--y){let w=p[y],T=w.layer;if(T.hasRenderer()&&cc(w,c)&&a.call(l,T)){let E=T.getRenderer(),x=T.getSource();if(E&&x){let B=x.getWrapX()?f:e,R=h.bind(null,w.managed);m[0]=B[0]+g[_][0],m[1]=B[1]+g[_][1],A=E.forEachFeatureAtCoordinate(m,t,n,R,I)}if(A)return A}}if(I.length===0)return;let C=1/I.length;return I.forEach((_,y)=>_.distanceSq+=y*C),I.sort((_,y)=>_.distanceSq-y.distanceSq),I.some(_=>A=_.callback(_.feature,_.layer,_.geometry)),A}hasFeatureAtCoordinate(e,t,n,r,o,s){return this.forEachFeatureAtCoordinate(e,t,n,r,bi,this,o,s)!==void 0}getMap(){return this.map_}renderFrame(e){ne()}scheduleExpireIconCache(e){Ci.canExpireCache()&&e.postRenderFunctions.push(Jb)}};function Jb(i,e){Ci.expire()}var dB=g0;var d0=class extends dB{constructor(e){super(e),this.fontChangeListenerKey_=ee(Br,In.PROPERTYCHANGE,e.redrawText,e),this.element_=document.createElement("div");let t=this.element_.style;t.position="absolute",t.width="100%",t.height="100%",t.zIndex="0",this.element_.className=qt+" ol-layers";let n=e.getViewport();n.insertBefore(this.element_,n.firstChild||null),this.children_=[],this.renderedVisible_=!0}dispatchRenderEvent(e,t){let n=this.getMap();if(n.hasListener(e)){let r=new fs(e,void 0,t);n.dispatchEvent(r)}}disposeInternal(){ce(this.fontChangeListenerKey_),this.element_.remove(),super.disposeInternal()}renderFrame(e){if(!e){this.renderedVisible_&&(this.element_.style.display="none",this.renderedVisible_=!1);return}this.calculateMatrices2D(e),this.dispatchRenderEvent(mt.PRECOMPOSE,e);let t=e.layerStatesArray.sort((a,l)=>a.zIndex-l.zIndex);t.some(a=>a.layer instanceof Vn&&a.layer.getDeclutter())&&(e.declutter={});let r=e.viewState;this.children_.length=0;let o=[],s=null;for(let a=0,l=t.length;a=0;--n){let r=t[n],o=r.layer;o.getDeclutter()&&o.renderDeclutter(e,r)}t.forEach(n=>n.layer.renderDeferred(e))}}},pB=d0;function mB(i){if(i instanceof hr){i.setMapInternal(null);return}i instanceof mc&&i.getLayers().forEach(mB)}function EB(i,e){if(i instanceof hr){i.setMapInternal(e);return}if(i instanceof mc){let t=i.getLayers().getArray();for(let n=0,r=t.length;nthis.updateSize()),this.controls=t.controls||Wx(),this.interactions=t.interactions||gB({onFocusOnly:!0}),this.overlays_=t.overlays,this.overlayIdIndex_={},this.renderer_=null,this.postRenderFunctions_=[],this.tileQueue_=new Xx(this.getTilePriority.bind(this),this.handleTileChange_.bind(this)),this.addChangeListener(Ct.LAYERGROUP,this.handleLayerGroupChanged_),this.addChangeListener(Ct.VIEW,this.handleViewChanged_),this.addChangeListener(Ct.SIZE,this.handleSizeChanged_),this.addChangeListener(Ct.TARGET,this.handleTargetChanged_),this.setProperties(t.values);let n=this;e.view&&!(e.view instanceof xi)&&e.view.then(function(r){n.setView(new xi(r))}),this.controls.addEventListener(pt.ADD,r=>{r.element.setMap(this)}),this.controls.addEventListener(pt.REMOVE,r=>{r.element.setMap(null)}),this.interactions.addEventListener(pt.ADD,r=>{r.element.setMap(this)}),this.interactions.addEventListener(pt.REMOVE,r=>{r.element.setMap(null)}),this.overlays_.addEventListener(pt.ADD,r=>{this.addOverlayInternal_(r.element)}),this.overlays_.addEventListener(pt.REMOVE,r=>{let o=r.element.getId();o!==void 0&&delete this.overlayIdIndex_[o.toString()],r.element.setMap(null)}),this.controls.forEach(r=>{r.setMap(this)}),this.interactions.forEach(r=>{r.setMap(this)}),this.overlays_.forEach(this.addOverlayInternal_.bind(this))}addControl(e){this.getControls().push(e)}addInteraction(e){this.getInteractions().push(e)}addLayer(e){this.getLayerGroup().getLayers().push(e)}handleLayerAdd_(e){EB(e.layer,this)}addOverlay(e){this.getOverlays().push(e)}addOverlayInternal_(e){let t=e.getId();t!==void 0&&(this.overlayIdIndex_[t.toString()]=e),e.setMap(this)}disposeInternal(){this.controls.clear(),this.interactions.clear(),this.overlays_.clear(),this.resizeObserver_.disconnect(),this.setTarget(null),super.disposeInternal()}forEachFeatureAtPixel(e,t,n){if(!this.frameState_||!this.renderer_)return;let r=this.getCoordinateFromPixelInternal(e);n=n!==void 0?n:{};let o=n.hitTolerance!==void 0?n.hitTolerance:0,s=n.layerFilter!==void 0?n.layerFilter:bi,a=n.checkWrapped!==!1;return this.renderer_.forEachFeatureAtCoordinate(r,this.frameState_,o,a,t,null,s,null)}getFeaturesAtPixel(e,t){let n=[];return this.forEachFeatureAtPixel(e,function(r){n.push(r)},t),n}getAllLayers(){let e=[];function t(n){n.forEach(function(r){r instanceof mc?t(r.getLayers()):e.push(r)})}return t(this.getLayers()),e}hasFeatureAtPixel(e,t){if(!this.frameState_||!this.renderer_)return!1;let n=this.getCoordinateFromPixelInternal(e);t=t!==void 0?t:{};let r=t.layerFilter!==void 0?t.layerFilter:bi,o=t.hitTolerance!==void 0?t.hitTolerance:0,s=t.checkWrapped!==!1;return this.renderer_.hasFeatureAtCoordinate(n,this.frameState_,o,s,r,null)}getEventCoordinate(e){return this.getCoordinateFromPixel(this.getEventPixel(e))}getEventCoordinateInternal(e){return this.getCoordinateFromPixelInternal(this.getEventPixel(e))}getEventPixel(e){let n=this.viewport_.getBoundingClientRect(),r=this.getSize(),o=n.width/r[0],s=n.height/r[1],a="changedTouches"in e?e.changedTouches[0]:e;return[(a.clientX-n.left)/o,(a.clientY-n.top)/s]}getTarget(){return this.get(Ct.TARGET)}getTargetElement(){return this.targetElement_}getCoordinateFromPixel(e){return Zi(this.getCoordinateFromPixelInternal(e),this.getView().getProjection())}getCoordinateFromPixelInternal(e){let t=this.frameState_;return t?be(t.pixelToCoordinateTransform,e.slice()):null}getControls(){return this.controls}getOverlays(){return this.overlays_}getOverlayById(e){let t=this.overlayIdIndex_[e.toString()];return t!==void 0?t:null}getInteractions(){return this.interactions}getLayerGroup(){return this.get(Ct.LAYERGROUP)}setLayers(e){let t=this.getLayerGroup();if(e instanceof bt){t.setLayers(e);return}let n=t.getLayers();n.clear(),n.extend(e)}getLayers(){return this.getLayerGroup().getLayers()}getLoadingOrNotReady(){let e=this.getLayerGroup().getLayerStatesArray();for(let t=0,n=e.length;t=0;o--){let s=r[o];if(s.getMap()!==this||!s.getActive()||!this.getTargetElement())continue;if(!s.handleEvent(e)||e.propagationStopped)break}}}handlePostRender(){let e=this.frameState_,t=this.tileQueue_;if(!t.isEmpty()){let r=this.maxTilesLoading_,o=r;if(e){let s=e.viewHints;if(s[Ne.ANIMATING]||s[Ne.INTERACTING]){let a=Date.now()-e.time>8;r=a?0:8,o=a?0:2}}t.getTilesLoading(){this.postRenderTimeoutHandle_=void 0,this.handlePostRender()},0))}setLayerGroup(e){let t=this.getLayerGroup();t&&this.handleLayerRemove_(new ur("removelayer",t)),this.set(Ct.LAYERGROUP,e)}setSize(e){this.set(Ct.SIZE,e)}setTarget(e){this.set(Ct.TARGET,e)}setView(e){if(!e||e instanceof xi){this.set(Ct.VIEW,e);return}this.set(Ct.VIEW,new xi);let t=this;e.then(function(n){t.setView(new xi(n))})}updateSize(){let e=this.getTargetElement(),t;if(e){let r=getComputedStyle(e),o=e.offsetWidth-parseFloat(r.borderLeftWidth)-parseFloat(r.paddingLeft)-parseFloat(r.paddingRight)-parseFloat(r.borderRightWidth),s=e.offsetHeight-parseFloat(r.borderTopWidth)-parseFloat(r.paddingTop)-parseFloat(r.paddingBottom)-parseFloat(r.borderBottomWidth);!isNaN(o)&&!isNaN(s)&&(t=[Math.max(0,o),Math.max(0,s)],!jp(t)&&(e.offsetWidth||e.offsetHeight||e.getClientRects().length)&&Kh("No map visible because the map container's width or height are 0."))}let n=this.getSize();t&&(!n||!Mt(t,n))&&(this.setSize(t),this.updateViewportSize_(t))}updateViewportSize_(e){let t=this.getView();t&&t.setViewportSize(e)}};function $b(i){let e=null;i.keyboardEventTarget!==void 0&&(e=typeof i.keyboardEventTarget=="string"?document.getElementById(i.keyboardEventTarget):i.keyboardEventTarget);let t={},n=i.layers&&typeof i.layers.getLayers=="function"?i.layers:new mc({layers:i.layers});t[Ct.LAYERGROUP]=n,t[Ct.TARGET]=i.target,t[Ct.VIEW]=i.view instanceof xi?i.view:new xi;let r;i.controls!==void 0&&(Array.isArray(i.controls)?r=new bt(i.controls.slice()):(he(typeof i.controls.getArray=="function","Expected `controls` to be an array or an `ol/Collection.js`"),r=i.controls));let o;i.interactions!==void 0&&(Array.isArray(i.interactions)?o=new bt(i.interactions.slice()):(he(typeof i.interactions.getArray=="function","Expected `interactions` to be an array or an `ol/Collection.js`"),o=i.interactions));let s;return i.overlays!==void 0?Array.isArray(i.overlays)?s=new bt(i.overlays.slice()):(he(typeof i.overlays.getArray=="function","Expected `overlays` to be an array or an `ol/Collection.js`"),s=i.overlays):s=new bt,{controls:r,interactions:o,keyboardEventTarget:e,overlays:s,values:t}}var Ec=p0;var wi={ELEMENT:"element",MAP:"map",OFFSET:"offset",POSITION:"position",POSITIONING:"positioning"},m0=class extends St{constructor(e){super(),this.on,this.once,this.un,this.options=e,this.id=e.id,this.insertFirst=e.insertFirst!==void 0?e.insertFirst:!0,this.stopEvent=e.stopEvent!==void 0?e.stopEvent:!0,this.element=document.createElement("div"),this.element.className=e.className!==void 0?e.className:"ol-overlay-container "+W_,this.element.style.position="absolute",this.element.style.pointerEvents="auto",this.autoPan=e.autoPan===!0?{}:e.autoPan||void 0,this.rendered={transform_:"",visible:!0},this.mapPostrenderListenerKey=null,this.addChangeListener(wi.ELEMENT,this.handleElementChanged),this.addChangeListener(wi.MAP,this.handleMapChanged),this.addChangeListener(wi.OFFSET,this.handleOffsetChanged),this.addChangeListener(wi.POSITION,this.handlePositionChanged),this.addChangeListener(wi.POSITIONING,this.handlePositioningChanged),e.element!==void 0&&this.setElement(e.element),this.setOffset(e.offset!==void 0?e.offset:[0,0]),this.setPositioning(e.positioning||"top-left"),e.position!==void 0&&this.setPosition(e.position)}getElement(){return this.get(wi.ELEMENT)}getId(){return this.id}getMap(){return this.get(wi.MAP)||null}getOffset(){return this.get(wi.OFFSET)}getPosition(){return this.get(wi.POSITION)}getPositioning(){return this.get(wi.POSITIONING)}handleElementChanged(){fu(this.element);let e=this.getElement();e&&this.element.appendChild(e)}handleMapChanged(){this.mapPostrenderListenerKey&&(this.element?.remove(),ce(this.mapPostrenderListenerKey),this.mapPostrenderListenerKey=null);let e=this.getMap();if(e){this.mapPostrenderListenerKey=ee(e,hn.POSTRENDER,this.render,this),this.updatePixelPosition();let t=this.stopEvent?e.getOverlayContainerStopEvent():e.getOverlayContainer();this.insertFirst?t.insertBefore(this.element,t.childNodes[0]||null):t.appendChild(this.element),this.performAutoPan()}}render(){this.updatePixelPosition()}handleOffsetChanged(){this.updatePixelPosition()}handlePositionChanged(){this.updatePixelPosition(),this.performAutoPan()}handlePositioningChanged(){this.updatePixelPosition()}setElement(e){this.set(wi.ELEMENT,e)}setMap(e){this.set(wi.MAP,e)}setOffset(e){this.set(wi.OFFSET,e)}setPosition(e){this.set(wi.POSITION,e)}performAutoPan(){this.autoPan&&this.panIntoView(this.autoPan)}panIntoView(e){let t=this.getMap();if(!t||!t.getTargetElement()||!this.get(wi.POSITION))return;let n=this.getRect(t.getTargetElement(),t.getSize()),r=this.getElement(),o=this.getRect(r,[N_(r),G_(r)]);e=e||{};let s=e.margin===void 0?20:e.margin;if(!Fi(n,o)){let a=o[0]-n[0],l=n[2]-o[2],A=o[1]-n[1],c=n[3]-o[3],h=[0,0];if(a<0?h[0]=a-s:l<0&&(h[0]=Math.abs(l)+s),A<0?h[1]=A-s:c<0&&(h[1]=Math.abs(c)+s),h[0]!==0||h[1]!==0){let u=t.getView().getCenterInternal(),f=t.getPixelFromCoordinateInternal(u);if(!f)return;let g=[f[0]+h[0],f[1]+h[1]],p=e.animation||{};t.getView().animateInternal({center:t.getCoordinateFromPixelInternal(g),duration:p.duration,easing:p.easing})}}}getRect(e,t){let n=e.getBoundingClientRect(),r=n.left+window.pageXOffset,o=n.top+window.pageYOffset;return[r,o,r+t[0],o+t[1]]}setPositioning(e){this.set(wi.POSITIONING,e)}setVisible(e){this.rendered.visible!==e&&(this.element.style.display=e?"":"none",this.rendered.visible=e)}updatePixelPosition(){let e=this.getMap(),t=this.getPosition();if(!e||!e.isRendered()||!t){this.setVisible(!1);return}let n=e.getPixelFromCoordinate(t),r=e.getSize();this.updateRenderedPosition(n,r)}updateRenderedPosition(e,t){let n=this.element.style,r=this.getOffset(),o=this.getPositioning();this.setVisible(!0);let s=Math.round(e[0]+r[0])+"px",a=Math.round(e[1]+r[1])+"px",l="0%",A="0%";o=="bottom-right"||o=="center-right"||o=="top-right"?l="-100%":(o=="bottom-center"||o=="center-center"||o=="top-center")&&(l="-50%"),o=="bottom-left"||o=="bottom-center"||o=="bottom-right"?A="-100%":(o=="center-left"||o=="center-center"||o=="center-right")&&(A="-50%");let c=`translate(${l}, ${A}) translate(${s}, ${a})`;this.rendered.transform_!=c&&(this.rendered.transform_=c,n.transform=c)}getOptions(){return this.options}},Xu=m0;var ju=class{constructor(e,t,n,r){this.minX=e,this.maxX=t,this.minY=n,this.maxY=r}contains(e){return this.containsXY(e[1],e[2])}containsTileRange(e){return this.minX<=e.minX&&e.maxX<=this.maxX&&this.minY<=e.minY&&e.maxY<=this.maxY}containsXY(e,t){return this.minX<=e&&e<=this.maxX&&this.minY<=t&&t<=this.maxY}equals(e){return this.minX==e.minX&&this.minY==e.minY&&this.maxX==e.maxX&&this.maxY==e.maxY}extend(e){e.minXthis.maxX&&(this.maxX=e.maxX),e.minYthis.maxY&&(this.maxY=e.maxY)}getHeight(){return this.maxY-this.minY+1}getSize(){return[this.getWidth(),this.getHeight()]}getWidth(){return this.maxX-this.minX+1}intersects(e){return this.minX<=e.maxX&&this.maxX>=e.minX&&this.minY<=e.maxY&&this.maxY>=e.minY}};function na(i,e,t,n,r){return r!==void 0?(r.minX=i,r.maxX=e,r.minY=t,r.maxY=n,r):new ju(i,e,t,n)}var gl=ju;var IB=[],E0=class extends br{constructor(e,t,n,r,o){super(e,t,{transition:0}),this.context_=null,this.executorGroups={},this.loadingSourceTiles=0,this.hitDetectionImageData={},this.replayState_={},this.sourceTiles=[],this.errorTileKeys={},this.wantedResolution,this.getSourceTiles=r.bind(void 0,this),this.removeSourceTiles_=o,this.wrappedTileCoord=n}getContext(){return this.context_||(this.context_=Re(1,1,IB)),this.context_}hasContext(){return!!this.context_}getImage(){return this.hasContext()?this.getContext().canvas:null}getReplayState(e){let t=W(e);return t in this.replayState_||(this.replayState_[t]={dirty:!1,renderedRenderOrder:null,renderedResolution:NaN,renderedRevision:-1,renderedTileResolution:NaN,renderedTileRevision:-1,renderedTileZ:-1}),this.replayState_[t]}load(){this.getSourceTiles()}release(){this.context_&&(oo(this.context_),IB.push(this.context_.canvas),this.context_=null),this.removeSourceTiles_(this),this.sourceTiles.length=0,super.release()}},CB=E0;var I0=class extends br{constructor(e,t,n,r,o,s){super(e,t,s),this.extent=null,this.format_=r,this.features_=null,this.loader_,this.projection=null,this.resolution,this.tileLoadFunction_=o,this.url_=n,this.key=n}getTileUrl(){return this.url_}getFormat(){return this.format_}getFeatures(){return this.features_}load(){this.state==V.IDLE&&(this.setState(V.LOADING),this.tileLoadFunction_(this,this.url_),this.loader_&&this.loader_(this.extent,this.resolution,this.projection))}onLoad(e,t){this.setFeatures(e)}onError(){this.setState(V.ERROR)}setFeatures(e){this.features_=e,this.setState(V.LOADED)}setLoader(e){this.loader_=e}},yB=I0;var C0=class{constructor(){this.dataProjection=void 0,this.defaultFeatureProjection=void 0,this.featureClass=Oe,this.supportedMediaTypes=null}getReadOptions(e,t){if(t){let n=t.dataProjection?fe(t.dataProjection):this.readProjection(e);t.extent&&n&&n.getUnits()==="tile-pixels"&&(n=fe(n),n.setWorldExtent(t.extent)),t={dataProjection:n,featureProjection:t.featureProjection}}return this.adaptOptions(t)}adaptOptions(e){return Object.assign({dataProjection:this.dataProjection,featureProjection:this.defaultFeatureProjection,featureClass:this.featureClass},e)}getType(){return ne()}readFeature(e,t){return ne()}readFeatures(e,t){return ne()}readGeometry(e,t){return ne()}readProjection(e){return ne()}writeFeature(e,t){return ne()}writeFeatures(e,t){return ne()}writeGeometry(e,t){return ne()}},Es=C0;function Ot(i,e,t){let n=t?fe(t.featureProjection):null,r=t?fe(t.dataProjection):null,o=i;if(n&&r&&!On(n,r)){e&&(o=i.clone());let s=e?n:r,a=e?r:n;s.getUnits()==="tile-pixels"?o.transform(s,a):o.applyTransform(ro(s,a))}if(e&&t&&t.decimals!==void 0){let s=Math.pow(10,t.decimals),a=function(l){for(let A=0,c=l.length;Ay0({...i,geometry:o})).flat();let n=t.type==="MultiPolygon"?"Polygon":t.type;if(n==="GeometryCollection"||n==="Circle")throw new Error("Unsupported geometry type: "+n);let r=t.layout.length;return Ot(new yi(n,n==="Polygon"?eD(t.flatCoordinates,t.ends,r):t.flatCoordinates,t.ends?.flat(),r,i.properties||{},i.id).enableSimplifyTransformed(),!1,e)}function Wu(i,e){if(!i)return null;if(Array.isArray(i)){let n=i.map(r=>Wu(r,e));return new Pi(n)}let t=Zb[i.type];return Ot(new t(i.flatCoordinates,i.layout||"XY",i.ends),!1,e)}var _0=class extends Es{constructor(){super()}getType(){return"json"}readFeature(e,t){return this.readFeatureFromObject(Ju(e),this.getReadOptions(e,t))}readFeatures(e,t){return this.readFeaturesFromObject(Ju(e),this.getReadOptions(e,t))}readFeatureFromObject(e,t){return ne()}readFeaturesFromObject(e,t){return ne()}readGeometry(e,t){return this.readGeometryFromObject(Ju(e),this.getReadOptions(e,t))}readGeometryFromObject(e,t){return ne()}readProjection(e){return this.readProjectionFromObject(Ju(e))}readProjectionFromObject(e){return ne()}writeFeature(e,t){return JSON.stringify(this.writeFeatureObject(e,t))}writeFeatureObject(e,t){return ne()}writeFeatures(e,t){return JSON.stringify(this.writeFeaturesObject(e,t))}writeFeaturesObject(e,t){return ne()}writeGeometry(e,t){return JSON.stringify(this.writeGeometryObject(e,t))}writeGeometryObject(e,t){return ne()}};function Ju(i){if(typeof i=="string"){let e=JSON.parse(i);return e||null}return i!==null?i:null}var $u=_0;var x0=class extends $u{constructor(e){e=e||{},super(),this.dataProjection=fe(e.dataProjection?e.dataProjection:"EPSG:4326"),e.featureProjection&&(this.defaultFeatureProjection=fe(e.featureProjection)),e.featureClass&&(this.featureClass=e.featureClass),this.geometryName_=e.geometryName,this.extractGeometryName_=e.extractGeometryName,this.supportedMediaTypes=["application/geo+json","application/vnd.geo+json"]}readFeatureFromObject(e,t){let n=null;e.type==="Feature"?n=e:n={type:"Feature",geometry:e,properties:null};let r=w0(n.geometry,t);if(this.featureClass===yi)return y0({geometry:r,id:n.id,properties:n.properties},t);let o=new Oe;return this.geometryName_?o.setGeometryName(this.geometryName_):this.extractGeometryName_&&n.geometry_name&&o.setGeometryName(n.geometry_name),o.setGeometry(Wu(r,t)),"id"in n&&o.setId(n.id),n.properties&&o.setProperties(n.properties,!0),o}readFeaturesFromObject(e,t){let n=e,r=null;if(n.type==="FeatureCollection"){let o=e;r=[];let s=o.features;for(let a=0,l=s.length;a=0;--r){let o=n[r];for(let s=this.dragSegments_.length-1;s>=0;--s)this.dragSegments_[s][0]===o&&this.dragSegments_.splice(s,1);t.remove(o)}}setActive(e){this.vertexFeature_&&!e&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),super.setActive(e)}setMap(e){this.overlay_.setMap(e),super.setMap(e)}getOverlay(){return this.overlay_}handleSourceAdd_(e){e.feature&&this.features_.push(e.feature)}handleSourceRemove_(e){e.feature&&this.features_.remove(e.feature)}handleFeatureAdd_(e){this.addFeature_(e.element)}handleFeatureChange_(e){if(!this.changingFeature_){let t=e.target;this.removeFeature_(t),this.addFeature_(t)}}handleFeatureRemove_(e){this.removeFeature_(e.element)}writePointGeometry_(e,t){let n=t.getCoordinates(),r={feature:e,geometry:t,segment:[n,n]};this.rBush_.insert(t.getExtent(),r)}writeMultiPointGeometry_(e,t){let n=t.getCoordinates();for(let r=0,o=n.length;ro));let t=[e.coordinate[0]+this.delta_[0],e.coordinate[1]+this.delta_[1]],n=[],r=[];for(let o=0,s=this.dragSegments_.length;o=0;--o)this.insertVertex_(n[o],r);this.ignoreNextSingleClick_=!0}return!!this.vertexFeature_}handleUpEvent(e){for(let t=this.dragSegments_.length-1;t>=0;--t){let n=this.dragSegments_[t][0],r=n.geometry;if(r.getType()==="Circle"){let o=r,s=o.getCenter(),a=n.featureSegments[0],l=n.featureSegments[1];a.segment[0]=s,a.segment[1]=s,l.segment[0]=s,l.segment[1]=s,this.rBush_.update(Wo(s),a);let A=o,c=st();if(c){let h=e.map.getView().getProjection();A=A.clone().transform(c,h),A=qa(A).transform(h,c)}this.rBush_.update(A.getExtent(),l)}else this.rBush_.update(At(n.segment),n)}return this.featuresBeingModified_&&(this.dispatchEvent(new Cc(v0.MODIFYEND,this.featuresBeingModified_,e)),this.featuresBeingModified_=null),!1}handlePointerMove_(e){this.lastPixel_=e.pixel,this.handlePointerAtPixel_(e.coordinate)}handlePointerAtPixel_(e){let t=this.getMap(),n=t.getPixelFromCoordinate(e),r=t.getView().getProjection(),o=function(l,A){return BB(e,l,r)-BB(e,A,r)},s,a;if(this.hitDetection_){let l=typeof this.hitDetection_=="object"?A=>A===this.hitDetection_:void 0;t.forEachFeatureAtPixel(n,(A,c,h)=>{h&&h.getType()==="Point"&&(h=new at(Zi(h.getCoordinates(),r)));let u=h||A.getGeometry();if(u&&u.getType()==="Point"&&A instanceof Oe&&this.features_.getArray().includes(A)){a=u;let f=A.getGeometry().getFlatCoordinates().slice(0,2);s=[{feature:A,geometry:a,segment:[f,f]}]}return!0},{layerFilter:l})}if(!s){let l=Bt(Wo(e,xB),r),A=t.getView().getResolution()*this.pixelTolerance_,c=Ei(Vt(l,A,xB),r);s=this.rBush_.getInExtent(c)}if(s&&s.length>0){let l=s.sort(o)[0],A=l.segment,c=wB(e,l,r),h=t.getPixelFromCoordinate(c),u=Pa(n,h);if(a||u<=this.pixelTolerance_){let f={};if(f[W(A)]=!0,this.snapToPointer_||(this.delta_[0]=c[0]-e[0],this.delta_[1]=c[1]-e[1]),l.geometry.getType()==="Circle"&&l.index===Ic)this.snappedToVertex_=!0,this.createOrUpdateVertexFeature_(c,[l.feature],[l.geometry],this.snappedToVertex_);else{let g=t.getPixelFromCoordinate(A[0]),p=t.getPixelFromCoordinate(A[1]),d=kn(h,g),I=kn(h,p);if(u=Math.sqrt(Math.min(d,I)),this.snappedToVertex_=u<=this.pixelTolerance_,!this.snappedToVertex_&&!this.insertVertexCondition_(this.lastPointerEvent_)){this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null);return}this.snappedToVertex_&&(c=d>I?A[1]:A[0]),this.createOrUpdateVertexFeature_(c,[l.feature],[l.geometry],this.snappedToVertex_);let m={};m[W(l.geometry)]=!0;for(let C=1,_=s.length;C<_;++C){let y=s[C].segment;if(Ht(A[0],y[0])&&Ht(A[1],y[1])||Ht(A[0],y[1])&&Ht(A[1],y[0])){let w=W(s[C].geometry);w in m||(m[w]=!0,f[W(y)]=!0)}else break}}this.vertexSegments_=f;return}}this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null)}insertVertex_(e,t){let n=e.segment,r=e.feature,o=e.geometry,s=e.depth,a=e.index,l;for(;t.lengthn.getType()==="Circle"||n.getType().endsWith("Point")))return!1;let e=this.vertexFeature_.getGeometry().getCoordinates();return this.rBush_.getInExtent(At([e])).some(({segment:n})=>Ht(n[0],e)||Ht(n[1],e))}removePoint(e){if(e&&(e=Ke(e,this.getMap().getView().getProjection()),this.updatePointer_(e)),!this.lastPointerEvent_||this.lastPointerEvent_&&this.lastPointerEvent_.type!=xe.POINTERDRAG){let t=this.lastPointerEvent_;this.willModifyFeatures_(t,this.dragSegments_.map(([r])=>r));let n=this.removeVertex_();return this.featuresBeingModified_&&this.dispatchEvent(new Cc(v0.MODIFYEND,this.featuresBeingModified_,t)),this.featuresBeingModified_=null,n}return!1}removeVertex_(){let e=this.dragSegments_,t={},n=!1,r,o,s,a,l,A,c,h,u,f,g;for(l=e.length-1;l>=0;--l)s=e[l],f=s[0],g=W(f.feature),f.depth&&(g+="-"+f.depth.join("-")),g in t||(t[g]={}),s[1]===0?(t[g].right=f,t[g].index=f.index):s[1]==1&&(t[g].left=f,t[g].index=f.index+1);for(g in t){switch(u=t[g].right,c=t[g].left,A=t[g].index,h=A-1,c!==void 0?f=c:f=u,h<0&&(h=0),a=f.geometry,o=a.getCoordinates(),r=o,n=!1,a.getType()){case"MultiLineString":o[f.depth[0]].length>2&&(o[f.depth[0]].splice(A,1),n=!0);break;case"LineString":o.length>2&&(o.splice(A,1),n=!0);break;case"MultiPolygon":r=r[f.depth[1]];case"Polygon":r=r[f.depth[0]],r.length>4&&(A==r.length-1&&(A=0),r.splice(A,1),n=!0,A===0&&(r.pop(),r.push(r[0]),h=r.length-1));break;default:}if(n){this.setGeometryCoordinates_(a,o);let p=[];if(c!==void 0&&(this.rBush_.remove(c),p.push(c.segment[0])),u!==void 0&&(this.rBush_.remove(u),p.push(u.segment[1])),c!==void 0&&u!==void 0){let d={depth:f.depth,feature:f.feature,geometry:f.geometry,index:h,segment:p};this.rBush_.insert(At(d.segment),d)}this.updateSegmentIndices_(a,A,f.depth,-1),this.vertexFeature_&&(this.overlay_.getSource().removeFeature(this.vertexFeature_),this.vertexFeature_=null),e.length=0}}return n}canInsertPoint(){if(!this.vertexFeature_||this.vertexFeature_.get("geometries").every(n=>n.getType()==="Circle"||n.getType().endsWith("Point")))return!1;let e=this.vertexFeature_.getGeometry().getCoordinates();return this.rBush_.getInExtent(At([e])).some(({segment:n})=>!(Ht(n[0],e)||Ht(n[1],e)))}insertPoint(e){let t=e?Ke(e,this.getMap().getView().getProjection()):this.vertexFeature_?.getGeometry().getCoordinates();return t?this.findInsertVerticesAndUpdateDragSegments_(t).reduce((r,o)=>r||this.insertVertex_(o,t),!1):!1}setGeometryCoordinates_(e,t){this.changingFeature_=!0,e.setCoordinates(t),this.changingFeature_=!1}updateSegmentIndices_(e,t,n,r){this.rBush_.forEachInExtent(e.getExtent(),function(o){o.geometry===e&&(n===void 0||o.depth===void 0||Mt(o.depth,n))&&o.index>t&&(o.index+=r)})}};function pD(i,e){return i.index-e.index}function BB(i,e,t){let n=e.geometry;if(n.getType()==="Circle"){let o=n;if(e.index===Ic){let s=st();s&&(o=o.clone().transform(s,t));let a=kn(o.getCenter(),Ke(i,t)),l=Math.sqrt(a)-o.getRadius();return l*l}}let r=Ke(i,t);return dl[0]=Ke(e.segment[0],t),dl[1]=Ke(e.segment[1],t),Ky(r,dl)}function wB(i,e,t){let n=e.geometry;if(n.getType()==="Circle"&&e.index===Ic){let o=n,s=st();return s&&(o=o.clone().transform(s,t)),Zi(o.getClosestPoint(Ke(i,t)),t)}let r=Ke(i,t);return dl[0]=Ke(e.segment[0],t),dl[1]=Ke(e.segment[1],t),Zi(BA(r,dl),t)}function mD(){let i=Tu();return function(e,t){return i.Point}}var Zu=S0;var ef={SNAP:"snap",UNSNAP:"unsnap"},pl=class extends Pe{constructor(e,t){super(e),this.vertex=t.vertex,this.vertexPixel=t.vertexPixel,this.feature=t.feature,this.segment=t.segment}};var R0={Circle(i,e){let t=i,n=st();n&&(t=t.clone().transform(n,e));let r=qa(t);return n&&r.transform(e,n),R0.Polygon(r)},GeometryCollection(i,e){let t=[],n=i.getGeometriesArray();for(let r=0;r=0;--l)s.remove(a[l])}n&&(ce(this.featureChangeListenerKeys_[r]),delete this.featureChangeListenerKeys_[r])}setMap(e){let t=this.getMap(),n=this.featuresListenerKeys_,r=this.getFeatures_();if(Array.isArray(r)||(r=r.getArray()),t&&(n.forEach(ce),n.length=0,this.rBush_.clear(),Object.values(this.featureChangeListenerKeys_).forEach(ce),this.featureChangeListenerKeys_={}),super.setMap(e),e){this.features_?n.push(ee(this.features_,pt.ADD,this.handleFeatureAdd_,this),ee(this.features_,pt.REMOVE,this.handleFeatureRemove_,this)):this.source_&&n.push(ee(this.source_,Et.ADDFEATURE,this.handleFeatureAdd_,this),ee(this.source_,Et.REMOVEFEATURE,this.handleFeatureRemove_,this));for(let o of r)this.addFeature(o)}}snapTo(e,t,n){let r=n.getView().getProjection(),o=Ke(t,r),s=Ei(Vt(At([o]),n.getView().getResolution()*this.pixelTolerance_),r),a=this.rBush_.getInExtent(s),l=a.length;if(l===0)return null;let A,c=1/0,h,u=null,f,g=this.pixelTolerance_*this.pixelTolerance_,p=()=>{if(A){let d=n.getPixelFromCoordinate(A);if(kn(e,d)<=g&&(f&&this.intersection_||!f&&(this.vertex_||this.edge_)))return{vertex:A,vertexPixel:[Math.round(d[0]),Math.round(d[1])],feature:h,segment:u}}return null};if(this.vertex_||this.intersection_){for(let I=0;I2||Math.abs(i[e*4+3]-.75*255)>2}function CD(){if(D0===void 0){let i=Re(6,6,ra);i.globalCompositeOperation="lighter",i.fillStyle="rgba(210, 0, 0, 0.75)",TB(i,4,5,4,0),TB(i,4,5,0,5);let e=i.getImageData(0,0,3,3).data;D0=F0(e,0)||F0(e,4)||F0(e,8),oo(i),ra.push(i.canvas)}return D0}function RB(i,e,t,n){let r=ts(t,e,i),o=za(e,n,t),s=e.getMetersPerUnit();s!==void 0&&(o*=s);let a=i.getMetersPerUnit();a!==void 0&&(o/=a);let l=i.getExtent();if(!l||di(l,r)){let A=za(i,o,r)/o;isFinite(A)&&A>0&&(o/=A)}return o}function nf(i,e,t,n){let r=pi(t),o=RB(i,e,r,n);return(!isFinite(o)||o<=0)&&Da(t,function(s){return o=RB(i,e,s,n),isFinite(o)&&o>0}),o}function QB(i,e,t,n,r,o,s,a,l,A,c,h,u,f){let g=Re(Math.round(t*i),Math.round(t*e),ra);if(h||(g.imageSmoothingEnabled=!1),l.length===0)return g.canvas;g.scale(t,t);function p(y){return Math.round(y*t)/t}g.globalCompositeOperation="lighter";let d=ot();l.forEach(function(y,w,T){ba(d,y.extent)});let I,m=t/n,C=(h?1:1+Math.pow(2,-24))/m;if(!u||l.length!==1||A!==0){if(I=Re(Math.round(ue(d)*m),Math.round(qe(d)*m),ra),h||(I.imageSmoothingEnabled=!1),r&&f){let y=(r[0]-d[0])*m,w=-(r[3]-d[3])*m,T=ue(r)*m,E=qe(r)*m;I.rect(y,w,T,E),I.clip()}l.forEach(function(y,w,T){if(y.image.width>0&&y.image.height>0){if(y.clipExtent){I.save();let v=(y.clipExtent[0]-d[0])*m,D=-(y.clipExtent[3]-d[3])*m,Q=ue(y.clipExtent)*m,S=qe(y.clipExtent)*m;I.rect(h?v:Math.round(v),h?D:Math.round(D),h?Q:Math.round(v+Q)-Math.round(v),h?S:Math.round(D+S)-Math.round(D)),I.clip()}let E=(y.extent[0]-d[0])*m,x=-(y.extent[3]-d[3])*m,B=ue(y.extent)*m,R=qe(y.extent)*m;I.drawImage(y.image,A,A,y.image.width-2*A,y.image.height-2*A,h?E:Math.round(E),h?x:Math.round(x),h?B:Math.round(E+B)-Math.round(E),h?R:Math.round(x+R)-Math.round(x)),y.clipExtent&&I.restore()}})}let _=Pt(s);return a.getTriangles().forEach(function(y,w,T){let E=y.source,x=y.target,B=E[0][0],R=E[0][1],v=E[1][0],D=E[1][1],Q=E[2][0],S=E[2][1],b=p((x[0][0]-_[0])/o),F=p(-(x[0][1]-_[1])/o),M=p((x[1][0]-_[0])/o),k=p(-(x[1][1]-_[1])/o),P=p((x[2][0]-_[0])/o),U=p(-(x[2][1]-_[1])/o),N=B,j=R;B=0,R=0,v-=N,D-=j,Q-=N,S-=j;let X=[[v,D,0,0,M-b],[Q,S,0,0,P-b],[0,0,v,D,k-F],[0,0,Q,S,U-F]],z=zy(X);if(!z)return;if(g.save(),g.beginPath(),CD()||!h){g.moveTo(M,k);let Z=4,ge=b-M,me=F-k;for(let de=0;debe(a,ts(C,this.targetProj_,this.sourceProj_))):ro(this.targetProj_,this.sourceProj_);this.transformInv_=function(C){let _=C[0]+"/"+C[1];return l[_]||(l[_]=A(C)),l[_]},this.maxSourceExtent_=r,this.errorThresholdSquared_=o*o,this.triangles_=[],this.wrapsXInSource_=!1,this.canWrapXInSource_=this.sourceProj_.canWrapX()&&!!r&&!!this.sourceProj_.getExtent()&&ue(r)>=ue(this.sourceProj_.getExtent()),this.sourceWorldWidth_=this.sourceProj_.getExtent()?ue(this.sourceProj_.getExtent()):null,this.targetWorldWidth_=this.targetProj_.getExtent()?ue(this.targetProj_.getExtent()):null;let c=Pt(n),h=Gs(n),u=io(n),f=Ns(n),g=this.transformInv_(c),p=this.transformInv_(h),d=this.transformInv_(u),I=this.transformInv_(f),m=yD+(s?Math.max(0,Math.ceil(Math.log2(Jo(n)/(s*s*256*256)))):0);if(this.addQuad_(c,h,u,f,g,p,d,I,m),this.wrapsXInSource_){let C=1/0;this.triangles_.forEach(function(_,y,w){C=Math.min(C,_.source[0][0],_.source[1][0],_.source[2][0])}),this.triangles_.forEach(_=>{if(Math.max(_.source[0][0],_.source[1][0],_.source[2][0])-C>this.sourceWorldWidth_/2){let y=[[_.source[0][0],_.source[0][1]],[_.source[1][0],_.source[1][1]],[_.source[2][0],_.source[2][1]]];y[0][0]-C>this.sourceWorldWidth_/2&&(y[0][0]-=this.sourceWorldWidth_),y[1][0]-C>this.sourceWorldWidth_/2&&(y[1][0]-=this.sourceWorldWidth_),y[2][0]-C>this.sourceWorldWidth_/2&&(y[2][0]-=this.sourceWorldWidth_);let w=Math.min(y[0][0],y[1][0],y[2][0]);Math.max(y[0][0],y[1][0],y[2][0])-w.5&&h<1,g=!1;if(A>0){if(this.targetProj_.isGlobal()&&this.targetWorldWidth_){let d=At([e,t,n,r]);g=ue(d)/this.targetWorldWidth_>bB||g}!f&&this.sourceProj_.isGlobal()&&h&&(g=h>bB||g)}if(!g&&this.maxSourceExtent_&&isFinite(c[0])&&isFinite(c[1])&&isFinite(c[2])&&isFinite(c[3])&&!Qe(c,this.maxSourceExtent_))return;let p=0;if(!g&&(!isFinite(o[0])||!isFinite(o[1])||!isFinite(s[0])||!isFinite(s[1])||!isFinite(a[0])||!isFinite(a[1])||!isFinite(l[0])||!isFinite(l[1]))){if(A>0)g=!0;else if(p=(!isFinite(o[0])||!isFinite(o[1])?8:0)+(!isFinite(s[0])||!isFinite(s[1])?4:0)+(!isFinite(a[0])||!isFinite(a[1])?2:0)+(!isFinite(l[0])||!isFinite(l[1])?1:0),p!=1&&p!=2&&p!=4&&p!=8)return}if(A>0){if(!g){let d=[(e[0]+n[0])/2,(e[1]+n[1])/2],I=this.transformInv_(d),m;f?m=(ki(o[0],u)+ki(a[0],u))/2-ki(I[0],u):m=(o[0]+a[0])/2-I[0];let C=(o[1]+a[1])/2-I[1];g=m*m+C*C>this.errorThresholdSquared_}if(g){if(Math.abs(e[0]-n[0])<=Math.abs(e[1]-n[1])){let d=[(t[0]+n[0])/2,(t[1]+n[1])/2],I=this.transformInv_(d),m=[(r[0]+e[0])/2,(r[1]+e[1])/2],C=this.transformInv_(m);this.addQuad_(e,t,d,m,o,s,I,C,A-1),this.addQuad_(m,d,n,r,C,I,a,l,A-1)}else{let d=[(e[0]+t[0])/2,(e[1]+t[1])/2],I=this.transformInv_(d),m=[(n[0]+r[0])/2,(n[1]+r[1])/2],C=this.transformInv_(m);this.addQuad_(e,d,m,r,o,I,C,l,A-1),this.addQuad_(d,t,n,m,I,s,a,C,A-1)}return}}if(f){if(!this.canWrapXInSource_)return;this.wrapsXInSource_=!0}(p&11)==0&&this.addTriangle_(e,n,r,o,a,l),(p&14)==0&&this.addTriangle_(e,n,t,o,a,s),p&&((p&13)==0&&this.addTriangle_(t,r,e,s,l,o),(p&7)==0&&this.addTriangle_(t,r,n,s,l,a))}calculateSourceExtent(){let e=ot();return this.triangles_.forEach(function(t,n,r){let o=t.source;Ps(e,o[0]),Ps(e,o[1]),Ps(e,o[2])}),e}getTriangles(){return this.triangles_}},rf=L0;var M0=class extends br{constructor(e,t,n,r,o,s,a,l,A,c,h,u){super(o,V.IDLE,u),this.renderEdges_=h!==void 0?h:!1,this.pixelRatio_=a,this.gutter_=l,this.canvas_=null,this.sourceTileGrid_=t,this.targetTileGrid_=r,this.wrappedTileCoord_=s||o,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0,this.clipExtent_=e.canWrapX()?e.getExtent():void 0;let f=r.getTileCoordExtent(this.wrappedTileCoord_),g=this.targetTileGrid_.getExtent(),p=this.sourceTileGrid_.getExtent(),d=g?Ze(f,g):f;if(Jo(d)===0){this.state=V.EMPTY;return}let I=e.getExtent();I&&(p?p=Ze(p,I):p=I);let m=r.getResolution(this.wrappedTileCoord_[0]),C=nf(e,n,d,m);if(!isFinite(C)||C<=0){this.state=V.EMPTY;return}let _=c!==void 0?c:.5;if(this.triangulation_=new rf(e,n,d,p,C*_,m),this.triangulation_.getTriangles().length===0){this.state=V.EMPTY;return}this.sourceZ_=t.getZForResolution(C);let y=this.triangulation_.calculateSourceExtent();if(p&&(e.canWrapX()?(y[1]=Ee(y[1],p[1],p[3]),y[3]=Ee(y[3],p[1],p[3])):y=Ze(y,p)),!Jo(y))this.state=V.EMPTY;else{let w=0,T=0;e.canWrapX()&&(w=ue(I),T=Math.floor((y[0]-I[0])/w)),La(y.slice(),e,!0).forEach(x=>{let B=t.getTileRangeForExtentAndZ(x,this.sourceZ_);for(let R=B.minX;R<=B.maxX;R++)for(let v=B.minY;v<=B.maxY;v++){let D=A(this.sourceZ_,R,v,a);if(D){let Q=T*w;this.sourceTiles_.push({tile:D,offset:Q})}}++T}),this.sourceTiles_.length===0&&(this.state=V.EMPTY)}}getImage(){return this.canvas_}reproject_(){let e=[];if(this.sourceTiles_.forEach(t=>{let n=t.tile;if(n&&n.getState()==V.LOADED){let r=this.sourceTileGrid_.getTileCoordExtent(n.tileCoord);r[0]+=t.offset,r[2]+=t.offset;let o=this.clipExtent_?.slice();o&&(o[0]+=t.offset,o[2]+=t.offset),e.push({extent:r,clipExtent:o,image:n.getImage()})}}),this.sourceTiles_.length=0,e.length===0)this.state=V.ERROR;else{let t=this.wrappedTileCoord_[0],n=this.targetTileGrid_.getTileSize(t),r=typeof n=="number"?n:n[0],o=typeof n=="number"?n:n[1],s=this.targetTileGrid_.getResolution(t),a=this.sourceTileGrid_.getResolution(this.sourceZ_),l=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_);this.canvas_=QB(r,o,this.pixelRatio_,a,this.sourceTileGrid_.getExtent(),s,l,this.triangulation_,e,this.gutter_,this.renderEdges_,this.interpolate),this.state=V.LOADED}this.changed()}load(){if(this.state==V.IDLE){this.state=V.LOADING,this.changed();let e=0;this.sourcesListenerKeys_=[],this.sourceTiles_.forEach(({tile:t})=>{let n=t.getState();if(n==V.IDLE||n==V.LOADING){e++;let r=ee(t,K.CHANGE,o=>{let s=t.getState();(s==V.LOADED||s==V.ERROR||s==V.EMPTY)&&(ce(r),e--,e===0&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(r)}}),e===0?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:t},n,r){t.getState()==V.IDLE&&t.load()})}}unlistenSources_(){this.sourcesListenerKeys_.forEach(ce),this.sourcesListenerKeys_=null}release(){this.canvas_&&(oo(this.canvas_.getContext("2d")),ra.push(this.canvas_),this.canvas_=null),super.release()}},Il=M0;var k0=class{constructor(e){this.highWaterMark=e!==void 0?e:2048,this.count_=0,this.entries_={},this.oldest_=null,this.newest_=null}deleteOldest(){let e=this.pop();e instanceof xr&&e.dispose()}canExpireCache(){return this.highWaterMark>0&&this.getCount()>this.highWaterMark}expireCache(e){for(;this.canExpireCache();)this.deleteOldest()}clear(){for(;this.oldest_;)this.deleteOldest()}containsKey(e){return this.entries_.hasOwnProperty(e)}forEach(e){let t=this.oldest_;for(;t;)e(t.value_,t.key_,this),t=t.newer}get(e,t){let n=this.entries_[e];return he(n!==void 0,"Tried to get a value for a key that does not exist in the cache"),n===this.newest_||(n===this.oldest_?(this.oldest_=this.oldest_.newer,this.oldest_.older=null):(n.newer.older=n.older,n.older.newer=n.newer),n.newer=null,n.older=this.newest_,this.newest_.newer=n,this.newest_=n),n.value_}remove(e){let t=this.entries_[e];return he(t!==void 0,"Tried to get a value for a key that does not exist in the cache"),t===this.newest_?(this.newest_=t.older,this.newest_&&(this.newest_.newer=null)):t===this.oldest_?(this.oldest_=t.newer,this.oldest_&&(this.oldest_.older=null)):(t.newer.older=t.older,t.older.newer=t.newer),delete this.entries_[e],--this.count_,t.value_}getCount(){return this.count_}getKeys(){let e=new Array(this.count_),t=0,n;for(n=this.newest_;n;n=n.older)e[t++]=n.key_;return e}getValues(){let e=new Array(this.count_),t=0,n;for(n=this.newest_;n;n=n.older)e[t++]=n.value_;return e}peekLast(){return this.oldest_.value_}peekLastKey(){return this.oldest_.key_}peekFirstKey(){return this.newest_.key_}peek(e){return this.entries_[e]?.value_}pop(){let e=this.oldest_;return delete this.entries_[e.key_],e.newer&&(e.newer.older=null),this.oldest_=e.newer,this.oldest_||(this.newest_=null),--this.count_,e.value_}replace(e,t){this.get(e),this.entries_[e].value_=t}set(e,t){he(!(e in this.entries_),"Tried to set a value for a key that is used already");let n={key_:e,newer:null,older:this.newest_,value_:t};this.newest_?this.newest_.newer=n:this.oldest_=n,this.newest_=n,this.entries_[e]=n,++this.count_}setSize(e){this.highWaterMark=e}},of=k0;function Co(i,e,t,n){return n!==void 0?(n[0]=i,n[1]=e,n[2]=t,n):[i,e,t]}function P0(i,e,t){return i+"/"+e+"/"+t}function oa(i){return P0(i[0],i[1],i[2])}function DB(i){return N0(i[0],i[1],i[2])}function N0(i,e,t){return(e<t||t>e.getMaxZoom())return!1;let o=e.getFullTileRange(t);return o?o.containsXY(n,r):!0}function G0(i,e,t,n){return`${i},${P0(e,t,n)}`}function O0(i,e,t){if(!(t in i))return i[t]=new Set([e]),!0;let n=i[t],r=n.has(e);return r||n.add(e),!r}function xD(i,e,t){let n=i[t];return n?n.delete(e):!1}function LB(i,e){let t=i.layerStatesArray[i.layerIndex];t.extent&&(e=Ze(e,Bt(t.extent,i.viewState.projection)));let n=t.layer.getRenderSource();if(!n.getWrapX()){let r=n.getTileGridForProjection(i.viewState.projection).getExtent();r&&(e=Ze(e,r))}return e}var U0=class extends sl{constructor(e,t){super(e),t=t||{},this.extentChanged=!0,this.renderComplete=!1,this.renderedExtent_=null,this.renderedPixelRatio,this.renderedProjection=null,this.renderedRevision_,this.renderedTiles=[],this.renderedSourceKey_,this.renderedSourceRevision_,this.tempExtent=ot(),this.tempTileRange_=new gl(0,0,0,0),this.tempTileCoord_=Co(0,0,0);let n=t.cacheSize!==void 0?t.cacheSize:512;this.tileCache_=new of(n),this.maxStaleKeys=n*.5}getTileCache(){return this.tileCache_}getOrCreateTile(e,t,n,r){let o=this.tileCache_,a=this.getLayer().getSource(),l=G0(a.getKey(),e,t,n),A;if(o.containsKey(l))A=o.get(l);else{if(A=a.getTile(e,t,n,r.pixelRatio,r.viewState.projection),!A)return null;o.set(l,A)}return A}getTile(e,t,n,r){let o=this.getOrCreateTile(e,t,n,r);return o||null}getData(e){let t=this.frameState;if(!t)return null;let n=this.getLayer(),r=be(t.pixelToCoordinateTransform,e.slice()),o=n.getExtent();if(o&&!di(o,r))return null;let s=t.viewState,a=n.getRenderSource(),l=a.getTileGridForProjection(s.projection),A=a.getTilePixelRatio(t.pixelRatio);for(let c=l.getZForResolution(s.resolution);c>=l.getMinZoom();--c){let h=l.getTileCoordForCoordAndZ(r,c),u=this.getTile(c,h[1],h[2],t);if(!u||u.getState()!==V.LOADED)continue;let f=l.getOrigin(c),g=Fe(l.getTileSize(c)),p=l.getResolution(c),d;if(u instanceof ds||u instanceof Il)d=u.getImage();else if(u instanceof Io){if(d=Eo(u.getData()),!d)continue}else continue;let I=Math.floor(A*((r[0]-f[0])/p-h[1]*g[0])),m=Math.floor(A*((f[1]-r[1])/p-h[2]*g[1])),C=Math.round(A*a.getGutterForProjection(s.projection));return this.getImageData(d,I+C,m+C)}return null}prepareFrame(e){this.renderedProjection?e.viewState.projection!==this.renderedProjection&&(this.tileCache_.clear(),this.renderedProjection=e.viewState.projection):this.renderedProjection=e.viewState.projection;let t=this.getLayer().getSource();if(!t)return!1;let n=t.getRevision();return this.renderedRevision_?this.renderedRevision_!==n&&(this.renderedRevision_=n,this.renderedSourceKey_===t.getKey()&&this.tileCache_.clear()):this.renderedRevision_=n,!0}enqueueTiles(e,t,n,r,o){let s=e.viewState,a=this.getLayer(),l=a.getRenderSource(),A=l.getTileGridForProjection(s.projection),c=W(l);c in e.wantedTiles||(e.wantedTiles[c]={});let h=e.wantedTiles[c],u=a.getMapInternal(),f=Math.max(n-o,A.getMinZoom(),A.getZForResolution(Math.min(a.getMaxResolution(),u?u.getView().getResolutionForZoom(Math.max(a.getMinZoom(),0)):A.getResolution(0)),l.zDirection)),g=s.rotation,p=g?yA(s.center,s.resolution,g,e.size):void 0;for(let d=n;d>=f;--d){let I=A.getTileRangeForExtentAndZ(t,d,this.tempTileRange_),m=A.getResolution(d);for(let C=I.minX;C<=I.maxX;++C)for(let _=I.minY;_<=I.maxY;++_){if(g&&!A.tileCoordIntersectsViewport([d,C,_],p))continue;let y=this.getTile(d,C,_,e);if(!y||!O0(r,y,d))continue;let T=y.getKey();if(h[T]=!0,y.getState()===V.IDLE&&!e.tileQueue.isKeyQueued(T)){let E=Co(d,C,_,this.tempTileCoord_);e.tileQueue.enqueue([y,c,A.getTileCoordCenter(E),m])}}}}findStaleTile_(e,t){let n=this.tileCache_,r=e[0],o=e[1],s=e[2],a=this.getStaleKeys();for(let l=0;l0&&setTimeout(()=>{this.enqueueTiles(e,x,u-1,T,E-1)},0),!(u in T))return this.container;let B=W(this),R=e.time;for(let M of T[u]){let k=M.getState();if(k===V.EMPTY)continue;let P=M.tileCoord;if(k===V.LOADED&&M.getAlpha(B,R)===1){M.endTransition(B);continue}if(k!==V.ERROR&&(this.renderComplete=!1),this.findStaleTile_(P,T)){xD(T,M,u),e.animate=!0;continue}if(this.findAltTiles_(h,P,u+1,T))continue;let j=h.getMinZoom();for(let X=u-1;X>=j&&!this.findAltTiles_(h,P,X,T);--X);}let v=f/s*l/d,D=this.getRenderContext(e);ct(this.tempTransform,I/2,m/2,v,v,0,-I/2,-m/2),n.extent&&this.clipUnrotated(D,e,C),c.getInterpolate()||(D.imageSmoothingEnabled=!1),this.preRender(D,e);let Q=Object.keys(T).map(Number);Q.sort(gi);let S,b=[],F=[];for(let M=Q.length-1;M>=0;--M){let k=Q[M],P=c.getTilePixelSize(k,l,o),N=h.getResolution(k)/f,j=P[0]*N*v,X=P[1]*N*v,z=h.getTileCoordForCoordAndZ(Pt(w),k),q=h.getTileCoordExtent(z),Z=be(this.tempTransform,[d*(q[0]-w[0])/f,d*(w[3]-q[3])/f]),ge=d*c.getGutterForProjection(o);for(let me of T[k]){if(me.getState()!==V.LOADED)continue;let de=me.tileCoord,ve=z[1]-de[1],Ve=Math.round(Z[0]-(ve-1)*j),Me=z[2]-de[2],Se=Math.round(Z[1]-(Me-1)*X),Ae=Math.round(Z[0]-ve*j),ri=Math.round(Z[1]-Me*X),gn=Ve-Ae,Yt=Se-ri,or=Q.length===1,$t=!1;S=[Ae,ri,Ae+gn,ri,Ae+gn,ri+Yt,Ae,ri+Yt];for(let Xr=0,Yo=b.length;Xr{let U=W(c),N=P.wantedTiles[U],j=N?Object.keys(N).length:0;this.updateCacheSize(j),this.tileCache_.expireCache()};e.postRenderFunctions.push(M)}return this.container}updateCacheSize(e){this.tileCache_.highWaterMark=Math.max(this.tileCache_.highWaterMark,e*2)}drawTile(e,t,n,r,o,s,a,l){let A;if(e instanceof Io){if(A=Eo(e.getData()),!A)throw new Error("Rendering array data is not yet supported")}else A=this.getTileImage(e);if(!A)return;let c=this.getRenderContext(t),h=W(this),u=t.layerStatesArray[t.layerIndex],f=u.opacity*(l?e.getAlpha(h,t.time):1),g=f!==c.globalAlpha;g&&(c.save(),c.globalAlpha=f),c.drawImage(A,a,a,A.width-2*a,A.height-2*a,n,r,o,s),g&&c.restore(),f!==u.opacity?t.animate=!0:l&&e.endTransition(h)}getImage(){let e=this.context;return e?e.canvas:null}getTileImage(e){return e.getImage()}updateUsedTiles(e,t,n){let r=W(t);r in e||(e[r]={}),e[r][n.getKey()]=!0}},sf=U0;var Fr={PRELOAD:"preload",USE_INTERIM_TILES_ON_ERROR:"useInterimTilesOnError"};var z0=class extends hr{constructor(e){e=e||{};let t=Object.assign({},e),n=e.cacheSize;delete e.cacheSize,delete t.preload,delete t.useInterimTilesOnError,super(t),this.on,this.once,this.un,this.cacheSize_=n,this.setPreload(e.preload!==void 0?e.preload:0),this.setUseInterimTilesOnError(e.useInterimTilesOnError!==void 0?e.useInterimTilesOnError:!0)}getCacheSize(){return this.cacheSize_}getPreload(){return this.get(Fr.PRELOAD)}setPreload(e){this.set(Fr.PRELOAD,e)}getUseInterimTilesOnError(){return this.get(Fr.USE_INTERIM_TILES_ON_ERROR)}setUseInterimTilesOnError(e){this.set(Fr.USE_INTERIM_TILES_ON_ERROR,e)}getData(e){return super.getData(e)}},Cl=z0;var Y0=class extends Cl{constructor(e){super(e)}createRenderer(){return new sf(this,{cacheSize:this.getCacheSize()})}},MB=Y0;var BD={image:["Polygon","Circle","LineString","Image","Text"],hybrid:["Polygon","LineString"],vector:[]},kB={hybrid:["Image","Text","Default"],vector:["Polygon","Circle","LineString","Image","Text","Default"]},V0=class extends sf{constructor(e,t){super(e,t),this.boundHandleStyleImageChange_=this.handleStyleImageChange_.bind(this),this.renderedLayerRevision_,this.renderedPixelToCoordinateTransform_=null,this.renderedRotation_,this.renderedOpacity_=1,this.tmpTransform_=Ce(),this.tileClipContexts_=null}drawTile(e,t,n,r,o,s,a,l){this.updateExecutorGroup_(e,t.pixelRatio,t.viewState.projection),this.tileImageNeedsRender_(e)&&this.renderTileImage_(e,t),super.drawTile(e,t,n,r,o,s,a,l)}getTile(e,t,n,r){let o=this.getOrCreateTile(e,t,n,r);if(!o)return null;let a=r.viewState.resolution,l=r.viewHints;return(!(l[Ne.ANIMATING]||l[Ne.INTERACTING])||!o.wantedResolution)&&(o.wantedResolution=a),o}prepareFrame(e){let t=this.getLayer().getRevision();return this.renderedLayerRevision_!==t&&(this.renderedLayerRevision_=t,this.renderedTiles.length=0),super.prepareFrame(e)}updateExecutorGroup_(e,t,n){let r=this.getLayer(),o=r.getRevision(),s=r.getRenderOrder()||null,a=e.wantedResolution,l=e.getReplayState(r);if(!l.dirty&&l.renderedResolution===a&&l.renderedRevision==o&&l.renderedRenderOrder==s)return;let A=r.getSource(),c=!!r.getDeclutter(),h=A.getTileGrid(),f=A.getTileGridForProjection(n).getTileCoordExtent(e.wrappedTileCoord),g=A.getSourceTiles(t,n,e),p=W(r);delete e.hitDetectionImageData[p],e.executorGroups[p]=[],l.dirty=!1;for(let d=0,I=g.length;dC.value):null,m;e:for(let C=0,_=g.length;C<_;++C){let y=g[C],w=c.getTileCoordExtent(y.wrappedTileCoord);if(!Qe(w,h))continue;let T=y.executorGroups[p];for(let E=0,x=T.length;E{let r=this.getLayer(),o=r.getSource(),s=this.renderedProjection,a=s.getExtent(),l=this.renderedResolution,A=o.getTileGridForProjection(s),c=be(this.renderedPixelToCoordinateTransform_,e.slice()),h=A.getTileCoordForCoordAndResolution(c,l).toString(),u=this.renderedTiles.find(C=>C.tileCoord.toString()===h&&C.getState()===V.LOADED);if(!u||u.loadingSourceTiles>0){t([]);return}o.getWrapX()&&s.canWrapX()&&!Fi(a,A.getTileCoordExtent(u.tileCoord))&&Zo(c,s);let f=W(r),g=A.getTileCoordExtent(u.wrappedTileCoord),p=Pt(g),d=[(c[0]-p[0])/l,(p[1]-c[1])/l],I=u.getSourceTiles().reduce((C,_)=>C.concat(_.getFeatures()),[]),m=u.hitDetectionImageData[f];if(!m){let C=Fe(A.getTileSize(A.getZForResolution(l,o.zDirection))),_=this.renderedRotation_,y=[this.getRenderTransform(A.getTileCoordCenter(u.wrappedTileCoord),l,0,Gi,C[0]*Gi,C[1]*Gi,0)];m=bu(C,y,I,r.getStyleFunction(),A.getTileCoordExtent(u.wrappedTileCoord),u.getReplayState(r).renderedResolution,_),u.hitDetectionImageData[f]=m}t(Du(d,I,m))})}getFeaturesInExtent(e){let t=[],n=this.getTileCache();if(n.getCount()===0)return t;let o=this.getLayer().getSource().getTileGridForProjection(this.frameState.viewState.projection),s=o.getZForResolution(this.renderedResolution),a={};return n.forEach(l=>{if(l.tileCoord[0]!==s||l.getState()!==V.LOADED)return;let A=l.getSourceTiles();for(let c=0,h=A.length;c=0;--d)p[d].execute(this.context,a,this.getTileRenderTransform(g,e),e.viewState.rotation,s,rl,A)}n.globalAlpha=r}renderDeferredInternal(e){let t=this.renderedTiles,n=W(this.getLayer()),r=t.reduce((l,A,c)=>(A.executorGroups[n].forEach(h=>l.push({executorGroup:h,index:c})),l),[]),o=r.map(({executorGroup:l})=>l.getDeferredZIndexContexts()),s={};for(let l=0,A=r.length;l{o.forEach((A,c)=>{A[l]&&(A[l].forEach(h=>{let{executorGroup:u,index:f}=r[c],g=u.getRenderedContext(),p=g.globalAlpha;g.globalAlpha=this.renderedOpacity_;let d=this.tileClipContexts_[f];d&&d.draw(g),h.draw(g),d&&g.restore(),g.globalAlpha=p,h.clear()}),A[l].length=0)})})}getTileRenderTransform(e,t){let n=t.pixelRatio,r=t.viewState,o=r.center,s=r.resolution,a=r.rotation,l=t.size,A=Math.round(l[0]*n),c=Math.round(l[1]*n),u=this.getLayer().getSource().getTileGridForProjection(t.viewState.projection),f=e.tileCoord,g=u.getTileCoordExtent(e.wrappedTileCoord),p=u.getTileCoordExtent(f,this.tempExtent)[0]-g[0];return Un(is(this.inversePixelTransform.slice(),1/n,1/n),this.getRenderTransform(o,s,a,n,A,c,p))}postRender(e,t){let n=t.viewHints,r=!(n[Ne.ANIMATING]||n[Ne.INTERACTING]);this.renderedPixelToCoordinateTransform_=t.pixelToCoordinateTransform.slice(),this.renderedRotation_=t.viewState.rotation,this.renderedOpacity_=t.layerStatesArray[t.layerIndex].opacity;let o=this.getLayer(),s=o.getRenderMode(),a=e.globalAlpha;e.globalAlpha=this.renderedOpacity_;let l=o.getDeclutter(),A=l?kB[s].filter(y=>!rl.includes(y)):kB[s],c=t.viewState,h=c.rotation,u=o.getSource(),g=u.getTileGridForProjection(c.projection).getZForResolution(c.resolution,u.zDirection),p=this.renderedTiles,d=[],I=[],m=[],C=W(o),_=!0;for(let y=p.length-1;y>=0;--y){let w=p[y];_=_&&!w.getReplayState(o).dirty;let T=w.executorGroups[C].filter(Q=>Q.hasExecutors(A));if(T.length===0)continue;let E=this.getTileRenderTransform(w,t),x=w.tileCoord[0],B=!1,R=T[0].getClipCoords(E),v=e,D;if(R){D=new il,v=D.getContext();for(let Q=0,S=d.length;Q=a.width)return null;let c=qe(s),h=Math.floor(a.height*((s[3]-r[1])/c));return h<0||h>=a.height?null:this.getImageData(a,A,h)}renderFrame(e,t){let n=this.image,r=n.getExtent(),o=n.getResolution(),[s,a]=Array.isArray(o)?o:[o,o],l=n.getPixelRatio(),A=e.layerStatesArray[e.layerIndex],c=e.pixelRatio,h=e.viewState,u=h.center,f=h.resolution,g=c*s/(f*l),p=c*a/(f*l);this.prepareContainer(e,t);let d=this.context.canvas.width,I=this.context.canvas.height,m=this.getRenderContext(e),C=!1,_=!0;if(A.extent){let x=Bt(A.extent,h.projection);_=Qe(x,e.extent),C=_&&!Fi(x,e.extent),C&&this.clipUnrotated(m,e,x)}let y=n.getImage(),w=ct(this.tempTransform,d/2,I/2,g,p,0,l*(r[0]-u[0])/s,l*(u[1]-r[3])/a);this.renderedResolution=a*c/l;let T=y.width*w[0],E=y.height*w[3];if(this.getLayer().getSource().getInterpolate()||(m.imageSmoothingEnabled=!1),this.preRender(m,e),_&&T>=.5&&E>=.5){let x=w[4],B=w[5],R=A.opacity;R!==1&&(m.save(),m.globalAlpha=R),m.drawImage(y,0,0,+y.width,+y.height,x,B,T,E),R!==1&&m.restore()}return this.postRender(this.context,e),C&&m.restore(),m.imageSmoothingEnabled=!0,this.container}},af=q0;var K0=class extends hr{constructor(e){e=e||{},super(e)}},GB=K0;var X0=class extends GB{constructor(e){super(e)}createRenderer(){return new af(this)}getData(e){return super.getData(e)}},OB=X0;function UB(i){return Array.isArray(i)?Math.min(...i):i}var j0=class extends af{constructor(e){super(e),this.vectorRenderer_=new Lu(e),this.layerImageRatio_=e.getImageRatio(),this.coordinateToVectorPixelTransform_=Ce(),this.renderedPixelToCoordinateTransform_=null}disposeInternal(){this.vectorRenderer_.dispose(),super.disposeInternal()}getFeatures(e){if(!this.vectorRenderer_)return Promise.resolve([]);let t=be(this.coordinateToVectorPixelTransform_,be(this.renderedPixelToCoordinateTransform_,e.slice()));return this.vectorRenderer_.getFeatures(t)}handleFontsChanged(){this.vectorRenderer_.handleFontsChanged()}prepareFrame(e){let t=e.pixelRatio,n=e.viewState,r=n.resolution,o=e.viewHints,s=this.vectorRenderer_,a=e.extent;this.layerImageRatio_!==1&&(a=a.slice(0),Vh(a,this.layerImageRatio_));let l=ue(a)/r,A=qe(a)/r;if(!o[Ne.ANIMATING]&&!o[Ne.INTERACTING]&&!mi(a)){s.useContainer(null,null);let c=s.context,h=e.layerStatesArray[e.layerIndex],u=Object.assign({},h,{opacity:1}),f=Object.assign({},e,{extent:a,size:[l,A],viewState:Object.assign({},e.viewState,{rotation:0}),layerStatesArray:[u],layerIndex:0,declutter:null}),g=this.getLayer().getDeclutter();g&&(f.declutter={[g]:new ho(9)});let p=new Vx(a,r,t,c.canvas,function(d){s.prepareFrame(f)&&s.replayGroupChanged&&(s.clipping=!1,s.renderFrame(f,null),s.renderDeclutter(f),s.renderDeferred(f),d())});p.addEventListener(K.CHANGE,()=>{if(p.getState()!==ie.LOADED)return;this.image=p;let d=p.getPixelRatio(),I=UB(p.getResolution())*t/d;this.renderedResolution=I,this.coordinateToVectorPixelTransform_=ct(this.coordinateToVectorPixelTransform_,l/2,A/2,1/I,-1/I,0,-n.center[0],-n.center[1])}),p.load()}return this.image&&(this.renderedPixelToCoordinateTransform_=e.pixelToCoordinateTransform.slice()),!this.getLayer().getSource().loading&&!!this.image}preRender(){}postRender(){}renderDeclutter(){}forEachFeatureAtCoordinate(e,t,n,r,o){return this.vectorRenderer_?this.vectorRenderer_.forEachFeatureAtCoordinate(e,t,n,r,o):super.forEachFeatureAtCoordinate(e,t,n,r,o)}},zB=j0;var W0=class extends Vn{constructor(e){e=e||{};let t=Object.assign({},e);delete t.imageRatio,super(t),this.imageRatio_=e.imageRatio!==void 0?e.imageRatio:1}getImageRatio(){return this.imageRatio_}createRenderer(){return new zB(this)}},YB=W0;function Kn(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Xn(i,e){return i[0]=e[0],i[1]=e[1],i[4]=e[2],i[5]=e[3],i[12]=e[4],i[13]=e[5],i}function _c(i,e,t,n,r,o,s){s=s??Kn();let a=1/(i-e),l=1/(t-n),A=1/(r-o);return s[0]=-2*a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=-2*l,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=2*A,s[11]=0,s[12]=(i+e)*a,s[13]=(n+t)*l,s[14]=(o+r)*A,s[15]=1,s}function J0(i,e,t,n,r){return r=r??Kn(),r[0]=i[0]*e,r[1]=i[1]*e,r[2]=i[2]*e,r[3]=i[3]*e,r[4]=i[4]*t,r[5]=i[5]*t,r[6]=i[6]*t,r[7]=i[7]*t,r[8]=i[8]*n,r[9]=i[9]*n,r[10]=i[10]*n,r[11]=i[11]*n,r[12]=i[12],r[13]=i[13],r[14]=i[14],r[15]=i[15],r}function VB(i,e,t,n,r){r=r??Kn();let o,s,a,l,A,c,h,u,f,g,p,d;return i===r?(r[12]=i[0]*e+i[4]*t+i[8]*n+i[12],r[13]=i[1]*e+i[5]*t+i[9]*n+i[13],r[14]=i[2]*e+i[6]*t+i[10]*n+i[14],r[15]=i[3]*e+i[7]*t+i[11]*n+i[15]):(o=i[0],s=i[1],a=i[2],l=i[3],A=i[4],c=i[5],h=i[6],u=i[7],f=i[8],g=i[9],p=i[10],d=i[11],r[0]=o,r[1]=s,r[2]=a,r[3]=l,r[4]=A,r[5]=c,r[6]=h,r[7]=u,r[8]=f,r[9]=g,r[10]=p,r[11]=d,r[12]=o*e+A*t+f*n+i[12],r[13]=s*e+c*t+g*n+i[13],r[14]=a*e+h*t+p*n+i[14],r[15]=l*e+u*t+d*n+i[15]),r}function HB(i,e,t,n){return n=n??Kn(),n[0]=1,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=1,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=1,n[11]=0,n[12]=i,n[13]=e,n[14]=t,n[15]=1,n}var yo=34962,_o=34963,XB=35040,Lr=35044,xc=35048,jB=5121,WB=5123,JB=5125,$0=5126,KB=["experimental-webgl","webgl","webkit-3d","moz-webgl"];function $B(i,e){e=Object.assign({preserveDrawingBuffer:!0,antialias:!L_},e);let t=KB.length;for(let n=0;n{this.uniforms_.push({value:e.uniforms[s],location:t.getUniformLocation(this.renderTargetProgram_,s)})})}getRenderTargetTexture(){return this.renderTargetTexture_}getGL(){return this.gl_}init(e){let t=this.getGL(),n=[t.drawingBufferWidth*this.scaleRatio_,t.drawingBufferHeight*this.scaleRatio_];if(t.bindFramebuffer(t.FRAMEBUFFER,this.getFrameBuffer()),t.bindRenderbuffer(t.RENDERBUFFER,this.getDepthBuffer()),t.viewport(0,0,n[0],n[1]),!this.renderTargetTextureSize_||this.renderTargetTextureSize_[0]!==n[0]||this.renderTargetTextureSize_[1]!==n[1]){this.renderTargetTextureSize_=n;let r=0,o=t.RGBA,s=0,a=t.RGBA,A=t.UNSIGNED_BYTE,l=null;t.bindTexture(t.TEXTURE_2D,this.renderTargetTexture_),t.texImage2D(t.TEXTURE_2D,r,o,n[0],n[1],s,a,A,l),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.renderTargetTexture_,0),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,n[0],n[1]),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,this.depthBuffer_)}}apply(e,t,n,r){let o=this.getGL(),s=e.size;if(o.bindFramebuffer(o.FRAMEBUFFER,t?t.getFrameBuffer():null),o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.renderTargetTexture_),!t){let A=z(o.canvas);if(!e.renderTargets[A]){let l=o.getContextAttributes();l&&l.preserveDrawingBuffer&&(o.clearColor(0,0,0,0),o.clearDepth(1),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT)),e.renderTargets[A]=!0}}o.disable(o.DEPTH_TEST),o.enable(o.BLEND),o.blendFunc(o.ONE,o.ONE_MINUS_SRC_ALPHA),o.viewport(0,0,o.drawingBufferWidth,o.drawingBufferHeight),o.bindBuffer(o.ARRAY_BUFFER,this.renderTargetVerticesBuffer_),o.useProgram(this.renderTargetProgram_),o.enableVertexAttribArray(this.renderTargetAttribLocation_),o.vertexAttribPointer(this.renderTargetAttribLocation_,2,o.FLOAT,!1,0,0),o.uniform2f(this.renderTargetUniformLocation_,s[0],s[1]),o.uniform1i(this.renderTargetTextureLocation_,0);let a=e.layerStatesArray[e.layerIndex].opacity;o.uniform1f(this.renderTargetOpacityLocation_,a),this.applyUniforms(e),n&&n(o,e),o.drawArrays(o.TRIANGLES,0,6),r&&r(o,e)}getFrameBuffer(){return this.frameBuffer_}getDepthBuffer(){return this.depthBuffer_}applyUniforms(e){let t=this.getGL(),n,r=1;this.uniforms_.forEach(function(o){if(n=typeof o.value=="function"?o.value(e):o.value,n instanceof HTMLCanvasElement||n instanceof ImageData)o.texture||(o.texture=t.createTexture()),t.activeTexture(t[`TEXTURE${r}`]),t.bindTexture(t.TEXTURE_2D,o.texture),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),n instanceof ImageData?t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,n.width,n.height,0,t.UNSIGNED_BYTE,new Uint8Array(n.data)):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n),t.uniform1i(o.location,r++);else if(Array.isArray(n))switch(n.length){case 2:t.uniform2f(o.location,n[0],n[1]);return;case 3:t.uniform3f(o.location,n[0],n[1],n[2]);return;case 4:t.uniform4f(o.location,n[0],n[1],n[2],n[3]);return;default:return}else typeof n=="number"&&t.uniform1f(o.location,n)})}},qg=Kg;var $i={PROJECTION_MATRIX:"u_projectionMatrix",SCREEN_TO_WORLD_MATRIX:"u_screenToWorldMatrix",TIME:"u_time",ZOOM:"u_zoom",RESOLUTION:"u_resolution",ROTATION:"u_rotation",VIEWPORT_SIZE_PX:"u_viewportSizePx",PIXEL_RATIO:"u_pixelRatio",HIT_DETECTION:"u_hitDetection"},lt={UNSIGNED_BYTE:T0,UNSIGNED_SHORT:D0,UNSIGNED_INT:b0,FLOAT:Yg},Zl={};function P0(i){return"shared/"+i}var N0=0;function T1(){let i="unique/"+N0;return N0+=1,i}function D1(i){let e=Zl[i];if(!e){let t=document.createElement("canvas");t.width=1,t.height=1,t.style.position="absolute",t.style.left="0",e={users:0,context:F0(t)},Zl[i]=e}return e.users+=1,e.context}function b1(i){let e=Zl[i];if(!e||(e.users-=1,e.users>0))return;let t=e.context,n=t.getExtension("WEBGL_lose_context");n&&n.loseContext();let r=t.canvas;r.width=1,r.height=1,delete Zl[i]}var Vg=class extends ki{constructor(e){super(),e=e||{},this.boundHandleWebGLContextLost_=this.handleWebGLContextLost.bind(this),this.boundHandleWebGLContextRestored_=this.handleWebGLContextRestored.bind(this),this.canvasCacheKey_=e.canvasCacheKey?P0(e.canvasCacheKey):T1(),this.gl_=D1(this.canvasCacheKey_),this.bufferCache_={},this.extensionCache_={},this.currentProgram_=null,this.needsToBeRecreated_=!1;let t=this.gl_.canvas;t.addEventListener(Pa.LOST,this.boundHandleWebGLContextLost_),t.addEventListener(Pa.RESTORED,this.boundHandleWebGLContextRestored_),this.offsetRotateMatrix_=Ce(),this.offsetScaleMatrix_=Ce(),this.tmpMat4_=Zi(),this.uniformLocationsByProgram_={},this.attribLocationsByProgram_={},this.uniforms_=[],e.uniforms&&this.setUniforms(e.uniforms),this.postProcessPasses_=e.postProcesses?e.postProcesses.map(n=>new qg({webGlContext:this.gl_,scaleRatio:n.scaleRatio,vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,uniforms:n.uniforms})):[new qg({webGlContext:this.gl_})],this.shaderCompileErrors_=null,this.startTime_=Date.now()}setUniforms(e){this.uniforms_=[],this.addUniforms(e)}addUniforms(e){for(let t in e)this.uniforms_.push({name:t,value:e[t]})}canvasCacheKeyMatches(e){return this.canvasCacheKey_===P0(e)}getExtension(e){if(e in this.extensionCache_)return this.extensionCache_[e];let t=this.gl_.getExtension(e);return this.extensionCache_[e]=t,t}bindBuffer(e){let t=this.gl_,n=z(e),r=this.bufferCache_[n];if(!r){let o=t.createBuffer();r={buffer:e,webGlBuffer:o},this.bufferCache_[n]=r}t.bindBuffer(e.getType(),r.webGlBuffer)}flushBufferData(e){let t=this.gl_;this.bindBuffer(e),t.bufferData(e.getType(),e.getArray(),e.getUsage())}deleteBuffer(e){let t=z(e);delete this.bufferCache_[t]}disposeInternal(){let e=this.gl_.canvas;e.removeEventListener(Pa.LOST,this.boundHandleWebGLContextLost_),e.removeEventListener(Pa.RESTORED,this.boundHandleWebGLContextRestored_),b1(this.canvasCacheKey_),delete this.gl_}prepareDraw(e,t,n){let r=this.gl_,o=this.getCanvas(),s=e.size,a=e.pixelRatio;(o.width!==s[0]*a||o.height!==s[1]*a)&&(o.width=s[0]*a,o.height=s[1]*a,o.style.width=s[0]+"px",o.style.height=s[1]+"px");for(let A=this.postProcessPasses_.length-1;A>=0;A--)this.postProcessPasses_[A].init(e);r.bindTexture(r.TEXTURE_2D,null),r.clearColor(0,0,0,0),r.depthRange(0,1),r.clearDepth(1),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT),r.enable(r.BLEND),r.blendFunc(r.ONE,t?r.ZERO:r.ONE_MINUS_SRC_ALPHA),n?(r.enable(r.DEPTH_TEST),r.depthFunc(r.LEQUAL)):r.disable(r.DEPTH_TEST)}bindFrameBuffer(e,t){let n=this.getGL();n.bindFramebuffer(n.FRAMEBUFFER,e),t&&n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,t,0)}bindInitialFrameBuffer(){let e=this.getGL(),t=this.postProcessPasses_[0].getFrameBuffer();e.bindFramebuffer(e.FRAMEBUFFER,t);let n=this.postProcessPasses_[0].getRenderTargetTexture();e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0)}bindTexture(e,t,n){let r=this.gl_;r.activeTexture(r.TEXTURE0+t),r.bindTexture(r.TEXTURE_2D,e),r.uniform1i(this.getUniformLocation(n),t)}bindAttribute(e,t,n){let r=this.getGL();this.bindBuffer(e);let o=this.getAttributeLocation(t);r.enableVertexAttribArray(o),r.vertexAttribPointer(o,n,r.FLOAT,!1,0,0)}prepareDrawToRenderTarget(e,t,n,r){let o=this.gl_,s=t.getSize();o.bindFramebuffer(o.FRAMEBUFFER,t.getFramebuffer()),o.bindRenderbuffer(o.RENDERBUFFER,t.getDepthbuffer()),o.viewport(0,0,s[0],s[1]),o.bindTexture(o.TEXTURE_2D,t.getTexture()),o.clearColor(0,0,0,0),o.depthRange(0,1),o.clearDepth(1),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT),o.enable(o.BLEND),o.blendFunc(o.ONE,n?o.ZERO:o.ONE_MINUS_SRC_ALPHA),r?(o.enable(o.DEPTH_TEST),o.depthFunc(o.LEQUAL)):o.disable(o.DEPTH_TEST)}drawElements(e,t){let n=this.gl_;this.getExtension("OES_element_index_uint");let r=n.UNSIGNED_INT,o=4,s=t-e,a=e*o;n.drawElements(n.TRIANGLES,s,r,a)}finalizeDraw(e,t,n){for(let r=0,o=this.postProcessPasses_.length;r{if(n=typeof o.value=="function"?o.value(e):o.value,n instanceof HTMLCanvasElement||n instanceof HTMLImageElement||n instanceof ImageData||n instanceof WebGLTexture){n instanceof WebGLTexture&&!o.texture?(o.prevValue=void 0,o.texture=n):o.texture||(o.prevValue=void 0,o.texture=t.createTexture()),this.bindTexture(o.texture,r,o.name),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE);let s=!(n instanceof HTMLImageElement)||n.complete;!(n instanceof WebGLTexture)&&s&&o.prevValue!==n&&(o.prevValue=n,t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n)),r++}else if(Array.isArray(n)&&n.length===6)this.setUniformMatrixValue(o.name,to(this.tmpMat4_,n));else if(Array.isArray(n)&&n.length<=4)switch(n.length){case 2:t.uniform2f(this.getUniformLocation(o.name),n[0],n[1]);return;case 3:t.uniform3f(this.getUniformLocation(o.name),n[0],n[1],n[2]);return;case 4:t.uniform4f(this.getUniformLocation(o.name),n[0],n[1],n[2],n[3]);return;default:return}else typeof n=="number"&&t.uniform1f(this.getUniformLocation(o.name),n)})}useProgram(e,t){this.gl_.useProgram(e),this.currentProgram_=e,t&&(this.applyFrameState(t),this.applyUniforms(t))}compileShader(e,t){let n=this.gl_,r=n.createShader(t);return n.shaderSource(r,e),n.compileShader(r),r}getProgram(e,t){let n=this.gl_,r=this.compileShader(e,n.FRAGMENT_SHADER),o=this.compileShader(t,n.VERTEX_SHADER),s=n.createProgram();if(n.attachShader(s,r),n.attachShader(s,o),n.linkProgram(s),!n.getShaderParameter(r,n.COMPILE_STATUS)){let a=`Fragment shader compilation failed: ${n.getShaderInfoLog(r)}`;throw new Error(a)}if(n.deleteShader(r),!n.getShaderParameter(o,n.COMPILE_STATUS)){let a=`Vertex shader compilation failed: ${n.getShaderInfoLog(o)}`;throw new Error(a)}if(n.deleteShader(o),!n.getProgramParameter(s,n.LINK_STATUS)){let a=`GL program linking failed: ${n.getProgramInfoLog(s)}`;throw new Error(a)}return s}getUniformLocation(e){let t=z(this.currentProgram_);return this.uniformLocationsByProgram_[t]===void 0&&(this.uniformLocationsByProgram_[t]={}),this.uniformLocationsByProgram_[t][e]===void 0&&(this.uniformLocationsByProgram_[t][e]=this.gl_.getUniformLocation(this.currentProgram_,e)),this.uniformLocationsByProgram_[t][e]}getAttributeLocation(e){let t=z(this.currentProgram_);return this.attribLocationsByProgram_[t]===void 0&&(this.attribLocationsByProgram_[t]={}),this.attribLocationsByProgram_[t][e]===void 0&&(this.attribLocationsByProgram_[t][e]=this.gl_.getAttribLocation(this.currentProgram_,e)),this.attribLocationsByProgram_[t][e]}makeProjectionTransform(e,t){let n=e.size,r=e.viewState.rotation,o=e.viewState.resolution,s=e.viewState.center;return Xe(t,0,0,2/(o*n[0]),2/(o*n[1]),-r,-s[0],-s[1]),t}setUniformFloatValue(e,t){this.gl_.uniform1f(this.getUniformLocation(e),t)}setUniformFloatVec2(e,t){this.gl_.uniform2fv(this.getUniformLocation(e),t)}setUniformFloatVec4(e,t){this.gl_.uniform4fv(this.getUniformLocation(e),t)}setUniformMatrixValue(e,t){this.gl_.uniformMatrix4fv(this.getUniformLocation(e),!1,t)}enableAttributeArray_(e,t,n,r,o){let s=this.getAttributeLocation(e);s<0||(this.gl_.enableVertexAttribArray(s),this.gl_.vertexAttribPointer(s,t,n,!1,r,o))}enableAttributes(e){let t=F1(e),n=0;for(let r=0;r"u"?"data:application/javascript;base64,"+Buffer.from(i,"binary").toString("base64"):URL.createObjectURL(new Blob([i],{type:"application/javascript"})))}var $l={GENERATE_POLYGON_BUFFERS:"GENERATE_POLYGON_BUFFERS",GENERATE_POINT_BUFFERS:"GENERATE_POINT_BUFFERS",GENERATE_LINE_STRING_BUFFERS:"GENERATE_LINE_STRING_BUFFERS"};function Y0(i,e){e=e||[];let t=256,n=t-1;return e[0]=Math.floor(i/t/t/t)/n,e[1]=Math.floor(i/t/t)%t/n,e[2]=Math.floor(i/t)%t/n,e[3]=i%t/n,e}function H0(i){let e=0,t=256,n=t-1;return e+=Math.round(i[0]*t*t*t*n),e+=Math.round(i[1]*t*t*n),e+=Math.round(i[2]*t*n),e+=Math.round(i[3]*n),e}var Xg=class extends Pi{constructor(e){super(),this.tile,this.handleTileChange_=this.handleTileChange_.bind(this),this.gutter=e.gutter||0,this.helper=e.helper,this.loaded=!1,this.ready=!1}setTile(e){if(e!==this.tile)if(this.tile&&this.tile.removeEventListener(U.CHANGE,this.handleTileChange_),this.tile=e,this.loaded=e.getState()===G.LOADED,this.loaded)this.uploadTile();else{if(e instanceof ur){let t=e.getImage();t instanceof Image&&!t.crossOrigin&&(t.crossOrigin="anonymous")}e.addEventListener(U.CHANGE,this.handleTileChange_)}}uploadTile(){J()}setReady(){this.ready=!0,this.dispatchEvent(U.CHANGE)}handleTileChange_(){this.tile.getState()===G.LOADED&&(this.loaded=!0,this.uploadTile())}setHelper(e){this.helper=e,this.helper&&this.loaded&&this.uploadTile()}disposeInternal(){this.setHelper(null),this.tile.removeEventListener(U.CHANGE,this.handleTileChange_)}},z0=Xg;function q0(i,e,t){let n=t?i.LINEAR:i.NEAREST;i.bindTexture(i.TEXTURE_2D,e),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,n),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,n)}function L1(i,e,t,n){q0(i,e,n),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,t)}function K0(i,e,t,n,r,o){let s=i.getGL(),a,A;t instanceof Float32Array?(a=s.FLOAT,i.getExtension("OES_texture_float"),A=i.getExtension("OES_texture_float_linear")!==null):(a=s.UNSIGNED_BYTE,A=!0),q0(s,e,o&&A);let l=t.byteLength/n[1],c=1;l%8===0?c=8:l%4===0?c=4:l%2===0&&(c=2);let h;switch(r){case 1:{h=s.LUMINANCE;break}case 2:{h=s.LUMINANCE_ALPHA;break}case 3:{h=s.RGB;break}case 4:{h=s.RGBA;break}default:throw new Error(`Unsupported number of bands: ${r}`)}let u=s.getParameter(s.UNPACK_ALIGNMENT);s.pixelStorei(s.UNPACK_ALIGNMENT,c),s.texImage2D(s.TEXTURE_2D,0,h,n[0],n[1],0,h,a,t),s.pixelStorei(s.UNPACK_ALIGNMENT,u)}var rs=null;function M1(){rs=me(1,1,void 0,{willReadFrequently:!0})}var Jg=class extends z0{constructor(e){super(e),this.textures=[],this.renderSize_=_e(e.grid.getTileSize(e.tile.tileCoord[0])),this.bandCount=NaN;let t=new eo(Zr,ns);t.fromArray([0,1,1,1,1,0,0,0]),this.helper.flushBufferData(t),this.coords=t,this.setTile(e.tile)}setHelper(e){let t=this.helper?.getGL();if(t){this.helper.deleteBuffer(this.coords);for(let n=0;n{this.clearCache(),this.removeHelper()},e.addChangeListener(pe.MAP,this.onMapChanged_),this.dispatchPreComposeEvent=this.dispatchPreComposeEvent.bind(this),this.dispatchPostComposeEvent=this.dispatchPostComposeEvent.bind(this)}dispatchPreComposeEvent(e,t){let n=this.getLayer();if(n.hasListener(Fe.PRECOMPOSE)){let r=new cr(Fe.PRECOMPOSE,void 0,t,e);n.dispatchEvent(r)}}dispatchPostComposeEvent(e,t){let n=this.getLayer();if(n.hasListener(Fe.POSTCOMPOSE)){let r=new cr(Fe.POSTCOMPOSE,void 0,t,e);n.dispatchEvent(r)}}reset(e){this.uniforms_=e.uniforms,this.helper&&this.helper.setUniforms(this.uniforms_)}removeHelper(){this.helper&&(this.helper.dispose(),delete this.helper)}prepareFrame(e){if(this.getLayer().getRenderSource()){let t=!0,n=-1,r;for(let s=0,a=e.layerStatesArray.length;s=m;--p){let _=l.getTileRangeForExtentAndZ(t,p,this.tempTileRange_),C=l.getResolution(p);for(let I=_.minX;I<=_.maxX;++I)for(let y=_.minY;y<=_.maxY;++y){if(d&&!l.tileCoordIntersectsViewport([p,I,y],E))continue;let x=Pn(p,I,y,this.tempTileCoord_),B=tc(A,x),Q,w;if(f.containsKey(B)&&(Q=f.get(B),w=Q.tile),(!Q||Q.tile.key!==A.getKey())&&(w=A.getTile(p,I,y,e.pixelRatio,s.projection),!w)||J0(r,w))continue;Q?Q.setTile(w):(Q=this.createTileRepresentation({tile:w,grid:l,helper:this.helper,gutter:c}),f.set(B,Q)),j0(r,Q,p);let v=w.getKey();u[v]=!0,w.getState()===G.IDLE&&(e.tileQueue.isKeyQueued(v)||e.tileQueue.enqueue([w,h,l.getTileCoordCenter(x),C]))}}}beforeTilesRender(e,t){this.helper.prepareDraw(this.frameState,!t,!0)}beforeTilesMaskRender(e){return!1}renderTile(e,t,n,r,o,s,a,A,l,c,h){}renderTileMask(e,t,n,r){}drawTile_(e,t,n,r,o,s,a){if(!t.ready)return;let l=t.tile.tileCoord,c=Wr(l),h=c in s?s[c]:1,u=a.getResolution(n),f=_e(a.getTileSize(n),this.tempSize_),g=a.getOrigin(n),m=a.getTileCoordExtent(l),d=h<1?-1:X0(n);h<1&&(e.animate=!0);let E=e.viewState,p=E.center[0],_=E.center[1],C=f[0]+2*r,I=f[1]+2*r,y=C/I,x=(p-g[0])/(f[0]*u),B=(g[1]-_)/(f[1]*u),Q=E.resolution/u,w=l[1],v=l[2];sE(this.tileTransform_),iu(this.tileTransform_,2/(e.size[0]*Q/C),-2/(e.size[1]*Q/C)),aE(this.tileTransform_,E.rotation),iu(this.tileTransform_,1,1/y),ZA(this.tileTransform_,(f[0]*(w-x)-r)/C,(f[1]*(v-B)-r)/I),this.renderTile(t,this.tileTransform_,e,o,u,f,g,m,d,r,h)}renderFrame(e){this.frameState=e,this.renderComplete=!0;let t=this.helper.getGL();this.preRender(t,e);let n=e.viewState,r=this.getLayer(),o=r.getRenderSource(),s=o.getTileGridForProjection(n.projection),a=o.getGutterForProjection(n.projection),A=Wg(e,e.extent),l=s.getZForResolution(n.resolution,o.zDirection),c=k1(),h=r.getPreload();if(e.nextExtent){let _=s.getZForResolution(n.nextResolution,o.zDirection),C=Wg(e,e.nextExtent);this.enqueueTiles(e,C,_,c,h)}this.enqueueTiles(e,A,l,c,0),h>0&&setTimeout(()=>{this.enqueueTiles(e,A,l-1,c,h-1)},0);let u={},f=!1,g=c.representationsByZ;if(l in g){let _=z(this),C=e.time;for(let I of g[l]){let y=I.tile;if(y.getState()===G.EMPTY)continue;let x=y.tileCoord;if(I.ready){let w=y.getAlpha(_,C);if(w===1){y.endTransition(_);continue}f=!0;let v=Wr(x);u[v]=w}if(this.renderComplete=!1,this.findAltTiles_(s,x,l+1,c))continue;let Q=s.getMinZoom();for(let w=l-1;w>=Q&&!this.findAltTiles_(s,x,w,c);--w);}}let m=Object.keys(g).map(Number).sort(RA);if(this.beforeTilesMaskRender(e))for(let _=0,C=m.length;_t.dispose()),e.clear()}afterHelperCreated(){super.afterHelperCreated(),this.tileRepresentationCache.forEach(e=>e.setHelper(this.helper))}disposeInternal(){super.disposeInternal(),delete this.frameState}},Z0=Zg;var Ae={...W0,TILE_TEXTURE_ARRAY:"u_tileTextures",TEXTURE_PIXEL_WIDTH:"u_texturePixelWidth",TEXTURE_PIXEL_HEIGHT:"u_texturePixelHeight",TEXTURE_RESOLUTION:"u_textureResolution",TEXTURE_ORIGIN_X:"u_textureOriginX",TEXTURE_ORIGIN_Y:"u_textureOriginY"},Na={TEXTURE_COORD:"a_textureCoord"},P1=[{name:Na.TEXTURE_COORD,size:2,type:lt.FLOAT}],$g=class extends Z0{constructor(e,t){super(e,t),this.program_,this.vertexShader_=t.vertexShader,this.fragmentShader_=t.fragmentShader,this.indices_=new eo($r,ns),this.indices_.fromArray([0,1,3,1,2,3]),this.paletteTextures_=t.paletteTextures||[]}reset(e){if(super.reset(e),this.helper){let t=this.helper.getGL();for(let n of this.paletteTextures_)n.delete(t)}if(this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.paletteTextures_=e.paletteTextures||[],this.helper){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_);let t=this.helper.getGL();for(let n of this.paletteTextures_)n.getTexture(t)}}afterHelperCreated(){super.afterHelperCreated();let e=this.helper.getGL();for(let t of this.paletteTextures_)t.getTexture(e);this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.helper.flushBufferData(this.indices_)}removeHelper(){if(this.helper){let e=this.helper.getGL();for(let t of this.paletteTextures_)t.delete(e)}super.removeHelper()}createTileRepresentation(e){return new V0(e)}beforeTilesRender(e,t){super.beforeTilesRender(e,t),this.helper.useProgram(this.program_,e)}renderTile(e,t,n,r,o,s,a,A,l,c,h){let u=this.helper.getGL();this.helper.bindBuffer(e.coords),this.helper.bindBuffer(this.indices_),this.helper.enableAttributes(P1);let f=0;for(;f0&&(I=A,Ue(I,r,I)),this.helper.setUniformFloatVec4(Ae.RENDER_EXTENT,I),this.helper.setUniformFloatValue(Ae.RESOLUTION,g.resolution),this.helper.setUniformFloatValue(Ae.ZOOM,g.zoom),this.helper.setUniformFloatValue(Ae.TEXTURE_PIXEL_WIDTH,m),this.helper.setUniformFloatValue(Ae.TEXTURE_PIXEL_HEIGHT,d),this.helper.setUniformFloatValue(Ae.TEXTURE_RESOLUTION,o),this.helper.setUniformFloatValue(Ae.TEXTURE_ORIGIN_X,a[0]+_*s[0]*o-c*o),this.helper.setUniformFloatValue(Ae.TEXTURE_ORIGIN_Y,a[1]-C*s[1]*o+c*o),this.helper.drawElements(0,this.indices_.getSize())}getData(e){if(!this.helper.getGL())return null;let n=this.frameState;if(!n)return null;let r=this.getLayer(),o=ye(n.pixelToCoordinateTransform,e.slice()),s=n.viewState,a=r.getExtent();if(a&&!kt(Ct(a,s.projection),o))return null;let A=r.getSources(Os([o]),s.resolution),l,c,h;for(l=A.length-1;l>=0;--l)if(c=A[l],c.getState()==="ready"){if(h=c.getTileGridForProjection(s.projection),c.getWrapX())break;let f=h.getExtent();if(!f||kt(f,o))break}if(l<0)return null;let u=this.tileRepresentationCache;for(let f=h.getZForResolution(s.resolution);f>=h.getMinZoom();--f){let g=h.getTileCoordForCoordAndZ(o,f),m=tc(c,g);if(!u.containsKey(m))continue;let d=u.get(m);if(d.tile.getState()===G.EMPTY)return null;if(!d.loaded)continue;let p=h.getOrigin(f),_=_e(h.getTileSize(f)),C=h.getResolution(f),I=(o[0]-p[0])/C-g[1]*_[0],y=(p[1]-o[1])/C-g[2]*_[1];return d.getPixelData(I,y)}return null}disposeInternal(){let e=this.helper;if(e){let t=e.getGL();for(let n of this.paletteTextures_)n.delete(t);this.paletteTextures_.length=0,t.deleteProgram(this.program_),delete this.program_,e.deleteBuffer(this.indices_)}super.disposeInternal(),delete this.indices_}},$0=$g;var ed=class{constructor(e,t){this.name=e,this.data=t,this.texture_=null}getTexture(e){if(!this.texture_){let t=e.createTexture();e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,this.data.length/4,1,0,e.RGBA,e.UNSIGNED_BYTE,this.data),this.texture_=t}return this.texture_}delete(e){this.texture_&&e.deleteTexture(this.texture_),this.texture_=null}},eC=ed;function N1(i,e){return`operator_${i}_${Object.keys(e.functions).length}`}function Nn(i){let e=i.toString();return e.includes(".")?e:e+".0"}function nd(i){if(i.length<2||i.length>4)throw new Error("`formatArray` can only output `vec2`, `vec3` or `vec4` arrays.");return`vec${i.length}(${i.map(Nn).join(", ")})`}function Ga(i){let e=We(i),t=e.length>3?e[3]:1;return nd([e[0]/255,e[1]/255,e[2]/255,t])}function G1(i){let e=_e(i);return nd(e)}var td={},O1=0;function Gn(i){return i in td||(td[i]=O1++),td[i]}function Di(i){return Nn(Gn(i))}function os(i){return"u_var_"+i}function ic(){return{variables:{},properties:{},functions:{},bandCount:0,featureId:!1,geometryType:!1}}var id="getBandValue",rd="u_paletteTextures",od="featureId",sd="geometryType",nc=-9999999;function tC(i,e,t,n){let r=Ze(i,e,t);return ad(r,e,n)}function Be(i){return(e,t,n)=>{let r=t.args.length,o=new Array(r);for(let s=0;s{let n=e.args[0].value;return n in i.properties||(i.properties[n]={name:n,type:e.type}),"a_prop_"+n},[T.Id]:i=>(i.featureId=!0,"a_"+od),[T.GeometryType]:i=>(i.geometryType=!0,"a_"+sd),[T.LineMetric]:()=>"currentLineMetric",[T.Var]:(i,e)=>{let n=e.args[0].value;return n in i.variables||(i.variables[n]={name:n,type:e.type}),os(n)},[T.Has]:(i,e)=>{let n=e.args[0].value;return n in i.properties||(i.properties[n]={name:n,type:e.type}),`(a_prop_${n} != ${Nn(nc)})`},[T.Resolution]:()=>"u_resolution",[T.Zoom]:()=>"u_zoom",[T.Time]:()=>"u_time",[T.Any]:Be(i=>`(${i.join(" || ")})`),[T.All]:Be(i=>`(${i.join(" && ")})`),[T.Not]:Be(([i])=>`(!${i})`),[T.Equal]:Be(([i,e])=>`(${i} == ${e})`),[T.NotEqual]:Be(([i,e])=>`(${i} != ${e})`),[T.GreaterThan]:Be(([i,e])=>`(${i} > ${e})`),[T.GreaterThanOrEqualTo]:Be(([i,e])=>`(${i} >= ${e})`),[T.LessThan]:Be(([i,e])=>`(${i} < ${e})`),[T.LessThanOrEqualTo]:Be(([i,e])=>`(${i} <= ${e})`),[T.Multiply]:Be(i=>`(${i.join(" * ")})`),[T.Divide]:Be(([i,e])=>`(${i} / ${e})`),[T.Add]:Be(i=>`(${i.join(" + ")})`),[T.Subtract]:Be(([i,e])=>`(${i} - ${e})`),[T.Clamp]:Be(([i,e,t])=>`clamp(${i}, ${e}, ${t})`),[T.Mod]:Be(([i,e])=>`mod(${i}, ${e})`),[T.Pow]:Be(([i,e])=>`pow(${i}, ${e})`),[T.Abs]:Be(([i])=>`abs(${i})`),[T.Floor]:Be(([i])=>`floor(${i})`),[T.Ceil]:Be(([i])=>`ceil(${i})`),[T.Round]:Be(([i])=>`floor(${i} + 0.5)`),[T.Sin]:Be(([i])=>`sin(${i})`),[T.Cos]:Be(([i])=>`cos(${i})`),[T.Atan]:Be(([i,e])=>e!==void 0?`atan(${i}, ${e})`:`atan(${i})`),[T.Sqrt]:Be(([i])=>`sqrt(${i})`),[T.Match]:Be(i=>{let e=i[0],t=i[i.length-1],n=null;for(let r=i.length-3;r>=1;r-=2){let o=i[r],s=i[r+1];n=`(${e} == ${o} ? ${s} : ${n||t})`}return n}),[T.Between]:Be(([i,e,t])=>`(${i} >= ${e} && ${i} <= ${t})`),[T.Interpolate]:Be(([i,e,...t])=>{let n="";for(let r=0;r{let e=i[i.length-1],t=null;for(let n=i.length-3;n>=0;n-=2){let r=i[n],o=i[n+1];t=`(${r} ? ${o} : ${t||e})`}return t}),[T.In]:Be(([i,...e],t)=>{let n=N1("in",t),r=[];for(let o=0;o{this.uniforms_.push({value:e.uniforms[s],location:t.getUniformLocation(this.renderTargetProgram_,s)})})}getRenderTargetTexture(){return this.renderTargetTexture_}getGL(){return this.gl_}init(e){let t=this.getGL(),n=[t.drawingBufferWidth*this.scaleRatio_,t.drawingBufferHeight*this.scaleRatio_];if(t.bindFramebuffer(t.FRAMEBUFFER,this.getFrameBuffer()),t.bindRenderbuffer(t.RENDERBUFFER,this.getDepthBuffer()),t.viewport(0,0,n[0],n[1]),!this.renderTargetTextureSize_||this.renderTargetTextureSize_[0]!==n[0]||this.renderTargetTextureSize_[1]!==n[1]){this.renderTargetTextureSize_=n;let r=0,o=t.RGBA,s=0,a=t.RGBA,l=t.UNSIGNED_BYTE,A=null;t.bindTexture(t.TEXTURE_2D,this.renderTargetTexture_),t.texImage2D(t.TEXTURE_2D,r,o,n[0],n[1],s,a,l,A),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.renderTargetTexture_,0),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,n[0],n[1]),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,this.depthBuffer_)}}apply(e,t,n,r){let o=this.getGL(),s=e.size;if(o.bindFramebuffer(o.FRAMEBUFFER,t?t.getFrameBuffer():null),o.activeTexture(o.TEXTURE0),o.bindTexture(o.TEXTURE_2D,this.renderTargetTexture_),!t){let l=W(o.canvas);if(!e.renderTargets[l]){let A=o.getContextAttributes();A&&A.preserveDrawingBuffer&&(o.clearColor(0,0,0,0),o.clearDepth(1),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT)),e.renderTargets[l]=!0}}o.disable(o.DEPTH_TEST),o.enable(o.BLEND),o.blendFunc(o.ONE,o.ONE_MINUS_SRC_ALPHA),o.viewport(0,0,o.drawingBufferWidth,o.drawingBufferHeight),o.bindBuffer(o.ARRAY_BUFFER,this.renderTargetVerticesBuffer_),o.useProgram(this.renderTargetProgram_),o.enableVertexAttribArray(this.renderTargetAttribLocation_),o.vertexAttribPointer(this.renderTargetAttribLocation_,2,o.FLOAT,!1,0,0),o.uniform2f(this.renderTargetUniformLocation_,s[0],s[1]),o.uniform1i(this.renderTargetTextureLocation_,0);let a=e.layerStatesArray[e.layerIndex].opacity;o.uniform1f(this.renderTargetOpacityLocation_,a),this.applyUniforms(e),n&&n(o,e),o.drawArrays(o.TRIANGLES,0,6),r&&r(o,e)}getFrameBuffer(){return this.frameBuffer_}getDepthBuffer(){return this.depthBuffer_}applyUniforms(e){let t=this.getGL(),n,r=1;this.uniforms_.forEach(function(o){if(n=typeof o.value=="function"?o.value(e):o.value,n instanceof HTMLCanvasElement||n instanceof ImageData)o.texture||(o.texture=t.createTexture()),t.activeTexture(t[`TEXTURE${r}`]),t.bindTexture(t.TEXTURE_2D,o.texture),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),n instanceof ImageData?t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,n.width,n.height,0,t.UNSIGNED_BYTE,new Uint8Array(n.data)):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n),t.uniform1i(o.location,r++);else if(Array.isArray(n))switch(n.length){case 2:t.uniform2f(o.location,n[0],n[1]);return;case 3:t.uniform3f(o.location,n[0],n[1],n[2]);return;case 4:t.uniform4f(o.location,n[0],n[1],n[2],n[3]);return;default:return}else typeof n=="number"&&t.uniform1f(o.location,n)})}},tE=eE;var Mr={PROJECTION_MATRIX:"u_projectionMatrix",SCREEN_TO_WORLD_MATRIX:"u_screenToWorldMatrix",TIME:"u_time",ZOOM:"u_zoom",RESOLUTION:"u_resolution",ROTATION:"u_rotation",VIEWPORT_SIZE_PX:"u_viewportSizePx",PIXEL_RATIO:"u_pixelRatio",HIT_DETECTION:"u_hitDetection"},Ut={UNSIGNED_BYTE:jB,UNSIGNED_SHORT:WB,UNSIGNED_INT:JB,FLOAT:$0},Af={};function ZB(i){return"shared/"+i}var e1=0;function TD(){let i="unique/"+e1;return e1+=1,i}function RD(i){let e=Af[i];if(!e){let t=document.createElement("canvas");t.width=1,t.height=1,t.style.position="absolute",t.style.left="0",e={users:0,context:$B(t)},Af[i]=e}return e.users+=1,e.context}function QD(i){let e=Af[i];if(!e||(e.users-=1,e.users>0))return;let t=e.context,n=t.getExtension("WEBGL_lose_context");n&&n.loseContext();let r=t.canvas;r.width=1,r.height=1,delete Af[i]}var iE=class extends xr{constructor(e){super(),e=e||{},this.boundHandleWebGLContextLost_=this.handleWebGLContextLost.bind(this),this.boundHandleWebGLContextRestored_=this.handleWebGLContextRestored.bind(this),this.canvasCacheKey_=e.canvasCacheKey?ZB(e.canvasCacheKey):TD(),this.gl_=RD(this.canvasCacheKey_),this.bufferCache_={},this.extensionCache_={},this.currentProgram_=null,this.needsToBeRecreated_=!1;let t=this.gl_.canvas;t.addEventListener(Bc.LOST,this.boundHandleWebGLContextLost_),t.addEventListener(Bc.RESTORED,this.boundHandleWebGLContextRestored_),this.offsetRotateMatrix_=Ce(),this.offsetScaleMatrix_=Ce(),this.tmpMat4_=Kn(),this.uniformLocationsByProgram_={},this.attribLocationsByProgram_={},this.uniforms_=[],e.uniforms&&this.setUniforms(e.uniforms),this.postProcessPasses_=e.postProcesses?e.postProcesses.map(n=>new tE({webGlContext:this.gl_,scaleRatio:n.scaleRatio,vertexShader:n.vertexShader,fragmentShader:n.fragmentShader,uniforms:n.uniforms})):[new tE({webGlContext:this.gl_})],this.shaderCompileErrors_=null,this.startTime_=Date.now()}setUniforms(e){this.uniforms_=[],this.addUniforms(e)}addUniforms(e){for(let t in e)this.uniforms_.push({name:t,value:e[t]})}canvasCacheKeyMatches(e){return this.canvasCacheKey_===ZB(e)}getExtension(e){if(e in this.extensionCache_)return this.extensionCache_[e];let t=this.gl_.getExtension(e);return this.extensionCache_[e]=t,t}bindBuffer(e){let t=this.gl_,n=W(e),r=this.bufferCache_[n];if(!r){let o=t.createBuffer();r={buffer:e,webGlBuffer:o},this.bufferCache_[n]=r}t.bindBuffer(e.getType(),r.webGlBuffer)}flushBufferData(e){let t=this.gl_;this.bindBuffer(e),t.bufferData(e.getType(),e.getArray(),e.getUsage())}deleteBuffer(e){let t=W(e);delete this.bufferCache_[t]}disposeInternal(){let e=this.gl_.canvas;e.removeEventListener(Bc.LOST,this.boundHandleWebGLContextLost_),e.removeEventListener(Bc.RESTORED,this.boundHandleWebGLContextRestored_),QD(this.canvasCacheKey_),delete this.gl_}prepareDraw(e,t,n){let r=this.gl_,o=this.getCanvas(),s=e.size,a=e.pixelRatio;(o.width!==s[0]*a||o.height!==s[1]*a)&&(o.width=s[0]*a,o.height=s[1]*a,o.style.width=s[0]+"px",o.style.height=s[1]+"px");for(let l=this.postProcessPasses_.length-1;l>=0;l--)this.postProcessPasses_[l].init(e);r.bindTexture(r.TEXTURE_2D,null),r.clearColor(0,0,0,0),r.depthRange(0,1),r.clearDepth(1),r.clear(r.COLOR_BUFFER_BIT|r.DEPTH_BUFFER_BIT),r.enable(r.BLEND),r.blendFunc(r.ONE,t?r.ZERO:r.ONE_MINUS_SRC_ALPHA),n?(r.enable(r.DEPTH_TEST),r.depthFunc(r.LEQUAL)):r.disable(r.DEPTH_TEST)}bindFrameBuffer(e,t){let n=this.getGL();n.bindFramebuffer(n.FRAMEBUFFER,e),t&&n.framebufferTexture2D(n.FRAMEBUFFER,n.COLOR_ATTACHMENT0,n.TEXTURE_2D,t,0)}bindInitialFrameBuffer(){let e=this.getGL(),t=this.postProcessPasses_[0].getFrameBuffer();e.bindFramebuffer(e.FRAMEBUFFER,t);let n=this.postProcessPasses_[0].getRenderTargetTexture();e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0)}bindTexture(e,t,n){let r=this.gl_;r.activeTexture(r.TEXTURE0+t),r.bindTexture(r.TEXTURE_2D,e),r.uniform1i(this.getUniformLocation(n),t)}bindAttribute(e,t,n){let r=this.getGL();this.bindBuffer(e);let o=this.getAttributeLocation(t);r.enableVertexAttribArray(o),r.vertexAttribPointer(o,n,r.FLOAT,!1,0,0)}prepareDrawToRenderTarget(e,t,n,r){let o=this.gl_,s=t.getSize();o.bindFramebuffer(o.FRAMEBUFFER,t.getFramebuffer()),o.bindRenderbuffer(o.RENDERBUFFER,t.getDepthbuffer()),o.viewport(0,0,s[0],s[1]),o.bindTexture(o.TEXTURE_2D,t.getTexture()),o.clearColor(0,0,0,0),o.depthRange(0,1),o.clearDepth(1),o.clear(o.COLOR_BUFFER_BIT|o.DEPTH_BUFFER_BIT),o.enable(o.BLEND),o.blendFunc(o.ONE,n?o.ZERO:o.ONE_MINUS_SRC_ALPHA),r?(o.enable(o.DEPTH_TEST),o.depthFunc(o.LEQUAL)):o.disable(o.DEPTH_TEST)}drawElements(e,t){let n=this.gl_;this.getExtension("OES_element_index_uint");let r=n.UNSIGNED_INT,o=4,s=t-e,a=e*o;n.drawElements(n.TRIANGLES,s,r,a)}finalizeDraw(e,t,n){for(let r=0,o=this.postProcessPasses_.length;r{if(n=typeof o.value=="function"?o.value(e):o.value,n instanceof HTMLCanvasElement||n instanceof HTMLImageElement||n instanceof ImageData||n instanceof WebGLTexture){n instanceof WebGLTexture&&!o.texture?(o.prevValue=void 0,o.texture=n):o.texture||(o.prevValue=void 0,o.texture=t.createTexture()),this.bindTexture(o.texture,r,o.name),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.LINEAR),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE);let s=!(n instanceof HTMLImageElement)||n.complete;!(n instanceof WebGLTexture)&&s&&o.prevValue!==n&&(o.prevValue=n,t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n)),r++}else if(Array.isArray(n)&&n.length===6)this.setUniformMatrixValue(o.name,Xn(this.tmpMat4_,n));else if(Array.isArray(n)&&n.length<=4)switch(n.length){case 2:t.uniform2f(this.getUniformLocation(o.name),n[0],n[1]);return;case 3:t.uniform3f(this.getUniformLocation(o.name),n[0],n[1],n[2]);return;case 4:t.uniform4f(this.getUniformLocation(o.name),n[0],n[1],n[2],n[3]);return;default:return}else typeof n=="number"&&t.uniform1f(this.getUniformLocation(o.name),n)})}useProgram(e,t){this.gl_.useProgram(e),this.currentProgram_=e,t&&(this.applyFrameState(t),this.applyUniforms(t))}compileShader(e,t){let n=this.gl_,r=n.createShader(t);return n.shaderSource(r,e),n.compileShader(r),r}getProgram(e,t){let n=this.gl_,r=this.compileShader(e,n.FRAGMENT_SHADER),o=this.compileShader(t,n.VERTEX_SHADER),s=n.createProgram();if(n.attachShader(s,r),n.attachShader(s,o),n.linkProgram(s),!n.getShaderParameter(r,n.COMPILE_STATUS)){let a=`Fragment shader compilation failed: ${n.getShaderInfoLog(r)}`;throw new Error(a)}if(n.deleteShader(r),!n.getShaderParameter(o,n.COMPILE_STATUS)){let a=`Vertex shader compilation failed: ${n.getShaderInfoLog(o)}`;throw new Error(a)}if(n.deleteShader(o),!n.getProgramParameter(s,n.LINK_STATUS)){let a=`GL program linking failed: ${n.getProgramInfoLog(s)}`;throw new Error(a)}return s}getUniformLocation(e){let t=W(this.currentProgram_);return this.uniformLocationsByProgram_[t]===void 0&&(this.uniformLocationsByProgram_[t]={}),this.uniformLocationsByProgram_[t][e]===void 0&&(this.uniformLocationsByProgram_[t][e]=this.gl_.getUniformLocation(this.currentProgram_,e)),this.uniformLocationsByProgram_[t][e]}getAttributeLocation(e){let t=W(this.currentProgram_);return this.attribLocationsByProgram_[t]===void 0&&(this.attribLocationsByProgram_[t]={}),this.attribLocationsByProgram_[t][e]===void 0&&(this.attribLocationsByProgram_[t][e]=this.gl_.getAttribLocation(this.currentProgram_,e)),this.attribLocationsByProgram_[t][e]}makeProjectionTransform(e,t){let n=e.size,r=e.viewState.rotation,o=e.viewState.resolution,s=e.viewState.center;return ct(t,0,0,2/(o*n[0]),2/(o*n[1]),-r,-s[0],-s[1]),t}setUniformFloatValue(e,t){this.gl_.uniform1f(this.getUniformLocation(e),t)}setUniformFloatVec2(e,t){this.gl_.uniform2fv(this.getUniformLocation(e),t)}setUniformFloatVec4(e,t){this.gl_.uniform4fv(this.getUniformLocation(e),t)}setUniformMatrixValue(e,t){this.gl_.uniformMatrix4fv(this.getUniformLocation(e),!1,t)}enableAttributeArray_(e,t,n,r,o){let s=this.getAttributeLocation(e);s<0||(this.gl_.enableVertexAttribArray(s),this.gl_.vertexAttribPointer(s,t,n,!1,r,o))}enableAttributes(e){let t=bD(e),n=0;for(let r=0;r{this.clearCache(),this.removeHelper()},e.addChangeListener(ke.MAP,this.onMapChanged_),this.dispatchPreComposeEvent=this.dispatchPreComposeEvent.bind(this),this.dispatchPostComposeEvent=this.dispatchPostComposeEvent.bind(this)}dispatchPreComposeEvent(e,t){let n=this.getLayer();if(n.hasListener(mt.PRECOMPOSE)){let r=new fs(mt.PRECOMPOSE,void 0,t,e);n.dispatchEvent(r)}}dispatchPostComposeEvent(e,t){let n=this.getLayer();if(n.hasListener(mt.POSTCOMPOSE)){let r=new fs(mt.POSTCOMPOSE,void 0,t,e);n.dispatchEvent(r)}}reset(e){this.uniforms_=e.uniforms,this.helper&&this.helper.setUniforms(this.uniforms_)}removeHelper(){this.helper&&(this.helper.dispose(),delete this.helper)}prepareFrame(e){if(this.getLayer().getRenderSource()){let t=!0,n=-1,r;for(let s=0,a=e.layerStatesArray.length;s=p;--m){let C=A.getTileRangeForExtentAndZ(t,m,this.tempTileRange_),_=A.getResolution(m);for(let y=C.minX;y<=C.maxX;++y)for(let w=C.minY;w<=C.maxY;++w){if(d&&!A.tileCoordIntersectsViewport([m,y,w],I))continue;let T=Co(m,y,w,this.tempTileCoord_),E=uf(l,T),x,B;if(f.containsKey(E)&&(x=f.get(E),B=x.tile),(!x||x.tile.key!==l.getKey())&&(B=l.getTile(m,y,w,e.pixelRatio,s.projection),!B)||a1(r,B))continue;x?x.setTile(B):(x=this.createTileRepresentation({tile:B,grid:A,helper:this.helper,gutter:c}),f.set(E,x)),l1(r,x,m);let R=B.getKey();u[R]=!0,B.getState()===V.IDLE&&(e.tileQueue.isKeyQueued(R)||e.tileQueue.enqueue([B,h,A.getTileCoordCenter(T),_]))}}}beforeTilesRender(e,t){this.helper.prepareDraw(this.frameState,!t,!0)}beforeTilesMaskRender(e){return!1}renderTile(e,t,n,r,o,s,a,l,A,c,h){}renderTileMask(e,t,n,r){}drawTile_(e,t,n,r,o,s,a){if(!t.ready)return;let A=t.tile.tileCoord,c=oa(A),h=c in s?s[c]:1,u=a.getResolution(n),f=Fe(a.getTileSize(n),this.tempSize_),g=a.getOrigin(n),p=a.getTileCoordExtent(A),d=h<1?-1:s1(n);h<1&&(e.animate=!0);let I=e.viewState,m=I.center[0],C=I.center[1],_=f[0]+2*r,y=f[1]+2*r,w=_/y,T=(m-g[0])/(f[0]*u),E=(g[1]-C)/(f[1]*u),x=I.resolution/u,B=A[1],R=A[2];TA(this.tileTransform_),is(this.tileTransform_,2/(e.size[0]*x/_),-2/(e.size[1]*x/_)),d_(this.tileTransform_,I.rotation),is(this.tileTransform_,1,1/w),ns(this.tileTransform_,(f[0]*(B-T)-r)/_,(f[1]*(R-E)-r)/y),this.renderTile(t,this.tileTransform_,e,o,u,f,g,p,d,r,h)}renderFrame(e){this.frameState=e,this.renderComplete=!0;let t=this.helper.getGL();this.preRender(t,e);let n=e.viewState,r=this.getLayer(),o=r.getRenderSource(),s=o.getTileGridForProjection(n.projection),a=o.getGutterForProjection(n.projection),l=sE(e,e.extent),A=s.getZForResolution(n.resolution,o.zDirection),c=LD(),h=r.getPreload();if(e.nextExtent){let C=s.getZForResolution(n.nextResolution,o.zDirection),_=sE(e,e.nextExtent);this.enqueueTiles(e,_,C,c,h)}this.enqueueTiles(e,l,A,c,0),h>0&&setTimeout(()=>{this.enqueueTiles(e,l,A-1,c,h-1)},0);let u={},f=!1,g=c.representationsByZ;if(A in g){let C=W(this),_=e.time;for(let y of g[A]){let w=y.tile;if(w.getState()===V.EMPTY)continue;let T=w.tileCoord;if(y.ready){let B=w.getAlpha(C,_);if(B===1){w.endTransition(C);continue}f=!0;let R=oa(T);u[R]=B}if(this.renderComplete=!1,this.findAltTiles_(s,T,A+1,c))continue;let x=s.getMinZoom();for(let B=A-1;B>=x&&!this.findAltTiles_(s,T,B,c);--B);}}let p=Object.keys(g).map(Number).sort(Nh);if(this.beforeTilesMaskRender(e))for(let C=0,_=p.length;C<_;++C){let y=p[C];for(let w of g[y]){let T=w.tile.tileCoord;if(oa(T)in u)continue;let x=s.getTileCoordExtent(T);this.renderTileMask(w,y,x,s1(y))}}this.beforeTilesRender(e,f);for(let C=0,_=p.length;C<_;++C){let y=p[C];for(let w of g[y]){let T=w.tile.tileCoord;oa(T)in u||this.drawTile_(e,w,y,a,l,u,s)}}if(A in g)for(let C of g[A]){let _=C.tile.tileCoord;oa(_)in u&&this.drawTile_(e,C,A,a,l,u,s)}this.beforeFinalize(e),this.helper.finalizeDraw(e,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);let I=this.helper.getCanvas(),m=this.tileRepresentationCache;for(;m.canExpireCache();)m.pop().dispose();return this.postRender(t,e),I}beforeFinalize(e){}findAltTiles_(e,t,n,r){let o=e.getTileRangeForTileCoordAndZ(t,n,this.tempTileRange_);if(!o)return!1;let s=!0,a=this.tileRepresentationCache,l=this.getLayer().getRenderSource();for(let A=o.minX;A<=o.maxX;++A)for(let c=o.minY;c<=o.maxY;++c){let h=uf(l,[n,A,c]),u=!1;if(a.containsKey(h)){let f=a.get(h);f.ready&&!a1(r,f.tile)&&(l1(r,f,n),u=!0)}u||(s=!1)}return s}clearCache(){super.clearCache();let e=this.tileRepresentationCache;e.forEach(t=>t.dispose()),e.clear()}afterHelperCreated(){super.afterHelperCreated(),this.tileRepresentationCache.forEach(e=>e.setHelper(this.helper))}disposeInternal(){super.disposeInternal(),delete this.frameState}},gf=aE;var Ie={...ff,TILE_TEXTURE_ARRAY:"u_tileTextures",TEXTURE_PIXEL_WIDTH:"u_texturePixelWidth",TEXTURE_PIXEL_HEIGHT:"u_texturePixelHeight",TEXTURE_RESOLUTION:"u_textureResolution",TEXTURE_ORIGIN_X:"u_textureOriginX",TEXTURE_ORIGIN_Y:"u_textureOriginY"},wc={TEXTURE_COORD:"a_textureCoord"},MD=[{name:wc.TEXTURE_COORD,size:2,type:Ut.FLOAT}],lE=class extends gf{constructor(e,t){super(e,t),this.program_,this.vertexShader_=t.vertexShader,this.fragmentShader_=t.fragmentShader,this.indices_=new fr(_o,Lr),this.indices_.fromArray([0,1,3,1,2,3]),this.paletteTextures_=t.paletteTextures||[]}reset(e){if(super.reset(e),this.helper){let t=this.helper.getGL();for(let n of this.paletteTextures_)n.delete(t)}if(this.vertexShader_=e.vertexShader,this.fragmentShader_=e.fragmentShader,this.paletteTextures_=e.paletteTextures||[],this.helper){this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_);let t=this.helper.getGL();for(let n of this.paletteTextures_)n.getTexture(t)}}afterHelperCreated(){super.afterHelperCreated();let e=this.helper.getGL();for(let t of this.paletteTextures_)t.getTexture(e);this.program_=this.helper.getProgram(this.fragmentShader_,this.vertexShader_),this.helper.flushBufferData(this.indices_)}removeHelper(){if(this.helper){let e=this.helper.getGL();for(let t of this.paletteTextures_)t.delete(e)}super.removeHelper()}createTileRepresentation(e){return new o1(e)}beforeTilesRender(e,t){super.beforeTilesRender(e,t),this.helper.useProgram(this.program_,e)}renderTile(e,t,n,r,o,s,a,l,A,c,h){let u=this.helper.getGL();this.helper.bindBuffer(e.coords),this.helper.bindBuffer(this.indices_),this.helper.enableAttributes(MD);let f=0;for(;f0&&(y=l,Ze(y,r,y)),this.helper.setUniformFloatVec4(Ie.RENDER_EXTENT,y),this.helper.setUniformFloatValue(Ie.RESOLUTION,g.resolution),this.helper.setUniformFloatValue(Ie.ZOOM,g.zoom),this.helper.setUniformFloatValue(Ie.TEXTURE_PIXEL_WIDTH,p),this.helper.setUniformFloatValue(Ie.TEXTURE_PIXEL_HEIGHT,d),this.helper.setUniformFloatValue(Ie.TEXTURE_RESOLUTION,o),this.helper.setUniformFloatValue(Ie.TEXTURE_ORIGIN_X,a[0]+C*s[0]*o-c*o),this.helper.setUniformFloatValue(Ie.TEXTURE_ORIGIN_Y,a[1]-_*s[1]*o+c*o),this.helper.drawElements(0,this.indices_.getSize())}getData(e){if(!this.helper.getGL())return null;let n=this.frameState;if(!n)return null;let r=this.getLayer(),o=be(n.pixelToCoordinateTransform,e.slice()),s=n.viewState,a=r.getExtent();if(a&&!di(Bt(a,s.projection),o))return null;let l=r.getSources(At([o]),s.resolution),A,c,h;for(A=l.length-1;A>=0;--A)if(c=l[A],c.getState()==="ready"){if(h=c.getTileGridForProjection(s.projection),c.getWrapX())break;let f=h.getExtent();if(!f||di(f,o))break}if(A<0)return null;let u=this.tileRepresentationCache;for(let f=h.getZForResolution(s.resolution);f>=h.getMinZoom();--f){let g=h.getTileCoordForCoordAndZ(o,f),p=uf(c,g);if(!u.containsKey(p))continue;let d=u.get(p);if(d.tile.getState()===V.EMPTY)return null;if(!d.loaded)continue;let m=h.getOrigin(f),C=Fe(h.getTileSize(f)),_=h.getResolution(f),y=(o[0]-m[0])/_-g[1]*C[0],w=(m[1]-o[1])/_-g[2]*C[1];return d.getPixelData(y,w)}return null}disposeInternal(){let e=this.helper;if(e){let t=e.getGL();for(let n of this.paletteTextures_)n.delete(t);this.paletteTextures_.length=0,t.deleteProgram(this.program_),delete this.program_,e.deleteBuffer(this.indices_)}super.disposeInternal(),delete this.indices_}},A1=lE;var AE=class{constructor(e,t){this.name=e,this.data=t,this.texture_=null}getTexture(e){if(!this.texture_){let t=e.createTexture();e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texImage2D(e.TEXTURE_2D,0,e.RGBA,this.data.length/4,1,0,e.RGBA,e.UNSIGNED_BYTE,this.data),this.texture_=t}return this.texture_}delete(e){this.texture_&&e.deleteTexture(this.texture_),this.texture_=null}},c1=AE;function kD(i,e){return`operator_${i}_${Object.keys(e.functions).length}`}function xo(i){let e=i.toString();return e.includes(".")?e:e+".0"}function uE(i){if(i.length<2||i.length>4)throw new Error("`formatArray` can only output `vec2`, `vec3` or `vec4` arrays.");return`vec${i.length}(${i.map(xo).join(", ")})`}function vc(i){let e=Nt(i),t=e.length>3?e[3]:1;return uE([e[0]/255,e[1]/255,e[2]/255,t])}function PD(i){let e=Fe(i);return uE(e)}var cE={},ND=0;function Bo(i){return i in cE||(cE[i]=ND++),cE[i]}function gr(i){return xo(Bo(i))}function _l(i){return"u_var_"+i}function xl(){return{variables:{},properties:{},functions:{},bandCount:0,featureId:!1,geometryType:!1}}var hE="getBandValue",fE="u_paletteTextures",gE="featureId",dE="geometryType",df=-9999999;function h1(i,e,t,n){let r=Gt(i,e,t);return pE(r,e,n)}function Xe(i){return(e,t,n)=>{let r=t.args.length,o=new Array(r);for(let s=0;s{let n=e.args[0].value;return n in i.properties||(i.properties[n]={name:n,type:e.type}),"a_prop_"+n},[G.Id]:i=>(i.featureId=!0,"a_"+gE),[G.GeometryType]:i=>(i.geometryType=!0,"a_"+dE),[G.LineMetric]:()=>"currentLineMetric",[G.Var]:(i,e)=>{let n=e.args[0].value;return n in i.variables||(i.variables[n]={name:n,type:e.type}),_l(n)},[G.Has]:(i,e)=>{let n=e.args[0].value;return n in i.properties||(i.properties[n]={name:n,type:e.type}),`(a_prop_${n} != ${xo(df)})`},[G.Resolution]:()=>"u_resolution",[G.Zoom]:()=>"u_zoom",[G.Time]:()=>"u_time",[G.Any]:Xe(i=>`(${i.join(" || ")})`),[G.All]:Xe(i=>`(${i.join(" && ")})`),[G.Not]:Xe(([i])=>`(!${i})`),[G.Equal]:Xe(([i,e])=>`(${i} == ${e})`),[G.NotEqual]:Xe(([i,e])=>`(${i} != ${e})`),[G.GreaterThan]:Xe(([i,e])=>`(${i} > ${e})`),[G.GreaterThanOrEqualTo]:Xe(([i,e])=>`(${i} >= ${e})`),[G.LessThan]:Xe(([i,e])=>`(${i} < ${e})`),[G.LessThanOrEqualTo]:Xe(([i,e])=>`(${i} <= ${e})`),[G.Multiply]:Xe(i=>`(${i.join(" * ")})`),[G.Divide]:Xe(([i,e])=>`(${i} / ${e})`),[G.Add]:Xe(i=>`(${i.join(" + ")})`),[G.Subtract]:Xe(([i,e])=>`(${i} - ${e})`),[G.Clamp]:Xe(([i,e,t])=>`clamp(${i}, ${e}, ${t})`),[G.Mod]:Xe(([i,e])=>`mod(${i}, ${e})`),[G.Pow]:Xe(([i,e])=>`pow(${i}, ${e})`),[G.Abs]:Xe(([i])=>`abs(${i})`),[G.Floor]:Xe(([i])=>`floor(${i})`),[G.Ceil]:Xe(([i])=>`ceil(${i})`),[G.Round]:Xe(([i])=>`floor(${i} + 0.5)`),[G.Sin]:Xe(([i])=>`sin(${i})`),[G.Cos]:Xe(([i])=>`cos(${i})`),[G.Atan]:Xe(([i,e])=>e!==void 0?`atan(${i}, ${e})`:`atan(${i})`),[G.Sqrt]:Xe(([i])=>`sqrt(${i})`),[G.Match]:Xe(i=>{let e=i[0],t=i[i.length-1],n=null;for(let r=i.length-3;r>=1;r-=2){let o=i[r],s=i[r+1];n=`(${e} == ${o} ? ${s} : ${n||t})`}return n}),[G.Between]:Xe(([i,e,t])=>`(${i} >= ${e} && ${i} <= ${t})`),[G.Interpolate]:Xe(([i,e,...t])=>{let n="";for(let r=0;r{let e=i[i.length-1],t=null;for(let n=i.length-3;n>=0;n-=2){let r=i[n],o=i[n+1];t=`(${r} ? ${o} : ${t||e})`}return t}),[G.In]:Xe(([i,...e],t)=>{let n=kD("in",t),r=[];for(let o=0;o`vec${i.length}(${i.join(", ")})`),[T.Color]:Be(i=>{if(i.length===1)return`vec4(vec3(${i[0]} / 255.0), 1.0)`;if(i.length===2)return`vec4(vec3(${i[0]} / 255.0), ${i[1]})`;let e=i.slice(0,3).map(n=>`${n} / 255.0`);if(i.length===3)return`vec4(${e.join(", ")}, 1.0)`;let t=i[3];return`vec4(${e.join(", ")}, ${t})`}),[T.Band]:Be(([i,e,t],n)=>{if(!(id in n.functions)){let r="",o=n.bandCount||1;for(let s=0;s`vec${i.length}(${i.join(", ")})`),[G.Color]:Xe(i=>{if(i.length===1)return`vec4(vec3(${i[0]} / 255.0), 1.0)`;if(i.length===2)return`vec4(vec3(${i[0]} / 255.0), ${i[1]})`;let e=i.slice(0,3).map(n=>`${n} / 255.0`);if(i.length===3)return`vec4(${e.join(", ")}, 1.0)`;let t=i[3];return`vec4(${e.join(", ")}, ${t})`}),[G.Band]:Xe(([i,e,t],n)=>{if(!(hE in n.functions)){let r="",o=n.bandCount||1;for(let s=0;s{let[t,...n]=e.args,r=n.length,o=new Uint8Array(r*4);for(let l=0;l0)return Nn(i.value);if((i.type&ze)>0)return i.value.toString();if((i.type&Ke)>0)return Di(i.value.toString());if((i.type&we)>0)return Ga(i.value);if((i.type&et)>0)return nd(i.value);if((i.type&Ut)>0)return G1(i.value);throw new Error(`Unexpected expression ${i.value} (expected type ${Hr(e)})`)}function Ad(i,e,t,n){let r=0;for(let o in e){let s=e[o],a=s.callback.call(t,t.feature),A=a?.[0]??a;A===nc&&console.warn('The "has" operator might return false positives.'),A===void 0?A=nc:A===null&&(A=0),i[n+r++]=A,!(!s.size||s.size===1)&&(i[n+r++]=a[1],!(s.size<3)&&(i[n+r++]=a[2],!(s.size<4)&&(i[n+r++]=a[3])))}return r}function Oa(i){return Object.keys(i).reduce((e,t)=>e+(i[t].size||1),0)}function iC(i,e,t,n){let r=(2+Oa(t))*i.geometriesCount;(!e||e.length!==r)&&(e=new Float32Array(r));let o=[],s=0;for(let a in i.entries){let A=i.entries[a];for(let l=0,c=A.flatCoordss.length;l{let[t,...n]=e.args,r=n.length,o=new Uint8Array(r*4);for(let A=0;A0)return xo(i.value);if((i.type&It)>0)return i.value.toString();if((i.type&Rt)>0)return gr(i.value.toString());if((i.type&We)>0)return vc(i.value);if((i.type&Xt)>0)return uE(i.value);if((i.type&sn)>0)return PD(i.value);throw new Error(`Unexpected expression ${i.value} (expected type ${Js(e)})`)}function u1(){return{"fill-color":"rgba(255,255,255,0.4)","stroke-color":"#3399CC","stroke-width":1.25,"circle-radius":5,"circle-fill-color":"rgba(255,255,255,0.4)","circle-stroke-width":1.25,"circle-stroke-color":"#3399CC"}}var mE=.985;var Bl=`#ifdef GL_FRAGMENT_PRECISION_HIGH precision highp float; #else precision mediump float; @@ -66,7 +66,7 @@ uniform mediump int u_hitDetection; const float PI = 3.141592653589793238; const float TWO_PI = 2.0 * PI; float currentLineMetric = 0.; // an actual value will be used in the stroke shaders -`,as=oC(),rc=class{constructor(){this.uniforms_=[],this.attributes_=[],this.hasSymbol_=!1,this.symbolSizeExpression_=`vec2(${Nn(as["circle-radius"])} + ${Nn(as["circle-stroke-width"]*.5)})`,this.symbolRotationExpression_="0.0",this.symbolOffsetExpression_="vec2(0.0)",this.symbolColorExpression_=Ga(as["circle-fill-color"]),this.texCoordExpression_="vec4(0.0, 0.0, 1.0, 1.0)",this.discardExpression_="false",this.symbolRotateWithView_=!1,this.hasStroke_=!1,this.strokeWidthExpression_=Nn(as["stroke-width"]),this.strokeColorExpression_=Ga(as["stroke-color"]),this.strokeOffsetExpression_="0.",this.strokeCapExpression_=Di("round"),this.strokeJoinExpression_=Di("round"),this.strokeMiterLimitExpression_="10.",this.strokeDistanceFieldExpression_="-1000.",this.hasFill_=!1,this.fillColorExpression_=Ga(as["fill-color"]),this.vertexShaderFunctions_=[],this.fragmentShaderFunctions_=[]}addUniform(e){return this.uniforms_.push(e),this}addAttribute(e,t,n,r){return this.attributes_.push({name:e,type:t,varyingName:e.replace(/^a_/,"v_"),varyingType:r??t,varyingExpression:n??e}),this}setSymbolSizeExpression(e){return this.hasSymbol_=!0,this.symbolSizeExpression_=e,this}getSymbolSizeExpression(){return this.symbolSizeExpression_}setSymbolRotationExpression(e){return this.symbolRotationExpression_=e,this}setSymbolOffsetExpression(e){return this.symbolOffsetExpression_=e,this}getSymbolOffsetExpression(){return this.symbolOffsetExpression_}setSymbolColorExpression(e){return this.hasSymbol_=!0,this.symbolColorExpression_=e,this}getSymbolColorExpression(){return this.symbolColorExpression_}setTextureCoordinateExpression(e){return this.texCoordExpression_=e,this}setFragmentDiscardExpression(e){return this.discardExpression_=e,this}getFragmentDiscardExpression(){return this.discardExpression_}setSymbolRotateWithView(e){return this.symbolRotateWithView_=e,this}setStrokeWidthExpression(e){return this.hasStroke_=!0,this.strokeWidthExpression_=e,this}setStrokeColorExpression(e){return this.hasStroke_=!0,this.strokeColorExpression_=e,this}getStrokeColorExpression(){return this.strokeColorExpression_}setStrokeOffsetExpression(e){return this.strokeOffsetExpression_=e,this}setStrokeCapExpression(e){return this.strokeCapExpression_=e,this}setStrokeJoinExpression(e){return this.strokeJoinExpression_=e,this}setStrokeMiterLimitExpression(e){return this.strokeMiterLimitExpression_=e,this}setStrokeDistanceFieldExpression(e){return this.strokeDistanceFieldExpression_=e,this}setFillColorExpression(e){return this.hasFill_=!0,this.fillColorExpression_=e,this}getFillColorExpression(){return this.fillColorExpression_}addVertexShaderFunction(e){return this.vertexShaderFunctions_.includes(e)?this:(this.vertexShaderFunctions_.push(e),this)}addFragmentShaderFunction(e){return this.fragmentShaderFunctions_.includes(e)?this:(this.fragmentShaderFunctions_.push(e),this)}getSymbolVertexShader(){return this.hasSymbol_?`${ss} +`,wl=u1(),Is=class{constructor(){this.uniforms_=[],this.attributes_=[],this.hasSymbol_=!1,this.symbolSizeExpression_=`vec2(${xo(wl["circle-radius"])} + ${xo(wl["circle-stroke-width"]*.5)})`,this.symbolRotationExpression_="0.0",this.symbolOffsetExpression_="vec2(0.0)",this.symbolColorExpression_=vc(wl["circle-fill-color"]),this.texCoordExpression_="vec4(0.0, 0.0, 1.0, 1.0)",this.discardExpression_="false",this.symbolRotateWithView_=!1,this.hasStroke_=!1,this.strokeWidthExpression_=xo(wl["stroke-width"]),this.strokeColorExpression_=vc(wl["stroke-color"]),this.strokeOffsetExpression_="0.",this.strokeCapExpression_=gr("round"),this.strokeJoinExpression_=gr("round"),this.strokeMiterLimitExpression_="10.",this.strokeDistanceFieldExpression_="-1000.",this.hasFill_=!1,this.fillColorExpression_=vc(wl["fill-color"]),this.vertexShaderFunctions_=[],this.fragmentShaderFunctions_=[]}addUniform(e){return this.uniforms_.push(e),this}addAttribute(e,t,n,r){return this.attributes_.push({name:e,type:t,varyingName:e.replace(/^a_/,"v_"),varyingType:r??t,varyingExpression:n??e}),this}setSymbolSizeExpression(e){return this.hasSymbol_=!0,this.symbolSizeExpression_=e,this}getSymbolSizeExpression(){return this.symbolSizeExpression_}setSymbolRotationExpression(e){return this.symbolRotationExpression_=e,this}setSymbolOffsetExpression(e){return this.symbolOffsetExpression_=e,this}getSymbolOffsetExpression(){return this.symbolOffsetExpression_}setSymbolColorExpression(e){return this.hasSymbol_=!0,this.symbolColorExpression_=e,this}getSymbolColorExpression(){return this.symbolColorExpression_}setTextureCoordinateExpression(e){return this.texCoordExpression_=e,this}setFragmentDiscardExpression(e){return this.discardExpression_=e,this}getFragmentDiscardExpression(){return this.discardExpression_}setSymbolRotateWithView(e){return this.symbolRotateWithView_=e,this}setStrokeWidthExpression(e){return this.hasStroke_=!0,this.strokeWidthExpression_=e,this}setStrokeColorExpression(e){return this.hasStroke_=!0,this.strokeColorExpression_=e,this}getStrokeColorExpression(){return this.strokeColorExpression_}setStrokeOffsetExpression(e){return this.strokeOffsetExpression_=e,this}setStrokeCapExpression(e){return this.strokeCapExpression_=e,this}setStrokeJoinExpression(e){return this.strokeJoinExpression_=e,this}setStrokeMiterLimitExpression(e){return this.strokeMiterLimitExpression_=e,this}setStrokeDistanceFieldExpression(e){return this.strokeDistanceFieldExpression_=e,this}setFillColorExpression(e){return this.hasFill_=!0,this.fillColorExpression_=e,this}getFillColorExpression(){return this.fillColorExpression_}addVertexShaderFunction(e){return this.vertexShaderFunctions_.includes(e)?this:(this.vertexShaderFunctions_.push(e),this)}addFragmentShaderFunction(e){return this.fragmentShaderFunctions_.includes(e)?this:(this.fragmentShaderFunctions_.push(e),this)}getSymbolVertexShader(){return this.hasSymbol_?`${Bl} ${this.uniforms_.map(e=>`uniform ${e};`).join(` `)} attribute vec2 a_position; @@ -127,7 +127,7 @@ void main(void) { v_centerPx = screenToPx(center.xy) + centerOffsetPx; ${this.attributes_.map(e=>` ${e.varyingName} = ${e.varyingExpression};`).join(` `)} -}`:null}getSymbolFragmentShader(){return this.hasSymbol_?`${ss} +}`:null}getSymbolFragmentShader(){return this.hasSymbol_?`${Bl} ${this.uniforms_.map(e=>`uniform ${e};`).join(` `)} varying vec2 v_texCoord; @@ -154,7 +154,7 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a if (gl_FragColor.a < 0.05) { discard; }; gl_FragColor = v_hitColor; } -}`:null}getStrokeVertexShader(){return this.hasStroke_?`${ss} +}`:null}getStrokeVertexShader(){return this.hasStroke_?`${Bl} ${this.uniforms_.map(e=>`uniform ${e};`).join(` `)} attribute vec2 a_segmentStart; @@ -239,7 +239,7 @@ void main(void) { vec2 joinDirection; vec2 positionPx = vertexNumber < 1.5 ? segmentStartPx : segmentEndPx; // if angle is too high, do not make a proper join - if (cos(angle) > ${ld} || isCap(angle)) { + if (cos(angle) > ${mE} || isCap(angle)) { joinDirection = normalPx * normalDir - tangentPx * tangentDir; } else { joinDirection = getJoinOffsetDirection(normalPx * normalDir, angle); @@ -256,7 +256,7 @@ void main(void) { v_measureEnd = a_measureEnd; ${this.attributes_.map(e=>` ${e.varyingName} = ${e.varyingExpression};`).join(` `)} -}`:null}getStrokeFragmentShader(){return this.hasStroke_?`${ss} +}`:null}getStrokeFragmentShader(){return this.hasStroke_?`${Bl} ${this.uniforms_.map(e=>`uniform ${e};`).join(` `)} varying vec2 v_segmentStart; @@ -320,7 +320,7 @@ float bevelJoinField(vec2 point, vec2 start, vec2 end, float width, float joinAn } float miterJoinDistanceField(vec2 point, vec2 start, vec2 end, float width, float joinAngle) { - if (cos(joinAngle) > ${ld}) { // avoid risking a division by zero + if (cos(joinAngle) > ${mE}) { // avoid risking a division by zero return bevelJoinField(point, start, end, width, joinAngle); } float miterLength = 1. / sin(joinAngle * 0.5); @@ -332,18 +332,18 @@ float miterJoinDistanceField(vec2 point, vec2 start, vec2 end, float width, floa } float capDistanceField(vec2 point, vec2 start, vec2 end, float width, float capType) { - if (capType == ${Di("butt")}) { + if (capType == ${gr("butt")}) { return buttCapDistanceField(point, start, end); - } else if (capType == ${Di("square")}) { + } else if (capType == ${gr("square")}) { return squareCapDistanceField(point, start, end, width); } return roundCapDistanceField(point, start, end, width); } float joinDistanceField(vec2 point, vec2 start, vec2 end, float width, float joinAngle, float joinType) { - if (joinType == ${Di("bevel")}) { + if (joinType == ${gr("bevel")}) { return bevelJoinField(point, start, end, width, joinAngle); - } else if (joinType == ${Di("miter")}) { + } else if (joinType == ${gr("miter")}) { return miterJoinDistanceField(point, start, end, width, joinAngle); } return roundJoinDistanceField(point, start, end, width); @@ -414,7 +414,7 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a if (gl_FragColor.a < 0.1) { discard; }; gl_FragColor = v_hitColor; } -}`:null}getFillVertexShader(){return this.hasFill_?`${ss} +}`:null}getFillVertexShader(){return this.hasFill_?`${Bl} ${this.uniforms_.map(e=>`uniform ${e};`).join(` `)} attribute vec2 a_position; @@ -432,7 +432,7 @@ void main(void) { v_hitColor = a_hitColor; ${this.attributes_.map(e=>` ${e.varyingName} = ${e.varyingExpression};`).join(` `)} -}`:null}getFillFragmentShader(){return this.hasFill_?`${ss} +}`:null}getFillFragmentShader(){return this.hasFill_?`${Bl} ${this.uniforms_.map(e=>`uniform ${e};`).join(` `)} varying vec4 v_hitColor; @@ -476,16 +476,16 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a if (gl_FragColor.a < 0.1) { discard; }; gl_FragColor = v_hitColor; } -}`:null}};function ne(i,e,t){let n=Kr();return tC(e,t,n,i)}function Y1(i){let e=We(i),t=e[0]*256,n=e[1],r=e[2]*256,o=Math.round(e[3]*255);return[t+n,r+o]}var H1=`vec4 unpackColor(vec2 packedColor) { +}`:null}};function le(i,e,t){let n=Zs();return h1(e,t,n,i)}function OD(i){let e=Nt(i),t=e[0]*256,n=e[1],r=e[2]*256,o=Math.round(e[3]*255);return[t+n,r+o]}var UD=`vec4 unpackColor(vec2 packedColor) { return vec4( fract(floor(packedColor[0] / 256.0) / 256.0), fract(packedColor[0] / 256.0), fract(floor(packedColor[1] / 256.0) / 256.0), fract(packedColor[1] / 256.0) ); -}`;function sc(i){return i===we||i===Ut?2:i===et?4:1}function oc(i){let e=sc(i);return e>1?`vec${e}`:"float"}function sC(i,e){for(let t in e.variables){let n=e.variables[t],r=os(n.name),o=oc(n.type);n.type===we&&(o="vec4"),i.addUniform(`${o} ${r}`)}for(let t in e.properties){let n=e.properties[t],r=oc(n.type),o=`a_prop_${n.name}`;n.type===we?(i.addAttribute(o,r,`unpackColor(${o})`,"vec4"),i.addVertexShaderFunction(H1)):i.addAttribute(o,r)}for(let t in e.functions)i.addVertexShaderFunction(e.functions[t]),i.addFragmentShaderFunction(e.functions[t])}function aC(i,e){let t={};for(let n in i.variables){let r=i.variables[n],o=os(r.name);t[o]=()=>{let s=e[r.name];return typeof s=="number"?s:typeof s=="boolean"?s?1:0:r.type===we?We(s||"#eee"):typeof s=="string"?Gn(s):s}}return t}function AC(i){let e={};for(let t in i.properties){let n=i.properties[t],r=o=>{let s=o.get(n.name);return n.type===we?Y1([...We(s||"#eee")]):typeof s=="string"?Gn(s):typeof s=="boolean"?s?1:0:s};e[`prop_${n.name}`]={size:sc(n.type),callback:r}}return e}function ac(i){return(JSON.stringify(i).split("").reduce((t,n)=>(t<<5)-t+n.charCodeAt(0),0)>>>0).toString()}function cd(i,e,t,n){if(`${n}radius`in i&&n!=="icon-"){let r=ne(t,i[`${n}radius`],q);if(`${n}radius2`in i){let o=ne(t,i[`${n}radius2`],q);r=`max(${r}, ${o})`}`${n}stroke-width`in i&&(r=`(${r} + ${ne(t,i[`${n}stroke-width`],q)} * 0.5)`),e.setSymbolSizeExpression(`vec2(${r} * 2. + 0.5)`)}if(`${n}scale`in i){let r=ne(t,i[`${n}scale`],Ut);e.setSymbolSizeExpression(`${e.getSymbolSizeExpression()} * ${r}`)}`${n}displacement`in i&&e.setSymbolOffsetExpression(ne(t,i[`${n}displacement`],et)),`${n}rotation`in i&&e.setSymbolRotationExpression(ne(t,i[`${n}rotation`],q)),`${n}rotate-with-view`in i&&e.setSymbolRotateWithView(!!i[`${n}rotate-with-view`])}function lC(i,e,t,n,r){let o="vec4(0.)";if(e!==null&&(o=e),t!==null&&n!==null){let A=`smoothstep(-${n} + 0.63, -${n} - 0.58, ${i})`;o=`mix(${t}, ${o}, ${A})`}let s=`(1.0 - smoothstep(-0.63, 0.58, ${i}))`,a=`${o} * vec4(1.0, 1.0, 1.0, ${s})`;return r!==null&&(a=`${a} * vec4(1.0, 1.0, 1.0, ${r})`),a}function hd(i,e,t,n,r){let o=new Image;o.crossOrigin=i[`${n}cross-origin`]===void 0?"anonymous":i[`${n}cross-origin`],re(typeof i[`${n}src`]=="string",`WebGL layers do not support expressions for the ${n}src style property`),o.src=i[`${n}src`],t[`u_texture${r}_size`]=()=>o.complete?[o.width,o.height]:[0,0],e.addUniform(`vec2 u_texture${r}_size`);let s=`u_texture${r}_size`;return t[`u_texture${r}`]=o,e.addUniform(`sampler2D u_texture${r}`),s}function ud(i,e,t,n,r){let o=ne(t,i[`${e}offset`],et);if(`${e}offset-origin`in i)switch(i[`${e}offset-origin`]){case"top-right":o=`vec2(${n}.x, 0.) + ${r} * vec2(-1., 0.) + ${o} * vec2(-1., 1.)`;break;case"bottom-left":o=`vec2(0., ${n}.y) + ${r} * vec2(0., -1.) + ${o} * vec2(1., -1.)`;break;case"bottom-right":o=`${n} - ${r} - ${o}`;break;default:}return o}function z1(i,e,t,n){n.functions.circleDistanceField=`float circleDistanceField(vec2 point, float radius) { +}`;function mf(i){return i===We||i===sn?2:i===Xt?4:1}function pf(i){let e=mf(i);return e>1?`vec${e}`:"float"}function Ef(i,e){for(let t in e.variables){let n=e.variables[t],r=_l(n.name),o=pf(n.type);n.type===We&&(o="vec4"),i.addUniform(`${o} ${r}`)}for(let t in e.properties){let n=e.properties[t],r=pf(n.type),o=`a_prop_${n.name}`;n.type===We?(i.addAttribute(o,r,`unpackColor(${o})`,"vec4"),i.addVertexShaderFunction(UD)):i.addAttribute(o,r)}for(let t in e.functions)i.addVertexShaderFunction(e.functions[t]),i.addFragmentShaderFunction(e.functions[t])}function If(i,e){let t={};for(let n in i.variables){let r=i.variables[n],o=_l(r.name);t[o]=()=>{let s=e[r.name];return typeof s=="number"?s:typeof s=="boolean"?s?1:0:r.type===We?Nt(s||"#eee"):typeof s=="string"?Bo(s):s}}return t}function Cf(i){let e={};for(let t in i.properties){let n=i.properties[t],r=o=>{let s=o.get(n.name);return n.type===We?OD([...Nt(s||"#eee")]):typeof s=="string"?Bo(s):typeof s=="boolean"?s?1:0:s};e[`prop_${n.name}`]={size:mf(n.type),callback:r}}return e}var EE=class i{constructor(){this.globalCounter_=0,this.refToFeature_=new Map,this.uidToRef_=new Map,this.freeGlobalRef_=[],this.polygonBatch={entries:{},geometriesCount:0,verticesCount:0,ringsCount:0},this.pointBatch={entries:{},geometriesCount:0},this.lineStringBatch={entries:{},geometriesCount:0,verticesCount:0}}addFeatures(e,t){for(let n=0;n0?A[c-1]:null,g=f?f[f.length-1]:0,p=u[u.length-1];u=g>0?u.map(d=>d-g):u,this.addCoordinates_("Polygon",t.slice(g,p),u,r,o,s,a)}break}case"MultiLineString":{let A=n;for(let c=0,h=A.length;c0?A[c-1]:0;this.addCoordinates_("LineString",t.slice(u,A[c]),null,r,o,s,a)}break}case"MultiPoint":for(let A=0,c=t.length;A1){this.addCoordinates_("MultiPolygon",t,u,r,o,s,a);return}}this.polygonBatch.entries[o]||(this.polygonBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[],verticesCount:0,ringsCount:0,ringsVerticesCounts:[]})),l=t.length/s;let c=n.length,h=n.map((u,f,g)=>f>0?(u-g[f-1])/s:u/s);this.polygonBatch.verticesCount+=l,this.polygonBatch.ringsCount+=c,this.polygonBatch.geometriesCount++,this.polygonBatch.entries[o].flatCoordss.push(zD(t,s)),this.polygonBatch.entries[o].ringsVerticesCounts.push(h),this.polygonBatch.entries[o].verticesCount+=l,this.polygonBatch.entries[o].ringsCount+=c;for(let u=0,f=A.length;u0?A[u-1]:0;this.addCoordinates_("LinearRing",t.slice(g,A[u]),null,r,o,s,a)}break}case"Point":this.pointBatch.entries[o]||(this.pointBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[]})),this.pointBatch.geometriesCount++,this.pointBatch.entries[o].flatCoordss.push(t);break;case"LineString":case"LinearRing":this.lineStringBatch.entries[o]||(this.lineStringBatch.entries[o]=this.addRefToEntry_(o,{feature:r,flatCoordss:[],verticesCount:0})),l=t.length/s,this.lineStringBatch.verticesCount+=l,this.lineStringBatch.geometriesCount++,this.lineStringBatch.entries[o].flatCoordss.push(YD(t,s,a)),this.lineStringBatch.entries[o].verticesCount+=l;break;default:}}addRefToEntry_(e,t){let n=this.uidToRef_.get(e),r=n||this.freeGlobalRef_.pop()||++this.globalCounter_;return t.ref=r,n||(this.refToFeature_.set(r,t.feature),this.uidToRef_.set(e,r)),t}removeRef_(e,t){if(!e)throw new Error("This feature has no ref: "+t);this.refToFeature_.delete(e),this.uidToRef_.delete(t),this.freeGlobalRef_.push(e)}changeFeature(e){if(!this.uidToRef_.get(W(e)))return;this.removeFeature(e);let t=e.getGeometry();t&&this.addGeometry_(t,e)}removeFeature(e){let t=this.clearFeatureEntryInPointBatch_(e);t=this.clearFeatureEntryInPolygonBatch_(e)||t,t=this.clearFeatureEntryInLineStringBatch_(e)||t,t&&this.removeRef_(t.ref,W(t.feature))}clear(){this.polygonBatch.entries={},this.polygonBatch.geometriesCount=0,this.polygonBatch.verticesCount=0,this.polygonBatch.ringsCount=0,this.lineStringBatch.entries={},this.lineStringBatch.geometriesCount=0,this.lineStringBatch.verticesCount=0,this.pointBatch.entries={},this.pointBatch.geometriesCount=0,this.globalCounter_=0,this.freeGlobalRef_=[],this.refToFeature_.clear(),this.uidToRef_.clear()}getFeatureFromRef(e){return this.refToFeature_.get(e)}isEmpty(){return this.globalCounter_===0}filter(e){let t=new i;t.globalCounter_=this.globalCounter_,t.uidToRef_=this.uidToRef_,t.refToFeature_=this.refToFeature_;let n=!0;for(let r of this.refToFeature_.values())e(r)&&(t.addFeature(r),n=!1);return n?new i:t}};function zD(i,e){return e===2?i:i.filter((t,n)=>n%e<2)}function YD(i,e,t){return e===3&&t==="XYM"?i:e===4?i.filter((n,r)=>r%e!==2):e===3?i.map((n,r)=>r%e!==2?n:0):new Array(i.length*1.5).fill(0).map((n,r)=>r%3===2?0:i[Math.round(r/1.5)])}var yf=EE;function f1(){let i='function t(t,n,x=2){const o=n&&n.length,i=o?n[0]*x:t.length;let u=e(t,0,i,x,!0);const l=[];if(!u||u.next===u.prev)return l;let c,h,y;if(o&&(u=function(t,n,r,x){const o=[];for(let r=0,i=n.length;r80*x){c=1/0,h=1/0;let e=-1/0,n=-1/0;for(let r=x;re&&(e=x),o>n&&(n=o)}y=Math.max(e-c,n-h),y=0!==y?32767/y:0}return r(u,l,x,c,h,y,0),l}function e(t,e,n,r,x){let o;if(x===function(t,e,n,r){let x=0;for(let o=e,i=n-r;o0)for(let x=e;x=e;x-=r)o=w(x/r|0,t[x],t[x+1],o);return o&&g(o,o.next)&&(A(o),o=o.next),o}function n(t,e){if(!t)return t;e||(e=t);let n,r=t;do{if(n=!1,r.steiner||!g(r,r.next)&&0!==v(r.prev,r,r.next))r=r.next;else{if(A(r),r=e=r.prev,r===r.next)break;n=!0}}while(n||r!==e);return e}function r(t,e,f,s,l,a,h){if(!t)return;!h&&a&&function(t,e,n,r){let x=t;do{0===x.z&&(x.z=c(x.x,x.y,e,n,r)),x.prevZ=x.prev,x.nextZ=x.next,x=x.next}while(x!==t);x.prevZ.nextZ=null,x.prevZ=null,function(t){let e,n=1;do{let r,x=t;t=null;let o=null;for(e=0;x;){e++;let i=x,u=0;for(let t=0;t0||f>0&&i;)0!==u&&(0===f||!i||x.z<=i.z)?(r=x,x=x.nextZ,u--):(r=i,i=i.nextZ,f--),o?o.nextZ=r:t=r,r.prevZ=o,o=r;x=i}o.nextZ=null,n*=2}while(e>1)}(x)}(t,s,l,a);let y=t;for(;t.prev!==t.next;){const c=t.prev,p=t.next;if(a?o(t,s,l,a):x(t))e.push(c.i,t.i,p.i),A(t),t=p.next,y=p.next;else if((t=p)===y){h?1===h?r(t=i(n(t),e),e,f,s,l,a,2):2===h&&u(t,e,f,s,l,a):r(n(t),e,f,s,l,a,1);break}}}function x(t){const e=t.prev,n=t,r=t.next;if(v(e,n,r)>=0)return!1;const x=e.x,o=n.x,i=r.x,u=e.y,f=n.y,s=r.y,l=Math.min(x,o,i),c=Math.min(u,f,s),a=Math.max(x,o,i),h=Math.max(u,f,s);let p=r.next;for(;p!==e;){if(p.x>=l&&p.x<=a&&p.y>=c&&p.y<=h&&y(x,u,o,f,i,s,p.x,p.y)&&v(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function o(t,e,n,r){const x=t.prev,o=t,i=t.next;if(v(x,o,i)>=0)return!1;const u=x.x,f=o.x,s=i.x,l=x.y,a=o.y,h=i.y,p=Math.min(u,f,s),g=Math.min(l,a,h),b=Math.max(u,f,s),M=Math.max(l,a,h),m=c(p,g,e,n,r),Z=c(b,M,e,n,r);let d=t.prevZ,w=t.nextZ;for(;d&&d.z>=m&&w&&w.z<=Z;){if(d.x>=p&&d.x<=b&&d.y>=g&&d.y<=M&&d!==x&&d!==i&&y(u,l,f,a,s,h,d.x,d.y)&&v(d.prev,d,d.next)>=0)return!1;if(d=d.prevZ,w.x>=p&&w.x<=b&&w.y>=g&&w.y<=M&&w!==x&&w!==i&&y(u,l,f,a,s,h,w.x,w.y)&&v(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;d&&d.z>=m;){if(d.x>=p&&d.x<=b&&d.y>=g&&d.y<=M&&d!==x&&d!==i&&y(u,l,f,a,s,h,d.x,d.y)&&v(d.prev,d,d.next)>=0)return!1;d=d.prevZ}for(;w&&w.z<=Z;){if(w.x>=p&&w.x<=b&&w.y>=g&&w.y<=M&&w!==x&&w!==i&&y(u,l,f,a,s,h,w.x,w.y)&&v(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function i(t,e){let r=t;do{const n=r.prev,x=r.next.next;!g(n,x)&&b(n,r,r.next,x)&&Z(n,x)&&Z(x,n)&&(e.push(n.i,r.i,x.i),A(r),A(r.next),r=t=x),r=r.next}while(r!==t);return n(r)}function u(t,e,x,o,i,u){let f=t;do{let t=f.next.next;for(;t!==f.prev;){if(f.i!==t.i&&p(f,t)){let s=d(f,t);return f=n(f,f.next),s=n(s,s.next),r(f,e,x,o,i,u,0),void r(s,e,x,o,i,u,0)}t=t.next}f=f.next}while(f!==t)}function f(t,e){let n=t.x-e.x;if(0===n&&(n=t.y-e.y,0===n)){n=(t.next.y-t.y)/(t.next.x-t.x)-(e.next.y-e.y)/(e.next.x-e.x)}return n}function s(t,e){const r=function(t,e){let n=e;const r=t.x,x=t.y;let o,i=-1/0;if(g(t,n))return n;do{if(g(t,n.next))return n.next;if(x<=n.y&&x>=n.next.y&&n.next.y!==n.y){const t=n.x+(x-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(t<=r&&t>i&&(i=t,o=n.x=n.x&&n.x>=f&&r!==n.x&&h(xo.x||n.x===o.x&&l(o,n)))&&(o=n,c=e)}n=n.next}while(n!==u);return o}(t,e);if(!r)return e;const x=d(r,t);return n(x,x.next),n(r,r.next)}function l(t,e){return v(t.prev,t,e.prev)<0&&v(e.next,t,t.next)<0}function c(t,e,n,r,x){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-n)*x|0)|t<<8))|t<<4))|t<<2))|t<<1))|(e=1431655765&((e=858993459&((e=252645135&((e=16711935&((e=(e-r)*x|0)|e<<8))|e<<4))|e<<2))|e<<1))<<1}function a(t){let e=t,n=t;do{(e.x=(t-i)*(o-u)&&(t-i)*(r-u)>=(n-i)*(e-u)&&(n-i)*(o-u)>=(x-i)*(r-u)}function y(t,e,n,r,x,o,i,u){return!(t===i&&e===u)&&h(t,e,n,r,x,o,i,u)}function p(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!function(t,e){let n=t;do{if(n.i!==t.i&&n.next.i!==t.i&&n.i!==e.i&&n.next.i!==e.i&&b(n,n.next,t,e))return!0;n=n.next}while(n!==t);return!1}(t,e)&&(Z(t,e)&&Z(e,t)&&function(t,e){let n=t,r=!1;const x=(t.x+e.x)/2,o=(t.y+e.y)/2;do{n.y>o!=n.next.y>o&&n.next.y!==n.y&&x<(n.next.x-n.x)*(o-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==t);return r}(t,e)&&(v(t.prev,t,e.prev)||v(t,e.prev,e))||g(t,e)&&v(t.prev,t,t.next)>0&&v(e.prev,e,e.next)>0)}function v(t,e,n){return(e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y)}function g(t,e){return t.x===e.x&&t.y===e.y}function b(t,e,n,r){const x=m(v(t,e,n)),o=m(v(t,e,r)),i=m(v(n,r,t)),u=m(v(n,r,e));return x!==o&&i!==u||(!(0!==x||!M(t,n,e))||(!(0!==o||!M(t,r,e))||(!(0!==i||!M(n,t,r))||!(0!==u||!M(n,e,r)))))}function M(t,e,n){return e.x<=Math.max(t.x,n.x)&&e.x>=Math.min(t.x,n.x)&&e.y<=Math.max(t.y,n.y)&&e.y>=Math.min(t.y,n.y)}function m(t){return t>0?1:t<0?-1:0}function Z(t,e){return v(t.prev,t,t.next)<0?v(t,e,t.next)>=0&&v(t,t.prev,e)>=0:v(t,e,t.prev)<0||v(t,t.next,e)<0}function d(t,e){const n=E(t.i,t.x,t.y),r=E(e.i,e.x,e.y),x=t.next,o=e.prev;return t.next=e,e.prev=t,n.next=x,x.prev=n,r.next=n,n.prev=r,o.next=r,r.prev=o,r}function w(t,e,n,r){const x=E(t,e,n);return r?(x.next=r.next,x.prev=r,r.next.prev=x,r.next=x):(x.prev=x,x.next=x),x}function A(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function E(t,e,n){return{i:t,x:e,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function I(t,e){const n=e[0],r=e[1];return e[0]=t[0]*n+t[2]*r+t[4],e[1]=t[1]*n+t[3]*r+t[5],e}function z(t,e){const n=(r=e)[0]*r[3]-r[1]*r[2];var r;!function(t,e){if(!t)throw new Error(e)}(0!==n,"Transformation matrix cannot be inverted");const x=e[0],o=e[1],i=e[2],u=e[3],f=e[4],s=e[5];return t[0]=u/n,t[1]=-o/n,t[2]=-i/n,t[3]=x/n,t[4]=(i*s-u*f)/n,t[5]=-(x*s-o*f)/n,t}new Array(6);const F=[],P={vertexPosition:0,indexPosition:0};function B(t,e,n,r,x){t[e+0]=n,t[e+1]=r,t[e+2]=x}function N(t,e,n,r,x,o){const i=3+x,u=t[e+0],f=t[e+1],s=F;s.length=x;for(let n=0;n0?f:2*Math.PI-f}let m=-1,Z=-1,d=l;const w=null!==x;if(null!==r){m=M(g,b,I(f,[...[t[r],t[r+1]]])),Math.cos(m)<=.985&&(d+=Math.tan((m-Math.PI)/2))}if(w){Z=M(b,g,I(f,[...[t[x],t[x+1]]])),Math.cos(Z)<=.985&&(d+=Math.tan((Math.PI-Z)/2))}function A(t,e){return 0===e?1e4*t:Math.sign(e)*(1e4*t+Math.abs(e))}return o.push(h[0],h[1],p,y[0],y[1],v,m,Z,s,A(0,l)),o.push(...u),o.push(h[0],h[1],p,y[0],y[1],v,m,Z,s,A(1,l)),o.push(...u),o.push(h[0],h[1],p,y[0],y[1],v,m,Z,s,A(2,l)),o.push(...u),o.push(h[0],h[1],p,y[0],y[1],v,m,Z,s,A(3,l)),o.push(...u),i.push(a,a+1,a+2,a+1,a+3,a+2),{length:s+Math.sqrt((b[0]-g[0])*(b[0]-g[0])+(b[1]-g[1])*(b[1]-g[1])),angle:d}}function S(e,n,r,x,o){const i=2+o;let u=n;const f=e.slice(u,u+o);u+=o;const s=e[u++];let l=0;const c=new Array(s-1);for(let t=0;t{const e=t.data;switch(e.type){case _:{const t=3,n=2,r=e.customAttributesSize,x=n+r,o=new Float32Array(e.renderInstructions),i=o.length/x,u=4*i*(r+t),f=new Uint32Array(6*i),s=new Float32Array(u);let l;for(let t=0;t0?y=i+(r-1)*x:c&&(y=l-x);let p=null;r"u"?"data:application/javascript;base64,"+Buffer.from(i,"binary").toString("base64"):URL.createObjectURL(new Blob([i],{type:"application/javascript"})))}var _f={GENERATE_POLYGON_BUFFERS:"GENERATE_POLYGON_BUFFERS",GENERATE_POINT_BUFFERS:"GENERATE_POINT_BUFFERS",GENERATE_LINE_STRING_BUFFERS:"GENERATE_LINE_STRING_BUFFERS"};function g1(i,e){e=e||[];let t=256,n=t-1;return e[0]=Math.floor(i/t/t/t)/n,e[1]=Math.floor(i/t/t)%t/n,e[2]=Math.floor(i/t)%t/n,e[3]=i%t/n,e}function d1(i){let e=0,t=256,n=t-1;return e+=Math.round(i[0]*t*t*t*n),e+=Math.round(i[1]*t*t*n),e+=Math.round(i[2]*t*n),e+=Math.round(i[3]*n),e}function IE(i,e,t,n){let r=0;for(let o in e){let s=e[o],a=s.callback.call(t,t.feature),l=a?.[0]??a;l===df&&console.warn('The "has" operator might return false positives.'),l===void 0?l=df:l===null&&(l=0),i[n+r++]=l,!(!s.size||s.size===1)&&(i[n+r++]=a[1],!(s.size<3)&&(i[n+r++]=a[2],!(s.size<4)&&(i[n+r++]=a[3])))}return r}function Sc(i){return Object.keys(i).reduce((e,t)=>e+(i[t].size||1),0)}function p1(i,e,t,n){let r=(2+Sc(t))*i.geometriesCount;(!e||e.length!==r)&&(e=new Float32Array(r));let o=[],s=0;for(let a in i.entries){let l=i.entries[a];for(let A=0,c=l.flatCoordss.length;A(t<<5)-t+n.charCodeAt(0),0)>>>0).toString()}function CE(i,e,t,n){if(`${n}radius`in i&&n!=="icon-"){let r=le(t,i[`${n}radius`],te);if(`${n}radius2`in i){let o=le(t,i[`${n}radius2`],te);r=`max(${r}, ${o})`}`${n}stroke-width`in i&&(r=`(${r} + ${le(t,i[`${n}stroke-width`],te)} * 0.5)`),e.setSymbolSizeExpression(`vec2(${r} * 2. + 0.5)`)}if(`${n}scale`in i){let r=le(t,i[`${n}scale`],sn);e.setSymbolSizeExpression(`${e.getSymbolSizeExpression()} * ${r}`)}`${n}displacement`in i&&e.setSymbolOffsetExpression(le(t,i[`${n}displacement`],Xt)),`${n}rotation`in i&&e.setSymbolRotationExpression(le(t,i[`${n}rotation`],te)),`${n}rotate-with-view`in i&&e.setSymbolRotateWithView(!!i[`${n}rotate-with-view`])}function I1(i,e,t,n,r){let o="vec4(0.)";if(e!==null&&(o=e),t!==null&&n!==null){let l=`smoothstep(-${n} + 0.63, -${n} - 0.58, ${i})`;o=`mix(${t}, ${o}, ${l})`}let s=`(1.0 - smoothstep(-0.63, 0.58, ${i}))`,a=`${o} * vec4(1.0, 1.0, 1.0, ${s})`;return r!==null&&(a=`${a} * vec4(1.0, 1.0, 1.0, ${r})`),a}function yE(i,e,t,n,r){let o=new Image;o.crossOrigin=i[`${n}cross-origin`]===void 0?"anonymous":i[`${n}cross-origin`],he(typeof i[`${n}src`]=="string",`WebGL layers do not support expressions for the ${n}src style property`),o.src=i[`${n}src`],t[`u_texture${r}_size`]=()=>o.complete?[o.width,o.height]:[0,0],e.addUniform(`vec2 u_texture${r}_size`);let s=`u_texture${r}_size`;return t[`u_texture${r}`]=o,e.addUniform(`sampler2D u_texture${r}`),s}function _E(i,e,t,n,r){let o=le(t,i[`${e}offset`],Xt);if(`${e}offset-origin`in i)switch(i[`${e}offset-origin`]){case"top-right":o=`vec2(${n}.x, 0.) + ${r} * vec2(-1., 0.) + ${o} * vec2(-1., 1.)`;break;case"bottom-left":o=`vec2(0., ${n}.y) + ${r} * vec2(0., -1.) + ${o} * vec2(1., -1.)`;break;case"bottom-right":o=`${n} - ${r} - ${o}`;break;default:}return o}function VD(i,e,t,n){n.functions.circleDistanceField=`float circleDistanceField(vec2 point, float radius) { return length(point) - radius; -}`,cd(i,e,n,"circle-");let r=null;"circle-opacity"in i&&(r=ne(n,i["circle-opacity"],q));let o="coordsPx";"circle-scale"in i&&(o=`coordsPx / ${ne(n,i["circle-scale"],Ut)}`);let s=null;"circle-fill-color"in i&&(s=ne(n,i["circle-fill-color"],we));let a=null;"circle-stroke-color"in i&&(a=ne(n,i["circle-stroke-color"],we));let A=ne(n,i["circle-radius"],q),l=null;"circle-stroke-width"in i&&(l=ne(n,i["circle-stroke-width"],q),A=`(${A} + ${l} * 0.5)`);let c=`circleDistanceField(${o}, ${A})`,h=lC(c,s,a,l,r);e.setSymbolColorExpression(h)}function K1(i,e,t,n){n.functions.round=`float round(float v) { +}`,CE(i,e,n,"circle-");let r=null;"circle-opacity"in i&&(r=le(n,i["circle-opacity"],te));let o="coordsPx";"circle-scale"in i&&(o=`coordsPx / ${le(n,i["circle-scale"],sn)}`);let s=null;"circle-fill-color"in i&&(s=le(n,i["circle-fill-color"],We));let a=null;"circle-stroke-color"in i&&(a=le(n,i["circle-stroke-color"],We));let l=le(n,i["circle-radius"],te),A=null;"circle-stroke-width"in i&&(A=le(n,i["circle-stroke-width"],te),l=`(${l} + ${A} * 0.5)`);let c=`circleDistanceField(${o}, ${l})`,h=I1(c,s,a,A,r);e.setSymbolColorExpression(h)}function HD(i,e,t,n){n.functions.round=`float round(float v) { return sign(v) * floor(abs(v) + 0.5); }`,n.functions.starDistanceField=`float starDistanceField(vec2 point, float numPoints, float radius, float radius2, float angle) { float startAngle = -PI * 0.5 + angle; // tip starts upwards and rotates clockwise with angle @@ -514,7 +514,7 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a s = sin(-gamma); vec2 inSector = vec2(c * pointRotated.x - s * pointRotated.y, abs(s * pointRotated.x + c * pointRotated.y)); return inSector.x - radiusIn; -}`,cd(i,e,n,"shape-");let r=null;"shape-opacity"in i&&(r=ne(n,i["shape-opacity"],q));let o="coordsPx";"shape-scale"in i&&(o=`coordsPx / ${ne(n,i["shape-scale"],Ut)}`);let s=null;"shape-fill-color"in i&&(s=ne(n,i["shape-fill-color"],we));let a=null;"shape-stroke-color"in i&&(a=ne(n,i["shape-stroke-color"],we));let A=null;"shape-stroke-width"in i&&(A=ne(n,i["shape-stroke-width"],q));let l=ne(n,i["shape-points"],q),c="0.";"shape-angle"in i&&(c=ne(n,i["shape-angle"],q));let h,u=ne(n,i["shape-radius"],q);if(A!==null&&(u=`${u} + ${A} * 0.5`),"shape-radius2"in i){let g=ne(n,i["shape-radius2"],q);A!==null&&(g=`${g} + ${A} * 0.5`),h=`starDistanceField(${o}, ${l}, ${u}, ${g}, ${c})`}else h=`regularDistanceField(${o}, ${l}, ${u}, ${c})`;let f=lC(h,s,a,A,r);e.setSymbolColorExpression(f)}function q1(i,e,t,n){let r="vec4(1.0)";"icon-color"in i&&(r=ne(n,i["icon-color"],we)),"icon-opacity"in i&&(r=`${r} * vec4(1.0, 1.0, 1.0, ${ne(n,i["icon-opacity"],q)})`);let o=ac(i["icon-src"]),s=hd(i,e,t,"icon-",o);if(e.setSymbolColorExpression(`${r} * texture2D(u_texture${o}, v_texCoord)`).setSymbolSizeExpression(s),"icon-width"in i&&"icon-height"in i&&e.setSymbolSizeExpression(`vec2(${ne(n,i["icon-width"],q)}, ${ne(n,i["icon-height"],q)})`),"icon-offset"in i&&"icon-size"in i){let a=ne(n,i["icon-size"],et),A=e.getSymbolSizeExpression();e.setSymbolSizeExpression(a);let l=ud(i,"icon-",n,"v_quadSizePx",a);e.setTextureCoordinateExpression(`(vec4((${l}).xyxy) + vec4(0., 0., ${a})) / (${A}).xyxy`)}if(cd(i,e,n,"icon-"),"icon-anchor"in i){let a=ne(n,i["icon-anchor"],et),A="1.0";"icon-scale"in i&&(A=ne(n,i["icon-scale"],Ut));let l;i["icon-anchor-x-units"]==="pixels"&&i["icon-anchor-y-units"]==="pixels"?l=`${a} * ${A}`:i["icon-anchor-x-units"]==="pixels"?l=`${a} * vec2(vec2(${A}).x, v_quadSizePx.y)`:i["icon-anchor-y-units"]==="pixels"?l=`${a} * vec2(v_quadSizePx.x, vec2(${A}).x)`:l=`${a} * v_quadSizePx`;let c=`v_quadSizePx * vec2(0.5, -0.5) + ${l} * vec2(-1., 1.)`;if("icon-anchor-origin"in i)switch(i["icon-anchor-origin"]){case"top-right":c=`v_quadSizePx * -0.5 + ${l}`;break;case"bottom-left":c=`v_quadSizePx * 0.5 - ${l}`;break;case"bottom-right":c=`v_quadSizePx * vec2(-0.5, 0.5) + ${l} * vec2(1., -1.)`;break;default:}e.setSymbolOffsetExpression(`${e.getSymbolOffsetExpression()} + ${c}`)}}function V1(i,e,t,n){if("stroke-color"in i&&e.setStrokeColorExpression(ne(n,i["stroke-color"],we)),"stroke-pattern-src"in i){let r=ac(i["stroke-pattern-src"]),o=hd(i,e,t,"stroke-pattern-",r),s=o,a="vec2(0.)";"stroke-pattern-offset"in i&&"stroke-pattern-size"in i&&(s=ne(n,i["stroke-pattern-size"],et),a=ud(i,"stroke-pattern-",n,o,s));let A="0.";"stroke-pattern-spacing"in i&&(A=ne(n,i["stroke-pattern-spacing"],q)),n.functions.sampleStrokePattern=`vec4 sampleStrokePattern(sampler2D texture, vec2 textureSize, vec2 textureOffset, vec2 sampleSize, float spacingPx, float currentLengthPx, float currentRadiusRatio, float lineWidth) { +}`,CE(i,e,n,"shape-");let r=null;"shape-opacity"in i&&(r=le(n,i["shape-opacity"],te));let o="coordsPx";"shape-scale"in i&&(o=`coordsPx / ${le(n,i["shape-scale"],sn)}`);let s=null;"shape-fill-color"in i&&(s=le(n,i["shape-fill-color"],We));let a=null;"shape-stroke-color"in i&&(a=le(n,i["shape-stroke-color"],We));let l=null;"shape-stroke-width"in i&&(l=le(n,i["shape-stroke-width"],te));let A=le(n,i["shape-points"],te),c="0.";"shape-angle"in i&&(c=le(n,i["shape-angle"],te));let h,u=le(n,i["shape-radius"],te);if(l!==null&&(u=`${u} + ${l} * 0.5`),"shape-radius2"in i){let g=le(n,i["shape-radius2"],te);l!==null&&(g=`${g} + ${l} * 0.5`),h=`starDistanceField(${o}, ${A}, ${u}, ${g}, ${c})`}else h=`regularDistanceField(${o}, ${A}, ${u}, ${c})`;let f=I1(h,s,a,l,r);e.setSymbolColorExpression(f)}function qD(i,e,t,n){let r="vec4(1.0)";"icon-color"in i&&(r=le(n,i["icon-color"],We)),"icon-opacity"in i&&(r=`${r} * vec4(1.0, 1.0, 1.0, ${le(n,i["icon-opacity"],te)})`);let o=xf(i["icon-src"]),s=yE(i,e,t,"icon-",o);if(e.setSymbolColorExpression(`${r} * texture2D(u_texture${o}, v_texCoord)`).setSymbolSizeExpression(s),"icon-width"in i&&"icon-height"in i&&e.setSymbolSizeExpression(`vec2(${le(n,i["icon-width"],te)}, ${le(n,i["icon-height"],te)})`),"icon-offset"in i&&"icon-size"in i){let a=le(n,i["icon-size"],Xt),l=e.getSymbolSizeExpression();e.setSymbolSizeExpression(a);let A=_E(i,"icon-",n,"v_quadSizePx",a);e.setTextureCoordinateExpression(`(vec4((${A}).xyxy) + vec4(0., 0., ${a})) / (${l}).xyxy`)}if(CE(i,e,n,"icon-"),"icon-anchor"in i){let a=le(n,i["icon-anchor"],Xt),l="1.0";"icon-scale"in i&&(l=le(n,i["icon-scale"],sn));let A;i["icon-anchor-x-units"]==="pixels"&&i["icon-anchor-y-units"]==="pixels"?A=`${a} * ${l}`:i["icon-anchor-x-units"]==="pixels"?A=`${a} * vec2(vec2(${l}).x, v_quadSizePx.y)`:i["icon-anchor-y-units"]==="pixels"?A=`${a} * vec2(v_quadSizePx.x, vec2(${l}).x)`:A=`${a} * v_quadSizePx`;let c=`v_quadSizePx * vec2(0.5, -0.5) + ${A} * vec2(-1., 1.)`;if("icon-anchor-origin"in i)switch(i["icon-anchor-origin"]){case"top-right":c=`v_quadSizePx * -0.5 + ${A}`;break;case"bottom-left":c=`v_quadSizePx * 0.5 - ${A}`;break;case"bottom-right":c=`v_quadSizePx * vec2(-0.5, 0.5) + ${A} * vec2(1., -1.)`;break;default:}e.setSymbolOffsetExpression(`${e.getSymbolOffsetExpression()} + ${c}`)}}function KD(i,e,t,n){if("stroke-color"in i&&e.setStrokeColorExpression(le(n,i["stroke-color"],We)),"stroke-pattern-src"in i){let r=xf(i["stroke-pattern-src"]),o=yE(i,e,t,"stroke-pattern-",r),s=o,a="vec2(0.)";"stroke-pattern-offset"in i&&"stroke-pattern-size"in i&&(s=le(n,i["stroke-pattern-size"],Xt),a=_E(i,"stroke-pattern-",n,o,s));let l="0.";"stroke-pattern-spacing"in i&&(l=le(n,i["stroke-pattern-spacing"],te)),n.functions.sampleStrokePattern=`vec4 sampleStrokePattern(sampler2D texture, vec2 textureSize, vec2 textureOffset, vec2 sampleSize, float spacingPx, float currentLengthPx, float currentRadiusRatio, float lineWidth) { float currentLengthScaled = currentLengthPx * sampleSize.y / lineWidth; float spacingScaled = spacingPx * sampleSize.y / lineWidth; float uCoordPx = mod(currentLengthScaled, (sampleSize.x + spacingScaled)); @@ -523,22 +523,22 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a float vCoordPx = (-currentRadiusRatio * 0.5 + 0.5) * sampleSize.y; vec2 texCoord = (vec2(uCoordPx, vCoordPx) + textureOffset) / textureSize; return texture2D(texture, texCoord); -}`;let l=`u_texture${r}`,c="1.";"stroke-color"in i&&(c=e.getStrokeColorExpression()),e.setStrokeColorExpression(`${c} * sampleStrokePattern(${l}, ${o}, ${a}, ${s}, ${A}, currentLengthPx, currentRadiusRatio, v_width)`)}if("stroke-width"in i&&e.setStrokeWidthExpression(ne(n,i["stroke-width"],q)),"stroke-offset"in i&&e.setStrokeOffsetExpression(ne(n,i["stroke-offset"],q)),"stroke-line-cap"in i&&e.setStrokeCapExpression(ne(n,i["stroke-line-cap"],Ke)),"stroke-line-join"in i&&e.setStrokeJoinExpression(ne(n,i["stroke-line-join"],Ke)),"stroke-miter-limit"in i&&e.setStrokeMiterLimitExpression(ne(n,i["stroke-miter-limit"],q)),"stroke-line-dash"in i){n.functions.getSingleDashDistance=`float getSingleDashDistance(float distance, float radius, float dashOffset, float dashLength, float dashLengthTotal, float capType, float lineWidth) { +}`;let A=`u_texture${r}`,c="1.";"stroke-color"in i&&(c=e.getStrokeColorExpression()),e.setStrokeColorExpression(`${c} * sampleStrokePattern(${A}, ${o}, ${a}, ${s}, ${l}, currentLengthPx, currentRadiusRatio, v_width)`)}if("stroke-width"in i&&e.setStrokeWidthExpression(le(n,i["stroke-width"],te)),"stroke-offset"in i&&e.setStrokeOffsetExpression(le(n,i["stroke-offset"],te)),"stroke-line-cap"in i&&e.setStrokeCapExpression(le(n,i["stroke-line-cap"],Rt)),"stroke-line-join"in i&&e.setStrokeJoinExpression(le(n,i["stroke-line-join"],Rt)),"stroke-miter-limit"in i&&e.setStrokeMiterLimitExpression(le(n,i["stroke-miter-limit"],te)),"stroke-line-dash"in i){n.functions.getSingleDashDistance=`float getSingleDashDistance(float distance, float radius, float dashOffset, float dashLength, float dashLengthTotal, float capType, float lineWidth) { float localDistance = mod(distance, dashLengthTotal); float distanceSegment = abs(localDistance - dashOffset - dashLength * 0.5) - dashLength * 0.5; distanceSegment = min(distanceSegment, dashLengthTotal - localDistance); - if (capType == ${Di("square")}) { + if (capType == ${gr("square")}) { distanceSegment -= lineWidth * 0.5; - } else if (capType == ${Di("round")}) { + } else if (capType == ${gr("round")}) { distanceSegment = min(distanceSegment, sqrt(distanceSegment * distanceSegment + radius * radius) - lineWidth * 0.5); } return distanceSegment; -}`;let r=i["stroke-line-dash"].map(u=>ne(n,u,q));r.length%2===1&&(r=[...r,...r]);let o="0.";"stroke-line-dash-offset"in i&&(o=ne(n,i["stroke-line-dash-offset"],q));let a=`dashDistanceField_${ac(i["stroke-line-dash"])}`,A=r.map((u,f)=>`float dashLength${f} = ${u};`),l=r.map((u,f)=>`dashLength${f}`).join(" + "),c="0.",h=`getSingleDashDistance(distance, radius, ${c}, dashLength0, totalDashLength, capType, lineWidth)`;for(let u=2;ule(n,u,te));r.length%2===1&&(r=[...r,...r]);let o="0.";"stroke-line-dash-offset"in i&&(o=le(n,i["stroke-line-dash-offset"],te));let a=`dashDistanceField_${xf(i["stroke-line-dash"])}`,l=r.map((u,f)=>`float dashLength${f} = ${u};`),A=r.map((u,f)=>`dashLength${f}`).join(" + "),c="0.",h=`getSingleDashDistance(distance, radius, ${c}, dashLength0, totalDashLength, capType, lineWidth)`;for(let u=2;u` ${e.varyingType} ${e.name} = ${e.varyingName}; // a samplePos = clamp(samplePos, vec2(0.5), sampleSize - vec2(0.5)); samplePos.y = sampleSize.y - samplePos.y; // invert y axis so that images appear upright return texture2D(texture, (samplePos + textureOffset) / textureSize); -}`;let A=`u_texture${r}`,l="1.";"fill-color"in i&&(l=e.getFillColorExpression()),e.setFillColorExpression(`${l} * sampleFillPattern(${A}, ${o}, ${a}, ${s}, pxOrigin, pxPos)`)}}function cC(i,e,t){let n=ic(),r=new rc,o={};if("icon-src"in i?q1(i,r,o,n):"shape-points"in i?K1(i,r,o,n):"circle-radius"in i&&z1(i,r,o,n),V1(i,r,o,n),X1(i,r,o,n),t){let A=ne(n,t,ze);r.setFragmentDiscardExpression(`!${A}`)}let s={};function a(A,l,c,h){if(!n[A])return;let u=oc(c),f=sc(c);r.addAttribute(`a_${l}`,u),s[l]={size:f,callback:h}}return a("geometryType",sd,Ke,A=>Gn(qr(A.getGeometry()))),a("featureId",od,Ke|q,A=>{let l=A.getId()??null;return typeof l=="string"?Gn(l):l}),sC(r,n),{builder:r,attributes:{...s,...AC(n)},uniforms:{...o,...aC(n,e)}}}function hC(i){let e=Array.isArray(i)?i:[i];if("style"in e[0]){let t=[],n=e,r=[];for(let o of n){let s=Array.isArray(o.style)?o.style:[o.style],a=o.filter;o.else&&r.length&&(a=["all",...r.map(l=>["!",l])],o.filter&&a.push(o.filter),a.length<3&&(a=a[1])),o.filter&&r.push(o.filter);let A=s.map(l=>({style:l,...a&&{filter:a}}));t.push(...A)}return t}return"builder"in e[0]?e:e.map(t=>({style:t}))}var J1=[],fd;function j1(){return fd||(fd=U0()),fd}var W1=0,en={POSITION:"a_position",INDEX:"a_index",SEGMENT_START:"a_segmentStart",SEGMENT_END:"a_segmentEnd",MEASURE_START:"a_measureStart",MEASURE_END:"a_measureEnd",PARAMETERS:"a_parameters",JOIN_ANGLES:"a_joinAngles",DISTANCE:"a_distance"},gd=class{constructor(e,t,n,r,o){this.helper_,this.hitDetectionEnabled_=!!r;let s=e;if(!("builder"in e)){let c=e,h=cC(c.style,t,c.filter);s={builder:h.builder,attributes:h.attributes,uniforms:h.uniforms}}this.fillProgram_,this.strokeProgram_,this.symbolProgram_,this.hasFill_=!!s.builder.getFillVertexShader(),this.hasFill_&&(this.fillVertexShader_=s.builder.getFillVertexShader(),this.fillFragmentShader_=s.builder.getFillFragmentShader()),this.hasStroke_=!!s.builder.getStrokeVertexShader(),this.hasStroke_&&(this.strokeVertexShader_=s.builder.getStrokeVertexShader(),this.strokeFragmentShader_=s.builder.getStrokeFragmentShader()),this.hasSymbol_=!!s.builder.getSymbolVertexShader(),this.hasSymbol_&&(this.symbolVertexShader_=s.builder.getSymbolVertexShader(),this.symbolFragmentShader_=s.builder.getSymbolFragmentShader()),this.featureFilter_=null,o&&(this.featureFilter_=this.computeFeatureFilter(o));let A=this.hitDetectionEnabled_?{hitColor:{callback(){return Y0(this.ref,J1)},size:4}}:{};this.customAttributes_=Object.assign({},A,s.attributes),this.uniforms_=s.uniforms;let l=Object.entries(this.customAttributes_).map(([c,h])=>({name:`a_${c}`,size:h.size||1,type:lt.FLOAT}));this.polygonAttributesDesc_=[{name:en.POSITION,size:2,type:lt.FLOAT},...l],this.lineStringAttributesDesc_=[{name:en.SEGMENT_START,size:2,type:lt.FLOAT},{name:en.MEASURE_START,size:1,type:lt.FLOAT},{name:en.SEGMENT_END,size:2,type:lt.FLOAT},{name:en.MEASURE_END,size:1,type:lt.FLOAT},{name:en.JOIN_ANGLES,size:2,type:lt.FLOAT},{name:en.DISTANCE,size:1,type:lt.FLOAT},{name:en.PARAMETERS,size:1,type:lt.FLOAT},...l],this.pointAttributesDesc_=[{name:en.POSITION,size:2,type:lt.FLOAT},{name:en.INDEX,size:1,type:lt.FLOAT},...l],this.setHelper(n)}computeFeatureFilter(e){let t=Kr(),n;try{n=gi(e,ze,t)}catch{return null}if(t.mapState||t.variables.size>0)return null;let r=Ba();return o=>{if(r.properties=o.getPropertiesInternal(),t.featureId){let s=o.getId();s!==void 0?r.featureId=s:r.featureId=null}return r.geometryType=qr(o.getGeometry()),n(r)}}async generateBuffers(e,t){let n=e;if(this.featureFilter_&&(n=n.filter(this.featureFilter_),n.isEmpty()))return null;let r=this.generateRenderInstructions_(n,t),[o,s,a]=await Promise.all([this.generateBuffersForType_(r.polygonInstructions,"Polygon",t),this.generateBuffersForType_(r.lineStringInstructions,"LineString",t),this.generateBuffersForType_(r.pointInstructions,"Point",t)]),A=wi(Ce(),t);return{polygonBuffers:o,lineStringBuffers:s,pointBuffers:a,invertVerticesTransform:A}}generateRenderInstructions_(e,t){let n=this.hasFill_?rC(e.polygonBatch,new Float32Array(0),this.customAttributes_,t):null,r=this.hasStroke_?nC(e.lineStringBatch,new Float32Array(0),this.customAttributes_,t):null,o=this.hasSymbol_?iC(e.pointBatch,new Float32Array(0),this.customAttributes_,t):null;return{polygonInstructions:n,lineStringInstructions:r,pointInstructions:o}}generateBuffersForType_(e,t,n){if(e===null)return null;let r=W1++,o;switch(t){case"Polygon":o=$l.GENERATE_POLYGON_BUFFERS;break;case"LineString":o=$l.GENERATE_LINE_STRING_BUFFERS;break;case"Point":o=$l.GENERATE_POINT_BUFFERS;break;default:}let s={id:r,type:o,renderInstructions:e.buffer,renderInstructionsTransform:n,customAttributesSize:Oa(this.customAttributes_)},a=j1();return a.postMessage(s,[e.buffer]),e=null,new Promise(A=>{let l=c=>{let h=c.data;if(h.id!==r||(a.removeEventListener("message",l),!this.helper_.getGL()))return;let u=new eo(Zr,Ma).fromArrayBuffer(h.vertexBuffer),f=new eo($r,Ma).fromArrayBuffer(h.indexBuffer);this.helper_.flushBufferData(u),this.helper_.flushBufferData(f),A([f,u])};a.addEventListener("message",l)})}render(e,t,n){this.hasFill_&&this.renderInternal_(e.polygonBuffers[0],e.polygonBuffers[1],this.fillProgram_,this.polygonAttributesDesc_,t,n),this.hasStroke_&&this.renderInternal_(e.lineStringBuffers[0],e.lineStringBuffers[1],this.strokeProgram_,this.lineStringAttributesDesc_,t,n),this.hasSymbol_&&this.renderInternal_(e.pointBuffers[0],e.pointBuffers[1],this.symbolProgram_,this.pointAttributesDesc_,t,n)}renderInternal_(e,t,n,r,o,s){let a=e.getSize();a!==0&&(this.helper_.useProgram(n,o),this.helper_.bindBuffer(t),this.helper_.bindBuffer(e),this.helper_.enableAttributes(r),s(),this.helper_.drawElements(0,a))}setHelper(e,t=null){this.helper_=e,this.hasFill_&&(this.fillProgram_=this.helper_.getProgram(this.fillFragmentShader_,this.fillVertexShader_)),this.hasStroke_&&(this.strokeProgram_=this.helper_.getProgram(this.strokeFragmentShader_,this.strokeVertexShader_)),this.hasSymbol_&&(this.symbolProgram_=this.helper_.getProgram(this.symbolFragmentShader_,this.symbolVertexShader_)),this.helper_.addUniforms(this.uniforms_),t&&(t.polygonBuffers&&(this.helper_.flushBufferData(t.polygonBuffers[0]),this.helper_.flushBufferData(t.polygonBuffers[1])),t.lineStringBuffers&&(this.helper_.flushBufferData(t.lineStringBuffers[0]),this.helper_.flushBufferData(t.lineStringBuffers[1])),t.pointBuffers&&(this.helper_.flushBufferData(t.pointBuffers[0]),this.helper_.flushBufferData(t.pointBuffers[1])))}},uC=gd;var tn=new Uint8Array(4),dd=class{constructor(e,t){this.helper_=e;let n=e.getGL();this.texture_=n.createTexture(),this.framebuffer_=n.createFramebuffer(),this.depthbuffer_=n.createRenderbuffer(),this.size_=t||[1,1],this.data_=new Uint8Array(0),this.dataCacheDirty_=!0,this.updateSize_()}setSize(e){rt(e,this.size_)||(this.size_[0]=e[0],this.size_[1]=e[1],this.updateSize_())}getSize(){return this.size_}clearCachedData(){this.dataCacheDirty_=!0}readAll(){if(this.dataCacheDirty_){let e=this.size_,t=this.helper_.getGL();t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer_),t.readPixels(0,0,e[0],e[1],t.RGBA,t.UNSIGNED_BYTE,this.data_),this.dataCacheDirty_=!1}return this.data_}readPixel(e,t){if(e<0||t<0||e>this.size_[0]||t>=this.size_[1])return tn[0]=0,tn[1]=0,tn[2]=0,tn[3]=0,tn;this.readAll();let n=Math.floor(e)+(this.size_[1]-Math.floor(t)-1)*this.size_[0];return tn[0]=this.data_[n*4],tn[1]=this.data_[n*4+1],tn[2]=this.data_[n*4+2],tn[3]=this.data_[n*4+3],tn}getTexture(){return this.texture_}getFramebuffer(){return this.framebuffer_}getDepthbuffer(){return this.depthbuffer_}updateSize_(){let e=this.size_,t=this.helper_.getGL();this.texture_=this.helper_.createTexture(e,null,this.texture_),t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer_),t.viewport(0,0,e[0],e[1]),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.texture_,0),t.bindRenderbuffer(t.RENDERBUFFER,this.depthbuffer_),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,e[0],e[1]),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,this.depthbuffer_),this.data_=new Uint8Array(e[0]*e[1]*4)}},fC=dd;function gC(i,e){let t=i.viewState.projection,r=e.getSource().getWrapX()&&t.canWrapX(),o=t.getExtent(),s=i.extent,a=r?oe(o):null,A=r?Math.ceil((s[2]-o[2])/a)+1:1;return[r?Math.floor((s[0]-o[0])/a):0,A,a]}var As={...$i,RENDER_EXTENT:"u_renderExtent",PATTERN_ORIGIN:"u_patternOrigin",GLOBAL_ALPHA:"u_globalAlpha"},md=class extends ec{constructor(e,t){let n={[As.RENDER_EXTENT]:[0,0,0,0],[As.PATTERN_ORIGIN]:[0,0],[As.GLOBAL_ALPHA]:1};super(e,{uniforms:n,postProcesses:t.postProcesses}),this.hitDetectionEnabled_=!t.disableHitDetection,this.hitRenderTarget_,this.sourceRevision_=-1,this.previousExtent_=be(),this.currentTransform_=Ce(),this.tmpCoords_=[0,0],this.tmpTransform_=Ce(),this.tmpMat4_=Zi(),this.currentFrameStateTransform_=Ce(),this.styleVariables_={},this.styles_=[],this.styleRenderers_=[],this.buffers_=[],this.applyOptions_(t),this.batch_=new S0,this.initialFeaturesAdded_=!1,this.sourceListenKeys_=null}addInitialFeatures_(e){let t=this.getLayer().getSource(),n=ci(),r;n&&(r=li(n,e.viewState.projection)),this.batch_.addFeatures(t.getFeatures(),r),this.sourceListenKeys_=[X(t,at.ADDFEATURE,this.handleSourceFeatureAdded_.bind(this,r)),X(t,at.CHANGEFEATURE,this.handleSourceFeatureChanged_,this),X(t,at.REMOVEFEATURE,this.handleSourceFeatureDelete_,this),X(t,at.CLEAR,this.handleSourceFeatureClear_,this)]}applyOptions_(e){this.styleVariables_=e.variables,this.styles_=hC(e.style)}createRenderers_(){this.buffers_=[],this.styleRenderers_=this.styles_.map(e=>new uC(e,this.styleVariables_,this.helper,this.hitDetectionEnabled_,"filter"in e?e.filter:null))}reset(e){this.applyOptions_(e),this.helper&&this.createRenderers_(),super.reset(e)}afterHelperCreated(){this.styleRenderers_.length?this.styleRenderers_.forEach((e,t)=>e.setHelper(this.helper,this.buffers_[t])):this.createRenderers_(),this.hitDetectionEnabled_&&(this.hitRenderTarget_=new fC(this.helper))}handleSourceFeatureAdded_(e,t){let n=t.feature;this.batch_.addFeature(n,e)}handleSourceFeatureChanged_(e){let t=e.feature;this.batch_.changeFeature(t)}handleSourceFeatureDelete_(e){let t=e.feature;this.batch_.removeFeature(t)}handleSourceFeatureClear_(){this.batch_.clear()}applyUniforms_(e){WA(this.tmpTransform_,this.currentFrameStateTransform_),$n(this.tmpTransform_,e),this.helper.setUniformMatrixValue(As.PROJECTION_MATRIX,to(this.tmpMat4_,this.tmpTransform_)),wi(this.tmpTransform_,this.tmpTransform_),this.helper.setUniformMatrixValue(As.SCREEN_TO_WORLD_MATRIX,to(this.tmpMat4_,this.tmpTransform_)),this.tmpCoords_[0]=0,this.tmpCoords_[1]=0,wi(this.tmpTransform_,e),ye(this.tmpTransform_,this.tmpCoords_),this.helper.setUniformFloatVec2(As.PATTERN_ORIGIN,this.tmpCoords_)}renderFrame(e){let t=this.helper.getGL();this.preRender(t,e);let[n,r,o]=gC(e,this.getLayer());this.helper.prepareDraw(e),this.renderWorlds(e,!1,n,r,o),this.helper.finalizeDraw(e,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);let s=this.helper.getCanvas();return this.hitDetectionEnabled_&&(this.renderWorlds(e,!0,n,r,o),this.hitRenderTarget_.clearCachedData()),this.postRender(t,e),s}prepareFrameInternal(e){this.initialFeaturesAdded_||(this.addInitialFeatures_(e),this.initialFeaturesAdded_=!0);let t=this.getLayer(),n=t.getSource(),r=e.viewState,o=!e.viewHints[Ye.ANIMATING]&&!e.viewHints[Ye.INTERACTING],s=!jt(this.previousExtent_,e.extent),a=this.sourceRevision_m.generateBuffers(this.batch_,f).then(E=>{this.buffers_[d]&&this.disposeBuffers(this.buffers_[d]),this.buffers_[d]=E}));Promise.all(g).then(()=>{this.ready=!0,this.getLayer().changed()}),this.previousExtent_=e.extent.slice()}return!0}renderWorlds(e,t,n,r,o){let s=n;t&&(this.hitRenderTarget_.setSize([Math.floor(e.size[0]/2),Math.floor(e.size[1]/2)]),this.helper.prepareDrawToRenderTarget(e,this.hitRenderTarget_,!0));do{this.helper.makeProjectionTransform(e,this.currentFrameStateTransform_),ZA(this.currentFrameStateTransform_,s*o,0);for(let a=0,A=this.styleRenderers_.length;a{this.applyUniforms_(c.invertVerticesTransform),this.helper.applyHitDetectionUniform(t)})}}while(++s{for(let r of n)r&&this.helper.deleteBuffer(r)};e.pointBuffers&&t(e.pointBuffers),e.lineStringBuffers&&t(e.lineStringBuffers),e.polygonBuffers&&t(e.polygonBuffers)}disposeInternal(){this.buffers_.forEach(e=>{e&&this.disposeBuffers(e)}),this.sourceListenKeys_&&(this.sourceListenKeys_.forEach(function(e){se(e)}),this.sourceListenKeys_=null),super.disposeInternal()}renderDeclutter(){}},dC=md;var pd=class extends Ln{constructor(e){let t=Object.assign({},e);super(t),this.styleVariables_=e.variables||{},this.style_=e.style,this.hitDetectionDisabled_=!!e.disableHitDetection}createRenderer(){return new dC(this,{style:this.style_,variables:this.styleVariables_,disableHitDetection:this.hitDetectionDisabled_})}updateStyleVariables(e){Object.assign(this.styleVariables_,e),this.changed()}setStyle(e){this.style_=e,this.clearRenderer(),this.changed()}},mC=pd;function pC(i,e){let t=` - attribute vec2 ${Na.TEXTURE_COORD}; - uniform mat4 ${Ae.TILE_TRANSFORM}; - uniform float ${Ae.TEXTURE_PIXEL_WIDTH}; - uniform float ${Ae.TEXTURE_PIXEL_HEIGHT}; - uniform float ${Ae.TEXTURE_RESOLUTION}; - uniform float ${Ae.TEXTURE_ORIGIN_X}; - uniform float ${Ae.TEXTURE_ORIGIN_Y}; - uniform float ${Ae.DEPTH}; +}`;let l=`u_texture${r}`,A="1.";"fill-color"in i&&(A=e.getFillColorExpression()),e.setFillColorExpression(`${A} * sampleFillPattern(${l}, ${o}, ${a}, ${s}, pxOrigin, pxPos)`)}}function Bf(i,e,t){let n=xl(),r=new Is,o={};if("icon-src"in i?qD(i,r,o,n):"shape-points"in i?HD(i,r,o,n):"circle-radius"in i&&VD(i,r,o,n),KD(i,r,o,n),XD(i,r,o,n),t){let l=le(n,t,It);r.setFragmentDiscardExpression(`!${l}`)}let s={};function a(l,A,c,h){if(!n[l])return;let u=pf(c),f=mf(c);r.addAttribute(`a_${A}`,u),s[A]={size:f,callback:h}}return a("geometryType",dE,Rt,l=>Bo(ea(l.getGeometry()))),a("featureId",gE,Rt|te,l=>{let A=l.getId()??null;return typeof A=="string"?Bo(A):A}),Ef(r,n),{builder:r,attributes:{...s,...Cf(n)},uniforms:{...o,...If(n,e)}}}function wf(i){let e=Array.isArray(i)?i:[i];if("style"in e[0]){let t=[],n=e,r=[];for(let o of n){let s=Array.isArray(o.style)?o.style:[o.style],a=o.filter;o.else&&r.length&&(a=["all",...r.map(A=>["!",A])],o.filter&&a.push(o.filter),a.length<3&&(a=a[1])),o.filter&&r.push(o.filter);let l=s.map(A=>({style:A,...a&&{filter:a}}));t.push(...l)}return t}return"builder"in e[0]?e:e.map(t=>({style:t}))}var jD=[],xE;function WD(){return xE||(xE=f1()),xE}var JD=0,kr={POSITION:"a_position",INDEX:"a_index",SEGMENT_START:"a_segmentStart",SEGMENT_END:"a_segmentEnd",MEASURE_START:"a_measureStart",MEASURE_END:"a_measureEnd",PARAMETERS:"a_parameters",JOIN_ANGLES:"a_joinAngles",DISTANCE:"a_distance"},BE=class{constructor(e,t,n,r,o){this.helper_,this.hitDetectionEnabled_=!!r;let s=e;if(!("builder"in e)){let c=e,h=Bf(c.style,t,c.filter);s={builder:h.builder,attributes:h.attributes,uniforms:h.uniforms}}this.fillProgram_,this.strokeProgram_,this.symbolProgram_,this.hasFill_=!!s.builder.getFillVertexShader(),this.hasFill_&&(this.fillVertexShader_=s.builder.getFillVertexShader(),this.fillFragmentShader_=s.builder.getFillFragmentShader()),this.hasStroke_=!!s.builder.getStrokeVertexShader(),this.hasStroke_&&(this.strokeVertexShader_=s.builder.getStrokeVertexShader(),this.strokeFragmentShader_=s.builder.getStrokeFragmentShader()),this.hasSymbol_=!!s.builder.getSymbolVertexShader(),this.hasSymbol_&&(this.symbolVertexShader_=s.builder.getSymbolVertexShader(),this.symbolFragmentShader_=s.builder.getSymbolFragmentShader()),this.featureFilter_=null,o&&(this.featureFilter_=this.computeFeatureFilter(o));let l=this.hitDetectionEnabled_?{hitColor:{callback(){return g1(this.ref,jD)},size:4}}:{};this.customAttributes_=Object.assign({},l,s.attributes),this.uniforms_=s.uniforms;let A=Object.entries(this.customAttributes_).map(([c,h])=>({name:`a_${c}`,size:h.size||1,type:Ut.FLOAT}));this.polygonAttributesDesc_=[{name:kr.POSITION,size:2,type:Ut.FLOAT},...A],this.lineStringAttributesDesc_=[{name:kr.SEGMENT_START,size:2,type:Ut.FLOAT},{name:kr.MEASURE_START,size:1,type:Ut.FLOAT},{name:kr.SEGMENT_END,size:2,type:Ut.FLOAT},{name:kr.MEASURE_END,size:1,type:Ut.FLOAT},{name:kr.JOIN_ANGLES,size:2,type:Ut.FLOAT},{name:kr.DISTANCE,size:1,type:Ut.FLOAT},{name:kr.PARAMETERS,size:1,type:Ut.FLOAT},...A],this.pointAttributesDesc_=[{name:kr.POSITION,size:2,type:Ut.FLOAT},{name:kr.INDEX,size:1,type:Ut.FLOAT},...A],this.setHelper(n)}computeFeatureFilter(e){let t=Zs(),n;try{n=Yn(e,It,t)}catch{return null}if(t.mapState||t.variables.size>0)return null;let r=sc();return o=>{if(r.properties=o.getPropertiesInternal(),t.featureId){let s=o.getId();s!==void 0?r.featureId=s:r.featureId=null}return r.geometryType=ea(o.getGeometry()),n(r)}}async generateBuffers(e,t){let n=e;if(this.featureFilter_&&(n=n.filter(this.featureFilter_),n.isEmpty()))return null;let r=this.generateRenderInstructions_(n,t),[o,s,a]=await Promise.all([this.generateBuffersForType_(r.polygonInstructions,"Polygon",t),this.generateBuffersForType_(r.lineStringInstructions,"LineString",t),this.generateBuffersForType_(r.pointInstructions,"Point",t)]),l=en(Ce(),t);return{polygonBuffers:o,lineStringBuffers:s,pointBuffers:a,invertVerticesTransform:l}}generateRenderInstructions_(e,t){let n=this.hasFill_?E1(e.polygonBatch,new Float32Array(0),this.customAttributes_,t):null,r=this.hasStroke_?m1(e.lineStringBatch,new Float32Array(0),this.customAttributes_,t):null,o=this.hasSymbol_?p1(e.pointBatch,new Float32Array(0),this.customAttributes_,t):null;return{polygonInstructions:n,lineStringInstructions:r,pointInstructions:o}}generateBuffersForType_(e,t,n){if(e===null)return null;let r=JD++,o;switch(t){case"Polygon":o=_f.GENERATE_POLYGON_BUFFERS;break;case"LineString":o=_f.GENERATE_LINE_STRING_BUFFERS;break;case"Point":o=_f.GENERATE_POINT_BUFFERS;break;default:}let s={id:r,type:o,renderInstructions:e.buffer,renderInstructionsTransform:n,customAttributesSize:Sc(this.customAttributes_)},a=WD();return a.postMessage(s,[e.buffer]),e=null,new Promise(l=>{let A=c=>{let h=c.data;if(h.id!==r||(a.removeEventListener("message",A),!this.helper_.getGL()))return;let u=new fr(yo,xc).fromArrayBuffer(h.vertexBuffer),f=new fr(_o,xc).fromArrayBuffer(h.indexBuffer);this.helper_.flushBufferData(u),this.helper_.flushBufferData(f),l([f,u])};a.addEventListener("message",A)})}render(e,t,n){this.hasFill_&&this.renderInternal_(e.polygonBuffers[0],e.polygonBuffers[1],this.fillProgram_,this.polygonAttributesDesc_,t,n),this.hasStroke_&&this.renderInternal_(e.lineStringBuffers[0],e.lineStringBuffers[1],this.strokeProgram_,this.lineStringAttributesDesc_,t,n),this.hasSymbol_&&this.renderInternal_(e.pointBuffers[0],e.pointBuffers[1],this.symbolProgram_,this.pointAttributesDesc_,t,n)}renderInternal_(e,t,n,r,o,s){let a=e.getSize();a!==0&&(this.helper_.useProgram(n,o),this.helper_.bindBuffer(t),this.helper_.bindBuffer(e),this.helper_.enableAttributes(r),s(),this.helper_.drawElements(0,a))}setHelper(e,t=null){this.helper_=e,this.hasFill_&&(this.fillProgram_=this.helper_.getProgram(this.fillFragmentShader_,this.fillVertexShader_)),this.hasStroke_&&(this.strokeProgram_=this.helper_.getProgram(this.strokeFragmentShader_,this.strokeVertexShader_)),this.hasSymbol_&&(this.symbolProgram_=this.helper_.getProgram(this.symbolFragmentShader_,this.symbolVertexShader_)),this.helper_.addUniforms(this.uniforms_),t&&(t.polygonBuffers&&(this.helper_.flushBufferData(t.polygonBuffers[0]),this.helper_.flushBufferData(t.polygonBuffers[1])),t.lineStringBuffers&&(this.helper_.flushBufferData(t.lineStringBuffers[0]),this.helper_.flushBufferData(t.lineStringBuffers[1])),t.pointBuffers&&(this.helper_.flushBufferData(t.pointBuffers[0]),this.helper_.flushBufferData(t.pointBuffers[1])))}},vf=BE;var Pr=new Uint8Array(4),wE=class{constructor(e,t){this.helper_=e;let n=e.getGL();this.texture_=n.createTexture(),this.framebuffer_=n.createFramebuffer(),this.depthbuffer_=n.createRenderbuffer(),this.size_=t||[1,1],this.data_=new Uint8Array(0),this.dataCacheDirty_=!0,this.updateSize_()}setSize(e){Mt(e,this.size_)||(this.size_[0]=e[0],this.size_[1]=e[1],this.updateSize_())}getSize(){return this.size_}clearCachedData(){this.dataCacheDirty_=!0}readAll(){if(this.dataCacheDirty_){let e=this.size_,t=this.helper_.getGL();t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer_),t.readPixels(0,0,e[0],e[1],t.RGBA,t.UNSIGNED_BYTE,this.data_),this.dataCacheDirty_=!1}return this.data_}readPixel(e,t){if(e<0||t<0||e>this.size_[0]||t>=this.size_[1])return Pr[0]=0,Pr[1]=0,Pr[2]=0,Pr[3]=0,Pr;this.readAll();let n=Math.floor(e)+(this.size_[1]-Math.floor(t)-1)*this.size_[0];return Pr[0]=this.data_[n*4],Pr[1]=this.data_[n*4+1],Pr[2]=this.data_[n*4+2],Pr[3]=this.data_[n*4+3],Pr}getTexture(){return this.texture_}getFramebuffer(){return this.framebuffer_}getDepthbuffer(){return this.depthbuffer_}updateSize_(){let e=this.size_,t=this.helper_.getGL();this.texture_=this.helper_.createTexture(e,null,this.texture_),t.bindFramebuffer(t.FRAMEBUFFER,this.framebuffer_),t.viewport(0,0,e[0],e[1]),t.framebufferTexture2D(t.FRAMEBUFFER,t.COLOR_ATTACHMENT0,t.TEXTURE_2D,this.texture_,0),t.bindRenderbuffer(t.RENDERBUFFER,this.depthbuffer_),t.renderbufferStorage(t.RENDERBUFFER,t.DEPTH_COMPONENT16,e[0],e[1]),t.framebufferRenderbuffer(t.FRAMEBUFFER,t.DEPTH_ATTACHMENT,t.RENDERBUFFER,this.depthbuffer_),this.data_=new Uint8Array(e[0]*e[1]*4)}},Sf=wE;function C1(i,e){let t=i.viewState.projection,r=e.getSource().getWrapX()&&t.canWrapX(),o=t.getExtent(),s=i.extent,a=r?ue(o):null,l=r?Math.ceil((s[2]-o[2])/a)+1:1;return[r?Math.floor((s[0]-o[0])/a):0,l,a]}var vl={...Mr,RENDER_EXTENT:"u_renderExtent",PATTERN_ORIGIN:"u_patternOrigin",GLOBAL_ALPHA:"u_globalAlpha"},vE=class extends hf{constructor(e,t){let n={[vl.RENDER_EXTENT]:[0,0,0,0],[vl.PATTERN_ORIGIN]:[0,0],[vl.GLOBAL_ALPHA]:1};super(e,{uniforms:n,postProcesses:t.postProcesses}),this.hitDetectionEnabled_=!t.disableHitDetection,this.hitRenderTarget_,this.sourceRevision_=-1,this.previousExtent_=ot(),this.currentTransform_=Ce(),this.tmpCoords_=[0,0],this.tmpTransform_=Ce(),this.tmpMat4_=Kn(),this.currentFrameStateTransform_=Ce(),this.styleVariables_={},this.styles_=[],this.styleRenderers_=[],this.buffers_=[],this.applyOptions_(t),this.batch_=new yf,this.initialFeaturesAdded_=!1,this.sourceListenKeys_=null}addInitialFeatures_(e){let t=this.getLayer().getSource(),n=st(),r;n&&(r=$i(n,e.viewState.projection)),this.batch_.addFeatures(t.getFeatures(),r),this.sourceListenKeys_=[ee(t,Et.ADDFEATURE,this.handleSourceFeatureAdded_.bind(this,r)),ee(t,Et.CHANGEFEATURE,this.handleSourceFeatureChanged_,this),ee(t,Et.REMOVEFEATURE,this.handleSourceFeatureDelete_,this),ee(t,Et.CLEAR,this.handleSourceFeatureClear_,this)]}applyOptions_(e){this.styleVariables_=e.variables,this.styles_=wf(e.style)}createRenderers_(){this.buffers_=[],this.styleRenderers_=this.styles_.map(e=>new vf(e,this.styleVariables_,this.helper,this.hitDetectionEnabled_,"filter"in e?e.filter:null))}reset(e){this.applyOptions_(e),this.helper&&this.createRenderers_(),super.reset(e)}afterHelperCreated(){this.styleRenderers_.length?this.styleRenderers_.forEach((e,t)=>e.setHelper(this.helper,this.buffers_[t])):this.createRenderers_(),this.hitDetectionEnabled_&&(this.hitRenderTarget_=new Sf(this.helper))}handleSourceFeatureAdded_(e,t){let n=t.feature;this.batch_.addFeature(n,e)}handleSourceFeatureChanged_(e){let t=e.feature;this.batch_.changeFeature(t)}handleSourceFeatureDelete_(e){let t=e.feature;this.batch_.removeFeature(t)}handleSourceFeatureClear_(){this.batch_.clear()}applyUniforms_(e){Us(this.tmpTransform_,this.currentFrameStateTransform_),Un(this.tmpTransform_,e),this.helper.setUniformMatrixValue(vl.PROJECTION_MATRIX,Xn(this.tmpMat4_,this.tmpTransform_)),en(this.tmpTransform_,this.tmpTransform_),this.helper.setUniformMatrixValue(vl.SCREEN_TO_WORLD_MATRIX,Xn(this.tmpMat4_,this.tmpTransform_)),this.tmpCoords_[0]=0,this.tmpCoords_[1]=0,en(this.tmpTransform_,e),be(this.tmpTransform_,this.tmpCoords_),this.helper.setUniformFloatVec2(vl.PATTERN_ORIGIN,this.tmpCoords_)}renderFrame(e){let t=this.helper.getGL();this.preRender(t,e);let[n,r,o]=C1(e,this.getLayer());this.helper.prepareDraw(e),this.renderWorlds(e,!1,n,r,o),this.helper.finalizeDraw(e,this.dispatchPreComposeEvent,this.dispatchPostComposeEvent);let s=this.helper.getCanvas();return this.hitDetectionEnabled_&&(this.renderWorlds(e,!0,n,r,o),this.hitRenderTarget_.clearCachedData()),this.postRender(t,e),s}prepareFrameInternal(e){this.initialFeaturesAdded_||(this.addInitialFeatures_(e),this.initialFeaturesAdded_=!0);let t=this.getLayer(),n=t.getSource(),r=e.viewState,o=!e.viewHints[Ne.ANIMATING]&&!e.viewHints[Ne.INTERACTING],s=!Mi(this.previousExtent_,e.extent),a=this.sourceRevision_p.generateBuffers(this.batch_,f).then(I=>{this.buffers_[d]&&this.disposeBuffers(this.buffers_[d]),this.buffers_[d]=I}));Promise.all(g).then(()=>{this.ready=!0,this.getLayer().changed()}),this.previousExtent_=e.extent.slice()}return!0}renderWorlds(e,t,n,r,o){let s=n;t&&(this.hitRenderTarget_.setSize([Math.floor(e.size[0]/2),Math.floor(e.size[1]/2)]),this.helper.prepareDrawToRenderTarget(e,this.hitRenderTarget_,!0));do{this.helper.makeProjectionTransform(e,this.currentFrameStateTransform_),ns(this.currentFrameStateTransform_,s*o,0);for(let a=0,l=this.styleRenderers_.length;a{this.applyUniforms_(c.invertVerticesTransform),this.helper.applyHitDetectionUniform(t)})}}while(++s{for(let r of n)r&&this.helper.deleteBuffer(r)};e.pointBuffers&&t(e.pointBuffers),e.lineStringBuffers&&t(e.lineStringBuffers),e.polygonBuffers&&t(e.polygonBuffers)}disposeInternal(){this.buffers_.forEach(e=>{e&&this.disposeBuffers(e)}),this.sourceListenKeys_&&(this.sourceListenKeys_.forEach(function(e){ce(e)}),this.sourceListenKeys_=null),super.disposeInternal()}renderDeclutter(){}},Tf=vE;var wo={BLUR:"blur",GRADIENT:"gradient",RADIUS:"radius"},$D=["#00f","#0ff","#0f0","#ff0","#f00"],SE=class extends Vn{constructor(e){e=e||{};let t=Object.assign({},e);delete t.gradient,delete t.radius,delete t.blur,delete t.weight,super(t),this.filter_=e.filter??!0,this.styleVariables_=e.variables||{},this.gradient_=null,this.addChangeListener(wo.GRADIENT,this.handleGradientChanged_),this.setGradient(e.gradient?e.gradient:$D),this.setBlur(e.blur!==void 0?e.blur:15),this.setRadius(e.radius!==void 0?e.radius:8);let n=e.weight?e.weight:"weight";this.weight_=n,this.setRenderOrder(null)}getBlur(){return this.get(wo.BLUR)}getGradient(){return this.get(wo.GRADIENT)}getRadius(){return this.get(wo.RADIUS)}handleGradientChanged_(){this.gradient_=ZD(this.getGradient())}setBlur(e){let t=this.get(wo.BLUR);if(this.set(wo.BLUR,e),typeof e=="number"&&typeof t=="number"){this.changed();return}this.clearRenderer()}setGradient(e){this.set(wo.GRADIENT,e)}setRadius(e){let t=this.get(wo.RADIUS);if(this.set(wo.RADIUS,e),typeof e=="number"&&typeof t=="number"){this.changed();return}this.clearRenderer()}setFilter(e){this.filter_=e,this.changed(),this.clearRenderer()}setWeight(e){this.weight_=e,this.changed(),this.clearRenderer()}createRenderer(){let e=new Is,t=xl(),n=le(t,this.filter_,It),r=le(t,this.getRadius(),te),o=le(t,this.getBlur(),te),s={};typeof this.getBlur()=="number"&&(o="a_blur",s.a_blur=()=>this.getBlur(),e.addUniform("float a_blur")),typeof this.getRadius()=="number"&&(r="a_radius",s.a_radius=()=>this.getRadius(),e.addUniform("float a_radius"));let a={},l=null;if(typeof this.weight_=="string"||typeof this.weight_=="function"){let h=typeof this.weight_=="string"?u=>u.get(this.weight_):this.weight_;a.prop_weight={size:1,callback:u=>{let f=h(u);return f!==void 0?Ee(f,0,1):1}},l="a_prop_weight",e.addAttribute("a_prop_weight","float")}else{let h=["clamp",this.weight_,0,1];l=le(t,h,te)}e.addFragmentShaderFunction(`float getBlurSlope() { + float blur = max(1., ${o}); + float radius = ${r}; + return radius / blur; +}`).setSymbolSizeExpression(`vec2(${r} + ${o}) * 2.`).setSymbolColorExpression(`vec4(smoothstep(0., 1., (1. - length(coordsPx * 2. / v_quadSizePx)) * getBlurSlope()) * ${l})`).setStrokeColorExpression(`vec4(smoothstep(0., 1., (1. - length(currentRadiusPx * 2. / v_width)) * getBlurSlope()) * ${l})`).setStrokeWidthExpression(`(${r} + ${o}) * 2.`).setFillColorExpression(`vec4(${l})`).setFragmentDiscardExpression(`!${n}`),Ef(e,t);let A=Cf(t),c=If(t,this.styleVariables_);return new Tf(this,{className:this.getClassName(),variables:this.styleVariables_,style:{builder:e,attributes:{...A,...a},uniforms:{...c,...s}},disableHitDetection:!1,postProcesses:[{fragmentShader:` + precision mediump float; + + uniform sampler2D u_image; + uniform sampler2D u_gradientTexture; + uniform float u_opacity; + + varying vec2 v_texCoord; + + void main() { + vec4 color = texture2D(u_image, v_texCoord); + gl_FragColor.a = color.a * u_opacity; + gl_FragColor.rgb = texture2D(u_gradientTexture, vec2(0.5, color.a)).rgb; + gl_FragColor.rgb *= gl_FragColor.a; + }`,uniforms:{u_gradientTexture:()=>this.gradient_,u_opacity:()=>this.getOpacity()}}]})}updateStyleVariables(e){Object.assign(this.styleVariables_,e),this.changed()}renderDeclutter(){}};function ZD(i){let n=Re(1,256),r=n.createLinearGradient(0,0,1,256),o=1/(i.length-1);for(let s=0,a=i.length;s` ${e.varyingType} ${e.name} = ${e.varyingName}; // a sb, sb, sb + saturation ); color.rgb = clamp(saturationMatrix * color.rgb, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0)); - `)}if(i.gamma!==void 0){let h=ne(n,i.gamma,q);r.push(`color.rgb = pow(color.rgb, vec3(1.0 / ${h}));`)}if(i.brightness!==void 0){let h=ne(n,i.brightness,q);r.push(`color.rgb = clamp(color.rgb + ${h}, vec3(0.0, 0.0, 0.0), vec3(1.0, 1.0, 1.0));`)}let o={},s=Object.keys(n.variables).length;if(s>1&&!i.variables)throw new Error(`Missing variables in style (expected ${n.variables})`);for(let h=0;h1&&!i.variables)throw new Error(`Missing variables in style (expected ${n.variables})`);for(let h=0;h` ${e.varyingType} ${e.name} = ${e.varyingName}; // a varying vec2 v_textureCoord; varying vec2 v_mapCoord; - uniform vec4 ${Ae.RENDER_EXTENT}; - uniform float ${Ae.TRANSITION_ALPHA}; - uniform float ${Ae.TEXTURE_PIXEL_WIDTH}; - uniform float ${Ae.TEXTURE_PIXEL_HEIGHT}; - uniform float ${Ae.RESOLUTION}; - uniform float ${Ae.ZOOM}; + uniform vec4 ${Ie.RENDER_EXTENT}; + uniform float ${Ie.TRANSITION_ALPHA}; + uniform float ${Ie.TEXTURE_PIXEL_WIDTH}; + uniform float ${Ie.TEXTURE_PIXEL_HEIGHT}; + uniform float ${Ie.RESOLUTION}; + uniform float ${Ie.ZOOM}; ${a.join(` `)} - ${l.join(` + ${A.join(` `)} void main() { if ( - v_mapCoord[0] < ${Ae.RENDER_EXTENT}[0] || - v_mapCoord[1] < ${Ae.RENDER_EXTENT}[1] || - v_mapCoord[0] > ${Ae.RENDER_EXTENT}[2] || - v_mapCoord[1] > ${Ae.RENDER_EXTENT}[3] + v_mapCoord[0] < ${Ie.RENDER_EXTENT}[0] || + v_mapCoord[1] < ${Ie.RENDER_EXTENT}[1] || + v_mapCoord[0] > ${Ie.RENDER_EXTENT}[2] || + v_mapCoord[1] > ${Ie.RENDER_EXTENT}[3] ) { discard; } - vec4 color = texture2D(${Ae.TILE_TEXTURE_ARRAY}[0], v_textureCoord); + vec4 color = texture2D(${Ie.TILE_TEXTURE_ARRAY}[0], v_textureCoord); ${r.join(` `)} gl_FragColor = color; gl_FragColor.rgb *= gl_FragColor.a; - gl_FragColor *= ${Ae.TRANSITION_ALPHA}; - }`;return{vertexShader:t,fragmentShader:c,uniforms:o,paletteTextures:n.paletteTextures}}var Ac=class extends jl{constructor(e){e=e?Object.assign({},e):{};let t=e.style||{};delete e.style,super(e),this.sources_=e.sources,this.renderedSource_=null,this.renderedResolution_=NaN,this.style_=t,this.styleVariables_=this.style_.variables||{},this.handleSourceUpdate_(),this.addChangeListener(pe.SOURCE,this.handleSourceUpdate_)}getSources(e,t){let n=this.getSource();return this.sources_?typeof this.sources_=="function"?this.sources_(e,t):this.sources_:n?[n]:[]}getRenderSource(){return this.renderedSource_||this.getSource()}getSourceState(){let e=this.getRenderSource();return e?e.getState():"undefined"}handleSourceUpdate_(){this.hasRenderer()&&this.getRenderer().clearCache();let e=this.getSource();if(e)if(e.getState()==="loading"){let t=()=>{e.getState()==="ready"&&(e.removeEventListener("change",t),this.setStyle(this.style_))};e.addEventListener("change",t)}else this.setStyle(this.style_)}getSourceBandCount_(){let e=Number.MAX_SAFE_INTEGER,t=this.getSources([-e,-e,e,e],e);return t&&t.length&&"bandCount"in t[0]?t[0].bandCount:4}createRenderer(){let e=pC(this.style_,this.getSourceBandCount_());return new $0(this,{vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms,cacheSize:this.getCacheSize(),paletteTextures:e.paletteTextures})}renderSources(e,t){let n=this.getRenderer(),r;for(let o=0,s=t.length;o{l.getState()=="ready"&&(l.removeEventListener("change",h),this.changed())};l.addEventListener("change",h)}o=o&&c=="ready"}let s=this.renderSources(e,r);if(this.getRenderer().renderComplete&&o)return this.renderedResolution_=n.resolution,s;if(this.renderedResolution_>.5*n.resolution){let a=this.getSources(e.extent,this.renderedResolution_).filter(A=>!r.includes(A));if(a.length>0)return this.renderSources(e,a)}return s}setStyle(e){if(this.styleVariables_=e.variables||{},this.style_=e,this.hasRenderer()){let t=pC(this.style_,this.getSourceBandCount_());this.getRenderer().reset({vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms,paletteTextures:t.paletteTextures}),this.changed()}}updateStyleVariables(e){Object.assign(this.styleVariables_,e),this.changed()}};Ac.prototype.dispose;var EC=Ac;var IC={TileLayer:Q0,VectorLayer:GI,WebGLVectorLayer:mC,WebGLTileLayer:EC};var ls=[0,0,0],dr=5,Ed=class{constructor(e){this.minZoom=e.minZoom!==void 0?e.minZoom:0,this.resolutions_=e.resolutions,re(Sp(this.resolutions_,(r,o)=>o-r,!0),"`resolutions` must be sorted in descending order");let t;if(!e.origins){for(let r=0,o=this.resolutions_.length-1;r{let s=new es(Math.min(0,r[0]),Math.max(r[0]-1,-1),Math.min(0,r[1]),Math.max(r[1]-1,-1));if(n){let a=this.getTileRangeForExtentAndZ(n,o);s.minX=Math.max(a.minX,s.minX),s.maxX=Math.min(a.maxX,s.maxX),s.minY=Math.max(a.minY,s.minY),s.maxY=Math.min(a.maxY,s.maxY)}return s}):n&&this.calculateTileRanges_(n)}forEachTileCoord(e,t,n){let r=this.getTileRangeForExtentAndZ(e,t);for(let o=r.minX,s=r.maxX;o<=s;++o)for(let a=r.minY,A=r.maxY;a<=A;++a)n([t,o,a])}forEachTileCoordParentTileRange(e,t,n,r){let o,s,a,A=null,l=e[0]-1;for(this.zoomFactor_===2?(s=e[1],a=e[2]):A=this.getTileCoordExtent(e,r);l>=this.minZoom;){if(s!==void 0&&a!==void 0?(s=Math.floor(s/2),a=Math.floor(a/2),o=Xr(s,s,a,a,n)):o=this.getTileRangeForExtentAndZ(A,l,n),t(l,o))return!0;--l}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(e){return this.origin_?this.origin_:this.origins_[e]}getResolution(e){return this.resolutions_[e]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(e,t,n){if(e[0]this.maxZoom||t0?n:Math.max(o/t[0],r/t[1]);let s=e+1,a=new Array(s);for(let A=0;Athis.getTileInternal(f,g,m,d,s),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.tileOptions);return u.key=A,u}getTileInternal(e,t,n,r,o){let s=this.getKey();return this.createTile_(e,t,n,r,o,s)}setRenderReprojectionEdges(e){this.renderReprojectionEdges_!=e&&(this.renderReprojectionEdges_=e,this.changed())}setTileGridForProjection(e,t){let n=fe(e);if(n){let r=z(n);r in this.tileGridForProjection||(this.tileGridForProjection[r]=t)}}};function sS(i,e){i.getImage().src=e}var wC=_d;var yd=class extends wC{constructor(e){e=e||{};let t=e.projection!==void 0?e.projection:"EPSG:3857",n=e.tileGrid!==void 0?e.tileGrid:lc({extent:hs(t),maxResolution:e.maxResolution,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize});super({attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,interpolate:e.interpolate,projection:t,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileGrid:n,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX!==void 0?e.wrapX:!0,transition:e.transition,attributionsCollapsible:e.attributionsCollapsible,zDirection:e.zDirection}),this.gutter_=e.gutter!==void 0?e.gutter:0}getGutter(){return this.gutter_}},QC=yd;var aS='© OpenStreetMap contributors.',Bd=class extends QC{constructor(e){e=e||{};let t;e.attributions!==void 0?t=e.attributions:t=[aS];let n=e.crossOrigin!==void 0?e.crossOrigin:"anonymous",r=e.url!==void 0?e.url:"https://tile.openstreetmap.org/{z}/{x}/{y}.png";super({attributions:t,attributionsCollapsible:!1,cacheSize:e.cacheSize,crossOrigin:n,interpolate:e.interpolate,maxZoom:e.maxZoom!==void 0?e.maxZoom:19,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileLoadFunction:e.tileLoadFunction,transition:e.transition,url:r,wrapX:e.wrapX,zDirection:e.zDirection})}},SC=Bd;var RC="Cannot convert undefined or null to object";function Te(i){return(e,...t)=>AS(i,e,t)}function fs(i,e){return Te(fc(i,e).get)}var{apply:AS,construct:YK,defineProperty:HK,get:zK,getOwnPropertyDescriptor:fc,getPrototypeOf:gc,has:KK,ownKeys:TC,set:qK,setPrototypeOf:VK}=Reflect;var{EPSILON:DC,MAX_SAFE_INTEGER:XK,isFinite:lS,isNaN:cS}=Number,{iterator:gs,species:JK,toStringTag:hS,for:jK}=Symbol,dc=Object,{create:mc,defineProperty:bC,freeze:WK,is:ZK}=dc,xd=dc.prototype,$K=xd.__lookupGetter__?Te(xd.__lookupGetter__):(i,e)=>{if(i==null)throw dS(RC);let t=dc(i);do{let n=fc(t,e);if(n!==void 0)return uS(n,"get")?n.get:void 0}while((t=gc(t))!==null)},uS=dc.hasOwn||Te(xd.hasOwnProperty),FC=Array,eq=FC.isArray,pc=FC.prototype,tq=Te(pc.join),iq=Te(pc.push),nq=Te(pc.toLocaleString),wd=pc[gs],LC=Te(wd),{abs:fS,trunc:rq}=Math,Ec=ArrayBuffer,oq=Ec.isView,MC=Ec.prototype,sq=Te(MC.slice),aq=fs(MC,"byteLength"),vC=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:null,Aq=vC&&fs(vC.prototype,"byteLength"),kC=gc(Uint8Array),lq=kC.from,Rt=kC.prototype,cq=Rt[gs],hq=Te(Rt.keys),uq=Te(Rt.values),fq=Te(Rt.entries),gq=Te(Rt.set),dq=Te(Rt.reverse),mq=Te(Rt.fill),pq=Te(Rt.copyWithin),Eq=Te(Rt.sort),Iq=Te(Rt.slice),Cq=Te(Rt.subarray),_q=fs(Rt,"buffer"),yq=fs(Rt,"byteOffset"),Bq=fs(Rt,"length"),xq=fs(Rt,hS),PC=Uint8Array,Qd=Uint16Array;var Ic=Uint32Array,NC=Float32Array,ds=gc([][gs]()),Sd=Te(ds.next),GC=Te(function*(){}().next),OC=gc(ds),UC=DataView.prototype,YC=Te(UC.getUint16),gS=Te(UC.setUint16),dS=TypeError;var mS=WeakSet,HC=mS.prototype,wq=Te(HC.add),Qq=Te(HC.has),Cc=WeakMap,Rd=Cc.prototype,vd=Te(Rd.get),Sq=Te(Rd.has),zC=Te(Rd.set);var KC=new Cc,pS=mc(null,{next:{value:function(){let e=vd(KC,this);return Sd(e)}},[gs]:{value:function(){return this}}});function qC(i){if(i[gs]===wd&&ds.next===Sd)return i;let e=mc(pS);return zC(KC,e,LC(i)),e}var ES=new Cc,IS=mc(OC,{next:{value:function(){let e=vd(ES,this);return GC(e)},writable:!0,configurable:!0}});for(let i of TC(ds))i!=="next"&&bC(IS,i,fc(ds,i));var CS=1/DC;var _S=6103515625e-14;var VC=.0009765625,bq=VC*_S,Fq=VC*CS;var XC=new Ec(4),yS=new NC(XC),BS=new Ic(XC),nn=new Qd(512),rn=new PC(512);for(let i=0;i<256;++i){let e=i-127;e<-24?(nn[i]=0,nn[i|256]=32768,rn[i]=24,rn[i|256]=24):e<-14?(nn[i]=1024>>-e-14,nn[i|256]=1024>>-e-14|32768,rn[i]=-e-1,rn[i|256]=-e-1):e<=15?(nn[i]=e+15<<10,nn[i|256]=e+15<<10|32768,rn[i]=13,rn[i|256]=13):e<128?(nn[i]=31744,nn[i|256]=64512,rn[i]=24,rn[i|256]=24):(nn[i]=31744,nn[i|256]=64512,rn[i]=13,rn[i|256]=13)}var Td=new Ic(2048);for(let i=1;i<1024;++i){let e=i<<13,t=0;for(;(e&8388608)===0;)e<<=1,t-=8388608;e&=-8388609,t+=947912704,Td[i]=e|t}for(let i=1024;i<2048;++i)Td[i]=939524096+(i-1024<<13);var ms=new Ic(64);for(let i=1;i<31;++i)ms[i]=i<<23;ms[31]=1199570944;ms[32]=2147483648;for(let i=33;i<63;++i)ms[i]=2147483648+(i-32<<23);ms[63]=3347054592;var JC=new Qd(64);for(let i=1;i<64;++i)i!==32&&(JC[i]=1024);function jC(i){let e=i>>10;return BS[0]=Td[JC[e]+(i&1023)]+ms[e],yS[0]}function Ya(i,e,...t){return jC(YC(i,e,...qC(t)))}var eh=mo(ZC(),1),AB=mo(l_(),1);za();function h_(i,e){let{width:t,height:n}=i,r=new Uint8Array(t*n*3),o;for(let s=0,a=0;s>24,A=i[r+2]<<24>>24,l=(s+16)/116,c=a/500+l,h=l-A/200,u,f,g;c=SS*(c*c*c>.008856?c*c*c:(c-16/116)/7.787),l=RS*(l*l*l>.008856?l*l*l:(l-16/116)/7.787),h=vS*(h*h*h>.008856?h*h*h:(h-16/116)/7.787),u=c*3.2406+l*-1.5372+h*-.4986,f=c*-.9689+l*1.8758+h*.0415,g=c*.0557+l*-.204+h*1.057,u=u>.0031308?1.055*u**(1/2.4)-.055:12.92*u,f=f>.0031308?1.055*f**(1/2.4)-.055:12.92*f,g=g>.0031308?1.055*g**(1/2.4)-.055:12.92*g,n[o]=Math.max(0,Math.min(1,u))*255,n[o+1]=Math.max(0,Math.min(1,f))*255,n[o+2]=Math.max(0,Math.min(1,g))*255}return n}var oB=new Map;function Br(i,e){Array.isArray(i)||(i=[i]),i.forEach(t=>oB.set(t,e))}async function Zc(i){let e=oB.get(i.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${i.Compression}`);let t=await e();return new t(i)}Br([void 0,1],()=>Promise.resolve().then(()=>(C_(),I_)).then(i=>i.default));Br(5,()=>Promise.resolve().then(()=>(B_(),y_)).then(i=>i.default));Br(6,()=>{throw new Error("old style JPEG compression is not supported.")});Br(7,()=>Promise.resolve().then(()=>(Q_(),w_)).then(i=>i.default));Br([8,32946],()=>Promise.resolve().then(()=>(Vy(),qy)).then(i=>i.default));Br(32773,()=>Promise.resolve().then(()=>(Jy(),Xy)).then(i=>i.default));Br(34887,()=>Promise.resolve().then(()=>(iB(),tB)).then(async i=>(await i.zstd.init(),i)).then(i=>i.default));Br(50001,()=>Promise.resolve().then(()=>(rB(),nB)).then(i=>i.default));function $c(i,e,t,n=1){return new(Object.getPrototypeOf(i)).constructor(e*t*n)}function mT(i,e,t,n,r){let o=e/n,s=t/r;return i.map(a=>{let A=$c(a,n,r);for(let l=0;l{let A=$c(a,n,r);for(let l=0;l>8-r-y&h;else if(y+r<=16)c[C]=a.getUint16(I)>>16-r-y&h;else if(y+r<=24){let x=a.getUint16(I)<<8|a.getUint8(I+2);c[C]=x>>24-r-y&h}else c[C]=a.getUint32(I)>>32-r-y&h}}}}return c.buffer}var wm=class{constructor(e,t,n,r,o,s){this.fileDirectory=e,this.geoKeys=t,this.dataView=n,this.littleEndian=r,this.tiles=o?{}:null,this.isTiled=!e.StripOffsets;let a=e.PlanarConfiguration;if(this.planarConfiguration=typeof a>"u"?1:a,this.planarConfiguration!==1&&this.planarConfiguration!==2)throw new Error("Invalid planar configuration.");this.source=s}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return typeof this.fileDirectory.SamplesPerPixel<"u"?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:typeof this.fileDirectory.RowsPerStrip<"u"?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(e){return this.isTiled||(e+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-e*this.getTileHeight()}getBytesPerPixel(){let e=0;for(let t=0;t=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${e} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[e]/8)}getReaderForSample(e){let t=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1,n=this.fileDirectory.BitsPerSample[e];switch(t){case 1:if(n<=8)return DataView.prototype.getUint8;if(n<=16)return DataView.prototype.getUint16;if(n<=32)return DataView.prototype.getUint32;break;case 2:if(n<=8)return DataView.prototype.getInt8;if(n<=16)return DataView.prototype.getInt16;if(n<=32)return DataView.prototype.getInt32;break;case 3:switch(n){case 16:return function(r,o){return Ya(this,r,o)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64;default:break}break;default:break}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(e=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1}getBitsPerSample(e=0){return this.fileDirectory.BitsPerSample[e]}getArrayForSample(e,t){let n=this.getSampleFormat(e),r=this.getBitsPerSample(e);return xm(n,r,t)}async getTileOrStrip(e,t,n,r,o){let s=Math.ceil(this.getWidth()/this.getTileWidth()),a=Math.ceil(this.getHeight()/this.getTileHeight()),A,{tiles:l}=this;this.planarConfiguration===1?A=t*s+e:this.planarConfiguration===2&&(A=n*s*a+t*s+e);let c,h;this.isTiled?(c=this.fileDirectory.TileOffsets[A],h=this.fileDirectory.TileByteCounts[A]):(c=this.fileDirectory.StripOffsets[A],h=this.fileDirectory.StripByteCounts[A]);let u=(await this.source.fetch([{offset:c,length:h}],o))[0],f;return l===null||!l[A]?(f=(async()=>{let g=await r.decode(this.fileDirectory,u),m=this.getSampleFormat(),d=this.getBitsPerSample();return _T(m,d)&&(g=yT(g,m,this.planarConfiguration,this.getSamplesPerPixel(),d,this.getTileWidth(),this.getBlockHeight(t))),g})(),l!==null&&(l[A]=f)):f=l[A],{x:e,y:t,sample:n,data:await f}}async _readRaster(e,t,n,r,o,s,a,A,l){let c=this.getTileWidth(),h=this.getTileHeight(),u=this.getWidth(),f=this.getHeight(),g=Math.max(Math.floor(e[0]/c),0),m=Math.min(Math.ceil(e[2]/c),Math.ceil(u/c)),d=Math.max(Math.floor(e[1]/h),0),E=Math.min(Math.ceil(e[3]/h),Math.ceil(f/h)),p=e[2]-e[0],_=this.getBytesPerPixel(),C=[],I=[];for(let B=0;B{let k=S.data,L=new DataView(k),b=this.getBlockHeight(S.y),P=S.y*h,N=S.x*c,Y=P+b,M=(S.x+1)*c,j=I[R],H=Math.min(b,b-(Y-e[3]),f-P),O=Math.min(c,c-(M-e[2]),u-N);for(let K=Math.max(0,e[1]-P);Kc[2]||c[1]>c[3])throw new Error("Invalid subsets");let h=c[2]-c[0],u=c[3]-c[1],f=h*u,g=this.getSamplesPerPixel();if(!t||!t.length)for(let p=0;p=g)return Promise.reject(new RangeError(`Invalid sample index '${t[p]}'.`));let m;if(n){let p=this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,_=Math.max.apply(null,this.fileDirectory.BitsPerSample);m=xm(p,_,f*t.length),A&&m.fill(A)}else{m=[];for(let p=0;pl[2]||l[1]>l[3])throw new Error("Invalid subsets");let c=this.fileDirectory.PhotometricInterpretation;if(c===vt.RGB){let E=[0,1,2];if(this.fileDirectory.ExtraSamples!==Gd.Unspecified&&a){E=[];for(let p=0;p(0,eh.default)(o,"sample")===void 0):r=r.filter(o=>Number((0,eh.default)(o,"sample"))===e);for(let o=0;o[a+r*d+o*E,h+A*d+l*E]),g=f.map(d=>d[0]),m=f.map(d=>d[1]);return[Math.min(...g),Math.min(...m),Math.max(...g),Math.max(...m)]}else{let r=this.getOrigin(),o=this.getResolution(),s=r[0],a=r[1],A=s+o[0]*n,l=a+o[1]*t;return[Math.min(s,A),Math.min(a,l),Math.max(s,A),Math.max(a,l)]}}},Qm=wm;var hA=class{constructor(e){this._dataView=new DataView(e)}get buffer(){return this._dataView.buffer}getUint64(e,t){let n=this.getUint32(e,t),r=this.getUint32(e+4,t),o;if(t){if(o=n+2**32*r,!Number.isSafeInteger(o))throw new Error(`${o} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return o}if(o=2**32*n+r,!Number.isSafeInteger(o))throw new Error(`${o} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return o}getInt64(e,t){let n=0,r=(this._dataView.getUint8(e+(t?7:0))&128)>0,o=!0;for(let s=0;s<8;s++){let a=this._dataView.getUint8(e+(t?s:7-s));r&&(o?a!==0&&(a=~(a-1)&255,o=!1):a=~a&255),n+=a*256**s}return r&&(n=-n),n}getUint8(e,t){return this._dataView.getUint8(e,t)}getInt8(e,t){return this._dataView.getInt8(e,t)}getUint16(e,t){return this._dataView.getUint16(e,t)}getInt16(e,t){return this._dataView.getInt16(e,t)}getUint32(e,t){return this._dataView.getUint32(e,t)}getInt32(e,t){return this._dataView.getInt32(e,t)}getFloat16(e,t){return Ya(this._dataView,e,t)}getFloat32(e,t){return this._dataView.getFloat32(e,t)}getFloat64(e,t){return this._dataView.getFloat64(e,t)}};var uA=class{constructor(e,t,n,r){this._dataView=new DataView(e),this._sliceOffset=t,this._littleEndian=n,this._bigTiff=r}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(e,t){return this.sliceOffset<=e&&this.sliceTop>=e+t}readUint8(e){return this._dataView.getUint8(e-this._sliceOffset,this._littleEndian)}readInt8(e){return this._dataView.getInt8(e-this._sliceOffset,this._littleEndian)}readUint16(e){return this._dataView.getUint16(e-this._sliceOffset,this._littleEndian)}readInt16(e){return this._dataView.getInt16(e-this._sliceOffset,this._littleEndian)}readUint32(e){return this._dataView.getUint32(e-this._sliceOffset,this._littleEndian)}readInt32(e){return this._dataView.getInt32(e-this._sliceOffset,this._littleEndian)}readFloat32(e){return this._dataView.getFloat32(e-this._sliceOffset,this._littleEndian)}readFloat64(e){return this._dataView.getFloat64(e-this._sliceOffset,this._littleEndian)}readUint64(e){let t=this.readUint32(e),n=this.readUint32(e+4),r;if(this._littleEndian){if(r=t+2**32*n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}if(r=2**32*t+n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}readInt64(e){let t=0,n=(this._dataView.getUint8(e+(this._littleEndian?7:0))&128)>0,r=!0;for(let o=0;o<8;o++){let s=this._dataView.getUint8(e+(this._littleEndian?o:7-o));n&&(r?s!==0&&(s=~(s-1)&255,r=!1):s=~s&255),t+=s*256**o}return n&&(t=-t),t}readOffset(e){return this._bigTiff?this.readUint64(e):this.readUint32(e)}};var xT=typeof navigator<"u"&&navigator.hardwareConcurrency||2,Sm=class{constructor(e=xT,t){this.workers=null,this._awaitingDecoder=null,this.size=e,this.messageId=0,e&&(this._awaitingDecoder=t?Promise.resolve(t):new Promise(n=>{Promise.resolve().then(()=>(uB(),hB)).then(r=>{n(r.create)})}),this._awaitingDecoder.then(n=>{this._awaitingDecoder=null,this.workers=[];for(let r=0;rn.decode(e,t)):new Promise(n=>{let r=this.workers.find(a=>a.idle)||this.workers[Math.floor(Math.random()*this.size)];r.idle=!1;let o=this.messageId++,s=a=>{a.data.id===o&&(r.idle=!0,n(a.data.decoded),r.worker.removeEventListener("message",s))};r.worker.addEventListener("message",s),r.worker.postMessage({fileDirectory:e,buffer:t,id:o},[t])})}destroy(){this.workers&&(this.workers.forEach(e=>{e.worker.terminate()}),this.workers=null)}},Rm=Sm;var fB=`\r + gl_FragColor *= ${Ie.TRANSITION_ALPHA}; + }`;return{vertexShader:t,fragmentShader:c,uniforms:o,paletteTextures:n.paletteTextures}}var Rf=class extends Cl{constructor(e){e=e?Object.assign({},e):{};let t=e.style||{};delete e.style,super(e),this.sources_=e.sources,this.renderedSource_=null,this.renderedResolution_=NaN,this.style_=t,this.styleVariables_=this.style_.variables||{},this.handleSourceUpdate_(),this.addChangeListener(ke.SOURCE,this.handleSourceUpdate_)}getSources(e,t){let n=this.getSource();return this.sources_?typeof this.sources_=="function"?this.sources_(e,t):this.sources_:n?[n]:[]}getRenderSource(){return this.renderedSource_||this.getSource()}getSourceState(){let e=this.getRenderSource();return e?e.getState():"undefined"}handleSourceUpdate_(){this.hasRenderer()&&this.getRenderer().clearCache();let e=this.getSource();if(e)if(e.getState()==="loading"){let t=()=>{e.getState()==="ready"&&(e.removeEventListener("change",t),this.setStyle(this.style_))};e.addEventListener("change",t)}else this.setStyle(this.style_)}getSourceBandCount_(){let e=Number.MAX_SAFE_INTEGER,t=this.getSources([-e,-e,e,e],e);return t&&t.length&&"bandCount"in t[0]?t[0].bandCount:4}createRenderer(){let e=x1(this.style_,this.getSourceBandCount_());return new A1(this,{vertexShader:e.vertexShader,fragmentShader:e.fragmentShader,uniforms:e.uniforms,cacheSize:this.getCacheSize(),paletteTextures:e.paletteTextures})}renderSources(e,t){let n=this.getRenderer(),r;for(let o=0,s=t.length;o{A.getState()=="ready"&&(A.removeEventListener("change",h),this.changed())};A.addEventListener("change",h)}o=o&&c=="ready"}let s=this.renderSources(e,r);if(this.getRenderer().renderComplete&&o)return this.renderedResolution_=n.resolution,s;if(this.renderedResolution_>.5*n.resolution){let a=this.getSources(e.extent,this.renderedResolution_).filter(l=>!r.includes(l));if(a.length>0)return this.renderSources(e,a)}return s}setStyle(e){if(this.styleVariables_=e.variables||{},this.style_=e,this.hasRenderer()){let t=x1(this.style_,this.getSourceBandCount_());this.getRenderer().reset({vertexShader:t.vertexShader,fragmentShader:t.fragmentShader,uniforms:t.uniforms,paletteTextures:t.paletteTextures}),this.changed()}}updateStyleVariables(e){Object.assign(this.styleVariables_,e),this.changed()}};Rf.prototype.dispose;var B1=Rf;var RE=class extends cf{constructor(e,t){super(e),this.batch_=new yf,this.styleRenderers_=t,this.buffers=[],this.maskVertices=new fr(yo,Lr),this.setTile(e.tile)}generateMaskBuffer_(){let e=this.tile.getSourceTiles()[0].extent;this.maskVertices.fromArray([e[0],e[1],e[2],e[1],e[2],e[3],e[0],e[3]]),this.helper.flushBufferData(this.maskVertices)}uploadTile(){this.generateMaskBuffer_(),this.batch_.clear();let e=this.tile.getSourceTiles(),t=e.reduce((a,l)=>a.concat(l.getFeatures()),[]);this.batch_.addFeatures(t);let n=e[0].extent[0],r=e[0].extent[1],o=ns(Ce(),-n,-r),s=this.styleRenderers_.map((a,l)=>a.generateBuffers(this.batch_,o).then(A=>{this.buffers[l]=A}));Promise.all(s).then(()=>{this.setReady()})}disposeInternal(){this.buffers.forEach(e=>{this.disposeBuffers(e)}),super.disposeInternal()}disposeBuffers(e){if(!e)return;let t=n=>{for(let r of n)r&&this.helper.deleteBuffer(r)};e.pointBuffers&&t(e.pointBuffers),e.lineStringBuffers&&t(e.lineStringBuffers),e.polygonBuffers&&t(e.polygonBuffers)}},w1=RE;var zt={...ff,TILE_MASK_TEXTURE:"u_depthMask",TILE_ZOOM_LEVEL:"u_tileZoomLevel"},eF={POSITION:"a_position"},QE=class extends gf{constructor(e,t){super(e,{cacheSize:t.cacheSize,uniforms:{[zt.PATTERN_ORIGIN]:[0,0],[zt.TILE_MASK_TEXTURE]:()=>this.tileMaskTarget_.getTexture()}}),this.hitDetectionEnabled_=!t.disableHitDetection,this.styles_=[],this.styleVariables_=t.variables||{},this.styleRenderers_=[],this.currentFrameStateTransform_=Ce(),this.tmpTransform_=Ce(),this.tmpMat4_=Kn(),this.tileMaskTarget_=null,this.tileMaskIndices_=new fr(_o,Lr),this.tileMaskIndices_.fromArray([0,1,3,1,2,3]),this.tileMaskAttributes_=[{name:eF.POSITION,size:2,type:Ut.FLOAT}],this.tileMaskProgram_,this.applyOptions_(t)}reset(e){super.reset(e),this.applyOptions_(e),this.helper&&(this.createRenderers_(),this.initTileMask_())}applyOptions_(e){this.styles_=wf(e.style)}createRenderers_(){function e(t){let n=t.getFragmentDiscardExpression(),r=`texture2D(${zt.TILE_MASK_TEXTURE}, gl_FragCoord.xy / u_pixelRatio / u_viewportSizePx).r * 50. > ${zt.TILE_ZOOM_LEVEL} + 0.5`;t.setFragmentDiscardExpression(n!=="false"?`(${n}) || (${r})`:r),t.addUniform(`sampler2D ${zt.TILE_MASK_TEXTURE}`),t.addUniform(`float ${zt.TILE_ZOOM_LEVEL}`)}this.styleRenderers_=this.styles_.map(t=>{let n="builder"in t,r;if(n)e(t.builder),r=t;else{let o=Bf(t.style,this.styleVariables_,t.filter);e(o.builder),r={builder:o.builder,attributes:o.attributes,uniforms:o.uniforms}}return new vf(r,this.styleVariables_,this.helper,this.hitDetectionEnabled_,"filter"in t?t.filter:null)})}initTileMask_(){this.tileMaskTarget_=new Sf(this.helper);let e=new Is().setFillColorExpression(`vec4(${zt.TILE_ZOOM_LEVEL} / 50., 0., 0., 1.)`).addUniform(`float ${zt.TILE_ZOOM_LEVEL}`);this.tileMaskProgram_=this.helper.getProgram(e.getFillFragmentShader(),e.getFillVertexShader()),this.helper.flushBufferData(this.tileMaskIndices_)}afterHelperCreated(){this.createRenderers_(),this.initTileMask_()}createTileRepresentation(e){let t=new w1(e,this.styleRenderers_),n=()=>{t.ready&&(this.getLayer().changed(),t.removeEventListener(K.CHANGE,n))};return t.addEventListener(K.CHANGE,n),t}beforeTilesRender(e,t){super.beforeTilesRender(e,!0),this.helper.makeProjectionTransform(e,this.currentFrameStateTransform_)}beforeTilesMaskRender(e){this.helper.makeProjectionTransform(e,this.currentFrameStateTransform_);let t=e.pixelRatio,n=e.size;return this.tileMaskTarget_.setSize([n[0]*t,n[1]*t]),this.helper.prepareDrawToRenderTarget(e,this.tileMaskTarget_,!0,!0),this.helper.useProgram(this.tileMaskProgram_,e),Us(this.tmpTransform_,this.currentFrameStateTransform_),this.helper.setUniformMatrixValue(zt.PROJECTION_MATRIX,Xn(this.tmpMat4_,this.tmpTransform_)),en(this.tmpTransform_,this.currentFrameStateTransform_),this.helper.setUniformMatrixValue(zt.SCREEN_TO_WORLD_MATRIX,Xn(this.tmpMat4_,this.tmpTransform_)),!0}renderTileMask(e,t,n,r){if(!e.ready)return;this.helper.setUniformFloatValue(zt.DEPTH,r),this.helper.setUniformFloatValue(zt.TILE_ZOOM_LEVEL,t),this.helper.setUniformFloatVec4(zt.RENDER_EXTENT,n),this.helper.setUniformFloatValue(zt.GLOBAL_ALPHA,1),this.helper.bindBuffer(e.maskVertices),this.helper.bindBuffer(this.tileMaskIndices_),this.helper.enableAttributes(this.tileMaskAttributes_);let o=this.tileMaskIndices_.getSize();this.helper.drawElements(0,o)}applyUniforms_(e,t,n,r,o){Us(this.tmpTransform_,this.currentFrameStateTransform_),Un(this.tmpTransform_,n),this.helper.setUniformMatrixValue(zt.PROJECTION_MATRIX,Xn(this.tmpMat4_,this.tmpTransform_)),en(this.tmpTransform_,this.currentFrameStateTransform_),this.helper.setUniformMatrixValue(zt.SCREEN_TO_WORLD_MATRIX,Xn(this.tmpMat4_,this.tmpTransform_)),this.helper.setUniformFloatValue(zt.GLOBAL_ALPHA,e),this.helper.setUniformFloatValue(zt.DEPTH,o),this.helper.setUniformFloatValue(zt.TILE_ZOOM_LEVEL,r),this.helper.setUniformFloatVec4(zt.RENDER_EXTENT,t)}renderTile(e,t,n,r,o,s,a,l,A,c,h){let u=Ze(l,r,l),f=e.tile.getTileCoord()[0];for(let g=0,p=this.styleRenderers_.length;g{this.applyUniforms_(h,u,I.invertVerticesTransform,f,A)})}}renderDeclutter(e){}disposeInternal(){super.disposeInternal()}},v1=QE;var bE=class extends Cl{constructor(e){let t=Object.assign({},e);super(t),this.styleVariables_=e.variables||{},this.style_=e.style,this.hitDetectionDisabled_=!!e.disableHitDetection}createRenderer(){return new v1(this,{style:this.style_,variables:this.styleVariables_,disableHitDetection:this.hitDetectionDisabled_})}updateStyleVariables(e){Object.assign(this.styleVariables_,e),this.changed()}setStyle(e){this.style_=e,this.clearRenderer(),this.changed()}},S1=bE;var T1={TileLayer:MB,VectorLayer:An,WebGLVectorLayer:_1,WebGLTileLayer:B1,VectorTileLayer:NB,WebGLVectorTileLayer:S1,ImageLayer:OB,VectorImageLayer:YB,HeatmapLayer:y1};var Sl=[0,0,0],Cs=5,DE=class{constructor(e){this.minZoom=e.minZoom!==void 0?e.minZoom:0,this.resolutions_=e.resolutions,he(My(this.resolutions_,(r,o)=>o-r,!0),"`resolutions` must be sorted in descending order");let t;if(!e.origins){for(let r=0,o=this.resolutions_.length-1;r{let s=new gl(Math.min(0,r[0]),Math.max(r[0]-1,-1),Math.min(0,r[1]),Math.max(r[1]-1,-1));if(n){let a=this.getTileRangeForExtentAndZ(n,o);s.minX=Math.max(a.minX,s.minX),s.maxX=Math.min(a.maxX,s.maxX),s.minY=Math.max(a.minY,s.minY),s.maxY=Math.min(a.maxY,s.maxY)}return s}):n&&this.calculateTileRanges_(n)}forEachTileCoord(e,t,n){let r=this.getTileRangeForExtentAndZ(e,t);for(let o=r.minX,s=r.maxX;o<=s;++o)for(let a=r.minY,l=r.maxY;a<=l;++a)n([t,o,a])}forEachTileCoordParentTileRange(e,t,n,r){let o,s,a,l=null,A=e[0]-1;for(this.zoomFactor_===2?(s=e[1],a=e[2]):l=this.getTileCoordExtent(e,r);A>=this.minZoom;){if(s!==void 0&&a!==void 0?(s=Math.floor(s/2),a=Math.floor(a/2),o=na(s,s,a,a,n)):o=this.getTileRangeForExtentAndZ(l,A,n),t(A,o))return!0;--A}return!1}getExtent(){return this.extent_}getMaxZoom(){return this.maxZoom}getMinZoom(){return this.minZoom}getOrigin(e){return this.origin_?this.origin_:this.origins_[e]}getResolution(e){return this.resolutions_[e]}getResolutions(){return this.resolutions_}getTileCoordChildTileRange(e,t,n){if(e[0]this.maxZoom||t0?n:Math.max(o/t[0],r/t[1]);let s=e+1,a=new Array(s);for(let l=0;lthis.getTileInternal(f,g,p,d,s),this.reprojectionErrorThreshold_,this.renderReprojectionEdges_,this.tileOptions);return u.key=l,u}getTileInternal(e,t,n,r,o){let s=this.getKey();return this.createTile_(e,t,n,r,o,s)}setRenderReprojectionEdges(e){this.renderReprojectionEdges_!=e&&(this.renderReprojectionEdges_=e,this.changed())}setTileGridForProjection(e,t){let n=fe(e);if(n){let r=W(n);r in this.tileGridForProjection||(this.tileGridForProjection[r]=t)}}};function cF(i,e){i.getImage().src=e}var Mf=ME;var kE=class extends Mf{constructor(e){e=e||{};let t=e.projection!==void 0?e.projection:"EPSG:3857",n=e.tileGrid!==void 0?e.tileGrid:dr({extent:xn(t),maxResolution:e.maxResolution,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize});super({attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,interpolate:e.interpolate,projection:t,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileGrid:n,tileLoadFunction:e.tileLoadFunction,tilePixelRatio:e.tilePixelRatio,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX!==void 0?e.wrapX:!0,transition:e.transition,attributionsCollapsible:e.attributionsCollapsible,zDirection:e.zDirection}),this.gutter_=e.gutter!==void 0?e.gutter:0}getGutter(){return this.gutter_}},D1=kE;var hF='© OpenStreetMap contributors.',PE=class extends D1{constructor(e){e=e||{};let t;e.attributions!==void 0?t=e.attributions:t=[hF];let n=e.crossOrigin!==void 0?e.crossOrigin:"anonymous",r=e.url!==void 0?e.url:"https://tile.openstreetmap.org/{z}/{x}/{y}.png";super({attributions:t,attributionsCollapsible:!1,cacheSize:e.cacheSize,crossOrigin:n,interpolate:e.interpolate,maxZoom:e.maxZoom!==void 0?e.maxZoom:19,reprojectionErrorThreshold:e.reprojectionErrorThreshold,tileLoadFunction:e.tileLoadFunction,transition:e.transition,url:r,wrapX:e.wrapX,zDirection:e.zDirection})}},F1=PE;var NE=class extends Lf{constructor(e){let t=e.projection||"EPSG:3857",n=e.extent||xn(t),r=e.tileGrid||dr({extent:n,maxResolution:e.maxResolution,maxZoom:e.maxZoom!==void 0?e.maxZoom:22,minZoom:e.minZoom,tileSize:e.tileSize||512});super({attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,cacheSize:e.cacheSize,interpolate:!0,projection:t,state:e.state,tileGrid:r,tileLoadFunction:e.tileLoadFunction?e.tileLoadFunction:uF,tileUrlFunction:e.tileUrlFunction,url:e.url,urls:e.urls,wrapX:e.wrapX===void 0?!0:e.wrapX,transition:e.transition,zDirection:e.zDirection===void 0?1:e.zDirection}),this.format_=e.format?e.format:null,this.tileKeysBySourceTileUrl_={},this.sourceTiles_={},this.overlaps_=e.overlaps==null?!0:e.overlaps,this.tileClass=e.tileClass?e.tileClass:yB,this.tileGrids_={}}getOverlaps(){return this.overlaps_}getSourceTiles(e,t,n){if(n.getState()===V.IDLE){n.setState(V.LOADING);let r=n.wrappedTileCoord,o=this.getTileGridForProjection(t),s=o.getTileCoordExtent(r),a=r[0],l=o.getResolution(a);Vt(s,-l,s);let A=this.tileGrid,c=A.getExtent();c&&Ze(s,c,s);let h=A.getZForResolution(l,this.zDirection);A.forEachTileCoord(s,h,u=>{let f=this.tileUrlFunction(u,e,t);this.sourceTiles_[f]||(this.sourceTiles_[f]=new this.tileClass(u,f?V.IDLE:V.EMPTY,f,this.format_,this.tileLoadFunction));let g=this.sourceTiles_[f];n.sourceTiles.push(g),this.tileKeysBySourceTileUrl_[f]||(this.tileKeysBySourceTileUrl_[f]=[]),this.tileKeysBySourceTileUrl_[f].push(n.getKey());let p=g.getState();if(p{this.handleTileChange(I);let m=g.getState();if(m===V.LOADED||m===V.ERROR){let C=g.getKey();C in n.errorTileKeys?g.getState()===V.LOADED&&delete n.errorTileKeys[C]:n.loadingSourceTiles--,m===V.ERROR?n.errorTileKeys[C]=!0:g.removeEventListener(K.CHANGE,d),n.loadingSourceTiles===0&&n.setState(Di(n.errorTileKeys)?V.LOADED:V.ERROR)}};g.addEventListener(K.CHANGE,d),n.loadingSourceTiles++}p===V.IDLE&&(g.extent=A.getTileCoordExtent(u),g.projection=t,g.resolution=A.getResolution(u[0]),g.load())}),n.loadingSourceTiles||n.setState(n.sourceTiles.some(u=>u.getState()===V.ERROR)?V.ERROR:V.LOADED)}return n.sourceTiles}removeSourceTiles(e){let t=e.getKey(),n=e.sourceTiles;for(let r=0,o=n.length;r{c=c&&!this.tileUrlFunction(d,r,o)})}let h=new CB(s,c?V.EMPTY:V.IDLE,a,this.getSourceTiles.bind(this,r,o),this.removeSourceTiles.bind(this));return h.key=this.getKey(),h}getTileGridForProjection(e){let t=e.getCode(),n=this.tileGrids_[t];if(!n){let r=this.getProjection();he(r===null||On(r,e),"A VectorTile source can only be rendered if it has a projection compatible with the view projection.");let o=this.tileGrid,s=o.getResolutions().slice(),a=s.map(function(c,h){return o.getOrigin(h)}),l=s.map(function(c,h){return o.getTileSize(h)}),A=43;for(let c=s.length;cfF(i,e,t)}function Ql(i,e){return lt(Pf(i,e).get)}var{apply:fF,construct:Qne,defineProperty:bne,get:Dne,getOwnPropertyDescriptor:Pf,getPrototypeOf:Nf,has:Fne,ownKeys:k1,set:Lne,setPrototypeOf:Mne}=Reflect;var{EPSILON:P1,MAX_SAFE_INTEGER:kne,isFinite:gF,isNaN:dF}=Number,{iterator:bl,species:Pne,toStringTag:pF,for:Nne}=Symbol,Gf=Object,{create:Of,defineProperty:N1,freeze:Gne,is:One}=Gf,GE=Gf.prototype,Une=GE.__lookupGetter__?lt(GE.__lookupGetter__):(i,e)=>{if(i==null)throw CF(L1);let t=Gf(i);do{let n=Pf(t,e);if(n!==void 0)return mF(n,"get")?n.get:void 0}while((t=Nf(t))!==null)},mF=Gf.hasOwn||lt(GE.hasOwnProperty),G1=Array,zne=G1.isArray,Uf=G1.prototype,Yne=lt(Uf.join),Vne=lt(Uf.push),Hne=lt(Uf.toLocaleString),OE=Uf[bl],O1=lt(OE),{abs:EF,trunc:qne}=Math,zf=ArrayBuffer,Kne=zf.isView,U1=zf.prototype,Xne=lt(U1.slice),jne=Ql(U1,"byteLength"),M1=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:null,Wne=M1&&Ql(M1.prototype,"byteLength"),z1=Nf(Uint8Array),Jne=z1.from,Ui=z1.prototype,$ne=Ui[bl],Zne=lt(Ui.keys),ere=lt(Ui.values),tre=lt(Ui.entries),ire=lt(Ui.set),nre=lt(Ui.reverse),rre=lt(Ui.fill),ore=lt(Ui.copyWithin),sre=lt(Ui.sort),are=lt(Ui.slice),lre=lt(Ui.subarray),Are=Ql(Ui,"buffer"),cre=Ql(Ui,"byteOffset"),hre=Ql(Ui,"length"),ure=Ql(Ui,pF),Y1=Uint8Array,UE=Uint16Array;var Yf=Uint32Array,V1=Float32Array,Dl=Nf([][bl]()),zE=lt(Dl.next),H1=lt(function*(){}().next),q1=Nf(Dl),K1=DataView.prototype,X1=lt(K1.getUint16),IF=lt(K1.setUint16),CF=TypeError;var yF=WeakSet,j1=yF.prototype,fre=lt(j1.add),gre=lt(j1.has),Vf=WeakMap,YE=Vf.prototype,VE=lt(YE.get),dre=lt(YE.has),W1=lt(YE.set);var J1=new Vf,_F=Of(null,{next:{value:function(){let e=VE(J1,this);return zE(e)}},[bl]:{value:function(){return this}}});function $1(i){if(i[bl]===OE&&Dl.next===zE)return i;let e=Of(_F);return W1(J1,e,O1(i)),e}var xF=new Vf,BF=Of(q1,{next:{value:function(){let e=VE(xF,this);return H1(e)},writable:!0,configurable:!0}});for(let i of k1(Dl))i!=="next"&&N1(BF,i,Pf(Dl,i));var wF=1/P1;var vF=6103515625e-14;var Z1=.0009765625,Cre=Z1*vF,yre=Z1*wF;var ew=new zf(4),SF=new V1(ew),TF=new Yf(ew),Nr=new UE(512),Gr=new Y1(512);for(let i=0;i<256;++i){let e=i-127;e<-24?(Nr[i]=0,Nr[i|256]=32768,Gr[i]=24,Gr[i|256]=24):e<-14?(Nr[i]=1024>>-e-14,Nr[i|256]=1024>>-e-14|32768,Gr[i]=-e-1,Gr[i|256]=-e-1):e<=15?(Nr[i]=e+15<<10,Nr[i|256]=e+15<<10|32768,Gr[i]=13,Gr[i|256]=13):e<128?(Nr[i]=31744,Nr[i|256]=64512,Gr[i]=24,Gr[i|256]=24):(Nr[i]=31744,Nr[i|256]=64512,Gr[i]=13,Gr[i|256]=13)}var HE=new Yf(2048);for(let i=1;i<1024;++i){let e=i<<13,t=0;for(;(e&8388608)===0;)e<<=1,t-=8388608;e&=-8388609,t+=947912704,HE[i]=e|t}for(let i=1024;i<2048;++i)HE[i]=939524096+(i-1024<<13);var Fl=new Yf(64);for(let i=1;i<31;++i)Fl[i]=i<<23;Fl[31]=1199570944;Fl[32]=2147483648;for(let i=33;i<63;++i)Fl[i]=2147483648+(i-32<<23);Fl[63]=3347054592;var tw=new UE(64);for(let i=1;i<64;++i)i!==32&&(tw[i]=1024);function iw(i){let e=i>>10;return TF[0]=HE[tw[e]+(i&1023)]+Fl[e],SF[0]}function Tc(i,e,...t){return iw(X1(i,e,...$1(t)))}var Bg=wa(rw(),1),gS=wa(dw(),1);Qc();function mw(i,e){let{width:t,height:n}=i,r=new Uint8Array(t*n*3),o;for(let s=0,a=0;s>24,l=i[r+2]<<24>>24,A=(s+16)/116,c=a/500+A,h=A-l/200,u,f,g;c=DF*(c*c*c>.008856?c*c*c:(c-16/116)/7.787),A=FF*(A*A*A>.008856?A*A*A:(A-16/116)/7.787),h=LF*(h*h*h>.008856?h*h*h:(h-16/116)/7.787),u=c*3.2406+A*-1.5372+h*-.4986,f=c*-.9689+A*1.8758+h*.0415,g=c*.0557+A*-.204+h*1.057,u=u>.0031308?1.055*u**(1/2.4)-.055:12.92*u,f=f>.0031308?1.055*f**(1/2.4)-.055:12.92*f,g=g>.0031308?1.055*g**(1/2.4)-.055:12.92*g,n[o]=Math.max(0,Math.min(1,u))*255,n[o+1]=Math.max(0,Math.min(1,f))*255,n[o+2]=Math.max(0,Math.min(1,g))*255}return n}var hS=new Map;function Ts(i,e){Array.isArray(i)||(i=[i]),i.forEach(t=>hS.set(t,e))}async function _g(i){let e=hS.get(i.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${i.Compression}`);let t=await e();return new t(i)}Ts([void 0,1],()=>Promise.resolve().then(()=>(vw(),ww)).then(i=>i.default));Ts(5,()=>Promise.resolve().then(()=>(Rw(),Tw)).then(i=>i.default));Ts(6,()=>{throw new Error("old style JPEG compression is not supported.")});Ts(7,()=>Promise.resolve().then(()=>(Dw(),bw)).then(i=>i.default));Ts([8,32946],()=>Promise.resolve().then(()=>(Zv(),$v)).then(i=>i.default));Ts(32773,()=>Promise.resolve().then(()=>(tS(),eS)).then(i=>i.default));Ts(34887,()=>Promise.resolve().then(()=>(lS(),aS)).then(async i=>(await i.zstd.init(),i)).then(i=>i.default));Ts(50001,()=>Promise.resolve().then(()=>(cS(),AS)).then(i=>i.default));function xg(i,e,t,n=1){return new(Object.getPrototypeOf(i)).constructor(e*t*n)}function yk(i,e,t,n,r){let o=e/n,s=t/r;return i.map(a=>{let l=xg(a,n,r);for(let A=0;A{let l=xg(a,n,r);for(let A=0;A>8-r-w&h;else if(w+r<=16)c[_]=a.getUint16(y)>>16-r-w&h;else if(w+r<=24){let T=a.getUint16(y)<<8|a.getUint8(y+2);c[_]=T>>24-r-w&h}else c[_]=a.getUint32(y)>>32-r-w&h}}}}return c.buffer}var OI=class{constructor(e,t,n,r,o,s){this.fileDirectory=e,this.geoKeys=t,this.dataView=n,this.littleEndian=r,this.tiles=o?{}:null,this.isTiled=!e.StripOffsets;let a=e.PlanarConfiguration;if(this.planarConfiguration=typeof a>"u"?1:a,this.planarConfiguration!==1&&this.planarConfiguration!==2)throw new Error("Invalid planar configuration.");this.source=s}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return typeof this.fileDirectory.SamplesPerPixel<"u"?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:typeof this.fileDirectory.RowsPerStrip<"u"?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(e){return this.isTiled||(e+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-e*this.getTileHeight()}getBytesPerPixel(){let e=0;for(let t=0;t=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${e} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[e]/8)}getReaderForSample(e){let t=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1,n=this.fileDirectory.BitsPerSample[e];switch(t){case 1:if(n<=8)return DataView.prototype.getUint8;if(n<=16)return DataView.prototype.getUint16;if(n<=32)return DataView.prototype.getUint32;break;case 2:if(n<=8)return DataView.prototype.getInt8;if(n<=16)return DataView.prototype.getInt16;if(n<=32)return DataView.prototype.getInt32;break;case 3:switch(n){case 16:return function(r,o){return Tc(this,r,o)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64;default:break}break;default:break}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(e=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1}getBitsPerSample(e=0){return this.fileDirectory.BitsPerSample[e]}getArrayForSample(e,t){let n=this.getSampleFormat(e),r=this.getBitsPerSample(e);return GI(n,r,t)}async getTileOrStrip(e,t,n,r,o){let s=Math.ceil(this.getWidth()/this.getTileWidth()),a=Math.ceil(this.getHeight()/this.getTileHeight()),l,{tiles:A}=this;this.planarConfiguration===1?l=t*s+e:this.planarConfiguration===2&&(l=n*s*a+t*s+e);let c,h;this.isTiled?(c=this.fileDirectory.TileOffsets[l],h=this.fileDirectory.TileByteCounts[l]):(c=this.fileDirectory.StripOffsets[l],h=this.fileDirectory.StripByteCounts[l]);let u=(await this.source.fetch([{offset:c,length:h}],o))[0],f;return A===null||!A[l]?(f=(async()=>{let g=await r.decode(this.fileDirectory,u),p=this.getSampleFormat(),d=this.getBitsPerSample();return vk(p,d)&&(g=Sk(g,p,this.planarConfiguration,this.getSamplesPerPixel(),d,this.getTileWidth(),this.getBlockHeight(t))),g})(),A!==null&&(A[l]=f)):f=A[l],{x:e,y:t,sample:n,data:await f}}async _readRaster(e,t,n,r,o,s,a,l,A){let c=this.getTileWidth(),h=this.getTileHeight(),u=this.getWidth(),f=this.getHeight(),g=Math.max(Math.floor(e[0]/c),0),p=Math.min(Math.ceil(e[2]/c),Math.ceil(u/c)),d=Math.max(Math.floor(e[1]/h),0),I=Math.min(Math.ceil(e[3]/h),Math.ceil(f/h)),m=e[2]-e[0],C=this.getBytesPerPixel(),_=[],y=[];for(let E=0;E{let b=S.data,F=new DataView(b),M=this.getBlockHeight(S.y),k=S.y*h,P=S.x*c,U=k+M,N=(S.x+1)*c,j=y[v],X=Math.min(M,M-(U-e[3]),f-k),z=Math.min(c,c-(N-e[2]),u-P);for(let q=Math.max(0,e[1]-k);qc[2]||c[1]>c[3])throw new Error("Invalid subsets");let h=c[2]-c[0],u=c[3]-c[1],f=h*u,g=this.getSamplesPerPixel();if(!t||!t.length)for(let m=0;m=g)return Promise.reject(new RangeError(`Invalid sample index '${t[m]}'.`));let p;if(n){let m=this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,C=Math.max.apply(null,this.fileDirectory.BitsPerSample);p=GI(m,C,f*t.length),l&&p.fill(l)}else{p=[];for(let m=0;mA[2]||A[1]>A[3])throw new Error("Invalid subsets");let c=this.fileDirectory.PhotometricInterpretation;if(c===zi.RGB){let I=[0,1,2];if(this.fileDirectory.ExtraSamples!==eI.Unspecified&&a){I=[];for(let m=0;m(0,Bg.default)(o,"sample")===void 0):r=r.filter(o=>Number((0,Bg.default)(o,"sample"))===e);for(let o=0;o[a+r*d+o*I,h+l*d+A*I]),g=f.map(d=>d[0]),p=f.map(d=>d[1]);return[Math.min(...g),Math.min(...p),Math.max(...g),Math.max(...p)]}else{let r=this.getOrigin(),o=this.getResolution(),s=r[0],a=r[1],l=s+o[0]*n,A=a+o[1]*t;return[Math.min(s,l),Math.min(a,A),Math.max(s,l),Math.max(a,A)]}}},UI=OI;var Jc=class{constructor(e){this._dataView=new DataView(e)}get buffer(){return this._dataView.buffer}getUint64(e,t){let n=this.getUint32(e,t),r=this.getUint32(e+4,t),o;if(t){if(o=n+2**32*r,!Number.isSafeInteger(o))throw new Error(`${o} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return o}if(o=2**32*n+r,!Number.isSafeInteger(o))throw new Error(`${o} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return o}getInt64(e,t){let n=0,r=(this._dataView.getUint8(e+(t?7:0))&128)>0,o=!0;for(let s=0;s<8;s++){let a=this._dataView.getUint8(e+(t?s:7-s));r&&(o?a!==0&&(a=~(a-1)&255,o=!1):a=~a&255),n+=a*256**s}return r&&(n=-n),n}getUint8(e,t){return this._dataView.getUint8(e,t)}getInt8(e,t){return this._dataView.getInt8(e,t)}getUint16(e,t){return this._dataView.getUint16(e,t)}getInt16(e,t){return this._dataView.getInt16(e,t)}getUint32(e,t){return this._dataView.getUint32(e,t)}getInt32(e,t){return this._dataView.getInt32(e,t)}getFloat16(e,t){return Tc(this._dataView,e,t)}getFloat32(e,t){return this._dataView.getFloat32(e,t)}getFloat64(e,t){return this._dataView.getFloat64(e,t)}};var $c=class{constructor(e,t,n,r){this._dataView=new DataView(e),this._sliceOffset=t,this._littleEndian=n,this._bigTiff=r}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(e,t){return this.sliceOffset<=e&&this.sliceTop>=e+t}readUint8(e){return this._dataView.getUint8(e-this._sliceOffset,this._littleEndian)}readInt8(e){return this._dataView.getInt8(e-this._sliceOffset,this._littleEndian)}readUint16(e){return this._dataView.getUint16(e-this._sliceOffset,this._littleEndian)}readInt16(e){return this._dataView.getInt16(e-this._sliceOffset,this._littleEndian)}readUint32(e){return this._dataView.getUint32(e-this._sliceOffset,this._littleEndian)}readInt32(e){return this._dataView.getInt32(e-this._sliceOffset,this._littleEndian)}readFloat32(e){return this._dataView.getFloat32(e-this._sliceOffset,this._littleEndian)}readFloat64(e){return this._dataView.getFloat64(e-this._sliceOffset,this._littleEndian)}readUint64(e){let t=this.readUint32(e),n=this.readUint32(e+4),r;if(this._littleEndian){if(r=t+2**32*n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}if(r=2**32*t+n,!Number.isSafeInteger(r))throw new Error(`${r} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return r}readInt64(e){let t=0,n=(this._dataView.getUint8(e+(this._littleEndian?7:0))&128)>0,r=!0;for(let o=0;o<8;o++){let s=this._dataView.getUint8(e+(this._littleEndian?o:7-o));n&&(r?s!==0&&(s=~(s-1)&255,r=!1):s=~s&255),t+=s*256**o}return n&&(t=-t),t}readOffset(e){return this._bigTiff?this.readUint64(e):this.readUint32(e)}};var Rk=typeof navigator<"u"&&navigator.hardwareConcurrency||2,zI=class{constructor(e=Rk,t){this.workers=null,this._awaitingDecoder=null,this.size=e,this.messageId=0,e&&(this._awaitingDecoder=t?Promise.resolve(t):new Promise(n=>{Promise.resolve().then(()=>(ES(),mS)).then(r=>{n(r.create)})}),this._awaitingDecoder.then(n=>{this._awaitingDecoder=null,this.workers=[];for(let r=0;rn.decode(e,t)):new Promise(n=>{let r=this.workers.find(a=>a.idle)||this.workers[Math.floor(Math.random()*this.size)];r.idle=!1;let o=this.messageId++,s=a=>{a.data.id===o&&(r.idle=!0,n(a.data.decoded),r.worker.removeEventListener("message",s))};r.worker.addEventListener("message",s),r.worker.postMessage({fileDirectory:e,buffer:t,id:o},[t])})}destroy(){this.workers&&(this.workers.forEach(e=>{e.worker.terminate()}),this.workers=null)}},YI=zI;var IS=`\r \r -`;function gB(i){if(typeof Object.fromEntries<"u")return Object.fromEntries(i);let e={};for(let[t,n]of i)e[t.toLowerCase()]=n;return e}function wT(i){let e=i.split(`\r -`).map(t=>{let n=t.split(":").map(r=>r.trim());return n[0]=n[0].toLowerCase(),n});return gB(e)}function dB(i){let[e,...t]=i.split(";").map(r=>r.trim()),n=t.map(r=>r.split("="));return{type:e,params:gB(n)}}function th(i){let e,t,n;return i&&([,e,t,n]=i.match(/bytes (\d+)-(\d+)\/(\d+)/),e=parseInt(e,10),t=parseInt(t,10),n=parseInt(n,10)),{start:e,end:t,total:n}}function mB(i,e){let t=null,n=new TextDecoder("ascii"),r=[],o=`--${e}`,s=`${o}--`;for(let a=0;a<10;++a)n.decode(new Uint8Array(i,a,o.length))===o&&(t=a);if(t===null)throw new Error("Could not find initial boundary");for(;tthis.fetchSlice(n,t)))}async fetchSlice(e){throw new Error(`fetching of slice ${e} not possible, not implemented`)}get fileSize(){return null}async close(){}};var fA=class extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof e.maxAge=="number"&&e.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if(typeof this.onEviction=="function")for(let[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return typeof t.expiry=="number"&&t.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(e,t.value),this.delete(e)):!1}_getOrDeleteIfExpired(e,t){if(this._deleteIfExpired(e,t)===!1)return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){let n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(let e of this.oldCache){let[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)===!1&&(yield e)}for(let e of this.cache){let[t,n]=e;this._deleteIfExpired(t,n)===!1&&(yield e)}}get(e){if(this.cache.has(e)){let t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){let t=this.oldCache.get(e);if(this._deleteIfExpired(e,t)===!1)return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){let r=typeof n=="number"&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:r}):this._set(e,{value:t,expiry:r}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):!1}peek(e){if(this.cache.has(e))return this._peek(e,this.cache);if(this.oldCache.has(e))return this._peek(e,this.oldCache)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache){let[t,n]=e;this._deleteIfExpired(t,n)===!1&&(yield[t,n.value])}for(let e of this.oldCache){let[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)===!1&&(yield[t,n.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){let n=e[t],[r,o]=n;this._deleteIfExpired(r,o)===!1&&(yield[r,o.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){let n=e[t],[r,o]=n;this.cache.has(r)||this._deleteIfExpired(r,o)===!1&&(yield[r,o.value])}}*entriesAscending(){for(let[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(let[n,r]of this.entriesAscending())e.call(t,r,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}};async function pB(i){return new Promise(e=>setTimeout(e,i))}function EB(i,e){let t=Array.isArray(i)?i:Array.from(i),n=Array.isArray(e)?e:Array.from(e);return t.map((r,o)=>[r,n[o]])}var zn=class i extends Error{constructor(e){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,i),this.name="AbortError"}},vm=class extends Error{constructor(e,t){super(t),this.errors=e,this.message=t,this.name="AggregateError"}},IB=vm;var Tm=class{constructor(e,t,n=null){this.offset=e,this.length=t,this.data=n}get top(){return this.offset+this.length}},ih=class{constructor(e,t,n){this.offset=e,this.length=t,this.blockIds=n}},nh=class extends xr{constructor(e,{blockSize:t=65536,cacheSize:n=100}={}){super(),this.source=e,this.blockSize=t,this.blockCache=new fA({maxSize:n,onEviction:(r,o)=>{this.evictedBlocks.set(r,o)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(e,t){let n=[],r=[],o=[];this.evictedBlocks.clear();for(let{offset:u,length:f}of e){let g=u+f,{fileSize:m}=this;m!==null&&(g=Math.min(g,m));let d=Math.floor(u/this.blockSize)*this.blockSize;for(let E=d;Ethis.abortedBlockIds.has(u)||!this.blockCache.has(u));if(A.forEach(u=>this.blockIdsToFetch.add(u)),A.length>0&&t&&!t.aborted){this.fetchBlocks(null);for(let u of A){let f=this.blockRequests.get(u);if(!f)throw new Error(`Block ${u} is not in the block requests`);a.push(f)}await Promise.allSettled(a)}if(t&&t.aborted)throw new zn("Request was aborted");let l=o.map(u=>this.blockCache.get(u)||this.evictedBlocks.get(u)),c=l.filter(u=>!u);if(c.length)throw new IB(c,"Request failed");let h=new Map(EB(o,l));return this.readSliceData(e,h)}fetchBlocks(e){if(this.blockIdsToFetch.size>0){let t=this.groupBlocks(this.blockIdsToFetch),n=this.source.fetch(t,e);for(let r=0;r{try{let a=(await n)[r],A=s*this.blockSize,l=A-a.offset,c=Math.min(l+this.blockSize,a.data.byteLength),h=a.data.slice(l,c),u=new Tm(A,h.byteLength,h,s);this.blockCache.set(s,u),this.abortedBlockIds.delete(s)}catch(a){if(a.name==="AbortError")a.signal=e,this.blockCache.delete(s),this.abortedBlockIds.add(s);else throw a}finally{this.blockRequests.delete(s)}})())}this.blockIdsToFetch.clear()}}groupBlocks(e){let t=Array.from(e).sort((s,a)=>s-a);if(t.length===0)return[];let n=[],r=null,o=[];for(let s of t)r===null||r+1===s?(n.push(s),r=s):(o.push(new ih(n[0]*this.blockSize,n.length*this.blockSize,n)),n=[s],r=s);return o.push(new ih(n[0]*this.blockSize,n.length*this.blockSize,n)),o}readSliceData(e,t){return e.map(n=>{let r=n.offset+n.length;this.fileSize!==null&&(r=Math.min(this.fileSize,r));let o=Math.floor(n.offset/this.blockSize),s=Math.floor(r/this.blockSize),a=new ArrayBuffer(n.length),A=new Uint8Array(a);for(let l=o;l<=s;++l){let c=t.get(l),h=c.offset-n.offset,u=c.top-r,f=0,g=0,m;h<0?f=-h:h>0&&(g=h),u<0?m=c.length-f:m=r-c.offset-f;let d=new Uint8Array(c.data,f,m);A.set(d,g)}return a})}};var wr=class{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(e){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}},Qr=class{constructor(e){this.url=e}async request({headers:e,signal:t}={}){throw new Error("request is not implemented")}};var Dm=class extends wr{constructor(e){super(),this.response=e}get status(){return this.response.status}getHeader(e){return this.response.headers.get(e)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}},rh=class extends Qr{constructor(e,t){super(e),this.credentials=t}async request({headers:e,signal:t}={}){let n=await fetch(this.url,{headers:e,credentials:this.credentials,signal:t});return new Dm(n)}};var bm=class extends wr{constructor(e,t){super(),this.xhr=e,this.data=t}get status(){return this.xhr.status}getHeader(e){return this.xhr.getResponseHeader(e)}async getData(){return this.data}},oh=class extends Qr{constructRequest(e,t){return new Promise((n,r)=>{let o=new XMLHttpRequest;o.open("GET",this.url),o.responseType="arraybuffer";for(let[s,a]of Object.entries(e))o.setRequestHeader(s,a);o.onload=()=>{let s=o.response;n(new bm(o,s))},o.onerror=r,o.onabort=()=>r(new zn("Request aborted")),o.send(),t&&(t.aborted&&o.abort(),t.addEventListener("abort",()=>o.abort()))})}async request({headers:e,signal:t}={}){return await this.constructRequest(e,t)}};var BB=mo(CB(),1),xB=mo(_B(),1),wB=mo(yB(),1);var Fm=class extends wr{constructor(e,t){super(),this.response=e,this.dataPromise=t}get status(){return this.response.statusCode}getHeader(e){return this.response.headers[e]}async getData(){return await this.dataPromise}},sh=class extends Qr{constructor(e){super(e),this.parsedUrl=wB.default.parse(this.url),this.httpApi=this.parsedUrl.protocol==="http:"?BB.default:xB.default}constructRequest(e,t){return new Promise((n,r)=>{let o=this.httpApi.get({...this.parsedUrl,headers:e},s=>{let a=new Promise(A=>{let l=[];s.on("data",c=>{l.push(c)}),s.on("end",()=>{let c=Buffer.concat(l).buffer;A(c)}),s.on("error",r)});n(new Fm(s,a))});o.on("error",r),t&&(t.aborted&&o.destroy(new zn("Request aborted")),t.addEventListener("abort",()=>o.destroy(new zn("Request aborted"))))})}async request({headers:e,signal:t}={}){return await this.constructRequest(e,t)}};var gA=class extends xr{constructor(e,t,n,r){super(),this.client=e,this.headers=t,this.maxRanges=n,this.allowFullFile=r,this._fileSize=null}async fetch(e,t){return this.maxRanges>=e.length?this.fetchSlices(e,t):(this.maxRanges>0&&e.length>1,Promise.all(e.map(n=>this.fetchSlice(n,t))))}async fetchSlices(e,t){let n=await this.client.request({headers:{...this.headers,Range:`bytes=${e.map(({offset:r,length:o})=>`${r}-${r+o}`).join(",")}`},signal:t});if(n.ok)if(n.status===206){let{type:r,params:o}=dB(n.getHeader("content-type"));if(r==="multipart/byteranges"){let h=mB(await n.getData(),o.boundary);return this._fileSize=h[0].fileSize||null,h}let s=await n.getData(),{start:a,end:A,total:l}=th(n.getHeader("content-range"));this._fileSize=l||null;let c=[{data:s,offset:a,length:A-a}];if(e.length>1){let h=await Promise.all(e.slice(1).map(u=>this.fetchSlice(u,t)));return c.concat(h)}return c}else{if(!this.allowFullFile)throw new Error("Server responded with full file");let r=await n.getData();return this._fileSize=r.byteLength,[{data:r,offset:0,length:r.byteLength}]}else throw new Error("Error fetching data.")}async fetchSlice(e,t){let{offset:n,length:r}=e,o=await this.client.request({headers:{...this.headers,Range:`bytes=${n}-${n+r}`},signal:t});if(o.ok)if(o.status===206){let s=await o.getData(),{total:a}=th(o.getHeader("content-range"));return this._fileSize=a||null,{data:s,offset:n,length:r}}else{if(!this.allowFullFile)throw new Error("Server responded with full file");let s=await o.getData();return this._fileSize=s.byteLength,{data:s,offset:0,length:s.byteLength}}else throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}};function Lm(i,{blockSize:e,cacheSize:t}){return e===null?i:new nh(i,{blockSize:e,cacheSize:t})}function QT(i,{headers:e={},credentials:t,maxRanges:n=0,allowFullFile:r=!1,...o}={}){let s=new rh(i,t),a=new gA(s,e,n,r);return Lm(a,o)}function ST(i,{headers:e={},maxRanges:t=0,allowFullFile:n=!1,...r}={}){let o=new oh(i),s=new gA(o,e,t,n);return Lm(s,r)}function RT(i,{headers:e={},maxRanges:t=0,allowFullFile:n=!1,...r}={}){let o=new sh(i),s=new gA(o,e,t,n);return Lm(s,r)}function ah(i,{forceXHR:e=!1,...t}={}){return typeof fetch=="function"&&!e?QT(i,t):typeof XMLHttpRequest<"u"?ST(i,t):RT(i,t)}var Mm=class extends xr{constructor(e){super(),this.file=e}async fetchSlice(e,t){return new Promise((n,r)=>{let o=this.file.slice(e.offset,e.offset+e.length),s=new FileReader;s.onload=a=>n(a.target.result),s.onerror=r,s.onabort=r,s.readAsArrayBuffer(o),t&&t.addEventListener("abort",()=>s.abort())})}};function QB(i){return new Mm(i)}za();za();function km(i){switch(i){case le.BYTE:case le.ASCII:case le.SBYTE:case le.UNDEFINED:return 1;case le.SHORT:case le.SSHORT:return 2;case le.LONG:case le.SLONG:case le.FLOAT:case le.IFD:return 4;case le.RATIONAL:case le.SRATIONAL:case le.DOUBLE:case le.LONG8:case le.SLONG8:case le.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${i}`)}}function vT(i){let e=i.GeoKeyDirectory;if(!e)return null;let t={};for(let n=4;n<=e[3]*4;n+=4){let r=ps[e[n]],o=e[n+1]?io[e[n+1]]:null,s=e[n+2],a=e[n+3],A=null;if(!o)A=a;else{if(A=i[o],typeof A>"u"||A===null)throw new Error(`Could not get value of geoKey '${r}'.`);typeof A=="string"?A=A.substring(a,a+s-1):A.subarray&&(A=A.subarray(a,a+s),s===1&&(A=A[0]))}t[r]=A}return t}function vs(i,e,t,n){let r=null,o=null,s=km(e);switch(e){case le.BYTE:case le.ASCII:case le.UNDEFINED:r=new Uint8Array(t),o=i.readUint8;break;case le.SBYTE:r=new Int8Array(t),o=i.readInt8;break;case le.SHORT:r=new Uint16Array(t),o=i.readUint16;break;case le.SSHORT:r=new Int16Array(t),o=i.readInt16;break;case le.LONG:case le.IFD:r=new Uint32Array(t),o=i.readUint32;break;case le.SLONG:r=new Int32Array(t),o=i.readInt32;break;case le.LONG8:case le.IFD8:r=new Array(t),o=i.readUint64;break;case le.SLONG8:r=new Array(t),o=i.readInt64;break;case le.RATIONAL:r=new Uint32Array(t*2),o=i.readUint32;break;case le.SRATIONAL:r=new Int32Array(t*2),o=i.readInt32;break;case le.FLOAT:r=new Float32Array(t),o=i.readFloat32;break;case le.DOUBLE:r=new Float64Array(t),o=i.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e===le.RATIONAL||e===le.SRATIONAL)for(let a=0;ag.getWidth()-m.getWidth());for(let g=0;gd||s&&s>E)break}}let u=t;if(a){let[f,g]=A.getOrigin(),[m,d]=l.getResolution(A);u=[Math.round((a[0]-f)/m),Math.round((a[1]-g)/d),Math.round((a[2]-f)/m),Math.round((a[3]-g)/d)],u=[Math.min(u[0],u[2]),Math.min(u[1],u[3]),Math.max(u[0],u[2]),Math.max(u[1],u[3])]}return l.readRasters({...e,window:u})}},Ds=class i extends Ah{constructor(e,t,n,r,o={}){super(),this.source=e,this.littleEndian=t,this.bigTiff=n,this.firstIFDOffset=r,this.cache=o.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(e,t){let n=this.bigTiff?4048:1024;return new uA((await this.source.fetch([{offset:e,length:typeof t<"u"?t:n}]))[0],e,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(e){let t=this.bigTiff?20:12,n=this.bigTiff?8:2,r=await this.getSlice(e),o=this.bigTiff?r.readUint64(e):r.readUint16(e),s=o*t+(this.bigTiff?16:6);r.covers(e,s)||(r=await this.getSlice(e,s));let a={},A=e+(this.bigTiff?8:2);for(let h=0;h{let t=await this.ifdRequests[e-1];if(t.nextIFDByteOffset===0)throw new Ts(e);return this.parseFileDirectoryAt(t.nextIFDByteOffset)})(),this.ifdRequests[e]}async getImage(e=0){let t=await this.requestIFD(e);return new Qm(t.fileDirectory,t.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let e=0,t=!0;for(;t;)try{await this.requestIFD(e),++e}catch(n){if(n instanceof Ts)t=!1;else throw n}return e}async getGhostValues(){let e=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;let t="GDAL_STRUCTURAL_METADATA_SIZE=",n=t.length+100,r=await this.getSlice(e,n);if(t===vs(r,le.ASCII,t.length,e)){let s=vs(r,le.ASCII,n,e).split(` -`)[0],a=Number(s.split("=")[1].split(" ")[0])+s.length;a>n&&(r=await this.getSlice(e,a));let A=vs(r,le.ASCII,a,e);this.ghostValues={},A.split(` -`).filter(l=>l.length>0).map(l=>l.split("=")).forEach(([l,c])=>{this.ghostValues[l]=c})}return this.ghostValues}static async fromSource(e,t,n){let r=(await e.fetch([{offset:0,length:1024}],n))[0],o=new hA(r),s=o.getUint16(0,0),a;if(s===18761)a=!0;else if(s===19789)a=!1;else throw new TypeError("Invalid byte order value.");let A=o.getUint16(2,a),l;if(A===42)l=!1;else if(A===43){if(l=!0,o.getUint16(4,a)!==8)throw new Error("Unsupported offset byte-size.")}else throw new TypeError("Invalid magic number.");let c=l?o.getUint64(8,a):o.getUint32(4,a);return new i(e,a,l,c,t)}close(){return typeof this.source.close=="function"?this.source.close():!1}};var Nm=class extends Ah{constructor(e,t){super(),this.mainFile=e,this.overviewFiles=t,this.imageFiles=[e].concat(t),this.fileDirectoriesPerFile=null,this.fileDirectoriesPerFileParsing=null,this.imageCount=null}async parseFileDirectoriesPerFile(){let e=[this.mainFile.parseFileDirectoryAt(this.mainFile.firstIFDOffset)].concat(this.overviewFiles.map(t=>t.parseFileDirectoryAt(t.firstIFDOffset)));return this.fileDirectoriesPerFile=await Promise.all(e),this.fileDirectoriesPerFile}async getImage(e=0){await this.getImageCount(),await this.parseFileDirectoriesPerFile();let t=0,n=0;for(let r=0;rt.getImageCount()));return this.imageCounts=await Promise.all(e),this.imageCount=this.imageCounts.reduce((t,n)=>t+n,0),this.imageCount}};async function SB(i,e={},t){return Ds.fromSource(ah(i,e),t)}async function RB(i,e){return Ds.fromSource(QB(i),e)}async function vB(i,e=[],t={},n){let r=await Ds.fromSource(ah(i,t),n),o=await Promise.all(e.map(s=>Ds.fromSource(ah(s,t))));return new Nm(r,o)}var TT=` +`;function CS(i){if(typeof Object.fromEntries<"u")return Object.fromEntries(i);let e={};for(let[t,n]of i)e[t.toLowerCase()]=n;return e}function Qk(i){let e=i.split(`\r +`).map(t=>{let n=t.split(":").map(r=>r.trim());return n[0]=n[0].toLowerCase(),n});return CS(e)}function yS(i){let[e,...t]=i.split(";").map(r=>r.trim()),n=t.map(r=>r.split("="));return{type:e,params:CS(n)}}function wg(i){let e,t,n;return i&&([,e,t,n]=i.match(/bytes (\d+)-(\d+)\/(\d+)/),e=parseInt(e,10),t=parseInt(t,10),n=parseInt(n,10)),{start:e,end:t,total:n}}function _S(i,e){let t=null,n=new TextDecoder("ascii"),r=[],o=`--${e}`,s=`${o}--`;for(let a=0;a<10;++a)n.decode(new Uint8Array(i,a,o.length))===o&&(t=a);if(t===null)throw new Error("Could not find initial boundary");for(;tthis.fetchSlice(n,t)))}async fetchSlice(e){throw new Error(`fetching of slice ${e} not possible, not implemented`)}get fileSize(){return null}async close(){}};var Zc=class extends Map{constructor(e={}){if(super(),!(e.maxSize&&e.maxSize>0))throw new TypeError("`maxSize` must be a number greater than 0");if(typeof e.maxAge=="number"&&e.maxAge===0)throw new TypeError("`maxAge` must be a number greater than 0");this.maxSize=e.maxSize,this.maxAge=e.maxAge||Number.POSITIVE_INFINITY,this.onEviction=e.onEviction,this.cache=new Map,this.oldCache=new Map,this._size=0}_emitEvictions(e){if(typeof this.onEviction=="function")for(let[t,n]of e)this.onEviction(t,n.value)}_deleteIfExpired(e,t){return typeof t.expiry=="number"&&t.expiry<=Date.now()?(typeof this.onEviction=="function"&&this.onEviction(e,t.value),this.delete(e)):!1}_getOrDeleteIfExpired(e,t){if(this._deleteIfExpired(e,t)===!1)return t.value}_getItemValue(e,t){return t.expiry?this._getOrDeleteIfExpired(e,t):t.value}_peek(e,t){let n=t.get(e);return this._getItemValue(e,n)}_set(e,t){this.cache.set(e,t),this._size++,this._size>=this.maxSize&&(this._size=0,this._emitEvictions(this.oldCache),this.oldCache=this.cache,this.cache=new Map)}_moveToRecent(e,t){this.oldCache.delete(e),this._set(e,t)}*_entriesAscending(){for(let e of this.oldCache){let[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)===!1&&(yield e)}for(let e of this.cache){let[t,n]=e;this._deleteIfExpired(t,n)===!1&&(yield e)}}get(e){if(this.cache.has(e)){let t=this.cache.get(e);return this._getItemValue(e,t)}if(this.oldCache.has(e)){let t=this.oldCache.get(e);if(this._deleteIfExpired(e,t)===!1)return this._moveToRecent(e,t),t.value}}set(e,t,{maxAge:n=this.maxAge}={}){let r=typeof n=="number"&&n!==Number.POSITIVE_INFINITY?Date.now()+n:void 0;return this.cache.has(e)?this.cache.set(e,{value:t,expiry:r}):this._set(e,{value:t,expiry:r}),this}has(e){return this.cache.has(e)?!this._deleteIfExpired(e,this.cache.get(e)):this.oldCache.has(e)?!this._deleteIfExpired(e,this.oldCache.get(e)):!1}peek(e){if(this.cache.has(e))return this._peek(e,this.cache);if(this.oldCache.has(e))return this._peek(e,this.oldCache)}delete(e){let t=this.cache.delete(e);return t&&this._size--,this.oldCache.delete(e)||t}clear(){this.cache.clear(),this.oldCache.clear(),this._size=0}resize(e){if(!(e&&e>0))throw new TypeError("`maxSize` must be a number greater than 0");let t=[...this._entriesAscending()],n=t.length-e;n<0?(this.cache=new Map(t),this.oldCache=new Map,this._size=t.length):(n>0&&this._emitEvictions(t.slice(0,n)),this.oldCache=new Map(t.slice(n)),this.cache=new Map,this._size=0),this.maxSize=e}*keys(){for(let[e]of this)yield e}*values(){for(let[,e]of this)yield e}*[Symbol.iterator](){for(let e of this.cache){let[t,n]=e;this._deleteIfExpired(t,n)===!1&&(yield[t,n.value])}for(let e of this.oldCache){let[t,n]=e;this.cache.has(t)||this._deleteIfExpired(t,n)===!1&&(yield[t,n.value])}}*entriesDescending(){let e=[...this.cache];for(let t=e.length-1;t>=0;--t){let n=e[t],[r,o]=n;this._deleteIfExpired(r,o)===!1&&(yield[r,o.value])}e=[...this.oldCache];for(let t=e.length-1;t>=0;--t){let n=e[t],[r,o]=n;this.cache.has(r)||this._deleteIfExpired(r,o)===!1&&(yield[r,o.value])}}*entriesAscending(){for(let[e,t]of this._entriesAscending())yield[e,t.value]}get size(){if(!this._size)return this.oldCache.size;let e=0;for(let t of this.oldCache.keys())this.cache.has(t)||e++;return Math.min(this._size+e,this.maxSize)}entries(){return this.entriesAscending()}forEach(e,t=this){for(let[n,r]of this.entriesAscending())e.call(t,r,n,this)}get[Symbol.toStringTag](){return JSON.stringify([...this.entriesAscending()])}};async function xS(i){return new Promise(e=>setTimeout(e,i))}function BS(i,e){let t=Array.isArray(i)?i:Array.from(i),n=Array.isArray(e)?e:Array.from(e);return t.map((r,o)=>[r,n[o]])}var Qo=class i extends Error{constructor(e){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,i),this.name="AbortError"}},VI=class extends Error{constructor(e,t){super(t),this.errors=e,this.message=t,this.name="AggregateError"}},wS=VI;var HI=class{constructor(e,t,n=null){this.offset=e,this.length=t,this.data=n}get top(){return this.offset+this.length}},vg=class{constructor(e,t,n){this.offset=e,this.length=t,this.blockIds=n}},Sg=class extends Rs{constructor(e,{blockSize:t=65536,cacheSize:n=100}={}){super(),this.source=e,this.blockSize=t,this.blockCache=new Zc({maxSize:n,onEviction:(r,o)=>{this.evictedBlocks.set(r,o)}}),this.evictedBlocks=new Map,this.blockRequests=new Map,this.blockIdsToFetch=new Set,this.abortedBlockIds=new Set}get fileSize(){return this.source.fileSize}async fetch(e,t){let n=[],r=[],o=[];this.evictedBlocks.clear();for(let{offset:u,length:f}of e){let g=u+f,{fileSize:p}=this;p!==null&&(g=Math.min(g,p));let d=Math.floor(u/this.blockSize)*this.blockSize;for(let I=d;Ithis.abortedBlockIds.has(u)||!this.blockCache.has(u));if(l.forEach(u=>this.blockIdsToFetch.add(u)),l.length>0&&t&&!t.aborted){this.fetchBlocks(null);for(let u of l){let f=this.blockRequests.get(u);if(!f)throw new Error(`Block ${u} is not in the block requests`);a.push(f)}await Promise.allSettled(a)}if(t&&t.aborted)throw new Qo("Request was aborted");let A=o.map(u=>this.blockCache.get(u)||this.evictedBlocks.get(u)),c=A.filter(u=>!u);if(c.length)throw new wS(c,"Request failed");let h=new Map(BS(o,A));return this.readSliceData(e,h)}fetchBlocks(e){if(this.blockIdsToFetch.size>0){let t=this.groupBlocks(this.blockIdsToFetch),n=this.source.fetch(t,e);for(let r=0;r{try{let a=(await n)[r],l=s*this.blockSize,A=l-a.offset,c=Math.min(A+this.blockSize,a.data.byteLength),h=a.data.slice(A,c),u=new HI(l,h.byteLength,h,s);this.blockCache.set(s,u),this.abortedBlockIds.delete(s)}catch(a){if(a.name==="AbortError")a.signal=e,this.blockCache.delete(s),this.abortedBlockIds.add(s);else throw a}finally{this.blockRequests.delete(s)}})())}this.blockIdsToFetch.clear()}}groupBlocks(e){let t=Array.from(e).sort((s,a)=>s-a);if(t.length===0)return[];let n=[],r=null,o=[];for(let s of t)r===null||r+1===s?(n.push(s),r=s):(o.push(new vg(n[0]*this.blockSize,n.length*this.blockSize,n)),n=[s],r=s);return o.push(new vg(n[0]*this.blockSize,n.length*this.blockSize,n)),o}readSliceData(e,t){return e.map(n=>{let r=n.offset+n.length;this.fileSize!==null&&(r=Math.min(this.fileSize,r));let o=Math.floor(n.offset/this.blockSize),s=Math.floor(r/this.blockSize),a=new ArrayBuffer(n.length),l=new Uint8Array(a);for(let A=o;A<=s;++A){let c=t.get(A),h=c.offset-n.offset,u=c.top-r,f=0,g=0,p;h<0?f=-h:h>0&&(g=h),u<0?p=c.length-f:p=r-c.offset-f;let d=new Uint8Array(c.data,f,p);l.set(d,g)}return a})}};var Qs=class{get ok(){return this.status>=200&&this.status<=299}get status(){throw new Error("not implemented")}getHeader(e){throw new Error("not implemented")}async getData(){throw new Error("not implemented")}},bs=class{constructor(e){this.url=e}async request({headers:e,signal:t}={}){throw new Error("request is not implemented")}};var qI=class extends Qs{constructor(e){super(),this.response=e}get status(){return this.response.status}getHeader(e){return this.response.headers.get(e)}async getData(){return this.response.arrayBuffer?await this.response.arrayBuffer():(await this.response.buffer()).buffer}},Tg=class extends bs{constructor(e,t){super(e),this.credentials=t}async request({headers:e,signal:t}={}){let n=await fetch(this.url,{headers:e,credentials:this.credentials,signal:t});return new qI(n)}};var KI=class extends Qs{constructor(e,t){super(),this.xhr=e,this.data=t}get status(){return this.xhr.status}getHeader(e){return this.xhr.getResponseHeader(e)}async getData(){return this.data}},Rg=class extends bs{constructRequest(e,t){return new Promise((n,r)=>{let o=new XMLHttpRequest;o.open("GET",this.url),o.responseType="arraybuffer";for(let[s,a]of Object.entries(e))o.setRequestHeader(s,a);o.onload=()=>{let s=o.response;n(new KI(o,s))},o.onerror=r,o.onabort=()=>r(new Qo("Request aborted")),o.send(),t&&(t.aborted&&o.abort(),t.addEventListener("abort",()=>o.abort()))})}async request({headers:e,signal:t}={}){return await this.constructRequest(e,t)}};var RS=wa(vS(),1),QS=wa(SS(),1),bS=wa(TS(),1);var XI=class extends Qs{constructor(e,t){super(),this.response=e,this.dataPromise=t}get status(){return this.response.statusCode}getHeader(e){return this.response.headers[e]}async getData(){return await this.dataPromise}},Qg=class extends bs{constructor(e){super(e),this.parsedUrl=bS.default.parse(this.url),this.httpApi=this.parsedUrl.protocol==="http:"?RS.default:QS.default}constructRequest(e,t){return new Promise((n,r)=>{let o=this.httpApi.get({...this.parsedUrl,headers:e},s=>{let a=new Promise(l=>{let A=[];s.on("data",c=>{A.push(c)}),s.on("end",()=>{let c=Buffer.concat(A).buffer;l(c)}),s.on("error",r)});n(new XI(s,a))});o.on("error",r),t&&(t.aborted&&o.destroy(new Qo("Request aborted")),t.addEventListener("abort",()=>o.destroy(new Qo("Request aborted"))))})}async request({headers:e,signal:t}={}){return await this.constructRequest(e,t)}};var eh=class extends Rs{constructor(e,t,n,r){super(),this.client=e,this.headers=t,this.maxRanges=n,this.allowFullFile=r,this._fileSize=null}async fetch(e,t){return this.maxRanges>=e.length?this.fetchSlices(e,t):(this.maxRanges>0&&e.length>1,Promise.all(e.map(n=>this.fetchSlice(n,t))))}async fetchSlices(e,t){let n=await this.client.request({headers:{...this.headers,Range:`bytes=${e.map(({offset:r,length:o})=>`${r}-${r+o}`).join(",")}`},signal:t});if(n.ok)if(n.status===206){let{type:r,params:o}=yS(n.getHeader("content-type"));if(r==="multipart/byteranges"){let h=_S(await n.getData(),o.boundary);return this._fileSize=h[0].fileSize||null,h}let s=await n.getData(),{start:a,end:l,total:A}=wg(n.getHeader("content-range"));this._fileSize=A||null;let c=[{data:s,offset:a,length:l-a}];if(e.length>1){let h=await Promise.all(e.slice(1).map(u=>this.fetchSlice(u,t)));return c.concat(h)}return c}else{if(!this.allowFullFile)throw new Error("Server responded with full file");let r=await n.getData();return this._fileSize=r.byteLength,[{data:r,offset:0,length:r.byteLength}]}else throw new Error("Error fetching data.")}async fetchSlice(e,t){let{offset:n,length:r}=e,o=await this.client.request({headers:{...this.headers,Range:`bytes=${n}-${n+r}`},signal:t});if(o.ok)if(o.status===206){let s=await o.getData(),{total:a}=wg(o.getHeader("content-range"));return this._fileSize=a||null,{data:s,offset:n,length:r}}else{if(!this.allowFullFile)throw new Error("Server responded with full file");let s=await o.getData();return this._fileSize=s.byteLength,{data:s,offset:0,length:s.byteLength}}else throw new Error("Error fetching data.")}get fileSize(){return this._fileSize}};function jI(i,{blockSize:e,cacheSize:t}){return e===null?i:new Sg(i,{blockSize:e,cacheSize:t})}function bk(i,{headers:e={},credentials:t,maxRanges:n=0,allowFullFile:r=!1,...o}={}){let s=new Tg(i,t),a=new eh(s,e,n,r);return jI(a,o)}function Dk(i,{headers:e={},maxRanges:t=0,allowFullFile:n=!1,...r}={}){let o=new Rg(i),s=new eh(o,e,t,n);return jI(s,r)}function Fk(i,{headers:e={},maxRanges:t=0,allowFullFile:n=!1,...r}={}){let o=new Qg(i),s=new eh(o,e,t,n);return jI(s,r)}function bg(i,{forceXHR:e=!1,...t}={}){return typeof fetch=="function"&&!e?bk(i,t):typeof XMLHttpRequest<"u"?Dk(i,t):Fk(i,t)}var WI=class extends Rs{constructor(e){super(),this.file=e}async fetchSlice(e,t){return new Promise((n,r)=>{let o=this.file.slice(e.offset,e.offset+e.length),s=new FileReader;s.onload=a=>n(a.target.result),s.onerror=r,s.onabort=r,s.readAsArrayBuffer(o),t&&t.addEventListener("abort",()=>s.abort())})}};function DS(i){return new WI(i)}Qc();Qc();function JI(i){switch(i){case ye.BYTE:case ye.ASCII:case ye.SBYTE:case ye.UNDEFINED:return 1;case ye.SHORT:case ye.SSHORT:return 2;case ye.LONG:case ye.SLONG:case ye.FLOAT:case ye.IFD:return 4;case ye.RATIONAL:case ye.SRATIONAL:case ye.DOUBLE:case ye.LONG8:case ye.SLONG8:case ye.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${i}`)}}function Lk(i){let e=i.GeoKeyDirectory;if(!e)return null;let t={};for(let n=4;n<=e[3]*4;n+=4){let r=Ll[e[n]],o=e[n+1]?aa[e[n+1]]:null,s=e[n+2],a=e[n+3],l=null;if(!o)l=a;else{if(l=i[o],typeof l>"u"||l===null)throw new Error(`Could not get value of geoKey '${r}'.`);typeof l=="string"?l=l.substring(a,a+s-1):l.subarray&&(l=l.subarray(a,a+s),s===1&&(l=l[0]))}t[r]=l}return t}function ql(i,e,t,n){let r=null,o=null,s=JI(e);switch(e){case ye.BYTE:case ye.ASCII:case ye.UNDEFINED:r=new Uint8Array(t),o=i.readUint8;break;case ye.SBYTE:r=new Int8Array(t),o=i.readInt8;break;case ye.SHORT:r=new Uint16Array(t),o=i.readUint16;break;case ye.SSHORT:r=new Int16Array(t),o=i.readInt16;break;case ye.LONG:case ye.IFD:r=new Uint32Array(t),o=i.readUint32;break;case ye.SLONG:r=new Int32Array(t),o=i.readInt32;break;case ye.LONG8:case ye.IFD8:r=new Array(t),o=i.readUint64;break;case ye.SLONG8:r=new Array(t),o=i.readInt64;break;case ye.RATIONAL:r=new Uint32Array(t*2),o=i.readUint32;break;case ye.SRATIONAL:r=new Int32Array(t*2),o=i.readInt32;break;case ye.FLOAT:r=new Float32Array(t),o=i.readFloat32;break;case ye.DOUBLE:r=new Float64Array(t),o=i.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e===ye.RATIONAL||e===ye.SRATIONAL)for(let a=0;ag.getWidth()-p.getWidth());for(let g=0;gd||s&&s>I)break}}let u=t;if(a){let[f,g]=l.getOrigin(),[p,d]=A.getResolution(l);u=[Math.round((a[0]-f)/p),Math.round((a[1]-g)/d),Math.round((a[2]-f)/p),Math.round((a[3]-g)/d)],u=[Math.min(u[0],u[2]),Math.min(u[1],u[3]),Math.max(u[0],u[2]),Math.max(u[1],u[3])]}return A.readRasters({...e,window:u})}},Xl=class i extends Dg{constructor(e,t,n,r,o={}){super(),this.source=e,this.littleEndian=t,this.bigTiff=n,this.firstIFDOffset=r,this.cache=o.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(e,t){let n=this.bigTiff?4048:1024;return new $c((await this.source.fetch([{offset:e,length:typeof t<"u"?t:n}]))[0],e,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(e){let t=this.bigTiff?20:12,n=this.bigTiff?8:2,r=await this.getSlice(e),o=this.bigTiff?r.readUint64(e):r.readUint16(e),s=o*t+(this.bigTiff?16:6);r.covers(e,s)||(r=await this.getSlice(e,s));let a={},l=e+(this.bigTiff?8:2);for(let h=0;h{let t=await this.ifdRequests[e-1];if(t.nextIFDByteOffset===0)throw new Kl(e);return this.parseFileDirectoryAt(t.nextIFDByteOffset)})(),this.ifdRequests[e]}async getImage(e=0){let t=await this.requestIFD(e);return new UI(t.fileDirectory,t.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let e=0,t=!0;for(;t;)try{await this.requestIFD(e),++e}catch(n){if(n instanceof Kl)t=!1;else throw n}return e}async getGhostValues(){let e=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;let t="GDAL_STRUCTURAL_METADATA_SIZE=",n=t.length+100,r=await this.getSlice(e,n);if(t===ql(r,ye.ASCII,t.length,e)){let s=ql(r,ye.ASCII,n,e).split(` +`)[0],a=Number(s.split("=")[1].split(" ")[0])+s.length;a>n&&(r=await this.getSlice(e,a));let l=ql(r,ye.ASCII,a,e);this.ghostValues={},l.split(` +`).filter(A=>A.length>0).map(A=>A.split("=")).forEach(([A,c])=>{this.ghostValues[A]=c})}return this.ghostValues}static async fromSource(e,t,n){let r=(await e.fetch([{offset:0,length:1024}],n))[0],o=new Jc(r),s=o.getUint16(0,0),a;if(s===18761)a=!0;else if(s===19789)a=!1;else throw new TypeError("Invalid byte order value.");let l=o.getUint16(2,a),A;if(l===42)A=!1;else if(l===43){if(A=!0,o.getUint16(4,a)!==8)throw new Error("Unsupported offset byte-size.")}else throw new TypeError("Invalid magic number.");let c=A?o.getUint64(8,a):o.getUint32(4,a);return new i(e,a,A,c,t)}close(){return typeof this.source.close=="function"?this.source.close():!1}};var ZI=class extends Dg{constructor(e,t){super(),this.mainFile=e,this.overviewFiles=t,this.imageFiles=[e].concat(t),this.fileDirectoriesPerFile=null,this.fileDirectoriesPerFileParsing=null,this.imageCount=null}async parseFileDirectoriesPerFile(){let e=[this.mainFile.parseFileDirectoryAt(this.mainFile.firstIFDOffset)].concat(this.overviewFiles.map(t=>t.parseFileDirectoryAt(t.firstIFDOffset)));return this.fileDirectoriesPerFile=await Promise.all(e),this.fileDirectoriesPerFile}async getImage(e=0){await this.getImageCount(),await this.parseFileDirectoriesPerFile();let t=0,n=0;for(let r=0;rt.getImageCount()));return this.imageCounts=await Promise.all(e),this.imageCount=this.imageCounts.reduce((t,n)=>t+n,0),this.imageCount}};async function FS(i,e={},t){return Xl.fromSource(bg(i,e),t)}async function LS(i,e){return Xl.fromSource(DS(i),e)}async function MS(i,e=[],t={},n){let r=await Xl.fromSource(bg(i,t),n),o=await Promise.all(e.map(s=>Xl.fromSource(bg(s,t))));return new ZI(r,o)}var Mk=` attribute vec4 a_position; attribute vec4 a_texcoord; @@ -641,7 +659,7 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a vec2 texcoord = (u_textureMatrix * a_texcoord).xy; v_texcoord = texcoord; } -`,DT=` +`,kk=` precision mediump float; varying vec2 v_texcoord; @@ -659,7 +677,7 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a } gl_FragColor = texture2D(u_texture, v_texcoord); } -`,lh=class{constructor(e){this.gl_=e,this.program_=ch(e,DT,TT),this.positionLocation=e.getAttribLocation(this.program_,"a_position"),this.texcoordLocation=e.getAttribLocation(this.program_,"a_texcoord"),this.matrixLocation=e.getUniformLocation(this.program_,"u_matrix"),this.textureMatrixLocation=e.getUniformLocation(this.program_,"u_textureMatrix"),this.textureLocation=e.getUniformLocation(this.program_,"u_texture"),this.positionBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.positionBuffer),this.positions=[0,0,0,1,1,0,1,0,0,1,1,1],e.bufferData(e.ARRAY_BUFFER,new Float32Array(this.positions),e.STATIC_DRAW),this.texcoordBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.texcoordBuffer),this.texcoords=[0,0,0,1,1,0,1,0,0,1,1,1],e.bufferData(e.ARRAY_BUFFER,new Float32Array(this.texcoords),e.STATIC_DRAW)}drawImage(e,t,n,r,o,s,a,A,l,c,h,u,f){let g=this.gl_;A===void 0&&(A=r),l===void 0&&(l=o),s===void 0&&(s=t),a===void 0&&(a=n),c===void 0&&(c=s),h===void 0&&(h=a),u===void 0&&(u=g.canvas.width),f===void 0&&(f=g.canvas.height),g.bindTexture(g.TEXTURE_2D,e),g.useProgram(this.program_),g.bindBuffer(g.ARRAY_BUFFER,this.positionBuffer),g.enableVertexAttribArray(this.positionLocation),g.vertexAttribPointer(this.positionLocation,2,g.FLOAT,!1,0,0),g.bindBuffer(g.ARRAY_BUFFER,this.texcoordBuffer),g.enableVertexAttribArray(this.texcoordLocation),g.vertexAttribPointer(this.texcoordLocation,2,g.FLOAT,!1,0,0);let m=ka(0,u,0,f,-1,1);m=L0(m,A,l,0),m=zg(m,c,h,1),g.uniformMatrix4fv(this.matrixLocation,!1,m);let d=M0(r/t,o/n,0);d=zg(d,s/t,a/n,1),g.uniformMatrix4fv(this.textureMatrixLocation,!1,d),g.uniform1i(this.textureLocation,0),g.drawArrays(g.TRIANGLES,0,this.positions.length/2)}};function TB(i,e,t){let n=i.createShader(e);if(n===null)throw new Error("Shader compilation failed");if(i.shaderSource(n,t),i.compileShader(n),!i.getShaderParameter(n,i.COMPILE_STATUS)){let r=i.getShaderInfoLog(n);throw r===null?new Error("Shader info log creation failed"):new Error(r)}return n}function ch(i,e,t){let n=i.createProgram(),r=TB(i,i.VERTEX_SHADER,t),o=TB(i,i.FRAGMENT_SHADER,e);if(n===null)throw new Error("Program creation failed");if(i.attachShader(n,r),i.attachShader(n,o),i.linkProgram(n),!i.getProgramParameter(n,i.LINK_STATUS))throw i.getProgramInfoLog(n)===null?new Error("Program info log creation failed"):new Error;return n}var bT=` +`,Fg=class{constructor(e){this.gl_=e,this.program_=Lg(e,kk,Mk),this.positionLocation=e.getAttribLocation(this.program_,"a_position"),this.texcoordLocation=e.getAttribLocation(this.program_,"a_texcoord"),this.matrixLocation=e.getUniformLocation(this.program_,"u_matrix"),this.textureMatrixLocation=e.getUniformLocation(this.program_,"u_textureMatrix"),this.textureLocation=e.getUniformLocation(this.program_,"u_texture"),this.positionBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.positionBuffer),this.positions=[0,0,0,1,1,0,1,0,0,1,1,1],e.bufferData(e.ARRAY_BUFFER,new Float32Array(this.positions),e.STATIC_DRAW),this.texcoordBuffer=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.texcoordBuffer),this.texcoords=[0,0,0,1,1,0,1,0,0,1,1,1],e.bufferData(e.ARRAY_BUFFER,new Float32Array(this.texcoords),e.STATIC_DRAW)}drawImage(e,t,n,r,o,s,a,l,A,c,h,u,f){let g=this.gl_;l===void 0&&(l=r),A===void 0&&(A=o),s===void 0&&(s=t),a===void 0&&(a=n),c===void 0&&(c=s),h===void 0&&(h=a),u===void 0&&(u=g.canvas.width),f===void 0&&(f=g.canvas.height),g.bindTexture(g.TEXTURE_2D,e),g.useProgram(this.program_),g.bindBuffer(g.ARRAY_BUFFER,this.positionBuffer),g.enableVertexAttribArray(this.positionLocation),g.vertexAttribPointer(this.positionLocation,2,g.FLOAT,!1,0,0),g.bindBuffer(g.ARRAY_BUFFER,this.texcoordBuffer),g.enableVertexAttribArray(this.texcoordLocation),g.vertexAttribPointer(this.texcoordLocation,2,g.FLOAT,!1,0,0);let p=_c(0,u,0,f,-1,1);p=VB(p,l,A,0),p=J0(p,c,h,1),g.uniformMatrix4fv(this.matrixLocation,!1,p);let d=HB(r/t,o/n,0);d=J0(d,s/t,a/n,1),g.uniformMatrix4fv(this.textureMatrixLocation,!1,d),g.uniform1i(this.textureLocation,0),g.drawArrays(g.TRIANGLES,0,this.positions.length/2)}};function kS(i,e,t){let n=i.createShader(e);if(n===null)throw new Error("Shader compilation failed");if(i.shaderSource(n,t),i.compileShader(n),!i.getShaderParameter(n,i.COMPILE_STATUS)){let r=i.getShaderInfoLog(n);throw r===null?new Error("Shader info log creation failed"):new Error(r)}return n}function Lg(i,e,t){let n=i.createProgram(),r=kS(i,i.VERTEX_SHADER,t),o=kS(i,i.FRAGMENT_SHADER,e);if(n===null)throw new Error("Program creation failed");if(i.attachShader(n,r),i.attachShader(n,o),i.linkProgram(n),!i.getProgramParameter(n,i.LINK_STATUS))throw i.getProgramInfoLog(n)===null?new Error("Program info log creation failed"):new Error;return n}var Pk=` attribute vec4 a_position; uniform mat4 u_matrix; @@ -667,14 +685,14 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a void main() { gl_Position = u_matrix * a_position; } -`,FT=` +`,Nk=` precision mediump float; uniform vec4 u_val; void main() { gl_FragColor = u_val; } -`,LT=` +`,Gk=` attribute vec4 a_position; attribute vec2 a_texcoord; @@ -686,7 +704,7 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a gl_Position = u_matrix * a_position; v_texcoord = a_texcoord; } -`,MT=` +`,Ok=` precision mediump float; varying vec2 v_texcoord; @@ -699,11 +717,23 @@ ${this.attributes_.map(e=>` ${e.varyingType} ${e.name} = ${e.varyingName}; // a } gl_FragColor = texture2D(u_texture, v_texcoord); } -`;function DB(i,e,t,n){let r;return t&&t.length?r=t.shift():ko?r=new OffscreenCanvas(i||300,e||300):r=document.createElement("canvas"),i&&(r.width=i),e&&(r.height=e),r.getContext("webgl",n)}function bB(i){let e=i.canvas;e.width=1,e.height=1,i.clear(i.COLOR_BUFFER_BIT|i.DEPTH_BUFFER_BIT|i.STENCIL_BUFFER_BIT)}var Gm=[];function FB(i,e,t,n,r,o,s,a,A,l,c,h,u,f){let g=Math.round(n*e),m=Math.round(n*t);i.canvas.width=g,i.canvas.height=m;let d,E;if(E=i.createTexture(),i.bindTexture(i.TEXTURE_2D,E),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),u?(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR)):(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST)),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,g,m,0,i.RGBA,c,null),d=i.createFramebuffer(),i.bindFramebuffer(i.FRAMEBUFFER,d),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,E,0),d===null)throw new Error("Could not create framebuffer");if(E===null)throw new Error("Could not create texture");if(A.length===0)return{width:g,height:m,framebuffer:d,texture:E};let p=be();A.forEach(function(w,v,R){yo(p,w.extent)});let _,C,I,y=1/r;if(!f||A.length!==1||l!==0){if(_=i.createTexture(),E===null)throw new Error("Could not create texture");C=Math.round(oe(p)*y),I=Math.round(Se(p)*y);let w=i.getParameter(i.MAX_TEXTURE_SIZE),v=Math.max(C,I),R=v>w?w/v:1,F=Math.round(C*R),D=Math.round(I*R);i.bindTexture(i.TEXTURE_2D,_),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),u?(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR)):(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST)),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,F,D,0,i.RGBA,c,null);let S=i.createFramebuffer();i.bindFramebuffer(i.FRAMEBUFFER,S),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,_,0);let k=new lh(i);A.forEach(function(L,b,P){let N=(L.extent[0]-p[0])*y*R,Y=-(L.extent[3]-p[3])*y*R,M=oe(L.extent)*y*R,j=Se(L.extent)*y*R;if(i.bindFramebuffer(i.FRAMEBUFFER,S),i.viewport(0,0,F,D),L.clipExtent){let H=(L.clipExtent[0]-p[0])*y*R,O=-(L.clipExtent[3]-p[3])*y*R,K=oe(L.clipExtent)*y*R,ie=Se(L.clipExtent)*y*R;i.enable(i.SCISSOR_TEST),i.scissor(u?H:Math.round(H),u?O:Math.round(O),u?K:Math.round(H+K)-Math.round(H),u?ie:Math.round(O+ie)-Math.round(O))}k.drawImage(L.texture,L.width,L.height,l,l,L.width-2*l,L.height-2*l,u?N:Math.round(N),u?Y:Math.round(Y),u?M:Math.round(N+M)-Math.round(N),u?j:Math.round(Y+j)-Math.round(Y),F,D),i.disable(i.SCISSOR_TEST)}),i.deleteFramebuffer(S)}else _=A[0].texture,C=A[0].width,I=A[0].width;let x=ht(s),B=ht(p),Q=w=>{let v=(w[0][0]-x[0])/o*n,R=-(w[0][1]-x[1])/o*n,F=(w[1][0]-x[0])/o*n,D=-(w[1][1]-x[1])/o*n,S=(w[2][0]-x[0])/o*n,k=-(w[2][1]-x[1])/o*n;return{u1:F,v1:D,u0:v,v0:R,u2:S,v2:k}};i.bindFramebuffer(i.FRAMEBUFFER,d),i.viewport(0,0,g,m);{let w=[],v=[],R=ch(i,MT,LT);i.useProgram(R);let F=i.getUniformLocation(R,"u_texture");i.bindTexture(i.TEXTURE_2D,_),i.uniform1i(F,0),a.getTriangles().forEach(function(N,Y,M){let j=N.source,H=N.target,{u1:O,v1:K,u0:ie,v0:ge,u2:Ee,v2:de}=Q(H),Pe=(j[0][0]-B[0])/r/C,tt=-(j[0][1]-B[1])/r/I,xt=(j[1][0]-B[0])/r/C,Je=-(j[1][1]-B[1])/r/I,ve=(j[2][0]-B[0])/r/C,bt=-(j[2][1]-B[1])/r/I;w.push(O,K,ie,ge,Ee,de),v.push(xt,Je,Pe,tt,ve,bt)});let D=ka(0,g,m,0,-1,1),S=i.getUniformLocation(R,"u_matrix");i.uniformMatrix4fv(S,!1,D);let k=i.getAttribLocation(R,"a_position"),L=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,L),i.bufferData(i.ARRAY_BUFFER,new Float32Array(w),i.STATIC_DRAW),i.vertexAttribPointer(k,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(k);let b=i.getAttribLocation(R,"a_texcoord"),P=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,P),i.bufferData(i.ARRAY_BUFFER,new Float32Array(v),i.STATIC_DRAW),i.vertexAttribPointer(b,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(b),i.drawArrays(i.TRIANGLES,0,w.length/2)}if(h){let w=ch(i,FT,bT);i.useProgram(w);let v=ka(0,g,m,0,-1,1),R=i.getUniformLocation(w,"u_matrix");i.uniformMatrix4fv(R,!1,v);let F=Array.isArray(h)?h:[0,0,0,255],D=i.getUniformLocation(w,"u_val");!0?i.uniform4fv(D,F):i.uniform4iv(D,F);let k=i.getAttribLocation(w,"a_position"),L=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,L),i.vertexAttribPointer(k,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(k);let b=a.getTriangles().reduce(function(P,N){let Y=N.target,{u1:M,v1:j,u0:H,v0:O,u2:K,v2:ie}=Q(Y);return P.concat([M,j,H,O,H,O,K,ie,K,ie,M,j])},[]);i.bufferData(i.ARRAY_BUFFER,new Float32Array(b),i.STATIC_DRAW),i.drawArrays(i.LINES,0,b.length/2)}return{width:g,height:m,framebuffer:d,texture:E}}var Om=class extends kn{constructor(e){super({tileCoord:e.tileCoord,loader:()=>Promise.resolve(new Uint8ClampedArray(4)),interpolate:e.interpolate,transition:e.transition}),this.renderEdges_=e.renderEdges!==void 0?e.renderEdges:!1,this.pixelRatio_=e.pixelRatio,this.gutter_=e.gutter,this.reprojData_=null,this.reprojError_=null,this.reprojSize_=void 0,this.sourceTileGrid_=e.sourceTileGrid,this.targetTileGrid_=e.targetTileGrid,this.wrappedTileCoord_=e.wrappedTileCoord||e.tileCoord,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;let t=e.sourceProj,n=t.getExtent(),r=e.sourceTileGrid.getExtent();this.clipExtent_=t.canWrapX()?r?Ue(n,r):n:r;let o=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),s=this.targetTileGrid_.getExtent(),a=this.sourceTileGrid_.getExtent(),A=s?Ue(o,s):o;if(jn(A)===0){this.state=G.EMPTY;return}n&&(a?a=Ue(a,n):a=n);let l=this.targetTileGrid_.getResolution(this.wrappedTileCoord_[0]),c=e.targetProj,h=Vl(t,c,A,l);if(!isFinite(h)||h<=0){this.state=G.EMPTY;return}let u=e.errorThreshold!==void 0?e.errorThreshold:.5;if(this.triangulation_=new Xl(t,c,A,a,h*u,l,e.transformMatrix),this.triangulation_.getTriangles().length===0){this.state=G.EMPTY;return}this.sourceZ_=this.sourceTileGrid_.getZForResolution(h);let f=this.triangulation_.calculateSourceExtent();if(a&&(t.canWrapX()?(f[1]=ue(f[1],a[1],a[3]),f[3]=ue(f[3],a[1],a[3])):f=Ue(f,a)),!jn(f))this.state=G.EMPTY;else{let g=0,m=0;t.canWrapX()&&(g=oe(n),m=Math.floor((f[0]-n[0])/g)),wo(f.slice(),t,!0).forEach(E=>{let p=this.sourceTileGrid_.getTileRangeForExtentAndZ(E,this.sourceZ_),_=e.getTileFunction;for(let C=p.minX;C<=p.maxX;C++)for(let I=p.minY;I<=p.maxY;I++){let y=_(this.sourceZ_,C,I,this.pixelRatio_);if(y){let x=m*g;this.sourceTiles_.push({tile:y,offset:x})}}++m}),this.sourceTiles_.length===0&&(this.state=G.EMPTY)}}getSize(){return this.reprojSize_}getData(){return this.reprojData_}getError(){return this.reprojError_}reproject_(){let e=[],t=!1;if(this.sourceTiles_.forEach(C=>{let I=C.tile;if(!I||I.getState()!==G.LOADED)return;let y=I.getSize(),x=this.gutter_,B,Q=Fa(I.getData());Q?B=Q:(t=!0,B=p0(Mn(I.getData())));let w=[y[0]+2*x,y[1]+2*x],v=B instanceof Float32Array,R=w[0]*w[1],F=v?Float32Array:Uint8ClampedArray,D=new F(B.buffer),S=F.BYTES_PER_ELEMENT,k=S*D.length/R,L=D.byteLength/w[1],b=Math.floor(L/S/w[0]),P=this.sourceTileGrid_.getTileCoordExtent(I.tileCoord);P[0]+=C.offset,P[2]+=C.offset;let N=this.clipExtent_?.slice();N&&(N[0]+=C.offset,N[2]+=C.offset),e.push({extent:P,clipExtent:N,data:D,dataType:F,bytesPerPixel:k,pixelSize:w,bandCount:b})}),this.sourceTiles_.length=0,e.length===0){this.state=G.ERROR,this.changed();return}let n=this.wrappedTileCoord_[0],r=this.targetTileGrid_.getTileSize(n),o=typeof r=="number"?r:r[0],s=typeof r=="number"?r:r[1],a=o*this.pixelRatio_,A=s*this.pixelRatio_,l=this.targetTileGrid_.getResolution(n),c=this.sourceTileGrid_.getResolution(this.sourceZ_),h=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),u=e[0].bandCount,f=new e[0].dataType(u*a*A),g=DB(a,A,Gm,{premultipliedAlpha:!1,antialias:!1}),m,d=g.RGBA,E;e[0].dataType==Float32Array?(E=g.FLOAT,g.getExtension("WEBGL_color_buffer_float"),g.getExtension("OES_texture_float"),g.getExtension("EXT_float_blend"),m=g.getExtension("OES_texture_float_linear")!==null&&this.interpolate):(E=g.UNSIGNED_BYTE,m=this.interpolate);let p=4,_=Math.ceil(u/p);for(let C=_-1;C>=0;--C){let I=[];for(let F=0,D=e.length;F{let n=t.getState();if(n!==G.IDLE&&n!==G.LOADING)return;e++;let r=X(t,U.CHANGE,()=>{let o=t.getState();(o==G.LOADED||o==G.ERROR||o==G.EMPTY)&&(se(r),e--,e===0&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(r)}),e===0?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:t}){t.getState()==G.IDLE&&t.load()})}unlistenSources_(){this.sourcesListenerKeys_.forEach(se),this.sourcesListenerKeys_=null}},LB=Om;var Um=class extends uc{constructor(e){let t=e.projection===void 0?"EPSG:3857":e.projection,n=e.tileGrid;n===void 0&&t&&(n=lc({extent:hs(t),maxResolution:e.maxResolution,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize})),super({cacheSize:.1,attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,projection:t,tileGrid:n,state:e.state,wrapX:e.wrapX,transition:e.transition,interpolate:e.interpolate,key:e.key,zDirection:e.zDirection}),this.gutter_=e.gutter!==void 0?e.gutter:0,this.tileSize_=e.tileSize?_e(e.tileSize):null,this.tileSizes_=null,this.tileLoadingKeys_={},this.loader_=e.loader,this.handleTileChange_=this.handleTileChange_.bind(this),this.bandCount=e.bandCount===void 0?4:e.bandCount,this.tileGridForProjection_={},this.crossOrigin_=e.crossOrigin||"anonymous",this.transformMatrix=null}setTileSizes(e){this.tileSizes_=e}getTileSize(e){if(this.tileSizes_)return this.tileSizes_[e];if(this.tileSize_)return this.tileSize_;let t=this.getTileGrid();return t?_e(t.getTileSize(e)):[256,256]}getGutterForProjection(e){let t=this.getProjection();return(!t||Oi(t,e))&&!this.transformMatrix?this.gutter_:0}setLoader(e){this.loader_=e}getReprojTile_(e,t,n,r,o){let s=this.tileGrid||this.getTileGridForProjection(o||r),a=Math.max.apply(null,s.getResolutions().map((f,g)=>{let m=_e(s.getTileSize(g)),d=this.getTileSize(g);return Math.max(d[0]/m[0],d[1]/m[1])})),A=this.getTileGridForProjection(r),l=[e,t,n],c=this.getTileCoordForTileUrlFunction(l,r),h=Object.assign({sourceProj:o||r,sourceTileGrid:s,targetProj:r,targetTileGrid:A,tileCoord:l,wrappedTileCoord:c,pixelRatio:a,gutter:this.gutter_,getTileFunction:(f,g,m,d)=>this.getTile(f,g,m,d),transformMatrix:this.transformMatrix},this.tileOptions),u=new LB(h);return u.key=this.getKey(),u}getTile(e,t,n,r,o){let s=this.getProjection();if(o&&(s&&!Oi(s,o)||this.transformMatrix))return this.getReprojTile_(e,t,n,o,s);let a=this.getTileSize(e),A=this.loader_,l=new AbortController,c={signal:l.signal,crossOrigin:this.crossOrigin_},h=this.getTileCoordForTileUrlFunction([e,t,n]);if(!h)return null;let u=h[0],f=h[1],g=h[2],m=this.getTileGrid()?.getFullTileRange(u);m&&(c.maxY=m.getHeight()-1);function d(){return TA(function(){return A(u,f,g,c)})}let E=Object.assign({tileCoord:[e,t,n],loader:d,size:a,controller:l},this.tileOptions),p=new kn(E);return p.key=this.getKey(),p.addEventListener(U.CHANGE,this.handleTileChange_),p}handleTileChange_(e){let t=e.target,n=z(t),r=t.getState(),o;r==G.LOADING?(this.tileLoadingKeys_[n]=!0,o=mr.TILELOADSTART):n in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[n],o=r==G.ERROR?mr.TILELOADERROR:r==G.LOADED?mr.TILELOADEND:void 0),o&&this.dispatchEvent(new us(o,t))}getTileGridForProjection(e){let t=this.getProjection();if(this.tileGrid&&(!t||Oi(t,e))&&!this.transformMatrix)return this.tileGrid;let n=z(e);return n in this.tileGridForProjection_||(this.tileGridForProjection_[n]=cs(e)),this.tileGridForProjection_[n]}setTileGridForProjection(e,t){let n=fe(e);if(n){let r=z(n);r in this.tileGridForProjection_||(this.tileGridForProjection_[r]=t)}}},hh=Um;function kT(i){return((i.fileDirectory.NewSubfileType||0)&4)===4}function PT(i,e){if(!i)return!1;if(i===!0)return!0;if(e.getSamplesPerPixel()!==3)return!1;let t=e.fileDirectory.PhotometricInterpretation,n=yc.photometricInterpretations;return t===n.CMYK||t===n.YCbCr||t===n.CIELab||t===n.ICCLab}var MB="STATISTICS_MAXIMUM",kB="STATISTICS_MINIMUM",Ym=256,Hm;function NT(){return Hm||(Hm=new Rm),Hm}function GT(i){try{return i.getBoundingBox(!0)}catch{return[0,0,i.getWidth(),i.getHeight()]}}function OT(i){try{return i.getOrigin().slice(0,2)}catch{return[0,i.getHeight()]}}function UT(i,e){try{return i.getResolution(e)}catch{return[e.getWidth()/i.getWidth(),e.getHeight()/i.getHeight()]}}function YT(i){let e=i.geoKeys;if(!e)return null;if(e.ProjectedCSTypeGeoKey&&e.ProjectedCSTypeGeoKey!==32767){let t="EPSG:"+e.ProjectedCSTypeGeoKey,n=fe(t);if(!n){let r=Yh(e.ProjLinearUnitsGeoKey);r&&(n=new Gi({code:t,units:r}))}return n}if(e.GeographicTypeGeoKey&&e.GeographicTypeGeoKey!==32767){let t="EPSG:"+e.GeographicTypeGeoKey,n=fe(t);if(!n){let r=Yh(e.GeogAngularUnitsGeoKey);r&&(n=new Gi({code:t,units:r}))}return n}return null}function HT(i){return i.getImageCount().then(function(e){let t=new Array(e);for(let n=0;nt*i)throw new Error(n)}function KT(i){return i instanceof Int8Array?-128:i instanceof Int16Array?-32768:i instanceof Int32Array?-2147483648:i instanceof Float32Array?12e-39:0}function qT(i){return i instanceof Int8Array?127:i instanceof Uint8Array||i instanceof Uint8ClampedArray?255:i instanceof Int16Array?32767:i instanceof Uint16Array?65535:i instanceof Int32Array?2147483647:i instanceof Uint32Array?4294967295:i instanceof Float32Array?34e37:255}var uh=class extends hh{constructor(e){super({state:"loading",tileGrid:null,projection:e.projection||null,transition:e.transition,interpolate:e.interpolate!==!1,wrapX:e.wrapX}),this.sourceInfo_=e.sources;let t=this.sourceInfo_.length;this.sourceOptions_=e.sourceOptions,this.sourceImagery_=new Array(t),this.sourceMasks_=new Array(t),this.resolutionFactors_=new Array(t),this.samplesPerPixel_,this.nodataValues_,this.metadata_,this.normalize_=e.normalize!==!1,this.addAlpha_=!1,this.error_=null,this.convertToRGB_=e.convertToRGB||!1,this.setKey(this.sourceInfo_.map(o=>o.url).join(","));let n=this,r=new Array(t);for(let o=0;o=0;--n){let r=t[n],o=YT(r);if(o){this.projection=o;break}}}determineTransformMatrix(e){let t=e[0];for(let n=t.length-1;n>=0;--n){let o=t[n].fileDirectory.ModelTransformation;if(o){let[s,a,A,l,c,h,u,f]=o,g=$n($n([1/Math.sqrt(s*s+c*c),0,0,-1/Math.sqrt(a*a+h*h),l,f],[s,c,a,h,0,0]),[1,0,0,1,-l,-f]);this.transformMatrix=g,this.addAlpha_=!0;break}}}configure_(e){let t,n,r,o,s,a=new Array(e.length),A=new Array(e.length),l=new Array(e.length),c=0,h=e.length;for(let d=0;d{kT(Q)?p.push(Q):E.push(Q)});let _=E.length;if(p.length>0&&p.length!==_)throw new Error(`Expected one mask per image found ${p.length} masks and ${_} images`);let C,I,y=new Array(_),x=new Array(_),B=new Array(_);A[d]=new Array(_),l[d]=new Array(_);for(let Q=0;Q<_;++Q){let w=E[Q],v=w.getGDALNoData();l[d][Q]=w.getGDALMetadata(0),A[d][Q]=v;let R=this.sourceInfo_[d].bands;a[d]=R?R.length:w.getSamplesPerPixel();let F=_-(Q+1);C||(C=GT(w)),I||(I=OT(w));let D=UT(w,E[0]);B[F]=D[0];let S=[w.getTileWidth(),w.getTileHeight()];S[0]!==S[1]&&S[1]B.length&&(c=s.length-B.length);let Q=s[s.length-1]/B[B.length-1];this.resolutionFactors_[d]=Q;let w=B.map(R=>R*=Q),v=`Resolution mismatch for source ${d}, got [${w}] but expected [${s}]`;dA(s.slice(c,s.length),w,.02,v,this.viewRejector)}r?dA(r.slice(c,r.length),x,.01,`Tile size mismatch for source ${d}`,this.viewRejector):r=x,o?dA(o.slice(c,o.length),y,0,`Tile size mismatch for source ${d}`,this.viewRejector):o=y,this.sourceImagery_[d]=E.reverse(),this.sourceMasks_[d]=p.reverse()}for(let d=0,E=this.sourceImagery_.length;dye(d,p));m=PA(t,E)}this.viewResolver({showFullExtent:!0,projection:this.projection,resolutions:s,center:Fr(It(m),this.projection),extent:hi(m,this.projection),zoom:g})}loadTile_(e,t,n,r){let o=this.getTileSize(e),s=this.sourceImagery_.length,a=new Array(s*2),A=this.nodataValues_,l=this.sourceInfo_,c=NT();for(let h=0;h{let a=new Image;a.crossOrigin=r.crossOrigin??null,a.addEventListener("load",()=>o(a)),a.addEventListener("error",()=>s(VT)),a.src=cc(i,e,t,n,r.maxY)})}function NB(i){return function(e,t,n,r){let o=yC(i,e,t,n);return YB(o,e,t,n,r)}}function XT(i){return function(e,t,n,r){let o=i(e,t,n,r);return YB(o,e,t,n,r)}}function GB(i){let e;if(Array.isArray(i))e=NB(i);else if(typeof i=="string"){let t=hc(i);e=NB(t)}else if(typeof i=="function")e=XT(i);else throw new Error("The url option must be a single template, an array of templates, or a function for getting a URL");return e}var OB=0;function UB(i){return Array.isArray(i)?i.join(` -`):typeof i=="string"?i:(++OB,"url-function-key-"+OB)}var zm=class extends hh{constructor(e){e=e||{};let t=e.loader,n;e.url&&(t=GB(e.url),n=UB(e.url));let r=t?e.state:"loading",o=e.wrapX===void 0?!0:e.wrapX;super({loader:t,key:n,attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize,gutter:e.gutter,maxResolution:e.maxResolution,projection:e.projection,tileGrid:e.tileGrid,state:r,wrapX:o,transition:e.transition,interpolate:e.interpolate!==!1,crossOrigin:e.crossOrigin,zDirection:e.zDirection})}setUrl(e){let t=GB(e);this.setLoader(t),this.setKey(UB(e)),this.getState()!=="ready"&&this.setState("ready")}},HB=zm;var zB={OSM:SC,VectorSource:Xu,GeoTIFFSource:PB,GeoJSONSource:Xu,ImageTileSource:HB};var Km="units",JT=[1,2,5],mA=25.4/.28,qm=class extends At{constructor(e){e=e||{};let t=document.createElement("div");t.style.pointerEvents="none",super({element:t,render:e.render,target:e.target}),this.on,this.once,this.un;let n=e.className!==void 0?e.className:e.bar?"ol-scale-bar":"ol-scale-line";this.innerElement_=document.createElement("div"),this.innerElement_.className=n+"-inner",this.element.className=n+" "+gt,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=e.minWidth!==void 0?e.minWidth:64,this.maxWidth_=e.maxWidth,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",this.addChangeListener(Km,this.handleUnitsChanged_),this.setUnits(e.units||"metric"),this.scaleBar_=e.bar||!1,this.scaleBarSteps_=e.steps||4,this.scaleBarText_=e.text||!1,this.dpi_=e.dpi||void 0}getUnits(){return this.get(Km)}handleUnitsChanged_(){this.updateElement_()}setUnits(e){this.set(Km,e)}setDpi(e){this.dpi_=e}updateElement_(){let e=this.viewState_;if(!e){this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1);return}let t=e.center,n=e.projection,r=this.getUnits(),o=r=="degrees"?"degrees":"m",s=Fo(n,e.resolution,t,o),a=this.minWidth_*(this.dpi_||mA)/mA,A=this.maxWidth_!==void 0?this.maxWidth_*(this.dpi_||mA)/mA:void 0,l=a*s,c="";if(r=="degrees"){let _=yi.degrees;l*=_,l<_/60?(c="\u2033",s*=3600):l<_?(c="\u2032",s*=60):c="\xB0"}else if(r=="imperial")l<.9144?(c="in",s/=.0254):l<1609.344?(c="ft",s/=.3048):(c="mi",s/=1609.344);else if(r=="nautical")s/=1852,c="NM";else if(r=="metric")l<1e-6?(c="nm",s*=1e9):l<.001?(c="\u03BCm",s*=1e6):l<1?(c="mm",s*=1e3):l<1e3?c="m":(c="km",s/=1e3);else if(r=="us")l<.9144?(c="in",s*=39.37):l<1609.344?(c="ft",s/=.30480061):(c="mi",s/=1609.3472);else throw new Error("Invalid units");let h=3*Math.floor(Math.log(a*s)/Math.log(10)),u,f,g,m=0,d,E;for(;;){g=Math.floor(h/3);let _=Math.pow(10,g);if(u=JT[(h%3+3)%3]*_,f=Math.round(u/s),isNaN(f)){this.element.style.display="none",this.renderedVisible_=!1;return}if(A!==void 0&&f>=A){u=m,f=d,g=E;break}else if(f>=a)break;m=u,d=f,E=g,++h}let p=this.scaleBar_?this.createScaleBar(f,u,c):u.toFixed(g<0?-g:0)+" "+c;this.renderedHTML_!=p&&(this.innerElement_.innerHTML=p,this.renderedHTML_=p),this.renderedWidth_!=f&&(this.innerElement_.style.width=f+"px",this.renderedWidth_=f),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}createScaleBar(e,t,n){let r=this.getScaleForResolution(),o=r<1?Math.round(1/r).toLocaleString()+" : 1":"1 : "+Math.round(r).toLocaleString(),s=this.scaleBarSteps_,a=e/s,A=[this.createMarker("absolute")];for(let c=0;c
`+this.createMarker("relative")+(c%2===0||s===2?this.createStepText(c,e,!1,t,n):"")+"")}return A.push(this.createStepText(s,e,!0,t,n)),(this.scaleBarText_?`
`+o+"
":"")+A.join("")}createMarker(e){return`
`}createStepText(e,t,n,r,o){let a=(e===0?0:Math.round(r/this.scaleBarSteps_*e*100)/100)+(e===0?"":" "+o),A=e===0?-3:t/this.scaleBarSteps_*-1,l=e===0?0:t/this.scaleBarSteps_*2;return`
`+a+"
"}getScaleForResolution(){let e=Fo(this.viewState_.projection,this.viewState_.resolution,this.viewState_.center,"m"),t=this.dpi_||mA,n=1e3/25.4;return e*n*t}render(e){let t=e.frameState;t?this.viewState_=t.viewState:this.viewState_=null,this.updateElement_()}},KB=qm;var qB=["fullscreenchange","webkitfullscreenchange"],VB={ENTERFULLSCREEN:"enterfullscreen",LEAVEFULLSCREEN:"leavefullscreen"},Vm=class extends At{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target}),this.on,this.once,this.un,this.keys_=e.keys!==void 0?e.keys:!1,this.source_=e.source,this.isInFullscreen_=!1,this.boundHandleMapTargetChange_=this.handleMapTargetChange_.bind(this),this.cssClassName_=e.className!==void 0?e.className:"ol-full-screen",this.documentListeners_=[],this.activeClassName_=e.activeClassName!==void 0?e.activeClassName.split(" "):[this.cssClassName_+"-true"],this.inactiveClassName_=e.inactiveClassName!==void 0?e.inactiveClassName.split(" "):[this.cssClassName_+"-false"];let t=e.label!==void 0?e.label:"\u2922";this.labelNode_=typeof t=="string"?document.createTextNode(t):t;let n=e.labelActive!==void 0?e.labelActive:"\xD7";this.labelActiveNode_=typeof n=="string"?document.createTextNode(n):n;let r=e.tipLabel?e.tipLabel:"Toggle full-screen";this.button_=document.createElement("button"),this.button_.title=r,this.button_.setAttribute("type","button"),this.button_.appendChild(this.labelNode_),this.button_.addEventListener(U.CLICK,this.handleClick_.bind(this),!1),this.setClassName_(this.button_,this.isInFullscreen_),this.element.className=`${this.cssClassName_} ${gt} ${fi}`,this.element.appendChild(this.button_)}handleClick_(e){e.preventDefault(),this.handleFullScreen_()}handleFullScreen_(){let e=this.getMap();if(!e)return;let t=e.getOwnerDocument();if(XB(t))if(JB(t))WT(t);else{let n;this.source_?n=typeof this.source_=="string"?t.getElementById(this.source_):this.source_:n=e.getTargetElement(),this.keys_?jT(n):jB(n)}}handleFullScreenChange_(){let e=this.getMap();if(!e)return;let t=this.isInFullscreen_;this.isInFullscreen_=JB(e.getOwnerDocument()),t!==this.isInFullscreen_&&(this.setClassName_(this.button_,this.isInFullscreen_),this.isInFullscreen_?(wn(this.labelActiveNode_,this.labelNode_),this.dispatchEvent(VB.ENTERFULLSCREEN)):(wn(this.labelNode_,this.labelActiveNode_),this.dispatchEvent(VB.LEAVEFULLSCREEN)),e.updateSize())}setClassName_(e,t){t?(e.classList.remove(...this.inactiveClassName_),e.classList.add(...this.activeClassName_)):(e.classList.remove(...this.activeClassName_),e.classList.add(...this.inactiveClassName_))}setMap(e){let t=this.getMap();t&&t.removeChangeListener(Le.TARGET,this.boundHandleMapTargetChange_),super.setMap(e),this.handleMapTargetChange_(),e&&e.addChangeListener(Le.TARGET,this.boundHandleMapTargetChange_)}handleMapTargetChange_(){let e=this.documentListeners_;for(let n=0,r=e.length;nn?(this.direction_=pA.HORIZONTAL,this.widthLimit_=t-a):(this.direction_=pA.VERTICAL,this.heightLimit_=n-A),this.sliderInitialized_=!0}handleContainerClick_(e){let t=this.getMap().getView(),n=this.getRelativePosition_(e.offsetX-this.thumbSize_[0]/2,e.offsetY-this.thumbSize_[1]/2),r=this.getResolutionForPosition_(n),o=t.getConstrainedZoom(t.getZoomForResolution(r));t.animateInternal({zoom:o,duration:this.duration_,easing:Ht})}handleDraggerStart_(e){if(!this.dragging_&&e.target===this.element.firstElementChild){let t=this.element.firstElementChild;if(this.getMap().getView().beginInteraction(),this.startX_=e.clientX-parseFloat(t.style.left),this.startY_=e.clientY-parseFloat(t.style.top),this.dragging_=!0,this.dragListenerKeys_.length===0){let n=this.handleDraggerDrag_,r=this.handleDraggerEnd_,o=this.getMap().getOwnerDocument();this.dragListenerKeys_.push(X(o,zt.POINTERMOVE,n,this),X(o,zt.POINTERUP,r,this))}}}handleDraggerDrag_(e){if(this.dragging_){let t=e.clientX-this.startX_,n=e.clientY-this.startY_,r=this.getRelativePosition_(t,n);this.currentResolution_=this.getResolutionForPosition_(r),this.getMap().getView().setResolution(this.currentResolution_)}}handleDraggerEnd_(e){this.dragging_&&(this.getMap().getView().endInteraction(),this.dragging_=!1,this.startX_=void 0,this.startY_=void 0,this.dragListenerKeys_.forEach(se),this.dragListenerKeys_.length=0)}setThumbPosition_(e){let t=this.getPositionForResolution_(e),n=this.element.firstElementChild;this.direction_==pA.HORIZONTAL?n.style.left=this.widthLimit_*t+"px":n.style.top=this.heightLimit_*t+"px"}getRelativePosition_(e,t){let n;return this.direction_===pA.HORIZONTAL?n=e/this.widthLimit_:n=t/this.heightLimit_,ue(n,0,1)}getResolutionForPosition_(e){return this.getMap().getView().getResolutionForValueFunction()(1-e)}getPositionForResolution_(e){let t=this.getMap().getView().getValueForResolutionFunction();return ue(1-t(e),0,1)}render(e){if(!e.frameState||!this.sliderInitialized_&&!this.initSlider_())return;let t=e.frameState.viewState.resolution;this.currentResolution_=t,this.setThumbPosition_(t)}},ZB=Xm;var Jm="projection",$B="coordinateFormat",jm=class extends At{constructor(e){e=e||{};let t=document.createElement("div");t.className=e.className!==void 0?e.className:"ol-mouse-position",super({element:t,render:e.render,target:e.target}),this.on,this.once,this.un,this.addChangeListener(Jm,this.handleProjectionChanged_),e.coordinateFormat&&this.setCoordinateFormat(e.coordinateFormat),e.projection&&this.setProjection(e.projection),this.renderOnMouseOut_=e.placeholder!==void 0,this.placeholder_=this.renderOnMouseOut_?e.placeholder:" ",this.renderedHTML_=t.innerHTML,this.mapProjection_=null,this.transform_=null,this.wrapX_=e.wrapX!==!1}handleProjectionChanged_(){this.transform_=null}getCoordinateFormat(){return this.get($B)}getProjection(){return this.get(Jm)}handleMouseMove(e){let t=this.getMap();this.updateHTML_(t.getEventPixel(e))}handleMouseOut(e){this.updateHTML_(null)}setMap(e){if(super.setMap(e),e){let t=e.getViewport();this.listenerKeys.push(X(t,zt.POINTERMOVE,this.handleMouseMove,this)),this.renderOnMouseOut_&&this.listenerKeys.push(X(t,zt.POINTEROUT,this.handleMouseOut,this)),this.updateHTML_(null)}}setCoordinateFormat(e){this.set($B,e)}setProjection(e){this.set(Jm,fe(e))}updateHTML_(e){let t=this.placeholder_;if(e&&this.mapProjection_){if(!this.transform_){let o=this.getProjection();o?this.transform_=li(this.mapProjection_,o):this.transform_=nE}let r=this.getMap().getCoordinateFromPixelInternal(e);if(r){let o=ci();if(o&&(this.transform_=li(this.mapProjection_,o)),this.transform_(r,r),this.wrapX_){let a=o||this.getProjection()||this.mapProjection_;Ro(r,a)}let s=this.getCoordinateFormat();s?t=s(r):t=r.toString()}}(!this.renderedHTML_||t!==this.renderedHTML_)&&(this.element.innerHTML=t,this.renderedHTML_=t)}render(e){let t=e.frameState;t?this.mapProjection_!=t.viewState.projection&&(this.mapProjection_=t.viewState.projection,this.transform_=null):this.mapProjection_=null}},ex=jm;var fh=.75,EA=.1,Wm=class extends At{constructor(e){e=e||{},super({element:document.createElement("div"),render:e.render,target:e.target}),this.boundHandleRotationChanged_=this.handleRotationChanged_.bind(this),this.collapsed_=e.collapsed!==void 0?e.collapsed:!0,this.collapsible_=e.collapsible!==void 0?e.collapsible:!0,this.collapsible_||(this.collapsed_=!1),this.rotateWithView_=e.rotateWithView!==void 0?e.rotateWithView:!1,this.viewExtent_=void 0;let t=e.className!==void 0?e.className:"ol-overviewmap",n=e.tipLabel!==void 0?e.tipLabel:"Overview map",r=e.collapseLabel!==void 0?e.collapseLabel:"\u2039";typeof r=="string"?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=r):this.collapseLabel_=r;let o=e.label!==void 0?e.label:"\u203A";typeof o=="string"?(this.label_=document.createElement("span"),this.label_.textContent=o):this.label_=o;let s=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_,a=document.createElement("button");a.setAttribute("type","button"),a.title=n,a.appendChild(s),a.addEventListener(U.CLICK,this.handleClick_.bind(this),!1),this.ovmapDiv_=document.createElement("div"),this.ovmapDiv_.className="ol-overviewmap-map",this.view_=e.view;let A=new Da({view:e.view,controls:new st,interactions:new st});this.ovmap_=A,e.layers&&e.layers.forEach(function(E){A.addLayer(E)});let l=document.createElement("div");l.className="ol-overviewmap-box",l.style.boxSizing="border-box",this.boxOverlay_=new Yl({position:[0,0],positioning:"center-center",element:l}),this.ovmap_.addOverlay(this.boxOverlay_);let c=t+" "+gt+" "+fi+(this.collapsed_&&this.collapsible_?" "+Go:"")+(this.collapsible_?"":" ol-uncollapsible"),h=this.element;h.className=c,h.appendChild(this.ovmapDiv_),h.appendChild(a);let u=this.boxOverlay_,f=this.boxOverlay_.getElement(),g=E=>({clientX:E.clientX,clientY:E.clientY}),m=function(E){let p=g(E),_=A.getEventCoordinate(p);u.setPosition(_)},d=E=>{let p=A.getEventCoordinateInternal(E),_=this.getMap();_.getView().setCenterInternal(p);let C=_.getOwnerDocument();C.removeEventListener("pointermove",m),C.removeEventListener("pointerup",d)};this.ovmapDiv_.addEventListener("pointerdown",E=>{let p=this.getMap().getOwnerDocument();E.target===f&&p.addEventListener("pointermove",m),p.addEventListener("pointerup",d)})}setMap(e){let t=this.getMap();if(e!==t){if(t){let n=t.getView();n&&this.unbindView_(n),this.ovmap_.setTarget(null)}if(super.setMap(e),e){this.ovmap_.setTarget(this.ovmapDiv_),this.listenerKeys.push(X(e,Vt.PROPERTYCHANGE,this.handleMapPropertyChange_,this));let n=e.getView();n&&this.bindView_(n),this.ovmap_.isRendered()||this.updateBoxAfterOvmapIsRendered_()}}}handleMapPropertyChange_(e){if(e.key===Le.VIEW){let t=e.oldValue;t&&this.unbindView_(t);let n=this.getMap().getView();this.bindView_(n)}else!this.ovmap_.isRendered()&&(e.key===Le.TARGET||e.key===Le.SIZE)&&this.ovmap_.updateSize()}bindView_(e){if(!this.view_){let t=new yt({projection:e.getProjection()});this.ovmap_.setView(t)}e.addChangeListener(St.ROTATION,this.boundHandleRotationChanged_),this.handleRotationChanged_(),e.isDef()&&(this.ovmap_.updateSize(),this.resetExtent_())}unbindView_(e){e.removeChangeListener(St.ROTATION,this.boundHandleRotationChanged_)}handleRotationChanged_(){this.rotateWithView_&&this.ovmap_.getView().setRotation(this.getMap().getView().getRotation())}validateExtent_(){let e=this.getMap(),t=this.ovmap_;if(!e.isRendered()||!t.isRendered())return;let n=e.getSize(),o=e.getView().calculateExtentInternal(n);if(this.viewExtent_&&jt(o,this.viewExtent_))return;this.viewExtent_=o;let s=t.getSize(),A=t.getView().calculateExtentInternal(s),l=t.getPixelFromCoordinateInternal(ht(o)),c=t.getPixelFromCoordinateInternal(Wn(o)),h=Math.abs(l[0]-c[0]),u=Math.abs(l[1]-c[1]),f=s[0],g=s[1];hf*fh||u>g*fh?this.resetExtent_():Ii(A,o)||this.recenter_()}resetExtent_(){if(fh===0||EA===0)return;let e=this.getMap(),t=this.ovmap_,n=e.getSize(),o=e.getView().calculateExtentInternal(n),s=t.getView(),a=Math.log(fh/EA)/Math.LN2,A=1/(Math.pow(2,a/2)*EA);bp(o,A),s.fitInternal(ra(o))}recenter_(){let e=this.getMap(),t=this.ovmap_,n=e.getView();t.getView().setCenterInternal(n.getCenterInternal())}updateBox_(){let e=this.getMap(),t=this.ovmap_;if(!e.isRendered()||!t.isRendered())return;let n=e.getSize(),r=e.getView(),o=t.getView(),s=this.rotateWithView_?0:-r.getRotation(),a=this.boxOverlay_,A=this.boxOverlay_.getElement(),l=r.getCenter(),c=r.getResolution(),h=o.getResolution(),u=n[0]*c/h,f=n[1]*c/h;if(a.setPosition(l),A){A.style.width=u+"px",A.style.height=f+"px";let g="rotate("+s+"rad)";A.style.transform=g}}updateBoxAfterOvmapIsRendered_(){this.ovmapPostrenderKey_||(this.ovmapPostrenderKey_=Xn(this.ovmap_,Kt.POSTRENDER,e=>{delete this.ovmapPostrenderKey_,this.updateBox_()}))}handleClick_(e){e.preventDefault(),this.handleToggle_()}handleToggle_(){this.element.classList.toggle(Go),this.collapsed_?wn(this.collapseLabel_,this.label_):wn(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;let e=this.ovmap_;if(!this.collapsed_){if(e.isRendered()){this.viewExtent_=void 0,e.render();return}e.updateSize(),this.resetExtent_(),this.updateBoxAfterOvmapIsRendered_()}}getCollapsible(){return this.collapsible_}setCollapsible(e){this.collapsible_!==e&&(this.collapsible_=e,this.element.classList.toggle("ol-uncollapsible"),!e&&this.collapsed_&&this.handleToggle_())}setCollapsed(e){!this.collapsible_||this.collapsed_===e||this.handleToggle_()}getCollapsed(){return this.collapsed_}getRotateWithView(){return this.rotateWithView_}setRotateWithView(e){this.rotateWithView_!==e&&(this.rotateWithView_=e,this.getMap().getView().getRotation()!==0&&(this.rotateWithView_?this.handleRotationChanged_():this.ovmap_.getView().setRotation(0),this.viewExtent_=void 0,this.validateExtent_(),this.updateBox_()))}getOverviewMap(){return this.ovmap_}render(e){this.validateExtent_(),this.updateBox_()}},tx=Wm;var gh=class extends At{constructor(e){let t=document.createElement("div");t.className="ol-control ol-unselectable info-box",t.style.cssText=e.cssText||"top: 65px; left: .5em; padding: 5px;",t.innerHTML=e.html,super({element:t,target:e.target})}};var ix={ScaleLineControl:KB,FullScreenControl:WB,ZoomSliderControl:ZB,MousePositionControl:ex,OverviewMapControl:tx,InfoBox:gh};var ep="http://www.w3.org/2001/XMLSchema-instance";function bs(i,e){return IA().createElementNS(i,e)}function Fi(i,e){return nx(i,e,[]).join("")}function nx(i,e,t){if(i.nodeType==Node.CDATA_SECTION_NODE||i.nodeType==Node.TEXT_NODE)e?t.push(String(i.nodeValue).replace(/(\r\n|\r|\n)/g,"")):t.push(i.nodeValue);else{let n;for(n=i.firstChild;n;n=n.nextSibling)nx(n,e,t)}return t}function ln(i){return"documentElement"in i}function cn(i){return new DOMParser().parseFromString(i,"application/xml")}function tp(i,e){return function(t,n){let r=i.call(e??this,t,n);if(r!==void 0){let o=n[n.length-1];he(o,r)}}}function Kn(i,e){return function(t,n){let r=i.call(e??this,t,n);r!==void 0&&n[n.length-1].push(r)}}function dh(i,e){return function(t,n){let r=i.call(e??this,t,n);r!==void 0&&(n[n.length-1]=r)}}function V(i,e,t){return function(n,r){let o=i.call(t??this,n,r);if(o!==void 0){let s=r[r.length-1],a=e!==void 0?e:n.localName;s[a]=o}}}function te(i,e){return function(t,n,r){i.call(e??this,t,n,r),r[r.length-1].node.appendChild(t)}}function hn(i,e){return function(t,n,r){let s=n[n.length-1].node,a=i;a===void 0&&(a=r);let A=e!==void 0?e:s.namespaceURI;return bs(A,a)}}var ii=hn();function pi(i,e){let t=e.length,n=new Array(t);for(let r=0;r0?n[0]:null}readFeatureFromNode(e,t){return null}readFeatures(e,t){if(!e)return[];if(typeof e=="string"){let n=cn(e);return this.readFeaturesFromDocument(n,t)}return ln(e)?this.readFeaturesFromDocument(e,t):this.readFeaturesFromNode(e,t)}readFeaturesFromDocument(e,t){let n=[];for(let r=e.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&he(n,this.readFeaturesFromNode(r,t));return n}readFeaturesFromNode(e,t){return J()}readGeometry(e,t){if(!e)return null;if(typeof e=="string"){let n=cn(e);return this.readGeometryFromDocument(n,t)}return ln(e)?this.readGeometryFromDocument(e,t):this.readGeometryFromNode(e,t)}readGeometryFromDocument(e,t){return null}readGeometryFromNode(e,t){return null}readProjection(e){if(!e)return null;if(typeof e=="string"){let t=cn(e);return this.readProjectionFromDocument(t)}return ln(e)?this.readProjectionFromDocument(e):this.readProjectionFromNode(e)}readProjectionFromDocument(e){return this.dataProjection}readProjectionFromNode(e){return this.dataProjection}writeFeature(e,t){let n=this.writeFeatureNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeFeatureNode(e,t){return null}writeFeatures(e,t){let n=this.writeFeaturesNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeFeaturesNode(e,t){return null}writeGeometry(e,t){let n=this.writeGeometryNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeGeometryNode(e,t){return null}},ox=ip;function qn(i){let e=Fi(i,!1);return $T(e)}function $T(i){let e=/^\s*(true|1)|(false|0)\s*$/.exec(i);if(e)return e[1]!==void 0||!1}function ke(i){let e=Fi(i,!1);return eD(e)}function eD(i){let e=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*$/i.exec(i);if(e)return parseFloat(e[1])}function pt(i){return Fi(i,!1).trim()}function ho(i,e){ni(i,e?"1":"0")}function tD(i,e){i.appendChild(IA().createCDATASection(e))}function Sr(i,e){let t=e.toPrecision();i.appendChild(IA().createTextNode(t))}var iD=/^\s/,nD=/\s$/,rD=/(\n|\t|\r|<|&| {2})/;function ni(i,e){typeof e=="string"&&(iD.test(e)||nD.test(e)||rD.test(e))?e.split("]]>").forEach((t,n,r)=>{n0&&(t=">"+t),tD(i,t)}):i.appendChild(IA().createTextNode(e))}var Vn=["http://www.google.com/kml/ext/2.2"],W=[null,"http://earth.google.com/kml/2.0","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.2","http://www.opengis.net/kml/2.2"],oD="http://www.opengis.net/kml/2.2 https://developers.google.com/kml/schema/kml22gx.xsd",sx={fraction:"fraction",pixels:"pixels",insetPixels:"pixels"},sD=Z(W,{ExtendedData:Qx,Region:Sx,MultiGeometry:V(Bx,"geometry"),LineString:V(_x,"geometry"),LinearRing:V(yx,"geometry"),Point:V(xx,"geometry"),Polygon:V(wx,"geometry"),Style:V(fp),StyleMap:YD,address:V(pt),description:V(pt),name:V(pt),open:V(qn),phoneNumber:V(pt),styleUrl:V(mx),visibility:V(qn)},Z(Vn,{MultiTrack:V(vD,"geometry"),Track:V(Cx,"geometry")})),aD=Z(W,{ExtendedData:Qx,Region:Sx,Link:e2,address:V(pt),description:V(pt),name:V(pt),open:V(qn),phoneNumber:V(pt),visibility:V(qn)}),AD=Z(W,{href:V(dx)}),lD=Z(W,{Altitude:V(ke),Longitude:V(ke),Latitude:V(ke),Tilt:V(ke),AltitudeMode:V(pt),Heading:V(ke),Roll:V(ke)}),ux=Z(W,{LatLonAltBox:VD,Lod:JD}),cD=Z(W,["Document","Placemark"]),hD=Z(W,{Document:te(A2),Placemark:te(Tx)}),Fs,ph=null;var op,CA,_A,yA,Ih,sp=null;var hp,ap=null;var Ap,uo=null;var ax=null;var lp=null;function Ch(i){return 32/Math.min(i[0],i[1])}function uD(){Fs=[255,255,255,1],ph=new qi({color:Fs}),op=[20,2],CA="pixels",_A="pixels",yA=[64,64],Ih="https://maps.google.com/mapfiles/kml/pushpin/ylw-pushpin.png",sp=new lr({anchor:op,anchorOrigin:"bottom-left",anchorXUnits:CA,anchorYUnits:_A,crossOrigin:"anonymous",rotation:0,scale:Ch(yA),size:yA,src:Ih}),hp="NO_IMAGE",ap=new sr({color:Fs,width:1}),Ap=new sr({color:[51,51,51,1],width:2}),uo=new ma({font:"bold 16px Helvetica",fill:ph,stroke:Ap,scale:.8}),ax=new $t({fill:ph,image:sp,text:uo,stroke:ap,zIndex:0}),lp=[ax]}var mh;function fD(i){return i}var cp=class extends ox{constructor(e){super(),e=e||{},lp||uD(),this.dataProjection=fe("EPSG:4326"),this.defaultStyle_=e.defaultStyle?e.defaultStyle:lp,this.extractStyles_=e.extractStyles!==void 0?e.extractStyles:!0,this.writeStyles_=e.writeStyles!==void 0?e.writeStyles:!0,this.sharedStyles_={},this.showPointNames_=e.showPointNames!==void 0?e.showPointNames:!0,this.crossOrigin_=e.crossOrigin!==void 0?e.crossOrigin:"anonymous",this.iconUrlFunction_=e.iconUrlFunction?e.iconUrlFunction:fD,this.supportedMediaTypes=["application/vnd.google-earth.kml+xml"]}readDocumentOrFolder_(e,t){let n=Z(W,{Document:tp(this.readDocumentOrFolder_,this),Folder:tp(this.readDocumentOrFolder_,this),Placemark:Kn(this.readPlacemark_,this),Style:this.readSharedStyle_.bind(this),StyleMap:this.readSharedStyleMap_.bind(this)}),r=Re([],n,e,t,this);if(r)return r}readPlacemark_(e,t){let n=Re({geometry:null},sD,e,t,this);if(!n)return;let r=new Co,o=e.getAttribute("id");o!==null&&r.setId(o);let s=t[0],a=n.geometry;if(a&&Jr(a,!1,s),r.setGeometry(a),delete n.geometry,this.extractStyles_){let A=n.Style,l=n.styleUrl,c=dD(A,l,this.defaultStyle_,this.sharedStyles_,this.showPointNames_);r.setStyle(c)}return delete n.Style,r.setProperties(n,!0),r}readSharedStyle_(e,t){let n=e.getAttribute("id");if(n!==null){let r=fp.call(this,e,t);if(r){let o,s=e.baseURI;(!s||s=="about:blank")&&(s=window.location.href),s?o=new URL("#"+n,s).href:o="#"+n,this.sharedStyles_[o]=r}}}readSharedStyleMap_(e,t){let n=e.getAttribute("id");if(n===null)return;let r=Ex.call(this,e,t);if(!r)return;let o,s=e.baseURI;(!s||s=="about:blank")&&(s=window.location.href),s?o=new URL("#"+n,s).href:o="#"+n,this.sharedStyles_[o]=r}readFeatureFromNode(e,t){if(!W.includes(e.namespaceURI))return null;let n=this.readPlacemark_(e,[this.getReadOptions(e,t)]);return n||null}readFeaturesFromNode(e,t){if(!W.includes(e.namespaceURI))return[];let n,r=e.localName;if(r=="Document"||r=="Folder")return n=this.readDocumentOrFolder_(e,[this.getReadOptions(e,t)]),n||[];if(r=="Placemark"){let o=this.readPlacemark_(e,[this.getReadOptions(e,t)]);return o?[o]:[]}if(r=="kml"){n=[];for(let o=e.firstElementChild;o;o=o.nextElementSibling){let s=this.readFeaturesFromNode(o,t);s&&he(n,s)}return n}return[]}readName(e){if(e){if(typeof e=="string"){let t=cn(e);return this.readNameFromDocument(t)}return ln(e)?this.readNameFromDocument(e):this.readNameFromNode(e)}}readNameFromDocument(e){for(let t=e.firstChild;t;t=t.nextSibling)if(t.nodeType==Node.ELEMENT_NODE){let n=this.readNameFromNode(t);if(n)return n}}readNameFromNode(e){for(let t=e.firstElementChild;t;t=t.nextElementSibling)if(W.includes(t.namespaceURI)&&t.localName=="name")return pt(t);for(let t=e.firstElementChild;t;t=t.nextElementSibling){let n=t.localName;if(W.includes(t.namespaceURI)&&(n=="Document"||n=="Folder"||n=="Placemark"||n=="kml")){let r=this.readNameFromNode(t);if(r)return r}}}readNetworkLinks(e){let t=[];if(typeof e=="string"){let n=cn(e);he(t,this.readNetworkLinksFromDocument(n))}else ln(e)?he(t,this.readNetworkLinksFromDocument(e)):he(t,this.readNetworkLinksFromNode(e));return t}readNetworkLinksFromDocument(e){let t=[];for(let n=e.firstChild;n;n=n.nextSibling)n.nodeType==Node.ELEMENT_NODE&&he(t,this.readNetworkLinksFromNode(n));return t}readNetworkLinksFromNode(e){let t=[];for(let n=e.firstElementChild;n;n=n.nextElementSibling)if(W.includes(n.namespaceURI)&&n.localName=="NetworkLink"){let r=Re({},aD,n,[]);t.push(r)}for(let n=e.firstElementChild;n;n=n.nextElementSibling){let r=n.localName;W.includes(n.namespaceURI)&&(r=="Document"||r=="Folder"||r=="kml")&&he(t,this.readNetworkLinksFromNode(n))}return t}readRegion(e){let t=[];if(typeof e=="string"){let n=cn(e);he(t,this.readRegionFromDocument(n))}else ln(e)?he(t,this.readRegionFromDocument(e)):he(t,this.readRegionFromNode(e));return t}readRegionFromDocument(e){let t=[];for(let n=e.firstChild;n;n=n.nextSibling)n.nodeType==Node.ELEMENT_NODE&&he(t,this.readRegionFromNode(n));return t}readRegionFromNode(e){let t=[];for(let n=e.firstElementChild;n;n=n.nextElementSibling)if(W.includes(n.namespaceURI)&&n.localName=="Region"){let r=Re({},ux,n,[]);t.push(r)}for(let n=e.firstElementChild;n;n=n.nextElementSibling){let r=n.localName;W.includes(n.namespaceURI)&&(r=="Document"||r=="Folder"||r=="kml")&&he(t,this.readRegionFromNode(n))}return t}readCamera(e){let t=[];if(typeof e=="string"){let n=cn(e);he(t,this.readCameraFromDocument(n))}else ln(e)?he(t,this.readCameraFromDocument(e)):he(t,this.readCameraFromNode(e));return t}readCameraFromDocument(e){let t=[];for(let n=e.firstChild;n;n=n.nextSibling)n.nodeType===Node.ELEMENT_NODE&&he(t,this.readCameraFromNode(n));return t}readCameraFromNode(e){let t=[];for(let n=e.firstElementChild;n;n=n.nextElementSibling)if(W.includes(n.namespaceURI)&&n.localName==="Camera"){let r=Re({},lD,n,[]);t.push(r)}for(let n=e.firstElementChild;n;n=n.nextElementSibling){let r=n.localName;W.includes(n.namespaceURI)&&(r==="Document"||r==="Folder"||r==="Placemark"||r==="kml")&&he(t,this.readCameraFromNode(n))}return t}writeFeaturesNode(e,t){t=this.adaptOptions(t);let n=bs(W[4],"kml"),r="http://www.w3.org/2000/xmlns/";n.setAttributeNS(r,"xmlns:gx",Vn[0]),n.setAttributeNS(r,"xmlns:xsi",ep),n.setAttributeNS(ep,"xsi:schemaLocation",oD);let o={node:n},s={};e.length>1?s.Document=e:e.length==1&&(s.Placemark=e[0]);let a=cD[n.namespaceURI],A=pi(s,a);return qe(o,hD,ii,A,[t],a,this),n}};function gD(i,e){let t=[0,0],n="start",r=i.getImage();if(r){let a=r.getSize();if(a&&a.length==2){let A=r.getScaleArray(),l=r.getAnchor();t[0]=A[0]*(a[0]-l[0]),t[1]=A[1]*(a[1]/2-l[1]),n="left"}}let o=i.getText();return o?(o=o.clone(),o.setFont(o.getFont()||uo.getFont()),o.setScale(o.getScale()||uo.getScale()),o.setFill(o.getFill()||uo.getFill()),o.setStroke(o.getStroke()||Ap)):o=uo.clone(),o.setText(e),o.setOffsetX(t[0]),o.setOffsetY(t[1]),o.setTextAlign(n),new $t({image:r,text:o})}function dD(i,e,t,n,r){return function(o,s){let a=r,A="",l=[];if(a){let h=o.getGeometry();if(h)if(h instanceof Si)l=h.getGeometriesArrayRecursive().filter(function(u){let f=u.getType();return f==="Point"||f==="MultiPoint"}),a=l.length>0;else{let u=h.getType();a=u==="Point"||u==="MultiPoint"}}a&&(A=o.get("name"),a=a&&!!A,a&&/&[^&]+;/.test(A)&&(mh||(mh=document.createElement("textarea")),mh.innerHTML=A,A=mh.value));let c=t;if(i?c=i:e&&(c=fx(e,t,n)),a){let h=gD(c[0],A);if(l.length>0){h.setGeometry(new Si(l));let u=new $t({geometry:c[0].getGeometry(),image:null,fill:c[0].getFill(),stroke:c[0].getStroke(),text:null});return[h,u].concat(c.slice(1))}return h}return c}}function fx(i,e,t){return Array.isArray(i)?i:typeof i=="string"?fx(t[i],e,t):e}function _h(i){let e=Fi(i,!1),t=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(t){let n=t[1];return[parseInt(n.substr(6,2),16),parseInt(n.substr(4,2),16),parseInt(n.substr(2,2),16),parseInt(n.substr(0,2),16)/255]}}function gx(i){let e=Fi(i,!1),t=[];e=e.replace(/\s*,\s*/g,",");let n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?),([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|,|$)(?:([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|$))?\s*/i,r;for(;r=n.exec(e);){let o=parseFloat(r[1]),s=parseFloat(r[2]),a=r[3]?parseFloat(r[3]):0;t.push(o,s,a),e=e.substr(r[0].length)}if(e==="")return t}function dx(i){let e=Fi(i,!1).trim(),t=i.baseURI;return(!t||t=="about:blank")&&(t=window.location.href),t?new URL(e,t).href:e}function mx(i){let e=Fi(i,!1).trim().replace(/^(?!.*#)/,"#"),t=i.baseURI;return(!t||t=="about:blank")&&(t=window.location.href),t?new URL(e,t).href:e}function mD(i){let e=i.getAttribute("xunits"),t=i.getAttribute("yunits"),n;return e!=="insetPixels"?t!=="insetPixels"?n="bottom-left":n="top-left":t!=="insetPixels"?n="bottom-right":n="top-right",{x:parseFloat(i.getAttribute("x")),xunits:sx[e],y:parseFloat(i.getAttribute("y")),yunits:sx[t],origin:n}}function px(i){return ke(i)}var pD=Z(W,{Pair:UD});function Ex(i,e){return Re(void 0,pD,i,e,this)}var ED=Z(W,{Icon:V(bD),color:V(_h),heading:V(ke),hotSpot:V(mD),scale:V(px)});function ID(i,e){let t=Re({},ED,i,e);if(!t)return;let n=e[e.length-1],r="Icon"in t?t.Icon:{},o=!("Icon"in t)||Object.keys(r).length>0,s,a=r.href;a?s=a:o&&(s=Ih);let A,l,c,h="bottom-left",u=t.hotSpot;u?(A=[u.x,u.y],l=u.xunits,c=u.yunits,h=u.origin):/^https?:\/\/maps\.(?:google|gstatic)\.com\//.test(s)&&(s.includes("pushpin")?(A=op,l=CA,c=_A):s.includes("arrow-reverse")?(A=[54,42],l=CA,c=_A):s.includes("paddle")&&(A=[32,1],l=CA,c=_A));let f,g=r.x,m=r.y;g!==void 0&&m!==void 0&&(f=[g,m]);let d,E=r.w,p=r.h;E!==void 0&&p!==void 0&&(d=[E,p]);let _,C=t.heading;C!==void 0&&(_=Wt(C));let I=t.scale,y=t.color;if(o){s==Ih&&(d=yA);let x=new lr({anchor:A,anchorOrigin:h,anchorXUnits:l,anchorYUnits:c,crossOrigin:this.crossOrigin_,offset:f,offsetOrigin:"bottom-left",rotation:_,scale:I,size:d,src:this.iconUrlFunction_(s),color:y}),B=x.getScaleArray()[0],Q=x.getSize();if(Q===null){let w=x.getImageState();if(w===ee.IDLE||w===ee.LOADING){let v=function(){let R=x.getImageState();if(!(R===ee.IDLE||R===ee.LOADING)){let F=x.getSize();if(F&&F.length==2){let D=Ch(F);x.setScale(B*D)}x.unlistenImageChange(v)}};x.listenImageChange(v),w===ee.IDLE&&x.load()}}else if(Q.length==2){let w=Ch(Q);x.setScale(B*w)}n.imageStyle=x}else n.imageStyle=hp}var CD=Z(W,{color:V(_h),scale:V(px)});function _D(i,e){let t=Re({},CD,i,e);if(!t)return;let n=e[e.length-1],r=new ma({fill:new qi({color:"color"in t?t.color:Fs}),scale:t.scale});n.textStyle=r}var yD=Z(W,{color:V(_h),width:V(ke)});function BD(i,e){let t=Re({},yD,i,e);if(!t)return;let n=e[e.length-1],r=new sr({color:"color"in t?t.color:Fs,width:"width"in t?t.width:1});n.strokeStyle=r}var xD=Z(W,{color:V(_h),fill:V(qn),outline:V(qn)});function wD(i,e){let t=Re({},xD,i,e);if(!t)return;let n=e[e.length-1],r=new qi({color:"color"in t?t.color:Fs});n.fillStyle=r;let o=t.fill;o!==void 0&&(n.fill=o);let s=t.outline;s!==void 0&&(n.outline=s)}var QD=Z(W,{coordinates:dh(gx)});function Ix(i,e){return Re(null,QD,i,e)}function SD(i,e){let n=e[e.length-1].coordinates,r=Fi(i,!1),s=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(r);if(s){let a=parseFloat(s[1]),A=parseFloat(s[2]),l=parseFloat(s[3]);n.push([a,A,l])}else n.push([])}var RD=Z(Vn,{Track:Kn(Cx)});function vD(i,e){let t=Re([],RD,i,e);if(t)return new Uo(t)}var TD=Z(W,{when:t2},Z(Vn,{coord:SD}));function Cx(i,e){let t=Re({coordinates:[],whens:[]},TD,i,e);if(!t)return;let n=[],r=t.coordinates,o=t.whens;for(let s=0,a=Math.min(r.length,o.length);s0&&e[e.length-1].push(...t)}var ZD=Z(W,{LinearRing:dh(Ix)});function $D(i,e){let t=Re(void 0,ZD,i,e);if(t){let n=e[e.length-1];n[0]=t}}function e2(i,e){co(AD,i,e)}function t2(i,e){let n=e[e.length-1].whens,r=Fi(i,!1),o=Date.parse(r);n.push(isNaN(o)?0:o)}function Bh(i,e){let t=We(e),r=[(t.length==4?t[3]:1)*255,t[2],t[1],t[0]];for(let o=0;o<4;++o){let s=Math.floor(r[o]).toString(16);r[o]=s.length==1?"0"+s:s}ni(i,r.join(""))}function i2(i,e,t){let n=t[t.length-1],r=n.layout,o=n.stride,s;if(r=="XY"||r=="XYM")s=2;else if(r=="XYZ"||r=="XYZM")s=3;else throw new Error("Invalid geometry layout");let a=e.length,A="";if(a>0){A+=e[0];for(let l=1;l0){let f=pi(r,s);qe(n,rp,T2,[{names:s,values:f}],t)}let h=t[0],u=e.getGeometry();u&&(u=Jr(u,!0,h)),qe(n,rp,Rx,[u],t)}var D2=Z(W,["extrude","tessellate","altitudeMode","coordinates"]),b2=Z(W,{extrude:te(ho),tessellate:te(ho),altitudeMode:te(ni),coordinates:te(i2)});function Ls(i,e,t){let n=e.getFlatCoordinates(),r={node:i};r.layout=e.getLayout(),r.stride=e.getStride();let o=e.getProperties();o.coordinates=n;let s=t[t.length-1].node,a=D2[s.namespaceURI],A=pi(o,a);qe(r,b2,ii,A,t,a)}var F2=Z(W,["color","fill","outline"]),hx=Z(W,{outerBoundaryIs:te(cx),innerBoundaryIs:te(cx)}),L2=hn("innerBoundaryIs"),M2=hn("outerBoundaryIs");function Dx(i,e,t){let n=e.getLinearRings(),r=n.shift(),o={node:i};qe(o,hx,L2,n,t),qe(o,hx,M2,[r],t)}var k2=Z(W,{color:te(Bh),fill:te(ho),outline:te(ho)});function P2(i,e,t){let n={node:i},r=e.getFill(),o=e.getStroke(),s={color:r?r.getColor():void 0,fill:r?void 0:!1,outline:o?void 0:!1},a=t[t.length-1].node,A=F2[a.namespaceURI],l=pi(s,A);qe(n,k2,ii,l,t,A)}function bx(i,e){Sr(i,Math.round(e*1e6)/1e6)}var N2=Z(W,["IconStyle","LabelStyle","LineStyle","PolyStyle"]),G2=Z(W,{IconStyle:te(d2),LabelStyle:te(E2),LineStyle:te(_2),PolyStyle:te(P2)});function O2(i,e,t){let n={node:i},r={};if(e.pointStyles.length){let A=e.pointStyles[0].getText();A&&(r.LabelStyle=A);let l=e.pointStyles[0].getImage();l&&typeof l.getSrc=="function"&&(r.IconStyle=l)}if(e.lineStyles.length){let A=e.lineStyles[0].getStroke();A&&(r.LineStyle=A)}if(e.polyStyles.length){let A=e.polyStyles[0].getStroke();A&&!r.LineStyle&&(r.LineStyle=A),r.PolyStyle=e.polyStyles[0]}let o=t[t.length-1].node,s=N2[o.namespaceURI],a=pi(r,s);qe(n,G2,ii,a,t,s)}function U2(i,e){i.setAttribute("x",String(e.x)),i.setAttribute("y",String(e.y)),i.setAttribute("xunits",e.xunits),i.setAttribute("yunits",e.yunits)}var gp=cp;var xh=class{constructor(){this._catalog=Object.assign(Object.assign(Object.assign(Object.assign({},ix),IC),zB),{GeoJSON:ba,KML:gp,View:yt})}moveTypeDefToTop(e){let t={};return Object.keys(e).sort().forEach(n=>t[n]=e[n]),console.log("sortedOptions",t),t}parseOptions(e){let t={};for(let n in e){let r=e[n];Array.isArray(r)&&typeof r[0]=="object"?(console.log("Parse items of array"),t[n]=r.map(o=>o["@@type"]?this.parse(o):this.parseOptions(o))):typeof r=="object"&&r["@@type"]!==void 0?t[n]=this.parse(r):n!=="@@type"&&n!=="@@geojson"&&(t[n]=r)}return t}parse(e){let t=this.parseOptions(e);return console.log("parsed options",t),console.log("type detected",e["@@type"]),new this._catalog[e["@@type"]](t)}};var Y2=Object.prototype.toString,ks=Array.isArray||function(e){return Y2.call(e)==="[object Array]"};function mp(i){return typeof i=="function"}function H2(i){return ks(i)?"array":typeof i}function dp(i){return i.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function Fx(i,e){return i!=null&&typeof i=="object"&&e in i}function z2(i,e){return i!=null&&typeof i!="object"&&i.hasOwnProperty&&i.hasOwnProperty(e)}var K2=RegExp.prototype.test;function q2(i,e){return K2.call(i,e)}var V2=/\S/;function X2(i){return!q2(V2,i)}var J2={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function j2(i){return String(i).replace(/[&<>"'`=\/]/g,function(t){return J2[t]})}var W2=/\s*/,Z2=/\s+/,Lx=/\s*=/,$2=/\s*\}/,eb=/#|\^|\/|>|\{|&|=|!/;function tb(i,e){if(!i)return[];var t=!1,n=[],r=[],o=[],s=!1,a=!1,A="",l=0;function c(){if(s&&!a)for(;o.length;)delete r[o.pop()];else o=[];s=!1,a=!1}var h,u,f;function g(B){if(typeof B=="string"&&(B=B.split(Z2,2)),!ks(B)||B.length!==2)throw new Error("Invalid tags: "+B);h=new RegExp(dp(B[0])+"\\s*"),u=new RegExp("\\s*"+dp(B[1])),f=new RegExp("\\s*"+dp("}"+B[1]))}g(e||Ei.tags);for(var m=new xA(i),d,E,p,_,C,I;!m.eos();){if(d=m.pos,p=m.scanUntil(h),p)for(var y=0,x=p.length;y"?C=[E,p,d,m.pos,A,l,t]:C=[E,p,d,m.pos],l++,r.push(C),E==="#"||E==="^")n.push(C);else if(E==="/"){if(I=n.pop(),!I)throw new Error('Unopened section "'+p+'" at '+d);if(I[1]!==p)throw new Error('Unclosed section "'+I[1]+'" at '+d)}else E==="name"||E==="{"||E==="&"?a=!0:E==="="&&g(p)}if(c(),I=n.pop(),I)throw new Error('Unclosed section "'+I[1]+'" at '+m.pos);return nb(ib(r))}function ib(i){for(var e=[],t,n,r=0,o=i.length;r0?n[n.length-1][4]:e;break;default:t.push(r)}return e}function xA(i){this.string=i,this.tail=i,this.pos=0}xA.prototype.eos=function(){return this.tail===""};xA.prototype.scan=function(e){var t=this.tail.match(e);if(!t||t.index!==0)return"";var n=t[0];return this.tail=this.tail.substring(n.length),this.pos+=n.length,n};xA.prototype.scanUntil=function(e){var t=this.tail.search(e),n;switch(t){case-1:n=this.tail,this.tail="";break;case 0:n="";break;default:n=this.tail.substring(0,t),this.tail=this.tail.substring(t)}return this.pos+=n.length,n};function Ms(i,e){this.view=i,this.cache={".":this.view},this.parent=e}Ms.prototype.push=function(e){return new Ms(e,this)};Ms.prototype.lookup=function(e){var t=this.cache,n;if(t.hasOwnProperty(e))n=t[e];else{for(var r=this,o,s,a,A=!1;r;){if(e.indexOf(".")>0)for(o=r.view,s=e.split("."),a=0;o!=null&&a"?l=this.renderPartial(a,t,n,o):A==="&"?l=this.unescapedValue(a,t):A==="name"?l=this.escapedValue(a,t,o):A==="text"&&(l=this.rawValue(a)),l!==void 0&&(s+=l);return s};Dt.prototype.renderSection=function(e,t,n,r,o){var s=this,a="",A=t.lookup(e[1]);function l(u){return s.render(u,t,n,o)}if(A){if(ks(A))for(var c=0,h=A.length;cB?B/R:1,D=Math.round(_*v),Q=Math.round(y*v);i.bindTexture(i.TEXTURE_2D,C),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_S,i.CLAMP_TO_EDGE),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_WRAP_T,i.CLAMP_TO_EDGE),u?(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.LINEAR),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.LINEAR)):(i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MIN_FILTER,i.NEAREST),i.texParameteri(i.TEXTURE_2D,i.TEXTURE_MAG_FILTER,i.NEAREST)),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,D,Q,0,i.RGBA,c,null);let S=i.createFramebuffer();i.bindFramebuffer(i.FRAMEBUFFER,S),i.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,C,0);let b=new Fg(i);l.forEach(function(F,M,k){let P=(F.extent[0]-m[0])*w*v,U=-(F.extent[3]-m[3])*w*v,N=ue(F.extent)*w*v,j=qe(F.extent)*w*v;if(i.bindFramebuffer(i.FRAMEBUFFER,S),i.viewport(0,0,D,Q),F.clipExtent){let X=(F.clipExtent[0]-m[0])*w*v,z=-(F.clipExtent[3]-m[3])*w*v,q=ue(F.clipExtent)*w*v,Z=qe(F.clipExtent)*w*v;i.enable(i.SCISSOR_TEST),i.scissor(u?X:Math.round(X),u?z:Math.round(z),u?q:Math.round(X+q)-Math.round(X),u?Z:Math.round(z+Z)-Math.round(z))}b.drawImage(F.texture,F.width,F.height,A,A,F.width-2*A,F.height-2*A,u?P:Math.round(P),u?U:Math.round(U),u?N:Math.round(P+N)-Math.round(P),u?j:Math.round(U+j)-Math.round(U),D,Q),i.disable(i.SCISSOR_TEST)}),i.deleteFramebuffer(S)}else C=l[0].texture,_=l[0].width,y=l[0].width;let T=Pt(s),E=Pt(m),x=B=>{let R=(B[0][0]-T[0])/o*n,v=-(B[0][1]-T[1])/o*n,D=(B[1][0]-T[0])/o*n,Q=-(B[1][1]-T[1])/o*n,S=(B[2][0]-T[0])/o*n,b=-(B[2][1]-T[1])/o*n;return{u1:D,v1:Q,u0:R,v0:v,u2:S,v2:b}};i.bindFramebuffer(i.FRAMEBUFFER,d),i.viewport(0,0,g,p);{let B=[],R=[],v=Lg(i,Ok,Gk);i.useProgram(v);let D=i.getUniformLocation(v,"u_texture");i.bindTexture(i.TEXTURE_2D,C),i.uniform1i(D,0),a.getTriangles().forEach(function(P,U,N){let j=P.source,X=P.target,{u1:z,v1:q,u0:Z,v0:ge,u2:me,v2:de}=x(X),ve=(j[0][0]-E[0])/r/_,Ve=-(j[0][1]-E[1])/r/y,Me=(j[1][0]-E[0])/r/_,Se=-(j[1][1]-E[1])/r/y,Ae=(j[2][0]-E[0])/r/_,ri=-(j[2][1]-E[1])/r/y;B.push(z,q,Z,ge,me,de),R.push(Me,Se,ve,Ve,Ae,ri)});let Q=_c(0,g,p,0,-1,1),S=i.getUniformLocation(v,"u_matrix");i.uniformMatrix4fv(S,!1,Q);let b=i.getAttribLocation(v,"a_position"),F=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,F),i.bufferData(i.ARRAY_BUFFER,new Float32Array(B),i.STATIC_DRAW),i.vertexAttribPointer(b,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(b);let M=i.getAttribLocation(v,"a_texcoord"),k=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,k),i.bufferData(i.ARRAY_BUFFER,new Float32Array(R),i.STATIC_DRAW),i.vertexAttribPointer(M,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(M),i.drawArrays(i.TRIANGLES,0,B.length/2)}if(h){let B=Lg(i,Nk,Pk);i.useProgram(B);let R=_c(0,g,p,0,-1,1),v=i.getUniformLocation(B,"u_matrix");i.uniformMatrix4fv(v,!1,R);let D=Array.isArray(h)?h:[0,0,0,255],Q=i.getUniformLocation(B,"u_val");!0?i.uniform4fv(Q,D):i.uniform4iv(Q,D);let b=i.getAttribLocation(B,"a_position"),F=i.createBuffer();i.bindBuffer(i.ARRAY_BUFFER,F),i.vertexAttribPointer(b,2,i.FLOAT,!1,0,0),i.enableVertexAttribArray(b);let M=a.getTriangles().reduce(function(k,P){let U=P.target,{u1:N,v1:j,u0:X,v0:z,u2:q,v2:Z}=x(U);return k.concat([N,j,X,z,X,z,q,Z,q,Z,N,j])},[]);i.bufferData(i.ARRAY_BUFFER,new Float32Array(M),i.STATIC_DRAW),i.drawArrays(i.LINES,0,M.length/2)}return{width:g,height:p,framebuffer:d,texture:I}}var tC=class extends Io{constructor(e){super({tileCoord:e.tileCoord,loader:()=>Promise.resolve(new Uint8ClampedArray(4)),interpolate:e.interpolate,transition:e.transition}),this.renderEdges_=e.renderEdges!==void 0?e.renderEdges:!1,this.pixelRatio_=e.pixelRatio,this.gutter_=e.gutter,this.reprojData_=null,this.reprojError_=null,this.reprojSize_=void 0,this.sourceTileGrid_=e.sourceTileGrid,this.targetTileGrid_=e.targetTileGrid,this.wrappedTileCoord_=e.wrappedTileCoord||e.tileCoord,this.sourceTiles_=[],this.sourcesListenerKeys_=null,this.sourceZ_=0;let t=e.sourceProj,n=t.getExtent(),r=e.sourceTileGrid.getExtent();this.clipExtent_=t.canWrapX()?r?Ze(n,r):n:r;let o=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),s=this.targetTileGrid_.getExtent(),a=this.sourceTileGrid_.getExtent(),l=s?Ze(o,s):o;if(Jo(l)===0){this.state=V.EMPTY;return}n&&(a?a=Ze(a,n):a=n);let A=this.targetTileGrid_.getResolution(this.wrappedTileCoord_[0]),c=e.targetProj,h=nf(t,c,l,A);if(!isFinite(h)||h<=0){this.state=V.EMPTY;return}let u=e.errorThreshold!==void 0?e.errorThreshold:.5;if(this.triangulation_=new rf(t,c,l,a,h*u,A,e.transformMatrix),this.triangulation_.getTriangles().length===0){this.state=V.EMPTY;return}this.sourceZ_=this.sourceTileGrid_.getZForResolution(h);let f=this.triangulation_.calculateSourceExtent();if(a&&(t.canWrapX()?(f[1]=Ee(f[1],a[1],a[3]),f[3]=Ee(f[3],a[1],a[3])):f=Ze(f,a)),!Jo(f))this.state=V.EMPTY;else{let g=0,p=0;t.canWrapX()&&(g=ue(n),p=Math.floor((f[0]-n[0])/g)),La(f.slice(),t,!0).forEach(I=>{let m=this.sourceTileGrid_.getTileRangeForExtentAndZ(I,this.sourceZ_),C=e.getTileFunction;for(let _=m.minX;_<=m.maxX;_++)for(let y=m.minY;y<=m.maxY;y++){let w=C(this.sourceZ_,_,y,this.pixelRatio_);if(w){let T=p*g;this.sourceTiles_.push({tile:w,offset:T})}}++p}),this.sourceTiles_.length===0&&(this.state=V.EMPTY)}}getSize(){return this.reprojSize_}getData(){return this.reprojData_}getError(){return this.reprojError_}reproject_(){let e=[],t=!1;if(this.sourceTiles_.forEach(_=>{let y=_.tile;if(!y||y.getState()!==V.LOADED)return;let w=y.getSize(),T=this.gutter_,E,x=yc(y.getData());x?E=x:(t=!0,E=SB(Eo(y.getData())));let B=[w[0]+2*T,w[1]+2*T],R=E instanceof Float32Array,v=B[0]*B[1],D=R?Float32Array:Uint8ClampedArray,Q=new D(E.buffer),S=D.BYTES_PER_ELEMENT,b=S*Q.length/v,F=Q.byteLength/B[1],M=Math.floor(F/S/B[0]),k=this.sourceTileGrid_.getTileCoordExtent(y.tileCoord);k[0]+=_.offset,k[2]+=_.offset;let P=this.clipExtent_?.slice();P&&(P[0]+=_.offset,P[2]+=_.offset),e.push({extent:k,clipExtent:P,data:Q,dataType:D,bytesPerPixel:b,pixelSize:B,bandCount:M})}),this.sourceTiles_.length=0,e.length===0){this.state=V.ERROR,this.changed();return}let n=this.wrappedTileCoord_[0],r=this.targetTileGrid_.getTileSize(n),o=typeof r=="number"?r:r[0],s=typeof r=="number"?r:r[1],a=o*this.pixelRatio_,l=s*this.pixelRatio_,A=this.targetTileGrid_.getResolution(n),c=this.sourceTileGrid_.getResolution(this.sourceZ_),h=this.targetTileGrid_.getTileCoordExtent(this.wrappedTileCoord_),u=e[0].bandCount,f=new e[0].dataType(u*a*l),g=PS(a,l,eC,{premultipliedAlpha:!1,antialias:!1}),p,d=g.RGBA,I;e[0].dataType==Float32Array?(I=g.FLOAT,g.getExtension("WEBGL_color_buffer_float"),g.getExtension("OES_texture_float"),g.getExtension("EXT_float_blend"),p=g.getExtension("OES_texture_float_linear")!==null&&this.interpolate):(I=g.UNSIGNED_BYTE,p=this.interpolate);let m=4,C=Math.ceil(u/m);for(let _=C-1;_>=0;--_){let y=[];for(let D=0,Q=e.length;D{let n=t.getState();if(n!==V.IDLE&&n!==V.LOADING)return;e++;let r=ee(t,K.CHANGE,()=>{let o=t.getState();(o==V.LOADED||o==V.ERROR||o==V.EMPTY)&&(ce(r),e--,e===0&&(this.unlistenSources_(),this.reproject_()))});this.sourcesListenerKeys_.push(r)}),e===0?setTimeout(this.reproject_.bind(this),0):this.sourceTiles_.forEach(function({tile:t}){t.getState()==V.IDLE&&t.load()})}unlistenSources_(){this.sourcesListenerKeys_.forEach(ce),this.sourcesListenerKeys_=null}},OS=tC;var iC=class extends Ff{constructor(e){let t=e.projection===void 0?"EPSG:3857":e.projection,n=e.tileGrid;n===void 0&&t&&(n=dr({extent:xn(t),maxResolution:e.maxResolution,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize})),super({cacheSize:.1,attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,projection:t,tileGrid:n,state:e.state,wrapX:e.wrapX,transition:e.transition,interpolate:e.interpolate,key:e.key,zDirection:e.zDirection}),this.gutter_=e.gutter!==void 0?e.gutter:0,this.tileSize_=e.tileSize?Fe(e.tileSize):null,this.tileSizes_=null,this.tileLoadingKeys_={},this.loader_=e.loader,this.handleTileChange_=this.handleTileChange_.bind(this),this.bandCount=e.bandCount===void 0?4:e.bandCount,this.tileGridForProjection_={},this.crossOrigin_=e.crossOrigin||"anonymous",this.transformMatrix=null}setTileSizes(e){this.tileSizes_=e}getTileSize(e){if(this.tileSizes_)return this.tileSizes_[e];if(this.tileSize_)return this.tileSize_;let t=this.getTileGrid();return t?Fe(t.getTileSize(e)):[256,256]}getGutterForProjection(e){let t=this.getProjection();return(!t||On(t,e))&&!this.transformMatrix?this.gutter_:0}setLoader(e){this.loader_=e}getReprojTile_(e,t,n,r,o){let s=this.tileGrid||this.getTileGridForProjection(o||r),a=Math.max.apply(null,s.getResolutions().map((f,g)=>{let p=Fe(s.getTileSize(g)),d=this.getTileSize(g);return Math.max(d[0]/p[0],d[1]/p[1])})),l=this.getTileGridForProjection(r),A=[e,t,n],c=this.getTileCoordForTileUrlFunction(A,r),h=Object.assign({sourceProj:o||r,sourceTileGrid:s,targetProj:r,targetTileGrid:l,tileCoord:A,wrappedTileCoord:c,pixelRatio:a,gutter:this.gutter_,getTileFunction:(f,g,p,d)=>this.getTile(f,g,p,d),transformMatrix:this.transformMatrix},this.tileOptions),u=new OS(h);return u.key=this.getKey(),u}getTile(e,t,n,r,o){let s=this.getProjection();if(o&&(s&&!On(s,o)||this.transformMatrix))return this.getReprojTile_(e,t,n,o,s);let a=this.getTileSize(e),l=this.loader_,A=new AbortController,c={signal:A.signal,crossOrigin:this.crossOrigin_},h=this.getTileCoordForTileUrlFunction([e,t,n]);if(!h)return null;let u=h[0],f=h[1],g=h[2],p=this.getTileGrid()?.getFullTileRange(u);p&&(c.maxY=p.getHeight()-1);function d(){return Sa(function(){return l(u,f,g,c)})}let I=Object.assign({tileCoord:[e,t,n],loader:d,size:a,controller:A},this.tileOptions),m=new Io(I);return m.key=this.getKey(),m.addEventListener(K.CHANGE,this.handleTileChange_),m}handleTileChange_(e){let t=e.target,n=W(t),r=t.getState(),o;r==V.LOADING?(this.tileLoadingKeys_[n]=!0,o=ys.TILELOADSTART):n in this.tileLoadingKeys_&&(delete this.tileLoadingKeys_[n],o=r==V.ERROR?ys.TILELOADERROR:r==V.LOADED?ys.TILELOADEND:void 0),o&&this.dispatchEvent(new Rl(o,t))}getTileGridForProjection(e){let t=this.getProjection();if(this.tileGrid&&(!t||On(t,e))&&!this.transformMatrix)return this.tileGrid;let n=W(e);return n in this.tileGridForProjection_||(this.tileGridForProjection_[n]=Tl(e)),this.tileGridForProjection_[n]}setTileGridForProjection(e,t){let n=fe(e);if(n){let r=W(n);r in this.tileGridForProjection_||(this.tileGridForProjection_[r]=t)}}},jl=iC;function Uk(i){return((i.fileDirectory.NewSubfileType||0)&4)===4}function zk(i,e){if(!i)return!1;if(i===!0)return!0;if(e.getSamplesPerPixel()!==3)return!1;let t=e.fileDirectory.PhotometricInterpretation,n=qf.photometricInterpretations;return t===n.CMYK||t===n.YCbCr||t===n.CIELab||t===n.ICCLab}var US="STATISTICS_MAXIMUM",zS="STATISTICS_MINIMUM",nC=256,rC;function Yk(){return rC||(rC=new YI),rC}function Vk(i){try{return i.getBoundingBox(!0)}catch{return[0,0,i.getWidth(),i.getHeight()]}}function Hk(i){try{return i.getOrigin().slice(0,2)}catch{return[0,i.getHeight()]}}function qk(i,e){try{return i.getResolution(e)}catch{return[e.getWidth()/i.getWidth(),e.getHeight()/i.getHeight()]}}function Kk(i){let e=i.geoKeys;if(!e)return null;if(e.ProjectedCSTypeGeoKey&&e.ProjectedCSTypeGeoKey!==32767){let t="EPSG:"+e.ProjectedCSTypeGeoKey,n=fe(t);if(!n){let r=zd(e.ProjLinearUnitsGeoKey);r&&(n=new Pn({code:t,units:r}))}return n}if(e.GeographicTypeGeoKey&&e.GeographicTypeGeoKey!==32767){let t="EPSG:"+e.GeographicTypeGeoKey,n=fe(t);if(!n){let r=zd(e.GeogAngularUnitsGeoKey);r&&(n=new Pn({code:t,units:r}))}return n}return null}function Xk(i){return i.getImageCount().then(function(e){let t=new Array(e);for(let n=0;nt*i)throw new Error(n)}function Wk(i){return i instanceof Int8Array?-128:i instanceof Int16Array?-32768:i instanceof Int32Array?-2147483648:i instanceof Float32Array?12e-39:0}function Jk(i){return i instanceof Int8Array?127:i instanceof Uint8Array||i instanceof Uint8ClampedArray?255:i instanceof Int16Array?32767:i instanceof Uint16Array?65535:i instanceof Int32Array?2147483647:i instanceof Uint32Array?4294967295:i instanceof Float32Array?34e37:255}var Mg=class extends jl{constructor(e){super({state:"loading",tileGrid:null,projection:e.projection||null,transition:e.transition,interpolate:e.interpolate!==!1,wrapX:e.wrapX}),this.sourceInfo_=e.sources;let t=this.sourceInfo_.length;this.sourceOptions_=e.sourceOptions,this.sourceImagery_=new Array(t),this.sourceMasks_=new Array(t),this.resolutionFactors_=new Array(t),this.samplesPerPixel_,this.nodataValues_,this.metadata_,this.normalize_=e.normalize!==!1,this.addAlpha_=!1,this.error_=null,this.convertToRGB_=e.convertToRGB||!1,this.setKey(this.sourceInfo_.map(o=>o.url).join(","));let n=this,r=new Array(t);for(let o=0;o=0;--n){let r=t[n],o=Kk(r);if(o){this.projection=o;break}}}determineTransformMatrix(e){let t=e[0];for(let n=t.length-1;n>=0;--n){let o=t[n].fileDirectory.ModelTransformation;if(o){let[s,a,l,A,c,h,u,f]=o,g=Un(Un([1/Math.sqrt(s*s+c*c),0,0,-1/Math.sqrt(a*a+h*h),A,f],[s,c,a,h,0,0]),[1,0,0,1,-A,-f]);this.transformMatrix=g,this.addAlpha_=!0;break}}}configure_(e){let t,n,r,o,s,a=new Array(e.length),l=new Array(e.length),A=new Array(e.length),c=0,h=e.length;for(let d=0;d{Uk(x)?m.push(x):I.push(x)});let C=I.length;if(m.length>0&&m.length!==C)throw new Error(`Expected one mask per image found ${m.length} masks and ${C} images`);let _,y,w=new Array(C),T=new Array(C),E=new Array(C);l[d]=new Array(C),A[d]=new Array(C);for(let x=0;xE.length&&(c=s.length-E.length);let x=s[s.length-1]/E[E.length-1];this.resolutionFactors_[d]=x;let B=E.map(v=>v*=x),R=`Resolution mismatch for source ${d}, got [${B}] but expected [${s}]`;th(s.slice(c,s.length),B,.02,R,this.viewRejector)}r?th(r.slice(c,r.length),T,.01,`Tile size mismatch for source ${d}`,this.viewRejector):r=T,o?th(o.slice(c,o.length),w,0,`Tile size mismatch for source ${d}`,this.viewRejector):o=w,this.sourceImagery_[d]=I.reverse(),this.sourceMasks_[d]=m.reverse()}for(let d=0,I=this.sourceImagery_.length;dbe(d,m));p=Fa(t,I)}this.viewResolver({showFullExtent:!0,projection:this.projection,resolutions:s,center:Zi(pi(p),this.projection),extent:Ei(p,this.projection),zoom:g})}loadTile_(e,t,n,r){let o=this.getTileSize(e),s=this.sourceImagery_.length,a=new Array(s*2),l=this.nodataValues_,A=this.sourceInfo_,c=Yk();for(let h=0;h{let a=new Image;a.crossOrigin=r.crossOrigin??null,a.addEventListener("load",()=>o(a)),a.addEventListener("error",()=>s($k)),a.src=Qf(i,e,t,n,r.maxY)})}function VS(i){return function(e,t,n,r){let o=b1(i,e,t,n);return XS(o,e,t,n,r)}}function Zk(i){return function(e,t,n,r){let o=i(e,t,n,r);return XS(o,e,t,n,r)}}function HS(i){let e;if(Array.isArray(i))e=VS(i);else if(typeof i=="string"){let t=bf(i);e=VS(t)}else if(typeof i=="function")e=Zk(i);else throw new Error("The url option must be a single template, an array of templates, or a function for getting a URL");return e}var qS=0;function KS(i){return Array.isArray(i)?i.join(` +`):typeof i=="string"?i:(++qS,"url-function-key-"+qS)}var oC=class extends jl{constructor(e){e=e||{};let t=e.loader,n;e.url&&(t=HS(e.url),n=KS(e.url));let r=t?e.state:"loading",o=e.wrapX===void 0?!0:e.wrapX;super({loader:t,key:n,attributions:e.attributions,attributionsCollapsible:e.attributionsCollapsible,maxZoom:e.maxZoom,minZoom:e.minZoom,tileSize:e.tileSize,gutter:e.gutter,maxResolution:e.maxResolution,projection:e.projection,tileGrid:e.tileGrid,state:r,wrapX:o,transition:e.transition,interpolate:e.interpolate!==!1,crossOrigin:e.crossOrigin,zDirection:e.zDirection})}setUrl(e){let t=HS(e);this.setLoader(t),this.setKey(KS(e)),this.getState()!=="ready"&&this.setState("ready")}},jS=oC;function WS(i,e,t,n){let r=document.createElement("script"),o="olc_"+W(e);function s(){delete window[o],r.parentNode.removeChild(r)}r.async=!0,r.src=i+(i.includes("?")?"&":"?")+(n||"callback")+"="+o;let a=setTimeout(function(){s(),t&&t()},1e4);window[o]=function(l){clearTimeout(a),s(),e(l)},document.head.appendChild(r)}var sC=class extends Mf{constructor(e){if(super({attributions:e.attributions,cacheSize:e.cacheSize,crossOrigin:e.crossOrigin,interpolate:e.interpolate,projection:fe("EPSG:3857"),reprojectionErrorThreshold:e.reprojectionErrorThreshold,state:"loading",tileLoadFunction:e.tileLoadFunction,wrapX:e.wrapX!==void 0?e.wrapX:!0,transition:e.transition,zDirection:e.zDirection}),this.tileJSON_=null,this.tileSize_=e.tileSize,e.url)if(e.jsonp)WS(e.url,this.handleTileJSONResponse.bind(this),this.handleTileJSONError.bind(this));else{let t=new XMLHttpRequest;t.addEventListener("load",this.onXHRLoad_.bind(this)),t.addEventListener("error",this.onXHRError_.bind(this)),t.open("GET",e.url),t.send()}else if(e.tileJSON)this.handleTileJSONResponse(e.tileJSON);else throw new Error("Either `url` or `tileJSON` options must be provided")}onXHRLoad_(e){let t=e.target;if(!t.status||t.status>=200&&t.status<300){let n;try{n=JSON.parse(t.responseText)}catch{this.handleTileJSONError();return}this.handleTileJSONResponse(n)}else this.handleTileJSONError()}onXHRError_(e){this.handleTileJSONError()}getTileJSON(){return this.tileJSON_}handleTileJSONResponse(e){let t=fe("EPSG:4326"),n=this.getProjection(),r;if(e.bounds!==void 0){let A=$i(t,n);r=Fa(e.bounds,A)}let o=xn(n),s=e.minzoom||0,a=e.maxzoom||22,l=dr({extent:o,maxZoom:a,minZoom:s,tileSize:this.tileSize_});if(this.tileGrid=l,this.tileUrlFunction=Df(e.tiles,l),e.attribution&&!this.getAttributions()){let A=r!==void 0?r:o;this.setAttributions(function(c){return Qe(A,c.extent)?[e.attribution]:null})}this.tileJSON_=e,this.setState("ready")}handleTileJSONError(){this.setState("error")}},JS=sC;var Wl="http://www.w3.org/2001/XMLSchema-instance";function bo(i,e){return da().createElementNS(i,e)}function vn(i,e){return $S(i,e,[]).join("")}function $S(i,e,t){if(i.nodeType==Node.CDATA_SECTION_NODE||i.nodeType==Node.TEXT_NODE)e?t.push(String(i.nodeValue).replace(/(\r\n|\r|\n)/g,"")):t.push(i.nodeValue);else{let n;for(n=i.firstChild;n;n=n.nextSibling)$S(n,e,t)}return t}function Jn(i){return"documentElement"in i}function $n(i){return new DOMParser().parseFromString(i,"application/xml")}function AC(i,e){return function(t,n){let r=i.call(e??this,t,n);if(r!==void 0){let o=n[n.length-1];Te(o,r)}}}function Sn(i,e){return function(t,n){let r=i.call(e??this,t,n);r!==void 0&&n[n.length-1].push(r)}}function kg(i,e){return function(t,n){let r=i.call(e??this,t,n);r!==void 0&&(n[n.length-1]=r)}}function H(i,e,t){return function(n,r){let o=i.call(t??this,n,r);if(o!==void 0){let s=r[r.length-1],a=e!==void 0?e:n.localName;s[a]=o}}}function J(i,e){return function(t,n,r){i.call(e??this,t,n,r),r[r.length-1].node.appendChild(t)}}function cC(i,e){let t,n;return function(r,o,s){if(t===void 0){t={};let a={};a[r.localName]=i,t[r.namespaceURI]=a,n=Tn(r.localName)}ZS(t,n,o,s)}}function Tn(i,e){return function(t,n,r){let s=n[n.length-1].node,a=i;a===void 0&&(a=r);let l=e!==void 0?e:s.namespaceURI;return bo(l,a)}}var ti=Tn();function vi(i,e){let t=e.length,n=new Array(t);for(let r=0;r0?n[0]:null}readFeatureFromNode(e,t){return null}readFeatures(e,t){if(!e)return[];if(typeof e=="string"){let n=$n(e);return this.readFeaturesFromDocument(n,t)}return Jn(e)?this.readFeaturesFromDocument(e,t):this.readFeaturesFromNode(e,t)}readFeaturesFromDocument(e,t){let n=[];for(let r=e.firstChild;r;r=r.nextSibling)r.nodeType==Node.ELEMENT_NODE&&Te(n,this.readFeaturesFromNode(r,t));return n}readFeaturesFromNode(e,t){return ne()}readGeometry(e,t){if(!e)return null;if(typeof e=="string"){let n=$n(e);return this.readGeometryFromDocument(n,t)}return Jn(e)?this.readGeometryFromDocument(e,t):this.readGeometryFromNode(e,t)}readGeometryFromDocument(e,t){return null}readGeometryFromNode(e,t){return null}readProjection(e){if(!e)return null;if(typeof e=="string"){let t=$n(e);return this.readProjectionFromDocument(t)}return Jn(e)?this.readProjectionFromDocument(e):this.readProjectionFromNode(e)}readProjectionFromDocument(e){return this.dataProjection}readProjectionFromNode(e){return this.dataProjection}writeFeature(e,t){let n=this.writeFeatureNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeFeatureNode(e,t){return null}writeFeatures(e,t){let n=this.writeFeaturesNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeFeaturesNode(e,t){return null}writeGeometry(e,t){let n=this.writeGeometryNode(e,t);return this.xmlSerializer_.serializeToString(n)}writeGeometryNode(e,t){return null}},Pg=hC;function Do(i){let e=vn(i,!1);return eP(e)}function eP(i){let e=/^\s*(true|1)|(false|0)\s*$/.exec(i);if(e)return e[1]!==void 0||!1}function ih(i){let e=vn(i,!1),t=Date.parse(e);return isNaN(t)?void 0:t/1e3}function Ue(i){let e=vn(i,!1);return tP(e)}function tP(i){let e=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)\s*$/i.exec(i);if(e)return parseFloat(e[1])}function Jl(i){let e=vn(i,!1);return iP(e)}function iP(i){let e=/^\s*(\d+)\s*$/.exec(i);if(e)return parseInt(e[1],10)}function Be(i){return vn(i,!1).trim()}function pa(i,e){Ye(i,e?"1":"0")}function nP(i,e){i.appendChild(da().createCDATASection(e))}function tT(i,e){let t=new Date(e*1e3),n=t.getUTCFullYear()+"-"+Ma(t.getUTCMonth()+1,2)+"-"+Ma(t.getUTCDate(),2)+"T"+Ma(t.getUTCHours(),2)+":"+Ma(t.getUTCMinutes(),2)+":"+Ma(t.getUTCSeconds(),2)+"Z";i.appendChild(da().createTextNode(n))}function Si(i,e){let t=e.toPrecision();i.appendChild(da().createTextNode(t))}function nh(i,e){let t=e.toString();i.appendChild(da().createTextNode(t))}var rP=/^\s/,oP=/\s$/,sP=/(\n|\t|\r|<|&| {2})/;function Ye(i,e){typeof e=="string"&&(rP.test(e)||oP.test(e)||sP.test(e))?e.split("]]>").forEach((t,n,r)=>{n0&&(t=">"+t),nP(i,t)}):i.appendChild(da().createTextNode(e))}var ft=[null,"http://www.topografix.com/GPX/1/0","http://www.topografix.com/GPX/1/1"],aP="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd",lP={rte:iT,trk:nT,wpt:rT},AP=$(ft,{rte:Sn(iT),trk:Sn(nT),wpt:Sn(rT)}),cP=$(ft,{text:H(Be,"linkText"),type:H(Be,"linkType")}),hP=$(ft,{name:H(Be),email:PP,link:rh}),uP=$(ft,{name:H(Be),desc:H(Be),author:H(LP),copyright:H(MP),link:rh,time:H(ih),keywords:H(Be),bounds:kP,extensions:Ng}),fP=$(ft,{year:H(Jl),license:H(Be)}),gP=$(ft,{rte:J(UP),trk:J(zP),wpt:J(VP)}),uC=class extends Pg{constructor(e){super(),e=e||{},this.dataProjection=fe("EPSG:4326"),this.readExtensions_=e.readExtensions}handleReadExtensions_(e){e||(e=[]);for(let t=0,n=e.length;t1?s.Document=e:e.length==1&&(s.Placemark=e[0]);let a=tN[n.namespaceURI],l=vi(s,a);return it(o,iN,ti,l,[t],a,this),n}};function oN(i,e){let t=[0,0],n="start",r=i.getImage();if(r){let a=r.getSize();if(a&&a.length==2){let l=r.getScaleArray(),A=r.getAnchor();t[0]=l[0]*(a[0]-A[0]),t[1]=l[1]*(a[1]/2-A[1]),n="left"}}let o=i.getText();return o?(o=o.clone(),o.setFont(o.getFont()||ma.getFont()),o.setScale(o.getScale()||ma.getScale()),o.setFill(o.getFill()||ma.getFill()),o.setStroke(o.getStroke()||BC)):o=ma.clone(),o.setText(e),o.setOffsetX(t[0]),o.setOffsetY(t[1]),o.setTextAlign(n),new ci({image:r,text:o})}function sN(i,e,t,n,r){return function(o,s){let a=r,l="",A=[];if(a){let h=o.getGeometry();if(h)if(h instanceof Pi)A=h.getGeometriesArrayRecursive().filter(function(u){let f=u.getType();return f==="Point"||f==="MultiPoint"}),a=A.length>0;else{let u=h.getType();a=u==="Point"||u==="MultiPoint"}}a&&(l=o.get("name"),a=a&&!!l,a&&/&[^&]+;/.test(l)&&(Og||(Og=document.createElement("textarea")),Og.innerHTML=l,l=Og.value));let c=t;if(i?c=i:e&&(c=fT(e,t,n)),a){let h=oN(c[0],l);if(A.length>0){h.setGeometry(new Pi(A));let u=new ci({geometry:c[0].getGeometry(),image:null,fill:c[0].getFill(),stroke:c[0].getStroke(),text:null});return[h,u].concat(c.slice(1))}return h}return c}}function fT(i,e,t){return Array.isArray(i)?i:typeof i=="string"?fT(t[i],e,t):e}function Hg(i){let e=vn(i,!1),t=/^\s*#?\s*([0-9A-Fa-f]{8})\s*$/.exec(e);if(t){let n=t[1];return[parseInt(n.substr(6,2),16),parseInt(n.substr(4,2),16),parseInt(n.substr(2,2),16),parseInt(n.substr(0,2),16)/255]}}function gT(i){let e=vn(i,!1),t=[];e=e.replace(/\s*,\s*/g,",");let n=/^\s*([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?),([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|,|$)(?:([+\-]?\d*\.?\d+(?:e[+\-]?\d+)?)(?:\s+|$))?\s*/i,r;for(;r=n.exec(e);){let o=parseFloat(r[1]),s=parseFloat(r[2]),a=r[3]?parseFloat(r[3]):0;t.push(o,s,a),e=e.substr(r[0].length)}if(e==="")return t}function dT(i){let e=vn(i,!1).trim(),t=i.baseURI;return(!t||t=="about:blank")&&(t=window.location.href),t?new URL(e,t).href:e}function pT(i){let e=vn(i,!1).trim().replace(/^(?!.*#)/,"#"),t=i.baseURI;return(!t||t=="about:blank")&&(t=window.location.href),t?new URL(e,t).href:e}function aN(i){let e=i.getAttribute("xunits"),t=i.getAttribute("yunits"),n;return e!=="insetPixels"?t!=="insetPixels"?n="bottom-left":n="top-left":t!=="insetPixels"?n="bottom-right":n="top-right",{x:parseFloat(i.getAttribute("x")),xunits:sT[e],y:parseFloat(i.getAttribute("y")),yunits:sT[t],origin:n}}function mT(i){return Ue(i)}var lN=$(oe,{Pair:DN});function ET(i,e){return Le(void 0,lN,i,e,this)}var AN=$(oe,{Icon:H(xN),color:H(Hg),heading:H(Ue),hotSpot:H(aN),scale:H(mT)});function cN(i,e){let t=Le({},AN,i,e);if(!t)return;let n=e[e.length-1],r="Icon"in t?t.Icon:{},o=!("Icon"in t)||Object.keys(r).length>0,s,a=r.href;a?s=a:o&&(s=Yg);let l,A,c,h="bottom-left",u=t.hotSpot;u?(l=[u.x,u.y],A=u.xunits,c=u.yunits,h=u.origin):/^https?:\/\/maps\.(?:google|gstatic)\.com\//.test(s)&&(s.includes("pushpin")?(l=yC,A=ah,c=lh):s.includes("arrow-reverse")?(l=[54,42],A=ah,c=lh):s.includes("paddle")&&(l=[32,1],A=ah,c=lh));let f,g=r.x,p=r.y;g!==void 0&&p!==void 0&&(f=[g,p]);let d,I=r.w,m=r.h;I!==void 0&&m!==void 0&&(d=[I,m]);let C,_=t.heading;_!==void 0&&(C=Cn(_));let y=t.scale,w=t.color;if(o){s==Yg&&(d=Ah);let T=new Qr({anchor:l,anchorOrigin:h,anchorXUnits:A,anchorYUnits:c,crossOrigin:this.crossOrigin_,offset:f,offsetOrigin:"bottom-left",rotation:C,scale:y,size:d,src:this.iconUrlFunction_(s),color:w}),E=T.getScaleArray()[0],x=T.getSize();if(x===null){let B=T.getImageState();if(B===ie.IDLE||B===ie.LOADING){let R=function(){let v=T.getImageState();if(!(v===ie.IDLE||v===ie.LOADING)){let D=T.getSize();if(D&&D.length==2){let Q=Vg(D);T.setScale(E*Q)}T.unlistenImageChange(R)}};T.listenImageChange(R),B===ie.IDLE&&T.load()}}else if(x.length==2){let B=Vg(x);T.setScale(E*B)}n.imageStyle=T}else n.imageStyle=SC}var hN=$(oe,{color:H(Hg),scale:H(mT)});function uN(i,e){let t=Le({},hN,i,e);if(!t)return;let n=e[e.length-1],r=new js({fill:new Ai({color:"color"in t?t.color:$l}),scale:t.scale});n.textStyle=r}var fN=$(oe,{color:H(Hg),width:H(Ue)});function gN(i,e){let t=Le({},fN,i,e);if(!t)return;let n=e[e.length-1],r=new _i({color:"color"in t?t.color:$l,width:"width"in t?t.width:1});n.strokeStyle=r}var dN=$(oe,{color:H(Hg),fill:H(Do),outline:H(Do)});function pN(i,e){let t=Le({},dN,i,e);if(!t)return;let n=e[e.length-1],r=new Ai({color:"color"in t?t.color:$l});n.fillStyle=r;let o=t.fill;o!==void 0&&(n.fill=o);let s=t.outline;s!==void 0&&(n.outline=s)}var mN=$(oe,{coordinates:kg(gT)});function IT(i,e){return Le(null,mN,i,e)}function EN(i,e){let n=e[e.length-1].coordinates,r=vn(i,!1),s=/^\s*([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s+([+\-]?\d+(?:\.\d*)?(?:e[+\-]?\d*)?)\s*$/i.exec(r);if(s){let a=parseFloat(s[1]),l=parseFloat(s[2]),A=parseFloat(s[3]);n.push([a,l,A])}else n.push([])}var IN=$(Fo,{Track:Sn(CT)});function CN(i,e){let t=Le([],IN,i,e);if(t)return new Zt(t)}var yN=$(oe,{when:qN},$(Fo,{coord:EN}));function CT(i,e){let t=Le({coordinates:[],whens:[]},yN,i,e);if(!t)return;let n=[],r=t.coordinates,o=t.whens;for(let s=0,a=Math.min(r.length,o.length);s0&&e[e.length-1].push(...t)}var YN=$(oe,{LinearRing:kg(IT)});function VN(i,e){let t=Le(void 0,YN,i,e);if(t){let n=e[e.length-1];n[0]=t}}function HN(i,e){Vr(ZP,i,e)}function qN(i,e){let n=e[e.length-1].whens,r=vn(i,!1),o=Date.parse(r);n.push(isNaN(o)?0:o)}function Kg(i,e){let t=Nt(e),r=[(t.length==4?t[3]:1)*255,t[2],t[1],t[0]];for(let o=0;o<4;++o){let s=Math.floor(r[o]).toString(16);r[o]=s.length==1?"0"+s:s}Ye(i,r.join(""))}function KN(i,e,t){let n=t[t.length-1],r=n.layout,o=n.stride,s;if(r=="XY"||r=="XYM")s=2;else if(r=="XYZ"||r=="XYZM")s=3;else throw new Error("Invalid geometry layout");let a=e.length,l="";if(a>0){l+=e[0];for(let A=1;A0){let f=vi(r,s);it(n,CC,yG,[{names:s,values:f}],t)}let h=t[0],u=e.getGeometry();u&&(u=Ot(u,!0,h)),it(n,CC,TT,[u],t)}var _G=$(oe,["extrude","tessellate","altitudeMode","coordinates"]),xG=$(oe,{extrude:J(pa),tessellate:J(pa),altitudeMode:J(Ye),coordinates:J(KN)});function Zl(i,e,t){let n=e.getFlatCoordinates(),r={node:i};r.layout=e.getLayout(),r.stride=e.getStride();let o=e.getProperties();o.coordinates=n;let s=t[t.length-1].node,a=_G[s.namespaceURI],l=vi(o,a);it(r,xG,ti,l,t,a)}var BG=$(oe,["color","fill","outline"]),hT=$(oe,{outerBoundaryIs:J(cT),innerBoundaryIs:J(cT)}),wG=Tn("innerBoundaryIs"),vG=Tn("outerBoundaryIs");function bT(i,e,t){let n=e.getLinearRings(),r=n.shift(),o={node:i};it(o,hT,wG,n,t),it(o,hT,vG,[r],t)}var SG=$(oe,{color:J(Kg),fill:J(pa),outline:J(pa)});function TG(i,e,t){let n={node:i},r=e.getFill(),o=e.getStroke(),s={color:r?r.getColor():void 0,fill:r?void 0:!1,outline:o?void 0:!1},a=t[t.length-1].node,l=BG[a.namespaceURI],A=vi(s,l);it(n,SG,ti,A,t,l)}function DT(i,e){Si(i,Math.round(e*1e6)/1e6)}var RG=$(oe,["IconStyle","LabelStyle","LineStyle","PolyStyle"]),QG=$(oe,{IconStyle:J(sG),LabelStyle:J(AG),LineStyle:J(uG),PolyStyle:J(TG)});function bG(i,e,t){let n={node:i},r={};if(e.pointStyles.length){let l=e.pointStyles[0].getText();l&&(r.LabelStyle=l);let A=e.pointStyles[0].getImage();A&&typeof A.getSrc=="function"&&(r.IconStyle=A)}if(e.lineStyles.length){let l=e.lineStyles[0].getStroke();l&&(r.LineStyle=l)}if(e.polyStyles.length){let l=e.polyStyles[0].getStroke();l&&!r.LineStyle&&(r.LineStyle=l),r.PolyStyle=e.polyStyles[0]}let o=t[t.length-1].node,s=RG[o.namespaceURI],a=vi(r,s);it(n,QG,ti,a,t,s)}function DG(i,e){i.setAttribute("x",String(e.x)),i.setAttribute("y",String(e.y)),i.setAttribute("xunits",e.xunits),i.setAttribute("yunits",e.yunits)}var ch=vC;var FT=23283064365386963e-26,FG=12,LT=typeof TextDecoder>"u"?null:new TextDecoder("utf-8"),QC=0,Xg=1,hh=2,jg=5,uh=class{constructor(e=new Uint8Array(16)){this.buf=ArrayBuffer.isView(e)?e:new Uint8Array(e),this.dataView=new DataView(this.buf.buffer),this.pos=0,this.type=0,this.length=this.buf.length}readFields(e,t,n=this.length){for(;this.pos>3,s=this.pos;this.type=r&7,e(o,t,this),this.pos===s&&this.skip(r)}return t}readMessage(e,t){return this.readFields(e,t,this.readVarint()+this.pos)}readFixed32(){let e=this.dataView.getUint32(this.pos,!0);return this.pos+=4,e}readSFixed32(){let e=this.dataView.getInt32(this.pos,!0);return this.pos+=4,e}readFixed64(){let e=this.dataView.getUint32(this.pos,!0)+this.dataView.getUint32(this.pos+4,!0)*4294967296;return this.pos+=8,e}readSFixed64(){let e=this.dataView.getUint32(this.pos,!0)+this.dataView.getInt32(this.pos+4,!0)*4294967296;return this.pos+=8,e}readFloat(){let e=this.dataView.getFloat32(this.pos,!0);return this.pos+=4,e}readDouble(){let e=this.dataView.getFloat64(this.pos,!0);return this.pos+=8,e}readVarint(e){let t=this.buf,n,r;return r=t[this.pos++],n=r&127,r<128||(r=t[this.pos++],n|=(r&127)<<7,r<128)||(r=t[this.pos++],n|=(r&127)<<14,r<128)||(r=t[this.pos++],n|=(r&127)<<21,r<128)?n:(r=t[this.pos],n|=(r&15)<<28,LG(n,e,this))}readVarint64(){return this.readVarint(!0)}readSVarint(){let e=this.readVarint();return e%2===1?(e+1)/-2:e/2}readBoolean(){return!!this.readVarint()}readString(){let e=this.readVarint()+this.pos,t=this.pos;return this.pos=e,e-t>=FG&<?LT.decode(this.buf.subarray(t,e)):KG(this.buf,t,e)}readBytes(){let e=this.readVarint()+this.pos,t=this.buf.subarray(this.pos,e);return this.pos=e,t}readPackedVarint(e=[],t){let n=this.readPackedEnd();for(;this.pos127;);else if(t===hh)this.pos=this.readVarint()+this.pos;else if(t===jg)this.pos+=4;else if(t===Xg)this.pos+=8;else throw new Error(`Unimplemented type: ${t}`)}writeTag(e,t){this.writeVarint(e<<3|t)}realloc(e){let t=this.length||16;for(;t268435455||e<0){MG(e,this);return}this.realloc(4),this.buf[this.pos++]=e&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=(e>>>=7)&127|(e>127?128:0),!(e<=127)&&(this.buf[this.pos++]=e>>>7&127)))}writeSVarint(e){this.writeVarint(e<0?-e*2-1:e*2)}writeBoolean(e){this.writeVarint(+e)}writeString(e){e=String(e),this.realloc(e.length*4),this.pos++;let t=this.pos;this.pos=XG(this.buf,e,this.pos);let n=this.pos-t;n>=128&&MT(t,n,this),this.pos=t-1,this.writeVarint(n),this.pos+=n}writeFloat(e){this.realloc(4),this.dataView.setFloat32(this.pos,e,!0),this.pos+=4}writeDouble(e){this.realloc(8),this.dataView.setFloat64(this.pos,e,!0),this.pos+=8}writeBytes(e){let t=e.length;this.writeVarint(t),this.realloc(t);for(let n=0;n=128&&MT(n,r,this),this.pos=n-1,this.writeVarint(r),this.pos+=r}writeMessage(e,t,n){this.writeTag(e,hh),this.writeRawMessage(t,n)}writePackedVarint(e,t){t.length&&this.writeMessage(e,NG,t)}writePackedSVarint(e,t){t.length&&this.writeMessage(e,GG,t)}writePackedBoolean(e,t){t.length&&this.writeMessage(e,zG,t)}writePackedFloat(e,t){t.length&&this.writeMessage(e,OG,t)}writePackedDouble(e,t){t.length&&this.writeMessage(e,UG,t)}writePackedFixed32(e,t){t.length&&this.writeMessage(e,YG,t)}writePackedSFixed32(e,t){t.length&&this.writeMessage(e,VG,t)}writePackedFixed64(e,t){t.length&&this.writeMessage(e,HG,t)}writePackedSFixed64(e,t){t.length&&this.writeMessage(e,qG,t)}writeBytesField(e,t){this.writeTag(e,hh),this.writeBytes(t)}writeFixed32Field(e,t){this.writeTag(e,jg),this.writeFixed32(t)}writeSFixed32Field(e,t){this.writeTag(e,jg),this.writeSFixed32(t)}writeFixed64Field(e,t){this.writeTag(e,Xg),this.writeFixed64(t)}writeSFixed64Field(e,t){this.writeTag(e,Xg),this.writeSFixed64(t)}writeVarintField(e,t){this.writeTag(e,QC),this.writeVarint(t)}writeSVarintField(e,t){this.writeTag(e,QC),this.writeSVarint(t)}writeStringField(e,t){this.writeTag(e,hh),this.writeString(t)}writeFloatField(e,t){this.writeTag(e,jg),this.writeFloat(t)}writeDoubleField(e,t){this.writeTag(e,Xg),this.writeDouble(t)}writeBooleanField(e,t){this.writeVarintField(e,+t)}};function LG(i,e,t){let n=t.buf,r,o;if(o=n[t.pos++],r=(o&112)>>4,o<128||(o=n[t.pos++],r|=(o&127)<<3,o<128)||(o=n[t.pos++],r|=(o&127)<<10,o<128)||(o=n[t.pos++],r|=(o&127)<<17,o<128)||(o=n[t.pos++],r|=(o&127)<<24,o<128)||(o=n[t.pos++],r|=(o&1)<<31,o<128))return eA(i,r,e);throw new Error("Expected varint not more than 10 bytes")}function eA(i,e,t){return t?e*4294967296+(i>>>0):(e>>>0)*4294967296+(i>>>0)}function MG(i,e){let t,n;if(i>=0?(t=i%4294967296|0,n=i/4294967296|0):(t=~(-i%4294967296),n=~(-i/4294967296),t^4294967295?t=t+1|0:(t=0,n=n+1|0)),i>=18446744073709552e3||i<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),kG(t,n,e),PG(n,e)}function kG(i,e,t){t.buf[t.pos++]=i&127|128,i>>>=7,t.buf[t.pos++]=i&127|128,i>>>=7,t.buf[t.pos++]=i&127|128,i>>>=7,t.buf[t.pos++]=i&127|128,i>>>=7,t.buf[t.pos]=i&127}function PG(i,e){let t=(i&7)<<4;e.buf[e.pos++]|=t|((i>>>=3)?128:0),i&&(e.buf[e.pos++]=i&127|((i>>>=7)?128:0),i&&(e.buf[e.pos++]=i&127|((i>>>=7)?128:0),i&&(e.buf[e.pos++]=i&127|((i>>>=7)?128:0),i&&(e.buf[e.pos++]=i&127|((i>>>=7)?128:0),i&&(e.buf[e.pos++]=i&127)))))}function MT(i,e,t){let n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(Math.LN2*7));t.realloc(n);for(let r=t.pos-1;r>=i;r--)t.buf[r+n]=t.buf[r]}function NG(i,e){for(let t=0;t239?4:o>223?3:o>191?2:1;if(r+a>t)break;let l,A,c;a===1?o<128&&(s=o):a===2?(l=i[r+1],(l&192)===128&&(s=(o&31)<<6|l&63,s<=127&&(s=null))):a===3?(l=i[r+1],A=i[r+2],(l&192)===128&&(A&192)===128&&(s=(o&15)<<12|(l&63)<<6|A&63,(s<=2047||s>=55296&&s<=57343)&&(s=null))):a===4&&(l=i[r+1],A=i[r+2],c=i[r+3],(l&192)===128&&(A&192)===128&&(c&192)===128&&(s=(o&15)<<18|(l&63)<<12|(A&63)<<6|c&63,(s<=65535||s>=1114112)&&(s=null))),s===null?(s=65533,a=1):s>65535&&(s-=65536,n+=String.fromCharCode(s>>>10&1023|55296),s=56320|s&1023),n+=String.fromCharCode(s),r+=a}return n}function XG(i,e,t){for(let n=0,r,o;n55295&&r<57344)if(o)if(r<56320){i[t++]=239,i[t++]=191,i[t++]=189,o=r;continue}else r=o-55296<<10|r-56320|65536,o=null;else{r>56319||n+1===e.length?(i[t++]=239,i[t++]=191,i[t++]=189):o=r;continue}else o&&(i[t++]=239,i[t++]=191,i[t++]=189,o=null);r<128?i[t++]=r:(r<2048?i[t++]=r>>6|192:(r<65536?i[t++]=r>>12|224:(i[t++]=r>>18|240,i[t++]=r>>12&63|128),i[t++]=r>>6&63|128),i[t++]=r&63|128)}return t}var bC=class extends Es{constructor(e){super(),e=e||{},this.dataProjection=new Pn({code:"",units:"tile-pixels"}),this.featureClass=e.featureClass?e.featureClass:yi,this.geometryName_=e.geometryName,this.layerName_=e.layerName?e.layerName:"layer",this.layers_=e.layers?e.layers:null,this.idProperty_=e.idProperty,this.supportedMediaTypes=["application/vnd.mapbox-vector-tile","application/x-protobuf"]}readRawGeometry_(e,t,n,r){e.pos=t.geometry;let o=e.readVarint()+e.pos,s=1,a=0,l=0,A=0,c=0,h=0;for(;e.pos>3}if(a--,s===1||s===2)l+=e.readSVarint(),A+=e.readSVarint(),s===1&&c>h&&(r.push(c),h=c),n.push(l,A),c+=2;else if(s===7)c>h&&(n.push(n[h],n[h+1]),c+=2);else throw new Error("Invalid command found in the PBF")}c>h&&(r.push(c),h=c)}createFeature_(e,t,n){let r=t.type;if(r===0)return null;let o,s=t.properties,a;this.idProperty_?(a=s[this.idProperty_],delete s[this.idProperty_]):a=t.id,s[this.layerName_]=t.layer.name;let l=[],A=[];this.readRawGeometry_(e,t,l,A);let c=ZG(r,A.length);if(this.featureClass===yi)o=new this.featureClass(c,l,A,2,s,a),o.transform(n.dataProjection);else{let h;if(c=="Polygon"){let g=Ha(l,A);h=g.length>1?new Ni(l,"XY",g):new Dt(l,"XY",A)}else h=c==="Point"?new at(l,"XY"):c==="LineString"?new ht(l,"XY"):c==="MultiPoint"?new yn(l,"XY"):c==="MultiLineString"?new Zt(l,"XY",A):null;let u=this.featureClass;o=new u,this.geometryName_&&o.setGeometryName(this.geometryName_);let f=Ot(h,!1,n);o.setGeometry(f),a!==void 0&&o.setId(a),o.setProperties(s,!0)}return o}getType(){return"arraybuffer"}readFeatures(e,t){let n=this.layers_;t=this.adaptOptions(t);let r=fe(t.dataProjection);r.setWorldExtent(t.extent),t.dataProjection=r;let o=new uh(e),s=o.readFields(jG,{}),a=[];for(let l in s){if(n&&!n.includes(l))continue;let A=s[l],c=A?[0,0,A.extent,A.extent]:null;r.setExtent(c);for(let h=0,u=A.length;h>3,n=i===1?t.readString():i===2?t.readFloat():i===3?t.readDouble():i===4?t.readVarint64():i===5?t.readVarint():i===6?t.readSVarint():i===7?t.readBoolean():null;e.values.push(n)}}function JG(i,e,t){if(i==1)e.id=t.readVarint();else if(i==2){let n=t.readVarint()+t.pos;for(;t.pos0&&t.pop(),n>=0){let s=e[n];for(let a=0,l=s.length;a=0;--a)t.push(s[a].slice(0))}return t}function t3(i,e,t){let n=i.coordinates;return e&&t&&FC(n,e,t),new at(n)}function i3(i,e,t){let n=i.coordinates;if(e&&t)for(let r=0,o=n.length;r>1|($e&21845)<<1,Lo=(Lo&52428)>>2|(Lo&13107)<<2,Lo=(Lo&61680)>>4|(Lo&3855)<<4,kC[$e]=((Lo&65280)>>8|(Lo&255)<<8)>>1;var Lo,$e,dh=function(i,e,t){for(var n=i.length,r=0,o=new tA(e);r>l]=A}else for(a=new tA(n),r=0;r>15-i[r]);return a},ph=new Qn(288);for($e=0;$e<144;++$e)ph[$e]=8;var $e;for($e=144;$e<256;++$e)ph[$e]=9;var $e;for($e=256;$e<280;++$e)ph[$e]=7;var $e;for($e=280;$e<288;++$e)ph[$e]=8;var $e,YT=new Qn(32);for($e=0;$e<32;++$e)YT[$e]=5;var $e;var g3=dh(ph,9,1);var d3=dh(YT,5,1),LC=function(i){for(var e=i[0],t=1;te&&(e=i[t]);return e},mr=function(i,e,t){var n=e/8|0;return(i[n]|i[n+1]<<8)>>(e&7)&t},MC=function(i,e){var t=e/8|0;return(i[t]|i[t+1]<<8|i[t+2]<<16)>>(e&7)},p3=function(i){return(i+7)/8|0},m3=function(i,e,t){return(e==null||e<0)&&(e=0),(t==null||t>i.length)&&(t=i.length),new Qn(i.subarray(e,t))};var E3=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],Rn=function(i,e,t){var n=new Error(e||E3[i]);if(n.code=i,Error.captureStackTrace&&Error.captureStackTrace(n,Rn),!t)throw n;return n},PC=function(i,e,t,n){var r=i.length,o=n?n.length:0;if(!r||e.f&&!e.l)return t||new Qn(0);var s=!t,a=s||e.i!=2,l=e.i;s&&(t=new Qn(r*3));var A=function(ve){var Ve=t.length;if(ve>Ve){var Me=new Qn(Math.max(Ve*2,ve));Me.set(t),t=Me}},c=e.f||0,h=e.p||0,u=e.b||0,f=e.l,g=e.d,p=e.m,d=e.n,I=r*8;do{if(!f){c=mr(i,h,1);var m=mr(i,h+1,3);if(h+=3,m)if(m==1)f=g3,g=d3,p=9,d=5;else if(m==2){var w=mr(i,h,31)+257,T=mr(i,h+10,15)+4,E=w+mr(i,h+5,31)+1;h+=14;for(var x=new Qn(E),B=new Qn(19),R=0;R>4;if(C<16)x[R++]=C;else{var b=0,F=0;for(C==16?(F=3+mr(i,h,3),h+=2,b=x[R-1]):C==17?(F=3+mr(i,h,7),h+=3):C==18&&(F=11+mr(i,h,127),h+=7);F--;)x[R++]=b}}var M=x.subarray(0,w),k=x.subarray(w);p=LC(M),d=LC(k),f=dh(M,p,1),g=dh(k,d,1)}else Rn(1);else{var C=p3(h)+4,_=i[C-4]|i[C-3]<<8,y=C+_;if(y>r){l&&Rn(0);break}a&&A(u+_),t.set(i.subarray(C,y),u),e.b=u+=_,e.p=h=y*8,e.f=c;continue}if(h>I){l&&Rn(0);break}}a&&A(u+131072);for(var P=(1<>4;if(h+=b&15,h>I){l&&Rn(0);break}if(b||Rn(2),j<256)t[u++]=j;else if(j==256){N=h,f=null;break}else{var X=j-254;if(j>264){var R=j-257,z=PT[R];X=mr(i,h,(1<>4;q||Rn(3),h+=q&15;var k=f3[Z];if(Z>3){var z=NT[Z];k+=MC(i,h)&(1<I){l&&Rn(0);break}a&&A(u+131072);var ge=u+X;if(u>3&1)+(e>>4&1);n>0;n-=!i[t++]);return t+(e&2)},y3=function(i){var e=i.length;return(i[e-4]|i[e-3]<<8|i[e-2]<<16|i[e-1]<<24)>>>0};var _3=function(i,e){return((i[0]&15)!=8||i[0]>>4>7||(i[0]<<8|i[1])%31)&&Rn(6,"invalid zlib data"),(i[1]>>5&1)==+!e&&Rn(6,"invalid zlib data: "+(i[1]&32?"need":"unexpected")+" dictionary"),(i[1]>>3&4)+2};function x3(i,e){return PC(i,{i:2},e&&e.out,e&&e.dictionary)}function B3(i,e){var t=C3(i);return t+8>i.length&&Rn(6,"invalid gzip data"),PC(i.subarray(t,-8),{i:2},e&&e.out||new Qn(y3(i)),e&&e.dictionary)}function w3(i,e){return PC(i.subarray(_3(i,e&&e.dictionary),-4),{i:2},e&&e.out,e&&e.dictionary)}function VT(i,e){return i[0]==31&&i[1]==139&&i[2]==8?B3(i,e):(i[0]&15)!=8||i[0]>>4>7||(i[0]<<8|i[1])%31?x3(i,e):w3(i,e)}var v3=typeof TextDecoder<"u"&&new TextDecoder,S3=0;try{v3.decode(I3,{stream:!0}),S3=1}catch{}var T3=Object.defineProperty,mh=Math.pow,rt=(i,e)=>T3(i,"name",{value:e,configurable:!0}),ii=(i,e,t)=>new Promise((n,r)=>{var o=l=>{try{a(t.next(l))}catch(A){r(A)}},s=l=>{try{a(t.throw(l))}catch(A){r(A)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(o,s);a((t=t.apply(i,e)).next())}),Gle=rt((i,e)=>{let t=!1,n="",r=L.GridLayer.extend({createTile:rt((o,s)=>{let a=document.createElement("img"),l=new AbortController,A=l.signal;return a.cancel=()=>{l.abort()},t||(i.getHeader().then(c=>{c.tileType===1?console.error("Error: archive contains MVT vector tiles, but leafletRasterLayer is for displaying raster tiles. See https://github.com/protomaps/PMTiles/tree/main/js for details."):c.tileType===2?n="image/png":c.tileType===3?n="image/jpeg":c.tileType===4?n="image/webp":c.tileType===5&&(n="image/avif")}),t=!0),i.getZxy(o.z,o.x,o.y,A).then(c=>{if(c){let h=new Blob([c.data],{type:n}),u=window.URL.createObjectURL(h);a.src=u,a.cancel=void 0,s(void 0,a)}}).catch(c=>{if(c.name!=="AbortError")throw c}),a},"createTile"),_removeTile:rt(function(o){let s=this._tiles[o];s&&(s.el.cancel&&s.el.cancel(),s.el.width=0,s.el.height=0,s.el.deleted=!0,L.DomUtil.remove(s.el),delete this._tiles[o],this.fire("tileunload",{tile:s.el,coords:this._keyToTileCoords(o)}))},"_removeTile")});return new r(e)},"leafletRasterLayer"),R3=rt(i=>(e,t)=>{if(t instanceof AbortController)return i(e,t);let n=new AbortController;return i(e,n).then(r=>t(void 0,r.data,r.cacheControl||"",r.expires||""),r=>t(r)).catch(r=>t(r)),{cancel:rt(()=>n.abort(),"cancel")}},"v3compat"),Q3=class{constructor(e){this.tilev4=rt((t,n)=>ii(this,null,function*(){if(t.type==="json"){let f=t.url.substr(10),g=this.tiles.get(f);if(g||(g=new Eh(f),this.tiles.set(f,g)),this.metadata)return{data:yield g.getTileJson(t.url)};let p=yield g.getHeader();return(p.minLon>=p.maxLon||p.minLat>=p.maxLat)&&console.error(`Bounds of PMTiles archive ${p.minLon},${p.minLat},${p.maxLon},${p.maxLat} are not valid.`),{data:{tiles:[`${t.url}/{z}/{x}/{y}`],minzoom:p.minZoom,maxzoom:p.maxZoom,bounds:[p.minLon,p.minLat,p.maxLon,p.maxLat]}}}let r=new RegExp(/pmtiles:\/\/(.+)\/(\d+)\/(\d+)\/(\d+)/),o=t.url.match(r);if(!o)throw new Error("Invalid PMTiles protocol URL");let s=o[1],a=this.tiles.get(s);a||(a=new Eh(s),this.tiles.set(s,a));let l=o[2],A=o[3],c=o[4],h=yield a.getHeader(),u=yield a?.getZxy(+l,+A,+c,n.signal);if(u)return{data:new Uint8Array(u.data),cacheControl:u.cacheControl,expires:u.expires};if(h.tileType===1){if(this.errorOnMissingTile)throw new Error("Tile not found.");return{data:new Uint8Array}}return{data:null}}),"tilev4"),this.tile=R3(this.tilev4),this.tiles=new Map,this.metadata=e?.metadata||!1,this.errorOnMissingTile=e?.errorOnMissingTile||!1}add(e){this.tiles.set(e.source.getKey(),e)}get(e){return this.tiles.get(e)}};rt(Q3,"Protocol");function HT(i,e){return(e>>>0)*4294967296+(i>>>0)}rt(HT,"toNum");function qT(i,e){let t=e.buf,n=t[e.pos++],r=(n&112)>>4;if(n<128||(n=t[e.pos++],r|=(n&127)<<3,n<128)||(n=t[e.pos++],r|=(n&127)<<10,n<128)||(n=t[e.pos++],r|=(n&127)<<17,n<128)||(n=t[e.pos++],r|=(n&127)<<24,n<128)||(n=t[e.pos++],r|=(n&1)<<31,n<128))return HT(i,r);throw new Error("Expected varint not more than 10 bytes")}rt(qT,"readVarintRemainder");function iA(i){let e=i.buf,t=e[i.pos++],n=t&127;return t<128||(t=e[i.pos++],n|=(t&127)<<7,t<128)||(t=e[i.pos++],n|=(t&127)<<14,t<128)||(t=e[i.pos++],n|=(t&127)<<21,t<128)?n:(t=e[i.pos],n|=(t&15)<<28,qT(n,i))}rt(iA,"readVarint");function GC(i,e,t,n){if(n===0){t===1&&(e[0]=i-1-e[0],e[1]=i-1-e[1]);let r=e[0];e[0]=e[1],e[1]=r}}rt(GC,"rotate");function KT(i,e){let t=mh(2,i),n=e,r=e,o=e,s=[0,0],a=1;for(;a26)throw new Error("Tile zoom level exceeds max safe number limit (26)");if(e>mh(2,i)-1||t>mh(2,i)-1)throw new Error("tile x/y outside zoom level bounds");let n=b3[i],r=mh(2,i),o=0,s=0,a=0,l=[e,t],A=r/2;for(;A>0;)o=(l[0]&A)>0?1:0,s=(l[1]&A)>0?1:0,a+=A*A*(3*o^s),GC(A,l,o,s),A=A/2;return n+a}rt(XT,"zxyToTileId");function D3(i){let e=0,t=0;for(let n=0;n<27;n++){let r=(1<i)return KT(n,i-e);e+=r}throw new Error("Tile zoom level exceeds max safe number limit (26)")}rt(D3,"tileIdToZxy");var F3=(i=>(i[i.Unknown=0]="Unknown",i[i.None=1]="None",i[i.Gzip=2]="Gzip",i[i.Brotli=3]="Brotli",i[i.Zstd=4]="Zstd",i))(F3||{});function Jg(i,e){return ii(this,null,function*(){if(e===1||e===0)return i;if(e===2){if(typeof globalThis.DecompressionStream>"u")return VT(new Uint8Array(i));let t=new Response(i).body;if(!t)throw new Error("Failed to read response stream");let n=t.pipeThrough(new globalThis.DecompressionStream("gzip"));return new Response(n).arrayBuffer()}throw new Error("Compression method not supported")})}rt(Jg,"defaultDecompress");var L3=(i=>(i[i.Unknown=0]="Unknown",i[i.Mvt=1]="Mvt",i[i.Png=2]="Png",i[i.Jpeg=3]="Jpeg",i[i.Webp=4]="Webp",i[i.Avif=5]="Avif",i))(L3||{});function jT(i){return i===1?".mvt":i===2?".png":i===3?".jpg":i===4?".webp":i===5?".avif":""}rt(jT,"tileTypeExt");var M3=127;function WT(i,e){let t=0,n=i.length-1;for(;t<=n;){let r=n+t>>1,o=e-i[r].tileId;if(o>0)t=r+1;else if(o<0)n=r-1;else return i[r]}return n>=0&&(i[n].runLength===0||e-i[n].tileId-1,o=/Chrome|Chromium|Edg|OPR|Brave/.test(n);this.chromeWindowsNoCache=!1,r&&o&&(this.chromeWindowsNoCache=!0)}getKey(){return this.url}setHeaders(e){this.customHeaders=e}getBytes(e,t,n,r){return ii(this,null,function*(){let o,s;n?s=n:(o=new AbortController,s=o.signal);let a=new Headers(this.customHeaders);a.set("range",`bytes=${e}-${e+t-1}`);let l;this.mustReload?l="reload":this.chromeWindowsNoCache&&(l="no-store");let A=yield fetch(this.url,{signal:s,cache:l,headers:a});if(e===0&&A.status===416){let u=A.headers.get("Content-Range");if(!u||!u.startsWith("bytes */"))throw new Error("Missing content-length on 416 response");let f=+u.substr(8);A=yield fetch(this.url,{signal:s,cache:"reload",headers:{range:`bytes=0-${f-1}`}})}let c=A.headers.get("Etag");if(c!=null&&c.startsWith("W/")&&(c=null),A.status===416||r&&c&&c!==r)throw this.mustReload=!0,new NC(`Server returned non-matching ETag ${r} after one retry. Check browser extensions and servers for issues that may affect correct ETag headers.`);if(A.status>=300)throw new Error(`Bad response code: ${A.status}`);let h=A.headers.get("Content-Length");if(A.status===200&&(!h||+h>t))throw o&&o.abort(),new Error("Server returned no content-length header or content-length exceeding request. Check that your storage backend supports HTTP Byte Serving.");return{data:yield A.arrayBuffer(),etag:c||void 0,cacheControl:A.headers.get("Cache-Control")||void 0,expires:A.headers.get("Expires")||void 0}})}};rt(JT,"FetchSource");var P3=JT;function Zn(i,e){let t=i.getUint32(e+4,!0),n=i.getUint32(e+0,!0);return t*mh(2,32)+n}rt(Zn,"getUint64");function $T(i,e){let t=new DataView(i),n=t.getUint8(7);if(n>3)throw new Error(`Archive is spec version ${n} but this library supports up to spec version 3`);return{specVersion:n,rootDirectoryOffset:Zn(t,8),rootDirectoryLength:Zn(t,16),jsonMetadataOffset:Zn(t,24),jsonMetadataLength:Zn(t,32),leafDirectoryOffset:Zn(t,40),leafDirectoryLength:Zn(t,48),tileDataOffset:Zn(t,56),tileDataLength:Zn(t,64),numAddressedTiles:Zn(t,72),numTileEntries:Zn(t,80),numTileContents:Zn(t,88),clustered:t.getUint8(96)===1,internalCompression:t.getUint8(97),tileCompression:t.getUint8(98),tileType:t.getUint8(99),minZoom:t.getUint8(100),maxZoom:t.getUint8(101),minLon:t.getInt32(102,!0)/1e7,minLat:t.getInt32(106,!0)/1e7,maxLon:t.getInt32(110,!0)/1e7,maxLat:t.getInt32(114,!0)/1e7,centerZoom:t.getUint8(118),centerLon:t.getInt32(119,!0)/1e7,centerLat:t.getInt32(123,!0)/1e7,etag:e}}rt($T,"bytesToHeader");function OC(i){let e={buf:new Uint8Array(i),pos:0},t=iA(e),n=[],r=0;for(let o=0;o0?n[o].offset=n[o-1].offset+n[o-1].length:n[o].offset=s-1}return n}rt(OC,"deserializeIndex");var ZT=class extends Error{};rt(ZT,"EtagMismatch");var NC=ZT;function UC(i,e){return ii(this,null,function*(){let t=yield i.getBytes(0,16384);if(new DataView(t.data).getUint16(0,!0)!==19792)throw new Error("Wrong magic number for PMTiles archive");let n=t.data.slice(0,M3),r=$T(n,t.etag),o=t.data.slice(r.rootDirectoryOffset,r.rootDirectoryOffset+r.rootDirectoryLength),s=`${i.getKey()}|${r.etag||""}|${r.rootDirectoryOffset}|${r.rootDirectoryLength}`,a=OC(yield e(o,r.internalCompression));return[r,[s,a.length,a]]})}rt(UC,"getHeaderAndRoot");function zC(i,e,t,n,r){return ii(this,null,function*(){let o=yield i.getBytes(t,n,void 0,r.etag),s=yield e(o.data,r.internalCompression),a=OC(s);if(a.length===0)throw new Error("Empty directory is invalid");return a})}rt(zC,"getDirectory");var N3=class{constructor(e=100,t=!0,n=Jg){this.cache=new Map,this.maxCacheEntries=e,this.counter=1,this.decompress=n}getHeader(e){return ii(this,null,function*(){let t=e.getKey(),n=this.cache.get(t);if(n)return n.lastUsed=this.counter++,n.data;let r=yield UC(e,this.decompress);return r[1]&&this.cache.set(r[1][0],{lastUsed:this.counter++,data:r[1][2]}),this.cache.set(t,{lastUsed:this.counter++,data:r[0]}),this.prune(),r[0]})}getDirectory(e,t,n,r){return ii(this,null,function*(){let o=`${e.getKey()}|${r.etag||""}|${t}|${n}`,s=this.cache.get(o);if(s)return s.lastUsed=this.counter++,s.data;let a=yield zC(e,this.decompress,t,n,r);return this.cache.set(o,{lastUsed:this.counter++,data:a}),this.prune(),a})}prune(){if(this.cache.size>this.maxCacheEntries){let e=1/0,t;this.cache.forEach((n,r)=>{n.lastUsed{UC(e,this.decompress).then(a=>{a[1]&&this.cache.set(a[1][0],{lastUsed:this.counter++,data:Promise.resolve(a[1][2])}),o(a[0]),this.prune()}).catch(a=>{s(a)})});return this.cache.set(t,{lastUsed:this.counter++,data:r}),r})}getDirectory(e,t,n,r){return ii(this,null,function*(){let o=`${e.getKey()}|${r.etag||""}|${t}|${n}`,s=this.cache.get(o);if(s)return s.lastUsed=this.counter++,yield s.data;let a=new Promise((l,A)=>{zC(e,this.decompress,t,n,r).then(c=>{l(c),this.prune()}).catch(c=>{A(c)})});return this.cache.set(o,{lastUsed:this.counter++,data:a}),a})}prune(){if(this.cache.size>=this.maxCacheEntries){let e=1/0,t;this.cache.forEach((n,r)=>{n.lastUsed{this.getHeader(e).then(s=>{r(),this.invalidations.delete(t)}).catch(s=>{o(s)})});this.invalidations.set(t,n)})}};rt(eR,"SharedPromiseCache");var G3=eR,tR=class{constructor(e,t,n){typeof e=="string"?this.source=new P3(e):this.source=e,n?this.decompress=n:this.decompress=Jg,t?this.cache=t:this.cache=new G3}getHeader(){return ii(this,null,function*(){return yield this.cache.getHeader(this.source)})}getZxyAttempt(e,t,n,r){return ii(this,null,function*(){let o=XT(e,t,n),s=yield this.cache.getHeader(this.source);if(es.maxZoom)return;let a=s.rootDirectoryOffset,l=s.rootDirectoryLength;for(let A=0;A<=3;A++){let c=yield this.cache.getDirectory(this.source,a,l,s),h=WT(c,o);if(h){if(h.runLength>0){let u=yield this.source.getBytes(s.tileDataOffset+h.offset,h.length,r,s.etag);return{data:yield this.decompress(u.data,s.tileCompression),cacheControl:u.cacheControl,expires:u.expires}}a=s.leafDirectoryOffset+h.offset,l=h.length}else return}throw new Error("Maximum directory depth exceeded")})}getZxy(e,t,n,r){return ii(this,null,function*(){try{return yield this.getZxyAttempt(e,t,n,r)}catch(o){if(o instanceof NC)return this.cache.invalidate(this.source),yield this.getZxyAttempt(e,t,n,r);throw o}})}getMetadataAttempt(){return ii(this,null,function*(){let e=yield this.cache.getHeader(this.source),t=yield this.source.getBytes(e.jsonMetadataOffset,e.jsonMetadataLength,void 0,e.etag),n=yield this.decompress(t.data,e.internalCompression),r=new TextDecoder("utf-8");return JSON.parse(r.decode(n))})}getMetadata(){return ii(this,null,function*(){try{return yield this.getMetadataAttempt()}catch(e){if(e instanceof NC)return this.cache.invalidate(this.source),yield this.getMetadataAttempt();throw e}})}getTileJson(e){return ii(this,null,function*(){let t=yield this.getHeader(),n=yield this.getMetadata(),r=jT(t.tileType);return{tilejson:"3.0.0",scheme:"xyz",tiles:[`${e}/{z}/{x}/{y}${r}`],vector_layers:n.vector_layers,attribution:n.attribution,description:n.description,name:n.name,version:n.version,bounds:[t.minLon,t.minLat,t.maxLon,t.maxLat],center:[t.centerLon,t.centerLat,t.centerZoom],minzoom:t.minZoom,maxzoom:t.maxZoom}})}};rt(tR,"PMTiles");var Eh=tR;var rR=Object.defineProperty,iR=Object.getOwnPropertySymbols,O3=Object.prototype.hasOwnProperty,U3=Object.prototype.propertyIsEnumerable,nR=(i,e,t)=>e in i?rR(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,$g=(i,e)=>{for(var t in e||(e={}))O3.call(e,t)&&nR(i,t,e[t]);if(iR)for(var t of iR(e))U3.call(e,t)&&nR(i,t,e[t]);return i},Zg=(i,e)=>rR(i,"name",{value:e,configurable:!0}),z3=(i,e,t)=>new Promise((n,r)=>{var o=l=>{try{a(t.next(l))}catch(A){r(A)}},s=l=>{try{a(t.throw(l))}catch(A){r(A)}},a=l=>l.done?n(l.value):Promise.resolve(l.value).then(o,s);a((t=t.apply(i,e)).next())}),oR=class extends jl{constructor(e){super($g($g({},e),{state:"loading"})),this.loadImage=Zg(n=>new Promise((r,o)=>{let s=new Image;s.addEventListener("load",()=>r(s)),s.addEventListener("error",()=>o(new Error("load failed"))),s.src=n}),"loadImage");let t=new Eh(e.url);t.getHeader().then(n=>{let r=e.projection===void 0?"EPSG:3857":e.projection;this.tileGrid=e.tileGrid||dr({extent:xn(r),maxResolution:e.maxResolution,minZoom:n.minZoom,maxZoom:n.maxZoom,tileSize:e.tileSize}),this.setLoader((o,s,a)=>z3(this,null,function*(){let l=yield t.getZxy(o,s,a);if(!l)return new Uint8Array;let A=URL.createObjectURL(new Blob([l.data])),c=yield this.loadImage(A);return URL.revokeObjectURL(A),c})),this.setState("ready")})}};Zg(oR,"PMTilesRasterSource");var sR=oR,aR=class extends kf{constructor(e){super($g($g({},e),{state:"loading",url:"pmtiles://{z}/{x}/{y}",format:e.format||new fh})),this.tileLoadFunction=Zg((t,n)=>{let r=t,o=new RegExp(/pmtiles:\/\/(\d+)\/(\d+)\/(\d+)/),s=n.match(o);if(!(s&&s.length>=4))throw Error("Could not parse tile URL");let a=+s[1],l=+s[2],A=+s[3];r.setLoader((c,h,u)=>{this.pmtiles_.getZxy(a,l,A).then(f=>{if(f){let g=r.getFormat();r.setFeatures(g.readFeatures(f.data,{extent:c,featureProjection:u})),r.setState(V.LOADED)}else r.setFeatures([]),r.setState(V.EMPTY)}).catch(f=>{r.setFeatures([]),r.setState(V.ERROR)})})},"tileLoadFunction"),this.pmtiles_=new Eh(e.url),this.pmtiles_.getHeader().then(t=>{let n=e.projection||"EPSG:3857",r=e.extent||xn(n);this.tileGrid=e.tileGrid||dr({extent:r,maxResolution:e.maxResolution,maxZoom:e.maxZoom!==void 0?e.maxZoom:t.maxZoom,minZoom:t.minZoom,tileSize:e.tileSize||512}),this.setTileLoadFunction(this.tileLoadFunction),this.setState("ready")})}};Zg(aR,"PMTilesVectorSource");var lR=aR;var AR={OSM:F1,VectorSource:_n,VectorTileSource:kf,GeoTIFFSource:YS,GeoJSONSource:_n,ImageTileSource:jS,TileJSON:JS,PMTilesVectorSource:lR,PMTilesRasterSource:sR};var YC="units",Y3=[1,2,5],Ih=25.4/.28,VC=class extends ut{constructor(e){e=e||{};let t=document.createElement("div");t.style.pointerEvents="none",super({element:t,render:e.render,target:e.target}),this.on,this.once,this.un;let n=e.className!==void 0?e.className:e.bar?"ol-scale-bar":"ol-scale-line";this.innerElement_=document.createElement("div"),this.innerElement_.className=n+"-inner",this.element.className=n+" "+qt,this.element.appendChild(this.innerElement_),this.viewState_=null,this.minWidth_=e.minWidth!==void 0?e.minWidth:64,this.maxWidth_=e.maxWidth,this.renderedVisible_=!1,this.renderedWidth_=void 0,this.renderedHTML_="",this.addChangeListener(YC,this.handleUnitsChanged_),this.setUnits(e.units||"metric"),this.scaleBar_=e.bar||!1,this.scaleBarSteps_=e.steps||4,this.scaleBarText_=e.text||!1,this.dpi_=e.dpi||void 0}getUnits(){return this.get(YC)}handleUnitsChanged_(){this.updateElement_()}setUnits(e){this.set(YC,e)}setDpi(e){this.dpi_=e}updateElement_(){let e=this.viewState_;if(!e){this.renderedVisible_&&(this.element.style.display="none",this.renderedVisible_=!1);return}let t=e.center,n=e.projection,r=this.getUnits(),o=r=="degrees"?"degrees":"m",s=za(n,e.resolution,t,o),a=this.minWidth_*(this.dpi_||Ih)/Ih,l=this.maxWidth_!==void 0?this.maxWidth_*(this.dpi_||Ih)/Ih:void 0,A=a*s,c="";if(r=="degrees"){let C=Ar.degrees;A*=C,A=l){u=p,f=d,g=I;break}else if(f>=a)break;p=u,d=f,I=g,++h}let m=this.scaleBar_?this.createScaleBar(f,u,c):u.toFixed(g<0?-g:0)+" "+c;this.renderedHTML_!=m&&(this.innerElement_.innerHTML=m,this.renderedHTML_=m),this.renderedWidth_!=f&&(this.innerElement_.style.width=f+"px",this.renderedWidth_=f),this.renderedVisible_||(this.element.style.display="",this.renderedVisible_=!0)}createScaleBar(e,t,n){let r=this.getScaleForResolution(),o=r<1?Math.round(1/r).toLocaleString()+" : 1":"1 : "+Math.round(r).toLocaleString(),s=this.scaleBarSteps_,a=e/s,l=[this.createMarker("absolute")];for(let c=0;c
`+this.createMarker("relative")+(c%2===0||s===2?this.createStepText(c,e,!1,t,n):"")+"")}return l.push(this.createStepText(s,e,!0,t,n)),(this.scaleBarText_?`
`+o+"
":"")+l.join("")}createMarker(e){return`
`}createStepText(e,t,n,r,o){let a=(e===0?0:Math.round(r/this.scaleBarSteps_*e*100)/100)+(e===0?"":" "+o),l=e===0?-3:t/this.scaleBarSteps_*-1,A=e===0?0:t/this.scaleBarSteps_*2;return`
`+a+"
"}getScaleForResolution(){let e=za(this.viewState_.projection,this.viewState_.resolution,this.viewState_.center,"m"),t=this.dpi_||Ih,n=1e3/25.4;return e*n*t}render(e){let t=e.frameState;t?this.viewState_=t.viewState:this.viewState_=null,this.updateElement_()}},cR=VC;var hR=["fullscreenchange","webkitfullscreenchange"],uR={ENTERFULLSCREEN:"enterfullscreen",LEAVEFULLSCREEN:"leavefullscreen"},HC=class extends ut{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target}),this.on,this.once,this.un,this.keys_=e.keys!==void 0?e.keys:!1,this.source_=e.source,this.isInFullscreen_=!1,this.boundHandleMapTargetChange_=this.handleMapTargetChange_.bind(this),this.cssClassName_=e.className!==void 0?e.className:"ol-full-screen",this.documentListeners_=[],this.activeClassName_=e.activeClassName!==void 0?e.activeClassName.split(" "):[this.cssClassName_+"-true"],this.inactiveClassName_=e.inactiveClassName!==void 0?e.inactiveClassName.split(" "):[this.cssClassName_+"-false"];let t=e.label!==void 0?e.label:"\u2922";this.labelNode_=typeof t=="string"?document.createTextNode(t):t;let n=e.labelActive!==void 0?e.labelActive:"\xD7";this.labelActiveNode_=typeof n=="string"?document.createTextNode(n):n;let r=e.tipLabel?e.tipLabel:"Toggle full-screen";this.button_=document.createElement("button"),this.button_.title=r,this.button_.setAttribute("type","button"),this.button_.appendChild(this.labelNode_),this.button_.addEventListener(K.CLICK,this.handleClick_.bind(this),!1),this.setClassName_(this.button_,this.isInFullscreen_),this.element.className=`${this.cssClassName_} ${qt} ${nn}`,this.element.appendChild(this.button_)}handleClick_(e){e.preventDefault(),this.handleFullScreen_()}handleFullScreen_(){let e=this.getMap();if(!e)return;let t=e.getOwnerDocument();if(fR(t))if(gR(t))H3(t);else{let n;this.source_?n=typeof this.source_=="string"?t.getElementById(this.source_):this.source_:n=e.getTargetElement(),this.keys_?V3(n):dR(n)}}handleFullScreenChange_(){let e=this.getMap();if(!e)return;let t=this.isInFullscreen_;this.isInFullscreen_=gR(e.getOwnerDocument()),t!==this.isInFullscreen_&&(this.setClassName_(this.button_,this.isInFullscreen_),this.isInFullscreen_?(so(this.labelActiveNode_,this.labelNode_),this.dispatchEvent(uR.ENTERFULLSCREEN)):(so(this.labelNode_,this.labelActiveNode_),this.dispatchEvent(uR.LEAVEFULLSCREEN)),e.updateSize())}setClassName_(e,t){t?(e.classList.remove(...this.inactiveClassName_),e.classList.add(...this.activeClassName_)):(e.classList.remove(...this.activeClassName_),e.classList.add(...this.inactiveClassName_))}setMap(e){let t=this.getMap();t&&t.removeChangeListener(Ct.TARGET,this.boundHandleMapTargetChange_),super.setMap(e),this.handleMapTargetChange_(),e&&e.addChangeListener(Ct.TARGET,this.boundHandleMapTargetChange_)}handleMapTargetChange_(){let e=this.documentListeners_;for(let n=0,r=e.length;nn?(this.direction_=Ch.HORIZONTAL,this.widthLimit_=t-a):(this.direction_=Ch.VERTICAL,this.heightLimit_=n-l),this.sliderInitialized_=!0}handleContainerClick_(e){let t=this.getMap().getView(),n=this.getRelativePosition_(e.offsetX-this.thumbSize_[0]/2,e.offsetY-this.thumbSize_[1]/2),r=this.getResolutionForPosition_(n),o=t.getConstrainedZoom(t.getZoomForResolution(r));t.animateInternal({zoom:o,duration:this.duration_,easing:ln})}handleDraggerStart_(e){if(!this.dragging_&&e.target===this.element.firstElementChild){let t=this.element.firstElementChild;if(this.getMap().getView().beginInteraction(),this.startX_=e.clientX-parseFloat(t.style.left),this.startY_=e.clientY-parseFloat(t.style.top),this.dragging_=!0,this.dragListenerKeys_.length===0){let n=this.handleDraggerDrag_,r=this.handleDraggerEnd_,o=this.getMap().getOwnerDocument();this.dragListenerKeys_.push(ee(o,cn.POINTERMOVE,n,this),ee(o,cn.POINTERUP,r,this))}}}handleDraggerDrag_(e){if(this.dragging_){let t=e.clientX-this.startX_,n=e.clientY-this.startY_,r=this.getRelativePosition_(t,n);this.currentResolution_=this.getResolutionForPosition_(r),this.getMap().getView().setResolution(this.currentResolution_)}}handleDraggerEnd_(e){this.dragging_&&(this.getMap().getView().endInteraction(),this.dragging_=!1,this.startX_=void 0,this.startY_=void 0,this.dragListenerKeys_.forEach(ce),this.dragListenerKeys_.length=0)}setThumbPosition_(e){let t=this.getPositionForResolution_(e),n=this.element.firstElementChild;this.direction_==Ch.HORIZONTAL?n.style.left=this.widthLimit_*t+"px":n.style.top=this.heightLimit_*t+"px"}getRelativePosition_(e,t){let n;return this.direction_===Ch.HORIZONTAL?n=e/this.widthLimit_:n=t/this.heightLimit_,Ee(n,0,1)}getResolutionForPosition_(e){return this.getMap().getView().getResolutionForValueFunction()(1-e)}getPositionForResolution_(e){let t=this.getMap().getView().getValueForResolutionFunction();return Ee(1-t(e),0,1)}render(e){if(!e.frameState||!this.sliderInitialized_&&!this.initSlider_())return;let t=e.frameState.viewState.resolution;this.currentResolution_=t,this.setThumbPosition_(t)}},mR=qC;var KC="projection",ER="coordinateFormat",XC=class extends ut{constructor(e){e=e||{};let t=document.createElement("div");t.className=e.className!==void 0?e.className:"ol-mouse-position",super({element:t,render:e.render,target:e.target}),this.on,this.once,this.un,this.addChangeListener(KC,this.handleProjectionChanged_),e.coordinateFormat&&this.setCoordinateFormat(e.coordinateFormat),e.projection&&this.setProjection(e.projection),this.renderOnMouseOut_=e.placeholder!==void 0,this.placeholder_=this.renderOnMouseOut_?e.placeholder:" ",this.renderedHTML_=t.innerHTML,this.mapProjection_=null,this.transform_=null,this.wrapX_=e.wrapX!==!1}handleProjectionChanged_(){this.transform_=null}getCoordinateFormat(){return this.get(ER)}getProjection(){return this.get(KC)}handleMouseMove(e){let t=this.getMap();this.updateHTML_(t.getEventPixel(e))}handleMouseOut(e){this.updateHTML_(null)}setMap(e){if(super.setMap(e),e){let t=e.getViewport();this.listenerKeys.push(ee(t,cn.POINTERMOVE,this.handleMouseMove,this)),this.renderOnMouseOut_&&this.listenerKeys.push(ee(t,cn.POINTEROUT,this.handleMouseOut,this)),this.updateHTML_(null)}}setCoordinateFormat(e){this.set(ER,e)}setProjection(e){this.set(KC,fe(e))}updateHTML_(e){let t=this.placeholder_;if(e&&this.mapProjection_){if(!this.transform_){let o=this.getProjection();o?this.transform_=$i(this.mapProjection_,o):this.transform_=u_}let r=this.getMap().getCoordinateFromPixelInternal(e);if(r){let o=st();if(o&&(this.transform_=$i(this.mapProjection_,o)),this.transform_(r,r),this.wrapX_){let a=o||this.getProjection()||this.mapProjection_;Zo(r,a)}let s=this.getCoordinateFormat();s?t=s(r):t=r.toString()}}(!this.renderedHTML_||t!==this.renderedHTML_)&&(this.element.innerHTML=t,this.renderedHTML_=t)}render(e){let t=e.frameState;t?this.mapProjection_!=t.viewState.projection&&(this.mapProjection_=t.viewState.projection,this.transform_=null):this.mapProjection_=null}},IR=XC;var ed=.75,yh=.1,jC=class extends ut{constructor(e){e=e||{},super({element:document.createElement("div"),render:e.render,target:e.target}),this.boundHandleRotationChanged_=this.handleRotationChanged_.bind(this),this.collapsed_=e.collapsed!==void 0?e.collapsed:!0,this.collapsible_=e.collapsible!==void 0?e.collapsible:!0,this.collapsible_||(this.collapsed_=!1),this.rotateWithView_=e.rotateWithView!==void 0?e.rotateWithView:!1,this.viewExtent_=void 0;let t=e.className!==void 0?e.className:"ol-overviewmap",n=e.tipLabel!==void 0?e.tipLabel:"Overview map",r=e.collapseLabel!==void 0?e.collapseLabel:"\u2039";typeof r=="string"?(this.collapseLabel_=document.createElement("span"),this.collapseLabel_.textContent=r):this.collapseLabel_=r;let o=e.label!==void 0?e.label:"\u203A";typeof o=="string"?(this.label_=document.createElement("span"),this.label_.textContent=o):this.label_=o;let s=this.collapsible_&&!this.collapsed_?this.collapseLabel_:this.label_,a=document.createElement("button");a.setAttribute("type","button"),a.title=n,a.appendChild(s),a.addEventListener(K.CLICK,this.handleClick_.bind(this),!1),this.ovmapDiv_=document.createElement("div"),this.ovmapDiv_.className="ol-overviewmap-map",this.view_=e.view;let l=new Ec({view:e.view,controls:new bt,interactions:new bt});this.ovmap_=l,e.layers&&e.layers.forEach(function(I){l.addLayer(I)});let A=document.createElement("div");A.className="ol-overviewmap-box",A.style.boxSizing="border-box",this.boxOverlay_=new Xu({position:[0,0],positioning:"center-center",element:A}),this.ovmap_.addOverlay(this.boxOverlay_);let c=t+" "+qt+" "+nn+(this.collapsed_&&this.collapsible_?" "+Ja:"")+(this.collapsible_?"":" ol-uncollapsible"),h=this.element;h.className=c,h.appendChild(this.ovmapDiv_),h.appendChild(a);let u=this.boxOverlay_,f=this.boxOverlay_.getElement(),g=I=>({clientX:I.clientX,clientY:I.clientY}),p=function(I){let m=g(I),C=l.getEventCoordinate(m);u.setPosition(C)},d=I=>{let m=l.getEventCoordinateInternal(I),C=this.getMap();C.getView().setCenterInternal(m);let _=C.getOwnerDocument();_.removeEventListener("pointermove",p),_.removeEventListener("pointerup",d)};this.ovmapDiv_.addEventListener("pointerdown",I=>{let m=this.getMap().getOwnerDocument();I.target===f&&m.addEventListener("pointermove",p),m.addEventListener("pointerup",d)})}setMap(e){let t=this.getMap();if(e!==t){if(t){let n=t.getView();n&&this.unbindView_(n),this.ovmap_.setTarget(null)}if(super.setMap(e),e){this.ovmap_.setTarget(this.ovmapDiv_),this.listenerKeys.push(ee(e,In.PROPERTYCHANGE,this.handleMapPropertyChange_,this));let n=e.getView();n&&this.bindView_(n),this.ovmap_.isRendered()||this.updateBoxAfterOvmapIsRendered_()}}}handleMapPropertyChange_(e){if(e.key===Ct.VIEW){let t=e.oldValue;t&&this.unbindView_(t);let n=this.getMap().getView();this.bindView_(n)}else!this.ovmap_.isRendered()&&(e.key===Ct.TARGET||e.key===Ct.SIZE)&&this.ovmap_.updateSize()}bindView_(e){if(!this.view_){let t=new xi({projection:e.getProjection()});this.ovmap_.setView(t)}e.addChangeListener(Oi.ROTATION,this.boundHandleRotationChanged_),this.handleRotationChanged_(),e.isDef()&&(this.ovmap_.updateSize(),this.resetExtent_())}unbindView_(e){e.removeChangeListener(Oi.ROTATION,this.boundHandleRotationChanged_)}handleRotationChanged_(){this.rotateWithView_&&this.ovmap_.getView().setRotation(this.getMap().getView().getRotation())}validateExtent_(){let e=this.getMap(),t=this.ovmap_;if(!e.isRendered()||!t.isRendered())return;let n=e.getSize(),o=e.getView().calculateExtentInternal(n);if(this.viewExtent_&&Mi(o,this.viewExtent_))return;this.viewExtent_=o;let s=t.getSize(),l=t.getView().calculateExtentInternal(s),A=t.getPixelFromCoordinateInternal(Pt(o)),c=t.getPixelFromCoordinateInternal(io(o)),h=Math.abs(A[0]-c[0]),u=Math.abs(A[1]-c[1]),f=s[0],g=s[1];hf*ed||u>g*ed?this.resetExtent_():Fi(l,o)||this.recenter_()}resetExtent_(){if(ed===0||yh===0)return;let e=this.getMap(),t=this.ovmap_,n=e.getSize(),o=e.getView().calculateExtentInternal(n),s=t.getView(),a=Math.log(ed/yh)/Math.LN2,l=1/(Math.pow(2,a/2)*yh);Vh(o,l),s.fitInternal(Vs(o))}recenter_(){let e=this.getMap(),t=this.ovmap_,n=e.getView();t.getView().setCenterInternal(n.getCenterInternal())}updateBox_(){let e=this.getMap(),t=this.ovmap_;if(!e.isRendered()||!t.isRendered())return;let n=e.getSize(),r=e.getView(),o=t.getView(),s=this.rotateWithView_?0:-r.getRotation(),a=this.boxOverlay_,l=this.boxOverlay_.getElement(),A=r.getCenter(),c=r.getResolution(),h=o.getResolution(),u=n[0]*c/h,f=n[1]*c/h;if(a.setPosition(A),l){l.style.width=u+"px",l.style.height=f+"px";let g="rotate("+s+"rad)";l.style.transform=g}}updateBoxAfterOvmapIsRendered_(){this.ovmapPostrenderKey_||(this.ovmapPostrenderKey_=jo(this.ovmap_,hn.POSTRENDER,e=>{delete this.ovmapPostrenderKey_,this.updateBox_()}))}handleClick_(e){e.preventDefault(),this.handleToggle_()}handleToggle_(){this.element.classList.toggle(Ja),this.collapsed_?so(this.collapseLabel_,this.label_):so(this.label_,this.collapseLabel_),this.collapsed_=!this.collapsed_;let e=this.ovmap_;if(!this.collapsed_){if(e.isRendered()){this.viewExtent_=void 0,e.render();return}e.updateSize(),this.resetExtent_(),this.updateBoxAfterOvmapIsRendered_()}}getCollapsible(){return this.collapsible_}setCollapsible(e){this.collapsible_!==e&&(this.collapsible_=e,this.element.classList.toggle("ol-uncollapsible"),!e&&this.collapsed_&&this.handleToggle_())}setCollapsed(e){!this.collapsible_||this.collapsed_===e||this.handleToggle_()}getCollapsed(){return this.collapsed_}getRotateWithView(){return this.rotateWithView_}setRotateWithView(e){this.rotateWithView_!==e&&(this.rotateWithView_=e,this.getMap().getView().getRotation()!==0&&(this.rotateWithView_?this.handleRotationChanged_():this.ovmap_.getView().setRotation(0),this.viewExtent_=void 0,this.validateExtent_(),this.updateBox_()))}getOverviewMap(){return this.ovmap_}render(e){this.validateExtent_(),this.updateBox_()}},CR=jC;var WC=class extends ut{constructor(e){e=e||{},super({element:document.createElement("div"),target:e.target}),this.extent=e.extent?e.extent:null;let t=e.className!==void 0?e.className:"ol-zoom-extent",n=e.label!==void 0?e.label:"E",r=e.tipLabel!==void 0?e.tipLabel:"Fit to extent",o=document.createElement("button");o.setAttribute("type","button"),o.title=r,o.appendChild(typeof n=="string"?document.createTextNode(n):n),o.addEventListener(K.CLICK,this.handleClick_.bind(this),!1);let s=t+" "+qt+" "+nn,a=this.element;a.className=s,a.appendChild(o)}handleClick_(e){e.preventDefault(),this.handleZoomToExtent()}handleZoomToExtent(){let t=this.getMap().getView(),n=this.extent?Bt(this.extent,t.getProjection()):t.getProjection().getExtent();t.fitInternal(Vs(n))}},yR=WC;var q3=Object.defineProperty,$R=i=>{throw TypeError(i)},K3=(i,e,t)=>e in i?q3(i,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):i[e]=t,re=(i,e,t)=>K3(i,typeof e!="symbol"?e+"":e,t),ZR=(i,e,t)=>e.has(i)||$R("Cannot "+t),jt=(i,e,t)=>(ZR(i,e,"read from private field"),t?t.call(i):e.get(i)),_R=(i,e,t)=>e.has(i)?$R("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,t),xR=(i,e,t,n)=>(ZR(i,e,"write to private field"),n?n.call(i,t):e.set(i,t),t);function vt(){}function X3(i,e){for(let t in e)i[t]=e[t];return i}function eQ(i){return i()}function BR(){return Object.create(null)}function Uo(i){i.forEach(eQ)}function tQ(i){return typeof i=="function"}function Ca(i,e){return i!=i?e==e:i!==e||i&&typeof i=="object"||typeof i=="function"}var td;function Ti(i,e){return i===e?!0:(td||(td=document.createElement("a")),td.href=e,i===td.href)}function j3(i){return Object.keys(i).length===0}function W3(i,e,t,n){if(i){let r=iQ(i,e,t,n);return i[0](r)}}function iQ(i,e,t,n){return i[1]&&n?X3(t.ctx.slice(),i[1](n(e))):t.ctx}function J3(i,e,t,n){return i[2],e.dirty}function $3(i,e,t,n,r,o){if(r){let s=iQ(e,t,n,o);i.p(s,r)}}function Z3(i){if(i.ctx.length>32){let e=[],t=i.ctx.length/32;for(let n=0;ni.removeEventListener(e,t,n)}function tO(i){return function(e){return e.preventDefault(),i.call(this,e)}}function Y(i,e,t){t==null?i.removeAttribute(e):i.getAttribute(e)!==t&&i.setAttribute(e,t)}function iO(i){return Array.from(i.childNodes)}function Rh(i,e){e=""+e,i.data!==e&&(i.data=e)}function wR(i,e){i.value=e??""}function sA(i,e,t){i.classList.toggle(e,!!t)}function nO(i,e,{bubbles:t=!1,cancelable:n=!1}={}){return new CustomEvent(i,{detail:e,bubbles:t,cancelable:n})}var Qh;function Th(i){Qh=i}function nQ(){if(!Qh)throw new Error("Function called outside component initialization");return Qh}function rO(i){nQ().$$.on_destroy.push(i)}function rQ(){let i=nQ();return(e,t,{cancelable:n=!1}={})=>{let r=i.$$.callbacks[e];if(r){let o=nO(e,t,{cancelable:n});return r.slice().forEach(s=>{s.call(i,o)}),!o.defaultPrevented}return!0}}function oO(i,e){let t=i.$$.callbacks[e.type];t&&t.slice().forEach(n=>n.call(this,e))}var rA=[],ey=[],aA=[],vR=[],sO=Promise.resolve(),ty=!1;function aO(){ty||(ty=!0,sO.then(oQ))}function iy(i){aA.push(i)}var JC=new Set,nA=0;function oQ(){if(nA!==0)return;let i=Qh;do{try{for(;nAi.indexOf(n)===-1?e.push(n):t.push(n)),t.forEach(n=>n()),aA=e}var od=new Set,Ia;function sd(){Ia={r:0,c:[],p:Ia}}function ad(){Ia.r||Uo(Ia.c),Ia=Ia.p}function Ft(i,e){i&&i.i&&(od.delete(i),i.i(e))}function ni(i,e,t,n){if(i&&i.o){if(od.has(i))return;od.add(i),Ia.c.push(()=>{od.delete(i),n&&(t&&i.d(1),n())}),i.o(e)}else n&&n()}function SR(i){return i?.length!==void 0?i:Array.from(i)}function cO(i,e){ni(i,1,1,()=>{e.delete(i.key)})}function hO(i,e,t,n,r,o,s,a,l,A,c,h){let u=i.length,f=o.length,g=u,p={};for(;g--;)p[i[g].key]=g;let d=[],I=new Map,m=new Map,C=[];for(g=f;g--;){let T=h(r,o,g),E=t(T),x=s.get(E);x?C.push(()=>x.p(T,e)):(x=A(E,T),x.c()),I.set(E,d[g]=x),E in p&&m.set(E,Math.abs(g-p[E]))}let _=new Set,y=new Set;function w(T){Ft(T,1),T.m(a,c),s.set(T.key,T),c=T.first,f--}for(;u&&f;){let T=d[f-1],E=i[u-1],x=T.key,B=E.key;T===E?(c=T.first,u--,f--):I.has(B)?!s.has(x)||_.has(x)?w(T):y.has(B)?u--:m.get(x)>m.get(B)?(y.add(x),w(T)):(_.add(B),u--):(l(E,s),u--)}for(;u--;){let T=i[u];I.has(T.key)||l(T,s)}for(;f;)w(d[f-1]);return Uo(C),d}function Ls(i){i&&i.c()}function Po(i,e,t){let{fragment:n,after_update:r}=i.$$;n&&n.m(e,t),iy(()=>{let o=i.$$.on_mount.map(eQ).filter(tQ);i.$$.on_destroy?i.$$.on_destroy.push(...o):Uo(o),i.$$.on_mount=[]}),r.forEach(iy)}function No(i,e){let t=i.$$;t.fragment!==null&&(AO(t.after_update),Uo(t.on_destroy),t.fragment&&t.fragment.d(e),t.on_destroy=t.fragment=null,t.ctx=[])}function uO(i,e){i.$$.dirty[0]===-1&&(rA.push(i),aO(),i.$$.dirty.fill(0)),i.$$.dirty[e/31|0]|=1<{let g=f.length?f[0]:u;return A.ctx&&r(A.ctx[h],A.ctx[h]=g)&&(!A.skip_bound&&A.bound[h]&&A.bound[h](g),c&&uO(i,h)),u}):[],A.update(),c=!0,Uo(A.before_update),A.fragment=n?n(A.ctx):!1,e.target){if(e.hydrate){let h=iO(e.target);A.fragment&&A.fragment.l(h),h.forEach(gt)}else A.fragment&&A.fragment.c();e.intro&&Ft(i.$$.fragment),Po(i,e.target,e.anchor),oQ()}Th(l)}var Go=class{constructor(){re(this,"$$"),re(this,"$$set")}$destroy(){No(this,1),this.$destroy=vt}$on(e,t){if(!tQ(t))return vt;let n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{let r=n.indexOf(t);r!==-1&&n.splice(r,1)}}$set(e){this.$$set&&!j3(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}},fO="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(fO);function gO(i){let e,t;return{c(){e=ko("svg"),t=ko("path"),Y(t,"d","M13.12.706a.982.982 0 0 0-1.391 0L6.907 5.517 2.087.696a.982.982 0 1 0-1.391 1.39l4.821 4.821L.696 11.73a.982.982 0 1 0 1.39 1.39l4.821-4.821 4.822 4.821a.982.982 0 1 0 1.39-1.39L8.298 6.908l4.821-4.822a.988.988 0 0 0 0-1.38Z"),Y(e,"viewBox","0 0 14 14"),Y(e,"width","13"),Y(e,"height","13"),Y(e,"class","svelte-en2qvf")},m(n,r){_t(n,e,r),ze(e,t)},p:vt,i:vt,o:vt,d(n){n&>(e)}}}var hd=class extends Go{constructor(e){super(),ya(this,e,null,gO,Ca,{})}};function dO(i){let e,t;return{c(){e=ko("svg"),t=ko("path"),Y(t,"d","M15 0C6.705 0 0 6.705 0 15C0 23.295 6.705 30 15 30C23.295 30 30 23.295 30 15C30 6.705 23.295 0 15 0ZM22.5 20.385L20.385 22.5L15 17.115L9.615 22.5L7.5 20.385L12.885 15L7.5 9.615L9.615 7.5L15 12.885L20.385 7.5L22.5 9.615L17.115 15L22.5 20.385Z"),Y(e,"viewBox","0 0 30 30"),Y(e,"fill","none"),Y(e,"xmlns","http://www.w3.org/2000/svg"),Y(e,"class","svelte-d2loi5")},m(n,r){_t(n,e,r),ze(e,t)},p:vt,i:vt,o:vt,d(n){n&>(e)}}}var ud=class extends Go{constructor(e){super(),ya(this,e,null,dO,Ca,{})}};function pO(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"area.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"area.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function mO(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"reverse.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"reverse.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function EO(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"poi.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"poi.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function IO(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"postal_code.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"postal_code.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function CO(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"street.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"street.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function yO(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"road.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"road.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function _O(i){let e,t;return{c(){e=nt("img"),Ti(e.src,t=i[3]+"housenumber.svg")||Y(e,"src",t),Y(e,"alt",i[7]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(n,r){_t(n,e,r)},p(n,r){r&8&&!Ti(e.src,t=n[3]+"housenumber.svg")&&Y(e,"src",t),r&128&&Y(e,"alt",n[7]),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function xO(i){let e,t,n,r;return{c(){e=nt("img"),Ti(e.src,t=i[5])||Y(e,"src",t),Y(e,"alt",i[4]),Y(e,"title",i[7]),Y(e,"class","svelte-w9y5n9")},m(o,s){_t(o,e,s),n||(r=Jt(e,"error",i[14]),n=!0)},p(o,s){s&32&&!Ti(e.src,t=o[5])&&Y(e,"src",t),s&16&&Y(e,"alt",o[4]),s&128&&Y(e,"title",o[7])},d(o){o&>(e),n=!1,r()}}}function BO(i){let e,t;return{c(){e=nt("div"),Y(e,"class","sprite-icon svelte-w9y5n9"),Y(e,"style",t=` + width: ${i[6].width/er}px; + height: ${i[6].height/er}px; + background-image: url(${i[3]}sprite${ny}.png); + background-position: -${i[6].x/er}px -${i[6].y/er}px; + background-size: ${qr.width/er}px ${qr.height/er}px; + `),Y(e,"title",i[7])},m(n,r){_t(n,e,r)},p(n,r){r&72&&t!==(t=` + width: ${n[6].width/er}px; + height: ${n[6].height/er}px; + background-image: url(${n[3]}sprite${ny}.png); + background-position: -${n[6].x/er}px -${n[6].y/er}px; + background-size: ${qr.width/er}px ${qr.height/er}px; + `)&&Y(e,"style",t),r&128&&Y(e,"title",n[7])},d(n){n&>(e)}}}function TR(i){let e,t;return{c(){e=nt("span"),t=Fs(i[7]),Y(e,"class","secondary svelte-w9y5n9")},m(n,r){_t(n,e,r),ze(e,t)},p(n,r){r&128&&Rh(t,n[7])},d(n){n&>(e)}}}function wO(i){let e,t,n,r,o,s,a,l,A,c=(i[8]?i[0].place_name:i[0].place_name.replace(/,.*/,""))+"",h,u,f=i[2]==="always"||i[2]!=="never"&&!i[0].address&&!i[0].id.startsWith("road.")&&!i[0].id.startsWith("address.")&&!i[0].id.startsWith("postal_code.")&&(!i[0].id.startsWith("poi.")||!i[5])&&!i[8],g,p,d=(i[8]?"":i[0].place_name.replace(/[^,]*,?\s*/,""))+"",I,m,C,_,y,w;function T(R,v){return v&1&&(t=null),v&1&&(n=null),v&1&&(r=null),v&1&&(o=null),qr&&R[6]?BO:R[5]?xO:R[0].address?_O:(t==null&&(t=!!R[0].id.startsWith("road.")),t?yO:(n==null&&(n=!!R[0].id.startsWith("address.")),n?CO:(r==null&&(r=!!R[0].id.startsWith("postal_code.")),r?IO:(o==null&&(o=!!R[0].id.startsWith("poi.")),o?EO:R[8]?mO:pO))))}let E=T(i,-1),x=E(i),B=f&&TR(i);return{c(){e=nt("li"),x.c(),s=Dn(),a=nt("span"),l=nt("span"),A=nt("span"),h=Fs(c),u=Dn(),B&&B.c(),g=Dn(),p=nt("span"),I=Fs(d),Y(A,"class","primary svelte-w9y5n9"),Y(l,"class","svelte-w9y5n9"),Y(p,"class","line2 svelte-w9y5n9"),Y(a,"class","texts svelte-w9y5n9"),Y(e,"tabindex","-1"),Y(e,"role","option"),Y(e,"aria-selected",m=i[1]==="selected"),Y(e,"aria-checked",C=i[1]==="picked"),Y(e,"class",_=cd(i[1])+" svelte-w9y5n9")},m(R,v){_t(R,e,v),x.m(e,null),ze(e,s),ze(e,a),ze(a,l),ze(l,A),ze(A,h),ze(l,u),B&&B.m(l,null),ze(a,g),ze(a,p),ze(p,I),y||(w=[Jt(e,"mouseenter",i[13]),Jt(e,"focus",i[15]),Jt(e,"click",i[16])],y=!0)},p(R,[v]){E===(E=T(R,v))&&x?x.p(R,v):(x.d(1),x=E(R),x&&(x.c(),x.m(e,s))),v&257&&c!==(c=(R[8]?R[0].place_name:R[0].place_name.replace(/,.*/,""))+"")&&Rh(h,c),v&293&&(f=R[2]==="always"||R[2]!=="never"&&!R[0].address&&!R[0].id.startsWith("road.")&&!R[0].id.startsWith("address.")&&!R[0].id.startsWith("postal_code.")&&(!R[0].id.startsWith("poi.")||!R[5])&&!R[8]),f?B?B.p(R,v):(B=TR(R),B.c(),B.m(l,null)):B&&(B.d(1),B=null),v&257&&d!==(d=(R[8]?"":R[0].place_name.replace(/[^,]*,?\s*/,""))+"")&&Rh(I,d),v&2&&m!==(m=R[1]==="selected")&&Y(e,"aria-selected",m),v&2&&C!==(C=R[1]==="picked")&&Y(e,"aria-checked",C),v&2&&_!==(_=cd(R[1])+" svelte-w9y5n9")&&Y(e,"class",_)},i:vt,o:vt,d(R){R&>(e),x.d(),B&&B.d(),y=!1,Uo(w)}}}var sQ=typeof devicePixelRatio>"u"?1:devicePixelRatio>1.25,ny=sQ?"@2x":"",er=sQ?2:1,qr,id;function vO(i,e,t){let n,r,o,{feature:s}=e,{style:a="default"}=e,{showPlaceType:l}=e,{missingIconsCache:A}=e,{iconsBaseUrl:c}=e,h=rQ(),u,f,g,p;function d(){id??(id=fetch(`${c}sprite${ny}.json`).then(E=>E.json()).then(E=>{qr=E}).catch(()=>{qr=null}))}function I(){f&&A.add(f),m()}function m(){qr!==void 0?C():(d(),id?.then(C))}function C(){do{if(p--,t(4,u=n?.[p]),t(6,g=u?qr?.icons[u]:void 0),g)break;t(5,f=u?c+u.replace(/ /g,"_")+".svg":void 0)}while(p>-1&&(!f||A.has(f)))}function _(E){oO.call(this,i,E)}let y=()=>I(),w=()=>h("select",void 0),T=E=>{document.activeElement!==E.target&&h("select",void 0)};return i.$$set=E=>{"feature"in E&&t(0,s=E.feature),"style"in E&&t(1,a=E.style),"showPlaceType"in E&&t(2,l=E.showPlaceType),"missingIconsCache"in E&&t(11,A=E.missingIconsCache),"iconsBaseUrl"in E&&t(3,c=E.iconsBaseUrl)},i.$$.update=()=>{var E,x,B,R,v;i.$$.dirty&1&&t(12,n=(E=s.properties)==null?void 0:E.categories),i.$$.dirty&1&&t(8,r=s.place_type[0]==="reverse"),i.$$.dirty&1&&t(7,o=((B=(x=s.properties)==null?void 0:x.categories)==null?void 0:B.join(", "))??((v=(R=s.properties)==null?void 0:R.place_type_name)==null?void 0:v[0])??s.place_type[0]),i.$$.dirty&4096&&(p=n?.length??0,m())},[s,a,l,c,u,f,g,o,r,h,I,A,n,_,y,w,T]}var ry=class extends Go{constructor(e){super(),ya(this,e,vO,wO,Ca,{feature:0,style:1,showPlaceType:2,missingIconsCache:11,iconsBaseUrl:3})}};function SO(i){let e;return{c(){e=nt("div"),e.innerHTML='',Y(e,"class","svelte-7cmwmc")},m(t,n){_t(t,e,n)},p:vt,i:vt,o:vt,d(t){t&>(e)}}}var oy=class extends Go{constructor(e){super(),ya(this,e,null,SO,Ca,{})}};function TO(i){let e,t;return{c(){e=ko("svg"),t=ko("path"),Y(t,"d","M30.003-26.765C13.46-26.765 0-14.158 0 1.337c0 23.286 24.535 42.952 28.39 46.04.24.192.402.316.471.376.323.282.732.424 1.142.424.41 0 .82-.142 1.142-.424.068-.06.231-.183.471-.376 3.856-3.09 28.39-22.754 28.39-46.04 0-15.495-13.46-28.102-30.003-28.102Zm1.757 12.469c4.38 0 7.858 1.052 10.431 3.158 2.595 2.105 3.89 4.913 3.89 8.422 0 2.34-.53 4.362-1.593 6.063-1.063 1.702-3.086 3.616-6.063 5.742-2.042 1.51-3.337 2.659-3.89 3.446-.532.787-.8 1.82-.8 3.096v1.914h-8.449V15.18c0-2.041.434-3.815 1.306-5.325.872-1.51 2.467-3.118 4.785-4.82 2.233-1.594 3.7-2.89 4.402-3.889a5.582 5.582 0 0 0 1.087-3.35c0-1.382-.51-2.435-1.531-3.158-1.02-.723-2.45-1.087-4.28-1.087-3.19 0-6.826 1.047-10.91 3.131l-3.472-6.986c4.742-2.659 9.77-3.992 15.087-3.992Zm-1.88 37.324c1.765 0 3.124.472 4.08 1.408.98.936 1.47 2.276 1.47 4.02 0 1.68-.49 3.007-1.47 3.985-.977.957-2.336 1.435-4.08 1.435-1.787 0-3.171-.465-4.15-1.4-.978-.958-1.47-2.298-1.47-4.02 0-1.787.48-3.14 1.436-4.054.957-.915 2.355-1.374 4.184-1.374Z"),Y(e,"viewBox","0 0 60.006 21.412"),Y(e,"width","14"),Y(e,"height","20"),Y(e,"class","svelte-en2qvf")},m(n,r){_t(n,e,r),ze(e,t)},p:vt,i:vt,o:vt,d(n){n&>(e)}}}var sy=class extends Go{constructor(e){super(),ya(this,e,null,TO,Ca,{})}};function RO(i){let e,t,n;return{c(){e=ko("svg"),t=ko("circle"),n=ko("path"),Y(t,"cx","4.789"),Y(t,"cy","4.787"),Y(t,"r","3.85"),Y(t,"class","svelte-1aq105l"),Y(n,"d","M12.063 12.063 7.635 7.635"),Y(n,"class","svelte-1aq105l"),Y(e,"xmlns","http://www.w3.org/2000/svg"),Y(e,"width","13"),Y(e,"height","13"),Y(e,"viewBox","0 0 13 13"),Y(e,"class","svelte-1aq105l")},m(r,o){_t(r,e,o),ze(e,t),ze(e,n)},p:vt,i:vt,o:vt,d(r){r&>(e)}}}var ay=class extends Go{constructor(e){super(),ya(this,e,null,RO,Ca,{})}};function QO(i,e,t){let n=e[1],r=e[0],o=n-r;return i===n&&t?i:((i-r)%o+o)%o+r}function fd(i){let e=[...i];return e[2]Math.abs((e[0]-360+e[2])/2)?e[0]-=360:e[2]+=360),e}var _h;async function bO(i,e,t){let n=i?.getCenterAndZoom();for(let r of e??[])if(!(n&&(r.minZoom!=null&&r.minZoom>n[0]||r.maxZoom!=null&&r.maxZoomDate.now()){if(!_h.coords)break e;return _h.coords}let o;try{return o=await new Promise((s,a)=>{t.signal.addEventListener("abort",()=>{a(Error("aborted"))}),navigator.geolocation.getCurrentPosition(l=>{s([l.coords.longitude,l.coords.latitude].map(A=>A.toFixed(6)).join(","))},l=>{a(l)},r)}),o}catch{}finally{r.cachedLocationExpiry&&(_h={time:Date.now(),coords:o})}if(t.signal.aborted)return}if(r.type==="server-geolocation")return"ip";if(n&&r.type==="map-center")return n[1].toFixed(6)+","+n[2].toFixed(6)}}var DO=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([6-9][0-9])\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([6-9][0-9])\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*(EAST|WEST|[EW])?$/i,RR=/^([+-]?[0-8]?[0-9])\s+([0-5]?[0-9]\.\d{3,})[\s,]{1,}([+-]?[0-1]?[0-9]?[0-9])\s+([0-5]?[0-9]\.\d{3,})$/,QR=/^(NORTH|SOUTH|[NS])?[\s]*([+-]?[0-8]?[0-9](?:[\.,]\d{3,}))[\s]*([•º°]?)[\s]*(NORTH|SOUTH|[NS])?[\s]*[,/;]?[\s]*(EAST|WEST|[EW])?[\s]*([+-]?[0-1]?[0-9]?[0-9](?:[\.,]\d{3,}))[\s]*([•º°]?)[\s]*(EAST|WEST|[EW])?$/i,bR=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*(\.)\s*([0-5]?[0-9])\s*(\.)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*(\.)\s*([0-5]?[0-9])\s*(\.)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(EAST|WEST|[EW])?$/i,DR=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*(D(?:EG)?(?:REES)?)\s*([0-5]?[0-9])\s*(M(?:IN)?(?:UTES)?)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(S(?:EC)?(?:ONDS)?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*(D(?:EG)?(?:REES)?)\s*([0-5]?[0-9])\s*(M(?:IN)?(?:UTES)?)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(S(?:EC)?(?:ONDS)?)\s*(EAST|WEST|[EW])?$/i,FR=/^(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([0-5]?[0-9](?:[\.,]\d{1,})?)?\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*,?((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(''|′′|’’|´´|["″”\.])?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([0-5]?[0-9](?:[\.,]\d{1,})?)?\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*,?((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(''|′′|´´|’’|["″”\.])?\s*(EAST|WEST|[EW])?$/i;function FO(i){if(!["DMS","DM","DD"].includes(i))throw new Error("invalid format specified");if(this.decimalCoordinates&&this.decimalCoordinates.trim()){let e=this.decimalCoordinates.split(",").map(f=>Number(f.trim())),t=Number(e[0]),n=Number(e[1]),r=Math.abs(t),o=Math.abs(n),s=t>0?"N":"S",a=n>0?"E":"W",l;i=="DD"&&(l=`${r}\xB0 ${s}, ${o}\xB0 ${a}`);let A=Math.floor(r),c=Math.floor(o),h=(r-A)*60,u=(o-c)*60;if(i=="DM"){let f=LR(h,3).toFixed(3).padStart(6,"0"),g=LR(u,3).toFixed(3).padStart(6,"0");f.endsWith(".000")&&g.endsWith(".000")&&(f=f.replace(/\.000$/,""),g=g.replace(/\.000$/,"")),l=`${A}\xB0 ${f}' ${s}, ${c}\xB0 ${g}' ${a}`}if(i=="DMS"){let f=Math.floor(h),g=Math.floor(u),p=((h-f)*60).toFixed(1).padStart(4,"0"),d=((u-g)*60).toFixed(1).padStart(4,"0"),I=f.toString().padStart(2,"0"),m=g.toString().padStart(2,"0");p.endsWith(".0")&&d.endsWith(".0")&&(p=p.replace(/\.0$/,""),d=d.replace(/\.0$/,"")),l=`${A}\xB0 ${I}' ${p}" ${s}, ${c}\xB0 ${m}' ${d}" ${a}`}return l}else throw new Error("no decimal coordinates to convert")}function LR(i,e){let t=Math.pow(10,e);return Math.round((i+Number.EPSILON)*t)/t}function yy(i,e){e||(e=5),i=i.replace(/\s+/g," ").trim();let t=null,n=null,r="",o="",s=null,a=[],l=!1;if(DO.test(i))throw new Error("invalid coordinate value");if(RR.test(i))if(a=RR.exec(i),l=xh(a),l)t=Math.abs(a[1])+a[2]/60,Number(a[1])<0&&(t*=-1),n=Math.abs(a[3])+a[4]/60,Number(a[3])<0&&(n*=-1),s="DM";else throw new Error("invalid coordinate format");else if(QR.test(i))if(a=QR.exec(i),l=xh(a),l){if(t=a[2],n=a[6],t.includes(",")&&(t=t.replace(",",".")),n.includes(",")&&(n=n.replace(",",".")),s="DD",Number(Math.round(t))==Number(t))throw new Error("integer only coordinate provided");if(Number(Math.round(n))==Number(n))throw new Error("integer only coordinate provided");a[1]?(r=a[1],o=a[5]):a[4]&&(r=a[4],o=a[8])}else throw new Error("invalid decimal coordinate format");else if(bR.test(i))if(a=bR.exec(i),l=xh(a),l)t=Math.abs(parseInt(a[2])),a[4]&&(t+=a[4]/60,s="DM"),a[6]&&(t+=a[6].replace(",",".")/3600,s="DMS"),parseInt(a[2])<0&&(t=-1*t),n=Math.abs(parseInt(a[9])),a[11]&&(n+=a[11]/60),a[13]&&(n+=a[13].replace(",",".")/3600),parseInt(a[9])<0&&(n=-1*n),a[1]?(r=a[1],o=a[8]):a[7]&&(r=a[7],o=a[14]);else throw new Error("invalid DMS coordinates format");else if(DR.test(i))if(a=DR.exec(i),l=xh(a),l)t=Math.abs(parseInt(a[2])),a[4]&&(t+=a[4]/60,s="DM"),a[6]&&(t+=a[6]/3600,s="DMS"),parseInt(a[2])<0&&(t=-1*t),n=Math.abs(parseInt(a[10])),a[12]&&(n+=a[12]/60),a[14]&&(n+=a[14]/3600),parseInt(a[10])<0&&(n=-1*n),a[1]?(r=a[1],o=a[9]):a[8]&&(r=a[8],o=a[16]);else throw new Error("invalid DMS coordinates format");else if(FR.test(i)){if(a=FR.exec(i),l=xh(a),a.filter(A=>A).length<=5)throw new Error("invalid coordinates format");if(l)t=Math.abs(parseInt(a[2])),a[4]&&(t+=a[4].replace(",",".")/60,s="DM"),a[6]&&(t+=a[6].replace(",",".")/3600,s="DMS"),parseInt(a[2])<0&&(t=-1*t),n=Math.abs(parseInt(a[10])),a[12]&&(n+=a[12].replace(",",".")/60),a[14]&&(n+=a[14].replace(",",".")/3600),parseInt(a[10])<0&&(n=-1*n),a[1]?(r=a[1],o=a[9]):a[8]&&(r=a[8],o=a[16]);else throw new Error("invalid coordinates format")}if(l){if(Math.abs(n)>=180)throw new Error("invalid longitude value");if(Math.abs(t)>=90)throw new Error("invalid latitude value");if(r&&!o||!r&&o)throw new Error("invalid coordinates value");if(r&&r==o)throw new Error("invalid coordinates format");t.toString().includes(",")&&(t=t.replace(",",".")),n.toString().includes(",")&&(n=n.replace(",","."));let A=/S|SOUTH/i;A.test(r)&&t>0&&(t=-1*t),A=/W|WEST/i,A.test(o)&&n>0&&(n=-1*n);let c=a[0].trim(),h,u,f=/[,/;\u0020]/g,g=c.match(f);if(g==null){let I=Math.floor(i.length/2);h=c.substring(0,I).trim(),u=c.substring(I).trim()}else{let I;g.length%2==1?I=Math.floor(g.length/2):I=g.length/2-1;let m=0;if(I==0)m=c.indexOf(g[0]),h=c.substring(0,m).trim(),u=c.substring(m+1).trim();else{let C=0,_=0;for(;C<=I;)m=c.indexOf(g[C],_),_=m+1,C++;h=c.substring(0,m).trim(),u=c.substring(m+1).trim()}}let p=h.split(".");if(p.length==2&&p[1]==0&&p[1].length!=2)throw new Error("invalid coordinates format");let d=u.split(".");if(d.length==2&&d[1]==0&&d[1].length!=2)throw new Error("invalid coordinates format");if(/^\d+$/.test(h)||/^\d+$/.test(u))throw new Error("degree only coordinate/s provided");return t=Number(Number(t).toFixed(e)),n=Number(Number(n).toFixed(e)),Object.freeze({verbatimCoordinates:c,verbatimLatitude:h,verbatimLongitude:u,decimalLatitude:t,decimalLongitude:n,decimalCoordinates:`${t},${n}`,originalFormat:s,closeEnough:LO,toCoordinateFormat:FO})}else throw new Error("coordinates pattern match failed")}function xh(i){if(!isNaN(i[0]))return!1;let e=[...i];if(e.shift(),e.length%2>0)return!1;let t=/^[-+]?\d+([\.,]\d+)?$/,n=/[eastsouthnorthwest]+/i,r=e.length/2;for(let o=0;o{e.decimalLatitude?i.push(e):i.push({...e,...PO})}),[...i,...NO,...GO]}var UO=OO();yy.formats=UO.map(i=>i.verbatimCoordinates);var zO=yy;function kR(i,e,t){let n=i.slice();return n[97]=e[t],n[99]=t,n}function PR(i){let e,t;return e=new oy({}),{c(){Ls(e.$$.fragment)},m(n,r){Po(e,n,r),t=!0},i(n){t||(Ft(e.$$.fragment,n),t=!0)},o(n){ni(e.$$.fragment,n),t=!1},d(n){No(e,n)}}}function NR(i){let e,t,n,r,o;return t=new sy({}),{c(){e=nt("button"),Ls(t.$$.fragment),Y(e,"type","button"),Y(e,"title",i[10]),Y(e,"class","svelte-bz0zu3"),sA(e,"active",i[0])},m(s,a){_t(s,e,a),Po(t,e,null),n=!0,r||(o=Jt(e,"click",i[79]),r=!0)},p(s,a){(!n||a[0]&1024)&&Y(e,"title",s[10]),(!n||a[0]&1)&&sA(e,"active",s[0])},i(s){n||(Ft(t.$$.fragment,s),n=!0)},o(s){ni(t.$$.fragment,s),n=!1},d(s){s&>(e),No(t),r=!1,o()}}}function YO(i){let e,t=[],n=new Map,r,o,s,a=SR(i[13]),l=A=>A[97].id+(A[97].address?","+A[97].address:"");for(let A=0;A{T=null}),ad()),(!C||S[0]&2)&&sA(A,"displayable",Q[1]!==""),Q[6]==="button"?E?(E.p(Q,S),S[0]&64&&Ft(E,1)):(E=NR(Q),E.c(),Ft(E,1),E.m(n,g)):E&&(sd(),ni(E,1,1,()=>{E=null}),ad()),B&&B.p&&(!C||S[2]&128)&&$3(B,x,Q,Q[69],C?J3(x,Q[69],S,null):Z3(Q[69]),null);let b=d;d=D(Q),d===b?~d&&v[d].p(Q,S):(I&&(sd(),ni(v[b],1,1,()=>{v[b]=null}),ad()),~d?(I=v[d],I?I.p(Q,S):(I=v[d]=R[d](Q),I.c()),Ft(I,1),I.m(t,null)):I=null),(!C||S[0]&4&&m!==(m=cd(Q[2])+" svelte-bz0zu3"))&&Y(t,"class",m),(!C||S[0]&38)&&sA(t,"can-collapse",Q[5]&&Q[1]==="")},i(Q){C||(Ft(w),Ft(o.$$.fragment,Q),Ft(h.$$.fragment,Q),Ft(T),Ft(E),Ft(B,Q),Ft(I),C=!0)},o(Q){ni(w),ni(o.$$.fragment,Q),ni(h.$$.fragment,Q),ni(T),ni(E),ni(B,Q),ni(I),C=!1},d(Q){Q&&(gt(e),gt(t)),No(o),i[72](null),No(h),T&&T.d(),E&&E.d(),B&&B.d(Q),~d&&v[d].d(),_=!1,Uo(y)}}}function XO(i,e,t){let n,r,o,{$$slots:s={},$$scope:a}=e,l={continental_marine:4,country:4,major_landform:8,region:5,subregion:6,county:7,joint_municipality:8,joint_submunicipality:9,municipality:10,municipal_district:11,locality:12,neighbourhood:13,place:14,postal_code:14,road:16,poi:17,address:18,"poi.peak":15,"poi.shop":18,"poi.cafe":18,"poi.restaurant":18,"poi.aerodrome":13},{class:A=void 0}=e,{apiKey:c}=e,{bbox:h=void 0}=e,{clearButtonTitle:u="clear"}=e,{clearOnBlur:f=!1}=e,{clearListOnPick:g=!1}=e,{keepListOpen:p=!1}=e,{collapsed:d=!1}=e,{country:I=void 0}=e,{debounceSearch:m=200}=e,{enableReverse:C="never"}=e,{errorMessage:_="Something went wrong\u2026"}=e,{filter:y=()=>!0}=e,{flyTo:w=!0}=e,{fuzzyMatch:T=!0}=e,{language:E=void 0}=e,{limit:x=void 0}=e,B=41415112612,{reverseGeocodingLimit:R=B}=e,{mapController:v=void 0}=e,{minLength:D=2}=e,{noResultsMessage:Q="Oops! Looks like you're trying to predict something that's not quite right. We can't seem to find what you're looking for. Maybe try double-checking your spelling or try a different search term. Keep on typing - we'll do our best to get you where you need to go!"}=e,{placeholder:S="Search"}=e,{proximity:b=[{type:"server-geolocation"}]}=e,{reverseActive:F=C==="always"}=e,{reverseButtonTitle:M="toggle reverse geocoding"}=e,{searchValue:k=""}=e,{pickedResultStyle:P="full-geometry"}=e,{showPlaceType:U="if-needed"}=e,{showResultsWhileTyping:N=!0}=e,{selectFirst:j=!0}=e,{flyToSelected:X=!1}=e,{markerOnSelected:z=!0}=e,{types:q=void 0}=e,Z=[],{reverseGeocodingTypes:ge=Z}=e,{exhaustiveReverseGeocoding:me=!1}=e,{excludeTypes:de=!1}=e,ve=void 0,{reverseGeocodingExcludeTypes:Ve=ve}=e,{zoom:Me=l}=e,{apiUrl:Se="https://api.maptiler.com/geocoding"}=e,{fetchParameters:Ae={}}=e,{iconsBaseUrl:ri="https://cdn.maptiler.com/maptiler-geocoding-control/v2.1.6/icons/"}=e,{adjustUrlQuery:gn=()=>{}}=e,{adjustUrl:Yt=()=>{}}=e;function or(O){dn.focus(O)}function $t(){dn.blur()}function Xr(O,et=!0,si=!1){t(1,k=O),et?(t(15,He=-1),xa()):(Ri(void 0,!si,si),setTimeout(()=>{dn.focus(),dn.select()}))}function Yo(){t(13,De=void 0),t(14,se=void 0),t(15,He=-1)}function Lt(){t(64,xt=[]),t(14,se=void 0)}let De,xt,se,Ms="",dn,He=-1,pn,Vo=[],Ho,qo,jr,_a,mn=!1,kh=new Set,Ir=rQ();rO(()=>{v&&(v.setEventHandler(void 0),v.indicateReverse(!1),v.setSelectedMarker(-1),v.setFeatures(void 0,void 0,!1))});function xa(O){if(t(17,mn=!1),qo&&(clearTimeout(qo),qo=void 0),He>-1&&De)t(14,se=De[He]),t(1,k=se.place_type[0]==="reverse"?se.place_name:se.place_name.replace(/,.*/,"")),t(19,pn=void 0),t(64,xt=void 0),t(15,He=-1);else if(k){let et=O||!Wr(k);Jr(k,{exact:!0}).then(()=>{t(64,xt=De),t(14,se=void 0),et&&ks()}).catch(si=>t(19,pn=si))}}function Wr(O){try{return zO(O,6)}catch{return!1}}async function Jr(O,{byId:et=!1,exact:si=!1}={}){var Ki,En,Cr;t(19,pn=void 0),Ho?.abort();let yr=new AbortController;t(20,Ho=yr);try{let tt=Wr(O),pA=new URL(Se+"/"+encodeURIComponent(tt?tt.decimalLongitude+","+tt.decimalLatitude:O)+".json"),Fn=pA.searchParams;E!==void 0&&Fn.set("language",Array.isArray(E)?E.join(","):E??"");let[Rd]=v?.getCenterAndZoom()??[],Xo=(Ki=!tt||ge===Z?q:ge)==null?void 0:Ki.map(fi=>typeof fi=="string"?fi:Rd===void 0||(fi[0]??0)<=Rd&&Rd<(fi[1]??1/0)?fi[2]:void 0).filter(fi=>fi!==void 0);Xo&&(Xo=[...new Set(Xo)],Fn.set("types",Xo.join(",")));let Dy=!tt||Ve===ve?de:Ve;if(Dy&&Fn.set("excludeTypes",String(Dy)),h&&Fn.set("bbox",h.map(fi=>fi.toFixed(6)).join(",")),I&&Fn.set("country",Array.isArray(I)?I.join(","):I),!et&&!tt){let fi=await bO(v,b,yr);fi&&Fn.set("proximity",fi),(si||!N)&&Fn.set("autocomplete","false"),Fn.set("fuzzyMatch",String(T))}let mA=R===B?x:R;mA!==void 0&&mA>1&&Xo?.length!==1&&console.warn("For reverse geocoding when limit > 1 then types must contain single value."),tt?(mA===1||mA!==void 0&&(me||Xo?.length===1))&&Fn.set("limit",String(mA)):x!==void 0&&Fn.set("limit",String(x)),c&&Fn.set("key",c),gn(Fn),Yt(pA);let OQ=pA.searchParams.get("types")===""&&pA.searchParams.get("excludeTypes")!=="true",Ph=pA.toString();if(Ph===Ms){et?(g&&t(13,De=void 0),t(14,se=Vo[0])):(t(13,De=Vo),((En=De[He])==null?void 0:En.id)!==r?.id&&t(15,He=-1));return}Ms=Ph;let EA;if(OQ)EA={type:"FeatureCollection",features:[]};else{let fi=await fetch(Ph,{signal:yr.signal,...Ae});if(!fi.ok)throw new Error(await fi.text());EA=await fi.json()}Ir("response",{url:Ph,featureCollection:EA}),et?(g&&t(13,De=void 0),t(14,se=EA.features[0]),Vo=[se]):(t(13,De=EA.features.filter(y)),tt&&De.unshift({type:"Feature",properties:{},id:"reverse_"+tt.decimalLongitude+"_"+tt.decimalLatitude,text:tt.decimalLatitude+", "+tt.decimalLongitude,place_name:tt.decimalLatitude+", "+tt.decimalLongitude,place_type:["reverse"],center:[tt.decimalLongitude,tt.decimalLatitude],bbox:[tt.decimalLongitude,tt.decimalLatitude,tt.decimalLongitude,tt.decimalLatitude],geometry:{type:"Point",coordinates:[tt.decimalLongitude,tt.decimalLatitude]}}),Vo=De,((Cr=De[He])==null?void 0:Cr.id)!==r?.id&&t(15,He=-1),tt&&dn.focus())}catch(tt){if(tt&&typeof tt=="object"&&"name"in tt&&tt.name==="AbortError")return;throw tt}finally{yr===Ho&&t(20,Ho=void 0)}}function ks(){var O;if(!(xt!=null&&xt.length)||!w)return;let et=[180,90,-180,-90],si=!xt.some(En=>!En.matching_text),Ki;for(let En of xt){let Cr=Ko(En);if(Ki=Ki===void 0?Cr:Cr===void 0?Ki:Math.max(Ki,Cr),si||!En.matching_text)for(let yr of[0,1,2,3])et[yr]=Math[yr<2?"min":"max"](et[yr],((O=En.bbox)==null?void 0:O[yr])??En.center[yr%2])}v&&xt.length>0&&(se&&et[0]===et[2]&&et[1]===et[3]?v.flyTo(se.center,Ko(se)):v.fitBounds(fd(et),50,Ki))}function Ba(){!se||!v||(!se.bbox||se.bbox[0]===se.bbox[2]&&se.bbox[1]===se.bbox[3]?v.flyTo(se.center,Ko(se)):v.fitBounds(fd(se.bbox),50,Ko(se)))}function Ko(O){var et;if(!O.bbox||O.bbox[0]!==O.bbox[2]&&O.bbox[1]!==O.bbox[3])return;let si=O.id.replace(/\..*/,"");return(Array.isArray((et=O.properties)==null?void 0:et.categories)?O.properties.categories.reduce((Ki,En)=>{let Cr=Me[si+"."+En];return Ki===void 0?Cr:Cr===void 0?Ki:Math.max(Ki,Cr)},void 0):void 0)??Me[si]}function Hi(O){t(0,F=C==="always"),t(13,De=void 0),t(14,se=void 0),t(15,He=-1),Xr(O[1].toFixed(6)+", "+QO(O[0],[-180,180],!0).toFixed(6),!1,!0)}function $r(O){if(!De)return;let et=O.key==="ArrowDown"?1:O.key==="ArrowUp"?-1:0;et&&(dn.focus(),t(17,mn=!0),O.preventDefault(),se&&He===-1&&t(15,He=De.findIndex(si=>si.id===se?.id)),He===(se||j?0:-1)&&et===-1&&t(15,He=De.length),t(15,He+=et),He>=De.length&&t(15,He=-1),He<0&&(se||j)&&t(15,He=0))}function Ri(O,et=!0,si=!1){if(t(19,pn=void 0),t(14,se=void 0),t(17,mn=!0),N||si){if(qo&&clearTimeout(qo),k.length{Jr(Ki).catch(En=>t(19,pn=En))},et?m:0)}else t(13,De=void 0),t(19,pn=void 0)}function qi(O){se&&se?.id===O?.id?Ba():(t(14,se=O),t(1,k=O.place_name))}function Qi(O){t(15,He=O)}function sr(){(!j||se)&&t(15,He=-1),X&&Ba()}let ar=()=>dn.focus();function dt(O){ey[O?"unshift":"push"](()=>{dn=O,t(18,dn)})}function oi(){k=this.value,t(1,k),t(17,mn),t(31,f),t(16,jr)}let lr=()=>t(17,mn=!0),Td=()=>t(17,mn=!1),DQ=()=>t(17,mn=!0),FQ=()=>t(14,se=void 0),LQ=()=>{t(1,k=""),t(14,se=void 0),dn.focus()},MQ=()=>t(0,F=!F),kQ=()=>t(19,pn=void 0),PQ=O=>Qi(O),NQ=O=>qi(O),GQ=()=>{};return i.$$set=O=>{"class"in O&&t(2,A=O.class),"apiKey"in O&&t(29,c=O.apiKey),"bbox"in O&&t(30,h=O.bbox),"clearButtonTitle"in O&&t(3,u=O.clearButtonTitle),"clearOnBlur"in O&&t(31,f=O.clearOnBlur),"clearListOnPick"in O&&t(32,g=O.clearListOnPick),"keepListOpen"in O&&t(4,p=O.keepListOpen),"collapsed"in O&&t(5,d=O.collapsed),"country"in O&&t(33,I=O.country),"debounceSearch"in O&&t(34,m=O.debounceSearch),"enableReverse"in O&&t(6,C=O.enableReverse),"errorMessage"in O&&t(7,_=O.errorMessage),"filter"in O&&t(35,y=O.filter),"flyTo"in O&&t(36,w=O.flyTo),"fuzzyMatch"in O&&t(37,T=O.fuzzyMatch),"language"in O&&t(38,E=O.language),"limit"in O&&t(39,x=O.limit),"reverseGeocodingLimit"in O&&t(40,R=O.reverseGeocodingLimit),"mapController"in O&&t(41,v=O.mapController),"minLength"in O&&t(42,D=O.minLength),"noResultsMessage"in O&&t(8,Q=O.noResultsMessage),"placeholder"in O&&t(9,S=O.placeholder),"proximity"in O&&t(43,b=O.proximity),"reverseActive"in O&&t(0,F=O.reverseActive),"reverseButtonTitle"in O&&t(10,M=O.reverseButtonTitle),"searchValue"in O&&t(1,k=O.searchValue),"pickedResultStyle"in O&&t(44,P=O.pickedResultStyle),"showPlaceType"in O&&t(11,U=O.showPlaceType),"showResultsWhileTyping"in O&&t(45,N=O.showResultsWhileTyping),"selectFirst"in O&&t(46,j=O.selectFirst),"flyToSelected"in O&&t(47,X=O.flyToSelected),"markerOnSelected"in O&&t(48,z=O.markerOnSelected),"types"in O&&t(49,q=O.types),"reverseGeocodingTypes"in O&&t(50,ge=O.reverseGeocodingTypes),"exhaustiveReverseGeocoding"in O&&t(51,me=O.exhaustiveReverseGeocoding),"excludeTypes"in O&&t(52,de=O.excludeTypes),"reverseGeocodingExcludeTypes"in O&&t(53,Ve=O.reverseGeocodingExcludeTypes),"zoom"in O&&t(54,Me=O.zoom),"apiUrl"in O&&t(55,Se=O.apiUrl),"fetchParameters"in O&&t(56,Ae=O.fetchParameters),"iconsBaseUrl"in O&&t(12,ri=O.iconsBaseUrl),"adjustUrlQuery"in O&&t(57,gn=O.adjustUrlQuery),"adjustUrl"in O&&t(58,Yt=O.adjustUrl),"$$scope"in O&&t(69,a=O.$$scope)},i.$$.update=()=>{if(i.$$.dirty[0]&64&&t(0,F=C==="always"),i.$$.dirty[0]&16384|i.$$.dirty[1]&8192&&P!=="marker-only"&&se&&!se.address&&se.geometry.type==="Point"&&se.place_type[0]!=="reverse"&&Jr(se.id,{byId:!0}).catch(O=>t(19,pn=O)),i.$$.dirty[0]&16384|i.$$.dirty[1]&1058|i.$$.dirty[2]&8&&(v&&se&&se.id!==_a&&w&&(Ba(),g&&t(13,De=void 0),t(64,xt=void 0),t(15,He=-1)),t(65,_a=se?.id)),i.$$.dirty[0]&196608|i.$$.dirty[1]&1&&setTimeout(()=>{t(16,jr=mn),f&&!jr&&t(1,k="")}),i.$$.dirty[0]&8194|i.$$.dirty[1]&2048&&k.length{switch(O.type){case"mapClick":F&&Hi(O.coordinates);break;case"markerClick":{let et=De?.find(si=>si.id===O.id);et&&qi(et)}break;case"markerMouseEnter":xt&&t(15,He=jr?De?.findIndex(et=>et.id===O.id)??-1:-1);break;case"markerMouseLeave":xt&&t(15,He=-1);break}}),i.$$.dirty[0]&40960&&t(66,r=De?.[He]),i.$$.dirty[1]&66592|i.$$.dirty[2]&16&&v&&r&&w&&X&&v.flyTo(r.center,Ko(r)),i.$$.dirty[1]&8192&&t(68,n=P==="full-geometry-including-polygon-center-marker"),i.$$.dirty[1]&132096|i.$$.dirty[2]&64&&(z||v==null||v.setFeatures(void 0,void 0,n)),i.$$.dirty[0]&16384|i.$$.dirty[1]&132096|i.$$.dirty[2]&84&&v&&z&&!xt&&(v.setFeatures(r?[r]:void 0,se,n),v.setSelectedMarker(r?0:-1)),i.$$.dirty[0]&16384|i.$$.dirty[1]&1024|i.$$.dirty[2]&68&&v&&v.setFeatures(xt,se,n),i.$$.dirty[0]&32768|i.$$.dirty[1]&1024|i.$$.dirty[2]&4&&xt&&v&&v.setSelectedMarker(He),i.$$.dirty[0]&2|i.$$.dirty[1]&1024&&v){let O=Wr(k);v.setReverseMarker(O?[O.decimalLongitude,O.decimalLatitude]:void 0)}i.$$.dirty[2]&16&&Ir("select",{feature:r}),i.$$.dirty[0]&16384&&Ir("pick",{feature:se}),i.$$.dirty[0]&73744&&t(67,o=!!(De!=null&&De.length)&&(jr||p)),i.$$.dirty[2]&32&&Ir("optionsvisibilitychange",{optionsVisible:o}),i.$$.dirty[0]&8192&&Ir("featureslisted",{features:De}),i.$$.dirty[2]&4&&Ir("featuresmarked",{features:xt}),i.$$.dirty[0]&1&&Ir("reversetoggle",{reverse:F}),i.$$.dirty[0]&2&&Ir("querychange",{query:k}),i.$$.dirty[0]&1|i.$$.dirty[1]&1024&&v&&v.indicateReverse(F)},[F,k,A,u,p,d,C,_,Q,S,M,U,ri,De,se,He,jr,mn,dn,pn,Ho,kh,xa,$r,Ri,qi,Qi,sr,l,c,h,f,g,I,m,y,w,T,E,x,R,v,D,b,P,N,j,X,z,q,ge,me,de,Ve,Me,Se,Ae,gn,Yt,or,$t,Xr,Yo,Lt,xt,_a,r,o,n,a,s,ar,dt,oi,lr,Td,DQ,FQ,LQ,MQ,kQ,PQ,NQ,GQ]}var jO=class extends Go{constructor(i){super(),ya(this,i,XO,KO,Ca,{ZOOM_DEFAULTS:28,class:2,apiKey:29,bbox:30,clearButtonTitle:3,clearOnBlur:31,clearListOnPick:32,keepListOpen:4,collapsed:5,country:33,debounceSearch:34,enableReverse:6,errorMessage:7,filter:35,flyTo:36,fuzzyMatch:37,language:38,limit:39,reverseGeocodingLimit:40,mapController:41,minLength:42,noResultsMessage:8,placeholder:9,proximity:43,reverseActive:0,reverseButtonTitle:10,searchValue:1,pickedResultStyle:44,showPlaceType:11,showResultsWhileTyping:45,selectFirst:46,flyToSelected:47,markerOnSelected:48,types:49,reverseGeocodingTypes:50,exhaustiveReverseGeocoding:51,excludeTypes:52,reverseGeocodingExcludeTypes:53,zoom:54,apiUrl:55,fetchParameters:56,iconsBaseUrl:12,adjustUrlQuery:57,adjustUrl:58,focus:59,blur:60,setQuery:61,clearList:62,clearMap:63},null,[-1,-1,-1,-1])}get ZOOM_DEFAULTS(){return this.$$.ctx[28]}get focus(){return this.$$.ctx[59]}get blur(){return this.$$.ctx[60]}get setQuery(){return this.$$.ctx[61]}get clearList(){return this.$$.ctx[62]}get clearMap(){return this.$$.ctx[63]}};function gd(i,e,t={}){let n={type:"Feature"};return(t.id===0||t.id)&&(n.id=t.id),t.bbox&&(n.bbox=t.bbox),n.properties=e||{},n.geometry=i,n}function _y(i,e,t={}){for(let n of i){if(n.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(n[n.length-1].length!==n[0].length)throw new Error("First and last Position are not equivalent.");for(let r=0;r{t[0]>n[0]&&(t[0]=n[0]),t[1]>n[1]&&(t[1]=n[1]),t[2]h?M.c=M.e=null:E.e=10;Q/=10,D++);D>h?M.c=M.e=null:(M.e=D,M.c=[E]);return}F=String(E)}else{if(!$O.test(F=String(E)))return n(M,F,S);M.s=F.charCodeAt(0)==45?(F=F.slice(1),-1):1}(D=F.indexOf("."))>-1&&(F=F.replace(".","")),(Q=F.search(/e/i))>0?(D<0&&(D=Q),D+=+F.slice(Q+1),F=F.substring(0,Q)):D<0&&(D=F.length)}else{if(wt(x,2,d.length,"Base"),x==10&&I)return M=new m(E),w(M,s+M.e+1,a);if(F=String(E),S=typeof E=="number"){if(E*0!=0)return n(M,F,S,x);if(M.s=1/E<0?(F=F.slice(1),-1):1,m.DEBUG&&F.replace(/^0\.0*|\./,"").length>15)throw Error(UR+E)}else M.s=F.charCodeAt(0)===45?(F=F.slice(1),-1):1;for(B=d.slice(0,x),D=Q=0,b=F.length;QD){D=b;continue}}else if(!v&&(F==F.toUpperCase()&&(F=F.toLowerCase())||F==F.toLowerCase()&&(F=F.toUpperCase()))){v=!0,Q=-1,D=0;continue}return n(M,String(E),S,x)}S=!1,F=t(F,x,10,M.s),(D=F.indexOf("."))>-1?F=F.replace(".",""):D=F.length}for(Q=0;F.charCodeAt(Q)===48;Q++);for(b=F.length;F.charCodeAt(--b)===48;);if(F=F.slice(Q,++b)){if(b-=Q,S&&m.DEBUG&&b>15&&(E>zR||E!==ir(E)))throw Error(UR+M.s*E);if((D=D-Q-1)>h)M.c=M.e=null;else if(D=-1e9&&v<=bn&&v===ir(v)){if(R[0]===0){if(v===0&&R.length===1)return!0;break e}if(x=(v+1)%_e,x<1&&(x+=_e),String(R[0]).length==x){for(x=0;x=Er||B!==ir(B))break e;if(B!==0)return!0}}}else if(R===null&&v===null&&(D===null||D===1||D===-1))return!0;throw Error(fn+"Invalid BigNumber: "+E)},m.maximum=m.max=function(){return _(arguments,-1)},m.minimum=m.min=function(){return _(arguments,1)},m.random=function(){var E=9007199254740992,x=Math.random()*E&2097151?function(){return ir(Math.random()*E)}:function(){return(Math.random()*1073741824|0)*8388608+(Math.random()*8388608|0)};return function(B){var R,v,D,Q,S,b=0,F=[],M=new m(o);if(B==null?B=s:wt(B,0,bn),Q=$C(B/_e),u)if(crypto.getRandomValues){for(R=crypto.getRandomValues(new Uint32Array(Q*=2));b>>11),S>=9e15?(v=crypto.getRandomValues(new Uint32Array(2)),R[b]=v[0],R[b+1]=v[1]):(F.push(S%1e14),b+=2);b=Q/2}else if(crypto.randomBytes){for(R=crypto.randomBytes(Q*=7);b=9e15?crypto.randomBytes(7).copy(R,b):(F.push(S%1e14),b+=7);b=Q/7}else throw u=!1,Error(fn+"crypto unavailable");if(!u)for(;b=10;S/=10,b++);b<_e&&(D-=_e-b)}return M.e=D,M.c=F,M}}(),m.sum=function(){for(var E=1,x=arguments,B=new m(x[0]);Ev-1&&(S[Q+1]==null&&(S[Q+1]=0),S[Q+1]+=S[Q]/v|0,S[Q]%=v)}return S.reverse()}return function(B,R,v,D,Q){var S,b,F,M,k,P,U,N,j=B.indexOf("."),X=s,z=a;for(j>=0&&(M=g,g=0,B=B.replace(".",""),N=new m(R),P=N.pow(B.length-j),g=M,N.c=x(Mo(tr(P.c),P.e,"0"),10,v,E),N.e=N.c.length),U=x(B,R,v,Q?(S=d,E):(S=E,d)),F=M=U.length;U[--M]==0;U.pop());if(!U[0])return S.charAt(0);if(j<0?--F:(P.c=U,P.e=F,P.s=D,P=e(P,N,X,z,v),U=P.c,k=P.r,F=P.e),b=F+X+1,j=U[b],M=v/2,k=k||b<0||U[b+1]!=null,k=z<4?(j!=null||k)&&(z==0||z==(P.s<0?3:2)):j>M||j==M&&(z==4||k||z==6&&U[b-1]&1||z==(P.s<0?8:7)),b<1||!U[0])B=k?Mo(S.charAt(1),-X,S.charAt(0)):S.charAt(0);else{if(U.length=b,k)for(--v;++U[--b]>v;)U[b]=0,b||(++F,U=[1].concat(U));for(M=U.length;!U[--M];);for(j=0,B="";j<=M;B+=S.charAt(U[j++]));B=Mo(B,F,S.charAt(0))}return B}}(),e=function(){function E(R,v,D){var Q,S,b,F,M=0,k=R.length,P=v%Ds,U=v/Ds|0;for(R=R.slice();k--;)b=R[k]%Ds,F=R[k]/Ds|0,Q=U*b+F*P,S=P*b+Q%Ds*Ds+M,M=(S/D|0)+(Q/Ds|0)+U*F,R[k]=S%D;return M&&(R=[M].concat(R)),R}function x(R,v,D,Q){var S,b;if(D!=Q)b=D>Q?1:-1;else for(S=b=0;Sv[S]?1:-1;break}return b}function B(R,v,D,Q){for(var S=0;D--;)R[D]-=S,S=R[D]1;R.splice(0,1));}return function(R,v,D,Q,S){var b,F,M,k,P,U,N,j,X,z,q,Z,ge,me,de,ve,Ve,Me=R.s==v.s?1:-1,Se=R.c,Ae=v.c;if(!Se||!Se[0]||!Ae||!Ae[0])return new m(!R.s||!v.s||(Se?Ae&&Se[0]==Ae[0]:!Ae)?NaN:Se&&Se[0]==0||!Ae?Me*0:Me/0);for(j=new m(Me),X=j.c=[],F=R.e-v.e,Me=D+F+1,S||(S=Er,F=nr(R.e/_e)-nr(v.e/_e),Me=Me/_e|0),M=0;Ae[M]==(Se[M]||0);M++);if(Ae[M]>(Se[M]||0)&&F--,Me<0)X.push(1),k=!0;else{for(me=Se.length,ve=Ae.length,M=0,Me+=2,P=ir(S/(Ae[0]+1)),P>1&&(Ae=E(Ae,P,S),Se=E(Se,P,S),ve=Ae.length,me=Se.length),ge=ve,z=Se.slice(0,ve),q=z.length;q=S/2&&de++;do{if(P=0,b=x(Ae,z,ve,q),b<0){if(Z=z[0],ve!=q&&(Z=Z*S+(z[1]||0)),P=ir(Z/de),P>1)for(P>=S&&(P=S-1),U=E(Ae,P,S),N=U.length,q=z.length;x(U,z,N,q)==1;)P--,B(U,ve=10;Me/=10,M++);w(j,D+(j.e=M+F*_e-1)+1,Q,k)}else j.e=F,j.r=+k;return j}}();function C(E,x,B,R){var v,D,Q,S,b;if(B==null?B=a:wt(B,0,8),!E.c)return E.toString();if(v=E.c[0],Q=E.e,x==null)b=tr(E.c),b=R==1||R==2&&(Q<=l||Q>=A)?rd(b,Q):Mo(b,Q,"0");else if(E=w(new m(E),x,B),D=E.e,b=tr(E.c),S=b.length,R==1||R==2&&(x<=D||D<=l)){for(;SS){if(--x>0)for(b+=".";x--;b+="0");}else if(x+=D-S,x>0)for(D+1==S&&(b+=".");x--;b+="0");return E.s<0&&v?"-"+b:b}function _(E,x){for(var B,R,v=1,D=new m(E[0]);v=10;v/=10,R++);return(B=R+B*_e-1)>h?E.c=E.e=null:B=10;S/=10,v++);if(D=x-v,D<0)D+=_e,Q=x,b=k[F=0],M=ir(b/P[v-Q-1]%10);else if(F=$C((D+1)/_e),F>=k.length)if(R){for(;k.length<=F;k.push(0));b=M=0,v=1,D%=_e,Q=D-_e+1}else break e;else{for(b=S=k[F],v=1;S>=10;S/=10,v++);D%=_e,Q=D-_e+v,M=Q<0?0:ir(b/P[v-Q-1]%10)}if(R=R||x<0||k[F+1]!=null||(Q<0?b:b%P[v-Q-1]),R=B<4?(M||R)&&(B==0||B==(E.s<0?3:2)):M>5||M==5&&(B==4||R||B==6&&(D>0?Q>0?b/P[v-Q]:0:k[F-1])%10&1||B==(E.s<0?8:7)),x<1||!k[0])return k.length=0,R?(x-=E.e+1,k[0]=P[(_e-x%_e)%_e],E.e=-x||0):k[0]=E.e=0,E;if(D==0?(k.length=F,S=1,F--):(k.length=F+1,S=P[_e-D],k[F]=Q>0?ir(b/P[v-Q]%P[Q])*S:0),R)for(;;)if(F==0){for(D=1,Q=k[0];Q>=10;Q/=10,D++);for(Q=k[0]+=S,S=1;Q>=10;Q/=10,S++);D!=S&&(E.e++,k[0]==Er&&(k[0]=1));break}else{if(k[F]+=S,k[F]!=Er)break;k[F--]=0,S=1}for(D=k.length;k[--D]===0;k.pop());}E.e>h?E.c=E.e=null:E.e=A?rd(x,B):Mo(x,B,"0"),E.s<0?"-"+x:x)}return r.absoluteValue=r.abs=function(){var E=new m(this);return E.s<0&&(E.s=1),E},r.comparedTo=function(E,x){return Ea(this,new m(E,x))},r.decimalPlaces=r.dp=function(E,x){var B,R,v,D=this;if(E!=null)return wt(E,0,bn),x==null?x=a:wt(x,0,8),w(new m(D),E+D.e+1,x);if(!(B=D.c))return null;if(R=((v=B.length-1)-nr(this.e/_e))*_e,v=B[v])for(;v%10==0;v/=10,R--);return R<0&&(R=0),R},r.dividedBy=r.div=function(E,x){return e(this,new m(E,x),s,a)},r.dividedToIntegerBy=r.idiv=function(E,x){return e(this,new m(E,x),0,1)},r.exponentiatedBy=r.pow=function(E,x){var B,R,v,D,Q,S,b,F,M,k=this;if(E=new m(E),E.c&&!E.isInteger())throw Error(fn+"Exponent not an integer: "+T(E));if(x!=null&&(x=new m(x)),S=E.e>14,!k.c||!k.c[0]||k.c[0]==1&&!k.e&&k.c.length==1||!E.c||!E.c[0])return M=new m(Math.pow(+T(k),S?E.s*(2-nd(E)):+T(E))),x?M.mod(x):M;if(b=E.s<0,x){if(x.c?!x.c[0]:!x.s)return new m(NaN);R=!b&&k.isInteger()&&x.isInteger(),R&&(k=k.mod(x))}else{if(E.e>9&&(k.e>0||k.e<-1||(k.e==0?k.c[0]>1||S&&k.c[1]>=24e7:k.c[0]<8e13||S&&k.c[0]<=9999975e7)))return D=k.s<0&&nd(E)?-0:0,k.e>-1&&(D=1/D),new m(b?1/D:D);g&&(D=$C(g/_e+2))}for(S?(B=new m(.5),b&&(E.s=1),F=nd(E)):(v=Math.abs(+T(E)),F=v%2),M=new m(o);;){if(F){if(M=M.times(k),!M.c)break;D?M.c.length>D&&(M.c.length=D):R&&(M=M.mod(x))}if(v){if(v=ir(v/2),v===0)break;F=v%2}else if(E=E.times(B),w(E,E.e+1,1),E.e>14)F=nd(E);else{if(v=+T(E),v===0)break;F=v%2}k=k.times(k),D?k.c&&k.c.length>D&&(k.c.length=D):R&&(k=k.mod(x))}return R?M:(b&&(M=o.div(M)),x?M.mod(x):D?w(M,g,a,Q):M)},r.integerValue=function(E){var x=new m(this);return E==null?E=a:wt(E,0,8),w(x,x.e+1,E)},r.isEqualTo=r.eq=function(E,x){return Ea(this,new m(E,x))===0},r.isFinite=function(){return!!this.c},r.isGreaterThan=r.gt=function(E,x){return Ea(this,new m(E,x))>0},r.isGreaterThanOrEqualTo=r.gte=function(E,x){return(x=Ea(this,new m(E,x)))===1||x===0},r.isInteger=function(){return!!this.c&&nr(this.e/_e)>this.c.length-2},r.isLessThan=r.lt=function(E,x){return Ea(this,new m(E,x))<0},r.isLessThanOrEqualTo=r.lte=function(E,x){return(x=Ea(this,new m(E,x)))===-1||x===0},r.isNaN=function(){return!this.s},r.isNegative=function(){return this.s<0},r.isPositive=function(){return this.s>0},r.isZero=function(){return!!this.c&&this.c[0]==0},r.minus=function(E,x){var B,R,v,D,Q=this,S=Q.s;if(E=new m(E,x),x=E.s,!S||!x)return new m(NaN);if(S!=x)return E.s=-x,Q.plus(E);var b=Q.e/_e,F=E.e/_e,M=Q.c,k=E.c;if(!b||!F){if(!M||!k)return M?(E.s=-x,E):new m(k?Q:NaN);if(!M[0]||!k[0])return k[0]?(E.s=-x,E):new m(M[0]?Q:a==3?-0:0)}if(b=nr(b),F=nr(F),M=M.slice(),S=b-F){for((D=S<0)?(S=-S,v=M):(F=b,v=k),v.reverse(),x=S;x--;v.push(0));v.reverse()}else for(R=(D=(S=M.length)<(x=k.length))?S:x,S=x=0;x0)for(;x--;M[B++]=0);for(x=Er-1;R>S;){if(M[--R]=0;){for(B=0,P=Z[v]%X,U=Z[v]/X|0,Q=b,D=v+Q;D>v;)F=q[--Q]%X,M=q[Q]/X|0,S=U*F+M*P,F=P*F+S%X*X+N[D]+B,B=(F/j|0)+(S/X|0)+U*M,N[D--]=F%j;N[D]=B}return B?++R:N.splice(0,1),y(E,N,R)},r.negated=function(){var E=new m(this);return E.s=-E.s||null,E},r.plus=function(E,x){var B,R=this,v=R.s;if(E=new m(E,x),x=E.s,!v||!x)return new m(NaN);if(v!=x)return E.s=-x,R.minus(E);var D=R.e/_e,Q=E.e/_e,S=R.c,b=E.c;if(!D||!Q){if(!S||!b)return new m(v/0);if(!S[0]||!b[0])return b[0]?E:new m(S[0]?R:v*0)}if(D=nr(D),Q=nr(Q),S=S.slice(),v=D-Q){for(v>0?(Q=D,B=b):(v=-v,B=S),B.reverse();v--;B.push(0));B.reverse()}for(v=S.length,x=b.length,v-x<0&&(B=b,b=S,S=B,x=v),v=0;x;)v=(S[--x]=S[x]+b[x]+v)/Er|0,S[x]=Er===S[x]?0:S[x]%Er;return v&&(S=[v].concat(S),++Q),y(E,S,Q)},r.precision=r.sd=function(E,x){var B,R,v,D=this;if(E!=null&&E!==!!E)return wt(E,1,bn),x==null?x=a:wt(x,0,8),w(new m(D),E,x);if(!(B=D.c))return null;if(v=B.length-1,R=v*_e+1,v=B[v]){for(;v%10==0;v/=10,R--);for(v=B[0];v>=10;v/=10,R++);}return E&&D.e+1>R&&(R=D.e+1),R},r.shiftedBy=function(E){return wt(E,-9007199254740991,zR),this.times("1e"+E)},r.squareRoot=r.sqrt=function(){var E,x,B,R,v,D=this,Q=D.c,S=D.s,b=D.e,F=s+4,M=new m("0.5");if(S!==1||!Q||!Q[0])return new m(!S||S<0&&(!Q||Q[0])?NaN:Q?D:1/0);if(S=Math.sqrt(+T(D)),S==0||S==1/0?(x=tr(Q),(x.length+b)%2==0&&(x+="0"),S=Math.sqrt(+x),b=nr((b+1)/2)-(b<0||b%2),S==1/0?x="5e"+b:(x=S.toExponential(),x=x.slice(0,x.indexOf("e")+1)+b),B=new m(x)):B=new m(S+""),B.c[0]){for(b=B.e,S=b+F,S<3&&(S=0);;)if(v=B,B=M.times(v.plus(e(D,v,F,1))),tr(v.c).slice(0,S)===(x=tr(B.c)).slice(0,S))if(B.e0&&N>0){for(D=N%S||S,M=U.substr(0,D);D0&&(M+=F+U.slice(D)),P&&(M="-"+M)}R=k?M+(B.decimalSeparator||"")+((b=+B.fractionGroupSize)?k.replace(new RegExp("\\d{"+b+"}\\B","g"),"$&"+(B.fractionGroupSeparator||"")):k):M}return(B.prefix||"")+R+(B.suffix||"")},r.toFraction=function(E){var x,B,R,v,D,Q,S,b,F,M,k,P,U=this,N=U.c;if(E!=null&&(S=new m(E),!S.isInteger()&&(S.c||S.s!==1)||S.lt(o)))throw Error(fn+"Argument "+(S.isInteger()?"out of range: ":"not an integer: ")+T(S));if(!N)return new m(U);for(x=new m(o),F=B=new m(o),R=b=new m(o),P=tr(N),D=x.e=P.length-U.e-1,x.c[0]=ZC[(Q=D%_e)<0?_e+Q:Q],E=!E||S.comparedTo(x)>0?D>0?x:F:S,Q=h,h=1/0,S=new m(P),b.c[0]=0;M=e(S,x,0,1),v=B.plus(M.times(R)),v.comparedTo(E)!=1;)B=R,R=v,F=b.plus(M.times(v=F)),b=v,x=S.minus(M.times(v=x)),S=v;return v=e(E.minus(B),R,0,1),b=b.plus(v.times(F)),B=B.plus(v.times(R)),b.s=F.s=U.s,D=D*2,k=e(F,R,D,a).minus(U).abs().comparedTo(e(b,B,D,a).minus(U).abs())<1?[F,R]:[b,B],h=Q,k},r.toNumber=function(){return+T(this)},r.toPrecision=function(E,x){return E!=null&&wt(E,1,bn),C(this,E,x,2)},r.toString=function(E){var x,B=this,R=B.s,v=B.e;return v===null?R?(x="Infinity",R<0&&(x="-"+x)):x="NaN":(E==null?x=v<=l||v>=A?rd(tr(B.c),v):Mo(tr(B.c),v,"0"):E===10&&I?(B=w(new m(B),s+v+1,a),x=Mo(tr(B.c),B.e,"0")):(wt(E,2,d.length,"Base"),x=t(Mo(tr(B.c),v,"0"),10,E,R,!0)),R<0&&B.c[0]&&(x="-"+x)),x},r.valueOf=r.toJSON=function(){return T(this)},r._isBigNumber=!0,r[Symbol.toStringTag]="BigNumber",r[Symbol.for("nodejs.util.inspect.custom")]=r.valueOf,i!=null&&m.set(i),m}function nr(i){var e=i|0;return i>0||i===e?e:e-1}function tr(i){for(var e,t,n=1,r=i.length,o=i[0]+"";nA^t?1:-1;for(a=(l=r.length)<(A=o.length)?l:A,s=0;so[s]^t?1:-1;return l==A?0:l>A^t?1:-1}function wt(i,e,t,n){if(it||i!==ir(i))throw Error(fn+(n||"Argument")+(typeof i=="number"?it?" out of range: ":" not an integer: ":" not a primitive number: ")+String(i))}function nd(i){var e=i.c.length-1;return nr(i.e/_e)==e&&i.c[e]%2!=0}function rd(i,e){return(i.length>1?i.charAt(0)+"."+i.slice(1):i)+(e<0?"e":"e+")+e}function Mo(i,e,t){var n,r;if(e<0){for(r=t+".";++e;r+=t);i=r+i}else if(n=i.length,++e>n){for(r=t,e-=n;--e;r+=t);i+=r}else e0){let A=s.left;if(A==null||(l=a(A.key,i),l>0&&(s.left=A.right,A.right=s,s=A,A=s.left,A==null)))break;t==null?n=s:t.left=s,t=s,s=A}else if(l<0){let A=s.right;if(A==null||(l=a(A.key,i),l<0&&(s.right=A.left,A.left=s,s=A,A=s.right,A==null)))break;r==null?o=s:r.right=s,r=s,s=A}else break;return r!=null&&(r.right=s.left,s.left=o),t!=null&&(t.left=s.right,s.right=n),this.root!==s&&(this.root=s,this.splayCount++),l}splayMin(i){let e=i,t=e.left;for(;t!=null;){let n=t;e.left=n.right,n.right=e,e=n,t=e.left}return e}splayMax(i){let e=i,t=e.right;for(;t!=null;){let n=t;e.right=n.left,n.left=e,e=n,t=e.right}return e}_delete(i){if(this.root==null||this.splay(i)!=0)return null;let e=this.root,t=e,n=e.left;if(this.size--,n==null)this.root=e.right;else{let r=e.right;e=this.splayMax(n),e.right=r,this.root=e}return this.modificationCount++,t}addNewRoot(i,e){this.size++,this.modificationCount++;let t=this.root;if(t==null){this.root=i;return}e<0?(i.left=t,i.right=t.right,t.right=null):(i.right=t,i.left=t.left,t.left=null),this.root=i}_first(){let i=this.root;return i==null?null:(this.root=this.splayMin(i),this.root)}_last(){let i=this.root;return i==null?null:(this.root=this.splayMax(i),this.root)}clear(){this.root=null,this.size=0,this.modificationCount++}has(i){return this.validKey(i)&&this.splay(i)==0}defaultCompare(){return(i,e)=>ie?1:0}wrap(){return{getRoot:()=>this.root,setRoot:i=>{this.root=i},getSize:()=>this.size,getModificationCount:()=>this.modificationCount,getSplayCount:()=>this.splayCount,setSplayCount:i=>{this.splayCount=i},splay:i=>this.splay(i),has:i=>this.has(i)}}},YR,VR,dd=class vh extends eU{constructor(e,t){super(),re(this,"root",null),re(this,"compare"),re(this,"validKey"),re(this,YR,"[object Set]"),this.compare=e??this.defaultCompare(),this.validKey=t??(n=>n!=null&&n!=null)}delete(e){return this.validKey(e)?this._delete(e)!=null:!1}deleteAll(e){for(let t of e)this.delete(t)}forEach(e){let t=this[Symbol.iterator](),n;for(;n=t.next(),!n.done;)e(n.value,n.value,this)}add(e){let t=this.splay(e);return t!=0&&this.addNewRoot(new Bh(e),t),this}addAndReturn(e){let t=this.splay(e);return t!=0&&this.addNewRoot(new Bh(e),t),this.root.key}addAll(e){for(let t of e)this.add(t)}isEmpty(){return this.root==null}isNotEmpty(){return this.root!=null}single(){if(this.size==0)throw"Bad state: No element";if(this.size>1)throw"Bad state: Too many element";return this.root.key}first(){if(this.size==0)throw"Bad state: No element";return this._first().key}last(){if(this.size==0)throw"Bad state: No element";return this._last().key}lastBefore(e){if(e==null)throw"Invalid arguments(s)";if(this.root==null)return null;if(this.splay(e)<0)return this.root.key;let t=this.root.left;if(t==null)return null;let n=t.right;for(;n!=null;)t=n,n=t.right;return t.key}firstAfter(e){if(e==null)throw"Invalid arguments(s)";if(this.root==null)return null;if(this.splay(e)>0)return this.root.key;let t=this.root.right;if(t==null)return null;let n=t.left;for(;n!=null;)t=n,n=t.left;return t.key}retainAll(e){let t=new vh(this.compare,this.validKey),n=this.modificationCount;for(let r of e){if(n!=this.modificationCount)throw"Concurrent modification during iteration.";this.validKey(r)&&this.splay(r)==0&&t.add(this.root.key)}t.size!=this.size&&(this.root=t.root,this.size=t.size,this.modificationCount++)}lookup(e){return!this.validKey(e)||this.splay(e)!=0?null:this.root.key}intersection(e){let t=new vh(this.compare,this.validKey);for(let n of this)e.has(n)&&t.add(n);return t}difference(e){let t=new vh(this.compare,this.validKey);for(let n of this)e.has(n)||t.add(n);return t}union(e){let t=this.clone();return t.addAll(e),t}clone(){let e=new vh(this.compare,this.validKey);return e.size=this.size,e.root=this.copyNode(this.root),e}copyNode(e){if(e==null)return null;function t(r,o){let s,a;do{if(s=r.left,a=r.right,s!=null){let l=new Bh(s.key);o.left=l,t(s,l)}if(a!=null){let l=new Bh(a.key);o.right=l,r=a,o=l}}while(a!=null)}let n=new Bh(e.key);return t(e,n),n}toSet(){return this.clone()}entries(){return new iU(this.wrap())}keys(){return this[Symbol.iterator]()}values(){return this[Symbol.iterator]()}[(VR=Symbol.iterator,YR=Symbol.toStringTag,VR)](){return new tU(this.wrap())}},cQ=class{constructor(i){re(this,"tree"),re(this,"path",new Array),re(this,"modificationCount",null),re(this,"splayCount"),this.tree=i,this.splayCount=i.getSplayCount()}[Symbol.iterator](){return this}next(){return this.moveNext()?{done:!1,value:this.current()}:{done:!0,value:null}}current(){if(!this.path.length)return null;let i=this.path[this.path.length-1];return this.getValue(i)}rebuildPath(i){this.path.splice(0,this.path.length),this.tree.splay(i),this.path.push(this.tree.getRoot()),this.splayCount=this.tree.getSplayCount()}findLeftMostDescendent(i){for(;i!=null;)this.path.push(i),i=i.left}moveNext(){if(this.modificationCount!=this.tree.getModificationCount()){if(this.modificationCount==null){this.modificationCount=this.tree.getModificationCount();let t=this.tree.getRoot();for(;t!=null;)this.path.push(t),t=t.left;return this.path.length>0}throw"Concurrent modification during iteration."}if(!this.path.length)return!1;this.splayCount!=this.tree.getSplayCount()&&this.rebuildPath(this.path[this.path.length-1].key);let i=this.path[this.path.length-1],e=i.right;if(e!=null){for(;e!=null;)this.path.push(e),e=e.left;return!0}for(this.path.pop();this.path.length&&this.path[this.path.length-1].right===i;)i=this.path.pop();return this.path.length>0}},tU=class extends cQ{getValue(i){return i.key}},iU=class extends cQ{getValue(i){return[i.key,i.key]}},hQ=i=>()=>i,Ay=i=>{let e=i?(t,n)=>n.minus(t).abs().isLessThanOrEqualTo(i):hQ(!1);return(t,n)=>e(t,n)?0:t.comparedTo(n)};function nU(i){let e=i?(t,n,r,o,s)=>t.exponentiatedBy(2).isLessThanOrEqualTo(o.minus(n).exponentiatedBy(2).plus(s.minus(r).exponentiatedBy(2)).times(i)):hQ(!1);return(t,n,r)=>{let o=t.x,s=t.y,a=r.x,l=r.y,A=s.minus(l).times(n.x.minus(a)).minus(o.minus(a).times(n.y.minus(l)));return e(A,o,s,a,l)?0:A.comparedTo(0)}}var rU=i=>i,oU=i=>{if(i){let e=new dd(Ay(i)),t=new dd(Ay(i)),n=(o,s)=>s.addAndReturn(o),r=o=>({x:n(o.x,e),y:n(o.y,t)});return r({x:new Kr(0),y:new Kr(0)}),r}return rU},cy=i=>({set:e=>{Oo=cy(e)},reset:()=>cy(i),compare:Ay(i),snap:oU(i),orient:nU(i)}),Oo=cy(),wh=(i,e)=>i.ll.x.isLessThanOrEqualTo(e.x)&&e.x.isLessThanOrEqualTo(i.ur.x)&&i.ll.y.isLessThanOrEqualTo(e.y)&&e.y.isLessThanOrEqualTo(i.ur.y),hy=(i,e)=>{if(e.ur.x.isLessThan(i.ll.x)||i.ur.x.isLessThan(e.ll.x)||e.ur.y.isLessThan(i.ll.y)||i.ur.y.isLessThan(e.ll.y))return null;let t=i.ll.x.isLessThan(e.ll.x)?e.ll.x:i.ll.x,n=i.ur.x.isLessThan(e.ur.x)?i.ur.x:e.ur.x,r=i.ll.y.isLessThan(e.ll.y)?e.ll.y:i.ll.y,o=i.ur.y.isLessThan(e.ur.y)?i.ur.y:e.ur.y;return{ll:{x:t,y:r},ur:{x:n,y:o}}},ld=(i,e)=>i.x.times(e.y).minus(i.y.times(e.x)),uQ=(i,e)=>i.x.times(e.x).plus(i.y.times(e.y)),pd=i=>uQ(i,i).sqrt(),sU=(i,e,t)=>{let n={x:e.x.minus(i.x),y:e.y.minus(i.y)},r={x:t.x.minus(i.x),y:t.y.minus(i.y)};return ld(r,n).div(pd(r)).div(pd(n))},aU=(i,e,t)=>{let n={x:e.x.minus(i.x),y:e.y.minus(i.y)},r={x:t.x.minus(i.x),y:t.y.minus(i.y)};return uQ(r,n).div(pd(r)).div(pd(n))},HR=(i,e,t)=>e.y.isZero()?null:{x:i.x.plus(e.x.div(e.y).times(t.minus(i.y))),y:t},qR=(i,e,t)=>e.x.isZero()?null:{x:t,y:i.y.plus(e.y.div(e.x).times(t.minus(i.x)))},lU=(i,e,t,n)=>{if(e.x.isZero())return qR(t,n,i.x);if(n.x.isZero())return qR(i,e,t.x);if(e.y.isZero())return HR(t,n,i.y);if(n.y.isZero())return HR(i,e,t.y);let r=ld(e,n);if(r.isZero())return null;let o={x:t.x.minus(i.x),y:t.y.minus(i.y)},s=ld(o,e).div(r),a=ld(o,n).div(r),l=i.x.plus(a.times(e.x)),A=t.x.plus(s.times(n.x)),c=i.y.plus(a.times(e.y)),h=t.y.plus(s.times(n.y)),u=l.plus(A).div(2),f=c.plus(h).div(2);return{x:u,y:f}},Hr=class fQ{constructor(e,t){re(this,"point"),re(this,"isLeft"),re(this,"segment"),re(this,"otherSE"),re(this,"consumedBy"),e.events===void 0?e.events=[this]:e.events.push(this),this.point=e,this.isLeft=t}static compare(e,t){let n=fQ.comparePoints(e.point,t.point);return n!==0?n:(e.point!==t.point&&e.link(t),e.isLeft!==t.isLeft?e.isLeft?1:-1:Ed.compare(e.segment,t.segment))}static comparePoints(e,t){return e.x.isLessThan(t.x)?-1:e.x.isGreaterThan(t.x)?1:e.y.isLessThan(t.y)?-1:e.y.isGreaterThan(t.y)?1:0}link(e){if(e.point===this.point)throw new Error("Tried to link already linked events");let t=e.point.events;for(let n=0,r=t.length;n{let o=r.otherSE;t.set(r,{sine:sU(this.point,e.point,o.point),cosine:aU(this.point,e.point,o.point)})};return(r,o)=>{t.has(r)||n(r),t.has(o)||n(o);let{sine:s,cosine:a}=t.get(r),{sine:l,cosine:A}=t.get(o);return s.isGreaterThanOrEqualTo(0)&&l.isGreaterThanOrEqualTo(0)?a.isLessThan(A)?1:a.isGreaterThan(A)?-1:0:s.isLessThan(0)&&l.isLessThan(0)?a.isLessThan(A)?-1:a.isGreaterThan(A)?1:0:l.isLessThan(s)?-1:l.isGreaterThan(s)?1:0}}},AU=class uy{constructor(e){re(this,"events"),re(this,"poly"),re(this,"_isExteriorRing"),re(this,"_enclosingRing"),this.events=e;for(let t=0,n=e.length;t0&&(n=l)}let r=n.segment.prevInResult(),o=r?r.prevInResult():null;for(;;){if(!r)return null;if(!o)return r.ringOut;if(o.ringOut!==r.ringOut)return((e=o.ringOut)==null?void 0:e.enclosingRing())!==r.ringOut?r.ringOut:(t=r.ringOut)==null?void 0:t.enclosingRing();r=o.prevInResult(),o=r?r.prevInResult():null}}},KR=class{constructor(i){re(this,"exteriorRing"),re(this,"interiorRings"),this.exteriorRing=i,i.poly=this,this.interiorRings=[]}addInterior(i){this.interiorRings.push(i),i.poly=this}getGeom(){let i=this.exteriorRing.getGeom();if(i===null)return null;let e=[i];for(let t=0,n=this.interiorRings.length;t0?(this.tree.delete(e),t.push(i)):(this.segments.push(e),e.prev=n)}else{if(n&&r){let o=n.getIntersection(r);if(o!==null){if(!n.isAnEndpoint(o)){let s=this._splitSafely(n,o);for(let a=0,l=s.length;a0)return-1;let u=t.comparePoint(e.rightSE.point);return u!==0?u:-1}if(n.isGreaterThan(r)){if(a.isLessThan(l)&&a.isLessThan(c))return-1;if(a.isGreaterThan(l)&&a.isGreaterThan(c))return 1;let h=t.comparePoint(e.leftSE.point);if(h!==0)return h;let u=e.comparePoint(t.rightSE.point);return u<0?1:u>0?-1:1}if(a.isLessThan(l))return-1;if(a.isGreaterThan(l))return 1;if(o.isLessThan(s)){let h=t.comparePoint(e.rightSE.point);if(h!==0)return h}if(o.isGreaterThan(s)){let h=e.comparePoint(t.rightSE.point);if(h<0)return 1;if(h>0)return-1}if(!o.eq(s)){let h=A.minus(a),u=o.minus(n),f=c.minus(l),g=s.minus(r);if(h.isGreaterThan(u)&&f.isLessThan(g))return 1;if(h.isLessThan(u)&&f.isGreaterThan(g))return-1}return o.isGreaterThan(s)?1:o.isLessThan(s)||A.isLessThan(c)?-1:A.isGreaterThan(c)?1:e.idt.id?1:0}static fromRing(e,t,n){let r,o,s,a=Hr.comparePoints(e,t);if(a<0)r=e,o=t,s=1;else if(a>0)r=t,o=e,s=-1;else throw new Error(`Tried to create degenerate segment at [${e.x}, ${e.y}]`);let l=new Hr(r,!0),A=new Hr(o,!1);return new Ad(l,A,[n],[s])}replaceRightSE(e){this.rightSE=e,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}bbox(){let e=this.leftSE.point.y,t=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:e.isLessThan(t)?e:t},ur:{x:this.rightSE.point.x,y:e.isGreaterThan(t)?e:t}}}vector(){return{x:this.rightSE.point.x.minus(this.leftSE.point.x),y:this.rightSE.point.y.minus(this.leftSE.point.y)}}isAnEndpoint(e){return e.x.eq(this.leftSE.point.x)&&e.y.eq(this.leftSE.point.y)||e.x.eq(this.rightSE.point.x)&&e.y.eq(this.rightSE.point.y)}comparePoint(e){return Oo.orient(this.leftSE.point,e,this.rightSE.point)}getIntersection(e){let t=this.bbox(),n=e.bbox(),r=hy(t,n);if(r===null)return null;let o=this.leftSE.point,s=this.rightSE.point,a=e.leftSE.point,l=e.rightSE.point,A=wh(t,a)&&this.comparePoint(a)===0,c=wh(n,o)&&e.comparePoint(o)===0,h=wh(t,l)&&this.comparePoint(l)===0,u=wh(n,s)&&e.comparePoint(s)===0;if(c&&A)return u&&!h?s:!u&&h?l:null;if(c)return h&&o.x.eq(l.x)&&o.y.eq(l.y)?null:o;if(A)return u&&s.x.eq(a.x)&&s.y.eq(a.y)?null:a;if(u&&h)return null;if(u)return s;if(h)return l;let f=lU(o,this.vector(),a,e.vector());return f===null||!wh(r,f)?null:Oo.snap(f)}split(e){let t=[],n=e.events!==void 0,r=new Hr(e,!0),o=new Hr(e,!1),s=this.rightSE;this.replaceRightSE(o),t.push(o),t.push(r);let a=new Ad(r,s,this.rings.slice(),this.windings.slice());return Hr.comparePoints(a.leftSE.point,a.rightSE.point)>0&&a.swapEvents(),Hr.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),n&&(r.checkForConsuming(),o.checkForConsuming()),t}swapEvents(){let e=this.rightSE;this.rightSE=this.leftSE,this.leftSE=e,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(let t=0,n=this.windings.length;t0){let o=t;t=n,n=o}if(t.prev===n){let o=t;t=n,n=o}for(let o=0,s=n.rings.length;or.length===1&&r[0].isSubject;this._isInResult=n(e)!==n(t);break}}return this._isInResult}},XR=class{constructor(i,e,t){if(re(this,"poly"),re(this,"isExterior"),re(this,"segments"),re(this,"bbox"),!Array.isArray(i)||i.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=e,this.isExterior=t,this.segments=[],typeof i[0][0]!="number"||typeof i[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");let n=Oo.snap({x:new Kr(i[0][0]),y:new Kr(i[0][1])});this.bbox={ll:{x:n.x,y:n.y},ur:{x:n.x,y:n.y}};let r=n;for(let o=1,s=i.length;omd.run("union",i,e),pU=(i,...e)=>md.run("difference",i,e);Oo.set;function mU(i){let e=[];if(xy(i,r=>{e.push(r.coordinates)}),e.length<2)throw new Error("Must have at least two features");let t=i.features[0].properties||{},n=pU(e[0],...e.slice(1));return n.length===0?null:n.length===1?_y(n[0],t):aQ(n,t)}var EU=mU;function IU(i){if(!i)throw new Error("geojson is required");var e=[];return WO(i,function(t){e.push(t)}),ly(e)}var CU=IU;function yU(i,e={}){let t=[];if(xy(i,r=>{t.push(r.coordinates)}),t.length<2)throw new Error("Must have at least 2 geometries");let n=dU(t[0],...t.slice(1));return n.length===0?null:n.length===1?_y(n[0],e.properties):aQ(n,e.properties)}var _U=yU;function WR(i,e){let t=EU(ly([_y([[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]]),i]));if(!t)return;t.properties={isMask:!0};let n=fd(OR(i)),r=(n[2]-n[0])/360/1e3,o=n[0]<-180,s=n[2]>180,a=CU(i);if(a.features.length>1&&(o||s))for(let l of a.features){let A=fd(OR(l));if(s&&A[0]<-180+r)for(let c of l.geometry.coordinates)for(let h of c)h[0]+=360-r;if(o&&A[2]>180-r)for(let c of l.geometry.coordinates)for(let h of c)h[0]-=360-r}e(ly([a.features.length<2?i:_U(a)??i,t]))}var JR="EPSG:4326";function xU(i){var e;let t=i.getProperties(),{isMask:n}=t,r=(e=i.getGeometry())==null?void 0:e.getType(),o=n?0:r==="LineString"||r==="MultiLineString"?3:2;return new ci({stroke:n?void 0:new _i({color:"#3170fe",lineDash:[o,o],width:o,lineCap:"butt"}),fill:n?new Ai({color:"#00000020"}):void 0,image:new Qr({src:`/icons/marker_${t.isReverse?"reverse":t.isSelected?"selected":"unselected"}.svg`,anchor:[.5,1]}),zIndex:t.isSelected?2:t.isReverse?0:1,text:t.isSelected&&t.tooltip?new js({backgroundFill:new Ai({color:"white"}),text:t.tooltip,offsetY:-40,backgroundStroke:new _i({color:"white",lineJoin:"round",width:3}),padding:[2,0,0,2]}):void 0})}function BU(i,e={},t={},n=xU){let r=-1,o,s,a,l=!1,A=new An({updateWhileAnimating:!0});i.addLayer(A);let c=new _n({});A.setSource(c),A.setStyle(n),i.on("click",g=>{i.forEachFeatureAtPixel(g.pixel,p=>{let d=p.getId();if(d)return g.stopPropagation(),s?.({type:"markerClick",id:d}),p})}),i.on("pointermove",g=>{let p=i.forEachFeatureAtPixel(g.pixel,d=>d.getId());o!==p&&(o&&s?.({type:"markerMouseLeave",id:o}),p&&s?.({type:"markerMouseEnter",id:p}),i.getTargetElement().style.cursor=p?"pointer":l?"crosshair":"",o=p)});function h(){return st()??i.getView().getProjection()}function u(g){return g.transform(JR,h())}let f=g=>{s?.({type:"mapClick",coordinates:ep(g.coordinate,h())})};return{setEventHandler(g){g?(s=g,i.on("click",f)):(s=void 0,i.un("click",f))},flyTo(g,p){i.getView().animate({center:vA(g,h()),...p?{zoom:p}:{},duration:2e3,...e})},fitBounds(g,p,d){i.getView().fit(SA(g,JR,h()),{padding:[p,p,p,p],...d?{maxZoom:d}:{},duration:2e3,...t})},indicateReverse(g){l=g,i.getTargetElement().style.cursor=g?"crosshair":""},setReverseMarker(g){a?g?a.getGeometry().setCoordinates(vA(g,h())):(c.removeFeature(a),a.dispose(),a=void 0):g&&(a=new Oe(new at(vA(g,h()))),a.setProperties({isReverse:!0}),c.addFeature(a))},setFeatures(g,p,d){function I(m){var C;if(m)for(let _ of m.features){let y=_.geometry.type==="Polygon"?new Dt(_.geometry.coordinates):_.geometry.type==="MultiPolygon"?new Ni(_.geometry.coordinates):null;y&&c.addFeature(new Oe({isMask:!!((C=_.properties)!=null&&C.isMask),geometry:u(y)}))}}c.clear(),a&&c.addFeature(a);e:if(p){let m=!1;if(p.geometry.type==="GeometryCollection"){let C=p.geometry.geometries.map(_=>_.type==="Polygon"?new Dt(_.coordinates):_.type==="MultiPolygon"?new Ni(_.coordinates):null).filter(_=>!!_);if(C.length>0)c.addFeature(new Oe(u(new Pi(C)))),m=!0;else for(let _ of p.geometry.geometries)_.type==="LineString"?(c.addFeature(new Oe(u(new ht(_.coordinates)))),m=!0):_.type==="MultiLineString"&&c.addFeature(new Oe(u(new Zt(_.coordinates)))),m=!0}if(!m){if(p.geometry.type==="Polygon")WR(p,I);else if(p.geometry.type==="MultiPolygon")WR(p,I);else if(p.geometry.type==="LineString"){c.addFeature(new Oe(u(new ht(p.geometry.coordinates))));break e}else if(p.geometry.type==="MultiLineString"){c.addFeature(new Oe(u(new Zt(p.geometry.coordinates))));break e}}if(!d&&!p.geometry.type.endsWith("Point"))break e;c.addFeature(new Oe(u(new at(p.center))))}for(let m of g??[]){if(m===p)continue;let C=new Oe(new at(vA(m.center,h())));C.setId(m.id),C.setProperties({fuzzy:!!m.matching_text,tooltip:m.place_type[0]==="reverse"?m.place_name:m.place_name.replace(/,.*/,"")}),c.addFeature(C)}},setSelectedMarker(g){var p,d,I;let m=c.getFeatures(),C=(p=m[0])!=null&&p.getProperties().isReverse?1:0;r>-1&&((d=m[r+C])==null||d.setProperties({isSelected:!1})),g>-1&&((I=m[g+C])==null||I.setProperties({isSelected:!0})),r=g},getCenterAndZoom(){let g=i.getView(),p=g.getCenter(),d=g.getZoom();if(!(!p||d===void 0))return[d,...ep(p,h())]}}}var Wt,oA,Id=class extends ut{constructor(e){let t=document.createElement("div");t.className="ol-search",super({element:t,target:e.target}),_R(this,Wt),_R(this,oA);let{flyTo:n,fullGeometryStyle:r,...o}=e;xR(this,Wt,new jO({target:t,props:{flyTo:n===void 0?!0:!!n,...o}})),jt(this,Wt).$on("select",s=>{this.dispatchEvent(new fy(s.detail.feature))}),jt(this,Wt).$on("pick",s=>{this.dispatchEvent(new my(s.detail.feature))}),jt(this,Wt).$on("featureslisted",s=>{this.dispatchEvent(new gy(s.detail.features))}),jt(this,Wt).$on("featuresmarked",s=>{this.dispatchEvent(new dy(s.detail.features))}),jt(this,Wt).$on("response",s=>{this.dispatchEvent(new Iy(s.detail.url,s.detail.featureCollection))}),jt(this,Wt).$on("optionsvisibilitychange",s=>{this.dispatchEvent(new py(s.detail.optionsVisible))}),jt(this,Wt).$on("reversetoggle",s=>{this.dispatchEvent(new Cy(s.detail.reverse))}),jt(this,Wt).$on("querychange",s=>{this.dispatchEvent(new Ey(s.detail.query))}),xR(this,oA,e)}setMap(e){var t;if(super.setMap(e),e){let{flyTo:n,fullGeometryStyle:r}=jt(this,oA),o=BU(e,typeof n=="boolean"?void 0:n,typeof n=="boolean"?void 0:n,r);(t=jt(this,Wt))==null||t.$set({mapController:o})}}setOptions(e){var t;Object.assign(jt(this,oA),e);let{flyTo:n,fullGeometryStyle:r,...o}=jt(this,oA);(t=jt(this,Wt))==null||t.$set({...o,flyTo:n===void 0?!0:!!n})}setQuery(e,t=!0){var n;(n=jt(this,Wt))==null||n.setQuery(e,t)}clearMap(){var e;(e=jt(this,Wt))==null||e.clearMap()}clearList(){var e;(e=jt(this,Wt))==null||e.clearList()}setReverseMode(e){var t;(t=jt(this,Wt))==null||t.$set({reverseActive:e})}focus(e){var t;(t=jt(this,Wt))==null||t.focus(e)}blur(){var e;(e=jt(this,Wt))==null||e.blur()}};Wt=new WeakMap,oA=new WeakMap;var fy=class extends Pe{constructor(e){super("select"),re(this,"feature"),this.feature=e}},gy=class extends Pe{constructor(e){super("featureslisted"),re(this,"features"),this.features=e}},dy=class extends Pe{constructor(e){super("featuresmarked"),re(this,"features"),this.features=e}},py=class extends Pe{constructor(e){super("optionsvisibilitychange"),re(this,"optionsVisible"),this.optionsVisible=e}},my=class extends Pe{constructor(e){super("pick"),re(this,"feature"),this.feature=e}},Ey=class extends Pe{constructor(e){super("querychange"),re(this,"query"),this.query=e}},Iy=class extends Pe{constructor(e,t){super("response"),re(this,"url"),re(this,"featureCollection"),this.url=e,this.featureCollection=t}},Cy=class extends Pe{constructor(e){super("reversetoggle"),re(this,"reverse"),this.reverse=e}};var Cd=class extends ut{constructor(e){let t=document.createElement("div");t.className="ol-control ol-unselectable info-box",t.style.cssText=e.cssText||"top: 65px; left: .5em; padding: 5px;",t.innerHTML=e.html,super({element:t,target:e.target})}};var yd={DRAWSTART:"drawstart",DRAWEND:"drawend",DRAWABORT:"drawabort"},lA=class extends Pe{constructor(e,t){super(e),this.feature=t}};function wU(i,e){let t=[];for(let n=0;n=t?i[e-t]:i[e]}function xd(i,e,t){let n,r;es){let l=cA(i,n),A=cA(i,r);return _d(l,A)}let a=0;if(nu.startIndex?pu.startIndex&&(p-=f.length)),l=p,a=h)}let A=e.targets[a],c=A.ring;if(e.targetIndex===a&&c){let h=cA(A.coordinates,l),u=t.getPixelFromCoordinate(h);Pa(u,e.startPx)>n&&(c=!1)}if(c){let h=A.coordinates,u=h.length,f=A.startIndex,g=l;if(f=t?n-=t:n<0&&(n+=t);let o=n+1;o>=t&&(o-=t);let s=i[n],a=s[0],l=s[1],A=i[o],c=A[0]-a,h=A[1]-l;return[a+c*r,l+h*r]}var vy=class extends Bi{constructor(e){let t=e;t.stopDown||(t.stopDown=ji),super(t),this.on,this.once,this.un,this.shouldHandle_=!1,this.downPx_=null,this.downTimeout_,this.lastDragTime_,this.pointerType_,this.freehand_=!1,this.source_=e.source?e.source:null,this.features_=e.features?e.features:null,this.snapTolerance_=e.snapTolerance?e.snapTolerance:12,this.type_=e.type,this.mode_=TU(this.type_),this.stopClick_=!!e.stopClick,this.minPoints_=e.minPoints?e.minPoints:this.mode_==="Polygon"?3:2,this.maxPoints_=this.mode_==="Circle"?2:e.maxPoints?e.maxPoints:1/0,this.finishCondition_=e.finishCondition?e.finishCondition:bi,this.geometryLayout_=e.geometryLayout?e.geometryLayout:"XY";let n=e.geometryFunction;if(!n){let r=this.mode_;if(r==="Circle")n=(o,s,a)=>{let l=s||new sx([NaN,NaN]),A=Ke(o[0],a),c=kn(A,Ke(o[o.length-1],a));l.setCenterAndRadius(A,Math.sqrt(c),this.geometryLayout_);let h=st();return h&&l.transform(a,h),l};else{let o;r==="Point"?o=at:r==="LineString"?o=ht:r==="Polygon"&&(o=Dt),n=(s,a,l)=>(a?r==="Polygon"?s[0].length?a.setCoordinates([s[0].concat([s[0][0]])],this.geometryLayout_):a.setCoordinates([],this.geometryLayout_):a.setCoordinates(s,this.geometryLayout_):a=new o(s,this.geometryLayout_),a)}}this.geometryFunction_=n,this.dragVertexDelay_=e.dragVertexDelay!==void 0?e.dragVertexDelay:500,this.finishCoordinate_=null,this.sketchFeature_=null,this.sketchPoint_=null,this.sketchCoords_=null,this.sketchLine_=null,this.sketchLineCoords_=null,this.squaredClickTolerance_=e.clickTolerance?e.clickTolerance*e.clickTolerance:36,this.overlay_=new An({source:new _n({useSpatialIndex:!1,wrapX:e.wrapX?e.wrapX:!1}),style:e.style?e.style:SU(),updateWhileInteracting:!0}),this.geometryName_=e.geometryName,this.condition_=e.condition?e.condition:hl,this.freehandCondition_,e.freehand?this.freehandCondition_=ta:this.freehandCondition_=e.freehandCondition?e.freehandCondition:Vu,this.traceCondition_,this.setTrace(e.trace||!1),this.traceState_={active:!1},this.traceSource_=e.traceSource||e.source||null,this.addChangeListener(dc.ACTIVE,this.updateState_)}setTrace(e){let t;e?e===!0?t=ta:t=e:t=tB,this.traceCondition_=t}setMap(e){super.setMap(e),this.updateState_()}getOverlay(){return this.overlay_}handleEvent(e){e.originalEvent.type===K.CONTEXTMENU&&e.originalEvent.preventDefault(),this.freehand_=this.mode_!=="Point"&&this.freehandCondition_(e);let t=e.type===xe.POINTERMOVE,n=!0;return!this.freehand_&&this.lastDragTime_&&e.type===xe.POINTERDRAG&&(Date.now()-this.lastDragTime_>=this.dragVertexDelay_?(this.downPx_=e.pixel,this.shouldHandle_=!this.freehand_,t=!0):this.lastDragTime_=void 0,this.shouldHandle_&&this.downTimeout_!==void 0&&(clearTimeout(this.downTimeout_),this.downTimeout_=void 0)),this.freehand_&&e.type===xe.POINTERDRAG&&this.sketchFeature_!==null?(this.addToDrawing_(e.coordinate),n=!1):this.freehand_&&e.type===xe.POINTERDOWN?n=!1:t&&this.getPointerCount()<2?(n=e.type===xe.POINTERMOVE,n&&this.freehand_?(this.handlePointerMove_(e),this.shouldHandle_&&e.originalEvent.preventDefault()):(e.originalEvent.pointerType==="mouse"||e.type===xe.POINTERDRAG&&this.downTimeout_===void 0)&&this.handlePointerMove_(e)):e.type===xe.DBLCLICK&&(n=!1),super.handleEvent(e)&&n}handleDownEvent(e){return this.shouldHandle_=!this.freehand_,this.freehand_?(this.downPx_=e.pixel,this.finishCoordinate_||this.startDrawing_(e.coordinate),!0):this.condition_(e)?(this.lastDragTime_=Date.now(),this.downTimeout_=setTimeout(()=>{this.handlePointerMove_(new Hn(xe.POINTERMOVE,e.map,e.originalEvent,!1,e.frameState))},this.dragVertexDelay_),this.downPx_=e.pixel,!0):(this.lastDragTime_=void 0,!1)}deactivateTrace_(){this.traceState_={active:!1}}toggleTraceState_(e){if(!this.traceSource_||!this.traceCondition_(e))return;if(this.traceState_.active){this.deactivateTrace_();return}let t=this.getMap(),n=t.getCoordinateFromPixel([e.pixel[0]-this.snapTolerance_,e.pixel[1]+this.snapTolerance_]),r=t.getCoordinateFromPixel([e.pixel[0]+this.snapTolerance_,e.pixel[1]-this.snapTolerance_]),o=At([n,r]),s=this.traceSource_.getFeaturesInExtent(o);if(s.length===0)return;let a=wU(e.coordinate,s);a.length&&(this.traceState_={active:!0,startPx:e.pixel.slice(),targets:a,targetIndex:-1})}addOrRemoveTracedCoordinates_(e,t){let n=e.startIndex<=e.endIndex,r=e.startIndex<=t;n===r?n&&t>e.endIndex||!n&&te.endIndex)&&this.removeTracedCoordinates_(t,e.endIndex):(this.removeTracedCoordinates_(e.startIndex,e.endIndex),this.addTracedCoordinates_(e,e.startIndex,t))}removeTracedCoordinates_(e,t){if(e===t)return;let n=0;if(e0&&this.removeLastPoints_(n)}addTracedCoordinates_(e,t,n){if(t===n)return;let r=[];if(t=s;--a)r.push(AA(e.coordinates,a))}r.length&&this.appendCoordinates(r)}updateTrace_(e){let t=this.traceState_;if(!t.active||t.targetIndex===-1&&Pa(t.startPx,e.pixel)this.squaredClickTolerance_:s<=this.squaredClickTolerance_,!this.shouldHandle_)return}if(!this.finishCoordinate_){this.createOrUpdateSketchPoint_(e.coordinate.slice());return}this.updateTrace_(e),this.modifyDrawing_(e.coordinate)}atFinish_(e,t){let n=!1;if(this.sketchFeature_){let r=!1,o=[this.finishCoordinate_],s=this.mode_;if(s==="Point")n=!0;else if(s==="Circle")n=this.sketchCoords_.length===2;else if(s==="LineString")r=!t&&this.sketchCoords_.length>this.minPoints_;else if(s==="Polygon"){let a=this.sketchCoords_;r=a[0].length>this.minPoints_,o=[a[0][0],a[0][a[0].length-2]],t?o=[a[0][0]]:o=[a[0][0],a[0][a[0].length-2]]}if(r){let a=this.getMap();for(let l=0,A=o.length;l=this.maxPoints_&&(this.freehand_?o.pop():r=!0),o.push(e.slice()),this.geometryFunction_(o,t,n)):s==="Polygon"&&(o=this.sketchCoords_[0],o.length>=this.maxPoints_&&(this.freehand_?o.pop():r=!0),o.push(e.slice()),r&&(this.finishCoordinate_=o[0]),this.geometryFunction_(this.sketchCoords_,t,n)),this.createOrUpdateSketchPoint_(e.slice()),this.updateSketchFeatures_(),r?this.finishDrawing():this.sketchFeature_}removeLastPoints_(e){if(!this.sketchFeature_)return;let t=this.sketchFeature_.getGeometry(),n=this.getMap().getView().getProjection(),r=this.mode_;for(let o=0;o=2){this.finishCoordinate_=s[s.length-2].slice();let a=this.finishCoordinate_.slice();s[s.length-1]=a,this.createOrUpdateSketchPoint_(a)}this.geometryFunction_(s,t,n),t.getType()==="Polygon"&&this.sketchLine_&&this.createOrUpdateCustomSketchLine_(t)}else if(r==="Polygon"){s=this.sketchCoords_[0],s.splice(-2,1);let a=this.sketchLine_.getGeometry();if(s.length>=2){let l=s[s.length-2].slice();s[s.length-1]=l,this.createOrUpdateSketchPoint_(l)}a.setCoordinates(s),this.geometryFunction_(this.sketchCoords_,t,n)}if(s.length===1){this.abortDrawing();break}}this.updateSketchFeatures_()}removeLastPoint(){this.removeLastPoints_(1)}finishDrawing(){let e=this.abortDrawing_();if(!e)return null;let t=this.sketchCoords_,n=e.getGeometry(),r=this.getMap().getView().getProjection();return this.mode_==="LineString"?(t.pop(),this.geometryFunction_(t,n,r)):this.mode_==="Polygon"&&(t[0].pop(),this.geometryFunction_(t,n,r),t=n.getCoordinates()),this.type_==="MultiPoint"?e.setGeometry(new yn([t])):this.type_==="MultiLineString"?e.setGeometry(new Zt([t])):this.type_==="MultiPolygon"&&e.setGeometry(new Ni([t])),this.dispatchEvent(new lA(yd.DRAWEND,e)),this.features_&&this.features_.push(e),this.source_&&this.source_.addFeature(e),e}abortDrawing_(){this.finishCoordinate_=null;let e=this.sketchFeature_;return this.sketchFeature_=null,this.sketchPoint_=null,this.sketchLine_=null,this.overlay_.getSource().clear(!0),this.deactivateTrace_(),e}abortDrawing(){let e=this.abortDrawing_();e&&this.dispatchEvent(new lA(yd.DRAWABORT,e))}appendCoordinates(e){let t=this.mode_,n=!this.sketchFeature_;n&&this.startDrawing_(e[0]);let r;if(t==="LineString"||t==="Circle")r=this.sketchCoords_;else if(t==="Polygon")r=this.sketchCoords_&&this.sketchCoords_.length?this.sketchCoords_[0]:[];else return;n&&r.shift(),r.pop();for(let s=0;s{i.removeInteraction(wd),i.removeInteraction(vd),t()},t()}var uA=class extends ut{constructor(e){e=e||{};let t=document.createElement("div");t.className="ol-draw ol-control ol-unselectable",t.style.cssText=e.cssText||"top: .5em; left: 35px;",super({element:t,target:e.target}),this.setProperties({id:"draw",type:"DrawControl"})}onAdd(){let e=this.getMap();e?.addLayer(Sy);let t=DU();e&&(FU(e,t),this.element.appendChild(t))}getDraw(){return wd}getSnap(){return vd}getGeoJSONFeatures(){return bh.getFeatures().map(e=>hA(e))}getLayer(){return Sy}};var EQ=document.createElement("style");EQ.innerText=".ol-search {position: absolute; top: .5em; right: .5em;}";document.head.appendChild(EQ);var IQ=new gc;IQ.setProperties({id:"zoom",type:"ZoomControl"});var CQ=new fc;CQ.setProperties({id:"rotate",type:"RotateControl"});var yQ=new uc;yQ.setProperties({id:"attribution",type:"AttributionControl"});var _Q=[IQ,CQ,yQ],xQ={ScaleLineControl:cR,FullScreenControl:pR,ZoomSliderControl:mR,MousePositionControl:IR,OverviewMapControl:CR,ZoomControl:gc,RotateControl:fc,AttributionControl:uc,InfoBox:Cd,DrawControl:uA,ZoomToExtentControl:yR,MapTilerGeocodingControl:Id};var zo="@@type",Dh="@@geojson";var Sd=class{constructor(e){this._catalog=e||Object.assign(Object.assign(Object.assign(Object.assign({},xQ),T1),AR),{GeoJSON:Dr,KML:ch,GPX:oh,TopoJSON:gh,IGC:sh,MVT:fh,View:xi})}parseOptions(e){let t={};for(let n in e){let r=e[n];Array.isArray(r)&&typeof r[0]=="object"?(console.log("Parse items of array"),t[n]=r.map(o=>o[zo]?this.parse(o):this.parseOptions(o))):r instanceof Object&&r[zo]?t[n]=this.parse(r):[zo,Dh].includes(n)||(t[n]=r)}return t}parse(e){let t=this.parseOptions(e);return console.log("parsed options",t),console.log("type detected",e[zo]),new this._catalog[e[zo]](t)}};var LU=Object.prototype.toString,gA=Array.isArray||function(e){return LU.call(e)==="[object Array]"};function Ry(i){return typeof i=="function"}function MU(i){return gA(i)?"array":typeof i}function Ty(i){return i.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function BQ(i,e){return i!=null&&typeof i=="object"&&e in i}function kU(i,e){return i!=null&&typeof i!="object"&&i.hasOwnProperty&&i.hasOwnProperty(e)}var PU=RegExp.prototype.test;function NU(i,e){return PU.call(i,e)}var GU=/\S/;function OU(i){return!NU(GU,i)}var UU={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/","`":"`","=":"="};function zU(i){return String(i).replace(/[&<>"'`=\/]/g,function(t){return UU[t]})}var YU=/\s*/,VU=/\s+/,wQ=/\s*=/,HU=/\s*\}/,qU=/#|\^|\/|>|\{|&|=|!/;function KU(i,e){if(!i)return[];var t=!1,n=[],r=[],o=[],s=!1,a=!1,l="",A=0;function c(){if(s&&!a)for(;o.length;)delete r[o.pop()];else o=[];s=!1,a=!1}var h,u,f;function g(E){if(typeof E=="string"&&(E=E.split(VU,2)),!gA(E)||E.length!==2)throw new Error("Invalid tags: "+E);h=new RegExp(Ty(E[0])+"\\s*"),u=new RegExp("\\s*"+Ty(E[1])),f=new RegExp("\\s*"+Ty("}"+E[1]))}g(e||rr.tags);for(var p=new Lh(i),d,I,m,C,_,y;!p.eos();){if(d=p.pos,m=p.scanUntil(h),m)for(var w=0,T=m.length;w"?_=[I,m,d,p.pos,l,A,t]:_=[I,m,d,p.pos],A++,r.push(_),I==="#"||I==="^")n.push(_);else if(I==="/"){if(y=n.pop(),!y)throw new Error('Unopened section "'+m+'" at '+d);if(y[1]!==m)throw new Error('Unclosed section "'+y[1]+'" at '+d)}else I==="name"||I==="{"||I==="&"?a=!0:I==="="&&g(m)}if(c(),y=n.pop(),y)throw new Error('Unclosed section "'+y[1]+'" at '+p.pos);return jU(XU(r))}function XU(i){for(var e=[],t,n,r=0,o=i.length;r0?n[n.length-1][4]:e;break;default:t.push(r)}return e}function Lh(i){this.string=i,this.tail=i,this.pos=0}Lh.prototype.eos=function(){return this.tail===""};Lh.prototype.scan=function(e){var t=this.tail.match(e);if(!t||t.index!==0)return"";var n=t[0];return this.tail=this.tail.substring(n.length),this.pos+=n.length,n};Lh.prototype.scanUntil=function(e){var t=this.tail.search(e),n;switch(t){case-1:n=this.tail,this.tail="";break;case 0:n="";break;default:n=this.tail.substring(0,t),this.tail=this.tail.substring(t)}return this.pos+=n.length,n};function fA(i,e){this.view=i,this.cache={".":this.view},this.parent=e}fA.prototype.push=function(e){return new fA(e,this)};fA.prototype.lookup=function(e){var t=this.cache,n;if(t.hasOwnProperty(e))n=t[e];else{for(var r=this,o,s,a,l=!1;r;){if(e.indexOf(".")>0)for(o=r.view,s=e.split("."),a=0;o!=null&&a"?A=this.renderPartial(a,t,n,o):l==="&"?A=this.unescapedValue(a,t):l==="name"?A=this.escapedValue(a,t,o):l==="text"&&(A=this.rawValue(a)),A!==void 0&&(s+=A);return s};Vi.prototype.renderSection=function(e,t,n,r,o){var s=this,a="",l=t.lookup(e[1]);function A(u){return s.render(u,t,n,o)}if(l){if(gA(l))for(var c=0,h=l.length;c0||!n)&&(o[s]=r+o[s]);return o.join(` -`)};Dt.prototype.renderPartial=function(e,t,n,r){if(n){var o=this.getConfigTags(r),s=mp(n)?n(e[1]):n[e[1]];if(s!=null){var a=e[6],A=e[5],l=e[4],c=s;A==0&&l&&(c=this.indentPartial(s,l,a));var h=this.parse(c,o);return this.renderTokens(h,t,n,c,r)}}};Dt.prototype.unescapedValue=function(e,t){var n=t.lookup(e[1]);if(n!=null)return n};Dt.prototype.escapedValue=function(e,t,n){var r=this.getConfigEscape(n)||Ei.escape,o=t.lookup(e[1]);if(o!=null)return typeof o=="number"&&r===Ei.escape?String(o):r(o)};Dt.prototype.rawValue=function(e){return e[1]};Dt.prototype.getConfigTags=function(e){return ks(e)?e:e&&typeof e=="object"?e.tags:void 0};Dt.prototype.getConfigEscape=function(e){if(e&&typeof e=="object"&&!ks(e))return e.escape};var Ei={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(i){BA.templateCache=i},get templateCache(){return BA.templateCache}},BA=new Dt;Ei.clearCache=function(){return BA.clearCache()};Ei.parse=function(e,t){return BA.parse(e,t)};Ei.render=function(e,t,n,r){if(typeof e!="string")throw new TypeError('Invalid template! Template should be a "string" but "'+H2(e)+'" was given as the first argument for mustache#render(template, view, partials)');return BA.render(e,t,n,r)};Ei.escape=j2;Ei.Scanner=xA;Ei.Context=Ms;Ei.Writer=Dt;var Mx=Ei;var rb=function(i,e){var t={};for(var n in i)Object.prototype.hasOwnProperty.call(i,n)&&e.indexOf(n)<0&&(t[n]=i[n]);if(i!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,n=Object.getOwnPropertySymbols(i);r`${n}: ${t[n]}`).join("
")}function Px(i,e){Ve.id="ol-tooltip",i.getTargetElement().appendChild(Ve),console.log("tooltip element added",Ve);let t,n=function(r,o){let s=o.closest(".ol-control")?void 0:i.forEachFeatureAtPixel(r,function(a){return a});s?(Ve.style.left=r[0]+15+"px",Ve.style.top=r[1]+"px",s!==t&&(Ve.style.visibility="visible",Ve.innerHTML=ob(s,e))):Ve.style.visibility="hidden",t=s};i.on("pointermove",function(r){if(r.dragging){Ve.style.visibility="hidden",t=void 0;return}n(r.pixel,r.originalEvent.target)}),i.on("click",function(r){n(r.pixel,r.originalEvent.target)}),i.getTargetElement().addEventListener("pointerleave",function(){t=void 0,Ve.style.visibility="hidden"})}var Nx="@@type",sb="@@geojson",pp=new xh;function ab(i){let e=pp.parse(i),t=e.getCenter();if(console.log("view center",t),t&&e.getProjection().getCode()!=="EPSG:4326"){let n=rE(t);console.log("view center transformed",n),e.setCenter(n)}return e}function Ab(i){let e=pp.parse(i);return console.log("layerDef",i),e.set("id",i.id),lb(e,i.source[sb]),e}function lb(i,e){e&&(i.getSource().addFeatures(new ba().readFeatures(e)),console.log("geojson features added",e))}var wA=class{constructor(e,t,n){this._metadata={layers:[],controls:[]},this._model=n;let r=ab(t.view),o=[],s=[];this._container=e,this._map=new Da({target:e,view:r,controls:kl().extend(o),layers:s});for(let a of t.controls||[])this.addControl(a);for(let a of t.layers||[])this.addLayer(a)}getElement(){return this._container}getMap(){return this._map}getMetadata(){return this._metadata}setViewFromSource(e){let t=this.getLayer(e),n=t?.getSource(),r=n?.getView();r&&this._map.setView(r)}setExtentFromSource(){}getLayer(e){for(let t of this._map.getLayers().getArray())if(t.get("id")===e)return t}addLayer(e){let t=Ab(e);this._map.addLayer(t),this._metadata.layers.push({id:t.get("id"),type:e[Nx]}),console.log("layer",t.get("id"),"added",this._metadata)}removeLayer(e){let t=this.getLayer(e);t&&(this._map.removeLayer(t),this._metadata.layers=this._metadata.layers.filter(n=>n.id!=e),console.log("layer",e,"removed",this._metadata))}setLayerStyle(e,t){let n=this.getLayer(e);n&&(console.log("set layer style",e,t),n.setStyle(t))}applyCallToLayer(e,t){console.log("run layer method",e),this.getLayer(e)[t.method](...t.args)}getControl(e){for(let t of this._map.getControls().getArray())if(t.get("id")===e)return t}addControl(e){let t=pp.parse(e);t.set("id",e.id),this._map.addControl(t),this._metadata.controls.push({id:t.get("id"),type:e[Nx]}),console.log("control",t.get("id"),"added",this._metadata)}removeControl(e){let t=this.getControl(e);t&&(this._map.removeControl(t),this._metadata.controls=this._metadata.controls.filter(n=>n.id!=e),console.log("control",e,"removed",this._metadata))}addOverlay(e){let t=document.createElement("div");t.style.cssText="",t.innerHTML="We are out here.";let n=new Yl({element:t,position:e});this._map.addOverlay(n)}addTooltip(e){Px(this._map,e)}};var cb="map";window.renderOLMapWidget=i=>{console.log("render OL-MapWidget",i);let e=document.getElementById(cb)||document.createElement("div");console.log("el",e);let t=new wA(e,i),n=t.getMap();if(console.log("calls",i.calls),i.calls)for(let r of i.calls)t[r.method](...r.args)};})(); +`)};Vi.prototype.renderPartial=function(e,t,n,r){if(n){var o=this.getConfigTags(r),s=Ry(n)?n(e[1]):n[e[1]];if(s!=null){var a=e[6],l=e[5],A=e[4],c=s;l==0&&A&&(c=this.indentPartial(s,A,a));var h=this.parse(c,o);return this.renderTokens(h,t,n,c,r)}}};Vi.prototype.unescapedValue=function(e,t){var n=t.lookup(e[1]);if(n!=null)return n};Vi.prototype.escapedValue=function(e,t,n){var r=this.getConfigEscape(n)||rr.escape,o=t.lookup(e[1]);if(o!=null)return typeof o=="number"&&r===rr.escape?String(o):r(o)};Vi.prototype.rawValue=function(e){return e[1]};Vi.prototype.getConfigTags=function(e){return gA(e)?e:e&&typeof e=="object"?e.tags:void 0};Vi.prototype.getConfigEscape=function(e){if(e&&typeof e=="object"&&!gA(e))return e.escape};var rr={name:"mustache.js",version:"4.2.0",tags:["{{","}}"],clearCache:void 0,escape:void 0,parse:void 0,render:void 0,Scanner:void 0,Context:void 0,Writer:void 0,set templateCache(i){Fh.templateCache=i},get templateCache(){return Fh.templateCache}},Fh=new Vi;rr.clearCache=function(){return Fh.clearCache()};rr.parse=function(e,t){return Fh.parse(e,t)};rr.render=function(e,t,n,r){if(typeof e!="string")throw new TypeError('Invalid template! Template should be a "string" but "'+MU(e)+'" was given as the first argument for mustache#render(template, view, partials)');return Fh.render(e,t,n,r)};rr.escape=zU;rr.Scanner=Lh;rr.Context=fA;rr.Writer=Vi;var vQ=rr;var Qt=document.createElement("div");Qt.style.position="absolute";Qt.style.display="inline-block";Qt.style.height="auto";Qt.style.width="auto";Qt.style.zIndex="100";Qt.style.backgroundColor="#333";Qt.style.color="#fff";Qt.style.borderRadius="4px";Qt.style.padding="7px";Qt.style.left="50%";Qt.style.visibility="hidden";Qt.style.pointerEvents="none";function WU(i,e){let t=mQ(i);return e?vQ.render(e,t):Object.keys(t).map(n=>`${n}: ${t[n]}`).join("
")}function SQ(i,e){Qt.id="ol-tooltip",i.getTargetElement().appendChild(Qt),console.log("tooltip element added",Qt);let t,n=function(r,o){let s=o.closest(".ol-control")?void 0:i.forEachFeatureAtPixel(r,function(a){return a});s?(Qt.style.left=r[0]+15+"px",Qt.style.top=r[1]+"px",s!==t&&(Qt.style.visibility="visible",Qt.innerHTML=WU(s,e))):Qt.style.visibility="hidden",t=s};i.on("pointermove",function(r){if(r.dragging){Qt.style.visibility="hidden",t=void 0;return}n(r.pixel,r.originalEvent.target)}),i.on("click",function(r){n(r.pixel,r.originalEvent.target)}),i.getTargetElement().addEventListener("pointerleave",function(){t=void 0,Qt.style.visibility="hidden"})}function JU(i){let e={};for(let t in i)typeof i[t]!="object"&&(e[t]=i[t]);return e}function TQ(i){let e=i.getMap(),t=i.getMetadata(),n=i.getAnywidgetModel(),r=()=>{n&&(n.set("metadata",t),n.save_changes())};e.getLayers().on("add",o=>{let s=o.element,a=JU(s.getProperties());t.layers.push(a),console.log("layer",s.get("id"),"added",t),r()}),e.getLayers().on("remove",o=>{let a=o.element.get("id");t.layers=t.layers.filter(l=>l.id!=a),console.log("layer",a,"removed",t),r()}),e.getControls().on("add",o=>{var s;let a=o.element;if(a instanceof uA){a.onAdd();for(let l of["addfeature","changefeature"]){let A=a.getLayer();(s=A.getSource())===null||s===void 0||s.on(l,c=>{let h=a.getGeoJSONFeatures();console.log(h),n&&(n.set("features",{[A.get("id")]:h}),n.save_changes())})}}t.controls.push(a.getProperties()),console.log("control",a.get("id"),"added",t),r()}),e.getControls().on("remove",o=>{let a=o.element.get("id");t.controls=t.controls.filter(l=>l.id!=a),console.log("control",a,"removed",t),r()})}var $U=new ci({fill:new Ai({color:"rgba(58, 154, 178,0.7)"}),stroke:new _i({color:"rgba(220, 203, 78, 0.7)",width:2})});function RQ(i,e){let t=[];i.on("singleclick",function(n){i.forEachFeatureAtPixel(n.pixel,function(o,s){let a=s instanceof An,l=o;l.set("layer",s.get("id"));let A=t.indexOf(l);A<0?(console.log("push"),t.push(l),a&&l.setStyle($U)):(console.log("delete"),t.splice(A,1),a&&l.setStyle())});let r=t.map(o=>hA(o));e?(e.set("features",{selected:r}),e.save_changes()):console.log(r)})}var ZU={ADD_FEATURES:"addfeatures"},Qy=class extends Pe{constructor(e,t,n,r){super(e),this.features=n,this.file=t,this.projection=r}},by=class extends qn{constructor(e){e=e||{},super({handleEvent:bi}),this.on,this.once,this.un,this.readAsBuffer_=!1,this.formats_=[];let t=e.formatConstructors?e.formatConstructors:[];for(let n=0,r=t.length;n0){this.source_&&(this.source_.clear(),this.source_.addFeatures(u)),this.dispatchEvent(new Qy(ZU.ADD_FEATURES,e,u,o));break}}}registerListeners_(){let e=this.getMap();if(e){let t=this.target?this.target:e.getViewport();this.dropListenKeys_=[ee(t,K.DROP,this.handleDrop,this),ee(t,K.DRAGENTER,this.handleStop,this),ee(t,K.DRAGOVER,this.handleStop,this),ee(t,K.DROP,this.handleStop,this)]}}setActive(e){!this.getActive()&&e&&this.registerListeners_(),this.getActive()&&!e&&this.unregisterListeners_(),super.setActive(e)}setMap(e){this.unregisterListeners_(),super.setMap(e),this.getActive()&&this.registerListeners_()}tryReadFeatures_(e,t,n){try{return e.readFeatures(t,n)}catch{return null}}unregisterListeners_(){this.dropListenKeys_&&(this.dropListenKeys_.forEach(ce),this.dropListenKeys_=null)}handleDrop(e){let t=e.dataTransfer.files;for(let n=0,r=t.length;n{this._map.getView().fit(e.getExtent())}):this._map.getView().fit(e.getExtent()))}fitBounds(e){this._map.getView().fit(e)}setView(e){let t=dA.parse(e);this._map.setView(t)}applyCallToView(e){let t=this._map.getView();console.log("run view method",t),t[e.method](...e.args)}getLayer(e){for(let t of this._map.getLayers().getArray())if(t.get("id")===e)return t}addLayer(e){let t=t8(e);if(t.get("fitBounds")){let n=t.getSource();this.setExtentFromSource(n)}this._map.addLayer(t)}removeLayer(e){let t=this.getLayer(e);t&&this._map.removeLayer(t)}setLayerStyle(e,t){let n=this.getLayer(e);n&&(n.setStyle(t),console.log("style",e,"updated",t))}applyCallToLayer(e,t){console.log("run layer method",e),this.getLayer(e)[t.method](...t.args)}setSource(e,t){let n=this.getLayer(e);if(n){let r=dA.parse(t);n.setSource(r);let o=t[Dh];o&&r.addFeatures(new Dr().readFeatures(o))}}getControl(e){for(let t of this._map.getControls().getArray())if(t.get("id")===e)return t}addControl(e){let t=dA.parse(e);t.setProperties({id:e.id,type:e[zo]}),this._map.addControl(t)}removeControl(e){let t=this.getControl(e);t&&this._map.removeControl(t)}addOverlay(e,t,n,r="ol-overlay"){let o=document.createElement("div");o.id=r,o.style.cssText=n||"",o.innerHTML=t;let s=new Xu({element:o,position:e});this._map.addOverlay(s)}addTooltip(e){SQ(this._map,e)}addSelectFeatures(){RQ(this._map,this._model)}addDragAndDropVectorLayers(e,t){let n=e?.map(r=>dA.parse(r));console.log("drag and drop formats",n),bQ(this._map,n,t)}addModifyInteraction(e){var t;let n=(t=this.getLayer(e))===null||t===void 0?void 0:t.getSource();if(n){let r=new tf({source:n});this._map.addInteraction(r);let o=new Zu({source:n});this._map.addInteraction(o),n.on("changefeature",s=>{if(s.feature){let a=hA(s.feature);console.log("feature changed",a),this._model&&(this._model.set("features",{[e]:[a]}),this._model.save_changes())}})}}};var n8="map";window.renderOLMapWidget=i=>{console.log("render OL-MapWidget",i);let e=document.getElementById(n8)||document.createElement("div");console.log("el",e);let t=window.olMapWidget=new Mh(e,i);if(console.log("calls",i.calls),i.calls)for(let n of i.calls)t[n.method](...n.args)};})(); /*! Bundled license information: pako/dist/pako.esm.mjs: diff --git a/src/openlayers/layers.py b/src/openlayers/layers.py index 77603a3..cb95169 100644 --- a/src/openlayers/layers.py +++ b/src/openlayers/layers.py @@ -1,10 +1,25 @@ +from __future__ import annotations + +from .basemaps import BasemapLayer from .models.layers import ( Layer, LayerT, TileLayer, + VectorImageLayer, VectorLayer, + VectorTileLayer, WebGLTileLayer, WebGLVectorLayer, + WebGLVectorTileLayer, ) -__all__ = ["TileLayer", "VectorLayer", "WebGLTileLayer", "WebGLVectorLayer"] +__all__ = [ + "TileLayer", + "VectorLayer", + "WebGLTileLayer", + "WebGLVectorLayer", + "BasemapLayer", + "VectorTileLayer", + "WebGLVectorTileLayer", + "VectorImageLayer", +] diff --git a/src/openlayers/map.py b/src/openlayers/map.py index ff27080..e7f2960 100644 --- a/src/openlayers/map.py +++ b/src/openlayers/map.py @@ -4,34 +4,44 @@ from pathlib import Path from typing import Any +from .abstracts import LayerLike from .export import HTMLTemplate, write_file from .models.controls import ControlT +from .models.formats import GPX, KML, FormatT, GeoJSON, TopoJSON from .models.layers import LayerT, TileLayer from .models.map_options import MapOptions -from .models.sources import OSM +from .models.sources import OSM, SourceT from .models.view import View from .styles import FlatStyle class Map(object): + """Initialize a new `Map` instance + + Args: + view (View): The initial view state of the map + layers (list[LayerT | LayerLike | dict]): Layers initially added to the map + controls (list[ControlT | dict]): Controls initially added to the map + """ + def __init__( self, view: View | dict = View(), - layers: list[LayerT | dict] | None = None, - controls: list[ControlT | dict] | None = None, + layers: list[LayerT | LayerLike | dict] = None, + controls: list[ControlT | dict] = None, ): - self._initial_view = view + self._initial_view_state = view.to_dict(exclude="type", exclude_none=True) self.calls = [] if layers is None: layers = [TileLayer(id="osm", source=OSM())] - self.map_options = MapOptions( + self.options = MapOptions( view=view, layers=layers, controls=controls ).model_dump() @property - def initial_view(self): - return self._initial_view + def initial_view_state(self): + return self._initial_view_state # 'apply_call_to_map' def add_call(self, method_name: str, *args: Any) -> None: @@ -43,41 +53,187 @@ def add_layer_call(self, layer_id: str, method_name: str, *args: Any): layer_call = dict(method=method_name, args=args) self.add_call("applyCallToLayer", layer_id, layer_call) - def add_layer(self, layer: LayerT | dict) -> None: + def add_view_call(self, method_name: str, *args: Any) -> None: + view_call = dict(method=method_name, args=args) + self.add_call("applyCallToView", view_call) + + def fit_bounds(self, bounds: tuple[float, float, float, float]) -> None: + self.add_call("fitBounds", bounds) + + def set_view(self, view: View) -> None: + """Set the view state of the map + + Args: + view (View): The view state of the map + """ + self.add_call("setView", view.model_dump()) + + def set_view_from_source(self, layer_id: str) -> None: + self.add_call("setViewFromSource", layer_id) + + def set_zoom(self, zoom_level: float | int) -> None: + """Set the zoom level of the view + + Args: + zoom_level (float | int): The zoom level + """ + self.add_view_call("setZoom", zoom_level) + + def set_center(self, lon: float = 0, lat: float = 0) -> None: + """Set the center of the view + + Args: + lon (float): The center's longitude + lat (float): The center's latitude + """ + self.add_view_call("setCenter", (lon, lat)) + + def add_layer(self, layer: LayerT | LayerLike | dict) -> None: + """Add a layer to the map + + Args: + layer (LayerT | LayerLike | dict): The layer to be added + """ + if isinstance(layer, LayerLike): + layer = layer.model + if isinstance(layer, LayerT): layer = layer.model_dump() self.add_call("addLayer", layer) def remove_layer(self, layer_id: str) -> None: + """Remove a layer from the map + + Args: + layer_id (str): The ID of the layer to be removed + """ self.add_call("removeLayer", layer_id) def add_control(self, control: ControlT | dict) -> None: + """Add a control to the map + + Args: + control (ControlT | dict): The control to be added + """ if isinstance(control, ControlT): control = control.model_dump() self.add_call("addControl", control) def remove_control(self, control_id: str) -> None: + """Remove a control from the map + + Args: + control_id (str): The ID of the control to be removed + """ self.add_call("removeControl", control_id) def add_default_tooltip(self) -> None: + """Add a default tooltip to the map + + It renders all feature properties + and is activated for all layers of the map. + """ self.add_tooltip() - def add_tooltip(self, template: str | None = None) -> None: + def add_tooltip(self, template: str = None) -> None: + """Add a tooltip to the map + + Args: + template (str): A mustache template string. + If `None`, a default tooltip is added to the map + """ self.add_call("addTooltip", template) - def set_layer_style(self, layer_id: str, style: dict | FlatStyle) -> None: + def add_select_interaction(self) -> None: + """Add `Select-Features` interaction to the map + + Note: + Currently, highlighting selected features is not supported + for layers of type `WebGLVectorLayer`. + """ + self.add_call("addSelectFeatures") + + def add_drag_and_drop_interaction( + self, + formats: list[FormatT] = [GeoJSON(), TopoJSON(), GPX(), KML()], + style: FlatStyle | dict = None, + ) -> None: + """Add a drag and drop interaction to the map""" + formats = [f.model_dump() for f in formats] + if isinstance(style, FlatStyle): + style = style.model_dump() + + return self.add_call("addDragAndDropVectorLayers", formats, style) + + def add_modify_interaction(self, layer_id) -> None: + """Add a modify interaction to the map + + Modify features of a vector layer. + + Note: + Layers of type `WebGLVectorLayer` are not supported. + + Args: + layer_id (str): The ID of the layer you want to modify + """ + return self.add_call("addModifyInteraction", layer_id) + + def set_opacity(self, layer_id: str, opacity: float = 1) -> None: + """Set the opacity of a layer + + Args: + layer_id (str): The ID of the layer + opacity (float): The opacity of the layer. A value between 0 and 1 + """ + self.add_layer_call(layer_id, "setOpacity", opacity) + + def set_visibility(self, layer_id: str, visible: bool = False) -> None: + """Set the visibility of a layer + + Args: + layer_id (str): The ID of the layer + visible (bool): Whether the layer is visible or not + """ + self.add_layer_call(layer_id, "setVisible", visible) + + def set_style(self, layer_id: str, style: FlatStyle | dict) -> None: + """Set the style of a layer + + Args: + layer_id (str): The ID of the layer + style (FlatStyle | dict): The style of the layer + """ if isinstance(style, FlatStyle): style = style.model_dump() self.add_layer_call(layer_id, "setStyle", style) + def set_source(self, layer_id: str, source: SourceT | dict) -> None: + """Set the source of a layer + + Args: + layer_id {str}: The ID of the layer + source (SourceT | dict): The source of the layer + """ + if isinstance(source, SourceT): + source = source.model_dump() + + self.add_call("setSource", layer_id, source) + def to_html(self, **kwargs) -> str: - data = self.map_options | dict(calls=self.calls) + """Render map to HTML""" + data = self.options | dict(calls=self.calls) return HTMLTemplate().render(data=data, **kwargs) def save(self, path: Path | str = None, preview: bool = True, **kwargs) -> str: + """Save map as an HTML document + + Args: + path (Path | str): The Path to the output file. If `None`, a temporary file is created + preview (bool): Whether the file should be opened in your default browser after saving + """ path = write_file(content=self.to_html(**kwargs), path=path) if preview: webbrowser.open(path) diff --git a/src/openlayers/map_options.py b/src/openlayers/map_options.py index 2c29c75..18bc934 100644 --- a/src/openlayers/map_options.py +++ b/src/openlayers/map_options.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from .models.map_options import MapOptions __all__ = ["MapOptions"] diff --git a/src/openlayers/models/__init__.py b/src/openlayers/models/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/src/openlayers/models/controls.py b/src/openlayers/models/controls.py index e93feb6..2d283e3 100644 --- a/src/openlayers/models/controls.py +++ b/src/openlayers/models/controls.py @@ -1,50 +1,129 @@ from __future__ import annotations +import os from typing import Literal, Union from uuid import uuid4 -from pydantic import Field +from pydantic import Field, field_validator from .core import OLBaseModel from .layers import LayerT, TileLayer from .sources import OSM +from ..constants import MAPTILER_API_KEY_ENV_VAR # -- Base control class Control(OLBaseModel): - id: str = Field(default_factory=lambda x: str(uuid4())) + id: str | None = None + + @field_validator("id") + def validate_id(cls, v) -> str: + if v is None: + return uuid4().hex[0:10] + + return v # --- Controls -class FullScreenControl(Control): ... +class FullScreenControl(Control): + """Full screen control + + Provides a button that fills the entire screen with the map when clicked. + """ + + ... class ScaleLineControl(Control): + """Scale line control + + Displays rough y-axis distances that are calculated for the centre of the viewport. + """ + bar: bool | None = False steps: int | None = None units: Literal["metric", "degrees", "imperial", "us", "nautical"] | None = None text: bool = False -class ZoomSliderControl(Control): ... +class ZoomSliderControl(Control): + """Zoom slider control""" + + ... class MousePositionControl(Control): + """Mouse position control""" + projection: str | None = "EPSG:4326" class OverviewMapControl(Control): + """Overview map control""" + layers: list[dict | LayerT] = [TileLayer(source=OSM())] +class ZoomControl(Control): + """Zoom control""" + + zoom_in_label: str = Field("+", serialization_alias="zoomInLabel") + zoom_out_label: str = Field("-", serialization_alias="zoomOutLabel") + + +class RotateControl(Control): + """Rotate control""" + + ... + + +class ZoomToExtentControl(Control): + """Zoom to extent control + + Provides a button that changes the map view to a specific extent when clicked. + """ + + extent: ( + tuple[float | float | float | float] + | list[float | float | float | float] + | None + ) = None + + +# --- MapTiler +class MapTilerGeocodingControl(Control): + """MapTiler geocoding control""" + + api_key: str = Field( + os.getenv(MAPTILER_API_KEY_ENV_VAR), + serialization_alias="apiKey", + validate_default=True, + ) + collapsed: bool | None = False + country: str | None = None + limit: int | None = 5 + marker_on_selected: bool | None = Field( + True, serialization_alias="markerOnSelected" + ) + placeholder: str | None = "Search" + + # --- Custom controls class InfoBox(Control): + """Info box""" + html: str css_text: str = Field( "top: 65px; left: .5em; padding: 5px;", serialization_alias="cssText" ) +class DrawControl(Control): + """Draw control""" + + ... + + # --- Control type ControlT = Union[ Control, @@ -52,5 +131,10 @@ class InfoBox(Control): ScaleLineControl, ZoomSliderControl, OverviewMapControl, + ZoomControl, + RotateControl, + ZoomToExtentControl, + MapTilerGeocodingControl, InfoBox, + DrawControl, ] diff --git a/src/openlayers/models/core.py b/src/openlayers/models/core.py index 115d46a..7de5965 100644 --- a/src/openlayers/models/core.py +++ b/src/openlayers/models/core.py @@ -7,6 +7,9 @@ class OLBaseModel(BaseModel): def model_dump(self, **kwargs) -> dict: return super().model_dump(exclude_none=True, by_alias=True, **kwargs) + def to_dict(self, *args, **kwargs) -> dict: + return super().model_dump(*args, **kwargs) + @computed_field(alias="@@type") def type(self) -> str: return type(self).__name__ diff --git a/src/openlayers/models/formats.py b/src/openlayers/models/formats.py index c7c87c7..61f6ceb 100644 --- a/src/openlayers/models/formats.py +++ b/src/openlayers/models/formats.py @@ -1,5 +1,9 @@ from __future__ import annotations +from typing import Union + +from pydantic import Field + from .core import OLBaseModel @@ -9,3 +13,20 @@ class Format(OLBaseModel): ... # --- Formats class GeoJSON(Format): ... + + +class TopoJSON(Format): ... + + +class KML(Format): + extract_styles: bool = Field(True, serialization_alias="extractStyles") + + +class GPX(Format): ... + + +class MVT(Format): ... + + +# --- Format type +FormatT = Union[Format, GeoJSON, KML, GPX, TopoJSON, MVT] diff --git a/src/openlayers/models/layers.py b/src/openlayers/models/layers.py index e4f0a3d..598c6dc 100644 --- a/src/openlayers/models/layers.py +++ b/src/openlayers/models/layers.py @@ -12,19 +12,29 @@ # --- Base layer class Layer(OLBaseModel): - id: str = Field(default_factory=lambda x: str(uuid4())) + """A base class for creating OL layers""" + + id: str | None = None source: dict | SourceT background: str | None = None opacity: float | None = 1.0 visible: bool | None = True + z_index: int | None = Field(None, serialization_alias="zIndex") + + @field_validator("id") + def validate_id(cls, v) -> str: + if v is None: + return uuid4().hex[0:10] + + return v # --- Layers class TileLayer(Layer): ... -class VectorLayer(Layer): - style: dict | FlatStyle = default_style() +class VectorTileLayer(Layer): + style: dict | FlatStyle | None = default_style() @field_validator("style") def validate_style(cls, v): @@ -34,12 +44,53 @@ def validate_style(cls, v): return v -class WebGLVectorLayer(VectorLayer): ... +class VectorLayer(VectorTileLayer): + """A layer for rendering vector sources""" + + # style: dict | FlatStyle | None = default_style() + fit_bounds: bool = Field(False, serialization_alias="fitBounds") + + +class VectorImageLayer(VectorLayer): + """A layer for rendering vector sources + + This layer type provides great performance during panning and zooming, + but point symbols and texts are always rotated with the view and pixels are scaled during zoom animations. + + Note: + See also [VectorImageLayer](https://openlayers.org/en/latest/apidoc/module-ol_layer_VectorImage-VectorImageLayer.html) + """ + + image_ratio: int | None = Field(None, serialization_alias="imageRatio") + + +class WebGLVectorLayer(VectorLayer): + """A layer for rendering vector sources using WebGL""" + + ... + + +class WebGLVectorTileLayer(VectorTileLayer): ... class WebGLTileLayer(Layer): + """WebGLTile layer + + Note: + See [WebGLTile](https://openlayers.org/en/latest/apidoc/module-ol_layer_WebGLTile.html) for details. + """ + style: dict | None = None # --- Layer type -LayerT = Union[Layer, TileLayer, VectorLayer, WebGLVectorLayer, WebGLTileLayer] +LayerT = Union[ + Layer, + TileLayer, + VectorLayer, + WebGLVectorLayer, + WebGLTileLayer, + VectorTileLayer, + WebGLVectorTileLayer, + VectorImageLayer, +] diff --git a/src/openlayers/models/map_options.py b/src/openlayers/models/map_options.py index d2c522c..61e21d0 100644 --- a/src/openlayers/models/map_options.py +++ b/src/openlayers/models/map_options.py @@ -1,16 +1,28 @@ from __future__ import annotations -from pydantic import BaseModel, Field +from pydantic import BaseModel, ConfigDict, field_validator +from ..abstracts import LayerLike from .controls import ControlT from .layers import LayerT from .view import View class MapOptions(BaseModel): - view: View | None = View() # Field(View(), serialization_alias="viewOptions") + model_config = ConfigDict( + arbitrary_types_allowed=True + ) # Needed to support 'LayerLike' + + view: View | None = View() controls: list[dict | ControlT] | None = None - layers: list[dict | LayerT] | None = None + layers: list[dict | LayerT | LayerLike] | None = None + + @field_validator("layers") + def validate_layers(cls, layers) -> list[dict | LayerT]: + layers = [ + layer.model if isinstance(layer, LayerLike) else layer for layer in layers + ] + return layers def model_dump(self) -> dict: return super().model_dump(exclude_none=True, by_alias=True) diff --git a/src/openlayers/models/sources.py b/src/openlayers/models/sources.py index c60bc79..1097ac9 100644 --- a/src/openlayers/models/sources.py +++ b/src/openlayers/models/sources.py @@ -3,9 +3,7 @@ from pydantic import Field from .core import OLBaseModel -from .formats import GeoJSON - -# from ..constants import CARTO_ATTRIBUTION +from .formats import FormatT, GeoJSON # --- Base source @@ -14,26 +12,89 @@ class Source(OLBaseModel): ... # --- Sources class VectorSource(Source): + """Vector source""" + url: str | None = None # features: list[dict] | None = None geojson: dict | None = Field(None, serialization_alias="@@geojson") - format: dict | GeoJSON = GeoJSON() + format: FormatT | dict = GeoJSON() + +class OSM(Source): + """OSM source""" -class OSM(Source): ... + ... class GeoTIFFSource(Source): + """GeoTIFF source + + Examples: + >>> import ol + >>> geotiff = ol.GeoTIFFSource(sources=[{"url": "https://s2downloads.eox.at/demo/EOxCloudless/2020/rgbnir/s2cloudless2020-16bits_sinlge-file_z0-4.tif"}]) + """ + normalize: bool | None = None sources: list[dict] class ImageTileSource(Source): + """Image tile source""" + url: str attributions: str | None = None min_zoom: float | int | None = Field(0, serialization_alias="minZoom") max_zoom: float | int | None = Field(20, serialization_alias="maxZoom") +class VectorTileSource(ImageTileSource): + """A source for vector data divided into a tile grid + + Note: + See [VectorTile](https://openlayers.org/en/latest/apidoc/module-ol_source_VectorTile-VectorTile.html) for details. + """ + + ... + + +class TileJSONSource(ImageTileSource): + """A source for tile data in TileJSON format + + Note: + See [TileJSON](https://openlayers.org/en/latest/apidoc/module-ol_source_TileJSON-TileJSON.html) for details. + """ + + tile_size: int | None = Field(None, serialization_alias="tileSize") + cross_origin: str = Field("anonymous", serialization_alias="crossOrigin") + + @property + def type(self) -> str: + return "TileJSON" + + +# PMTiles extension +# See https://docs.protomaps.com/pmtiles/openlayers +class PMTilesVectorSource(Source): + """PMTiles vector source""" + + url: str + attributions: list[str] = None + + +class PMTilesRasterSource(PMTilesVectorSource): + """PMTiles raster source""" + + tile_size: tuple[int, int] = Field(None, serialization_alias="tileSize") + + # --- Source type -SourceT = Union[OSM, VectorSource, GeoTIFFSource, ImageTileSource] +SourceT = Union[ + OSM, + VectorSource, + GeoTIFFSource, + ImageTileSource, + ImageTileSource, + TileJSONSource, + PMTilesVectorSource, + PMTilesRasterSource, +] diff --git a/src/openlayers/models/view.py b/src/openlayers/models/view.py index 4113bd1..05a7bc6 100644 --- a/src/openlayers/models/view.py +++ b/src/openlayers/models/view.py @@ -1,9 +1,11 @@ from __future__ import annotations -from ..abstracts import MyBaseModel +from pydantic import Field + from .core import OLBaseModel +# TODO: Use pyproj instead class Projection(object): MERCATOR = "EPSG:4326" WEB_MERCATOR = "EPSG:3857" @@ -13,17 +15,29 @@ def from_epsg(code: int) -> str: return f"EPSG:{code}" -class ViewOptions(MyBaseModel): - center: tuple[float, float] | None = (0, 0) - zoom: float | None = 0 - projection: str | None = Projection.WEB_MERCATOR - min_zoom: int | float | None = None - max_zoom: int | float | None = None - - class View(OLBaseModel): + """A View object represents a simple 2D view of the map + + Note: + See [module-ol_View-View.html](https://openlayers.org/en/latest/apidoc/module-ol_View-View.html) for details. + + Attributes: + center (tuple[float, float]): The center for the view as (lon, lat) pair + zoom (float | int): The Zoom level used to calculate the resolution for the view + projection (str): The projection + rotation (float | int): The rotation for the view in radians (positive rotation clockwise, 0 means north). + extent (tuple[float, float, float, float] | list[float, float, float, float]): The extent that constrains the view, + in other words, nothing outside of this extent can be visible on the map + min_zoom (float | int): The minimum zoom level used to determine the resolution constraint + max_zoom (float | int): The maximum zoom level used to determine the resolution constraint + """ + center: tuple[float, float] | None = (0, 0) - zoom: float | None = 0 + zoom: float | int | None = 0 projection: str | None = Projection.WEB_MERCATOR - min_zoom: int | float | None = None - max_zoom: int | float | None = None + rotation: float | int | None = None + extent: ( + tuple[float, float, float, float] | list[float, float, float, float] | None + ) = None + min_zoom: int | float | None = Field(None, serialization_alias="minZoom") + max_zoom: int | float | None = Field(None, serialization_alias="maxZoom") diff --git a/src/openlayers/sources.py b/src/openlayers/sources.py index 826eb84..1c276d8 100644 --- a/src/openlayers/sources.py +++ b/src/openlayers/sources.py @@ -1,10 +1,25 @@ +from __future__ import annotations + from .models.sources import ( OSM, GeoTIFFSource, ImageTileSource, + PMTilesRasterSource, + PMTilesVectorSource, Source, SourceT, + TileJSONSource, VectorSource, + VectorTileSource, ) -__all__ = ["OSM", "GeoTIFFSource", "VectorSource"] +__all__ = [ + "OSM", + "GeoTIFFSource", + "VectorSource", + "ImageTileSource", + "VectorTileSource", + "TileJSONSource", + "PMTilesVectorSource", + "PMTilesRasterSource", +] diff --git a/src/openlayers/styles.py b/src/openlayers/styles.py index 2e21f7e..a121687 100644 --- a/src/openlayers/styles.py +++ b/src/openlayers/styles.py @@ -1,6 +1,11 @@ from __future__ import annotations -from pydantic import BaseModel, ConfigDict, Field +import os +from pathlib import Path + +from pydantic import BaseModel, ConfigDict, Field, field_validator + +from .utils import create_icon_src_from_file def fix_keys(d: dict) -> dict: @@ -8,7 +13,17 @@ def fix_keys(d: dict) -> dict: # TODO: Move to models folder +# See https://openlayers.org/en/latest/apidoc/module-ol_style_flat.html class FlatStyle(BaseModel): + """A style object for vector layers + + Underscores in the property names are automatically converted to hyphens. + + Note: + See [ol/style/flat](https://openlayers.org/en/latest/apidoc/module-ol_style_flat.html) + for all available style properties. + """ + model_config = ConfigDict(extra="allow") fill_color: str | list | None = None @@ -21,15 +36,35 @@ class FlatStyle(BaseModel): circle_stroke_width: float | int | list | None = None circle_stroke_color: str | list | None = None - icon_src: str | list | None = None + icon_src: str | Path | list | None = None + icon_scale: float | int | None = None icon_color: str | list | None = None icon_opacity: float | int | None = Field(None, gt=0, le=1) + @field_validator("icon_src") + def validate_icon_src(cls, v) -> str: + if os.path.isfile(v): + return create_icon_src_from_file(v) + + return v + def model_dump(self) -> dict: return fix_keys(super().model_dump(exclude_none=True)) + def model_dump2(self) -> dict: + return super().model_dump(exclude_none=True) + -def default_style() -> FlatStyle: +def default_style(**kwargs) -> FlatStyle: + """Create a default style object for vector layers + + Args: + **kwargs (Any): Additional style properties or + updates of the default properties + + Returns: + A style object + """ return FlatStyle( fill_color="rgba(255,255,255,0.4)", # --- @@ -40,13 +75,4 @@ def default_style() -> FlatStyle: circle_fill_color="rgba(255,255,255,0.4)", circle_stroke_width=1.25, circle_stroke_color="#3399CC", - ) - - -class CircleStyle(FlatStyle): ... - - -class IconStyle(FlatStyle): ... - - -class FillStyle(FlatStyle): ... + ).model_copy(update=kwargs) diff --git a/src/openlayers/templates.py b/src/openlayers/templates.py index 949573b..c77fe48 100644 --- a/src/openlayers/templates.py +++ b/src/openlayers/templates.py @@ -5,6 +5,7 @@ {{ title|default('openlayers')}} + {% for header in headers|default([]) -%} {{ header }} {% endfor -%} diff --git a/src/openlayers/utils.py b/src/openlayers/utils.py index a4c2a41..a142063 100644 --- a/src/openlayers/utils.py +++ b/src/openlayers/utils.py @@ -1,6 +1,10 @@ +from __future__ import annotations + import base64 from pathlib import Path +from pyproj import CRS, Transformer + def create_icon_src_from_file(filename: str) -> bytes: with open(filename, "rb") as f: @@ -8,3 +12,9 @@ def create_icon_src_from_file(filename: str) -> bytes: image_type = Path(filename).suffix.replace(".", "") return f"data:image/{image_type};base64," + encoded_image + + +def crs_transformer(src_epsg=3857, dest_epsg=4326) -> Transformer: + crs_from = CRS.from_epsg(src_epsg) + crs_to = CRS.from_epsg(dest_epsg) + return Transformer.from_crs(crs_from=crs_from, crs_to=crs_to, always_xy=True) diff --git a/src/openlayers/view.py b/src/openlayers/view.py index 2ee618b..2a458bc 100644 --- a/src/openlayers/view.py +++ b/src/openlayers/view.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from .models.view import Projection, View __all__ = ["Projection", "View"] diff --git a/srcjs/_obsolete/tooltip-as-overlay.ts b/srcjs/_obsolete/tooltip-as-overlay.ts new file mode 100644 index 0000000..cade794 --- /dev/null +++ b/srcjs/_obsolete/tooltip-as-overlay.ts @@ -0,0 +1,54 @@ +// See also https://openlayers.org/en/latest/examples/tooltip-on-hover.html + +import { type Map } from "ol"; +import { type FeatureLike } from "ol/Feature"; +import Overlay from "ol/Overlay"; + +type FeatureProps = { + [x: string]: any; +} + +function createElement(cssText?: string | undefined): HTMLElement { + const el = document.createElement("div"); + el.id = "ol-tooltip"; + el.style.cssText = cssText || "padding: 5px; background-color: #333; color: #fff; border-radius: 4px; z-index: 100;" + el.style.visibility = "hidden"; + return el; +} + +function getFeatureProperties(feature: FeatureLike): FeatureProps { + let { geometry, ...props } = feature.getProperties(); + return props; +} + +function addTooltipTo(map: Map, prop: string): void { + let el = createElement(); + const overlay = new Overlay({ element: el }); + map.addOverlay(overlay); + let currentFeature: FeatureLike | undefined; + map.on('pointermove', (e) => { + if (e.dragging) + return; + const feature = map.forEachFeatureAtPixel(e.pixel, (feature) => { + return feature; + }); + if (feature) { + el.style.visibility = "visible"; + overlay.setPosition(e.coordinate); + if (feature !== currentFeature) { + console.log("feature props", getFeatureProperties(feature)); + el.innerHTML = feature.get(prop)?.toString() || ""; + } + } else { + el.style.visibility = "hidden"; + } + currentFeature = feature; + }); + + map.getTargetElement().addEventListener("pointerleave", () => { + el.style.visibility = "hidden"; + currentFeature = undefined; + }); +} + +export { addTooltipTo } diff --git a/srcjs/ipywidget-ts/anywidget.ts b/srcjs/ipywidget-ts/anywidget.ts index bd22ff3..9603609 100644 --- a/srcjs/ipywidget-ts/anywidget.ts +++ b/srcjs/ipywidget-ts/anywidget.ts @@ -5,19 +5,14 @@ import { parseClickEvent, parseView } from "./utils"; // --- Types import type { AnyModel } from "@anywidget/types"; -import type { Map } from "ol"; // --- Main function function render({ model, el }: { model: AnyModel; el: HTMLElement }): void { - function updateModelMetadata(): void { - model.set("map_metadata", mapWidget.getMetadata()); - model.save_changes(); - } - + // TODO: Move to events? function updateModelViewState(): void { const view = map.getView(); const value = parseView(view); - model.set("map_view_state", value); + model.set("view_state", value); model.save_changes() } @@ -30,26 +25,25 @@ function render({ model, el }: { model: AnyModel; el: HTMLElement }): void { mapElement.id = "ol-map-widget"; mapElement.style.height = height; // ... - const mapOptions = model.get("map_options"); + const mapOptions = model.get("options"); console.log("mapOptions", mapOptions); const mapWidget = (window as any).anywidgetMapWidget = new MapWidget(mapElement, mapOptions, model); - model.set("map_created", true); + model.set("created", true); model.save_changes(); const calls: OLAnyWidgetCall[] = model.get("calls"); console.log("calls", calls); for (let call of calls) { + // @ts-expect-error mapWidget[call.method](...call.args); } - updateModelMetadata(); - const map = mapWidget.getMap(); updateModelViewState(); + map.on("moveend", (e) => { - // console.log("change event", map.getView()); updateModelViewState(); }) @@ -57,7 +51,7 @@ function render({ model, el }: { model: AnyModel; el: HTMLElement }): void { map.on("click", (e) => { const info = parseClickEvent(e); console.log(info); - model.set("map_clicked", info); + model.set("clicked", info); model.save_changes(); }); */ @@ -68,7 +62,6 @@ function render({ model, el }: { model: AnyModel; el: HTMLElement }): void { try { // @ts-expect-error mapWidget[msg.method](...msg.args); - updateModelMetadata(); } catch (error) { console.log("error in anywidget msg call", error); } diff --git a/srcjs/ipywidget-ts/constants.ts b/srcjs/ipywidget-ts/constants.ts new file mode 100644 index 0000000..7cfd00c --- /dev/null +++ b/srcjs/ipywidget-ts/constants.ts @@ -0,0 +1,4 @@ +const TYPE_IDENTIFIER = "@@type"; +const GEOJSON_IDENTIFIER = "@@geojson"; + +export { TYPE_IDENTIFIER, GEOJSON_IDENTIFIER }; diff --git a/srcjs/ipywidget-ts/controls.ts b/srcjs/ipywidget-ts/controls.ts index f6f3fc9..0eb407e 100644 --- a/srcjs/ipywidget-ts/controls.ts +++ b/srcjs/ipywidget-ts/controls.ts @@ -3,8 +3,34 @@ import FullScreenControl from 'ol/control/FullScreen.js'; import ZoomSliderControl from 'ol/control/ZoomSlider.js'; import MousePositionControl from 'ol/control/MousePosition.js'; import OverviewMapControl from 'ol/control/OverviewMap.js'; +import Zoom from 'ol/control/Zoom'; +import Rotate from 'ol/control/Rotate'; +import Attribution from 'ol/control/Attribution.js'; +import ZoomToExtent from 'ol/control/ZoomToExtent.js'; -import { InfoBox } from './custom-controls'; +import { GeocodingControl } from "@maptiler/geocoding-control/openlayers"; + +import { InfoBox } from './custom-controls/info-box'; +import { DrawControl } from './custom-controls/draw'; + +// MapTiler Geocoding css +import "@maptiler/geocoding-control/style.css"; + +const olSearchStyle = document.createElement("style"); +olSearchStyle.innerText = ".ol-search {position: absolute; top: .5em; right: .5em;}"; +document.head.appendChild(olSearchStyle); +// --- + +const zoom = new Zoom(); +zoom.setProperties({ id: "zoom", type: "ZoomControl" }); + +const rotate = new Rotate(); +rotate.setProperties({ id: "rotate", type: "RotateControl" }); + +const attribution = new Attribution(); +attribution.setProperties({ id: "attribution", type: "AttributionControl" }); + +const defaultControls = [zoom, rotate, attribution]; const controlCatalog: ControlCatalog = { ScaleLineControl: ScaleLineControl, @@ -12,7 +38,13 @@ const controlCatalog: ControlCatalog = { ZoomSliderControl: ZoomSliderControl, MousePositionControl: MousePositionControl, OverviewMapControl: OverviewMapControl, - InfoBox: InfoBox + ZoomControl: Zoom, + RotateControl: Rotate, + AttributionControl: Attribution, + InfoBox: InfoBox, + DrawControl: DrawControl, + ZoomToExtentControl: ZoomToExtent, + MapTilerGeocodingControl: GeocodingControl }; -export { controlCatalog }; +export { controlCatalog, defaultControls }; diff --git a/srcjs/ipywidget-ts/custom-controls/draw.ts b/srcjs/ipywidget-ts/custom-controls/draw.ts new file mode 100644 index 0000000..707241a --- /dev/null +++ b/srcjs/ipywidget-ts/custom-controls/draw.ts @@ -0,0 +1,129 @@ +/** + * See https://openlayers.org/en/latest/examples/draw-features.html + * and https://openlayers.org/en/latest/examples/draw-and-modify-features.html + * */ +import type { Map } from "ol"; +import type { Type as GeomType } from "ol/geom/Geometry"; + +import Control from "ol/control/Control"; + +import Draw from "ol/interaction/Draw"; +import Modify from 'ol/interaction/Modify.js'; +import Snap from 'ol/interaction/Snap.js'; + +import VectorSource from "ol/source/Vector"; +import VectorLayer from "ol/layer/Vector"; + +import { featureToGeoJSON } from "../utils"; + +type DrawOptions = { + target?: string | HTMLElement | undefined; + cssText?: string; +}; + +let draw: Draw; +let snap: Snap; + +const source = new VectorSource({ wrapX: false }); +/* +source.on("addfeature", (e) => { + const features = source.getFeatures().map(f => featureToGeoJSON(f)); + console.log("draw features", features); +}); +*/ +const modify = new Modify({ source: source }); +const vectorLayer = new VectorLayer({ + source: source, + zIndex: 1000, +}); +vectorLayer.setProperties({ id: "draw", type: "VectorLayer" }); + +const selectOptions = [ + { name: "Point", value: "Point" }, + { name: "Line", value: "LineString" }, + { name: "Polygon", value: "Polygon" }, + { name: "Circle", value: "Circle" }, + { name: "None", value: "None" } +]; + +function createSelectElement(): HTMLSelectElement { + const select = document.createElement("select"); + select.style.padding = "2px"; + for (const item of selectOptions) { + const option = document.createElement("option"); + option.value = item.value; + option.text = item.name; + select.appendChild(option); + } + return select; +} + +function toggleDrawInteraction(map: Map, select: HTMLSelectElement): void { + map.addInteraction(modify); + + function addInteraction() { + const value = select.value; + if (value === "None") + return; + + draw = new Draw({ + source: source, + type: value as GeomType + + }); + map.addInteraction(draw); + snap = new Snap({ source: source }); + map.addInteraction(snap); + } + + select.onchange = () => { + map.removeInteraction(draw); + map.removeInteraction(snap); + addInteraction(); + }; + + addInteraction(); +} + +class DrawControl extends Control { + constructor(options?: DrawOptions) { + options = options || {}; + const el = document.createElement("div"); + el.className = "ol-draw ol-control ol-unselectable"; + el.style.cssText = options.cssText || "top: .5em; left: 35px;"; + super({ + element: el, + target: options.target + }); + this.setProperties({ id: "draw", type: "DrawControl" }); + } + + onAdd(): void { + const map = this.getMap(); + map?.addLayer(vectorLayer); + const select = createSelectElement(); + + if (map) { + toggleDrawInteraction(map, select); + this.element.appendChild(select); + } + } + + getDraw(): Draw | undefined { + return draw; + } + + getSnap(): Snap | undefined { + return snap; + } + + getGeoJSONFeatures(): any[] { + return source.getFeatures().map(f => featureToGeoJSON(f)); + } + + getLayer(): VectorLayer { + return vectorLayer; + } +} + +export { DrawControl }; diff --git a/srcjs/ipywidget-ts/custom-controls.ts b/srcjs/ipywidget-ts/custom-controls/info-box.ts similarity index 100% rename from srcjs/ipywidget-ts/custom-controls.ts rename to srcjs/ipywidget-ts/custom-controls/info-box.ts diff --git a/srcjs/ipywidget-ts/drag-and-drop.ts b/srcjs/ipywidget-ts/drag-and-drop.ts new file mode 100644 index 0000000..3e384ec --- /dev/null +++ b/srcjs/ipywidget-ts/drag-and-drop.ts @@ -0,0 +1,56 @@ +// See https://openlayers.org/en/latest/examples/drag-and-drop.html +// --- +import type { Map } from "ol"; +import type FeatureFormat from "ol/format/Feature"; + +import GPX from 'ol/format/GPX.js'; +import GeoJSON from 'ol/format/GeoJSON.js'; +import IGC from 'ol/format/IGC.js'; +import KML from 'ol/format/KML.js'; +import TopoJSON from 'ol/format/TopoJSON.js'; +import DragAndDrop from 'ol/interaction/DragAndDrop.js'; +import VectorSource from 'ol/source/Vector.js'; +import VectorLayer from 'ol/layer/Vector.js'; +import { FlatStyle } from "ol/style/flat"; + +const defaultFormats = [ + new GPX(), + new GeoJSON(), + new IGC(), + new KML(), + new TopoJSON(), +]; + +function addDragAndDropToMap(map: Map, formats?: FeatureFormat[], style?: FlatStyle): void { + let dragAndDropInteraction: any; + + function setInteraction() { + if (dragAndDropInteraction) { + map.removeInteraction(dragAndDropInteraction); + } + dragAndDropInteraction = new DragAndDrop({ + formatConstructors: formats || defaultFormats + }); + dragAndDropInteraction.on('addfeatures', function (event: any) { + const vectorSource = new VectorSource({ + features: event.features, + }); + const vectorLayer = new VectorLayer({ + source: vectorSource, + style: style || undefined + }); + // vectorLayer.set("id", `drag-and-drop-${Date.now()}`); + // vectorLayer.set("type", "VectorLayer"); + vectorLayer.setProperties({ + id: `drag-and-drop-${Date.now()}`, + type: "VectorLayer" + }); + map.addLayer(vectorLayer); + map.getView().fit(vectorSource.getExtent()); + }); + map.addInteraction(dragAndDropInteraction); + } + setInteraction(); +} + +export { addDragAndDropToMap }; diff --git a/srcjs/ipywidget-ts/events.ts b/srcjs/ipywidget-ts/events.ts new file mode 100644 index 0000000..adc952d --- /dev/null +++ b/srcjs/ipywidget-ts/events.ts @@ -0,0 +1,79 @@ +import { DrawControl } from "./custom-controls/draw"; + +import type MapWidget from "./map"; + +function filter(obj: any): any { + let objFiltered: any = {} + for (let key in obj) { + if (typeof obj[key] !== "object") + objFiltered[key] = obj[key]; + } + + return objFiltered; +} + +function addEventListernersToMapWidget(mapWidget: MapWidget): void { + const map = mapWidget.getMap(); + const metadata = mapWidget.getMetadata(); + // const features = mapWidget._features; + const model = mapWidget.getAnywidgetModel(); + + const updateModel = (): void => { + if (model) { + model.set("metadata", metadata); + model.save_changes(); + } + } + + // --- Layers + map.getLayers().on("add", (e) => { + const layer = e.element; + const props = filter(layer.getProperties()); + metadata.layers.push(props); + console.log("layer", layer.get("id"), "added", metadata); + updateModel(); + }); + + map.getLayers().on("remove", (e) => { + const layer = e.element; + const layerId = layer.get("id"); + metadata.layers = metadata.layers.filter(item => item.id != layerId); + console.log("layer", layerId, "removed", metadata); + updateModel(); + }); + + // --- Controls + map.getControls().on("add", (e) => { + const control = e.element; + // if (control.get("type") === "DrawControl") + if (control instanceof DrawControl) { + control.onAdd(); + for (const event of ["addfeature", "changefeature"]) { + const layer = control.getLayer(); + // @ts-expect-error + layer.getSource()?.on(event, (e) => { + const features = control.getGeoJSONFeatures(); + console.log(features); + if (model) { + model.set("features", { [layer.get("id")]: features }); + model.save_changes(); + } + }); + } + } + + metadata.controls.push(control.getProperties()); + console.log("control", control.get("id"), "added", metadata); + updateModel(); + }); + + map.getControls().on("remove", (e) => { + const control = e.element; + const controlId = control.get("id"); + metadata.controls = metadata.controls.filter(item => item.id != controlId); + console.log("control", controlId, "removed", metadata); + updateModel(); + }); +} + +export { addEventListernersToMapWidget }; diff --git a/srcjs/ipywidget-ts/json.ts b/srcjs/ipywidget-ts/json.ts index 6b3119e..6bf0317 100644 --- a/srcjs/ipywidget-ts/json.ts +++ b/srcjs/ipywidget-ts/json.ts @@ -2,44 +2,59 @@ import { layerCatalog } from "./layers" import { sourceCatalog } from "./sources" import { controlCatalog } from "./controls" -import { GeoJSON, KML } from "ol/format"; +import { GeoJSON, KML, GPX, TopoJSON, IGC, MVT } from "ol/format"; import { View } from "ol"; -import Feature from 'ol/Feature.js'; -import { Polygon, Point, LineString, Circle } from "ol/geom"; +import { TYPE_IDENTIFIER, GEOJSON_IDENTIFIER } from "./constants"; + +// import Feature from 'ol/Feature.js'; +// import { Polygon, Point, LineString, Circle } from "ol/geom"; + +type CallableCatalog = { + [key: string]: any; +}; class JSONConverter { - _catalog: any + _catalog: CallableCatalog; - // constructor(layerCatalog?: LayerCatalog, sourceCatalog?: SourceCatalog, controlCatalog?: ControlCatalog) { - constructor() { - this._catalog = { ...controlCatalog, ...layerCatalog, ...sourceCatalog, GeoJSON, KML, View }; + constructor(catalog?: CallableCatalog) { + this._catalog = catalog || { + ...controlCatalog, + ...layerCatalog, + ...sourceCatalog, + GeoJSON, KML, GPX, TopoJSON, IGC, MVT, + View + }; } - // TODO: Remove, noot needed + // TODO: Remove, not needed anymore + /* moveTypeDefToTop(options: JSONDef): JSONDef { let sortedOptions = {} as any Object.keys(options).sort().forEach(key => sortedOptions[key] = options[key]); console.log("sortedOptions", sortedOptions); return sortedOptions; } + */ parseOptions(options: JSONDef): any { let parsedOptions = {} as any; // for (let key in this.moveTypeDefToTop(options)) { - for (let key in options) { + for (const key in options) { const option = options[key]; if (Array.isArray(option) && typeof option[0] === "object") { console.log("Parse items of array"); // parsedOptions[key] = option.map(item => this.parse(item)); - parsedOptions[key] = option.map(item => item["@@type"] ? this.parse(item) : this.parseOptions(item)); + parsedOptions[key] = option.map(item => item[TYPE_IDENTIFIER] ? this.parse(item) : this.parseOptions(item)); } - else if (typeof option === "object" && option["@@type"] !== undefined) { + // else if (typeof option === "object" && option[TYPE_IDENTIFIER] !== undefined) { + else if (option instanceof Object && option[TYPE_IDENTIFIER]) { // console.log("type detected", option["@@type"], this._catalog[option["@@type"]]); parsedOptions[key] = this.parse(option); } - else if (key !== "@@type" && key !== "@@geojson") { + // else if (key !== "@@type" && key !== "@@geojson") { + else if (![TYPE_IDENTIFIER, GEOJSON_IDENTIFIER].includes(key)) { parsedOptions[key] = option; } } @@ -48,12 +63,11 @@ class JSONConverter { } parse(jsonDef: JSONDef): any { - // console.log(this._catalog); const parsedOptions = this.parseOptions(jsonDef); console.log("parsed options", parsedOptions); - console.log("type detected", jsonDef["@@type"]); - return new this._catalog[jsonDef["@@type"]](parsedOptions); + console.log("type detected", jsonDef[TYPE_IDENTIFIER]); + return new this._catalog[jsonDef[TYPE_IDENTIFIER]](parsedOptions); } } -export { JSONConverter } +export { JSONConverter }; diff --git a/srcjs/ipywidget-ts/layers.ts b/srcjs/ipywidget-ts/layers.ts index ec4f2a6..6e8f2ed 100644 --- a/srcjs/ipywidget-ts/layers.ts +++ b/srcjs/ipywidget-ts/layers.ts @@ -1,13 +1,38 @@ -import TileLayer from "ol/layer/Tile"; import VectorLayer from "ol/layer/Vector"; +import TileLayer from "ol/layer/Tile"; +import VectorTileLayer from "ol/layer/VectorTile"; + +import ImageLayer from "ol/layer/Image"; +import VectorImageLayer from "ol/layer/VectorImage"; + +import HeatmapLayer from 'ol/layer/Heatmap.js'; + +// WebGL import WebGLVectorLayer from 'ol/layer/WebGLVector.js'; import WebGLTileLayer from 'ol/layer/WebGLTile.js'; +import WebGLVectorTileLayer from 'ol/layer/WebGLVectorTile.js'; + +import VectorSource from "ol/source/Vector"; const layerCatalog: LayerCatalog = { TileLayer: TileLayer, VectorLayer: VectorLayer, WebGLVectorLayer: WebGLVectorLayer, - WebGLTileLayer: WebGLTileLayer + WebGLTileLayer: WebGLTileLayer, + VectorTileLayer: VectorTileLayer, + WebGLVectorTileLayer: WebGLVectorTileLayer, + ImageLayer: ImageLayer, + VectorImageLayer: VectorImageLayer, + HeatmapLayer: HeatmapLayer }; +// Draw interaction +/* +const drawSource = new VectorSource({ wrapX: false }); +const drawVectorLayer = new VectorLayer({ + source: drawSource +}); +drawVectorLayer.setProperties({ id: "draw", type: "VectorLayer" }); +*/ + export { layerCatalog }; diff --git a/srcjs/ipywidget-ts/map.ts b/srcjs/ipywidget-ts/map.ts index c3e114a..eb6d3b3 100644 --- a/srcjs/ipywidget-ts/map.ts +++ b/srcjs/ipywidget-ts/map.ts @@ -1,10 +1,23 @@ import { Map, View } from "ol"; -import { defaults as defaultControls } from 'ol/control/defaults.js'; +// import { defaults as defaultControls } from 'ol/control/defaults.js'; import GeoJSON from "ol/format/GeoJSON"; import Overlay from "ol/Overlay"; -import { fromLonLat } from "ol/proj"; +import { useGeographic } from "ol/proj"; +import { isEmpty } from "ol/extent"; +import Modify from "ol/interaction/Modify"; +import Snap from "ol/interaction/Snap"; + import { JSONConverter } from "./json"; -import { addTooltip2 } from "./tooltip2"; +import { TYPE_IDENTIFIER, GEOJSON_IDENTIFIER } from "./constants"; +import { defaultControls } from "./controls"; + +// import { DrawControl } from "./custom-controls/draw"; + +import { featureToGeoJSON } from "./utils"; +import { addTooltipToMap } from "./tooltip"; +import { addEventListernersToMapWidget } from "./events"; +import { addSelectFeaturesToMap } from "./select-features"; +import { addDragAndDropToMap as addDragAndDropVectorLayersToMap } from "./drag-and-drop"; // --- Types import type Layer from "ol/layer/Layer"; @@ -13,6 +26,7 @@ import type VectorSource from "ol/source/Vector"; import type VectorLayer from "ol/layer/Vector"; import type WebGLVectorLayer from "ol/layer/WebGLVector"; import type { Coordinate } from "ol/coordinate"; +import type { FlatStyle } from "ol/style/flat"; import type { MyMapOptions } from "."; import type { AnyModel } from "@anywidget/types"; @@ -22,32 +36,24 @@ type Metadata = { controls: any[]; }; -// --- Constants -// TODO: Move to constants -const TYPE_IDENTIFIER = "@@type"; -const GEOJSON_IDENTIFIER = "@@geojson"; +// TODO: Rename to something like `FeatureStore` +type Features = { + [layerId: string]: any[]; +} const jsonConverter = new JSONConverter(); -// --- Helpers -function parseViewDef(viewDef: JSONDef): View { - const view = jsonConverter.parse(viewDef) as View; - const center = view.getCenter(); - console.log("view center", center) - if (center && view.getProjection().getCode() !== "EPSG:4326") { - const centerTransformed = fromLonLat(center); - console.log("view center transformed", centerTransformed); - view.setCenter(centerTransformed); - } - - return view; -} +// --- Use geographic coordinates (WGS-84) in all methods +useGeographic(); function parseLayerDef(layerDef: JSONDef): Layer { const layer = jsonConverter.parse(layerDef); console.log("layerDef", layerDef); - layer.set("id", layerDef.id); - addGeojsonFeatures(layer, layerDef["source"][GEOJSON_IDENTIFIER]); + layer.setProperties({ + id: layerDef.id, + type: layerDef[TYPE_IDENTIFIER] + }); + addGeojsonFeatures(layer, layerDef.source[GEOJSON_IDENTIFIER]); return layer; } @@ -64,23 +70,30 @@ export default class MapWidget { _container: HTMLElement; _map: Map; _metadata: Metadata = { layers: [], controls: [] }; + // _features: Features = {}; _model: AnyModel | undefined; constructor(mapElement: HTMLElement, mapOptions: MyMapOptions, model?: AnyModel | undefined) { this._model = model; - const view = parseViewDef(mapOptions.view); - let baseControls: Control[] = []; - let baseLayers: Layer[] = []; + const view = jsonConverter.parse(mapOptions.view) as View; this._container = mapElement; this._map = new Map({ target: mapElement, view: view, - controls: defaultControls().extend(baseControls), - layers: baseLayers, + controls: [], + layers: [] }); + // Add event listeners + addEventListernersToMapWidget(this); + + // Add default controls + for (const defaultControl of defaultControls) + this._map.addControl(defaultControl); + + // Add controls for (let controlDef of mapOptions.controls || []) { this.addControl(controlDef); @@ -92,6 +105,7 @@ export default class MapWidget { } } + // --- Functions getElement(): HTMLElement { return this._container; } @@ -104,16 +118,50 @@ export default class MapWidget { return this._metadata; } + getAnywidgetModel(): AnyModel | undefined { + return this._model; + } + setViewFromSource(layerId: string): void { - const layer = this.getLayer(layerId); - const source = layer?.getSource(); - const view = source?.getView(); + const view = this.getLayer(layerId)?.getSource()?.getView(); if (view) this._map.setView(view); } - setExtentFromSource(): void { + setExtendByLayerId(layerId: string): void { + const source = this.getLayer(layerId)?.getSource() as VectorSource; + this.setExtentFromSource(source) + } + + setExtentFromSource(source?: VectorSource): void { + if (source) { + if (isEmpty(source.getExtent())) { + source.on("featuresloadend", (e) => { + this._map.getView().fit(source.getExtent()); + }); + } + else { + this._map.getView().fit(source.getExtent()); + } + } + } + + fitBounds(extent: any): void { + this._map.getView().fit(extent); + } + setView(viewDef: JSONDef): void { + const view = jsonConverter.parse(viewDef) as View; + this._map.setView(view); + } + + // --- View Methods + applyCallToView(call: OLAnyWidgetCall): void { + const view = this._map.getView(); + console.log("run view method", view); + + // @ts-expect-error + view[call.method](...call.args) } // --- Layer methods @@ -126,28 +174,28 @@ export default class MapWidget { addLayer(layerDef: JSONDef): void { const layer = parseLayerDef(layerDef); + + // Fit bounds for VectorSources + if (layer.get("fitBounds")) { + const source = layer.getSource() as VectorSource; + this.setExtentFromSource(source); + } + this._map.addLayer(layer); - this._metadata.layers.push({ - id: layer.get("id"), - type: layerDef[TYPE_IDENTIFIER] - }); - console.log("layer", layer.get("id"), "added", this._metadata); } removeLayer(layerId: string): void { const layer = this.getLayer(layerId); if (layer) { this._map.removeLayer(layer); - this._metadata.layers = this._metadata.layers.filter(item => item["id"] != layerId); - console.log("layer", layerId, "removed", this._metadata); } } setLayerStyle(layerId: string, style: any): void { const layer = this.getLayer(layerId) as VectorLayer | WebGLVectorLayer; if (layer) { - console.log("set layer style", layerId, style); - layer.setStyle(style) + layer.setStyle(style); + console.log("style", layerId, "updated", style); } } @@ -159,6 +207,17 @@ export default class MapWidget { layer[call.method](...call.args) } + setSource(layerId: string, sourceDef: JSONDef): void { + const layer = this.getLayer(layerId); + if (layer) { + const source = jsonConverter.parse(sourceDef); + layer.setSource(source); + const features = sourceDef[GEOJSON_IDENTIFIER]; + if (features) + source.addFeatures(new GeoJSON().readFeatures(features)); + } + } + // --- Control methods getControl(controlId: string): Control | undefined { for (let control of this._map.getControls().getArray()) { @@ -169,35 +228,64 @@ export default class MapWidget { addControl(controlDef: JSONDef): void { const control = jsonConverter.parse(controlDef); - control.set("id", controlDef.id); + control.setProperties({ id: controlDef.id, type: controlDef[TYPE_IDENTIFIER] }); this._map.addControl(control); - this._metadata.controls.push({ - id: control.get("id"), - type: controlDef[TYPE_IDENTIFIER], - }); - console.log("control", control.get("id"), "added", this._metadata); } removeControl(controlId: string): void { const control = this.getControl(controlId); if (control) { this._map.removeControl(control); - this._metadata.controls = this._metadata.controls.filter(item => item["id"] != controlId); - console.log("control", controlId, "removed", this._metadata); } } - // TODO: Test only at the moment - addOverlay(position: Coordinate | undefined): void { + // ... + addOverlay(position: Coordinate | undefined, html: string, cssText: string | undefined, id: string = "ol-overlay"): void { const el = document.createElement("div"); - el.style.cssText = ""; - el.innerHTML = "We are out here." + el.id = id; + el.style.cssText = cssText || ""; + el.innerHTML = html; const overlay = new Overlay({ element: el, position: position }); this._map.addOverlay(overlay); } // ... addTooltip(template: string | null): void { - addTooltip2(this._map, template); + addTooltipToMap(this._map, template); + } + + addSelectFeatures(): void { + addSelectFeaturesToMap(this._map, this._model); + } + + addDragAndDropVectorLayers(formatsDef?: JSONDef[], style?: FlatStyle): void { + const formats = formatsDef?.map(item => jsonConverter.parse(item)); + console.log("drag and drop formats", formats); + addDragAndDropVectorLayersToMap(this._map, formats, style); + } + + // Does not work for `WebGLVectorLayer` + addModifyInteraction(layerId: string): void { + const source = this.getLayer(layerId)?.getSource() as VectorSource; + if (source) { + const snap = new Snap({ source: source }); + this._map.addInteraction(snap); + const modify = new Modify({ source: source }); + this._map.addInteraction(modify); + + // Add event listener + source.on("changefeature", (e) => { + if (e.feature) { + const feature = featureToGeoJSON(e.feature); + console.log("feature changed", feature); + if (this._model) { + // this._features[layerId] = [feature]; + // this._model.set("features", this._features); + this._model.set("features", { [layerId]: [feature] }); + this._model.save_changes(); + } + } + }); + } } } diff --git a/srcjs/ipywidget-ts/select-features.ts b/srcjs/ipywidget-ts/select-features.ts new file mode 100644 index 0000000..331cbee --- /dev/null +++ b/srcjs/ipywidget-ts/select-features.ts @@ -0,0 +1,61 @@ +import type { AnyModel } from "@anywidget/types"; +import type { Map } from "ol"; +import type Feature from "ol/Feature"; + +import Style from "ol/style/Style"; +import Fill from 'ol/style/Fill.js'; +import Stroke from 'ol/style/Stroke.js'; +import VectorLayer from "ol/layer/Vector"; + +import { featureToGeoJSON } from "./utils"; + +// TODO: Should be a parameter +const highlightStyle = new Style({ + fill: new Fill({ + color: 'rgba(58, 154, 178,0.7)' + }), + stroke: new Stroke({ + // color: 'rgba(241, 27, 0, 0.7)', + color: "rgba(220, 203, 78, 0.7)", + // color: "rgba(111, 178, 193, 0.7)", + width: 2 + }) +}); + +// TODO: Setting new style only works for 'VectorLayer' +// For 'WebGLVectorLayer' we need to add complete highlight-layer on top of the current one +function addSelectFeaturesToMap(map: Map, model?: AnyModel): void { + const selected = [] as Feature[]; + + map.on('singleclick', function (e) { + map.forEachFeatureAtPixel(e.pixel, function (feature, layer) { + const isVectorLayer = layer instanceof VectorLayer; + + // console.log("isVectorLayer", isVectorLayer); + const f = feature as Feature; + f.set("layer", layer.get("id")); + const selIndex = selected.indexOf(f); + if (selIndex < 0) { + console.log("push"); + selected.push(f); + if (isVectorLayer) + f.setStyle(highlightStyle); + } else { + console.log("delete"); + selected.splice(selIndex, 1); + if (isVectorLayer) + f.setStyle(); + } + }); + const output = selected.map(f => featureToGeoJSON(f)); + // console.log("model", model); + if (model) { + // model.set("features_selected", output); + model.set("features", { selected: output }); + model.save_changes(); + } else + console.log(output); + }); +} + +export { addSelectFeaturesToMap }; diff --git a/srcjs/ipywidget-ts/sources.ts b/srcjs/ipywidget-ts/sources.ts index 737a6a0..26945e0 100644 --- a/srcjs/ipywidget-ts/sources.ts +++ b/srcjs/ipywidget-ts/sources.ts @@ -1,14 +1,21 @@ import OSM from "ol/source/OSM"; import VectorSource from "ol/source/Vector"; +import VectorTileSource from 'ol/source/VectorTile.js'; import GeoTIFFSource from 'ol/source/GeoTIFF.js'; import ImageTileSource from "ol/source/ImageTile"; +import TileJSON from 'ol/source/TileJSON.js'; +import { PMTilesVectorSource, PMTilesRasterSource } from "ol-pmtiles"; const sourceCatalog: SourceCatalog = { OSM: OSM, VectorSource: VectorSource, + VectorTileSource: VectorTileSource, GeoTIFFSource: GeoTIFFSource, GeoJSONSource: VectorSource, - ImageTileSource: ImageTileSource + ImageTileSource: ImageTileSource, + TileJSON: TileJSON, + PMTilesVectorSource: PMTilesVectorSource, + PMTilesRasterSource: PMTilesRasterSource }; export { sourceCatalog }; diff --git a/srcjs/ipywidget-ts/standalone.ts b/srcjs/ipywidget-ts/standalone.ts index a53eabd..e9477d8 100644 --- a/srcjs/ipywidget-ts/standalone.ts +++ b/srcjs/ipywidget-ts/standalone.ts @@ -6,12 +6,11 @@ import { MyMapOptions } from "."; const MAP_CONTAINER = "map"; (window as any).renderOLMapWidget = (mapOptions: MyMapOptions) => { - // mapOptions.viewOptions = mapOptions.viewOptions || { center: [0, 0] }; console.log("render OL-MapWidget", mapOptions); const mapElement = document.getElementById(MAP_CONTAINER) || document.createElement("div"); console.log("el", mapElement); - const mapWidget = new MapWidget(mapElement, mapOptions); - const map = mapWidget.getMap(); + const mapWidget = (window as any).olMapWidget = new MapWidget(mapElement, mapOptions); + // const map = mapWidget.getMap(); console.log("calls", mapOptions.calls); if (mapOptions.calls) { diff --git a/srcjs/ipywidget-ts/tooltip.ts b/srcjs/ipywidget-ts/tooltip.ts index cade794..eb0ac13 100644 --- a/srcjs/ipywidget-ts/tooltip.ts +++ b/srcjs/ipywidget-ts/tooltip.ts @@ -1,54 +1,101 @@ -// See also https://openlayers.org/en/latest/examples/tooltip-on-hover.html +/* +taken from https://openlayers.org/en/latest/examples/tooltip-on-hover.html +*/ +import { Map } from "ol"; +import type { FeatureLike } from "ol/Feature"; +import type { Pixel } from "ol/pixel"; -import { type Map } from "ol"; -import { type FeatureLike } from "ol/Feature"; -import Overlay from "ol/Overlay"; +import mustache from "mustache"; -type FeatureProps = { - [x: string]: any; -} +import { getFeatureProperties } from "./utils"; -function createElement(cssText?: string | undefined): HTMLElement { - const el = document.createElement("div"); - el.id = "ol-tooltip"; - el.style.cssText = cssText || "padding: 5px; background-color: #333; color: #fff; border-radius: 4px; z-index: 100;" - el.style.visibility = "hidden"; - return el; +/* +#info { + position: absolute; + display: inline-block; + height: auto; + width: auto; + z-index: 100; + background-color: #333; + color: #fff; + text-align: center; + border-radius: 4px; + padding: 5px; + left: 50%; + transform: translateX(3%); + visibility: hidden; + pointer-events: none; } +*/ + +const info = document.createElement("div"); +info.style.position = "absolute"; +info.style.display = "inline-block"; +info.style.height = "auto"; +info.style.width = "auto"; +info.style.zIndex = "100"; +info.style.backgroundColor = "#333"; +info.style.color = "#fff"; +// info.style.textAlign = "center"; +info.style.borderRadius = "4px"; +info.style.padding = "7px"; +info.style.left = "50%"; +// info.style.transform = "translateX(3%)"; +info.style.visibility = "hidden"; +info.style.pointerEvents = "none"; + +function renderFeatureProperties(feature: FeatureLike, template: string | null): string { + const properties = getFeatureProperties(feature); + if (template) + return mustache.render(template, properties); -function getFeatureProperties(feature: FeatureLike): FeatureProps { - let { geometry, ...props } = feature.getProperties(); - return props; + return Object.keys(properties).map((key) => `${key}: ${properties[key]}`).join("
"); } -function addTooltipTo(map: Map, prop: string): void { - let el = createElement(); - const overlay = new Overlay({ element: el }); - map.addOverlay(overlay); +function addTooltipToMap(map: Map, template: string | null): void { + info.id = "ol-tooltip"; + map.getTargetElement().appendChild(info); + console.log("tooltip element added", info); + let currentFeature: FeatureLike | undefined; - map.on('pointermove', (e) => { - if (e.dragging) - return; - const feature = map.forEachFeatureAtPixel(e.pixel, (feature) => { - return feature; - }); + const displayFeatureInfo = function (pixel: Pixel, target: EventTarget | null) { + // @ts-expect-error + const feature = target.closest('.ol-control') + ? undefined + : map.forEachFeatureAtPixel(pixel, function (feature) { + return feature; + }); if (feature) { - el.style.visibility = "visible"; - overlay.setPosition(e.coordinate); + // console.log("feature props", getFeatureProperties(feature)); + info.style.left = (pixel[0] + 15) + 'px'; + info.style.top = pixel[1] + 'px'; if (feature !== currentFeature) { - console.log("feature props", getFeatureProperties(feature)); - el.innerHTML = feature.get(prop)?.toString() || ""; + info.style.visibility = 'visible'; + info.innerHTML = renderFeatureProperties(feature, template); } } else { - el.style.visibility = "hidden"; + info.style.visibility = 'hidden'; } currentFeature = feature; + }; + + map.on('pointermove', function (evt) { + if (evt.dragging) { + info.style.visibility = 'hidden'; + currentFeature = undefined; + return; + } + displayFeatureInfo(evt.pixel, evt.originalEvent.target); + }); + + map.on('click', function (evt) { + displayFeatureInfo(evt.pixel, evt.originalEvent.target); }); - map.getTargetElement().addEventListener("pointerleave", () => { - el.style.visibility = "hidden"; + map.getTargetElement().addEventListener('pointerleave', function () { currentFeature = undefined; + info.style.visibility = 'hidden'; }); } -export { addTooltipTo } +export { addTooltipToMap }; diff --git a/srcjs/ipywidget-ts/tooltip2.ts b/srcjs/ipywidget-ts/tooltip2.ts deleted file mode 100644 index a94360c..0000000 --- a/srcjs/ipywidget-ts/tooltip2.ts +++ /dev/null @@ -1,101 +0,0 @@ -/* -taken from https://openlayers.org/en/latest/examples/tooltip-on-hover.html -*/ -import { Map } from "ol"; -import type { FeatureLike } from "ol/Feature"; -import type { Pixel } from "ol/pixel"; - -import mustache from "mustache"; - -import { getFeatureProperties } from "./utils"; - -/* -#info { - position: absolute; - display: inline-block; - height: auto; - width: auto; - z-index: 100; - background-color: #333; - color: #fff; - text-align: center; - border-radius: 4px; - padding: 5px; - left: 50%; - transform: translateX(3%); - visibility: hidden; - pointer-events: none; -} -*/ - -const info = document.createElement("div"); -info.style.position = "absolute"; -info.style.display = "inline-block"; -info.style.height = "auto"; -info.style.width = "auto"; -info.style.zIndex = "100"; -info.style.backgroundColor = "#333"; -info.style.color = "#fff"; -// info.style.textAlign = "center"; -info.style.borderRadius = "4px"; -info.style.padding = "7px"; -info.style.left = "50%"; -// info.style.transform = "translateX(3%)"; -info.style.visibility = "hidden"; -info.style.pointerEvents = "none"; - -function renderFeatureProperties(feature: FeatureLike, template: string | null): string { - const properties = getFeatureProperties(feature); - if (template) - return mustache.render(template, properties); - - return Object.keys(properties).map((key) => `${key}: ${properties[key]}`).join("
"); -} - -function addTooltip2(map: Map, template: string | null): void { - info.id = "ol-tooltip"; - map.getTargetElement().appendChild(info); - console.log("tooltip element added", info); - - let currentFeature: FeatureLike | undefined; - const displayFeatureInfo = function (pixel: Pixel, target: EventTarget | null) { - // @ts-expect-error - const feature = target.closest('.ol-control') - ? undefined - : map.forEachFeatureAtPixel(pixel, function (feature) { - return feature; - }); - if (feature) { - // console.log("feature props", getFeatureProperties(feature)); - info.style.left = (pixel[0] + 15) + 'px'; - info.style.top = pixel[1] + 'px'; - if (feature !== currentFeature) { - info.style.visibility = 'visible'; - info.innerHTML = renderFeatureProperties(feature, template); - } - } else { - info.style.visibility = 'hidden'; - } - currentFeature = feature; - }; - - map.on('pointermove', function (evt) { - if (evt.dragging) { - info.style.visibility = 'hidden'; - currentFeature = undefined; - return; - } - displayFeatureInfo(evt.pixel, evt.originalEvent.target); - }); - - map.on('click', function (evt) { - displayFeatureInfo(evt.pixel, evt.originalEvent.target); - }); - - map.getTargetElement().addEventListener('pointerleave', function () { - currentFeature = undefined; - info.style.visibility = 'hidden'; - }); -} - -export { addTooltip2 }; diff --git a/srcjs/ipywidget-ts/types.ts b/srcjs/ipywidget-ts/types.ts index 13c2fc5..22e53f3 100644 --- a/srcjs/ipywidget-ts/types.ts +++ b/srcjs/ipywidget-ts/types.ts @@ -4,6 +4,7 @@ type SourceCatalog = { GeoTIFFSource: any; GeoJSONSource: any; ImageTileSource: any; + [key: string]: any; } type SourceCatalogKey = keyof SourceCatalog; @@ -13,6 +14,8 @@ type LayerCatalog = { VectorLayer: any; WebGLVectorLayer: any; WebGLTileLayer: any; + VectorTileLayer: any; + [key: string]: any; } type LayerCatalogKey = keyof LayerCatalog; diff --git a/srcjs/ipywidget-ts/utils.ts b/srcjs/ipywidget-ts/utils.ts index 429347f..37788d3 100644 --- a/srcjs/ipywidget-ts/utils.ts +++ b/srcjs/ipywidget-ts/utils.ts @@ -1,9 +1,11 @@ -import type { MapBrowserEvent } from "ol"; +import type { Feature, MapBrowserEvent } from "ol"; import type { FeatureLike } from "ol/Feature"; import type { FeatureProps } from "."; import type { View } from "ol"; -import { toLonLat } from "ol/proj"; +import { GeoJSON } from "ol/format"; + +// import { toLonLat } from "ol/proj"; // TODO: get 'info' from 'parseView' function parseClickEvent(e: MapBrowserEvent): any { @@ -12,8 +14,7 @@ function parseClickEvent(e: MapBrowserEvent): any { const info = { center: view.getCenter(), projection: projectionCode, - zoom: view.getZoom(), - centerLonLat: toLonLat(e.coordinate) + zoom: view.getZoom() }; return info; } @@ -25,7 +26,7 @@ function parseView(view: View): any { center: center, projection: projectionCode, zoom: view.getZoom(), - center_lonlat: toLonLat(center) + extent: view.calculateExtent() }; } @@ -34,4 +35,8 @@ function getFeatureProperties(feature: FeatureLike): FeatureProps { return props; } -export { parseClickEvent, getFeatureProperties, parseView } +function featureToGeoJSON(feature: Feature): any { + return new GeoJSON().writeFeatureObject(feature); +} + +export { parseClickEvent, getFeatureProperties, parseView, featureToGeoJSON } diff --git a/srcjs/package-lock.json b/srcjs/package-lock.json index cb26b73..3c205b8 100644 --- a/srcjs/package-lock.json +++ b/srcjs/package-lock.json @@ -185,6 +185,19 @@ "dev": true, "optional": true }, + "@maptiler/geocoding-control": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/@maptiler/geocoding-control/-/geocoding-control-2.1.6.tgz", + "integrity": "sha512-2XR70DneLibrpb5wPC8Ht+HwHok7yhC9MGji9ZdEY9r+64qnGCdHodPZcxf+l0p3FqRyTeFZeo+028wmTOKpoQ==", + "requires": { + "@turf/bbox": "^7.2.0", + "@turf/clone": "^7.2.0", + "@turf/difference": "^7.2.0", + "@turf/flatten": "^7.2.0", + "@turf/union": "^7.2.0", + "geo-coordinates-parser": "^1.7.4" + } + }, "@petamoriken/float16": { "version": "3.9.2", "resolved": "https://registry.npmjs.org/@petamoriken/float16/-/float16-3.9.2.tgz", @@ -330,12 +343,91 @@ "dev": true, "optional": true }, + "@turf/bbox": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/bbox/-/bbox-7.2.0.tgz", + "integrity": "sha512-wzHEjCXlYZiDludDbXkpBSmv8Zu6tPGLmJ1sXQ6qDwpLE1Ew3mcWqt8AaxfTP5QwDNQa3sf2vvgTEzNbPQkCiA==", + "requires": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + } + }, + "@turf/clone": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/clone/-/clone-7.2.0.tgz", + "integrity": "sha512-JlGUT+/5qoU5jqZmf6NMFIoLDY3O7jKd53Up+zbpJ2vzUp6QdwdNzwrsCeONhynWM13F0MVtPXH4AtdkrgFk4g==", + "requires": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + } + }, + "@turf/difference": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/difference/-/difference-7.2.0.tgz", + "integrity": "sha512-NHKD1v3s8RX+9lOpvHJg6xRuJOKiY3qxHhz5/FmE0VgGqnCkE7OObqWZ5SsXG+Ckh0aafs5qKhmDdDV/gGi6JA==", + "requires": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "polyclip-ts": "^0.16.8", + "tslib": "^2.8.1" + } + }, + "@turf/flatten": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/flatten/-/flatten-7.2.0.tgz", + "integrity": "sha512-q38Qsqr4l7mxp780zSdn0gp/WLBX+sa+gV6qIbDQ1HKCrrPK8QQJmNx7gk1xxEXVot6tq/WyAPysCQdX+kLmMA==", + "requires": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + } + }, + "@turf/helpers": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/helpers/-/helpers-7.2.0.tgz", + "integrity": "sha512-cXo7bKNZoa7aC7ydLmUR02oB3IgDe7MxiPuRz3cCtYQHn+BJ6h1tihmamYDWWUlPHgSNF0i3ATc4WmDECZafKw==", + "requires": { + "@types/geojson": "^7946.0.10", + "tslib": "^2.8.1" + } + }, + "@turf/meta": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/meta/-/meta-7.2.0.tgz", + "integrity": "sha512-igzTdHsQc8TV1RhPuOLVo74Px/hyPrVgVOTgjWQZzt3J9BVseCdpfY/0cJBdlSRI4S/yTmmHl7gAqjhpYH5Yaw==", + "requires": { + "@turf/helpers": "^7.2.0", + "@types/geojson": "^7946.0.10" + } + }, + "@turf/union": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/@turf/union/-/union-7.2.0.tgz", + "integrity": "sha512-Xex/cfKSmH0RZRWSJl4RLlhSmEALVewywiEXcu0aIxNbuZGTcpNoI0h4oLFrE/fUd0iBGFg/EGLXRL3zTfpg6g==", + "requires": { + "@turf/helpers": "^7.2.0", + "@turf/meta": "^7.2.0", + "@types/geojson": "^7946.0.10", + "polyclip-ts": "^0.16.8", + "tslib": "^2.8.1" + } + }, "@types/estree": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.7.tgz", "integrity": "sha512-w28IoSUCJpidD/TGviZwwMJckNESJZXFu7NBZ5YJ4mEUnNraUn9Pm8HSZm/jDF1pDWYKspWE7oVphigUPRakIQ==", "dev": true }, + "@types/geojson": { + "version": "7946.0.16", + "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.16.tgz", + "integrity": "sha512-6C8nqWur3j98U6+lXDfTUWIfgvZU+EumvpHKcYjujKH7woYyLj2sUmff0tRhrqM7BohUw7Pz3ZB1jj2gW9Fvmg==" + }, "@types/mustache": { "version": "4.2.5", "resolved": "https://registry.npmjs.org/@types/mustache/-/mustache-4.2.5.tgz", @@ -347,6 +439,11 @@ "resolved": "https://registry.npmjs.org/@types/rbush/-/rbush-4.0.0.tgz", "integrity": "sha512-+N+2H39P8X+Hy1I5mC6awlTX54k3FhiUmvt7HWzGJZvF+syUAAxP/stwppS8JE84YHqFgRMv6fCy31202CMFxQ==" }, + "bignumber.js": { + "version": "9.3.0", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.0.tgz", + "integrity": "sha512-EM7aMFTXbptt/wZdMlBv2t8IViwQL+h6SLHosp8Yf0dqJMTnY6iL32opnAB6kAdL0SZPuvcAzFr31o0c/R3/RA==" + }, "earcut": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/earcut/-/earcut-3.0.1.tgz", @@ -385,6 +482,11 @@ "@esbuild/win32-x64": "0.25.2" } }, + "fflate": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", + "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==" + }, "fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", @@ -392,6 +494,11 @@ "dev": true, "optional": true }, + "geo-coordinates-parser": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/geo-coordinates-parser/-/geo-coordinates-parser-1.7.4.tgz", + "integrity": "sha512-gVGxBW+s1csexXVMf5bIwz3TH9n4sCEglOOOqmrPk8YazUI5f79jCowKjTw05m/0h1//3+Z2m/nv8IIozgZyUw==" + }, "geotiff": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/geotiff/-/geotiff-2.1.3.tgz", @@ -435,6 +542,14 @@ "rbush": "^4.0.0" } }, + "ol-pmtiles": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ol-pmtiles/-/ol-pmtiles-2.0.2.tgz", + "integrity": "sha512-UVGEHoSi8mCGiDUyfqZmx+lbDwXtSwpEeGNQAzIZskEJ8tQeOGFcezisRTjJc1wu5KnT7ckpDLQePqA6LUi/ow==", + "requires": { + "pmtiles": "^4.3.0" + } + }, "pako": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", @@ -459,6 +574,23 @@ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true }, + "pmtiles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/pmtiles/-/pmtiles-4.3.0.tgz", + "integrity": "sha512-wnzQeSiYT/MyO63o7AVxwt7+uKqU0QUy2lHrivM7GvecNy0m1A4voVyGey7bujnEW5Hn+ZzLdvHPoFaqrOzbPA==", + "requires": { + "fflate": "^0.8.2" + } + }, + "polyclip-ts": { + "version": "0.16.8", + "resolved": "https://registry.npmjs.org/polyclip-ts/-/polyclip-ts-0.16.8.tgz", + "integrity": "sha512-JPtKbDRuPEuAjuTdhR62Gph7Is2BS1Szx69CFOO3g71lpJDFo78k4tFyi+qFOMVPePEzdSKkpGU3NBXPHHjvKQ==", + "requires": { + "bignumber.js": "^9.1.0", + "splaytree-ts": "^1.0.2" + } + }, "postcss": { "version": "8.5.3", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz", @@ -543,6 +675,16 @@ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", "dev": true }, + "splaytree-ts": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/splaytree-ts/-/splaytree-ts-1.0.2.tgz", + "integrity": "sha512-0kGecIZNIReCSiznK3uheYB8sbstLjCZLiwcQwbmLhgHJj2gz6OnSPkVzJQCMnmEz1BQ4gPK59ylhBoEWOhGNA==" + }, + "tslib": { + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==" + }, "typescript": { "version": "5.8.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", @@ -567,9 +709,9 @@ "integrity": "sha512-RiMReJrTAiA+mBjGONMnjVDP2u3p9R1vkcGz6gDIrOMT3oGuYwX2WRMYI9ipkphSuE5XKEhydbhNEJh4NY9mlw==" }, "xml-utils": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.1.tgz", - "integrity": "sha512-Dn6vJ1Z9v1tepSjvnCpwk5QqwIPcEFKdgnjqfYOABv1ngSofuAhtlugcUC3ehS1OHdgDWSG6C5mvj+Qm15udTQ==" + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/xml-utils/-/xml-utils-1.10.2.tgz", + "integrity": "sha512-RqM+2o1RYs6T8+3DzDSoTRAUfrvaejbVHcp3+thnAtDKo8LskR+HomLajEy5UjTz24rpka7AxVBRR3g2wTUkJA==" }, "zstddec": { "version": "0.1.0", diff --git a/srcjs/package.json b/srcjs/package.json index bb14e0b..dd41cd9 100644 --- a/srcjs/package.json +++ b/srcjs/package.json @@ -23,7 +23,9 @@ "vite": "^6.2.4" }, "dependencies": { + "@maptiler/geocoding-control": "^2.1.6", "mustache": "^4.2.0", - "ol": "latest" + "ol": "^10.5.0", + "ol-pmtiles": "^2.0.2" } } diff --git a/tests/data/icon.png b/tests/data/icon.png new file mode 100644 index 0000000..ed88662 Binary files /dev/null and b/tests/data/icon.png differ diff --git a/tests/test_basemaps.py b/tests/test_basemaps.py new file mode 100644 index 0000000..ee96ef2 --- /dev/null +++ b/tests/test_basemaps.py @@ -0,0 +1,13 @@ +from openlayers.basemaps import Carto, CartoBasemapLayer +from openlayers.layers import TileLayer, BasemapLayer + +def test_basemap_layer() -> None: + layer = BasemapLayer() + + # print(layer) + + layer = CartoBasemapLayer(Carto.DARK_ALL) + print(layer.model.model_dump()) + + assert isinstance(layer.model, TileLayer) + assert layer.model.id == "carto-dark-all" diff --git a/tests/test_colors.py b/tests/test_colors.py index c3d6ce0..6231167 100644 --- a/tests/test_colors.py +++ b/tests/test_colors.py @@ -1,6 +1,29 @@ -from openlayers.colors import ColorScheme, read_color_schemes +from openlayers.colors import ColorScheme, read_color_schemes, Color def test_color_schemes() -> None: cs = read_color_schemes() print(cs[0]) print(len(cs[0].values)) + +def test_random_hex_colors() -> None: + n = 6 + + hex_colors = Color.random_hex_colors(n) + print(hex_colors) + + rgb_colors = Color.random_rgb_colors(n) + print(rgb_colors) + +def test_color_by_cat() -> None: + import pandas as pd + + id = [1, 2, 3, 4, 5, 6] + letter = ["a", "b", "c", "a", "a", "b"] + df = pd.DataFrame(dict(id=id, letter=letter)) + + # codes = pd.Categorical(df["letter"]).codes + # colors = Color.random_hex_colors(len(codes)) + # df["_color"] = [colors[code] for code in codes] + # print(df) + colors = Color.random_hex_colors_by_category(df["letter"]) + print(colors) \ No newline at end of file diff --git a/tests/test_export.py b/tests/test_export.py index 2e32373..832f2ad 100644 --- a/tests/test_export.py +++ b/tests/test_export.py @@ -20,6 +20,6 @@ def test_to_html() -> None: def _test_save_html() -> None: m = Map(View()) - print(m.map_options) + print(m.options) path = m.save(preview=True) print("path", path) diff --git a/tests/test_map.py b/tests/test_map.py index c4e9356..e7bb9f1 100644 --- a/tests/test_map.py +++ b/tests/test_map.py @@ -1,6 +1,5 @@ from openlayers.map import Map -from openlayers.view import View -# from openlayers.models.view import View +from openlayers.models.view import View def test_map() -> None: @@ -11,7 +10,7 @@ def test_map() -> None: m = Map(view) # Assert - print(m.map_options) - assert m.map_options["view"] == view.model_dump() + print(m.options) + assert m.options["view"] == view.model_dump() - assert m.initial_view.center == (2, 2) + assert m.initial_view_state["center"] == (2, 2) diff --git a/tests/test_map_options.py b/tests/test_map_options.py new file mode 100644 index 0000000..8294c4e --- /dev/null +++ b/tests/test_map_options.py @@ -0,0 +1,9 @@ +from openlayers.models.map_options import MapOptions, View +from openlayers.express import IconLayer + +def test_map_options() -> None: + express_layer = IconLayer(data="http://xyz.de", icon_src="icon.png") + + options = MapOptions(view=View(), layers=[express_layer]) + + print(options.model_dump()) diff --git a/tests/test_styles.py b/tests/test_styles.py index d2d32c5..bb06148 100644 --- a/tests/test_styles.py +++ b/tests/test_styles.py @@ -1,9 +1,43 @@ -from openlayers.styles import default_style +from pathlib import Path -def test_vector_style() -> None: +from openlayers.styles import default_style, FlatStyle + +def test_default_vector_style() -> None: style = default_style() json_def = style.model_dump() print(json_def) assert json_def["stroke-color"] == "#3399CC" + +def test_update_default_style() -> None: + # update = dict(fill_color="green") + # style = default_style().model_copy(update=update) + + style = default_style(fill_color="green") + + print(style.model_dump()) + print(style) + +def test_icon_style() -> None: + icon_url = "http://xyz.de/icon.png" + + style = FlatStyle( + icon_src=icon_url + ) + + dumped_style = style.model_dump() + + print(dumped_style) + assert dumped_style["icon-src"] == icon_url + +def test_icon_from_file() -> None: + icon_path = Path(__file__).parent / "data" / "icon.png" + print(icon_path) + + style = FlatStyle(icon_src=icon_path) + dumped_style = style.model_dump() + + print(type(style.icon_src)) + + print(dumped_style) diff --git a/tests/test_utils.py b/tests/test_utils.py new file mode 100644 index 0000000..03a7113 --- /dev/null +++ b/tests/test_utils.py @@ -0,0 +1,11 @@ +from openlayers.utils import crs_transformer + +def test_crs_transformer() -> None: + lon = -122.4 + lat = 37.74 + + transformer = crs_transformer() + center = (lon, lat) + coords = transformer.transform(*center) + + print(coords) diff --git a/uv.lock b/uv.lock index a222621..d389dc2 100644 --- a/uv.lock +++ b/uv.lock @@ -1,10 +1,9 @@ version = 1 -requires-python = ">=3.9, <4" +requires-python = ">=3.10, <4" resolution-markers = [ "python_full_version >= '3.12'", "python_full_version == '3.11.*'", - "python_full_version == '3.10.*'", - "python_full_version < '3.10'", + "python_full_version < '3.11'", ] [[package]] @@ -246,18 +245,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f1/47/d7145bf2dc04684935d57d67dff9d6d795b2ba2796806bb109864be3a151/cffi-1.17.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:72e72408cad3d5419375fc87d289076ee319835bdfa2caad331e377589aebba9", size = 488469 }, { url = "https://files.pythonhosted.org/packages/bf/ee/f94057fa6426481d663b88637a9a10e859e492c73d0384514a17d78ee205/cffi-1.17.1-cp313-cp313-win32.whl", hash = "sha256:e03eab0a8677fa80d646b5ddece1cbeaf556c313dcfac435ba11f107ba117b5d", size = 172475 }, { url = "https://files.pythonhosted.org/packages/7c/fc/6a8cb64e5f0324877d503c854da15d76c1e50eb722e320b15345c4d0c6de/cffi-1.17.1-cp313-cp313-win_amd64.whl", hash = "sha256:f6a16c31041f09ead72d69f583767292f750d24913dadacf5756b966aacb3f1a", size = 182009 }, - { url = "https://files.pythonhosted.org/packages/b9/ea/8bb50596b8ffbc49ddd7a1ad305035daa770202a6b782fc164647c2673ad/cffi-1.17.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:b2ab587605f4ba0bf81dc0cb08a41bd1c0a5906bd59243d56bad7668a6fc6c16", size = 182220 }, - { url = "https://files.pythonhosted.org/packages/ae/11/e77c8cd24f58285a82c23af484cf5b124a376b32644e445960d1a4654c3a/cffi-1.17.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:28b16024becceed8c6dfbc75629e27788d8a3f9030691a1dbf9821a128b22c36", size = 178605 }, - { url = "https://files.pythonhosted.org/packages/ed/65/25a8dc32c53bf5b7b6c2686b42ae2ad58743f7ff644844af7cdb29b49361/cffi-1.17.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1d599671f396c4723d016dbddb72fe8e0397082b0a77a4fab8028923bec050e8", size = 424910 }, - { url = "https://files.pythonhosted.org/packages/42/7a/9d086fab7c66bd7c4d0f27c57a1b6b068ced810afc498cc8c49e0088661c/cffi-1.17.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ca74b8dbe6e8e8263c0ffd60277de77dcee6c837a3d0881d8c1ead7268c9e576", size = 447200 }, - { url = "https://files.pythonhosted.org/packages/da/63/1785ced118ce92a993b0ec9e0d0ac8dc3e5dbfbcaa81135be56c69cabbb6/cffi-1.17.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f7f5baafcc48261359e14bcd6d9bff6d4b28d9103847c9e136694cb0501aef87", size = 454565 }, - { url = "https://files.pythonhosted.org/packages/74/06/90b8a44abf3556599cdec107f7290277ae8901a58f75e6fe8f970cd72418/cffi-1.17.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98e3969bcff97cae1b2def8ba499ea3d6f31ddfdb7635374834cf89a1a08ecf0", size = 435635 }, - { url = "https://files.pythonhosted.org/packages/bd/62/a1f468e5708a70b1d86ead5bab5520861d9c7eacce4a885ded9faa7729c3/cffi-1.17.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:cdf5ce3acdfd1661132f2a9c19cac174758dc2352bfe37d98aa7512c6b7178b3", size = 445218 }, - { url = "https://files.pythonhosted.org/packages/5b/95/b34462f3ccb09c2594aa782d90a90b045de4ff1f70148ee79c69d37a0a5a/cffi-1.17.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:9755e4345d1ec879e3849e62222a18c7174d65a6a92d5b346b1863912168b595", size = 460486 }, - { url = "https://files.pythonhosted.org/packages/fc/fc/a1e4bebd8d680febd29cf6c8a40067182b64f00c7d105f8f26b5bc54317b/cffi-1.17.1-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:f1e22e8c4419538cb197e4dd60acc919d7696e5ef98ee4da4e01d3f8cfa4cc5a", size = 437911 }, - { url = "https://files.pythonhosted.org/packages/e6/c3/21cab7a6154b6a5ea330ae80de386e7665254835b9e98ecc1340b3a7de9a/cffi-1.17.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:c03e868a0b3bc35839ba98e74211ed2b05d2119be4e8a0f224fba9384f1fe02e", size = 460632 }, - { url = "https://files.pythonhosted.org/packages/cb/b5/fd9f8b5a84010ca169ee49f4e4ad6f8c05f4e3545b72ee041dbbcb159882/cffi-1.17.1-cp39-cp39-win32.whl", hash = "sha256:e31ae45bc2e29f6b2abd0de1cc3b9d5205aa847cafaecb8af1476a609a2f6eb7", size = 171820 }, - { url = "https://files.pythonhosted.org/packages/8c/52/b08750ce0bce45c143e1b5d7357ee8c55341b52bdef4b0f081af1eb248c2/cffi-1.17.1-cp39-cp39-win_amd64.whl", hash = "sha256:d016c76bdd850f3c626af19b0542c9677ba156e4ee4fccfdd7848803533ef662", size = 181290 }, ] [[package]] @@ -318,19 +305,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/e4/93/946a86ce20790e11312c87c75ba68d5f6ad2208cfb52b2d6a2c32840d922/charset_normalizer-3.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:fa88b843d6e211393a37219e6a1c1df99d35e8fd90446f1118f4216e307e48cd", size = 145732 }, { url = "https://files.pythonhosted.org/packages/cd/e5/131d2fb1b0dddafc37be4f3a2fa79aa4c037368be9423061dccadfd90091/charset_normalizer-3.4.1-cp313-cp313-win32.whl", hash = "sha256:eb8178fe3dba6450a3e024e95ac49ed3400e506fd4e9e5c32d30adda88cbd407", size = 95391 }, { url = "https://files.pythonhosted.org/packages/27/f2/4f9a69cc7712b9b5ad8fdb87039fd89abba997ad5cbe690d1835d40405b0/charset_normalizer-3.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:b1ac5992a838106edb89654e0aebfc24f5848ae2547d22c2c3f66454daa11971", size = 102702 }, - { url = "https://files.pythonhosted.org/packages/7f/c0/b913f8f02836ed9ab32ea643c6fe4d3325c3d8627cf6e78098671cafff86/charset_normalizer-3.4.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:b97e690a2118911e39b4042088092771b4ae3fc3aa86518f84b8cf6888dbdb41", size = 197867 }, - { url = "https://files.pythonhosted.org/packages/0f/6c/2bee440303d705b6fb1e2ec789543edec83d32d258299b16eed28aad48e0/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:78baa6d91634dfb69ec52a463534bc0df05dbd546209b79a3880a34487f4b84f", size = 141385 }, - { url = "https://files.pythonhosted.org/packages/3d/04/cb42585f07f6f9fd3219ffb6f37d5a39b4fd2db2355b23683060029c35f7/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1a2bc9f351a75ef49d664206d51f8e5ede9da246602dc2d2726837620ea034b2", size = 151367 }, - { url = "https://files.pythonhosted.org/packages/54/54/2412a5b093acb17f0222de007cc129ec0e0df198b5ad2ce5699355269dfe/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75832c08354f595c760a804588b9357d34ec00ba1c940c15e31e96d902093770", size = 143928 }, - { url = "https://files.pythonhosted.org/packages/5a/6d/e2773862b043dcf8a221342954f375392bb2ce6487bcd9f2c1b34e1d6781/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0af291f4fe114be0280cdd29d533696a77b5b49cfde5467176ecab32353395c4", size = 146203 }, - { url = "https://files.pythonhosted.org/packages/b9/f8/ca440ef60d8f8916022859885f231abb07ada3c347c03d63f283bec32ef5/charset_normalizer-3.4.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0167ddc8ab6508fe81860a57dd472b2ef4060e8d378f0cc555707126830f2537", size = 148082 }, - { url = "https://files.pythonhosted.org/packages/04/d2/42fd330901aaa4b805a1097856c2edf5095e260a597f65def493f4b8c833/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2a75d49014d118e4198bcee5ee0a6f25856b29b12dbf7cd012791f8a6cc5c496", size = 142053 }, - { url = "https://files.pythonhosted.org/packages/9e/af/3a97a4fa3c53586f1910dadfc916e9c4f35eeada36de4108f5096cb7215f/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363e2f92b0f0174b2f8238240a1a30142e3db7b957a5dd5689b0e75fb717cc78", size = 150625 }, - { url = "https://files.pythonhosted.org/packages/26/ae/23d6041322a3556e4da139663d02fb1b3c59a23ab2e2b56432bd2ad63ded/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:ab36c8eb7e454e34e60eb55ca5d241a5d18b2c6244f6827a30e451c42410b5f7", size = 153549 }, - { url = "https://files.pythonhosted.org/packages/94/22/b8f2081c6a77cb20d97e57e0b385b481887aa08019d2459dc2858ed64871/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:4c0907b1928a36d5a998d72d64d8eaa7244989f7aaaf947500d3a800c83a3fd6", size = 150945 }, - { url = "https://files.pythonhosted.org/packages/c7/0b/c5ec5092747f801b8b093cdf5610e732b809d6cb11f4c51e35fc28d1d389/charset_normalizer-3.4.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:04432ad9479fa40ec0f387795ddad4437a2b50417c69fa275e212933519ff294", size = 146595 }, - { url = "https://files.pythonhosted.org/packages/0c/5a/0b59704c38470df6768aa154cc87b1ac7c9bb687990a1559dc8765e8627e/charset_normalizer-3.4.1-cp39-cp39-win32.whl", hash = "sha256:3bed14e9c89dcb10e8f3a29f9ccac4955aebe93c71ae803af79265c9ca5644c5", size = 95453 }, - { url = "https://files.pythonhosted.org/packages/85/2d/a9790237cb4d01a6d57afadc8573c8b73c609ade20b80f4cda30802009ee/charset_normalizer-3.4.1-cp39-cp39-win_amd64.whl", hash = "sha256:49402233c892a461407c512a19435d1ce275543138294f7ef013f0b63d5d3765", size = 102811 }, { url = "https://files.pythonhosted.org/packages/0e/f6/65ecc6878a89bb1c23a086ea335ad4bf21a588990c3f535a227b9eea9108/charset_normalizer-3.4.1-py3-none-any.whl", hash = "sha256:d98b1668f06378c6dbefec3b92299716b931cd4e6061f3c875a71ced1780ab85", size = 49767 }, ] @@ -389,10 +363,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ba/f1/6f2ee3f991327ad9e4c2f8b82611a467052a0fb0e247390192580e89f7ff/debugpy-1.8.14-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f920c7f9af409d90f5fd26e313e119d908b0dd2952c2393cd3247a462331f15", size = 4217514 }, { url = "https://files.pythonhosted.org/packages/79/28/b9d146f8f2dc535c236ee09ad3e5ac899adb39d7a19b49f03ac95d216beb/debugpy-1.8.14-cp313-cp313-win32.whl", hash = "sha256:3784ec6e8600c66cbdd4ca2726c72d8ca781e94bce2f396cc606d458146f8f4e", size = 5254756 }, { url = "https://files.pythonhosted.org/packages/e0/62/a7b4a57013eac4ccaef6977966e6bec5c63906dd25a86e35f155952e29a1/debugpy-1.8.14-cp313-cp313-win_amd64.whl", hash = "sha256:684eaf43c95a3ec39a96f1f5195a7ff3d4144e4a18d69bb66beeb1a6de605d6e", size = 5297119 }, - { url = "https://files.pythonhosted.org/packages/85/6f/96ba96545f55b6a675afa08c96b42810de9b18c7ad17446bbec82762127a/debugpy-1.8.14-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:413512d35ff52c2fb0fd2d65e69f373ffd24f0ecb1fac514c04a668599c5ce7f", size = 2077696 }, - { url = "https://files.pythonhosted.org/packages/fa/84/f378a2dd837d94de3c85bca14f1db79f8fcad7e20b108b40d59da56a6d22/debugpy-1.8.14-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c9156f7524a0d70b7a7e22b2e311d8ba76a15496fb00730e46dcdeedb9e1eea", size = 3554846 }, - { url = "https://files.pythonhosted.org/packages/db/52/88824fe5d6893f59933f664c6e12783749ab537a2101baf5c713164d8aa2/debugpy-1.8.14-cp39-cp39-win32.whl", hash = "sha256:b44985f97cc3dd9d52c42eb59ee9d7ee0c4e7ecd62bca704891f997de4cef23d", size = 5209350 }, - { url = "https://files.pythonhosted.org/packages/41/35/72e9399be24a04cb72cfe1284572c9fcd1d742c7fa23786925c18fa54ad8/debugpy-1.8.14-cp39-cp39-win_amd64.whl", hash = "sha256:b1528cfee6c1b1c698eb10b6b096c598738a8238822d218173d21c3086de8123", size = 5241852 }, { url = "https://files.pythonhosted.org/packages/97/1a/481f33c37ee3ac8040d3d51fc4c4e4e7e61cb08b8bc8971d6032acc2279f/debugpy-1.8.14-py2.py3-none-any.whl", hash = "sha256:5cd9a579d553b6cb9759a7908a41988ee6280b961f24f63336835d9418216a20", size = 5256230 }, ] @@ -423,6 +393,15 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/8f/d7/9322c609343d929e75e7e5e6255e614fcc67572cfd083959cdef3b7aad79/docutils-0.21.2-py3-none-any.whl", hash = "sha256:dafca5b9e384f0e419294eb4d2ff9fa826435bf15f15b7bd45723e8ad76811b2", size = 587408 }, ] +[[package]] +name = "eval-type-backport" +version = "0.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/ea/8b0ac4469d4c347c6a385ff09dc3c048c2d021696664e26c7ee6791631b5/eval_type_backport-0.2.2.tar.gz", hash = "sha256:f0576b4cf01ebb5bd358d02314d31846af5e07678387486e2c798af0e7d849c1", size = 9079 } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/31/55cd413eaccd39125368be33c46de24a1f639f2e12349b0361b4678f3915/eval_type_backport-0.2.2-py3-none-any.whl", hash = "sha256:cb6ad7c393517f476f96d456d0412ea80f0a8cf96f6892834cd9340149111b0a", size = 5830 }, +] + [[package]] name = "exceptiongroup" version = "1.2.2" @@ -464,15 +443,13 @@ name = "geopandas" version = "1.0.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy" }, { name = "packaging" }, { name = "pandas" }, { name = "pyogrio" }, - { name = "pyproj", version = "3.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyproj", version = "3.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, - { name = "shapely", version = "2.0.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "shapely", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "pyproj" }, + { name = "shapely", version = "2.0.7", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, + { name = "shapely", version = "2.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/39/08/2cf5d85356e45b10b8d066cf4c3ba1e9e3185423c48104eed87e8afd0455/geopandas-1.0.1.tar.gz", hash = "sha256:b8bf70a5534588205b7a56646e2082fb1de9a03599651b3d80c99ea4c2ca08ab", size = 317736 } wheels = [ @@ -549,18 +526,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 }, ] -[[package]] -name = "importlib-metadata" -version = "8.6.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "zipp", marker = "python_full_version < '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/33/08/c1395a292bb23fd03bdf572a1357c5a733d3eecbab877641ceacab23db6e/importlib_metadata-8.6.1.tar.gz", hash = "sha256:310b41d755445d74569f993ccfc22838295d9fe005425094fad953d7f15c8580", size = 55767 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/79/9d/0fb148dc4d6fa4a7dd1d8378168d9b4cd8d4560a6fbf6f0121c5fc34eb68/importlib_metadata-8.6.1-py3-none-any.whl", hash = "sha256:02a89390c1e15fdfdc0d7c6b25cb3e62650d0494005c97d6f148bf5b9787525e", size = 26971 }, -] - [[package]] name = "iniconfig" version = "2.1.0" @@ -578,8 +543,7 @@ dependencies = [ { name = "appnope", marker = "sys_platform == 'darwin'" }, { name = "comm" }, { name = "debugpy" }, - { name = "ipython", version = "8.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "ipython", version = "8.35.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "ipython", version = "8.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "ipython", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "jupyter-client" }, { name = "jupyter-core" }, @@ -601,51 +565,25 @@ name = "ipython" version = "8.18.1" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.10'", + "python_full_version < '3.11'", ] dependencies = [ - { name = "colorama", marker = "python_full_version < '3.10' and sys_platform == 'win32'" }, - { name = "decorator", marker = "python_full_version < '3.10'" }, - { name = "exceptiongroup", marker = "python_full_version < '3.10'" }, - { name = "jedi", marker = "python_full_version < '3.10'" }, - { name = "matplotlib-inline", marker = "python_full_version < '3.10'" }, - { name = "pexpect", marker = "python_full_version < '3.10' and sys_platform != 'win32'" }, - { name = "prompt-toolkit", marker = "python_full_version < '3.10'" }, - { name = "pygments", marker = "python_full_version < '3.10'" }, - { name = "stack-data", marker = "python_full_version < '3.10'" }, - { name = "traitlets", marker = "python_full_version < '3.10'" }, - { name = "typing-extensions", marker = "python_full_version < '3.10'" }, + { name = "colorama", marker = "python_full_version < '3.11' and sys_platform == 'win32'" }, + { name = "decorator", marker = "python_full_version < '3.11'" }, + { name = "exceptiongroup", marker = "python_full_version < '3.11'" }, + { name = "jedi", marker = "python_full_version < '3.11'" }, + { name = "matplotlib-inline", marker = "python_full_version < '3.11'" }, + { name = "pexpect", marker = "python_full_version < '3.11' and sys_platform != 'win32'" }, + { name = "prompt-toolkit", marker = "python_full_version < '3.11'" }, + { name = "pygments", marker = "python_full_version < '3.11'" }, + { name = "stack-data", marker = "python_full_version < '3.11'" }, + { name = "traitlets", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/b1/b9/3ba6c45a6df813c09a48bac313c22ff83efa26cbb55011218d925a46e2ad/ipython-8.18.1.tar.gz", hash = "sha256:ca6f079bb33457c66e233e4580ebfc4128855b4cf6370dddd73842a9563e8a27", size = 5486330 } wheels = [ { url = "https://files.pythonhosted.org/packages/47/6b/d9fdcdef2eb6a23f391251fde8781c38d42acd82abe84d054cb74f7863b0/ipython-8.18.1-py3-none-any.whl", hash = "sha256:e8267419d72d81955ec1177f8a29aaa90ac80ad647499201119e2f05e99aa397", size = 808161 }, ] -[[package]] -name = "ipython" -version = "8.35.0" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "colorama", marker = "python_full_version == '3.10.*' and sys_platform == 'win32'" }, - { name = "decorator", marker = "python_full_version == '3.10.*'" }, - { name = "exceptiongroup", marker = "python_full_version == '3.10.*'" }, - { name = "jedi", marker = "python_full_version == '3.10.*'" }, - { name = "matplotlib-inline", marker = "python_full_version == '3.10.*'" }, - { name = "pexpect", marker = "python_full_version == '3.10.*' and sys_platform != 'emscripten' and sys_platform != 'win32'" }, - { name = "prompt-toolkit", marker = "python_full_version == '3.10.*'" }, - { name = "pygments", marker = "python_full_version == '3.10.*'" }, - { name = "stack-data", marker = "python_full_version == '3.10.*'" }, - { name = "traitlets", marker = "python_full_version == '3.10.*'" }, - { name = "typing-extensions", marker = "python_full_version == '3.10.*'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/0c/77/7d1501e8b539b179936e0d5969b578ed23887be0ab8c63e0120b825bda3e/ipython-8.35.0.tar.gz", hash = "sha256:d200b7d93c3f5883fc36ab9ce28a18249c7706e51347681f80a0aef9895f2520", size = 5605027 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/91/bf/17ffca8c8b011d0bac90adb5d4e720cb3ae1fe5ccfdfc14ca31f827ee320/ipython-8.35.0-py3-none-any.whl", hash = "sha256:e6b7470468ba6f1f0a7b116bb688a3ece2f13e2f94138e508201fad677a788ba", size = 830880 }, -] - [[package]] name = "ipython" version = "9.1.0" @@ -690,8 +628,7 @@ version = "8.1.6" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "comm" }, - { name = "ipython", version = "8.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "ipython", version = "8.35.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "ipython", version = "8.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "ipython", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "jupyterlab-widgets" }, { name = "traitlets" }, @@ -835,7 +772,6 @@ name = "jupyter-client" version = "8.6.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, { name = "jupyter-core" }, { name = "python-dateutil" }, { name = "pyzmq" }, @@ -853,8 +789,7 @@ version = "6.6.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "ipykernel" }, - { name = "ipython", version = "8.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "ipython", version = "8.35.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version == '3.10.*'" }, + { name = "ipython", version = "8.18.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.11'" }, { name = "ipython", version = "9.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.11'" }, { name = "jupyter-client" }, { name = "jupyter-core" }, @@ -906,7 +841,6 @@ name = "jupyter-lsp" version = "2.2.5" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, { name = "jupyter-server" }, ] sdist = { url = "https://files.pythonhosted.org/packages/85/b4/3200b0b09c12bc3b72d943d923323c398eff382d1dcc7c0dbc8b74630e40/jupyter-lsp-2.2.5.tar.gz", hash = "sha256:793147a05ad446f809fd53ef1cd19a9f5256fd0a2d6b7ce943a982cb4f545001", size = 48741 } @@ -964,7 +898,6 @@ source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "async-lru" }, { name = "httpx" }, - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, { name = "ipykernel" }, { name = "jinja2" }, { name = "jupyter-core" }, @@ -998,7 +931,6 @@ version = "2.27.3" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "babel" }, - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, { name = "jinja2" }, { name = "json5" }, { name = "jsonschema" }, @@ -1053,9 +985,6 @@ wheels = [ name = "markdown" version = "3.8" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, -] sdist = { url = "https://files.pythonhosted.org/packages/2f/15/222b423b0b88689c266d9eac4e61396fe2cc53464459d6a37618ac863b24/markdown-3.8.tar.gz", hash = "sha256:7df81e63f0df5c4b24b7d156eb81e4690595239b7d70937d0409f1b0de319c6f", size = 360906 } wheels = [ { url = "https://files.pythonhosted.org/packages/51/3f/afe76f8e2246ffbc867440cbcf90525264df0e658f8a5ca1f872b3f6192a/markdown-3.8-py3-none-any.whl", hash = "sha256:794a929b79c5af141ef5ab0f2f642d0f7b1872981250230e72682346f7cc90dc", size = 106210 }, @@ -1117,16 +1046,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0d/80/0985960e4b89922cb5a0bac0ed39c5b96cbc1a536a99f30e8c220a996ed9/MarkupSafe-3.0.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:131a3c7689c85f5ad20f9f6fb1b866f402c445b220c19fe4308c0b147ccd2ad9", size = 24098 }, { url = "https://files.pythonhosted.org/packages/82/78/fedb03c7d5380df2427038ec8d973587e90561b2d90cd472ce9254cf348b/MarkupSafe-3.0.2-cp313-cp313t-win32.whl", hash = "sha256:ba8062ed2cf21c07a9e295d5b8a2a5ce678b913b45fdf68c32d95d6c1291e0b6", size = 15208 }, { url = "https://files.pythonhosted.org/packages/4f/65/6079a46068dfceaeabb5dcad6d674f5f5c61a6fa5673746f42a9f4c233b3/MarkupSafe-3.0.2-cp313-cp313t-win_amd64.whl", hash = "sha256:e444a31f8db13eb18ada366ab3cf45fd4b31e4db1236a4448f68778c1d1a5a2f", size = 15739 }, - { url = "https://files.pythonhosted.org/packages/a7/ea/9b1530c3fdeeca613faeb0fb5cbcf2389d816072fab72a71b45749ef6062/MarkupSafe-3.0.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:eaa0a10b7f72326f1372a713e73c3f739b524b3af41feb43e4921cb529f5929a", size = 14344 }, - { url = "https://files.pythonhosted.org/packages/4b/c2/fbdbfe48848e7112ab05e627e718e854d20192b674952d9042ebd8c9e5de/MarkupSafe-3.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:48032821bbdf20f5799ff537c7ac3d1fba0ba032cfc06194faffa8cda8b560ff", size = 12389 }, - { url = "https://files.pythonhosted.org/packages/f0/25/7a7c6e4dbd4f867d95d94ca15449e91e52856f6ed1905d58ef1de5e211d0/MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a9d3f5f0901fdec14d8d2f66ef7d035f2157240a433441719ac9a3fba440b13", size = 21607 }, - { url = "https://files.pythonhosted.org/packages/53/8f/f339c98a178f3c1e545622206b40986a4c3307fe39f70ccd3d9df9a9e425/MarkupSafe-3.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:88b49a3b9ff31e19998750c38e030fc7bb937398b1f78cfa599aaef92d693144", size = 20728 }, - { url = "https://files.pythonhosted.org/packages/1a/03/8496a1a78308456dbd50b23a385c69b41f2e9661c67ea1329849a598a8f9/MarkupSafe-3.0.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cfad01eed2c2e0c01fd0ecd2ef42c492f7f93902e39a42fc9ee1692961443a29", size = 20826 }, - { url = "https://files.pythonhosted.org/packages/e6/cf/0a490a4bd363048c3022f2f475c8c05582179bb179defcee4766fb3dcc18/MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1225beacc926f536dc82e45f8a4d68502949dc67eea90eab715dea3a21c1b5f0", size = 21843 }, - { url = "https://files.pythonhosted.org/packages/19/a3/34187a78613920dfd3cdf68ef6ce5e99c4f3417f035694074beb8848cd77/MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:3169b1eefae027567d1ce6ee7cae382c57fe26e82775f460f0b2778beaad66c0", size = 21219 }, - { url = "https://files.pythonhosted.org/packages/17/d8/5811082f85bb88410ad7e452263af048d685669bbbfb7b595e8689152498/MarkupSafe-3.0.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:eb7972a85c54febfb25b5c4b4f3af4dcc731994c7da0d8a0b4a6eb0640e1d178", size = 20946 }, - { url = "https://files.pythonhosted.org/packages/7c/31/bd635fb5989440d9365c5e3c47556cfea121c7803f5034ac843e8f37c2f2/MarkupSafe-3.0.2-cp39-cp39-win32.whl", hash = "sha256:8c4e8c3ce11e1f92f6536ff07154f9d49677ebaaafc32db9db4620bc11ed480f", size = 15063 }, - { url = "https://files.pythonhosted.org/packages/b3/73/085399401383ce949f727afec55ec3abd76648d04b9f22e1c0e99cb4bec3/MarkupSafe-3.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:6e296a513ca3d94054c2c881cc913116e90fd030ad1c656b3869762b754f5f8a", size = 15506 }, ] [[package]] @@ -1170,7 +1089,6 @@ dependencies = [ { name = "click" }, { name = "colorama", marker = "sys_platform == 'win32'" }, { name = "ghp-import" }, - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, { name = "jinja2" }, { name = "markdown" }, { name = "markupsafe" }, @@ -1206,7 +1124,6 @@ name = "mkdocs-get-deps" version = "0.2.0" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, { name = "mergedeep" }, { name = "platformdirs" }, { name = "pyyaml" }, @@ -1252,7 +1169,6 @@ name = "mkdocstrings" version = "0.29.1" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, { name = "jinja2" }, { name = "markdown" }, { name = "markupsafe" }, @@ -1317,7 +1233,6 @@ dependencies = [ { name = "beautifulsoup4" }, { name = "bleach", extra = ["css"] }, { name = "defusedxml" }, - { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, { name = "jinja2" }, { name = "jupyter-core" }, { name = "jupyterlab-pygments" }, @@ -1391,9 +1306,6 @@ wheels = [ name = "numpy" version = "2.0.2" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] sdist = { url = "https://files.pythonhosted.org/packages/a9/75/10dd1f8116a8b796cb2c737b674e02d02e80454bda953fa7e65d8c12b016/numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78", size = 18902015 } wheels = [ { url = "https://files.pythonhosted.org/packages/21/91/3495b3237510f79f5d81f2508f9f13fea78ebfdf07538fc7444badda173d/numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece", size = 21165245 }, @@ -1426,97 +1338,18 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/71/af/a469674070c8d8408384e3012e064299f7a2de540738a8e414dcfd639996/numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded", size = 14099701 }, { url = "https://files.pythonhosted.org/packages/d0/3d/08ea9f239d0e0e939b6ca52ad403c84a2bce1bde301a8eb4888c1c1543f1/numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5", size = 6174313 }, { url = "https://files.pythonhosted.org/packages/b2/b5/4ac39baebf1fdb2e72585c8352c56d063b6126be9fc95bd2bb5ef5770c20/numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a", size = 15606179 }, - { url = "https://files.pythonhosted.org/packages/43/c1/41c8f6df3162b0c6ffd4437d729115704bd43363de0090c7f913cfbc2d89/numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c", size = 21169942 }, - { url = "https://files.pythonhosted.org/packages/39/bc/fd298f308dcd232b56a4031fd6ddf11c43f9917fbc937e53762f7b5a3bb1/numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd", size = 13711512 }, - { url = "https://files.pythonhosted.org/packages/96/ff/06d1aa3eeb1c614eda245c1ba4fb88c483bee6520d361641331872ac4b82/numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b", size = 5306976 }, - { url = "https://files.pythonhosted.org/packages/2d/98/121996dcfb10a6087a05e54453e28e58694a7db62c5a5a29cee14c6e047b/numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729", size = 6906494 }, - { url = "https://files.pythonhosted.org/packages/15/31/9dffc70da6b9bbf7968f6551967fc21156207366272c2a40b4ed6008dc9b/numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1", size = 13912596 }, - { url = "https://files.pythonhosted.org/packages/b9/14/78635daab4b07c0930c919d451b8bf8c164774e6a3413aed04a6d95758ce/numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd", size = 19526099 }, - { url = "https://files.pythonhosted.org/packages/26/4c/0eeca4614003077f68bfe7aac8b7496f04221865b3a5e7cb230c9d055afd/numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d", size = 19932823 }, - { url = "https://files.pythonhosted.org/packages/f1/46/ea25b98b13dccaebddf1a803f8c748680d972e00507cd9bc6dcdb5aa2ac1/numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d", size = 14404424 }, - { url = "https://files.pythonhosted.org/packages/c8/a6/177dd88d95ecf07e722d21008b1b40e681a929eb9e329684d449c36586b2/numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa", size = 6476809 }, - { url = "https://files.pythonhosted.org/packages/ea/2b/7fc9f4e7ae5b507c1a3a21f0f15ed03e794c1242ea8a242ac158beb56034/numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73", size = 15911314 }, - { url = "https://files.pythonhosted.org/packages/8f/3b/df5a870ac6a3be3a86856ce195ef42eec7ae50d2a202be1f5a4b3b340e14/numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8", size = 21025288 }, - { url = "https://files.pythonhosted.org/packages/2c/97/51af92f18d6f6f2d9ad8b482a99fb74e142d71372da5d834b3a2747a446e/numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4", size = 6762793 }, - { url = "https://files.pythonhosted.org/packages/12/46/de1fbd0c1b5ccaa7f9a005b66761533e2f6a3e560096682683a223631fe9/numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c", size = 19334885 }, - { url = "https://files.pythonhosted.org/packages/cc/dc/d330a6faefd92b446ec0f0dfea4c3207bb1fef3c4771d19cf4543efd2c78/numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385", size = 15828784 }, -] - -[[package]] -name = "numpy" -version = "2.2.5" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.12'", - "python_full_version == '3.11.*'", - "python_full_version == '3.10.*'", -] -sdist = { url = "https://files.pythonhosted.org/packages/dc/b2/ce4b867d8cd9c0ee84938ae1e6a6f7926ebf928c9090d036fc3c6a04f946/numpy-2.2.5.tar.gz", hash = "sha256:a9c0d994680cd991b1cb772e8b297340085466a6fe964bc9d4e80f5e2f43c291", size = 20273920 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/ef/4e/3d9e6d16237c2aa5485695f0626cbba82f6481efca2e9132368dea3b885e/numpy-2.2.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1f4a922da1729f4c40932b2af4fe84909c7a6e167e6e99f71838ce3a29f3fe26", size = 21252117 }, - { url = "https://files.pythonhosted.org/packages/38/e4/db91349d4079cd15c02ff3b4b8882a529991d6aca077db198a2f2a670406/numpy-2.2.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b6f91524d31b34f4a5fee24f5bc16dcd1491b668798b6d85585d836c1e633a6a", size = 14424615 }, - { url = "https://files.pythonhosted.org/packages/f8/59/6e5b011f553c37b008bd115c7ba7106a18f372588fbb1b430b7a5d2c41ce/numpy-2.2.5-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:19f4718c9012e3baea91a7dba661dcab2451cda2550678dc30d53acb91a7290f", size = 5428691 }, - { url = "https://files.pythonhosted.org/packages/a2/58/d5d70ebdac82b3a6ddf409b3749ca5786636e50fd64d60edb46442af6838/numpy-2.2.5-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:eb7fd5b184e5d277afa9ec0ad5e4eb562ecff541e7f60e69ee69c8d59e9aeaba", size = 6965010 }, - { url = "https://files.pythonhosted.org/packages/dc/a8/c290394be346d4e7b48a40baf292626fd96ec56a6398ace4c25d9079bc6a/numpy-2.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6413d48a9be53e183eb06495d8e3b006ef8f87c324af68241bbe7a39e8ff54c3", size = 14369885 }, - { url = "https://files.pythonhosted.org/packages/c2/70/fed13c70aabe7049368553e81d7ca40f305f305800a007a956d7cd2e5476/numpy-2.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7451f92eddf8503c9b8aa4fe6aa7e87fd51a29c2cfc5f7dbd72efde6c65acf57", size = 16418372 }, - { url = "https://files.pythonhosted.org/packages/04/ab/c3c14f25ddaecd6fc58a34858f6a93a21eea6c266ba162fa99f3d0de12ac/numpy-2.2.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0bcb1d057b7571334139129b7f941588f69ce7c4ed15a9d6162b2ea54ded700c", size = 15883173 }, - { url = "https://files.pythonhosted.org/packages/50/18/f53710a19042911c7aca824afe97c203728a34b8cf123e2d94621a12edc3/numpy-2.2.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:36ab5b23915887543441efd0417e6a3baa08634308894316f446027611b53bf1", size = 18206881 }, - { url = "https://files.pythonhosted.org/packages/6b/ec/5b407bab82f10c65af5a5fe754728df03f960fd44d27c036b61f7b3ef255/numpy-2.2.5-cp310-cp310-win32.whl", hash = "sha256:422cc684f17bc963da5f59a31530b3936f57c95a29743056ef7a7903a5dbdf88", size = 6609852 }, - { url = "https://files.pythonhosted.org/packages/b6/f5/467ca8675c7e6c567f571d8db942cc10a87588bd9e20a909d8af4171edda/numpy-2.2.5-cp310-cp310-win_amd64.whl", hash = "sha256:e4f0b035d9d0ed519c813ee23e0a733db81ec37d2e9503afbb6e54ccfdee0fa7", size = 12944922 }, - { url = "https://files.pythonhosted.org/packages/f5/fb/e4e4c254ba40e8f0c78218f9e86304628c75b6900509b601c8433bdb5da7/numpy-2.2.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c42365005c7a6c42436a54d28c43fe0e01ca11eb2ac3cefe796c25a5f98e5e9b", size = 21256475 }, - { url = "https://files.pythonhosted.org/packages/81/32/dd1f7084f5c10b2caad778258fdaeedd7fbd8afcd2510672811e6138dfac/numpy-2.2.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:498815b96f67dc347e03b719ef49c772589fb74b8ee9ea2c37feae915ad6ebda", size = 14461474 }, - { url = "https://files.pythonhosted.org/packages/0e/65/937cdf238ef6ac54ff749c0f66d9ee2b03646034c205cea9b6c51f2f3ad1/numpy-2.2.5-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:6411f744f7f20081b1b4e7112e0f4c9c5b08f94b9f086e6f0adf3645f85d3a4d", size = 5426875 }, - { url = "https://files.pythonhosted.org/packages/25/17/814515fdd545b07306eaee552b65c765035ea302d17de1b9cb50852d2452/numpy-2.2.5-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:9de6832228f617c9ef45d948ec1cd8949c482238d68b2477e6f642c33a7b0a54", size = 6969176 }, - { url = "https://files.pythonhosted.org/packages/e5/32/a66db7a5c8b5301ec329ab36d0ecca23f5e18907f43dbd593c8ec326d57c/numpy-2.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:369e0d4647c17c9363244f3468f2227d557a74b6781cb62ce57cf3ef5cc7c610", size = 14374850 }, - { url = "https://files.pythonhosted.org/packages/ad/c9/1bf6ada582eebcbe8978f5feb26584cd2b39f94ededeea034ca8f84af8c8/numpy-2.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:262d23f383170f99cd9191a7c85b9a50970fe9069b2f8ab5d786eca8a675d60b", size = 16430306 }, - { url = "https://files.pythonhosted.org/packages/6a/f0/3f741863f29e128f4fcfdb99253cc971406b402b4584663710ee07f5f7eb/numpy-2.2.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa70fdbdc3b169d69e8c59e65c07a1c9351ceb438e627f0fdcd471015cd956be", size = 15884767 }, - { url = "https://files.pythonhosted.org/packages/98/d9/4ccd8fd6410f7bf2d312cbc98892e0e43c2fcdd1deae293aeb0a93b18071/numpy-2.2.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37e32e985f03c06206582a7323ef926b4e78bdaa6915095ef08070471865b906", size = 18219515 }, - { url = "https://files.pythonhosted.org/packages/b1/56/783237243d4395c6dd741cf16eeb1a9035ee3d4310900e6b17e875d1b201/numpy-2.2.5-cp311-cp311-win32.whl", hash = "sha256:f5045039100ed58fa817a6227a356240ea1b9a1bc141018864c306c1a16d4175", size = 6607842 }, - { url = "https://files.pythonhosted.org/packages/98/89/0c93baaf0094bdaaaa0536fe61a27b1dce8a505fa262a865ec142208cfe9/numpy-2.2.5-cp311-cp311-win_amd64.whl", hash = "sha256:b13f04968b46ad705f7c8a80122a42ae8f620536ea38cf4bdd374302926424dd", size = 12949071 }, - { url = "https://files.pythonhosted.org/packages/e2/f7/1fd4ff108cd9d7ef929b8882692e23665dc9c23feecafbb9c6b80f4ec583/numpy-2.2.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ee461a4eaab4f165b68780a6a1af95fb23a29932be7569b9fab666c407969051", size = 20948633 }, - { url = "https://files.pythonhosted.org/packages/12/03/d443c278348371b20d830af155ff2079acad6a9e60279fac2b41dbbb73d8/numpy-2.2.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ec31367fd6a255dc8de4772bd1658c3e926d8e860a0b6e922b615e532d320ddc", size = 14176123 }, - { url = "https://files.pythonhosted.org/packages/2b/0b/5ca264641d0e7b14393313304da48b225d15d471250376f3fbdb1a2be603/numpy-2.2.5-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:47834cde750d3c9f4e52c6ca28a7361859fcaf52695c7dc3cc1a720b8922683e", size = 5163817 }, - { url = "https://files.pythonhosted.org/packages/04/b3/d522672b9e3d28e26e1613de7675b441bbd1eaca75db95680635dd158c67/numpy-2.2.5-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:2c1a1c6ccce4022383583a6ded7bbcda22fc635eb4eb1e0a053336425ed36dfa", size = 6698066 }, - { url = "https://files.pythonhosted.org/packages/a0/93/0f7a75c1ff02d4b76df35079676b3b2719fcdfb39abdf44c8b33f43ef37d/numpy-2.2.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d75f338f5f79ee23548b03d801d28a505198297534f62416391857ea0479571", size = 14087277 }, - { url = "https://files.pythonhosted.org/packages/b0/d9/7c338b923c53d431bc837b5b787052fef9ae68a56fe91e325aac0d48226e/numpy-2.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a801fef99668f309b88640e28d261991bfad9617c27beda4a3aec4f217ea073", size = 16135742 }, - { url = "https://files.pythonhosted.org/packages/2d/10/4dec9184a5d74ba9867c6f7d1e9f2e0fb5fe96ff2bf50bb6f342d64f2003/numpy-2.2.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:abe38cd8381245a7f49967a6010e77dbf3680bd3627c0fe4362dd693b404c7f8", size = 15581825 }, - { url = "https://files.pythonhosted.org/packages/80/1f/2b6fcd636e848053f5b57712a7d1880b1565eec35a637fdfd0a30d5e738d/numpy-2.2.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5a0ac90e46fdb5649ab6369d1ab6104bfe5854ab19b645bf5cda0127a13034ae", size = 17899600 }, - { url = "https://files.pythonhosted.org/packages/ec/87/36801f4dc2623d76a0a3835975524a84bd2b18fe0f8835d45c8eae2f9ff2/numpy-2.2.5-cp312-cp312-win32.whl", hash = "sha256:0cd48122a6b7eab8f06404805b1bd5856200e3ed6f8a1b9a194f9d9054631beb", size = 6312626 }, - { url = "https://files.pythonhosted.org/packages/8b/09/4ffb4d6cfe7ca6707336187951992bd8a8b9142cf345d87ab858d2d7636a/numpy-2.2.5-cp312-cp312-win_amd64.whl", hash = "sha256:ced69262a8278547e63409b2653b372bf4baff0870c57efa76c5703fd6543282", size = 12645715 }, - { url = "https://files.pythonhosted.org/packages/e2/a0/0aa7f0f4509a2e07bd7a509042967c2fab635690d4f48c6c7b3afd4f448c/numpy-2.2.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:059b51b658f4414fff78c6d7b1b4e18283ab5fa56d270ff212d5ba0c561846f4", size = 20935102 }, - { url = "https://files.pythonhosted.org/packages/7e/e4/a6a9f4537542912ec513185396fce52cdd45bdcf3e9d921ab02a93ca5aa9/numpy-2.2.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:47f9ed103af0bc63182609044b0490747e03bd20a67e391192dde119bf43d52f", size = 14191709 }, - { url = "https://files.pythonhosted.org/packages/be/65/72f3186b6050bbfe9c43cb81f9df59ae63603491d36179cf7a7c8d216758/numpy-2.2.5-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:261a1ef047751bb02f29dfe337230b5882b54521ca121fc7f62668133cb119c9", size = 5149173 }, - { url = "https://files.pythonhosted.org/packages/e5/e9/83e7a9432378dde5802651307ae5e9ea07bb72b416728202218cd4da2801/numpy-2.2.5-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4520caa3807c1ceb005d125a75e715567806fed67e315cea619d5ec6e75a4191", size = 6684502 }, - { url = "https://files.pythonhosted.org/packages/ea/27/b80da6c762394c8ee516b74c1f686fcd16c8f23b14de57ba0cad7349d1d2/numpy-2.2.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d14b17b9be5f9c9301f43d2e2a4886a33b53f4e6fdf9ca2f4cc60aeeee76372", size = 14084417 }, - { url = "https://files.pythonhosted.org/packages/aa/fc/ebfd32c3e124e6a1043e19c0ab0769818aa69050ce5589b63d05ff185526/numpy-2.2.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ba321813a00e508d5421104464510cc962a6f791aa2fca1c97b1e65027da80d", size = 16133807 }, - { url = "https://files.pythonhosted.org/packages/bf/9b/4cc171a0acbe4666f7775cfd21d4eb6bb1d36d3a0431f48a73e9212d2278/numpy-2.2.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4cbdef3ddf777423060c6f81b5694bad2dc9675f110c4b2a60dc0181543fac7", size = 15575611 }, - { url = "https://files.pythonhosted.org/packages/a3/45/40f4135341850df48f8edcf949cf47b523c404b712774f8855a64c96ef29/numpy-2.2.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:54088a5a147ab71a8e7fdfd8c3601972751ded0739c6b696ad9cb0343e21ab73", size = 17895747 }, - { url = "https://files.pythonhosted.org/packages/f8/4c/b32a17a46f0ffbde8cc82df6d3daeaf4f552e346df143e1b188a701a8f09/numpy-2.2.5-cp313-cp313-win32.whl", hash = "sha256:c8b82a55ef86a2d8e81b63da85e55f5537d2157165be1cb2ce7cfa57b6aef38b", size = 6309594 }, - { url = "https://files.pythonhosted.org/packages/13/ae/72e6276feb9ef06787365b05915bfdb057d01fceb4a43cb80978e518d79b/numpy-2.2.5-cp313-cp313-win_amd64.whl", hash = "sha256:d8882a829fd779f0f43998e931c466802a77ca1ee0fe25a3abe50278616b1471", size = 12638356 }, - { url = "https://files.pythonhosted.org/packages/79/56/be8b85a9f2adb688e7ded6324e20149a03541d2b3297c3ffc1a73f46dedb/numpy-2.2.5-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:e8b025c351b9f0e8b5436cf28a07fa4ac0204d67b38f01433ac7f9b870fa38c6", size = 20963778 }, - { url = "https://files.pythonhosted.org/packages/ff/77/19c5e62d55bff507a18c3cdff82e94fe174957bad25860a991cac719d3ab/numpy-2.2.5-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8dfa94b6a4374e7851bbb6f35e6ded2120b752b063e6acdd3157e4d2bb922eba", size = 14207279 }, - { url = "https://files.pythonhosted.org/packages/75/22/aa11f22dc11ff4ffe4e849d9b63bbe8d4ac6d5fae85ddaa67dfe43be3e76/numpy-2.2.5-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:97c8425d4e26437e65e1d189d22dff4a079b747ff9c2788057bfb8114ce1e133", size = 5199247 }, - { url = "https://files.pythonhosted.org/packages/4f/6c/12d5e760fc62c08eded0394f62039f5a9857f758312bf01632a81d841459/numpy-2.2.5-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:352d330048c055ea6db701130abc48a21bec690a8d38f8284e00fab256dc1376", size = 6711087 }, - { url = "https://files.pythonhosted.org/packages/ef/94/ece8280cf4218b2bee5cec9567629e61e51b4be501e5c6840ceb593db945/numpy-2.2.5-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b4c0773b6ada798f51f0f8e30c054d32304ccc6e9c5d93d46cb26f3d385ab19", size = 14059964 }, - { url = "https://files.pythonhosted.org/packages/39/41/c5377dac0514aaeec69115830a39d905b1882819c8e65d97fc60e177e19e/numpy-2.2.5-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55f09e00d4dccd76b179c0f18a44f041e5332fd0e022886ba1c0bbf3ea4a18d0", size = 16121214 }, - { url = "https://files.pythonhosted.org/packages/db/54/3b9f89a943257bc8e187145c6bc0eb8e3d615655f7b14e9b490b053e8149/numpy-2.2.5-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:02f226baeefa68f7d579e213d0f3493496397d8f1cff5e2b222af274c86a552a", size = 15575788 }, - { url = "https://files.pythonhosted.org/packages/b1/c4/2e407e85df35b29f79945751b8f8e671057a13a376497d7fb2151ba0d290/numpy-2.2.5-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c26843fd58f65da9491165072da2cccc372530681de481ef670dcc8e27cfb066", size = 17893672 }, - { url = "https://files.pythonhosted.org/packages/29/7e/d0b44e129d038dba453f00d0e29ebd6eaf2f06055d72b95b9947998aca14/numpy-2.2.5-cp313-cp313t-win32.whl", hash = "sha256:1a161c2c79ab30fe4501d5a2bbfe8b162490757cf90b7f05be8b80bc02f7bb8e", size = 6377102 }, - { url = "https://files.pythonhosted.org/packages/63/be/b85e4aa4bf42c6502851b971f1c326d583fcc68227385f92089cf50a7b45/numpy-2.2.5-cp313-cp313t-win_amd64.whl", hash = "sha256:d403c84991b5ad291d3809bace5e85f4bbf44a04bdc9a88ed2bb1807b3360bb8", size = 12750096 }, - { url = "https://files.pythonhosted.org/packages/35/e4/5ef5ef1d4308f96961198b2323bfc7c7afb0ccc0d623b01c79bc87ab496d/numpy-2.2.5-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b4ea7e1cff6784e58fe281ce7e7f05036b3e1c89c6f922a6bfbc0a7e8768adbe", size = 21083404 }, - { url = "https://files.pythonhosted.org/packages/a3/5f/bde9238e8e977652a16a4b114ed8aa8bb093d718c706eeecb5f7bfa59572/numpy-2.2.5-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:d7543263084a85fbc09c704b515395398d31d6395518446237eac219eab9e55e", size = 6828578 }, - { url = "https://files.pythonhosted.org/packages/ef/7f/813f51ed86e559ab2afb6a6f33aa6baf8a560097e25e4882a938986c76c2/numpy-2.2.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0255732338c4fdd00996c0421884ea8a3651eea555c3a56b84892b66f696eb70", size = 16234796 }, - { url = "https://files.pythonhosted.org/packages/68/67/1175790323026d3337cc285cc9c50eca637d70472b5e622529df74bb8f37/numpy-2.2.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d2e3bdadaba0e040d1e7ab39db73e0afe2c74ae277f5614dad53eadbecbbb169", size = 12859001 }, ] [[package]] name = "openlayers" -version = "0.1.0rc1" +version = "0.1.0rc2" source = { editable = "." } dependencies = [ { name = "anywidget" }, + { name = "eval-type-backport" }, { name = "jinja2" }, { name = "pydantic" }, + { name = "pyproj" }, ] [package.dev-dependencies] @@ -1528,17 +1361,19 @@ dev = [ { name = "mkdocs" }, { name = "mkdocs-material" }, { name = "mkdocstrings", extra = ["python"] }, - { name = "pyproj", version = "3.6.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "pyproj", version = "3.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "pyproj" }, { name = "pytest" }, + { name = "requests" }, { name = "ruff" }, ] [package.metadata] requires-dist = [ { name = "anywidget", specifier = ">=0.9.0" }, + { name = "eval-type-backport", specifier = ">=0.2.2" }, { name = "jinja2", specifier = ">=3.1.6" }, { name = "pydantic", specifier = ">=2.5.3" }, + { name = "pyproj", specifier = ">=3.6.1" }, ] [package.metadata.requires-dev] @@ -1552,6 +1387,7 @@ dev = [ { name = "mkdocstrings", extras = ["python"], specifier = ">=0.29.1" }, { name = "pyproj", specifier = ">=3.6.1" }, { name = "pytest", specifier = ">=8.3.5" }, + { name = "requests", specifier = ">=2.32.3" }, { name = "ruff", specifier = ">=0.11.5" }, ] @@ -1587,8 +1423,7 @@ name = "pandas" version = "2.2.3" source = { registry = "https://pypi.org/simple" } dependencies = [ - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy" }, { name = "python-dateutil" }, { name = "pytz" }, { name = "tzdata" }, @@ -1629,13 +1464,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/25/b0/98d6ae2e1abac4f35230aa756005e8654649d305df9a28b16b9ae4353bff/pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4", size = 11871013 }, { url = "https://files.pythonhosted.org/packages/cc/57/0f72a10f9db6a4628744c8e8f0df4e6e21de01212c7c981d31e50ffc8328/pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d", size = 15711620 }, { url = "https://files.pythonhosted.org/packages/ab/5f/b38085618b950b79d2d9164a711c52b10aefc0ae6833b96f626b7021b2ed/pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a", size = 13098436 }, - { url = "https://files.pythonhosted.org/packages/ca/8c/8848a4c9b8fdf5a534fe2077af948bf53cd713d77ffbcd7bd15710348fd7/pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39", size = 12595535 }, - { url = "https://files.pythonhosted.org/packages/9c/b9/5cead4f63b6d31bdefeb21a679bc5a7f4aaf262ca7e07e2bc1c341b68470/pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30", size = 11319822 }, - { url = "https://files.pythonhosted.org/packages/31/af/89e35619fb573366fa68dc26dad6ad2c08c17b8004aad6d98f1a31ce4bb3/pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c", size = 15625439 }, - { url = "https://files.pythonhosted.org/packages/3d/dd/bed19c2974296661493d7acc4407b1d2db4e2a482197df100f8f965b6225/pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c", size = 13068928 }, - { url = "https://files.pythonhosted.org/packages/31/a3/18508e10a31ea108d746c848b5a05c0711e0278fa0d6f1c52a8ec52b80a5/pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea", size = 16783266 }, - { url = "https://files.pythonhosted.org/packages/c4/a5/3429bd13d82bebc78f4d78c3945efedef63a7cd0c15c17b2eeb838d1121f/pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761", size = 14450871 }, - { url = "https://files.pythonhosted.org/packages/2f/49/5c30646e96c684570925b772eac4eb0a8cb0ca590fa978f56c5d3ae73ea1/pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e", size = 11618011 }, ] [[package]] @@ -1757,11 +1585,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/df/36/0017e838d3c63081a64e6d2252c8dda368a6d0898c7ecf689ba678fe4127/psygnal-0.12.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a67ec8e0c8a6553dd56ed653f87c46ef652b0c512bb8c8f8c5adcff3907751f", size = 785239 }, { url = "https://files.pythonhosted.org/packages/67/d0/7057151debcd5c7d8ce7789d276e18681d5c141c9222c9cf99ce3a418680/psygnal-0.12.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:742abb2d0e230521b208161eeab06abb682a19239e734e543a269214c84a54d2", size = 779690 }, { url = "https://files.pythonhosted.org/packages/5e/ae/a3d6815db583b6d05878b3647ea0e2aa21ce6941d03c9d2c6caad1afbcf6/psygnal-0.12.0-cp313-cp313-win_amd64.whl", hash = "sha256:d779f20c6977ec9d5b9fece23b4b28bbcf0a7773539a4a176b5527aea5da27c7", size = 382622 }, - { url = "https://files.pythonhosted.org/packages/d5/bc/5f352439baa6ea20771e3bc8114464eac0574b2299725bf32cf87373b6ff/psygnal-0.12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:aa1ce36ff7872d32f281ca6aab027c6d64abdef19ed269bc73a82e80f2a4fbb0", size = 467130 }, - { url = "https://files.pythonhosted.org/packages/31/6b/75c62b404ab5e63e5c03dd1a4a082c29e5d0de246bc3f3b023259e437cf2/psygnal-0.12.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:33946be4b9b4efe9e5ced2800b040314c113e898e1310a02751c840af02674d5", size = 437703 }, - { url = "https://files.pythonhosted.org/packages/e3/ff/209975c42d05445e884b59ebea44a86b42a7d8ad8b831c930d06bc3a5fc6/psygnal-0.12.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e69d74edb336e5e959ef5680c5393f8f6c7b7561fdcb9014dc2535c6ef3ea194", size = 770509 }, - { url = "https://files.pythonhosted.org/packages/c0/27/a60b0328267709a30274df55c358cedad596b09cc97f687cd01303d17fa3/psygnal-0.12.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7986828b57861b3341803e519e09189cd93800adede9cfc450e72e1c4ea93f35", size = 759198 }, - { url = "https://files.pythonhosted.org/packages/ef/49/cd7ee6a1d4e8fd37e6040f937232c4a32ebd164c2cdea489d7f2493d7ae2/psygnal-0.12.0-cp39-cp39-win_amd64.whl", hash = "sha256:ef3cae9af7a22f3c855cbc5b2cb219c5410b1076eaa6541f48cdb2c901a06ad7", size = 372115 }, { url = "https://files.pythonhosted.org/packages/eb/fa/84fc30ad391081cb119099aae5491ba4a9ebd34ce5139bf05b31813abb84/psygnal-0.12.0-py3-none-any.whl", hash = "sha256:15f39abd8bee2926e79da76bec31a258d03dbe3e61d22d6251f65caefbae5d54", size = 78492 }, ] @@ -1837,15 +1660,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1f/90/de5bb2e4f730d2b2f6cdd5ae1882b67953fc4074478019b7ea0ae36bafb3/pycrdt-0.11.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2f9ce53ed17c0a1a82fd8a52e69975c4eb0ef1065a37fee64f0bf7f5923c3cfc", size = 1014142 }, { url = "https://files.pythonhosted.org/packages/c2/12/bc7db31409f4a508d942ad84adf77d4f56b42d28c1329c841c4b3242952e/pycrdt-0.11.1-cp313-cp313-win32.whl", hash = "sha256:a551bdec7626330569dd9f634a5484e245ee1c2096ab46f571dc203a239ebb80", size = 664263 }, { url = "https://files.pythonhosted.org/packages/07/02/45a9f20cc0c50b39993afdbfb22d6998c221f4e5b19981dfc816024ec0a4/pycrdt-0.11.1-cp313-cp313-win_amd64.whl", hash = "sha256:2473f130364fde8499f39b6576f43302aa8d401a66df4ede7d466e5c65409df4", size = 702075 }, - { url = "https://files.pythonhosted.org/packages/35/d8/d61738f69dd026c4c3c474e1879254adc3a3c0034cf14ccb945db8f3cdd5/pycrdt-0.11.1-cp39-cp39-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:fb4bbd0ddc756b4b260f7d892542f2c76011e8c41efb6fa335770ec8fb68702e", size = 1657155 }, - { url = "https://files.pythonhosted.org/packages/df/c4/d27c2ca6fe11573e02c60d24e7af0c3a24b580557859da7a48c991fea744/pycrdt-0.11.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c03f85d5a2f03f827906b5da0465a02eeda4c6eb9bdfaadde99a6b5da0c7976b", size = 901756 }, - { url = "https://files.pythonhosted.org/packages/4f/5a/7a0cf888b3749e394bc21495046e051603db777839e4a207bf64ef241b91/pycrdt-0.11.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b9aeeddafa2cf1b9a507dd71adfb4453b087ee63535cc59e3666c896a96310ec", size = 930684 }, - { url = "https://files.pythonhosted.org/packages/a5/a9/cf2b84e36a3c03bc24637d3a563c71c3a644405e117575794d025ee99f4f/pycrdt-0.11.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bdb312ea4af2271d6c68be5cc29e126b797ec71c8c5582085343bbcee7b5a49b", size = 1001559 }, - { url = "https://files.pythonhosted.org/packages/56/d4/9a3b6536fec975262b00b7566e46e0792d38dcd279b5faeb98235a4c83e5/pycrdt-0.11.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:95a4610305a82a36c38e9bed3bf5e4c933de6d96f1c14c8508d59d8704eee177", size = 1115472 }, - { url = "https://files.pythonhosted.org/packages/fd/e2/d4025ca3e04396d261c6a62d9d0e975b38783510bb17f3b37660a7326fc0/pycrdt-0.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e12fa13dc4963a065d8f8e7240005257343ec96bb524600a3c5c2bfcf890d4a", size = 927481 }, - { url = "https://files.pythonhosted.org/packages/53/9d/448da294fca60cb7c4ab8d7ac4905986fbe472d80d274fe03672e6cb2301/pycrdt-0.11.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7cf34912103c1c6b0a6cfc18a0927c077a4ffbd81cd7ff521214caaf4f8aa809", size = 1013915 }, - { url = "https://files.pythonhosted.org/packages/79/98/0d87631836069aa17e9f4d26e185d958862104ef2ed9349389dc42a002cc/pycrdt-0.11.1-cp39-cp39-win32.whl", hash = "sha256:72a3b894499440a821b26cca5c8e2d620c638160b737de5449fece58c80e37cf", size = 665534 }, - { url = "https://files.pythonhosted.org/packages/68/ae/0e79d2a874c4c29ce24b4f6c7e20e288a25c7e7d1485d5e6801991b9c0fd/pycrdt-0.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:62043f3c95d9c205c92f0a4c9999c22b25c8be3c9f86b15db977048270838409", size = 701410 }, { url = "https://files.pythonhosted.org/packages/30/99/748c5b6083bb4328a63e2cf3a07cdae41cb9e8ef32860cbe6991288699f5/pycrdt-0.11.1-pp310-pypy310_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:881a1c332c9641d7c59524ab7921afe5ceeaa7950ac0c7178728925e8aaad0f6", size = 1660234 }, { url = "https://files.pythonhosted.org/packages/ed/cc/558c64b7851d8da5170dec7c21e33ea22c7d4de57a53c9a458a8631ea686/pycrdt-0.11.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b85bbee2502e0a6e1e4e3b4e35dbf2c4936f7a7130da4461a6852d889e9b98f", size = 901562 }, { url = "https://files.pythonhosted.org/packages/d7/17/9291e4a6c63638c635891dcedc322f47dc83cd5e7718c462f955e9448e23/pycrdt-0.11.1-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b8dbbe0465dcb19b00176e79a4f804859021ee795c2cc708ef2fe14f5d903de6", size = 932411 }, @@ -1853,13 +1667,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/d3/f2/15cc956a367f260a76bd1da5794763672f3eeab71767b66a1b89771bb3c3/pycrdt-0.11.1-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b8559874111a5720bbf8170042b2d0c390f1f47d642753bf74960e36d56868c", size = 1113288 }, { url = "https://files.pythonhosted.org/packages/e0/4a/59c5100a865425aac6bc4553050ae8231b28f9a71762376a5bcdfa3a6272/pycrdt-0.11.1-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c4be5b949cd5dc1c8046bd057095cbb36ef21da62583931a4539e43cc6d6a3fe", size = 926140 }, { url = "https://files.pythonhosted.org/packages/be/c7/fc32d80349ff4b3999f2a05cf67ea0a1198e3695e18d2693c4eeca11c2ef/pycrdt-0.11.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f8fa6123ff293f583415f1455a8789af827350cf94000d74a915588c49edd053", size = 1012516 }, - { url = "https://files.pythonhosted.org/packages/40/b1/e9d868549960d602864f78bf4e0055e8266d3f20c2adbbdb2d3435c8bb7d/pycrdt-0.11.1-pp39-pypy39_pp73-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:8c585d8c5cd5b6f713b38b0700636ff2b64b5ccbf2f6855054e94fcfce0e53db", size = 1659323 }, - { url = "https://files.pythonhosted.org/packages/f7/56/9145a8fa4e140c1effc106b3711d5a970a69d376826048c7ca5288f24679/pycrdt-0.11.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0c0fbc188ec0940bed2f28dfe2ec6b47941b119b1a4b18bcced5917344ca0aff", size = 902138 }, - { url = "https://files.pythonhosted.org/packages/14/23/bcf603c4c564f0d4474d572b0614087fad2521ff381d5ad0ae2da3604212/pycrdt-0.11.1-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:85668bc8fe61ba9754c3f479df3e08624960b4258bf9a1612d0c64eb6c0f5a95", size = 932420 }, - { url = "https://files.pythonhosted.org/packages/5b/4d/cf9d08f580f78827fb225e0c3de15f284825bbdbec10c2d3068840e663e4/pycrdt-0.11.1-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:692dd9ae5246b07792dc5139c977ade5567092b84f64b46572ab6da50200b3f8", size = 1001871 }, - { url = "https://files.pythonhosted.org/packages/7e/35/1c04a608f4047bd3eb0dcef6ed15d7ffd0393f2b3df3a58ae97300cae2e3/pycrdt-0.11.1-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ded02c6339e02781d379e71553dbad0d7ba46d2ed19069feab0a567d46736f0f", size = 1114241 }, - { url = "https://files.pythonhosted.org/packages/cb/6c/6bb93423933a01ff7629b77b2b1da0469c838307e65f74cf8ac1645a56f2/pycrdt-0.11.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b5fcf8af324aba58af5de0f4062767f55f8671764f8af9097ef762da80ab35bb", size = 927233 }, - { url = "https://files.pythonhosted.org/packages/6b/c0/9dad7b6cedd8dcf745d598baff02769f1a03ef3bac7e28a6d1a5ca600411/pycrdt-0.11.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4fc37861f3679c5898ceb45038e767daf980dd38f6c08717195cdc87dff736a6", size = 1013568 }, ] [[package]] @@ -1944,19 +1751,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/ef/fd/24ea4302d7a527d672c5be06e17df16aabfb4e9fdc6e0b345c21580f3d2a/pydantic_core-2.33.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:401d7b76e1000d0dd5538e6381d28febdcacb097c8d340dde7d7fc6e13e9f95d", size = 1812963 }, { url = "https://files.pythonhosted.org/packages/5f/95/4fbc2ecdeb5c1c53f1175a32d870250194eb2fdf6291b795ab08c8646d5d/pydantic_core-2.33.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7aeb055a42d734c0255c9e489ac67e75397d59c6fbe60d155851e9782f276a9c", size = 1986896 }, { url = "https://files.pythonhosted.org/packages/71/ae/fe31e7f4a62431222d8f65a3bd02e3fa7e6026d154a00818e6d30520ea77/pydantic_core-2.33.1-cp313-cp313t-win_amd64.whl", hash = "sha256:338ea9b73e6e109f15ab439e62cb3b78aa752c7fd9536794112e14bee02c8d18", size = 1931810 }, - { url = "https://files.pythonhosted.org/packages/49/78/b86bad645cc3e8dfa6858c70ec38939bf350e54004837c48de09474b2b9e/pydantic_core-2.33.1-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:5ab77f45d33d264de66e1884fca158bc920cb5e27fd0764a72f72f5756ae8bdb", size = 2044282 }, - { url = "https://files.pythonhosted.org/packages/3b/00/a02531331773b2bf08743d84c6b776bd6a449d23b3ae6b0e3229d568bac4/pydantic_core-2.33.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e7aaba1b4b03aaea7bb59e1b5856d734be011d3e6d98f5bcaa98cb30f375f2ad", size = 1877598 }, - { url = "https://files.pythonhosted.org/packages/a1/fa/32cc152b84a1f420f8a7d80161373e8d87d4ffa077e67d6c8aab3ce1a6ab/pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7fb66263e9ba8fea2aa85e1e5578980d127fb37d7f2e292773e7bc3a38fb0c7b", size = 1911021 }, - { url = "https://files.pythonhosted.org/packages/5e/87/ea553e0d98bce6c4876f8c50f65cb45597eff6e0aaa8b15813e9972bb19d/pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3f2648b9262607a7fb41d782cc263b48032ff7a03a835581abbf7a3bec62bcf5", size = 1997276 }, - { url = "https://files.pythonhosted.org/packages/f7/9b/60cb9f4b52158b3adac0066492bbadd0b8473f4f8da5bcc73972655b76ef/pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:723c5630c4259400818b4ad096735a829074601805d07f8cafc366d95786d331", size = 2141348 }, - { url = "https://files.pythonhosted.org/packages/9b/38/374d254e270d4de0add68a8239f4ed0f444fdd7b766ea69244fb9491dccb/pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d100e3ae783d2167782391e0c1c7a20a31f55f8015f3293647544df3f9c67824", size = 2753708 }, - { url = "https://files.pythonhosted.org/packages/05/a8/fd79111eb5ab9bc4ef98d8fb0b3a2ffdc80107b2c59859a741ab379c96f8/pydantic_core-2.33.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:177d50460bc976a0369920b6c744d927b0ecb8606fb56858ff542560251b19e5", size = 2008699 }, - { url = "https://files.pythonhosted.org/packages/35/31/2e06619868eb4c18642c5601db420599c1cf9cf50fe868c9ac09cd298e24/pydantic_core-2.33.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a3edde68d1a1f9af1273b2fe798997b33f90308fb6d44d8550c89fc6a3647cf6", size = 2123426 }, - { url = "https://files.pythonhosted.org/packages/4a/d0/3531e8783a311802e3db7ee5a1a5ed79e5706e930b1b4e3109ce15eeb681/pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a62c3c3ef6a7e2c45f7853b10b5bc4ddefd6ee3cd31024754a1a5842da7d598d", size = 2087330 }, - { url = "https://files.pythonhosted.org/packages/ac/32/5ff252ed73bacd7677a706ab17723e261a76793f98b305aa20cfc10bbd56/pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:c91dbb0ab683fa0cd64a6e81907c8ff41d6497c346890e26b23de7ee55353f96", size = 2258171 }, - { url = "https://files.pythonhosted.org/packages/c9/f9/e96e00f92b8f5b3e2cddc80c5ee6cf038f8a0f238c44b67b01759943a7b4/pydantic_core-2.33.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9f466e8bf0a62dc43e068c12166281c2eca72121dd2adc1040f3aa1e21ef8599", size = 2258745 }, - { url = "https://files.pythonhosted.org/packages/54/1e/51c86688e809d94797fdf0efc41514f001caec982a05f62d90c180a9639d/pydantic_core-2.33.1-cp39-cp39-win32.whl", hash = "sha256:ab0277cedb698749caada82e5d099dc9fed3f906a30d4c382d1a21725777a1e5", size = 1923626 }, - { url = "https://files.pythonhosted.org/packages/57/18/c2da959fd8d019b70cadafdda2bf845378ada47973e0bad6cc84f56dbe6e/pydantic_core-2.33.1-cp39-cp39-win_amd64.whl", hash = "sha256:5773da0ee2d17136b1f1c6fbde543398d452a6ad2a7b54ea1033e2daa739b8d2", size = 1953703 }, { url = "https://files.pythonhosted.org/packages/9c/c7/8b311d5adb0fe00a93ee9b4e92a02b0ec08510e9838885ef781ccbb20604/pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c834f54f8f4640fd7e4b193f80eb25a0602bba9e19b3cd2fc7ffe8199f5ae02", size = 2041659 }, { url = "https://files.pythonhosted.org/packages/8a/d6/4f58d32066a9e26530daaf9adc6664b01875ae0691570094968aaa7b8fcc/pydantic_core-2.33.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:049e0de24cf23766f12cc5cc71d8abc07d4a9deb9061b334b62093dedc7cb068", size = 1873294 }, { url = "https://files.pythonhosted.org/packages/f7/3f/53cc9c45d9229da427909c751f8ed2bf422414f7664ea4dde2d004f596ba/pydantic_core-2.33.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1a28239037b3d6f16916a4c831a5a0eadf856bdd6d2e92c10a0da3a59eadcf3e", size = 1903771 }, @@ -1975,15 +1769,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/0b/cd/c59707e35a47ba4cbbf153c3f7c56420c58653b5801b055dc52cccc8e2dc/pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:52928d8c1b6bda03cc6d811e8923dffc87a2d3c8b3bfd2ce16471c7147a24850", size = 2250175 }, { url = "https://files.pythonhosted.org/packages/84/32/e4325a6676b0bed32d5b084566ec86ed7fd1e9bcbfc49c578b1755bde920/pydantic_core-2.33.1-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:1b30d92c9412beb5ac6b10a3eb7ef92ccb14e3f2a8d7732e2d739f58b3aa7544", size = 2254674 }, { url = "https://files.pythonhosted.org/packages/12/6f/5596dc418f2e292ffc661d21931ab34591952e2843e7168ea5a52591f6ff/pydantic_core-2.33.1-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:f995719707e0e29f0f41a8aa3bcea6e761a36c9136104d3189eafb83f5cec5e5", size = 2080951 }, - { url = "https://files.pythonhosted.org/packages/2d/a8/c2c8f29bd18f7ef52de32a6deb9e3ee87ba18b7b2122636aa9f4438cf627/pydantic_core-2.33.1-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:7edbc454a29fc6aeae1e1eecba4f07b63b8d76e76a748532233c4c167b4cb9ea", size = 2041791 }, - { url = "https://files.pythonhosted.org/packages/08/ad/328081b1c82543ae49d0650048305058583c51f1a9a56a0d6e87bb3a2443/pydantic_core-2.33.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:ad05b683963f69a1d5d2c2bdab1274a31221ca737dbbceaa32bcb67359453cdd", size = 1873579 }, - { url = "https://files.pythonhosted.org/packages/6e/8a/bc65dbf7e501e88367cdab06a2c1340457c785f0c72288cae737fd80c0fa/pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:df6a94bf9452c6da9b5d76ed229a5683d0306ccb91cca8e1eea883189780d568", size = 1904189 }, - { url = "https://files.pythonhosted.org/packages/9a/db/30ca6aefda211fb01ef185ca73cb7a0c6e7fe952c524025c8782b5acd771/pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7965c13b3967909a09ecc91f21d09cfc4576bf78140b988904e94f130f188396", size = 2084446 }, - { url = "https://files.pythonhosted.org/packages/f2/89/a12b55286e30c9f476eab7c53c9249ec76faf70430596496ab0309f28629/pydantic_core-2.33.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3f1fdb790440a34f6ecf7679e1863b825cb5ffde858a9197f851168ed08371e5", size = 2118215 }, - { url = "https://files.pythonhosted.org/packages/8e/55/12721c4a8d7951584ad3d9848b44442559cf1876e0bb424148d1060636b3/pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:5277aec8d879f8d05168fdd17ae811dd313b8ff894aeeaf7cd34ad28b4d77e33", size = 2079963 }, - { url = "https://files.pythonhosted.org/packages/bd/0c/3391bd5d6ff62ea998db94732528d9bc32c560b0ed861c39119759461946/pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:8ab581d3530611897d863d1a649fb0644b860286b4718db919bfd51ece41f10b", size = 2249388 }, - { url = "https://files.pythonhosted.org/packages/d3/5f/3e4feb042998d7886a9b523b372d83955cbc192a07013dcd24276db078ee/pydantic_core-2.33.1-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:0483847fa9ad5e3412265c1bd72aad35235512d9ce9d27d81a56d935ef489672", size = 2255226 }, - { url = "https://files.pythonhosted.org/packages/25/f2/1647933efaaad61846109a27619f3704929e758a09e6431b8f932a053d40/pydantic_core-2.33.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:de9e06abe3cc5ec6a2d5f75bc99b0bdca4f5c719a5b34026f8c57efbdecd2ee3", size = 2081073 }, ] [[package]] @@ -2014,8 +1799,7 @@ version = "0.10.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "certifi" }, - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, - { name = "numpy", version = "2.2.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy" }, { name = "packaging" }, ] sdist = { url = "https://files.pythonhosted.org/packages/a5/8f/5a784595524a79c269f2b1c880f4fdb152867df700c97005dda51997da02/pyogrio-0.10.0.tar.gz", hash = "sha256:ec051cb568324de878828fae96379b71858933413e185148acb6c162851ab23c", size = 281950 } @@ -2044,23 +1828,14 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/25/ac/ca483bec408b59c54f7129b0244cc9de21d8461aefe89ece7bd74ad33807/pyogrio-0.10.0-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:cea0187fcc2d574e52af8cfab041fa0a7ad71d5ef6b94b49a3f3d2a04534a27e", size = 23048830 }, { url = "https://files.pythonhosted.org/packages/d7/3e/c35f2d8dad95b24e568c468f09ff60fb61945065465e0ec7868400596566/pyogrio-0.10.0-cp313-cp313-manylinux_2_28_x86_64.whl", hash = "sha256:7c02b207ea8cf09c501ea3e95d29152781a00d3c32267286bc36fa457c332205", size = 23996873 }, { url = "https://files.pythonhosted.org/packages/27/5d/0deb16d228362a097ee3258d0a887c9c0add4b9678bb4847b08a241e124d/pyogrio-0.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:02e54bcfb305af75f829044b0045f74de31b77c2d6546f7aaf96822066147848", size = 16158260 }, - { url = "https://files.pythonhosted.org/packages/ec/fe/ea995a55289a4c378a29130435a400d577bd151a518a5238fd5bc21fe09f/pyogrio-0.10.0-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:ea96a1338ed7991735b955d3f84ad5f71b3bc070b6a7a42449941aedecc71768", size = 15083868 }, - { url = "https://files.pythonhosted.org/packages/07/1d/1bc2162a7d1cef13edcf645e562d047742dad68c4e933b757d4cf2837b00/pyogrio-0.10.0-cp39-cp39-macosx_12_0_x86_64.whl", hash = "sha256:32d349600561459791a43f528a92f3e9343a59bdc9bc30b1be9376f0b80cbf16", size = 16457256 }, - { url = "https://files.pythonhosted.org/packages/20/7a/56ef1f49388244b5d9e4f22db58745fd329f441f87af71fce0bbd6ddd894/pyogrio-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82f7bd6a87bd2e9484bcb4c87ab94eee4c2f573ad148707431c8b341d7f13d99", size = 23716062 }, - { url = "https://files.pythonhosted.org/packages/1d/9f/3bb9a15fbe5f66907f957310b0f6d7191dfbfd9d9b31a361053d8d763bd5/pyogrio-0.10.0-cp39-cp39-manylinux_2_28_aarch64.whl", hash = "sha256:6166ae81462c257ed8e151c404e316642703813cf771c95ef8e11dcdf2581e47", size = 22931000 }, - { url = "https://files.pythonhosted.org/packages/76/9b/8974f77ded5661522023cfb7898d7851f9b1056f4bbaacc4de2812dbf7fd/pyogrio-0.10.0-cp39-cp39-manylinux_2_28_x86_64.whl", hash = "sha256:22d57495e835fe51b88da43dfbda606c07e1f6c3b849af0c3cfc18e17467641c", size = 23854562 }, - { url = "https://files.pythonhosted.org/packages/f8/14/aff4499cc544a02343043a16322b51dcc0ca947d21a96b7aacb1dd1b8e3a/pyogrio-0.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:eea82171bfc07fc778b8dc87b0cdc9ac06c389bc56b0c0b6f34bf9e45fb78c0e", size = 16172207 }, ] [[package]] name = "pyproj" version = "3.6.1" source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version < '3.10'", -] dependencies = [ - { name = "certifi", marker = "python_full_version < '3.10'" }, + { name = "certifi" }, ] sdist = { url = "https://files.pythonhosted.org/packages/7d/84/2b39bbf888c753ea48b40d47511548c77aa03445465c35cc4c4e9649b643/pyproj-3.6.1.tar.gz", hash = "sha256:44aa7c704c2b7d8fb3d483bbf75af6cb2350d30a63b144279a09b75fead501bf", size = 225131 } wheels = [ @@ -2082,62 +1857,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/19/9b/c57569132174786aa3f72275ac306956859a639dad0ce8d95c8411ce8209/pyproj-3.6.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb059ba3bced6f6725961ba758649261d85ed6ce670d3e3b0a26e81cf1aa8d", size = 8660747 }, { url = "https://files.pythonhosted.org/packages/0e/ab/1c2159ec757677c5a6b8803f6be45c2b550dc42c84ec4a228dc219849bbb/pyproj-3.6.1-cp312-cp312-win32.whl", hash = "sha256:2d6ff73cc6dbbce3766b6c0bce70ce070193105d8de17aa2470009463682a8eb", size = 5626805 }, { url = "https://files.pythonhosted.org/packages/c7/f3/2f32fe143cd7ba1d4d68f1b6dce9ca402d909cbd5a5830e3a8fa3d1acbbf/pyproj-3.6.1-cp312-cp312-win_amd64.whl", hash = "sha256:7a27151ddad8e1439ba70c9b4b2b617b290c39395fa9ddb7411ebb0eb86d6fb0", size = 6079779 }, - { url = "https://files.pythonhosted.org/packages/d7/50/d369bbe62d7a0d1e2cb40bc211da86a3f6e0f3c99f872957a72c3d5492d6/pyproj-3.6.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4ba1f9b03d04d8cab24d6375609070580a26ce76eaed54631f03bab00a9c737b", size = 6144755 }, - { url = "https://files.pythonhosted.org/packages/2c/c2/8d4f61065dfed965e53badd41201ad86a05af0c1bbc75dffb12ef0f5a7dd/pyproj-3.6.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18faa54a3ca475bfe6255156f2f2874e9a1c8917b0004eee9f664b86ccc513d3", size = 4879187 }, - { url = "https://files.pythonhosted.org/packages/31/38/2cf8777cb2d5622a78195e690281b7029098795fde4751aec8128238b8bb/pyproj-3.6.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd43bd9a9b9239805f406fd82ba6b106bf4838d9ef37c167d3ed70383943ade1", size = 6192339 }, - { url = "https://files.pythonhosted.org/packages/97/0a/b1525be9680369cc06dd288e12c59d24d5798b4afcdcf1b0915836e1caa6/pyproj-3.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:50100b2726a3ca946906cbaa789dd0749f213abf0cbb877e6de72ca7aa50e1ae", size = 8332638 }, - { url = "https://files.pythonhosted.org/packages/8d/e8/e826e0a962f36bd925a933829cf6ef218efe2055db5ea292be40974a929d/pyproj-3.6.1-cp39-cp39-win32.whl", hash = "sha256:9274880263256f6292ff644ca92c46d96aa7e57a75c6df3f11d636ce845a1877", size = 5638159 }, - { url = "https://files.pythonhosted.org/packages/43/d0/cbe29a4dcf38ee7e72bf695d0d3f2bee21b4f22ee6cf579ad974de9edfc8/pyproj-3.6.1-cp39-cp39-win_amd64.whl", hash = "sha256:36b64c2cb6ea1cc091f329c5bd34f9c01bb5da8c8e4492c709bda6a09f96808f", size = 6090565 }, - { url = "https://files.pythonhosted.org/packages/43/28/e8d2ca71dd56c27cbe668e4226963d61956cded222a2e839e6fec1ab6d82/pyproj-3.6.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:fd93c1a0c6c4aedc77c0fe275a9f2aba4d59b8acf88cebfc19fe3c430cfabf4f", size = 6034252 }, - { url = "https://files.pythonhosted.org/packages/cb/39/1ce27cb86f51a1f5aed3a1617802a6131b59ea78492141d1fbe36722595e/pyproj-3.6.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6420ea8e7d2a88cb148b124429fba8cd2e0fae700a2d96eab7083c0928a85110", size = 6386263 }, -] - -[[package]] -name = "pyproj" -version = "3.7.1" -source = { registry = "https://pypi.org/simple" } -resolution-markers = [ - "python_full_version >= '3.12'", - "python_full_version == '3.11.*'", - "python_full_version == '3.10.*'", -] -dependencies = [ - { name = "certifi", marker = "python_full_version >= '3.10'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/67/10/a8480ea27ea4bbe896c168808854d00f2a9b49f95c0319ddcbba693c8a90/pyproj-3.7.1.tar.gz", hash = "sha256:60d72facd7b6b79853f19744779abcd3f804c4e0d4fa8815469db20c9f640a47", size = 226339 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/25/a3/c4cd4bba5b336075f145fe784fcaf4ef56ffbc979833303303e7a659dda2/pyproj-3.7.1-cp310-cp310-macosx_13_0_x86_64.whl", hash = "sha256:bf09dbeb333c34e9c546364e7df1ff40474f9fddf9e70657ecb0e4f670ff0b0e", size = 6262524 }, - { url = "https://files.pythonhosted.org/packages/40/45/4fdf18f4cc1995f1992771d2a51cf186a9d7a8ec973c9693f8453850c707/pyproj-3.7.1-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:6575b2e53cc9e3e461ad6f0692a5564b96e7782c28631c7771c668770915e169", size = 4665102 }, - { url = "https://files.pythonhosted.org/packages/0c/d2/360eb127380106cee83569954ae696b88a891c804d7a93abe3fbc15f5976/pyproj-3.7.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8cb516ee35ed57789b46b96080edf4e503fdb62dbb2e3c6581e0d6c83fca014b", size = 9432667 }, - { url = "https://files.pythonhosted.org/packages/76/a5/c6e11b9a99ce146741fb4d184d5c468446c6d6015b183cae82ac822a6cfa/pyproj-3.7.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1e47c4e93b88d99dd118875ee3ca0171932444cdc0b52d493371b5d98d0f30ee", size = 9259185 }, - { url = "https://files.pythonhosted.org/packages/41/56/a3c15c42145797a99363fa0fdb4e9805dccb8b4a76a6d7b2cdf36ebcc2a1/pyproj-3.7.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:3e8d276caeae34fcbe4813855d0d97b9b825bab8d7a8b86d859c24a6213a5a0d", size = 10469103 }, - { url = "https://files.pythonhosted.org/packages/ef/73/c9194c2802fefe2a4fd4230bdd5ab083e7604e93c64d0356fa49c363bad6/pyproj-3.7.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f173f851ee75e54acdaa053382b6825b400cb2085663a9bb073728a59c60aebb", size = 10401391 }, - { url = "https://files.pythonhosted.org/packages/c5/1d/ce8bb5b9251b04d7c22d63619bb3db3d2397f79000a9ae05b3fd86a5837e/pyproj-3.7.1-cp310-cp310-win32.whl", hash = "sha256:f550281ed6e5ea88fcf04a7c6154e246d5714be495c50c9e8e6b12d3fb63e158", size = 5869997 }, - { url = "https://files.pythonhosted.org/packages/09/6a/ca145467fd2e5b21e3d5b8c2b9645dcfb3b68f08b62417699a1f5689008e/pyproj-3.7.1-cp310-cp310-win_amd64.whl", hash = "sha256:3537668992a709a2e7f068069192138618c00d0ba113572fdd5ee5ffde8222f3", size = 6278581 }, - { url = "https://files.pythonhosted.org/packages/ab/0d/63670fc527e664068b70b7cab599aa38b7420dd009bdc29ea257e7f3dfb3/pyproj-3.7.1-cp311-cp311-macosx_13_0_x86_64.whl", hash = "sha256:a94e26c1a4950cea40116775588a2ca7cf56f1f434ff54ee35a84718f3841a3d", size = 6264315 }, - { url = "https://files.pythonhosted.org/packages/25/9d/cbaf82cfb290d1f1fa42feb9ba9464013bb3891e40c4199f8072112e4589/pyproj-3.7.1-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:263b54ba5004b6b957d55757d846fc5081bc02980caa0279c4fc95fa0fff6067", size = 4666267 }, - { url = "https://files.pythonhosted.org/packages/79/53/24f9f9b8918c0550f3ff49ad5de4cf3f0688c9f91ff191476db8979146fe/pyproj-3.7.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6d6a2ccd5607cd15ef990c51e6f2dd27ec0a741e72069c387088bba3aab60fa", size = 9680510 }, - { url = "https://files.pythonhosted.org/packages/3c/ac/12fab74a908d40b63174dc704587febd0729414804bbfd873cabe504ff2d/pyproj-3.7.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8c5dcf24ede53d8abab7d8a77f69ff1936c6a8843ef4fcc574646e4be66e5739", size = 9493619 }, - { url = "https://files.pythonhosted.org/packages/c4/45/26311d6437135da2153a178125db5dfb6abce831ce04d10ec207eabac70a/pyproj-3.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3c2e7449840a44ce860d8bea2c6c1c4bc63fa07cba801dcce581d14dcb031a02", size = 10709755 }, - { url = "https://files.pythonhosted.org/packages/99/52/4ecd0986f27d0e6c8ee3a7bc5c63da15acd30ac23034f871325b297e61fd/pyproj-3.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:0829865c1d3a3543f918b3919dc601eea572d6091c0dd175e1a054db9c109274", size = 10642970 }, - { url = "https://files.pythonhosted.org/packages/3f/a5/d3bfc018fc92195a000d1d28acc1f3f1df15ff9f09ece68f45a2636c0134/pyproj-3.7.1-cp311-cp311-win32.whl", hash = "sha256:6181960b4b812e82e588407fe5c9c68ada267c3b084db078f248db5d7f45d18a", size = 5868295 }, - { url = "https://files.pythonhosted.org/packages/92/39/ef6f06a5b223dbea308cfcbb7a0f72e7b506aef1850e061b2c73b0818715/pyproj-3.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:5ad0ff443a785d84e2b380869fdd82e6bfc11eba6057d25b4409a9bbfa867970", size = 6279871 }, - { url = "https://files.pythonhosted.org/packages/e6/c9/876d4345b8d17f37ac59ebd39f8fa52fc6a6a9891a420f72d050edb6b899/pyproj-3.7.1-cp312-cp312-macosx_13_0_x86_64.whl", hash = "sha256:2781029d90df7f8d431e29562a3f2d8eafdf233c4010d6fc0381858dc7373217", size = 6264087 }, - { url = "https://files.pythonhosted.org/packages/ff/e6/5f8691f8c90e7f402cc80a6276eb19d2ec1faa150d5ae2dd9c7b0a254da8/pyproj-3.7.1-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:d61bf8ab04c73c1da08eedaf21a103b72fa5b0a9b854762905f65ff8b375d394", size = 4669628 }, - { url = "https://files.pythonhosted.org/packages/42/ec/16475bbb79c1c68845c0a0d9c60c4fb31e61b8a2a20bc18b1a81e81c7f68/pyproj-3.7.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:04abc517a8555d1b05fcee768db3280143fe42ec39fdd926a2feef31631a1f2f", size = 9721415 }, - { url = "https://files.pythonhosted.org/packages/b3/a3/448f05b15e318bd6bea9a32cfaf11e886c4ae61fa3eee6e09ed5c3b74bb2/pyproj-3.7.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:084c0a475688f934d386c2ab3b6ce03398a473cd48adfda70d9ab8f87f2394a0", size = 9556447 }, - { url = "https://files.pythonhosted.org/packages/6a/ae/bd15fe8d8bd914ead6d60bca7f895a4e6f8ef7e3928295134ff9a7dad14c/pyproj-3.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a20727a23b1e49c7dc7fe3c3df8e56a8a7acdade80ac2f5cca29d7ca5564c145", size = 10758317 }, - { url = "https://files.pythonhosted.org/packages/9d/d9/5ccefb8bca925f44256b188a91c31238cae29ab6ee7f53661ecc04616146/pyproj-3.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bf84d766646f1ebd706d883755df4370aaf02b48187cedaa7e4239f16bc8213d", size = 10771259 }, - { url = "https://files.pythonhosted.org/packages/2a/7d/31dedff9c35fa703162f922eeb0baa6c44a3288469a5fd88d209e2892f9e/pyproj-3.7.1-cp312-cp312-win32.whl", hash = "sha256:5f0da2711364d7cb9f115b52289d4a9b61e8bca0da57f44a3a9d6fc9bdeb7274", size = 5859914 }, - { url = "https://files.pythonhosted.org/packages/3e/47/c6ab03d6564a7c937590cff81a2742b5990f096cce7c1a622d325be340ee/pyproj-3.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:aee664a9d806612af30a19dba49e55a7a78ebfec3e9d198f6a6176e1d140ec98", size = 6273196 }, - { url = "https://files.pythonhosted.org/packages/ef/01/984828464c9960036c602753fc0f21f24f0aa9043c18fa3f2f2b66a86340/pyproj-3.7.1-cp313-cp313-macosx_13_0_x86_64.whl", hash = "sha256:5f8d02ef4431dee414d1753d13fa82a21a2f61494737b5f642ea668d76164d6d", size = 6253062 }, - { url = "https://files.pythonhosted.org/packages/68/65/6ecdcdc829811a2c160cdfe2f068a009fc572fd4349664f758ccb0853a7c/pyproj-3.7.1-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:0b853ae99bda66cbe24b4ccfe26d70601d84375940a47f553413d9df570065e0", size = 4660548 }, - { url = "https://files.pythonhosted.org/packages/67/da/dda94c4490803679230ba4c17a12f151b307a0d58e8110820405ca2d98db/pyproj-3.7.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83db380c52087f9e9bdd8a527943b2e7324f275881125e39475c4f9277bdeec4", size = 9662464 }, - { url = "https://files.pythonhosted.org/packages/6f/57/f61b7d22c91ae1d12ee00ac4c0038714e774ebcd851b9133e5f4f930dd40/pyproj-3.7.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b35ed213892e211a3ce2bea002aa1183e1a2a9b79e51bb3c6b15549a831ae528", size = 9497461 }, - { url = "https://files.pythonhosted.org/packages/b7/f6/932128236f79d2ac7d39fe1a19667fdf7155d9a81d31fb9472a7a497790f/pyproj-3.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a8b15b0463d1303bab113d1a6af2860a0d79013c3a66fcc5475ce26ef717fd4f", size = 10708869 }, - { url = "https://files.pythonhosted.org/packages/1d/0d/07ac7712994454a254c383c0d08aff9916a2851e6512d59da8dc369b1b02/pyproj-3.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:87229e42b75e89f4dad6459200f92988c5998dfb093c7c631fb48524c86cd5dc", size = 10729260 }, - { url = "https://files.pythonhosted.org/packages/b0/d0/9c604bc72c37ba69b867b6df724d6a5af6789e8c375022c952f65b2af558/pyproj-3.7.1-cp313-cp313-win32.whl", hash = "sha256:d666c3a3faaf3b1d7fc4a544059c4eab9d06f84a604b070b7aa2f318e227798e", size = 5855462 }, - { url = "https://files.pythonhosted.org/packages/98/df/68a2b7f5fb6400c64aad82d72bcc4bc531775e62eedff993a77c780defd0/pyproj-3.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:d3caac7473be22b6d6e102dde6c46de73b96bc98334e577dfaee9886f102ea2e", size = 6266573 }, ] [[package]] @@ -2173,9 +1892,6 @@ wheels = [ name = "python-json-logger" version = "3.3.0" source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.10'" }, -] sdist = { url = "https://files.pythonhosted.org/packages/9e/de/d3144a0bceede957f961e975f3752760fbe390d57fbe194baf709d8f1f7b/python_json_logger-3.3.0.tar.gz", hash = "sha256:12b7e74b17775e7d565129296105bbe3910842d9d0eb083fc83a6a617aa8df84", size = 16642 } wheels = [ { url = "https://files.pythonhosted.org/packages/08/20/0f2523b9e50a8052bc6a8b732dfc8568abbdc42010aef03a2d750bdab3b2/python_json_logger-3.3.0-py3-none-any.whl", hash = "sha256:dd980fae8cffb24c13caf6e158d3d61c0d6d22342f932cb6e9deedab3d35eec7", size = 15163 }, @@ -2207,8 +1923,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/1c/09/9c1b978ffc4ae53999e89c19c77ba882d9fce476729f23ef55211ea1c034/pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab", size = 8794384 }, { url = "https://files.pythonhosted.org/packages/45/3c/b4640f740ffebadd5d34df35fecba0e1cfef8fde9f3e594df91c28ad9b50/pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e", size = 9503039 }, { url = "https://files.pythonhosted.org/packages/b4/f4/f785020090fb050e7fb6d34b780f2231f302609dc964672f72bfaeb59a28/pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33", size = 8458152 }, - { url = "https://files.pythonhosted.org/packages/a2/cd/d09d434630edb6a0c44ad5079611279a67530296cfe0451e003de7f449ff/pywin32-310-cp39-cp39-win32.whl", hash = "sha256:851c8d927af0d879221e616ae1f66145253537bbdd321a77e8ef701b443a9a1a", size = 8848099 }, - { url = "https://files.pythonhosted.org/packages/93/ff/2a8c10315ffbdee7b3883ac0d1667e267ca8b3f6f640d81d43b87a82c0c7/pywin32-310-cp39-cp39-win_amd64.whl", hash = "sha256:96867217335559ac619f00ad70e513c0fcf84b8a3af9fc2bba3b59b97da70475", size = 9602031 }, ] [[package]] @@ -2222,7 +1936,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/88/e5/9714def18c3a411809771a3fbcec70bffa764b9675afb00048a620fca604/pywinpty-2.0.15-cp312-cp312-win_amd64.whl", hash = "sha256:83a8f20b430bbc5d8957249f875341a60219a4e971580f2ba694fbfb54a45ebc", size = 1405243 }, { url = "https://files.pythonhosted.org/packages/fb/16/2ab7b3b7f55f3c6929e5f629e1a68362981e4e5fed592a2ed1cb4b4914a5/pywinpty-2.0.15-cp313-cp313-win_amd64.whl", hash = "sha256:ab5920877dd632c124b4ed17bc6dd6ef3b9f86cd492b963ffdb1a67b85b0f408", size = 1405020 }, { url = "https://files.pythonhosted.org/packages/7c/16/edef3515dd2030db2795dbfbe392232c7a0f3dc41b98e92b38b42ba497c7/pywinpty-2.0.15-cp313-cp313t-win_amd64.whl", hash = "sha256:a4560ad8c01e537708d2790dbe7da7d986791de805d89dd0d3697ca59e9e4901", size = 1404151 }, - { url = "https://files.pythonhosted.org/packages/47/96/90fa02f19b1eff7469ad7bf0ef8efca248025de9f1d0a0b25682d2aacf68/pywinpty-2.0.15-cp39-cp39-win_amd64.whl", hash = "sha256:d261cd88fcd358cfb48a7ca0700db3e1c088c9c10403c9ebc0d8a8b57aa6a117", size = 1405302 }, ] [[package]] @@ -2267,15 +1980,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/fe/0f/25911a9f080464c59fab9027482f822b86bf0608957a5fcc6eaac85aa515/PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652", size = 751597 }, { url = "https://files.pythonhosted.org/packages/14/0d/e2c3b43bbce3cf6bd97c840b46088a3031085179e596d4929729d8d68270/PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183", size = 140527 }, { url = "https://files.pythonhosted.org/packages/fa/de/02b54f42487e3d3c6efb3f89428677074ca7bf43aae402517bc7cca949f3/PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563", size = 156446 }, - { url = "https://files.pythonhosted.org/packages/65/d8/b7a1db13636d7fb7d4ff431593c510c8b8fca920ade06ca8ef20015493c5/PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d", size = 184777 }, - { url = "https://files.pythonhosted.org/packages/0a/02/6ec546cd45143fdf9840b2c6be8d875116a64076218b61d68e12548e5839/PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f", size = 172318 }, - { url = "https://files.pythonhosted.org/packages/0e/9a/8cc68be846c972bda34f6c2a93abb644fb2476f4dcc924d52175786932c9/PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290", size = 720891 }, - { url = "https://files.pythonhosted.org/packages/e9/6c/6e1b7f40181bc4805e2e07f4abc10a88ce4648e7e95ff1abe4ae4014a9b2/PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12", size = 722614 }, - { url = "https://files.pythonhosted.org/packages/3d/32/e7bd8535d22ea2874cef6a81021ba019474ace0d13a4819c2a4bce79bd6a/PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19", size = 737360 }, - { url = "https://files.pythonhosted.org/packages/d7/12/7322c1e30b9be969670b672573d45479edef72c9a0deac3bb2868f5d7469/PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e", size = 699006 }, - { url = "https://files.pythonhosted.org/packages/82/72/04fcad41ca56491995076630c3ec1e834be241664c0c09a64c9a2589b507/PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725", size = 723577 }, - { url = "https://files.pythonhosted.org/packages/ed/5e/46168b1f2757f1fcd442bc3029cd8767d88a98c9c05770d8b420948743bb/PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631", size = 144593 }, - { url = "https://files.pythonhosted.org/packages/19/87/5124b1c1f2412bb95c59ec481eaf936cd32f0fe2a7b16b97b81c4c017a6a/PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8", size = 162312 }, ] [[package]] @@ -2351,16 +2055,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/6e/bc/f88b0bad0f7a7f500547d71e99f10336f2314e525d4ebf576a1ea4a1d903/pyzmq-26.4.0-cp313-cp313t-musllinux_1_1_aarch64.whl", hash = "sha256:b30f862f6768b17040929a68432c8a8be77780317f45a353cb17e423127d250c", size = 1189183 }, { url = "https://files.pythonhosted.org/packages/d9/8c/db446a3dd9cf894406dec2e61eeffaa3c07c3abb783deaebb9812c4af6a5/pyzmq-26.4.0-cp313-cp313t-musllinux_1_1_i686.whl", hash = "sha256:c80fcd3504232f13617c6ab501124d373e4895424e65de8b72042333316f64a8", size = 1495501 }, { url = "https://files.pythonhosted.org/packages/05/4c/bf3cad0d64c3214ac881299c4562b815f05d503bccc513e3fd4fdc6f67e4/pyzmq-26.4.0-cp313-cp313t-musllinux_1_1_x86_64.whl", hash = "sha256:26a2a7451606b87f67cdeca2c2789d86f605da08b4bd616b1a9981605ca3a364", size = 1395540 }, - { url = "https://files.pythonhosted.org/packages/06/91/21d3af57bc77e86e9d1e5384f256fd25cdb4c8eed4c45c8119da8120915f/pyzmq-26.4.0-cp39-cp39-macosx_10_15_universal2.whl", hash = "sha256:a88643de8abd000ce99ca72056a1a2ae15881ee365ecb24dd1d9111e43d57842", size = 1340634 }, - { url = "https://files.pythonhosted.org/packages/54/e6/58cd825023e998a0e49db7322b3211e6cf93f0796710b77d1496304c10d1/pyzmq-26.4.0-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:0a744ce209ecb557406fb928f3c8c55ce79b16c3eeb682da38ef5059a9af0848", size = 907880 }, - { url = "https://files.pythonhosted.org/packages/72/83/619e44a766ef738cb7e8ed8e5a54565627801bdb027ca6dfb70762385617/pyzmq-26.4.0-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:9434540f333332224ecb02ee6278b6c6f11ea1266b48526e73c903119b2f420f", size = 863003 }, - { url = "https://files.pythonhosted.org/packages/b6/6a/a59af31320598bdc63d2c5a3181d14a89673c2c794540678285482e8a342/pyzmq-26.4.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e6c6f0a23e55cd38d27d4c89add963294ea091ebcb104d7fdab0f093bc5abb1c", size = 673432 }, - { url = "https://files.pythonhosted.org/packages/29/ae/64dd6c18b08ce2cb009c60f11cf01c87f323acd80344d8b059c0304a7370/pyzmq-26.4.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:6145df55dc2309f6ef72d70576dcd5aabb0fd373311613fe85a5e547c722b780", size = 1205221 }, - { url = "https://files.pythonhosted.org/packages/d0/0b/c583ab750957b025244a66948831bc9ca486d11c820da4626caf6480ee1a/pyzmq-26.4.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:2ea81823840ef8c56e5d2f9918e4d571236294fea4d1842b302aebffb9e40997", size = 1515299 }, - { url = "https://files.pythonhosted.org/packages/22/ba/95ba76292c49dd9c6dff1f127b4867033020b708d101cba6e4fc5a3d166d/pyzmq-26.4.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:cc2abc385dc37835445abe206524fbc0c9e3fce87631dfaa90918a1ba8f425eb", size = 1415366 }, - { url = "https://files.pythonhosted.org/packages/6e/65/51abe36169effda26ac7400ffac96f463e09dff40d344cdc2629d9a59162/pyzmq-26.4.0-cp39-cp39-win32.whl", hash = "sha256:41a2508fe7bed4c76b4cf55aacfb8733926f59d440d9ae2b81ee8220633b4d12", size = 580773 }, - { url = "https://files.pythonhosted.org/packages/89/68/d9ac94086c63a0ed8d73e9e8aec54b39f481696698a5a939a7207629fb30/pyzmq-26.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:d4000e8255d6cbce38982e5622ebb90823f3409b7ffe8aeae4337ef7d6d2612a", size = 644340 }, - { url = "https://files.pythonhosted.org/packages/dc/8f/66c261d657c1b0791ee5b372c90b1646b453adb581fcdc1dc5c94e5b03e3/pyzmq-26.4.0-cp39-cp39-win_arm64.whl", hash = "sha256:b4f6919d9c120488246bdc2a2f96662fa80d67b35bd6d66218f457e722b3ff64", size = 560075 }, { url = "https://files.pythonhosted.org/packages/47/03/96004704a84095f493be8d2b476641f5c967b269390173f85488a53c1c13/pyzmq-26.4.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:98d948288ce893a2edc5ec3c438fe8de2daa5bbbd6e2e865ec5f966e237084ba", size = 834408 }, { url = "https://files.pythonhosted.org/packages/e4/7f/68d8f3034a20505db7551cb2260248be28ca66d537a1ac9a257913d778e4/pyzmq-26.4.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9f34f5c9e0203ece706a1003f1492a56c06c0632d86cb77bcfe77b56aacf27b", size = 569580 }, { url = "https://files.pythonhosted.org/packages/9b/a6/2b0d6801ec33f2b2a19dd8d02e0a1e8701000fec72926e6787363567d30c/pyzmq-26.4.0-pp310-pypy310_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80c9b48aef586ff8b698359ce22f9508937c799cc1d2c9c2f7c95996f2300c94", size = 798250 }, @@ -2371,12 +2065,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/76/0c/3a633acd762aa6655fcb71fa841907eae0ab1e8582ff494b137266de341d/pyzmq-26.4.0-pp311-pypy311_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:43b03c1ceea27c6520124f4fb2ba9c647409b9abdf9a62388117148a90419494", size = 798248 }, { url = "https://files.pythonhosted.org/packages/cd/cc/6c99c84aa60ac1cc56747bed6be8ce6305b9b861d7475772e7a25ce019d3/pyzmq-26.4.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7731abd23a782851426d4e37deb2057bf9410848a4459b5ede4fe89342e687a9", size = 756757 }, { url = "https://files.pythonhosted.org/packages/13/9c/d8073bd898eb896e94c679abe82e47506e2b750eb261cf6010ced869797c/pyzmq-26.4.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:a222ad02fbe80166b0526c038776e8042cd4e5f0dec1489a006a1df47e9040e0", size = 555371 }, - { url = "https://files.pythonhosted.org/packages/af/b2/71a644b629e1a93ccae9e22a45aec9d23065dfcc24c399cb837f81cd08c2/pyzmq-26.4.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:552b0d2e39987733e1e9e948a0ced6ff75e0ea39ab1a1db2fc36eb60fd8760db", size = 834397 }, - { url = "https://files.pythonhosted.org/packages/a9/dd/052a25651eaaff8f5fd652fb40a3abb400e71207db2d605cf6faf0eac598/pyzmq-26.4.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd670a8aa843f2ee637039bbd412e0d7294a5e588e1ecc9ad98b0cdc050259a4", size = 569571 }, - { url = "https://files.pythonhosted.org/packages/a5/5d/201ca10b5d12ab187a418352c06d70c3e2087310af038b11056aba1359be/pyzmq-26.4.0-pp39-pypy39_pp73-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d367b7b775a0e1e54a59a2ba3ed4d5e0a31566af97cc9154e34262777dab95ed", size = 798243 }, - { url = "https://files.pythonhosted.org/packages/bd/d4/2c64e54749536ad1633400f28d71e71e19375d00ce1fe9bb1123364dc927/pyzmq-26.4.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8112af16c406e4a93df2caef49f884f4c2bb2b558b0b5577ef0b2465d15c1abc", size = 756751 }, - { url = "https://files.pythonhosted.org/packages/08/e6/34d119af43d06a8dcd88bf7a62dac69597eaba52b49ecce76ff06b40f1fd/pyzmq-26.4.0-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:c76c298683f82669cab0b6da59071f55238c039738297c69f187a542c6d40099", size = 745400 }, - { url = "https://files.pythonhosted.org/packages/f8/49/b5e471d74a63318e51f30d329b17d2550bdededaab55baed2e2499de7ce4/pyzmq-26.4.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:49b6ca2e625b46f499fb081aaf7819a177f41eeb555acb05758aa97f4f95d147", size = 555367 }, ] [[package]] @@ -2500,19 +2188,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/a9/9e/57bd2f9fba04a37cef673f9a66b11ca8c43ccdd50d386c455cd4380fe461/rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5f6e3cec44ba05ee5cbdebe92d052f69b63ae792e7d05f1020ac5e964394080c", size = 561771 }, { url = "https://files.pythonhosted.org/packages/9f/cf/b719120f375ab970d1c297dbf8de1e3c9edd26fe92c0ed7178dd94b45992/rpds_py-0.24.0-cp313-cp313t-win32.whl", hash = "sha256:8ebc7e65ca4b111d928b669713865f021b7773350eeac4a31d3e70144297baba", size = 221195 }, { url = "https://files.pythonhosted.org/packages/2d/e5/22865285789f3412ad0c3d7ec4dc0a3e86483b794be8a5d9ed5a19390900/rpds_py-0.24.0-cp313-cp313t-win_amd64.whl", hash = "sha256:675269d407a257b8c00a6b58205b72eec8231656506c56fd429d924ca00bb350", size = 237354 }, - { url = "https://files.pythonhosted.org/packages/22/ef/a194eaef0d0f2cd3f4c893c5b809a7458aaa7c0a64e60a45a72a04835ed4/rpds_py-0.24.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a36b452abbf29f68527cf52e181fced56685731c86b52e852053e38d8b60bc8d", size = 378126 }, - { url = "https://files.pythonhosted.org/packages/c3/8d/9a07f69933204c098760c884f03835ab8fb66e28d2d5f3dd6741720cf29c/rpds_py-0.24.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b3b397eefecec8e8e39fa65c630ef70a24b09141a6f9fc17b3c3a50bed6b50e", size = 362887 }, - { url = "https://files.pythonhosted.org/packages/29/74/315f42060f2e3cedd77d382a98484a68ef727bd3b5fd7b91825b859a3e85/rpds_py-0.24.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdabcd3beb2a6dca7027007473d8ef1c3b053347c76f685f5f060a00327b8b65", size = 388661 }, - { url = "https://files.pythonhosted.org/packages/29/22/7ee7bb2b25ecdfcf1265d5a51472814fe60b580f9e1e2746eed9c476310a/rpds_py-0.24.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5db385bacd0c43f24be92b60c857cf760b7f10d8234f4bd4be67b5b20a7c0b6b", size = 394993 }, - { url = "https://files.pythonhosted.org/packages/46/7b/5f40e278d81cd23eea6b88bbac62bacc27ed19412051a1fc4229e8f9367a/rpds_py-0.24.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8097b3422d020ff1c44effc40ae58e67d93e60d540a65649d2cdaf9466030791", size = 448706 }, - { url = "https://files.pythonhosted.org/packages/5a/7a/06aada7ecdb0d02fbc041daee998ae841882fcc8ed3c0f84e72d6832fef1/rpds_py-0.24.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:493fe54318bed7d124ce272fc36adbf59d46729659b2c792e87c3b95649cdee9", size = 447369 }, - { url = "https://files.pythonhosted.org/packages/c6/f3/428a9367077268f852db9b3b68b6eda6ee4594ab7dc2d603a2c370619cc0/rpds_py-0.24.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8aa362811ccdc1f8dadcc916c6d47e554169ab79559319ae9fae7d7752d0d60c", size = 390012 }, - { url = "https://files.pythonhosted.org/packages/55/66/24b61f14cd54e525583404afe6e3c221b309d1abd4b0b597a566dd8ee42d/rpds_py-0.24.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d8f9a6e7fd5434817526815f09ea27f2746c4a51ee11bb3439065f5fc754db58", size = 421576 }, - { url = "https://files.pythonhosted.org/packages/22/56/18b81a4f0550e0d4be700cdcf1415ebf250fd21f9a5a775843dd3588dbf6/rpds_py-0.24.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8205ee14463248d3349131bb8099efe15cd3ce83b8ef3ace63c7e976998e7124", size = 565562 }, - { url = "https://files.pythonhosted.org/packages/42/80/82a935d78f74974f82d38e83fb02430f8e8cc09ad35e06d9a5d2e9b907a7/rpds_py-0.24.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:921ae54f9ecba3b6325df425cf72c074cd469dea843fb5743a26ca7fb2ccb149", size = 592924 }, - { url = "https://files.pythonhosted.org/packages/0d/49/b717e7b93c2ca881d2dac8b23b3a87a4c30f7c762bfd3df0b3953e655f13/rpds_py-0.24.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:32bab0a56eac685828e00cc2f5d1200c548f8bc11f2e44abf311d6b548ce2e45", size = 560847 }, - { url = "https://files.pythonhosted.org/packages/1e/26/ba630a291238e7f42d25bc5569d152623f18c21e9183e506585b23325c48/rpds_py-0.24.0-cp39-cp39-win32.whl", hash = "sha256:f5c0ed12926dec1dfe7d645333ea59cf93f4d07750986a586f511c0bc61fe103", size = 222570 }, - { url = "https://files.pythonhosted.org/packages/2d/84/01126e25e21f2ed6e63ec4030f78793dfee1a21aff1842136353c9caaed9/rpds_py-0.24.0-cp39-cp39-win_amd64.whl", hash = "sha256:afc6e35f344490faa8276b5f2f7cbf71f88bc2cda4328e00553bd451728c571f", size = 234931 }, { url = "https://files.pythonhosted.org/packages/99/48/11dae46d0c7f7e156ca0971a83f89c510af0316cd5d42c771b7cef945f0c/rpds_py-0.24.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:619ca56a5468f933d940e1bf431c6f4e13bef8e688698b067ae68eb4f9b30e3a", size = 378224 }, { url = "https://files.pythonhosted.org/packages/33/18/e8398d255369e35d312942f3bb8ecaff013c44968904891be2ab63b3aa94/rpds_py-0.24.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:4b28e5122829181de1898c2c97f81c0b3246d49f585f22743a1246420bb8d399", size = 363252 }, { url = "https://files.pythonhosted.org/packages/17/39/dd73ba691f4df3e6834bf982de214086ac3359ab3ac035adfb30041570e3/rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e5ab32cf9eb3647450bc74eb201b27c185d3857276162c101c0f8c6374e098", size = 388871 }, @@ -2536,18 +2211,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/20/dd/1f1a923d6cd798b8582176aca8a0784676f1a0449fb6f07fce6ac1cdbfb6/rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:eda5c1e2a715a4cbbca2d6d304988460942551e4e5e3b7457b50943cd741626d", size = 565818 }, { url = "https://files.pythonhosted.org/packages/56/ec/d8da6df6a1eb3a418944a17b1cb38dd430b9e5a2e972eafd2b06f10c7c46/rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:9abc80fe8c1f87218db116016de575a7998ab1629078c90840e8d11ab423ee25", size = 592627 }, { url = "https://files.pythonhosted.org/packages/b3/14/c492b9c7d5dd133e13f211ddea6bb9870f99e4f73932f11aa00bc09a9be9/rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6a727fd083009bc83eb83d6950f0c32b3c94c8b80a9b667c87f4bd1274ca30ba", size = 560885 }, - { url = "https://files.pythonhosted.org/packages/ef/e2/16cbbd7aaa4deaaeef5c90fee8b485c8b3312094cdad31e8006f5a3e5e08/rpds_py-0.24.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e0f3ef95795efcd3b2ec3fe0a5bcfb5dadf5e3996ea2117427e524d4fbf309c6", size = 378245 }, - { url = "https://files.pythonhosted.org/packages/d4/8c/5024dd105bf0a515576b7df8aeeba6556ffdbe2d636dee172c1a30497dd1/rpds_py-0.24.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2c13777ecdbbba2077670285dd1fe50828c8742f6a4119dbef6f83ea13ad10fb", size = 363461 }, - { url = "https://files.pythonhosted.org/packages/a4/6f/3a4efcfa2f4391b69f5d0ed3e6be5d2c5468c24fd2d15b712d2dbefc1749/rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79e8d804c2ccd618417e96720ad5cd076a86fa3f8cb310ea386a3e6229bae7d1", size = 388839 }, - { url = "https://files.pythonhosted.org/packages/6c/d2/b8e5f0a0e97d295a0ebceb5265ef2e44c3d55e0d0f938d64a5ecfffa715e/rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd822f019ccccd75c832deb7aa040bb02d70a92eb15a2f16c7987b7ad4ee8d83", size = 394860 }, - { url = "https://files.pythonhosted.org/packages/90/e9/9f1f297bdbc5b871826ad790b6641fc40532d97917916e6bd9f87fdd128d/rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0047638c3aa0dbcd0ab99ed1e549bbf0e142c9ecc173b6492868432d8989a046", size = 449314 }, - { url = "https://files.pythonhosted.org/packages/06/ad/62ddbbaead31a1a22f0332958d0ea7c7aeed1b2536c6a51dd66dfae321a2/rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a5b66d1b201cc71bc3081bc2f1fc36b0c1f268b773e03bbc39066651b9e18391", size = 446376 }, - { url = "https://files.pythonhosted.org/packages/82/a7/05b660d2f3789506e98be69aaf2ccde94e0fc49cd26cd78d7069bc5ba1b8/rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbcbb6db5582ea33ce46a5d20a5793134b5365110d84df4e30b9d37c6fd40ad3", size = 390560 }, - { url = "https://files.pythonhosted.org/packages/66/1b/79fa0abffb802ff817821a148ce752eaaab87ba3a6a5e6b9f244c00c73d0/rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63981feca3f110ed132fd217bf7768ee8ed738a55549883628ee3da75bb9cb78", size = 421225 }, - { url = "https://files.pythonhosted.org/packages/6e/9b/368893ad2f7b2ece42cad87c7ec71309b5d93188db28b307eadb48cd28e5/rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3a55fc10fdcbf1a4bd3c018eea422c52cf08700cf99c28b5cb10fe97ab77a0d3", size = 566071 }, - { url = "https://files.pythonhosted.org/packages/41/75/1cd0a654d300449411e6fd0821f83c1cfc7223da2e8109f586b4d9b89054/rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:c30ff468163a48535ee7e9bf21bd14c7a81147c0e58a36c1078289a8ca7af0bd", size = 592334 }, - { url = "https://files.pythonhosted.org/packages/31/33/5905e2a2e7612218e25307a9255fc8671b977449d40d62fe317775fe4939/rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:369d9c6d4c714e36d4a03957b4783217a3ccd1e222cdd67d464a3a479fc17796", size = 561111 }, - { url = "https://files.pythonhosted.org/packages/64/bd/f4cc34ac2261a7cb8a48bc90ce1e36dc05f1ec5ac3b4537def20be5df555/rpds_py-0.24.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:24795c099453e3721fda5d8ddd45f5dfcc8e5a547ce7b8e9da06fecc3832e26f", size = 235168 }, ] [[package]] @@ -2598,10 +2261,10 @@ name = "shapely" version = "2.0.7" source = { registry = "https://pypi.org/simple" } resolution-markers = [ - "python_full_version < '3.10'", + "python_full_version < '3.11'", ] dependencies = [ - { name = "numpy", version = "2.0.2", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "numpy", marker = "python_full_version < '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/21/c0/a911d1fd765d07a2b6769ce155219a281bfbe311584ebe97340d75c5bdb1/shapely-2.0.7.tar.gz", hash = "sha256:28fe2997aab9a9dc026dc6a355d04e85841546b2a5d232ed953e3321ab958ee5", size = 283413 } wheels = [ @@ -2629,12 +2292,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/f5/8a/2545cc2a30afc63fc6176c1da3b76af28ef9c7358ed4f68f7c6a9d86cf5b/shapely-2.0.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:adeddfb1e22c20548e840403e5e0b3d9dc3daf66f05fa59f1fcf5b5f664f0e98", size = 2514128 }, { url = "https://files.pythonhosted.org/packages/87/54/2344ce7da39676adec94e84fbaba92a8f1664e4ae2d33bd404dafcbe607f/shapely-2.0.7-cp313-cp313-win32.whl", hash = "sha256:a7f04691ce1c7ed974c2f8b34a1fe4c3c5dfe33128eae886aa32d730f1ec1913", size = 1295783 }, { url = "https://files.pythonhosted.org/packages/d7/1e/6461e5cfc8e73ae165b8cff6eb26a4d65274fad0e1435137c5ba34fe4e88/shapely-2.0.7-cp313-cp313-win_amd64.whl", hash = "sha256:aaaf5f7e6cc234c1793f2a2760da464b604584fb58c6b6d7d94144fd2692d67e", size = 1442300 }, - { url = "https://files.pythonhosted.org/packages/ad/de/dc856cf99a981b83aa041d1a240a65b36618657d5145d1c0c7ffb4263d5b/shapely-2.0.7-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4abeb44b3b946236e4e1a1b3d2a0987fb4d8a63bfb3fdefb8a19d142b72001e5", size = 1478794 }, - { url = "https://files.pythonhosted.org/packages/53/ea/70fec89a9f6fa84a8bf6bd2807111a9175cee22a3df24470965acdd5fb74/shapely-2.0.7-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:cd0e75d9124b73e06a42bf1615ad3d7d805f66871aa94538c3a9b7871d620013", size = 1336402 }, - { url = "https://files.pythonhosted.org/packages/e5/22/f6b074b08748d6f6afedd79f707d7eb88b79fa0121369246c25bbc721776/shapely-2.0.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7977d8a39c4cf0e06247cd2dca695ad4e020b81981d4c82152c996346cf1094b", size = 2376673 }, - { url = "https://files.pythonhosted.org/packages/ab/f0/befc440a6c90c577300f5f84361bad80919e7c7ac381ae4960ce3195cedc/shapely-2.0.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0145387565fcf8f7c028b073c802956431308da933ef41d08b1693de49990d27", size = 2474380 }, - { url = "https://files.pythonhosted.org/packages/13/b8/edaf33dfb97e281d9de3871810de131b01e4f33d38d8f613515abc89d91e/shapely-2.0.7-cp39-cp39-win32.whl", hash = "sha256:98697c842d5c221408ba8aa573d4f49caef4831e9bc6b6e785ce38aca42d1999", size = 1297939 }, - { url = "https://files.pythonhosted.org/packages/7b/95/4d164c2fcb19c51e50537aafb99ecfda82f62356bfdb6f4ca620a3932bad/shapely-2.0.7-cp39-cp39-win_amd64.whl", hash = "sha256:a3fb7fbae257e1b042f440289ee7235d03f433ea880e73e687f108d044b24db5", size = 1443665 }, ] [[package]] @@ -2644,10 +2301,9 @@ source = { registry = "https://pypi.org/simple" } resolution-markers = [ "python_full_version >= '3.12'", "python_full_version == '3.11.*'", - "python_full_version == '3.10.*'", ] dependencies = [ - { name = "numpy", version = "2.2.5", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "numpy", marker = "python_full_version >= '3.11'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/fb/fe/3b0d2f828ffaceadcdcb51b75b9c62d98e62dd95ce575278de35f24a1c20/shapely-2.1.0.tar.gz", hash = "sha256:2cbe90e86fa8fc3ca8af6ffb00a77b246b918c7cf28677b7c21489b678f6b02e", size = 313617 } wheels = [ @@ -2740,7 +2396,6 @@ version = "0.46.2" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "anyio" }, - { name = "typing-extensions", marker = "python_full_version < '3.10'" }, ] sdist = { url = "https://files.pythonhosted.org/packages/ce/20/08dfcd9c983f6a6f4a1000d934b9e6d626cff8d2eeb77a89a68eef20a2b7/starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5", size = 2580846 } wheels = [ @@ -2937,13 +2592,8 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/68/98/b0345cabdce2041a01293ba483333582891a3bd5769b08eceb0d406056ef/watchdog-6.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c", size = 96480 }, { url = "https://files.pythonhosted.org/packages/85/83/cdf13902c626b28eedef7ec4f10745c52aad8a8fe7eb04ed7b1f111ca20e/watchdog-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134", size = 88451 }, { url = "https://files.pythonhosted.org/packages/fe/c4/225c87bae08c8b9ec99030cd48ae9c4eca050a59bf5c2255853e18c87b50/watchdog-6.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b", size = 89057 }, - { url = "https://files.pythonhosted.org/packages/05/52/7223011bb760fce8ddc53416beb65b83a3ea6d7d13738dde75eeb2c89679/watchdog-6.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e6f0e77c9417e7cd62af82529b10563db3423625c5fce018430b249bf977f9e8", size = 96390 }, - { url = "https://files.pythonhosted.org/packages/9c/62/d2b21bc4e706d3a9d467561f487c2938cbd881c69f3808c43ac1ec242391/watchdog-6.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:90c8e78f3b94014f7aaae121e6b909674df5b46ec24d6bebc45c44c56729af2a", size = 88386 }, - { url = "https://files.pythonhosted.org/packages/ea/22/1c90b20eda9f4132e4603a26296108728a8bfe9584b006bd05dd94548853/watchdog-6.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e7631a77ffb1f7d2eefa4445ebbee491c720a5661ddf6df3498ebecae5ed375c", size = 89017 }, { url = "https://files.pythonhosted.org/packages/30/ad/d17b5d42e28a8b91f8ed01cb949da092827afb9995d4559fd448d0472763/watchdog-6.0.0-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:c7ac31a19f4545dd92fc25d200694098f42c9a8e391bc00bdd362c5736dbf881", size = 87902 }, { url = "https://files.pythonhosted.org/packages/5c/ca/c3649991d140ff6ab67bfc85ab42b165ead119c9e12211e08089d763ece5/watchdog-6.0.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:9513f27a1a582d9808cf21a07dae516f0fab1cf2d7683a742c498b93eedabb11", size = 88380 }, - { url = "https://files.pythonhosted.org/packages/5b/79/69f2b0e8d3f2afd462029031baafb1b75d11bb62703f0e1022b2e54d49ee/watchdog-6.0.0-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7a0e56874cfbc4b9b05c60c8a1926fedf56324bb08cfbc188969777940aef3aa", size = 87903 }, - { url = "https://files.pythonhosted.org/packages/e2/2b/dc048dd71c2e5f0f7ebc04dd7912981ec45793a03c0dc462438e0591ba5d/watchdog-6.0.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:e6439e374fc012255b4ec786ae3c4bc838cd7309a540e5fe0952d03687d8804e", size = 88381 }, { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079 }, { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078 }, { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076 }, @@ -3042,29 +2692,12 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/33/2b/1f168cb6041853eef0362fb9554c3824367c5560cbdaad89ac40f8c2edfc/websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4", size = 182195 }, { url = "https://files.pythonhosted.org/packages/86/eb/20b6cdf273913d0ad05a6a14aed4b9a85591c18a987a3d47f20fa13dcc47/websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa", size = 176393 }, { url = "https://files.pythonhosted.org/packages/1b/6c/c65773d6cab416a64d191d6ee8a8b1c68a09970ea6909d16965d26bfed1e/websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561", size = 176837 }, - { url = "https://files.pythonhosted.org/packages/36/db/3fff0bcbe339a6fa6a3b9e3fbc2bfb321ec2f4cd233692272c5a8d6cf801/websockets-15.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5", size = 175424 }, - { url = "https://files.pythonhosted.org/packages/46/e6/519054c2f477def4165b0ec060ad664ed174e140b0d1cbb9fafa4a54f6db/websockets-15.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a", size = 173077 }, - { url = "https://files.pythonhosted.org/packages/1a/21/c0712e382df64c93a0d16449ecbf87b647163485ca1cc3f6cbadb36d2b03/websockets-15.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b", size = 173324 }, - { url = "https://files.pythonhosted.org/packages/1c/cb/51ba82e59b3a664df54beed8ad95517c1b4dc1a913730e7a7db778f21291/websockets-15.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770", size = 182094 }, - { url = "https://files.pythonhosted.org/packages/fb/0f/bf3788c03fec679bcdaef787518dbe60d12fe5615a544a6d4cf82f045193/websockets-15.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb", size = 181094 }, - { url = "https://files.pythonhosted.org/packages/5e/da/9fb8c21edbc719b66763a571afbaf206cb6d3736d28255a46fc2fe20f902/websockets-15.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac017dd64572e5c3bd01939121e4d16cf30e5d7e110a119399cf3133b63ad054", size = 181397 }, - { url = "https://files.pythonhosted.org/packages/2e/65/65f379525a2719e91d9d90c38fe8b8bc62bd3c702ac651b7278609b696c4/websockets-15.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee", size = 181794 }, - { url = "https://files.pythonhosted.org/packages/d9/26/31ac2d08f8e9304d81a1a7ed2851c0300f636019a57cbaa91342015c72cc/websockets-15.0.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed", size = 181194 }, - { url = "https://files.pythonhosted.org/packages/98/72/1090de20d6c91994cd4b357c3f75a4f25ee231b63e03adea89671cc12a3f/websockets-15.0.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880", size = 181164 }, - { url = "https://files.pythonhosted.org/packages/2d/37/098f2e1c103ae8ed79b0e77f08d83b0ec0b241cf4b7f2f10edd0126472e1/websockets-15.0.1-cp39-cp39-win32.whl", hash = "sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411", size = 176381 }, - { url = "https://files.pythonhosted.org/packages/75/8b/a32978a3ab42cebb2ebdd5b05df0696a09f4d436ce69def11893afa301f0/websockets-15.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4", size = 176841 }, { url = "https://files.pythonhosted.org/packages/02/9e/d40f779fa16f74d3468357197af8d6ad07e7c5a27ea1ca74ceb38986f77a/websockets-15.0.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3", size = 173109 }, { url = "https://files.pythonhosted.org/packages/bc/cd/5b887b8585a593073fd92f7c23ecd3985cd2c3175025a91b0d69b0551372/websockets-15.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1", size = 173343 }, { url = "https://files.pythonhosted.org/packages/fe/ae/d34f7556890341e900a95acf4886833646306269f899d58ad62f588bf410/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475", size = 174599 }, { url = "https://files.pythonhosted.org/packages/71/e6/5fd43993a87db364ec60fc1d608273a1a465c0caba69176dd160e197ce42/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9", size = 174207 }, { url = "https://files.pythonhosted.org/packages/2b/fb/c492d6daa5ec067c2988ac80c61359ace5c4c674c532985ac5a123436cec/websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b359ed09954d7c18bbc1680f380c7301f92c60bf924171629c5db97febb12f04", size = 174155 }, { url = "https://files.pythonhosted.org/packages/68/a1/dcb68430b1d00b698ae7a7e0194433bce4f07ded185f0ee5fb21e2a2e91e/websockets-15.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122", size = 176884 }, - { url = "https://files.pythonhosted.org/packages/b7/48/4b67623bac4d79beb3a6bb27b803ba75c1bdedc06bd827e465803690a4b2/websockets-15.0.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940", size = 173106 }, - { url = "https://files.pythonhosted.org/packages/ed/f0/adb07514a49fe5728192764e04295be78859e4a537ab8fcc518a3dbb3281/websockets-15.0.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e", size = 173339 }, - { url = "https://files.pythonhosted.org/packages/87/28/bd23c6344b18fb43df40d0700f6d3fffcd7cef14a6995b4f976978b52e62/websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9", size = 174597 }, - { url = "https://files.pythonhosted.org/packages/6d/79/ca288495863d0f23a60f546f0905ae8f3ed467ad87f8b6aceb65f4c013e4/websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b", size = 174205 }, - { url = "https://files.pythonhosted.org/packages/04/e4/120ff3180b0872b1fe6637f6f995bcb009fb5c87d597c1fc21456f50c848/websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4b826973a4a2ae47ba357e4e82fa44a463b8f168e1ca775ac64521442b19e87f", size = 174150 }, - { url = "https://files.pythonhosted.org/packages/cb/c3/30e2f9c539b8da8b1d76f64012f3b19253271a63413b2d3adb94b143407f/websockets-15.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123", size = 176877 }, { url = "https://files.pythonhosted.org/packages/fa/a8/5b41e0da817d64113292ab1f8247140aac61cbf6cfd085d6a0fa77f4984f/websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f", size = 169743 }, ] @@ -3076,12 +2709,3 @@ sdist = { url = "https://files.pythonhosted.org/packages/41/53/2e0253c5efd69c965 wheels = [ { url = "https://files.pythonhosted.org/packages/ca/51/5447876806d1088a0f8f71e16542bf350918128d0a69437df26047c8e46f/widgetsnbextension-4.0.14-py3-none-any.whl", hash = "sha256:4875a9eaf72fbf5079dc372a51a9f268fc38d46f767cbf85c43a36da5cb9b575", size = 2196503 }, ] - -[[package]] -name = "zipp" -version = "3.21.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/3f/50/bad581df71744867e9468ebd0bcd6505de3b275e06f202c2cb016e3ff56f/zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4", size = 24545 } -wheels = [ - { url = "https://files.pythonhosted.org/packages/b7/1a/7e4798e9339adc931158c9d69ecc34f5e6791489d469f5e50ec15e35f458/zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931", size = 9630 }, -]