diff --git a/.gitattributes b/.gitattributes index 057442e5f490c131c98574f12bb63a9117867fdc..492945f45c9815180642382aef2fa7b5ad3a5001 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,3 +1,4 @@ * linguist-vendored *.py linguist-vendored=false text eol=lf +openbb_platform/obbject_extensions/charting/openbb_charting/core/assets/Terminal_icon.png filter=lfs diff=lfs merge=lfs -text diff --git a/openbb_platform/obbject_extensions/charting/README.md b/openbb_platform/obbject_extensions/charting/README.md new file mode 100644 index 0000000000000000000000000000000000000000..8b87d86d226e5c20f754e0048f762b219b31ee38 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/README.md @@ -0,0 +1,174 @@ +# OpenBB Charting extension + +This extension provides a charting library for OpenBB Platform. + +The library includes: + +- a charting infrastructure based on Plotly +- a set of charting components +- prebuilt charts for a set of commands that are built-in OpenBB extensions + +>[!NOTE] +> The charting library is an `OBBject` extension which means you'll have the functionality it exposes on every command result. + +## Installation + +To install the extension, run the following command in this folder: + +```bash +pip install openbb-charting +``` + +## PyWry dependency on Linux + +The PyWry dependency handles the display of interactive charts and tables in a separate window. It is installed automatically with the OpenBB Charting extension. + +When using Linux distributions, the PyWry dependency requires certain dependencies to be installed first. + +- Debian-based / Ubuntu / Mint: +`sudo apt install libwebkit2gtk-4.0-dev` + +- Arch Linux / Manjaro: +`sudo pacman -S webkit2gtk` + +- Fedora: +`sudo dnf install gtk3-devel webkit2gtk3-devel` + +## Usage + +To use the extension, run any of the OpenBB Platform endpoints with the `chart` argument set to `True`. + +Here's an example of how it would look like in a python interface: + +```python +from openbb import obb +equity_data = obb.equity.price.historical(symbol="TSLA", chart=True) +``` + +This results in a `OBBject` object containing a `chart` attribute, which contains Plotly JSON data. + +In order to display the chart, you need to call the `show()` method: + +```python +equity_data.show() +``` + +> Note: The `show()` method currently works either in a Jupyter Notebook or in a standalone python script with a PyWry based backend properly initialized. + +Alternatively, you can use the fact that the `openbb-charting` is an `OBBject` extension and use its available methods. + +```python +from openbb import obb +res = obb.equity.price.historical("AAPL") +res.charting.show() +``` + +The above code will produce the same effect as the previous example. + +### Discovering available charts + +Not all the endpoints are currently supported by the charting extension. To discover which endpoints are supported, you can run the following command: + +```python +from openbb_charting import Charting +Charting.functions() +``` + +### Using the `to_chart` method + +The `to_chart` function should be taken as an advanced feature, as it requires the user to have a good understanding of the charting extension and the `OpenBBFigure` class. + +The user can use any number of `**kwargs` that will be passed to the `PlotlyTA` class in order to build custom visualizations with custom indicators and similar. + +> Note that, this method will only work to some limited extent with data that is not standardized. +> Also, it is currently designed only to handle time series (OHLCV) data. + +Example usage: + +- Plotting a time series with TA indicators + + ```python + + from openbb import obb + res = obb.equity.price.historical("AAPL") + + indicators = dict( + sma=dict(length=[20,30,50]), + adx=dict(length=14), + rsi=dict(length=14), + macd=dict(fast=12, slow=26, signal=9), + bbands=dict(length=20, std=2), + stoch=dict(length=14), + ema=dict(length=[20,30,50]), + ) + res.charting.to_chart(**{"indicators": indicators}) + + ``` + +- Get all the available indicators + + ```python + + # if you have a command result already + res.charting.indicators + + # or if you want to know in standalone fashion + from openbb_charting import Charting + Charting.indicators() + + ``` + +## Add a visualization to an existing Platform command + +To add a visualization to an existing command, you'll need to add a `poetry` plugin to your `pyproject.toml` file. The syntax should be the following: + +```toml +[tool.poetry.plugins."openbb_charting_extension"] +my_extension = "openbb_my_extension.my_extension_views:MyExtensionViews" +``` + +Where the `openbb_charting_extension` is **mandatory**, otherwise the charting extension won't be able to find the visualization. + +And the suggested structure for the `my_extension_views` module is the following: + +```python +"""Views for MyExtension.""" + +from typing import Any, Dict, Tuple + +from openbb_charting.charts.price_historical import price_historical +from openbb_charting.core.openbb_figure import OpenBBFigure + + +class MyExtensionViews: + """MyExtension Views.""" + + @staticmethod + def my_extension_price_historical( + **kwargs, + ) -> Tuple[OpenBBFigure, Dict[str, Any]]: + """MyExtension Price Historical Chart.""" + return price_historical(**kwargs) +``` + +> Note that `my_extension_views` lives under the `openbb_my_extension` package. + +Afterwards, you'll need to add the visualization to your new `MyExtensionViews` class. The convention to match the endpoint with the respective charting function is the following: + +- `/equity/price/historical` -> `equity_price_historical` +- `/technical/ema` -> `technical_ema` +- `/my_extension/price_historical` -> `my_extension_price_historical` + +When you spot the charting function on the charting router file, you can add the visualization to it. + +The implementation should leverage the already existing classes and methods to do so, namely: + +- `OpenBBFigure` +- `PlotlyTA` + +Note that the return of each charting function should respect the already defined return types: `Tuple[OpenBBFigure, Dict[str, Any]]`. + +The returned tuple contains a `OpenBBFigure` that is an interactive plotly figure which can be used in a Python interpreter, and a `Dict[str, Any]` that contains the raw data leveraged by the API. + +After you're done implementing the charting function, you can use either the Python interface or the API to get the chart. To do so, you'll only need to set the already available `chart` argument to `True`. +Or accessing the `charting` attribute of the `OBBject` object: `my_obbject.charting.show()`. diff --git a/openbb_platform/obbject_extensions/charting/examples.md b/openbb_platform/obbject_extensions/charting/examples.md new file mode 100644 index 0000000000000000000000000000000000000000..e2cb239b9780f02505b337104de32d873c138928 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/examples.md @@ -0,0 +1,166 @@ +--- +title: Examples +sidebar_position: 1 +description: This page provides examples of creating charts with the `openbb-charting` extension. +keywords: +- tutorial +- OpenBB Platform +- Python client +- Fast API +- getting started +- extensions +- charting +- view +- Plotly +- toolkits +- how-to +- generic +- figure +--- + +import HeadTitle from '@site/src/components/General/HeadTitle.tsx'; + + + +## Overview + +This page will walk through creating different charts using the `openbb-charting` extension. +The perspective for this content is from the Python Interface, +and the examples will assume that the OpenBB Platform is installed with all optional packages. + +```python +from datetime import datetime, timedelta +from openbb import obb +``` + +## Cumulative Returns + +The historical (equity) prices can be requested for multiple symbols. +The extension will attempt to handle variations accordingly. +By default, more than three symbols will draw the chart as cumulative returns from the beginning of the series. + +### Default View + +The tickers below are a collection of State Street Global Advisors SPDR funds, representing S&P 500 components. +The data is looking back five years. + +```python +SPDRS = [ + "SPY", + "XLE", + "XLB", + "XLI", + "XHB", + "XLP", + "XLY", + "XRT", + "XLF", + "XLV", + "XLK", + "XLC", + "XLU", + "XLRE", +] +start_date = (datetime.now() - timedelta(weeks=52*5)).date() +spdrs = obb.equity.price.historical(SPDRS, start_date=start_date, provider="yfinance", chart=True) + +spdrs.show() +``` + +![SPDRs Cumulative Returns - 5 years](https://github.com/OpenBB-finance/OpenBB/assets/85772166/8884f4ed-b09c-4161-9dc6-87ad66d9fc8b) + +### Redraw as YTD + +The `charting` attribute of the command output has methods for creating the chart again. +The `data` parameter allows modifications to the data before creating the figure. +In this example, the length of the data is trimmed to the beginning of the year. + +```python +new_data = spdrs.to_df().loc[datetime(2024,12,29).date():] +spdrs.charting.to_chart(data=new_data, title="YTD") +``` + +:::note +This replaces the chart that was already created. +::: + +![SPDRs Cumulative Returns - YTD](https://github.com/OpenBB-finance/OpenBB/assets/85772166/22ed2588-1098-4712-aec1-54dd22c324ef) + +## Price Performance Bar Chart + +The `obb.equity.price.performance` endpoint will create a bar chart over intervals. + +```python +price_performance = obb.equity.price.performance(SPDRS, chart=True) +price_performance.show() +``` + +![Price Performance](https://github.com/OpenBB-finance/OpenBB/assets/85772166/0de3260d-7fce-490b-90e1-bdfa38d6ab23) + +### Create Bar Chart + +This example uses the `create_bar_chart()` method, which does not replace the existing chart, in `price_performance.chart`. +It isolates the one-month performance and orients the layout as horizontal. + +```python +new_data = price_performance.to_df().set_index("symbol").multiply(100).reset_index() +price_performance.charting.create_bar_chart( + data=new_data, + x="symbol", + y="one_month", + orientation="h", + title="One Month Price Performance", + xtitle="Percent (%)" +) +``` + +![Horizonontal Price Performance](https://github.com/OpenBB-finance/OpenBB/assets/85772166/8da01f73-d7a8-4168-846a-9fa9ed6a0e39) + +## Create Your Own + +This example analyzes the share volume turnover of the S&P 500 Energy Sector constituents, year-to-date. + +```python +symbols = [ + 'XOM', + 'CVX', + 'COP', + 'WMB', + 'EOG', + 'KMI', + 'OKE', + 'MPC', + 'PSX', + 'SLB', + 'VLO', + 'BKR', + 'HES', + 'TRGP', + 'EQT', + 'OXY', + 'TPL', + 'FANG', + 'EXE', + 'DVN', + 'HAL', + 'CTRA', + 'APA', +] +data = obb.equity.price.historical(symbols, start_date="2025-01-01", provider="yfinance") +create_bar_chart = data.charting.create_bar_chart +volume = data.to_df().groupby("symbol").sum()["volume"] +shares = obb.equity.profile( + symbols, provider="yfinance" +).to_df().set_index("symbol")["shares_float"] +df = volume.to_frame().join(shares) +df["Turnover"] = (df.volume/df.shares_float).round(4) +df = df.sort_values(by="Turnover", ascending=False).reset_index() +create_bar_chart( + data=df, + x="symbol", + y="Turnover", + title="S&P Energy Sector YTD Turnover Rate", +) +``` + +![S&P 500 Energy Sector Turnover Rate](https://github.com/OpenBB-finance/OpenBB/assets/85772166/d29a1c17-6d3b-4925-8b7e-f661da404967) diff --git a/openbb_platform/obbject_extensions/charting/index.md b/openbb_platform/obbject_extensions/charting/index.md new file mode 100644 index 0000000000000000000000000000000000000000..3ca1703066009869ffbdca88915fc9234004c50d --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/index.md @@ -0,0 +1,359 @@ +--- +title: OpenBB Charting +sidebar_position: 1 +description: This page introduces the optional openbb-charting extension. +keywords: +- explanation +- OpenBB Platform +- Python client +- Fast API +- getting started +- extensions +- charting +- view +- Plotly +- toolkits +- community +- Plotly +- OpenBBFigure +- PyWry +--- + +import HeadTitle from '@site/src/components/General/HeadTitle.tsx'; + + + +## Overview + +The `openbb-charting` extension provides elements for building and displaying interactive charts, tables, dashboards, and more, directly from the OpenBB Platform's Python Interface and FAST API. + +It allows users to create a custom view, without any previous experience working with Plotly, from any response served by the OpenBB Platform. + +The Python Interface includes a custom [PyWry](https://github.com/OpenBB-finance/pywry) backend for displaying any content, in a WebKit HTML window served over `localhost`. In an IDE setting, they will be rendered inline. + +To install, follow the instructions [here](installation). The sections below provide a general explanation of the extension. + +## How Does It Work? + +It works by extending the `OBBject` class with a new attribute, `charting`. When it is installed, every response from the OpenBB Platform will be equipped with these tools. + +For functions that have pre-defined views, it serves as an intermediary between the user request and the response, activated when `chart=True`. When a chart is created, it will populate the existing, `chart`, attribute of the `OBBject`. This is where it is served by the FAST API from the function request. In the Python Interface, charts can be generated post-request, regardless of `chart=True`. + +The `chart` attribute in the OBBject contains three items, responses from the API have two: + +- `fig`: The OpenBBFigure object - an extended Plotly GraphObjects class. Not included in the API response. +- `content`: The Plotly JSON representation of the chart - Returned to the API. +- `format`: The format of the chart - 'plotly' is currently the only charting library. + +There is one OBBject class method, `show()`, which will display the contents of the `chart` attribute, if populated. + +The new `charting` attribute that binds to the OBBject also has a `show()` method. This differs in that it overwrites the existing chart, effectively a 'reset' for the view. + +The extension has a docstring, and it lists the class methods within `charting`. + +```python +from openbb import obb +data = obb.equity.price.historical("AAPL") +data.charting? +``` + +```console +Charting extension. + +Methods +------- +show + Display chart and save it to the OBBject. +to_chart + Redraw the chart and save it to the OBBject, with an optional entry point for Data. +functions + Return a list of Platform commands with charting functions. +get_params + Return the charting parameters for the function the OBBject was created from. +indicators + Return the list of the available technical indicators to use with the `to_chart` method and OHLC+V data. +table + Display an interactive table. +create_line_chart + Create a line chart from external data. +create_bar_chart + Create a bar chart, on a single x-axis with one or more values for the y-axis, from external data. +``` + +:::note +When creating a chart directly from the OpenBB Platform endpoint, chart parameters must be passed as a nested dictionary under the name, `chart_params`. + +```python +chart_params = dict( + title="AAPL 50/200 Day EMA", + indicators=dict( + ema=dict(length=[50,200]), + ), +) +params = dict( + symbol="AAPL", + start_date="2022-01-01", + provider="yfinance", + chart=True, + chart_params=chart_params, +) +data = obb.equity.price.historical(**params) +``` + +`chart_params` are sent in the body of the request when using the API. +::: + +Passing only `chart=True` will return a default view which can be modified and drawn again post-request, via the `OBBject`. + +```console +OBBject + +id: 06614d74-7443-7201-8000-a65f358136a3 +results: [{'date': datetime.date(2022, 1, 3), 'open': 177.8300018310547, 'high': 18... +provider: yfinance +warnings: None +chart: {'content': {'data': [{'close': [182.00999450683594, 179.6999969482422, 174.... +extra: {'metadata': {'arguments': {'provider_choices': {'provider': 'yfinance'}, 's... +``` + +```python +data.show() +``` + +![candles with ema](https://github.com/OpenBB-finance/OpenBB/assets/85772166/b427d68b-777e-4230-852a-df749c5dbc46) + +### No Render + +The charts can be created without opening the PyWry window, and this is the default behaviour when `chart=True`. +With the `charting.show()` and `charting.to_chart()` methods, the default is `render=True`. +Setting as `False` will return the chart to itself, populating the `chart` attribute of OBBject. + +## What Endpoints Have Charts? + +The OpenBB Platform router, open_api.json, function signatures, and documentation are all generated based on your specific configuration. When the `openbb-charting` extension is installed, any function found in the "[charting_router](https://github.com/OpenBB-finance/OpenBB/blob/develop/openbb_platform/obbject_extensions/charting/openbb_charting/charting_router.py)" adds `chart: bool = False` to the command on build. For example, `obb.index.price.historical?` + +```python +Signature: +obb.index.price.historical( + symbol: Annotated[Union[str, List[str]], OpenBBCustomParameter(description='Symbol to get data for. Multiple comma separated items allowed for provider(s): cboe, fmp, intrinio, polygon, yfinance.')], + ... + chart: typing.Annotated[bool, OpenBBCustomParameter(description='Whether to create a chart or not, by default False.')] = False, + **kwargs, +) -> openbb_core.app.model.obbject.OBBject +``` + +### Charting Functions + +The `charting` attribute of every command output has methods for identifying the charting functions and parameters. +While able to serve JSON-serializable charts, the `openbb-charting` extension is best-suited for use with the Python Interface. Much of the functionality is realized post-request. + +Examine the extension by returning any command at all. + +```python +from openbb import obb + +data = obb.equity.price.historical("SPY,QQQ,XLK,BTC-USD", provider="yfinance") + +data.charting.functions() +``` + +```console +['crypto_price_historical', + 'currency_price_historical', + 'economy_fred_series', + 'equity_price_historical', + 'equity_price_performance', + 'etf_historical', + 'etf_holdings', + 'etf_price_performance', + 'index_price_historical', + 'technical_adx', + 'technical_aroon', + 'technical_cones', + 'technical_ema', + 'technical_hma', + 'technical_macd', + 'technical_rsi', + 'technical_sma', + 'technical_wma', + 'technical_zlma'] +``` + +:::tip +The list above should, as shown here, should not be considered as the source of truth. It's just a sample. +::: + +If the `OBBject` in question has a dedicated charting function associated with it, parameters are detailed by the `get_params()` method. + +```console +EquityPriceHistoricalChartQueryParams + + Parameters + ---------- + + data : Union[Data, list[Data], NoneType] + Filtered versions of the data contained in the original `self.results`. + Columns should be the same as the original data. + Example use is to reduce the number of columns, or the length of data, to plot. + + title : Union[str, NoneType] + Title of the chart. + + target : Union[str, NoneType] + The specific column to target. + If supplied, this will override the candles and volume parameters. + + multi_symbol : bool + Flag to indicate whether the data contains multiple symbols. + This is mostly handled automatically, but if the chart fails to generate try setting this to True. + + same_axis : bool + If True, forces all data to be plotted on the same axis. + + normalize : bool + If True, the data will be normalized and placed on the same axis. + + returns : bool + If True, the cumulative returns for the length of the time series will be calculated and plotted. + + candles : bool + If True, and OHLC exists, and there is only one symbol in the data, candles will be plotted. + + heikin_ashi : bool + If True, and `candles=True`, Heikin Ashi candles will be plotted. + + volume : bool + If True, and volume exists, and `candles=True`, volume will be plotted. + + indicators : Union[ChartIndicators, dict[str, dict[str, Any]], NoneType] + Indicators to be plotted, formatted as a dictionary. + Data containing multiple symbols will ignore indicators. + Example: + indicators = dict( + sma=dict(length=[20,30,50]), + adx=dict(length=14), + rsi=dict(length=14), + ) +``` + +Not all commands will have the same `chart_params`, and some less than others, but it is always possible to redraw the chart with a different combination post-request. Here's what the default chart is from the output of the command above. + +If `chart=True` was not specified, it will need to be created. + +```python +data.charting.to_chart() +``` + +![obb.equity.price.historical()](https://github.com/OpenBB-finance/OpenBB/assets/85772166/9231c455-ee1b-47a8-a627-b0034ea52ecd) + +The extension recognized that multiple symbols were within the object, and made a determination to display cumulative returns by default. + +A candlestick chart will draw only when there is one symbol in the data. + +```python +obb.equity.price.historical( + symbol="XLK", + start_date="2024-01-01", + provider="yfinance", + chart=True, + chart_params=dict(title="XLK YTD", heikin_ashi=True) +).show() +``` + +![obb.equity.price.historical()](https://github.com/OpenBB-finance/OpenBB/assets/85772166/13af30b3-7298-402d-ac32-1f7700cd08fd) + +## Endpoints Without Charts + +Most functions do not have dedicated charts. However, it's still possible to generate one automatically. Using the `data` above, we can try passing it through a quantitative analysis command. + +```python +data = obb.equity.price.historical( + symbol="XLK", + start_date="2023-01-01", + provider="yfinance", +) +qa = obb.quantitative.rolling.stdev(data.results, target="close") + +qa.charting.show(title="XLK Rolling 21 Day Standard Deviation") +``` + +![auto chart](https://github.com/OpenBB-finance/OpenBB/assets/85772166/f87a6648-7365-4529-a254-35897af448ca) + +## Charts From Any Data + +There are methods for creating a generic chart from any external data. +They will bypass any data contained in the parent object, unless specifically fed into itself. + +- charting.create_bar_chart() +- charting.create_line_chart() + +They can also be used as standalone components by initializing an empty instance of the OBBject class. + +```python +from openbb import obb +from openbb_core.app.model.obbject import OBBject +create_bar_chart = OBBject(results=None).charting.create_bar_chart + +create_bar_chart? +```` + +```console +Create a bar chart on a single x-axis with one or more values for the y-axis. + +Parameters +---------- +data : Union[list, dict, pd.DataFrame, List[pd.DataFrame], pd.Series, List[pd.Series], np.ndarray, Data] + Data to plot. +x : str + The x-axis column name. +y : Union[str, List[str]] + The y-axis column name(s). +barmode : Literal["group", "stack", "relative", "overlay"], optional + The bar mode, by default "group". +xtype : Literal["category", "multicategory", "date", "log", "linear"], optional + The x-axis type, by default "category". +title : Optional[str], optional + The title of the chart, by default None. +xtitle : Optional[str], optional + The x-axis title, by default None. +ytitle : Optional[str], optional + The y-axis title, by default None. +orientation : Literal["h", "v"], optional + The orientation of the chart, by default "v". +colors: Optional[List[str]], optional + Manually set the colors to cycle through for each column in 'y', by default None. +layout_kwargs : Optional[Dict[str, Any]], optional + Additional keyword arguments to apply with figure.update_layout(), by default None. + +Returns +------- +OpenBBFigure + The OpenBBFigure object. +``` + +## Tables + +The `openbb-charting` extension is equipped with interactive tables, utilizing the React framework. They are displayed by using the `table` method. + +```python +data = obb.equity.price.quote("AAPL,MSFT,GOOGL,META,TSLA,AMZN", provider="yfinance") +data.charting.table() +``` + +![Interactive Tables](https://github.com/OpenBB-finance/OpenBB/assets/85772166/77f5f812-b933-4ced-929c-c1e39b2a3eed) + +External data can also be supplied, providing an opportunity to filter or apply Pandas operations before display. + +```python +new_df = df.to_df().T +new_df.index.name="metric" +new_df.columns = new_df.loc["symbol"] +new_df.drop("symbol", inplace=True) +data.charting.table(data=new_df) +``` + +![Tables From External Data](https://github.com/OpenBB-finance/OpenBB/assets/85772166/d02f8c34-e1d1-4001-a73e-d3b948a4c5c1) + +:::important +This does not alter the contents of the original object, the displayed data is a copy. +::: diff --git a/openbb_platform/obbject_extensions/charting/indicators.md b/openbb_platform/obbject_extensions/charting/indicators.md new file mode 100644 index 0000000000000000000000000000000000000000..635cb71ce260b09cd9dfb6e6eb4d3ffe2e3c63d3 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/indicators.md @@ -0,0 +1,384 @@ +--- +title: Indicators +sidebar_position: 2 +description: A tutorial of the technical indicators included with the openbb-charting library, including how to get started using them. +keywords: +- tutorial +- OpenBB Platform +- getting started +- extensions +- charting +- view +- Plotly +- toolkits +- indicators +- Plotly +- OpenBBFigure +- PyWry +--- + +import HeadTitle from '@site/src/components/General/HeadTitle.tsx'; + + + +## Introduction + +Select indicators (technical) can be added to a chart where the data is OHLC+V prices over time, and the data is for one symbol only. +They are meant as quick visualizations, and a way to build more complex charts. +As starting points, they can be refined to perfection by manipulating the figure object directly. + +```python +from datetime import datetime, timedelta +from openbb import obb +data = obb.equity.price.historical( + "TSLA", + provider="yfinance", + interval="15m", + start_date=(datetime.now()-timedelta(days=21)).date(), + chart=True, + chart_params=dict( + heikin_ashi=True, + indicators=(dict( + ema=dict(length=[8,32]), + srlines={}, # For indicators, an empty dictionary implies the default state. + rsi=dict(length=32) + )) + ) +) +data.show() +``` + +![TSLA Intraday With Indicators](https://github.com/OpenBB-finance/OpenBB/assets/85772166/7d8d95d8-0383-4e9d-9477-7ad2424328df) + +## Available Indicators + +To get all the indicators, use the `charting.indicators()` method. +The object returned is a Pydantic model where each indicator is field. +If you don't catch it, it will print as a docstring to the console. + +:::danger +Some indicators, like RSI and MACD, create subplots. Only 4 subplots (not including the main candles + volume) can be created within the same view. +::: + +```python +data.charting.indicators() +``` + +```console +SMA: + + Parameters + ---------- + + length : Union[int, list[int]] + Window length for the moving average, by default is 50. + The number is relative to the interval of the time series data. + + offset : int + Number of periods to offset for the moving average, by default is 0. + +EMA: + + Parameters + ---------- + + length : Union[int, list[int]] + Window length for the moving average, by default is 50. + The number is relative to the interval of the time series data. + + offset : int + Number of periods to offset for the moving average, by default is 0. + +HMA: + + Parameters + ---------- + + length : Union[int, list[int]] + Window length for the moving average, by default is 50. + The number is relative to the interval of the time series data. + + offset : int + Number of periods to offset for the moving average, by default is 0. + +WMA: + + Parameters + ---------- + + length : Union[int, list[int]] + Window length for the moving average, by default is 50. + The number is relative to the interval of the time series data. + + offset : int + Number of periods to offset for the moving average, by default is 0. + +ZLMA: + + Parameters + ---------- + + length : Union[int, list[int]] + Window length for the moving average, by default is 50. + The number is relative to the interval of the time series data. + + offset : int + Number of periods to offset for the moving average, by default is 0. + +AD: + + Parameters + ---------- + + offset : int + Offset value for the AD, by default is 0. + +AD Oscillator: + + Parameters + ---------- + + fast : int + Number of periods to use for the fast calculation, by default 3. + + slow : int + Number of periods to use for the slow calculation, by default 10. + + offset : int + Offset to be used for the calculation, by default is 0. + +ADX: + + Parameters + ---------- + + length : int + Window length for the ADX, by default is 50. + + scalar : float + Scalar to multiply the ADX by, default is 100. + + drift : int + Drift value for the ADX, by default is 1. + +Aroon: + + Parameters + ---------- + + length : int + Window length for the Aroon, by default is 50. + + scalar : float + Scalar to multiply the Aroon by, default is 100. + +ATR: + + Parameters + ---------- + + length : int + Window length for the ATR, by default is 14. + + mamode : Literal[rma, ema, sma, wma] + The mode to use for the moving average calculation. + + drift : int + The difference period. + + offset : int + Number of periods to offset the result, by default is 0. + +CCI: + + Parameters + ---------- + + length : int + Window length for the CCI, by default is 14. + + scalar : float + Scalar to multiply the CCI by, default is 0.015. + +Clenow: + + Parameters + ---------- + + period : int + The number of periods for the momentum, by default 90. + +Demark: + + Parameters + ---------- + + show_all : bool + Show 1 - 13. + If set to False, show 6 - 9. + + offset : int + Number of periods to offset the result, by default is 0. + +Donchian: + + Parameters + ---------- + + lower : Union[int, NoneType] + Window length for the lower band, by default is 20. + + upper : Union[int, NoneType] + Window length for the upper band, by default is 20. + + offset : Union[int, NoneType] + Number of periods to offset the result, by default is 0. + +Fib: + + Parameters + ---------- + + period : int + The period to calculate the Fibonacci Retracement, by default 120. + + start_date : Union[str, NoneType] + The start date for the Fibonacci Retracement. + + end_date : Union[str, NoneType] + The end date for the Fibonacci Retracement. + +Fisher: + + Parameters + ---------- + + length : int + Window length for the Fisher Transform, by default is 14. + + signal : int + Fisher Signal Period + +Ichimoku: + + Parameters + ---------- + + conversion : int + The conversion line period, by default 9. + + base : int + The base line period, by default 26. + + lagging : int + The lagging line period, by default 52. + + offset : int + The offset period, by default 26. + + lookahead : bool + Drops the Chikou Span Column to prevent potential data leak + +KC: + + Parameters + ---------- + + length : int + Window length for the Keltner Channel, by default is 20. + + scalar : float + Scalar to multiply the ATR, by default is 2. + + mamode : Literal[ema, sma, wma, hna, zlma, rma] + The mode to use for the moving average calculation, by default is ema. + + offset : int + Number of periods to offset the result, by default is 0. + +MACD: + + Parameters + ---------- + + fast : Union[int, NoneType] + Window length for the fast EMA, by default is 12. + + slow : Union[int, NoneType] + Window length for the slow EMA, by default is 26. + + signal : Union[int, NoneType] + Window length for the signal line, by default is 9. + + scalar : Union[float, NoneType] + Scalar to multiply the MACD by, default is 100. + +OBV: + + Parameters + ---------- + + offset : int + Number of periods to offset the result, by default is 0. + +RSI: + + Parameters + ---------- + + length : int + Window length for the RSI, by default is 14. + + scalar : float + Scalar to multiply the RSI by, default is 100. + + drift : int + Drift value for the RSI, by default is 1. + +SRLines: + + Parameters + ---------- + + show : bool + Show the support and resistance lines. + +Stoch: + + Parameters + ---------- + + fast_k : int + The fast K period, by default 14. + + slow_d : int + The slow D period, by default 3. + + slow_k : int + The slow K period, by default 3. +``` + +The model can be converted to a dictionary and then passed through the `indicators` params. + +The chart below is built from the same object as the one above. + +```python +indicators = data.charting.indicators().dict() +macd=indicators.get("macd") +kc=indicators.get("kc") +chart_params=dict( + candles=False, + title="My New Chart", + indicators=(dict( + macd=macd, + kc=kc, + )) +) +data.charting.to_chart(**chart_params) +``` + +![indicators2](https://github.com/OpenBB-finance/OpenBB/assets/85772166/76c06aff-a568-4b7f-80d4-c58a73c0f1d7) + +:::tip +Data can be exported directly from the chart as a CSV. Use the button at the bottom-right of the mode bar. +::: diff --git a/openbb_platform/obbject_extensions/charting/installation.md b/openbb_platform/obbject_extensions/charting/installation.md new file mode 100644 index 0000000000000000000000000000000000000000..2282d777aebb84003408c56b3cdc5919297155b3 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/installation.md @@ -0,0 +1,71 @@ +--- +title: Installation +sidebar_position: 1 +description: This page outlines the installation of the openbb-charting extension. +keywords: +- tutorial +- OpenBB Platform +- Installation +- Python client +- Fast API +- getting started +- extensions +- charting +- view +- Plotly +- toolkit +- community +- Plotly +- OpenBBFigure +- PyWry +--- + +import HeadTitle from '@site/src/components/General/HeadTitle.tsx'; + + + +## PyPI + +To install the extension, run the following command in this folder: + +```bash +pip install openbb-charting +``` + +> Find the latest version on [PyPI](https://pypi.org/project/openbb-charting/). + +## Editable Mode + +To install from source in editable mode, navigate into the folder, `~/openbb_platform/extensions/charting`, and enter: + +```console +pip install -e . +``` + +After installation, the Python interface will automatically rebuild on initialization. This process can also be triggered manually with: + +```python +import openbb +openbb.build() +``` + +The Python interpreter may need to be restarted. + +## PyWry Dependency In Linux + +When using Linux distributions, the PyWry dependency requires certain dependencies to be installed first. + +- Debian-based / Ubuntu / Mint: +`sudo apt install libwebkit2gtk-4.0-dev` + +- Arch Linux / Manjaro: +`sudo pacman -S webkit2gtk` + +- Fedora: +`sudo dnf install gtk3-devel webkit2gtk3-devel` + +If Rust (Cargo) is required, install it: + +```console +curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh +``` diff --git a/openbb_platform/obbject_extensions/charting/integration/test_charting_api.py b/openbb_platform/obbject_extensions/charting/integration/test_charting_api.py new file mode 100644 index 0000000000000000000000000000000000000000..7076f5728f5610bbdcad78cccfe3e5e339ac4828 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/integration/test_charting_api.py @@ -0,0 +1,908 @@ +"""Integration tests for charting API.""" + +import base64 +import json + +import pytest +import requests +from extensions.tests.conftest import parametrize +from openbb_core.env import Env +from openbb_core.provider.utils.helpers import get_querystring + + +@pytest.fixture(scope="session") +def headers(): + """Headers fixture.""" + return get_headers() + + +# pylint:disable=redefined-outer-name + +data: dict = {} + + +def get_headers(): + """Get headers for requests.""" + if "headers" in data: + return data["headers"] + + userpass = f"{Env().API_USERNAME}:{Env().API_PASSWORD}" + userpass_bytes = userpass.encode("ascii") + base64_bytes = base64.b64encode(userpass_bytes) + + data["headers"] = {"Authorization": f"Basic {base64_bytes.decode('ascii')}"} + return data["headers"] + + +def get_equity_data(): + """Get equity data.""" + if "stocks_data" in data: + return data["stocks_data"] + + url = "http://0.0.0.0:8000/api/v1/equity/price/historical?symbol=AAPL&provider=fmp" + result = requests.get(url, headers=get_headers(), timeout=10) + data["stocks_data"] = result.json()["results"] + + return data["stocks_data"] + + +@parametrize( + "params", + [ + ( + { + "provider": "yfinance", + "symbol": "AAPL", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_equity_price_historical(params, headers): + """Test chart equity price historical..""" + params = {p: v for p, v in params.items() if v} + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/equity/price/historical?{query_str}" + result = requests.get(url, headers=headers, timeout=40) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + ( + { + "provider": "yfinance", + "symbol": "USDGBP", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_currency_price_historical(params, headers): + """Test chart currency price historical.""" + params = {p: v for p, v in params.items() if v} + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/currency/price/historical?{query_str}" + result = requests.get(url, headers=headers, timeout=40) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + ( + { + "provider": "yfinance", + "symbol": "QQQ", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_etf_historical(params, headers): + """Test chart etf historical.""" + params = {p: v for p, v in params.items() if v} + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/etf/historical?{query_str}" + result = requests.get(url, headers=headers, timeout=40) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + ( + { + "provider": "yfinance", + "symbol": "NDX", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_index_price_historical(params, headers): + """Test chart index price historical.""" + params = {p: v for p, v in params.items() if v} + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/index/price/historical?{query_str}" + result = requests.get(url, headers=headers, timeout=40) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + ( + { + "provider": "yfinance", + "symbol": "BTCUSD", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_crypto_price_historical(params, headers): + """Test chart crypto price historical.""" + params = {p: v for p, v in params.items() if v} + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/crypto/price/historical?{query_str}" + result = requests.get(url, headers=headers, timeout=40) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": "", + "index": "date", + "length": "60", + "scalar": "90.0", + "drift": "2", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_technical_adx(params, headers): + """Test chart ta adx.""" + params = {p: v for p, v in params.items() if v} + body = json.dumps(get_equity_data()) + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/technical/adx?{query_str}" + result = requests.post(url, headers=headers, timeout=10, data=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [{"data": "", "index": "date", "length": "30", "scalar": "110", "chart": True}], +) +@pytest.mark.integration +def test_charting_technical_aroon(params, headers): + """Test chart ta aroon.""" + params = {p: v for p, v in params.items() if v} + body = json.dumps(get_equity_data()) + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/technical/aroon?{query_str}" + result = requests.post(url, headers=headers, timeout=10, data=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": "", + "target": "high", + "index": "", + "length": "60", + "offset": "10", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_technical_ema(params, headers): + """Test chart ta ema.""" + params = {p: v for p, v in params.items() if v} + body = json.dumps(get_equity_data()) + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/technical/ema?{query_str}" + result = requests.post(url, headers=headers, timeout=10, data=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": "", + "target": "high", + "index": "date", + "length": "55", + "offset": "2", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_technical_hma(params, headers): + """Test chart ta hma.""" + params = {p: v for p, v in params.items() if v} + body = json.dumps(get_equity_data()) + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/technical/hma?{query_str}" + result = requests.post(url, headers=headers, timeout=10, data=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": "", + "target": "high", + "index": "date", + "fast": "10", + "slow": "30", + "signal": "10", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_technical_macd(params, headers): + """Test chart ta macd.""" + params = {p: v for p, v in params.items() if v} + body = json.dumps(get_equity_data()) + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/technical/macd?{query_str}" + result = requests.post(url, headers=headers, timeout=10, data=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": "", + "target": "high", + "index": "date", + "length": "16", + "scalar": "90.0", + "drift": "2", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_technical_rsi(params, headers): + """Test chart ta rsi.""" + params = {p: v for p, v in params.items() if v} + body = json.dumps(get_equity_data()) + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/technical/rsi?{query_str}" + result = requests.post(url, headers=headers, timeout=10, data=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": "", + "target": "high", + "index": "date", + "length": "55", + "offset": "2", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_technical_sma(params, headers): + """Test chart ta sma.""" + params = {p: v for p, v in params.items() if v} + body = json.dumps(get_equity_data()) + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/technical/sma?{query_str}" + result = requests.post(url, headers=headers, timeout=10, data=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": "", + "target": "high", + "index": "date", + "length": "60", + "offset": "10", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_technical_wma(params, headers): + """Test chart ta wma.""" + params = {p: v for p, v in params.items() if v} + body = json.dumps(get_equity_data()) + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/technical/wma?{query_str}" + result = requests.post(url, headers=headers, timeout=10, data=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": "", + "target": "high", + "index": "date", + "length": "55", + "offset": "5", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_technical_zlma(params, headers): + """Test chart ta zlma.""" + params = {p: v for p, v in params.items() if v} + body = json.dumps(get_equity_data()) + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/technical/zlma?{query_str}" + result = requests.post(url, headers=headers, timeout=10, data=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": "", + "model": "yang_zhang", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_technical_cones(params, headers): + """Test chart ta cones.""" + params = {p: v for p, v in params.items() if v} + body = json.dumps(get_equity_data()) + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/technical/cones?{query_str}" + result = requests.post(url, headers=headers, timeout=10, data=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": None, + "symbol": "DGS10", + "transform": "pc1", + "chart": True, + "provider": "fred", + } + ], +) +@pytest.mark.integration +def test_charting_economy_fred_series(params, headers): + """Test chart ta cones.""" + params = {p: v for p, v in params.items() if v} + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/economy/fred_series?{query_str}" + result = requests.get(url, headers=headers, timeout=10) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + ( + { + "data": "", + "study": "price", + "benchmark": "SPY", + "long_period": 252, + "short_period": 21, + "window": 21, + "trading_periods": 252, + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_technical_relative_rotation(params): + params = {p: v for p, v in params.items() if v} + data_params = dict( + symbol="AAPL,MSFT,GOOGL,AMZN,SPY", + provider="yfinance", + start_date="2022-01-01", + end_date="2024-01-01", + ) + data_query_str = get_querystring(data_params, []) + data_url = f"http://0.0.0.0:8000/api/v1/equity/price/historical?{data_query_str}" + data_result = requests.get(data_url, headers=get_headers(), timeout=10).json()[ + "results" + ] + body = json.dumps({"data": data_result}) + query_str = get_querystring(params, ["data"]) + url = f"http://0.0.0.0:8000/api/v1/technical/relative_rotation?{query_str}" + result = requests.post(url, headers=get_headers(), timeout=10, data=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": None, + "symbol": "XRT,XLB,XLI,XLH,XLC,XLY,XLU,XLK", + "chart": True, + "provider": "finviz", + } + ], +) +@pytest.mark.integration +def test_charting_equity_price_performance(params, headers): + """Test chart equity price performance.""" + params = {p: v for p, v in params.items() if v} + body = ( + json.dumps( + {"extra_params": {"chart_params": {"limit": 4, "orientation": "h"}}} + ), + ) + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/equity/price/performance?{query_str}" + result = requests.get(url, headers=headers, timeout=10, json=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": None, + "symbol": "XRT,XLB,XLI,XLH,XLC,XLY,XLU,XLK", + "chart": True, + "provider": "fmp", + } + ], +) +@pytest.mark.integration +def test_charting_etf_price_performance(params, headers): + """Test chart equity price performance.""" + params = {p: v for p, v in params.items() if v} + body = (json.dumps({"extra_params": {"chart_params": {"orientation": "v"}}}),) + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/etf/price_performance?{query_str}" + result = requests.get(url, headers=headers, timeout=10, json=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": None, + "symbol": "XRT", + "chart": True, + "provider": "fmp", + } + ], +) +@pytest.mark.integration +def test_charting_etf_holdings(params, headers): + """Test chart etf holdings.""" + params = {p: v for p, v in params.items() if v} + body = ( + json.dumps( + {"extra_params": {"chart_params": {"orientation": "v", "limit": 10}}} + ), + ) + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/etf/holdings?{query_str}" + result = requests.get(url, headers=headers, timeout=10, json=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + ( + { + "provider": "econdb", + "country": "united_kingdom", + "date": None, + "chart": True, + } + ), + ( + { + "provider": "fred", + "date": "2023-05-10,2024-05-10", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_fixedincome_government_yield_curve(params, headers): + """Test chart fixedincome government yield curve.""" + params = {p: v for p, v in params.items() if v} + body = (json.dumps({"extra_params": {"chart_params": {"title": "test chart"}}}),) + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/fixedincome/government/yield_curve?{query_str}" + result = requests.get(url, headers=headers, timeout=10, json=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "provider": "yfinance", + "symbol": "ES", + "start_date": "2022-01-01", + "end_date": "2022-02-01", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_derivatives_futures_historical(params, headers): + """Test chart derivatives futures historical.""" + params = {p: v for p, v in params.items() if v} + body = (json.dumps({"extra_params": {"chart_params": {"title": "test chart"}}}),) + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/derivatives/futures/historical?{query_str}" + result = requests.get(url, headers=headers, timeout=10, json=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + ( + { + "provider": "yfinance", + "symbol": "ES", + "date": None, + "chart": True, + } + ), + ( + { + "provider": "cboe", + "symbol": "VX", + "date": "2024-06-25", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_derivatives_futures_curve(params, headers): + """Test chart derivatives futures curve.""" + params = {p: v for p, v in params.items() if v} + body = (json.dumps({"extra_params": {"chart_params": {"title": "test chart"}}}),) + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/derivatives/futures/curve?{query_str}" + result = requests.get(url, headers=headers, timeout=30, json=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "provider": "fmp", + "symbol": "AAPL", + "start_date": "2024-01-01", + "end_date": "2024-06-30", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_equity_historical_market_cap(params, headers): + """Test chart equity historical market cap.""" + params = {p: v for p, v in params.items() if v} + body = (json.dumps({"extra_params": {"chart_params": {"title": "test chart"}}}),) + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/equity/historical_market_cap?{query_str}" + result = requests.get(url, headers=headers, timeout=10, json=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + ( + { + "provider": "bls", + "symbol": "APUS49D74714,APUS49D74715,APUS49D74716", + "start_date": "2014-01-01", + "end_date": "2024-07-01", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_economy_survey_bls_series(params, headers): + """Test chart economy survey bls series.""" + params = {p: v for p, v in params.items() if v} + body = (json.dumps({"extra_params": {"chart_params": {"title": "test chart"}}}),) + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/economy/survey/bls_series?{query_str}" + result = requests.get(url, headers=headers, timeout=10, json=body) + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] + + +@parametrize( + "params", + [ + { + "data": "", + "method": "pearson", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_econometrics_correlation_matrix(params, headers): + """Test chart econometrics correlation matrix.""" + # pylint:disable=import-outside-toplevel + from pandas import DataFrame + + url = "http://0.0.0.0:8000/api/v1/equity/price/historical?symbol=AAPL,MSFT,GOOG&provider=yfinance" + result = requests.get(url, headers=headers, timeout=10) + df = DataFrame(result.json()["results"]) + df = df.pivot(index="date", columns="symbol", values="close").reset_index() + body = df.to_dict(orient="records") + + params = {p: v for p, v in params.items() if v} + + query_str = get_querystring(params, []) + url = f"http://0.0.0.0:8000/api/v1/econometrics/correlation_matrix?{query_str}" + result = requests.post(url, headers=headers, timeout=10, data=json.dumps(body)) + + assert isinstance(result, requests.Response) + assert result.status_code == 200 + + chart = result.json()["chart"] + fig = chart.pop("fig", {}) + + assert chart + assert not fig + assert list(chart.keys()) == ["content", "format"] diff --git a/openbb_platform/obbject_extensions/charting/integration/test_charting_python.py b/openbb_platform/obbject_extensions/charting/integration/test_charting_python.py new file mode 100644 index 0000000000000000000000000000000000000000..4d9481278ba6fe039ad456265a35b88920af5fe5 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/integration/test_charting_python.py @@ -0,0 +1,747 @@ +"""Test charting extension.""" + +import pytest +from extensions.tests.conftest import parametrize +from openbb_charting.core.openbb_figure import OpenBBFigure +from openbb_core.app.model.obbject import OBBject + + +# pylint:disable=inconsistent-return-statements +@pytest.fixture(scope="session") +def obb(pytestconfig): + """Fixture to setup obb.""" + if pytestconfig.getoption("markexpr") != "not integration": + import openbb # pylint:disable=import-outside-toplevel + + return openbb.obb + + +# pylint:disable=redefined-outer-name + +data: dict = {} + + +def get_equity_data(): + """Get equity data.""" + import openbb # pylint:disable=import-outside-toplevel + + if "stocks_data" in data: + return data["stocks_data"] + + symbol = "AAPL" + provider = "fmp" + + data["stocks_data"] = openbb.obb.equity.price.historical( + symbol=symbol, provider=provider + ).results + return data["stocks_data"] + + +@parametrize( + "params", + [ + ( + { + "provider": "yfinance", + "symbol": "AAPL", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_equity_price_historical(params, obb): + """Test chart equity price historical.""" + result = obb.equity.price.historical(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "provider": "yfinance", + "symbol": "JPYUSD", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_currency_price_historical(params, obb): + """Test chart currency price historical.""" + result = obb.currency.price.historical(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "provider": "yfinance", + "symbol": "BTCUSD", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_crypto_price_historical(params, obb): + """Test chart crypto price historical.""" + result = obb.crypto.price.historical(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "provider": "yfinance", + "symbol": "NDX", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_index_price_historical(params, obb): + """Test chart index price historical.""" + result = obb.index.price.historical(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "provider": "yfinance", + "symbol": "QQQ", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_etf_historical(params, obb): + """Test chart etf historical.""" + result = obb.etf.historical(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "data": "", + "index": "date", + "length": "60", + "scalar": "90.0", + "drift": "2", + "chart": "True", + } + ), + ], +) +@pytest.mark.integration +def test_charting_technical_adx(params, obb): + """Test chart ta adx.""" + params = {p: v for p, v in params.items() if v} + + params["data"] = get_equity_data() + + result = obb.technical.adx(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "data": "", + "index": "date", + "length": "30", + "scalar": "110", + "chart": "True", + } + ), + ], +) +@pytest.mark.integration +def test_charting_technical_aroon(params, obb): + """Test chart ta aroon.""" + params = {p: v for p, v in params.items() if v} + + params["data"] = get_equity_data() + + result = obb.technical.aroon(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "data": "", + "target": "high", + "index": "", + "length": "60", + "offset": "10", + "chart": "True", + } + ), + ], +) +@pytest.mark.integration +def test_charting_technical_ema(params, obb): + """Test chart ta ema.""" + params = {p: v for p, v in params.items() if v} + + params["data"] = get_equity_data() + + result = obb.technical.ema(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "data": "", + "target": "high", + "index": "date", + "length": "55", + "offset": "2", + "chart": "True", + } + ), + ], +) +@pytest.mark.integration +def test_charting_technical_hma(params, obb): + """Test chart ta hma.""" + params = {p: v for p, v in params.items() if v} + + params["data"] = get_equity_data() + + result = obb.technical.hma(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "data": "", + "target": "high", + "index": "date", + "fast": "10", + "slow": "30", + "signal": "10", + "chart": "True", + } + ), + ], +) +@pytest.mark.integration +def test_charting_technical_macd(params, obb): + """Test chart ta macd.""" + params = {p: v for p, v in params.items() if v} + + params["data"] = get_equity_data() + + result = obb.technical.macd(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "data": "", + "target": "high", + "index": "date", + "length": "16", + "scalar": "90.0", + "drift": "2", + "chart": "True", + } + ), + ], +) +@pytest.mark.integration +def test_charting_technical_rsi(params, obb): + """Test chart ta rsi.""" + params = {p: v for p, v in params.items() if v} + + params["data"] = get_equity_data() + + result = obb.technical.rsi(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "data": "", + "target": "high", + "index": "date", + "length": "55", + "offset": "2", + "chart": "True", + } + ), + ], +) +@pytest.mark.integration +def test_charting_technical_sma(params, obb): + """Test chart ta sma.""" + params = {p: v for p, v in params.items() if v} + + params["data"] = get_equity_data() + + result = obb.technical.sma(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "data": "", + "target": "high", + "index": "date", + "length": "60", + "offset": "10", + "chart": "True", + } + ), + ], +) +@pytest.mark.integration +def test_charting_technical_wma(params, obb): + """Test chart ta wma.""" + params = {p: v for p, v in params.items() if v} + + params["data"] = get_equity_data() + + result = obb.technical.wma(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "data": "", + "target": "high", + "index": "date", + "length": "55", + "offset": "5", + "chart": "True", + } + ), + ], +) +@pytest.mark.integration +def test_charting_technical_zlma(params, obb): + """Test chart ta zlma.""" + params = {p: v for p, v in params.items() if v} + + params["data"] = get_equity_data() + + result = obb.technical.zlma(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + { + "data": "", + "model": "yang_zhang", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_technical_cones(params, obb): + """Test chart ta cones.""" + params = {p: v for p, v in params.items() if v} + + params["data"] = get_equity_data() + + result = obb.technical.cones(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + { + "data": None, + "symbol": "DGS10", + "transform": "pc1", + "chart": True, + "provider": "fred", + } + ], +) +@pytest.mark.integration +def test_charting_economy_fred_series(params, obb): + """Test chart economy fred series.""" + result = obb.economy.fred_series(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "data": "", + "study": "price", + "benchmark": "SPY", + "long_period": 252, + "short_period": 21, + "window": 21, + "trading_periods": 252, + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_technical_relative_rotation(params, obb): + params["data"] = obb.equity.price.historical( + "AAPL,MSFT,GOOGL,AMZN,SPY", + provider="yfinance", + start_date="2022-01-01", + end_date="2024-01-01", + ).results + result = obb.technical.relative_rotation( + data=params["data"], + benchmark=params["benchmark"], + study=params["study"], + long_period=params["long_period"], + short_period=params["short_period"], + window=params["window"], + trading_periods=params["trading_periods"], + chart=params["chart"], + ) + assert result + assert isinstance(result, OBBject) + assert len(result.results.rs_ratios) > 0 # type: ignore + assert result.chart.content # type: ignore + assert isinstance(result.chart.fig, OpenBBFigure) # type: ignore + + +@parametrize( + "params", + [ + { + "data": None, + "symbol": "XRT,XLB,XLI,XLH,XLC,XLY,XLU,XLK", + "chart": True, + "provider": "finviz", + "chart_params": {"limit": 4, "orientation": "h"}, + } + ], +) +@pytest.mark.integration +def test_charting_equity_price_performance(params, obb): + """Test chart equity price performance.""" + result = obb.equity.price.performance(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + { + "data": None, + "symbol": "XRT,XLB,XLI,XLH,XLC,XLY,XLU,XLK", + "chart": True, + "provider": "fmp", + "chart_params": {"orientation": "v"}, + } + ], +) +@pytest.mark.integration +def test_charting_etf_price_performance(params, obb): + """Test chart etf price performance.""" + result = obb.etf.price_performance(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + { + "data": None, + "symbol": "XRT", + "chart": True, + "provider": "fmp", + "chart_params": {"orientation": "v", "limit": 10}, + } + ], +) +@pytest.mark.integration +def test_charting_etf_holdings(params, obb): + """Test chart etf holdings.""" + result = obb.etf.holdings(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "provider": "econdb", + "country": "united_kingdom", + "date": None, + "chart": True, + } + ), + ( + { + "provider": "fred", + "date": "2023-05-10,2024-05-10", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_fixedincome_government_yield_curve(params, obb): + """Test chart fixedincome government yield curve.""" + result = obb.fixedincome.government.yield_curve(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + { + "provider": "yfinance", + "symbol": "ES", + "start_date": "2022-01-01", + "end_date": "2022-02-01", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_derivatives_futures_historical(params, obb): + """Test chart derivatives futures historical.""" + result = obb.derivatives.futures.historical(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "provider": "yfinance", + "symbol": "ES", + "date": None, + "chart": True, + } + ), + ( + { + "provider": "cboe", + "symbol": "VX", + "date": "2024-06-25", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_derivatives_futures_curve(params, obb): + """Test chart derivatives futures curve.""" + result = obb.derivatives.futures.curve(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "provider": "fmp", + "symbol": "AAPL", + "start_date": "2024-01-01", + "end_date": "2024-06-30", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_equity_historical_market_cap(params, obb): + """Test chart equity historical market cap.""" + result = obb.equity.historical_market_cap(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + ( + { + "provider": "bls", + "symbol": "APUS49D74714,APUS49D74715,APUS49D74716", + "start_date": "2014-01-01", + "end_date": "2024-07-01", + "chart": True, + } + ), + ], +) +@pytest.mark.integration +def test_charting_economy_survey_bls_series(params, obb): + """Test chart economy survey bls series.""" + result = obb.economy.survey.bls_series(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) + + +@parametrize( + "params", + [ + { + "data": "", + "method": "pearson", + "chart": True, + } + ], +) +@pytest.mark.integration +def test_charting_econometrics_correlation_matrix(params, obb): + """Test chart econometrics correlation matrix.""" + + symbols = "XRT,XLB,XLI,XLH,XLC,XLY,XLU,XLK".split(",") + params["data"] = ( + obb.equity.price.historical(symbol=symbols, provider="yfinance") + .to_df() + .pivot(columns="symbol", values="close") + .filter(items=symbols, axis=1) + ) + result = obb.econometrics.correlation_matrix(**params) + assert result + assert isinstance(result, OBBject) + assert len(result.results) > 0 + assert result.chart.content + assert isinstance(result.chart.fig, OpenBBFigure) diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/__init__.py b/openbb_platform/obbject_extensions/charting/openbb_charting/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..f3e8cab7d8797476827b0390f860d02c2130e307 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/__init__.py @@ -0,0 +1,25 @@ +"""OpenBB OBBject extension for charting.""" + +import warnings + +from openbb_core.app.model.extension import Extension + +warnings.filterwarnings( + "ignore", + category=UserWarning, + module="openbb_core.app.model.extension", +) + + +def get_charting_module(): + """Get the Charting module.""" + # pylint: disable=import-outside-toplevel + import importlib + + _Charting = importlib.import_module("openbb_charting.charting").Charting + return _Charting + + +ext = Extension(name="charting", description="Create custom charts from OBBject data.") + +Charting = ext.obbject_accessor(get_charting_module()) diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/charting.py b/openbb_platform/obbject_extensions/charting/openbb_charting/charting.py new file mode 100644 index 0000000000000000000000000000000000000000..119a2b9337d37fa4678dac82bbb8451e3fcfe777 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/charting.py @@ -0,0 +1,681 @@ +"""Charting Class implementation.""" + +# pylint: disable=too-many-arguments,unused-argument,too-many-positional-arguments + +from typing import ( + TYPE_CHECKING, + Any, + Callable, + ClassVar, + Dict, + List, + Literal, + Optional, + Tuple, + Type, + Union, +) +from warnings import warn + +from importlib_metadata import entry_points +from openbb_core.app.model.charts.chart import Chart +from openbb_core.app.model.obbject import OBBject +from openbb_core.provider.abstract.data import Data + +from openbb_charting.charts.helpers import ( + get_charting_functions, + get_charting_functions_list, +) + +if TYPE_CHECKING: + from numpy import ndarray # noqa + from pandas import DataFrame, Series # noqa + from plotly.graph_objs import Figure # noqa + from openbb_charting.core.openbb_figure import OpenBBFigure # noqa + from openbb_charting.query_params import ChartParams # noqa + from openbb_charting.core.backend import Backend # noqa + + +class Charting: + """Charting extension. + + Methods + ------- + show + Display chart and save it to the OBBject. + to_chart + Redraw the chart and save it to the OBBject, with an optional entry point for Data. + functions + Return a list of Platform commands with charting functions. + get_params + Return the charting parameters for the function the OBBject was created from. + indicators + Return the list of the available technical indicators to use with the `to_chart` method and OHLC+V data. + table + Display an interactive table. + create_line_chart + Create a line chart from external data. + create_bar_chart + Create a bar chart, on a single x-axis with one or more values for the y-axis, from external data. + create_correlation_matrix + Create a correlation matrix from external data. + toggle_chart_style + Toggle the chart style, of an existing chart, between light and dark mode. + """ + + _extension_views: ClassVar[List[Type]] = [ + entry_point.load() + for entry_point in entry_points(group="openbb_charting_extension") + ] + _format = "plotly" # the charts computed by this extension will be in plotly format + + def __init__(self, obbject): + """Initialize Charting extension.""" + # pylint: disable=import-outside-toplevel + import importlib # noqa + + charting_settings_module = importlib.import_module( + "openbb_core.app.model.charts.charting_settings", "ChartingSettings" + ) + ChartingSettings = charting_settings_module.ChartingSettings + + self._obbject: OBBject = obbject + self._charting_settings = ChartingSettings( + user_settings=self._obbject._user_settings, # type: ignore + system_settings=self._obbject._system_settings, # type: ignore + ) + self._backend = self._handle_backend() + self._functions: Dict[str, Callable] = self._get_functions() + + @classmethod + def indicators(cls): + """Return an instance of the IndicatorsParams class, containing all available indicators and their parameters. + + Without assigning to a variable, it will print the the information to the console. + """ + # pylint: disable=import-outside-toplevel + from openbb_charting.query_params import IndicatorsParams + + return IndicatorsParams() + + @classmethod + def functions(cls) -> List[str]: + """Return a list of the available functions.""" + functions: List[str] = [] + for view in cls._extension_views: + functions.extend(get_charting_functions_list(view)) + + return functions + + def _get_functions(self) -> Dict[str, Callable]: + """Return a dict with the available functions.""" + functions: Dict[str, Callable] = {} + for view in self._extension_views: + functions.update(get_charting_functions(view)) + + return functions + + def _handle_backend(self) -> "Backend": + """Create and start the backend.""" + # pylint: disable=import-outside-toplevel + from openbb_charting.core.backend import create_backend, get_backend + + create_backend(self._charting_settings) + backend = get_backend() + backend.start(debug=self._charting_settings.debug_mode) + return backend + + def _get_chart_function(self, route: str) -> Callable: + """Given a route, it returns the chart function. The module must contain the given route.""" + if route is None: + raise ValueError("OBBject was initialized with no function route.") + adjusted_route = route.replace("/", "_")[1:] + if adjusted_route not in self._functions: + raise ValueError( + f"Could not find the route `{adjusted_route}` in the charting functions." + ) + return self._functions[adjusted_route] + + def get_params(self) -> Union["ChartParams", None]: + """Return the ChartQueryParams class for the function the OBBject was created from. + + Without assigning to a variable, it will print the docstring to the console. + If the class is not defined, the help for the function will be returned. + """ + # pylint: disable=import-outside-toplevel + from openbb_charting.query_params import ChartParams + + if self._obbject._route is None: # pylint: disable=protected-access + raise ValueError("OBBject was initialized with no function route.") + charting_function = ( + self._obbject._route # pylint: disable=protected-access + ).replace("/", "_")[1:] + if hasattr(ChartParams, charting_function): + return getattr(ChartParams, charting_function)() + + return help( # type: ignore + self._get_chart_function( # pylint: disable=protected-access + self._obbject.extra[ # pylint: disable=protected-access + "metadata" + ].route + ) + ) + + def _prepare_data_as_df( + self, data: Optional[Union["DataFrame", "Series"]] + ) -> Tuple["DataFrame", bool]: + """Convert supplied data to a DataFrame.""" + # pylint: disable=import-outside-toplevel + from openbb_core.app.utils import basemodel_to_df, convert_to_basemodel + from pandas import DataFrame, Series + + has_data = ( + isinstance(data, (Data, DataFrame, Series)) and not data.empty # type: ignore + ) or (bool(data)) + index = ( + data.index.name + if has_data and isinstance(data, (DataFrame, Series)) + else None + ) + data_as_df: DataFrame = ( + basemodel_to_df(convert_to_basemodel(data), index=index) + if has_data + else self._obbject.to_dataframe(index=index) + ) + if "date" in data_as_df.columns: + data_as_df = data_as_df.set_index("date") + if "provider" in data_as_df.columns: + data_as_df.drop(columns="provider", inplace=True) + return data_as_df, has_data + + # pylint: disable=too-many-locals + def create_line_chart( + self, + data: Union[ + list, + dict, + "DataFrame", + List["DataFrame"], + "Series", + List["Series"], + "ndarray", + Data, + ], + index: Optional[str] = None, + target: Optional[str] = None, + title: Optional[str] = None, + x: Optional[str] = None, + xtitle: Optional[str] = None, + y: Optional[Union[str, List[str]]] = None, + ytitle: Optional[str] = None, + y2: Optional[Union[str, List[str]]] = None, + y2title: Optional[str] = None, + layout_kwargs: Optional[dict] = None, + scatter_kwargs: Optional[dict] = None, + normalize: bool = False, + returns: bool = False, + same_axis: bool = False, + render: bool = True, + **kwargs, + ) -> Union["OpenBBFigure", "Figure", None]: + """Create a line chart from external data and render a chart or return the OpenBBFigure. + + Parameters + ---------- + data : Union[Data, DataFrame, Series] + Data to be plotted (OHLCV data). + index : Optional[str], optional + Index column, by default None + target : Optional[str], optional + Target column to be plotted, by default None + title : Optional[str], optional + Chart title, by default None + x : Optional[str], optional + X-axis column, by default None + xtitle : Optional[str], optional + X-axis title, by default None + y : Optional[Union[str, List[str]]], optional + Y-axis column(s), by default None + If None are supplied, the layout is optimized for the contents of data. + Where many units/scales are present, + it will attempt to divide based on the range of values. + ytitle : Optional[str], optional + Y-axis title, by default None + y2 : Optional[Union[str, List[str]]], optional + Y2-axis column(s), by default None + y2title : Optional[str], optional + Y2-axis title, by default None + layout_kwargs : Optional[dict], optional + Additional Plotly Layout parameters for `fig.update_layout`, by default None + scatter_kwargs : Optional[dict], optional + Additional Plotly parameters applied on creation of each scatter plot, by default None + normalize : bool, optional + Normalize the data with Z-Score Standardization, by default False + returns : bool, optional + Convert the data to cumulative returns, by default False + same_axis: bool, optional + If True, forces all data onto the same Y-axis, by default False + render: bool, optional + If True, the chart will be rendered, by default True + **kwargs: Dict[str, Any] + Extra parameters to be passed to `figure.show()` + """ + # pylint: disable=import-outside-toplevel + from openbb_charting.charts.generic_charts import line_chart + + fig = line_chart( + data=data, + index=index, + target=target, + title=title, + x=x, + xtitle=xtitle, + y=y, + ytitle=ytitle, + y2=y2, + y2title=y2title, + layout_kwargs=layout_kwargs, + scatter_kwargs=scatter_kwargs, + normalize=normalize, + returns=returns, + same_axis=same_axis, + **kwargs, + ) + fig = self._set_chart_style(fig) + if render: + return fig.show(**kwargs) + + return fig + + def create_bar_chart( + self, + data: Union[ + list, + dict, + "DataFrame", + List["DataFrame"], + "Series", + List["Series"], + "ndarray", + Data, + ], + x: str, + y: Union[str, List[str]], + barmode: Literal["group", "stack", "relative", "overlay"] = "group", + xtype: Literal[ + "category", "multicategory", "date", "log", "linear" + ] = "category", + title: Optional[str] = None, + xtitle: Optional[str] = None, + ytitle: Optional[str] = None, + orientation: Literal["h", "v"] = "v", + colors: Optional[List[str]] = None, + layout_kwargs: Optional[Dict[str, Any]] = None, + bar_kwargs: Optional[Dict[str, Any]] = None, + render: bool = True, + **kwargs, + ) -> Union["OpenBBFigure", "Figure", None]: + """Create a bar chart on a single x-axis with one or more values for the y-axis. + + Parameters + ---------- + data : Union[list, dict, DataFrame, List[DataFrame], Series, List[Series], ndarray, Data] + Data to plot. + x : str + The x-axis column name. + y : Union[str, List[str]] + The y-axis column name(s). + barmode : Literal["group", "stack", "relative", "overlay"], optional + The bar mode, by default "group". + xtype : Literal["category", "multicategory", "date", "log", "linear"], optional + The x-axis type, by default "category". + title : str, optional + The title of the chart, by default None. + xtitle : str, optional + The x-axis title, by default None. + ytitle : str, optional + The y-axis title, by default None. + colors: List[str], optional + Manually set the colors to cycle through for each column in 'y', by default None. + bar_kwargs : Dict[str, Any], optional + Additional keyword arguments to apply with figure.add_bar(), by default None. + layout_kwargs : Dict[str, Any], optional + Additional keyword arguments to apply with figure.update_layout(), by default None. + Returns + ------- + OpenBBFigure + The OpenBBFigure object. + """ + # pylint: disable=import-outside-toplevel + from openbb_charting.charts.generic_charts import bar_chart + + fig = bar_chart( + data=data, + x=x, + y=y, + barmode=barmode, + xtype=xtype, + title=title, + xtitle=xtitle, + ytitle=ytitle, + orientation=orientation, + colors=colors, + bar_kwargs=bar_kwargs, + layout_kwargs=layout_kwargs, + ) + fig = self._set_chart_style(fig) + if render: + return fig.show(**kwargs) + + return fig + + def create_correlation_matrix( + self, + data: Union[ + list[Data], + "DataFrame", + ], + method: Literal["pearson", "kendall", "spearman"] = "pearson", + colorscale: str = "RdBu", + title: str = "Asset Correlation Matrix", + layout_kwargs: Optional[Dict[str, Any]] = None, + ): + """Create a correlation matrix from external data. + + Parameters + ---------- + data : Union[list[Data], DataFrame] + Input dataset. + method : Literal["pearson", "kendall", "spearman"] + Method to use for correlation calculation. Default is "pearson". + pearson : standard correlation coefficient + kendall : Kendall Tau correlation coefficient + spearman : Spearman rank correlation + colorscale : str + Plotly colorscale to use for the heatmap. Default is "RdBu". + title : str + Title of the chart. Default is "Asset Correlation Matrix". + layout_kwargs : Dict[str, Any] + Additional keyword arguments to apply with figure.update_layout(), by default None. + + Returns + ------- + OpenBBFigure + The OpenBBFigure object. + """ + # pylint: disable=import-outside-toplevel + from openbb_charting.charts.correlation_matrix import correlation_matrix + + kwargs = { + "data": data, + "method": method, + "colorscale": colorscale, + "title": title, + "layout_kwargs": layout_kwargs, + } + fig, _ = correlation_matrix(**kwargs) + fig = self._set_chart_style(fig) + return fig + + # pylint: disable=inconsistent-return-statements + def show(self, render: bool = True, **kwargs): + """Display chart and save it to the OBBject.""" + try: + charting_function = self._get_chart_function( + self._obbject._route # pylint: disable=protected-access + ) + kwargs["obbject_item"] = self._obbject.results + kwargs["charting_settings"] = self._charting_settings + kwargs["standard_params"] = ( + self._obbject._standard_params # pylint: disable=protected-access + ) + kwargs["extra_params"] = ( + self._obbject._extra_params # pylint: disable=protected-access + ) + kwargs["provider"] = self._obbject.provider + kwargs["extra"] = self._obbject.extra + fig, content = charting_function(**kwargs) + fig = self._set_chart_style(fig) + content = fig.show(external=True, **kwargs).to_plotly_json() + self._obbject.chart = Chart(fig=fig, content=content, format=self._format) + if render: + fig.show(**kwargs) + except Exception: # pylint: disable=W0718 + try: + fig = self.create_line_chart(data=self._obbject.results, render=False, **kwargs) # type: ignore + fig = self._set_chart_style(fig) + content = fig.show(external=True, **kwargs).to_plotly_json() # type: ignore + self._obbject.chart = Chart( + fig=fig, content=content, format=self._format + ) + if render: + return fig.show(**kwargs) # type: ignore + except Exception as e: + raise RuntimeError( + "Failed to automatically create a generic chart with the data provided." + ) from e + + # pylint: disable=too-many-locals,inconsistent-return-statements + def to_chart( + self, + data: Optional[ + Union[ + list, + dict, + "DataFrame", + List["DataFrame"], + "Series", + List["Series"], + "ndarray", + Data, + ] + ] = None, + target: Optional[str] = None, + index: Optional[str] = None, + indicators: Optional[Dict[str, Dict[str, Any]]] = None, + symbol: str = "", + candles: bool = True, + volume: bool = True, + volume_ticks_x: int = 7, + render: bool = True, + **kwargs, + ): + """Create an OpenBBFigure with user customizations (if any) and save it to the OBBject. + + This function is used to populate, or re-populate, the OBBject with a chart using the data within + the OBBject or external data supplied via the `data` parameter. + This function modifies the original OBBject by overwriting the existing chart. + + Parameters + ---------- + data : Union[Data, DataFrame, Series] + Data to be plotted. + indicators : Dict[str, Dict[str, Any]], optional + Indicators to be plotted, by default None + symbol : str, optional + Symbol to be plotted. This is used for labels and titles, by default "" + candles : bool, optional + If True, candles will be plotted, by default True + volume : bool, optional + If True, volume will be plotted, by default True + volume_ticks_x : int, optional + Volume ticks, by default 7 + render : bool, optional + If True, the chart will be rendered, by default True + kwargs: Dict[str, Any] + Extra parameters to be passed to the chart constructor. + + Examples + -------- + Plotting a time series with TA indicators + + >>> from openbb import obb + >>> res = obb.equity.price.historical("AAPL") + >>> indicators = dict( + >>> sma=dict(length=[20,30,50]), + >>> adx=dict(length=14), + >>> rsi=dict(length=14), + >>> macd=dict(fast=12, slow=26, signal=9), + >>> bbands=dict(length=20, std=2), + >>> stoch=dict(length=14), + >>> ema=dict(length=[20,30,50]), + >>> ) + >>> res.charting.to_chart(**{"indicators": indicators}) + + Get all the available indicators + + >>> res = obb.equity.price.historical("AAPL") + >>> indicators = res.charting.indicators() + >>> indicators? + """ + data_as_df, has_data = self._prepare_data_as_df(data) # type: ignore + if target is not None: + data_as_df = data_as_df[[target]] + kwargs["candles"] = candles + kwargs["volume"] = volume + kwargs["volume_ticks_x"] = volume_ticks_x + kwargs["indicators"] = indicators if indicators else {} + kwargs["symbol"] = symbol + kwargs["target"] = target + kwargs["index"] = index + kwargs["obbject_item"] = self._obbject.results + kwargs["charting_settings"] = self._charting_settings + kwargs["standard_params"] = ( + self._obbject._standard_params # pylint: disable=protected-access + ) + kwargs["extra_params"] = ( + self._obbject._extra_params # pylint: disable=protected-access + ) + kwargs["provider"] = self._obbject.provider # pylint: disable=protected-access + kwargs["extra"] = self._obbject.extra # pylint: disable=protected-access + try: + if has_data: + self.show(data=data_as_df, render=render, **kwargs) + else: + self.show(**kwargs, render=render) + except Exception: # pylint: disable=W0718 + try: + fig = self.create_line_chart(data=data_as_df, render=False, **kwargs) + fig = self._set_chart_style(fig) + content = fig.show(external=True, **kwargs).to_plotly_json() # type: ignore + self._obbject.chart = Chart( + fig=fig, content=content, format=self._format + ) + if render: + return fig.show(**kwargs) # type: ignore + except Exception as e: # pylint: disable=W0718 + raise RuntimeError( + "Failed to automatically create a generic chart with the data provided." + ) from e + + def _set_chart_style(self, figure: "Figure"): + """Set the user preference for light or dark mode.""" + style = self._charting_settings.chart_style + font_color = "black" if style == "light" else "white" + paper_bgcolor = "white" if style == "light" else "black" + figure = figure.update_layout( + dict( # pylint: disable=R1735 + font_color=font_color, paper_bgcolor=paper_bgcolor + ) + ) + return figure + + def toggle_chart_style(self): + """Toggle the chart style between light and dark mode.""" + if not hasattr(self._obbject.chart, "fig"): + raise ValueError( + "Error: No chart has been created. Please create a chart first." + ) + current = self._charting_settings.chart_style + new = "light" if current == "dark" else "dark" + self._charting_settings.chart_style = new + figure = self._obbject.chart.fig # type: ignore[union-attr] + updated_figure = self._set_chart_style(figure) + self._obbject.chart.fig = updated_figure # type: ignore[union-attr] + self._obbject.chart.content = updated_figure.show( # type: ignore[union-attr] + external=True + ).to_plotly_json() + + @staticmethod + def _convert_to_string(x): + """Sanitize the data for the table.""" + # pylint: disable=import-outside-toplevel + from numpy import isnan + + if isinstance(x, (float, int)) and not isnan(x): + return x + if isinstance(x, dict): + return ", ".join([str(v) for v in x.values()]) + if isinstance(x, list): + if all(isinstance(i, dict) for i in x): + return ", ".join( + str(", ".join([str(v) for v in i.values()])) for i in x + ) + return ", ".join([str(i) for i in x]) + + return ( + str(x) + .replace("[", "") + .replace("]", "") + .replace("'{", "") + .replace("}'", "") + .replace("nan", "") + ) + + def table( + self, + data: Optional[Union["DataFrame", "Series"]] = None, + title: str = "", + ): + """Display an interactive table. + + Parameters + ---------- + data : Optional[Union[DataFrame, Series]], optional + Data to be plotted, by default None. + If no data is provided the OBBject results will be used. + title : str, optional + Title of the table, by default "". + """ + # pylint: disable=import-outside-toplevel + from pandas import RangeIndex + + data_as_df, _ = self._prepare_data_as_df(data) + if isinstance(data_as_df.index, RangeIndex): + data_as_df.reset_index(inplace=True, drop=True) + else: + data_as_df.reset_index(inplace=True) + for col in data_as_df.columns: + data_as_df[col] = data_as_df[col].apply(self._convert_to_string) + if self._backend.isatty: + try: + self._backend.send_table( + df_table=data_as_df, + title=title + or self._obbject._route, # pylint: disable=protected-access + theme=self._charting_settings.table_style, + ) + except Exception as e: # pylint: disable=W0718 + warn(f"Failed to show figure with backend. {e}") + + else: + from plotly import optional_imports + + ipython_display = optional_imports.get_module("IPython.display") + if ipython_display: + ipython_display.display(ipython_display.HTML(data_as_df.to_html())) + else: + warn("IPython.display is not available.") + + def url( + self, + url: str, + title: str = "", + width: Optional[int] = None, + height: Optional[int] = None, + ): + """Return the URL of the chart.""" + try: + self._backend.send_url(url=url, title=title, width=width, height=height) + except Exception as e: # pylint: disable=W0718 + warn(f"Failed to show figure with backend. {e}") diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/charts/__init__.py b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..cdba7aca0feaa5f29fb351f97298121cafe8ffb6 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/__init__.py @@ -0,0 +1 @@ +"""OpenBB Charting utils.""" diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/charts/correlation_matrix.py b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/correlation_matrix.py new file mode 100644 index 0000000000000000000000000000000000000000..6321f263e04cd98c92349787e1c1ab97fc7c2ddf --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/correlation_matrix.py @@ -0,0 +1,119 @@ +"""Correlation Matrix Chart.""" + +from typing import TYPE_CHECKING, Any, Union + +if TYPE_CHECKING: + from plotly.graph_objs import Figure # noqa + from openbb_charting.core.openbb_figure import OpenBBFigure # noqa + + +def correlation_matrix( # noqa: PLR0912 + **kwargs, +) -> tuple[Union["OpenBBFigure", "Figure"], dict[str, Any]]: + """Correlation Matrix Chart.""" + # pylint: disable=import-outside-toplevel + from numpy import ones_like, triu # noqa + from openbb_core.app.utils import basemodel_to_df # noqa + from openbb_charting.core.openbb_figure import OpenBBFigure + from openbb_charting.core.chart_style import ChartStyle + from plotly.graph_objs import Figure, Heatmap, Layout + from pandas import DataFrame + + if "data" in kwargs and isinstance(kwargs["data"], DataFrame): + corr = kwargs["data"] + elif "data" in kwargs and isinstance(kwargs["data"], list): + corr = basemodel_to_df(kwargs["data"], index=kwargs.get("index", "date")) # type: ignore + else: + corr = basemodel_to_df( + kwargs["obbject_item"], index=kwargs.get("index", "date") # type: ignore + ) + if ( + "symbol" in corr.columns + and len(corr.symbol.unique()) > 1 + and "close" in corr.columns + ): + corr = corr.pivot( + columns="symbol", + values="close", + ) + + method = kwargs.get("method") or "pearson" + corr = corr.corr(method=method, numeric_only=True) + + X = corr.columns.to_list() + x_replace = X[-1] + Y = X.copy() + y_replace = Y[0] + X = [x if x != x_replace else "" for x in X] + Y = [y if y != y_replace else "" for y in Y] + mask = triu(ones_like(corr, dtype=bool)) + df = corr.mask(mask) + title = kwargs.get("title") or "Asset Correlation Matrix" + text_color = "white" if ChartStyle().plt_style == "dark" else "black" + colorscale = kwargs.get("colorscale") or "RdBu" + + heatmap = Heatmap( + z=df, + x=X, + y=Y, + xgap=1, + ygap=1, + colorscale=colorscale, + colorbar=dict( + orientation="v", + x=0.8, + y=0.5, + xanchor="left", + yanchor="middle", + xref="container", + yref="paper", + len=0.66, + bgcolor="rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)", + ), + text=df.fillna(""), + texttemplate="%{text:.4f}", + hoverongaps=False, + hovertemplate="%{x} - %{y} : %{z:.4f}", + ) + layout = Layout( + title=title, + title_x=0.5, + xaxis=dict( + showgrid=False, + showline=False, + ticklen=0, + domain=[0.03, 1], + tickangle=90, + automargin=False, + ), + yaxis=dict( + showgrid=False, + side="left", + autorange="reversed", + showline=False, + ticklen=0, + automargin="height+width+left", + tickmode="auto", + ), + margin=dict(l=10, r=0, t=0, b=10), + dragmode="pan", + ) + fig = Figure(data=[heatmap], layout=layout) + figure = OpenBBFigure(fig=fig) + figure.update_layout( + font=dict(color=text_color), + paper_bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + plot_bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + ) + layout_kwargs = kwargs.get("layout_kwargs", {}) + + if layout_kwargs: + figure.update_layout(**layout_kwargs) + + content = figure.show(external=True).to_plotly_json() # type: ignore + + return figure, content diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/charts/generic_charts.py b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/generic_charts.py new file mode 100644 index 0000000000000000000000000000000000000000..003a557f33102318ad39499db04589274872d3c0 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/generic_charts.py @@ -0,0 +1,654 @@ +"""Generic Charts Module.""" + +# pylint: disable=too-many-arguments,unused-argument,too-many-locals, too-many-branches, too-many-lines, too-many-statements, use-dict-literal, broad-exception-caught, too-many-nested-blocks, too-many-positional-arguments + +from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Union + +from openbb_core.app.utils import basemodel_to_df, convert_to_basemodel +from openbb_core.provider.abstract.data import Data + +from openbb_charting.charts.helpers import ( + calculate_returns, + should_share_axis, + z_score_standardization, +) +from openbb_charting.core.chart_style import ChartStyle +from openbb_charting.styles.colors import LARGE_CYCLER + +if TYPE_CHECKING: + from numpy import ndarray # noqa + from pandas import DataFrame, Series # noqa + from plotly.graph_objs import Figure # noqa + from openbb_charting.core.openbb_figure import OpenBBFigure # noqa + + +def line_chart( # noqa: PLR0912 + data: Union[ + list, + dict, + "DataFrame", + List["DataFrame"], + "Series", + List["Series"], + "ndarray", + Data, + ], + index: Optional[str] = None, + target: Optional[str] = None, + title: Optional[str] = None, + x: Optional[str] = None, + xtitle: Optional[str] = None, + y: Optional[Union[str, List[str]]] = None, + ytitle: Optional[str] = None, + y2: Optional[Union[str, List[str]]] = None, + y2title: Optional[str] = None, + layout_kwargs: Optional[dict] = None, + scatter_kwargs: Optional[dict] = None, + normalize: bool = False, + returns: bool = False, + same_axis: bool = False, + **kwargs, +) -> Union["OpenBBFigure", "Figure"]: + """Create a line chart.""" + # pylint: disable=import-outside-toplevel + from pandas import DataFrame, Series, to_datetime # noqa + from openbb_charting.core.openbb_figure import OpenBBFigure + + if data is None: + raise ValueError("Error: Data is a required field.") + + auto_layout = False + index = ( + data.index.name + if isinstance(data, (DataFrame, Series)) + else index if index is not None else x if x is not None else "date" + ) + df: DataFrame = (basemodel_to_df(convert_to_basemodel(data), index=index)).dropna( + how="all", axis=1 + ) + + if df.index.name is None: + if "date" in df.columns: + df.date = df.date.apply(to_datetime) + df.set_index("date", inplace=True) + else: + found_index = False + for col in df.columns: + if df[col].dtype == "object": + try: + df[col] = df[col].apply(to_datetime) + index = df[col].name # type: ignore + df.set_index(col, inplace=True) + df.index.name = "date" + found_index = True + except Exception as _: # noqa: S112 + continue + if found_index is True: + break + if found_index is False: + df.set_index(df.iloc[:, 0], inplace=True) + + if "symbol" in df.columns and len(df.symbol.unique()) > 1: + df = df.pivot(columns="symbol", values=target if target else "close") + + if "symbol" not in df.columns and target in df.columns: + df = df[[target]] + + y = y.split(",") if isinstance(y, str) else y + + if y is None or same_axis is True: + y = df.columns.to_list() + auto_layout = True + + if same_axis is True: + auto_layout = False + + if returns is True: + df = df.apply(calculate_returns) + auto_layout = False + + if normalize is True: + df = df.apply(z_score_standardization) + auto_layout = False + + if layout_kwargs is None: + layout_kwargs = {} + + if scatter_kwargs is None: + scatter_kwargs = {} + + try: + fig = OpenBBFigure() + except Exception as _: + fig = OpenBBFigure(create_backend=True) + + fig.update_layout(ChartStyle().plotly_template.get("layout", {})) + text_color = "white" if ChartStyle().plt_style == "dark" else "black" + title = f"{title}" if title else "" + xtitle = xtitle if xtitle else "" + y1title = ytitle if ytitle else "" + y2title = y2title if y2title else "" + y2 = y2 if y2 else [] + yaxis_num = 1 + yaxis = f"y{yaxis_num}" + first_y = y[0] # type: ignore[index] + second_y = None + third_y = None + add_scatter = False + + # Attempt to layout the chart automatically with multiple y-axis. + mode = scatter_kwargs.pop("mode", "lines") + hovertemplate = scatter_kwargs.pop("hovertemplate", None) + + if auto_layout is True: + # Sort columns by the difference between the max and min values. + # This is to help determine which columns should share the same y-axis. + diff = df.max(numeric_only=True) - df.min(numeric_only=True) + sorted_columns = diff.sort_values(ascending=False).index + if sorted_columns is None or len(sorted_columns) == 0: + raise ValueError("Error: expected data with numeric values.") + df = df[sorted_columns] + + for i, col in enumerate(df.columns): + + if col in y: # type: ignore[operator] + hovertemplate = ( + hovertemplate + if hovertemplate + else f"{df[col].name}: %{{y}}" + ) + share_yaxis = should_share_axis(df, first_y, col, threshold=2.5) + if share_yaxis is True: + add_scatter = True + if share_yaxis is False: + yaxis_num = 2 + yaxis = f"y{yaxis_num}" + if second_y is None: + second_y = col + add_scatter = True + if second_y is not None: + add_scatter = False + share_yaxis = should_share_axis(df, col, second_y, threshold=3) + if share_yaxis is True: + add_scatter = True + if share_yaxis is False: + yaxis_num = 3 + yaxis = f"y{yaxis_num}" + third_y = col + add_scatter = True + + if add_scatter is True: + fig = fig.add_scatter( + x=df.index, + y=df[col], + name=col, + mode=mode, + line=dict(width=1, color=LARGE_CYCLER[i % len(LARGE_CYCLER)]), + hovertemplate=hovertemplate, + hoverlabel=dict(font_size=10), + yaxis=yaxis, + **scatter_kwargs, + ) + + if auto_layout is False: + color = 0 + for i, col in enumerate(y): # type: ignore[arg-type] + hovertemplate = ( + hovertemplate + if hovertemplate + else f"{df[col].name}: %{{y}}" + ) + fig = fig.add_scatter( + x=df.index, + y=df[col], + name=col, + mode=mode, + line=dict(width=1, color=LARGE_CYCLER[color]), + hovertemplate=hovertemplate, + hoverlabel=dict(font_size=10), + yaxis="y1", + **scatter_kwargs, + ) + color += 1 + if y2: + second_y = y2[0] + for i, col in enumerate(y2): + hovertemplate = ( + hovertemplate + if hovertemplate + else f"{df[col].name}: %{{y}}" + ) + fig = fig.add_scatter( + x=df.index, + y=df[col], + name=col, + mode=mode, + line=dict(width=1, color=LARGE_CYCLER[color]), + hovertemplate=hovertemplate, + hoverlabel=dict(font_size=10), + yaxis="y2", + **scatter_kwargs, + ) + color += 1 + + if returns is True: + y1title = "Percent" + title = f"{title} - Cumulative Returns" if title else "Cumulative Returns" + + if normalize is True: + y1title = "Z-Score" + title = f"{title} - Z-Score" if title else "Z-Score" + + if not title and target is not None: + title = f"{target.replace('_', ' ').title()}" + + fig.update_layout( + title=dict(text=title if title else None, x=0.5, font=dict(size=16)), + font=dict(color=text_color), + paper_bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + plot_bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + legend=dict( + orientation="v", + yanchor="top", + xanchor="right", + y=0.95, + x=-0.01, + xref="paper", + font=dict(size=12), + bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + ), + yaxis=( + dict( + ticklen=0, + side="right", + title=dict( + text=y1title if ytitle else None, standoff=30, font=dict(size=16) + ), + tickfont=dict(size=14), + anchor="x", + showgrid=True, + mirror=True, + showline=True, + zeroline=False, + gridcolor="rgba(128,128,128,0.25)", + ) + ), + yaxis2=( + dict( + overlaying="y", + side="left", + ticklen=0, + showgrid=False, + showline=True, + zeroline=False, + mirror=True, + title=dict( + text=y2title if y2title else None, standoff=10, font=dict(size=16) + ), + tickfont=dict(size=14), + anchor="x", + ) + ), + yaxis3=( + dict( + overlaying="y", + side="left", + ticklen=0, + position=0, + showgrid=False, + showline=False, + zeroline=False, + showticklabels=True, + mirror=False, + tickfont=dict(size=12, color="rgba(128,128,128,0.75)"), + anchor="free", + ) + ), + xaxis=dict( + ticklen=0, + showgrid=True, + title=( + dict(text=xtitle, standoff=30, font=dict(size=16)) if xtitle else None + ), + zeroline=False, + showline=True, + mirror=True, + gridcolor="rgba(128,128,128,0.25)", + domain=[0.095, 0.95] if third_y else None, + ), + margin=dict(r=25, l=25) if normalize is False else None, + autosize=True, + dragmode="pan", + hovermode="x", + ) + + if df.index.name not in ("date", "timestamp"): + fig.update_xaxes(type="category") + + if layout_kwargs: + fig.update_layout( + **layout_kwargs, + ) + + return fig + + +def bar_chart( # noqa: PLR0912 + data: Union[ + list, + dict, + "DataFrame", + List["DataFrame"], + "Series", + List["Series"], + "ndarray", + Data, + ], + x: str, + y: Union[str, List[str]], + barmode: Literal["group", "stack", "relative", "overlay"] = "group", + xtype: Literal["category", "multicategory", "date", "log", "linear"] = "category", + title: Optional[str] = None, + xtitle: Optional[str] = None, + ytitle: Optional[str] = None, + orientation: Literal["h", "v"] = "v", + colors: Optional[List[str]] = None, + bar_kwargs: Optional[Dict[str, Any]] = None, + layout_kwargs: Optional[Dict[str, Any]] = None, + **kwargs, +) -> Union["OpenBBFigure", "Figure"]: + """Create a vertical bar chart on a single x-axis with one or more values for the y-axis. + + Parameters + ---------- + data : Union[ + list, dict, "DataFrame", List["DataFrame"], "Series", List["Series"], "ndarray", Data + ] + Data to plot. + x : str + The x-axis column name. + y : Union[str, List[str]] + The y-axis column name(s). + barmode : Literal["group", "stack", "relative", "overlay"], optional + The bar mode, by default "group". + xtype : Literal["category", "multicategory", "date", "log", "linear"], optional + The x-axis type, by default "category". + title : str, optional + The title of the chart, by default None. + xtitle : str, optional + The x-axis title, by default None. + ytitle : str, optional + The y-axis title, by default None. + colors: List[str], optional + Manually set the colors to cycle through for each column in 'y', by default None. + bar_kwargs : Dict[str, Any], optional + Additional keyword arguments to apply with figure.add_bar(), by default None. + layout_kwargs : Dict[str, Any], optional + Additional keyword arguments to apply with figure.update_layout(), by default None. + + Returns + ------- + OpenBBFigure + The OpenBBFigure object. + """ + # pylint: disable=import-outside-toplevel + from openbb_charting.core.openbb_figure import OpenBBFigure + + try: + figure = OpenBBFigure() + except Exception as _: + figure = OpenBBFigure(create_backend=True) + + figure = figure.create_subplots( + 1, + 1, + shared_xaxes=True, + vertical_spacing=0.06, + horizontal_spacing=0.01, + row_width=[1], + specs=[[{"secondary_y": True}]], + ) + + figure.update_layout(ChartStyle().plotly_template.get("layout", {})) + text_color = "white" if ChartStyle().plt_style == "dark" else "black" + if colors is not None: + figure.update_layout(colorway=colors) + if bar_kwargs is None: + bar_kwargs = {} + if isinstance(data, (Data, list, dict)): + data = basemodel_to_df(convert_to_basemodel(data), index=None) + + bar_df = data.copy().set_index(x) # type: ignore + y = y.split(",") if isinstance(y, str) else y + hovertemplate = bar_kwargs.pop("hovertemplate", None) + width = bar_kwargs.pop("width", None) + for item in y: + figure.add_bar( + x=bar_df.index if orientation == "v" else bar_df[item], + y=bar_df[item] if orientation == "v" else bar_df.index, + name=bar_df[item].name, + showlegend=len(y) > 1, + legendgroup=bar_df[item].name, + orientation=orientation, + hovertemplate=( + hovertemplate + if hovertemplate + else ( + "%{fullData.name}:%{y}" + if orientation == "v" + else "%{fullData.name}:%{x}" + ) + ), + width=( + width + if width + else 0.95 / len(y) * 0.75 if barmode == "group" and len(y) > 1 else 0.95 + ), + **bar_kwargs, + ) + + figure.update_layout( + title=dict(text=title if title else None, x=0.5, font=dict(size=16)), + paper_bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + plot_bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rbga(255,255,255,0)" + ), + legend=dict( + orientation="v", + yanchor="top", + xanchor="right", + y=0.95, + x=-0.01 if orientation == "v" else 1.01, + xref="paper", + font=dict(size=12), + bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + ), + xaxis=dict( + type=xtype, + title=dict( + text=xtitle if xtitle else None, standoff=30, font=dict(size=16) + ), + ticklen=0, + showgrid=orientation == "h", + tickfont=dict(size=12, family="sans-serif"), + categoryorder="array" if orientation == "v" else None, + categoryarray=bar_df.index if orientation == "v" else None, + ), + yaxis=dict( + title=dict( + text=ytitle if ytitle else None, standoff=30, font=dict(size=16) + ), + ticklen=0, + showgrid=orientation == "v", + tickfont=dict(size=12), + side="left" if orientation == "h" else "right", + categoryorder="array" if orientation == "h" else None, + categoryarray=bar_df.index if orientation == "h" else None, + ), + margin=dict(pad=5), + barmode=barmode, + font=dict(color=text_color), + ) + if orientation == "h": + figure.update_layout( + xaxis=dict( + type="linear", + showspikes=False, + ), + yaxis=dict( + type="category", + showspikes=False, + ), + hoverlabel=dict( + font=dict(size=12), + ), + hovermode="y unified", + ) + if layout_kwargs: + figure.update_layout( + **layout_kwargs, + ) + return figure + + +def bar_increasing_decreasing( # pylint: disable=W0102 + keys: List[str], + values: List[Union[int, float]], + title: Optional[str] = None, + xtitle: Optional[str] = None, + ytitle: Optional[str] = None, + colors: List[str] = ["blue", "red"], + orientation: Literal["h", "v"] = "h", + barmode: Literal["group", "stack", "relative", "overlay"] = "relative", + layout_kwargs: Optional[Dict[str, Any]] = None, +) -> Union["OpenBBFigure", "Figure"]: + """Create a bar chart with increasing and decreasing values represented by two colors. + + Parameters + ---------- + keys : List[str] + The x-axis keys. + values : List[Any] + The y-axis values. + title : Optional[str], optional + The title of the chart, by default None. + xtitle : Optional[str], optional + The x-axis title, by default None. + ytitle : Optional[str], optional + The y-axis title, by default None. + colors : List[str], optional + The colors to use for increasing and decreasing values, by default ["blue", "red"]. + orientation : Literal["h", "v"], optional + The orientation of the bars, by default "h". + barmode : Literal["group", "stack", "relative", "overlay"], optional + The bar mode, by default "relative". + layout_kwargs : Optional[Dict[str, Any]], optional + Additional keyword arguments to apply with figure.update_layout(), by default None. + + Returns + ------- + OpenBBFigure + The OpenBBFigure object. + """ + # pylint: disable=import-outside-toplevel + from openbb_charting.core.openbb_figure import OpenBBFigure # noqa + from pandas import Series + + try: + figure = OpenBBFigure() + except Exception as _: + figure = OpenBBFigure(create_backend=True) + + figure = figure.create_subplots( + 1, + 1, + shared_xaxes=False, + vertical_spacing=0.06, + horizontal_spacing=0.01, + row_width=[1], + specs=[[{"secondary_y": True}]], + ) + figure.update_layout(ChartStyle().plotly_template.get("layout", {})) + text_color = "white" if ChartStyle().plt_style == "dark" else "black" + + try: + data = Series(data=values, index=keys) + increasing_data = data[data > 0] # type: ignore + decreasing_data = data[data < 0] # type: ignore + except Exception as e: + raise ValueError(f"Error: {e}") from e + + if not increasing_data.empty: + figure.add_bar( + x=increasing_data.index if orientation == "v" else increasing_data, + y=increasing_data if orientation == "v" else increasing_data.index, + marker=dict(color=colors[0]), + orientation=orientation, + showlegend=False, + width=0.95 / len(keys) * 0.75 if barmode == "group" else 0.95, + hoverinfo="y" if orientation == "v" else "x", + ) + if not decreasing_data.empty: + figure.add_bar( + x=decreasing_data.index if orientation == "v" else decreasing_data, + y=decreasing_data if orientation == "v" else decreasing_data.index, + marker=dict(color=colors[1]), + orientation=orientation, + showlegend=False, + width=0.95 / len(keys) * 0.75 if barmode == "group" else 0.95, + hoverinfo="y" if orientation == "v" else "x", + ) + + figure.update_layout( + title=dict(text=title if title else None, x=0.5, font=dict(size=20)), + hovermode="x" if orientation == "v" else "y", + hoverlabel=dict(align="left" if orientation == "h" else "auto"), + yaxis=dict( + title=dict( + text=ytitle if ytitle else None, standoff=30, font=dict(size=16) + ), + side="left" if orientation == "h" else "right", + showgrid=orientation == "v", + gridcolor="rgba(128,128,128,0.25)", + tickfont=dict(size=12), + ticklen=0, + categoryorder="array" if orientation == "h" else None, + categoryarray=keys if orientation == "h" else None, + ), + xaxis=dict( + title=dict( + text=xtitle if xtitle else None, standoff=30, font=dict(size=16) + ), + showgrid=orientation == "h", + gridcolor="rgba(128,128,128,0.25)", + tickfont=dict(size=12), + ticklen=0, + categoryorder="array" if orientation == "v" else None, + categoryarray=keys if orientation == "v" else None, + ), + paper_bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + plot_bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + font=dict(color="white" if text_color == "white" else "black"), + margin=dict(pad=5), + ) + + if layout_kwargs: + figure.update_layout( + **layout_kwargs, + ) + + return figure diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/charts/helpers.py b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/helpers.py new file mode 100644 index 0000000000000000000000000000000000000000..ff2737e9cf30ba21c6999625bd22d5619a20829c --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/helpers.py @@ -0,0 +1,123 @@ +"""Helper functions for charting.""" + +# pylint: disable=R0917 + +from typing import TYPE_CHECKING, Callable, Dict, List, Type + +if TYPE_CHECKING: + from pandas import DataFrame, Series + + +def get_charting_functions(view: Type) -> Dict[str, Callable]: + """Discover charting functions.""" + # pylint: disable=import-outside-toplevel + from inspect import getmembers, getsource, isfunction + + implemented_functions: Dict[str, Callable] = {} + + for name, obj in getmembers(view, isfunction): + if ( + obj.__module__ == view.__module__ + and not name.startswith("_") + and "NotImplementedError" not in getsource(obj) + ): + implemented_functions[name] = obj + + return implemented_functions + + +def get_charting_functions_list(view: Type) -> List[str]: + """Get a list of all the charting functions.""" + return list(get_charting_functions(view).keys()) + + +def z_score_standardization(data: "Series") -> "Series": + """Z-Score Standardization Method.""" + return (data - data.mean()) / data.std() + + +def calculate_returns(data: "Series") -> "Series": + """Calculate the returns of a column.""" + return ((1 + data.pct_change(fill_method=None).fillna(0)).cumprod() - 1) * 100 + + +def should_share_axis( + df: "DataFrame", col1: str, col2: str, threshold: float = 0.15 +) -> bool: + """Determine whether two columns should share an axis.""" + # pylint: disable=import-outside-toplevel + from pandas import Series + + try: + if isinstance(df, Series): + df = df.to_frame() + range1 = df[col1].max() - df[col1].min() + range2 = df[col2].max() - df[col2].min() + # Calculate the ratio of the two ranges + ratio = max(range1, range2) / min(range1, range2) + # If the ratio is less than the threshold, the two columns can share an axis + if ratio == 1: + return True + return ratio < threshold + except Exception: + return False + + +def heikin_ashi(data: "DataFrame") -> "DataFrame": + """Return OHLC data as Heikin Ashi Candles. + + Parameters + ---------- + data: DataFrame + DataFrame containing OHLC data. + + Returns + ------- + DataFrame + DataFrame copy with Heikin Ashi candle calculations. + """ + # pylint: disable=import-outside-toplevel + from pandas_ta import candles + + df = data.copy() + + check_columns = ["open", "high", "low", "close"] + + for item in check_columns: + if item not in df.columns: + raise ValueError( + "The expected column labels, " + f"{check_columns}" + ", were not found in DataFrame." + ) + + ha = candles.ha( + df["open"], + df["high"], + df["low"], + df["close"], + ) + + for item in check_columns: + df[item] = ha[f"HA_{item}"] + + return df + + +def duration_sorter(durations: list) -> list: + """Sort durations labeled as month_5, year_5, etc.""" + + def duration_to_months(duration): + """Convert duration to months.""" + if duration == "long_term": + return 360 + parts = duration.split("_") + months = 0 + for i in range(0, len(parts), 2): + number = int(parts[i + 1]) + if parts[i] == "year": + number *= 12 # Convert years to months + months += number + return months + + return sorted(durations, key=duration_to_months) diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/charts/price_historical.py b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/price_historical.py new file mode 100644 index 0000000000000000000000000000000000000000..b7151845bab504b5297c6f8fc2dd3911a82b4ef9 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/price_historical.py @@ -0,0 +1,335 @@ +"""Price historical charting utility.""" + +# pylint: disable=too-many-branches, too-many-locals, unused-argument + + +from typing import TYPE_CHECKING, Any, Dict, Tuple + +from openbb_charting.styles.colors import LARGE_CYCLER + +if TYPE_CHECKING: + from openbb_charting.core.openbb_figure import OpenBBFigure + + +def price_historical( # noqa: PLR0912 + **kwargs, +) -> Tuple["OpenBBFigure", Dict[str, Any]]: + """Equity Price Historical Chart.""" + # pylint: disable=import-outside-toplevel + from pandas import DataFrame # noqa + from openbb_core.app.utils import basemodel_to_df # noqa + from openbb_charting.core.openbb_figure import OpenBBFigure # noqa + from openbb_charting.core.plotly_ta.ta_class import PlotlyTA # noqa + from openbb_charting.core.chart_style import ChartStyle # noqa + from openbb_charting.charts.helpers import ( # noqa + calculate_returns, + heikin_ashi, + should_share_axis, + z_score_standardization, + ) + + if "data" in kwargs and isinstance(kwargs["data"], DataFrame): + data = kwargs["data"] + elif "data" in kwargs and isinstance(kwargs["data"], list): + data = basemodel_to_df(kwargs["data"], index=kwargs.get("index", "date")) # type: ignore + else: + data = basemodel_to_df( + kwargs["obbject_item"], index=kwargs.get("index", "date") # type: ignore + ) + + if "date" in data.columns: + data = data.set_index("date") + + target = str(kwargs.get("target")) + normalize = kwargs.get("normalize") is True + returns = kwargs.get("returns") is True + same_axis = kwargs.get("same_axis") is True + text_color = "black" if ChartStyle().plt_style == "light" else "white" + title = f"{kwargs.get('title')}" if "title" in kwargs else "Historical Prices" + y1title = "" + y2title = "" + candles = True + multi_symbol = ( + bool(kwargs.get("multi_symbol") is True) + or ( + "symbol" in data.columns + and target in data.columns + and len(data.symbol.unique()) > 1 + ) + or ("target" in kwargs and kwargs.get("target") is not None) + or "symbol" in data.columns + or ( + "symbol" not in data.columns + and bool(data.columns.isin(["open", "high", "low", "close"]).all()) + ) + ) + target = "close" if target is None or target == "None" or target == "" else target + + if multi_symbol is True: + if "symbol" not in data.columns and target in data.columns: + data = data[[target]] + y1title = target.title() + if "symbol" in data.columns and target in data.columns: + data = data.pivot(columns="symbol", values=target) + y1title = target + title = f"Historical {target.title()}" + + indicators = kwargs.get("indicators", {}) + candles = bool(~data.columns.isin(["open", "high", "low", "close"]).all()) + candles = candles if kwargs.get("candles", True) else False + volume = kwargs.get("volume", True) if "volume" in data.columns else False + + if normalize is True: + if "symbol" not in data.columns and target in data.columns: + data = data[[target]] + multi_symbol = True + candles = False + volume = False + + if returns is True: + if "symbol" not in data.columns and target in data.columns: + data = data[[target]] + multi_symbol = True + candles = False + volume = False + if ( # pylint: disable = R0916 + multi_symbol is False + and normalize is False + and returns is False + and candles is True + ) or (indicators and multi_symbol is False): + if ( + "heikin_ashi" in kwargs + and kwargs["heikin_ashi"] is True + and candles is True + ): + data = heikin_ashi(data) + title = f"{title} - Heikin Ashi" + _volume = False + if "atr" in indicators: # type: ignore + _volume = volume + volume = False + ta = PlotlyTA() + fig = ta.plot( # type: ignore + data, + indicators=indicators if indicators else {}, # type: ignore + symbol=target if candles is False else "", + candles=candles, + volume=volume, # type: ignore + ) + if _volume is True and "atr" in indicators: # type: ignore + fig.add_inchart_volume(data) + fig.update_layout( + paper_bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + plot_bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + font=dict(color=text_color), + showlegend=True, + legend=dict( + orientation="v", + yanchor="top", + xanchor="right", + y=0.95, + x=-0.01, + xref="paper", + font=dict(size=12), + bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + ), + xaxis=dict( + ticklen=0, + showgrid=True, + gridcolor="rgba(128,128,128,0.3)", + zeroline=True, + mirror=True, + showline=True, + ), + xaxis2=dict( + ticklen=0, + showgrid=True, + gridcolor="rgba(128,128,128,0.3)", + zeroline=True, + mirror=True, + showline=True, + ), + yaxis=dict( + ticklen=0, + showgrid=True, + gridcolor="rgba(128,128,128,0.3)", + zeroline=True, + mirror=True, + showline=True, + tickfont=dict(size=14), + ), + yaxis2=dict( + ticklen=0, + gridcolor="rgba(128,128,128,0.3)", + ), + yaxis3=dict( + ticklen=0, + gridcolor="rgba(128,128,128,0.3)", + ), + dragmode="pan", + hovermode="x", + ) + + if kwargs.get("title"): + title = kwargs["title"] + fig.update_layout(title=dict(text=title, x=0.5)) + + content = fig.to_plotly_json() + + return fig, content + + if multi_symbol is True or candles is False: + + if "symbol" not in data.columns and target in data.columns: + data = data[[target]] + + if "symbol" in data.columns: + data = data.pivot(columns="symbol", values=target) + + title: str = kwargs.get("title", "Historical Prices") # type: ignore + + y1title = data.iloc[:, 0].name + y2title = "" + + if len(data.columns) > 2 or normalize is True or returns is True: + if returns is True or (len(data.columns) > 2 and normalize is False): + data = data.apply(calculate_returns) + title = f"{title} - Cumulative Returns" + y1title = "Percent" + if normalize is True: + if returns is True: + title = f"{title.replace(' - Cumulative Returns', '')} - Normalized Cumulative Returns" + else: + title = title + " - Normalized" + data = data.apply(z_score_standardization) + y1title = None # type: ignore + y2title = None # type: ignore + + fig = OpenBBFigure() + fig.update_layout(ChartStyle().plotly_template.get("layout", {})) + text_color = "white" if ChartStyle().plt_style == "dark" else "black" + + for i, col in enumerate(data.columns): + + hovertemplate = f"{data[col].name}: %{{y}}" + yaxis = "y1" + if y1title and y1title != "Percent": + yaxis = ( + ( + "y1" + if should_share_axis(data, col, y1title) # type: ignore + or col == y1title + or normalize is True + or returns is True + else "y2" + ) + if same_axis is False + else "y1" + ) + + if yaxis == "y2": + y2title = data[col].name + + fig.add_scatter( + x=data.index, + y=data[col], + name=data[col].name, + mode="lines", + hovertemplate=hovertemplate, + line=dict(width=2, color=LARGE_CYCLER[i % len(LARGE_CYCLER)]), + yaxis=yaxis, + ) + + if normalize is True or returns is True: + y1title = "Percent" if returns is True else None # type: ignore + y2title = None # type: ignore + + if same_axis is True: + y1title = None # type: ignore + y2title = None # type: ignore + + fig.update_layout( + paper_bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + plot_bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + legend=( + dict( + orientation="v", + yanchor="top", + xanchor="right", + y=0.95, + x=-0.01, + bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + ) + if len(data.columns) > 2 + else dict( + orientation="h", + yanchor="bottom", + xanchor="right", + y=1.02, + x=0.98, + bgcolor=( + "rgba(0,0,0,0)" if text_color == "white" else "rgba(255,255,255,0)" + ), + ) + ), + yaxis1=( + dict( + side="right", + ticklen=0, + showgrid=True, + showline=True, + mirror=True, + gridcolor="rgba(128,128,128,0.3)", + title=dict( + text=y1title if y1title else None, standoff=20, font=dict(size=20) + ), + tickfont=dict(size=14), + anchor="x", + ) + ), + yaxis2=( + dict( + overlaying="y", + side="left", + ticklen=0, + showgrid=False, + title=dict( + text=y2title if y2title else None, standoff=10, font=dict(size=20) + ), + tickfont=dict(size=14), + anchor="x", + ) + if y2title + else None + ), + xaxis=dict( + ticklen=0, + showgrid=True, + gridcolor="rgba(128,128,128,0.3)", + showline=True, + mirror=True, + ), + margin=dict(l=20, r=20, b=20, t=20), + dragmode="pan", + hovermode="x", + ) + if kwargs.get("title"): + title = kwargs["title"] + fig.update_layout(title=dict(text=title, x=0.5)) + + content = fig.show(external=True).to_plotly_json() + + return fig, content diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/charts/price_performance.py b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/price_performance.py new file mode 100644 index 0000000000000000000000000000000000000000..50b53136254066535d9049c4b3965645c63686d1 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/price_performance.py @@ -0,0 +1,108 @@ +"""Price performance charting implementation.""" + +from typing import TYPE_CHECKING, Any, Dict, Tuple, Union + +if TYPE_CHECKING: + from plotly.graph_objs import Figure # noqa + from openbb_charting.core.openbb_figure import OpenBBFigure # noqa + + +def price_performance( + **kwargs, +) -> Tuple[Union["OpenBBFigure", "Figure"], Dict[str, Any]]: # noqa: PLR0912 + """Equity Price Performance Chart.""" + # pylint: disable=import-outside-toplevel + from pandas import DataFrame # noqa + from openbb_core.app.utils import basemodel_to_df # noqa + from openbb_charting.charts.generic_charts import bar_chart # noqa + + if "data" in kwargs and isinstance(kwargs["data"], DataFrame): + data = kwargs["data"] + elif "data" in kwargs and isinstance(kwargs["data"], list): + data = basemodel_to_df(kwargs["data"], index=kwargs.get("index", "symbol")) # type: ignore + else: + data = basemodel_to_df( + kwargs["obbject_item"], index=kwargs.get("index", "symbol") # type: ignore + ) + + cols = [ + "one_day", + "one_week", + "one_month", + "three_month", + "six_month", + "ytd", + "one_year", + "two_year", + "three_year", + "four_year", + "five_year", + ] + + df = DataFrame() + chart_df = DataFrame() + + if "symbol" in data.columns: + data = data.set_index("symbol") + chart_cols = [] + + if len(data) == 0: + raise ValueError("No data was found in the DataFrame.") + + data = data.drop_duplicates(keep="first") + + for col in cols: + if col in data.columns and data[col].notnull().any(): + df[col.replace("_", " ").title() if col != "ytd" else col.upper()] = data[ + col + ].apply(lambda x: round(x * 100, 4) if x is not None else None) + + if df.empty: + raise ValueError(f"No columns matching, {cols}, were found in the data.") + + chart_df = df.T + chart_cols = chart_df.columns.to_list() + + if "limit" in kwargs and isinstance(kwargs.get("limit"), int): + limit = kwargs.pop("limit", 10) + chart_df = chart_df.head(limit) # type: ignore + + layout_kwargs: Dict[str, Any] = kwargs.get("layout_kwargs", {}) + + title = ( + f"{kwargs.pop('title')}" if "title" in kwargs else "Equity Price Performance" + ) + orientation = ( + kwargs.pop("orientation") + if "orientation" in kwargs and kwargs.get("orientation") is not None + else "v" + ) + + ytitle = "Performance (%)" + xtitle = None + + if orientation == "h": + xtitle = ytitle # type: ignore + ytitle = None # type: ignore + + fig = bar_chart( + chart_df.reset_index(), + x="index", + y=chart_cols, + title=title, + xtitle=xtitle, + ytitle=ytitle, + orientation=orientation, # type: ignore + ) + fig.update_traces( + hovertemplate=( + "%{fullData.name}:%{y:.2f}%" + if orientation == "v" + else "%{fullData.name}:%{x:.2f}%" + ) + ) + + fig.update_layout(**layout_kwargs) + content = fig.show(external=True).to_plotly_json() # type: ignore + + return fig, content diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/charts/relative_rotation.py b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/relative_rotation.py new file mode 100644 index 0000000000000000000000000000000000000000..26df948957164bf56d74062315f82043b9faf004 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/charts/relative_rotation.py @@ -0,0 +1,674 @@ +"""Relative Rotation Chart Helpers.""" + +# pylint: disable=R0917 + +from datetime import date as dateType +from typing import TYPE_CHECKING, Literal, Optional +from warnings import warn + +if TYPE_CHECKING: + from pandas import DataFrame + from plotly.graph_objects import Figure + +color_sequence = [ + "burlywood", + "orange", + "grey", + "magenta", + "cyan", + "yellowgreen", + "#1f77b4", + "#aec7e8", + "#ff7f0e", + "#ffbb78", + "#d62728", + "#ff9896", + "#9467bd", + "#c5b0d5", + "#8c564b", + "#c49c94", + "#e377c2", + "#f7b6d2", + "#7f7f7f", + "#c7c7c7", + "#bcbd22", + "#dbdb8d", + "#17becf", + "#9edae5", + "#7e7e7e", + "#1b9e77", + "#d95f02", + "#7570b3", + "#e7298a", + "#66a61e", + "#e6ab02", + "#a6761d", + "#666666", + "#f0027f", + "#bf5b17", + "#d9f202", + "#8dd3c7", + "#ffffb3", + "#bebada", + "#fb8072", + "#80b1d3", + "#fdb462", + "#b3de69", + "#fccde5", + "#d9d9d9", + "#bc80bd", + "#ccebc5", + "#ffed6f", + "#6a3d9a", + "#b15928", + "#b2df8a", + "#33a02c", + "#fb9a99", + "#e31a1c", + "#fdbf6f", + "#ff7f00", + "#cab2d6", + "#6a3d9a", + "#ffff99", + "#b15928", +] + + +def create_rrg_with_tails( + ratios_data: "DataFrame", + momentum_data: "DataFrame", + study: str, + benchmark_symbol: str, + tail_periods: int, + tail_interval: Literal["day", "week", "month"], +) -> "Figure": + """Create The Relative Rotation Graph With Tails. + + Parameters + ---------- + ratios_data : DataFrame + The DataFrame containing the RS-Ratio values. + momentum_data : DataFrame + The DataFrame containing the RS-Momentum values. + study : str + The study that was selected when loading the raw data. + If custom data is supplied, this will override the study for the chart titles. + benchmark_symbol : str + The symbol of the benchmark. + tail_periods : int + The number of periods to display in the tails. + tail_interval : Literal["day", "week", "month"] + + Returns + ------- + Figure + Plotly GraphObjects Figure. + """ + # pylint: disable=import-outside-toplevel + from pandas import to_datetime + from plotly import graph_objects as go + + symbols = ratios_data.columns.to_list() + + tail_dict = {"week": "W", "month": "ME"} + ratios_data.index = to_datetime(ratios_data.index) + momentum_data.index = to_datetime(momentum_data.index) + + if tail_interval != "day": + ratios_data = ratios_data.resample(tail_dict[tail_interval]).last() + momentum_data = momentum_data.resample(tail_dict[tail_interval]).last() + ratios_data = ratios_data.iloc[-tail_periods:] + momentum_data = momentum_data.iloc[-tail_periods:] + _tail_periods = len(ratios_data) + tail_title = ( + f"The Previous {_tail_periods} {tail_interval.capitalize()}s " + f"Ending {ratios_data.index[-1].strftime('%Y-%m-%d')}" + ) + x_min = ratios_data.min().min() + x_max = ratios_data.max().max() + y_min = momentum_data.min().min() + y_max = momentum_data.max().max() + # Create an empty list to store the scatter traces + frames: list = [] + x_data = ratios_data + y_data = momentum_data + for i, date in enumerate(ratios_data.index): # pylint: disable=unused-variable + + frame_data: list = [] + + for j, symbol in enumerate(symbols): + x_frame_data = x_data[symbol].iloc[: i + 1] + y_frame_data = y_data[symbol].iloc[: i + 1] + name = symbol.upper().replace("^", "").replace(":US", "") + special_name = "-" in name or len(name) > 7 + marker_size = 34 if special_name else 30 + line_frame_trace = go.Scatter( + x=x_frame_data, + y=y_frame_data, + mode="markers+lines", + line=dict(color=color_sequence[j], width=2, dash="dash"), + marker=dict( + size=5, color=color_sequence[j], line=dict(color="black", width=1) + ), + showlegend=False, + opacity=0.3, + name=name, + text=name, + hovertemplate="%{fullData.name}: " + + "RS-Ratio: %{x:.4f}, " + + "RS-Momentum: %{y:.4f}" + + "", + hoverlabel=dict(font_size=10), + ) + + marker_frame_trace = go.Scatter( + x=[x_frame_data.iloc[-1]], + y=[y_frame_data.iloc[-1]], + mode="markers+text", + name=name, + text=name, + textposition="middle center", + textfont=( + dict(size=10, color="black") + if len(symbol) < 4 + else dict(size=7, color="black") + ), + line=dict(color=color_sequence[j], width=2, dash="dash"), + marker=dict( + size=marker_size, + color=color_sequence[j], + line=dict(color="black", width=1), + ), + opacity=0.9, + showlegend=False, + hovertemplate="%{fullData.name}: RS-Ratio: %{x:.4f}, RS-Momentum: %{y:.4f}", + ) + + frame_data.extend([line_frame_trace, marker_frame_trace]) + + frames.append(go.Frame(data=frame_data, name=f"Frame {i}")) + + # Define the initial trace for the figure + initial_trace = frames[0]["data"] + + padding = 0.1 + y_range = [y_min - padding * abs(y_min) - 0.3, y_max + padding * abs(y_max) + 0.3] + x_range = [x_min - padding * abs(x_min) - 0.3, x_max + padding * abs(x_max) + 0.3] + + # Create the layout for the figure + layout = go.Layout( + title={ + "text": ( + f"Relative Rotation Against {benchmark_symbol.replace('^', '')} {study.capitalize()} For {tail_title}" + ), + "x": 0.5, + "xanchor": "center", + "font": dict(size=18), + }, + xaxis=dict( + title=dict(text="RS-Ratio", font=dict(size=16)), + showgrid=True, + zeroline=True, + showline=True, + mirror=True, + ticklen=0, + zerolinecolor="black", + range=x_range, + gridcolor="lightgrey", + showspikes=False, + ), + yaxis=dict( + title=dict(text="RS-Momentum", font=dict(size=16)), + showgrid=True, + zeroline=True, + showline=True, + mirror=True, + ticklen=0, + zerolinecolor="black", + range=y_range, + gridcolor="lightgrey", + side="left", + title_standoff=5, + ), + plot_bgcolor="rgba(255,255,255,1)", + shapes=[ + go.layout.Shape( + type="rect", + xref="x", + yref="y", + x0=0, + y0=0, + x1=x_range[1], + y1=y_range[1], + fillcolor="lightgreen", + opacity=0.3, + layer="below", + line_width=0, + ), + go.layout.Shape( + type="rect", + xref="x", + yref="y", + x0=x_range[0], + y0=0, + x1=0, + y1=y_range[1], + fillcolor="lightblue", + opacity=0.3, + layer="below", + line_width=0, + ), + go.layout.Shape( + type="rect", + xref="x", + yref="y", + x0=x_range[0], + y0=y_range[0], + x1=0, + y1=0, + fillcolor="lightpink", + opacity=0.3, + layer="below", + line_width=0, + ), + go.layout.Shape( + type="rect", + xref="x", + yref="y", + x0=0, + y0=y_range[0], + x1=x_range[1], + y1=0, + fillcolor="lightyellow", + opacity=0.3, + layer="below", + line_width=0, + ), + go.layout.Shape( + type="rect", + xref="x", + yref="y", + x0=x_range[0], + y0=y_range[0], + x1=x_range[1], + y1=y_range[1], + line=dict( + color="Black", + width=1, + ), + fillcolor="rgba(0,0,0,0)", + layer="above", + ), + ], + annotations=[ + go.layout.Annotation( + x=1, + xref="paper", + y=1, + yref="paper", + text="Leading", + showarrow=False, + font=dict( + size=18, + color="darkgreen", + ), + ), + go.layout.Annotation( + x=1, + xref="paper", + y=0, + yref="paper", + text="Weakening", + showarrow=False, + font=dict( + size=18, + color="goldenrod", + ), + ), + go.layout.Annotation( + x=0, + xref="paper", + y=0, + yref="paper", + text="Lagging", + showarrow=False, + font=dict( + size=18, + color="red", + ), + ), + go.layout.Annotation( + x=0, + xref="paper", + yref="paper", + y=1, + text="Improving", + showarrow=False, + font=dict( + size=18, + color="blue", + ), + ), + ], + autosize=True, + margin=dict( + l=30, + r=50, + b=50, + t=50, + pad=0, + ), + dragmode="pan", + hovermode="closest", + updatemenus=[ + { + "buttons": [ + { + "args": [ + None, + { + "frame": {"duration": 500, "redraw": False}, + "fromcurrent": True, + "transition": {"duration": 500, "easing": "linear"}, + }, + ], + "label": "Play", + "method": "animate", + } + ], + "direction": "left", + "pad": {"r": 0, "t": 75}, + "showactive": False, + "type": "buttons", + "x": -0.025, + "xanchor": "left", + "y": 0, + "yanchor": "top", + "bgcolor": "rgba(150, 150, 150, 0.8)", + "bordercolor": "rgba(100, 100, 100, 0.5)", + "borderwidth": 1, + "font": {"color": "black"}, + } + ], + sliders=[ + { + "active": 0, + "yanchor": "top", + "xanchor": "center", + "currentvalue": { + "font": {"size": 16}, + "prefix": "Date: ", + "visible": True, + "xanchor": "right", + }, + "transition": {"duration": 300, "easing": "cubic-in-out"}, + "pad": {"b": 10, "t": 50}, + "len": 0.9, + "x": 0.5, + "y": 0, + "steps": [ + { + "label": f"{x_data.index[i].strftime('%Y-%m-%d')}", + "method": "animate", + "args": [ + [f"Frame {i}"], + { + "mode": "immediate", + "transition": {"duration": 300}, + "frame": {"duration": 300, "redraw": False}, + }, + ], + } + for i in range(len(x_data.index)) + ], + } + ], + ) + + # Create the figure and add the initial trace + fig = go.Figure(data=initial_trace, layout=layout, frames=frames) + + return fig + + +def create_rrg_without_tails( + ratios_data: "DataFrame", + momentum_data: "DataFrame", + benchmark_symbol: str, + study: str, + date: Optional[dateType] = None, +) -> "Figure": + """Create the Plotly Figure Object without Tails. + + Parameters + ---------- + ratios_data : DataFrame + The DataFrame containing the RS-Ratio values. + momentum_data : DataFrame + The DataFrame containing the RS-Momentum values. + benchmark_symbol : str + The symbol of the benchmark. + study: str + The study that was selected when loading the raw data. + If custom data is supplied, this will override the study for the chart titles. + date : Optional[dateType], optional + A specific date within the data to target for display, by default None. + + Returns + ------- + Figure + Plotly GraphObjects Figure. + """ + # pylint: disable=import-outside-toplevel + from plotly import graph_objects as go # noqa + from pandas import to_datetime # noqa + + if date is not None and date not in ratios_data.index.astype(str): + warn(f"Date {str(date)} not found in data, using the last available date.") + date = ratios_data.index[-1] + if date is None: + date = ratios_data.index[-1] + + # Select a single row from each dataframe + row_x = ratios_data.loc[to_datetime(date).date()] # type: ignore + row_y = momentum_data.loc[to_datetime(date).date()] # type: ignore + + x_max = row_x.max() + 0.5 + x_min = row_x.min() - 0.5 + y_max = row_y.max() + 0.5 + y_min = row_y.min() - 0.5 + + # Create an empty list to store the scatter traces + traces = [] + + # Loop through each column in the row_x dataframe + for i, (column_name, value_x) in enumerate(row_x.items()): + # Retrieve the corresponding value from the row_y dataframe + value_y = row_y[column_name] # type: ignore + marker_name = column_name.upper().replace("^", "").replace(":US", "") # type: ignore + special_name = "-" in marker_name or len(marker_name) > 5 + marker_size = 38 if special_name else 30 + # Create a scatter trace for each column + trace = go.Scatter( + x=[value_x], + y=[value_y], + mode="markers+text", + text=[marker_name], + textposition="middle center", + textfont=dict(size=10 if len(marker_name) < 4 else 8, color="black"), + marker=dict( + size=marker_size, + color=color_sequence[i % len(color_sequence)], + line=dict(color="black", width=1), + ), + name=column_name, + showlegend=False, + hovertemplate="%{fullData.name}" + + "
RS-Ratio: %{x:.4f}
" + + "RS-Momentum: %{y:.4f}" + + "", + ) + # Add the trace to the list + traces.append(trace) + + padding = 0.1 + y_range = [y_min - padding * abs(y_min) - 0.3, y_max + padding * abs(y_max)] + x_range = [x_min - padding * abs(x_min), x_max + padding * abs(x_max)] + + layout = go.Layout( + title={ + "text": ( + f"RS-Ratio vs RS-Momentum of {study.capitalize()} " + f"Against {benchmark_symbol.replace('^', '')} - {to_datetime(row_x.name).strftime('%Y-%m-%d')}" # type: ignore + ), + "x": 0.5, + "xanchor": "center", + "font": dict(size=20), + }, + xaxis=dict( + title="RS-Ratio", + zerolinecolor="black", + range=x_range, + showspikes=False, + ), + yaxis=dict( + title="
RS-Momentum", + zerolinecolor="black", + range=y_range, + side="left", + title_standoff=5, + showspikes=False, + ), + shapes=[ + go.layout.Shape( + type="rect", + xref="x", + yref="y", + x0=0, + y0=0, + x1=x_range[1], + y1=y_range[1], + fillcolor="lightgreen", + opacity=0.3, + layer="below", + line_width=0, + ), + go.layout.Shape( + type="rect", + xref="x", + yref="y", + x0=x_range[0], + y0=0, + x1=0, + y1=y_range[1], + fillcolor="lightblue", + opacity=0.3, + layer="below", + line_width=0, + ), + go.layout.Shape( + type="rect", + xref="x", + yref="y", + x0=x_range[0], + y0=y_range[0], + x1=0, + y1=0, + fillcolor="lightpink", + opacity=0.3, + layer="below", + line_width=0, + ), + go.layout.Shape( + type="rect", + xref="x", + yref="y", + x0=0, + y0=y_range[0], + x1=x_range[1], + y1=0, + fillcolor="lightyellow", + opacity=0.3, + layer="below", + line_width=0, + ), + go.layout.Shape( + type="rect", + xref="x", + yref="y", + x0=x_range[0], + y0=y_range[0], + x1=x_range[1], + y1=y_range[1], + line=dict( + color="Black", + width=1, + ), + fillcolor="rgba(0,0,0,0)", + layer="above", + ), + ], + annotations=[ + go.layout.Annotation( + x=1, + xref="paper", + y=1, + yref="paper", + text="Leading", + showarrow=False, + font=dict( + size=18, + color="darkgreen", + ), + ), + go.layout.Annotation( + x=1, + xref="paper", + y=0, + yref="paper", + text="Weakening", + showarrow=False, + font=dict( + size=18, + color="goldenrod", + ), + ), + go.layout.Annotation( + x=0, + xref="paper", + y=0, + yref="paper", + text="Lagging", + showarrow=False, + font=dict( + size=18, + color="red", + ), + ), + go.layout.Annotation( + x=0, + xref="paper", + yref="paper", + y=1, + text="Improving", + showarrow=False, + font=dict( + size=18, + color="blue", + ), + ), + ], + autosize=True, + margin=dict( + l=30, + r=50, + b=50, + t=50, + pad=0, + ), + dragmode="pan", + ) + + fig = go.Figure(data=traces, layout=layout) + + return fig diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/__init__.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..91c890e79c2e7c1c9a033636efda98eaa925b3f7 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/__init__.py @@ -0,0 +1 @@ +"""OpenBB Charting core.""" diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/assets/Terminal_icon.png b/openbb_platform/obbject_extensions/charting/openbb_charting/core/assets/Terminal_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5e984431867f3194d41292dc118162b68b691d77 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/assets/Terminal_icon.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c35949a0354ad27527099161f9cb97503d6bfdc42769e31eca5e589062bddae3 +size 418780 diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/assets/plotly-3.0.0.min.js b/openbb_platform/obbject_extensions/charting/openbb_charting/core/assets/plotly-3.0.0.min.js new file mode 100644 index 0000000000000000000000000000000000000000..dc83321e9427572056ad55cedeb85619f8d76e94 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/assets/plotly-3.0.0.min.js @@ -0,0 +1,3879 @@ +/** +* plotly.js v3.0.0 +* Copyright 2012-2025, Plotly, Inc. +* All rights reserved. +* Licensed under the MIT license +*/ +( + function(root, factory) { + if (typeof module === "object" && module.exports) { + module.exports = factory(); + } else { + root.moduleName = factory(); + } +} (typeof self !== "undefined" ? self : this, () => { +"use strict";var Plotly=(()=>{var $C=Object.defineProperty,DQe=Object.defineProperties,zQe=Object.getOwnPropertyDescriptor,FQe=Object.getOwnPropertyDescriptors,qQe=Object.getOwnPropertyNames,WQ=Object.getOwnPropertySymbols;var XQ=Object.prototype.hasOwnProperty,OQe=Object.prototype.propertyIsEnumerable;var ZQ=(e,t,r)=>t in e?$C(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,YQ=(e,t)=>{for(var r in t||(t={}))XQ.call(t,r)&&ZQ(e,r,t[r]);if(WQ)for(var r of WQ(t))OQe.call(t,r)&&ZQ(e,r,t[r]);return e},KQ=(e,t)=>DQe(e,FQe(t));var su=(e,t)=>()=>(e&&(t=e(e=0)),t);var ye=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),BQe=(e,t)=>{for(var r in t)$C(e,r,{get:t[r],enumerable:!0})},NQe=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of qQe(t))!XQ.call(e,i)&&i!==r&&$C(e,i,{get:()=>t[i],enumerable:!(n=zQe(t,i))||n.enumerable});return e};var ab=e=>NQe($C({},"__esModule",{value:!0}),e);var QC=ye(JQ=>{"use strict";JQ.version="3.0.0"});var QQ=ye(($Q,e6)=>{(function(t,r,n){r[t]=r[t]||n(),typeof e6!="undefined"&&e6.exports?e6.exports=r[t]:typeof define=="function"&&define.amd&&define(function(){return r[t]})})("Promise",typeof window!="undefined"?window:$Q,function(){"use strict";var t,r,n,i=Object.prototype.toString,a=typeof setImmediate!="undefined"?function(E){return setImmediate(E)}:setTimeout;try{Object.defineProperty({},"x",{}),t=function(E,k,A,L){return Object.defineProperty(E,k,{value:A,writable:!0,configurable:L!==!1})}}catch(g){t=function(k,A,L){return k[A]=L,k}}n=function(){var E,k,A;function L(_,C){this.fn=_,this.self=C,this.next=void 0}return{add:function(C,M){A=new L(C,M),k?k.next=A:E=A,k=A,A=void 0},drain:function(){var C=E;for(E=k=r=void 0;C;)C.fn.call(C.self),C=C.next}}}();function o(g,E){n.add(g,E),r||(r=a(n.drain))}function s(g){var E,k=typeof g;return g!=null&&(k=="object"||k=="function")&&(E=g.then),typeof E=="function"?E:!1}function l(){for(var g=0;g0&&o(l,k))}catch(A){f.call(new d(k),A)}}}function f(g){var E=this;E.triggered||(E.triggered=!0,E.def&&(E=E.def),E.msg=g,E.state=2,E.chain.length>0&&o(l,E))}function h(g,E,k,A){for(var L=0;L{(function(){var e={version:"3.8.2"},t=[].slice,r=function(Z){return t.call(Z)},n=self.document;function i(Z){return Z&&(Z.ownerDocument||Z.document||Z).documentElement}function a(Z){return Z&&(Z.ownerDocument&&Z.ownerDocument.defaultView||Z.document&&Z||Z.defaultView)}if(n)try{r(n.documentElement.childNodes)[0].nodeType}catch(Z){r=function(oe){for(var we=oe.length,Be=new Array(we);we--;)Be[we]=oe[we];return Be}}if(Date.now||(Date.now=function(){return+new Date}),n)try{n.createElement("DIV").style.setProperty("opacity",0,"")}catch(Z){var o=this.Element.prototype,s=o.setAttribute,l=o.setAttributeNS,u=this.CSSStyleDeclaration.prototype,c=u.setProperty;o.setAttribute=function(oe,we){s.call(this,oe,we+"")},o.setAttributeNS=function(oe,we,Be){l.call(this,oe,we,Be+"")},u.setProperty=function(oe,we,Be){c.call(this,oe,we+"",Be)}}e.ascending=f;function f(Z,oe){return Zoe?1:Z>=oe?0:NaN}e.descending=function(Z,oe){return oeZ?1:oe>=Z?0:NaN},e.min=function(Z,oe){var we=-1,Be=Z.length,Ue,We;if(arguments.length===1){for(;++we=We){Ue=We;break}for(;++weWe&&(Ue=We)}else{for(;++we=We){Ue=We;break}for(;++weWe&&(Ue=We)}return Ue},e.max=function(Z,oe){var we=-1,Be=Z.length,Ue,We;if(arguments.length===1){for(;++we=We){Ue=We;break}for(;++weUe&&(Ue=We)}else{for(;++we=We){Ue=We;break}for(;++weUe&&(Ue=We)}return Ue},e.extent=function(Z,oe){var we=-1,Be=Z.length,Ue,We,wt;if(arguments.length===1){for(;++we=We){Ue=wt=We;break}for(;++weWe&&(Ue=We),wt=We){Ue=wt=We;break}for(;++weWe&&(Ue=We),wt1)return wt/(zt-1)},e.deviation=function(){var Z=e.variance.apply(this,arguments);return Z&&Math.sqrt(Z)};function v(Z){return{left:function(oe,we,Be,Ue){for(arguments.length<3&&(Be=0),arguments.length<4&&(Ue=oe.length);Be>>1;Z(oe[We],we)<0?Be=We+1:Ue=We}return Be},right:function(oe,we,Be,Ue){for(arguments.length<3&&(Be=0),arguments.length<4&&(Ue=oe.length);Be>>1;Z(oe[We],we)>0?Ue=We:Be=We+1}return Be}}}var x=v(f);e.bisectLeft=x.left,e.bisect=e.bisectRight=x.right,e.bisector=function(Z){return v(Z.length===1?function(oe,we){return f(Z(oe),we)}:Z)},e.shuffle=function(Z,oe,we){(Be=arguments.length)<3&&(we=Z.length,Be<2&&(oe=0));for(var Be=we-oe,Ue,We;Be;)We=Math.random()*Be--|0,Ue=Z[Be+oe],Z[Be+oe]=Z[We+oe],Z[We+oe]=Ue;return Z},e.permute=function(Z,oe){for(var we=oe.length,Be=new Array(we);we--;)Be[we]=Z[oe[we]];return Be},e.pairs=function(Z){for(var oe=0,we=Z.length-1,Be,Ue=Z[0],We=new Array(we<0?0:we);oe=0;)for(wt=Z[oe],we=wt.length;--we>=0;)We[--Ue]=wt[we];return We};var g=Math.abs;e.range=function(Z,oe,we){if(arguments.length<3&&(we=1,arguments.length<2&&(oe=Z,Z=0)),(oe-Z)/we===1/0)throw new Error("infinite range");var Be=[],Ue=E(g(we)),We=-1,wt;if(Z*=Ue,oe*=Ue,we*=Ue,we<0)for(;(wt=Z+we*++We)>oe;)Be.push(wt/Ue);else for(;(wt=Z+we*++We)=oe.length)return Ue?Ue.call(Z,zt):Be?zt.sort(Be):zt;for(var lr=-1,Dr=zt.length,Ir=oe[or++],oi,ui,qr,Kr=new A,ii;++lr=oe.length)return tt;var or=[],lr=we[zt++];return tt.forEach(function(Dr,Ir){or.push({key:Dr,values:wt(Ir,zt)})}),lr?or.sort(function(Dr,Ir){return lr(Dr.key,Ir.key)}):or}return Z.map=function(tt,zt){return We(zt,tt,0)},Z.entries=function(tt){return wt(We(e.map,tt,0),0)},Z.key=function(tt){return oe.push(tt),Z},Z.sortKeys=function(tt){return we[oe.length-1]=tt,Z},Z.sortValues=function(tt){return Be=tt,Z},Z.rollup=function(tt){return Ue=tt,Z},Z},e.set=function(Z){var oe=new V;if(Z)for(var we=0,Be=Z.length;we=0&&(Be=Z.slice(we+1),Z=Z.slice(0,we)),Z)return arguments.length<2?this[Z].on(Be):this[Z].on(Be,oe);if(arguments.length===2){if(oe==null)for(Z in this)this.hasOwnProperty(Z)&&this[Z].on(Be,null);return this}};function ae(Z){var oe=[],we=new A;function Be(){for(var Ue=oe,We=-1,wt=Ue.length,tt;++We=0&&(we=Z.slice(0,oe))!=="xmlns"&&(Z=Z.slice(oe+1)),Ge.hasOwnProperty(we)?{space:Ge[we],local:Z}:Z}},Ce.attr=function(Z,oe){if(arguments.length<2){if(typeof Z=="string"){var we=this.node();return Z=e.ns.qualify(Z),Z.local?we.getAttributeNS(Z.space,Z.local):we.getAttribute(Z)}for(oe in Z)this.each(nt(oe,Z[oe]));return this}return this.each(nt(Z,oe))};function nt(Z,oe){Z=e.ns.qualify(Z);function we(){this.removeAttribute(Z)}function Be(){this.removeAttributeNS(Z.space,Z.local)}function Ue(){this.setAttribute(Z,oe)}function We(){this.setAttributeNS(Z.space,Z.local,oe)}function wt(){var zt=oe.apply(this,arguments);zt==null?this.removeAttribute(Z):this.setAttribute(Z,zt)}function tt(){var zt=oe.apply(this,arguments);zt==null?this.removeAttributeNS(Z.space,Z.local):this.setAttributeNS(Z.space,Z.local,zt)}return oe==null?Z.local?Be:we:typeof oe=="function"?Z.local?tt:wt:Z.local?We:Ue}function ct(Z){return Z.trim().replace(/\s+/g," ")}Ce.classed=function(Z,oe){if(arguments.length<2){if(typeof Z=="string"){var we=this.node(),Be=(Z=rt(Z)).length,Ue=-1;if(oe=we.classList){for(;++Ue=0;)(We=we[Be])&&(Ue&&Ue!==We.nextSibling&&Ue.parentNode.insertBefore(We,Ue),Ue=We);return this},Ce.sort=function(Z){Z=xt.apply(this,arguments);for(var oe=-1,we=this.length;++oe=oe&&(oe=Ue+1);!(zt=wt[oe])&&++oe0&&(Z=Z.slice(0,Ue));var wt=Ht.get(Z);wt&&(Z=wt,We=fr);function tt(){var lr=this[Be];lr&&(this.removeEventListener(Z,lr,lr.$),delete this[Be])}function zt(){var lr=We(oe,r(arguments));tt.call(this),this.addEventListener(Z,this[Be]=lr,lr.$=we),lr._=oe}function or(){var lr=new RegExp("^__on([^.]+)"+e.requote(Z)+"$"),Dr;for(var Ir in this)if(Dr=Ir.match(lr)){var oi=this[Ir];this.removeEventListener(Dr[1],oi,oi.$),delete this[Ir]}}return Ue?oe?zt:tt:oe?W:or}var Ht=e.map({mouseenter:"mouseover",mouseleave:"mouseout"});n&&Ht.forEach(function(Z){"on"+Z in n&&Ht.remove(Z)});function $t(Z,oe){return function(we){var Be=e.event;e.event=we,oe[0]=this.__data__;try{Z.apply(this,oe)}finally{e.event=Be}}}function fr(Z,oe){var we=$t(Z,oe);return function(Be){var Ue=this,We=Be.relatedTarget;(!We||We!==Ue&&!(We.compareDocumentPosition(Ue)&8))&&we.call(Ue,Be)}}var _r,Br=0;function Or(Z){var oe=".dragsuppress-"+ ++Br,we="click"+oe,Be=e.select(a(Z)).on("touchmove"+oe,_e).on("dragstart"+oe,_e).on("selectstart"+oe,_e);if(_r==null&&(_r="onselectstart"in Z?!1:G(Z.style,"userSelect")),_r){var Ue=i(Z).style,We=Ue[_r];Ue[_r]="none"}return function(wt){if(Be.on(oe,null),_r&&(Ue[_r]=We),wt){var tt=function(){Be.on(we,null)};Be.on(we,function(){_e(),tt()},!0),setTimeout(tt,0)}}}e.mouse=function(Z){return ut(Z,Me())};var Nr=this.navigator&&/WebKit/.test(this.navigator.userAgent)?-1:0;function ut(Z,oe){oe.changedTouches&&(oe=oe.changedTouches[0]);var we=Z.ownerSVGElement||Z;if(we.createSVGPoint){var Be=we.createSVGPoint();if(Nr<0){var Ue=a(Z);if(Ue.scrollX||Ue.scrollY){we=e.select("body").append("svg").style({position:"absolute",top:0,left:0,margin:0,padding:0,border:"none"},"important");var We=we[0][0].getScreenCTM();Nr=!(We.f||We.e),we.remove()}}return Nr?(Be.x=oe.pageX,Be.y=oe.pageY):(Be.x=oe.clientX,Be.y=oe.clientY),Be=Be.matrixTransform(Z.getScreenCTM().inverse()),[Be.x,Be.y]}var wt=Z.getBoundingClientRect();return[oe.clientX-wt.left-Z.clientLeft,oe.clientY-wt.top-Z.clientTop]}e.touch=function(Z,oe,we){if(arguments.length<3&&(we=oe,oe=Me().changedTouches),oe){for(var Be=0,Ue=oe.length,We;Be0?1:Z<0?-1:0}function Vt(Z,oe,we){return(oe[0]-Z[0])*(we[1]-Z[1])-(oe[1]-Z[1])*(we[0]-Z[0])}function ar(Z){return Z>1?0:Z<-1?Xe:Math.acos(Z)}function Qr(Z){return Z>1?xe:Z<-1?-xe:Math.asin(Z)}function ai(Z){return((Z=Math.exp(Z))-1/Z)/2}function jr(Z){return((Z=Math.exp(Z))+1/Z)/2}function ri(Z){return((Z=Math.exp(2*Z))-1)/(Z+1)}function bi(Z){return(Z=Math.sin(Z/2))*Z}var nn=Math.SQRT2,Wi=2,Ni=4;e.interpolateZoom=function(Z,oe){var we=Z[0],Be=Z[1],Ue=Z[2],We=oe[0],wt=oe[1],tt=oe[2],zt=We-we,or=wt-Be,lr=zt*zt+or*or,Dr,Ir;if(lr0&&(pn=pn.transition().duration(wt)),pn.call(ci.event)}function ga(){Kr&&Kr.domain(qr.range().map(function(pn){return(pn-Z.x)/Z.k}).map(qr.invert)),vi&&vi.domain(ii.range().map(function(pn){return(pn-Z.y)/Z.k}).map(ii.invert))}function ya(pn){tt++||pn({type:"zoomstart"})}function so(pn){ga(),pn({type:"zoom",scale:Z.k,translate:[Z.x,Z.y]})}function wa(pn){--tt||(pn({type:"zoomend"}),we=null)}function io(){var pn=this,za=ui.of(pn,arguments),Lo=0,Fo=e.select(a(pn)).on(or,fu).on(lr,dl),js=Jr(e.mouse(pn)),xl=Or(pn);ea.call(pn),ya(za);function fu(){Lo=1,En(e.mouse(pn),js),so(za)}function dl(){Fo.on(or,null).on(lr,null),xl(Lo),wa(za)}}function Ss(){var pn=this,za=ui.of(pn,arguments),Lo={},Fo=0,js,xl=".zoom-"+e.event.changedTouches[0].identifier,fu="touchmove"+xl,dl="touchend"+xl,xc=[],At=e.select(pn),Er=Or(pn);wi(),ya(za),At.on(zt,null).on(Ir,wi);function Wr(){var Bi=e.touches(pn);return js=Z.k,Bi.forEach(function(cn){cn.identifier in Lo&&(Lo[cn.identifier]=Jr(cn))}),Bi}function wi(){var Bi=e.event.target;e.select(Bi).on(fu,Ui).on(dl,Oi),xc.push(Bi);for(var cn=e.event.changedTouches,On=0,Bn=cn.length;On1){var Rn=yn[0],Dn=yn[1],fn=Rn[0]-Dn[0],Ai=Rn[1]-Dn[1];Fo=fn*fn+Ai*Ai}}function Ui(){var Bi=e.touches(pn),cn,On,Bn,yn;ea.call(pn);for(var to=0,Rn=Bi.length;to1?1:oe,we=we<0?0:we>1?1:we,Ue=we<=.5?we*(1+oe):we+oe-we*oe,Be=2*we-Ue;function We(tt){return tt>360?tt-=360:tt<0&&(tt+=360),tt<60?Be+(Ue-Be)*tt/60:tt<180?Ue:tt<240?Be+(Ue-Be)*(240-tt)/60:Be}function wt(tt){return Math.round(We(tt)*255)}return new Fa(wt(Z+120),wt(Z),wt(Z-120))}e.hcl=Zt;function Zt(Z,oe,we){return this instanceof Zt?(this.h=+Z,this.c=+oe,void(this.l=+we)):arguments.length<2?Z instanceof Zt?new Zt(Z.h,Z.c,Z.l):Z instanceof Zr?Ki(Z.l,Z.a,Z.b):Ki((Z=xn((Z=e.rgb(Z)).r,Z.g,Z.b)).l,Z.a,Z.b):new Zt(Z,oe,we)}var yr=Zt.prototype=new Wn;yr.brighter=function(Z){return new Zt(this.h,this.c,Math.min(100,this.l+Vr*(arguments.length?Z:1)))},yr.darker=function(Z){return new Zt(this.h,this.c,Math.max(0,this.l-Vr*(arguments.length?Z:1)))},yr.rgb=function(){return Fr(this.h,this.c,this.l).rgb()};function Fr(Z,oe,we){return isNaN(Z)&&(Z=0),isNaN(oe)&&(oe=0),new Zr(we,Math.cos(Z*=Se)*oe,Math.sin(Z)*oe)}e.lab=Zr;function Zr(Z,oe,we){return this instanceof Zr?(this.l=+Z,this.a=+oe,void(this.b=+we)):arguments.length<2?Z instanceof Zr?new Zr(Z.l,Z.a,Z.b):Z instanceof Zt?Fr(Z.h,Z.c,Z.l):xn((Z=Fa(Z)).r,Z.g,Z.b):new Zr(Z,oe,we)}var Vr=18,gi=.95047,Si=1,Mi=1.08883,Pi=Zr.prototype=new Wn;Pi.brighter=function(Z){return new Zr(Math.min(100,this.l+Vr*(arguments.length?Z:1)),this.a,this.b)},Pi.darker=function(Z){return new Zr(Math.max(0,this.l-Vr*(arguments.length?Z:1)),this.a,this.b)},Pi.rgb=function(){return Gi(this.l,this.a,this.b)};function Gi(Z,oe,we){var Be=(Z+16)/116,Ue=Be+oe/500,We=Be-we/200;return Ue=ka(Ue)*gi,Be=ka(Be)*Si,We=ka(We)*Mi,new Fa(la(3.2404542*Ue-1.5371385*Be-.4985314*We),la(-.969266*Ue+1.8760108*Be+.041556*We),la(.0556434*Ue-.2040259*Be+1.0572252*We))}function Ki(Z,oe,we){return Z>0?new Zt(Math.atan2(we,oe)*lt,Math.sqrt(oe*oe+we*we),Z):new Zt(NaN,NaN,Z)}function ka(Z){return Z>.206893034?Z*Z*Z:(Z-4/29)/7.787037}function jn(Z){return Z>.008856?Math.pow(Z,1/3):7.787037*Z+4/29}function la(Z){return Math.round(255*(Z<=.00304?12.92*Z:1.055*Math.pow(Z,1/2.4)-.055))}e.rgb=Fa;function Fa(Z,oe,we){return this instanceof Fa?(this.r=~~Z,this.g=~~oe,void(this.b=~~we)):arguments.length<2?Z instanceof Fa?new Fa(Z.r,Z.g,Z.b):Ha(""+Z,Fa,jt):new Fa(Z,oe,we)}function Ra(Z){return new Fa(Z>>16,Z>>8&255,Z&255)}function jo(Z){return Ra(Z)+""}var oa=Fa.prototype=new Wn;oa.brighter=function(Z){Z=Math.pow(.7,arguments.length?Z:1);var oe=this.r,we=this.g,Be=this.b,Ue=30;return!oe&&!we&&!Be?new Fa(Ue,Ue,Ue):(oe&&oe>4,Be=Be>>4|Be,Ue=zt&240,Ue=Ue>>4|Ue,We=zt&15,We=We<<4|We):Z.length===7&&(Be=(zt&16711680)>>16,Ue=(zt&65280)>>8,We=zt&255)),oe(Be,Ue,We))}function oo(Z,oe,we){var Be=Math.min(Z/=255,oe/=255,we/=255),Ue=Math.max(Z,oe,we),We=Ue-Be,wt,tt,zt=(Ue+Be)/2;return We?(tt=zt<.5?We/(Ue+Be):We/(2-Ue-Be),Z==Ue?wt=(oe-we)/We+(oe0&&zt<1?0:wt),new It(wt,tt,zt)}function xn(Z,oe,we){Z=_t(Z),oe=_t(oe),we=_t(we);var Be=jn((.4124564*Z+.3575761*oe+.1804375*we)/gi),Ue=jn((.2126729*Z+.7151522*oe+.072175*we)/Si),We=jn((.0193339*Z+.119192*oe+.9503041*we)/Mi);return Zr(116*Ue-16,500*(Be-Ue),200*(Ue-We))}function _t(Z){return(Z/=255)<=.04045?Z/12.92:Math.pow((Z+.055)/1.055,2.4)}function br(Z){var oe=parseFloat(Z);return Z.charAt(Z.length-1)==="%"?Math.round(oe*2.55):oe}var Hr=e.map({aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074});Hr.forEach(function(Z,oe){Hr.set(Z,Ra(oe))});function ti(Z){return typeof Z=="function"?Z:function(){return Z}}e.functor=ti,e.xhr=zi(H);function zi(Z){return function(oe,we,Be){return arguments.length===2&&typeof we=="function"&&(Be=we,we=null),Yi(oe,we,Z,Be)}}function Yi(Z,oe,we,Be){var Ue={},We=e.dispatch("beforesend","progress","load","error"),wt={},tt=new XMLHttpRequest,zt=null;self.XDomainRequest&&!("withCredentials"in tt)&&/^(http(s)?:)?\/\//.test(Z)&&(tt=new XDomainRequest),"onload"in tt?tt.onload=tt.onerror=or:tt.onreadystatechange=function(){tt.readyState>3&&or()};function or(){var lr=tt.status,Dr;if(!lr&&hi(tt)||lr>=200&&lr<300||lr===304){try{Dr=we.call(Ue,tt)}catch(Ir){We.error.call(Ue,Ir);return}We.load.call(Ue,Dr)}else We.error.call(Ue,tt)}return tt.onprogress=function(lr){var Dr=e.event;e.event=lr;try{We.progress.call(Ue,tt)}finally{e.event=Dr}},Ue.header=function(lr,Dr){return lr=(lr+"").toLowerCase(),arguments.length<2?wt[lr]:(Dr==null?delete wt[lr]:wt[lr]=Dr+"",Ue)},Ue.mimeType=function(lr){return arguments.length?(oe=lr==null?null:lr+"",Ue):oe},Ue.responseType=function(lr){return arguments.length?(zt=lr,Ue):zt},Ue.response=function(lr){return we=lr,Ue},["get","post"].forEach(function(lr){Ue[lr]=function(){return Ue.send.apply(Ue,[lr].concat(r(arguments)))}}),Ue.send=function(lr,Dr,Ir){if(arguments.length===2&&typeof Dr=="function"&&(Ir=Dr,Dr=null),tt.open(lr,Z,!0),oe!=null&&!("accept"in wt)&&(wt.accept=oe+",*/*"),tt.setRequestHeader)for(var oi in wt)tt.setRequestHeader(oi,wt[oi]);return oe!=null&&tt.overrideMimeType&&tt.overrideMimeType(oe),zt!=null&&(tt.responseType=zt),Ir!=null&&Ue.on("error",Ir).on("load",function(ui){Ir(null,ui)}),We.beforesend.call(Ue,tt),tt.send(Dr==null?null:Dr),Ue},Ue.abort=function(){return tt.abort(),Ue},e.rebind(Ue,We,"on"),Be==null?Ue:Ue.get(an(Be))}function an(Z){return Z.length===1?function(oe,we){Z(oe==null?we:null)}:Z}function hi(Z){var oe=Z.responseType;return oe&&oe!=="text"?Z.response:Z.responseText}e.dsv=function(Z,oe){var we=new RegExp('["'+Z+` +]`),Be=Z.charCodeAt(0);function Ue(or,lr,Dr){arguments.length<3&&(Dr=lr,lr=null);var Ir=Yi(or,oe,lr==null?We:wt(lr),Dr);return Ir.row=function(oi){return arguments.length?Ir.response((lr=oi)==null?We:wt(oi)):lr},Ir}function We(or){return Ue.parse(or.responseText)}function wt(or){return function(lr){return Ue.parse(lr.responseText,or)}}Ue.parse=function(or,lr){var Dr;return Ue.parseRows(or,function(Ir,oi){if(Dr)return Dr(Ir,oi-1);var ui=function(qr){for(var Kr={},ii=Ir.length,vi=0;vi=ui)return Ir;if(vi)return vi=!1,Dr;var un=qr;if(or.charCodeAt(un)===34){for(var dn=un;dn++24?(isFinite(oe)&&(clearTimeout(Sa),Sa=setTimeout(ho,oe)),Fn=0):(Fn=1,go(ho))}e.timer.flush=function(){Mo(),xo()};function Mo(){for(var Z=Date.now(),oe=Ji;oe;)Z>=oe.t&&oe.c(Z-oe.t)&&(oe.c=null),oe=oe.n;return Z}function xo(){for(var Z,oe=Ji,we=1/0;oe;)oe.c?(oe.t=0;--tt)qr.push(Ue[or[Dr[tt]][2]]);for(tt=+oi;tt1&&Vt(Z[we[Be-2]],Z[we[Be-1]],Z[Ue])<=0;)--Be;we[Be++]=Ue}return we.slice(0,Be)}function Xs(Z,oe){return Z[0]-oe[0]||Z[1]-oe[1]}e.geom.polygon=function(Z){return ie(Z,wl),Z};var wl=e.geom.polygon.prototype=[];wl.area=function(){for(var Z=-1,oe=this.length,we,Be=this[oe-1],Ue=0;++ZYe)tt=tt.L;else if(wt=oe-vo(tt,we),wt>Ye){if(!tt.R){Be=tt;break}tt=tt.R}else{We>-Ye?(Be=tt.P,Ue=tt):wt>-Ye?(Be=tt,Ue=tt.N):Be=Ue=tt;break}var zt=ms(Z);if(Hs.insert(Be,zt),!(!Be&&!Ue)){if(Be===Ue){ko(Be),Ue=ms(Be.site),Hs.insert(zt,Ue),zt.edge=Ue.edge=cf(Be.site,zt.site),Zn(Be),Zn(Ue);return}if(!Ue){zt.edge=cf(Be.site,zt.site);return}ko(Be),ko(Ue);var or=Be.site,lr=or.x,Dr=or.y,Ir=Z.x-lr,oi=Z.y-Dr,ui=Ue.site,qr=ui.x-lr,Kr=ui.y-Dr,ii=2*(Ir*Kr-oi*qr),vi=Ir*Ir+oi*oi,ci=qr*qr+Kr*Kr,Jr={x:(Kr*vi-oi*ci)/ii+lr,y:(Ir*ci-qr*vi)/ii+Dr};Al(Ue.edge,or,ui,Jr),zt.edge=cf(or,Z,null,Jr),Ue.edge=cf(Z,ui,null,Jr),Zn(Be),Zn(Ue)}}function Il(Z,oe){var we=Z.site,Be=we.x,Ue=we.y,We=Ue-oe;if(!We)return Be;var wt=Z.P;if(!wt)return-1/0;we=wt.site;var tt=we.x,zt=we.y,or=zt-oe;if(!or)return tt;var lr=tt-Be,Dr=1/We-1/or,Ir=lr/or;return Dr?(-Ir+Math.sqrt(Ir*Ir-2*Dr*(lr*lr/(-2*or)-zt+or/2+Ue-We/2)))/Dr+Be:(Be+tt)/2}function vo(Z,oe){var we=Z.N;if(we)return Il(we,oe);var Be=Z.site;return Be.y===oe?Be.x:1/0}function Wl(Z){this.site=Z,this.edges=[]}Wl.prototype.prepare=function(){for(var Z=this.edges,oe=Z.length,we;oe--;)we=Z[oe].edge,(!we.b||!we.a)&&Z.splice(oe,1);return Z.sort(Zl),Z.length};function Ks(Z){for(var oe=Z[0][0],we=Z[1][0],Be=Z[0][1],Ue=Z[1][1],We,wt,tt,zt,or=Ys,lr=or.length,Dr,Ir,oi,ui,qr,Kr;lr--;)if(Dr=or[lr],!(!Dr||!Dr.prepare()))for(oi=Dr.edges,ui=oi.length,Ir=0;IrYe||g(zt-wt)>Ye)&&(oi.splice(Ir,0,new Hc(rh(Dr.site,Kr,g(tt-oe)Ye?{x:oe,y:g(We-oe)Ye?{x:g(wt-Ue)Ye?{x:we,y:g(We-we)Ye?{x:g(wt-Be)=-Ve)){var Ir=zt*zt+or*or,oi=lr*lr+Kr*Kr,ui=(Kr*Ir-or*oi)/Dr,qr=(zt*oi-lr*Ir)/Dr,Kr=qr+tt,ii=Hu.pop()||new Ec;ii.arc=Z,ii.site=Ue,ii.x=ui+wt,ii.y=Kr+Math.sqrt(ui*ui+qr*qr),ii.cy=Kr,Z.circle=ii;for(var vi=null,ci=$l._;ci;)if(ii.y0)){if(qr/=oi,oi<0){if(qr0){if(qr>Ir)return;qr>Dr&&(Dr=qr)}if(qr=we-tt,!(!oi&&qr<0)){if(qr/=oi,oi<0){if(qr>Ir)return;qr>Dr&&(Dr=qr)}else if(oi>0){if(qr0)){if(qr/=ui,ui<0){if(qr0){if(qr>Ir)return;qr>Dr&&(Dr=qr)}if(qr=Be-zt,!(!ui&&qr<0)){if(qr/=ui,ui<0){if(qr>Ir)return;qr>Dr&&(Dr=qr)}else if(ui>0){if(qr0&&(Ue.a={x:tt+Dr*oi,y:zt+Dr*ui}),Ir<1&&(Ue.b={x:tt+Ir*oi,y:zt+Ir*ui}),Ue}}}}}}function Tl(Z){for(var oe=ml,we=Co(Z[0][0],Z[0][1],Z[1][0],Z[1][1]),Be=oe.length,Ue;Be--;)Ue=oe[Be],(!uf(Ue,Z)||!we(Ue)||g(Ue.a.x-Ue.b.x)=We)return;if(lr>Ir){if(!Be)Be={x:ui,y:wt};else if(Be.y>=tt)return;we={x:ui,y:tt}}else{if(!Be)Be={x:ui,y:tt};else if(Be.y1)if(lr>Ir){if(!Be)Be={x:(wt-ii)/Kr,y:wt};else if(Be.y>=tt)return;we={x:(tt-ii)/Kr,y:tt}}else{if(!Be)Be={x:(tt-ii)/Kr,y:tt};else if(Be.y=We)return;we={x:We,y:Kr*We+ii}}else{if(!Be)Be={x:We,y:Kr*We+ii};else if(Be.x=lr&&ii.x<=Ir&&ii.y>=Dr&&ii.y<=oi?[[lr,oi],[Ir,oi],[Ir,Dr],[lr,Dr]]:[];vi.point=zt[qr]}),or}function tt(zt){return zt.map(function(or,lr){return{x:Math.round(Be(or,lr)/Ye)*Ye,y:Math.round(Ue(or,lr)/Ye)*Ye,i:lr}})}return wt.links=function(zt){return Gc(tt(zt)).edges.filter(function(or){return or.l&&or.r}).map(function(or){return{source:zt[or.l.i],target:zt[or.r.i]}})},wt.triangles=function(zt){var or=[];return Gc(tt(zt)).cells.forEach(function(lr,Dr){for(var Ir=lr.site,oi=lr.edges.sort(Zl),ui=-1,qr=oi.length,Kr,ii,vi=oi[qr-1].edge,ci=vi.l===Ir?vi.r:vi.l;++uici&&(ci=lr.x),lr.y>Jr&&(Jr=lr.y),oi.push(lr.x),ui.push(lr.y);else for(qr=0;qrci&&(ci=un),dn>Jr&&(Jr=dn),oi.push(un),ui.push(dn)}var En=ci-ii,Nn=Jr-vi;En>Nn?Jr=vi+En:ci=ii+Nn;function ga(wa,io,Ss,_s,Ns,pn,za,Lo){if(!(isNaN(Ss)||isNaN(_s)))if(wa.leaf){var Fo=wa.x,js=wa.y;if(Fo!=null)if(g(Fo-Ss)+g(js-_s)<.01)ya(wa,io,Ss,_s,Ns,pn,za,Lo);else{var xl=wa.point;wa.x=wa.y=wa.point=null,ya(wa,xl,Fo,js,Ns,pn,za,Lo),ya(wa,io,Ss,_s,Ns,pn,za,Lo)}else wa.x=Ss,wa.y=_s,wa.point=io}else ya(wa,io,Ss,_s,Ns,pn,za,Lo)}function ya(wa,io,Ss,_s,Ns,pn,za,Lo){var Fo=(Ns+za)*.5,js=(pn+Lo)*.5,xl=Ss>=Fo,fu=_s>=js,dl=fu<<1|xl;wa.leaf=!1,wa=wa.nodes[dl]||(wa.nodes[dl]=Ul()),xl?Ns=Fo:za=Fo,fu?pn=js:Lo=js,ga(wa,io,Ss,_s,Ns,pn,za,Lo)}var so=Ul();if(so.add=function(wa){ga(so,wa,+Dr(wa,++qr),+Ir(wa,qr),ii,vi,ci,Jr)},so.visit=function(wa){Js(wa,so,ii,vi,ci,Jr)},so.find=function(wa){return hc(so,wa[0],wa[1],ii,vi,ci,Jr)},qr=-1,oe==null){for(;++qrWe||Ir>wt||oi=un,Nn=we>=dn,ga=Nn<<1|En,ya=ga+4;gawe&&(We=oe.slice(we,We),tt[wt]?tt[wt]+=We:tt[++wt]=We),(Be=Be[0])===(Ue=Ue[0])?tt[wt]?tt[wt]+=Ue:tt[++wt]=Ue:(tt[++wt]=null,zt.push({i:wt,x:$s(Be,Ue)})),we=dc.lastIndex;return we=0&&!(Be=e.interpolators[we](Z,oe)););return Be}e.interpolators=[function(Z,oe){var we=typeof oe;return(we==="string"?Hr.has(oe.toLowerCase())||/^(#|rgb\(|hsl\()/i.test(oe)?Cc:hs:oe instanceof Wn?Cc:Array.isArray(oe)?ec:we==="object"&&isNaN(oe)?ws:$s)(Z,oe)}],e.interpolateArray=ec;function ec(Z,oe){var we=[],Be=[],Ue=Z.length,We=oe.length,wt=Math.min(Z.length,oe.length),tt;for(tt=0;tt=0?Z.slice(0,oe):Z,Be=oe>=0?Z.slice(oe+1):"in";return we=ov.get(we)||Ps,Be=wo.get(Be)||H,Od(Be(we.apply(null,t.call(arguments,1))))};function Od(Z){return function(oe){return oe<=0?0:oe>=1?1:Z(oe)}}function $o(Z){return function(oe){return 1-Z(1-oe)}}function Ja(Z){return function(oe){return .5*(oe<.5?Z(2*oe):2-Z(2-2*oe))}}function Ef(Z){return Z*Z}function tc(Z){return Z*Z*Z}function uu(Z){if(Z<=0)return 0;if(Z>=1)return 1;var oe=Z*Z,we=oe*Z;return 4*(Z<.5?we:3*(Z-oe)+we-.75)}function Mh(Z){return function(oe){return Math.pow(oe,Z)}}function jc(Z){return 1-Math.cos(Z*xe)}function kf(Z){return Math.pow(2,10*(Z-1))}function Ml(Z){return 1-Math.sqrt(1-Z*Z)}function Yh(Z,oe){var we;return arguments.length<2&&(oe=.45),arguments.length?we=oe/ht*Math.asin(1/Z):(Z=1,we=oe/4),function(Be){return 1+Z*Math.pow(2,-10*Be)*Math.sin((Be-we)*ht/oe)}}function Eh(Z){return Z||(Z=1.70158),function(oe){return oe*oe*((Z+1)*oe-Z)}}function nh(Z){return Z<1/2.75?7.5625*Z*Z:Z<2/2.75?7.5625*(Z-=1.5/2.75)*Z+.75:Z<2.5/2.75?7.5625*(Z-=2.25/2.75)*Z+.9375:7.5625*(Z-=2.625/2.75)*Z+.984375}e.interpolateHcl=hf;function hf(Z,oe){Z=e.hcl(Z),oe=e.hcl(oe);var we=Z.h,Be=Z.c,Ue=Z.l,We=oe.h-we,wt=oe.c-Be,tt=oe.l-Ue;return isNaN(wt)&&(wt=0,Be=isNaN(Be)?oe.c:Be),isNaN(We)?(We=0,we=isNaN(we)?oe.h:we):We>180?We-=360:We<-180&&(We+=360),function(zt){return Fr(we+We*zt,Be+wt*zt,Ue+tt*zt)+""}}e.interpolateHsl=kh;function kh(Z,oe){Z=e.hsl(Z),oe=e.hsl(oe);var we=Z.h,Be=Z.s,Ue=Z.l,We=oe.h-we,wt=oe.s-Be,tt=oe.l-Ue;return isNaN(wt)&&(wt=0,Be=isNaN(Be)?oe.s:Be),isNaN(We)?(We=0,we=isNaN(we)?oe.h:we):We>180?We-=360:We<-180&&(We+=360),function(zt){return jt(we+We*zt,Be+wt*zt,Ue+tt*zt)+""}}e.interpolateLab=Kh;function Kh(Z,oe){Z=e.lab(Z),oe=e.lab(oe);var we=Z.l,Be=Z.a,Ue=Z.b,We=oe.l-we,wt=oe.a-Be,tt=oe.b-Ue;return function(zt){return Gi(we+We*zt,Be+wt*zt,Ue+tt*zt)+""}}e.interpolateRound=rc;function rc(Z,oe){return oe-=Z,function(we){return Math.round(Z+oe*we)}}e.transform=function(Z){var oe=n.createElementNS(e.ns.prefix.svg,"g");return(e.transform=function(we){if(we!=null){oe.setAttribute("transform",we);var Be=oe.transform.baseVal.consolidate()}return new ah(Be?Be.matrix:Nf)})(Z)};function ah(Z){var oe=[Z.a,Z.b],we=[Z.c,Z.d],Be=df(oe),Ue=Wc(oe,we),We=df(Cu(we,oe,-Ue))||0;oe[0]*we[1]180?oe+=360:oe-Z>180&&(Z+=360),Be.push({i:we.push(Zc(we)+"rotate(",null,")")-2,x:$s(Z,oe)})):oe&&we.push(Zc(we)+"rotate("+oe+")")}function Bd(Z,oe,we,Be){Z!==oe?Be.push({i:we.push(Zc(we)+"skewX(",null,")")-2,x:$s(Z,oe)}):oe&&we.push(Zc(we)+"skewX("+oe+")")}function Jh(Z,oe,we,Be){if(Z[0]!==oe[0]||Z[1]!==oe[1]){var Ue=we.push(Zc(we)+"scale(",null,",",null,")");Be.push({i:Ue-4,x:$s(Z[0],oe[0])},{i:Ue-2,x:$s(Z[1],oe[1])})}else(oe[0]!==1||oe[1]!==1)&&we.push(Zc(we)+"scale("+oe+")")}function Cf(Z,oe){var we=[],Be=[];return Z=e.transform(Z),oe=e.transform(oe),ds(Z.translate,oe.translate,we,Be),Ch(Z.rotate,oe.rotate,we,Be),Bd(Z.skew,oe.skew,we,Be),Jh(Z.scale,oe.scale,we,Be),Z=oe=null,function(Ue){for(var We=-1,wt=Be.length,tt;++We0?We=Jr:(we.c=null,we.t=NaN,we=null,oe.end({type:"end",alpha:We=0})):Jr>0&&(oe.start({type:"start",alpha:We=Jr}),we=Oo(Z.tick)),Z):We},Z.start=function(){var Jr,un=oi.length,dn=ui.length,En=Be[0],Nn=Be[1],ga,ya;for(Jr=0;Jr=0;)We.push(lr=or[zt]),lr.parent=tt,lr.depth=tt.depth+1;we&&(tt.value=0),tt.children=or}else we&&(tt.value=+we.call(Be,tt,tt.depth)||0),delete tt.children;return vc(Ue,function(Dr){var Ir,oi;Z&&(Ir=Dr.children)&&Ir.sort(Z),we&&(oi=Dr.parent)&&(oi.value+=Dr.value)}),wt}return Be.sort=function(Ue){return arguments.length?(Z=Ue,Be):Z},Be.children=function(Ue){return arguments.length?(oe=Ue,Be):oe},Be.value=function(Ue){return arguments.length?(we=Ue,Be):we},Be.revalue=function(Ue){return we&&(Pc(Ue,function(We){We.children&&(We.value=0)}),vc(Ue,function(We){var wt;We.children||(We.value=+we.call(Be,We,We.depth)||0),(wt=We.parent)&&(wt.value+=We.value)})),Ue},Be};function Gu(Z,oe){return e.rebind(Z,oe,"sort","children","value"),Z.nodes=Z,Z.links=Iu,Z}function Pc(Z,oe){for(var we=[Z];(Z=we.pop())!=null;)if(oe(Z),(Ue=Z.children)&&(Be=Ue.length))for(var Be,Ue;--Be>=0;)we.push(Ue[Be])}function vc(Z,oe){for(var we=[Z],Be=[];(Z=we.pop())!=null;)if(Be.push(Z),(wt=Z.children)&&(We=wt.length))for(var Ue=-1,We,wt;++UeUe&&(Ue=tt),Be.push(tt)}for(wt=0;wtBe&&(we=oe,Be=Ue);return we}function Is(Z){return Z.reduce(Pf,0)}function Pf(Z,oe){return Z+oe[1]}e.layout.histogram=function(){var Z=!0,oe=Number,we=Vf,Be=Ic;function Ue(We,Ir){for(var tt=[],zt=We.map(oe,this),or=we.call(this,zt,Ir),lr=Be.call(this,or,zt,Ir),Dr,Ir=-1,oi=zt.length,ui=lr.length-1,qr=Z?1:1/oi,Kr;++Ir0)for(Ir=-1;++Ir=or[0]&&Kr<=or[1]&&(Dr=tt[e.bisect(lr,Kr,1,ui)-1],Dr.y+=qr,Dr.push(We[Ir]));return tt}return Ue.value=function(We){return arguments.length?(oe=We,Ue):oe},Ue.range=function(We){return arguments.length?(we=ti(We),Ue):we},Ue.bins=function(We){return arguments.length?(Be=typeof We=="number"?function(wt){return ju(wt,We)}:ti(We),Ue):Be},Ue.frequency=function(We){return arguments.length?(Z=!!We,Ue):Z},Ue};function Ic(Z,oe){return ju(Z,Math.ceil(Math.log(oe.length)/Math.LN2+1))}function ju(Z,oe){for(var we=-1,Be=+Z[0],Ue=(Z[1]-Be)/oe,We=[];++we<=oe;)We[we]=Ue*we+Be;return We}function Vf(Z){return[e.min(Z),e.max(Z)]}e.layout.pack=function(){var Z=e.layout.hierarchy().sort(pc),oe=0,we=[1,1],Be;function Ue(We,wt){var tt=Z.call(this,We,wt),zt=tt[0],or=we[0],lr=we[1],Dr=Be==null?Math.sqrt:typeof Be=="function"?Be:function(){return Be};if(zt.x=zt.y=0,vc(zt,function(oi){oi.r=+Dr(oi.value)}),vc(zt,Ih),oe){var Ir=oe*(Be?1:Math.max(2*zt.r/or,2*zt.r/lr))/2;vc(zt,function(oi){oi.r+=Ir}),vc(zt,Ih),vc(zt,function(oi){oi.r-=Ir})}return gc(zt,or/2,lr/2,Be?1:1/Math.max(2*zt.r/or,2*zt.r/lr)),tt}return Ue.size=function(We){return arguments.length?(we=We,Ue):we},Ue.radius=function(We){return arguments.length?(Be=We==null||typeof We=="function"?We:+We,Ue):Be},Ue.padding=function(We){return arguments.length?(oe=+We,Ue):oe},Gu(Ue,Z)};function pc(Z,oe){return Z.value-oe.value}function pf(Z,oe){var we=Z._pack_next;Z._pack_next=oe,oe._pack_prev=Z,oe._pack_next=we,we._pack_prev=oe}function Ph(Z,oe){Z._pack_next=oe,oe._pack_prev=Z}function Rl(Z,oe){var we=oe.x-Z.x,Be=oe.y-Z.y,Ue=Z.r+oe.r;return .999*Ue*Ue>we*we+Be*Be}function Ih(Z){if(!(oe=Z.children)||!(Ir=oe.length))return;var oe,we=1/0,Be=-1/0,Ue=1/0,We=-1/0,wt,tt,zt,or,lr,Dr,Ir;function oi(Jr){we=Math.min(Jr.x-Jr.r,we),Be=Math.max(Jr.x+Jr.r,Be),Ue=Math.min(Jr.y-Jr.r,Ue),We=Math.max(Jr.y+Jr.r,We)}if(oe.forEach(Wu),wt=oe[0],wt.x=-wt.r,wt.y=0,oi(wt),Ir>1&&(tt=oe[1],tt.x=tt.r,tt.y=0,oi(tt),Ir>2))for(zt=oe[2],hl(wt,tt,zt),oi(zt),pf(wt,zt),wt._pack_prev=zt,pf(zt,tt),tt=wt._pack_next,or=3;orKr.x&&(Kr=un),un.depth>ii.depth&&(ii=un)});var vi=oe(qr,Kr)/2-qr.x,ci=we[0]/(Kr.x+oe(Kr,qr)/2+vi),Jr=we[1]/(ii.depth||1);Pc(oi,function(un){un.x=(un.x+vi)*ci,un.y=un.depth*Jr})}return Ir}function We(lr){for(var Dr={A:null,children:[lr]},Ir=[Dr],oi;(oi=Ir.pop())!=null;)for(var ui=oi.children,qr,Kr=0,ii=ui.length;Kr0&&(nc(gt(qr,lr,Ir),lr,un),ii+=un,vi+=un),ci+=qr.m,ii+=oi.m,Jr+=Kr.m,vi+=ui.m;qr&&!Yc(ui)&&(ui.t=qr,ui.m+=ci-vi),oi&&!mc(Kr)&&(Kr.t=oi,Kr.m+=ii-Jr,Ir=lr)}return Ir}function or(lr){lr.x*=we[0],lr.y=lr.depth*we[1]}return Ue.separation=function(lr){return arguments.length?(oe=lr,Ue):oe},Ue.size=function(lr){return arguments.length?(Be=(we=lr)==null?or:null,Ue):Be?null:we},Ue.nodeSize=function(lr){return arguments.length?(Be=(we=lr)==null?null:or,Ue):Be?we:null},Gu(Ue,Z)};function ru(Z,oe){return Z.parent==oe.parent?1:2}function mc(Z){var oe=Z.children;return oe.length?oe[0]:Z.t}function Yc(Z){var oe=Z.children,we;return(we=oe.length)?oe[we-1]:Z.t}function nc(Z,oe,we){var Be=we/(oe.i-Z.i);oe.c-=Be,oe.s+=we,Z.c+=Be,oe.z+=we,oe.m+=we}function gf(Z){for(var oe=0,we=0,Be=Z.children,Ue=Be.length,We;--Ue>=0;)We=Be[Ue],We.z+=oe,We.m+=oe,oe+=We.s+(we+=We.c)}function gt(Z,oe,we){return Z.a.parent===oe.parent?Z.a:we}e.layout.cluster=function(){var Z=e.layout.hierarchy().sort(null).value(null),oe=ru,we=[1,1],Be=!1;function Ue(We,wt){var tt=Z.call(this,We,wt),zt=tt[0],or,lr=0;vc(zt,function(qr){var Kr=qr.children;Kr&&Kr.length?(qr.x=wr(Kr),qr.y=Bt(Kr)):(qr.x=or?lr+=oe(qr,or):0,qr.y=0,or=qr)});var Dr=vr(zt),Ir=Ur(zt),oi=Dr.x-oe(Dr,Ir)/2,ui=Ir.x+oe(Ir,Dr)/2;return vc(zt,Be?function(qr){qr.x=(qr.x-zt.x)*we[0],qr.y=(zt.y-qr.y)*we[1]}:function(qr){qr.x=(qr.x-oi)/(ui-oi)*we[0],qr.y=(1-(zt.y?qr.y/zt.y:1))*we[1]}),tt}return Ue.separation=function(We){return arguments.length?(oe=We,Ue):oe},Ue.size=function(We){return arguments.length?(Be=(we=We)==null,Ue):Be?null:we},Ue.nodeSize=function(We){return arguments.length?(Be=(we=We)!=null,Ue):Be?we:null},Gu(Ue,Z)};function Bt(Z){return 1+e.max(Z,function(oe){return oe.y})}function wr(Z){return Z.reduce(function(oe,we){return oe+we.x},0)/Z.length}function vr(Z){var oe=Z.children;return oe&&oe.length?vr(oe[0]):Z}function Ur(Z){var oe=Z.children,we;return oe&&(we=oe.length)?Ur(oe[we-1]):Z}e.layout.treemap=function(){var Z=e.layout.hierarchy(),oe=Math.round,we=[1,1],Be=null,Ue=fi,We=!1,wt,tt="squarify",zt=.5*(1+Math.sqrt(5));function or(qr,Kr){for(var ii=-1,vi=qr.length,ci,Jr;++ii0;)vi.push(Jr=ci[Nn-1]),vi.area+=Jr.area,tt!=="squarify"||(dn=Ir(vi,En))<=un?(ci.pop(),un=dn):(vi.area-=vi.pop().area,oi(vi,En,ii,!1),En=Math.min(ii.dx,ii.dy),vi.length=vi.area=0,un=1/0);vi.length&&(oi(vi,En,ii,!0),vi.length=vi.area=0),Kr.forEach(lr)}}function Dr(qr){var Kr=qr.children;if(Kr&&Kr.length){var ii=Ue(qr),vi=Kr.slice(),ci,Jr=[];for(or(vi,ii.dx*ii.dy/qr.value),Jr.area=0;ci=vi.pop();)Jr.push(ci),Jr.area+=ci.area,ci.z!=null&&(oi(Jr,ci.z?ii.dx:ii.dy,ii,!vi.length),Jr.length=Jr.area=0);Kr.forEach(Dr)}}function Ir(qr,Kr){for(var ii=qr.area,vi,ci=0,Jr=1/0,un=-1,dn=qr.length;++unci&&(ci=vi));return ii*=ii,Kr*=Kr,ii?Math.max(Kr*ci*zt/ii,ii/(Kr*Jr*zt)):1/0}function oi(qr,Kr,ii,vi){var ci=-1,Jr=qr.length,un=ii.x,dn=ii.y,En=Kr?oe(qr.area/Kr):0,Nn;if(Kr==ii.dx){for((vi||En>ii.dy)&&(En=ii.dy);++ciii.dx)&&(En=ii.dx);++ci1);return Z+oe*Be*Math.sqrt(-2*Math.log(We)/We)}},logNormal:function(){var Z=e.random.normal.apply(e,arguments);return function(){return Math.exp(Z())}},bates:function(Z){var oe=e.random.irwinHall(Z);return function(){return oe()/Z}},irwinHall:function(Z){return function(){for(var oe=0,we=0;we2?mi:hn,or=Be?Lu:pd;return Ue=zt(Z,oe,or,we),We=zt(oe,Z,or,Sl),tt}function tt(zt){return Ue(zt)}return tt.invert=function(zt){return We(zt)},tt.domain=function(zt){return arguments.length?(Z=zt.map(Number),wt()):Z},tt.range=function(zt){return arguments.length?(oe=zt,wt()):oe},tt.rangeRound=function(zt){return tt.range(zt).interpolate(rc)},tt.clamp=function(zt){return arguments.length?(Be=zt,wt()):Be},tt.interpolate=function(zt){return arguments.length?(we=zt,wt()):we},tt.ticks=function(zt){return qa(Z,zt)},tt.tickFormat=function(zt,or){return d3_scale_linearTickFormat(Z,zt,or)},tt.nice=function(zt){return Ta(Z,zt),wt()},tt.copy=function(){return Pn(Z,oe,we,Be)},wt()}function Ma(Z,oe){return e.rebind(Z,oe,"range","rangeRound","interpolate","clamp")}function Ta(Z,oe){return Ti(Z,qi(Ea(Z,oe)[2])),Ti(Z,qi(Ea(Z,oe)[2])),Z}function Ea(Z,oe){oe==null&&(oe=10);var we=Fi(Z),Be=we[1]-we[0],Ue=Math.pow(10,Math.floor(Math.log(Be/oe)/Math.LN10)),We=oe/Be*Ue;return We<=.15?Ue*=10:We<=.35?Ue*=5:We<=.75&&(Ue*=2),we[0]=Math.ceil(we[0]/Ue)*Ue,we[1]=Math.floor(we[1]/Ue)*Ue+Ue*.5,we[2]=Ue,we}function qa(Z,oe){return e.range.apply(e,Ea(Z,oe))}var Cn={s:1,g:1,p:1,r:1,e:1};function sn(Z){return-Math.floor(Math.log(Z)/Math.LN10+.01)}function Ua(Z,oe){var we=sn(oe[2]);return Z in Cn?Math.abs(we-sn(Math.max(g(oe[0]),g(oe[1]))))+ +(Z!=="e"):we-(Z==="%")*2}e.scale.log=function(){return mo(e.scale.linear().domain([0,1]),10,!0,[1,10])};function mo(Z,oe,we,Be){function Ue(tt){return(we?Math.log(tt<0?0:tt):-Math.log(tt>0?0:-tt))/Math.log(oe)}function We(tt){return we?Math.pow(oe,tt):-Math.pow(oe,-tt)}function wt(tt){return Z(Ue(tt))}return wt.invert=function(tt){return We(Z.invert(tt))},wt.domain=function(tt){return arguments.length?(we=tt[0]>=0,Z.domain((Be=tt.map(Number)).map(Ue)),wt):Be},wt.base=function(tt){return arguments.length?(oe=+tt,Z.domain(Be.map(Ue)),wt):oe},wt.nice=function(){var tt=Ti(Be.map(Ue),we?Math:Xo);return Z.domain(tt),Be=tt.map(We),wt},wt.ticks=function(){var tt=Fi(Be),zt=[],or=tt[0],lr=tt[1],Dr=Math.floor(Ue(or)),Ir=Math.ceil(Ue(lr)),oi=oe%1?2:oe;if(isFinite(Ir-Dr)){if(we){for(;Dr0;ui--)zt.push(We(Dr)*ui);for(Dr=0;zt[Dr]lr;Ir--);zt=zt.slice(Dr,Ir)}return zt},wt.copy=function(){return mo(Z.copy(),oe,we,Be)},Ma(wt,Z)}var Xo={floor:function(Z){return-Math.ceil(-Z)},ceil:function(Z){return-Math.floor(-Z)}};e.scale.pow=function(){return Ts(e.scale.linear(),1,[0,1])};function Ts(Z,oe,we){var Be=Qo(oe),Ue=Qo(1/oe);function We(wt){return Z(Be(wt))}return We.invert=function(wt){return Ue(Z.invert(wt))},We.domain=function(wt){return arguments.length?(Z.domain((we=wt.map(Number)).map(Be)),We):we},We.ticks=function(wt){return qa(we,wt)},We.tickFormat=function(wt,tt){return d3_scale_linearTickFormat(we,wt,tt)},We.nice=function(wt){return We.domain(Ta(we,wt))},We.exponent=function(wt){return arguments.length?(Be=Qo(oe=wt),Ue=Qo(1/oe),Z.domain(we.map(Be)),We):oe},We.copy=function(){return Ts(Z.copy(),oe,we)},Ma(We,Z)}function Qo(Z){return function(oe){return oe<0?-Math.pow(-oe,Z):Math.pow(oe,Z)}}e.scale.sqrt=function(){return e.scale.pow().exponent(.5)},e.scale.ordinal=function(){return ys([],{t:"range",a:[[]]})};function ys(Z,oe){var we,Be,Ue;function We(tt){return Be[((we.get(tt)||(oe.t==="range"?we.set(tt,Z.push(tt)):NaN))-1)%Be.length]}function wt(tt,zt){return e.range(Z.length).map(function(or){return tt+zt*or})}return We.domain=function(tt){if(!arguments.length)return Z;Z=[],we=new A;for(var zt=-1,or=tt.length,lr;++zt0?we[We-1]:Z[0],WeIr?0:1;if(lr=Le)return zt(lr,ui)+(or?zt(or,1-ui):"")+"Z";var qr,Kr,ii,vi,ci=0,Jr=0,un,dn,En,Nn,ga,ya,so,wa,io=[];if((vi=(+wt.apply(this,arguments)||0)/2)&&(ii=Be===Ru?Math.sqrt(or*or+lr*lr):+Be.apply(this,arguments),ui||(Jr*=-1),lr&&(Jr=Qr(ii/lr*Math.sin(vi))),or&&(ci=Qr(ii/or*Math.sin(vi)))),lr){un=lr*Math.cos(Dr+Jr),dn=lr*Math.sin(Dr+Jr),En=lr*Math.cos(Ir-Jr),Nn=lr*Math.sin(Ir-Jr);var Ss=Math.abs(Ir-Dr-2*Jr)<=Xe?0:1;if(Jr&&Dc(un,dn,En,Nn)===ui^Ss){var _s=(Dr+Ir)/2;un=lr*Math.cos(_s),dn=lr*Math.sin(_s),En=Nn=null}}else un=dn=0;if(or){ga=or*Math.cos(Ir-ci),ya=or*Math.sin(Ir-ci),so=or*Math.cos(Dr+ci),wa=or*Math.sin(Dr+ci);var Ns=Math.abs(Dr-Ir+2*ci)<=Xe?0:1;if(ci&&Dc(ga,ya,so,wa)===1-ui^Ns){var pn=(Dr+Ir)/2;ga=or*Math.cos(pn),ya=or*Math.sin(pn),so=wa=null}}else ga=ya=0;if(oi>Ye&&(qr=Math.min(Math.abs(lr-or)/2,+we.apply(this,arguments)))>.001){Kr=or0?0:1}function Da(Z,oe,we,Be,Ue){var We=Z[0]-oe[0],wt=Z[1]-oe[1],tt=(Ue?Be:-Be)/Math.sqrt(We*We+wt*wt),zt=tt*wt,or=-tt*We,lr=Z[0]+zt,Dr=Z[1]+or,Ir=oe[0]+zt,oi=oe[1]+or,ui=(lr+Ir)/2,qr=(Dr+oi)/2,Kr=Ir-lr,ii=oi-Dr,vi=Kr*Kr+ii*ii,ci=we-Be,Jr=lr*oi-Ir*Dr,un=(ii<0?-1:1)*Math.sqrt(Math.max(0,ci*ci*vi-Jr*Jr)),dn=(Jr*ii-Kr*un)/vi,En=(-Jr*Kr-ii*un)/vi,Nn=(Jr*ii+Kr*un)/vi,ga=(-Jr*Kr+ii*un)/vi,ya=dn-ui,so=En-qr,wa=Nn-ui,io=ga-qr;return ya*ya+so*so>wa*wa+io*io&&(dn=Nn,En=ga),[[dn-zt,En-or],[dn*we/ci,En*we/ci]]}function eo(){return!0}function Jc(Z){var oe=zs,we=ks,Be=eo,Ue=_c,We=Ue.key,wt=.7;function tt(zt){var or=[],lr=[],Dr=-1,Ir=zt.length,oi,ui=ti(oe),qr=ti(we);function Kr(){or.push("M",Ue(Z(lr),wt))}for(;++Dr1?Z.join("L"):Z+"Z"}function le(Z){return Z.join("L")+"Z"}function w(Z){for(var oe=0,we=Z.length,Be=Z[0],Ue=[Be[0],",",Be[1]];++oe1&&Ue.push("H",Be[0]),Ue.join("")}function B(Z){for(var oe=0,we=Z.length,Be=Z[0],Ue=[Be[0],",",Be[1]];++oe1){tt=oe[1],We=Z[zt],zt++,Be+="C"+(Ue[0]+wt[0])+","+(Ue[1]+wt[1])+","+(We[0]-tt[0])+","+(We[1]-tt[1])+","+We[0]+","+We[1];for(var or=2;or9&&(We=we*3/Math.sqrt(We),wt[tt]=We*Be,wt[tt+1]=We*Ue));for(tt=-1;++tt<=zt;)We=(Z[Math.min(zt,tt+1)][0]-Z[Math.max(0,tt-1)][0])/(6*(1+wt[tt]*wt[tt])),oe.push([We||0,wt[tt]*We||0]);return oe}function Mt(Z){return Z.length<3?_c(Z):Z[0]+je(Z,et(Z))}e.svg.line.radial=function(){var Z=Jc(Dt);return Z.radius=Z.x,delete Z.x,Z.angle=Z.y,delete Z.y,Z};function Dt(Z){for(var oe,we=-1,Be=Z.length,Ue,We;++weXe)+",1 "+Dr}function or(lr,Dr,Ir,oi){return"Q 0,0 "+oi}return We.radius=function(lr){return arguments.length?(we=ti(lr),We):we},We.source=function(lr){return arguments.length?(Z=ti(lr),We):Z},We.target=function(lr){return arguments.length?(oe=ti(lr),We):oe},We.startAngle=function(lr){return arguments.length?(Be=ti(lr),We):Be},We.endAngle=function(lr){return arguments.length?(Ue=ti(lr),We):Ue},We};function Rr(Z){return Z.radius}e.svg.diagonal=function(){var Z=tr,oe=mr,we=zr;function Be(Ue,We){var wt=Z.call(this,Ue,We),tt=oe.call(this,Ue,We),zt=(wt.y+tt.y)/2,or=[wt,{x:wt.x,y:zt},{x:tt.x,y:zt},tt];return or=or.map(we),"M"+or[0]+"C"+or[1]+" "+or[2]+" "+or[3]}return Be.source=function(Ue){return arguments.length?(Z=ti(Ue),Be):Z},Be.target=function(Ue){return arguments.length?(oe=ti(Ue),Be):oe},Be.projection=function(Ue){return arguments.length?(we=Ue,Be):we},Be};function zr(Z){return[Z.x,Z.y]}e.svg.diagonal.radial=function(){var Z=e.svg.diagonal(),oe=zr,we=Z.projection;return Z.projection=function(Be){return arguments.length?we(Xr(oe=Be)):oe},Z};function Xr(Z){return function(){var oe=Z.apply(this,arguments),we=oe[0],Be=oe[1]-xe;return[we*Math.cos(Be),we*Math.sin(Be)]}}e.svg.symbol=function(){var Z=Li,oe=di;function we(Be,Ue){return(Qi.get(Z.call(this,Be,Ue))||Ci)(oe.call(this,Be,Ue))}return we.type=function(Be){return arguments.length?(Z=ti(Be),we):Z},we.size=function(Be){return arguments.length?(oe=ti(Be),we):oe},we};function di(){return 64}function Li(){return"circle"}function Ci(Z){var oe=Math.sqrt(Z/Xe);return"M0,"+oe+"A"+oe+","+oe+" 0 1,1 0,"+-oe+"A"+oe+","+oe+" 0 1,1 0,"+oe+"Z"}var Qi=e.map({circle:Ci,cross:function(Z){var oe=Math.sqrt(Z/5)/2;return"M"+-3*oe+","+-oe+"H"+-oe+"V"+-3*oe+"H"+oe+"V"+-oe+"H"+3*oe+"V"+oe+"H"+oe+"V"+3*oe+"H"+-oe+"V"+oe+"H"+-3*oe+"Z"},diamond:function(Z){var oe=Math.sqrt(Z/(2*pa)),we=oe*pa;return"M0,"+-oe+"L"+we+",0 0,"+oe+" "+-we+",0Z"},square:function(Z){var oe=Math.sqrt(Z)/2;return"M"+-oe+","+-oe+"L"+oe+","+-oe+" "+oe+","+oe+" "+-oe+","+oe+"Z"},"triangle-down":function(Z){var oe=Math.sqrt(Z/Mn),we=oe*Mn/2;return"M0,"+we+"L"+oe+","+-we+" "+-oe+","+-we+"Z"},"triangle-up":function(Z){var oe=Math.sqrt(Z/Mn),we=oe*Mn/2;return"M0,"+-we+"L"+oe+","+we+" "+-oe+","+we+"Z"}});e.svg.symbolTypes=Qi.keys();var Mn=Math.sqrt(3),pa=Math.tan(30*Se);Ce.transition=function(Z){for(var oe=Ro||++co,we=po(Z),Be=[],Ue,We,wt=Ds||{time:Date.now(),ease:uu,delay:0,duration:250},tt=-1,zt=this.length;++tt0;)Dr[--vi].call(Z,ii);if(Kr>=1)return wt.event&&wt.event.end.call(Z,Z.__data__,oe),--We.count?delete We[Be]:delete Z[we],1}wt||(tt=Ue.time,zt=Oo(Ir,0,tt),wt=We[Be]={tween:new A,time:tt,timer:zt,delay:Ue.delay,duration:Ue.duration,ease:Ue.ease,index:oe},Ue=null,++We.count)}e.svg.axis=function(){var Z=e.scale.linear(),oe=Vl,we=6,Be=6,Ue=3,We=[10],wt=null,tt;function zt(or){or.each(function(){var lr=e.select(this),Dr=this.__chart__||Z,Ir=this.__chart__=Z.copy(),oi=wt==null?Ir.ticks?Ir.ticks.apply(Ir,We):Ir.domain():wt,ui=tt==null?Ir.tickFormat?Ir.tickFormat.apply(Ir,We):H:tt,qr=lr.selectAll(".tick").data(oi,Ir),Kr=qr.enter().insert("g",".domain").attr("class","tick").style("opacity",Ye),ii=e.transition(qr.exit()).style("opacity",Ye).remove(),vi=e.transition(qr.order()).style("opacity",1),ci=Math.max(we,0)+Ue,Jr,un=Xi(Ir),dn=lr.selectAll(".domain").data([0]),En=(dn.enter().append("path").attr("class","domain"),e.transition(dn));Kr.append("line"),Kr.append("text");var Nn=Kr.select("line"),ga=vi.select("line"),ya=qr.select("text").text(ui),so=Kr.select("text"),wa=vi.select("text"),io=oe==="top"||oe==="left"?-1:1,Ss,_s,Ns,pn;if(oe==="bottom"||oe==="top"?(Jr=cu,Ss="x",Ns="y",_s="x2",pn="y2",ya.attr("dy",io<0?"0em":".71em").style("text-anchor","middle"),En.attr("d","M"+un[0]+","+io*Be+"V0H"+un[1]+"V"+io*Be)):(Jr=el,Ss="y",Ns="x",_s="y2",pn="x2",ya.attr("dy",".32em").style("text-anchor",io<0?"end":"start"),En.attr("d","M"+io*Be+","+un[0]+"H0V"+un[1]+"H"+io*Be)),Nn.attr(pn,io*we),so.attr(Ns,io*ci),ga.attr(_s,0).attr(pn,io*we),wa.attr(Ss,0).attr(Ns,io*ci),Ir.rangeBand){var za=Ir,Lo=za.rangeBand()/2;Dr=Ir=function(Fo){return za(Fo)+Lo}}else Dr.rangeBand?Dr=Ir:ii.call(Jr,Ir,Dr);Kr.call(Jr,Dr,Ir),vi.call(Jr,Ir,Ir)})}return zt.scale=function(or){return arguments.length?(Z=or,zt):Z},zt.orient=function(or){return arguments.length?(oe=or in Zu?or+"":Vl,zt):oe},zt.ticks=function(){return arguments.length?(We=r(arguments),zt):We},zt.tickValues=function(or){return arguments.length?(wt=or,zt):wt},zt.tickFormat=function(or){return arguments.length?(tt=or,zt):tt},zt.tickSize=function(or){var lr=arguments.length;return lr?(we=+or,Be=+arguments[lr-1],zt):we},zt.innerTickSize=function(or){return arguments.length?(we=+or,zt):we},zt.outerTickSize=function(or){return arguments.length?(Be=+or,zt):Be},zt.tickPadding=function(or){return arguments.length?(Ue=+or,zt):Ue},zt.tickSubdivide=function(){return arguments.length&&zt},zt};var Vl="bottom",Zu={top:1,right:1,bottom:1,left:1};function cu(Z,oe,we){Z.attr("transform",function(Be){var Ue=oe(Be);return"translate("+(isFinite(Ue)?Ue:we(Be))+",0)"})}function el(Z,oe,we){Z.attr("transform",function(Be){var Ue=oe(Be);return"translate(0,"+(isFinite(Ue)?Ue:we(Be))+")"})}e.svg.brush=function(){var Z=ke(lr,"brushstart","brush","brushend"),oe=null,we=null,Be=[0,0],Ue=[0,0],We,wt,tt=!0,zt=!0,or=zc[0];function lr(qr){qr.each(function(){var Kr=e.select(this).style("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush",ui).on("touchstart.brush",ui),ii=Kr.selectAll(".background").data([0]);ii.enter().append("rect").attr("class","background").style("visibility","hidden").style("cursor","crosshair"),Kr.selectAll(".extent").data([0]).enter().append("rect").attr("class","extent").style("cursor","move");var vi=Kr.selectAll(".resize").data(or,H);vi.exit().remove(),vi.enter().append("g").attr("class",function(dn){return"resize "+dn}).style("cursor",function(dn){return nu[dn]}).append("rect").attr("x",function(dn){return/[ew]$/.test(dn)?-3:null}).attr("y",function(dn){return/^[ns]/.test(dn)?-3:null}).attr("width",6).attr("height",6).style("visibility","hidden"),vi.style("display",lr.empty()?"none":null);var ci=e.transition(Kr),Jr=e.transition(ii),un;oe&&(un=Xi(oe),Jr.attr("x",un[0]).attr("width",un[1]-un[0]),Ir(ci)),we&&(un=Xi(we),Jr.attr("y",un[0]).attr("height",un[1]-un[0]),oi(ci)),Dr(ci)})}lr.event=function(qr){qr.each(function(){var Kr=Z.of(this,arguments),ii={x:Be,y:Ue,i:We,j:wt},vi=this.__chart__||ii;this.__chart__=ii,Ro?e.select(this).transition().each("start.brush",function(){We=vi.i,wt=vi.j,Be=vi.x,Ue=vi.y,Kr({type:"brushstart"})}).tween("brush:brush",function(){var ci=ec(Be,ii.x),Jr=ec(Ue,ii.y);return We=wt=null,function(un){Be=ii.x=ci(un),Ue=ii.y=Jr(un),Kr({type:"brush",mode:"resize"})}}).each("end.brush",function(){We=ii.i,wt=ii.j,Kr({type:"brush",mode:"resize"}),Kr({type:"brushend"})}):(Kr({type:"brushstart"}),Kr({type:"brush",mode:"resize"}),Kr({type:"brushend"}))})};function Dr(qr){qr.selectAll(".resize").attr("transform",function(Kr){return"translate("+Be[+/e$/.test(Kr)]+","+Ue[+/^s/.test(Kr)]+")"})}function Ir(qr){qr.select(".extent").attr("x",Be[0]),qr.selectAll(".extent,.n>rect,.s>rect").attr("width",Be[1]-Be[0])}function oi(qr){qr.select(".extent").attr("y",Ue[0]),qr.selectAll(".extent,.e>rect,.w>rect").attr("height",Ue[1]-Ue[0])}function ui(){var qr=this,Kr=e.select(e.event.target),ii=Z.of(qr,arguments),vi=e.select(qr),ci=Kr.datum(),Jr=!/^(n|s)$/.test(ci)&&oe,un=!/^(e|w)$/.test(ci)&&we,dn=Kr.classed("extent"),En=Or(qr),Nn,ga=e.mouse(qr),ya,so=e.select(a(qr)).on("keydown.brush",Ss).on("keyup.brush",_s);if(e.event.changedTouches?so.on("touchmove.brush",Ns).on("touchend.brush",za):so.on("mousemove.brush",Ns).on("mouseup.brush",za),vi.interrupt().selectAll("*").interrupt(),dn)ga[0]=Be[0]-ga[0],ga[1]=Ue[0]-ga[1];else if(ci){var wa=+/w$/.test(ci),io=+/^n/.test(ci);ya=[Be[1-wa]-ga[0],Ue[1-io]-ga[1]],ga[0]=Be[wa],ga[1]=Ue[io]}else e.event.altKey&&(Nn=ga.slice());vi.style("pointer-events","none").selectAll(".resize").style("display",null),e.select("body").style("cursor",Kr.style("cursor")),ii({type:"brushstart"}),Ns();function Ss(){e.event.keyCode==32&&(dn||(Nn=null,ga[0]-=Be[1],ga[1]-=Ue[1],dn=2),_e())}function _s(){e.event.keyCode==32&&dn==2&&(ga[0]+=Be[1],ga[1]+=Ue[1],dn=0,_e())}function Ns(){var Lo=e.mouse(qr),Fo=!1;ya&&(Lo[0]+=ya[0],Lo[1]+=ya[1]),dn||(e.event.altKey?(Nn||(Nn=[(Be[0]+Be[1])/2,(Ue[0]+Ue[1])/2]),ga[0]=Be[+(Lo[0]{(function(e,t){typeof r6=="object"&&typeof eee!="undefined"?t(r6):typeof define=="function"&&define.amd?define(["exports"],t):(e=e||self,t(e.d3=e.d3||{}))})(r6,function(e){"use strict";var t=new Date,r=new Date;function n(Ke,xt,bt,Lt){function St(Et){return Ke(Et=arguments.length===0?new Date:new Date(+Et)),Et}return St.floor=function(Et){return Ke(Et=new Date(+Et)),Et},St.ceil=function(Et){return Ke(Et=new Date(Et-1)),xt(Et,1),Ke(Et),Et},St.round=function(Et){var dt=St(Et),Ht=St.ceil(Et);return Et-dt0))return $t;do $t.push(fr=new Date(+Et)),xt(Et,Ht),Ke(Et);while(fr=dt)for(;Ke(dt),!Et(dt);)dt.setTime(dt-1)},function(dt,Ht){if(dt>=dt)if(Ht<0)for(;++Ht<=0;)for(;xt(dt,-1),!Et(dt););else for(;--Ht>=0;)for(;xt(dt,1),!Et(dt););})},bt&&(St.count=function(Et,dt){return t.setTime(+Et),r.setTime(+dt),Ke(t),Ke(r),Math.floor(bt(t,r))},St.every=function(Et){return Et=Math.floor(Et),!isFinite(Et)||!(Et>0)?null:Et>1?St.filter(Lt?function(dt){return Lt(dt)%Et===0}:function(dt){return St.count(0,dt)%Et===0}):St}),St}var i=n(function(){},function(Ke,xt){Ke.setTime(+Ke+xt)},function(Ke,xt){return xt-Ke});i.every=function(Ke){return Ke=Math.floor(Ke),!isFinite(Ke)||!(Ke>0)?null:Ke>1?n(function(xt){xt.setTime(Math.floor(xt/Ke)*Ke)},function(xt,bt){xt.setTime(+xt+bt*Ke)},function(xt,bt){return(bt-xt)/Ke}):i};var a=i.range,o=1e3,s=6e4,l=36e5,u=864e5,c=6048e5,f=n(function(Ke){Ke.setTime(Ke-Ke.getMilliseconds())},function(Ke,xt){Ke.setTime(+Ke+xt*o)},function(Ke,xt){return(xt-Ke)/o},function(Ke){return Ke.getUTCSeconds()}),h=f.range,d=n(function(Ke){Ke.setTime(Ke-Ke.getMilliseconds()-Ke.getSeconds()*o)},function(Ke,xt){Ke.setTime(+Ke+xt*s)},function(Ke,xt){return(xt-Ke)/s},function(Ke){return Ke.getMinutes()}),v=d.range,x=n(function(Ke){Ke.setTime(Ke-Ke.getMilliseconds()-Ke.getSeconds()*o-Ke.getMinutes()*s)},function(Ke,xt){Ke.setTime(+Ke+xt*l)},function(Ke,xt){return(xt-Ke)/l},function(Ke){return Ke.getHours()}),b=x.range,g=n(function(Ke){Ke.setHours(0,0,0,0)},function(Ke,xt){Ke.setDate(Ke.getDate()+xt)},function(Ke,xt){return(xt-Ke-(xt.getTimezoneOffset()-Ke.getTimezoneOffset())*s)/u},function(Ke){return Ke.getDate()-1}),E=g.range;function k(Ke){return n(function(xt){xt.setDate(xt.getDate()-(xt.getDay()+7-Ke)%7),xt.setHours(0,0,0,0)},function(xt,bt){xt.setDate(xt.getDate()+bt*7)},function(xt,bt){return(bt-xt-(bt.getTimezoneOffset()-xt.getTimezoneOffset())*s)/c})}var A=k(0),L=k(1),_=k(2),C=k(3),M=k(4),p=k(5),P=k(6),T=A.range,F=L.range,q=_.range,V=C.range,H=M.range,X=p.range,G=P.range,N=n(function(Ke){Ke.setDate(1),Ke.setHours(0,0,0,0)},function(Ke,xt){Ke.setMonth(Ke.getMonth()+xt)},function(Ke,xt){return xt.getMonth()-Ke.getMonth()+(xt.getFullYear()-Ke.getFullYear())*12},function(Ke){return Ke.getMonth()}),W=N.range,re=n(function(Ke){Ke.setMonth(0,1),Ke.setHours(0,0,0,0)},function(Ke,xt){Ke.setFullYear(Ke.getFullYear()+xt)},function(Ke,xt){return xt.getFullYear()-Ke.getFullYear()},function(Ke){return Ke.getFullYear()});re.every=function(Ke){return!isFinite(Ke=Math.floor(Ke))||!(Ke>0)?null:n(function(xt){xt.setFullYear(Math.floor(xt.getFullYear()/Ke)*Ke),xt.setMonth(0,1),xt.setHours(0,0,0,0)},function(xt,bt){xt.setFullYear(xt.getFullYear()+bt*Ke)})};var ae=re.range,_e=n(function(Ke){Ke.setUTCSeconds(0,0)},function(Ke,xt){Ke.setTime(+Ke+xt*s)},function(Ke,xt){return(xt-Ke)/s},function(Ke){return Ke.getUTCMinutes()}),Me=_e.range,ke=n(function(Ke){Ke.setUTCMinutes(0,0,0)},function(Ke,xt){Ke.setTime(+Ke+xt*l)},function(Ke,xt){return(xt-Ke)/l},function(Ke){return Ke.getUTCHours()}),ge=ke.range,ie=n(function(Ke){Ke.setUTCHours(0,0,0,0)},function(Ke,xt){Ke.setUTCDate(Ke.getUTCDate()+xt)},function(Ke,xt){return(xt-Ke)/u},function(Ke){return Ke.getUTCDate()-1}),Te=ie.range;function Ee(Ke){return n(function(xt){xt.setUTCDate(xt.getUTCDate()-(xt.getUTCDay()+7-Ke)%7),xt.setUTCHours(0,0,0,0)},function(xt,bt){xt.setUTCDate(xt.getUTCDate()+bt*7)},function(xt,bt){return(bt-xt)/c})}var Ae=Ee(0),ze=Ee(1),Ce=Ee(2),me=Ee(3),Re=Ee(4),ce=Ee(5),Ge=Ee(6),nt=Ae.range,ct=ze.range,qt=Ce.range,rt=me.range,ot=Re.range,Rt=ce.range,kt=Ge.range,Ct=n(function(Ke){Ke.setUTCDate(1),Ke.setUTCHours(0,0,0,0)},function(Ke,xt){Ke.setUTCMonth(Ke.getUTCMonth()+xt)},function(Ke,xt){return xt.getUTCMonth()-Ke.getUTCMonth()+(xt.getUTCFullYear()-Ke.getUTCFullYear())*12},function(Ke){return Ke.getUTCMonth()}),Yt=Ct.range,xr=n(function(Ke){Ke.setUTCMonth(0,1),Ke.setUTCHours(0,0,0,0)},function(Ke,xt){Ke.setUTCFullYear(Ke.getUTCFullYear()+xt)},function(Ke,xt){return xt.getUTCFullYear()-Ke.getUTCFullYear()},function(Ke){return Ke.getUTCFullYear()});xr.every=function(Ke){return!isFinite(Ke=Math.floor(Ke))||!(Ke>0)?null:n(function(xt){xt.setUTCFullYear(Math.floor(xt.getUTCFullYear()/Ke)*Ke),xt.setUTCMonth(0,1),xt.setUTCHours(0,0,0,0)},function(xt,bt){xt.setUTCFullYear(xt.getUTCFullYear()+bt*Ke)})};var er=xr.range;e.timeDay=g,e.timeDays=E,e.timeFriday=p,e.timeFridays=X,e.timeHour=x,e.timeHours=b,e.timeInterval=n,e.timeMillisecond=i,e.timeMilliseconds=a,e.timeMinute=d,e.timeMinutes=v,e.timeMonday=L,e.timeMondays=F,e.timeMonth=N,e.timeMonths=W,e.timeSaturday=P,e.timeSaturdays=G,e.timeSecond=f,e.timeSeconds=h,e.timeSunday=A,e.timeSundays=T,e.timeThursday=M,e.timeThursdays=H,e.timeTuesday=_,e.timeTuesdays=q,e.timeWednesday=C,e.timeWednesdays=V,e.timeWeek=A,e.timeWeeks=T,e.timeYear=re,e.timeYears=ae,e.utcDay=ie,e.utcDays=Te,e.utcFriday=ce,e.utcFridays=Rt,e.utcHour=ke,e.utcHours=ge,e.utcMillisecond=i,e.utcMilliseconds=a,e.utcMinute=_e,e.utcMinutes=Me,e.utcMonday=ze,e.utcMondays=ct,e.utcMonth=Ct,e.utcMonths=Yt,e.utcSaturday=Ge,e.utcSaturdays=kt,e.utcSecond=f,e.utcSeconds=h,e.utcSunday=Ae,e.utcSundays=nt,e.utcThursday=Re,e.utcThursdays=ot,e.utcTuesday=Ce,e.utcTuesdays=qt,e.utcWednesday=me,e.utcWednesdays=rt,e.utcWeek=Ae,e.utcWeeks=nt,e.utcYear=xr,e.utcYears=er,Object.defineProperty(e,"__esModule",{value:!0})})});var e3=ye((i6,tee)=>{(function(e,t){typeof i6=="object"&&typeof tee!="undefined"?t(i6,hq()):typeof define=="function"&&define.amd?define(["exports","d3-time"],t):(e=e||self,t(e.d3=e.d3||{},e.d3))})(i6,function(e,t){"use strict";function r(Ne){if(0<=Ne.y&&Ne.y<100){var Ye=new Date(-1,Ne.m,Ne.d,Ne.H,Ne.M,Ne.S,Ne.L);return Ye.setFullYear(Ne.y),Ye}return new Date(Ne.y,Ne.m,Ne.d,Ne.H,Ne.M,Ne.S,Ne.L)}function n(Ne){if(0<=Ne.y&&Ne.y<100){var Ye=new Date(Date.UTC(-1,Ne.m,Ne.d,Ne.H,Ne.M,Ne.S,Ne.L));return Ye.setUTCFullYear(Ne.y),Ye}return new Date(Date.UTC(Ne.y,Ne.m,Ne.d,Ne.H,Ne.M,Ne.S,Ne.L))}function i(Ne,Ye,Ve){return{y:Ne,m:Ye,d:Ve,H:0,M:0,S:0,L:0}}function a(Ne){var Ye=Ne.dateTime,Ve=Ne.date,Xe=Ne.time,ht=Ne.periods,Le=Ne.days,xe=Ne.shortDays,Se=Ne.months,lt=Ne.shortMonths,Gt=h(ht),Vt=d(ht),ar=h(Le),Qr=d(Le),ai=h(xe),jr=d(xe),ri=h(Se),bi=d(Se),nn=h(lt),Wi=d(lt),Ni={a:Si,A:Mi,b:Pi,B:Gi,c:null,d:N,e:N,f:Me,H:W,I:re,j:ae,L:_e,m:ke,M:ge,p:Ki,q:ka,Q:dt,s:Ht,S:ie,u:Te,U:Ee,V:Ae,w:ze,W:Ce,x:null,X:null,y:me,Y:Re,Z:ce,"%":Et},_n={a:jn,A:la,b:Fa,B:Ra,c:null,d:Ge,e:Ge,f:ot,H:nt,I:ct,j:qt,L:rt,m:Rt,M:kt,p:jo,q:oa,Q:dt,s:Ht,S:Ct,u:Yt,U:xr,V:er,w:Ke,W:xt,x:null,X:null,y:bt,Y:Lt,Z:St,"%":Et},$i={a:jt,A:Zt,b:yr,B:Fr,c:Zr,d:M,e:M,f:V,H:P,I:P,j:p,L:q,m:C,M:T,p:ft,q:_,Q:X,s:G,S:F,u:x,U:b,V:g,w:v,W:E,x:Vr,X:gi,y:A,Y:k,Z:L,"%":H};Ni.x=zn(Ve,Ni),Ni.X=zn(Xe,Ni),Ni.c=zn(Ye,Ni),_n.x=zn(Ve,_n),_n.X=zn(Xe,_n),_n.c=zn(Ye,_n);function zn(Sn,Ha){return function(oo){var xn=[],_t=-1,br=0,Hr=Sn.length,ti,zi,Yi;for(oo instanceof Date||(oo=new Date(+oo));++_t53)return null;"w"in xn||(xn.w=1),"Z"in xn?(br=n(i(xn.y,0,1)),Hr=br.getUTCDay(),br=Hr>4||Hr===0?t.utcMonday.ceil(br):t.utcMonday(br),br=t.utcDay.offset(br,(xn.V-1)*7),xn.y=br.getUTCFullYear(),xn.m=br.getUTCMonth(),xn.d=br.getUTCDate()+(xn.w+6)%7):(br=r(i(xn.y,0,1)),Hr=br.getDay(),br=Hr>4||Hr===0?t.timeMonday.ceil(br):t.timeMonday(br),br=t.timeDay.offset(br,(xn.V-1)*7),xn.y=br.getFullYear(),xn.m=br.getMonth(),xn.d=br.getDate()+(xn.w+6)%7)}else("W"in xn||"U"in xn)&&("w"in xn||(xn.w="u"in xn?xn.u%7:"W"in xn?1:0),Hr="Z"in xn?n(i(xn.y,0,1)).getUTCDay():r(i(xn.y,0,1)).getDay(),xn.m=0,xn.d="W"in xn?(xn.w+6)%7+xn.W*7-(Hr+5)%7:xn.w+xn.U*7-(Hr+6)%7);return"Z"in xn?(xn.H+=xn.Z/100|0,xn.M+=xn.Z%100,n(xn)):r(xn)}}function It(Sn,Ha,oo,xn){for(var _t=0,br=Ha.length,Hr=oo.length,ti,zi;_t=Hr)return-1;if(ti=Ha.charCodeAt(_t++),ti===37){if(ti=Ha.charAt(_t++),zi=$i[ti in o?Ha.charAt(_t++):ti],!zi||(xn=zi(Sn,oo,xn))<0)return-1}else if(ti!=oo.charCodeAt(xn++))return-1}return xn}function ft(Sn,Ha,oo){var xn=Gt.exec(Ha.slice(oo));return xn?(Sn.p=Vt[xn[0].toLowerCase()],oo+xn[0].length):-1}function jt(Sn,Ha,oo){var xn=ai.exec(Ha.slice(oo));return xn?(Sn.w=jr[xn[0].toLowerCase()],oo+xn[0].length):-1}function Zt(Sn,Ha,oo){var xn=ar.exec(Ha.slice(oo));return xn?(Sn.w=Qr[xn[0].toLowerCase()],oo+xn[0].length):-1}function yr(Sn,Ha,oo){var xn=nn.exec(Ha.slice(oo));return xn?(Sn.m=Wi[xn[0].toLowerCase()],oo+xn[0].length):-1}function Fr(Sn,Ha,oo){var xn=ri.exec(Ha.slice(oo));return xn?(Sn.m=bi[xn[0].toLowerCase()],oo+xn[0].length):-1}function Zr(Sn,Ha,oo){return It(Sn,Ye,Ha,oo)}function Vr(Sn,Ha,oo){return It(Sn,Ve,Ha,oo)}function gi(Sn,Ha,oo){return It(Sn,Xe,Ha,oo)}function Si(Sn){return xe[Sn.getDay()]}function Mi(Sn){return Le[Sn.getDay()]}function Pi(Sn){return lt[Sn.getMonth()]}function Gi(Sn){return Se[Sn.getMonth()]}function Ki(Sn){return ht[+(Sn.getHours()>=12)]}function ka(Sn){return 1+~~(Sn.getMonth()/3)}function jn(Sn){return xe[Sn.getUTCDay()]}function la(Sn){return Le[Sn.getUTCDay()]}function Fa(Sn){return lt[Sn.getUTCMonth()]}function Ra(Sn){return Se[Sn.getUTCMonth()]}function jo(Sn){return ht[+(Sn.getUTCHours()>=12)]}function oa(Sn){return 1+~~(Sn.getUTCMonth()/3)}return{format:function(Sn){var Ha=zn(Sn+="",Ni);return Ha.toString=function(){return Sn},Ha},parse:function(Sn){var Ha=Wn(Sn+="",!1);return Ha.toString=function(){return Sn},Ha},utcFormat:function(Sn){var Ha=zn(Sn+="",_n);return Ha.toString=function(){return Sn},Ha},utcParse:function(Sn){var Ha=Wn(Sn+="",!0);return Ha.toString=function(){return Sn},Ha}}}var o={"-":"",_:" ",0:"0"},s=/^\s*\d+/,l=/^%/,u=/[\\^$*+?|[\]().{}]/g;function c(Ne,Ye,Ve){var Xe=Ne<0?"-":"",ht=(Xe?-Ne:Ne)+"",Le=ht.length;return Xe+(Le68?1900:2e3),Ve+Xe[0].length):-1}function L(Ne,Ye,Ve){var Xe=/^(Z)|([+-]\d\d)(?::?(\d\d))?/.exec(Ye.slice(Ve,Ve+6));return Xe?(Ne.Z=Xe[1]?0:-(Xe[2]+(Xe[3]||"00")),Ve+Xe[0].length):-1}function _(Ne,Ye,Ve){var Xe=s.exec(Ye.slice(Ve,Ve+1));return Xe?(Ne.q=Xe[0]*3-3,Ve+Xe[0].length):-1}function C(Ne,Ye,Ve){var Xe=s.exec(Ye.slice(Ve,Ve+2));return Xe?(Ne.m=Xe[0]-1,Ve+Xe[0].length):-1}function M(Ne,Ye,Ve){var Xe=s.exec(Ye.slice(Ve,Ve+2));return Xe?(Ne.d=+Xe[0],Ve+Xe[0].length):-1}function p(Ne,Ye,Ve){var Xe=s.exec(Ye.slice(Ve,Ve+3));return Xe?(Ne.m=0,Ne.d=+Xe[0],Ve+Xe[0].length):-1}function P(Ne,Ye,Ve){var Xe=s.exec(Ye.slice(Ve,Ve+2));return Xe?(Ne.H=+Xe[0],Ve+Xe[0].length):-1}function T(Ne,Ye,Ve){var Xe=s.exec(Ye.slice(Ve,Ve+2));return Xe?(Ne.M=+Xe[0],Ve+Xe[0].length):-1}function F(Ne,Ye,Ve){var Xe=s.exec(Ye.slice(Ve,Ve+2));return Xe?(Ne.S=+Xe[0],Ve+Xe[0].length):-1}function q(Ne,Ye,Ve){var Xe=s.exec(Ye.slice(Ve,Ve+3));return Xe?(Ne.L=+Xe[0],Ve+Xe[0].length):-1}function V(Ne,Ye,Ve){var Xe=s.exec(Ye.slice(Ve,Ve+6));return Xe?(Ne.L=Math.floor(Xe[0]/1e3),Ve+Xe[0].length):-1}function H(Ne,Ye,Ve){var Xe=l.exec(Ye.slice(Ve,Ve+1));return Xe?Ve+Xe[0].length:-1}function X(Ne,Ye,Ve){var Xe=s.exec(Ye.slice(Ve));return Xe?(Ne.Q=+Xe[0],Ve+Xe[0].length):-1}function G(Ne,Ye,Ve){var Xe=s.exec(Ye.slice(Ve));return Xe?(Ne.s=+Xe[0],Ve+Xe[0].length):-1}function N(Ne,Ye){return c(Ne.getDate(),Ye,2)}function W(Ne,Ye){return c(Ne.getHours(),Ye,2)}function re(Ne,Ye){return c(Ne.getHours()%12||12,Ye,2)}function ae(Ne,Ye){return c(1+t.timeDay.count(t.timeYear(Ne),Ne),Ye,3)}function _e(Ne,Ye){return c(Ne.getMilliseconds(),Ye,3)}function Me(Ne,Ye){return _e(Ne,Ye)+"000"}function ke(Ne,Ye){return c(Ne.getMonth()+1,Ye,2)}function ge(Ne,Ye){return c(Ne.getMinutes(),Ye,2)}function ie(Ne,Ye){return c(Ne.getSeconds(),Ye,2)}function Te(Ne){var Ye=Ne.getDay();return Ye===0?7:Ye}function Ee(Ne,Ye){return c(t.timeSunday.count(t.timeYear(Ne)-1,Ne),Ye,2)}function Ae(Ne,Ye){var Ve=Ne.getDay();return Ne=Ve>=4||Ve===0?t.timeThursday(Ne):t.timeThursday.ceil(Ne),c(t.timeThursday.count(t.timeYear(Ne),Ne)+(t.timeYear(Ne).getDay()===4),Ye,2)}function ze(Ne){return Ne.getDay()}function Ce(Ne,Ye){return c(t.timeMonday.count(t.timeYear(Ne)-1,Ne),Ye,2)}function me(Ne,Ye){return c(Ne.getFullYear()%100,Ye,2)}function Re(Ne,Ye){return c(Ne.getFullYear()%1e4,Ye,4)}function ce(Ne){var Ye=Ne.getTimezoneOffset();return(Ye>0?"-":(Ye*=-1,"+"))+c(Ye/60|0,"0",2)+c(Ye%60,"0",2)}function Ge(Ne,Ye){return c(Ne.getUTCDate(),Ye,2)}function nt(Ne,Ye){return c(Ne.getUTCHours(),Ye,2)}function ct(Ne,Ye){return c(Ne.getUTCHours()%12||12,Ye,2)}function qt(Ne,Ye){return c(1+t.utcDay.count(t.utcYear(Ne),Ne),Ye,3)}function rt(Ne,Ye){return c(Ne.getUTCMilliseconds(),Ye,3)}function ot(Ne,Ye){return rt(Ne,Ye)+"000"}function Rt(Ne,Ye){return c(Ne.getUTCMonth()+1,Ye,2)}function kt(Ne,Ye){return c(Ne.getUTCMinutes(),Ye,2)}function Ct(Ne,Ye){return c(Ne.getUTCSeconds(),Ye,2)}function Yt(Ne){var Ye=Ne.getUTCDay();return Ye===0?7:Ye}function xr(Ne,Ye){return c(t.utcSunday.count(t.utcYear(Ne)-1,Ne),Ye,2)}function er(Ne,Ye){var Ve=Ne.getUTCDay();return Ne=Ve>=4||Ve===0?t.utcThursday(Ne):t.utcThursday.ceil(Ne),c(t.utcThursday.count(t.utcYear(Ne),Ne)+(t.utcYear(Ne).getUTCDay()===4),Ye,2)}function Ke(Ne){return Ne.getUTCDay()}function xt(Ne,Ye){return c(t.utcMonday.count(t.utcYear(Ne)-1,Ne),Ye,2)}function bt(Ne,Ye){return c(Ne.getUTCFullYear()%100,Ye,2)}function Lt(Ne,Ye){return c(Ne.getUTCFullYear()%1e4,Ye,4)}function St(){return"+0000"}function Et(){return"%"}function dt(Ne){return+Ne}function Ht(Ne){return Math.floor(+Ne/1e3)}var $t;fr({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function fr(Ne){return $t=a(Ne),e.timeFormat=$t.format,e.timeParse=$t.parse,e.utcFormat=$t.utcFormat,e.utcParse=$t.utcParse,$t}var _r="%Y-%m-%dT%H:%M:%S.%LZ";function Br(Ne){return Ne.toISOString()}var Or=Date.prototype.toISOString?Br:e.utcFormat(_r);function Nr(Ne){var Ye=new Date(Ne);return isNaN(Ye)?null:Ye}var ut=+new Date("2000-01-01T00:00:00.000Z")?Nr:e.utcParse(_r);e.isoFormat=Or,e.isoParse=ut,e.timeFormatDefaultLocale=fr,e.timeFormatLocale=a,Object.defineProperty(e,"__esModule",{value:!0})})});var dq=ye((n6,ree)=>{(function(e,t){typeof n6=="object"&&typeof ree!="undefined"?t(n6):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis!="undefined"?globalThis:e||self,t(e.d3=e.d3||{}))})(n6,function(e){"use strict";function t(C){return Math.abs(C=Math.round(C))>=1e21?C.toLocaleString("en").replace(/,/g,""):C.toString(10)}function r(C,M){if((p=(C=M?C.toExponential(M-1):C.toExponential()).indexOf("e"))<0)return null;var p,P=C.slice(0,p);return[P.length>1?P[0]+P.slice(2):P,+C.slice(p+1)]}function n(C){return C=r(Math.abs(C)),C?C[1]:NaN}function i(C,M){return function(p,P){for(var T=p.length,F=[],q=0,V=C[0],H=0;T>0&&V>0&&(H+V+1>P&&(V=Math.max(1,P-H)),F.push(p.substring(T-=V,T+V)),!((H+=V+1)>P));)V=C[q=(q+1)%C.length];return F.reverse().join(M)}}function a(C){return function(M){return M.replace(/[0-9]/g,function(p){return C[+p]})}}var o=/^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;function s(C){if(!(M=o.exec(C)))throw new Error("invalid format: "+C);var M;return new l({fill:M[1],align:M[2],sign:M[3],symbol:M[4],zero:M[5],width:M[6],comma:M[7],precision:M[8]&&M[8].slice(1),trim:M[9],type:M[10]})}s.prototype=l.prototype;function l(C){this.fill=C.fill===void 0?" ":C.fill+"",this.align=C.align===void 0?">":C.align+"",this.sign=C.sign===void 0?"-":C.sign+"",this.symbol=C.symbol===void 0?"":C.symbol+"",this.zero=!!C.zero,this.width=C.width===void 0?void 0:+C.width,this.comma=!!C.comma,this.precision=C.precision===void 0?void 0:+C.precision,this.trim=!!C.trim,this.type=C.type===void 0?"":C.type+""}l.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width===void 0?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision===void 0?"":"."+Math.max(0,this.precision|0))+(this.trim?"~":"")+this.type};function u(C){e:for(var M=C.length,p=1,P=-1,T;p0&&(P=0);break}return P>0?C.slice(0,P)+C.slice(T+1):C}var c;function f(C,M){var p=r(C,M);if(!p)return C+"";var P=p[0],T=p[1],F=T-(c=Math.max(-8,Math.min(8,Math.floor(T/3)))*3)+1,q=P.length;return F===q?P:F>q?P+new Array(F-q+1).join("0"):F>0?P.slice(0,F)+"."+P.slice(F):"0."+new Array(1-F).join("0")+r(C,Math.max(0,M+F-1))[0]}function h(C,M){var p=r(C,M);if(!p)return C+"";var P=p[0],T=p[1];return T<0?"0."+new Array(-T).join("0")+P:P.length>T+1?P.slice(0,T+1)+"."+P.slice(T+1):P+new Array(T-P.length+2).join("0")}var d={"%":function(C,M){return(C*100).toFixed(M)},b:function(C){return Math.round(C).toString(2)},c:function(C){return C+""},d:t,e:function(C,M){return C.toExponential(M)},f:function(C,M){return C.toFixed(M)},g:function(C,M){return C.toPrecision(M)},o:function(C){return Math.round(C).toString(8)},p:function(C,M){return h(C*100,M)},r:h,s:f,X:function(C){return Math.round(C).toString(16).toUpperCase()},x:function(C){return Math.round(C).toString(16)}};function v(C){return C}var x=Array.prototype.map,b=["y","z","a","f","p","n","\xB5","m","","k","M","G","T","P","E","Z","Y"];function g(C){var M=C.grouping===void 0||C.thousands===void 0?v:i(x.call(C.grouping,Number),C.thousands+""),p=C.currency===void 0?"":C.currency[0]+"",P=C.currency===void 0?"":C.currency[1]+"",T=C.decimal===void 0?".":C.decimal+"",F=C.numerals===void 0?v:a(x.call(C.numerals,String)),q=C.percent===void 0?"%":C.percent+"",V=C.minus===void 0?"-":C.minus+"",H=C.nan===void 0?"NaN":C.nan+"";function X(N){N=s(N);var W=N.fill,re=N.align,ae=N.sign,_e=N.symbol,Me=N.zero,ke=N.width,ge=N.comma,ie=N.precision,Te=N.trim,Ee=N.type;Ee==="n"?(ge=!0,Ee="g"):d[Ee]||(ie===void 0&&(ie=12),Te=!0,Ee="g"),(Me||W==="0"&&re==="=")&&(Me=!0,W="0",re="=");var Ae=_e==="$"?p:_e==="#"&&/[boxX]/.test(Ee)?"0"+Ee.toLowerCase():"",ze=_e==="$"?P:/[%p]/.test(Ee)?q:"",Ce=d[Ee],me=/[defgprs%]/.test(Ee);ie=ie===void 0?6:/[gprs]/.test(Ee)?Math.max(1,Math.min(21,ie)):Math.max(0,Math.min(20,ie));function Re(ce){var Ge=Ae,nt=ze,ct,qt,rt;if(Ee==="c")nt=Ce(ce)+nt,ce="";else{ce=+ce;var ot=ce<0||1/ce<0;if(ce=isNaN(ce)?H:Ce(Math.abs(ce),ie),Te&&(ce=u(ce)),ot&&+ce==0&&ae!=="+"&&(ot=!1),Ge=(ot?ae==="("?ae:V:ae==="-"||ae==="("?"":ae)+Ge,nt=(Ee==="s"?b[8+c/3]:"")+nt+(ot&&ae==="("?")":""),me){for(ct=-1,qt=ce.length;++ctrt||rt>57){nt=(rt===46?T+ce.slice(ct+1):ce.slice(ct))+nt,ce=ce.slice(0,ct);break}}}ge&&!Me&&(ce=M(ce,1/0));var Rt=Ge.length+ce.length+nt.length,kt=Rt>1)+Ge+ce+nt+kt.slice(Rt);break;default:ce=kt+Ge+ce+nt;break}return F(ce)}return Re.toString=function(){return N+""},Re}function G(N,W){var re=X((N=s(N),N.type="f",N)),ae=Math.max(-8,Math.min(8,Math.floor(n(W)/3)))*3,_e=Math.pow(10,-ae),Me=b[8+ae/3];return function(ke){return re(_e*ke)+Me}}return{format:X,formatPrefix:G}}var E;k({decimal:".",thousands:",",grouping:[3],currency:["$",""],minus:"-"});function k(C){return E=g(C),e.format=E.format,e.formatPrefix=E.formatPrefix,E}function A(C){return Math.max(0,-n(Math.abs(C)))}function L(C,M){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(n(M)/3)))*3-n(Math.abs(C)))}function _(C,M){return C=Math.abs(C),M=Math.abs(M)-C,Math.max(0,n(M)-n(C))+1}e.FormatSpecifier=l,e.formatDefaultLocale=k,e.formatLocale=g,e.formatSpecifier=s,e.precisionFixed=A,e.precisionPrefix=L,e.precisionRound=_,Object.defineProperty(e,"__esModule",{value:!0})})});var nee=ye((CQt,iee)=>{"use strict";iee.exports=function(e){for(var t=e.length,r,n=0;n13)&&r!==32&&r!==133&&r!==160&&r!==5760&&r!==6158&&(r<8192||r>8205)&&r!==8232&&r!==8233&&r!==8239&&r!==8287&&r!==8288&&r!==12288&&r!==65279)return!1;return!0}});var uo=ye((LQt,aee)=>{"use strict";var UQe=nee();aee.exports=function(e){var t=typeof e;if(t==="string"){var r=e;if(e=+e,e===0&&UQe(r))return!1}else if(t!=="number")return!1;return e-e<1}});var es=ye((PQt,oee)=>{"use strict";oee.exports={BADNUM:void 0,FP_SAFE:Number.MAX_VALUE*1e-4,ONEMAXYEAR:316224e5,ONEAVGYEAR:315576e5,ONEMINYEAR:31536e6,ONEMAXQUARTER:79488e5,ONEAVGQUARTER:78894e5,ONEMINQUARTER:76896e5,ONEMAXMONTH:26784e5,ONEAVGMONTH:26298e5,ONEMINMONTH:24192e5,ONEWEEK:6048e5,ONEDAY:864e5,ONEHOUR:36e5,ONEMIN:6e4,ONESEC:1e3,ONEMILLI:1,ONEMICROSEC:.001,EPOCHJD:24405875e-1,ALMOST_EQUAL:1-1e-6,LOG_CLIP:10,MINUS_SIGN:"\u2212"}});var vq=ye((a6,see)=>{(function(e,t){typeof a6=="object"&&typeof see!="undefined"?t(a6):typeof define=="function"&&define.amd?define(["exports"],t):(e=typeof globalThis!="undefined"?globalThis:e||self,t(e["base64-arraybuffer"]={}))})(a6,function(e){"use strict";for(var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",r=typeof Uint8Array=="undefined"?[]:new Uint8Array(256),n=0;n>2],c+=t[(s[l]&3)<<4|s[l+1]>>4],c+=t[(s[l+1]&15)<<2|s[l+2]>>6],c+=t[s[l+2]&63];return u%3===2?c=c.substring(0,c.length-1)+"=":u%3===1&&(c=c.substring(0,c.length-2)+"=="),c},a=function(o){var s=o.length*.75,l=o.length,u,c=0,f,h,d,v;o[o.length-1]==="="&&(s--,o[o.length-2]==="="&&s--);var x=new ArrayBuffer(s),b=new Uint8Array(x);for(u=0;u>4,b[c++]=(h&15)<<4|d>>2,b[c++]=(d&3)<<6|v&63;return x};e.decode=a,e.encode=i,Object.defineProperty(e,"__esModule",{value:!0})})});var gy=ye((IQt,lee)=>{"use strict";lee.exports=function(t){return window&&window.process&&window.process.versions?Object.prototype.toString.call(t)==="[object Object]":Object.prototype.toString.call(t)==="[object Object]"&&Object.getPrototypeOf(t).hasOwnProperty("hasOwnProperty")}});var vv=ye(mg=>{"use strict";var VQe=vq().decode,HQe=gy(),pq=Array.isArray,GQe=ArrayBuffer,jQe=DataView;function uee(e){return GQe.isView(e)&&!(e instanceof jQe)}mg.isTypedArray=uee;function o6(e){return pq(e)||uee(e)}mg.isArrayOrTypedArray=o6;function WQe(e){return!o6(e[0])}mg.isArray1D=WQe;mg.ensureArray=function(e,t){return pq(e)||(e=[]),e.length=t,e};var Md={u1c:typeof Uint8ClampedArray=="undefined"?void 0:Uint8ClampedArray,i1:typeof Int8Array=="undefined"?void 0:Int8Array,u1:typeof Uint8Array=="undefined"?void 0:Uint8Array,i2:typeof Int16Array=="undefined"?void 0:Int16Array,u2:typeof Uint16Array=="undefined"?void 0:Uint16Array,i4:typeof Int32Array=="undefined"?void 0:Int32Array,u4:typeof Uint32Array=="undefined"?void 0:Uint32Array,f4:typeof Float32Array=="undefined"?void 0:Float32Array,f8:typeof Float64Array=="undefined"?void 0:Float64Array};Md.uint8c=Md.u1c;Md.uint8=Md.u1;Md.int8=Md.i1;Md.uint16=Md.u2;Md.int16=Md.i2;Md.uint32=Md.u4;Md.int32=Md.i4;Md.float32=Md.f4;Md.float64=Md.f8;function gq(e){return e.constructor===ArrayBuffer}mg.isArrayBuffer=gq;mg.decodeTypedArraySpec=function(e){var t=[],r=ZQe(e),n=r.dtype,i=Md[n];if(!i)throw new Error('Error in dtype: "'+n+'"');var a=i.BYTES_PER_ELEMENT,o=r.bdata;gq(o)||(o=VQe(o));var s=r.shape===void 0?[o.byteLength/a]:(""+r.shape).split(",");s.reverse();var l=s.length,u,c,f=+s[0],h=a*f,d=0;if(l===1)t=new i(o);else if(l===2)for(u=+s[1],c=0;c{"use strict";var fee=uo(),yq=vv().isArrayOrTypedArray;pee.exports=function(t,r){if(fee(r))r=String(r);else if(typeof r!="string"||r.substr(r.length-4)==="[-1]")throw"bad property string";var n=r.split("."),i,a,o,s;for(s=0;s{"use strict";var t3=ES(),$Qe=/^\w*$/,QQe=0,gee=1,s6=2,mee=3,ob=4;yee.exports=function(t,r,n,i){n=n||"name",i=i||"value";var a,o,s,l={};r&&r.length?(s=t3(t,r),o=s.get()):o=t,r=r||"";var u={};if(o)for(a=0;a2)return l[d]=l[d]|s6,f.set(h,null);if(c){for(a=d;a{"use strict";var eet=/^(.*)(\.[^\.\[\]]+|\[\d\])$/,tet=/^[^\.\[\]]+$/;xee.exports=function(e,t){for(;t;){var r=e.match(eet);if(r)e=r[1];else if(e.match(tet))e="";else throw new Error("bad relativeAttr call:"+[e,t]);if(t.charAt(0)==="^")t=t.slice(1);else break}return e&&t.charAt(0)!=="["?e+"."+t:e+t}});var l6=ye((qQt,wee)=>{"use strict";var ret=uo();wee.exports=function(t,r){if(t>0)return Math.log(t)/Math.LN10;var n=Math.log(Math.min(r[0],r[1]))/Math.LN10;return ret(n)||(n=Math.log(Math.max(r[0],r[1]))/Math.LN10-6),n}});var See=ye((OQt,Aee)=>{"use strict";var Tee=vv().isArrayOrTypedArray,kS=gy();Aee.exports=function e(t,r){for(var n in r){var i=r[n],a=t[n];if(a!==i)if(n.charAt(0)==="_"||typeof i=="function"){if(n in t)continue;t[n]=i}else if(Tee(i)&&Tee(a)&&kS(i[0])){if(n==="customdata"||n==="ids")continue;for(var o=Math.min(i.length,a.length),s=0;s{"use strict";function iet(e,t){var r=e%t;return r<0?r+t:r}function net(e,t){return Math.abs(e)>t/2?e-Math.round(e/t)*t:e}Mee.exports={mod:iet,modHalf:net}});var id=ye((NQt,u6)=>{(function(e){var t=/^\s+/,r=/\s+$/,n=0,i=e.round,a=e.min,o=e.max,s=e.random;function l(me,Re){if(me=me||"",Re=Re||{},me instanceof l)return me;if(!(this instanceof l))return new l(me,Re);var ce=u(me);this._originalInput=me,this._r=ce.r,this._g=ce.g,this._b=ce.b,this._a=ce.a,this._roundA=i(100*this._a)/100,this._format=Re.format||ce.format,this._gradientType=Re.gradientType,this._r<1&&(this._r=i(this._r)),this._g<1&&(this._g=i(this._g)),this._b<1&&(this._b=i(this._b)),this._ok=ce.ok,this._tc_id=n++}l.prototype={isDark:function(){return this.getBrightness()<128},isLight:function(){return!this.isDark()},isValid:function(){return this._ok},getOriginalInput:function(){return this._originalInput},getFormat:function(){return this._format},getAlpha:function(){return this._a},getBrightness:function(){var me=this.toRgb();return(me.r*299+me.g*587+me.b*114)/1e3},getLuminance:function(){var me=this.toRgb(),Re,ce,Ge,nt,ct,qt;return Re=me.r/255,ce=me.g/255,Ge=me.b/255,Re<=.03928?nt=Re/12.92:nt=e.pow((Re+.055)/1.055,2.4),ce<=.03928?ct=ce/12.92:ct=e.pow((ce+.055)/1.055,2.4),Ge<=.03928?qt=Ge/12.92:qt=e.pow((Ge+.055)/1.055,2.4),.2126*nt+.7152*ct+.0722*qt},setAlpha:function(me){return this._a=N(me),this._roundA=i(100*this._a)/100,this},toHsv:function(){var me=d(this._r,this._g,this._b);return{h:me.h*360,s:me.s,v:me.v,a:this._a}},toHsvString:function(){var me=d(this._r,this._g,this._b),Re=i(me.h*360),ce=i(me.s*100),Ge=i(me.v*100);return this._a==1?"hsv("+Re+", "+ce+"%, "+Ge+"%)":"hsva("+Re+", "+ce+"%, "+Ge+"%, "+this._roundA+")"},toHsl:function(){var me=f(this._r,this._g,this._b);return{h:me.h*360,s:me.s,l:me.l,a:this._a}},toHslString:function(){var me=f(this._r,this._g,this._b),Re=i(me.h*360),ce=i(me.s*100),Ge=i(me.l*100);return this._a==1?"hsl("+Re+", "+ce+"%, "+Ge+"%)":"hsla("+Re+", "+ce+"%, "+Ge+"%, "+this._roundA+")"},toHex:function(me){return x(this._r,this._g,this._b,me)},toHexString:function(me){return"#"+this.toHex(me)},toHex8:function(me){return b(this._r,this._g,this._b,this._a,me)},toHex8String:function(me){return"#"+this.toHex8(me)},toRgb:function(){return{r:i(this._r),g:i(this._g),b:i(this._b),a:this._a}},toRgbString:function(){return this._a==1?"rgb("+i(this._r)+", "+i(this._g)+", "+i(this._b)+")":"rgba("+i(this._r)+", "+i(this._g)+", "+i(this._b)+", "+this._roundA+")"},toPercentageRgb:function(){return{r:i(W(this._r,255)*100)+"%",g:i(W(this._g,255)*100)+"%",b:i(W(this._b,255)*100)+"%",a:this._a}},toPercentageRgbString:function(){return this._a==1?"rgb("+i(W(this._r,255)*100)+"%, "+i(W(this._g,255)*100)+"%, "+i(W(this._b,255)*100)+"%)":"rgba("+i(W(this._r,255)*100)+"%, "+i(W(this._g,255)*100)+"%, "+i(W(this._b,255)*100)+"%, "+this._roundA+")"},toName:function(){return this._a===0?"transparent":this._a<1?!1:X[x(this._r,this._g,this._b,!0)]||!1},toFilter:function(me){var Re="#"+g(this._r,this._g,this._b,this._a),ce=Re,Ge=this._gradientType?"GradientType = 1, ":"";if(me){var nt=l(me);ce="#"+g(nt._r,nt._g,nt._b,nt._a)}return"progid:DXImageTransform.Microsoft.gradient("+Ge+"startColorstr="+Re+",endColorstr="+ce+")"},toString:function(me){var Re=!!me;me=me||this._format;var ce=!1,Ge=this._a<1&&this._a>=0,nt=!Re&&Ge&&(me==="hex"||me==="hex6"||me==="hex3"||me==="hex4"||me==="hex8"||me==="name");return nt?me==="name"&&this._a===0?this.toName():this.toRgbString():(me==="rgb"&&(ce=this.toRgbString()),me==="prgb"&&(ce=this.toPercentageRgbString()),(me==="hex"||me==="hex6")&&(ce=this.toHexString()),me==="hex3"&&(ce=this.toHexString(!0)),me==="hex4"&&(ce=this.toHex8String(!0)),me==="hex8"&&(ce=this.toHex8String()),me==="name"&&(ce=this.toName()),me==="hsl"&&(ce=this.toHslString()),me==="hsv"&&(ce=this.toHsvString()),ce||this.toHexString())},clone:function(){return l(this.toString())},_applyModification:function(me,Re){var ce=me.apply(null,[this].concat([].slice.call(Re)));return this._r=ce._r,this._g=ce._g,this._b=ce._b,this.setAlpha(ce._a),this},lighten:function(){return this._applyModification(L,arguments)},brighten:function(){return this._applyModification(_,arguments)},darken:function(){return this._applyModification(C,arguments)},desaturate:function(){return this._applyModification(E,arguments)},saturate:function(){return this._applyModification(k,arguments)},greyscale:function(){return this._applyModification(A,arguments)},spin:function(){return this._applyModification(M,arguments)},_applyCombination:function(me,Re){return me.apply(null,[this].concat([].slice.call(Re)))},analogous:function(){return this._applyCombination(q,arguments)},complement:function(){return this._applyCombination(p,arguments)},monochromatic:function(){return this._applyCombination(V,arguments)},splitcomplement:function(){return this._applyCombination(F,arguments)},triad:function(){return this._applyCombination(P,arguments)},tetrad:function(){return this._applyCombination(T,arguments)}},l.fromRatio=function(me,Re){if(typeof me=="object"){var ce={};for(var Ge in me)me.hasOwnProperty(Ge)&&(Ge==="a"?ce[Ge]=me[Ge]:ce[Ge]=ge(me[Ge]));me=ce}return l(me,Re)};function u(me){var Re={r:0,g:0,b:0},ce=1,Ge=null,nt=null,ct=null,qt=!1,rt=!1;return typeof me=="string"&&(me=ze(me)),typeof me=="object"&&(Ae(me.r)&&Ae(me.g)&&Ae(me.b)?(Re=c(me.r,me.g,me.b),qt=!0,rt=String(me.r).substr(-1)==="%"?"prgb":"rgb"):Ae(me.h)&&Ae(me.s)&&Ae(me.v)?(Ge=ge(me.s),nt=ge(me.v),Re=v(me.h,Ge,nt),qt=!0,rt="hsv"):Ae(me.h)&&Ae(me.s)&&Ae(me.l)&&(Ge=ge(me.s),ct=ge(me.l),Re=h(me.h,Ge,ct),qt=!0,rt="hsl"),me.hasOwnProperty("a")&&(ce=me.a)),ce=N(ce),{ok:qt,format:me.format||rt,r:a(255,o(Re.r,0)),g:a(255,o(Re.g,0)),b:a(255,o(Re.b,0)),a:ce}}function c(me,Re,ce){return{r:W(me,255)*255,g:W(Re,255)*255,b:W(ce,255)*255}}function f(me,Re,ce){me=W(me,255),Re=W(Re,255),ce=W(ce,255);var Ge=o(me,Re,ce),nt=a(me,Re,ce),ct,qt,rt=(Ge+nt)/2;if(Ge==nt)ct=qt=0;else{var ot=Ge-nt;switch(qt=rt>.5?ot/(2-Ge-nt):ot/(Ge+nt),Ge){case me:ct=(Re-ce)/ot+(Re1&&(Ct-=1),Ct<1/6?Rt+(kt-Rt)*6*Ct:Ct<1/2?kt:Ct<2/3?Rt+(kt-Rt)*(2/3-Ct)*6:Rt}if(Re===0)Ge=nt=ct=ce;else{var rt=ce<.5?ce*(1+Re):ce+Re-ce*Re,ot=2*ce-rt;Ge=qt(ot,rt,me+1/3),nt=qt(ot,rt,me),ct=qt(ot,rt,me-1/3)}return{r:Ge*255,g:nt*255,b:ct*255}}function d(me,Re,ce){me=W(me,255),Re=W(Re,255),ce=W(ce,255);var Ge=o(me,Re,ce),nt=a(me,Re,ce),ct,qt,rt=Ge,ot=Ge-nt;if(qt=Ge===0?0:ot/Ge,Ge==nt)ct=0;else{switch(Ge){case me:ct=(Re-ce)/ot+(Re>1)+720)%360;--Re;)Ge.h=(Ge.h+nt)%360,ct.push(l(Ge));return ct}function V(me,Re){Re=Re||6;for(var ce=l(me).toHsv(),Ge=ce.h,nt=ce.s,ct=ce.v,qt=[],rt=1/Re;Re--;)qt.push(l({h:Ge,s:nt,v:ct})),ct=(ct+rt)%1;return qt}l.mix=function(me,Re,ce){ce=ce===0?0:ce||50;var Ge=l(me).toRgb(),nt=l(Re).toRgb(),ct=ce/100,qt={r:(nt.r-Ge.r)*ct+Ge.r,g:(nt.g-Ge.g)*ct+Ge.g,b:(nt.b-Ge.b)*ct+Ge.b,a:(nt.a-Ge.a)*ct+Ge.a};return l(qt)},l.readability=function(me,Re){var ce=l(me),Ge=l(Re);return(e.max(ce.getLuminance(),Ge.getLuminance())+.05)/(e.min(ce.getLuminance(),Ge.getLuminance())+.05)},l.isReadable=function(me,Re,ce){var Ge=l.readability(me,Re),nt,ct;switch(ct=!1,nt=Ce(ce),nt.level+nt.size){case"AAsmall":case"AAAlarge":ct=Ge>=4.5;break;case"AAlarge":ct=Ge>=3;break;case"AAAsmall":ct=Ge>=7;break}return ct},l.mostReadable=function(me,Re,ce){var Ge=null,nt=0,ct,qt,rt,ot;ce=ce||{},qt=ce.includeFallbackColors,rt=ce.level,ot=ce.size;for(var Rt=0;Rtnt&&(nt=ct,Ge=l(Re[Rt]));return l.isReadable(me,Ge,{level:rt,size:ot})||!qt?Ge:(ce.includeFallbackColors=!1,l.mostReadable(me,["#fff","#000"],ce))};var H=l.names={aliceblue:"f0f8ff",antiquewhite:"faebd7",aqua:"0ff",aquamarine:"7fffd4",azure:"f0ffff",beige:"f5f5dc",bisque:"ffe4c4",black:"000",blanchedalmond:"ffebcd",blue:"00f",blueviolet:"8a2be2",brown:"a52a2a",burlywood:"deb887",burntsienna:"ea7e5d",cadetblue:"5f9ea0",chartreuse:"7fff00",chocolate:"d2691e",coral:"ff7f50",cornflowerblue:"6495ed",cornsilk:"fff8dc",crimson:"dc143c",cyan:"0ff",darkblue:"00008b",darkcyan:"008b8b",darkgoldenrod:"b8860b",darkgray:"a9a9a9",darkgreen:"006400",darkgrey:"a9a9a9",darkkhaki:"bdb76b",darkmagenta:"8b008b",darkolivegreen:"556b2f",darkorange:"ff8c00",darkorchid:"9932cc",darkred:"8b0000",darksalmon:"e9967a",darkseagreen:"8fbc8f",darkslateblue:"483d8b",darkslategray:"2f4f4f",darkslategrey:"2f4f4f",darkturquoise:"00ced1",darkviolet:"9400d3",deeppink:"ff1493",deepskyblue:"00bfff",dimgray:"696969",dimgrey:"696969",dodgerblue:"1e90ff",firebrick:"b22222",floralwhite:"fffaf0",forestgreen:"228b22",fuchsia:"f0f",gainsboro:"dcdcdc",ghostwhite:"f8f8ff",gold:"ffd700",goldenrod:"daa520",gray:"808080",green:"008000",greenyellow:"adff2f",grey:"808080",honeydew:"f0fff0",hotpink:"ff69b4",indianred:"cd5c5c",indigo:"4b0082",ivory:"fffff0",khaki:"f0e68c",lavender:"e6e6fa",lavenderblush:"fff0f5",lawngreen:"7cfc00",lemonchiffon:"fffacd",lightblue:"add8e6",lightcoral:"f08080",lightcyan:"e0ffff",lightgoldenrodyellow:"fafad2",lightgray:"d3d3d3",lightgreen:"90ee90",lightgrey:"d3d3d3",lightpink:"ffb6c1",lightsalmon:"ffa07a",lightseagreen:"20b2aa",lightskyblue:"87cefa",lightslategray:"789",lightslategrey:"789",lightsteelblue:"b0c4de",lightyellow:"ffffe0",lime:"0f0",limegreen:"32cd32",linen:"faf0e6",magenta:"f0f",maroon:"800000",mediumaquamarine:"66cdaa",mediumblue:"0000cd",mediumorchid:"ba55d3",mediumpurple:"9370db",mediumseagreen:"3cb371",mediumslateblue:"7b68ee",mediumspringgreen:"00fa9a",mediumturquoise:"48d1cc",mediumvioletred:"c71585",midnightblue:"191970",mintcream:"f5fffa",mistyrose:"ffe4e1",moccasin:"ffe4b5",navajowhite:"ffdead",navy:"000080",oldlace:"fdf5e6",olive:"808000",olivedrab:"6b8e23",orange:"ffa500",orangered:"ff4500",orchid:"da70d6",palegoldenrod:"eee8aa",palegreen:"98fb98",paleturquoise:"afeeee",palevioletred:"db7093",papayawhip:"ffefd5",peachpuff:"ffdab9",peru:"cd853f",pink:"ffc0cb",plum:"dda0dd",powderblue:"b0e0e6",purple:"800080",rebeccapurple:"663399",red:"f00",rosybrown:"bc8f8f",royalblue:"4169e1",saddlebrown:"8b4513",salmon:"fa8072",sandybrown:"f4a460",seagreen:"2e8b57",seashell:"fff5ee",sienna:"a0522d",silver:"c0c0c0",skyblue:"87ceeb",slateblue:"6a5acd",slategray:"708090",slategrey:"708090",snow:"fffafa",springgreen:"00ff7f",steelblue:"4682b4",tan:"d2b48c",teal:"008080",thistle:"d8bfd8",tomato:"ff6347",turquoise:"40e0d0",violet:"ee82ee",wheat:"f5deb3",white:"fff",whitesmoke:"f5f5f5",yellow:"ff0",yellowgreen:"9acd32"},X=l.hexNames=G(H);function G(me){var Re={};for(var ce in me)me.hasOwnProperty(ce)&&(Re[me[ce]]=ce);return Re}function N(me){return me=parseFloat(me),(isNaN(me)||me<0||me>1)&&(me=1),me}function W(me,Re){_e(me)&&(me="100%");var ce=Me(me);return me=a(Re,o(0,parseFloat(me))),ce&&(me=parseInt(me*Re,10)/100),e.abs(me-Re)<1e-6?1:me%Re/parseFloat(Re)}function re(me){return a(1,o(0,me))}function ae(me){return parseInt(me,16)}function _e(me){return typeof me=="string"&&me.indexOf(".")!=-1&&parseFloat(me)===1}function Me(me){return typeof me=="string"&&me.indexOf("%")!=-1}function ke(me){return me.length==1?"0"+me:""+me}function ge(me){return me<=1&&(me=me*100+"%"),me}function ie(me){return e.round(parseFloat(me)*255).toString(16)}function Te(me){return ae(me)/255}var Ee=function(){var me="[-\\+]?\\d+%?",Re="[-\\+]?\\d*\\.\\d+%?",ce="(?:"+Re+")|(?:"+me+")",Ge="[\\s|\\(]+("+ce+")[,|\\s]+("+ce+")[,|\\s]+("+ce+")\\s*\\)?",nt="[\\s|\\(]+("+ce+")[,|\\s]+("+ce+")[,|\\s]+("+ce+")[,|\\s]+("+ce+")\\s*\\)?";return{CSS_UNIT:new RegExp(ce),rgb:new RegExp("rgb"+Ge),rgba:new RegExp("rgba"+nt),hsl:new RegExp("hsl"+Ge),hsla:new RegExp("hsla"+nt),hsv:new RegExp("hsv"+Ge),hsva:new RegExp("hsva"+nt),hex3:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex6:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/,hex4:/^#?([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,hex8:/^#?([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})([0-9a-fA-F]{2})$/}}();function Ae(me){return!!Ee.CSS_UNIT.exec(me)}function ze(me){me=me.replace(t,"").replace(r,"").toLowerCase();var Re=!1;if(H[me])me=H[me],Re=!0;else if(me=="transparent")return{r:0,g:0,b:0,a:0,format:"name"};var ce;return(ce=Ee.rgb.exec(me))?{r:ce[1],g:ce[2],b:ce[3]}:(ce=Ee.rgba.exec(me))?{r:ce[1],g:ce[2],b:ce[3],a:ce[4]}:(ce=Ee.hsl.exec(me))?{h:ce[1],s:ce[2],l:ce[3]}:(ce=Ee.hsla.exec(me))?{h:ce[1],s:ce[2],l:ce[3],a:ce[4]}:(ce=Ee.hsv.exec(me))?{h:ce[1],s:ce[2],v:ce[3]}:(ce=Ee.hsva.exec(me))?{h:ce[1],s:ce[2],v:ce[3],a:ce[4]}:(ce=Ee.hex8.exec(me))?{r:ae(ce[1]),g:ae(ce[2]),b:ae(ce[3]),a:Te(ce[4]),format:Re?"name":"hex8"}:(ce=Ee.hex6.exec(me))?{r:ae(ce[1]),g:ae(ce[2]),b:ae(ce[3]),format:Re?"name":"hex"}:(ce=Ee.hex4.exec(me))?{r:ae(ce[1]+""+ce[1]),g:ae(ce[2]+""+ce[2]),b:ae(ce[3]+""+ce[3]),a:Te(ce[4]+""+ce[4]),format:Re?"name":"hex8"}:(ce=Ee.hex3.exec(me))?{r:ae(ce[1]+""+ce[1]),g:ae(ce[2]+""+ce[2]),b:ae(ce[3]+""+ce[3]),format:Re?"name":"hex"}:!1}function Ce(me){var Re,ce;return me=me||{level:"AA",size:"small"},Re=(me.level||"AA").toUpperCase(),ce=(me.size||"small").toLowerCase(),Re!=="AA"&&Re!=="AAA"&&(Re="AA"),ce!=="small"&&ce!=="large"&&(ce="small"),{level:Re,size:ce}}typeof u6!="undefined"&&u6.exports?u6.exports=l:typeof define=="function"&&define.amd?define(function(){return l}):window.tinycolor=l})(Math)});var no=ye(PS=>{"use strict";var Eee=gy(),CS=Array.isArray;function aet(e,t){var r,n;for(r=0;r{"use strict";kee.exports=function(e){var t=e.variantValues,r=e.editType,n=e.colorEditType;n===void 0&&(n=r);var i={editType:r,valType:"integer",min:1,max:1e3,extras:["normal","bold"],dflt:"normal"};e.noNumericWeightValues&&(i.valType="enumerated",i.values=i.extras,i.extras=void 0,i.min=void 0,i.max=void 0);var a={family:{valType:"string",noBlank:!0,strict:!0,editType:r},size:{valType:"number",min:1,editType:r},color:{valType:"color",editType:n},weight:i,style:{editType:r,valType:"enumerated",values:["normal","italic"],dflt:"normal"},variant:e.noFontVariant?void 0:{editType:r,valType:"enumerated",values:t||["normal","small-caps","all-small-caps","all-petite-caps","petite-caps","unicase"],dflt:"normal"},textcase:e.noFontTextcase?void 0:{editType:r,valType:"enumerated",values:["normal","word caps","upper","lower"],dflt:"normal"},lineposition:e.noFontLineposition?void 0:{editType:r,valType:"flaglist",flags:["under","over","through"],extras:["none"],dflt:"none"},shadow:e.noFontShadow?void 0:{editType:r,valType:"string",dflt:e.autoShadowDflt?"auto":"none"},editType:r};return e.autoSize&&(a.size.dflt="auto"),e.autoColor&&(a.color.dflt="auto"),e.arrayOk&&(a.family.arrayOk=!0,a.weight.arrayOk=!0,a.style.arrayOk=!0,e.noFontVariant||(a.variant.arrayOk=!0),e.noFontTextcase||(a.textcase.arrayOk=!0),e.noFontLineposition||(a.lineposition.arrayOk=!0),e.noFontShadow||(a.shadow.arrayOk=!0),a.size.arrayOk=!0,a.color.arrayOk=!0),a}});var IS=ye((HQt,Cee)=>{"use strict";Cee.exports={YANGLE:60,HOVERARROWSIZE:6,HOVERTEXTPAD:3,HOVERFONTSIZE:13,HOVERFONT:"Arial, sans-serif",HOVERMINTIME:50,HOVERID:"-hover"}});var B1=ye((GQt,Iee)=>{"use strict";var Lee=IS(),Pee=Su(),_q=Pee({editType:"none"});_q.family.dflt=Lee.HOVERFONT;_q.size.dflt=Lee.HOVERFONTSIZE;Iee.exports={clickmode:{valType:"flaglist",flags:["event","select"],dflt:"event",editType:"plot",extras:["none"]},dragmode:{valType:"enumerated",values:["zoom","pan","select","lasso","drawclosedpath","drawopenpath","drawline","drawrect","drawcircle","orbit","turntable",!1],dflt:"zoom",editType:"modebar"},hovermode:{valType:"enumerated",values:["x","y","closest",!1,"x unified","y unified"],dflt:"closest",editType:"modebar"},hoversubplots:{valType:"enumerated",values:["single","overlaying","axis"],dflt:"overlaying",editType:"none"},hoverdistance:{valType:"integer",min:-1,dflt:20,editType:"none"},spikedistance:{valType:"integer",min:-1,dflt:-1,editType:"none"},hoverlabel:{bgcolor:{valType:"color",editType:"none"},bordercolor:{valType:"color",editType:"none"},font:_q,grouptitlefont:Pee({editType:"none"}),align:{valType:"enumerated",values:["left","right","auto"],dflt:"auto",editType:"none"},namelength:{valType:"integer",min:-1,dflt:15,editType:"none"},editType:"none"},selectdirection:{valType:"enumerated",values:["h","v","d","any"],dflt:"any",editType:"none"}}});var i3=ye((jQt,Ree)=>{"use strict";var oet=Su(),c6=B1().hoverlabel,f6=no().extendFlat;Ree.exports={hoverlabel:{bgcolor:f6({},c6.bgcolor,{arrayOk:!0}),bordercolor:f6({},c6.bordercolor,{arrayOk:!0}),font:oet({arrayOk:!0,editType:"none"}),align:f6({},c6.align,{arrayOk:!0}),namelength:f6({},c6.namelength,{arrayOk:!0}),editType:"none"}}});var vl=ye((WQt,Dee)=>{"use strict";var set=Su(),uet=i3();Dee.exports={type:{valType:"enumerated",values:[],dflt:"scatter",editType:"calc+clearAxisTypes",_noTemplating:!0},visible:{valType:"enumerated",values:[!0,!1,"legendonly"],dflt:!0,editType:"calc"},showlegend:{valType:"boolean",dflt:!0,editType:"style"},legend:{valType:"subplotid",dflt:"legend",editType:"style"},legendgroup:{valType:"string",dflt:"",editType:"style"},legendgrouptitle:{text:{valType:"string",dflt:"",editType:"style"},font:set({editType:"style"}),editType:"style"},legendrank:{valType:"number",dflt:1e3,editType:"style"},legendwidth:{valType:"number",min:0,editType:"style"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"style"},name:{valType:"string",editType:"style"},uid:{valType:"string",editType:"plot",anim:!0},ids:{valType:"data_array",editType:"calc",anim:!0},customdata:{valType:"data_array",editType:"calc"},meta:{valType:"any",arrayOk:!0,editType:"plot"},selectedpoints:{valType:"any",editType:"calc"},hoverinfo:{valType:"flaglist",flags:["x","y","z","text","name"],extras:["all","none","skip"],arrayOk:!0,dflt:"all",editType:"none"},hoverlabel:uet.hoverlabel,stream:{token:{valType:"string",noBlank:!0,strict:!0,editType:"calc"},maxpoints:{valType:"number",min:0,max:1e4,dflt:500,editType:"calc"},editType:"calc"},uirevision:{valType:"any",editType:"none"}}});var sb=ye((ZQt,qee)=>{"use strict";var cet=id(),h6={Greys:[[0,"rgb(0,0,0)"],[1,"rgb(255,255,255)"]],YlGnBu:[[0,"rgb(8,29,88)"],[.125,"rgb(37,52,148)"],[.25,"rgb(34,94,168)"],[.375,"rgb(29,145,192)"],[.5,"rgb(65,182,196)"],[.625,"rgb(127,205,187)"],[.75,"rgb(199,233,180)"],[.875,"rgb(237,248,217)"],[1,"rgb(255,255,217)"]],Greens:[[0,"rgb(0,68,27)"],[.125,"rgb(0,109,44)"],[.25,"rgb(35,139,69)"],[.375,"rgb(65,171,93)"],[.5,"rgb(116,196,118)"],[.625,"rgb(161,217,155)"],[.75,"rgb(199,233,192)"],[.875,"rgb(229,245,224)"],[1,"rgb(247,252,245)"]],YlOrRd:[[0,"rgb(128,0,38)"],[.125,"rgb(189,0,38)"],[.25,"rgb(227,26,28)"],[.375,"rgb(252,78,42)"],[.5,"rgb(253,141,60)"],[.625,"rgb(254,178,76)"],[.75,"rgb(254,217,118)"],[.875,"rgb(255,237,160)"],[1,"rgb(255,255,204)"]],Bluered:[[0,"rgb(0,0,255)"],[1,"rgb(255,0,0)"]],RdBu:[[0,"rgb(5,10,172)"],[.35,"rgb(106,137,247)"],[.5,"rgb(190,190,190)"],[.6,"rgb(220,170,132)"],[.7,"rgb(230,145,90)"],[1,"rgb(178,10,28)"]],Reds:[[0,"rgb(220,220,220)"],[.2,"rgb(245,195,157)"],[.4,"rgb(245,160,105)"],[1,"rgb(178,10,28)"]],Blues:[[0,"rgb(5,10,172)"],[.35,"rgb(40,60,190)"],[.5,"rgb(70,100,245)"],[.6,"rgb(90,120,245)"],[.7,"rgb(106,137,247)"],[1,"rgb(220,220,220)"]],Picnic:[[0,"rgb(0,0,255)"],[.1,"rgb(51,153,255)"],[.2,"rgb(102,204,255)"],[.3,"rgb(153,204,255)"],[.4,"rgb(204,204,255)"],[.5,"rgb(255,255,255)"],[.6,"rgb(255,204,255)"],[.7,"rgb(255,153,255)"],[.8,"rgb(255,102,204)"],[.9,"rgb(255,102,102)"],[1,"rgb(255,0,0)"]],Rainbow:[[0,"rgb(150,0,90)"],[.125,"rgb(0,0,200)"],[.25,"rgb(0,25,255)"],[.375,"rgb(0,152,255)"],[.5,"rgb(44,255,150)"],[.625,"rgb(151,255,0)"],[.75,"rgb(255,234,0)"],[.875,"rgb(255,111,0)"],[1,"rgb(255,0,0)"]],Portland:[[0,"rgb(12,51,131)"],[.25,"rgb(10,136,186)"],[.5,"rgb(242,211,56)"],[.75,"rgb(242,143,56)"],[1,"rgb(217,30,30)"]],Jet:[[0,"rgb(0,0,131)"],[.125,"rgb(0,60,170)"],[.375,"rgb(5,255,255)"],[.625,"rgb(255,255,0)"],[.875,"rgb(250,0,0)"],[1,"rgb(128,0,0)"]],Hot:[[0,"rgb(0,0,0)"],[.3,"rgb(230,0,0)"],[.6,"rgb(255,210,0)"],[1,"rgb(255,255,255)"]],Blackbody:[[0,"rgb(0,0,0)"],[.2,"rgb(230,0,0)"],[.4,"rgb(230,210,0)"],[.7,"rgb(255,255,255)"],[1,"rgb(160,200,255)"]],Earth:[[0,"rgb(0,0,130)"],[.1,"rgb(0,180,180)"],[.2,"rgb(40,210,40)"],[.4,"rgb(230,230,50)"],[.6,"rgb(120,70,20)"],[1,"rgb(255,255,255)"]],Electric:[[0,"rgb(0,0,0)"],[.15,"rgb(30,0,100)"],[.4,"rgb(120,0,100)"],[.6,"rgb(160,90,0)"],[.8,"rgb(230,200,0)"],[1,"rgb(255,250,220)"]],Viridis:[[0,"#440154"],[.06274509803921569,"#48186a"],[.12549019607843137,"#472d7b"],[.18823529411764706,"#424086"],[.25098039215686274,"#3b528b"],[.3137254901960784,"#33638d"],[.3764705882352941,"#2c728e"],[.4392156862745098,"#26828e"],[.5019607843137255,"#21918c"],[.5647058823529412,"#1fa088"],[.6274509803921569,"#28ae80"],[.6901960784313725,"#3fbc73"],[.7529411764705882,"#5ec962"],[.8156862745098039,"#84d44b"],[.8784313725490196,"#addc30"],[.9411764705882353,"#d8e219"],[1,"#fde725"]],Cividis:[[0,"rgb(0,32,76)"],[.058824,"rgb(0,42,102)"],[.117647,"rgb(0,52,110)"],[.176471,"rgb(39,63,108)"],[.235294,"rgb(60,74,107)"],[.294118,"rgb(76,85,107)"],[.352941,"rgb(91,95,109)"],[.411765,"rgb(104,106,112)"],[.470588,"rgb(117,117,117)"],[.529412,"rgb(131,129,120)"],[.588235,"rgb(146,140,120)"],[.647059,"rgb(161,152,118)"],[.705882,"rgb(176,165,114)"],[.764706,"rgb(192,177,109)"],[.823529,"rgb(209,191,102)"],[.882353,"rgb(225,204,92)"],[.941176,"rgb(243,219,79)"],[1,"rgb(255,233,69)"]]},zee=h6.RdBu;function fet(e,t){if(t||(t=zee),!e)return t;function r(){try{e=h6[e]||JSON.parse(e)}catch(n){e=t}}return typeof e=="string"&&(r(),typeof e=="string"&&r()),Fee(e)?e:t}function Fee(e){var t=0;if(!Array.isArray(e)||e.length<2||!e[0]||!e[e.length-1]||+e[0][0]!=0||+e[e.length-1][0]!=1)return!1;for(var r=0;r{"use strict";lb.defaults=["#1f77b4","#ff7f0e","#2ca02c","#d62728","#9467bd","#8c564b","#e377c2","#7f7f7f","#bcbd22","#17becf"];lb.defaultLine="#444";lb.lightLine="#eee";lb.background="#fff";lb.borderLine="#BEC8D9";lb.lightFraction=100*10/11});var va=ye((YQt,Oee)=>{"use strict";var xp=id(),det=uo(),vet=vv().isTypedArray,nd=Oee.exports={},d6=dh();nd.defaults=d6.defaults;var pet=nd.defaultLine=d6.defaultLine;nd.lightLine=d6.lightLine;var bq=nd.background=d6.background;nd.tinyRGB=function(e){var t=e.toRgb();return"rgb("+Math.round(t.r)+", "+Math.round(t.g)+", "+Math.round(t.b)+")"};nd.rgb=function(e){return nd.tinyRGB(xp(e))};nd.opacity=function(e){return e?xp(e).getAlpha():0};nd.addOpacity=function(e,t){var r=xp(e).toRgb();return"rgba("+Math.round(r.r)+", "+Math.round(r.g)+", "+Math.round(r.b)+", "+t+")"};nd.combine=function(e,t){var r=xp(e).toRgb();if(r.a===1)return xp(e).toRgbString();var n=xp(t||bq).toRgb(),i=n.a===1?n:{r:255*(1-n.a)+n.r*n.a,g:255*(1-n.a)+n.g*n.a,b:255*(1-n.a)+n.b*n.a},a={r:i.r*(1-r.a)+r.r*r.a,g:i.g*(1-r.a)+r.g*r.a,b:i.b*(1-r.a)+r.b*r.a};return xp(a).toRgbString()};nd.interpolate=function(e,t,r){var n=xp(e).toRgb(),i=xp(t).toRgb(),a={r:r*n.r+(1-r)*i.r,g:r*n.g+(1-r)*i.g,b:r*n.b+(1-r)*i.b};return xp(a).toRgbString()};nd.contrast=function(e,t,r){var n=xp(e);n.getAlpha()!==1&&(n=xp(nd.combine(e,bq)));var i=n.isDark()?t?n.lighten(t):bq:r?n.darken(r):pet;return i.toString()};nd.stroke=function(e,t){var r=xp(t);e.style({stroke:nd.tinyRGB(r),"stroke-opacity":r.getAlpha()})};nd.fill=function(e,t){var r=xp(t);e.style({fill:nd.tinyRGB(r),"fill-opacity":r.getAlpha()})};nd.clean=function(e){if(!(!e||typeof e!="object")){var t=Object.keys(e),r,n,i,a;for(r=0;r=0)))return e;if(a===3)n[a]>1&&(n[a]=1);else if(n[a]>=1)return e}var o=Math.round(n[0]*255)+", "+Math.round(n[1]*255)+", "+Math.round(n[2]*255);return i?"rgba("+o+", "+n[3]+")":"rgb("+o+")"}});var N1=ye((KQt,Bee)=>{"use strict";Bee.exports={SHOW_PLACEHOLDER:100,HIDE_PLACEHOLDER:1e3,DESELECTDIM:.2}});var n3=ye(Nee=>{"use strict";Nee.counter=function(e,t,r,n){var i=(t||"")+(r?"":"$"),a=n===!1?"":"^";return e==="xy"?new RegExp(a+"x([2-9]|[1-9][0-9]+)?y([2-9]|[1-9][0-9]+)?"+i):new RegExp(a+e+"([2-9]|[1-9][0-9]+)?"+i)}});var Gee=ye(bp=>{"use strict";var wq=uo(),Uee=id(),Vee=no().extendFlat,get=vl(),met=sb(),yet=va(),_et=N1().DESELECTDIM,a3=ES(),Hee=n3().counter,xet=r3().modHalf,dm=vv().isArrayOrTypedArray,U1=vv().isTypedArraySpec,V1=vv().decodeTypedArraySpec;bp.valObjectMeta={data_array:{coerceFunction:function(e,t,r){t.set(dm(e)?e:U1(e)?V1(e):r)}},enumerated:{coerceFunction:function(e,t,r,n){n.coerceNumber&&(e=+e),n.values.indexOf(e)===-1?t.set(r):t.set(e)},validateFunction:function(e,t){t.coerceNumber&&(e=+e);for(var r=t.values,n=0;nn.max?t.set(r):t.set(+e)}},integer:{coerceFunction:function(e,t,r,n){if((n.extras||[]).indexOf(e)!==-1){t.set(e);return}U1(e)&&(e=V1(e)),e%1||!wq(e)||n.min!==void 0&&en.max?t.set(r):t.set(+e)}},string:{coerceFunction:function(e,t,r,n){if(typeof e!="string"){var i=typeof e=="number";n.strict===!0||!i?t.set(r):t.set(String(e))}else n.noBlank&&!e?t.set(r):t.set(e)}},color:{coerceFunction:function(e,t,r){U1(e)&&(e=V1(e)),Uee(e).isValid()?t.set(e):t.set(r)}},colorlist:{coerceFunction:function(e,t,r){function n(i){return Uee(i).isValid()}!Array.isArray(e)||!e.length?t.set(r):e.every(n)?t.set(e):t.set(r)}},colorscale:{coerceFunction:function(e,t,r){t.set(met.get(e,r))}},angle:{coerceFunction:function(e,t,r){U1(e)&&(e=V1(e)),e==="auto"?t.set("auto"):wq(e)?t.set(xet(+e,360)):t.set(r)}},subplotid:{coerceFunction:function(e,t,r,n){var i=n.regex||Hee(r);if(typeof e=="string"&&i.test(e)){t.set(e);return}t.set(r)},validateFunction:function(e,t){var r=t.dflt;return e===r?!0:typeof e!="string"?!1:!!Hee(r).test(e)}},flaglist:{coerceFunction:function(e,t,r,n){if((n.extras||[]).indexOf(e)!==-1){t.set(e);return}if(typeof e!="string"){t.set(r);return}for(var i=e.split("+"),a=0;a{"use strict";var jee={staticPlot:{valType:"boolean",dflt:!1},typesetMath:{valType:"boolean",dflt:!0},plotlyServerURL:{valType:"string",dflt:""},editable:{valType:"boolean",dflt:!1},edits:{annotationPosition:{valType:"boolean",dflt:!1},annotationTail:{valType:"boolean",dflt:!1},annotationText:{valType:"boolean",dflt:!1},axisTitleText:{valType:"boolean",dflt:!1},colorbarPosition:{valType:"boolean",dflt:!1},colorbarTitleText:{valType:"boolean",dflt:!1},legendPosition:{valType:"boolean",dflt:!1},legendText:{valType:"boolean",dflt:!1},shapePosition:{valType:"boolean",dflt:!1},titleText:{valType:"boolean",dflt:!1}},editSelection:{valType:"boolean",dflt:!0},autosizable:{valType:"boolean",dflt:!1},responsive:{valType:"boolean",dflt:!1},fillFrame:{valType:"boolean",dflt:!1},frameMargins:{valType:"number",dflt:0,min:0,max:.5},scrollZoom:{valType:"flaglist",flags:["cartesian","gl3d","geo","mapbox","map"],extras:[!0,!1],dflt:"gl3d+geo+map"},doubleClick:{valType:"enumerated",values:[!1,"reset","autosize","reset+autosize"],dflt:"reset+autosize"},doubleClickDelay:{valType:"number",dflt:300,min:0},showAxisDragHandles:{valType:"boolean",dflt:!0},showAxisRangeEntryBoxes:{valType:"boolean",dflt:!0},showTips:{valType:"boolean",dflt:!0},showLink:{valType:"boolean",dflt:!1},linkText:{valType:"string",dflt:"Edit chart",noBlank:!0},sendData:{valType:"boolean",dflt:!0},showSources:{valType:"any",dflt:!1},displayModeBar:{valType:"enumerated",values:["hover",!0,!1],dflt:"hover"},showSendToCloud:{valType:"boolean",dflt:!1},showEditInChartStudio:{valType:"boolean",dflt:!1},modeBarButtonsToRemove:{valType:"any",dflt:[]},modeBarButtonsToAdd:{valType:"any",dflt:[]},modeBarButtons:{valType:"any",dflt:!1},toImageButtonOptions:{valType:"any",dflt:{}},displaylogo:{valType:"boolean",dflt:!0},watermark:{valType:"boolean",dflt:!1},plotGlPixelRatio:{valType:"number",dflt:2,min:1,max:4},setBackground:{valType:"any",dflt:"transparent"},topojsonURL:{valType:"string",noBlank:!0,dflt:"https://cdn.plot.ly/"},mapboxAccessToken:{valType:"string",dflt:null},logging:{valType:"integer",min:0,max:2,dflt:1},notifyOnLogging:{valType:"integer",min:0,max:2,dflt:0},queueLength:{valType:"integer",min:0,dflt:0},locale:{valType:"string",dflt:"en-US"},locales:{valType:"any",dflt:{}}},Wee={};function Zee(e,t){for(var r in e){var n=e[r];n.valType?t[r]=n.dflt:(t[r]||(t[r]={}),Zee(n,t[r]))}}Zee(jee,Wee);Xee.exports={configAttributes:jee,dfltConfig:Wee}});var Aq=ye((eer,Yee)=>{"use strict";var Tq=xa(),bet=uo(),RS=[];Yee.exports=function(e,t){if(RS.indexOf(e)!==-1)return;RS.push(e);var r=1e3;bet(t)?r=t:t==="long"&&(r=3e3);var n=Tq.select("body").selectAll(".plotly-notifier").data([0]);n.enter().append("div").classed("plotly-notifier",!0);var i=n.selectAll(".notifier-note").data(RS);function a(o){o.duration(700).style("opacity",0).each("end",function(s){var l=RS.indexOf(s);l!==-1&&RS.splice(l,1),Tq.select(this).remove()})}i.enter().append("div").classed("notifier-note",!0).style("opacity",0).each(function(o){var s=Tq.select(this);s.append("button").classed("notifier-close",!0).html("×").on("click",function(){s.transition().call(a)});for(var l=s.append("p"),u=o.split(//g),c=0;c{"use strict";var o3=ub().dfltConfig,Sq=Aq(),Mq=Kee.exports={};Mq.log=function(){var e;if(o3.logging>1){var t=["LOG:"];for(e=0;e1){var r=[];for(e=0;e"),"long")}};Mq.warn=function(){var e;if(o3.logging>0){var t=["WARN:"];for(e=0;e0){var r=[];for(e=0;e"),"stick")}};Mq.error=function(){var e;if(o3.logging>0){var t=["ERROR:"];for(e=0;e0){var r=[];for(e=0;e"),"stick")}}});var p6=ye((rer,Jee)=>{"use strict";Jee.exports=function(){}});var Eq=ye((ier,$ee)=>{"use strict";$ee.exports=function(t,r){if(r instanceof RegExp){for(var n=r.toString(),i=0;i{Qee.exports=wet;function wet(){var e=new Float32Array(16);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var rte=ye((aer,tte)=>{tte.exports=Tet;function Tet(e){var t=new Float32Array(16);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}});var nte=ye((oer,ite)=>{ite.exports=Aet;function Aet(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}});var kq=ye((ser,ate)=>{ate.exports=Met;function Met(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var ste=ye((ler,ote)=>{ote.exports=Eet;function Eet(e,t){if(e===t){var r=t[1],n=t[2],i=t[3],a=t[6],o=t[7],s=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=a,e[11]=t[14],e[12]=i,e[13]=o,e[14]=s}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}});var ute=ye((uer,lte)=>{lte.exports=ket;function ket(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],l=t[6],u=t[7],c=t[8],f=t[9],h=t[10],d=t[11],v=t[12],x=t[13],b=t[14],g=t[15],E=r*s-n*o,k=r*l-i*o,A=r*u-a*o,L=n*l-i*s,_=n*u-a*s,C=i*u-a*l,M=c*x-f*v,p=c*b-h*v,P=c*g-d*v,T=f*b-h*x,F=f*g-d*x,q=h*g-d*b,V=E*q-k*F+A*T+L*P-_*p+C*M;return V?(V=1/V,e[0]=(s*q-l*F+u*T)*V,e[1]=(i*F-n*q-a*T)*V,e[2]=(x*C-b*_+g*L)*V,e[3]=(h*_-f*C-d*L)*V,e[4]=(l*P-o*q-u*p)*V,e[5]=(r*q-i*P+a*p)*V,e[6]=(b*A-v*C-g*k)*V,e[7]=(c*C-h*A+d*k)*V,e[8]=(o*F-s*P+u*M)*V,e[9]=(n*P-r*F-a*M)*V,e[10]=(v*_-x*A+g*E)*V,e[11]=(f*A-c*_-d*E)*V,e[12]=(s*p-o*T-l*M)*V,e[13]=(r*T-n*p+i*M)*V,e[14]=(x*k-v*L-b*E)*V,e[15]=(c*L-f*k+h*E)*V,e):null}});var fte=ye((cer,cte)=>{cte.exports=Cet;function Cet(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=t[4],s=t[5],l=t[6],u=t[7],c=t[8],f=t[9],h=t[10],d=t[11],v=t[12],x=t[13],b=t[14],g=t[15];return e[0]=s*(h*g-d*b)-f*(l*g-u*b)+x*(l*d-u*h),e[1]=-(n*(h*g-d*b)-f*(i*g-a*b)+x*(i*d-a*h)),e[2]=n*(l*g-u*b)-s*(i*g-a*b)+x*(i*u-a*l),e[3]=-(n*(l*d-u*h)-s*(i*d-a*h)+f*(i*u-a*l)),e[4]=-(o*(h*g-d*b)-c*(l*g-u*b)+v*(l*d-u*h)),e[5]=r*(h*g-d*b)-c*(i*g-a*b)+v*(i*d-a*h),e[6]=-(r*(l*g-u*b)-o*(i*g-a*b)+v*(i*u-a*l)),e[7]=r*(l*d-u*h)-o*(i*d-a*h)+c*(i*u-a*l),e[8]=o*(f*g-d*x)-c*(s*g-u*x)+v*(s*d-u*f),e[9]=-(r*(f*g-d*x)-c*(n*g-a*x)+v*(n*d-a*f)),e[10]=r*(s*g-u*x)-o*(n*g-a*x)+v*(n*u-a*s),e[11]=-(r*(s*d-u*f)-o*(n*d-a*f)+c*(n*u-a*s)),e[12]=-(o*(f*b-h*x)-c*(s*b-l*x)+v*(s*h-l*f)),e[13]=r*(f*b-h*x)-c*(n*b-i*x)+v*(n*h-i*f),e[14]=-(r*(s*b-l*x)-o*(n*b-i*x)+v*(n*l-i*s)),e[15]=r*(s*h-l*f)-o*(n*h-i*f)+c*(n*l-i*s),e}});var dte=ye((fer,hte)=>{hte.exports=Let;function Let(e){var t=e[0],r=e[1],n=e[2],i=e[3],a=e[4],o=e[5],s=e[6],l=e[7],u=e[8],c=e[9],f=e[10],h=e[11],d=e[12],v=e[13],x=e[14],b=e[15],g=t*o-r*a,E=t*s-n*a,k=t*l-i*a,A=r*s-n*o,L=r*l-i*o,_=n*l-i*s,C=u*v-c*d,M=u*x-f*d,p=u*b-h*d,P=c*x-f*v,T=c*b-h*v,F=f*b-h*x;return g*F-E*T+k*P+A*p-L*M+_*C}});var pte=ye((her,vte)=>{vte.exports=Pet;function Pet(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=t[4],l=t[5],u=t[6],c=t[7],f=t[8],h=t[9],d=t[10],v=t[11],x=t[12],b=t[13],g=t[14],E=t[15],k=r[0],A=r[1],L=r[2],_=r[3];return e[0]=k*n+A*s+L*f+_*x,e[1]=k*i+A*l+L*h+_*b,e[2]=k*a+A*u+L*d+_*g,e[3]=k*o+A*c+L*v+_*E,k=r[4],A=r[5],L=r[6],_=r[7],e[4]=k*n+A*s+L*f+_*x,e[5]=k*i+A*l+L*h+_*b,e[6]=k*a+A*u+L*d+_*g,e[7]=k*o+A*c+L*v+_*E,k=r[8],A=r[9],L=r[10],_=r[11],e[8]=k*n+A*s+L*f+_*x,e[9]=k*i+A*l+L*h+_*b,e[10]=k*a+A*u+L*d+_*g,e[11]=k*o+A*c+L*v+_*E,k=r[12],A=r[13],L=r[14],_=r[15],e[12]=k*n+A*s+L*f+_*x,e[13]=k*i+A*l+L*h+_*b,e[14]=k*a+A*u+L*d+_*g,e[15]=k*o+A*c+L*v+_*E,e}});var mte=ye((der,gte)=>{gte.exports=Iet;function Iet(e,t,r){var n=r[0],i=r[1],a=r[2],o,s,l,u,c,f,h,d,v,x,b,g;return t===e?(e[12]=t[0]*n+t[4]*i+t[8]*a+t[12],e[13]=t[1]*n+t[5]*i+t[9]*a+t[13],e[14]=t[2]*n+t[6]*i+t[10]*a+t[14],e[15]=t[3]*n+t[7]*i+t[11]*a+t[15]):(o=t[0],s=t[1],l=t[2],u=t[3],c=t[4],f=t[5],h=t[6],d=t[7],v=t[8],x=t[9],b=t[10],g=t[11],e[0]=o,e[1]=s,e[2]=l,e[3]=u,e[4]=c,e[5]=f,e[6]=h,e[7]=d,e[8]=v,e[9]=x,e[10]=b,e[11]=g,e[12]=o*n+c*i+v*a+t[12],e[13]=s*n+f*i+x*a+t[13],e[14]=l*n+h*i+b*a+t[14],e[15]=u*n+d*i+g*a+t[15]),e}});var _te=ye((ver,yte)=>{yte.exports=Ret;function Ret(e,t,r){var n=r[0],i=r[1],a=r[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*i,e[5]=t[5]*i,e[6]=t[6]*i,e[7]=t[7]*i,e[8]=t[8]*a,e[9]=t[9]*a,e[10]=t[10]*a,e[11]=t[11]*a,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}});var bte=ye((per,xte)=>{xte.exports=Det;function Det(e,t,r,n){var i=n[0],a=n[1],o=n[2],s=Math.sqrt(i*i+a*a+o*o),l,u,c,f,h,d,v,x,b,g,E,k,A,L,_,C,M,p,P,T,F,q,V,H;return Math.abs(s)<1e-6?null:(s=1/s,i*=s,a*=s,o*=s,l=Math.sin(r),u=Math.cos(r),c=1-u,f=t[0],h=t[1],d=t[2],v=t[3],x=t[4],b=t[5],g=t[6],E=t[7],k=t[8],A=t[9],L=t[10],_=t[11],C=i*i*c+u,M=a*i*c+o*l,p=o*i*c-a*l,P=i*a*c-o*l,T=a*a*c+u,F=o*a*c+i*l,q=i*o*c+a*l,V=a*o*c-i*l,H=o*o*c+u,e[0]=f*C+x*M+k*p,e[1]=h*C+b*M+A*p,e[2]=d*C+g*M+L*p,e[3]=v*C+E*M+_*p,e[4]=f*P+x*T+k*F,e[5]=h*P+b*T+A*F,e[6]=d*P+g*T+L*F,e[7]=v*P+E*T+_*F,e[8]=f*q+x*V+k*H,e[9]=h*q+b*V+A*H,e[10]=d*q+g*V+L*H,e[11]=v*q+E*V+_*H,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}});var Tte=ye((ger,wte)=>{wte.exports=zet;function zet(e,t,r){var n=Math.sin(r),i=Math.cos(r),a=t[4],o=t[5],s=t[6],l=t[7],u=t[8],c=t[9],f=t[10],h=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=a*i+u*n,e[5]=o*i+c*n,e[6]=s*i+f*n,e[7]=l*i+h*n,e[8]=u*i-a*n,e[9]=c*i-o*n,e[10]=f*i-s*n,e[11]=h*i-l*n,e}});var Ste=ye((mer,Ate)=>{Ate.exports=Fet;function Fet(e,t,r){var n=Math.sin(r),i=Math.cos(r),a=t[0],o=t[1],s=t[2],l=t[3],u=t[8],c=t[9],f=t[10],h=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*i-u*n,e[1]=o*i-c*n,e[2]=s*i-f*n,e[3]=l*i-h*n,e[8]=a*n+u*i,e[9]=o*n+c*i,e[10]=s*n+f*i,e[11]=l*n+h*i,e}});var Ete=ye((yer,Mte)=>{Mte.exports=qet;function qet(e,t,r){var n=Math.sin(r),i=Math.cos(r),a=t[0],o=t[1],s=t[2],l=t[3],u=t[4],c=t[5],f=t[6],h=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=a*i+u*n,e[1]=o*i+c*n,e[2]=s*i+f*n,e[3]=l*i+h*n,e[4]=u*i-a*n,e[5]=c*i-o*n,e[6]=f*i-s*n,e[7]=h*i-l*n,e}});var Cte=ye((_er,kte)=>{kte.exports=Oet;function Oet(e,t,r){var n,i,a,o=r[0],s=r[1],l=r[2],u=Math.sqrt(o*o+s*s+l*l);return Math.abs(u)<1e-6?null:(u=1/u,o*=u,s*=u,l*=u,n=Math.sin(t),i=Math.cos(t),a=1-i,e[0]=o*o*a+i,e[1]=s*o*a+l*n,e[2]=l*o*a-s*n,e[3]=0,e[4]=o*s*a-l*n,e[5]=s*s*a+i,e[6]=l*s*a+o*n,e[7]=0,e[8]=o*l*a+s*n,e[9]=s*l*a-o*n,e[10]=l*l*a+i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e)}});var Pte=ye((xer,Lte)=>{Lte.exports=Bet;function Bet(e,t,r){var n=t[0],i=t[1],a=t[2],o=t[3],s=n+n,l=i+i,u=a+a,c=n*s,f=n*l,h=n*u,d=i*l,v=i*u,x=a*u,b=o*s,g=o*l,E=o*u;return e[0]=1-(d+x),e[1]=f+E,e[2]=h-g,e[3]=0,e[4]=f-E,e[5]=1-(c+x),e[6]=v+b,e[7]=0,e[8]=h+g,e[9]=v-b,e[10]=1-(c+d),e[11]=0,e[12]=r[0],e[13]=r[1],e[14]=r[2],e[15]=1,e}});var Rte=ye((ber,Ite)=>{Ite.exports=Net;function Net(e,t){return e[0]=t[0],e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=t[1],e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=t[2],e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var zte=ye((wer,Dte)=>{Dte.exports=Uet;function Uet(e,t){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=t[0],e[13]=t[1],e[14]=t[2],e[15]=1,e}});var qte=ye((Ter,Fte)=>{Fte.exports=Vet;function Vet(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=n,e[6]=r,e[7]=0,e[8]=0,e[9]=-r,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var Bte=ye((Aer,Ote)=>{Ote.exports=Het;function Het(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=0,e[2]=-r,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=r,e[9]=0,e[10]=n,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var Ute=ye((Ser,Nte)=>{Nte.exports=Get;function Get(e,t){var r=Math.sin(t),n=Math.cos(t);return e[0]=n,e[1]=r,e[2]=0,e[3]=0,e[4]=-r,e[5]=n,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var Cq=ye((Mer,Vte)=>{Vte.exports=jet;function jet(e,t){var r=t[0],n=t[1],i=t[2],a=t[3],o=r+r,s=n+n,l=i+i,u=r*o,c=n*o,f=n*s,h=i*o,d=i*s,v=i*l,x=a*o,b=a*s,g=a*l;return e[0]=1-f-v,e[1]=c+g,e[2]=h-b,e[3]=0,e[4]=c-g,e[5]=1-u-v,e[6]=d+x,e[7]=0,e[8]=h+b,e[9]=d-x,e[10]=1-u-f,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}});var Gte=ye((Eer,Hte)=>{Hte.exports=Wet;function Wet(e,t,r,n,i,a,o){var s=1/(r-t),l=1/(i-n),u=1/(a-o);return e[0]=a*2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a*2*l,e[6]=0,e[7]=0,e[8]=(r+t)*s,e[9]=(i+n)*l,e[10]=(o+a)*u,e[11]=-1,e[12]=0,e[13]=0,e[14]=o*a*2*u,e[15]=0,e}});var Wte=ye((ker,jte)=>{jte.exports=Zet;function Zet(e,t,r,n,i){var a=1/Math.tan(t/2),o=1/(n-i);return e[0]=a/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=a,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=(i+n)*o,e[11]=-1,e[12]=0,e[13]=0,e[14]=2*i*n*o,e[15]=0,e}});var Xte=ye((Cer,Zte)=>{Zte.exports=Xet;function Xet(e,t,r,n){var i=Math.tan(t.upDegrees*Math.PI/180),a=Math.tan(t.downDegrees*Math.PI/180),o=Math.tan(t.leftDegrees*Math.PI/180),s=Math.tan(t.rightDegrees*Math.PI/180),l=2/(o+s),u=2/(i+a);return e[0]=l,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=u,e[6]=0,e[7]=0,e[8]=-((o-s)*l*.5),e[9]=(i-a)*u*.5,e[10]=n/(r-n),e[11]=-1,e[12]=0,e[13]=0,e[14]=n*r/(r-n),e[15]=0,e}});var Kte=ye((Ler,Yte)=>{Yte.exports=Yet;function Yet(e,t,r,n,i,a,o){var s=1/(t-r),l=1/(n-i),u=1/(a-o);return e[0]=-2*s,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*u,e[11]=0,e[12]=(t+r)*s,e[13]=(i+n)*l,e[14]=(o+a)*u,e[15]=1,e}});var $te=ye((Per,Jte)=>{var Ket=kq();Jte.exports=Jet;function Jet(e,t,r,n){var i,a,o,s,l,u,c,f,h,d,v=t[0],x=t[1],b=t[2],g=n[0],E=n[1],k=n[2],A=r[0],L=r[1],_=r[2];return Math.abs(v-A)<1e-6&&Math.abs(x-L)<1e-6&&Math.abs(b-_)<1e-6?Ket(e):(c=v-A,f=x-L,h=b-_,d=1/Math.sqrt(c*c+f*f+h*h),c*=d,f*=d,h*=d,i=E*h-k*f,a=k*c-g*h,o=g*f-E*c,d=Math.sqrt(i*i+a*a+o*o),d?(d=1/d,i*=d,a*=d,o*=d):(i=0,a=0,o=0),s=f*o-h*a,l=h*i-c*o,u=c*a-f*i,d=Math.sqrt(s*s+l*l+u*u),d?(d=1/d,s*=d,l*=d,u*=d):(s=0,l=0,u=0),e[0]=i,e[1]=s,e[2]=c,e[3]=0,e[4]=a,e[5]=l,e[6]=f,e[7]=0,e[8]=o,e[9]=u,e[10]=h,e[11]=0,e[12]=-(i*v+a*x+o*b),e[13]=-(s*v+l*x+u*b),e[14]=-(c*v+f*x+h*b),e[15]=1,e)}});var ere=ye((Ier,Qte)=>{Qte.exports=$et;function $et(e){return"mat4("+e[0]+", "+e[1]+", "+e[2]+", "+e[3]+", "+e[4]+", "+e[5]+", "+e[6]+", "+e[7]+", "+e[8]+", "+e[9]+", "+e[10]+", "+e[11]+", "+e[12]+", "+e[13]+", "+e[14]+", "+e[15]+")"}});var Lq=ye((Rer,tre)=>{tre.exports={create:ete(),clone:rte(),copy:nte(),identity:kq(),transpose:ste(),invert:ute(),adjoint:fte(),determinant:dte(),multiply:pte(),translate:mte(),scale:_te(),rotate:bte(),rotateX:Tte(),rotateY:Ste(),rotateZ:Ete(),fromRotation:Cte(),fromRotationTranslation:Pte(),fromScaling:Rte(),fromTranslation:zte(),fromXRotation:qte(),fromYRotation:Bte(),fromZRotation:Ute(),fromQuat:Cq(),frustum:Gte(),perspective:Wte(),perspectiveFromFieldOfView:Xte(),ortho:Kte(),lookAt:$te(),str:ere()}});var g6=ye(Xf=>{"use strict";var Qet=Lq();Xf.init2dArray=function(e,t){for(var r=new Array(e),n=0;n{"use strict";var ett=xa(),rre=H1(),ttt=g6(),rtt=Lq();function itt(e){var t;if(typeof e=="string"){if(t=document.getElementById(e),t===null)throw new Error("No DOM element with id '"+e+"' exists on the page.");return t}else if(e==null)throw new Error("DOM element provided is null or undefined");return e}function ntt(e){var t=ett.select(e);return t.node()instanceof HTMLElement&&t.size()&&t.classed("js-plotly-plot")}function ire(e){var t=e&&e.parentNode;t&&t.removeChild(e)}function att(e,t){nre("global",e,t)}function nre(e,t,r){var n="plotly.js-style-"+e,i=document.getElementById(n);if(!(i&&i.matches(".no-inline-styles"))){i||(i=document.createElement("style"),i.setAttribute("id",n),i.appendChild(document.createTextNode("")),document.head.appendChild(i));var a=i.sheet;a?a.insertRule?a.insertRule(t+"{"+r+"}",0):a.addRule?a.addRule(t,r,0):rre.warn("addStyleRule failed"):rre.warn("Cannot addRelatedStyleRule, probably due to strict CSP...")}}function ott(e){var t="plotly.js-style-"+e,r=document.getElementById(t);r&&ire(r)}function stt(e,t,r,n,i,a){var o=n.split(":"),s=i.split(":"),l="data-btn-style-event-added";a||(a=document),a.querySelectorAll(e).forEach(function(u){u.getAttribute(l)||(u.addEventListener("mouseenter",function(){var c=this.querySelector(r);c&&(c.style[o[0]]=o[1])}),u.addEventListener("mouseleave",function(){var c=this.querySelector(r);c&&(t&&this.matches(t)?c.style[o[0]]=o[1]:c.style[s[0]]=s[1])}),u.setAttribute(l,!0))})}function ltt(e){var t=ore(e),r=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];return t.forEach(function(n){var i=are(n);if(i){var a=ttt.convertCssMatrix(i);r=rtt.multiply(r,r,a)}}),r}function are(e){var t=window.getComputedStyle(e,null),r=t.getPropertyValue("-webkit-transform")||t.getPropertyValue("-moz-transform")||t.getPropertyValue("-ms-transform")||t.getPropertyValue("-o-transform")||t.getPropertyValue("transform");return r==="none"?null:r.replace("matrix","").replace("3d","").slice(1,-1).split(",").map(function(n){return+n})}function ore(e){for(var t=[];utt(e);)t.push(e),e=e.parentNode,typeof ShadowRoot=="function"&&e instanceof ShadowRoot&&(e=e.host);return t}function utt(e){return e&&(e instanceof Element||e instanceof HTMLElement)}function ctt(e,t){return e&&t&&e.top===t.top&&e.left===t.left&&e.right===t.right&&e.bottom===t.bottom}sre.exports={getGraphDiv:itt,isPlotDiv:ntt,removeElement:ire,addStyleRule:att,addRelatedStyleRule:nre,deleteRelatedStyleRule:ott,setStyleOnHover:stt,getFullTransformMatrix:ltt,getElementTransformMatrix:are,getElementAndAncestors:ore,equalDomRects:ctt}});var zS=ye((Fer,lre)=>{"use strict";lre.exports={mode:{valType:"enumerated",dflt:"afterall",values:["immediate","next","afterall"]},direction:{valType:"enumerated",values:["forward","reverse"],dflt:"forward"},fromcurrent:{valType:"boolean",dflt:!1},frame:{duration:{valType:"number",min:0,dflt:500},redraw:{valType:"boolean",dflt:!0}},transition:{duration:{valType:"number",min:0,dflt:500,editType:"none"},easing:{valType:"enumerated",dflt:"cubic-in-out",values:["linear","quad","cubic","sin","exp","circle","elastic","back","bounce","linear-in","quad-in","cubic-in","sin-in","exp-in","circle-in","elastic-in","back-in","bounce-in","linear-out","quad-out","cubic-out","sin-out","exp-out","circle-out","elastic-out","back-out","bounce-out","linear-in-out","quad-in-out","cubic-in-out","sin-in-out","exp-in-out","circle-in-out","elastic-in-out","back-in-out","bounce-in-out"],editType:"none"},ordering:{valType:"enumerated",values:["layout first","traces first"],dflt:"layout first",editType:"none"}}}});var Bu=ye((qer,pre)=>{"use strict";var cre=no().extendFlat,ftt=gy(),fre={valType:"flaglist",extras:["none"],flags:["calc","clearAxisTypes","plot","style","markerSize","colorbars"]},hre={valType:"flaglist",extras:["none"],flags:["calc","plot","legend","ticks","axrange","layoutstyle","modebar","camera","arraydraw","colorbars"]},htt=fre.flags.slice().concat(["fullReplot"]),dtt=hre.flags.slice().concat("layoutReplot");pre.exports={traces:fre,layout:hre,traceFlags:function(){return ure(htt)},layoutFlags:function(){return ure(dtt)},update:function(e,t){var r=t.editType;if(r&&r!=="none")for(var n=r.split("+"),i=0;i{"use strict";Pq.dash={valType:"string",values:["solid","dot","dash","longdash","dashdot","longdashdot"],dflt:"solid",editType:"style"};Pq.pattern={shape:{valType:"enumerated",values:["","/","\\","x","-","|","+","."],dflt:"",arrayOk:!0,editType:"style"},fillmode:{valType:"enumerated",values:["replace","overlay"],dflt:"replace",editType:"style"},bgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgcolor:{valType:"color",arrayOk:!0,editType:"style"},fgopacity:{valType:"number",editType:"style",min:0,max:1},size:{valType:"number",min:0,dflt:8,arrayOk:!0,editType:"style"},solidity:{valType:"number",min:0,max:1,dflt:.3,arrayOk:!0,editType:"style"},editType:"style"}});var Iq=ye((Ber,gre)=>{"use strict";gre.exports={FORMAT_LINK:"https://github.com/d3/d3-format/tree/v1.4.5#d3-format",DATE_FORMAT_LINK:"https://github.com/d3/d3-time-format/tree/v2.2.3#locale_format"}});var Wo=ye(m6=>{"use strict";var mre=Iq(),Ner=mre.FORMAT_LINK,Uer=mre.DATE_FORMAT_LINK;function Rq(e){var t=e.description?" "+e.description:"",r=e.keys||[];if(r.length>0){for(var n=[],i=0;i{"use strict";function G1(e,t){return t?t.d2l(e):e}function yre(e,t){return t?t.l2d(e):e}function vtt(e){return e.x0}function ptt(e){return e.x1}function gtt(e){return e.y0}function mtt(e){return e.y1}function _re(e){return e.x0shift||0}function xre(e){return e.x1shift||0}function bre(e){return e.y0shift||0}function wre(e){return e.y1shift||0}function y6(e,t){return G1(e.x1,t)+xre(e)-G1(e.x0,t)-_re(e)}function _6(e,t,r){return G1(e.y1,r)+wre(e)-G1(e.y0,r)-bre(e)}function ytt(e,t){return Math.abs(y6(e,t))}function _tt(e,t,r){return Math.abs(_6(e,t,r))}function xtt(e,t,r){return e.type!=="line"?void 0:Math.sqrt(Math.pow(y6(e,t),2)+Math.pow(_6(e,t,r),2))}function btt(e,t){return yre((G1(e.x1,t)+xre(e)+G1(e.x0,t)+_re(e))/2,t)}function wtt(e,t,r){return yre((G1(e.y1,r)+wre(e)+G1(e.y0,r)+bre(e))/2,r)}function Ttt(e,t,r){return e.type!=="line"?void 0:_6(e,t,r)/y6(e,t)}Tre.exports={x0:vtt,x1:ptt,y0:gtt,y1:mtt,slope:Ttt,dx:y6,dy:_6,width:ytt,height:_tt,length:xtt,xcenter:btt,ycenter:wtt}});var Mre=ye((Ger,Sre)=>{"use strict";var Att=Bu().overrideAll,cb=vl(),Are=Su(),Stt=Ed().dash,j1=no().extendFlat,Mtt=Wo().shapeTexttemplateAttrs,Ett=x6();Sre.exports=Att({newshape:{visible:j1({},cb.visible,{}),showlegend:{valType:"boolean",dflt:!1},legend:j1({},cb.legend,{}),legendgroup:j1({},cb.legendgroup,{}),legendgrouptitle:{text:j1({},cb.legendgrouptitle.text,{}),font:Are({})},legendrank:j1({},cb.legendrank,{}),legendwidth:j1({},cb.legendwidth,{}),line:{color:{valType:"color"},width:{valType:"number",min:0,dflt:4},dash:j1({},Stt,{dflt:"solid"})},fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)"},fillrule:{valType:"enumerated",values:["evenodd","nonzero"],dflt:"evenodd"},opacity:{valType:"number",min:0,max:1,dflt:1},layer:{valType:"enumerated",values:["below","above","between"],dflt:"above"},drawdirection:{valType:"enumerated",values:["ortho","horizontal","vertical","diagonal"],dflt:"diagonal"},name:j1({},cb.name,{}),label:{text:{valType:"string",dflt:""},texttemplate:Mtt({newshape:!0},{keys:Object.keys(Ett)}),font:Are({}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right","start","middle","end"]},textangle:{valType:"angle",dflt:"auto"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto"},yanchor:{valType:"enumerated",values:["top","middle","bottom"]},padding:{valType:"number",dflt:3,min:0}}},activeshape:{fillcolor:{valType:"color",dflt:"rgb(255,0,255)"},opacity:{valType:"number",min:0,max:1,dflt:.5}}},"none","from-root")});var kre=ye((jer,Ere)=>{"use strict";var ktt=Ed().dash,Ctt=no().extendFlat;Ere.exports={newselection:{mode:{valType:"enumerated",values:["immediate","gradual"],dflt:"immediate",editType:"none"},line:{color:{valType:"color",editType:"none"},width:{valType:"number",min:1,dflt:1,editType:"none"},dash:Ctt({},ktt,{dflt:"dot",editType:"none"}),editType:"none"},editType:"none"},activeselection:{fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"none"},opacity:{valType:"number",min:0,max:1,dflt:.5,editType:"none"},editType:"none"}}});var b6=ye((Wer,Cre)=>{"use strict";Cre.exports=function(e){var t=e.editType;return{t:{valType:"number",dflt:0,editType:t},r:{valType:"number",dflt:0,editType:t},b:{valType:"number",dflt:0,editType:t},l:{valType:"number",dflt:0,editType:t},editType:t}}});var s3=ye((Zer,Rre)=>{"use strict";var Dq=Su(),Ltt=zS(),w6=dh(),Lre=Mre(),Pre=kre(),Ptt=b6(),Ire=no().extendFlat,T6=Dq({editType:"calc"});T6.family.dflt='"Open Sans", verdana, arial, sans-serif';T6.size.dflt=12;T6.color.dflt=w6.defaultLine;Rre.exports={font:T6,title:{text:{valType:"string",editType:"layoutstyle"},font:Dq({editType:"layoutstyle"}),subtitle:{text:{valType:"string",editType:"layoutstyle"},font:Dq({editType:"layoutstyle"}),editType:"layoutstyle"},xref:{valType:"enumerated",dflt:"container",values:["container","paper"],editType:"layoutstyle"},yref:{valType:"enumerated",dflt:"container",values:["container","paper"],editType:"layoutstyle"},x:{valType:"number",min:0,max:1,dflt:.5,editType:"layoutstyle"},y:{valType:"number",min:0,max:1,dflt:"auto",editType:"layoutstyle"},xanchor:{valType:"enumerated",dflt:"auto",values:["auto","left","center","right"],editType:"layoutstyle"},yanchor:{valType:"enumerated",dflt:"auto",values:["auto","top","middle","bottom"],editType:"layoutstyle"},pad:Ire(Ptt({editType:"layoutstyle"}),{}),automargin:{valType:"boolean",dflt:!1,editType:"plot"},editType:"layoutstyle"},uniformtext:{mode:{valType:"enumerated",values:[!1,"hide","show"],dflt:!1,editType:"plot"},minsize:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"plot"},autosize:{valType:"boolean",dflt:!1,editType:"none"},width:{valType:"number",min:10,dflt:700,editType:"plot"},height:{valType:"number",min:10,dflt:450,editType:"plot"},minreducedwidth:{valType:"number",min:2,dflt:64,editType:"plot"},minreducedheight:{valType:"number",min:2,dflt:64,editType:"plot"},margin:{l:{valType:"number",min:0,dflt:80,editType:"plot"},r:{valType:"number",min:0,dflt:80,editType:"plot"},t:{valType:"number",min:0,dflt:100,editType:"plot"},b:{valType:"number",min:0,dflt:80,editType:"plot"},pad:{valType:"number",min:0,dflt:0,editType:"plot"},autoexpand:{valType:"boolean",dflt:!0,editType:"plot"},editType:"plot"},computed:{valType:"any",editType:"none"},paper_bgcolor:{valType:"color",dflt:w6.background,editType:"plot"},plot_bgcolor:{valType:"color",dflt:w6.background,editType:"layoutstyle"},autotypenumbers:{valType:"enumerated",values:["convert types","strict"],dflt:"convert types",editType:"calc"},separators:{valType:"string",editType:"plot"},hidesources:{valType:"boolean",dflt:!1,editType:"plot"},showlegend:{valType:"boolean",editType:"legend"},colorway:{valType:"colorlist",dflt:w6.defaults,editType:"calc"},datarevision:{valType:"any",editType:"calc"},uirevision:{valType:"any",editType:"none"},editrevision:{valType:"any",editType:"none"},selectionrevision:{valType:"any",editType:"none"},template:{valType:"any",editType:"calc"},newshape:Lre.newshape,activeshape:Lre.activeshape,newselection:Pre.newselection,activeselection:Pre.activeselection,meta:{valType:"any",arrayOk:!0,editType:"plot"},transition:Ire({},Ltt.transition,{editType:"none"})}});var Dre=su(()=>{});var Itt={};var zre=su(()=>{Dre()});var ba=ye(qs=>{"use strict";var l3=H1(),Fre=p6(),qre=Eq(),Rtt=gy(),Dtt=DS().addStyleRule,Ore=no(),ztt=vl(),Ftt=s3(),qtt=Ore.extendFlat,zq=Ore.extendDeepAll;qs.modules={};qs.allCategories={};qs.allTypes=[];qs.subplotsRegistry={};qs.componentsRegistry={};qs.layoutArrayContainers=[];qs.layoutArrayRegexes=[];qs.traceLayoutAttributes={};qs.localeRegistry={};qs.apiMethodRegistry={};qs.collectableSubplotTypes=null;qs.register=function(t){if(qs.collectableSubplotTypes=null,t)t&&!Array.isArray(t)&&(t=[t]);else throw new Error("No argument passed to Plotly.register.");for(var r=0;r{"use strict";var Htt=e3().timeFormat,Yre=uo(),Fq=H1(),Z1=r3().mod,f3=es(),_0=f3.BADNUM,wp=f3.ONEDAY,FS=f3.ONEHOUR,W1=f3.ONEMIN,c3=f3.ONESEC,qS=f3.EPOCHJD,my=ba(),Hre=e3().utcFormat,Gtt=/^\s*(-?\d\d\d\d|\d\d)(-(\d?\d)(-(\d?\d)([ Tt]([01]?\d|2[0-3])(:([0-5]\d)(:([0-5]\d(\.\d+)?))?(Z|z|[+\-]\d\d(:?\d\d)?)?)?)?)?)?\s*$/m,jtt=/^\s*(-?\d\d\d\d|\d\d)(-(\d?\di?)(-(\d?\d)([ Tt]([01]?\d|2[0-3])(:([0-5]\d)(:([0-5]\d(\.\d+)?))?(Z|z|[+\-]\d\d(:?\d\d)?)?)?)?)?)?\s*$/m,Gre=new Date().getFullYear()-70;function yy(e){return e&&my.componentsRegistry.calendars&&typeof e=="string"&&e!=="gregorian"}Yf.dateTick0=function(e,t){var r=Wtt(e,!!t);if(t<2)return r;var n=Yf.dateTime2ms(r,e);return n+=wp*(t-1),Yf.ms2DateTime(n,0,e)};function Wtt(e,t){return yy(e)?t?my.getComponentMethod("calendars","CANONICAL_SUNDAY")[e]:my.getComponentMethod("calendars","CANONICAL_TICK")[e]:t?"2000-01-02":"2000-01-01"}Yf.dfltRange=function(e){return yy(e)?my.getComponentMethod("calendars","DFLTRANGE")[e]:["2000-01-01","2001-01-01"]};Yf.isJSDate=function(e){return typeof e=="object"&&e!==null&&typeof e.getTime=="function"};var S6,M6;Yf.dateTime2ms=function(e,t){if(Yf.isJSDate(e)){var r=e.getTimezoneOffset()*W1,n=(e.getUTCMinutes()-e.getMinutes())*W1+(e.getUTCSeconds()-e.getSeconds())*c3+(e.getUTCMilliseconds()-e.getMilliseconds());if(n){var i=3*W1;r=r-i/2+Z1(n-r+i/2,i)}return e=Number(e)-r,e>=S6&&e<=M6?e:_0}if(typeof e!="string"&&typeof e!="number")return _0;e=String(e);var a=yy(t),o=e.charAt(0);a&&(o==="G"||o==="g")&&(e=e.substr(1),t="");var s=a&&t.substr(0,7)==="chinese",l=e.match(s?jtt:Gtt);if(!l)return _0;var u=l[1],c=l[3]||"1",f=Number(l[5]||1),h=Number(l[7]||0),d=Number(l[9]||0),v=Number(l[11]||0);if(a){if(u.length===2)return _0;u=Number(u);var x;try{var b=my.getComponentMethod("calendars","getCal")(t);if(s){var g=c.charAt(c.length-1)==="i";c=parseInt(c,10),x=b.newDate(u,b.toMonthIndex(u,c,g),f)}else x=b.newDate(u,Number(c),f)}catch(k){return _0}return x?(x.toJD()-qS)*wp+h*FS+d*W1+v*c3:_0}u.length===2?u=(Number(u)+2e3-Gre)%100+Gre:u=Number(u),c-=1;var E=new Date(Date.UTC(2e3,c,f,h,d));return E.setUTCFullYear(u),E.getUTCMonth()!==c||E.getUTCDate()!==f?_0:E.getTime()+v*c3};S6=Yf.MIN_MS=Yf.dateTime2ms("-9999");M6=Yf.MAX_MS=Yf.dateTime2ms("9999-12-31 23:59:59.9999");Yf.isDateTime=function(e,t){return Yf.dateTime2ms(e,t)!==_0};function u3(e,t){return String(e+Math.pow(10,t)).substr(1)}var A6=90*wp,jre=3*FS,Wre=5*W1;Yf.ms2DateTime=function(e,t,r){if(typeof e!="number"||!(e>=S6&&e<=M6))return _0;t||(t=0);var n=Math.floor(Z1(e+.05,1)*10),i=Math.round(e-n/10),a,o,s,l,u,c;if(yy(r)){var f=Math.floor(i/wp)+qS,h=Math.floor(Z1(e,wp));try{a=my.getComponentMethod("calendars","getCal")(r).fromJD(f).formatDate("yyyy-mm-dd")}catch(d){a=Hre("G%Y-%m-%d")(new Date(i))}if(a.charAt(0)==="-")for(;a.length<11;)a="-0"+a.substr(1);else for(;a.length<10;)a="0"+a;o=t=S6+wp&&e<=M6-wp))return _0;var t=Math.floor(Z1(e+.05,1)*10),r=new Date(Math.round(e-t/10)),n=Htt("%Y-%m-%d")(r),i=r.getHours(),a=r.getMinutes(),o=r.getSeconds(),s=r.getUTCMilliseconds()*10+t;return Kre(n,i,a,o,s)};function Kre(e,t,r,n,i){if((t||r||n||i)&&(e+=" "+u3(t,2)+":"+u3(r,2),(n||i)&&(e+=":"+u3(n,2),i))){for(var a=4;i%10===0;)a-=1,i/=10;e+="."+u3(i,a)}return e}Yf.cleanDate=function(e,t,r){if(e===_0)return t;if(Yf.isJSDate(e)||typeof e=="number"&&isFinite(e)){if(yy(r))return Fq.error("JS Dates and milliseconds are incompatible with world calendars",e),t;if(e=Yf.ms2DateTimeLocal(+e),!e&&t!==void 0)return t}else if(!Yf.isDateTime(e,r))return Fq.error("unrecognized date",e),t;return e};var Ztt=/%\d?f/g,Xtt=/%h/g,Ytt={1:"1",2:"1",3:"2",4:"2"};function Zre(e,t,r,n){e=e.replace(Ztt,function(a){var o=Math.min(+a.charAt(1)||6,6),s=(t/1e3%1+2).toFixed(o).substr(2).replace(/0+$/,"")||"0";return s});var i=new Date(Math.floor(t+.05));if(e=e.replace(Xtt,function(){return Ytt[r("%q")(i)]}),yy(n))try{e=my.getComponentMethod("calendars","worldCalFmt")(e,t,n)}catch(a){return"Invalid"}return r(e)(i)}var Ktt=[59,59.9,59.99,59.999,59.9999];function Jtt(e,t){var r=Z1(e+.05,wp),n=u3(Math.floor(r/FS),2)+":"+u3(Z1(Math.floor(r/W1),60),2);if(t!=="M"){Yre(t)||(t=0);var i=Math.min(Z1(e/c3,60),Ktt[t]),a=(100+i).toFixed(t).substr(1);t>0&&(a=a.replace(/0+$/,"").replace(/[\.]$/,"")),n+=":"+a}return n}Yf.formatDate=function(e,t,r,n,i,a){if(i=yy(i)&&i,!t)if(r==="y")t=a.year;else if(r==="m")t=a.month;else if(r==="d")t=a.dayMonth+` +`+a.year;else return Jtt(e,r)+` +`+Zre(a.dayMonthYear,e,n,i);return Zre(t,e,n,i)};var Xre=3*wp;Yf.incrementMonth=function(e,t,r){r=yy(r)&&r;var n=Z1(e,wp);if(e=Math.round(e-n),r)try{var i=Math.round(e/wp)+qS,a=my.getComponentMethod("calendars","getCal")(r),o=a.fromJD(i);return t%12?a.add(o,t,"m"):a.add(o,t/12,"y"),(o.toJD()-qS)*wp+n}catch(l){Fq.error("invalid ms "+e+" in calendar "+r)}var s=new Date(e+Xre);return s.setUTCMonth(s.getUTCMonth()+t)+n-Xre};Yf.findExactDates=function(e,t){for(var r=0,n=0,i=0,a=0,o,s,l=yy(t)&&my.getComponentMethod("calendars","getCal")(t),u=0;u{"use strict";$re.exports=function(t){return t}});var E6=ye(_y=>{"use strict";var $tt=uo(),Qtt=H1(),ert=OS(),trt=es().BADNUM,qq=1e-9;_y.findBin=function(e,t,r){if($tt(t.start))return r?Math.ceil((e-t.start)/t.size-qq)-1:Math.floor((e-t.start)/t.size+qq);var n=0,i=t.length,a=0,o=i>1?(t[i-1]-t[0])/(i-1):1,s,l;for(o>=0?l=r?rrt:irt:l=r?art:nrt,e+=o*qq*(r?-1:1)*(o>=0?1:-1);n90&&Qtt.log("Long binary search..."),n-1};function rrt(e,t){return et}function art(e,t){return e>=t}_y.sorterAsc=function(e,t){return e-t};_y.sorterDes=function(e,t){return t-e};_y.distinctVals=function(e){var t=e.slice();t.sort(_y.sorterAsc);var r;for(r=t.length-1;r>-1&&t[r]===trt;r--);for(var n=t[r]-t[0]||1,i=n/(r||1)/1e4,a=[],o,s=0;s<=r;s++){var l=t[s],u=l-o;o===void 0?(a.push(l),o=l):u>i&&(n=Math.min(n,u),a.push(l),o=l)}return{vals:a,minDiff:n}};_y.roundUp=function(e,t,r){for(var n=0,i=t.length-1,a,o=0,s=r?0:1,l=r?1:0,u=r?Math.ceil:Math.floor;n0&&(n=1),r&&n)return e.sort(t)}return n?e:e.reverse()};_y.findIndexOfMin=function(e,t){t=t||ert;for(var r=1/0,n,i=0;i{"use strict";Qre.exports=function(t){return Object.keys(t).sort()}});var eie=ye(Kf=>{"use strict";var BS=uo(),ort=vv().isArrayOrTypedArray;Kf.aggNums=function(e,t,r,n){var i,a;if((!n||n>r.length)&&(n=r.length),BS(t)||(t=!1),ort(r[0])){for(a=new Array(n),i=0;ie.length-1)return e[e.length-1];var r=t%1;return r*e[Math.ceil(t)]+(1-r)*e[Math.floor(t)]}});var aie=ye((itr,nie)=>{"use strict";var tie=r3(),Oq=tie.mod,srt=tie.modHalf,NS=Math.PI,Y1=2*NS;function lrt(e){return e/180*NS}function urt(e){return e/NS*180}function Bq(e){return Math.abs(e[1]-e[0])>Y1-1e-14}function rie(e,t){return srt(t-e,Y1)}function crt(e,t){return Math.abs(rie(e,t))}function iie(e,t){if(Bq(t))return!0;var r,n;t[0]n&&(n+=Y1);var i=Oq(e,Y1),a=i+Y1;return i>=r&&i<=n||a>=r&&a<=n}function frt(e,t,r,n){if(!iie(t,n))return!1;var i,a;return r[0]=i&&e<=a}function Nq(e,t,r,n,i,a,o){i=i||0,a=a||0;var s=Bq([r,n]),l,u,c,f,h;s?(l=0,u=NS,c=Y1):r{"use strict";fb.isLeftAnchor=function(t){return t.xanchor==="left"||t.xanchor==="auto"&&t.x<=1/3};fb.isCenterAnchor=function(t){return t.xanchor==="center"||t.xanchor==="auto"&&t.x>1/3&&t.x<2/3};fb.isRightAnchor=function(t){return t.xanchor==="right"||t.xanchor==="auto"&&t.x>=2/3};fb.isTopAnchor=function(t){return t.yanchor==="top"||t.yanchor==="auto"&&t.y>=2/3};fb.isMiddleAnchor=function(t){return t.yanchor==="middle"||t.yanchor==="auto"&&t.y>1/3&&t.y<2/3};fb.isBottomAnchor=function(t){return t.yanchor==="bottom"||t.yanchor==="auto"&&t.y<=1/3}});var uie=ye(hb=>{"use strict";var Uq=r3().mod;hb.segmentsIntersect=lie;function lie(e,t,r,n,i,a,o,s){var l=r-e,u=i-e,c=o-i,f=n-t,h=a-t,d=s-a,v=l*d-c*f;if(v===0)return null;var x=(u*d-c*h)/v,b=(u*f-l*h)/v;return b<0||b>1||x<0||x>1?null:{x:e+l*x,y:t+f*x}}hb.segmentDistance=function(t,r,n,i,a,o,s,l){if(lie(t,r,n,i,a,o,s,l))return 0;var u=n-t,c=i-r,f=s-a,h=l-o,d=u*u+c*c,v=f*f+h*h,x=Math.min(k6(u,c,d,a-t,o-r),k6(u,c,d,s-t,l-r),k6(f,h,v,t-a,r-o),k6(f,h,v,n-a,i-o));return Math.sqrt(x)};function k6(e,t,r,n,i){var a=n*e+i*t;if(a<0)return n*n+i*i;if(a>r){var o=n-e,s=i-t;return o*o+s*s}else{var l=n*t-i*e;return l*l/r}}var C6,Vq,sie;hb.getTextLocation=function(t,r,n,i){if((t!==Vq||i!==sie)&&(C6={},Vq=t,sie=i),C6[n])return C6[n];var a=t.getPointAtLength(Uq(n-i/2,r)),o=t.getPointAtLength(Uq(n+i/2,r)),s=Math.atan((o.y-a.y)/(o.x-a.x)),l=t.getPointAtLength(Uq(n,r)),u=(l.x*4+a.x+o.x)/6,c=(l.y*4+a.y+o.y)/6,f={x:u,y:c,theta:s};return C6[n]=f,f};hb.clearLocationCache=function(){Vq=null};hb.getVisibleSegment=function(t,r,n){var i=r.left,a=r.right,o=r.top,s=r.bottom,l=0,u=t.getTotalLength(),c=u,f,h;function d(x){var b=t.getPointAtLength(x);x===0?f=b:x===u&&(h=b);var g=b.xa?b.x-a:0,E=b.ys?b.y-s:0;return Math.sqrt(g*g+E*E)}for(var v=d(l);v;){if(l+=v+n,l>c)return;v=d(l)}for(v=d(c);v;){if(c-=v+n,l>c)return;v=d(c)}return{min:l,max:c,len:c-l,total:u,isClosed:l===0&&c===u&&Math.abs(f.x-h.x)<.1&&Math.abs(f.y-h.y)<.1}};hb.findPointOnPath=function(t,r,n,i){i=i||{};for(var a=i.pathLength||t.getTotalLength(),o=i.tolerance||.001,s=i.iterationLimit||30,l=t.getPointAtLength(0)[n]>t.getPointAtLength(a)[n]?-1:1,u=0,c=0,f=a,h,d,v;u0?f=h:c=h,u++}return d}});var L6=ye(US=>{"use strict";var xy={};US.throttle=function(t,r,n){var i=xy[t],a=Date.now();if(!i){for(var o in xy)xy[o].tsi.ts+r){s();return}i.timer=setTimeout(function(){s(),i.timer=null},r)};US.done=function(e){var t=xy[e];return!t||!t.timer?Promise.resolve():new Promise(function(r){var n=t.onDone;t.onDone=function(){n&&n(),r(),t.onDone=null}})};US.clear=function(e){if(e)cie(xy[e]),delete xy[e];else for(var t in xy)US.clear(t)};function cie(e){e&&e.timer!==null&&(clearTimeout(e.timer),e.timer=null)}});var hie=ye((str,fie)=>{"use strict";fie.exports=function(t){t._responsiveChartHandler&&(window.removeEventListener("resize",t._responsiveChartHandler),delete t._responsiveChartHandler)}});var die=ye((ltr,P6)=>{"use strict";P6.exports=Hq;P6.exports.isMobile=Hq;P6.exports.default=Hq;var prt=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,grt=/CrOS/,mrt=/android|ipad|playbook|silk/i;function Hq(e){e||(e={});let t=e.ua;if(!t&&typeof navigator!="undefined"&&(t=navigator.userAgent),t&&t.headers&&typeof t.headers["user-agent"]=="string"&&(t=t.headers["user-agent"]),typeof t!="string")return!1;let r=prt.test(t)&&!grt.test(t)||!!e.tablet&&mrt.test(t);return!r&&e.tablet&&e.featureDetect&&navigator&&navigator.maxTouchPoints>1&&t.indexOf("Macintosh")!==-1&&t.indexOf("Safari")!==-1&&(r=!0),r}});var pie=ye((utr,vie)=>{"use strict";var yrt=uo(),_rt=die();vie.exports=function(t){var r;if(t&&t.hasOwnProperty("userAgent")?r=t.userAgent:r=xrt(),typeof r!="string")return!0;var n=_rt({ua:{headers:{"user-agent":r}},tablet:!0,featureDetect:!1});if(!n)for(var i=r.split(" "),a=1;a-1;s--){var l=i[s];if(l.substr(0,8)==="Version/"){var u=l.substr(8).split(".")[0];if(yrt(u)&&(u=+u),u>=13)return!0}}}return n};function xrt(){var e;return typeof navigator!="undefined"&&(e=navigator.userAgent),e&&e.headers&&typeof e.headers["user-agent"]=="string"&&(e=e.headers["user-agent"]),e}});var mie=ye((ctr,gie)=>{"use strict";var brt=xa();gie.exports=function(t,r,n){var i=t.selectAll("g."+n.replace(/\s/g,".")).data(r,function(o){return o[0].trace.uid});i.exit().remove(),i.enter().append("g").attr("class",n),i.order();var a=t.classed("rangeplot")?"nodeRangePlot3":"node3";return i.each(function(o){o[0][a]=brt.select(this)}),i}});var _ie=ye((ftr,yie)=>{"use strict";var wrt=ba();yie.exports=function(t,r){for(var n=t._context.locale,i=0;i<2;i++){for(var a=t._context.locales,o=0;o<2;o++){var s=(a[n]||{}).dictionary;if(s){var l=s[r];if(l)return l}a=wrt.localeRegistry}var u=n.split("-")[0];if(u===n)break;n=u}return r}});var Gq=ye((htr,xie)=>{"use strict";xie.exports=function(t){for(var r={},n=[],i=0,a=0;a{"use strict";bie.exports=function(t){for(var r=Srt(t)?Art:Trt,n=[],i=0;i{"use strict";Tie.exports=function(t,r){if(!r)return t;var n=1/Math.abs(r),i=n>1?(n*t+n*r)/n:t+r,a=String(i).length;if(a>16){var o=String(r).length,s=String(t).length;if(a>=s+o){var l=parseFloat(i).toPrecision(12);l.indexOf("e+")===-1&&(i=+l)}}return i}});var Mie=ye((ptr,Sie)=>{"use strict";var Mrt=uo(),Ert=es().BADNUM,krt=/^['"%,$#\s']+|[, ]|['"%,$#\s']+$/g;Sie.exports=function(t){return typeof t=="string"&&(t=t.replace(krt,"")),Mrt(t)?Number(t):Ert}});var Mr=ye((gtr,Bie)=>{"use strict";var VS=xa(),Crt=e3().utcFormat,Lrt=dq().format,Iie=uo(),Rie=es(),Die=Rie.FP_SAFE,Prt=-Die,Eie=Rie.BADNUM,li=Bie.exports={};li.adjustFormat=function(t){return!t||/^\d[.]\df/.test(t)||/[.]\d%/.test(t)?t:t==="0.f"?"~f":/^\d%/.test(t)?"~%":/^\ds/.test(t)?"~s":!/^[~,.0$]/.test(t)&&/[&fps]/.test(t)?"~"+t:t};var kie={};li.warnBadFormat=function(e){var t=String(e);kie[t]||(kie[t]=1,li.warn('encountered bad format: "'+t+'"'))};li.noFormat=function(e){return String(e)};li.numberFormat=function(e){var t;try{t=Lrt(li.adjustFormat(e))}catch(r){return li.warnBadFormat(e),li.noFormat}return t};li.nestedProperty=ES();li.keyedContainer=_ee();li.relativeAttr=bee();li.isPlainObject=gy();li.toLogRange=l6();li.relinkPrivateKeys=See();var K1=vv();li.isArrayBuffer=K1.isArrayBuffer;li.isTypedArray=K1.isTypedArray;li.isArrayOrTypedArray=K1.isArrayOrTypedArray;li.isArray1D=K1.isArray1D;li.ensureArray=K1.ensureArray;li.concat=K1.concat;li.maxRowLength=K1.maxRowLength;li.minRowLength=K1.minRowLength;var zie=r3();li.mod=zie.mod;li.modHalf=zie.modHalf;var J1=Gee();li.valObjectMeta=J1.valObjectMeta;li.coerce=J1.coerce;li.coerce2=J1.coerce2;li.coerceFont=J1.coerceFont;li.coercePattern=J1.coercePattern;li.coerceHoverinfo=J1.coerceHoverinfo;li.coerceSelectionMarkerOpacity=J1.coerceSelectionMarkerOpacity;li.validate=J1.validate;var Wp=Jre();li.dateTime2ms=Wp.dateTime2ms;li.isDateTime=Wp.isDateTime;li.ms2DateTime=Wp.ms2DateTime;li.ms2DateTimeLocal=Wp.ms2DateTimeLocal;li.cleanDate=Wp.cleanDate;li.isJSDate=Wp.isJSDate;li.formatDate=Wp.formatDate;li.incrementMonth=Wp.incrementMonth;li.dateTick0=Wp.dateTick0;li.dfltRange=Wp.dfltRange;li.findExactDates=Wp.findExactDates;li.MIN_MS=Wp.MIN_MS;li.MAX_MS=Wp.MAX_MS;var db=E6();li.findBin=db.findBin;li.sorterAsc=db.sorterAsc;li.sorterDes=db.sorterDes;li.distinctVals=db.distinctVals;li.roundUp=db.roundUp;li.sort=db.sort;li.findIndexOfMin=db.findIndexOfMin;li.sortObjectKeys=X1();var by=eie();li.aggNums=by.aggNums;li.len=by.len;li.mean=by.mean;li.geometricMean=by.geometricMean;li.median=by.median;li.midRange=by.midRange;li.variance=by.variance;li.stdev=by.stdev;li.interp=by.interp;var yg=g6();li.init2dArray=yg.init2dArray;li.transposeRagged=yg.transposeRagged;li.dot=yg.dot;li.translationMatrix=yg.translationMatrix;li.rotationMatrix=yg.rotationMatrix;li.rotationXYMatrix=yg.rotationXYMatrix;li.apply3DTransform=yg.apply3DTransform;li.apply2DTransform=yg.apply2DTransform;li.apply2DTransform2=yg.apply2DTransform2;li.convertCssMatrix=yg.convertCssMatrix;li.inverseTransformMatrix=yg.inverseTransformMatrix;var vm=aie();li.deg2rad=vm.deg2rad;li.rad2deg=vm.rad2deg;li.angleDelta=vm.angleDelta;li.angleDist=vm.angleDist;li.isFullCircle=vm.isFullCircle;li.isAngleInsideSector=vm.isAngleInsideSector;li.isPtInsideSector=vm.isPtInsideSector;li.pathArc=vm.pathArc;li.pathSector=vm.pathSector;li.pathAnnulus=vm.pathAnnulus;var d3=oie();li.isLeftAnchor=d3.isLeftAnchor;li.isCenterAnchor=d3.isCenterAnchor;li.isRightAnchor=d3.isRightAnchor;li.isTopAnchor=d3.isTopAnchor;li.isMiddleAnchor=d3.isMiddleAnchor;li.isBottomAnchor=d3.isBottomAnchor;var v3=uie();li.segmentsIntersect=v3.segmentsIntersect;li.segmentDistance=v3.segmentDistance;li.getTextLocation=v3.getTextLocation;li.clearLocationCache=v3.clearLocationCache;li.getVisibleSegment=v3.getVisibleSegment;li.findPointOnPath=v3.findPointOnPath;var D6=no();li.extendFlat=D6.extendFlat;li.extendDeep=D6.extendDeep;li.extendDeepAll=D6.extendDeepAll;li.extendDeepNoArrays=D6.extendDeepNoArrays;var jq=H1();li.log=jq.log;li.warn=jq.warn;li.error=jq.error;var Irt=n3();li.counterRegex=Irt.counter;var Wq=L6();li.throttle=Wq.throttle;li.throttleDone=Wq.done;li.clearThrottle=Wq.clear;var _g=DS();li.getGraphDiv=_g.getGraphDiv;li.isPlotDiv=_g.isPlotDiv;li.removeElement=_g.removeElement;li.addStyleRule=_g.addStyleRule;li.addRelatedStyleRule=_g.addRelatedStyleRule;li.deleteRelatedStyleRule=_g.deleteRelatedStyleRule;li.setStyleOnHover=_g.setStyleOnHover;li.getFullTransformMatrix=_g.getFullTransformMatrix;li.getElementTransformMatrix=_g.getElementTransformMatrix;li.getElementAndAncestors=_g.getElementAndAncestors;li.equalDomRects=_g.equalDomRects;li.clearResponsive=hie();li.preserveDrawingBuffer=pie();li.makeTraceGroups=mie();li._=_ie();li.notifier=Aq();li.filterUnique=Gq();li.filterVisible=wie();li.pushUnique=Eq();li.increment=Aie();li.cleanNumber=Mie();li.ensureNumber=function(t){return Iie(t)?(t=Number(t),t>Die||t=t?!1:Iie(e)&&e>=0&&e%1===0};li.noop=p6();li.identity=OS();li.repeat=function(e,t){for(var r=new Array(t),n=0;nr?Math.max(r,Math.min(t,e)):Math.max(t,Math.min(r,e))};li.bBoxIntersect=function(e,t,r){return r=r||0,e.left<=t.right+r&&t.left<=e.right+r&&e.top<=t.bottom+r&&t.top<=e.bottom+r};li.simpleMap=function(e,t,r,n,i){for(var a=e.length,o=new Array(a),s=0;s=Math.pow(2,r)?i>10?(li.warn("randstr failed uniqueness"),o):e(t,r,n,(i||0)+1):o};li.OptionControl=function(e,t){e||(e={}),t||(t="opt");var r={};return r.optionList=[],r._newoption=function(n){n[t]=e,r[n.name]=n,r.optionList.push(n)},r["_"+t]=e,r};li.smooth=function(e,t){if(t=Math.round(t)||0,t<2)return e;var r=e.length,n=2*r,i=2*t-1,a=new Array(i),o=new Array(r),s,l,u,c;for(s=0;s=n&&(u-=n*Math.floor(u/n)),u<0?u=-1-u:u>=r&&(u=n-1-u),c+=e[u]*a[l];o[s]=c}return o};li.syncOrAsync=function(e,t,r){var n,i;function a(){return li.syncOrAsync(e,t,r)}for(;e.length;)if(i=e.splice(0,1)[0],n=i(t),n&&n.then)return n.then(a);return r&&r(t)};li.stripTrailingSlash=function(e){return e.substr(-1)==="/"?e.substr(0,e.length-1):e};li.noneOrAll=function(e,t,r){if(e){var n=!1,i=!0,a,o;for(a=0;a0?i:0})};li.fillArray=function(e,t,r,n){if(n=n||li.identity,li.isArrayOrTypedArray(e))for(var i=0;i1?i+o[1]:"";if(a&&(o.length>1||s.length>4||r))for(;n.test(s);)s=s.replace(n,"$1"+a+"$2");return s+l};li.TEMPLATE_STRING_REGEX=/%{([^\s%{}:]*)([:|\|][^}]*)?}/g;var Oie=/^\w*$/;li.templateString=function(e,t){var r={};return e.replace(li.TEMPLATE_STRING_REGEX,function(n,i){var a;return Oie.test(i)?a=t[i]:(r[i]=r[i]||li.nestedProperty(t,i).get,a=r[i]()),li.isValidTextValue(a)?a:""})};var Ort={max:10,count:0,name:"hovertemplate"};li.hovertemplateString=function(){return Zq.apply(Ort,arguments)};var Brt={max:10,count:0,name:"texttemplate"};li.texttemplateString=function(){return Zq.apply(Brt,arguments)};var Nrt=/^(\S+)([\*\/])(-?\d+(\.\d+)?)$/;function Urt(e){var t=e.match(Nrt);return t?{key:t[1],op:t[2],number:Number(t[3])}:{key:e,op:null,number:null}}var Vrt={max:10,count:0,name:"texttemplate",parseMultDiv:!0};li.texttemplateStringForShapes=function(){return Zq.apply(Vrt,arguments)};var Cie=/^[:|\|]/;function Zq(e,t,r){var n=this,i=arguments;t||(t={});var a={};return e.replace(li.TEMPLATE_STRING_REGEX,function(o,s,l){var u=s==="xother"||s==="yother",c=s==="_xother"||s==="_yother",f=s==="_xother_"||s==="_yother_",h=s==="xother_"||s==="yother_",d=u||c||h||f,v=s;(c||f)&&(v=v.substring(1)),(h||f)&&(v=v.substring(0,v.length-1));var x=null,b=null;if(n.parseMultDiv){var g=Urt(v);v=g.key,x=g.op,b=g.number}var E;if(d){if(E=t[v],E===void 0)return""}else{var k,A;for(A=3;A=R6&&o<=Lie,u=s>=R6&&s<=Lie;if(l&&(n=10*n+o-R6),u&&(i=10*i+s-R6),!l||!u){if(n!==i)return n-i;if(o!==s)return o-s}}return i-n};var h3=2e9;li.seedPseudoRandom=function(){h3=2e9};li.pseudoRandom=function(){var e=h3;return h3=(69069*h3+1)%4294967296,Math.abs(h3-e)<429496729?li.pseudoRandom():h3/4294967296};li.fillText=function(e,t,r){var n=Array.isArray(r)?function(o){r.push(o)}:function(o){r.text=o},i=li.extractOption(e,t,"htx","hovertext");if(li.isValidTextValue(i))return n(i);var a=li.extractOption(e,t,"tx","text");if(li.isValidTextValue(a))return n(a)};li.isValidTextValue=function(e){return e||e===0};li.formatPercent=function(e,t){t=t||0;for(var r=(Math.round(100*e*Math.pow(10,t))*Math.pow(.1,t)).toFixed(t)+"%",n=0;n1&&(u=1):u=0,li.strTranslate(i-u*(r+o),a-u*(n+s))+li.strScale(u)+(l?"rotate("+l+(t?"":" "+r+" "+n)+")":"")};li.setTransormAndDisplay=function(e,t){e.attr("transform",li.getTextTransform(t)),e.style("display",t.scale?null:"none")};li.ensureUniformFontSize=function(e,t){var r=li.extendFlat({},t);return r.size=Math.max(t.size,e._fullLayout.uniformtext.minsize||0),r};li.join2=function(e,t,r){var n=e.length;return n>1?e.slice(0,-1).join(t)+r+e[n-1]:e.join(t)};li.bigFont=function(e){return Math.round(1.2*e)};var Pie=li.getFirefoxVersion(),Hrt=Pie!==null&&Pie<86;li.getPositionFromD3Event=function(){return Hrt?[VS.event.layerX,VS.event.layerY]:[VS.event.offsetX,VS.event.offsetY]}});var Vie=ye(()=>{"use strict";var Grt=Mr(),Nie={"X,X div":'direction:ltr;font-family:"Open Sans",verdana,arial,sans-serif;margin:0;padding:0;',"X input,X button":'font-family:"Open Sans",verdana,arial,sans-serif;',"X input:focus,X button:focus":"outline:none;","X a":"text-decoration:none;","X a:hover":"text-decoration:none;","X .crisp":"shape-rendering:crispEdges;","X .user-select-none":"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;","X svg a":"fill:#447adb;","X svg a:hover":"fill:#3c6dc5;","X .main-svg":"position:absolute;top:0;left:0;pointer-events:none;","X .main-svg .draglayer":"pointer-events:all;","X .cursor-default":"cursor:default;","X .cursor-pointer":"cursor:pointer;","X .cursor-crosshair":"cursor:crosshair;","X .cursor-move":"cursor:move;","X .cursor-col-resize":"cursor:col-resize;","X .cursor-row-resize":"cursor:row-resize;","X .cursor-ns-resize":"cursor:ns-resize;","X .cursor-ew-resize":"cursor:ew-resize;","X .cursor-sw-resize":"cursor:sw-resize;","X .cursor-s-resize":"cursor:s-resize;","X .cursor-se-resize":"cursor:se-resize;","X .cursor-w-resize":"cursor:w-resize;","X .cursor-e-resize":"cursor:e-resize;","X .cursor-nw-resize":"cursor:nw-resize;","X .cursor-n-resize":"cursor:n-resize;","X .cursor-ne-resize":"cursor:ne-resize;","X .cursor-grab":"cursor:-webkit-grab;cursor:grab;","X .modebar":"position:absolute;top:2px;right:2px;","X .ease-bg":"-webkit-transition:background-color .3s ease 0s;-moz-transition:background-color .3s ease 0s;-ms-transition:background-color .3s ease 0s;-o-transition:background-color .3s ease 0s;transition:background-color .3s ease 0s;","X .modebar--hover>:not(.watermark)":"opacity:0;-webkit-transition:opacity .3s ease 0s;-moz-transition:opacity .3s ease 0s;-ms-transition:opacity .3s ease 0s;-o-transition:opacity .3s ease 0s;transition:opacity .3s ease 0s;","X:hover .modebar--hover .modebar-group":"opacity:1;","X .modebar-group":"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;","X .modebar-btn":"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;","X .modebar-btn svg":"position:relative;top:2px;","X .modebar.vertical":"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;","X .modebar.vertical svg":"top:-1px;","X .modebar.vertical .modebar-group":"display:block;float:none;padding-left:0px;padding-bottom:8px;","X .modebar.vertical .modebar-group .modebar-btn":"display:block;text-align:center;","X [data-title]:before,X [data-title]:after":"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;","X [data-title]:hover:before,X [data-title]:hover:after":"display:block;opacity:1;","X [data-title]:before":'content:"";position:absolute;background:rgba(0,0,0,0);border:6px solid rgba(0,0,0,0);z-index:1002;margin-top:-12px;border-bottom-color:#69738a;margin-right:-6px;',"X [data-title]:after":"content:attr(data-title);background:#69738a;color:#fff;padding:8px 10px;font-size:12px;line-height:12px;white-space:nowrap;margin-right:-18px;border-radius:2px;","X .vertical [data-title]:before,X .vertical [data-title]:after":"top:0%;right:200%;","X .vertical [data-title]:before":"border:6px solid rgba(0,0,0,0);border-left-color:#69738a;margin-top:8px;margin-right:-30px;",Y:'font-family:"Open Sans",verdana,arial,sans-serif;position:fixed;top:50px;right:20px;z-index:10000;font-size:10pt;max-width:180px;',"Y p":"margin:0;","Y .notifier-note":"min-width:180px;max-width:250px;border:1px solid #fff;z-index:3000;margin:0;background-color:#8c97af;background-color:rgba(140,151,175,.9);color:#fff;padding:10px;overflow-wrap:break-word;word-wrap:break-word;-ms-hyphens:auto;-webkit-hyphens:auto;hyphens:auto;","Y .notifier-close":"color:#fff;opacity:.8;float:right;padding:0 5px;background:none;border:none;font-size:20px;font-weight:bold;line-height:20px;","Y .notifier-close:hover":"color:#444;text-decoration:none;cursor:pointer;"};for(Xq in Nie)Uie=Xq.replace(/^,/," ,").replace(/X/g,".js-plotly-plot .plotly").replace(/Y/g,".plotly-notifier"),Grt.addStyleRule(Uie,Nie[Xq]);var Uie,Xq});var Yq=ye((_tr,Hie)=>{Hie.exports=!0});var Jq=ye((xtr,Gie)=>{"use strict";var jrt=Yq(),Kq;typeof window.matchMedia=="function"?Kq=!window.matchMedia("(hover: none)").matches:Kq=jrt;Gie.exports=Kq});var vb=ye((btr,$q)=>{"use strict";var p3=typeof Reflect=="object"?Reflect:null,jie=p3&&typeof p3.apply=="function"?p3.apply:function(t,r,n){return Function.prototype.apply.call(t,r,n)},z6;p3&&typeof p3.ownKeys=="function"?z6=p3.ownKeys:Object.getOwnPropertySymbols?z6=function(t){return Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t))}:z6=function(t){return Object.getOwnPropertyNames(t)};function Wrt(e){console&&console.warn&&console.warn(e)}var Zie=Number.isNaN||function(t){return t!==t};function Tc(){Tc.init.call(this)}$q.exports=Tc;$q.exports.once=Krt;Tc.EventEmitter=Tc;Tc.prototype._events=void 0;Tc.prototype._eventsCount=0;Tc.prototype._maxListeners=void 0;var Wie=10;function F6(e){if(typeof e!="function")throw new TypeError('The "listener" argument must be of type Function. Received type '+typeof e)}Object.defineProperty(Tc,"defaultMaxListeners",{enumerable:!0,get:function(){return Wie},set:function(e){if(typeof e!="number"||e<0||Zie(e))throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received '+e+".");Wie=e}});Tc.init=function(){(this._events===void 0||this._events===Object.getPrototypeOf(this)._events)&&(this._events=Object.create(null),this._eventsCount=0),this._maxListeners=this._maxListeners||void 0};Tc.prototype.setMaxListeners=function(t){if(typeof t!="number"||t<0||Zie(t))throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received '+t+".");return this._maxListeners=t,this};function Xie(e){return e._maxListeners===void 0?Tc.defaultMaxListeners:e._maxListeners}Tc.prototype.getMaxListeners=function(){return Xie(this)};Tc.prototype.emit=function(t){for(var r=[],n=1;n0&&(o=r[0]),o instanceof Error)throw o;var s=new Error("Unhandled error."+(o?" ("+o.message+")":""));throw s.context=o,s}var l=a[t];if(l===void 0)return!1;if(typeof l=="function")jie(l,this,r);else for(var u=l.length,c=Qie(l,u),n=0;n0&&o.length>i&&!o.warned){o.warned=!0;var s=new Error("Possible EventEmitter memory leak detected. "+o.length+" "+String(t)+" listeners added. Use emitter.setMaxListeners() to increase limit");s.name="MaxListenersExceededWarning",s.emitter=e,s.type=t,s.count=o.length,Wrt(s)}return e}Tc.prototype.addListener=function(t,r){return Yie(this,t,r,!1)};Tc.prototype.on=Tc.prototype.addListener;Tc.prototype.prependListener=function(t,r){return Yie(this,t,r,!0)};function Zrt(){if(!this.fired)return this.target.removeListener(this.type,this.wrapFn),this.fired=!0,arguments.length===0?this.listener.call(this.target):this.listener.apply(this.target,arguments)}function Kie(e,t,r){var n={fired:!1,wrapFn:void 0,target:e,type:t,listener:r},i=Zrt.bind(n);return i.listener=r,n.wrapFn=i,i}Tc.prototype.once=function(t,r){return F6(r),this.on(t,Kie(this,t,r)),this};Tc.prototype.prependOnceListener=function(t,r){return F6(r),this.prependListener(t,Kie(this,t,r)),this};Tc.prototype.removeListener=function(t,r){var n,i,a,o,s;if(F6(r),i=this._events,i===void 0)return this;if(n=i[t],n===void 0)return this;if(n===r||n.listener===r)--this._eventsCount===0?this._events=Object.create(null):(delete i[t],i.removeListener&&this.emit("removeListener",t,n.listener||r));else if(typeof n!="function"){for(a=-1,o=n.length-1;o>=0;o--)if(n[o]===r||n[o].listener===r){s=n[o].listener,a=o;break}if(a<0)return this;a===0?n.shift():Xrt(n,a),n.length===1&&(i[t]=n[0]),i.removeListener!==void 0&&this.emit("removeListener",t,s||r)}return this};Tc.prototype.off=Tc.prototype.removeListener;Tc.prototype.removeAllListeners=function(t){var r,n,i;if(n=this._events,n===void 0)return this;if(n.removeListener===void 0)return arguments.length===0?(this._events=Object.create(null),this._eventsCount=0):n[t]!==void 0&&(--this._eventsCount===0?this._events=Object.create(null):delete n[t]),this;if(arguments.length===0){var a=Object.keys(n),o;for(i=0;i=0;i--)this.removeListener(t,r[i]);return this};function Jie(e,t,r){var n=e._events;if(n===void 0)return[];var i=n[t];return i===void 0?[]:typeof i=="function"?r?[i.listener||i]:[i]:r?Yrt(i):Qie(i,i.length)}Tc.prototype.listeners=function(t){return Jie(this,t,!0)};Tc.prototype.rawListeners=function(t){return Jie(this,t,!1)};Tc.listenerCount=function(e,t){return typeof e.listenerCount=="function"?e.listenerCount(t):$ie.call(e,t)};Tc.prototype.listenerCount=$ie;function $ie(e){var t=this._events;if(t!==void 0){var r=t[e];if(typeof r=="function")return 1;if(r!==void 0)return r.length}return 0}Tc.prototype.eventNames=function(){return this._eventsCount>0?z6(this._events):[]};function Qie(e,t){for(var r=new Array(t),n=0;n{"use strict";var Qq=vb().EventEmitter,$rt={init:function(e){if(e._ev instanceof Qq)return e;var t=new Qq,r=new Qq;return e._ev=t,e._internalEv=r,e.on=t.on.bind(t),e.once=t.once.bind(t),e.removeListener=t.removeListener.bind(t),e.removeAllListeners=t.removeAllListeners.bind(t),e._internalOn=r.on.bind(r),e._internalOnce=r.once.bind(r),e._removeInternalListener=r.removeListener.bind(r),e._removeAllInternalListeners=r.removeAllListeners.bind(r),e.emit=function(n,i){t.emit(n,i),r.emit(n,i)},e},triggerHandler:function(e,t,r){var n,i=e._ev;if(!i)return;var a=i._events[t];if(!a)return;function o(l){if(l.listener){if(i.removeListener(t,l.listener),!l.fired)return l.fired=!0,l.listener.apply(i,[r])}else return l.apply(i,[r])}a=Array.isArray(a)?a:[a];var s;for(s=0;s{"use strict";var rne=Mr(),Qrt=ub().dfltConfig;function eit(e,t){for(var r=[],n,i=0;iQrt.queueLength&&(e.undoQueue.queue.shift(),e.undoQueue.index--)};wy.startSequence=function(e){e.undoQueue=e.undoQueue||{index:0,queue:[],sequence:!1},e.undoQueue.sequence=!0,e.undoQueue.beginSequence=!0};wy.stopSequence=function(e){e.undoQueue=e.undoQueue||{index:0,queue:[],sequence:!1},e.undoQueue.sequence=!1,e.undoQueue.beginSequence=!1};wy.undo=function(t){var r,n;if(!(t.undoQueue===void 0||isNaN(t.undoQueue.index)||t.undoQueue.index<=0)){for(t.undoQueue.index--,r=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,n=0;n=t.undoQueue.queue.length)){for(r=t.undoQueue.queue[t.undoQueue.index],t.undoQueue.inSequence=!0,n=0;n{"use strict";ane.exports={_isLinkedToArray:"frames_entry",group:{valType:"string"},name:{valType:"string"},traces:{valType:"any"},baseframe:{valType:"string"},data:{valType:"any"},layout:{valType:"any"}}});var _3=ye(Bh=>{"use strict";var x0=ba(),HS=Mr(),O6=vl(),tO=s3(),tit=eO(),rit=zS(),iit=ub().configAttributes,one=Bu(),xg=HS.extendDeepAll,m3=HS.isPlainObject,nit=HS.isArrayOrTypedArray,B6=HS.nestedProperty,ait=HS.valObjectMeta,rO="_isSubplotObj",N6="_isLinkedToArray",oit="_arrayAttrRegexps",lne="_deprecated",iO=[rO,N6,oit,lne];Bh.IS_SUBPLOT_OBJ=rO;Bh.IS_LINKED_TO_ARRAY=N6;Bh.DEPRECATED=lne;Bh.UNDERSCORE_ATTRS=iO;Bh.get=function(){var e={};return x0.allTypes.forEach(function(t){e[t]=lit(t)}),{defs:{valObjects:ait,metaKeys:iO.concat(["description","role","editType","impliedEdits"]),editType:{traces:one.traces,layout:one.layout},impliedEdits:{}},traces:e,layout:uit(),frames:cit(),animation:y3(rit),config:y3(iit)}};Bh.crawl=function(e,t,r,n){var i=r||0;n=n||"",Object.keys(e).forEach(function(a){var o=e[a];if(iO.indexOf(a)===-1){var s=(n?n+".":"")+a;t(o,a,e,i,s),!Bh.isValObject(o)&&m3(o)&&a!=="impliedEdits"&&Bh.crawl(o,t,i+1,s)}})};Bh.isValObject=function(e){return e&&e.valType!==void 0};Bh.findArrayAttributes=function(e){var t=[],r=[],n=[],i,a;function o(l,u,c,f){r=r.slice(0,f).concat([u]),n=n.slice(0,f).concat([l&&l._isLinkedToArray]);var h=l&&(l.valType==="data_array"||l.arrayOk===!0)&&!(r[f-1]==="colorbar"&&(u==="ticktext"||u==="tickvals"));h&&s(i,0,"")}function s(l,u,c){var f=l[r[u]],h=c+r[u];if(u===r.length-1)nit(f)&&t.push(a+h);else if(n[u]){if(Array.isArray(f))for(var d=0;d=a.length)return!1;if(e.dimensions===2){if(r++,t.length===r)return e;var o=t[r];if(!q6(o))return!1;e=a[i][o]}else e=a[i]}else e=a}}return e}function q6(e){return e===Math.round(e)&&e>=0}function lit(e){var t,r;t=x0.modules[e]._module,r=t.basePlotModule;var n={};n.type=null;var i=xg({},O6),a=xg({},t.attributes);Bh.crawl(a,function(l,u,c,f,h){B6(i,h).set(void 0),l===void 0&&B6(a,h).set(void 0)}),xg(n,i),x0.traceIs(e,"noOpacity")&&delete n.opacity,x0.traceIs(e,"showLegend")||(delete n.showlegend,delete n.legendgroup),x0.traceIs(e,"noHover")&&(delete n.hoverinfo,delete n.hoverlabel),t.selectPoints||delete n.selectedpoints,xg(n,a),r.attributes&&xg(n,r.attributes),n.type=e;var o={meta:t.meta||{},categories:t.categories||{},animatable:!!t.animatable,type:e,attributes:y3(n)};if(t.layoutAttributes){var s={};xg(s,t.layoutAttributes),o.layoutAttributes=y3(s)}return t.animatable||Bh.crawl(o,function(l){Bh.isValObject(l)&&"anim"in l&&delete l.anim}),o}function uit(){var e={},t,r;xg(e,tO);for(t in x0.subplotsRegistry)if(r=x0.subplotsRegistry[t],!!r.layoutAttributes)if(Array.isArray(r.attr))for(var n=0;n{"use strict";var x3=Mr(),pit=vl(),$1="templateitemname",nO={name:{valType:"string",editType:"none"}};nO[$1]={valType:"string",editType:"calc"};pb.templatedArray=function(e,t){return t._isLinkedToArray=e,t.name=nO.name,t[$1]=nO[$1],t};pb.traceTemplater=function(e){var t={},r,n;for(r in e)n=e[r],Array.isArray(n)&&n.length&&(t[r]=0);function i(a){r=x3.coerce(a,{},pit,"type");var o={type:r,_template:null};if(r in t){n=e[r];var s=t[r]%n.length;t[r]++,o._template=n[s]}return o}return{newTrace:i}};pb.newContainer=function(e,t,r){var n=e._template,i=n&&(n[t]||r&&n[r]);x3.isPlainObject(i)||(i=null);var a=e[t]={_template:i};return a};pb.arrayTemplater=function(e,t,r){var n=e._template,i=n&&n[fne(t)],a=n&&n[t];(!Array.isArray(a)||!a.length)&&(a=[]);var o={};function s(u){var c={name:u.name,_input:u},f=c[$1]=u[$1];if(!cne(f))return c._template=i,c;for(var h=0;h=n&&(r._input||{})._templateitemname;a&&(i=n);var o=t+"["+i+"]",s;function l(){s={},a&&(s[o]={},s[o][$1]=a)}l();function u(d,v){s[d]=v}function c(d,v){a?x3.nestedProperty(s[o],d).set(v):s[o+"."+d]=v}function f(){var d=s;return l(),d}function h(d,v){d&&c(d,v);var x=f();for(var b in x)x3.nestedProperty(e,b).set(x[b])}return{modifyBase:u,modifyItem:c,getUpdateObj:f,applyUpdate:h}}});var ad=ye((Etr,hne)=>{"use strict";var GS=n3().counter;hne.exports={idRegex:{x:GS("x","( domain)?"),y:GS("y","( domain)?")},attrRegex:GS("[xy]axis"),xAxisMatch:GS("xaxis"),yAxisMatch:GS("yaxis"),AX_ID_PATTERN:/^[xyz][0-9]*( domain)?$/,AX_NAME_PATTERN:/^[xyz]axis[0-9]*$/,SUBPLOT_PATTERN:/^x([0-9]*)y([0-9]*)$/,HOUR_PATTERN:"hour",WEEKDAY_PATTERN:"day of week",MINDRAG:8,MINZOOM:20,DRAGGERSIZE:20,REDRAWDELAY:50,DFLTRANGEX:[-1,6],DFLTRANGEY:[-1,4],traceLayerClasses:["imagelayer","heatmaplayer","contourcarpetlayer","contourlayer","funnellayer","waterfalllayer","barlayer","carpetlayer","violinlayer","boxlayer","ohlclayer","scattercarpetlayer","scatterlayer"],clipOnAxisFalseQuery:[".scatterlayer",".barlayer",".funnellayer",".waterfalllayer"],layerValue2layerClass:{"above traces":"above","below traces":"below"},zindexSeparator:"z"}});var af=ye(Tp=>{"use strict";var git=ba(),aO=ad();Tp.id2name=function(t){if(!(typeof t!="string"||!t.match(aO.AX_ID_PATTERN))){var r=t.split(" ")[0].substr(1);return r==="1"&&(r=""),t.charAt(0)+"axis"+r}};Tp.name2id=function(t){if(t.match(aO.AX_NAME_PATTERN)){var r=t.substr(5);return r==="1"&&(r=""),t.charAt(0)+r}};Tp.cleanId=function(t,r,n){var i=/( domain)$/.test(t);if(!(typeof t!="string"||!t.match(aO.AX_ID_PATTERN))&&!(r&&t.charAt(0)!==r)&&!(i&&!n)){var a=t.split(" ")[0].substr(1).replace(/^0+/,"");return a==="1"&&(a=""),t.charAt(0)+a+(i&&n?" domain":"")}};Tp.list=function(e,t,r){var n=e._fullLayout;if(!n)return[];var i=Tp.listIds(e,t),a=new Array(i.length),o;for(o=0;on?1:-1:+(e.substr(1)||1)-+(t.substr(1)||1)};Tp.ref2id=function(e){return/^[xyz]/.test(e)?e.split(" ")[0]:!1};function dne(e,t){if(t&&t.length){for(var r=0;r{"use strict";function mit(e){var t=e._fullLayout._zoomlayer;t&&t.selectAll(".outline-controllers").remove()}function yit(e){var t=e._fullLayout._zoomlayer;t&&t.selectAll(".select-outline").remove(),e._fullLayout._outlining=!1}vne.exports={clearOutlineControllers:mit,clearOutline:yit}});var U6=ye((Ltr,pne)=>{"use strict";pne.exports={scattermode:{valType:"enumerated",values:["group","overlay"],dflt:"overlay",editType:"calc"},scattergap:{valType:"number",min:0,max:1,editType:"calc"}}});var kd=ye(H6=>{"use strict";var V6=ba(),Ptr=ad().SUBPLOT_PATTERN;H6.getSubplotCalcData=function(e,t,r){var n=V6.subplotsRegistry[t];if(!n)return[];for(var i=n.attr,a=[],o=0;o{"use strict";var _it=ba(),b3=Mr();gb.manageCommandObserver=function(e,t,r,n){var i={},a=!0;t&&t._commandObserver&&(i=t._commandObserver),i.cache||(i.cache={}),i.lookupTable={};var o=gb.hasSimpleAPICommandBindings(e,r,i.lookupTable);if(t&&t._commandObserver){if(o)return i;if(t._commandObserver.remove)return t._commandObserver.remove(),t._commandObserver=null,i}if(o){gne(e,o,i.cache),i.check=function(){if(a){var c=gne(e,o,i.cache);return c.changed&&n&&i.lookupTable[c.value]!==void 0&&(i.disable(),Promise.resolve(n({value:c.value,type:o.type,prop:o.prop,traces:o.traces,index:i.lookupTable[c.value]})).then(i.enable,i.enable)),c.changed}};for(var s=["plotly_relayout","plotly_redraw","plotly_restyle","plotly_update","plotly_animatingframe","plotly_afterplot"],l=0;l0?".":"")+i;b3.isPlainObject(a)?oO(a,t,o,n+1):t(o,i,a)}})}});var Xu=ye((Dtr,Rne)=>{"use strict";var Mne=xa(),bit=e3().timeFormatLocale,wit=dq().formatLocale,jS=uo(),Tit=vq(),bl=ba(),Ene=_3(),Ait=Vs(),Ca=Mr(),kne=va(),xne=es().BADNUM,Ap=af(),Sit=Q1().clearOutline,Mit=U6(),sO=zS(),Eit=eO(),kit=kd().getModuleCalcData,bne=Ca.relinkPrivateKeys,mb=Ca._,ha=Rne.exports={};Ca.extendFlat(ha,bl);ha.attributes=vl();ha.attributes.type.values=ha.allTypes;ha.fontAttrs=Su();ha.layoutAttributes=s3();var j6=_ne();ha.executeAPICommand=j6.executeAPICommand;ha.computeAPICommandBindings=j6.computeAPICommandBindings;ha.manageCommandObserver=j6.manageCommandObserver;ha.hasSimpleAPICommandBindings=j6.hasSimpleAPICommandBindings;ha.redrawText=function(e){return e=Ca.getGraphDiv(e),new Promise(function(t){setTimeout(function(){e._fullLayout&&(bl.getComponentMethod("annotations","draw")(e),bl.getComponentMethod("legend","draw")(e),bl.getComponentMethod("colorbar","draw")(e),t(ha.previousPromises(e)))},300)})};ha.resize=function(e){e=Ca.getGraphDiv(e);var t,r=new Promise(function(n,i){(!e||Ca.isHidden(e))&&i(new Error("Resize must be passed a displayed plot div element.")),e._redrawTimer&&clearTimeout(e._redrawTimer),e._resolveResize&&(t=e._resolveResize),e._resolveResize=n,e._redrawTimer=setTimeout(function(){if(!e.layout||e.layout.width&&e.layout.height||Ca.isHidden(e)){n(e);return}delete e.layout.width,delete e.layout.height;var a=e.changed;e.autoplay=!0,bl.call("relayout",e,{autosize:!0}).then(function(){e.changed=a,e._resolveResize===n&&(delete e._resolveResize,n(e))})},100)});return t&&t(r),r};ha.previousPromises=function(e){if((e._promises||[]).length)return Promise.all(e._promises).then(function(){e._promises=[]})};ha.addLinks=function(e){if(!(!e._context.showLink&&!e._context.showSources)){var t=e._fullLayout,r=Ca.ensureSingle(t._paper,"text","js-plot-link-container",function(l){l.style({"font-family":'"Open Sans", Arial, sans-serif',"font-size":"12px",fill:kne.defaultLine,"pointer-events":"all"}).each(function(){var u=Mne.select(this);u.append("tspan").classed("js-link-to-tool",!0),u.append("tspan").classed("js-link-spacer",!0),u.append("tspan").classed("js-sourcelinks",!0)})}),n=r.node(),i={y:t._paper.attr("height")-9};document.body.contains(n)&&n.getComputedTextLength()>=t.width-20?(i["text-anchor"]="start",i.x=5):(i["text-anchor"]="end",i.x=t._paper.attr("width")-7),r.attr(i);var a=r.select(".js-link-to-tool"),o=r.select(".js-link-spacer"),s=r.select(".js-sourcelinks");e._context.showSources&&e._context.showSources(e),e._context.showLink&&Cit(e,a),o.text(a.text()&&s.text()?" - ":"")}};function Cit(e,t){t.text("");var r=t.append("a").attr({"xlink:xlink:href":"#",class:"link--impt link--embedview","font-weight":"bold"}).text(e._context.linkText+" \xBB");if(e._context.sendData)r.on("click",function(){ha.sendDataToCloud(e)});else{var n=window.location.pathname.split("/"),i=window.location.search;r.attr({"xlink:xlink:show":"new","xlink:xlink:href":"/"+n[2].split(".")[0]+"/"+n[1]+i})}}ha.sendDataToCloud=function(e){var t=(window.PLOTLYENV||{}).BASE_URL||e._context.plotlyServerURL;if(t){e.emit("plotly_beforeexport");var r=Mne.select(e).append("div").attr("id","hiddenform").style("display","none"),n=r.append("form").attr({action:t+"/external",method:"post",target:"_blank"}),i=n.append("input").attr({type:"text",name:"data"});return i.node().value=ha.graphJson(e,!1,"keepdata"),n.node().submit(),r.remove(),e.emit("plotly_afterexport"),!1}};var Lit=["days","shortDays","months","shortMonths","periods","dateTime","date","time","decimal","thousands","grouping","currency"],Pit=["year","month","dayMonth","dayMonthYear"];ha.supplyDefaults=function(e,t){var r=t&&t.skipUpdateCalc,n=e._fullLayout||{};if(n._skipDefaults){delete n._skipDefaults;return}var i=e._fullLayout={},a=e.layout||{},o=e._fullData||[],s=e._fullData=[],l=e.data||[],u=e.calcdata||[],c=e._context||{},f;e._transitionData||ha.createTransitionData(e),i._dfltTitle={plot:mb(e,"Click to enter Plot title"),subtitle:mb(e,"Click to enter Plot subtitle"),x:mb(e,"Click to enter X axis title"),y:mb(e,"Click to enter Y axis title"),colorbar:mb(e,"Click to enter Colorscale title"),annotation:mb(e,"new text")},i._traceWord=mb(e,"trace");var h=wne(e,Lit);if(i._mapboxAccessToken=c.mapboxAccessToken,n._initialAutoSizeIsDone){var d=n.width,v=n.height;ha.supplyLayoutGlobalDefaults(a,i,h),a.width||(i.width=d),a.height||(i.height=v),ha.sanitizeMargins(i)}else{ha.supplyLayoutGlobalDefaults(a,i,h);var x=!a.width||!a.height,b=i.autosize,g=c.autosizable,E=x&&(b||g);E?ha.plotAutoSize(e,a,i):x&&ha.sanitizeMargins(i),!b&&x&&(a.width=i.width,a.height=i.height)}i._d3locale=Dit(h,i.separators),i._extraFormat=wne(e,Pit),i._initialAutoSizeIsDone=!0,i._dataLength=l.length,i._modules=[],i._visibleModules=[],i._basePlotModules=[];var k=i._subplots=Rit(),A=i._splomAxes={x:{},y:{}},L=i._splomSubplots={};i._splomGridDflt={},i._scatterStackOpts={},i._firstScatter={},i._alignmentOpts={},i._colorAxes={},i._requestRangeslider={},i._traceUids=Iit(o,l),ha.supplyDataDefaults(l,s,a,i);var _=Object.keys(A.x),C=Object.keys(A.y);if(_.length>1&&C.length>1){for(bl.getComponentMethod("grid","sizeDefaults")(a,i),f=0;f<_.length;f++)Ca.pushUnique(k.xaxis,_[f]);for(f=0;f15&&C.length>15&&i.shapes.length===0&&i.images.length===0,ha.linkSubplots(s,i,o,n),ha.cleanPlot(s,i,o,n);var F=!!(n._has&&n._has("cartesian")),q=!!(i._has&&i._has("cartesian")),V=F,H=q;V&&!H?n._bgLayer.remove():H&&!V&&(i._shouldCreateBgLayer=!0),n._zoomlayer&&!e._dragging&&Sit({_fullLayout:n}),zit(s,i),bne(i,n),bl.getComponentMethod("colorscale","crossTraceDefaults")(s,i),i._preGUI||(i._preGUI={}),i._tracePreGUI||(i._tracePreGUI={});var X=i._tracePreGUI,G={},N;for(N in X)G[N]="old";for(f=0;f0){var c=1-2*a;o=Math.round(c*o),s=Math.round(c*s)}}var f=ha.layoutAttributes.width.min,h=ha.layoutAttributes.height.min;o1,v=!r.height&&Math.abs(n.height-s)>1;(v||d)&&(d&&(n.width=o),v&&(n.height=s)),t._initialAutoSize||(t._initialAutoSize={width:o,height:s}),ha.sanitizeMargins(n)};ha.supplyLayoutModuleDefaults=function(e,t,r,n){var i=bl.componentsRegistry,a=t._basePlotModules,o,s,l,u=bl.subplotsRegistry.cartesian;for(o in i)l=i[o],l.includeBasePlot&&l.includeBasePlot(e,t);a.length||a.push(u),t._has("cartesian")&&(bl.getComponentMethod("grid","contentDefaults")(e,t),u.finalizeSubplots(e,t));for(var c in t._subplots)t._subplots[c].sort(Ca.subplotSort);for(s=0;s1&&(r.l/=b,r.r/=b)}if(h){var g=(r.t+r.b)/h;g>1&&(r.t/=g,r.b/=g)}var E=r.xl!==void 0?r.xl:r.x,k=r.xr!==void 0?r.xr:r.x,A=r.yt!==void 0?r.yt:r.y,L=r.yb!==void 0?r.yb:r.y;d[t]={l:{val:E,size:r.l+x},r:{val:k,size:r.r+x},b:{val:L,size:r.b+x},t:{val:A,size:r.t+x}},v[t]=1}if(!n._replotting)return ha.doAutoMargin(e)}};function qit(e){if("_redrawFromAutoMarginCount"in e._fullLayout)return!1;var t=Ap.list(e,"",!0);for(var r in t)if(t[r].autoshift||t[r].shift)return!0;return!1}ha.doAutoMargin=function(e){var t=e._fullLayout,r=t.width,n=t.height;t._size||(t._size={}),Cne(t);var i=t._size,a=t.margin,o={t:0,b:0,l:0,r:0},s=Ca.extendFlat({},i),l=a.l,u=a.r,c=a.t,f=a.b,h=t._pushmargin,d=t._pushmarginIds,v=t.minreducedwidth,x=t.minreducedheight;if(a.autoexpand!==!1){for(var b in h)d[b]||delete h[b];var g=e._fullLayout._reservedMargin;for(var E in g)for(var k in g[E]){var A=g[E][k];o[k]=Math.max(o[k],A)}h.base={l:{val:0,size:l},r:{val:1,size:u},t:{val:1,size:c},b:{val:0,size:f}};for(var L in o){var _=0;for(var C in h)C!=="base"&&jS(h[C][L].size)&&(_=h[C][L].size>_?h[C][L].size:_);var M=Math.max(0,a[L]-_);o[L]=Math.max(0,o[L]-M)}for(var p in h){var P=h[p].l||{},T=h[p].b||{},F=P.val,q=P.size,V=T.val,H=T.size,X=r-o.r-o.l,G=n-o.t-o.b;for(var N in h){if(jS(q)&&h[N].r){var W=h[N].r.val,re=h[N].r.size;if(W>F){var ae=(q*W+(re-X)*F)/(W-F),_e=(re*(1-F)+(q-X)*(1-W))/(W-F);ae+_e>l+u&&(l=ae,u=_e)}}if(jS(H)&&h[N].t){var Me=h[N].t.val,ke=h[N].t.size;if(Me>V){var ge=(H*Me+(ke-G)*V)/(Me-V),ie=(ke*(1-V)+(H-G)*(1-Me))/(Me-V);ge+ie>f+c&&(f=ge,c=ie)}}}}}var Te=Ca.constrain(r-a.l-a.r,Lne,v),Ee=Ca.constrain(n-a.t-a.b,Pne,x),Ae=Math.max(0,r-Te),ze=Math.max(0,n-Ee);if(Ae){var Ce=(l+u)/Ae;Ce>1&&(l/=Ce,u/=Ce)}if(ze){var me=(f+c)/ze;me>1&&(f/=me,c/=me)}if(i.l=Math.round(l)+o.l,i.r=Math.round(u)+o.r,i.t=Math.round(c)+o.t,i.b=Math.round(f)+o.b,i.p=Math.round(a.pad),i.w=Math.round(r)-i.l-i.r,i.h=Math.round(n)-i.t-i.b,!t._replotting&&(ha.didMarginChange(s,i)||qit(e))){"_redrawFromAutoMarginCount"in t?t._redrawFromAutoMarginCount++:t._redrawFromAutoMarginCount=1;var Re=3*(1+Object.keys(d).length);if(t._redrawFromAutoMarginCount1)return!0}return!1};ha.graphJson=function(e,t,r,n,i,a){(i&&t&&!e._fullData||i&&!t&&!e._fullLayout)&&ha.supplyDefaults(e);var o=i?e._fullData:e.data,s=i?e._fullLayout:e.layout,l=(e._transitionData||{})._frames;function u(h,d){if(typeof h=="function")return d?"_function_":null;if(Ca.isPlainObject(h)){var v={},x;return Object.keys(h).sort().forEach(function(k){if(["_","["].indexOf(k.charAt(0))===-1){if(typeof h[k]=="function"){d&&(v[k]="_function");return}if(r==="keepdata"){if(k.substr(k.length-3)==="src")return}else if(r==="keepstream"){if(x=h[k+"src"],typeof x=="string"&&x.indexOf(":")>0&&!Ca.isPlainObject(h.stream))return}else if(r!=="keepall"&&(x=h[k+"src"],typeof x=="string"&&x.indexOf(":")>0))return;v[k]=u(h[k],d)}}),v}var b=Array.isArray(h),g=Ca.isTypedArray(h);if((b||g)&&h.dtype&&h.shape){var E=h.bdata;return u({dtype:h.dtype,shape:h.shape,bdata:Ca.isArrayBuffer(E)?Tit.encode(E):E},d)}return b?h.map(function(k){return u(k,d)}):g?Ca.simpleMap(h,Ca.identity):Ca.isJSDate(h)?Ca.ms2DateTimeLocal(+h):h}var c={data:(o||[]).map(function(h){var d=u(h);return t&&delete d.fit,d})};if(!t&&(c.layout=u(s),i)){var f=s._size;c.layout.computed={margin:{b:f.b,l:f.l,r:f.r,t:f.t}}}return l&&(c.frames=u(l)),a&&(c.config=u(e._context,!0)),n==="object"?c:JSON.stringify(c)};ha.modifyFrames=function(e,t){var r,n,i,a=e._transitionData._frames,o=e._transitionData._frameHash;for(r=0;r0&&(e._transitioningWithDuration=!0),e._transitionData._interruptCallbacks.push(function(){n=!0}),r.redraw&&e._transitionData._interruptCallbacks.push(function(){return bl.call("redraw",e)}),e._transitionData._interruptCallbacks.push(function(){e.emit("plotly_transitioninterrupted",[])});var h=0,d=0;function v(){return h++,function(){d++,!n&&d===h&&s(f)}}r.runFn(v),setTimeout(v())})}function s(f){if(e._transitionData)return a(e._transitionData._interruptCallbacks),Promise.resolve().then(function(){if(r.redraw)return bl.call("redraw",e)}).then(function(){e._transitioning=!1,e._transitioningWithDuration=!1,e.emit("plotly_transitioned",[])}).then(f)}function l(){if(e._transitionData)return e._transitioning=!1,i(e._transitionData._interruptCallbacks)}var u=[ha.previousPromises,l,r.prepareFn,ha.rehover,ha.reselect,o],c=Ca.syncOrAsync(u,e);return(!c||!c.then)&&(c=Promise.resolve()),c.then(function(){return e})}ha.doCalcdata=function(e,t){var r=Ap.list(e),n=e._fullData,i=e._fullLayout,a,o,s,l,u=new Array(n.length),c=(e.calcdata||[]).slice();for(e.calcdata=u,i._numBoxes=0,i._numViolins=0,i._violinScaleGroupStats={},e._hmpixcount=0,e._hmlumcount=0,i._piecolormap={},i._sunburstcolormap={},i._treemapcolormap={},i._iciclecolormap={},i._funnelareacolormap={},s=0;s=0;l--)if(L[l].enabled){a._indexToPoints=L[l]._indexToPoints;break}o&&o.calc&&(A=o.calc(e,a))}(!Array.isArray(A)||!A[0])&&(A=[{x:xne,y:xne}]),A[0].t||(A[0].t={}),A[0].trace=a,u[E]=A}}for(Ane(r,n,i),s=0;s{"use strict";yb.xmlns="http://www.w3.org/2000/xmlns/";yb.svg="http://www.w3.org/2000/svg";yb.xlink="http://www.w3.org/1999/xlink";yb.svgAttrs={xmlns:yb.svg,"xmlns:xlink":yb.xlink}});var Nh=ye((Ftr,Dne)=>{"use strict";Dne.exports={FROM_BL:{left:0,center:.5,right:1,bottom:0,middle:.5,top:1},FROM_TL:{left:0,center:.5,right:1,bottom:1,middle:.5,top:0},FROM_BR:{left:1,center:.5,right:0,bottom:0,middle:.5,top:1},LINE_SPACING:1.3,CAP_SHIFT:.7,MID_SHIFT:.35,OPPOSITE_SIDE:{left:"right",right:"left",top:"bottom",bottom:"top"}}});var Ll=ye(b0=>{"use strict";var vh=xa(),Ty=Mr(),Uit=Ty.strTranslate,lO=Zp(),Vit=Nh().LINE_SPACING,Hit=/([^$]*)([$]+[^$]*[$]+)([^$]*)/;b0.convertToTspans=function(e,t,r){var n=e.text(),i=!e.attr("data-notex")&&t&&t._context.typesetMath&&typeof MathJax!="undefined"&&n.match(Hit),a=vh.select(e.node().parentNode);if(a.empty())return;var o=e.attr("class")?e.attr("class").split(" ")[0]:"text";o+="-math",a.selectAll("svg."+o).remove(),a.selectAll("g."+o+"-group").remove(),e.style("display",null).attr({"data-unformatted":n,"data-math":"N"});function s(){a.empty()||(o=e.attr("class")+"-math",a.select("svg."+o).remove()),e.text("").style("white-space","pre");var l=rnt(e.node(),n);l&&e.style("pointer-events","all"),b0.positionText(e),r&&r.call(e)}return i?(t&&t._promises||[]).push(new Promise(function(l){e.style("display","none");var u=parseInt(e.node().style.fontSize,10),c={fontSize:u};Zit(i[2],c,function(f,h,d){a.selectAll("svg."+o).remove(),a.selectAll("g."+o+"-group").remove();var v=f&&f.select("svg");if(!v||!v.node()){s(),l();return}var x=a.append("g").classed(o+"-group",!0).attr({"pointer-events":"none","data-unformatted":n,"data-math":"Y"});x.node().appendChild(v.node()),h&&h.node()&&v.node().insertBefore(h.node().cloneNode(!0),v.node().firstChild);var b=d.width,g=d.height;v.attr({class:o,height:g,preserveAspectRatio:"xMinYMin meet"}).style({overflow:"visible","pointer-events":"none"});var E=e.node().style.fill||"black",k=v.select("g");k.attr({fill:E,stroke:E});var A=k.node().getBoundingClientRect(),L=A.width,_=A.height;(L>b||_>g)&&(v.style("overflow","hidden"),A=v.node().getBoundingClientRect(),L=A.width,_=A.height);var C=+e.attr("x"),M=+e.attr("y"),p=u||e.node().getBoundingClientRect().height,P=-p/4;if(o[0]==="y")x.attr({transform:"rotate("+[-90,C,M]+")"+Uit(-L/2,P-_/2)});else if(o[0]==="l")M=P-_/2;else if(o[0]==="a"&&o.indexOf("atitle")!==0)C=0,M=P;else{var T=e.attr("text-anchor");C=C-L*(T==="middle"?.5:T==="end"?1:0),M=M+P-_/2}v.attr({x:C,y:M}),r&&r.call(e,x),l(x)})})):s(),e};var Git=/(<|<|<)/g,jit=/(>|>|>)/g;function Wit(e){return e.replace(Git,"\\lt ").replace(jit,"\\gt ")}var zne=[["$","$"],["\\(","\\)"]];function Zit(e,t,r){var n=parseInt((MathJax.version||"").split(".")[0]);if(n!==2&&n!==3){Ty.warn("No MathJax version:",MathJax.version);return}var i,a,o,s,l=function(){return a=Ty.extendDeepAll({},MathJax.Hub.config),o=MathJax.Hub.processSectionDelay,MathJax.Hub.processSectionDelay!==void 0&&(MathJax.Hub.processSectionDelay=0),MathJax.Hub.Config({messageStyle:"none",tex2jax:{inlineMath:zne},displayAlign:"left"})},u=function(){a=Ty.extendDeepAll({},MathJax.config),MathJax.config.tex||(MathJax.config.tex={}),MathJax.config.tex.inlineMath=zne},c=function(){if(i=MathJax.Hub.config.menuSettings.renderer,i!=="SVG")return MathJax.Hub.setRenderer("SVG")},f=function(){i=MathJax.config.startup.output,i!=="svg"&&(MathJax.config.startup.output="svg")},h=function(){var E="math-output-"+Ty.randstr({},64);s=vh.select("body").append("div").attr({id:E}).style({visibility:"hidden",position:"absolute","font-size":t.fontSize+"px"}).text(Wit(e));var k=s.node();return n===2?MathJax.Hub.Typeset(k):MathJax.typeset([k])},d=function(){var E=s.select(n===2?".MathJax_SVG":".MathJax"),k=!E.empty()&&s.select("svg").node();if(!k)Ty.log("There was an error in the tex syntax.",e),r();else{var A=k.getBoundingClientRect(),L;n===2?L=vh.select("body").select("#MathJax_SVG_glyphs"):L=E.select("defs"),r(E,L,A)}s.remove()},v=function(){if(i!=="SVG")return MathJax.Hub.setRenderer(i)},x=function(){i!=="svg"&&(MathJax.config.startup.output=i)},b=function(){return o!==void 0&&(MathJax.Hub.processSectionDelay=o),MathJax.Hub.Config(a)},g=function(){MathJax.config=a};n===2?MathJax.Hub.Queue(l,c,h,d,v,b):n===3&&(u(),f(),MathJax.startup.defaultReady(),MathJax.startup.promise.then(function(){h(),d(),x(),g()}))}var Bne={sup:"font-size:70%",sub:"font-size:70%",s:"text-decoration:line-through",u:"text-decoration:underline",b:"font-weight:bold",i:"font-style:italic",a:"cursor:pointer",span:"",em:"font-style:italic;font-weight:bold"},Xit={sub:"0.3em",sup:"-0.6em"},Yit={sub:"-0.21em",sup:"0.42em"},Fne="\u200B",qne=["http:","https:","mailto:","",void 0,":"],Nne=b0.NEWLINES=/(\r\n?|\n)/g,cO=/(<[^<>]*>)/,fO=/<(\/?)([^ >]*)(\s+(.*))?>/i,Kit=//i;b0.BR_TAG_ALL=//gi;var Une=/(^|[\s"'])style\s*=\s*("([^"]*);?"|'([^']*);?')/i,Vne=/(^|[\s"'])href\s*=\s*("([^"]*)"|'([^']*)')/i,Hne=/(^|[\s"'])target\s*=\s*("([^"\s]*)"|'([^'\s]*)')/i,Jit=/(^|[\s"'])popup\s*=\s*("([\w=,]*)"|'([\w=,]*)')/i;function _b(e,t){if(!e)return null;var r=e.match(t),n=r&&(r[3]||r[4]);return n&&W6(n)}var $it=/(^|;)\s*color:/;b0.plainText=function(e,t){t=t||{};for(var r=t.len!==void 0&&t.len!==-1?t.len:1/0,n=t.allowedTags!==void 0?t.allowedTags:["br"],i="...",a=i.length,o=e.split(cO),s=[],l="",u=0,c=0;ca?s.push(f.substr(0,x-a)+i):s.push(f.substr(0,x));break}l=""}}return s.join("")};var Qit={mu:"\u03BC",amp:"&",lt:"<",gt:">",nbsp:"\xA0",times:"\xD7",plusmn:"\xB1",deg:"\xB0"},ent=/&(#\d+|#x[\da-fA-F]+|[a-z]+);/g;function W6(e){return e.replace(ent,function(t,r){var n;return r.charAt(0)==="#"?n=tnt(r.charAt(1)==="x"?parseInt(r.substr(2),16):parseInt(r.substr(1),10)):n=Qit[r],n||t})}b0.convertEntities=W6;function tnt(e){if(!(e>1114111)){var t=String.fromCodePoint;if(t)return t(e);var r=String.fromCharCode;return e<=65535?r(e):r((e>>10)+55232,e%1024+56320)}}function rnt(e,t){t=t.replace(Nne," ");var r=!1,n=[],i,a=-1;function o(){a++;var _=document.createElementNS(lO.svg,"tspan");vh.select(_).attr({class:"line",dy:a*Vit+"em"}),e.appendChild(_),i=_;var C=n;if(n=[{node:_}],C.length>1)for(var M=1;M.",t);return}var C=n.pop();_!==C.type&&Ty.log("Start tag <"+C.type+"> doesnt match end tag <"+_+">. Pretending it did match.",t),i=n[n.length-1].node}var c=Kit.test(t);c?o():(i=e,n=[{node:e}]);for(var f=t.split(cO),h=0;h{"use strict";var int=xa(),X6=id(),ZS=uo(),Z6=Mr(),jne=va(),nnt=sb().isValid;function ant(e,t,r){var n=t?Z6.nestedProperty(e,t).get()||{}:e,i=n[r||"color"];i&&i._inputArray&&(i=i._inputArray);var a=!1;if(Z6.isArrayOrTypedArray(i)){for(var o=0;o=0;n--,i++){var a=e[n];r[i]=[1-a[0],a[1]]}return r}function Jne(e,t){t=t||{};for(var r=e.domain,n=e.range,i=n.length,a=new Array(i),o=0;o{"use strict";var Qne=Iq(),snt=Qne.FORMAT_LINK,lnt=Qne.DATE_FORMAT_LINK;function unt(e,t){return{valType:"string",dflt:"",editType:"none",description:(t?hO:eae)("hover text",e)+["By default the values are formatted using "+(t?"generic number format":"`"+e+"axis.hoverformat`")+"."].join(" ")}}function hO(e,t){return["Sets the "+e+" formatting rule"+(t?"for `"+t+"` ":""),"using d3 formatting mini-languages","which are very similar to those in Python. For numbers, see: "+snt+"."].join(" ")}function eae(e,t){return hO(e,t)+[" And for dates see: "+lnt+".","We add two items to d3's date formatter:","*%h* for half of the year as a decimal number as well as","*%{n}f* for fractional seconds","with n digits. For example, *2016-10-13 09:15:23.456* with tickformat","*%H~%M~%S.%2f* would display *09~15~23.46*"].join(" ")}tae.exports={axisHoverFormat:unt,descriptionOnlyNumbers:hO,descriptionWithDates:eae}});var Cd=ye((Ntr,yae)=>{"use strict";var rae=Su(),w3=dh(),mae=Ed().dash,vO=no().extendFlat,iae=Vs().templatedArray,nae=Oc().descriptionWithDates,cnt=es().ONEDAY,pm=ad(),fnt=pm.HOUR_PATTERN,hnt=pm.WEEKDAY_PATTERN,dO={valType:"enumerated",values:["auto","linear","array"],editType:"ticks",impliedEdits:{tick0:void 0,dtick:void 0}},dnt=vO({},dO,{values:dO.values.slice().concat(["sync"])});function aae(e){return{valType:"integer",min:0,dflt:e?5:0,editType:"ticks"}}var oae={valType:"any",editType:"ticks",impliedEdits:{tickmode:"linear"}},sae={valType:"any",editType:"ticks",impliedEdits:{tickmode:"linear"}},lae={valType:"data_array",editType:"ticks"},uae={valType:"enumerated",values:["outside","inside",""],editType:"ticks"};function cae(e){var t={valType:"number",min:0,editType:"ticks"};return e||(t.dflt=5),t}function fae(e){var t={valType:"number",min:0,editType:"ticks"};return e||(t.dflt=1),t}var hae={valType:"color",dflt:w3.defaultLine,editType:"ticks"},dae={valType:"color",dflt:w3.lightLine,editType:"ticks"};function vae(e){var t={valType:"number",min:0,editType:"ticks"};return e||(t.dflt=1),t}var pae=vO({},mae,{editType:"ticks"}),gae={valType:"boolean",editType:"ticks"};yae.exports={visible:{valType:"boolean",editType:"plot"},color:{valType:"color",dflt:w3.defaultLine,editType:"ticks"},title:{text:{valType:"string",editType:"ticks"},font:rae({editType:"ticks"}),standoff:{valType:"number",min:0,editType:"ticks"},editType:"ticks"},type:{valType:"enumerated",values:["-","linear","log","date","category","multicategory"],dflt:"-",editType:"calc",_noTemplating:!0},autotypenumbers:{valType:"enumerated",values:["convert types","strict"],dflt:"convert types",editType:"calc"},autorange:{valType:"enumerated",values:[!0,!1,"reversed","min reversed","max reversed","min","max"],dflt:!0,editType:"axrange",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},autorangeoptions:{minallowed:{valType:"any",editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},maxallowed:{valType:"any",editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},clipmin:{valType:"any",editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},clipmax:{valType:"any",editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},include:{valType:"any",arrayOk:!0,editType:"plot",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},editType:"plot"},rangemode:{valType:"enumerated",values:["normal","tozero","nonnegative"],dflt:"normal",editType:"plot"},range:{valType:"info_array",items:[{valType:"any",editType:"axrange",impliedEdits:{"^autorange":!1},anim:!0},{valType:"any",editType:"axrange",impliedEdits:{"^autorange":!1},anim:!0}],editType:"axrange",impliedEdits:{autorange:!1},anim:!0},minallowed:{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1}},maxallowed:{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1}},fixedrange:{valType:"boolean",dflt:!1,editType:"calc"},insiderange:{valType:"info_array",items:[{valType:"any",editType:"plot"},{valType:"any",editType:"plot"}],editType:"plot"},scaleanchor:{valType:"enumerated",values:[pm.idRegex.x.toString(),pm.idRegex.y.toString(),!1],editType:"plot"},scaleratio:{valType:"number",min:0,dflt:1,editType:"plot"},constrain:{valType:"enumerated",values:["range","domain"],editType:"plot"},constraintoward:{valType:"enumerated",values:["left","center","right","top","middle","bottom"],editType:"plot"},matches:{valType:"enumerated",values:[pm.idRegex.x.toString(),pm.idRegex.y.toString()],editType:"calc"},rangebreaks:iae("rangebreak",{enabled:{valType:"boolean",dflt:!0,editType:"calc"},bounds:{valType:"info_array",items:[{valType:"any",editType:"calc"},{valType:"any",editType:"calc"}],editType:"calc"},pattern:{valType:"enumerated",values:[hnt,fnt,""],editType:"calc"},values:{valType:"info_array",freeLength:!0,editType:"calc",items:{valType:"any",editType:"calc"}},dvalue:{valType:"number",editType:"calc",min:0,dflt:cnt},editType:"calc"}),tickmode:dnt,nticks:aae(),tick0:oae,dtick:sae,ticklabelstep:{valType:"integer",min:1,dflt:1,editType:"ticks"},tickvals:lae,ticktext:{valType:"data_array",editType:"ticks"},ticks:uae,tickson:{valType:"enumerated",values:["labels","boundaries"],dflt:"labels",editType:"ticks"},ticklabelmode:{valType:"enumerated",values:["instant","period"],dflt:"instant",editType:"ticks"},ticklabelposition:{valType:"enumerated",values:["outside","inside","outside top","inside top","outside left","inside left","outside right","inside right","outside bottom","inside bottom"],dflt:"outside",editType:"calc"},ticklabeloverflow:{valType:"enumerated",values:["allow","hide past div","hide past domain"],editType:"calc"},ticklabelshift:{valType:"integer",dflt:0,editType:"ticks"},ticklabelstandoff:{valType:"integer",dflt:0,editType:"ticks"},ticklabelindex:{valType:"integer",arrayOk:!0,editType:"calc"},mirror:{valType:"enumerated",values:[!0,"ticks",!1,"all","allticks"],dflt:!1,editType:"ticks+layoutstyle"},ticklen:cae(),tickwidth:fae(),tickcolor:hae,showticklabels:{valType:"boolean",dflt:!0,editType:"ticks"},labelalias:{valType:"any",dflt:!1,editType:"ticks"},automargin:{valType:"flaglist",flags:["height","width","left","right","top","bottom"],extras:[!0,!1],dflt:!1,editType:"ticks"},showspikes:{valType:"boolean",dflt:!1,editType:"modebar"},spikecolor:{valType:"color",dflt:null,editType:"none"},spikethickness:{valType:"number",dflt:3,editType:"none"},spikedash:vO({},mae,{dflt:"dash",editType:"none"}),spikemode:{valType:"flaglist",flags:["toaxis","across","marker"],dflt:"toaxis",editType:"none"},spikesnap:{valType:"enumerated",values:["data","cursor","hovered data"],dflt:"hovered data",editType:"none"},tickfont:rae({editType:"ticks"}),tickangle:{valType:"angle",dflt:"auto",editType:"ticks"},autotickangles:{valType:"info_array",freeLength:!0,items:{valType:"angle"},dflt:[0,30,90],editType:"ticks"},tickprefix:{valType:"string",dflt:"",editType:"ticks"},showtickprefix:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"ticks"},ticksuffix:{valType:"string",dflt:"",editType:"ticks"},showticksuffix:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"ticks"},showexponent:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"ticks"},exponentformat:{valType:"enumerated",values:["none","e","E","power","SI","B"],dflt:"B",editType:"ticks"},minexponent:{valType:"number",dflt:3,min:0,editType:"ticks"},separatethousands:{valType:"boolean",dflt:!1,editType:"ticks"},tickformat:{valType:"string",dflt:"",editType:"ticks",description:nae("tick label")},tickformatstops:iae("tickformatstop",{enabled:{valType:"boolean",dflt:!0,editType:"ticks"},dtickrange:{valType:"info_array",items:[{valType:"any",editType:"ticks"},{valType:"any",editType:"ticks"}],editType:"ticks"},value:{valType:"string",dflt:"",editType:"ticks"},editType:"ticks"}),hoverformat:{valType:"string",dflt:"",editType:"none",description:nae("hover text")},showline:{valType:"boolean",dflt:!1,editType:"ticks+layoutstyle"},linecolor:{valType:"color",dflt:w3.defaultLine,editType:"layoutstyle"},linewidth:{valType:"number",min:0,dflt:1,editType:"ticks+layoutstyle"},showgrid:gae,gridcolor:dae,gridwidth:vae(),griddash:pae,zeroline:{valType:"boolean",editType:"ticks"},zerolinecolor:{valType:"color",dflt:w3.defaultLine,editType:"ticks"},zerolinewidth:{valType:"number",dflt:1,editType:"ticks"},showdividers:{valType:"boolean",dflt:!0,editType:"ticks"},dividercolor:{valType:"color",dflt:w3.defaultLine,editType:"ticks"},dividerwidth:{valType:"number",dflt:1,editType:"ticks"},anchor:{valType:"enumerated",values:["free",pm.idRegex.x.toString(),pm.idRegex.y.toString()],editType:"plot"},side:{valType:"enumerated",values:["top","bottom","left","right"],editType:"plot"},overlaying:{valType:"enumerated",values:["free",pm.idRegex.x.toString(),pm.idRegex.y.toString()],editType:"plot"},minor:{tickmode:dO,nticks:aae("minor"),tick0:oae,dtick:sae,tickvals:lae,ticks:uae,ticklen:cae("minor"),tickwidth:fae("minor"),tickcolor:hae,gridcolor:dae,gridwidth:vae("minor"),griddash:pae,showgrid:gae,editType:"ticks"},layer:{valType:"enumerated",values:["above traces","below traces"],dflt:"above traces",editType:"plot"},domain:{valType:"info_array",items:[{valType:"number",min:0,max:1,editType:"plot"},{valType:"number",min:0,max:1,editType:"plot"}],dflt:[0,1],editType:"plot"},position:{valType:"number",min:0,max:1,dflt:0,editType:"plot"},autoshift:{valType:"boolean",dflt:!1,editType:"plot"},shift:{valType:"number",editType:"plot"},categoryorder:{valType:"enumerated",values:["trace","category ascending","category descending","array","total ascending","total descending","min ascending","min descending","max ascending","max descending","sum ascending","sum descending","mean ascending","mean descending","geometric mean ascending","geometric mean descending","median ascending","median descending"],dflt:"trace",editType:"calc"},categoryarray:{valType:"data_array",editType:"calc"},uirevision:{valType:"any",editType:"none"},editType:"calc"}});var Y6=ye((Utr,bae)=>{"use strict";var Ac=Cd(),_ae=Su(),xae=no().extendFlat,vnt=Bu().overrideAll;bae.exports=vnt({orientation:{valType:"enumerated",values:["h","v"],dflt:"v"},thicknessmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"pixels"},thickness:{valType:"number",min:0,dflt:30},lenmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"fraction"},len:{valType:"number",min:0,dflt:1},x:{valType:"number"},xref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle"},xanchor:{valType:"enumerated",values:["left","center","right"]},xpad:{valType:"number",min:0,dflt:10},y:{valType:"number"},yref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle"},yanchor:{valType:"enumerated",values:["top","middle","bottom"]},ypad:{valType:"number",min:0,dflt:10},outlinecolor:Ac.linecolor,outlinewidth:Ac.linewidth,bordercolor:Ac.linecolor,borderwidth:{valType:"number",min:0,dflt:0},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)"},tickmode:Ac.minor.tickmode,nticks:Ac.nticks,tick0:Ac.tick0,dtick:Ac.dtick,tickvals:Ac.tickvals,ticktext:Ac.ticktext,ticks:xae({},Ac.ticks,{dflt:""}),ticklabeloverflow:xae({},Ac.ticklabeloverflow,{}),ticklabelposition:{valType:"enumerated",values:["outside","inside","outside top","inside top","outside left","inside left","outside right","inside right","outside bottom","inside bottom"],dflt:"outside"},ticklen:Ac.ticklen,tickwidth:Ac.tickwidth,tickcolor:Ac.tickcolor,ticklabelstep:Ac.ticklabelstep,showticklabels:Ac.showticklabels,labelalias:Ac.labelalias,tickfont:_ae({}),tickangle:Ac.tickangle,tickformat:Ac.tickformat,tickformatstops:Ac.tickformatstops,tickprefix:Ac.tickprefix,showtickprefix:Ac.showtickprefix,ticksuffix:Ac.ticksuffix,showticksuffix:Ac.showticksuffix,separatethousands:Ac.separatethousands,exponentformat:Ac.exponentformat,minexponent:Ac.minexponent,showexponent:Ac.showexponent,title:{text:{valType:"string"},font:_ae({}),side:{valType:"enumerated",values:["right","top","bottom"]}}},"colorbars","from-root")});var Kl=ye((Htr,Tae)=>{"use strict";var pnt=Y6(),gnt=n3().counter,mnt=X1(),wae=sb().scales,Vtr=mnt(wae);function K6(e){return"`"+e+"`"}Tae.exports=function(t,r){t=t||"",r=r||{};var n=r.cLetter||"c",i="onlyIfNumerical"in r?r.onlyIfNumerical:!!t,a="noScale"in r?r.noScale:t==="marker.line",o="showScaleDflt"in r?r.showScaleDflt:n==="z",s=typeof r.colorscaleDflt=="string"?wae[r.colorscaleDflt]:null,l=r.editTypeOverride||"",u=t?t+".":"",c,f;"colorAttr"in r?(c=r.colorAttr,f=r.colorAttr):(c={z:"z",c:"color"}[n],f="in "+K6(u+c));var h=i?" Has an effect only if "+f+" is set to a numerical array.":"",d=n+"auto",v=n+"min",x=n+"max",b=n+"mid",g=K6(u+d),E=K6(u+v),k=K6(u+x),A=E+" and "+k,L={};L[v]=L[x]=void 0;var _={};_[d]=!1;var C={};return c==="color"&&(C.color={valType:"color",arrayOk:!0,editType:l||"style"},r.anim&&(C.color.anim=!0)),C[d]={valType:"boolean",dflt:!0,editType:"calc",impliedEdits:L},C[v]={valType:"number",dflt:null,editType:l||"plot",impliedEdits:_},C[x]={valType:"number",dflt:null,editType:l||"plot",impliedEdits:_},C[b]={valType:"number",dflt:null,editType:"calc",impliedEdits:L},C.colorscale={valType:"colorscale",editType:"calc",dflt:s,impliedEdits:{autocolorscale:!1}},C.autocolorscale={valType:"boolean",dflt:r.autoColorDflt!==!1,editType:"calc",impliedEdits:{colorscale:void 0}},C.reversescale={valType:"boolean",dflt:!1,editType:"plot"},a||(C.showscale={valType:"boolean",dflt:o,editType:"calc"},C.colorbar=pnt),r.noColorAxis||(C.coloraxis={valType:"subplotid",regex:gnt("coloraxis"),dflt:null,editType:"calc"}),C}});var gO=ye((Gtr,Aae)=>{"use strict";var ynt=no().extendFlat,_nt=Kl(),pO=sb().scales;Aae.exports={editType:"calc",colorscale:{editType:"calc",sequential:{valType:"colorscale",dflt:pO.Reds,editType:"calc"},sequentialminus:{valType:"colorscale",dflt:pO.Blues,editType:"calc"},diverging:{valType:"colorscale",dflt:pO.RdBu,editType:"calc"}},coloraxis:ynt({_isSubplotObj:!0,editType:"calc"},_nt("",{colorAttr:"corresponding trace color array(s)",noColorAxis:!0,showScaleDflt:!0}))}});var mO=ye((jtr,Sae)=>{"use strict";var xnt=Mr();Sae.exports=function(t){return xnt.isPlainObject(t.colorbar)}});var xO=ye(_O=>{"use strict";var yO=uo(),Mae=Mr(),Eae=es(),bnt=Eae.ONEDAY,wnt=Eae.ONEWEEK;_O.dtick=function(e,t){var r=t==="log",n=t==="date",i=t==="category",a=n?bnt:1;if(!e)return a;if(yO(e))return e=Number(e),e<=0?a:i?Math.max(1,Math.round(e)):n?Math.max(.1,e):e;if(typeof e!="string"||!(n||r))return a;var o=e.charAt(0),s=e.substr(1);return s=yO(s)?Number(s):0,s<=0||!(n&&o==="M"&&s===Math.round(s)||r&&o==="L"||r&&o==="D"&&(s===1||s===2))?a:e};_O.tick0=function(e,t,r,n){if(t==="date")return Mae.cleanDate(e,Mae.dateTick0(r,n%wnt===0?1:0));if(!(n==="D1"||n==="D2"))return yO(e)?Number(e):0}});var xb=ye((Ztr,Cae)=>{"use strict";var kae=xO(),Tnt=Mr().isArrayOrTypedArray,Ant=vv().isTypedArraySpec,Snt=vv().decodeTypedArraySpec;Cae.exports=function(t,r,n,i,a){a||(a={});var o=a.isMinor,s=o?t.minor||{}:t,l=o?r.minor:r,u=o?"minor.":"";function c(E){var k=s[E];return Ant(k)&&(k=Snt(k)),k!==void 0?k:(l._template||{})[E]}var f=c("tick0"),h=c("dtick"),d=c("tickvals"),v=Tnt(d)?"array":h?"linear":"auto",x=n(u+"tickmode",v);if(x==="auto"||x==="sync")n(u+"nticks");else if(x==="linear"){var b=l.dtick=kae.dtick(h,i);l.tick0=kae.tick0(f,i,r.calendar,b)}else if(i!=="multicategory"){var g=n(u+"tickvals");g===void 0?l.tickmode="auto":o||n("ticktext")}}});var T3=ye((Xtr,Pae)=>{"use strict";var bO=Mr(),Lae=Cd();Pae.exports=function(t,r,n,i){var a=i.isMinor,o=a?t.minor||{}:t,s=a?r.minor:r,l=a?Lae.minor:Lae,u=a?"minor.":"",c=bO.coerce2(o,s,l,"ticklen",a?(r.ticklen||5)*.6:void 0),f=bO.coerce2(o,s,l,"tickwidth",a?r.tickwidth||1:void 0),h=bO.coerce2(o,s,l,"tickcolor",(a?r.tickcolor:void 0)||s.color),d=n(u+"ticks",!a&&i.outerTicks||c||f||h?"outside":"");d||(delete s.ticklen,delete s.tickwidth,delete s.tickcolor)}});var wO=ye((Ytr,Iae)=>{"use strict";Iae.exports=function(t){var r=["showexponent","showtickprefix","showticksuffix"],n=r.filter(function(a){return t[a]!==void 0}),i=function(a){return t[a]===t[n[0]]};if(n.every(i)||n.length===1)return t[n[0]]}});var Zd=ye((Ktr,Rae)=>{"use strict";var J6=Mr(),Mnt=Vs();Rae.exports=function(t,r,n){var i=n.name,a=n.inclusionAttr||"visible",o=r[i],s=J6.isArrayOrTypedArray(t[i])?t[i]:[],l=r[i]=[],u=Mnt.arrayTemplater(r,i,a),c,f;for(c=0;c{"use strict";var TO=Mr(),Ent=va().contrast,Dae=Cd(),knt=wO(),Cnt=Zd();zae.exports=function(t,r,n,i,a){a||(a={});var o=n("labelalias");TO.isPlainObject(o)||delete r.labelalias;var s=knt(t),l=n("showticklabels");if(l){a.noTicklabelshift||n("ticklabelshift"),a.noTicklabelstandoff||n("ticklabelstandoff");var u=a.font||{},c=r.color,f=r.ticklabelposition||"",h=f.indexOf("inside")!==-1?Ent(a.bgColor):c&&c!==Dae.color.dflt?c:u.color;if(TO.coerceFont(n,"tickfont",u,{overrideDflt:{color:h}}),!a.noTicklabelstep&&i!=="multicategory"&&i!=="log"&&n("ticklabelstep"),!a.noAng){var d=n("tickangle");!a.noAutotickangles&&d==="auto"&&n("autotickangles")}if(i!=="category"){var v=n("tickformat");Cnt(t,r,{name:"tickformatstops",inclusionAttr:"enabled",handleItemDefaults:Lnt}),r.tickformatstops.length||delete r.tickformatstops,!a.noExp&&!v&&i!=="date"&&(n("showexponent",s),n("exponentformat"),n("minexponent"),n("separatethousands"))}}};function Lnt(e,t){function r(i,a){return TO.coerce(e,t,Dae.tickformatstops,i,a)}var n=r("enabled");n&&(r("dtickrange"),r("value"))}});var t_=ye(($tr,Fae)=>{"use strict";var Pnt=wO();Fae.exports=function(t,r,n,i,a){a||(a={});var o=a.tickSuffixDflt,s=Pnt(t),l=n("tickprefix");l&&n("showtickprefix",s);var u=n("ticksuffix",o);u&&n("showticksuffix",s)}});var AO=ye((Qtr,qae)=>{"use strict";var r_=Mr(),Int=Vs(),Rnt=xb(),Dnt=T3(),znt=e_(),Fnt=t_(),qnt=Y6();qae.exports=function(t,r,n){var i=Int.newContainer(r,"colorbar"),a=t.colorbar||{};function o(T,F){return r_.coerce(a,i,qnt,T,F)}var s=n.margin||{t:0,b:0,l:0,r:0},l=n.width-s.l-s.r,u=n.height-s.t-s.b,c=o("orientation"),f=c==="v",h=o("thicknessmode");o("thickness",h==="fraction"?30/(f?l:u):30);var d=o("lenmode");o("len",d==="fraction"?1:f?u:l);var v=o("yref"),x=o("xref"),b=v==="paper",g=x==="paper",E,k,A,L="left";f?(A="middle",L=g?"left":"right",E=g?1.02:1,k=.5):(A=b?"bottom":"top",L="center",E=.5,k=b?1.02:1),r_.coerce(a,i,{x:{valType:"number",min:g?-2:0,max:g?3:1,dflt:E}},"x"),r_.coerce(a,i,{y:{valType:"number",min:b?-2:0,max:b?3:1,dflt:k}},"y"),o("xanchor",L),o("xpad"),o("yanchor",A),o("ypad"),r_.noneOrAll(a,i,["x","y"]),o("outlinecolor"),o("outlinewidth"),o("bordercolor"),o("borderwidth"),o("bgcolor");var _=r_.coerce(a,i,{ticklabelposition:{valType:"enumerated",dflt:"outside",values:f?["outside","inside","outside top","inside top","outside bottom","inside bottom"]:["outside","inside","outside left","inside left","outside right","inside right"]}},"ticklabelposition");o("ticklabeloverflow",_.indexOf("inside")!==-1?"hide past domain":"hide past div"),Rnt(a,i,o,"linear");var C=n.font,M={noAutotickangles:!0,noTicklabelshift:!0,noTicklabelstandoff:!0,outerTicks:!1,font:C};_.indexOf("inside")!==-1&&(M.bgColor="black"),Fnt(a,i,o,"linear",M),znt(a,i,o,"linear",M),Dnt(a,i,o,"linear",M),o("title.text",n._dfltTitle.colorbar);var p=i.showticklabels?i.tickfont:C,P=r_.extendFlat({},C,{family:p.family,size:r_.bigFont(p.size)});r_.coerceFont(o,"title.font",P),o("title.side",f?"top":"right")}});var Uh=ye((err,Nae)=>{"use strict";var Oae=uo(),MO=Mr(),Ont=mO(),Bnt=AO(),Bae=sb().isValid,Nnt=ba().traceIs;function SO(e,t){var r=t.slice(0,t.length-1);return t?MO.nestedProperty(e,r).get()||{}:e}Nae.exports=function e(t,r,n,i,a){var o=a.prefix,s=a.cLetter,l="_module"in r,u=SO(t,o),c=SO(r,o),f=SO(r._template||{},o)||{},h=function(){return delete t.coloraxis,delete r.coloraxis,e(t,r,n,i,a)};if(l){var d=n._colorAxes||{},v=i(o+"coloraxis");if(v){var x=Nnt(r,"contour")&&MO.nestedProperty(r,"contours.coloring").get()||"heatmap",b=d[v];b?(b[2].push(h),b[0]!==x&&(b[0]=!1,MO.warn(["Ignoring coloraxis:",v,"setting","as it is linked to incompatible colorscales."].join(" ")))):d[v]=[x,r,[h]];return}}var g=u[s+"min"],E=u[s+"max"],k=Oae(g)&&Oae(E)&&g{"use strict";var Uae=Mr(),Unt=Vs(),Vae=gO(),Vnt=Uh();Hae.exports=function(t,r){function n(f,h){return Uae.coerce(t,r,Vae,f,h)}n("colorscale.sequential"),n("colorscale.sequentialminus"),n("colorscale.diverging");var i=r._colorAxes,a,o;function s(f,h){return Uae.coerce(a,o,Vae.coloraxis,f,h)}for(var l in i){var u=i[l];if(u[0])a=t[l]||{},o=Unt.newContainer(r,l,"coloraxis"),o._name=l,Vnt(a,o,r,s,{prefix:"",cLetter:"c"});else{for(var c=0;c{"use strict";var Hnt=Mr(),Gnt=Dv().hasColorscale,jnt=Dv().extractOpts;jae.exports=function(t,r){function n(c,f){var h=c["_"+f];h!==void 0&&(c[f]=h)}function i(c,f){var h=f.container?Hnt.nestedProperty(c,f.container).get():c;if(h)if(h.coloraxis)h._colorAx=r[h.coloraxis];else{var d=jnt(h),v=d.auto;(v||d.min===void 0)&&n(h,f.min),(v||d.max===void 0)&&n(h,f.max),d.autocolorscale&&n(h,"colorscale")}}for(var a=0;a{"use strict";var Zae=uo(),EO=Mr(),Wnt=Dv().extractOpts;Xae.exports=function(t,r,n){var i=t._fullLayout,a=n.vals,o=n.containerStr,s=o?EO.nestedProperty(r,o).get():r,l=Wnt(s),u=l.auto!==!1,c=l.min,f=l.max,h=l.mid,d=function(){return EO.aggNums(Math.min,null,a)},v=function(){return EO.aggNums(Math.max,null,a)};if(c===void 0?c=d():u&&(s._colorAx&&Zae(c)?c=Math.min(c,d()):c=d()),f===void 0?f=v():u&&(s._colorAx&&Zae(f)?f=Math.max(f,v()):f=v()),u&&h!==void 0&&(f-h>h-c?c=h-(f-h):f-h=0?x=i.colorscale.sequential:x=i.colorscale.sequentialminus,l._sync("colorscale",x)}}});var Mu=ye((nrr,Yae)=>{"use strict";var $6=sb(),A3=Dv();Yae.exports={moduleType:"component",name:"colorscale",attributes:Kl(),layoutAttributes:gO(),supplyLayoutDefaults:Gae(),handleDefaults:Uh(),crossTraceDefaults:Wae(),calc:zv(),scales:$6.scales,defaultScale:$6.defaultScale,getScale:$6.get,isValidScale:$6.isValid,hasColorscale:A3.hasColorscale,extractOpts:A3.extractOpts,extractScale:A3.extractScale,flipScale:A3.flipScale,makeColorScaleFunc:A3.makeColorScaleFunc,makeColorScaleFuncFromTrace:A3.makeColorScaleFuncFromTrace}});var lu=ye((arr,Jae)=>{"use strict";var Kae=Mr(),Znt=vv().isTypedArraySpec;Jae.exports={hasLines:function(e){return e.visible&&e.mode&&e.mode.indexOf("lines")!==-1},hasMarkers:function(e){return e.visible&&(e.mode&&e.mode.indexOf("markers")!==-1||e.type==="splom")},hasText:function(e){return e.visible&&e.mode&&e.mode.indexOf("text")!==-1},isBubble:function(e){var t=e.marker;return Kae.isPlainObject(t)&&(Kae.isArrayOrTypedArray(t.size)||Znt(t.size))}}});var S3=ye((orr,$ae)=>{"use strict";var Xnt=uo();$ae.exports=function(t,r){r||(r=2);var n=t.marker,i=n.sizeref||1,a=n.sizemin||0,o=n.sizemode==="area"?function(s){return Math.sqrt(s/i)}:function(s){return s/i};return function(s){var l=o(s/r);return Xnt(l)&&l>0?Math.max(l,a):0}}});var rp=ye(pv=>{"use strict";var Qae=Mr();pv.getSubplot=function(e){return e.subplot||e.xaxis+e.yaxis||e.geo};pv.isTraceInSubplots=function(e,t){if(e.type==="splom"){for(var r=e.xaxes||[],n=e.yaxes||[],i=0;i=0&&r.index{roe.exports=Qnt;var kO={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},$nt=/([astvzqmhlc])([^astvzqmhlc]*)/ig;function Qnt(e){var t=[];return e.replace($nt,function(r,n,i){var a=n.toLowerCase();for(i=tat(i),a=="m"&&i.length>2&&(t.push([n].concat(i.splice(0,2))),a="l",n=n=="m"?"l":"L");;){if(i.length==kO[a])return i.unshift(n),t.push(i);if(i.length{"use strict";var rat=XS(),Yn=function(e,t){return t?Math.round(e*(t=Math.pow(10,t)))/t:Math.round(e)},ts="M0,0Z",ioe=Math.sqrt(2),i_=Math.sqrt(3),CO=Math.PI,LO=Math.cos,PO=Math.sin;loe.exports={circle:{n:0,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2),i="M"+n+",0A"+n+","+n+" 0 1,1 0,-"+n+"A"+n+","+n+" 0 0,1 "+n+",0Z";return r?is(t,r,i):i}},square:{n:1,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2);return is(t,r,"M"+n+","+n+"H-"+n+"V-"+n+"H"+n+"Z")}},diamond:{n:2,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.3,2);return is(t,r,"M"+n+",0L0,"+n+"L-"+n+",0L0,-"+n+"Z")}},cross:{n:3,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*.4,2),i=Yn(e*1.2,2);return is(t,r,"M"+i+","+n+"H"+n+"V"+i+"H-"+n+"V"+n+"H-"+i+"V-"+n+"H-"+n+"V-"+i+"H"+n+"V-"+n+"H"+i+"Z")}},x:{n:4,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*.8/ioe,2),i="l"+n+","+n,a="l"+n+",-"+n,o="l-"+n+",-"+n,s="l-"+n+","+n;return is(t,r,"M0,"+n+i+a+o+a+o+s+o+s+i+s+i+"Z")}},"triangle-up":{n:5,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*2/i_,2),i=Yn(e/2,2),a=Yn(e,2);return is(t,r,"M-"+n+","+i+"H"+n+"L0,-"+a+"Z")}},"triangle-down":{n:6,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*2/i_,2),i=Yn(e/2,2),a=Yn(e,2);return is(t,r,"M-"+n+",-"+i+"H"+n+"L0,"+a+"Z")}},"triangle-left":{n:7,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*2/i_,2),i=Yn(e/2,2),a=Yn(e,2);return is(t,r,"M"+i+",-"+n+"V"+n+"L-"+a+",0Z")}},"triangle-right":{n:8,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*2/i_,2),i=Yn(e/2,2),a=Yn(e,2);return is(t,r,"M-"+i+",-"+n+"V"+n+"L"+a+",0Z")}},"triangle-ne":{n:9,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*.6,2),i=Yn(e*1.2,2);return is(t,r,"M-"+i+",-"+n+"H"+n+"V"+i+"Z")}},"triangle-se":{n:10,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*.6,2),i=Yn(e*1.2,2);return is(t,r,"M"+n+",-"+i+"V"+n+"H-"+i+"Z")}},"triangle-sw":{n:11,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*.6,2),i=Yn(e*1.2,2);return is(t,r,"M"+i+","+n+"H-"+n+"V-"+i+"Z")}},"triangle-nw":{n:12,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*.6,2),i=Yn(e*1.2,2);return is(t,r,"M-"+n+","+i+"V-"+n+"H"+i+"Z")}},pentagon:{n:13,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*.951,2),i=Yn(e*.588,2),a=Yn(-e,2),o=Yn(e*-.309,2),s=Yn(e*.809,2);return is(t,r,"M"+n+","+o+"L"+i+","+s+"H-"+i+"L-"+n+","+o+"L0,"+a+"Z")}},hexagon:{n:14,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2),i=Yn(e/2,2),a=Yn(e*i_/2,2);return is(t,r,"M"+a+",-"+i+"V"+i+"L0,"+n+"L-"+a+","+i+"V-"+i+"L0,-"+n+"Z")}},hexagon2:{n:15,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2),i=Yn(e/2,2),a=Yn(e*i_/2,2);return is(t,r,"M-"+i+","+a+"H"+i+"L"+n+",0L"+i+",-"+a+"H-"+i+"L-"+n+",0Z")}},octagon:{n:16,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*.924,2),i=Yn(e*.383,2);return is(t,r,"M-"+i+",-"+n+"H"+i+"L"+n+",-"+i+"V"+i+"L"+i+","+n+"H-"+i+"L-"+n+","+i+"V-"+i+"Z")}},star:{n:17,f:function(e,t,r){if(rs(t))return ts;var n=e*1.4,i=Yn(n*.225,2),a=Yn(n*.951,2),o=Yn(n*.363,2),s=Yn(n*.588,2),l=Yn(-n,2),u=Yn(n*-.309,2),c=Yn(n*.118,2),f=Yn(n*.809,2),h=Yn(n*.382,2);return is(t,r,"M"+i+","+u+"H"+a+"L"+o+","+c+"L"+s+","+f+"L0,"+h+"L-"+s+","+f+"L-"+o+","+c+"L-"+a+","+u+"H-"+i+"L0,"+l+"Z")}},hexagram:{n:18,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*.66,2),i=Yn(e*.38,2),a=Yn(e*.76,2);return is(t,r,"M-"+a+",0l-"+i+",-"+n+"h"+a+"l"+i+",-"+n+"l"+i+","+n+"h"+a+"l-"+i+","+n+"l"+i+","+n+"h-"+a+"l-"+i+","+n+"l-"+i+",-"+n+"h-"+a+"Z")}},"star-triangle-up":{n:19,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*i_*.8,2),i=Yn(e*.8,2),a=Yn(e*1.6,2),o=Yn(e*4,2),s="A "+o+","+o+" 0 0 1 ";return is(t,r,"M-"+n+","+i+s+n+","+i+s+"0,-"+a+s+"-"+n+","+i+"Z")}},"star-triangle-down":{n:20,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*i_*.8,2),i=Yn(e*.8,2),a=Yn(e*1.6,2),o=Yn(e*4,2),s="A "+o+","+o+" 0 0 1 ";return is(t,r,"M"+n+",-"+i+s+"-"+n+",-"+i+s+"0,"+a+s+n+",-"+i+"Z")}},"star-square":{n:21,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.1,2),i=Yn(e*2,2),a="A "+i+","+i+" 0 0 1 ";return is(t,r,"M-"+n+",-"+n+a+"-"+n+","+n+a+n+","+n+a+n+",-"+n+a+"-"+n+",-"+n+"Z")}},"star-diamond":{n:22,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.4,2),i=Yn(e*1.9,2),a="A "+i+","+i+" 0 0 1 ";return is(t,r,"M-"+n+",0"+a+"0,"+n+a+n+",0"+a+"0,-"+n+a+"-"+n+",0Z")}},"diamond-tall":{n:23,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*.7,2),i=Yn(e*1.4,2);return is(t,r,"M0,"+i+"L"+n+",0L0,-"+i+"L-"+n+",0Z")}},"diamond-wide":{n:24,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.4,2),i=Yn(e*.7,2);return is(t,r,"M0,"+i+"L"+n+",0L0,-"+i+"L-"+n+",0Z")}},hourglass:{n:25,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2);return is(t,r,"M"+n+","+n+"H-"+n+"L"+n+",-"+n+"H-"+n+"Z")},noDot:!0},bowtie:{n:26,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2);return is(t,r,"M"+n+","+n+"V-"+n+"L-"+n+","+n+"V-"+n+"Z")},noDot:!0},"circle-cross":{n:27,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2);return is(t,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n+"M"+n+",0A"+n+","+n+" 0 1,1 0,-"+n+"A"+n+","+n+" 0 0,1 "+n+",0Z")},needLine:!0,noDot:!0},"circle-x":{n:28,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2),i=Yn(e/ioe,2);return is(t,r,"M"+i+","+i+"L-"+i+",-"+i+"M"+i+",-"+i+"L-"+i+","+i+"M"+n+",0A"+n+","+n+" 0 1,1 0,-"+n+"A"+n+","+n+" 0 0,1 "+n+",0Z")},needLine:!0,noDot:!0},"square-cross":{n:29,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2);return is(t,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n+"M"+n+","+n+"H-"+n+"V-"+n+"H"+n+"Z")},needLine:!0,noDot:!0},"square-x":{n:30,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2);return is(t,r,"M"+n+","+n+"L-"+n+",-"+n+"M"+n+",-"+n+"L-"+n+","+n+"M"+n+","+n+"H-"+n+"V-"+n+"H"+n+"Z")},needLine:!0,noDot:!0},"diamond-cross":{n:31,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.3,2);return is(t,r,"M"+n+",0L0,"+n+"L-"+n+",0L0,-"+n+"ZM0,-"+n+"V"+n+"M-"+n+",0H"+n)},needLine:!0,noDot:!0},"diamond-x":{n:32,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.3,2),i=Yn(e*.65,2);return is(t,r,"M"+n+",0L0,"+n+"L-"+n+",0L0,-"+n+"ZM-"+i+",-"+i+"L"+i+","+i+"M-"+i+","+i+"L"+i+",-"+i)},needLine:!0,noDot:!0},"cross-thin":{n:33,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.4,2);return is(t,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n)},needLine:!0,noDot:!0,noFill:!0},"x-thin":{n:34,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2);return is(t,r,"M"+n+","+n+"L-"+n+",-"+n+"M"+n+",-"+n+"L-"+n+","+n)},needLine:!0,noDot:!0,noFill:!0},asterisk:{n:35,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.2,2),i=Yn(e*.85,2);return is(t,r,"M0,"+n+"V-"+n+"M"+n+",0H-"+n+"M"+i+","+i+"L-"+i+",-"+i+"M"+i+",-"+i+"L-"+i+","+i)},needLine:!0,noDot:!0,noFill:!0},hash:{n:36,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e/2,2),i=Yn(e,2);return is(t,r,"M"+n+","+i+"V-"+i+"M"+(n-i)+",-"+i+"V"+i+"M"+i+","+n+"H-"+i+"M-"+i+","+(n-i)+"H"+i)},needLine:!0,noFill:!0},"y-up":{n:37,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.2,2),i=Yn(e*1.6,2),a=Yn(e*.8,2);return is(t,r,"M-"+n+","+a+"L0,0M"+n+","+a+"L0,0M0,-"+i+"L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-down":{n:38,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.2,2),i=Yn(e*1.6,2),a=Yn(e*.8,2);return is(t,r,"M-"+n+",-"+a+"L0,0M"+n+",-"+a+"L0,0M0,"+i+"L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-left":{n:39,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.2,2),i=Yn(e*1.6,2),a=Yn(e*.8,2);return is(t,r,"M"+a+","+n+"L0,0M"+a+",-"+n+"L0,0M-"+i+",0L0,0")},needLine:!0,noDot:!0,noFill:!0},"y-right":{n:40,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.2,2),i=Yn(e*1.6,2),a=Yn(e*.8,2);return is(t,r,"M-"+a+","+n+"L0,0M-"+a+",-"+n+"L0,0M"+i+",0L0,0")},needLine:!0,noDot:!0,noFill:!0},"line-ew":{n:41,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.4,2);return is(t,r,"M"+n+",0H-"+n)},needLine:!0,noDot:!0,noFill:!0},"line-ns":{n:42,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*1.4,2);return is(t,r,"M0,"+n+"V-"+n)},needLine:!0,noDot:!0,noFill:!0},"line-ne":{n:43,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2);return is(t,r,"M"+n+",-"+n+"L-"+n+","+n)},needLine:!0,noDot:!0,noFill:!0},"line-nw":{n:44,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2);return is(t,r,"M"+n+","+n+"L-"+n+",-"+n)},needLine:!0,noDot:!0,noFill:!0},"arrow-up":{n:45,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2),i=Yn(e*2,2);return is(t,r,"M0,0L-"+n+","+i+"H"+n+"Z")},backoff:1,noDot:!0},"arrow-down":{n:46,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2),i=Yn(e*2,2);return is(t,r,"M0,0L-"+n+",-"+i+"H"+n+"Z")},noDot:!0},"arrow-left":{n:47,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*2,2),i=Yn(e,2);return is(t,r,"M0,0L"+n+",-"+i+"V"+i+"Z")},noDot:!0},"arrow-right":{n:48,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*2,2),i=Yn(e,2);return is(t,r,"M0,0L-"+n+",-"+i+"V"+i+"Z")},noDot:!0},"arrow-bar-up":{n:49,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2),i=Yn(e*2,2);return is(t,r,"M-"+n+",0H"+n+"M0,0L-"+n+","+i+"H"+n+"Z")},backoff:1,needLine:!0,noDot:!0},"arrow-bar-down":{n:50,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e,2),i=Yn(e*2,2);return is(t,r,"M-"+n+",0H"+n+"M0,0L-"+n+",-"+i+"H"+n+"Z")},needLine:!0,noDot:!0},"arrow-bar-left":{n:51,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*2,2),i=Yn(e,2);return is(t,r,"M0,-"+i+"V"+i+"M0,0L"+n+",-"+i+"V"+i+"Z")},needLine:!0,noDot:!0},"arrow-bar-right":{n:52,f:function(e,t,r){if(rs(t))return ts;var n=Yn(e*2,2),i=Yn(e,2);return is(t,r,"M0,-"+i+"V"+i+"M0,0L-"+n+",-"+i+"V"+i+"Z")},needLine:!0,noDot:!0},arrow:{n:53,f:function(e,t,r){if(rs(t))return ts;var n=CO/2.5,i=2*e*LO(n),a=2*e*PO(n);return is(t,r,"M0,0L"+-i+","+a+"L"+i+","+a+"Z")},backoff:.9,noDot:!0},"arrow-wide":{n:54,f:function(e,t,r){if(rs(t))return ts;var n=CO/4,i=2*e*LO(n),a=2*e*PO(n);return is(t,r,"M0,0L"+-i+","+a+"A "+2*e+","+2*e+" 0 0 1 "+i+","+a+"Z")},backoff:.4,noDot:!0}};function rs(e){return e===null}var noe,aoe,ooe,soe;function is(e,t,r){if((!e||e%360===0)&&!t)return r;if(ooe===e&&soe===t&&noe===r)return aoe;ooe=e,soe=t,noe=r;function n(b,g){var E=LO(b),k=PO(b),A=g[0],L=g[1]+(t||0);return[A*E-L*k,A*k+L*E]}for(var i=e/180*CO,a=0,o=0,s=rat(r),l="",u=0;u{"use strict";var od=xa(),du=Mr(),iat=du.numberFormat,Ab=uo(),qO=id(),eL=ba(),Xd=va(),nat=Mu(),KS=du.strTranslate,tL=Ll(),aat=Zp(),oat=Nh(),sat=oat.LINE_SPACING,_oe=N1().DESELECTDIM,lat=lu(),uat=S3(),cat=rp().appendArrayPointValue,na=Coe.exports={};na.font=function(e,t){var r=t.variant,n=t.style,i=t.weight,a=t.color,o=t.size,s=t.family,l=t.shadow,u=t.lineposition,c=t.textcase;s&&e.style("font-family",s),o+1&&e.style("font-size",o+"px"),a&&e.call(Xd.fill,a),i&&e.style("font-weight",i),n&&e.style("font-style",n),r&&e.style("font-variant",r),c&&e.style("text-transform",IO(hat(c))),l&&e.style("text-shadow",l==="auto"?tL.makeTextShadow(Xd.contrast(a)):IO(l)),u&&e.style("text-decoration-line",IO(dat(u)))};function IO(e){return e==="none"?void 0:e}var fat={normal:"none",lower:"lowercase",upper:"uppercase","word caps":"capitalize"};function hat(e){return fat[e]}function dat(e){return e.replace("under","underline").replace("over","overline").replace("through","line-through").split("+").join(" ")}na.setPosition=function(e,t,r){e.attr("x",t).attr("y",r)};na.setSize=function(e,t,r){e.attr("width",t).attr("height",r)};na.setRect=function(e,t,r,n,i){e.call(na.setPosition,t,r).call(na.setSize,n,i)};na.translatePoint=function(e,t,r,n){var i=r.c2p(e.x),a=n.c2p(e.y);if(Ab(i)&&Ab(a)&&t.node())t.node().nodeName==="text"?t.attr("x",i).attr("y",a):t.attr("transform",KS(i,a));else return!1;return!0};na.translatePoints=function(e,t,r){e.each(function(n){var i=od.select(this);na.translatePoint(n,i,t,r)})};na.hideOutsideRangePoint=function(e,t,r,n,i,a){t.attr("display",r.isPtWithinRange(e,i)&&n.isPtWithinRange(e,a)?null:"none")};na.hideOutsideRangePoints=function(e,t){if(t._hasClipOnAxisFalse){var r=t.xaxis,n=t.yaxis;e.each(function(i){var a=i[0].trace,o=a.xcalendar,s=a.ycalendar,l=eL.traceIs(a,"bar-like")?".bartext":".point,.textpoint";e.selectAll(l).each(function(u){na.hideOutsideRangePoint(u,od.select(this),r,n,o,s)})})}};na.crispRound=function(e,t,r){return!t||!Ab(t)?r||0:e._context.staticPlot?t:t<1?1:Math.round(t)};na.singleLineStyle=function(e,t,r,n,i){t.style("fill","none");var a=(((e||[])[0]||{}).trace||{}).line||{},o=r||a.width||0,s=i||a.dash||"";Xd.stroke(t,n||a.color),na.dashLine(t,s,o)};na.lineGroupStyle=function(e,t,r,n){e.style("fill","none").each(function(i){var a=(((i||[])[0]||{}).trace||{}).line||{},o=t||a.width||0,s=n||a.dash||"";od.select(this).call(Xd.stroke,r||a.color).call(na.dashLine,s,o)})};na.dashLine=function(e,t,r){r=+r||0,t=na.dashStyle(t,r),e.style({"stroke-dasharray":t,"stroke-width":r+"px"})};na.dashStyle=function(e,t){t=+t||1;var r=Math.max(t,3);return e==="solid"?e="":e==="dot"?e=r+"px,"+r+"px":e==="dash"?e=3*r+"px,"+3*r+"px":e==="longdash"?e=5*r+"px,"+5*r+"px":e==="dashdot"?e=3*r+"px,"+r+"px,"+r+"px,"+r+"px":e==="longdashdot"&&(e=5*r+"px,"+2*r+"px,"+r+"px,"+2*r+"px"),e};function xoe(e,t,r,n){var i=t.fillpattern,a=t.fillgradient,o=i&&na.getPatternAttr(i.shape,0,"");if(o){var s=na.getPatternAttr(i.bgcolor,0,null),l=na.getPatternAttr(i.fgcolor,0,null),u=i.fgopacity,c=na.getPatternAttr(i.size,0,8),f=na.getPatternAttr(i.solidity,0,.3),h=t.uid;na.pattern(e,"point",r,h,o,c,f,void 0,i.fillmode,s,l,u)}else if(a&&a.type!=="none"){var d=a.type,v="scatterfill-"+t.uid;if(n&&(v="legendfill-"+t.uid),!n&&(a.start!==void 0||a.stop!==void 0)){var x,b;d==="horizontal"?(x={x:a.start,y:0},b={x:a.stop,y:0}):d==="vertical"&&(x={x:0,y:a.start},b={x:0,y:a.stop}),x.x=t._xA.c2p(x.x===void 0?t._extremes.x.min[0].val:x.x,!0),x.y=t._yA.c2p(x.y===void 0?t._extremes.y.min[0].val:x.y,!0),b.x=t._xA.c2p(b.x===void 0?t._extremes.x.max[0].val:b.x,!0),b.y=t._yA.c2p(b.y===void 0?t._extremes.y.max[0].val:b.y,!0),e.call(Toe,r,v,"linear",a.colorscale,"fill",x,b,!0,!1)}else d==="horizontal"&&(d=d+"reversed"),e.call(na.gradient,r,v,d,a.colorscale,"fill")}else t.fillcolor&&e.call(Xd.fill,t.fillcolor)}na.singleFillStyle=function(e,t){var r=od.select(e.node()),n=r.data(),i=((n[0]||[])[0]||{}).trace||{};xoe(e,i,t,!1)};na.fillGroupStyle=function(e,t,r){e.style("stroke-width",0).each(function(n){var i=od.select(this);n[0].trace&&xoe(i,n[0].trace,t,r)})};var coe=uoe();na.symbolNames=[];na.symbolFuncs=[];na.symbolBackOffs=[];na.symbolNeedLines={};na.symbolNoDot={};na.symbolNoFill={};na.symbolList=[];Object.keys(coe).forEach(function(e){var t=coe[e],r=t.n;na.symbolList.push(r,String(r),e,r+100,String(r+100),e+"-open"),na.symbolNames[r]=e,na.symbolFuncs[r]=t.f,na.symbolBackOffs[r]=t.backoff||0,t.needLine&&(na.symbolNeedLines[r]=!0),t.noDot?na.symbolNoDot[r]=!0:na.symbolList.push(r+200,String(r+200),e+"-dot",r+300,String(r+300),e+"-open-dot"),t.noFill&&(na.symbolNoFill[r]=!0)});var vat=na.symbolNames.length,pat="M0,0.5L0.5,0L0,-0.5L-0.5,0Z";na.symbolNumber=function(e){if(Ab(e))e=+e;else if(typeof e=="string"){var t=0;e.indexOf("-open")>0&&(t=100,e=e.replace("-open","")),e.indexOf("-dot")>0&&(t+=200,e=e.replace("-dot","")),e=na.symbolNames.indexOf(e),e>=0&&(e+=t)}return e%100>=vat||e>=400?0:Math.floor(Math.max(e,0))};function boe(e,t,r,n){var i=e%100;return na.symbolFuncs[i](t,r,n)+(e>=200?pat:"")}var foe=iat("~f"),woe={radial:{type:"radial"},radialreversed:{type:"radial",reversed:!0},horizontal:{type:"linear",start:{x:1,y:0},stop:{x:0,y:0}},horizontalreversed:{type:"linear",start:{x:1,y:0},stop:{x:0,y:0},reversed:!0},vertical:{type:"linear",start:{x:0,y:1},stop:{x:0,y:0}},verticalreversed:{type:"linear",start:{x:0,y:1},stop:{x:0,y:0},reversed:!0}};na.gradient=function(e,t,r,n,i,a){var o=woe[n];return Toe(e,t,r,o.type,i,a,o.start,o.stop,!1,o.reversed)};function Toe(e,t,r,n,i,a,o,s,l,u){var c=i.length,f;n==="linear"?f={node:"linearGradient",attrs:{x1:o.x,y1:o.y,x2:s.x,y2:s.y,gradientUnits:l?"userSpaceOnUse":"objectBoundingBox"},reversed:u}:n==="radial"&&(f={node:"radialGradient",reversed:u});for(var h=new Array(c),d=0;d=0&&e.i===void 0&&(e.i=a.i),t.style("opacity",n.selectedOpacityFn?n.selectedOpacityFn(e):e.mo===void 0?o.opacity:e.mo),n.ms2mrc){var l;e.ms==="various"||o.size==="various"?l=3:l=n.ms2mrc(e.ms),e.mrc=l,n.selectedSizeFn&&(l=e.mrc=n.selectedSizeFn(e));var u=na.symbolNumber(e.mx||o.symbol)||0;e.om=u%200>=100;var c=NO(e,r),f=BO(e,r);t.attr("d",boe(u,l,c,f))}var h=!1,d,v,x;if(e.so)x=s.outlierwidth,v=s.outliercolor,d=o.outliercolor;else{var b=(s||{}).width;x=(e.mlw+1||b+1||(e.trace?(e.trace.marker.line||{}).width:0)+1)-1||0,"mlc"in e?v=e.mlcc=n.lineScale(e.mlc):du.isArrayOrTypedArray(s.color)?v=Xd.defaultLine:v=s.color,du.isArrayOrTypedArray(o.color)&&(d=Xd.defaultLine,h=!0),"mc"in e?d=e.mcc=n.markerScale(e.mc):d=o.color||o.colors||"rgba(0,0,0,0)",n.selectedColorFn&&(d=n.selectedColorFn(e))}if(e.om)t.call(Xd.stroke,d).style({"stroke-width":(x||1)+"px",fill:"none"});else{t.style("stroke-width",(e.isBlank?0:x)+"px");var g=o.gradient,E=e.mgt;E?h=!0:E=g&&g.type,du.isArrayOrTypedArray(E)&&(E=E[0],woe[E]||(E=0));var k=o.pattern,A=k&&na.getPatternAttr(k.shape,e.i,"");if(E&&E!=="none"){var L=e.mgc;L?h=!0:L=g.color;var _=r.uid;h&&(_+="-"+e.i),na.gradient(t,i,_,E,[[0,L],[1,d]],"fill")}else if(A){var C=!1,M=k.fgcolor;!M&&a&&a.color&&(M=a.color,C=!0);var p=na.getPatternAttr(M,e.i,a&&a.color||null),P=na.getPatternAttr(k.bgcolor,e.i,null),T=k.fgopacity,F=na.getPatternAttr(k.size,e.i,8),q=na.getPatternAttr(k.solidity,e.i,.3);C=C||e.mcc||du.isArrayOrTypedArray(k.shape)||du.isArrayOrTypedArray(k.bgcolor)||du.isArrayOrTypedArray(k.fgcolor)||du.isArrayOrTypedArray(k.size)||du.isArrayOrTypedArray(k.solidity);var V=r.uid;C&&(V+="-"+e.i),na.pattern(t,"point",i,V,A,F,q,e.mcc,k.fillmode,P,p,T)}else du.isArrayOrTypedArray(d)?Xd.fill(t,d[e.i]):Xd.fill(t,d);x&&Xd.stroke(t,v)}};na.makePointStyleFns=function(e){var t={},r=e.marker;return t.markerScale=na.tryColorscale(r,""),t.lineScale=na.tryColorscale(r,"line"),eL.traceIs(e,"symbols")&&(t.ms2mrc=lat.isBubble(e)?uat(e):function(){return(r.size||6)/2}),e.selectedpoints&&du.extendFlat(t,na.makeSelectedPointStyleFns(e)),t};na.makeSelectedPointStyleFns=function(e){var t={},r=e.selected||{},n=e.unselected||{},i=e.marker||{},a=r.marker||{},o=n.marker||{},s=i.opacity,l=a.opacity,u=o.opacity,c=l!==void 0,f=u!==void 0;(du.isArrayOrTypedArray(s)||c||f)&&(t.selectedOpacityFn=function(A){var L=A.mo===void 0?i.opacity:A.mo;return A.selected?c?l:L:f?u:_oe*L});var h=i.color,d=a.color,v=o.color;(d||v)&&(t.selectedColorFn=function(A){var L=A.mcc||h;return A.selected?d||L:v||L});var x=i.size,b=a.size,g=o.size,E=b!==void 0,k=g!==void 0;return eL.traceIs(e,"symbols")&&(E||k)&&(t.selectedSizeFn=function(A){var L=A.mrc||x/2;return A.selected?E?b/2:L:k?g/2:L}),t};na.makeSelectedTextStyleFns=function(e){var t={},r=e.selected||{},n=e.unselected||{},i=e.textfont||{},a=r.textfont||{},o=n.textfont||{},s=i.color,l=a.color,u=o.color;return t.selectedTextColorFn=function(c){var f=c.tc||s;return c.selected?l||f:u||(l?f:Xd.addOpacity(f,_oe))},t};na.selectedPointStyle=function(e,t){if(!(!e.size()||!t.selectedpoints)){var r=na.makeSelectedPointStyleFns(t),n=t.marker||{},i=[];r.selectedOpacityFn&&i.push(function(a,o){a.style("opacity",r.selectedOpacityFn(o))}),r.selectedColorFn&&i.push(function(a,o){Xd.fill(a,r.selectedColorFn(o))}),r.selectedSizeFn&&i.push(function(a,o){var s=o.mx||n.symbol||0,l=r.selectedSizeFn(o);a.attr("d",boe(na.symbolNumber(s),l,NO(o,t),BO(o,t))),o.mrc2=l}),i.length&&e.each(function(a){for(var o=od.select(this),s=0;s0?r:0}na.textPointStyle=function(e,t,r){if(e.size()){var n;if(t.selectedpoints){var i=na.makeSelectedTextStyleFns(t);n=i.selectedTextColorFn}var a=t.texttemplate,o=r._fullLayout;e.each(function(s){var l=od.select(this),u=a?du.extractOption(s,t,"txt","texttemplate"):du.extractOption(s,t,"tx","text");if(!u&&u!==0){l.remove();return}if(a){var c=t._module.formatLabels,f=c?c(s,t,o):{},h={};cat(h,t,s.i);var d=t._meta||{};u=du.texttemplateString(u,f,o._d3locale,h,s,d)}var v=s.tp||t.textposition,x=Soe(s,t),b=n?n(s):s.tc||t.textfont.color;l.call(na.font,{family:s.tf||t.textfont.family,weight:s.tw||t.textfont.weight,style:s.ty||t.textfont.style,variant:s.tv||t.textfont.variant,textcase:s.tC||t.textfont.textcase,lineposition:s.tE||t.textfont.lineposition,shadow:s.tS||t.textfont.shadow,size:x,color:b}).text(u).call(tL.convertToTspans,r).call(Aoe,v,x,s.mrc)})}};na.selectedTextStyle=function(e,t){if(!(!e.size()||!t.selectedpoints)){var r=na.makeSelectedTextStyleFns(t);e.each(function(n){var i=od.select(this),a=r.selectedTextColorFn(n),o=n.tp||t.textposition,s=Soe(n,t);Xd.fill(i,a);var l=eL.traceIs(t,"bar-like");Aoe(i,o,s,n.mrc2||n.mrc,l)})}};var hoe=.5;na.smoothopen=function(e,t){if(e.length<3)return"M"+e.join("L");var r="M"+e[0],n=[],i;for(i=1;i=l||A>=c&&A<=l)&&(L<=f&&L>=u||L>=f&&L<=u)&&(e=[A,L])}return e}na.applyBackoff=koe;na.makeTester=function(){var e=du.ensureSingleById(od.select("body"),"svg","js-plotly-tester",function(r){r.attr(aat.svgAttrs).style({position:"absolute",left:"-10000px",top:"-10000px",width:"9000px",height:"9000px","z-index":"1"})}),t=du.ensureSingle(e,"path","js-reference-point",function(r){r.attr("d","M0,0H1V1H0Z").style({"stroke-width":0,fill:"black"})});na.tester=e,na.testref=t};na.savedBBoxes={};var DO=0,yat=1e4;na.bBox=function(e,t,r){r||(r=doe(e));var n;if(r){if(n=na.savedBBoxes[r],n)return du.extendFlat({},n)}else if(e.childNodes.length===1){var i=e.childNodes[0];if(r=doe(i),r){var a=+i.getAttribute("x")||0,o=+i.getAttribute("y")||0,s=i.getAttribute("transform");if(!s){var l=na.bBox(i,!1,r);return a&&(l.left+=a,l.right+=a),o&&(l.top+=o,l.bottom+=o),l}if(r+="~"+a+"~"+o+"~"+s,n=na.savedBBoxes[r],n)return du.extendFlat({},n)}}var u,c;t?u=e:(c=na.tester.node(),u=e.cloneNode(!0),c.appendChild(u)),od.select(u).attr("transform",null).call(tL.positionText,0,0);var f=u.getBoundingClientRect(),h=na.testref.node().getBoundingClientRect();t||c.removeChild(u);var d={height:f.height,width:f.width,left:f.left-h.left,top:f.top-h.top,right:f.right-h.left,bottom:f.bottom-h.top};return DO>=yat&&(na.savedBBoxes={},DO=0),r&&(na.savedBBoxes[r]=d),DO++,du.extendFlat({},d)};function doe(e){var t=e.getAttribute("data-unformatted");if(t!==null)return t+e.getAttribute("data-math")+e.getAttribute("text-anchor")+e.getAttribute("style")}na.setClipUrl=function(e,t,r){e.attr("clip-path",OO(t,r))};function OO(e,t){if(!e)return null;var r=t._context,n=r._exportedPlot?"":r._baseUrl||"";return n?"url('"+n+"#"+e+"')":"url(#"+e+")"}na.getTranslate=function(e){var t=/.*\btranslate\((-?\d*\.?\d*)[^-\d]*(-?\d*\.?\d*)[^\d].*/,r=e.attr?"attr":"getAttribute",n=e[r]("transform")||"",i=n.replace(t,function(a,o,s){return[o,s].join(" ")}).split(" ");return{x:+i[0]||0,y:+i[1]||0}};na.setTranslate=function(e,t,r){var n=/(\btranslate\(.*?\);?)/,i=e.attr?"attr":"getAttribute",a=e.attr?"attr":"setAttribute",o=e[i]("transform")||"";return t=t||0,r=r||0,o=o.replace(n,"").trim(),o+=KS(t,r),o=o.trim(),e[a]("transform",o),o};na.getScale=function(e){var t=/.*\bscale\((\d*\.?\d*)[^\d]*(\d*\.?\d*)[^\d].*/,r=e.attr?"attr":"getAttribute",n=e[r]("transform")||"",i=n.replace(t,function(a,o,s){return[o,s].join(" ")}).split(" ");return{x:+i[0]||1,y:+i[1]||1}};na.setScale=function(e,t,r){var n=/(\bscale\(.*?\);?)/,i=e.attr?"attr":"getAttribute",a=e.attr?"attr":"setAttribute",o=e[i]("transform")||"";return t=t||1,r=r||1,o=o.replace(n,"").trim(),o+="scale("+t+","+r+")",o=o.trim(),e[a]("transform",o),o};var _at=/\s*sc.*/;na.setPointGroupScale=function(e,t,r){if(t=t||1,r=r||1,!!e){var n=t===1&&r===1?"":"scale("+t+","+r+")";e.each(function(){var i=(this.getAttribute("transform")||"").replace(_at,"");i+=n,i=i.trim(),this.setAttribute("transform",i)})}};var xat=/translate\([^)]*\)\s*$/;na.setTextPointsScale=function(e,t,r){e&&e.each(function(){var n,i=od.select(this),a=i.select("text");if(a.node()){var o=parseFloat(a.attr("x")||0),s=parseFloat(a.attr("y")||0),l=(i.attr("transform")||"").match(xat);t===1&&r===1?n=[]:n=[KS(o,s),"scale("+t+","+r+")",KS(-o,-s)],l&&n.push(l),i.attr("transform",n.join(""))}})};function BO(e,t){var r;return e&&(r=e.mf),r===void 0&&(r=t.marker&&t.marker.standoff||0),!t._geo&&!t._xA?-r:r}na.getMarkerStandoff=BO;var YS=Math.atan2,bb=Math.cos,E3=Math.sin;function voe(e,t){var r=t[0],n=t[1];return[r*bb(e)-n*E3(e),r*E3(e)+n*bb(e)]}var poe,goe,moe,yoe,zO,FO;function NO(e,t){var r=e.ma;r===void 0&&(r=t.marker.angle,(!r||du.isArrayOrTypedArray(r))&&(r=0));var n,i,a=t.marker.angleref;if(a==="previous"||a==="north"){if(t._geo){var o=t._geo.project(e.lonlat);n=o[0],i=o[1]}else{var s=t._xA,l=t._yA;if(s&&l)n=s.c2p(e.x),i=l.c2p(e.y);else return 90}if(t._geo){var u=e.lonlat[0],c=e.lonlat[1],f=t._geo.project([u,c+1e-5]),h=t._geo.project([u+1e-5,c]),d=YS(h[1]-i,h[0]-n),v=YS(f[1]-i,f[0]-n),x;if(a==="north")x=r/180*Math.PI;else if(a==="previous"){var b=u/180*Math.PI,g=c/180*Math.PI,E=poe/180*Math.PI,k=goe/180*Math.PI,A=E-b,L=bb(k)*E3(A),_=E3(k)*bb(g)-bb(k)*E3(g)*bb(A);x=-YS(L,_)-Math.PI,poe=u,goe=c}var C=voe(d,[bb(x),0]),M=voe(v,[E3(x),0]);r=YS(C[1]+M[1],C[0]+M[0])/Math.PI*180,a==="previous"&&!(FO===t.uid&&e.i===zO+1)&&(r=null)}if(a==="previous"&&!t._geo)if(FO===t.uid&&e.i===zO+1&&Ab(n)&&Ab(i)){var p=n-moe,P=i-yoe,T=t.line&&t.line.shape||"",F=T.slice(T.length-1);F==="h"&&(P=0),F==="v"&&(p=0),r+=YS(P,p)/Math.PI*180+90}else r=null}return moe=n,yoe=i,zO=e.i,FO=t.uid,r}na.getMarkerAngle=NO});var Mb=ye((frr,Roe)=>{"use strict";var k3=xa(),bat=uo(),wat=Xu(),UO=ba(),Sb=Mr(),Loe=Sb.strTranslate,rL=ao(),iL=va(),C3=Ll(),Poe=N1(),Tat=Nh().OPPOSITE_SIDE,Ioe=/ [XY][0-9]* /,VO=1.6,HO=1.6;function Aat(e,t,r){var n=e._fullLayout,i=r.propContainer,a=r.propName,o=r.placeholder,s=r.traceIndex,l=r.avoid||{},u=r.attributes,c=r.transform,f=r.containerGroup,h=1,d=i.title,v=(d&&d.text?d.text:"").trim(),x=!1,b=d&&d.font?d.font:{},g=b.family,E=b.size,k=b.color,A=b.weight,L=b.style,_=b.variant,C=b.textcase,M=b.lineposition,p=b.shadow,P=r.subtitlePropName,T=!!P,F=r.subtitlePlaceholder,q=(i.title||{}).subtitle||{text:"",font:{}},V=q.text.trim(),H=!1,X=1,G=q.font,N=G.family,W=G.size,re=G.color,ae=G.weight,_e=G.style,Me=G.variant,ke=G.textcase,ge=G.lineposition,ie=G.shadow,Te;a==="title.text"?Te="titleText":a.indexOf("axis")!==-1?Te="axisTitleText":a.indexOf("colorbar"!==-1)&&(Te="colorbarTitleText");var Ee=e._context.edits[Te];function Ae(kt,Ct){return kt===void 0||Ct===void 0?!1:kt.replace(Ioe," % ")===Ct.replace(Ioe," % ")}v===""?h=0:Ae(v,o)&&(Ee||(v=""),h=.2,x=!0),T&&(V===""?X=0:Ae(V,F)&&(Ee||(V=""),X=.2,H=!0)),r._meta?v=Sb.templateString(v,r._meta):n._meta&&(v=Sb.templateString(v,n._meta));var ze=v||V||Ee,Ce;f||(f=Sb.ensureSingle(n._infolayer,"g","g-"+t),Ce=n._hColorbarMoveTitle);var me=f.selectAll("text."+t).data(ze?[0]:[]);me.enter().append("text"),me.text(v).attr("class",t),me.exit().remove();var Re=null,ce=t+"-subtitle",Ge=V||Ee;if(T&&Ge&&(Re=f.selectAll("text."+ce).data(Ge?[0]:[]),Re.enter().append("text"),Re.text(V).attr("class",ce),Re.exit().remove()),!ze)return f;function nt(kt,Ct){Sb.syncOrAsync([ct,qt],{title:kt,subtitle:Ct})}function ct(kt){var Ct=kt.title,Yt=kt.subtitle,xr;!c&&Ce&&(c={}),c?(xr="",c.rotate&&(xr+="rotate("+[c.rotate,u.x,u.y]+")"),(c.offset||Ce)&&(xr+=Loe(0,(c.offset||0)-(Ce||0)))):xr=null,Ct.attr("transform",xr);function er(Et){if(Et){var dt=k3.select(Et.node().parentNode).select("."+ce);if(!dt.empty()){var Ht=Et.node().getBBox();if(Ht.height){var $t=Ht.y+Ht.height+VO*W;dt.attr("y",$t)}}}}if(Ct.style("opacity",h*iL.opacity(k)).call(rL.font,{color:iL.rgb(k),size:k3.round(E,2),family:g,weight:A,style:L,variant:_,textcase:C,shadow:p,lineposition:M}).attr(u).call(C3.convertToTspans,e,er),Yt){var Ke=f.select("."+t+"-math-group"),xt=Ct.node().getBBox(),bt=Ke.node()?Ke.node().getBBox():void 0,Lt=bt?bt.y+bt.height+VO*W:xt.y+xt.height+HO*W,St=Sb.extendFlat({},u,{y:Lt});Yt.attr("transform",xr),Yt.style("opacity",X*iL.opacity(re)).call(rL.font,{color:iL.rgb(re),size:k3.round(W,2),family:N,weight:ae,style:_e,variant:Me,textcase:ke,shadow:ie,lineposition:ge}).attr(St).call(C3.convertToTspans,e)}return wat.previousPromises(e)}function qt(kt){var Ct=kt.title,Yt=k3.select(Ct.node().parentNode);if(l&&l.selection&&l.side&&v){Yt.attr("transform",null);var xr=Tat[l.side],er=l.side==="left"||l.side==="top"?-1:1,Ke=bat(l.pad)?l.pad:2,xt=rL.bBox(Yt.node()),bt={t:0,b:0,l:0,r:0},Lt=e._fullLayout._reservedMargin;for(var St in Lt)for(var Et in Lt[St]){var dt=Lt[St][Et];bt[Et]=Math.max(bt[Et],dt)}var Ht={left:bt.l,top:bt.t,right:n.width-bt.r,bottom:n.height-bt.b},$t=l.maxShift||er*(Ht[l.side]-xt[l.side]),fr=0;if($t<0)fr=$t;else{var _r=l.offsetLeft||0,Br=l.offsetTop||0;xt.left-=_r,xt.right-=_r,xt.top-=Br,xt.bottom-=Br,l.selection.each(function(){var Nr=rL.bBox(this);Sb.bBoxIntersect(xt,Nr,Ke)&&(fr=Math.max(fr,er*(Nr[l.side]-xt[xr])+Ke))}),fr=Math.min($t,fr),i._titleScoot=Math.abs(fr)}if(fr>0||$t<0){var Or={left:[-fr,0],right:[fr,0],top:[0,-fr],bottom:[0,fr]}[l.side];Yt.attr("transform",Loe(Or[0],Or[1]))}}}me.call(nt,Re);function rt(kt,Ct){kt.text(Ct).on("mouseover.opacity",function(){k3.select(this).transition().duration(Poe.SHOW_PLACEHOLDER).style("opacity",1)}).on("mouseout.opacity",function(){k3.select(this).transition().duration(Poe.HIDE_PLACEHOLDER).style("opacity",0)})}if(Ee&&(v?me.on(".opacity",null):(rt(me,o),x=!0),me.call(C3.makeEditable,{gd:e}).on("edit",function(kt){s!==void 0?UO.call("_guiRestyle",e,a,kt,s):UO.call("_guiRelayout",e,a,kt)}).on("cancel",function(){this.text(this.attr("data-unformatted")).call(nt)}).on("input",function(kt){this.text(kt||" ").call(C3.positionText,u.x,u.y)}),T)){if(T&&!v){var ot=me.node().getBBox(),Rt=ot.y+ot.height+HO*W;Re.attr("y",Rt)}V?Re.on(".opacity",null):(rt(Re,F),H=!0),Re.call(C3.makeEditable,{gd:e}).on("edit",function(kt){UO.call("_guiRelayout",e,"title.subtitle.text",kt)}).on("cancel",function(){this.text(this.attr("data-unformatted")).call(nt)}).on("input",function(kt){this.text(kt||" ").call(C3.positionText,Re.attr("x"),Re.attr("y"))})}return me.classed("js-placeholder",x),Re&&Re.classed("js-placeholder",H),f}Roe.exports={draw:Aat,SUBTITLE_PADDING_EM:HO,SUBTITLE_PADDING_MATHJAX_EM:VO}});var ym=ye((hrr,Ooe)=>{"use strict";var Sat=xa(),Mat=e3().utcFormat,Nu=Mr(),Eat=Nu.numberFormat,gm=uo(),n_=Nu.cleanNumber,kat=Nu.ms2DateTime,Doe=Nu.dateTime2ms,mm=Nu.ensureNumber,zoe=Nu.isArrayOrTypedArray,a_=es(),nL=a_.FP_SAFE,bg=a_.BADNUM,Cat=a_.LOG_CLIP,Lat=a_.ONEWEEK,aL=a_.ONEDAY,oL=a_.ONEHOUR,Foe=a_.ONEMIN,qoe=a_.ONESEC,sL=af(),cL=ad(),lL=cL.HOUR_PATTERN,uL=cL.WEEKDAY_PATTERN;function JS(e){return Math.pow(10,e)}function GO(e){return e!=null}Ooe.exports=function(t,r){r=r||{};var n=t._id||"x",i=n.charAt(0);function a(A,L){if(A>0)return Math.log(A)/Math.LN10;if(A<=0&&L&&t.range&&t.range.length===2){var _=t.range[0],C=t.range[1];return .5*(_+C-2*Cat*Math.abs(_-C))}else return bg}function o(A,L,_,C){if((C||{}).msUTC&&gm(A))return+A;var M=Doe(A,_||t.calendar);if(M===bg)if(gm(A)){A=+A;var p=Math.floor(Nu.mod(A+.05,1)*10),P=Math.round(A-p/10);M=Doe(new Date(P))+p/10}else return bg;return M}function s(A,L,_){return kat(A,L,_||t.calendar)}function l(A){return t._categories[Math.round(A)]}function u(A){if(GO(A)){if(t._categoriesMap===void 0&&(t._categoriesMap={}),t._categoriesMap[A]!==void 0)return t._categoriesMap[A];t._categories.push(typeof A=="number"?String(A):A);var L=t._categories.length-1;return t._categoriesMap[A]=L,L}return bg}function c(A,L){for(var _=new Array(L),C=0;Ct.range[1]&&(_=!_);for(var C=_?-1:1,M=C*A,p=0,P=0;PF)p=P+1;else{p=M<(T+F)/2?P:P+1;break}}var q=t._B[p]||0;return isFinite(q)?v(A,t._m2,q):0},g=function(A){var L=t._rangebreaks.length;if(!L)return x(A,t._m,t._b);for(var _=0,C=0;Ct._rangebreaks[C].pmax&&(_=C+1);return x(A,t._m2,t._B[_])}}t.c2l=t.type==="log"?a:mm,t.l2c=t.type==="log"?JS:mm,t.l2p=b,t.p2l=g,t.c2p=t.type==="log"?function(A,L){return b(a(A,L))}:b,t.p2c=t.type==="log"?function(A){return JS(g(A))}:g,["linear","-"].indexOf(t.type)!==-1?(t.d2r=t.r2d=t.d2c=t.r2c=t.d2l=t.r2l=n_,t.c2d=t.c2r=t.l2d=t.l2r=mm,t.d2p=t.r2p=function(A){return t.l2p(n_(A))},t.p2d=t.p2r=g,t.cleanPos=mm):t.type==="log"?(t.d2r=t.d2l=function(A,L){return a(n_(A),L)},t.r2d=t.r2c=function(A){return JS(n_(A))},t.d2c=t.r2l=n_,t.c2d=t.l2r=mm,t.c2r=a,t.l2d=JS,t.d2p=function(A,L){return t.l2p(t.d2r(A,L))},t.p2d=function(A){return JS(g(A))},t.r2p=function(A){return t.l2p(n_(A))},t.p2r=g,t.cleanPos=mm):t.type==="date"?(t.d2r=t.r2d=Nu.identity,t.d2c=t.r2c=t.d2l=t.r2l=o,t.c2d=t.c2r=t.l2d=t.l2r=s,t.d2p=t.r2p=function(A,L,_){return t.l2p(o(A,0,_))},t.p2d=t.p2r=function(A,L,_){return s(g(A),L,_)},t.cleanPos=function(A){return Nu.cleanDate(A,bg,t.calendar)}):t.type==="category"?(t.d2c=t.d2l=u,t.r2d=t.c2d=t.l2d=l,t.d2r=t.d2l_noadd=h,t.r2c=function(A){var L=d(A);return L!==void 0?L:t.fraction2r(.5)},t.l2r=t.c2r=mm,t.r2l=d,t.d2p=function(A){return t.l2p(t.r2c(A))},t.p2d=function(A){return l(g(A))},t.r2p=t.d2p,t.p2r=g,t.cleanPos=function(A){return typeof A=="string"&&A!==""?A:mm(A)}):t.type==="multicategory"&&(t.r2d=t.c2d=t.l2d=l,t.d2r=t.d2l_noadd=h,t.r2c=function(A){var L=h(A);return L!==void 0?L:t.fraction2r(.5)},t.r2c_just_indices=f,t.l2r=t.c2r=mm,t.r2l=h,t.d2p=function(A){return t.l2p(t.r2c(A))},t.p2d=function(A){return l(g(A))},t.r2p=t.d2p,t.p2r=g,t.cleanPos=function(A){return Array.isArray(A)||typeof A=="string"&&A!==""?A:mm(A)},t.setupMultiCategory=function(A){var L=t._traceIndices,_,C,M=t._matchGroup;if(M&&t._categories.length===0){for(var p in M)if(p!==n){var P=r[sL.id2name(p)];L=L.concat(P._traceIndices)}}var T=[[0,{}],[0,{}]],F=[];for(_=0;_P[1]&&(C[p?0:1]=_),C[0]===C[1]){var T=t.l2r(L),F=t.l2r(_);if(L!==void 0){var q=T+1;_!==void 0&&(q=Math.min(q,F)),C[p?1:0]=q}if(_!==void 0){var V=F+1;L!==void 0&&(V=Math.max(V,T)),C[p?0:1]=V}}}},t.cleanRange=function(A,L){t._cleanRange(A,L),t.limitRange(A)},t._cleanRange=function(A,L){L||(L={}),A||(A="range");var _=Nu.nestedProperty(t,A).get(),C,M;if(t.type==="date"?M=Nu.dfltRange(t.calendar):i==="y"?M=cL.DFLTRANGEY:t._name==="realaxis"?M=[0,1]:M=L.dfltRange||cL.DFLTRANGEX,M=M.slice(),(t.rangemode==="tozero"||t.rangemode==="nonnegative")&&(M[0]=0),!_||_.length!==2){Nu.nestedProperty(t,A).set(M);return}var p=_[0]===null,P=_[1]===null;for(t.type==="date"&&!t.autorange&&(_[0]=Nu.cleanDate(_[0],bg,t.calendar),_[1]=Nu.cleanDate(_[1],bg,t.calendar)),C=0;C<2;C++)if(t.type==="date"){if(!Nu.isDateTime(_[C],t.calendar)){t[A]=M;break}if(t.r2l(_[0])===t.r2l(_[1])){var T=Nu.constrain(t.r2l(_[0]),Nu.MIN_MS+1e3,Nu.MAX_MS-1e3);_[0]=t.l2r(T-1e3),_[1]=t.l2r(T+1e3);break}}else{if(!gm(_[C]))if(!(p||P)&&gm(_[1-C]))_[C]=_[1-C]*(C?10:.1);else{t[A]=M;break}if(_[C]<-nL?_[C]=-nL:_[C]>nL&&(_[C]=nL),_[0]===_[1]){var F=Math.max(1,Math.abs(_[0]*1e-6));_[0]-=F,_[1]+=F}}},t.setScale=function(A){var L=r._size;if(t.overlaying){var _=sL.getFromId({_fullLayout:r},t.overlaying);t.domain=_.domain}var C=A&&t._r?"_r":"range",M=t.calendar;t.cleanRange(C);var p=t.r2l(t[C][0],M),P=t.r2l(t[C][1],M),T=i==="y";if(T?(t._offset=L.t+(1-t.domain[1])*L.h,t._length=L.h*(t.domain[1]-t.domain[0]),t._m=t._length/(p-P),t._b=-t._m*P):(t._offset=L.l+t.domain[0]*L.w,t._length=L.w*(t.domain[1]-t.domain[0]),t._m=t._length/(P-p),t._b=-t._m*p),t._rangebreaks=[],t._lBreaks=0,t._m2=0,t._B=[],t.rangebreaks){var F,q;if(t._rangebreaks=t.locateBreaks(Math.min(p,P),Math.max(p,P)),t._rangebreaks.length){for(F=0;FP&&(V=!V),V&&t._rangebreaks.reverse();var H=V?-1:1;for(t._m2=H*t._length/(Math.abs(P-p)-t._lBreaks),t._B.push(-t._m2*(T?P:p)),F=0;FM&&(M+=7,pM&&(M+=24,p=C&&p=C&&A=ie.min&&(_eie.max&&(ie.max=Me),ke=!1)}ke&&P.push({min:_e,max:Me})}};for(_=0;_{"use strict";var Boe=uo(),jO=Mr(),Pat=es().BADNUM,fL=jO.isArrayOrTypedArray,Iat=jO.isDateTime,Rat=jO.cleanNumber,Noe=Math.round;Voe.exports=function(t,r,n){var i=t,a=n.noMultiCategory;if(fL(i)&&!i.length)return"-";if(!a&&Oat(i))return"multicategory";if(a&&Array.isArray(i[0])){for(var o=[],s=0;sa*2}function Uoe(e){return Math.max(1,(e-1)/1e3)}function qat(e,t){for(var r=e.length,n=Uoe(r),i=0,a=0,o={},s=0;si*2}function Oat(e){return fL(e[0])&&fL(e[1])}});var wg=ye((vrr,Koe)=>{"use strict";var Bat=xa(),Woe=uo(),o_=Mr(),hL=es().FP_SAFE,Nat=ba(),Uat=ao(),Zoe=af(),Vat=Zoe.getFromId,Hat=Zoe.isLinked;Koe.exports={applyAutorangeOptions:Yoe,getAutoRange:WO,makePadFn:ZO,doAutoRange:jat,findExtremes:Wat,concatExtremes:KO};function WO(e,t){var r,n,i=[],a=e._fullLayout,o=ZO(a,t,0),s=ZO(a,t,1),l=KO(e,t),u=l.min,c=l.max;if(u.length===0||c.length===0)return o_.simpleMap(t.range,t.r2l);var f=u[0].val,h=c[0].val;for(r=1;r0&&(P=k-o(_)-s(C),P>A?T/P>L&&(M=_,p=C,L=T/P):T/k>L&&(M={val:_.val,nopad:1},p={val:C.val,nopad:1},L=T/k));function F(G,N){return Math.max(G,s(N))}if(f===h){var q=f-1,V=f+1;if(g)if(f===0)i=[0,1];else{var H=(f>0?c:u).reduce(F,0),X=f/(1-Math.min(.5,H/k));i=f>0?[0,X]:[X,0]}else E?i=[Math.max(0,q),Math.max(1,V)]:i=[q,V]}else g?(M.val>=0&&(M={val:0,nopad:1}),p.val<=0&&(p={val:0,nopad:1})):E&&(M.val-L*o(M)<0&&(M={val:0,nopad:1}),p.val<=0&&(p={val:1,nopad:1})),L=(p.val-M.val-Hoe(t,_.val,C.val))/(k-o(M)-s(p)),i=[M.val-L*o(M),p.val+L*s(p)];return i=Yoe(i,t),t.limitRange&&t.limitRange(),v&&i.reverse(),o_.simpleMap(i,t.l2r||Number)}function Hoe(e,t,r){var n=0;if(e.rangebreaks)for(var i=e.locateBreaks(t,r),a=0;a0?r.ppadplus:r.ppadminus)||r.ppad||0),_=A((e._m>0?r.ppadminus:r.ppadplus)||r.ppad||0),C=A(r.vpadplus||r.vpad),M=A(r.vpadminus||r.vpad);if(!u){if(E=1/0,k=-1/0,l)for(f=0;f0&&(E=h),h>k&&h-hL&&(E=h),h>k&&h=T;f--)P(f);return{min:n,max:i,opts:r}}function XO(e,t,r,n){Xoe(e,t,r,n,Zat)}function YO(e,t,r,n){Xoe(e,t,r,n,Xat)}function Xoe(e,t,r,n,i){for(var a=n.tozero,o=n.extrapad,s=!0,l=0;l=r&&(u.extrapad||!o)){s=!1;break}else i(t,u.val)&&u.pad<=r&&(o||!u.extrapad)&&(e.splice(l,1),l--)}if(s){var c=a&&t===0;e.push({val:t,pad:c?0:r,extrapad:c?!1:o})}}function joe(e){return Woe(e)&&Math.abs(e)=t}function Yat(e,t){var r=t.autorangeoptions;return r&&r.minallowed!==void 0&&dL(t,r.minallowed,r.maxallowed)?r.minallowed:r&&r.clipmin!==void 0&&dL(t,r.clipmin,r.clipmax)?Math.max(e,t.d2l(r.clipmin)):e}function Kat(e,t){var r=t.autorangeoptions;return r&&r.maxallowed!==void 0&&dL(t,r.minallowed,r.maxallowed)?r.maxallowed:r&&r.clipmax!==void 0&&dL(t,r.clipmin,r.clipmax)?Math.min(e,t.d2l(r.clipmax)):e}function dL(e,t,r){return t!==void 0&&r!==void 0?(t=e.d2l(t),r=e.d2l(r),t=l&&(a=l,r=l),o<=l&&(o=l,n=l)}}return r=Yat(r,t),n=Kat(n,t),[r,n]}});var Qa=ye((prr,yse)=>{"use strict";var w0=xa(),ph=uo(),P3=Xu(),QS=ba(),Vo=Mr(),I3=Vo.strTranslate,Eb=Ll(),Jat=Mb(),eM=va(),Xp=ao(),$at=Cd(),Joe=xO(),Yd=es(),Qat=Yd.ONEMAXYEAR,gL=Yd.ONEAVGYEAR,mL=Yd.ONEMINYEAR,eot=Yd.ONEMAXQUARTER,eB=Yd.ONEAVGQUARTER,yL=Yd.ONEMINQUARTER,tot=Yd.ONEMAXMONTH,R3=Yd.ONEAVGMONTH,_L=Yd.ONEMINMONTH,Yp=Yd.ONEWEEK,Fv=Yd.ONEDAY,s_=Fv/2,xm=Yd.ONEHOUR,tM=Yd.ONEMIN,xL=Yd.ONESEC,rot=Yd.ONEMILLI,iot=Yd.ONEMICROSEC,kb=Yd.MINUS_SIGN,TL=Yd.BADNUM,tB={K:"zeroline"},rB={K:"gridline",L:"path"},iB={K:"minor-gridline",L:"path"},lse={K:"tick",L:"path"},$oe={K:"tick",L:"text"},Qoe={width:["x","r","l","xl","xr"],height:["y","t","b","yt","yb"],right:["r","xr"],left:["l","xl"],top:["t","yt"],bottom:["b","yb"]},AL=Nh(),$S=AL.MID_SHIFT,Cb=AL.CAP_SHIFT,rM=AL.LINE_SPACING,not=AL.OPPOSITE_SIDE,bL=3,kn=yse.exports={};kn.setConvert=ym();var aot=L3(),Ay=af(),oot=Ay.idSort,sot=Ay.isLinked;kn.id2name=Ay.id2name;kn.name2id=Ay.name2id;kn.cleanId=Ay.cleanId;kn.list=Ay.list;kn.listIds=Ay.listIds;kn.getFromId=Ay.getFromId;kn.getFromTrace=Ay.getFromTrace;var use=wg();kn.getAutoRange=use.getAutoRange;kn.findExtremes=use.findExtremes;var lot=1e-4;function sB(e){var t=(e[1]-e[0])*lot;return[e[0]-t,e[1]+t]}kn.coerceRef=function(e,t,r,n,i,a){var o=n.charAt(n.length-1),s=r._fullLayout._subplots[o+"axis"],l=n+"ref",u={};return i||(i=s[0]||(typeof a=="string"?a:a[0])),a||(a=i),s=s.concat(s.map(function(c){return c+" domain"})),u[l]={valType:"enumerated",values:s.concat(a?typeof a=="string"?[a]:a:[]),dflt:i},Vo.coerce(e,t,u,l)};kn.getRefType=function(e){return e===void 0?e:e==="paper"?"paper":e==="pixel"?"pixel":/( domain)$/.test(e)?"domain":"range"};kn.coercePosition=function(e,t,r,n,i,a){var o,s,l=kn.getRefType(n);if(l!=="range")o=Vo.ensureNumber,s=r(i,a);else{var u=kn.getFromId(t,n);a=u.fraction2r(a),s=r(i,a),o=u.cleanPos}e[i]=o(s)};kn.cleanPosition=function(e,t,r){var n=r==="paper"||r==="pixel"?Vo.ensureNumber:kn.getFromId(t,r).cleanPos;return n(e)};kn.redrawComponents=function(e,t){t=t||kn.listIds(e);var r=e._fullLayout;function n(i,a,o,s){for(var l=QS.getComponentMethod(i,a),u={},c=0;c2e-6||((r-e._forceTick0)/e._minDtick%1+1.000001)%1>2e-6)&&(e._minDtick=0))};kn.saveRangeInitial=function(e,t){for(var r=kn.list(e,"",!0),n=!1,i=0;if*.3||u(n)||u(i))){var h=r.dtick/2;e+=e+ho){var s=Number(r.substr(1));a.exactYears>o&&s%12===0?e=kn.tickIncrement(e,"M6","reverse")+Fv*1.5:a.exactMonths>o?e=kn.tickIncrement(e,"M1","reverse")+Fv*15.5:e-=s_;var l=kn.tickIncrement(e,r);if(l<=n)return l}return e}kn.prepMinorTicks=function(e,t,r){if(!t.minor.dtick){delete e.dtick;var n=t.dtick&&ph(t._tmin),i;if(n){var a=kn.tickIncrement(t._tmin,t.dtick,!0);i=[t._tmin,a*.99+t._tmin*.01]}else{var o=Vo.simpleMap(t.range,t.r2l);i=[o[0],.8*o[0]+.2*o[1]]}if(e.range=Vo.simpleMap(i,t.l2r),e._isMinor=!0,kn.prepTicks(e,r),n){var s=ph(t.dtick),l=ph(e.dtick),u=s?t.dtick:+t.dtick.substring(1),c=l?e.dtick:+e.dtick.substring(1);s&&l?JO(u,c)?u===2*Yp&&c===2*Fv&&(e.dtick=Yp):u===2*Yp&&c===3*Fv?e.dtick=Yp:u===Yp&&!(t._input.minor||{}).nticks?e.dtick=Fv:rse(u/c,2.5)?e.dtick=u/2:e.dtick=u:String(t.dtick).charAt(0)==="M"?l?e.dtick="M1":JO(u,c)?u>=12&&c===2&&(e.dtick="M3"):e.dtick=t.dtick:String(e.dtick).charAt(0)==="L"?String(t.dtick).charAt(0)==="L"?JO(u,c)||(e.dtick=rse(u/c,2.5)?t.dtick/2:t.dtick):e.dtick="D1":e.dtick==="D2"&&+t.dtick>1&&(e.dtick=1)}e.range=t.range}t.minor._tick0Init===void 0&&(e.tick0=t.tick0)};function JO(e,t){return Math.abs((e/t+.5)%1-.5)<.001}function rse(e,t){return Math.abs(e/t-1)<.001}kn.prepTicks=function(e,t){var r=Vo.simpleMap(e.range,e.r2l,void 0,void 0,t);if(e.tickmode==="auto"||!e.dtick){var n=e.nticks,i;n||(e.type==="category"||e.type==="multicategory"?(i=e.tickfont?Vo.bigFont(e.tickfont.size||12):15,n=e._length/i):(i=e._id.charAt(0)==="y"?40:80,n=Vo.constrain(e._length/i,4,9)+1),e._name==="radialaxis"&&(n*=2)),e.minor&&e.minor.tickmode!=="array"||e.tickmode==="array"&&(n*=100),e._roughDTick=Math.abs(r[1]-r[0])/n,kn.autoTicks(e,e._roughDTick),e._minDtick>0&&e.dtick0?(a=n-1,o=n):(a=n,o=n);var s=e[a].value,l=e[o].value,u=Math.abs(l-s),c=r||u,f=0;c>=mL?u>=mL&&u<=Qat?f=u:f=gL:r===eB&&c>=yL?u>=yL&&u<=eot?f=u:f=eB:c>=_L?u>=_L&&u<=tot?f=u:f=R3:r===Yp&&c>=Yp?f=Yp:c>=Fv?f=Fv:r===s_&&c>=s_?f=s_:r===xm&&c>=xm&&(f=xm);var h;f>=u&&(f=u,h=!0);var d=i+f;if(t.rangebreaks&&f>0){for(var v=84,x=0,b=0;bYp&&(f=u)}(f>0||n===0)&&(e[n].periodX=i+f/2)}}kn.calcTicks=function(t,r){for(var n=t.type,i=t.calendar,a=t.ticklabelstep,o=t.ticklabelmode==="period",s=t.range[0]>t.range[1],l=!t.ticklabelindex||Vo.isArrayOrTypedArray(t.ticklabelindex)?t.ticklabelindex:[t.ticklabelindex],u=Vo.simpleMap(t.range,t.r2l,void 0,void 0,r),c=u[1]=(k?0:1);A--){var L=!A;A?(t._dtickInit=t.dtick,t._tick0Init=t.tick0):(t.minor._dtickInit=t.minor.dtick,t.minor._tick0Init=t.minor.tick0);var _=A?t:Vo.extendFlat({},t,t.minor);if(L?kn.prepMinorTicks(_,t,r):kn.prepTicks(_,r),_.tickmode==="array"){A?(b=[],v=ise(t,!L)):(g=[],x=ise(t,!L));continue}if(_.tickmode==="sync"){b=[],v=vot(t);continue}var C=sB(u),M=C[0],p=C[1],P=ph(_.dtick),T=n==="log"&&!(P||_.dtick.charAt(0)==="L"),F=kn.tickFirst(_,r);if(A){if(t._tmin=F,F=p:V<=p;V=kn.tickIncrement(V,G,c,i)){if(A&&H++,_.rangebreaks&&!c){if(V=h)break}if(b.length>d||V===q)break;q=V;var N={value:V};A?(T&&V!==(V|0)&&(N.simpleLabel=!0),a>1&&H%a&&(N.skipLabel=!0),b.push(N)):(N.minor=!0,g.push(N))}}if(!g||g.length<2)l=!1;else{var W=(g[1].value-g[0].value)*(s?-1:1);Oot(W,t.tickformat)||(l=!1)}if(!l)E=b;else{var re=b.concat(g);o&&b.length&&(re=re.slice(1)),re=re.sort(function(Rt,kt){return Rt.value-kt.value}).filter(function(Rt,kt,Ct){return kt===0||Rt.value!==Ct[kt-1].value});var ae=re.map(function(Rt,kt){return Rt.minor===void 0&&!Rt.skipLabel?kt:null}).filter(function(Rt){return Rt!==null});ae.forEach(function(Rt){l.map(function(kt){var Ct=Rt+kt;Ct>=0&&Ct-1;ze--){if(b[ze].drop){b.splice(ze,1);continue}b[ze].value=QO(b[ze].value,t);var ce=t.c2p(b[ze].value);(Ce?Re>ce-me:Reh||Yth&&(Ct.periodX=h),Yti&&hgL)t/=gL,n=i(10),e.dtick="M"+12*_m(t,n,vL);else if(a>R3)t/=R3,e.dtick="M"+_m(t,1,nse);else if(a>Fv){if(e.dtick=_m(t,Fv,e._hasDayOfWeekBreaks?[1,2,7,14]:pot),!r){var o=kn.getTickFormat(e),s=e.ticklabelmode==="period";s&&(e._rawTick0=e.tick0),/%[uVW]/.test(o)?e.tick0=Vo.dateTick0(e.calendar,2):e.tick0=Vo.dateTick0(e.calendar,1),s&&(e._dowTick0=e.tick0)}}else a>xm?e.dtick=_m(t,xm,nse):a>tM?e.dtick=_m(t,tM,ase):a>xL?e.dtick=_m(t,xL,ase):(n=i(10),e.dtick=_m(t,n,vL))}else if(e.type==="log"){e.tick0=0;var l=Vo.simpleMap(e.range,e.r2l);if(e._isMinor&&(t*=1.5),t>.7)e.dtick=Math.ceil(t);else if(Math.abs(l[1]-l[0])<1){var u=1.5*Math.abs((l[1]-l[0])/t);t=Math.abs(Math.pow(10,l[1])-Math.pow(10,l[0]))/u,n=i(10),e.dtick="L"+_m(t,n,vL)}else e.dtick=t>.3?"D2":"D1"}else e.type==="category"||e.type==="multicategory"?(e.tick0=0,e.dtick=Math.ceil(Math.max(t,1))):cB(e)?(e.tick0=0,n=1,e.dtick=_m(t,n,got)):(e.tick0=0,n=i(10),e.dtick=_m(t,n,vL));if(e.dtick===0&&(e.dtick=1),!ph(e.dtick)&&typeof e.dtick!="string"){var c=e.dtick;throw e.dtick=1,"ax.dtick error: "+String(c)}};function dse(e){var t=e.dtick;if(e._tickexponent=0,!ph(t)&&typeof t!="string"&&(t=1),(e.type==="category"||e.type==="multicategory")&&(e._tickround=null),e.type==="date"){var r=e.r2l(e.tick0),n=e.l2r(r).replace(/(^-|i)/g,""),i=n.length;if(String(t).charAt(0)==="M")i>10||n.substr(5)!=="01-01"?e._tickround="d":e._tickround=+t.substr(1)%12===0?"y":"m";else if(t>=Fv&&i<=10||t>=Fv*15)e._tickround="d";else if(t>=tM&&i<=16||t>=xm)e._tickround="M";else if(t>=xL&&i<=19||t>=tM)e._tickround="S";else{var a=e.l2r(r+t).replace(/^-/,"").length;e._tickround=Math.max(i,a)-20,e._tickround<0&&(e._tickround=4)}}else if(ph(t)||t.charAt(0)==="L"){var o=e.range.map(e.r2d||Number);ph(t)||(t=Number(t.substr(1))),e._tickround=2-Math.floor(Math.log(t)/Math.LN10+.01);var s=Math.max(Math.abs(o[0]),Math.abs(o[1])),l=Math.floor(Math.log(s)/Math.LN10+.01),u=e.minexponent===void 0?3:e.minexponent;Math.abs(l)>u&&(wL(e.exponentformat)&&!lB(l)?e._tickexponent=3*Math.round((l-1)/3):e._tickexponent=l)}else e._tickround=null}kn.tickIncrement=function(e,t,r,n){var i=r?-1:1;if(ph(t))return Vo.increment(e,i*t);var a=t.charAt(0),o=i*Number(t.substr(1));if(a==="M")return Vo.incrementMonth(e,o,n);if(a==="L")return Math.log(Math.pow(10,e)+o)/Math.LN10;if(a==="D"){var s=t==="D2"?hse:fse,l=e+i*.01,u=Vo.roundUp(Vo.mod(l,1),s,r);return Math.floor(l)+Math.log(w0.round(Math.pow(10,u),1))/Math.LN10}throw"unrecognized dtick "+String(t)};kn.tickFirst=function(e,t){var r=e.r2l||Number,n=Vo.simpleMap(e.range,r,void 0,void 0,t),i=n[1]=0&&g<=e._length?b:null};if(a&&Vo.isArrayOrTypedArray(e.ticktext)){var f=Vo.simpleMap(e.range,e.r2l),h=(Math.abs(f[1]-f[0])-(e._lBreaks||0))/1e4;for(u=0;u"+s;else{var u=nM(e),c=e._trueSide||e.side;(!u&&c==="top"||u&&c==="bottom")&&(o+="
")}t.text=o}function yot(e,t,r,n,i){var a=e.dtick,o=t.x,s=e.tickformat,l=typeof a=="string"&&a.charAt(0);if(i==="never"&&(i=""),n&&l!=="L"&&(a="L3",l="L"),s||l==="L")t.text=iM(Math.pow(10,o),e,i,n);else if(ph(a)||l==="D"&&Vo.mod(o+.01,1)<.1){var u=Math.round(o),c=Math.abs(u),f=e.exponentformat;f==="power"||wL(f)&&lB(u)?(u===0?t.text=1:u===1?t.text="10":t.text="10"+(u>1?"":kb)+c+"",t.fontSize*=1.25):(f==="e"||f==="E")&&c>2?t.text="1"+f+(u>0?"+":kb)+c:(t.text=iM(Math.pow(10,o),e,"","fakehover"),a==="D1"&&e._id.charAt(0)==="y"&&(t.dy-=t.fontSize/6))}else if(l==="D")t.text=String(Math.round(Math.pow(10,Vo.mod(o,1)))),t.fontSize*=.75;else throw"unrecognized dtick "+String(a);if(e.dtick==="D1"){var h=String(t.text).charAt(0);(h==="0"||h==="1")&&(e._id.charAt(0)==="y"?t.dx-=t.fontSize/4:(t.dy+=t.fontSize/2,t.dx+=(e.range[1]>e.range[0]?1:-1)*t.fontSize*(o<0?.5:.25)))}}function _ot(e,t){var r=e._categories[Math.round(t.x)];r===void 0&&(r=""),t.text=String(r)}function xot(e,t,r){var n=Math.round(t.x),i=e._categories[n]||[],a=i[1]===void 0?"":String(i[1]),o=i[0]===void 0?"":String(i[0]);r?t.text=o+" - "+a:(t.text=a,t.text2=o)}function bot(e,t,r,n,i){i==="never"?i="":e.showexponent==="all"&&Math.abs(t.x/e.dtick)<1e-6&&(i="hide"),t.text=iM(t.x,e,i,n)}function wot(e,t,r,n,i){if(e.thetaunit==="radians"&&!r){var a=t.x/180;if(a===0)t.text="0";else{var o=Tot(a);if(o[1]>=100)t.text=iM(Vo.deg2rad(t.x),e,i,n);else{var s=t.x<0;o[1]===1?o[0]===1?t.text="\u03C0":t.text=o[0]+"\u03C0":t.text=["",o[0],"","\u2044","",o[1],"","\u03C0"].join(""),s&&(t.text=kb+t.text)}}}else t.text=iM(t.x,e,i,n)}function Tot(e){function t(s,l){return Math.abs(s-l)<=1e-6}function r(s,l){return t(l,0)?s:r(l,s%l)}function n(s){for(var l=1;!t(Math.round(s*l)/l,s);)l*=10;return l}var i=n(e),a=e*i,o=Math.abs(r(a,i));return[Math.round(a/o),Math.round(i/o)]}var Aot=["f","p","n","\u03BC","m","","k","M","G","T"];function wL(e){return e==="SI"||e==="B"}function lB(e){return e>14||e<-15}function iM(e,t,r,n){var i=e<0,a=t._tickround,o=r||t.exponentformat||"B",s=t._tickexponent,l=kn.getTickFormat(t),u=t.separatethousands;if(n){var c={exponentformat:o,minexponent:t.minexponent,dtick:t.showexponent==="none"?t.dtick:ph(e)&&Math.abs(e)||1,range:t.showexponent==="none"?t.range.map(t.r2d):[0,e||1]};dse(c),a=(Number(c._tickround)||0)+4,s=c._tickexponent,t.hoverformat&&(l=t.hoverformat)}if(l)return t._numFormat(l)(e).replace(/-/g,kb);var f=Math.pow(10,-a)/2;if(o==="none"&&(s=0),e=Math.abs(e),e"+v+"":o==="B"&&s===9?e+="B":wL(o)&&(e+=Aot[s/3+5])}return i?kb+e:e}kn.getTickFormat=function(e){var t;function r(l){return typeof l!="string"?l:Number(l.replace("M",""))*R3}function n(l,u){var c=["L","D"];if(typeof l==typeof u){if(typeof l=="number")return l-u;var f=c.indexOf(l.charAt(0)),h=c.indexOf(u.charAt(0));return f===h?Number(l.replace(/(L|D)/g,""))-Number(u.replace(/(L|D)/g,"")):f-h}else return typeof l=="number"?1:-1}function i(l,u,c){var f=c||function(v){return v},h=u[0],d=u[1];return(!h&&typeof h!="number"||f(h)<=f(l))&&(!d&&typeof d!="number"||f(d)>=f(l))}function a(l,u){var c=u[0]===null,f=u[1]===null,h=n(l,u[0])>=0,d=n(l,u[1])<=0;return(c||h)&&(f||d)}var o,s;if(e.tickformatstops&&e.tickformatstops.length>0)switch(e.type){case"date":case"linear":{for(t=0;t=0&&i.unshift(i.splice(c,1).shift())}});var s={false:{left:0,right:0}};return Vo.syncOrAsync(i.map(function(l){return function(){if(l){var u=kn.getFromId(e,l);r||(r={}),r.axShifts=s,r.overlayingShiftedAx=o;var c=kn.drawOne(e,u,r);return u._shiftPusher&&oB(u,u._fullDepth||0,s,!0),u._r=u.range.slice(),u._rl=Vo.simpleMap(u._r,u.r2l),c}}}))};kn.drawOne=function(e,t,r){r=r||{};var n=r.axShifts||{},i=r.overlayingShiftedAx||[],a,o,s;t.setScale();var l=e._fullLayout,u=t._id,c=u.charAt(0),f=kn.counterLetter(u),h=l._plots[t._mainSubplot];if(!h)return;if(t._shiftPusher=t.autoshift||i.indexOf(t._id)!==-1||i.indexOf(t.overlaying)!==-1,t._shiftPusher&t.anchor==="free"){var d=t.linewidth/2||0;t.ticks==="inside"&&(d+=t.ticklen),oB(t,d,n,!0),oB(t,t.shift||0,n,!1)}(r.skipTitle!==!0||t._shift===void 0)&&(t._shift=qot(t,n));var v=h[c+"axislayer"],x=t._mainLinePosition,b=x+=t._shift,g=t._mainMirrorPosition,E=t._vals=kn.calcTicks(t),k=[t.mirror,b,g].join("_");for(a=0;a0?Ct.bottom-Rt:0,kt))));var Ke=0,xt=0;if(t._shiftPusher&&(Ke=Math.max(kt,Ct.height>0?rt==="l"?Rt-Ct.left:Ct.right-Rt:0),t.title.text!==l._dfltTitle[c]&&(xt=(t._titleStandoff||0)+(t._titleScoot||0),rt==="l"&&(xt+=sse(t))),t._fullDepth=Math.max(Ke,xt)),t.automargin){Yt={x:0,y:0,r:0,l:0,t:0,b:0};var bt=[0,1],Lt=typeof t._shift=="number"?t._shift:0;if(c==="x"){if(rt==="b"?Yt[rt]=t._depth:(Yt[rt]=t._depth=Math.max(Ct.width>0?Rt-Ct.top:0,kt),bt.reverse()),Ct.width>0){var St=Ct.right-(t._offset+t._length);St>0&&(Yt.xr=1,Yt.r=St);var Et=t._offset-Ct.left;Et>0&&(Yt.xl=0,Yt.l=Et)}}else if(rt==="l"?(t._depth=Math.max(Ct.height>0?Rt-Ct.left:0,kt),Yt[rt]=t._depth-Lt):(t._depth=Math.max(Ct.height>0?Ct.right-Rt:0,kt),Yt[rt]=t._depth+Lt,bt.reverse()),Ct.height>0){var dt=Ct.bottom-(t._offset+t._length);dt>0&&(Yt.yb=0,Yt.b=dt);var Ht=t._offset-Ct.top;Ht>0&&(Yt.yt=1,Yt.t=Ht)}Yt[f]=t.anchor==="free"?t.position:t._anchorAxis.domain[bt[0]],t.title.text!==l._dfltTitle[c]&&(Yt[rt]+=sse(t)+(t.title.standoff||0)),t.mirror&&t.anchor!=="free"&&(xr={x:0,y:0,r:0,l:0,t:0,b:0},xr[ot]=t.linewidth,t.mirror&&t.mirror!==!0&&(xr[ot]+=kt),t.mirror===!0||t.mirror==="ticks"?xr[f]=t._anchorAxis.domain[bt[1]]:(t.mirror==="all"||t.mirror==="allticks")&&(xr[f]=[t._counterDomainMin,t._counterDomainMax][bt[1]]))}qt&&(er=QS.getComponentMethod("rangeslider","autoMarginOpts")(e,t)),typeof t.automargin=="string"&&(ose(Yt,t.automargin),ose(xr,t.automargin)),P3.autoMargin(e,uB(t),Yt),P3.autoMargin(e,gse(t),xr),P3.autoMargin(e,mse(t),er)}),Vo.syncOrAsync(nt)}};function ose(e,t){if(e){var r=Object.keys(Qoe).reduce(function(n,i){return t.indexOf(i)!==-1&&Qoe[i].forEach(function(a){n[a]=1}),n},{});Object.keys(e).forEach(function(n){r[n]||(n.length===1?e[n]=0:delete e[n])})}}function Sot(e,t){var r=[],n,i=function(a,o){var s=a.xbnd[o];s!==null&&r.push(Vo.extendFlat({},a,{x:s}))};if(t.length){for(n=0;ne.range[1],s=e.ticklabelposition&&e.ticklabelposition.indexOf("inside")!==-1,l=!s;if(r){var u=o?-1:1;r=r*u}if(n){var c=e.side,f=s&&(c==="top"||c==="left")||l&&(c==="bottom"||c==="right")?1:-1;n=n*f}return e._id.charAt(0)==="x"?function(h){return I3(i+e._offset+e.l2p(nB(h))+r,a+n)}:function(h){return I3(a+n,i+e._offset+e.l2p(nB(h))+r)}};function nB(e){return e.periodX!==void 0?e.periodX:e.x}function Cot(e){var t=e.ticklabelposition||"",r=function(d){return t.indexOf(d)!==-1},n=r("top"),i=r("left"),a=r("right"),o=r("bottom"),s=r("inside"),l=o||i||n||a;if(!l&&!s)return[0,0];var u=e.side,c=l?(e.tickwidth||0)/2:0,f=bL,h=e.tickfont?e.tickfont.size:12;return(o||n)&&(c+=h*Cb,f+=(e.linewidth||0)/2),(i||a)&&(c+=(e.linewidth||0)/2,f+=bL),s&&u==="top"&&(f-=h*(1-Cb)),(i||n)&&(c=-c),(u==="bottom"||u==="right")&&(f=-f),[l?c:0,s?f:0]}kn.makeTickPath=function(e,t,r,n){n||(n={});var i=n.minor;if(i&&!e.minor)return"";var a=n.len!==void 0?n.len:i?e.minor.ticklen:e.ticklen,o=e._id.charAt(0),s=(e.linewidth||1)/2;return o==="x"?"M0,"+(t+s*r)+"v"+a*r:"M"+(t+s*r)+",0h"+a*r};kn.makeLabelFns=function(e,t,r){var n=e.ticklabelposition||"",i=function(F){return n.indexOf(F)!==-1},a=i("top"),o=i("left"),s=i("right"),l=i("bottom"),u=l||o||a||s,c=i("inside"),f=n==="inside"&&e.ticks==="inside"||!c&&e.ticks==="outside"&&e.tickson!=="boundaries",h=0,d=0,v=f?e.ticklen:0;if(c?v*=-1:u&&(v=0),f&&(h+=v,r)){var x=Vo.deg2rad(r);h=v*Math.cos(x)+1,d=v*Math.sin(x)}e.showticklabels&&(f||e.showline)&&(h+=.2*e.tickfont.size),h+=(e.linewidth||1)/2*(c?-1:1);var b={labelStandoff:h,labelShift:d},g,E,k,A,L=0,_=e.side,C=e._id.charAt(0),M=e.tickangle,p;if(C==="x")p=!c&&_==="bottom"||c&&_==="top",A=p?1:-1,c&&(A*=-1),g=d*A,E=t+h*A,k=p?1:-.2,Math.abs(M)===90&&(c?k+=$S:M===-90&&_==="bottom"?k=Cb:M===90&&_==="top"?k=$S:k=.5,L=$S/2*(M/90)),b.xFn=function(F){return F.dx+g+L*F.fontSize},b.yFn=function(F){return F.dy+E+F.fontSize*k},b.anchorFn=function(F,q){if(u){if(o)return"end";if(s)return"start"}return!ph(q)||q===0||q===180?"middle":q*A<0!==c?"end":"start"},b.heightFn=function(F,q,V){return q<-60||q>60?-.5*V:e.side==="top"!==c?-V:0};else if(C==="y"){if(p=!c&&_==="left"||c&&_==="right",A=p?1:-1,c&&(A*=-1),g=h,E=d*A,k=0,!c&&Math.abs(M)===90&&(M===-90&&_==="left"||M===90&&_==="right"?k=Cb:k=.5),c){var P=ph(M)?+M:0;if(P!==0){var T=Vo.deg2rad(P);L=Math.abs(Math.sin(T))*Cb*A,k=0}}b.xFn=function(F){return F.dx+t-(g+F.fontSize*k)*A+L*F.fontSize},b.yFn=function(F){return F.dy+E+F.fontSize*$S},b.anchorFn=function(F,q){return ph(q)&&Math.abs(q)===90?"middle":p?"end":"start"},b.heightFn=function(F,q,V){return e.side==="right"&&(q*=-1),q<-30?-V:q<30?-.5*V:0}}return b};function SL(e){return[e.text,e.x,e.axInfo,e.font,e.fontSize,e.fontColor].join("_")}kn.drawTicks=function(e,t,r){r=r||{};var n=t._id+"tick",i=[].concat(t.minor&&t.minor.ticks?r.vals.filter(function(o){return o.minor&&!o.noTick}):[]).concat(t.ticks?r.vals.filter(function(o){return!o.minor&&!o.noTick}):[]),a=r.layer.selectAll("path."+n).data(i,SL);a.exit().remove(),a.enter().append("path").classed(n,1).classed("ticks",1).classed("crisp",r.crisp!==!1).each(function(o){return eM.stroke(w0.select(this),o.minor?t.minor.tickcolor:t.tickcolor)}).style("stroke-width",function(o){return Xp.crispRound(e,o.minor?t.minor.tickwidth:t.tickwidth,1)+"px"}).attr("d",r.path).style("display",null),ML(t,[lse]),a.attr("transform",r.transFn)};kn.drawGrid=function(e,t,r){if(r=r||{},t.tickmode!=="sync"){var n=t._id+"grid",i=t.minor&&t.minor.showgrid,a=i?r.vals.filter(function(g){return g.minor}):[],o=t.showgrid?r.vals.filter(function(g){return!g.minor}):[],s=r.counterAxis;if(s&&kn.shouldShowZeroLine(e,t,s))for(var l=t.tickmode==="array",u=0;u=0;v--){var x=v?h:d;if(x){var b=x.selectAll("path."+n).data(v?o:a,SL);b.exit().remove(),b.enter().append("path").classed(n,1).classed("crisp",r.crisp!==!1),b.attr("transform",r.transFn).attr("d",r.path).each(function(g){return eM.stroke(w0.select(this),g.minor?t.minor.gridcolor:t.gridcolor||"#ddd")}).style("stroke-dasharray",function(g){return Xp.dashStyle(g.minor?t.minor.griddash:t.griddash,g.minor?t.minor.gridwidth:t.gridwidth)}).style("stroke-width",function(g){return(g.minor?f:t._gw)+"px"}).style("display",null),typeof r.path=="function"&&b.attr("d",r.path)}}ML(t,[rB,iB])}};kn.drawZeroLine=function(e,t,r){r=r||r;var n=t._id+"zl",i=kn.shouldShowZeroLine(e,t,r.counterAxis),a=r.layer.selectAll("path."+n).data(i?[{x:0,id:t._id}]:[]);a.exit().remove(),a.enter().append("path").classed(n,1).classed("zl",1).classed("crisp",r.crisp!==!1).each(function(){r.layer.selectAll("path").sort(function(o,s){return oot(o.id,s.id)})}),a.attr("transform",r.transFn).attr("d",r.path).call(eM.stroke,t.zerolinecolor||eM.defaultLine).style("stroke-width",Xp.crispRound(e,t.zerolinewidth,t._gw||1)+"px").style("display",null),ML(t,[tB])};kn.drawLabels=function(e,t,r){r=r||{};var n=e._fullLayout,i=t._id,a=r.cls||i+"tick",o=r.vals.filter(function(N){return N.text}),s=r.labelFns,l=r.secondary?0:t.tickangle,u=(t._prevTickAngles||{})[a],c=r.layer.selectAll("g."+a).data(t.showticklabels?o:[],SL),f=[];c.enter().append("g").classed(a,1).append("text").attr("text-anchor","middle").each(function(N){var W=w0.select(this),re=e._promises.length;W.call(Eb.positionText,s.xFn(N),s.yFn(N)).call(Xp.font,{family:N.font,size:N.fontSize,color:N.fontColor,weight:N.fontWeight,style:N.fontStyle,variant:N.fontVariant,textcase:N.fontTextcase,lineposition:N.fontLineposition,shadow:N.fontShadow}).text(N.text).call(Eb.convertToTspans,e),e._promises[re]?f.push(e._promises.pop().then(function(){h(W,l)})):h(W,l)}),ML(t,[$oe]),c.exit().remove(),r.repositionOnUpdate&&c.each(function(N){w0.select(this).select("text").call(Eb.positionText,s.xFn(N),s.yFn(N))});function h(N,W){N.each(function(re){var ae=w0.select(this),_e=ae.select(".text-math-group"),Me=s.anchorFn(re,W),ke=r.transFn.call(ae.node(),re)+(ph(W)&&+W!=0?" rotate("+W+","+s.xFn(re)+","+(s.yFn(re)-re.fontSize/2)+")":""),ge=Eb.lineCount(ae),ie=rM*re.fontSize,Te=s.heightFn(re,ph(W)?+W:0,(ge-1)*ie);if(Te&&(ke+=I3(0,Te)),_e.empty()){var Ee=ae.select("text");Ee.attr({transform:ke,"text-anchor":Me}),Ee.style("opacity",1),t._adjustTickLabelsOverflow&&t._adjustTickLabelsOverflow()}else{var Ae=Xp.bBox(_e.node()).width,ze=Ae*{end:-.5,start:.5}[Me];_e.attr("transform",ke+I3(ze,0))}})}t._adjustTickLabelsOverflow=function(){var N=t.ticklabeloverflow;if(!(!N||N==="allow")){var W=N.indexOf("hide")!==-1,re=t._id.charAt(0)==="x",ae=0,_e=re?e._fullLayout.width:e._fullLayout.height;if(N.indexOf("domain")!==-1){var Me=Vo.simpleMap(t.range,t.r2l);ae=t.l2p(Me[0])+t._offset,_e=t.l2p(Me[1])+t._offset}var ke=Math.min(ae,_e),ge=Math.max(ae,_e),ie=t.side,Te=1/0,Ee=-1/0;c.each(function(me){var Re=w0.select(this),ce=Re.select(".text-math-group");if(ce.empty()){var Ge=Xp.bBox(Re.node()),nt=0;re?(Ge.right>ge||Ge.leftge||Ge.top+(t.tickangle?0:me.fontSize/4)t["_visibleLabelMin_"+Me._id]?me.style("display","none"):ge.K==="tick"&&!ke&&me.style("display",null)})})})})},h(c,u+1?u:l);function d(){return f.length&&Promise.all(f)}var v=null;function x(){if(h(c,l),o.length&&t.autotickangles&&(t.type!=="log"||String(t.dtick).charAt(0)!=="D")){v=t.autotickangles[0];var N=0,W=[],re,ae=1;c.each(function(Ct){N=Math.max(N,Ct.fontSize);var Yt=t.l2p(Ct.x),xr=aB(this),er=Xp.bBox(xr.node());ae=Math.max(ae,Eb.lineCount(xr)),W.push({top:0,bottom:10,height:10,left:Yt-er.width/2,right:Yt+er.width/2+2,width:er.width+2})});var _e=(t.tickson==="boundaries"||t.showdividers)&&!r.secondary,Me=o.length,ke=Math.abs((o[Me-1].x-o[0].x)*t._m)/(Me-1),ge=_e?ke/2:ke,ie=_e?t.ticklen:N*1.25*ae,Te=Math.sqrt(Math.pow(ge,2)+Math.pow(ie,2)),Ee=ge/Te,Ae=t.autotickangles.map(function(Ct){return Ct*Math.PI/180}),ze=Ae.find(function(Ct){return Math.abs(Math.cos(Ct))<=Ee});ze===void 0&&(ze=Ae.reduce(function(Ct,Yt){return Math.abs(Math.cos(Ct))H*V&&(T=V,M[C]=p[C]=F[C])}var X=Math.abs(T-P);X-A>0?(X-=A,A*=1+A/X):A=0,t._id.charAt(0)!=="y"&&(A=-A),M[_]=E.p2r(E.r2p(p[_])+L*A),E.autorange==="min"||E.autorange==="max reversed"?(M[0]=null,E._rangeInitial0=void 0,E._rangeInitial1=void 0):(E.autorange==="max"||E.autorange==="min reversed")&&(M[1]=null,E._rangeInitial0=void 0,E._rangeInitial1=void 0),n._insideTickLabelsUpdaterange[E._name+".range"]=M}var G=Vo.syncOrAsync(b);return G&&G.then&&e._promises.push(G),G};function Lot(e,t,r){var n=t._id+"divider",i=r.vals,a=r.layer.selectAll("path."+n).data(i,SL);a.exit().remove(),a.enter().insert("path",":first-child").classed(n,1).classed("crisp",1).call(eM.stroke,t.dividercolor).style("stroke-width",Xp.crispRound(e,t.dividerwidth,1)+"px"),a.attr("transform",r.transFn).attr("d",r.path)}kn.getPxPosition=function(e,t){var r=e._fullLayout._size,n=t._id.charAt(0),i=t.side,a;if(t.anchor!=="free"?a=t._anchorAxis:n==="x"?a={_offset:r.t+(1-(t.position||0))*r.h,_length:0}:n==="y"&&(a={_offset:r.l+(t.position||0)*r.w+t._shift,_length:0}),i==="top"||i==="left")return a._offset;if(i==="bottom"||i==="right")return a._offset+a._length};function sse(e){var t=e.title.font.size,r=(e.title.text.match(Eb.BR_TAG_ALL)||[]).length;return e.title.hasOwnProperty("standoff")?t*(Cb+r*rM):r?t*(r+1)*rM:t}function Pot(e,t){var r=e._fullLayout,n=t._id,i=n.charAt(0),a=t.title.font.size,o,s=(t.title.text.match(Eb.BR_TAG_ALL)||[]).length;if(t.title.hasOwnProperty("standoff"))t.side==="bottom"||t.side==="right"?o=t._depth+t.title.standoff+a*Cb:(t.side==="top"||t.side==="left")&&(o=t._depth+t.title.standoff+a*($S+s*rM));else{var l=nM(t);if(t.type==="multicategory")o=t._depth;else{var u=1.5*a;l&&(u=.5*a,t.ticks==="outside"&&(u+=t.ticklen)),o=10+u+(t.linewidth?t.linewidth-1:0)}l||(i==="x"?o+=t.side==="top"?a*(t.showticklabels?1:0):a*(t.showticklabels?1.5:.5):o+=t.side==="right"?a*(t.showticklabels?1:.5):a*(t.showticklabels?.5:0))}var c=kn.getPxPosition(e,t),f,h,d;i==="x"?(h=t._offset+t._length/2,d=t.side==="top"?c-o:c+o):(d=t._offset+t._length/2,h=t.side==="right"?c+o:c-o,f={rotate:"-90",offset:0});var v;if(t.type!=="multicategory"){var x=t._selections[t._id+"tick"];if(v={selection:x,side:t.side},x&&x.node()&&x.node().parentNode){var b=Xp.getTranslate(x.node().parentNode);v.offsetLeft=b.x,v.offsetTop=b.y}t.title.hasOwnProperty("standoff")&&(v.pad=0)}return t._titleStandoff=o,Jat.draw(e,n+"title",{propContainer:t,propName:t._name+".title.text",placeholder:r._dfltTitle[i],avoid:v,transform:f,attributes:{x:h,y:d,"text-anchor":"middle"}})}kn.shouldShowZeroLine=function(e,t,r){var n=Vo.simpleMap(t.range,t.r2l);return n[0]*n[1]<=0&&t.zeroline&&(t.type==="linear"||t.type==="-")&&!(t.rangebreaks&&t.maskBreaks(0)===TL)&&(pse(t,0)||!Iot(e,t,r,n)||Rot(e,t))};kn.clipEnds=function(e,t){return t.filter(function(r){return pse(e,r.x)})};function pse(e,t){var r=e.l2p(t);return r>1&&r1)for(i=1;i=i.min&&e=iot:/%L/.test(t)?e>=rot:/%[SX]/.test(t)?e>=xL:/%M/.test(t)?e>=tM:/%[HI]/.test(t)?e>=xm:/%p/.test(t)?e>=s_:/%[Aadejuwx]/.test(t)?e>=Fv:/%[UVW]/.test(t)?e>=Yp:/%[Bbm]/.test(t)?e>=_L:/%[q]/.test(t)?e>=yL:/%[Yy]/.test(t)?e>=mL:!0}});var fB=ye((grr,_se)=>{"use strict";_se.exports=function(t,r,n){var i,a;if(n){var o=r==="reversed"||r==="min reversed"||r==="max reversed";i=n[o?1:0],a=n[o?0:1]}var s=t("autorangeoptions.minallowed",a===null?i:void 0),l=t("autorangeoptions.maxallowed",i===null?a:void 0);s===void 0&&t("autorangeoptions.clipmin"),l===void 0&&t("autorangeoptions.clipmax"),t("autorangeoptions.include")}});var hB=ye((mrr,xse)=>{"use strict";var Bot=fB();xse.exports=function(t,r,n,i){var a=r._template||{},o=r.type||a.type||"-";n("minallowed"),n("maxallowed");var s=n("range");if(!s){var l;!i.noInsiderange&&o!=="log"&&(l=n("insiderange"),l&&(l[0]===null||l[1]===null)&&(r.insiderange=!1,l=void 0),l&&(s=n("range",l)))}var u=r.getAutorangeDflt(s,i),c=n("autorange",u),f;s&&(s[0]===null&&s[1]===null||(s[0]===null||s[1]===null)&&(c==="reversed"||c===!0)||s[0]!==null&&(c==="min"||c==="max reversed")||s[1]!==null&&(c==="max"||c==="min reversed"))&&(s=void 0,delete r.range,r.autorange=!0,f=!0),f||(u=r.getAutorangeDflt(s,i),c=n("autorange",u)),c&&(Bot(n,c,s),(o==="linear"||o==="-")&&n("rangemode")),r.cleanRange()}});var wse=ye((yrr,bse)=>{var Not={left:0,top:0};bse.exports=Uot;function Uot(e,t,r){t=t||e.currentTarget||e.srcElement,Array.isArray(r)||(r=[0,0]);var n=e.clientX||0,i=e.clientY||0,a=Vot(t);return r[0]=n-a.left,r[1]=i-a.top,r}function Vot(e){return e===window||e===document||e===document.body?Not:e.getBoundingClientRect()}});var EL=ye((_rr,Tse)=>{"use strict";var Hot=Yq();function Got(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});window.addEventListener("test",null,t),window.removeEventListener("test",null,t)}catch(r){e=!1}return e}Tse.exports=Hot&&Got()});var Sse=ye((xrr,Ase)=>{"use strict";Ase.exports=function(t,r,n,i,a){var o=(t-n)/(i-n),s=o+r/(i-n),l=(o+s)/2;return a==="left"||a==="bottom"?o:a==="center"||a==="middle"?l:a==="right"||a==="top"?s:o<2/3-l?o:s>4/3-l?s:l}});var kse=ye((brr,Ese)=>{"use strict";var Mse=Mr(),jot=[["sw-resize","s-resize","se-resize"],["w-resize","move","e-resize"],["nw-resize","n-resize","ne-resize"]];Ese.exports=function(t,r,n,i){return n==="left"?t=0:n==="center"?t=1:n==="right"?t=2:t=Mse.constrain(Math.floor(t*3),0,2),i==="bottom"?r=0:i==="middle"?r=1:i==="top"?r=2:r=Mse.constrain(Math.floor(r*3),0,2),jot[r][t]}});var Lse=ye((wrr,Cse)=>{"use strict";var Wot=g3(),Zot=L6(),Xot=DS().getGraphDiv,Yot=IS(),dB=Cse.exports={};dB.wrapped=function(e,t,r){e=Xot(e),e._fullLayout&&Zot.clear(e._fullLayout._uid+Yot.HOVERID),dB.raw(e,t,r)};dB.raw=function(t,r){var n=t._fullLayout,i=t._hoverdata;r||(r={}),!(r.target&&!t._dragged&&Wot.triggerHandler(t,"plotly_beforehover",r)===!1)&&(n._hoverlayer.selectAll("g").remove(),n._hoverlayer.selectAll("line").remove(),n._hoverlayer.selectAll("circle").remove(),t._hoverdata=void 0,r.target&&i&&t.emit("plotly_unhover",{event:r,points:i}))}});var gv=ye((Trr,Rse)=>{"use strict";var Kot=wse(),vB=Jq(),Jot=EL(),$ot=Mr().removeElement,Qot=ad(),Lb=Rse.exports={};Lb.align=Sse();Lb.getCursor=kse();var Pse=Lse();Lb.unhover=Pse.wrapped;Lb.unhoverRaw=Pse.raw;Lb.init=function(t){var r=t.gd,n=1,i=r._context.doubleClickDelay,a=t.element,o,s,l,u,c,f,h,d;r._mouseDownTime||(r._mouseDownTime=0),a.style.pointerEvents="all",a.onmousedown=b,Jot?(a._ontouchstart&&a.removeEventListener("touchstart",a._ontouchstart),a._ontouchstart=b,a.addEventListener("touchstart",b,{passive:!1})):a.ontouchstart=b;function v(k,A,L){return Math.abs(k)i&&(n=Math.max(n-1,1)),r._dragged)t.doneFn&&t.doneFn();else if(t.clickFn&&t.clickFn(n,f),!d){var A;try{A=new MouseEvent("click",k)}catch(_){var L=pB(k);A=document.createEvent("MouseEvents"),A.initMouseEvent("click",k.bubbles,k.cancelable,k.view,k.detail,k.screenX,k.screenY,L[0],L[1],k.ctrlKey,k.altKey,k.shiftKey,k.metaKey,k.button,k.relatedTarget)}h.dispatchEvent(A)}r._dragging=!1,r._dragged=!1}};function Ise(){var e=document.createElement("div");e.className="dragcover";var t=e.style;return t.position="fixed",t.left=0,t.right=0,t.top=0,t.bottom=0,t.zIndex=999999999,t.background="none",document.body.appendChild(e),e}Lb.coverSlip=Ise;function pB(e){return Kot(e.changedTouches?e.changedTouches[0]:e,document.body)}});var Tg=ye((Arr,Dse)=>{"use strict";Dse.exports=function(t,r){(t.attr("class")||"").split(" ").forEach(function(n){n.indexOf("cursor-")===0&&t.classed(n,!1)}),r&&t.classed("cursor-"+r,!0)}});var qse=ye((Srr,Fse)=>{"use strict";var gB=Tg(),aM="data-savedcursor",zse="!!";Fse.exports=function(t,r){var n=t.attr(aM);if(r){if(!n){for(var i=(t.attr("class")||"").split(" "),a=0;a{"use strict";var mB=Su(),est=dh();Ose.exports={_isSubplotObj:!0,visible:{valType:"boolean",dflt:!0,editType:"legend"},bgcolor:{valType:"color",editType:"legend"},bordercolor:{valType:"color",dflt:est.defaultLine,editType:"legend"},borderwidth:{valType:"number",min:0,dflt:0,editType:"legend"},font:mB({editType:"legend"}),grouptitlefont:mB({editType:"legend"}),orientation:{valType:"enumerated",values:["v","h"],dflt:"v",editType:"legend"},traceorder:{valType:"flaglist",flags:["reversed","grouped"],extras:["normal"],editType:"legend"},tracegroupgap:{valType:"number",min:0,dflt:10,editType:"legend"},entrywidth:{valType:"number",min:0,editType:"legend"},entrywidthmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"pixels",editType:"legend"},indentation:{valType:"number",min:-15,dflt:0,editType:"legend"},itemsizing:{valType:"enumerated",values:["trace","constant"],dflt:"trace",editType:"legend"},itemwidth:{valType:"number",min:30,dflt:30,editType:"legend"},itemclick:{valType:"enumerated",values:["toggle","toggleothers",!1],dflt:"toggle",editType:"legend"},itemdoubleclick:{valType:"enumerated",values:["toggle","toggleothers",!1],dflt:"toggleothers",editType:"legend"},groupclick:{valType:"enumerated",values:["toggleitem","togglegroup"],dflt:"togglegroup",editType:"legend"},x:{valType:"number",editType:"legend"},xref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"left",editType:"legend"},y:{valType:"number",editType:"legend"},yref:{valType:"enumerated",dflt:"paper",values:["container","paper"],editType:"layoutstyle"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],editType:"legend"},uirevision:{valType:"any",editType:"none"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"legend"},title:{text:{valType:"string",dflt:"",editType:"legend"},font:mB({editType:"legend"}),side:{valType:"enumerated",values:["top","left","top left","top center","top right"],editType:"legend"},editType:"legend"},editType:"legend"}});var CL=ye(kL=>{"use strict";kL.isGrouped=function(t){return(t.traceorder||"").indexOf("grouped")!==-1};kL.isVertical=function(t){return t.orientation!=="h"};kL.isReversed=function(t){return(t.traceorder||"").indexOf("reversed")!==-1}});var bB=ye((krr,Bse)=>{"use strict";var _B=ba(),Kp=Mr(),tst=Vs(),rst=vl(),ist=yB(),nst=s3(),xB=CL();function ast(e,t,r,n){var i=t[e]||{},a=tst.newContainer(r,e);function o(G,N){return Kp.coerce(i,a,ist,G,N)}var s=Kp.coerceFont(o,"font",r.font);o("bgcolor",r.paper_bgcolor),o("bordercolor");var l=o("visible");if(l){for(var u,c=function(G,N){var W=u._input,re=u;return Kp.coerce(W,re,rst,G,N)},f=r.font||{},h=Kp.coerceFont(o,"grouptitlefont",f,{overrideDflt:{size:Math.round(f.size*1.1)}}),d=0,v=!1,x="normal",b=(r.shapes||[]).filter(function(G){return G.showlegend}),g=n.concat(b).filter(function(G){return e===(G.legend||"legend")}),E=0;E(e==="legend"?1:0));if(A===!1&&(r[e]=void 0),!(A===!1&&!i.uirevision)&&(o("uirevision",r.uirevision),A!==!1)){o("borderwidth");var L=o("orientation"),_=o("yref"),C=o("xref"),M=L==="h",p=_==="paper",P=C==="paper",T,F,q,V="left";M?(T=0,_B.getComponentMethod("rangeslider","isVisible")(t.xaxis)?p?(F=1.1,q="bottom"):(F=1,q="top"):p?(F=-.1,q="top"):(F=0,q="bottom")):(F=1,q="auto",P?T=1.02:(T=1,V="right")),Kp.coerce(i,a,{x:{valType:"number",editType:"legend",min:P?-2:0,max:P?3:1,dflt:T}},"x"),Kp.coerce(i,a,{y:{valType:"number",editType:"legend",min:p?-2:0,max:p?3:1,dflt:F}},"y"),o("traceorder",x),xB.isGrouped(r[e])&&o("tracegroupgap"),o("entrywidth"),o("entrywidthmode"),o("indentation"),o("itemsizing"),o("itemwidth"),o("itemclick"),o("itemdoubleclick"),o("groupclick"),o("xanchor",V),o("yanchor",q),o("valign"),Kp.noneOrAll(i,a,["x","y"]);var H=o("title.text");if(H){o("title.side",M?"left":"top");var X=Kp.extendFlat({},s,{size:Kp.bigFont(s.size)});Kp.coerceFont(o,"title.font",X)}}}}Bse.exports=function(t,r,n){var i,a=n.slice(),o=r.shapes;if(o)for(i=0;i{"use strict";var D3=ba(),TB=Mr(),ost=TB.pushUnique,wB=!0;Nse.exports=function(t,r,n){var i=r._fullLayout;if(r._dragged||r._editing)return;var a=i.legend.itemclick,o=i.legend.itemdoubleclick,s=i.legend.groupclick;n===1&&a==="toggle"&&o==="toggleothers"&&wB&&r.data&&r._context.showTips&&TB.notifier(TB._(r,"Double-click on legend to isolate one trace"),"long"),wB=!1;var l;if(n===1?l=a:n===2&&(l=o),!l)return;var u=s==="togglegroup",c=i.hiddenlabels?i.hiddenlabels.slice():[],f=t.data()[0][0];if(f.groupTitle&&f.noClick)return;var h=r._fullData,d=(i.shapes||[]).filter(function(Rt){return Rt.showlegend}),v=h.concat(d),x=f.trace;x._isShape&&(x=x._fullInput);var b=x.legendgroup,g,E,k,A,L,_,C={},M=[],p=[],P=[];function T(Rt,kt){var Ct=M.indexOf(Rt),Yt=C.visible;return Yt||(Yt=C.visible=[]),M.indexOf(Rt)===-1&&(M.push(Rt),Ct=M.length-1),Yt[Ct]=kt,Ct}var F=(i.shapes||[]).map(function(Rt){return Rt._input}),q=!1;function V(Rt,kt){F[Rt].visible=kt,q=!0}function H(Rt,kt){if(!(f.groupTitle&&!u)){var Ct=Rt._fullInput||Rt,Yt=Ct._isShape,xr=Ct.index;xr===void 0&&(xr=Ct._index);var er=Ct.visible===!1?!1:kt;Yt?V(xr,er):T(xr,er)}}var X=x.legend,G=x._fullInput,N=G&&G._isShape;if(!N&&D3.traceIs(x,"pie-like")){var W=f.label,re=c.indexOf(W);if(l==="toggle")re===-1?c.push(W):c.splice(re,1);else if(l==="toggleothers"){var ae=re!==-1,_e=[];for(g=0;g{"use strict";Vse.exports={scrollBarWidth:6,scrollBarMinHeight:20,scrollBarColor:"#808BA4",scrollBarMargin:4,scrollBarEnterAttrs:{rx:20,ry:3,width:0,height:0},titlePad:2,itemGap:5}});var jse=ye((Prr,Gse)=>{"use strict";var Hse=ba(),SB=CL();Gse.exports=function(t,r,n){var i=r._inHover,a=SB.isGrouped(r),o=SB.isReversed(r),s={},l=[],u=!1,c={},f=0,h=0,d,v;function x(G,N,W){if(r.visible!==!1&&!(n&&G!==r._id))if(N===""||!SB.isGrouped(r)){var re="~~i"+f;l.push(re),s[re]=[W],f++}else l.indexOf(N)===-1?(l.push(N),u=!0,s[N]=[W]):s[N].push(W)}for(d=0;dP&&(p=P)}C[d][0]._groupMinRank=p,C[d][0]._preGroupSort=d}var T=function(G,N){return G[0]._groupMinRank-N[0]._groupMinRank||G[0]._preGroupSort-N[0]._preGroupSort},F=function(G,N){return G.trace.legendrank-N.trace.legendrank||G._preSort-N._preSort};for(C.forEach(function(G,N){G[0]._preGroupSort=N}),C.sort(T),d=0;d{"use strict";var LL=Mr();function Wse(e){return e.indexOf("e")!==-1?e.replace(/[.]?0+e/,"e"):e.indexOf(".")!==-1?e.replace(/[.]?0+$/,""):e}Pb.formatPiePercent=function(t,r){var n=Wse((t*100).toPrecision(3));return LL.numSeparate(n,r)+"%"};Pb.formatPieValue=function(t,r){var n=Wse(t.toPrecision(10));return LL.numSeparate(n,r)};Pb.getFirstFilled=function(t,r){if(LL.isArrayOrTypedArray(t))for(var n=0;n{"use strict";var sst=ao(),lst=va();Zse.exports=function(t,r,n,i){var a=n.marker.pattern;a&&a.shape?sst.pointStyle(t,n,i,r):lst.fill(t,r.color)}});var z3=ye((Drr,Jse)=>{"use strict";var Yse=va(),Kse=l_().castOption,ust=Xse();Jse.exports=function(t,r,n,i){var a=n.marker.line,o=Kse(a.color,r.pts)||Yse.defaultLine,s=Kse(a.width,r.pts)||0;t.call(ust,r,n,i).style("stroke-width",s).call(Yse.stroke,o)}});var CB=ye((zrr,ile)=>{"use strict";var qv=xa(),MB=ba(),mv=Mr(),$se=mv.strTranslate,ip=ao(),T0=va(),EB=Dv().extractOpts,PL=lu(),cst=z3(),fst=l_().castOption,hst=AB(),Qse=12,ele=5,Ib=2,dst=10,F3=5;ile.exports=function(t,r,n){var i=r._fullLayout;n||(n=i.legend);var a=n.itemsizing==="constant",o=n.itemwidth,s=(o+hst.itemGap*2)/2,l=$se(s,0),u=function(C,M,p,P){var T;if(C+1)T=C;else if(M&&M.width>0)T=M.width;else return 0;return a?P:Math.min(T,p)};t.each(function(C){var M=qv.select(this),p=mv.ensureSingle(M,"g","layers");p.style("opacity",C[0].trace.opacity);var P=n.indentation,T=n.valign,F=C[0].lineHeight,q=C[0].height;if(T==="middle"&&P===0||!F||!q)p.attr("transform",null);else{var V={top:1,bottom:-1}[T],H=V*(.5*(F-q+3))||0,X=n.indentation;p.attr("transform",$se(X,H))}var G=p.selectAll("g.legendfill").data([C]);G.enter().append("g").classed("legendfill",!0);var N=p.selectAll("g.legendlines").data([C]);N.enter().append("g").classed("legendlines",!0);var W=p.selectAll("g.legendsymbols").data([C]);W.enter().append("g").classed("legendsymbols",!0),W.selectAll("g.legendpoints").data([C]).enter().append("g").classed("legendpoints",!0)}).each(_).each(h).each(v).each(d).each(b).each(A).each(k).each(c).each(f).each(g).each(E);function c(C){var M=tle(C),p=M.showFill,P=M.showLine,T=M.showGradientLine,F=M.showGradientFill,q=M.anyFill,V=M.anyLine,H=C[0],X=H.trace,G,N,W=EB(X),re=W.colorscale,ae=W.reversescale,_e=function(Ae){if(Ae.size())if(p)ip.fillGroupStyle(Ae,r,!0);else{var ze="legendfill-"+X.uid;ip.gradient(Ae,r,ze,kB(ae),re,"fill")}},Me=function(Ae){if(Ae.size()){var ze="legendline-"+X.uid;ip.lineGroupStyle(Ae),ip.gradient(Ae,r,ze,kB(ae),re,"stroke")}},ke=PL.hasMarkers(X)||!q?"M5,0":V?"M5,-2":"M5,-3",ge=qv.select(this),ie=ge.select(".legendfill").selectAll("path").data(p||F?[C]:[]);if(ie.enter().append("path").classed("js-fill",!0),ie.exit().remove(),ie.attr("d",ke+"h"+o+"v6h-"+o+"z").call(_e),P||T){var Te=u(void 0,X.line,dst,ele);N=mv.minExtend(X,{line:{width:Te}}),G=[mv.minExtend(H,{trace:N})]}var Ee=ge.select(".legendlines").selectAll("path").data(P||T?[G]:[]);Ee.enter().append("path").classed("js-line",!0),Ee.exit().remove(),Ee.attr("d",ke+(T?"l"+o+",0.0001":"h"+o)).call(P?ip.lineGroupStyle:Me)}function f(C){var M=tle(C),p=M.anyFill,P=M.anyLine,T=M.showLine,F=M.showMarker,q=C[0],V=q.trace,H=!F&&!P&&!p&&PL.hasText(V),X,G;function N(ie,Te,Ee,Ae){var ze=mv.nestedProperty(V,ie).get(),Ce=mv.isArrayOrTypedArray(ze)&&Te?Te(ze):ze;if(a&&Ce&&Ae!==void 0&&(Ce=Ae),Ee){if(CeEe[1])return Ee[1]}return Ce}function W(ie){return q._distinct&&q.index&&ie[q.index]?ie[q.index]:ie[0]}if(F||H||T){var re={},ae={};if(F){re.mc=N("marker.color",W),re.mx=N("marker.symbol",W),re.mo=N("marker.opacity",mv.mean,[.2,1]),re.mlc=N("marker.line.color",W),re.mlw=N("marker.line.width",mv.mean,[0,5],Ib),ae.marker={sizeref:1,sizemin:1,sizemode:"diameter"};var _e=N("marker.size",mv.mean,[2,16],Qse);re.ms=_e,ae.marker.size=_e}T&&(ae.line={width:N("line.width",W,[0,10],ele)}),H&&(re.tx="Aa",re.tp=N("textposition",W),re.ts=10,re.tc=N("textfont.color",W),re.tf=N("textfont.family",W),re.tw=N("textfont.weight",W),re.ty=N("textfont.style",W),re.tv=N("textfont.variant",W),re.tC=N("textfont.textcase",W),re.tE=N("textfont.lineposition",W),re.tS=N("textfont.shadow",W)),X=[mv.minExtend(q,re)],G=mv.minExtend(V,ae),G.selectedpoints=null,G.texttemplate=null}var Me=qv.select(this).select("g.legendpoints"),ke=Me.selectAll("path.scatterpts").data(F?X:[]);ke.enter().insert("path",":first-child").classed("scatterpts",!0).attr("transform",l),ke.exit().remove(),ke.call(ip.pointStyle,G,r),F&&(X[0].mrc=3);var ge=Me.selectAll("g.pointtext").data(H?X:[]);ge.enter().append("g").classed("pointtext",!0).append("text").attr("transform",l),ge.exit().remove(),ge.selectAll("text").call(ip.textPointStyle,G,r)}function h(C){var M=C[0].trace,p=M.type==="waterfall";if(C[0]._distinct&&p){var P=C[0].trace[C[0].dir].marker;return C[0].mc=P.color,C[0].mlw=P.line.width,C[0].mlc=P.line.color,x(C,this,"waterfall")}var T=[];M.visible&&p&&(T=C[0].hasTotals?[["increasing","M-6,-6V6H0Z"],["totals","M6,6H0L-6,-6H-0Z"],["decreasing","M6,6V-6H0Z"]]:[["increasing","M-6,-6V6H6Z"],["decreasing","M6,6V-6H-6Z"]]);var F=qv.select(this).select("g.legendpoints").selectAll("path.legendwaterfall").data(T);F.enter().append("path").classed("legendwaterfall",!0).attr("transform",l).style("stroke-miterlimit",1),F.exit().remove(),F.each(function(q){var V=qv.select(this),H=M[q[0]].marker,X=u(void 0,H.line,F3,Ib);V.attr("d",q[1]).style("stroke-width",X+"px").call(T0.fill,H.color),X&&V.call(T0.stroke,H.line.color)})}function d(C){x(C,this)}function v(C){x(C,this,"funnel")}function x(C,M,p){var P=C[0].trace,T=P.marker||{},F=T.line||{},q=T.cornerradius?"M6,3a3,3,0,0,1-3,3H-3a3,3,0,0,1-3-3V-3a3,3,0,0,1,3-3H3a3,3,0,0,1,3,3Z":"M6,6H-6V-6H6Z",V=p?P.visible&&P.type===p:MB.traceIs(P,"bar"),H=qv.select(M).select("g.legendpoints").selectAll("path.legend"+p).data(V?[C]:[]);H.enter().append("path").classed("legend"+p,!0).attr("d",q).attr("transform",l),H.exit().remove(),H.each(function(X){var G=qv.select(this),N=X[0],W=u(N.mlw,T.line,F3,Ib);G.style("stroke-width",W+"px");var re=N.mcc;if(!n._inHover&&"mc"in N){var ae=EB(T),_e=ae.mid;_e===void 0&&(_e=(ae.max+ae.min)/2),re=ip.tryColorscale(T,"")(_e)}var Me=re||N.mc||T.color,ke=T.pattern,ge=ke&&ip.getPatternAttr(ke.shape,0,"");if(ge){var ie=ip.getPatternAttr(ke.bgcolor,0,null),Te=ip.getPatternAttr(ke.fgcolor,0,null),Ee=ke.fgopacity,Ae=rle(ke.size,8,10),ze=rle(ke.solidity,.5,1),Ce="legend-"+P.uid;G.call(ip.pattern,"legend",r,Ce,ge,Ae,ze,re,ke.fillmode,ie,Te,Ee)}else G.call(T0.fill,Me);W&&T0.stroke(G,N.mlc||F.color)})}function b(C){var M=C[0].trace,p=qv.select(this).select("g.legendpoints").selectAll("path.legendbox").data(M.visible&&MB.traceIs(M,"box-violin")?[C]:[]);p.enter().append("path").classed("legendbox",!0).attr("d","M6,6H-6V-6H6Z").attr("transform",l),p.exit().remove(),p.each(function(){var P=qv.select(this);if((M.boxpoints==="all"||M.points==="all")&&T0.opacity(M.fillcolor)===0&&T0.opacity((M.line||{}).color)===0){var T=mv.minExtend(M,{marker:{size:a?Qse:mv.constrain(M.marker.size,2,16),sizeref:1,sizemin:1,sizemode:"diameter"}});p.call(ip.pointStyle,T,r)}else{var F=u(void 0,M.line,F3,Ib);P.style("stroke-width",F+"px").call(T0.fill,M.fillcolor),F&&T0.stroke(P,M.line.color)}})}function g(C){var M=C[0].trace,p=qv.select(this).select("g.legendpoints").selectAll("path.legendcandle").data(M.visible&&M.type==="candlestick"?[C,C]:[]);p.enter().append("path").classed("legendcandle",!0).attr("d",function(P,T){return T?"M-15,0H-8M-8,6V-6H8Z":"M15,0H8M8,-6V6H-8Z"}).attr("transform",l).style("stroke-miterlimit",1),p.exit().remove(),p.each(function(P,T){var F=qv.select(this),q=M[T?"increasing":"decreasing"],V=u(void 0,q.line,F3,Ib);F.style("stroke-width",V+"px").call(T0.fill,q.fillcolor),V&&T0.stroke(F,q.line.color)})}function E(C){var M=C[0].trace,p=qv.select(this).select("g.legendpoints").selectAll("path.legendohlc").data(M.visible&&M.type==="ohlc"?[C,C]:[]);p.enter().append("path").classed("legendohlc",!0).attr("d",function(P,T){return T?"M-15,0H0M-8,-6V0":"M15,0H0M8,6V0"}).attr("transform",l).style("stroke-miterlimit",1),p.exit().remove(),p.each(function(P,T){var F=qv.select(this),q=M[T?"increasing":"decreasing"],V=u(void 0,q.line,F3,Ib);F.style("fill","none").call(ip.dashLine,q.line.dash,V),V&&T0.stroke(F,q.line.color)})}function k(C){L(C,this,"pie")}function A(C){L(C,this,"funnelarea")}function L(C,M,p){var P=C[0],T=P.trace,F=p?T.visible&&T.type===p:MB.traceIs(T,p),q=qv.select(M).select("g.legendpoints").selectAll("path.legend"+p).data(F?[C]:[]);if(q.enter().append("path").classed("legend"+p,!0).attr("d","M6,6H-6V-6H6Z").attr("transform",l),q.exit().remove(),q.size()){var V=T.marker||{},H=u(fst(V.line.width,P.pts),V.line,F3,Ib),X="pieLike",G=mv.minExtend(T,{marker:{line:{width:H}}},X),N=mv.minExtend(P,{trace:G},X);cst(q,N,G,r)}}function _(C){var M=C[0].trace,p,P=[];if(M.visible)switch(M.type){case"histogram2d":case"heatmap":P=[["M-15,-2V4H15V-2Z"]],p=!0;break;case"choropleth":case"choroplethmapbox":case"choroplethmap":P=[["M-6,-6V6H6V-6Z"]],p=!0;break;case"densitymapbox":case"densitymap":P=[["M-6,0 a6,6 0 1,0 12,0 a 6,6 0 1,0 -12,0"]],p="radial";break;case"cone":P=[["M-6,2 A2,2 0 0,0 -6,6 V6L6,4Z"],["M-6,-6 A2,2 0 0,0 -6,-2 L6,-4Z"],["M-6,-2 A2,2 0 0,0 -6,2 L6,0Z"]],p=!1;break;case"streamtube":P=[["M-6,2 A2,2 0 0,0 -6,6 H6 A2,2 0 0,1 6,2 Z"],["M-6,-6 A2,2 0 0,0 -6,-2 H6 A2,2 0 0,1 6,-6 Z"],["M-6,-2 A2,2 0 0,0 -6,2 H6 A2,2 0 0,1 6,-2 Z"]],p=!1;break;case"surface":P=[["M-6,-6 A2,3 0 0,0 -6,0 H6 A2,3 0 0,1 6,-6 Z"],["M-6,1 A2,3 0 0,1 -6,6 H6 A2,3 0 0,0 6,0 Z"]],p=!0;break;case"mesh3d":P=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],p=!1;break;case"volume":P=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6H6L0,6Z"]],p=!0;break;case"isosurface":P=[["M-6,6H0L-6,-6Z"],["M6,6H0L6,-6Z"],["M-6,-6 A12,24 0 0,0 6,-6 L0,6Z"]],p=!1;break}var T=qv.select(this).select("g.legendpoints").selectAll("path.legend3dandfriends").data(P);T.enter().append("path").classed("legend3dandfriends",!0).attr("transform",l).style("stroke-miterlimit",1),T.exit().remove(),T.each(function(F,q){var V=qv.select(this),H=EB(M),X=H.colorscale,G=H.reversescale,N=function(_e){if(_e.size()){var Me="legendfill-"+M.uid;ip.gradient(_e,r,Me,kB(G,p==="radial"),X,"fill")}},W;if(X){if(!p){var ae=X.length;W=q===0?X[G?ae-1:0][1]:q===1?X[G?0:ae-1][1]:X[Math.floor((ae-1)/2)][1]}}else{var re=M.vertexcolor||M.facecolor||M.color;W=mv.isArrayOrTypedArray(re)?re[q]||re[0]:re}V.attr("d",F[0]),W?V.call(T0.fill,W):V.call(N)})}};function kB(e,t){var r=t?"radial":"horizontal";return r+(e?"":"reversed")}function tle(e){var t=e[0].trace,r=t.contours,n=PL.hasLines(t),i=PL.hasMarkers(t),a=t.visible&&t.fill&&t.fill!=="none",o=!1,s=!1;if(r){var l=r.coloring;l==="lines"?o=!0:n=l==="none"||l==="heatmap"||r.showlines,r.type==="constraint"?a=r._operation!=="=":(l==="fill"||l==="heatmap")&&(s=!0)}return{showMarker:i,showLine:n,showFill:a,showGradientLine:o,showGradientFill:s,anyLine:n||o,anyFill:a||s}}function rle(e,t,r){return e&&mv.isArrayOrTypedArray(e)?t:e>r?r:e}});var RB=ye((Frr,dle)=>{"use strict";var Sp=xa(),gh=Mr(),PB=Xu(),B3=ba(),nle=g3(),LB=gv(),mh=ao(),RL=va(),Rb=Ll(),ale=Use(),Vh=AB(),IB=Nh(),fle=IB.LINE_SPACING,O3=IB.FROM_TL,ole=IB.FROM_BR,sle=jse(),vst=CB(),lle=CL(),q3=1,pst=/^legend[0-9]*$/;dle.exports=function(t,r){if(r)ule(t,r);else{var n=t._fullLayout,i=n._legends,a=n._infolayer.selectAll('[class^="legend"]');a.each(function(){var u=Sp.select(this),c=u.attr("class"),f=c.split(" ")[0];f.match(pst)&&i.indexOf(f)===-1&&u.remove()});for(var o=0;o1)}var v=n.hiddenlabels||[];if(!s&&(!n.showlegend||!l.length))return o.selectAll("."+i).remove(),n._topdefs.select("#"+a).remove(),PB.autoMargin(e,i);var x=gh.ensureSingle(o,"g",i,function(M){s||M.attr("pointer-events","all")}),b=gh.ensureSingleById(n._topdefs,"clipPath",a,function(M){M.append("rect")}),g=gh.ensureSingle(x,"rect","bg",function(M){M.attr("shape-rendering","crispEdges")});g.call(RL.stroke,r.bordercolor).call(RL.fill,r.bgcolor).style("stroke-width",r.borderwidth+"px");var E=gh.ensureSingle(x,"g","scrollbox"),k=r.title;r._titleWidth=0,r._titleHeight=0;var A;k.text?(A=gh.ensureSingle(E,"text",i+"titletext"),A.attr("text-anchor","start").call(mh.font,k.font).text(k.text),DL(A,E,e,r,q3)):E.selectAll("."+i+"titletext").remove();var L=gh.ensureSingle(x,"rect","scrollbar",function(M){M.attr(Vh.scrollBarEnterAttrs).call(RL.fill,Vh.scrollBarColor)}),_=E.selectAll("g.groups").data(l);_.enter().append("g").attr("class","groups"),_.exit().remove();var C=_.selectAll("g.traces").data(gh.identity);C.enter().append("g").attr("class","traces"),C.exit().remove(),C.style("opacity",function(M){var p=M[0].trace;return B3.traceIs(p,"pie-like")?v.indexOf(M[0].label)!==-1?.5:1:p.visible==="legendonly"?.5:1}).each(function(){Sp.select(this).call(mst,e,r)}).call(vst,e,r).each(function(){s||Sp.select(this).call(yst,e,i)}),gh.syncOrAsync([PB.previousPromises,function(){return bst(e,_,C,r)},function(){var M=n._size,p=r.borderwidth,P=r.xref==="paper",T=r.yref==="paper";if(k.text&&gst(A,r,p),!s){var F,q;P?F=M.l+M.w*r.x-O3[zL(r)]*r._width:F=n.width*r.x-O3[zL(r)]*r._width,T?q=M.t+M.h*(1-r.y)-O3[FL(r)]*r._effHeight:q=n.height*(1-r.y)-O3[FL(r)]*r._effHeight;var V=wst(e,i,F,q);if(V)return;if(n.margin.autoexpand){var H=F,X=q;F=P?gh.constrain(F,0,n.width-r._width):H,q=T?gh.constrain(q,0,n.height-r._effHeight):X,F!==H&&gh.log("Constrain "+i+".x to make legend fit inside graph"),q!==X&&gh.log("Constrain "+i+".y to make legend fit inside graph")}mh.setTranslate(x,F,q)}if(L.on(".drag",null),x.on("wheel",null),s||r._height<=r._maxHeight||e._context.staticPlot){var G=r._effHeight;s&&(G=r._height),g.attr({width:r._width-p,height:G-p,x:p/2,y:p/2}),mh.setTranslate(E,0,0),b.select("rect").attr({width:r._width-2*p,height:G-2*p,x:p,y:p}),mh.setClipUrl(E,a,e),mh.setRect(L,0,0,0,0),delete r._scrollY}else{var N=Math.max(Vh.scrollBarMinHeight,r._effHeight*r._effHeight/r._height),W=r._effHeight-N-2*Vh.scrollBarMargin,re=r._height-r._effHeight,ae=W/re,_e=Math.min(r._scrollY||0,re);g.attr({width:r._width-2*p+Vh.scrollBarWidth+Vh.scrollBarMargin,height:r._effHeight-p,x:p/2,y:p/2}),b.select("rect").attr({width:r._width-2*p+Vh.scrollBarWidth+Vh.scrollBarMargin,height:r._effHeight-2*p,x:p,y:p+_e}),mh.setClipUrl(E,a,e),ze(_e,N,ae),x.on("wheel",function(){_e=gh.constrain(r._scrollY+Sp.event.deltaY/W*re,0,re),ze(_e,N,ae),_e!==0&&_e!==re&&Sp.event.preventDefault()});var Me,ke,ge,ie=function(Ge,nt,ct){var qt=(ct-nt)/ae+Ge;return gh.constrain(qt,0,re)},Te=function(Ge,nt,ct){var qt=(nt-ct)/ae+Ge;return gh.constrain(qt,0,re)},Ee=Sp.behavior.drag().on("dragstart",function(){var Ge=Sp.event.sourceEvent;Ge.type==="touchstart"?Me=Ge.changedTouches[0].clientY:Me=Ge.clientY,ge=_e}).on("drag",function(){var Ge=Sp.event.sourceEvent;Ge.buttons===2||Ge.ctrlKey||(Ge.type==="touchmove"?ke=Ge.changedTouches[0].clientY:ke=Ge.clientY,_e=ie(ge,Me,ke),ze(_e,N,ae))});L.call(Ee);var Ae=Sp.behavior.drag().on("dragstart",function(){var Ge=Sp.event.sourceEvent;Ge.type==="touchstart"&&(Me=Ge.changedTouches[0].clientY,ge=_e)}).on("drag",function(){var Ge=Sp.event.sourceEvent;Ge.type==="touchmove"&&(ke=Ge.changedTouches[0].clientY,_e=Te(ge,Me,ke),ze(_e,N,ae))});E.call(Ae)}function ze(Ge,nt,ct){r._scrollY=e._fullLayout[i]._scrollY=Ge,mh.setTranslate(E,0,-Ge),mh.setRect(L,r._width,Vh.scrollBarMargin+Ge*ct,Vh.scrollBarWidth,nt),b.select("rect").attr("y",p+Ge)}if(e._context.edits.legendPosition){var Ce,me,Re,ce;x.classed("cursor-move",!0),LB.init({element:x.node(),gd:e,prepFn:function(Ge){if(Ge.target!==L.node()){var nt=mh.getTranslate(x);Re=nt.x,ce=nt.y}},moveFn:function(Ge,nt){if(Re!==void 0&&ce!==void 0){var ct=Re+Ge,qt=ce+nt;mh.setTranslate(x,ct,qt),Ce=LB.align(ct,r._width,M.l,M.l+M.w,r.xanchor),me=LB.align(qt+r._height,-r._height,M.t+M.h,M.t,r.yanchor)}},doneFn:function(){if(Ce!==void 0&&me!==void 0){var Ge={};Ge[i+".x"]=Ce,Ge[i+".y"]=me,B3.call("_guiRelayout",e,Ge)}},clickFn:function(Ge,nt){var ct=o.selectAll("g.traces").filter(function(){var qt=this.getBoundingClientRect();return nt.clientX>=qt.left&&nt.clientX<=qt.right&&nt.clientY>=qt.top&&nt.clientY<=qt.bottom});ct.size()>0&&hle(e,x,ct,Ge,nt)}})}}],e)}}function IL(e,t,r){var n=e[0],i=n.width,a=t.entrywidthmode,o=n.trace.legendwidth||t.entrywidth;return a==="fraction"?t._maxWidth*o:r+(o||i)}function hle(e,t,r,n,i){var a=r.data()[0][0].trace,o={event:i,node:r.node(),curveNumber:a.index,expandedIndex:a.index,data:e.data,layout:e.layout,frames:e._transitionData._frames,config:e._context,fullData:e._fullData,fullLayout:e._fullLayout};a._group&&(o.group=a._group),B3.traceIs(a,"pie-like")&&(o.label=r.datum()[0].label);var s=nle.triggerHandler(e,"plotly_legendclick",o);if(n===1){if(s===!1)return;t._clickTimeout=setTimeout(function(){e._fullLayout&&ale(r,e,n)},e._context.doubleClickDelay)}else if(n===2){t._clickTimeout&&clearTimeout(t._clickTimeout),e._legendMouseDownTime=0;var l=nle.triggerHandler(e,"plotly_legenddoubleclick",o);l!==!1&&s!==!1&&ale(r,e,n)}}function mst(e,t,r){var n=qL(r),i=e.data()[0][0],a=i.trace,o=B3.traceIs(a,"pie-like"),s=!r._inHover&&t._context.edits.legendText&&!o,l=r._maxNameLength,u,c;i.groupTitle?(u=i.groupTitle.text,c=i.groupTitle.font):(c=r.font,r.entries?u=i.text:(u=o?i.label:a.name,a._meta&&(u=gh.templateString(u,a._meta))));var f=gh.ensureSingle(e,"text",n+"text");f.attr("text-anchor","start").call(mh.font,c).text(s?cle(u,l):u);var h=r.indentation+r.itemwidth+Vh.itemGap*2;Rb.positionText(f,h,0),s?f.call(Rb.makeEditable,{gd:t,text:u}).call(DL,e,t,r).on("edit",function(d){this.text(cle(d,l)).call(DL,e,t,r);var v=i.trace._fullInput||{},x={};return x.name=d,v._isShape?B3.call("_guiRelayout",t,"shapes["+a.index+"].name",x.name):B3.call("_guiRestyle",t,x,a.index)}):DL(f,e,t,r)}function cle(e,t){var r=Math.max(4,t);if(e&&e.trim().length>=r/2)return e;e=e||"";for(var n=r-e.length;n>0;n--)e+=" ";return e}function yst(e,t,r){var n=t._context.doubleClickDelay,i,a=1,o=gh.ensureSingle(e,"rect",r+"toggle",function(s){t._context.staticPlot||s.style("cursor","pointer").attr("pointer-events","all"),s.call(RL.fill,"rgba(0,0,0,0)")});t._context.staticPlot||(o.on("mousedown",function(){i=new Date().getTime(),i-t._legendMouseDownTimen&&(a=Math.max(a-1,1)),hle(t,s,e,a,Sp.event)}}))}function DL(e,t,r,n,i){n._inHover&&e.attr("data-notex",!0),Rb.convertToTspans(e,r,function(){_st(t,r,n,i)})}function _st(e,t,r,n){var i=e.data()[0][0];if(!r._inHover&&i&&!i.trace.showlegend){e.remove();return}var a=e.select("g[class*=math-group]"),o=a.node(),s=qL(r);r||(r=t._fullLayout[s]);var l=r.borderwidth,u;n===q3?u=r.title.font:i.groupTitle?u=i.groupTitle.font:u=r.font;var c=u.size*fle,f,h;if(o){var d=mh.bBox(o);f=d.height,h=d.width,n===q3?mh.setTranslate(a,l,l+f*.75):mh.setTranslate(a,0,f*.25)}else{var v="."+s+(n===q3?"title":"")+"text",x=e.select(v),b=Rb.lineCount(x),g=x.node();if(f=c*b,h=g?mh.bBox(g).width:0,n===q3)r.title.side==="left"&&(h+=Vh.itemGap*2),Rb.positionText(x,l+Vh.titlePad,l+c);else{var E=Vh.itemGap*2+r.indentation+r.itemwidth;i.groupTitle&&(E=Vh.itemGap,h-=r.indentation+r.itemwidth),Rb.positionText(x,E,-c*((b-1)/2-.3))}}n===q3?(r._titleWidth=h,r._titleHeight=f):(i.lineHeight=c,i.height=Math.max(f,16)+3,i.width=h)}function xst(e){var t=0,r=0,n=e.title.side;return n&&(n.indexOf("left")!==-1&&(t=e._titleWidth),n.indexOf("top")!==-1&&(r=e._titleHeight)),[t,r]}function bst(e,t,r,n){var i=e._fullLayout,a=qL(n);n||(n=i[a]);var o=i._size,s=lle.isVertical(n),l=lle.isGrouped(n),u=n.entrywidthmode==="fraction",c=n.borderwidth,f=2*c,h=Vh.itemGap,d=n.indentation+n.itemwidth+h*2,v=2*(c+h),x=FL(n),b=n.y<0||n.y===0&&x==="top",g=n.y>1||n.y===1&&x==="bottom",E=n.tracegroupgap,k={};n._maxHeight=Math.max(b||g?i.height/2:o.h,30);var A=0;n._width=0,n._height=0;var L=xst(n);if(s)r.each(function(ge){var ie=ge[0].height;mh.setTranslate(this,c+L[0],c+L[1]+n._height+ie/2+h),n._height+=ie,n._width=Math.max(n._width,ge[0].width)}),A=d+n._width,n._width+=h+d+f,n._height+=v,l&&(t.each(function(ge,ie){mh.setTranslate(this,0,ie*n.tracegroupgap)}),n._height+=(n._lgroupsLength-1)*n.tracegroupgap);else{var _=zL(n),C=n.x<0||n.x===0&&_==="right",M=n.x>1||n.x===1&&_==="left",p=g||b,P=i.width/2;n._maxWidth=Math.max(C?p&&_==="left"?o.l+o.w:P:M?p&&_==="right"?o.r+o.w:P:o.w,2*d);var T=0,F=0;r.each(function(ge){var ie=IL(ge,n,d);T=Math.max(T,ie),F+=ie}),A=null;var q=0;if(l){var V=0,H=0,X=0;t.each(function(){var ge=0,ie=0;Sp.select(this).selectAll("g.traces").each(function(Ee){var Ae=IL(Ee,n,d),ze=Ee[0].height;mh.setTranslate(this,L[0],L[1]+c+h+ze/2+ie),ie+=ze,ge=Math.max(ge,Ae),k[Ee[0].trace.legendgroup]=ge});var Te=ge+h;H>0&&Te+c+H>n._maxWidth?(q=Math.max(q,H),H=0,X+=V+E,V=ie):V=Math.max(V,ie),mh.setTranslate(this,H,X),H+=Te}),n._width=Math.max(q,H)+c,n._height=X+V+v}else{var G=r.size(),N=F+f+(G-1)*h=n._maxWidth&&(q=Math.max(q,_e),re=0,ae+=W,n._height+=W,W=0),mh.setTranslate(this,L[0]+c+re,L[1]+c+ae+ie/2+h),_e=re+Te+h,re+=Ee,W=Math.max(W,ie)}),N?(n._width=re+f,n._height=W+v):(n._width=Math.max(q,_e)+f,n._height+=W+v)}}n._width=Math.ceil(Math.max(n._width+L[0],n._titleWidth+2*(c+Vh.titlePad))),n._height=Math.ceil(Math.max(n._height+L[1],n._titleHeight+2*(c+Vh.itemGap))),n._effHeight=Math.min(n._height,n._maxHeight);var Me=e._context.edits,ke=Me.legendText||Me.legendPosition;r.each(function(ge){var ie=Sp.select(this).select("."+a+"toggle"),Te=ge[0].height,Ee=ge[0].trace.legendgroup,Ae=IL(ge,n,d);l&&Ee!==""&&(Ae=k[Ee]);var ze=ke?d:A||Ae;!s&&!u&&(ze+=h/2),mh.setRect(ie,0,-Te/2,ze,Te)})}function wst(e,t,r,n){var i=e._fullLayout,a=i[t],o=zL(a),s=FL(a),l=a.xref==="paper",u=a.yref==="paper";e._fullLayout._reservedMargin[t]={};var c=a.y<.5?"b":"t",f=a.x<.5?"l":"r",h={r:i.width-r,l:r+a._width,b:i.height-n,t:n+a._effHeight};if(l&&u)return PB.autoMargin(e,t,{x:a.x,y:a.y,l:a._width*O3[o],r:a._width*ole[o],b:a._effHeight*ole[s],t:a._effHeight*O3[s]});l?e._fullLayout._reservedMargin[t][c]=h[c]:u||a.orientation==="v"?e._fullLayout._reservedMargin[t][f]=h[f]:e._fullLayout._reservedMargin[t][c]=h[c]}function zL(e){return gh.isRightAnchor(e)?"right":gh.isCenterAnchor(e)?"center":"left"}function FL(e){return gh.isBottomAnchor(e)?"bottom":gh.isMiddleAnchor(e)?"middle":"top"}function qL(e){return e._id||"legend"}});var qB=ye(FB=>{"use strict";var Db=xa(),Sy=uo(),vle=id(),Rf=Mr(),Tst=Rf.pushUnique,DB=Rf.strTranslate,Ast=Rf.strRotate,Sst=g3(),A0=Ll(),Mst=qse(),bm=ao(),sd=va(),OL=gv(),wm=Qa(),Est=ad().zindexSeparator,U3=ba(),Ag=rp(),zb=IS(),kst=bB(),Cst=RB(),wle=zb.YANGLE,zB=Math.PI*wle/180,Lst=1/Math.sin(zB),Pst=Math.cos(zB),Ist=Math.sin(zB),Bc=zb.HOVERARROWSIZE,Us=zb.HOVERTEXTPAD,ple={box:!0,ohlc:!0,violin:!0,candlestick:!0},Rst={scatter:!0,scattergl:!0,splom:!0};function gle(e,t){return e.distance-t.distance}FB.hover=function(t,r,n,i){t=Rf.getGraphDiv(t);var a=r.target;Rf.throttle(t._fullLayout._uid+zb.HOVERID,zb.HOVERMINTIME,function(){Dst(t,r,n,i,a)})};FB.loneHover=function(t,r){var n=!0;Array.isArray(t)||(n=!1,t=[t]);var i=r.gd,a=Ele(i),o=kle(i),s=t.map(function(b){var g=b._x0||b.x0||b.x||0,E=b._x1||b.x1||b.x||0,k=b._y0||b.y0||b.y||0,A=b._y1||b.y1||b.y||0,L=b.eventData;if(L){var _=Math.min(g,E),C=Math.max(g,E),M=Math.min(k,A),p=Math.max(k,A),P=b.trace;if(U3.traceIs(P,"gl3d")){var T=i._fullLayout[P.scene]._scene.container,F=T.offsetLeft,q=T.offsetTop;_+=F,C+=F,M+=q,p+=q}L.bbox={x0:_+o,x1:C+o,y0:M+a,y1:p+a},r.inOut_bbox&&r.inOut_bbox.push(L.bbox)}else L=!1;return{color:b.color||sd.defaultLine,x0:b.x0||b.x||0,x1:b.x1||b.x||0,y0:b.y0||b.y||0,y1:b.y1||b.y||0,xLabel:b.xLabel,yLabel:b.yLabel,zLabel:b.zLabel,text:b.text,name:b.name,idealAlign:b.idealAlign,borderColor:b.borderColor,fontFamily:b.fontFamily,fontSize:b.fontSize,fontColor:b.fontColor,fontWeight:b.fontWeight,fontStyle:b.fontStyle,fontVariant:b.fontVariant,nameLength:b.nameLength,textAlign:b.textAlign,trace:b.trace||{index:0,hoverinfo:""},xa:{_offset:0},ya:{_offset:0},index:0,hovertemplate:b.hovertemplate||!1,hovertemplateLabels:b.hovertemplateLabels||!1,eventData:L}}),l=!1,u=Ale(s,{gd:i,hovermode:"closest",rotateLabels:l,bgColor:r.bgColor||sd.background,container:Db.select(r.container),outerContainer:r.outerContainer||r.container}),c=u.hoverLabels,f=5,h=0,d=0;c.sort(function(b,g){return b.y0-g.y0}).each(function(b,g){var E=b.y0-b.by/2;E-fC[0]._length||ce<0||ce>M[0]._length)return OL.unhoverRaw(e,t)}if(t.pointerX=Re+C[0]._offset,t.pointerY=ce+M[0]._offset,"xval"in t?X=Ag.flat(a,t.xval):X=Ag.p2c(C,Re),"yval"in t?G=Ag.flat(a,t.yval):G=Ag.p2c(M,ce),!Sy(X[0])||!Sy(G[0]))return Rf.warn("Fx.hover failed",t,e),OL.unhoverRaw(e,t)}var ct=1/0;function qt(Ni,_n){for(W=0;WEe&&(V.splice(0,Ee),ct=V[0].distance),f&&q!==0&&V.length===0){Te.distance=q,Te.index=!1;var ft=ae._module.hoverPoints(Te,ge,ie,"closest",{hoverLayer:s._hoverlayer});if(ft&&(ft=ft.filter(function(Vr){return Vr.spikeDistance<=q})),ft&&ft.length){var jt,Zt=ft.filter(function(Vr){return Vr.xa.showspikes&&Vr.xa.spikesnap!=="hovered data"});if(Zt.length){var yr=Zt[0];Sy(yr.x0)&&Sy(yr.y0)&&(jt=ot(yr),(!Ae.vLinePoint||Ae.vLinePoint.spikeDistance>jt.spikeDistance)&&(Ae.vLinePoint=jt))}var Fr=ft.filter(function(Vr){return Vr.ya.showspikes&&Vr.ya.spikesnap!=="hovered data"});if(Fr.length){var Zr=Fr[0];Sy(Zr.x0)&&Sy(Zr.y0)&&(jt=ot(Zr),(!Ae.hLinePoint||Ae.hLinePoint.spikeDistance>jt.spikeDistance)&&(Ae.hLinePoint=jt))}}}}}qt();function rt(Ni,_n,$i){for(var zn=null,Wn=1/0,It,ft=0;ft0&&Math.abs(Ni.distance)dt-1;Nr--)Or(V[Nr]);V=fr,Yt()}var ut=e._hoverdata,Ne=[],Ye=Ele(e),Ve=kle(e);for(N=0;N1||V.length>1)||h==="closest"&&ze&&V.length>1,ri=sd.combine(s.plot_bgcolor||sd.background,s.paper_bgcolor),bi=Ale(V,{gd:e,hovermode:h,rotateLabels:jr,bgColor:ri,container:s._hoverlayer,outerContainer:s._paper.node(),commonLabelOpts:s.hoverlabel,hoverdistance:s.hoverdistance}),nn=bi.hoverLabels;if(Ag.isUnifiedHover(h)||(Fst(nn,jr,s,bi.commonLabelBoundingBox),Mle(nn,jr,s._invScaleX,s._invScaleY)),i&&i.tagName){var Wi=U3.getComponentMethod("annotations","hasClickToShow")(e,Ne);Mst(Db.select(i),Wi?"pointer":"")}!i||n||!Bst(e,t,ut)||(ut&&e.emit("plotly_unhover",{event:t,points:ut}),e.emit("plotly_hover",{event:t,points:e._hoverdata,xaxes:C,yaxes:M,xvals:X,yvals:G}))}function Tle(e){return[e.trace.index,e.index,e.x0,e.y0,e.name,e.attr,e.xa?e.xa._id:"",e.ya?e.ya._id:""].join(",")}var zst=/([\s\S]*)<\/extra>/;function Ale(e,t){var r=t.gd,n=r._fullLayout,i=t.hovermode,a=t.rotateLabels,o=t.bgColor,s=t.container,l=t.outerContainer,u=t.commonLabelOpts||{};if(e.length===0)return[[]];var c=t.fontFamily||zb.HOVERFONT,f=t.fontSize||zb.HOVERFONTSIZE,h=t.fontWeight||n.font.weight,d=t.fontStyle||n.font.style,v=t.fontVariant||n.font.variant,x=t.fontTextcase||n.font.textcase,b=t.fontLineposition||n.font.lineposition,g=t.fontShadow||n.font.shadow,E=e[0],k=E.xa,A=E.ya,L=i.charAt(0),_=L+"Label",C=E[_];if(C===void 0&&k.type==="multicategory")for(var M=0;Mn.width-ut&&(Ne=n.width-ut),Lt.attr("d","M"+(Br-Ne)+",0L"+(Br-Ne+Bc)+","+Nr+Bc+"H"+ut+"v"+Nr+(Us*2+_r.height)+"H"+-ut+"V"+Nr+Bc+"H"+(Br-Ne-Bc)+"Z"),Br=Ne,W.minX=Br-ut,W.maxX=Br+ut,k.side==="top"?(W.minY=Or-(Us*2+_r.height),W.maxY=Or-Us):(W.minY=Or+Us,W.maxY=Or+(Us*2+_r.height))}else{var Ye,Ve,Xe;A.side==="right"?(Ye="start",Ve=1,Xe="",Br=k._offset+k._length):(Ye="end",Ve=-1,Xe="-",Br=k._offset),Or=A._offset+(E.y0+E.y1)/2,St.attr("text-anchor",Ye),Lt.attr("d","M0,0L"+Xe+Bc+","+Bc+"V"+(Us+_r.height/2)+"h"+Xe+(Us*2+_r.width)+"V-"+(Us+_r.height/2)+"H"+Xe+Bc+"V-"+Bc+"Z"),W.minY=Or-(Us+_r.height/2),W.maxY=Or+(Us+_r.height/2),A.side==="right"?(W.minX=Br+Bc,W.maxX=Br+Bc+(Us*2+_r.width)):(W.minX=Br-Bc-(Us*2+_r.width),W.maxX=Br-Bc);var ht=_r.height/2,Le=P-_r.top-ht,xe="clip"+n._uid+"commonlabel"+A._id,Se;if(Br<_r.width+2*Us+Bc){Se="M-"+(Bc+Us)+"-"+ht+"h-"+(_r.width-Us)+"V"+ht+"h"+(_r.width-Us)+"Z";var lt=_r.width-Br+Us;A0.positionText(St,lt,Le),Ye==="end"&&St.selectAll("tspan").each(function(){var Vt=Db.select(this),ar=bm.tester.append("text").text(Vt.text()).call(bm.font,fr),Qr=N3(r,ar.node());Math.round(Qr.width)=0?er=kt:Ct+ce=0?er=Ct:Yt+ce=0?Ke=ot:Rt+Ge=0?Ke=Rt:xr+Ge=0,(bt.idealAlign==="top"||!Vt)&&ar?(Xe-=Le/2,bt.anchor="end"):Vt?(Xe+=Le/2,bt.anchor="start"):bt.anchor="middle",bt.crossPos=Xe;else{if(bt.pos=Xe,Vt=Ve+ht/2+Gt<=T,ar=Ve-ht/2-Gt>=0,(bt.idealAlign==="left"||!Vt)&&ar)Ve-=ht/2,bt.anchor="end";else if(Vt)Ve+=ht/2,bt.anchor="start";else{bt.anchor="middle";var Qr=Gt/2,ai=Ve+Qr-T,jr=Ve-Qr;ai>0&&(Ve-=ai),jr<0&&(Ve+=-jr)}bt.crossPos=Ve}Or.attr("text-anchor",bt.anchor),ut&&Nr.attr("text-anchor",bt.anchor),Lt.attr("transform",DB(Ve,Xe)+(a?Ast(wle):""))}),{hoverLabels:xt,commonLabelBoundingBox:W}}function mle(e,t,r,n,i,a){var o="",s="";e.nameOverride!==void 0&&(e.name=e.nameOverride),e.name&&(e.trace._meta&&(e.name=Rf.templateString(e.name,e.trace._meta)),o=xle(e.name,e.nameLength));var l=r.charAt(0),u=l==="x"?"y":"x";e.zLabel!==void 0?(e.xLabel!==void 0&&(s+="x: "+e.xLabel+"
"),e.yLabel!==void 0&&(s+="y: "+e.yLabel+"
"),e.trace.type!=="choropleth"&&e.trace.type!=="choroplethmapbox"&&e.trace.type!=="choroplethmap"&&(s+=(s?"z: ":"")+e.zLabel)):t&&e[l+"Label"]===i?s=e[u+"Label"]||"":e.xLabel===void 0?e.yLabel!==void 0&&e.trace.type!=="scattercarpet"&&(s=e.yLabel):e.yLabel===void 0?s=e.xLabel:s="("+e.xLabel+", "+e.yLabel+")",(e.text||e.text===0)&&!Array.isArray(e.text)&&(s+=(s?"
":"")+e.text),e.extraText!==void 0&&(s+=(s?"
":"")+e.extraText),a&&s===""&&!e.hovertemplate&&(o===""&&a.remove(),s=o);var c=e.hovertemplate||!1;if(c){var f=e.hovertemplateLabels||e;e[l+"Label"]!==i&&(f[l+"other"]=f[l+"Val"],f[l+"otherLabel"]=f[l+"Label"]),s=Rf.hovertemplateString(c,f,n._d3locale,e.eventData[0]||{},e.trace._meta),s=s.replace(zst,function(h,d){return o=xle(d,e.nameLength),""})}return[s,o]}function Fst(e,t,r,n){var i=t?"xa":"ya",a=t?"ya":"xa",o=0,s=1,l=e.size(),u=new Array(l),c=0,f=n.minX,h=n.maxX,d=n.minY,v=n.maxY,x=function(X){return X*r._invScaleX},b=function(X){return X*r._invScaleY};e.each(function(X){var G=X[i],N=X[a],W=G._id.charAt(0)==="x",re=G.range;c===0&&re&&re[0]>re[1]!==W&&(s=-1);var ae=0,_e=W?r.width:r.height;if(r.hovermode==="x"||r.hovermode==="y"){var Me=Sle(X,t),ke=X.anchor,ge=ke==="end"?-1:1,ie,Te;if(ke==="middle")ie=X.crossPos+(W?b(Me.y-X.by/2):x(X.bx/2+X.tx2width/2)),Te=ie+(W?b(X.by):x(X.bx));else if(W)ie=X.crossPos+b(Bc+Me.y)-b(X.by/2-Bc),Te=ie+b(X.by);else{var Ee=x(ge*Bc+Me.x),Ae=Ee+x(ge*X.bx);ie=X.crossPos+Math.min(Ee,Ae),Te=X.crossPos+Math.max(Ee,Ae)}W?d!==void 0&&v!==void 0&&Math.min(Te,v)-Math.max(ie,d)>1&&(N.side==="left"?(ae=N._mainLinePosition,_e=r.width):_e=N._mainLinePosition):f!==void 0&&h!==void 0&&Math.min(Te,h)-Math.max(ie,f)>1&&(N.side==="top"?(ae=N._mainLinePosition,_e=r.height):_e=N._mainLinePosition)}u[c++]=[{datum:X,traceIndex:X.trace.index,dp:0,pos:X.pos,posref:X.posref,size:X.by*(W?Lst:1)/2,pmin:ae,pmax:_e}]}),u.sort(function(X,G){return X[0].posref-G[0].posref||s*(G[0].traceIndex-X[0].traceIndex)});var g,E,k,A,L,_,C;function M(X){var G=X[0],N=X[X.length-1];if(E=G.pmin-G.pos-G.dp+G.size,k=N.pos+N.dp+N.size-G.pmax,E>.01){for(L=X.length-1;L>=0;L--)X[L].dp+=E;g=!1}if(!(k<.01)){if(E<-.01){for(L=X.length-1;L>=0;L--)X[L].dp-=k;g=!1}if(g){var W=0;for(A=0;AG.pmax&&W++;for(A=X.length-1;A>=0&&!(W<=0);A--)_=X[A],_.pos>G.pmax-1&&(_.del=!0,W--);for(A=0;A=0;L--)X[L].dp-=k;for(A=X.length-1;A>=0&&!(W<=0);A--)_=X[A],_.pos+_.dp+_.size>G.pmax&&(_.del=!0,W--)}}}for(;!g&&o<=l;){for(o++,g=!0,A=0;A.01){for(L=P.length-1;L>=0;L--)P[L].dp+=E;for(p.push.apply(p,P),u.splice(A+1,1),C=0,L=p.length-1;L>=0;L--)C+=p[L].dp;for(k=C/p.length,L=p.length-1;L>=0;L--)p[L].dp-=k;g=!1}else A++}u.forEach(M)}for(A=u.length-1;A>=0;A--){var q=u[A];for(L=q.length-1;L>=0;L--){var V=q[L],H=V.datum;H.offset=V.dp,H.del=V.del}}}function Sle(e,t){var r=0,n=e.offset;return t&&(n*=-Ist,r=e.offset*Pst),{x:r,y:n}}function qst(e){var t={start:1,end:-1,middle:0}[e.anchor],r=t*(Bc+Us),n=r+t*(e.txwidth+Us),i=e.anchor==="middle";return i&&(r-=e.tx2width/2,n+=e.txwidth/2+Us),{alignShift:t,textShiftX:r,text2ShiftX:n}}function Mle(e,t,r,n){var i=function(o){return o*r},a=function(o){return o*n};e.each(function(o){var s=Db.select(this);if(o.del)return s.remove();var l=s.select("text.nums"),u=o.anchor,c=u==="end"?-1:1,f=qst(o),h=Sle(o,t),d=h.x,v=h.y,x=u==="middle";s.select("path").attr("d",x?"M-"+i(o.bx/2+o.tx2width/2)+","+a(v-o.by/2)+"h"+i(o.bx)+"v"+a(o.by)+"h-"+i(o.bx)+"Z":"M0,0L"+i(c*Bc+d)+","+a(Bc+v)+"v"+a(o.by/2-Bc)+"h"+i(c*o.bx)+"v-"+a(o.by)+"H"+i(c*Bc+d)+"V"+a(v-Bc)+"Z");var b=d+f.textShiftX,g=v+o.ty0-o.by/2+Us,E=o.textAlign||"auto";E!=="auto"&&(E==="left"&&u!=="start"?(l.attr("text-anchor","start"),b=x?-o.bx/2-o.tx2width/2+Us:-o.bx-Us):E==="right"&&u!=="end"&&(l.attr("text-anchor","end"),b=x?o.bx/2-o.tx2width/2-Us:o.bx+Us)),l.call(A0.positionText,i(b),a(g)),o.tx2width&&(s.select("text.name").call(A0.positionText,i(f.text2ShiftX+f.alignShift*Us+d),a(v+o.ty0-o.by/2+Us)),s.select("rect").call(bm.setRect,i(f.text2ShiftX+(f.alignShift-1)*o.tx2width/2+d),a(v-o.by/2-1),i(o.tx2width),a(o.by+2)))})}function Ost(e,t){var r=e.index,n=e.trace||{},i=e.cd[0],a=e.cd[r]||{};function o(h){return h||Sy(h)&&h===0}var s=Array.isArray(r)?function(h,d){var v=Rf.castOption(i,r,h);return o(v)?v:Rf.extractOption({},n,"",d)}:function(h,d){return Rf.extractOption(a,n,h,d)};function l(h,d,v){var x=s(d,v);o(x)&&(e[h]=x)}if(l("hoverinfo","hi","hoverinfo"),l("bgcolor","hbg","hoverlabel.bgcolor"),l("borderColor","hbc","hoverlabel.bordercolor"),l("fontFamily","htf","hoverlabel.font.family"),l("fontSize","hts","hoverlabel.font.size"),l("fontColor","htc","hoverlabel.font.color"),l("fontWeight","htw","hoverlabel.font.weight"),l("fontStyle","hty","hoverlabel.font.style"),l("fontVariant","htv","hoverlabel.font.variant"),l("nameLength","hnl","hoverlabel.namelength"),l("textAlign","hta","hoverlabel.align"),e.posref=t==="y"||t==="closest"&&n.orientation==="h"?e.xa._offset+(e.x0+e.x1)/2:e.ya._offset+(e.y0+e.y1)/2,e.x0=Rf.constrain(e.x0,0,e.xa._length),e.x1=Rf.constrain(e.x1,0,e.xa._length),e.y0=Rf.constrain(e.y0,0,e.ya._length),e.y1=Rf.constrain(e.y1,0,e.ya._length),e.xLabelVal!==void 0&&(e.xLabel="xLabel"in e?e.xLabel:wm.hoverLabelText(e.xa,e.xLabelVal,n.xhoverformat),e.xVal=e.xa.c2d(e.xLabelVal)),e.yLabelVal!==void 0&&(e.yLabel="yLabel"in e?e.yLabel:wm.hoverLabelText(e.ya,e.yLabelVal,n.yhoverformat),e.yVal=e.ya.c2d(e.yLabelVal)),e.zLabelVal!==void 0&&e.zLabel===void 0&&(e.zLabel=String(e.zLabelVal)),!isNaN(e.xerr)&&!(e.xa.type==="log"&&e.xerr<=0)){var u=wm.tickText(e.xa,e.xa.c2l(e.xerr),"hover").text;e.xerrneg!==void 0?e.xLabel+=" +"+u+" / -"+wm.tickText(e.xa,e.xa.c2l(e.xerrneg),"hover").text:e.xLabel+=" \xB1 "+u,t==="x"&&(e.distance+=1)}if(!isNaN(e.yerr)&&!(e.ya.type==="log"&&e.yerr<=0)){var c=wm.tickText(e.ya,e.ya.c2l(e.yerr),"hover").text;e.yerrneg!==void 0?e.yLabel+=" +"+c+" / -"+wm.tickText(e.ya,e.ya.c2l(e.yerrneg),"hover").text:e.yLabel+=" \xB1 "+c,t==="y"&&(e.distance+=1)}var f=e.hoverinfo||e.trace.hoverinfo;return f&&f!=="all"&&(f=Array.isArray(f)?f:f.split("+"),f.indexOf("x")===-1&&(e.xLabel=void 0),f.indexOf("y")===-1&&(e.yLabel=void 0),f.indexOf("z")===-1&&(e.zLabel=void 0),f.indexOf("text")===-1&&(e.text=void 0),f.indexOf("name")===-1&&(e.name=void 0)),e}function yle(e,t,r){var n=r.container,i=r.fullLayout,a=i._size,o=r.event,s=!!t.hLinePoint,l=!!t.vLinePoint,u,c;if(n.selectAll(".spikeline").remove(),!!(l||s)){var f=sd.combine(i.plot_bgcolor,i.paper_bgcolor);if(s){var h=t.hLinePoint,d,v;u=h&&h.xa,c=h&&h.ya;var x=c.spikesnap;x==="cursor"?(d=o.pointerX,v=o.pointerY):(d=u._offset+h.x,v=c._offset+h.y);var b=vle.readability(h.color,f)<1.5?sd.contrast(f):h.color,g=c.spikemode,E=c.spikethickness,k=c.spikecolor||b,A=wm.getPxPosition(e,c),L,_;if(g.indexOf("toaxis")!==-1||g.indexOf("across")!==-1){if(g.indexOf("toaxis")!==-1&&(L=A,_=d),g.indexOf("across")!==-1){var C=c._counterDomainMin,M=c._counterDomainMax;c.anchor==="free"&&(C=Math.min(C,c.position),M=Math.max(M,c.position)),L=a.l+C*a.w,_=a.l+M*a.w}n.insert("line",":first-child").attr({x1:L,x2:_,y1:v,y2:v,"stroke-width":E,stroke:k,"stroke-dasharray":bm.dashStyle(c.spikedash,E)}).classed("spikeline",!0).classed("crisp",!0),n.insert("line",":first-child").attr({x1:L,x2:_,y1:v,y2:v,"stroke-width":E+2,stroke:f}).classed("spikeline",!0).classed("crisp",!0)}g.indexOf("marker")!==-1&&n.insert("circle",":first-child").attr({cx:A+(c.side!=="right"?E:-E),cy:v,r:E,fill:k}).classed("spikeline",!0)}if(l){var p=t.vLinePoint,P,T;u=p&&p.xa,c=p&&p.ya;var F=u.spikesnap;F==="cursor"?(P=o.pointerX,T=o.pointerY):(P=u._offset+p.x,T=c._offset+p.y);var q=vle.readability(p.color,f)<1.5?sd.contrast(f):p.color,V=u.spikemode,H=u.spikethickness,X=u.spikecolor||q,G=wm.getPxPosition(e,u),N,W;if(V.indexOf("toaxis")!==-1||V.indexOf("across")!==-1){if(V.indexOf("toaxis")!==-1&&(N=G,W=T),V.indexOf("across")!==-1){var re=u._counterDomainMin,ae=u._counterDomainMax;u.anchor==="free"&&(re=Math.min(re,u.position),ae=Math.max(ae,u.position)),N=a.t+(1-ae)*a.h,W=a.t+(1-re)*a.h}n.insert("line",":first-child").attr({x1:P,x2:P,y1:N,y2:W,"stroke-width":H,stroke:X,"stroke-dasharray":bm.dashStyle(u.spikedash,H)}).classed("spikeline",!0).classed("crisp",!0),n.insert("line",":first-child").attr({x1:P,x2:P,y1:N,y2:W,"stroke-width":H+2,stroke:f}).classed("spikeline",!0).classed("crisp",!0)}V.indexOf("marker")!==-1&&n.insert("circle",":first-child").attr({cx:P,cy:G-(u.side!=="top"?H:-H),r:H,fill:X}).classed("spikeline",!0)}}}function Bst(e,t,r){if(!r||r.length!==e._hoverdata.length)return!0;for(var n=r.length-1;n>=0;n--){var i=r[n],a=e._hoverdata[n];if(i.curveNumber!==a.curveNumber||String(i.pointNumber)!==String(a.pointNumber)||String(i.pointNumbers)!==String(a.pointNumbers))return!0}return!1}function _le(e,t){return!t||t.vLinePoint!==e._spikepoints.vLinePoint||t.hLinePoint!==e._spikepoints.hLinePoint}function xle(e,t){return A0.plainText(e||"",{len:t,allowedTags:["br","sub","sup","b","i","em","s","u"]})}function Nst(e,t){for(var r=t.charAt(0),n=[],i=[],a=[],o=0;o{"use strict";var Ust=Mr(),Vst=va(),Hst=rp().isUnifiedHover;Cle.exports=function(t,r,n,i){i=i||{};var a=r.legend;function o(s){i.font[s]||(i.font[s]=a?r.legend.font[s]:r.font[s])}r&&Hst(r.hovermode)&&(i.font||(i.font={}),o("size"),o("family"),o("color"),o("weight"),o("style"),o("variant"),a?(i.bgcolor||(i.bgcolor=Vst.combine(r.legend.bgcolor,r.paper_bgcolor)),i.bordercolor||(i.bordercolor=r.legend.bordercolor)):i.bgcolor||(i.bgcolor=r.paper_bgcolor)),n("hoverlabel.bgcolor",i.bgcolor),n("hoverlabel.bordercolor",i.bordercolor),n("hoverlabel.namelength",i.namelength),Ust.coerceFont(n,"hoverlabel.font",i.font),n("hoverlabel.align",i.align)}});var Ple=ye((Brr,Lle)=>{"use strict";var Gst=Mr(),jst=oM(),Wst=B1();Lle.exports=function(t,r){function n(i,a){return Gst.coerce(t,r,Wst,i,a)}jst(t,r,n)}});var Dle=ye((Nrr,Rle)=>{"use strict";var Ile=Mr(),Zst=i3(),Xst=oM();Rle.exports=function(t,r,n,i){function a(s,l){return Ile.coerce(t,r,Zst,s,l)}var o=Ile.extendFlat({},i.hoverlabel);r.hovertemplate&&(o.namelength=-1),Xst(t,r,a,o)}});var OB=ye((Urr,zle)=>{"use strict";var Yst=Mr(),Kst=B1();zle.exports=function(t,r){function n(i,a){return r[i]!==void 0?r[i]:Yst.coerce(t,r,Kst,i,a)}return n("clickmode"),n("hoversubplots"),n("hovermode")}});var Ole=ye((Vrr,qle)=>{"use strict";var Fle=Mr(),Jst=B1(),$st=OB(),Qst=oM();qle.exports=function(t,r){function n(c,f){return Fle.coerce(t,r,Jst,c,f)}var i=$st(t,r);i&&(n("hoverdistance"),n("spikedistance"));var a=n("dragmode");a==="select"&&n("selectdirection");var o=r._has("mapbox"),s=r._has("map"),l=r._has("geo"),u=r._basePlotModules.length;r.dragmode==="zoom"&&((o||s||l)&&u===1||(o||s)&&l&&u===2)&&(r.dragmode="pan"),Qst(t,r,n),Fle.coerceFont(n,"hoverlabel.grouptitlefont",r.hoverlabel.font)}});var Ule=ye((Hrr,Nle)=>{"use strict";var BB=Mr(),Ble=ba();Nle.exports=function(t){var r=t.calcdata,n=t._fullLayout;function i(u){return function(c){return BB.coerceHoverinfo({hoverinfo:c},{_module:u._module},n)}}for(var a=0;a{"use strict";var tlt=ba(),rlt=qB().hover;Vle.exports=function(t,r,n){var i=tlt.getComponentMethod("annotations","onClick")(t,t._hoverdata);n!==void 0&&rlt(t,r,n,!0);function a(){t.emit("plotly_click",{points:t._hoverdata,event:r})}t._hoverdata&&r&&r.target&&(i&&i.then?i.then(a):a(),r.stopImmediatePropagation&&r.stopImmediatePropagation())}});var Nc=ye((jrr,Wle)=>{"use strict";var ilt=xa(),BL=Mr(),nlt=gv(),sM=rp(),Gle=B1(),jle=qB();Wle.exports={moduleType:"component",name:"fx",constants:IS(),schema:{layout:Gle},attributes:i3(),layoutAttributes:Gle,supplyLayoutGlobalDefaults:Ple(),supplyDefaults:Dle(),supplyLayoutDefaults:Ole(),calc:Ule(),getDistanceFunction:sM.getDistanceFunction,getClosest:sM.getClosest,inbox:sM.inbox,quadrature:sM.quadrature,appendArrayPointValue:sM.appendArrayPointValue,castHoverOption:olt,castHoverinfo:slt,hover:jle.hover,unhover:nlt.unhover,loneHover:jle.loneHover,loneUnhover:alt,click:Hle()};function alt(e){var t=BL.isD3Selection(e)?e:ilt.select(e);t.selectAll("g.hovertext").remove(),t.selectAll(".spikeline").remove()}function olt(e,t,r){return BL.castOption(e,t,"hoverlabel."+r)}function slt(e,t,r){function n(i){return BL.coerceHoverinfo({hoverinfo:i},{_module:e._module},t)}return BL.castOption(e,r,"hoverinfo",n)}});var Sg=ye(My=>{"use strict";My.selectMode=function(e){return e==="lasso"||e==="select"};My.drawMode=function(e){return e==="drawclosedpath"||e==="drawopenpath"||e==="drawline"||e==="drawrect"||e==="drawcircle"};My.openMode=function(e){return e==="drawline"||e==="drawopenpath"};My.rectMode=function(e){return e==="select"||e==="drawline"||e==="drawrect"||e==="drawcircle"};My.freeMode=function(e){return e==="lasso"||e==="drawclosedpath"||e==="drawopenpath"};My.selectingOrDrawing=function(e){return My.freeMode(e)||My.rectMode(e)}});var lM=ye((Zrr,Zle)=>{"use strict";Zle.exports=function(t){var r=t._fullLayout;r._glcanvas&&r._glcanvas.size()&&r._glcanvas.each(function(n){n.regl&&n.regl.clear({color:!0,depth:!0})})}});var NL=ye((Xrr,Xle)=>{"use strict";Xle.exports={undo:{width:857.1,height:1e3,path:"m857 350q0-87-34-166t-91-137-137-92-166-34q-96 0-183 41t-147 114q-4 6-4 13t5 11l76 77q6 5 14 5 9-1 13-7 41-53 100-82t126-29q58 0 110 23t92 61 61 91 22 111-22 111-61 91-92 61-110 23q-55 0-105-20t-90-57l77-77q17-16 8-38-10-23-33-23h-250q-15 0-25 11t-11 25v250q0 24 22 33 22 10 39-8l72-72q60 57 137 88t159 31q87 0 166-34t137-92 91-137 34-166z",transform:"matrix(1 0 0 -1 0 850)"},home:{width:928.6,height:1e3,path:"m786 296v-267q0-15-11-26t-25-10h-214v214h-143v-214h-214q-15 0-25 10t-11 26v267q0 1 0 2t0 2l321 264 321-264q1-1 1-4z m124 39l-34-41q-5-5-12-6h-2q-7 0-12 3l-386 322-386-322q-7-4-13-4-7 2-12 7l-35 41q-4 5-3 13t6 12l401 334q18 15 42 15t43-15l136-114v109q0 8 5 13t13 5h107q8 0 13-5t5-13v-227l122-102q5-5 6-12t-4-13z",transform:"matrix(1 0 0 -1 0 850)"},"camera-retro":{width:1e3,height:1e3,path:"m518 386q0 8-5 13t-13 5q-37 0-63-27t-26-63q0-8 5-13t13-5 12 5 5 13q0 23 16 38t38 16q8 0 13 5t5 13z m125-73q0-59-42-101t-101-42-101 42-42 101 42 101 101 42 101-42 42-101z m-572-320h858v71h-858v-71z m643 320q0 89-62 152t-152 62-151-62-63-152 63-151 151-63 152 63 62 151z m-571 358h214v72h-214v-72z m-72-107h858v143h-462l-36-71h-360v-72z m929 143v-714q0-30-21-51t-50-21h-858q-29 0-50 21t-21 51v714q0 30 21 51t50 21h858q29 0 50-21t21-51z",transform:"matrix(1 0 0 -1 0 850)"},zoombox:{width:1e3,height:1e3,path:"m1000-25l-250 251c40 63 63 138 63 218 0 224-182 406-407 406-224 0-406-182-406-406s183-406 407-406c80 0 155 22 218 62l250-250 125 125z m-812 250l0 438 437 0 0-438-437 0z m62 375l313 0 0-312-313 0 0 312z",transform:"matrix(1 0 0 -1 0 850)"},pan:{width:1e3,height:1e3,path:"m1000 350l-187 188 0-125-250 0 0 250 125 0-188 187-187-187 125 0 0-250-250 0 0 125-188-188 186-187 0 125 252 0 0-250-125 0 187-188 188 188-125 0 0 250 250 0 0-126 187 188z",transform:"matrix(1 0 0 -1 0 850)"},zoom_plus:{width:875,height:1e3,path:"m1 787l0-875 875 0 0 875-875 0z m687-500l-187 0 0-187-125 0 0 187-188 0 0 125 188 0 0 187 125 0 0-187 187 0 0-125z",transform:"matrix(1 0 0 -1 0 850)"},zoom_minus:{width:875,height:1e3,path:"m0 788l0-876 875 0 0 876-875 0z m688-500l-500 0 0 125 500 0 0-125z",transform:"matrix(1 0 0 -1 0 850)"},autoscale:{width:1e3,height:1e3,path:"m250 850l-187 0-63 0 0-62 0-188 63 0 0 188 187 0 0 62z m688 0l-188 0 0-62 188 0 0-188 62 0 0 188 0 62-62 0z m-875-938l0 188-63 0 0-188 0-62 63 0 187 0 0 62-187 0z m875 188l0-188-188 0 0-62 188 0 62 0 0 62 0 188-62 0z m-125 188l-1 0-93-94-156 156 156 156 92-93 2 0 0 250-250 0 0-2 93-92-156-156-156 156 94 92 0 2-250 0 0-250 0 0 93 93 157-156-157-156-93 94 0 0 0-250 250 0 0 0-94 93 156 157 156-157-93-93 0 0 250 0 0 250z",transform:"matrix(1 0 0 -1 0 850)"},tooltip_basic:{width:1500,height:1e3,path:"m375 725l0 0-375-375 375-374 0-1 1125 0 0 750-1125 0z",transform:"matrix(1 0 0 -1 0 850)"},tooltip_compare:{width:1125,height:1e3,path:"m187 786l0 2-187-188 188-187 0 0 937 0 0 373-938 0z m0-499l0 1-187-188 188-188 0 0 937 0 0 376-938-1z",transform:"matrix(1 0 0 -1 0 850)"},plotlylogo:{width:1542,height:1e3,path:"m0-10h182v-140h-182v140z m228 146h183v-286h-183v286z m225 714h182v-1000h-182v1000z m225-285h182v-715h-182v715z m225 142h183v-857h-183v857z m231-428h182v-429h-182v429z m225-291h183v-138h-183v138z",transform:"matrix(1 0 0 -1 0 850)"},"z-axis":{width:1e3,height:1e3,path:"m833 5l-17 108v41l-130-65 130-66c0 0 0 38 0 39 0-1 36-14 39-25 4-15-6-22-16-30-15-12-39-16-56-20-90-22-187-23-279-23-261 0-341 34-353 59 3 60 228 110 228 110-140-8-351-35-351-116 0-120 293-142 474-142 155 0 477 22 477 142 0 50-74 79-163 96z m-374 94c-58-5-99-21-99-40 0-24 65-43 144-43 79 0 143 19 143 43 0 19-42 34-98 40v216h87l-132 135-133-135h88v-216z m167 515h-136v1c16 16 31 34 46 52l84 109v54h-230v-71h124v-1c-16-17-28-32-44-51l-89-114v-51h245v72z",transform:"matrix(1 0 0 -1 0 850)"},"3d_rotate":{width:1e3,height:1e3,path:"m922 660c-5 4-9 7-14 11-359 263-580-31-580-31l-102 28 58-400c0 1 1 1 2 2 118 108 351 249 351 249s-62 27-100 42c88 83 222 183 347 122 16-8 30-17 44-27-2 1-4 2-6 4z m36-329c0 0 64 229-88 296-62 27-124 14-175-11 157-78 225-208 249-266 8-19 11-31 11-31 2 5 6 15 11 32-5-13-8-20-8-20z m-775-239c70-31 117-50 198-32-121 80-199 346-199 346l-96-15-58-12c0 0 55-226 155-287z m603 133l-317-139c0 0 4-4 19-14 7-5 24-15 24-15s-177-147-389 4c235-287 536-112 536-112l31-22 100 299-4-1z m-298-153c6-4 14-9 24-15 0 0-17 10-24 15z",transform:"matrix(1 0 0 -1 0 850)"},camera:{width:1e3,height:1e3,path:"m500 450c-83 0-150-67-150-150 0-83 67-150 150-150 83 0 150 67 150 150 0 83-67 150-150 150z m400 150h-120c-16 0-34 13-39 29l-31 93c-6 15-23 28-40 28h-340c-16 0-34-13-39-28l-31-94c-6-15-23-28-40-28h-120c-55 0-100-45-100-100v-450c0-55 45-100 100-100h800c55 0 100 45 100 100v450c0 55-45 100-100 100z m-400-550c-138 0-250 112-250 250 0 138 112 250 250 250 138 0 250-112 250-250 0-138-112-250-250-250z m365 380c-19 0-35 16-35 35 0 19 16 35 35 35 19 0 35-16 35-35 0-19-16-35-35-35z",transform:"matrix(1 0 0 -1 0 850)"},movie:{width:1e3,height:1e3,path:"m938 413l-188-125c0 37-17 71-44 94 64 38 107 107 107 187 0 121-98 219-219 219-121 0-219-98-219-219 0-61 25-117 66-156h-115c30 33 49 76 49 125 0 103-84 187-187 187s-188-84-188-187c0-57 26-107 65-141-38-22-65-62-65-109v-250c0-70 56-126 125-126h500c69 0 125 56 125 126l188-126c34 0 62 28 62 63v375c0 35-28 63-62 63z m-750 0c-69 0-125 56-125 125s56 125 125 125 125-56 125-125-56-125-125-125z m406-1c-87 0-157 70-157 157 0 86 70 156 157 156s156-70 156-156-70-157-156-157z",transform:"matrix(1 0 0 -1 0 850)"},question:{width:857.1,height:1e3,path:"m500 82v107q0 8-5 13t-13 5h-107q-8 0-13-5t-5-13v-107q0-8 5-13t13-5h107q8 0 13 5t5 13z m143 375q0 49-31 91t-77 65-95 23q-136 0-207-119-9-14 4-24l74-55q4-4 10-4 9 0 14 7 30 38 48 51 19 14 48 14 27 0 48-15t21-33q0-21-11-34t-38-25q-35-16-65-48t-29-70v-20q0-8 5-13t13-5h107q8 0 13 5t5 13q0 10 12 27t30 28q18 10 28 16t25 19 25 27 16 34 7 45z m214-107q0-117-57-215t-156-156-215-58-216 58-155 156-58 215 58 215 155 156 216 58 215-58 156-156 57-215z",transform:"matrix(1 0 0 -1 0 850)"},disk:{width:857.1,height:1e3,path:"m214-7h429v214h-429v-214z m500 0h72v500q0 8-6 21t-11 20l-157 156q-5 6-19 12t-22 5v-232q0-22-15-38t-38-16h-322q-22 0-37 16t-16 38v232h-72v-714h72v232q0 22 16 38t37 16h465q22 0 38-16t15-38v-232z m-214 518v178q0 8-5 13t-13 5h-107q-7 0-13-5t-5-13v-178q0-8 5-13t13-5h107q7 0 13 5t5 13z m357-18v-518q0-22-15-38t-38-16h-750q-23 0-38 16t-16 38v750q0 22 16 38t38 16h517q23 0 50-12t42-26l156-157q16-15 27-42t11-49z",transform:"matrix(1 0 0 -1 0 850)"},drawopenpath:{width:70,height:70,path:"M33.21,85.65a7.31,7.31,0,0,1-2.59-.48c-8.16-3.11-9.27-19.8-9.88-41.3-.1-3.58-.19-6.68-.35-9-.15-2.1-.67-3.48-1.43-3.79-2.13-.88-7.91,2.32-12,5.86L3,32.38c1.87-1.64,11.55-9.66,18.27-6.9,2.13.87,4.75,3.14,5.17,9,.17,2.43.26,5.59.36,9.25a224.17,224.17,0,0,0,1.5,23.4c1.54,10.76,4,12.22,4.48,12.4.84.32,2.79-.46,5.76-3.59L43,80.07C41.53,81.57,37.68,85.64,33.21,85.65ZM74.81,69a11.34,11.34,0,0,0,6.09-6.72L87.26,44.5,74.72,32,56.9,38.35c-2.37.86-5.57,3.42-6.61,6L38.65,72.14l8.42,8.43ZM55,46.27a7.91,7.91,0,0,1,3.64-3.17l14.8-5.3,8,8L76.11,60.6l-.06.19a6.37,6.37,0,0,1-3,3.43L48.25,74.59,44.62,71Zm16.57,7.82A6.9,6.9,0,1,0,64.64,61,6.91,6.91,0,0,0,71.54,54.09Zm-4.05,0a2.85,2.85,0,1,1-2.85-2.85A2.86,2.86,0,0,1,67.49,54.09Zm-4.13,5.22L60.5,56.45,44.26,72.7l2.86,2.86ZM97.83,35.67,84.14,22l-8.57,8.57L89.26,44.24Zm-13.69-8,8,8-2.85,2.85-8-8Z",transform:"matrix(1 0 0 1 -15 -15)"},drawclosedpath:{width:90,height:90,path:"M88.41,21.12a26.56,26.56,0,0,0-36.18,0l-2.07,2-2.07-2a26.57,26.57,0,0,0-36.18,0,23.74,23.74,0,0,0,0,34.8L48,90.12a3.22,3.22,0,0,0,4.42,0l36-34.21a23.73,23.73,0,0,0,0-34.79ZM84,51.24,50.16,83.35,16.35,51.25a17.28,17.28,0,0,1,0-25.47,20,20,0,0,1,27.3,0l4.29,4.07a3.23,3.23,0,0,0,4.44,0l4.29-4.07a20,20,0,0,1,27.3,0,17.27,17.27,0,0,1,0,25.46ZM66.76,47.68h-33v6.91h33ZM53.35,35H46.44V68h6.91Z",transform:"matrix(1 0 0 1 -5 -5)"},lasso:{width:1031,height:1e3,path:"m1018 538c-36 207-290 336-568 286-277-48-473-256-436-463 10-57 36-108 76-151-13-66 11-137 68-183 34-28 75-41 114-42l-55-70 0 0c-2-1-3-2-4-3-10-14-8-34 5-45 14-11 34-8 45 4 1 1 2 3 2 5l0 0 113 140c16 11 31 24 45 40 4 3 6 7 8 11 48-3 100 0 151 9 278 48 473 255 436 462z m-624-379c-80 14-149 48-197 96 42 42 109 47 156 9 33-26 47-66 41-105z m-187-74c-19 16-33 37-39 60 50-32 109-55 174-68-42-25-95-24-135 8z m360 75c-34-7-69-9-102-8 8 62-16 128-68 170-73 59-175 54-244-5-9 20-16 40-20 61-28 159 121 317 333 354s407-60 434-217c28-159-121-318-333-355z",transform:"matrix(1 0 0 -1 0 850)"},selectbox:{width:1e3,height:1e3,path:"m0 850l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-285l0-143 143 0 0 143-143 0z m857 0l0-143 143 0 0 143-143 0z m-857-286l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z m285 0l0-143 143 0 0 143-143 0z m286 0l0-143 143 0 0 143-143 0z",transform:"matrix(1 0 0 -1 0 850)"},drawline:{width:70,height:70,path:"M60.64,62.3a11.29,11.29,0,0,0,6.09-6.72l6.35-17.72L60.54,25.31l-17.82,6.4c-2.36.86-5.57,3.41-6.6,6L24.48,65.5l8.42,8.42ZM40.79,39.63a7.89,7.89,0,0,1,3.65-3.17l14.79-5.31,8,8L61.94,54l-.06.19a6.44,6.44,0,0,1-3,3.43L34.07,68l-3.62-3.63Zm16.57,7.81a6.9,6.9,0,1,0-6.89,6.9A6.9,6.9,0,0,0,57.36,47.44Zm-4,0a2.86,2.86,0,1,1-2.85-2.85A2.86,2.86,0,0,1,53.32,47.44Zm-4.13,5.22L46.33,49.8,30.08,66.05l2.86,2.86ZM83.65,29,70,15.34,61.4,23.9,75.09,37.59ZM70,21.06l8,8-2.84,2.85-8-8ZM87,80.49H10.67V87H87Z",transform:"matrix(1 0 0 1 -15 -15)"},drawrect:{width:80,height:80,path:"M78,22V79H21V22H78m9-9H12V88H87V13ZM68,46.22H31V54H68ZM53,32H45.22V69H53Z",transform:"matrix(1 0 0 1 -10 -10)"},drawcircle:{width:80,height:80,path:"M50,84.72C26.84,84.72,8,69.28,8,50.3S26.84,15.87,50,15.87,92,31.31,92,50.3,73.16,84.72,50,84.72Zm0-60.59c-18.6,0-33.74,11.74-33.74,26.17S31.4,76.46,50,76.46,83.74,64.72,83.74,50.3,68.6,24.13,50,24.13Zm17.15,22h-34v7.11h34Zm-13.8-13H46.24v34h7.11Z",transform:"matrix(1 0 0 1 -10 -10)"},eraseshape:{width:80,height:80,path:"M82.77,78H31.85L6,49.57,31.85,21.14H82.77a8.72,8.72,0,0,1,8.65,8.77V69.24A8.72,8.72,0,0,1,82.77,78ZM35.46,69.84H82.77a.57.57,0,0,0,.49-.6V29.91a.57.57,0,0,0-.49-.61H35.46L17,49.57Zm32.68-34.7-24,24,5,5,24-24Zm-19,.53-5,5,24,24,5-5Z",transform:"matrix(1 0 0 1 -10 -10)"},spikeline:{width:1e3,height:1e3,path:"M512 409c0-57-46-104-103-104-57 0-104 47-104 104 0 57 47 103 104 103 57 0 103-46 103-103z m-327-39l92 0 0 92-92 0z m-185 0l92 0 0 92-92 0z m370-186l92 0 0 93-92 0z m0-184l92 0 0 92-92 0z",transform:"matrix(1.5 0 0 -1.5 0 850)"},pencil:{width:1792,height:1792,path:"M491 1536l91-91-235-235-91 91v107h128v128h107zm523-928q0-22-22-22-10 0-17 7l-542 542q-7 7-7 17 0 22 22 22 10 0 17-7l542-542q7-7 7-17zm-54-192l416 416-832 832h-416v-416zm683 96q0 53-37 90l-166 166-416-416 166-165q36-38 90-38 53 0 91 38l235 234q37 39 37 91z",transform:"matrix(1 0 0 1 0 1)"},newplotlylogo:{name:"newplotlylogo",svg:[""," plotly-logomark"," "," "," "," "," "," "," "," "," "," "," "," "," ",""].join("")}}});var VL=ye((Yrr,Yle)=>{"use strict";var UL=32;Yle.exports={CIRCLE_SIDES:UL,i000:0,i090:UL/4,i180:UL/2,i270:UL/4*3,cos45:Math.cos(Math.PI/4),sin45:Math.sin(Math.PI/4),SQRT2:Math.sqrt(2)}});var HL=ye((Krr,Jle)=>{"use strict";var llt=Mr().strTranslate;function Kle(e,t){switch(e.type){case"log":return e.p2d(t);case"date":return e.p2r(t,0,e.calendar);default:return e.p2r(t)}}function ult(e,t){switch(e.type){case"log":return e.d2p(t);case"date":return e.r2p(t,0,e.calendar);default:return e.r2p(t)}}function clt(e){var t=e._id.charAt(0)==="y"?1:0;return function(r){return Kle(e,r[t])}}function flt(e){return llt(e.xaxis._offset,e.yaxis._offset)}Jle.exports={p2r:Kle,r2p:ult,axValue:clt,getTransform:flt}});var u_=ye(Ey=>{"use strict";var hlt=XS(),eue=VL(),V3=eue.CIRCLE_SIDES,NB=eue.SQRT2,tue=HL(),$le=tue.p2r,Qle=tue.r2p,dlt=[0,3,4,5,6,1,2],vlt=[0,3,4,1,2];Ey.writePaths=function(e){var t=e.length;if(!t)return"M0,0Z";for(var r="",n=0;n0&&l{"use strict";var oue=Sg(),plt=oue.drawMode,glt=oue.openMode,H3=VL(),rue=H3.i000,iue=H3.i090,nue=H3.i180,aue=H3.i270,mlt=H3.cos45,ylt=H3.sin45,sue=HL(),jL=sue.p2r,c_=sue.r2p,_lt=Q1(),xlt=_lt.clearOutline,WL=u_(),blt=WL.readPaths,wlt=WL.writePaths,Tlt=WL.ellipseOver,Alt=WL.fixDatesForPaths;function Slt(e,t){if(e.length){var r=e[0][0];if(r){var n=t.gd,i=t.isActiveShape,a=t.dragmode,o=(n.layout||{}).shapes||[];if(!plt(a)&&i!==void 0){var s=n._fullLayout._activeShapeIndex;if(s{"use strict";var Mlt=Sg(),Elt=Mlt.selectMode,klt=Q1(),Clt=klt.clearOutline,UB=u_(),Llt=UB.readPaths,Plt=UB.writePaths,Ilt=UB.fixDatesForPaths;cue.exports=function(t,r){if(t.length){var n=t[0][0];if(n){var i=n.getAttribute("d"),a=r.gd,o=a._fullLayout.newselection,s=r.plotinfo,l=s.xaxis,u=s.yaxis,c=r.isActiveSelection,f=r.dragmode,h=(a.layout||{}).selections||[];if(!Elt(f)&&c!==void 0){var d=a._fullLayout._activeSelectionIndex;if(d{"use strict";fue.exports={segmentRE:/[MLHVQCTSZ][^MLHVQCTSZ]*/g,paramRE:/[^\s,]+/g,paramIsX:{M:{0:!0,drawn:0},L:{0:!0,drawn:0},H:{0:!0,drawn:0},V:{},Q:{0:!0,2:!0,drawn:2},C:{0:!0,2:!0,4:!0,drawn:4},T:{0:!0,drawn:0},S:{0:!0,2:!0,drawn:2},Z:{}},paramIsY:{M:{1:!0,drawn:1},L:{1:!0,drawn:1},H:{},V:{0:!0,drawn:0},Q:{1:!0,3:!0,drawn:3},C:{1:!0,3:!0,5:!0,drawn:5},T:{1:!0,drawn:1},S:{1:!0,3:!0,drawn:5},Z:{}},numParams:{M:2,L:2,H:1,V:1,Q:4,C:6,T:2,S:4,Z:0}}});var f_=ye(Ld=>{"use strict";var Fb=cM(),hue=Mr(),XL=Qa();Ld.rangeToShapePosition=function(e){return e.type==="log"?e.r2d:function(t){return t}};Ld.shapePositionToRange=function(e){return e.type==="log"?e.d2r:function(t){return t}};Ld.decodeDate=function(e){return function(t){return t.replace&&(t=t.replace("_"," ")),e(t)}};Ld.encodeDate=function(e){return function(t){return e(t).replace(" ","_")}};Ld.extractPathCoords=function(e,t,r){var n=[],i=e.match(Fb.segmentRE);return i.forEach(function(a){var o=t[a.charAt(0)].drawn;if(o!==void 0){var s=a.substr(1).match(Fb.paramRE);if(!(!s||s.lengthd&&(x="X"),x});return u>d&&(v=v.replace(/[\s,]*X.*/,""),hue.log("Ignoring extra params in segment "+l)),c+v})}function fM(e,t){t=t||0;var r=0;return t&&e&&(e.type==="category"||e.type==="multicategory")&&(r=(e.r2p(1)-e.r2p(0))*t),r}});var GB=ye((rir,gue)=>{"use strict";var Dlt=Mr(),G3=Qa(),due=Ll(),vue=ao(),zlt=u_().readPaths,HB=f_(),Flt=HB.getPathString,pue=x6(),qlt=Nh().FROM_TL;gue.exports=function(t,r,n,i){if(i.selectAll(".shape-label").remove(),!!(n.label.text||n.label.texttemplate)){var a;if(n.label.texttemplate){var o={};if(n.type!=="path"){var s=G3.getFromId(t,n.xref),l=G3.getFromId(t,n.yref);for(var u in pue){var c=pue[u](n,s,l);c!==void 0&&(o[u]=c)}}a=Dlt.texttemplateStringForShapes(n.label.texttemplate,{},t._fullLayout._d3locale,o)}else a=n.label.text;var f={"data-index":r},h=n.label.font,d={"data-notex":1},v=i.append("g").attr(f).classed("shape-label",!0),x=v.append("text").attr(d).classed("shape-label-text",!0).text(a),b,g,E,k;if(n.path){var A=Flt(t,n),L=zlt(A,t);b=1/0,E=1/0,g=-1/0,k=-1/0;for(var _=0;_=e?i=t-n:i=n-t,-180/Math.PI*Math.atan2(i,a)}function Blt(e,t,r,n,i,a,o){var s=i.label.textposition,l=i.label.textangle,u=i.label.padding,c=i.type,f=Math.PI/180*a,h=Math.sin(f),d=Math.cos(f),v=i.label.xanchor,x=i.label.yanchor,b,g,E,k;if(c==="line"){s==="start"?(b=e,g=t):s==="end"?(b=r,g=n):(b=(e+r)/2,g=(t+n)/2),v==="auto"&&(s==="start"?l==="auto"?r>e?v="left":re?v="right":re?v="right":re?v="left":r{"use strict";var Nlt=Mr(),Ult=Nlt.strTranslate,mue=gv(),xue=Sg(),Vlt=xue.drawMode,bue=xue.selectMode,wue=ba(),yue=va(),KL=VL(),Hlt=KL.i000,Glt=KL.i090,jlt=KL.i180,Wlt=KL.i270,Zlt=Q1(),Tue=Zlt.clearOutlineControllers,WB=u_(),YL=WB.pointsOnRectangle,jB=WB.pointsOnEllipse,Xlt=WB.writePaths,Ylt=ZL().newShapes,Klt=ZL().createShapeObj,Jlt=VB(),$lt=GB();Aue.exports=function e(t,r,n,i){i||(i=0);var a=n.gd;function o(){e(t,r,n,i++),(jB(t[0])||n.hasText)&&s({redrawing:!0})}function s(G){var N={};n.isActiveShape!==void 0&&(n.isActiveShape=!1,N=Ylt(r,n)),n.isActiveSelection!==void 0&&(n.isActiveSelection=!1,N=Jlt(r,n),a._fullLayout._reselect=!0),Object.keys(N).length&&wue.call((G||{}).redrawing?"relayout":"_guiRelayout",a,N)}var l=a._fullLayout,u=l._zoomlayer,c=n.dragmode,f=Vlt(c),h=bue(c);(f||h)&&(a._fullLayout._outlining=!0),Tue(a),r.attr("d",Xlt(t));var d,v,x,b,g;if(!i&&(n.isActiveShape||n.isActiveSelection)){g=Qlt([],t);var E=u.append("g").attr("class","outline-controllers");P(E),X()}if(f&&n.hasText){var k=u.select(".label-temp"),A=Klt(r,n,n.dragmode);$lt(a,"label-temp",A,k)}function L(G){x=+G.srcElement.getAttribute("data-i"),b=+G.srcElement.getAttribute("data-j"),d[x][b].moveFn=_}function _(G,N){if(t.length){var W=g[x][b][1],re=g[x][b][2],ae=t[x],_e=ae.length;if(YL(ae)){var Me=G,ke=N;if(n.isActiveSelection){var ge=_ue(ae,b);ge[1]===ae[b][1]?ke=0:Me=0}for(var ie=0;ie<_e;ie++)if(ie!==b){var Te=ae[ie];Te[1]===ae[b][1]&&(Te[1]=W+Me),Te[2]===ae[b][2]&&(Te[2]=re+ke)}if(ae[b][1]=W+Me,ae[b][2]=re+ke,!YL(ae))for(var Ee=0;Ee<_e;Ee++)for(var Ae=0;Ae1&&!(G.length===2&&G[1][0]==="Z")&&(b===0&&(G[0][0]="M"),t[x]=G,o(),s())}}function p(G,N){if(G===2){x=+N.srcElement.getAttribute("data-i"),b=+N.srcElement.getAttribute("data-j");var W=t[x];!YL(W)&&!jB(W)&&M()}}function P(G){d=[];for(var N=0;N{"use strict";var tut=xa(),Lue=ba(),Sue=Mr(),j3=Qa(),rut=u_().readPaths,iut=JL(),QL=GB(),Pue=Q1().clearOutlineControllers,ZB=va(),YB=ao(),nut=Vs().arrayEditor,Mue=gv(),Eue=Tg(),qb=cM(),Mp=f_(),XB=Mp.getPathString;Due.exports={draw:KB,drawOne:Iue,eraseActiveShape:sut,drawLabel:QL};function KB(e){var t=e._fullLayout;t._shapeUpperLayer.selectAll("path").remove(),t._shapeLowerLayer.selectAll("path").remove(),t._shapeUpperLayer.selectAll("text").remove(),t._shapeLowerLayer.selectAll("text").remove();for(var r in t._plots){var n=t._plots[r].shapelayer;n&&(n.selectAll("path").remove(),n.selectAll("text").remove())}for(var i=0;io&&kt>s&&!rt.shiftKey?Mue.getCursor(Ct/Rt,1-Yt/kt):"move";Eue(t,xr),Te=xr.split("-")[0]}}function Ce(rt){$L(e)||(l&&(g=ae(r.xanchor)),u&&(E=_e(r.yanchor)),r.type==="path"?T=r.path:(d=l?r.x0:ae(r.x0),v=u?r.y0:_e(r.y0),x=l?r.x1:ae(r.x1),b=u?r.y1:_e(r.y1)),db?(k=v,C="y0",A=b,M="y1"):(k=b,C="y1",A=v,M="y0"),ze(rt),nt(i,r),qt(t,r,e),ie.moveFn=Te==="move"?ce:Ge,ie.altKey=rt.altKey)}function me(){$L(e)||(Eue(t),ct(i),Rue(t,e,r),Lue.call("_guiRelayout",e,a.getUpdateObj()))}function Re(){$L(e)||ct(i)}function ce(rt,ot){if(r.type==="path"){var Rt=function(Yt){return Yt},kt=Rt,Ct=Rt;l?h("xanchor",r.xanchor=Me(g+rt)):(kt=function(xr){return Me(ae(xr)+rt)},q&&q.type==="date"&&(kt=Mp.encodeDate(kt))),u?h("yanchor",r.yanchor=ke(E+ot)):(Ct=function(xr){return ke(_e(xr)+ot)},H&&H.type==="date"&&(Ct=Mp.encodeDate(Ct))),h("path",r.path=kue(T,kt,Ct))}else l?h("xanchor",r.xanchor=Me(g+rt)):(h("x0",r.x0=Me(d+rt)),h("x1",r.x1=Me(x+rt))),u?h("yanchor",r.yanchor=ke(E+ot)):(h("y0",r.y0=ke(v+ot)),h("y1",r.y1=ke(b+ot)));t.attr("d",XB(e,r)),nt(i,r),QL(e,n,r,F)}function Ge(rt,ot){if(f){var Rt=function(_r){return _r},kt=Rt,Ct=Rt;l?h("xanchor",r.xanchor=Me(g+rt)):(kt=function(Br){return Me(ae(Br)+rt)},q&&q.type==="date"&&(kt=Mp.encodeDate(kt))),u?h("yanchor",r.yanchor=ke(E+ot)):(Ct=function(Br){return ke(_e(Br)+ot)},H&&H.type==="date"&&(Ct=Mp.encodeDate(Ct))),h("path",r.path=kue(T,kt,Ct))}else if(c){if(Te==="resize-over-start-point"){var Yt=d+rt,xr=u?v-ot:v+ot;h("x0",r.x0=l?Yt:Me(Yt)),h("y0",r.y0=u?xr:ke(xr))}else if(Te==="resize-over-end-point"){var er=x+rt,Ke=u?b-ot:b+ot;h("x1",r.x1=l?er:Me(er)),h("y1",r.y1=u?Ke:ke(Ke))}}else{var xt=function(_r){return Te.indexOf(_r)!==-1},bt=xt("n"),Lt=xt("s"),St=xt("w"),Et=xt("e"),dt=bt?k+ot:k,Ht=Lt?A+ot:A,$t=St?L+rt:L,fr=Et?_+rt:_;u&&(bt&&(dt=k-ot),Lt&&(Ht=A-ot)),(!u&&Ht-dt>s||u&&dt-Ht>s)&&(h(C,r[C]=u?dt:ke(dt)),h(M,r[M]=u?Ht:ke(Ht))),fr-$t>o&&(h(p,r[p]=l?$t:Me($t)),h(P,r[P]=l?fr:Me(fr)))}t.attr("d",XB(e,r)),nt(i,r),QL(e,n,r,F)}function nt(rt,ot){(l||u)&&Rt();function Rt(){var kt=ot.type!=="path",Ct=rt.selectAll(".visual-cue").data([0]),Yt=1;Ct.enter().append("path").attr({fill:"#fff","fill-rule":"evenodd",stroke:"#000","stroke-width":Yt}).classed("visual-cue",!0);var xr=ae(l?ot.xanchor:Sue.midRange(kt?[ot.x0,ot.x1]:Mp.extractPathCoords(ot.path,qb.paramIsX))),er=_e(u?ot.yanchor:Sue.midRange(kt?[ot.y0,ot.y1]:Mp.extractPathCoords(ot.path,qb.paramIsY)));if(xr=Mp.roundPositionForSharpStrokeRendering(xr,Yt),er=Mp.roundPositionForSharpStrokeRendering(er,Yt),l&&u){var Ke="M"+(xr-1-Yt)+","+(er-1-Yt)+"h-8v2h8 v8h2v-8 h8v-2h-8 v-8h-2 Z";Ct.attr("d",Ke)}else if(l){var xt="M"+(xr-1-Yt)+","+(er-9-Yt)+"v18 h2 v-18 Z";Ct.attr("d",xt)}else{var bt="M"+(xr-9-Yt)+","+(er-1-Yt)+"h18 v2 h-18 Z";Ct.attr("d",bt)}}}function ct(rt){rt.selectAll(".visual-cue").remove()}function qt(rt,ot,Rt){var kt=ot.xref,Ct=ot.yref,Yt=j3.getFromId(Rt,kt),xr=j3.getFromId(Rt,Ct),er="";kt!=="paper"&&!Yt.autorange&&(er+=kt),Ct!=="paper"&&!xr.autorange&&(er+=Ct),YB.setClipUrl(rt,er?"clip"+Rt._fullLayout._uid+er:null,Rt)}}function kue(e,t,r){return e.replace(qb.segmentRE,function(n){var i=0,a=n.charAt(0),o=qb.paramIsX[a],s=qb.paramIsY[a],l=qb.numParams[a],u=n.substr(1).replace(qb.paramRE,function(c){return i>=l||(o[i]?c=t(c):s[i]&&(c=r(c)),i++),c});return a+u})}function out(e,t){if(eP(e)){var r=t.node(),n=+r.getAttribute("data-index");if(n>=0){if(n===e._fullLayout._activeShapeIndex){Cue(e);return}e._fullLayout._activeShapeIndex=n,e._fullLayout._deactivateShape=Cue,KB(e)}}}function Cue(e){if(eP(e)){var t=e._fullLayout._activeShapeIndex;t>=0&&(Pue(e),delete e._fullLayout._activeShapeIndex,KB(e))}}function sut(e){if(eP(e)){Pue(e);var t=e._fullLayout._activeShapeIndex,r=(e.layout||{}).shapes||[];if(t{"use strict";var S0=ba(),zue=Xu(),Fue=af(),al=NL(),lut=tP().eraseActiveShape,rP=Mr(),Os=rP._,ol=Hue.exports={};ol.toImage={name:"toImage",title:function(e){var t=e._context.toImageButtonOptions||{},r=t.format||"png";return r==="png"?Os(e,"Download plot as a png"):Os(e,"Download plot")},icon:al.camera,click:function(e){var t=e._context.toImageButtonOptions,r={format:t.format||"png"};rP.notifier(Os(e,"Taking snapshot - this may take a few seconds"),"long"),["filename","width","height","scale"].forEach(function(n){n in t&&(r[n]=t[n])}),S0.call("downloadImage",e,r).then(function(n){rP.notifier(Os(e,"Snapshot succeeded")+" - "+n,"long")}).catch(function(){rP.notifier(Os(e,"Sorry, there was a problem downloading your snapshot!"),"long")})}};ol.sendDataToCloud={name:"sendDataToCloud",title:function(e){return Os(e,"Edit in Chart Studio")},icon:al.disk,click:function(e){zue.sendDataToCloud(e)}};ol.editInChartStudio={name:"editInChartStudio",title:function(e){return Os(e,"Edit in Chart Studio")},icon:al.pencil,click:function(e){zue.sendDataToCloud(e)}};ol.zoom2d={name:"zoom2d",_cat:"zoom",title:function(e){return Os(e,"Zoom")},attr:"dragmode",val:"zoom",icon:al.zoombox,click:Ov};ol.pan2d={name:"pan2d",_cat:"pan",title:function(e){return Os(e,"Pan")},attr:"dragmode",val:"pan",icon:al.pan,click:Ov};ol.select2d={name:"select2d",_cat:"select",title:function(e){return Os(e,"Box Select")},attr:"dragmode",val:"select",icon:al.selectbox,click:Ov};ol.lasso2d={name:"lasso2d",_cat:"lasso",title:function(e){return Os(e,"Lasso Select")},attr:"dragmode",val:"lasso",icon:al.lasso,click:Ov};ol.drawclosedpath={name:"drawclosedpath",title:function(e){return Os(e,"Draw closed freeform")},attr:"dragmode",val:"drawclosedpath",icon:al.drawclosedpath,click:Ov};ol.drawopenpath={name:"drawopenpath",title:function(e){return Os(e,"Draw open freeform")},attr:"dragmode",val:"drawopenpath",icon:al.drawopenpath,click:Ov};ol.drawline={name:"drawline",title:function(e){return Os(e,"Draw line")},attr:"dragmode",val:"drawline",icon:al.drawline,click:Ov};ol.drawrect={name:"drawrect",title:function(e){return Os(e,"Draw rectangle")},attr:"dragmode",val:"drawrect",icon:al.drawrect,click:Ov};ol.drawcircle={name:"drawcircle",title:function(e){return Os(e,"Draw circle")},attr:"dragmode",val:"drawcircle",icon:al.drawcircle,click:Ov};ol.eraseshape={name:"eraseshape",title:function(e){return Os(e,"Erase active shape")},icon:al.eraseshape,click:lut};ol.zoomIn2d={name:"zoomIn2d",_cat:"zoomin",title:function(e){return Os(e,"Zoom in")},attr:"zoom",val:"in",icon:al.zoom_plus,click:Ov};ol.zoomOut2d={name:"zoomOut2d",_cat:"zoomout",title:function(e){return Os(e,"Zoom out")},attr:"zoom",val:"out",icon:al.zoom_minus,click:Ov};ol.autoScale2d={name:"autoScale2d",_cat:"autoscale",title:function(e){return Os(e,"Autoscale")},attr:"zoom",val:"auto",icon:al.autoscale,click:Ov};ol.resetScale2d={name:"resetScale2d",_cat:"resetscale",title:function(e){return Os(e,"Reset axes")},attr:"zoom",val:"reset",icon:al.home,click:Ov};ol.hoverClosestCartesian={name:"hoverClosestCartesian",_cat:"hoverclosest",title:function(e){return Os(e,"Show closest data on hover")},attr:"hovermode",val:"closest",icon:al.tooltip_basic,gravity:"ne",click:Ov};ol.hoverCompareCartesian={name:"hoverCompareCartesian",_cat:"hoverCompare",title:function(e){return Os(e,"Compare data on hover")},attr:"hovermode",val:function(e){return e._fullLayout._isHoriz?"y":"x"},icon:al.tooltip_compare,gravity:"ne",click:Ov};function Ov(e,t){var r=t.currentTarget,n=r.getAttribute("data-attr"),i=r.getAttribute("data-val")||!0,a=e._fullLayout,o={},s=Fue.list(e,null,!0),l=a._cartesianSpikesEnabled,u,c;if(n==="zoom"){var f=i==="in"?.5:2,h=(1+f)/2,d=(1-f)/2,v;for(c=0;c{"use strict";var Gue=QB(),fut=Object.keys(Gue),jue=["drawline","drawopenpath","drawclosedpath","drawcircle","drawrect","eraseshape"],Wue=["v1hovermode","hoverclosest","hovercompare","togglehover","togglespikelines"].concat(jue),Z3=[],hut=function(e){if(Wue.indexOf(e._cat||e.name)===-1){var t=e.name,r=(e._cat||e.name).toLowerCase();Z3.indexOf(t)===-1&&Z3.push(t),Z3.indexOf(r)===-1&&Z3.push(r)}};fut.forEach(function(e){hut(Gue[e])});Z3.sort();Zue.exports={DRAW_MODES:jue,backButtons:Wue,foreButtons:Z3}});var tN=ye((lir,Xue)=>{"use strict";var sir=eN();Xue.exports={editType:"modebar",orientation:{valType:"enumerated",values:["v","h"],dflt:"h",editType:"modebar"},bgcolor:{valType:"color",editType:"modebar"},color:{valType:"color",editType:"modebar"},activecolor:{valType:"color",editType:"modebar"},uirevision:{valType:"any",editType:"none"},add:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"},remove:{valType:"string",arrayOk:!0,dflt:"",editType:"modebar"}}});var Kue=ye((uir,Yue)=>{"use strict";var dut=Mr(),hM=va(),vut=Vs(),put=tN();Yue.exports=function(t,r){var n=t.modebar||{},i=vut.newContainer(r,"modebar");function a(s,l){return dut.coerce(n,i,put,s,l)}a("orientation"),a("bgcolor",hM.addOpacity(r.paper_bgcolor,.5));var o=hM.contrast(hM.rgb(r.modebar.bgcolor));a("color",hM.addOpacity(o,.3)),a("activecolor",hM.addOpacity(o,.7)),a("uirevision",r.uirevision),a("add"),a("remove")}});var ece=ye((cir,Que)=>{"use strict";var rN=xa(),gut=uo(),nP=Mr(),Jue=NL(),mut=QC().version,yut=new DOMParser;function $ue(e){this.container=e.container,this.element=document.createElement("div"),this.update(e.graphInfo,e.buttons),this.container.appendChild(this.element)}var Tm=$ue.prototype;Tm.update=function(e,t){this.graphInfo=e;var r=this.graphInfo._context,n=this.graphInfo._fullLayout,i="modebar-"+n._uid;this.element.setAttribute("id",i),this._uid=i,this.element.className="modebar",r.displayModeBar==="hover"&&(this.element.className+=" modebar--hover ease-bg"),n.modebar.orientation==="v"&&(this.element.className+=" vertical",t=t.reverse());var a=n.modebar,o="#"+i+" .modebar-group";document.querySelectorAll(o).forEach(function(f){f.style.backgroundColor=a.bgcolor});var s=!this.hasButtons(t),l=this.hasLogo!==r.displaylogo,u=this.locale!==r.locale;if(this.locale=r.locale,(s||l||u)&&(this.removeAllButtons(),this.updateButtons(t),r.watermark||r.displaylogo)){var c=this.getLogo();r.watermark&&(c.className=c.className+" watermark"),n.modebar.orientation==="v"?this.element.insertBefore(c,this.element.childNodes[0]):this.element.appendChild(c),this.hasLogo=!0}this.updateActiveButton(),nP.setStyleOnHover("#"+i+" .modebar-btn",".active",".icon path","fill: "+a.activecolor,"fill: "+a.color,this.element)};Tm.updateButtons=function(e){var t=this;this.buttons=e,this.buttonElements=[],this.buttonsNames=[],this.buttons.forEach(function(r){var n=t.createGroup();r.forEach(function(i){var a=i.name;if(!a)throw new Error("must provide button 'name' in button config");if(t.buttonsNames.indexOf(a)!==-1)throw new Error("button name '"+a+"' is taken");t.buttonsNames.push(a);var o=t.createButton(i);t.buttonElements.push(o),n.appendChild(o)}),t.element.appendChild(n)})};Tm.createGroup=function(){var e=document.createElement("div");e.className="modebar-group";var t=this.graphInfo._fullLayout.modebar;return e.style.backgroundColor=t.bgcolor,e};Tm.createButton=function(e){var t=this,r=document.createElement("a");r.setAttribute("rel","tooltip"),r.className="modebar-btn";var n=e.title;n===void 0?n=e.name:typeof n=="function"&&(n=n(this.graphInfo)),(n||n===0)&&r.setAttribute("data-title",n),e.attr!==void 0&&r.setAttribute("data-attr",e.attr);var i=e.val;i!==void 0&&(typeof i=="function"&&(i=i(this.graphInfo)),r.setAttribute("data-val",i));var a=e.click;if(typeof a!="function")throw new Error("must provide button 'click' function in button config");r.addEventListener("click",function(s){e.click(t.graphInfo,s),t.updateActiveButton(s.currentTarget)}),r.setAttribute("data-toggle",e.toggle||!1),e.toggle&&rN.select(r).classed("active",!0);var o=e.icon;return typeof o=="function"?r.appendChild(o()):r.appendChild(this.createIcon(o||Jue.question)),r.setAttribute("data-gravity",e.gravity||"n"),r};Tm.createIcon=function(e){var t=gut(e.height)?Number(e.height):e.ascent-e.descent,r="http://www.w3.org/2000/svg",n;if(e.path){n=document.createElementNS(r,"svg"),n.setAttribute("viewBox",[0,0,e.width,t].join(" ")),n.setAttribute("class","icon");var i=document.createElementNS(r,"path");i.setAttribute("d",e.path),e.transform?i.setAttribute("transform",e.transform):e.ascent!==void 0&&i.setAttribute("transform","matrix(1 0 0 -1 0 "+e.ascent+")"),n.appendChild(i)}if(e.svg){var a=yut.parseFromString(e.svg,"application/xml");n=a.childNodes[0]}return n.setAttribute("height","1em"),n.setAttribute("width","1em"),n};Tm.updateActiveButton=function(e){var t=this.graphInfo._fullLayout,r=e!==void 0?e.getAttribute("data-attr"):null;this.buttonElements.forEach(function(n){var i=n.getAttribute("data-val")||!0,a=n.getAttribute("data-attr"),o=n.getAttribute("data-toggle")==="true",s=rN.select(n),l=function(f,h){var d=t.modebar,v=f.querySelector(".icon path");v&&(h||f.matches(":hover")?v.style.fill=d.activecolor:v.style.fill=d.color)};if(o){if(a===r){var u=!s.classed("active");s.classed("active",u),l(n,u)}}else{var c=a===null?a:nP.nestedProperty(t,a).get();s.classed("active",c===i),l(n,c===i)}})};Tm.hasButtons=function(e){var t=this.buttons;if(!t||e.length!==t.length)return!1;for(var r=0;r{"use strict";var but=af(),tce=lu(),iN=ba(),wut=rp().isUnifiedHover,Tut=ece(),aP=QB(),Aut=eN().DRAW_MODES,Sut=Mr().extendDeep;rce.exports=function(t){var r=t._fullLayout,n=t._context,i=r._modeBar;if(!n.displayModeBar&&!n.watermark){i&&(i.destroy(),delete r._modeBar);return}if(!Array.isArray(n.modeBarButtonsToRemove))throw new Error(["*modeBarButtonsToRemove* configuration options","must be an array."].join(" "));if(!Array.isArray(n.modeBarButtonsToAdd))throw new Error(["*modeBarButtonsToAdd* configuration options","must be an array."].join(" "));var a=n.modeBarButtons,o;Array.isArray(a)&&a.length?o=Put(a):!n.displayModeBar&&n.watermark?o=[]:o=Mut(t),i?i.update(t,o):r._modeBar=Tut(t,o)};function Mut(e){var t=e._fullLayout,r=e._fullData,n=e._context;function i(N,W){if(typeof W=="string"){if(W.toLowerCase()===N.toLowerCase())return!0}else{var re=W.name,ae=W._cat||W.name;if(re===N||ae===N.toLowerCase())return!0}return!1}var a=t.modebar.add;typeof a=="string"&&(a=[a]);var o=t.modebar.remove;typeof o=="string"&&(o=[o]);var s=n.modeBarButtonsToAdd.concat(a.filter(function(N){for(var W=0;W1?(P=["toggleHover"],T=["resetViews"]):f?(p=["zoomInGeo","zoomOutGeo"],P=["hoverClosestGeo"],T=["resetGeo"]):c?(P=["hoverClosest3d"],T=["resetCameraDefault3d","resetCameraLastSave3d"]):x?(p=["zoomInMapbox","zoomOutMapbox"],P=["toggleHover"],T=["resetViewMapbox"]):b?(p=["zoomInMap","zoomOutMap"],P=["toggleHover"],T=["resetViewMap"]):h?P=["hoverClosestPie"]:k?(P=["hoverClosestCartesian","hoverCompareCartesian"],T=["resetViewSankey"]):P=["toggleHover"],u&&P.push("toggleSpikelines","hoverClosestCartesian","hoverCompareCartesian"),(Cut(r)||L)&&(P=[]),u&&!A&&(p=["zoomIn2d","zoomOut2d","autoScale2d"],T[0]!=="resetViews"&&(T=["resetScale2d"])),c?F=["zoom3d","pan3d","orbitRotation","tableRotation"]:u&&!A||v?F=["zoom2d","pan2d"]:x||b||f?F=["pan2d"]:g&&(F=["zoom2d"]),kut(r)&&F.push("select2d","lasso2d");var q=[],V=function(N){q.indexOf(N)===-1&&P.indexOf(N)!==-1&&q.push(N)};if(Array.isArray(s)){for(var H=[],X=0;X{"use strict";nce.exports={moduleType:"component",name:"modebar",layoutAttributes:tN(),supplyLayoutDefaults:Kue(),manage:ice()}});var aN=ye((dir,ace)=>{"use strict";var Iut=Nh().FROM_BL;ace.exports=function(t,r,n){n===void 0&&(n=Iut[t.constraintoward||"center"]);var i=[t.r2l(t.range[0]),t.r2l(t.range[1])],a=i[0]+(i[1]-i[0])*n;t.range=t._input.range=[t.l2r(a+(i[0]-a)*r),t.l2r(a+(i[1]-a)*r)],t.setScale()}});var Bb=ye(dM=>{"use strict";var Ob=Mr(),oN=wg(),Mg=af().id2name,Rut=Cd(),oce=aN(),Dut=ym(),zut=es().ALMOST_EQUAL,Fut=Nh().FROM_BL;dM.handleDefaults=function(e,t,r){var n=r.axIds,i=r.axHasImage,a=t._axisConstraintGroups=[],o=t._axisMatchGroups=[],s,l,u,c,f,h,d,v;for(s=0;sa?r.substr(a):n.substr(i))+o}function Out(e,t){for(var r=t._size,n=r.h/r.w,i={},a=Object.keys(e),o=0;ozut*v&&!E)){for(a=0;aF&&reP&&(P=re);var _e=(P-p)/(2*T);f/=_e,p=l.l2r(p),P=l.l2r(P),l.range=l._input.range=_{"use strict";var sP=xa(),Bv=ba(),Jp=Xu(),M0=Mr(),uN=Ll(),cN=lM(),vM=va(),X3=ao(),cce=Mb(),pce=nN(),pM=Qa(),ky=Nh(),gce=Bb(),But=gce.enforce,Nut=gce.clean,fce=wg().doAutoRange,mce="start",Uut="middle",yce="end",Vut=ad().zindexSeparator;ld.layoutStyles=function(e){return M0.syncOrAsync([Jp.doAutoMargin,Gut],e)};function Hut(e,t,r){for(var n=0;n=e[1]||i[1]<=e[0])&&a[0]t[0])return!0}return!1}function Gut(e){var t=e._fullLayout,r=t._size,n=r.p,i=pM.list(e,"",!0),a,o,s,l,u,c;if(t._paperdiv.style({width:e._context.responsive&&t.autosize&&!e._context._hasZeroWidth&&!e.layout.width?"100%":t.width+"px",height:e._context.responsive&&t.autosize&&!e._context._hasZeroHeight&&!e.layout.height?"100%":t.height+"px"}).selectAll(".main-svg").call(X3.setSize,t.width,t.height),e._context.setBackground(e,t.paper_bgcolor),ld.drawMainTitle(e),pce.manage(e),!t._has("cartesian"))return Jp.previousPromises(e);function f(Ce,me,Re){var ce=Ce._lw/2;if(Ce._id.charAt(0)==="x"){if(me){if(Re==="top")return me._offset-n-ce}else return r.t+r.h*(1-(Ce.position||0))+ce%1;return me._offset+me._length+n+ce}if(me){if(Re==="right")return me._offset+me._length+n+ce}else return r.l+r.w*(Ce.position||0)+ce%1;return me._offset-n-ce}for(a=0;a0){Xut(e,a,u,l),s.attr({x:o,y:a,"text-anchor":n,dy:vce(t.yanchor)}).call(uN.positionText,o,a);var c=(t.text.match(uN.BR_TAG_ALL)||[]).length;if(c){var f=ky.LINE_SPACING*c+ky.MID_SHIFT;t.y===0&&(f=-f),s.selectAll(".line").each(function(){var b=+this.getAttribute("dy").slice(0,-2)-f+"em";this.setAttribute("dy",b)})}var h=sP.selectAll(".gtitle-subtitle");if(h.node()){var d=s.node().getBBox(),v=d.y+d.height,x=v+cce.SUBTITLE_PADDING_EM*t.subtitle.font.size;h.attr({x:o,y:x,"text-anchor":n,dy:vce(t.yanchor)}).call(uN.positionText,o,x)}}}};function jut(e,t,r,n,i){var a=t.yref==="paper"?e._fullLayout._size.h:e._fullLayout.height,o=M0.isTopAnchor(t)?n:n-i,s=r==="b"?a-o:o;return M0.isTopAnchor(t)&&r==="t"||M0.isBottomAnchor(t)&&r==="b"?!1:s.5?"t":"b",o=e._fullLayout.margin[a],s=0;return t.yref==="paper"?s=r+t.pad.t+t.pad.b:t.yref==="container"&&(s=Wut(a,n,i,e._fullLayout.height,r)+t.pad.t+t.pad.b),s>o?s:0}function Xut(e,t,r,n){var i="title.automargin",a=e._fullLayout.title,o=a.y>.5?"t":"b",s={x:a.x,y:a.y,t:0,b:0},l={};a.yref==="paper"&&jut(e,a,o,t,n)?s[o]=r:a.yref==="container"&&(l[o]=r,e._fullLayout._reservedMargin[i]=l),Jp.allowAutoMargin(e,i),Jp.autoMargin(e,i,s)}function Yut(e,t){var r=e.title,n=e._size,i=0;switch(t===mce?i=r.pad.l:t===yce&&(i=-r.pad.r),r.xref){case"paper":return n.l+n.w*r.x+i;case"container":default:return e.width*r.x+i}}function Kut(e,t){var r=e.title,n=e._size,i=0;if(t==="0em"||!t?i=-r.pad.b:t===ky.CAP_SHIFT+"em"&&(i=r.pad.t),r.y==="auto")return n.t/2;switch(r.yref){case"paper":return n.t+n.h-n.h*r.y+i;case"container":default:return e.height-e.height*r.y+i}}function vce(e){return e==="top"?ky.CAP_SHIFT+.3+"em":e==="bottom"?"-0.3em":ky.MID_SHIFT+"em"}function Jut(e){var t=e.title,r=Uut;return M0.isRightAnchor(t)?r=yce:M0.isLeftAnchor(t)&&(r=mce),r}function $ut(e){var t=e.title,r="0em";return M0.isTopAnchor(t)?r=ky.CAP_SHIFT+"em":M0.isMiddleAnchor(t)&&(r=ky.MID_SHIFT+"em"),r}ld.doTraceStyle=function(e){var t=e.calcdata,r=[],n;for(n=0;n{"use strict";var Qut=u_().readPaths,ect=JL(),_ce=Q1().clearOutlineControllers,fN=va(),xce=ao(),tct=Vs().arrayEditor,bce=f_(),rct=bce.getPathString;Tce.exports={draw:lP,drawOne:wce,activateLastSelection:act};function lP(e){var t=e._fullLayout;_ce(e),t._selectionLayer.selectAll("path").remove();for(var r in t._plots){var n=t._plots[r].selectionLayer;n&&n.selectAll("path").remove()}for(var i=0;i=0;b--){var g=o.append("path").attr(l).style("opacity",b?.1:u).call(fN.stroke,f).call(fN.fill,c).call(xce.dashLine,b?"solid":d,b?4+h:h);if(ict(g,e,n),v){var E=tct(e.layout,"selections",n);g.style({cursor:"move"});var k={element:g.node(),plotinfo:i,gd:e,editHelpers:E,isActiveSelection:!0},A=Qut(s,e);ect(A,g,k)}else g.style("pointer-events",b?"all":"none");x[b]=g}var L=x[0],_=x[1];_.node().addEventListener("click",function(){return nct(e,L)})}}function ict(e,t,r){var n=r.xref+r.yref;xce.setClipUrl(e,"clip"+t._fullLayout._uid+n,t)}function nct(e,t){if(uP(e)){var r=t.node(),n=+r.getAttribute("data-index");if(n>=0){if(n===e._fullLayout._activeSelectionIndex){hN(e);return}e._fullLayout._activeSelectionIndex=n,e._fullLayout._deactivateSelection=hN,lP(e)}}}function act(e){if(uP(e)){var t=e._fullLayout.selections.length-1;e._fullLayout._activeSelectionIndex=t,e._fullLayout._deactivateSelection=hN,lP(e)}}function hN(e){if(uP(e)){var t=e._fullLayout._activeSelectionIndex;t>=0&&(_ce(e),delete e._fullLayout._activeSelectionIndex,lP(e))}}});var Sce=ye((mir,Ace)=>{function oct(){var e,t=0,r=!1;function n(i,a){return e.list.push({type:i,data:a?JSON.parse(JSON.stringify(a)):void 0}),e}return e={list:[],segmentId:function(){return t++},checkIntersection:function(i,a){return n("check",{seg1:i,seg2:a})},segmentChop:function(i,a){return n("div_seg",{seg:i,pt:a}),n("chop",{seg:i,pt:a})},statusRemove:function(i){return n("pop_seg",{seg:i})},segmentUpdate:function(i){return n("seg_update",{seg:i})},segmentNew:function(i,a){return n("new_seg",{seg:i,primary:a})},segmentRemove:function(i){return n("rem_seg",{seg:i})},tempStatus:function(i,a,o){return n("temp_status",{seg:i,above:a,below:o})},rewind:function(i){return n("rewind",{seg:i})},status:function(i,a,o){return n("status",{seg:i,above:a,below:o})},vert:function(i){return i===r?e:(r=i,n("vert",{x:i}))},log:function(i){return typeof i!="string"&&(i=JSON.stringify(i,!1," ")),n("log",{txt:i})},reset:function(){return n("reset")},selected:function(i){return n("selected",{segs:i})},chainStart:function(i){return n("chain_start",{seg:i})},chainRemoveHead:function(i,a){return n("chain_rem_head",{index:i,pt:a})},chainRemoveTail:function(i,a){return n("chain_rem_tail",{index:i,pt:a})},chainNew:function(i,a){return n("chain_new",{pt1:i,pt2:a})},chainMatch:function(i){return n("chain_match",{index:i})},chainClose:function(i){return n("chain_close",{index:i})},chainAddHead:function(i,a){return n("chain_add_head",{index:i,pt:a})},chainAddTail:function(i,a){return n("chain_add_tail",{index:i,pt:a})},chainConnect:function(i,a){return n("chain_con",{index1:i,index2:a})},chainReverse:function(i){return n("chain_rev",{index:i})},chainJoin:function(i,a){return n("chain_join",{index1:i,index2:a})},done:function(){return n("done")}},e}Ace.exports=oct});var Ece=ye((yir,Mce)=>{function sct(e){typeof e!="number"&&(e=1e-10);var t={epsilon:function(r){return typeof r=="number"&&(e=r),e},pointAboveOrOnLine:function(r,n,i){var a=n[0],o=n[1],s=i[0],l=i[1],u=r[0],c=r[1];return(s-a)*(c-o)-(l-o)*(u-a)>=-e},pointBetween:function(r,n,i){var a=r[1]-n[1],o=i[0]-n[0],s=r[0]-n[0],l=i[1]-n[1],u=s*o+a*l;if(u-e)},pointsSameX:function(r,n){return Math.abs(r[0]-n[0])e!=s-a>e&&(o-c)*(a-f)/(s-f)+c-i>e&&(l=!l),o=c,s=f}return l}};return t}Mce.exports=sct});var Cce=ye((_ir,kce)=>{var lct={create:function(){var e={root:{root:!0,next:null},exists:function(t){return!(t===null||t===e.root)},isEmpty:function(){return e.root.next===null},getHead:function(){return e.root.next},insertBefore:function(t,r){for(var n=e.root,i=e.root.next;i!==null;){if(r(i)){t.prev=i.prev,t.next=i,i.prev.next=t,i.prev=t;return}n=i,i=i.next}n.next=t,t.prev=n,t.next=null},findTransition:function(t){for(var r=e.root,n=e.root.next;n!==null&&!t(n);)r=n,n=n.next;return{before:r===e.root?null:r,after:n,insert:function(i){return i.prev=r,i.next=n,r.next=i,n!==null&&(n.prev=i),i}}}};return e},node:function(e){return e.prev=null,e.next=null,e.remove=function(){e.prev.next=e.next,e.next&&(e.next.prev=e.prev),e.prev=null,e.next=null},e}};kce.exports=lct});var Pce=ye((xir,Lce)=>{var mM=Cce();function uct(e,t,r){function n(v,x){return{id:r?r.segmentId():-1,start:v,end:x,myFill:{above:null,below:null},otherFill:null}}function i(v,x,b){return{id:r?r.segmentId():-1,start:v,end:x,myFill:{above:b.myFill.above,below:b.myFill.below},otherFill:null}}var a=mM.create();function o(v,x,b,g,E,k){var A=t.pointsCompare(x,E);return A!==0?A:t.pointsSame(b,k)?0:v!==g?v?1:-1:t.pointAboveOrOnLine(b,g?E:k,g?k:E)?1:-1}function s(v,x){a.insertBefore(v,function(b){var g=o(v.isStart,v.pt,x,b.isStart,b.pt,b.other.pt);return g<0})}function l(v,x){var b=mM.node({isStart:!0,pt:v.start,seg:v,primary:x,other:null,status:null});return s(b,v.end),b}function u(v,x,b){var g=mM.node({isStart:!1,pt:x.end,seg:x,primary:b,other:v,status:null});v.other=g,s(g,v.pt)}function c(v,x){var b=l(v,x);return u(b,v,x),b}function f(v,x){r&&r.segmentChop(v.seg,x),v.other.remove(),v.seg.end=x,v.other.pt=x,s(v.other,v.pt)}function h(v,x){var b=i(x,v.seg.end,v.seg);return f(v,x),c(b,v.primary)}function d(v,x){var b=mM.create();function g(H,X){var G=H.seg.start,N=H.seg.end,W=X.seg.start,re=X.seg.end;return t.pointsCollinear(G,W,re)?t.pointsCollinear(N,W,re)||t.pointAboveOrOnLine(N,W,re)?1:-1:t.pointAboveOrOnLine(G,W,re)?1:-1}function E(H){return b.findTransition(function(X){var G=g(H,X.ev);return G>0})}function k(H,X){var G=H.seg,N=X.seg,W=G.start,re=G.end,ae=N.start,_e=N.end;r&&r.checkIntersection(G,N);var Me=t.linesIntersect(W,re,ae,_e);if(Me===!1){if(!t.pointsCollinear(W,re,ae)||t.pointsSame(W,_e)||t.pointsSame(re,ae))return!1;var ke=t.pointsSame(W,ae),ge=t.pointsSame(re,_e);if(ke&&ge)return X;var ie=!ke&&t.pointBetween(W,ae,_e),Te=!ge&&t.pointBetween(re,ae,_e);if(ke)return Te?h(X,re):h(H,_e),X;ie&&(ge||(Te?h(X,re):h(H,_e)),h(X,W))}else Me.alongA===0&&(Me.alongB===-1?h(H,ae):Me.alongB===0?h(H,Me.pt):Me.alongB===1&&h(H,_e)),Me.alongB===0&&(Me.alongA===-1?h(X,W):Me.alongA===0?h(X,Me.pt):Me.alongA===1&&h(X,re));return!1}for(var A=[];!a.isEmpty();){var L=a.getHead();if(r&&r.vert(L.pt[0]),L.isStart){let H=function(){if(C){var X=k(L,C);if(X)return X}return M?k(L,M):!1};var V=H;r&&r.segmentNew(L.seg,L.primary);var _=E(L),C=_.before?_.before.ev:null,M=_.after?_.after.ev:null;r&&r.tempStatus(L.seg,C?C.seg:!1,M?M.seg:!1);var p=H();if(p){if(e){var P;L.seg.myFill.below===null?P=!0:P=L.seg.myFill.above!==L.seg.myFill.below,P&&(p.seg.myFill.above=!p.seg.myFill.above)}else p.seg.otherFill=L.seg.myFill;r&&r.segmentUpdate(p.seg),L.other.remove(),L.remove()}if(a.getHead()!==L){r&&r.rewind(L.seg);continue}if(e){var P;L.seg.myFill.below===null?P=!0:P=L.seg.myFill.above!==L.seg.myFill.below,M?L.seg.myFill.below=M.seg.myFill.above:L.seg.myFill.below=v,P?L.seg.myFill.above=!L.seg.myFill.below:L.seg.myFill.above=L.seg.myFill.below}else if(L.seg.otherFill===null){var T;M?L.primary===M.primary?T=M.seg.otherFill.above:T=M.seg.myFill.above:T=L.primary?x:v,L.seg.otherFill={above:T,below:T}}r&&r.status(L.seg,C?C.seg:!1,M?M.seg:!1),L.other.status=_.insert(mM.node({ev:L}))}else{var F=L.status;if(F===null)throw new Error("PolyBool: Zero-length segment detected; your epsilon is probably too small or too large");if(b.exists(F.prev)&&b.exists(F.next)&&k(F.prev.ev,F.next.ev),r&&r.statusRemove(F.ev.seg),F.remove(),!L.primary){var q=L.seg.myFill;L.seg.myFill=L.seg.otherFill,L.seg.otherFill=q}A.push(L.seg)}a.getHead().remove()}return r&&r.done(),A}return e?{addRegion:function(v){for(var x,b=v[v.length-1],g=0;g{function cct(e,t,r){var n=[],i=[];return e.forEach(function(a){var o=a.start,s=a.end;if(t.pointsSame(o,s)){console.warn("PolyBool: Warning: Zero-length segment detected; your epsilon is probably too small or too large");return}r&&r.chainStart(a);var l={index:0,matches_head:!1,matches_pt1:!1},u={index:0,matches_head:!1,matches_pt1:!1},c=l;function f(V,H,X){return c.index=V,c.matches_head=H,c.matches_pt1=X,c===l?(c=u,!1):(c=null,!0)}for(var h=0;h{function yM(e,t,r){var n=[];return e.forEach(function(i){var a=(i.myFill.above?8:0)+(i.myFill.below?4:0)+(i.otherFill&&i.otherFill.above?2:0)+(i.otherFill&&i.otherFill.below?1:0);t[a]!==0&&n.push({id:r?r.segmentId():-1,start:i.start,end:i.end,myFill:{above:t[a]===1,below:t[a]===2},otherFill:null})}),r&&r.selected(n),n}var fct={union:function(e,t){return yM(e,[0,2,1,0,2,2,0,0,1,0,1,0,0,0,0,0],t)},intersect:function(e,t){return yM(e,[0,0,0,0,0,2,0,2,0,0,1,1,0,2,1,0],t)},difference:function(e,t){return yM(e,[0,0,0,0,2,0,2,0,1,1,0,0,0,1,2,0],t)},differenceRev:function(e,t){return yM(e,[0,2,1,0,0,0,1,1,0,2,0,2,0,0,0,0],t)},xor:function(e,t){return yM(e,[0,2,1,0,2,0,0,1,1,0,0,2,0,1,2,0],t)}};Dce.exports=fct});var qce=ye((Tir,Fce)=>{var hct={toPolygon:function(e,t){function r(a){if(a.length<=0)return e.segments({inverted:!1,regions:[]});function o(u){var c=u.slice(0,u.length-1);return e.segments({inverted:!1,regions:[c]})}for(var s=o(a[0]),l=1;l{var dct=Sce(),vct=Ece(),Oce=Pce(),pct=Rce(),_M=zce(),Bce=qce(),E0=!1,xM=vct(),Ep;Ep={buildLog:function(e){return e===!0?E0=dct():e===!1&&(E0=!1),E0===!1?!1:E0.list},epsilon:function(e){return xM.epsilon(e)},segments:function(e){var t=Oce(!0,xM,E0);return e.regions.forEach(t.addRegion),{segments:t.calculate(e.inverted),inverted:e.inverted}},combine:function(e,t){var r=Oce(!1,xM,E0);return{combined:r.calculate(e.segments,e.inverted,t.segments,t.inverted),inverted1:e.inverted,inverted2:t.inverted}},selectUnion:function(e){return{segments:_M.union(e.combined,E0),inverted:e.inverted1||e.inverted2}},selectIntersect:function(e){return{segments:_M.intersect(e.combined,E0),inverted:e.inverted1&&e.inverted2}},selectDifference:function(e){return{segments:_M.difference(e.combined,E0),inverted:e.inverted1&&!e.inverted2}},selectDifferenceRev:function(e){return{segments:_M.differenceRev(e.combined,E0),inverted:!e.inverted1&&e.inverted2}},selectXor:function(e){return{segments:_M.xor(e.combined,E0),inverted:e.inverted1!==e.inverted2}},polygon:function(e){return{regions:pct(e.segments,xM,E0),inverted:e.inverted}},polygonFromGeoJSON:function(e){return Bce.toPolygon(Ep,e)},polygonToGeoJSON:function(e){return Bce.fromPolygon(Ep,xM,e)},union:function(e,t){return bM(e,t,Ep.selectUnion)},intersect:function(e,t){return bM(e,t,Ep.selectIntersect)},difference:function(e,t){return bM(e,t,Ep.selectDifference)},differenceRev:function(e,t){return bM(e,t,Ep.selectDifferenceRev)},xor:function(e,t){return bM(e,t,Ep.selectXor)}};function bM(e,t,r){var n=Ep.segments(e),i=Ep.segments(t),a=Ep.combine(n,i),o=r(a);return Ep.polygon(o)}typeof window=="object"&&(window.PolyBool=Ep);Nce.exports=Ep});var Hce=ye((Sir,Vce)=>{Vce.exports=function(t,r,n,i){var a=t[0],o=t[1],s=!1;n===void 0&&(n=0),i===void 0&&(i=r.length);for(var l=i-n,u=0,c=l-1;uo!=v>o&&a<(d-f)*(o-h)/(v-h)+f;x&&(s=!s)}return s}});var wM=ye((Mir,Gce)=>{"use strict";var vN=g6().dot,cP=es().BADNUM,fP=Gce.exports={};fP.tester=function(t){var r=t.slice(),n=r[0][0],i=n,a=r[0][1],o=a,s;for((r[r.length-1][0]!==r[0][0]||r[r.length-1][1]!==r[0][1])&&r.push(r[0]),s=1;si||g===cP||go||x&&u(v))}function f(v,x){var b=v[0],g=v[1];if(b===cP||bi||g===cP||go)return!1;var E=r.length,k=r[0][0],A=r[0][1],L=0,_,C,M,p,P;for(_=1;_Math.max(C,k)||g>Math.max(M,A)))if(gs||Math.abs(vN(f,u))>i)return!0;return!1};fP.filter=function(t,r){var n=[t[0]],i=0,a=0;function o(l){t.push(l);var u=n.length,c=i;n.splice(a+1);for(var f=c+1;f1){var s=t.pop();o(s)}return{addPt:o,raw:t,filtered:n}}});var Wce=ye((Eir,jce)=>{"use strict";jce.exports={BENDPX:1.5,MINSELECT:12,SELECTDELAY:100,SELECTID:"-select"}});var vfe=ye((kir,dfe)=>{"use strict";var Zce=Uce(),gct=Hce(),SM=ba(),mct=ao().dashStyle,TM=va(),yct=Nc(),_ct=rp().makeEventData,LM=Sg(),xct=LM.freeMode,bct=LM.rectMode,MM=LM.drawMode,yN=LM.openMode,_N=LM.selectMode,Xce=f_(),Yce=cM(),efe=JL(),tfe=Q1().clearOutline,rfe=u_(),pN=rfe.handleEllipse,wct=rfe.readPaths,Tct=ZL().newShapes,Act=VB(),Sct=dN().activateLastSelection,dP=Mr(),Mct=dP.sorterAsc,ife=wM(),AM=L6(),k0=af().getFromId,Ect=lM(),kct=gM().redrawReglTraces,vP=Wce(),Am=vP.MINSELECT,Cct=ife.filter,xN=ife.tester,bN=HL(),Kce=bN.p2r,Lct=bN.axValue,Pct=bN.getTransform;function wN(e){return e.subplot!==void 0}function Ict(e,t,r,n,i){var a=!wN(n),o=xct(i),s=bct(i),l=yN(i),u=MM(i),c=_N(i),f=i==="drawline",h=i==="drawcircle",d=f||h,v=n.gd,x=v._fullLayout,b=c&&x.newselection.mode==="immediate"&&a,g=x._zoomlayer,E=n.element.getBoundingClientRect(),k=n.plotinfo,A=Pct(k),L=t-E.left,_=r-E.top;x._calcInverseTransform(v);var C=dP.apply3DTransform(x._invTransform)(L,_);L=C[0],_=C[1];var M=x._invScaleX,p=x._invScaleY,P=L,T=_,F="M"+L+","+_,q=n.xaxes[0],V=n.yaxes[0],H=q._length,X=V._length,G=e.altKey&&!(MM(i)&&l),N,W,re,ae,_e,Me,ke;afe(e,v,n),o&&(N=Cct([[L,_]],vP.BENDPX));var ge=g.selectAll("path.select-outline-"+k.id).data([1]),ie=u?x.newshape:x.newselection;u&&(n.hasText=ie.label.text||ie.label.texttemplate);var Te=u&&!l?ie.fillcolor:"rgba(0,0,0,0)",Ee=ie.line.color||(a?TM.contrast(v._fullLayout.plot_bgcolor):"#7f7f7f");ge.enter().append("path").attr("class","select-outline select-outline-"+k.id).style({opacity:u?ie.opacity/2:1,"stroke-dasharray":mct(ie.line.dash,ie.line.width),"stroke-width":ie.line.width+"px","shape-rendering":"crispEdges"}).call(TM.stroke,Ee).call(TM.fill,Te).attr("fill-rule","evenodd").classed("cursor-move",!!u).attr("transform",A).attr("d",F+"Z");var Ae=g.append("path").attr("class","zoombox-corners").style({fill:TM.background,stroke:TM.defaultLine,"stroke-width":1}).attr("transform",A).attr("d","M0,0Z");if(u&&n.hasText){var ze=g.select(".label-temp");ze.empty()&&(ze=g.append("g").classed("label-temp",!0).classed("select-outline",!0).style({opacity:.8}))}var Ce=x._uid+vP.SELECTID,me=[],Re=pP(v,n.xaxes,n.yaxes,n.subplot);b&&!e.shiftKey&&(n._clearSubplotSelections=function(){if(a){var Ge=q._id,nt=V._id;cfe(v,Ge,nt,Re);for(var ct=(v.layout||{}).selections||[],qt=[],rt=!1,ot=0;ot=0){v._fullLayout._deactivateShape(v);return}if(!u){var ct=x.clickmode;AM.done(Ce).then(function(){if(AM.clear(Ce),Ge===2){for(ge.remove(),_e=0;_e-1&&nfe(nt,v,n.xaxes,n.yaxes,n.subplot,n,ge),ct==="event"&&CM(v,void 0);yct.click(v,nt,k.id)}).catch(dP.error)}},n.doneFn=function(){Ae.remove(),AM.done(Ce).then(function(){AM.clear(Ce),!b&&ae&&n.selectionDefs&&(ae.subtract=G,n.selectionDefs.push(ae),n.mergedPolygons.length=0,[].push.apply(n.mergedPolygons,re)),(b||u)&&EM(n,b),n.doneFnCompleted&&n.doneFnCompleted(me),c&&CM(v,ke)}).catch(dP.error)}}function nfe(e,t,r,n,i,a,o){var s=t._hoverdata,l=t._fullLayout,u=l.clickmode,c=u.indexOf("event")>-1,f=[],h,d,v,x,b,g,E,k,A,L;if(qct(s)){afe(e,t,a),h=pP(t,r,n,i);var _=Oct(s,h),C=_.pointNumbers.length>0;if(C?Bct(h,_):Nct(h)&&(E=$ce(_))){for(o&&o.remove(),L=0;L=0}function Fct(e){return e._fullLayout._activeSelectionIndex>=0}function EM(e,t){var r=e.dragmode,n=e.plotinfo,i=e.gd;zct(i)&&i._fullLayout._deactivateShape(i),Fct(i)&&i._fullLayout._deactivateSelection(i);var a=i._fullLayout,o=a._zoomlayer,s=MM(r),l=_N(r);if(s||l){var u=o.selectAll(".select-outline-"+n.id);if(u&&i._fullLayout._outlining){var c;s&&(c=Tct(u,e)),c&&SM.call("_guiRelayout",i,{shapes:c});var f;l&&!wN(e)&&(f=Act(u,e)),f&&(i._fullLayout._noEmitSelectedAtStart=!0,SM.call("_guiRelayout",i,{selections:f}).then(function(){t&&Sct(i)})),i._fullLayout._outlining=!1}}n.selection={},n.selection.selectionDefs=e.selectionDefs=[],n.selection.mergedPolygons=e.mergedPolygons=[]}function Jce(e){return e._id}function pP(e,t,r,n){if(!e.calcdata)return[];var i=[],a=t.map(Jce),o=r.map(Jce),s,l,u;for(u=0;u0,a=i?n[0]:r;return t.selectedpoints?t.selectedpoints.indexOf(a)>-1:!1}function Bct(e,t){var r=[],n,i,a,o;for(o=0;o0&&r.push(n);if(r.length===1&&(a=r[0]===t.searchInfo,a&&(i=t.searchInfo.cd[0].trace,i.selectedpoints.length===t.pointNumbers.length))){for(o=0;o1||(t+=n.selectedpoints.length,t>1)))return!1;return t===1}function kM(e,t,r){var n;for(n=0;n-1&&t;if(!o&&t){var Ge=Qce(e,!0);if(Ge.length){var nt=Ge[0].xref,ct=Ge[0].yref;if(nt&&ct){var qt=ffe(Ge),rt=hfe([k0(e,nt,"x"),k0(e,ct,"y")]);rt(me,qt)}}e._fullLayout._noEmitSelectedAtStart?e._fullLayout._noEmitSelectedAtStart=!1:ce&&CM(e,me),h._reselect=!1}if(!o&&h._deselect){var ot=h._deselect;s=ot.xref,l=ot.yref,Hct(s,l,c)||cfe(e,s,l,n),ce&&(me.points.length?CM(e,me):SN(e)),h._deselect=!1}return{eventData:me,selectionTesters:r}}function Vct(e){var t=e.calcdata;if(t)for(var r=0;r{"use strict";pfe.exports=[{path:"",backoff:0},{path:"M-2.4,-3V3L0.6,0Z",backoff:.6},{path:"M-3.7,-2.5V2.5L1.3,0Z",backoff:1.3},{path:"M-4.45,-3L-1.65,-0.2V0.2L-4.45,3L1.55,0Z",backoff:1.55},{path:"M-2.2,-2.2L-0.2,-0.2V0.2L-2.2,2.2L-1.4,3L1.6,0L-1.4,-3Z",backoff:1.6},{path:"M-4.4,-2.1L-0.6,-0.2V0.2L-4.4,2.1L-4,3L2,0L-4,-3Z",backoff:2},{path:"M2,0A2,2 0 1,1 0,-2A2,2 0 0,1 2,0Z",backoff:0,noRotate:!0},{path:"M2,2V-2H-2V2Z",backoff:0,noRotate:!0}]});var PM=ye((Lir,gfe)=>{"use strict";gfe.exports={axisRefDescription:function(e,t,r){return["If set to a",e,"axis id (e.g. *"+e+"* or","*"+e+"2*), the `"+e+"` position refers to a",e,"coordinate. If set to *paper*, the `"+e+"`","position refers to the distance from the",t,"of the plotting","area in normalized coordinates where *0* (*1*) corresponds to the",t,"("+r+"). If set to a",e,"axis ID followed by","*domain* (separated by a space), the position behaves like for","*paper*, but refers to the distance in fractions of the domain","length from the",t,"of the domain of that axis: e.g.,","*"+e+"2 domain* refers to the domain of the second",e," axis and a",e,"position of 0.5 refers to the","point between the",t,"and the",r,"of the domain of the","second",e,"axis."].join(" ")}}});var Nb=ye((Iir,_fe)=>{"use strict";var mfe=MN(),yfe=Su(),gP=ad(),Xct=Vs().templatedArray,Pir=PM();_fe.exports=Xct("annotation",{visible:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},text:{valType:"string",editType:"calc+arraydraw"},textangle:{valType:"angle",dflt:0,editType:"calc+arraydraw"},font:yfe({editType:"calc+arraydraw",colorEditType:"arraydraw"}),width:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},height:{valType:"number",min:1,dflt:null,editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},align:{valType:"enumerated",values:["left","center","right"],dflt:"center",editType:"arraydraw"},valign:{valType:"enumerated",values:["top","middle","bottom"],dflt:"middle",editType:"arraydraw"},bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},bordercolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},borderpad:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},borderwidth:{valType:"number",min:0,dflt:1,editType:"calc+arraydraw"},showarrow:{valType:"boolean",dflt:!0,editType:"calc+arraydraw"},arrowcolor:{valType:"color",editType:"arraydraw"},arrowhead:{valType:"integer",min:0,max:mfe.length,dflt:1,editType:"arraydraw"},startarrowhead:{valType:"integer",min:0,max:mfe.length,dflt:1,editType:"arraydraw"},arrowside:{valType:"flaglist",flags:["end","start"],extras:["none"],dflt:"end",editType:"arraydraw"},arrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},startarrowsize:{valType:"number",min:.3,dflt:1,editType:"calc+arraydraw"},arrowwidth:{valType:"number",min:.1,editType:"calc+arraydraw"},standoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},startstandoff:{valType:"number",min:0,dflt:0,editType:"calc+arraydraw"},ax:{valType:"any",editType:"calc+arraydraw"},ay:{valType:"any",editType:"calc+arraydraw"},axref:{valType:"enumerated",dflt:"pixel",values:["pixel",gP.idRegex.x.toString()],editType:"calc"},ayref:{valType:"enumerated",dflt:"pixel",values:["pixel",gP.idRegex.y.toString()],editType:"calc"},xref:{valType:"enumerated",values:["paper",gP.idRegex.x.toString()],editType:"calc"},x:{valType:"any",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},xshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},yref:{valType:"enumerated",values:["paper",gP.idRegex.y.toString()],editType:"calc"},y:{valType:"any",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"auto",editType:"calc+arraydraw"},yshift:{valType:"number",dflt:0,editType:"calc+arraydraw"},clicktoshow:{valType:"enumerated",values:[!1,"onoff","onout"],dflt:!1,editType:"arraydraw"},xclick:{valType:"any",editType:"arraydraw"},yclick:{valType:"any",editType:"arraydraw"},hovertext:{valType:"string",editType:"arraydraw"},hoverlabel:{bgcolor:{valType:"color",editType:"arraydraw"},bordercolor:{valType:"color",editType:"arraydraw"},font:yfe({editType:"arraydraw"}),editType:"arraydraw"},captureevents:{valType:"boolean",editType:"arraydraw"},editType:"calc"})});var Sm=ye((Rir,xfe)=>{"use strict";xfe.exports={PTS_LINESONLY:20,minTolerance:.2,toleranceGrowth:10,maxScreensAway:20,eventDataKeys:[]}});var Eg=ye((Dir,bfe)=>{"use strict";bfe.exports=function(t){return{valType:"color",editType:"style",anim:!0}}});var Uc=ye((zir,Efe)=>{"use strict";var wfe=Oc().axisHoverFormat,Yct=Wo().texttemplateAttrs,Kct=Wo().hovertemplateAttrs,Tfe=Kl(),Jct=Su(),$ct=Ed().dash,Qct=Ed().pattern,eft=ao(),tft=Sm(),mP=no().extendFlat,rft=Eg();function Afe(e){return{valType:"any",dflt:0,editType:"calc"}}function Sfe(e){return{valType:"any",editType:"calc"}}function Mfe(e){return{valType:"enumerated",values:["start","middle","end"],dflt:"middle",editType:"calc"}}Efe.exports={x:{valType:"data_array",editType:"calc+clearAxisTypes",anim:!0},x0:{valType:"any",dflt:0,editType:"calc+clearAxisTypes",anim:!0},dx:{valType:"number",dflt:1,editType:"calc",anim:!0},y:{valType:"data_array",editType:"calc+clearAxisTypes",anim:!0},y0:{valType:"any",dflt:0,editType:"calc+clearAxisTypes",anim:!0},dy:{valType:"number",dflt:1,editType:"calc",anim:!0},xperiod:Afe("x"),yperiod:Afe("y"),xperiod0:Sfe("x0"),yperiod0:Sfe("y0"),xperiodalignment:Mfe("x"),yperiodalignment:Mfe("y"),xhoverformat:wfe("x"),yhoverformat:wfe("y"),offsetgroup:{valType:"string",dflt:"",editType:"calc"},alignmentgroup:{valType:"string",dflt:"",editType:"calc"},stackgroup:{valType:"string",dflt:"",editType:"calc"},orientation:{valType:"enumerated",values:["v","h"],editType:"calc"},groupnorm:{valType:"enumerated",values:["","fraction","percent"],dflt:"",editType:"calc"},stackgaps:{valType:"enumerated",values:["infer zero","interpolate"],dflt:"infer zero",editType:"calc"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},texttemplate:Yct({},{}),hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"style"},mode:{valType:"flaglist",flags:["lines","markers","text"],extras:["none"],editType:"calc"},hoveron:{valType:"flaglist",flags:["points","fills"],editType:"style"},hovertemplate:Kct({},{keys:tft.eventDataKeys}),line:{color:{valType:"color",editType:"style",anim:!0},width:{valType:"number",min:0,dflt:2,editType:"style",anim:!0},shape:{valType:"enumerated",values:["linear","spline","hv","vh","hvh","vhv"],dflt:"linear",editType:"plot"},smoothing:{valType:"number",min:0,max:1.3,dflt:1,editType:"plot"},dash:mP({},$ct,{editType:"style"}),backoff:{valType:"number",min:0,dflt:"auto",arrayOk:!0,editType:"plot"},simplify:{valType:"boolean",dflt:!0,editType:"plot"},editType:"plot"},connectgaps:{valType:"boolean",dflt:!1,editType:"calc"},cliponaxis:{valType:"boolean",dflt:!0,editType:"plot"},fill:{valType:"enumerated",values:["none","tozeroy","tozerox","tonexty","tonextx","toself","tonext"],editType:"calc"},fillcolor:rft(!0),fillgradient:mP({type:{valType:"enumerated",values:["radial","horizontal","vertical","none"],dflt:"none",editType:"calc"},start:{valType:"number",editType:"calc"},stop:{valType:"number",editType:"calc"},colorscale:{valType:"colorscale",editType:"style"},editType:"calc"}),fillpattern:Qct,marker:mP({symbol:{valType:"enumerated",values:eft.symbolList,dflt:"circle",arrayOk:!0,editType:"style"},opacity:{valType:"number",min:0,max:1,arrayOk:!0,editType:"style",anim:!0},angle:{valType:"angle",dflt:0,arrayOk:!0,editType:"plot",anim:!1},angleref:{valType:"enumerated",values:["previous","up"],dflt:"up",editType:"plot",anim:!1},standoff:{valType:"number",min:0,dflt:0,arrayOk:!0,editType:"plot",anim:!0},size:{valType:"number",min:0,dflt:6,arrayOk:!0,editType:"calc",anim:!0},maxdisplayed:{valType:"number",min:0,dflt:0,editType:"plot"},sizeref:{valType:"number",dflt:1,editType:"calc"},sizemin:{valType:"number",min:0,dflt:0,editType:"calc"},sizemode:{valType:"enumerated",values:["diameter","area"],dflt:"diameter",editType:"calc"},line:mP({width:{valType:"number",min:0,arrayOk:!0,editType:"style",anim:!0},editType:"calc"},Tfe("marker.line",{anim:!0})),gradient:{type:{valType:"enumerated",values:["radial","horizontal","vertical","none"],arrayOk:!0,dflt:"none",editType:"calc"},color:{valType:"color",arrayOk:!0,editType:"calc"},editType:"calc"},editType:"calc"},Tfe("marker",{anim:!0})),selected:{marker:{opacity:{valType:"number",min:0,max:1,editType:"style"},color:{valType:"color",editType:"style"},size:{valType:"number",min:0,editType:"style"},editType:"style"},textfont:{color:{valType:"color",editType:"style"},editType:"style"},editType:"style"},unselected:{marker:{opacity:{valType:"number",min:0,max:1,editType:"style"},color:{valType:"color",editType:"style"},size:{valType:"number",min:0,editType:"style"},editType:"style"},textfont:{color:{valType:"color",editType:"style"},editType:"style"},editType:"style"},textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right"],dflt:"middle center",arrayOk:!0,editType:"calc"},textfont:Jct({editType:"calc",colorEditType:"style",arrayOk:!0}),zorder:{valType:"integer",dflt:0,editType:"plot"}}});var EN=ye((qir,Lfe)=>{"use strict";var kfe=Nb(),Cfe=Uc().line,ift=Ed().dash,yP=no().extendFlat,nft=Bu().overrideAll,aft=Vs().templatedArray,Fir=PM();Lfe.exports=nft(aft("selection",{type:{valType:"enumerated",values:["rect","path"]},xref:yP({},kfe.xref,{}),yref:yP({},kfe.yref,{}),x0:{valType:"any"},x1:{valType:"any"},y0:{valType:"any"},y1:{valType:"any"},path:{valType:"string",editType:"arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:.7,editType:"arraydraw"},line:{color:Cfe.color,width:yP({},Cfe.width,{min:1,dflt:1}),dash:yP({},ift,{dflt:"dot"})}}),"arraydraw","from-root")});var Dfe=ye((Oir,Rfe)=>{"use strict";var Pfe=Mr(),_P=Qa(),oft=Zd(),sft=EN(),Ife=f_();Rfe.exports=function(t,r){oft(t,r,{name:"selections",handleItemDefaults:lft});for(var n=r.selections,i=0;i{"use strict";zfe.exports=function(t,r,n){n("newselection.mode");var i=n("newselection.line.width");i&&(n("newselection.line.color"),n("newselection.line.dash")),n("activeselection.fillcolor"),n("activeselection.opacity")}});var IM=ye((Nir,Bfe)=>{"use strict";var uft=ba(),qfe=Mr(),Ofe=af();Bfe.exports=function(t){return function(n,i){var a=n[t];if(Array.isArray(a))for(var o=uft.subplotsRegistry.cartesian,s=o.idRegex,l=i._subplots,u=l.xaxis,c=l.yaxis,f=l.cartesian,h=i._has("cartesian"),d=0;d{"use strict";var Nfe=dN(),RM=vfe();Ufe.exports={moduleType:"component",name:"selections",layoutAttributes:EN(),supplyLayoutDefaults:Dfe(),supplyDrawNewSelectionDefaults:Ffe(),includeBasePlot:IM()("selections"),draw:Nfe.draw,drawOne:Nfe.drawOne,reselect:RM.reselect,prepSelect:RM.prepSelect,clearOutline:RM.clearOutline,clearSelectionsCache:RM.clearSelectionsCache,selectOnClick:RM.selectOnClick}});var DN=ye((Vir,she)=>{"use strict";var IN=xa(),C0=Mr(),Vfe=C0.numberFormat,cft=id(),fft=EL(),xP=ba(),Jfe=C0.strTranslate,hft=Ll(),Hfe=va(),d_=ao(),dft=Nc(),Gfe=Qa(),vft=Tg(),pft=gv(),$fe=Sg(),bP=$fe.selectingOrDrawing,gft=$fe.freeMode,mft=Nh().FROM_TL,yft=lM(),_ft=gM().redrawReglTraces,xft=Xu(),CN=af().getFromId,bft=wf().prepSelect,wft=wf().clearOutline,Tft=wf().selectOnClick,kN=aN(),RN=ad(),jfe=RN.MINDRAG,np=RN.MINZOOM,Wfe=!0;function Aft(e,t,r,n,i,a,o,s){var l=e._fullLayout._zoomlayer,u=o+s==="nsew",c=(o+s).length===1,f,h,d,v,x,b,g,E,k,A,L,_,C,M,p,P,T,F,q,V,H,X,G;r+=t.yaxis._shift;function N(){if(f=t.xaxis,h=t.yaxis,k=f._length,A=h._length,g=f._offset,E=h._offset,d={},d[f._id]=f,v={},v[h._id]=h,o&&s)for(var Et=t.overlays,dt=0;dt=0){Ht._fullLayout._deactivateShape(Ht);return}var $t=Ht._fullLayout.clickmode;if(PN(Ht),Et===2&&!c&&er(),u)$t.indexOf("select")>-1&&Tft(dt,Ht,x,b,t.id,ae),$t.indexOf("event")>-1&&dft.click(Ht,dt,t.id);else if(Et===1&&c){var fr=o?h:f,_r=o==="s"||s==="w"?0:1,Br=fr._name+".range["+_r+"]",Or=Sft(fr,_r),Nr="left",ut="middle";if(fr.fixedrange)return;o?(ut=o==="n"?"top":"bottom",fr.side==="right"&&(Nr="right")):s==="e"&&(Nr="right"),Ht._context.showAxisRangeEntryBoxes&&IN.select(re).call(hft.makeEditable,{gd:Ht,immediate:!0,background:Ht._fullLayout.paper_bgcolor,text:String(Or),fill:fr.tickfont?fr.tickfont.color:"#444",horizontalAlign:Nr,verticalAlign:ut}).on("edit",function(Ne){var Ye=fr.d2r(Ne);Ye!==void 0&&xP.call("_guiRelayout",Ht,Br,Ye)})}}pft.init(ae);var ke,ge,ie,Te,Ee,Ae,ze,Ce,me,Re;function ce(Et,dt,Ht){var $t=re.getBoundingClientRect();ke=dt-$t.left,ge=Ht-$t.top,e._fullLayout._calcInverseTransform(e);var fr=C0.apply3DTransform(e._fullLayout._invTransform)(ke,ge);ke=fr[0],ge=fr[1],ie={l:ke,r:ke,w:0,t:ge,b:ge,h:0},Te=e._hmpixcount?e._hmlumcount/e._hmpixcount:cft(e._fullLayout.plot_bgcolor).getLuminance(),Ee="M0,0H"+k+"V"+A+"H0V0",Ae=!1,ze="xy",Re=!1,Ce=the(l,Te,g,E,Ee),me=rhe(l,g,E)}function Ge(Et,dt){if(e._transitioningWithDuration)return!1;var Ht=Math.max(0,Math.min(k,X*Et+ke)),$t=Math.max(0,Math.min(A,G*dt+ge)),fr=Math.abs(Ht-ke),_r=Math.abs($t-ge);ie.l=Math.min(ke,Ht),ie.r=Math.max(ke,Ht),ie.t=Math.min(ge,$t),ie.b=Math.max(ge,$t);function Br(){ze="",ie.r=ie.l,ie.t=ie.b,me.attr("d","M0,0Z")}if(L.isSubplotConstrained)fr>np||_r>np?(ze="xy",fr/k>_r/A?(_r=fr*A/k,ge>$t?ie.t=ge-_r:ie.b=ge+_r):(fr=_r*k/A,ke>Ht?ie.l=ke-fr:ie.r=ke+fr),me.attr("d",wP(ie))):Br();else if(_.isSubplotConstrained)if(fr>np||_r>np){ze="xy";var Or=Math.min(ie.l/k,(A-ie.b)/A),Nr=Math.max(ie.r/k,(A-ie.t)/A);ie.l=Or*k,ie.r=Nr*k,ie.b=(1-Or)*A,ie.t=(1-Nr)*A,me.attr("d",wP(ie))}else Br();else!M||_r0){var Ne;if(_.isSubplotConstrained||!C&&M.length===1){for(Ne=0;Ne1&&(Br.maxallowed!==void 0&&P===(Br.range[0]1&&(Or.maxallowed!==void 0&&T===(Or.range[0]=0?Math.min(e,.9):1/(1/Math.max(e,-.3)+3.222))}function Eft(e,t,r){return e?e==="nsew"?r?"":t==="pan"?"move":"crosshair":e.toLowerCase()+"-resize":"pointer"}function the(e,t,r,n,i){return e.append("path").attr("class","zoombox").style({fill:t>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("transform",Jfe(r,n)).attr("d",i+"Z")}function rhe(e,t,r){return e.append("path").attr("class","zoombox-corners").style({fill:Hfe.background,stroke:Hfe.defaultLine,"stroke-width":1,opacity:0}).attr("transform",Jfe(t,r)).attr("d","M0,0Z")}function ihe(e,t,r,n,i,a){e.attr("d",n+"M"+r.l+","+r.t+"v"+r.h+"h"+r.w+"v-"+r.h+"h-"+r.w+"Z"),nhe(e,t,i,a)}function nhe(e,t,r,n){r||(e.transition().style("fill",n>.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),t.transition().style("opacity",1).duration(200))}function PN(e){IN.select(e).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}function ahe(e){Wfe&&e.data&&e._context.showTips&&(C0.notifier(C0._(e,"Double-click to zoom back out"),"long"),Wfe=!1)}function kft(e,t){return"M"+(e.l-.5)+","+(t-np-.5)+"h-3v"+(2*np+1)+"h3ZM"+(e.r+.5)+","+(t-np-.5)+"h3v"+(2*np+1)+"h-3Z"}function Cft(e,t){return"M"+(t-np-.5)+","+(e.t-.5)+"v-3h"+(2*np+1)+"v3ZM"+(t-np-.5)+","+(e.b+.5)+"v3h"+(2*np+1)+"v-3Z"}function wP(e){var t=Math.floor(Math.min(e.b-e.t,e.r-e.l,np)/2);return"M"+(e.l-3.5)+","+(e.t-.5+t)+"h3v"+-t+"h"+t+"v-3h-"+(t+3)+"ZM"+(e.r+3.5)+","+(e.t-.5+t)+"h-3v"+-t+"h"+-t+"v-3h"+(t+3)+"ZM"+(e.r+3.5)+","+(e.b+.5-t)+"h-3v"+t+"h"+-t+"v3h"+(t+3)+"ZM"+(e.l-3.5)+","+(e.b+.5-t)+"h3v"+t+"h"+t+"v3h-"+(t+3)+"Z"}function Yfe(e,t,r,n,i){for(var a=!1,o={},s={},l,u,c,f,h=(i||{}).xaHash,d=(i||{}).yaHash,v=0;v{"use strict";var Lft=xa(),TP=Nc(),Pft=gv(),Ift=Tg(),kg=DN().makeDragBox,ud=ad().DRAGGERSIZE;AP.initInteractions=function(t){var r=t._fullLayout;if(t._context.staticPlot){Lft.select(t).selectAll(".drag").remove();return}if(!(!r._has("cartesian")&&!r._has("splom"))){var n=Object.keys(r._plots||{}).sort(function(a,o){if((r._plots[a].mainplot&&!0)===(r._plots[o].mainplot&&!0)){var s=a.split("y"),l=o.split("y");return s[0]===l[0]?Number(s[1]||1)-Number(l[1]||1):Number(s[0]||1)-Number(l[0]||1)}return r._plots[a].mainplot?1:-1});n.forEach(function(a){var o=r._plots[a],s=o.xaxis,l=o.yaxis;if(!o.mainplot){var u=kg(t,o,s._offset,l._offset,s._length,l._length,"ns","ew");u.onmousemove=function(h){t._fullLayout._rehover=function(){t._fullLayout._hoversubplot===a&&t._fullLayout._plots[a]&&TP.hover(t,h,a)},TP.hover(t,h,a),t._fullLayout._lasthover=u,t._fullLayout._hoversubplot=a},u.onmouseout=function(h){t._dragging||(t._fullLayout._hoversubplot=null,Pft.unhover(t,h))},t._context.showAxisDragHandles&&(kg(t,o,s._offset-ud,l._offset-ud,ud,ud,"n","w"),kg(t,o,s._offset+s._length,l._offset-ud,ud,ud,"n","e"),kg(t,o,s._offset-ud,l._offset+l._length,ud,ud,"s","w"),kg(t,o,s._offset+s._length,l._offset+l._length,ud,ud,"s","e"))}if(t._context.showAxisDragHandles){if(a===s._mainSubplot){var c=s._mainLinePosition;s.side==="top"&&(c-=ud),kg(t,o,s._offset+s._length*.1,c,s._length*.8,ud,"","ew"),kg(t,o,s._offset,c,s._length*.1,ud,"","w"),kg(t,o,s._offset+s._length*.9,c,s._length*.1,ud,"","e")}if(a===l._mainSubplot){var f=l._mainLinePosition;l.side!=="right"&&(f-=ud),kg(t,o,f,l._offset+l._length*.1,ud,l._length*.8,"ns",""),kg(t,o,f,l._offset+l._length*.9,ud,l._length*.1,"s",""),kg(t,o,f,l._offset,ud,l._length*.1,"n","")}}});var i=r._hoverlayer.node();i.onmousemove=function(a){a.target=t._fullLayout._lasthover,TP.hover(t,a,r._hoversubplot)},i.onclick=function(a){a.target=t._fullLayout._lasthover,TP.click(t,a)},i.onmousedown=function(a){t._fullLayout._lasthover.onmousedown(a)},AP.updateFx(t)}};AP.updateFx=function(e){var t=e._fullLayout,r=t.dragmode==="pan"?"move":"crosshair";Ift(t._draggers,r)}});var che=ye((Gir,uhe)=>{"use strict";var lhe=ba();uhe.exports=function(t){for(var r=lhe.layoutArrayContainers,n=lhe.layoutArrayRegexes,i=t.split("[")[0],a,o,s=0;s{"use strict";var Rft=gy(),FN=p6(),DM=H1(),Dft=E6().sorterAsc,qN=ba();zM.containerArrayMatch=che();var zft=zM.isAddVal=function(t){return t==="add"||Rft(t)},fhe=zM.isRemoveVal=function(t){return t===null||t==="remove"};zM.applyContainerArrayChanges=function(t,r,n,i,a){var o=r.astr,s=qN.getComponentMethod(o,"supplyLayoutDefaults"),l=qN.getComponentMethod(o,"draw"),u=qN.getComponentMethod(o,"drawOne"),c=i.replot||i.recalc||s===FN||l===FN,f=t.layout,h=t._fullLayout;if(n[""]){Object.keys(n).length>1&&DM.warn("Full array edits are incompatible with other edits",o);var d=n[""][""];if(fhe(d))r.set(null);else if(Array.isArray(d))r.set(d);else return DM.warn("Unrecognized full array edit value",o,d),!0;return c?!1:(s(f,h),l(t),!0)}var v=Object.keys(n).map(Number).sort(Dft),x=r.get(),b=x||[],g=a(h,o).get(),E=[],k=-1,A=b.length,L,_,C,M,p,P,T,F;for(L=0;Lb.length-(T?0:1)){DM.warn("index out of range",o,C);continue}if(P!==void 0)p.length>1&&DM.warn("Insertion & removal are incompatible with edits to the same index.",o,C),fhe(P)?E.push(C):T?(P==="add"&&(P={}),b.splice(C,0,P),g&&g.splice(C,0,{})):DM.warn("Unrecognized full object edit value",o,C,P),k===-1&&(k=C);else for(_=0;_=0;L--)b.splice(E[L],1),g&&g.splice(E[L],1);if(b.length?x||r.set(b):r.set(null),c)return!1;if(s(f,h),u!==FN){var q;if(k===-1)q=v;else{for(A=Math.max(b.length,A),q=[],L=0;L=k));L++)q.push(C);for(L=k;L{"use strict";var ghe=uo(),Wir=Cq(),mhe=ba(),kp=Mr(),FM=Xu(),yhe=af(),_he=va(),qM=yhe.cleanId,Fft=yhe.getFromTrace,ON=mhe.traceIs;Cg.clearPromiseQueue=function(e){Array.isArray(e._promises)&&e._promises.length>0&&kp.log("Clearing previous rejected promises from queue."),e._promises=[]};Cg.cleanLayout=function(e){var t,r;e||(e={}),e.xaxis1&&(e.xaxis||(e.xaxis=e.xaxis1),delete e.xaxis1),e.yaxis1&&(e.yaxis||(e.yaxis=e.yaxis1),delete e.yaxis1),e.scene1&&(e.scene||(e.scene=e.scene1),delete e.scene1);var n=(FM.subplotsRegistry.cartesian||{}).attrRegex,i=(FM.subplotsRegistry.polar||{}).attrRegex,a=(FM.subplotsRegistry.ternary||{}).attrRegex,o=(FM.subplotsRegistry.gl3d||{}).attrRegex,s=Object.keys(e);for(t=0;t3?(b.x=1.02,b.xanchor="left"):b.x<-2&&(b.x=-.02,b.xanchor="right"),b.y>3?(b.y=1.02,b.yanchor="bottom"):b.y<-2&&(b.y=-.02,b.yanchor="top")),e.dragmode==="rotate"&&(e.dragmode="orbit"),_he.clean(e),e.template&&e.template.layout&&Cg.cleanLayout(e.template.layout),e};function Y3(e,t){var r=e[t],n=t.charAt(0);r&&r!=="paper"&&(e[t]=qM(r,n,!0))}Cg.cleanData=function(e){for(var t=0;t0)return e.substr(0,t)}Cg.hasParent=function(e,t){for(var r=phe(t);r;){if(r in e)return!0;r=phe(r)}return!1};var Bft=["x","y","z"];Cg.clearAxisTypes=function(e,t,r){for(var n=0;n{"use strict";var kP=xa(),Nft=uo(),Uft=Jq(),sa=Mr(),Yu=sa.nestedProperty,UN=g3(),ap=nne(),L0=ba(),zP=_3(),Ho=Xu(),Nv=Qa(),Vft=hB(),Hft=Cd(),BN=ao(),Gft=va(),jft=zN().initInteractions,Wft=Zp(),Zft=wf().clearOutline,She=ub().dfltConfig,MP=hhe(),yh=xhe(),Jl=gM(),v_=Bu(),Xft=ad().AX_NAME_PATTERN,NN=0,bhe=5;function Yft(e,t,r,n){var i;if(e=sa.getGraphDiv(e),UN.init(e),sa.isPlainObject(t)){var a=t;t=a.data,r=a.layout,n=a.config,i=a.frames}var o=UN.triggerHandler(e,"plotly_beforeplot",[t,r,n]);if(o===!1)return Promise.reject();!t&&!r&&!sa.isPlotDiv(e)&&sa.warn("Calling _doPlot as if redrawing but this container doesn't yet have a plot.",e);function s(){if(i)return pl.addFrames(e,i)}Ehe(e,n),r||(r={}),kP.select(e).classed("js-plotly-plot",!0),BN.makeTester(),Array.isArray(e._promises)||(e._promises=[]);var l=(e.data||[]).length===0&&Array.isArray(t);Array.isArray(t)&&(yh.cleanData(t),l?e.data=t:e.data.push.apply(e.data,t),e.empty=!1),(!e.layout||l)&&(e.layout=yh.cleanLayout(r)),Ho.supplyDefaults(e);var u=e._fullLayout,c=u._has("cartesian");u._replotting=!0,(l||u._shouldCreateBgLayer)&&(yht(e),u._shouldCreateBgLayer&&delete u._shouldCreateBgLayer),BN.initGradients(e),BN.initPatterns(e),l&&Nv.saveShowSpikeInitial(e);var f=!e.calcdata||e.calcdata.length!==(e._fullData||[]).length;f&&Ho.doCalcdata(e);for(var h=0;h=e.data.length||i<-e.data.length)throw new Error(r+" must be valid indices for gd.data.");if(t.indexOf(i,n+1)>-1||i>=0&&t.indexOf(-e.data.length+i)>-1||i<0&&t.indexOf(e.data.length+i)>-1)throw new Error("each index in "+r+" must be unique.")}}function khe(e,t,r){if(!Array.isArray(e.data))throw new Error("gd.data must be an array.");if(typeof t=="undefined")throw new Error("currentIndices is a required argument.");if(Array.isArray(t)||(t=[t]),LP(e,t,"currentIndices"),typeof r!="undefined"&&!Array.isArray(r)&&(r=[r]),typeof r!="undefined"&&LP(e,r,"newIndices"),typeof r!="undefined"&&t.length!==r.length)throw new Error("current and new indices must be of equal length.")}function eht(e,t,r){var n,i;if(!Array.isArray(e.data))throw new Error("gd.data must be an array.");if(typeof t=="undefined")throw new Error("traces must be defined.");for(Array.isArray(t)||(t=[t]),n=0;n=0&&c=0&&c0&&typeof M.parts[T]!="string";)T--;var F=M.parts[T],q=M.parts[T-1]+"."+F,V=M.parts.slice(0,T).join("."),H=Yu(e.layout,V).get(),X=Yu(n,V).get(),G=M.get();if(p!==void 0){g[C]=p,E[C]=F==="reverse"?p:Cy(G);var N=zP.getLayoutValObject(n,M.parts);if(N&&N.impliedEdits&&p!==null)for(var W in N.impliedEdits)k(sa.relativeAttr(C,W),N.impliedEdits[W]);if(["width","height"].indexOf(C)!==-1)if(p){k("autosize",null);var re=C==="height"?"width":"height";k(re,n[re])}else n[C]=e._initialAutoSize[C];else if(C==="autosize")k("width",p?null:n.width),k("height",p?null:n.height);else if(q.match(qhe))_(q),Yu(n,V+"._inputRange").set(null);else if(q.match(Ohe)){_(q),Yu(n,V+"._inputRange").set(null);var ae=Yu(n,V).get();ae._inputDomain&&(ae._input.domain=ae._inputDomain.slice())}else q.match(nht)&&Yu(n,V+"._inputDomain").set(null);if(F==="type"){L=H;var _e=X.type==="linear"&&p==="log",Me=X.type==="log"&&p==="linear";if(_e||Me){if(!L||!L.range)k(V+".autorange",!0);else if(X.autorange)_e&&(L.range=L.range[1]>L.range[0]?[1,2]:[2,1]);else{var ke=L.range[0],ge=L.range[1];_e?(ke<=0&&ge<=0&&k(V+".autorange",!0),ke<=0?ke=ge/1e6:ge<=0&&(ge=ke/1e6),k(V+".range[0]",Math.log(ke)/Math.LN10),k(V+".range[1]",Math.log(ge)/Math.LN10)):(k(V+".range[0]",Math.pow(10,ke)),k(V+".range[1]",Math.pow(10,ge)))}Array.isArray(n._subplots.polar)&&n._subplots.polar.length&&n[M.parts[0]]&&M.parts[1]==="radialaxis"&&delete n[M.parts[0]]._subplot.viewInitial["radialaxis.range"],L0.getComponentMethod("annotations","convertCoords")(e,X,p,k),L0.getComponentMethod("images","convertCoords")(e,X,p,k)}else k(V+".autorange",!0),k(V+".range",null);Yu(n,V+"._inputRange").set(null)}else if(F.match(Xft)){var ie=Yu(n,C).get(),Te=(p||{}).type;(!Te||Te==="-")&&(Te="linear"),L0.getComponentMethod("annotations","convertCoords")(e,ie,Te,k),L0.getComponentMethod("images","convertCoords")(e,ie,Te,k)}var Ee=MP.containerArrayMatch(C);if(Ee){c=Ee.array,f=Ee.index;var Ae=Ee.property,ze=N||{editType:"calc"};f!==""&&Ae===""&&(MP.isAddVal(p)?E[C]=null:MP.isRemoveVal(p)?E[C]=(Yu(r,c).get()||[])[f]:sa.warn("unrecognized full object value",t)),v_.update(b,ze),u[c]||(u[c]={});var Ce=u[c][f];Ce||(Ce=u[c][f]={}),Ce[Ae]=p,delete t[C]}else F==="reverse"?(H.range?H.range.reverse():(k(V+".autorange",!0),H.range=[1,0]),X.autorange?b.calc=!0:b.plot=!0):(C==="dragmode"&&(p===!1&&G!==!1||p!==!1&&G===!1)||n._has("scatter-like")&&n._has("regl")&&C==="dragmode"&&(p==="lasso"||p==="select")&&!(G==="lasso"||G==="select")?b.plot=!0:N?v_.update(b,N):b.calc=!0,M.set(p))}}for(c in u){var me=MP.applyContainerArrayChanges(e,a(r,c),u[c],b,a);me||(b.plot=!0)}for(var Re in A){L=Nv.getFromId(e,Re);var ce=L&&L._constraintGroup;if(ce){b.calc=!0;for(var Ge in ce)A[Ge]||(Nv.getFromId(e,Ge)._constraintShrinkable=!0)}}(Nhe(e)||t.height||t.width)&&(b.plot=!0);var nt=n.shapes;for(f=0;f1;)if(n.pop(),r=Yu(t,n.join(".")+".uirevision").get(),r!==void 0)return r;return t.uirevision}function sht(e,t){for(var r=0;r=i.length?i[0]:i[u]:i}function s(u){return Array.isArray(a)?u>=a.length?a[0]:a[u]:a}function l(u,c){var f=0;return function(){if(u&&++f===c)return u()}}return new Promise(function(u,c){function f(){if(n._frameQueue.length!==0){for(;n._frameQueue.length;){var F=n._frameQueue.pop();F.onInterrupt&&F.onInterrupt()}e.emit("plotly_animationinterrupted",[])}}function h(F){if(F.length!==0){for(var q=0;qn._timeToNext&&v()};F()}var b=0;function g(F){return Array.isArray(i)?b>=i.length?F.transitionOpts=i[b]:F.transitionOpts=i[0]:F.transitionOpts=i,b++,F}var E,k,A=[],L=t==null,_=Array.isArray(t),C=!L&&!_&&sa.isPlainObject(t);if(C)A.push({type:"object",data:g(sa.extendFlat({},t))});else if(L||["string","number"].indexOf(typeof t)!==-1)for(E=0;E0&&PP)&&T.push(k);A=T}}A.length>0?h(A):(e.emit("plotly_animated"),u())})}function vht(e,t,r){if(e=sa.getGraphDiv(e),t==null)return Promise.resolve();if(!sa.isPlotDiv(e))throw new Error("This element is not a Plotly plot: "+e+". It's likely that you've failed to create a plot before adding frames. For more details, see https://plotly.com/javascript/animations/");var n,i,a,o,s=e._transitionData._frames,l=e._transitionData._frameHash;if(!Array.isArray(t))throw new Error("addFrames failure: frameList must be an Array of frame definitions"+t);var u=s.length+t.length*2,c=[],f={};for(n=t.length-1;n>=0;n--)if(sa.isPlainObject(t[n])){var h=t[n].name,d=(l[h]||f[h]||{}).name,v=t[n].name,x=l[d]||f[d];d&&v&&typeof v=="number"&&x&&NNM.index?-1:C.index=0;n--){if(i=c[n].frame,typeof i.name=="number"&&sa.warn("Warning: addFrames accepts frames with numeric names, but the numbers areimplicitly cast to strings"),!i.name)for(;l[i.name="frame "+e._transitionData._counter++];);if(l[i.name]){for(a=0;a=0;r--)n=t[r],a.push({type:"delete",index:n}),o.unshift({type:"insert",index:n,value:i[n]});var s=Ho.modifyFrames,l=Ho.modifyFrames,u=[e,o],c=[e,a];return ap&&ap.add(e,s,u,l,c),Ho.modifyFrames(e,a)}function ght(e){e=sa.getGraphDiv(e);var t=e._fullLayout||{},r=e._fullData||[];return Ho.cleanPlot([],{},r,t),Ho.purge(e),UN.purge(e),t._container&&t._container.remove(),delete e._context,e}function mht(e){var t=e._fullLayout,r=e.getBoundingClientRect();if(!sa.equalDomRects(r,t._lastBBox)){var n=t._invTransform=sa.inverseTransformMatrix(sa.getFullTransformMatrix(e));t._invScaleX=Math.sqrt(n[0][0]*n[0][0]+n[0][1]*n[0][1]+n[0][2]*n[0][2]),t._invScaleY=Math.sqrt(n[1][0]*n[1][0]+n[1][1]*n[1][1]+n[1][2]*n[1][2]),t._lastBBox=r}}function yht(e){var t=kP.select(e),r=e._fullLayout;if(r._calcInverseTransform=mht,r._calcInverseTransform(e),r._container=t.selectAll(".plot-container").data([0]),r._container.enter().insert("div",":first-child").classed("plot-container",!0).classed("plotly",!0).style({width:"100%",height:"100%"}),r._paperdiv=r._container.selectAll(".svg-container").data([0]),r._paperdiv.enter().append("div").classed("user-select-none",!0).classed("svg-container",!0).style("position","relative"),r._glcontainer=r._paperdiv.selectAll(".gl-container").data([{}]),r._glcontainer.enter().append("div").classed("gl-container",!0),r._paperdiv.selectAll(".main-svg").remove(),r._paperdiv.select(".modebar-container").remove(),r._paper=r._paperdiv.insert("svg",":first-child").classed("main-svg",!0),r._toppaper=r._paperdiv.append("svg").classed("main-svg",!0),r._modebardiv=r._paperdiv.append("div"),delete r._modeBar,r._hoverpaper=r._paperdiv.append("svg").classed("main-svg",!0),!r._uid){var n={};kP.selectAll("defs").each(function(){this.id&&(n[this.id.split("-")[1]]=1)}),r._uid=sa.randstr(n)}r._paperdiv.selectAll(".main-svg").attr(Wft.svgAttrs),r._defs=r._paper.append("defs").attr("id","defs-"+r._uid),r._clips=r._defs.append("g").classed("clips",!0),r._topdefs=r._toppaper.append("defs").attr("id","topdefs-"+r._uid),r._topclips=r._topdefs.append("g").classed("clips",!0),r._bgLayer=r._paper.append("g").classed("bglayer",!0),r._draggers=r._paper.append("g").classed("draglayer",!0);var i=r._paper.append("g").classed("layer-below",!0);r._imageLowerLayer=i.append("g").classed("imagelayer",!0),r._shapeLowerLayer=i.append("g").classed("shapelayer",!0),r._cartesianlayer=r._paper.append("g").classed("cartesianlayer",!0),r._polarlayer=r._paper.append("g").classed("polarlayer",!0),r._smithlayer=r._paper.append("g").classed("smithlayer",!0),r._ternarylayer=r._paper.append("g").classed("ternarylayer",!0),r._geolayer=r._paper.append("g").classed("geolayer",!0),r._funnelarealayer=r._paper.append("g").classed("funnelarealayer",!0),r._pielayer=r._paper.append("g").classed("pielayer",!0),r._iciclelayer=r._paper.append("g").classed("iciclelayer",!0),r._treemaplayer=r._paper.append("g").classed("treemaplayer",!0),r._sunburstlayer=r._paper.append("g").classed("sunburstlayer",!0),r._indicatorlayer=r._toppaper.append("g").classed("indicatorlayer",!0),r._glimages=r._paper.append("g").classed("glimages",!0);var a=r._toppaper.append("g").classed("layer-above",!0);r._imageUpperLayer=a.append("g").classed("imagelayer",!0),r._shapeUpperLayer=a.append("g").classed("shapelayer",!0),r._selectionLayer=r._toppaper.append("g").classed("selectionlayer",!0),r._infolayer=r._toppaper.append("g").classed("infolayer",!0),r._menulayer=r._toppaper.append("g").classed("menulayer",!0),r._zoomlayer=r._toppaper.append("g").classed("zoomlayer",!0),r._hoverlayer=r._hoverpaper.append("g").classed("hoverlayer",!0),r._modebardiv.classed("modebar-container",!0).style("position","absolute").style("top","0px").style("right","0px"),e.emit("plotly_framework")}pl.animate=dht;pl.addFrames=vht;pl.deleteFrames=pht;pl.addTraces=Rhe;pl.deleteTraces=Dhe;pl.extendTraces=Phe;pl.moveTraces=VN;pl.prependTraces=Ihe;pl.newPlot=Qft;pl._doPlot=Yft;pl.purge=ght;pl.react=cht;pl.redraw=$ft;pl.relayout=OM;pl.restyle=PP;pl.setPlotConfig=Kft;pl.update=RP;pl._guiRelayout=GN(OM);pl._guiRestyle=GN(PP);pl._guiUpdate=GN(RP);pl._storeDirectGUIEdit=iht});var Ly=ye(Mm=>{"use strict";var _ht=ba();Mm.getDelay=function(e){return e._has&&(e._has("gl3d")||e._has("mapbox")||e._has("map"))?500:0};Mm.getRedrawFunc=function(e){return function(){_ht.getComponentMethod("colorbar","draw")(e)}};Mm.encodeSVG=function(e){return"data:image/svg+xml,"+encodeURIComponent(e)};Mm.encodeJSON=function(e){return"data:application/json,"+encodeURIComponent(e)};var Uhe=window.URL||window.webkitURL;Mm.createObjectURL=function(e){return Uhe.createObjectURL(e)};Mm.revokeObjectURL=function(e){return Uhe.revokeObjectURL(e)};Mm.createBlob=function(e,t){if(t==="svg")return new window.Blob([e],{type:"image/svg+xml;charset=utf-8"});if(t==="full-json")return new window.Blob([e],{type:"application/json;charset=utf-8"});var r=xht(window.atob(e));return new window.Blob([r],{type:"image/"+t})};Mm.octetStream=function(e){document.location.href="data:application/octet-stream"+e};function xht(e){for(var t=e.length,r=new ArrayBuffer(t),n=new Uint8Array(r),i=0;i{"use strict";var WN=xa(),Kir=Mr(),bht=ao(),wht=va(),Jir=Zp(),jN=/"/g,NM="TOBESTRIPPED",Tht=new RegExp('("'+NM+")|("+NM+'")',"g");function Aht(e){var t=WN.select("body").append("div").style({display:"none"}).html(""),r=e.replace(/(&[^;]*;)/gi,function(n){return n==="<"?"<":n==="&rt;"?">":n.indexOf("<")!==-1||n.indexOf(">")!==-1?"":t.html(n).text()});return t.remove(),r}function Sht(e){return e.replace(/&(?!\w+;|\#[0-9]+;| \#x[0-9A-F]+;)/g,"&")}Vhe.exports=function(t,r,n){var i=t._fullLayout,a=i._paper,o=i._toppaper,s=i.width,l=i.height,u;a.insert("rect",":first-child").call(bht.setRect,0,0,s,l).call(wht.fill,i.paper_bgcolor);var c=i._basePlotModules||[];for(u=0;u{"use strict";var Mht=Mr(),Eht=vb().EventEmitter,UM=Ly();function kht(e){var t=e.emitter||new Eht,r=new Promise(function(n,i){var a=window.Image,o=e.svg,s=e.format||"png",l=e.canvas,u=e.scale||1,c=e.width||300,f=e.height||150,h=u*c,d=u*f,v=l.getContext("2d",{willReadFrequently:!0}),x=new a,b,g;s==="svg"||Mht.isSafari()?g=UM.encodeSVG(o):(b=UM.createBlob(o,"svg"),g=UM.createObjectURL(b)),l.width=h,l.height=d,x.onload=function(){var E;switch(b=null,UM.revokeObjectURL(g),s!=="svg"&&v.drawImage(x,0,0,h,d),s){case"jpeg":E=l.toDataURL("image/jpeg");break;case"png":E=l.toDataURL("image/png");break;case"webp":E=l.toDataURL("image/webp");break;case"svg":E=g;break;default:var k="Image format is not jpeg, png, svg or webp.";if(i(new Error(k)),!e.promise)return t.emit("error",k)}n(E),e.promise||t.emit("success",E)},x.onerror=function(E){if(b=null,UM.revokeObjectURL(g),i(E),!e.promise)return t.emit("error",E)},x.src=g});return e.promise?r:t}Hhe.exports=kht});var XN=ye((enr,Whe)=>{"use strict";var Ghe=uo(),jhe=qP(),Cht=Xu(),Em=Mr(),VM=Ly(),Lht=OP(),Pht=BP(),Iht=QC().version,ZN={format:{valType:"enumerated",values:["png","jpeg","webp","svg","full-json"],dflt:"png"},width:{valType:"number",min:1},height:{valType:"number",min:1},scale:{valType:"number",min:0,dflt:1},setBackground:{valType:"any",dflt:!1},imageDataOnly:{valType:"boolean",dflt:!1}};function Rht(e,t){t=t||{};var r,n,i,a;Em.isPlainObject(e)?(r=e.data||[],n=e.layout||{},i=e.config||{},a={}):(e=Em.getGraphDiv(e),r=Em.extendDeep([],e.data),n=Em.extendDeep({},e.layout),i=e._context,a=e._fullLayout||{});function o(_){return!(_ in t)||Em.validate(t[_],ZN[_])}if(!o("width")&&t.width!==null||!o("height")&&t.height!==null)throw new Error("Height and width should be pixel values.");if(!o("format"))throw new Error("Export format is not "+Em.join2(ZN.format.values,", "," or ")+".");var s={};function l(_,C){return Em.coerce(t,s,ZN,_,C)}var u=l("format"),c=l("width"),f=l("height"),h=l("scale"),d=l("setBackground"),v=l("imageDataOnly"),x=document.createElement("div");x.style.position="absolute",x.style.left="-5000px",document.body.appendChild(x);var b=Em.extendFlat({},n);c?b.width=c:t.width===null&&Ghe(a.width)&&(b.width=a.width),f?b.height=f:t.height===null&&Ghe(a.height)&&(b.height=a.height);var g=Em.extendFlat({},i,{_exportedPlot:!0,staticPlot:!0,setBackground:d}),E=VM.getRedrawFunc(x);function k(){return new Promise(function(_){setTimeout(_,VM.getDelay(x._fullLayout))})}function A(){return new Promise(function(_,C){var M=Lht(x,u,h),p=x._fullLayout.width,P=x._fullLayout.height;function T(){jhe.purge(x),document.body.removeChild(x)}if(u==="full-json"){var F=Cht.graphJson(x,!1,"keepdata","object",!0,!0);return F.version=Iht,F=JSON.stringify(F),T(),_(v?F:VM.encodeJSON(F))}if(T(),u==="svg")return _(v?M:VM.encodeSVG(M));var q=document.createElement("canvas");q.id=Em.randstr(),Pht({format:u,width:p,height:P,scale:h,canvas:q,svg:M,promise:!0}).then(_).catch(C)})}function L(_){return v?_.replace(VM.IMAGE_URL_PREFIX,""):_}return new Promise(function(_,C){jhe.newPlot(x,r,b,g).then(E).then(k).then(A).then(function(M){_(L(M))}).catch(function(M){C(M)})})}Whe.exports=Rht});var Khe=ye((tnr,Yhe)=>{"use strict";var P0=Mr(),Dht=Xu(),zht=_3(),Fht=ub().dfltConfig,Lg=P0.isPlainObject,Vb=Array.isArray,Zhe=P0.isArrayOrTypedArray;Yhe.exports=function(t,r){t===void 0&&(t=[]),r===void 0&&(r={});var n=zht.get(),i=[],a={_context:P0.extendFlat({},Fht)},o,s;Vb(t)?(a.data=P0.extendDeep([],t),o=t):(a.data=[],o=[],i.push(cd("array","data"))),Lg(r)?(a.layout=P0.extendDeep({},r),s=r):(a.layout={},s={},arguments.length>1&&i.push(cd("object","layout"))),Dht.supplyDefaults(a);for(var l=a._fullData,u=o.length,c=0;cf.length&&n.push(cd("unused",i,u.concat(f.length)));var g=f.length,E=Array.isArray(b);E&&(g=Math.min(g,b.length));var k,A,L,_,C;if(h.dimensions===2)for(A=0;Af[A].length&&n.push(cd("unused",i,u.concat(A,f[A].length)));var M=f[A].length;for(k=0;k<(E?Math.min(M,b[A].length):M);k++)L=E?b[A][k]:b,_=c[A][k],C=f[A][k],P0.validate(_,L)?C!==_&&C!==+_&&n.push(cd("dynamic",i,u.concat(A,k),_,C)):n.push(cd("value",i,u.concat(A,k),_))}else n.push(cd("array",i,u.concat(A),c[A]));else for(A=0;A{"use strict";var Hht=Mr(),UP=Ly();function Ght(e,t,r){var n=document.createElement("a"),i="download"in n,a=new Promise(function(o,s){var l,u;if(i)return l=UP.createBlob(e,r),u=UP.createObjectURL(l),n.href=u,n.download=t,document.body.appendChild(n),n.click(),document.body.removeChild(n),UP.revokeObjectURL(u),l=null,o(t);if(Hht.isSafari()){var c=r==="svg"?",":";base64,";return UP.octetStream(c+encodeURIComponent(e)),o(t)}s(new Error("download error"))});return a}Jhe.exports=Ght});var YN=ye((nnr,ede)=>{"use strict";var Qhe=Mr(),jht=XN(),Wht=$he(),inr=Ly();function Zht(e,t){var r;return Qhe.isPlainObject(e)||(r=Qhe.getGraphDiv(e)),t=t||{},t.format=t.format||"png",t.width=t.width||null,t.height=t.height||null,t.imageDataOnly=!0,new Promise(function(n,i){r&&r._snapshotInProgress&&i(new Error("Snapshotting already in progress.")),r&&(r._snapshotInProgress=!0);var a=jht(e,t),o=t.filename||e.fn||"newplot";o+="."+t.format.replace("-","."),a.then(function(s){return r&&(r._snapshotInProgress=!1),Wht(s,o,t.format)}).then(function(s){n(s)}).catch(function(s){r&&(r._snapshotInProgress=!1),i(s)})})}ede.exports=Zht});var ade=ye(KN=>{"use strict";var Cp=Mr(),Lp=Cp.isPlainObject,tde=_3(),rde=Xu(),Xht=vl(),ide=Vs(),nde=ub().dfltConfig;KN.makeTemplate=function(e){e=Cp.isPlainObject(e)?e:Cp.getGraphDiv(e),e=Cp.extendDeep({_context:nde},{data:e.data,layout:e.layout}),rde.supplyDefaults(e);var t=e.data||[],r=e.layout||{};r._basePlotModules=e._fullLayout._basePlotModules,r._modules=e._fullLayout._modules;var n={data:{},layout:{}};t.forEach(function(d){var v={};HM(d,v,Kht.bind(null,d));var x=Cp.coerce(d,{},Xht,"type"),b=n.data[x];b||(b=n.data[x]=[]),b.push(v)}),HM(r,n.layout,Yht.bind(null,r)),delete n.layout.template;var i=r.template;if(Lp(i)){var a=i.layout,o,s,l,u,c,f;Lp(a)&&VP(a,n.layout);var h=i.data;if(Lp(h)){for(s in n.data)if(l=h[s],Array.isArray(l)){for(c=n.data[s],f=c.length,u=l.length,o=0;og?o.push({code:"unused",traceType:d,templateCount:b,dataCount:g}):g>b&&o.push({code:"reused",traceType:d,templateCount:b,dataCount:g})}}function E(k,A){for(var L in k)if(L.charAt(0)!=="_"){var _=k[L],C=I0(k,L,A);Lp(_)?(Array.isArray(k)&&_._template===!1&&_.templateitemname&&o.push({code:"missing",path:C,templateitemname:_.templateitemname}),E(_,C)):Array.isArray(_)&&Jht(_)&&E(_,C)}}if(E({data:l,layout:s},""),o.length)return o.map($ht)};function Jht(e){for(var t=0;t{"use strict";var Hh=qP();Sc._doPlot=Hh._doPlot;Sc.newPlot=Hh.newPlot;Sc.restyle=Hh.restyle;Sc.relayout=Hh.relayout;Sc.redraw=Hh.redraw;Sc.update=Hh.update;Sc._guiRestyle=Hh._guiRestyle;Sc._guiRelayout=Hh._guiRelayout;Sc._guiUpdate=Hh._guiUpdate;Sc._storeDirectGUIEdit=Hh._storeDirectGUIEdit;Sc.react=Hh.react;Sc.extendTraces=Hh.extendTraces;Sc.prependTraces=Hh.prependTraces;Sc.addTraces=Hh.addTraces;Sc.deleteTraces=Hh.deleteTraces;Sc.moveTraces=Hh.moveTraces;Sc.purge=Hh.purge;Sc.addFrames=Hh.addFrames;Sc.deleteFrames=Hh.deleteFrames;Sc.animate=Hh.animate;Sc.setPlotConfig=Hh.setPlotConfig;var Qht=DS().getGraphDiv,edt=tP().eraseActiveShape;Sc.deleteActiveShape=function(e){return edt(Qht(e))};Sc.toImage=XN();Sc.validate=Khe();Sc.downloadImage=YN();var ode=ade();Sc.makeTemplate=ode.makeTemplate;Sc.validateTemplate=ode.validateTemplate});var K3=ye((snr,lde)=>{"use strict";var JN=Mr(),tdt=ba();lde.exports=function(t,r,n,i){var a=i("x"),o=i("y"),s,l=tdt.getComponentMethod("calendars","handleTraceDefaults");if(l(t,r,["x","y"],n),a){var u=JN.minRowLength(a);o?s=Math.min(u,JN.minRowLength(o)):(s=u,i("y0"),i("dy"))}else{if(!o)return 0;s=JN.minRowLength(o),i("x0"),i("dx")}return r._length=s,s}});var Pg=ye((lnr,fde)=>{"use strict";var ude=Mr().dateTick0,rdt=es(),idt=rdt.ONEWEEK;function cde(e,t){return e%idt===0?ude(t,1):ude(t,0)}fde.exports=function(t,r,n,i,a){if(a||(a={x:!0,y:!0}),a.x){var o=i("xperiod");o&&(i("xperiod0",cde(o,r.xcalendar)),i("xperiodalignment"))}if(a.y){var s=i("yperiod");s&&(i("yperiod0",cde(s,r.ycalendar)),i("yperiodalignment"))}}});var vde=ye((unr,dde)=>{"use strict";var hde=["orientation","groupnorm","stackgaps"];dde.exports=function(t,r,n,i){var a=n._scatterStackOpts,o=i("stackgroup");if(o){var s=r.xaxis+r.yaxis,l=a[s];l||(l=a[s]={});var u=l[o],c=!1;u?u.traces.push(r):(u=l[o]={traceIndices:[],traces:[r]},c=!0);for(var f={orientation:r.x&&!r.y?"h":"v"},h=0;h{"use strict";var pde=va(),gde=Dv().hasColorscale,mde=Uh(),ndt=lu();yde.exports=function(t,r,n,i,a,o){var s=ndt.isBubble(t),l=(t.line||{}).color,u;if(o=o||{},l&&(n=l),a("marker.symbol"),a("marker.opacity",s?.7:1),a("marker.size"),o.noAngle||(a("marker.angle"),o.noAngleRef||a("marker.angleref"),o.noStandOff||a("marker.standoff")),a("marker.color",n),gde(t,"marker")&&mde(t,r,i,a,{prefix:"marker.",cLetter:"c"}),o.noSelect||(a("selected.marker.color"),a("unselected.marker.color"),a("selected.marker.size"),a("unselected.marker.size")),o.noLine||(l&&!Array.isArray(l)&&r.marker.color!==l?u=l:s?u=pde.background:u=pde.defaultLine,a("marker.line.color",u),gde(t,"marker.line")&&mde(t,r,i,a,{prefix:"marker.line.",cLetter:"c"}),a("marker.line.width",s?1:0)),s&&(a("marker.sizeref"),a("marker.sizemin"),a("marker.sizemode")),o.gradient){var c=a("marker.gradient.type");c!=="none"&&a("marker.gradient.color")}}});var R0=ye((fnr,_de)=>{"use strict";var adt=Mr().isArrayOrTypedArray,odt=Dv().hasColorscale,sdt=Uh();_de.exports=function(t,r,n,i,a,o){o||(o={});var s=(t.marker||{}).color;if(s&&s._inputArray&&(s=s._inputArray),a("line.color",n),odt(t,"line"))sdt(t,r,i,a,{prefix:"line.",cLetter:"c"});else{var l=(adt(s)?!1:s)||n;a("line.color",l)}a("line.width"),o.noDash||a("line.dash"),o.backoff&&a("line.backoff")}});var J3=ye((hnr,xde)=>{"use strict";xde.exports=function(t,r,n){var i=n("line.shape");i==="spline"&&n("line.smoothing")}});var D0=ye((dnr,bde)=>{"use strict";var ldt=Mr();bde.exports=function(e,t,r,n,i){i=i||{},n("textposition"),ldt.coerceFont(n,"textfont",i.font||r.font,i),i.noSelect||(n("selected.textfont.color"),n("unselected.textfont.color"))}});var Ig=ye((vnr,Tde)=>{"use strict";var GP=va(),wde=Mr().isArrayOrTypedArray;function udt(e){for(var t=GP.interpolate(e[0][1],e[1][1],.5),r=2;r{"use strict";var Ade=Mr(),cdt=ba(),fdt=Uc(),hdt=Sm(),$3=lu(),ddt=K3(),vdt=Pg(),pdt=vde(),gdt=$p(),mdt=R0(),Sde=J3(),ydt=D0(),_dt=Ig(),xdt=Mr().coercePattern;Mde.exports=function(t,r,n,i){function a(d,v){return Ade.coerce(t,r,fdt,d,v)}var o=ddt(t,r,i,a);if(o||(r.visible=!1),!!r.visible){vdt(t,r,i,a),a("xhoverformat"),a("yhoverformat"),a("zorder");var s=pdt(t,r,i,a);i.scattermode==="group"&&r.orientation===void 0&&a("orientation","v");var l=!s&&o{"use strict";var bdt=Bb().getAxisGroup;kde.exports=function(t,r,n,i,a){var o=r.orientation,s=r[{v:"x",h:"y"}[o]+"axis"],l=bdt(n,s)+o,u=n._alignmentOpts||{},c=i("alignmentgroup"),f=u[l];f||(f=u[l]={});var h=f[c];h?h.traces.push(r):h=f[c]={traces:[r],alignmentIndex:Object.keys(f).length,offsetGroups:{}};var d=i("offsetgroup")||"",v=h.offsetGroups,x=v[d];r._offsetIndex=0,(a!=="group"||d)&&(x||(x=v[d]={offsetIndex:Object.keys(v).length}),r._offsetIndex=x.offsetIndex)}});var $N=ye((mnr,Cde)=>{"use strict";var wdt=Mr(),Tdt=Hb(),Adt=Uc();Cde.exports=function(t,r){var n,i,a,o=r.scattermode;function s(h){return wdt.coerce(i._input,i,Adt,h)}if(r.scattermode==="group")for(a=0;a=0;c--){var f=t[c];if(f.type==="scatter"&&f.xaxis===l.xaxis&&f.yaxis===l.yaxis){f.opacity=void 0;break}}}}}});var Pde=ye((ynr,Lde)=>{"use strict";var Sdt=Mr(),Mdt=U6();Lde.exports=function(e,t){function r(i,a){return Sdt.coerce(e,t,Mdt,i,a)}var n=t.barmode==="group";t.scattermode==="group"&&r("scattergap",n?t.bargap:.2)}});var Rg=ye((_nr,Rde)=>{"use strict";var Edt=uo(),Ide=Mr(),kdt=Ide.dateTime2ms,jP=Ide.incrementMonth,Cdt=es(),Ldt=Cdt.ONEAVGMONTH;Rde.exports=function(t,r,n,i){if(r.type!=="date")return{vals:i};var a=t[n+"periodalignment"];if(!a)return{vals:i};var o=t[n+"period"],s;if(Edt(o)){if(o=+o,o<=0)return{vals:i}}else if(typeof o=="string"&&o.charAt(0)==="M"){var l=+o.substring(1);if(l>0&&Math.round(l)===l)s=l;else return{vals:i}}for(var u=r.calendar,c=a==="start",f=a==="end",h=t[n+"period0"],d=kdt(h,u)||0,v=[],x=[],b=[],g=i.length,E=0;Ek;)_=jP(_,-s,u);for(;_<=k;)_=jP(_,s,u);L=jP(_,-s,u)}else{for(A=Math.round((k-d)/o),_=d+A*o;_>k;)_-=o;for(;_<=k;)_+=o;L=_-o}v[E]=c?L:f?_:(L+_)/2,x[E]=L,b[E]=_}return{vals:v,starts:x,ends:b}}});var z0=ye((xnr,zde)=>{"use strict";var QN=Dv().hasColorscale,eU=zv(),Dde=lu();zde.exports=function(t,r){Dde.hasLines(r)&&QN(r,"line")&&eU(t,r,{vals:r.line.color,containerStr:"line",cLetter:"c"}),Dde.hasMarkers(r)&&(QN(r,"marker")&&eU(t,r,{vals:r.marker.color,containerStr:"marker",cLetter:"c"}),QN(r,"marker.line")&&eU(t,r,{vals:r.marker.line.color,containerStr:"marker.line",cLetter:"c"}))}});var km=ye((bnr,Fde)=>{"use strict";var Df=Mr();Fde.exports=function(t,r){for(var n=0;n{"use strict";var qde=Mr();Ode.exports=function(t,r){qde.isArrayOrTypedArray(r.selectedpoints)&&qde.tagSelected(t,r)}});var q0=ye((Tnr,jde)=>{"use strict";var Bde=uo(),rU=Mr(),GM=Qa(),Nde=Rg(),tU=es().BADNUM,iU=lu(),Pdt=z0(),Idt=km(),Rdt=F0();function Ddt(e,t){var r=e._fullLayout,n=t._xA=GM.getFromId(e,t.xaxis||"x","x"),i=t._yA=GM.getFromId(e,t.yaxis||"y","y"),a=n.makeCalcdata(t,"x"),o=i.makeCalcdata(t,"y"),s=Nde(t,n,"x",a),l=Nde(t,i,"y",o),u=s.vals,c=l.vals,f=t._length,h=new Array(f),d=t.ids,v=nU(t,r,n,i),x=!1,b,g,E,k,A,L;Hde(r,t);var _="x",C="y",M;if(v)rU.pushUnique(v.traceIndices,t.index),b=v.orientation==="v",b?(C="s",M="x"):(_="s",M="y"),A=v.stackgaps==="interpolate";else{var p=Vde(t,f);Ude(e,t,n,i,u,c,p)}var P=!!t.xperiodalignment,T=!!t.yperiodalignment;for(g=0;gg&&h[k].gap;)k--;for(L=h[k].s,E=h.length-1;E>k;E--)h[E].s=L;for(;g{"use strict";Wde.exports=WP;var zdt=Mr().distinctVals;function WP(e,t){this.traces=e,this.sepNegVal=t.sepNegVal,this.overlapNoMerge=t.overlapNoMerge;for(var r=1/0,n=t.posAxis._id.charAt(0),i=[],a=0;a{"use strict";var O0=uo(),p_=Mr().isArrayOrTypedArray,Q3=es().BADNUM,Fdt=ba(),jM=Qa(),qdt=Bb().getAxisGroup,ZP=Zde();function Odt(e,t){for(var r=t.xaxis,n=t.yaxis,i=e._fullLayout,a=e._fullData,o=e.calcdata,s=[],l=[],u=0;ul+o||!O0(s))}for(var c=0;c{"use strict";var $de=q0(),Qde=Gb().setGroupPositions;function Kdt(e,t){for(var r=t.xaxis,n=t.yaxis,i=e._fullLayout,a=e._fullData,o=e.calcdata,s=[],l=[],u=0;up[c]&&c{"use strict";var $dt=ao(),ave=es(),WM=ave.BADNUM,ove=ave.LOG_CLIP,rve=ove+.5,ive=ove-.5,XP=Mr(),Qdt=XP.segmentsIntersect,nve=XP.constrain,cU=Sm();sve.exports=function(t,r){var n=r.trace||{},i=r.xaxis,a=r.yaxis,o=i.type==="log",s=a.type==="log",l=i._length,u=a._length,c=r.backoff,f=n.marker,h=r.connectGaps,d=r.baseTolerance,v=r.shape,x=v==="linear",b=n.fill&&n.fill!=="none",g=[],E=cU.minTolerance,k=t.length,A=new Array(k),L=0,_,C,M,p,P,T,F,q,V,H,X,G,N,W,re,ae;function _e(ut){var Ne=t[ut];if(!Ne)return!1;var Ye=r.linearized?i.l2p(Ne.x):i.c2p(Ne.x),Ve=r.linearized?a.l2p(Ne.y):a.c2p(Ne.y);if(Ye===WM){if(o&&(Ye=i.c2p(Ne.x,!0)),Ye===WM)return!1;s&&Ve===WM&&(Ye*=Math.abs(i._m*u*(i._m>0?rve:ive)/(a._m*l*(a._m>0?rve:ive)))),Ye*=1e3}if(Ve===WM){if(s&&(Ve=a.c2p(Ne.y,!0)),Ve===WM)return!1;Ve*=1e3}return[Ye,Ve]}function Me(ut,Ne,Ye,Ve){var Xe=Ye-ut,ht=Ve-Ne,Le=.5-ut,xe=.5-Ne,Se=Xe*Xe+ht*ht,lt=Xe*Le+ht*xe;if(lt>0&<1||Math.abs(Le.y-Ye[0][1])>1)&&(Le=[Le.x,Le.y],Ve&&Te(Le,ut)ze||ut[1]me)return[nve(ut[0],Ae,ze),nve(ut[1],Ce,me)]}function kt(ut,Ne){if(ut[0]===Ne[0]&&(ut[0]===Ae||ut[0]===ze)||ut[1]===Ne[1]&&(ut[1]===Ce||ut[1]===me))return!0}function Ct(ut,Ne){var Ye=[],Ve=Rt(ut),Xe=Rt(Ne);return Ve&&Xe&&kt(Ve,Xe)||(Ve&&Ye.push(Ve),Xe&&Ye.push(Xe)),Ye}function Yt(ut,Ne,Ye){return function(Ve,Xe){var ht=Rt(Ve),Le=Rt(Xe),xe=[];if(ht&&Le&&kt(ht,Le))return xe;ht&&xe.push(ht),Le&&xe.push(Le);var Se=2*XP.constrain((Ve[ut]+Xe[ut])/2,Ne,Ye)-((ht||Ve)[ut]+(Le||Xe)[ut]);if(Se){var lt;ht&&Le?lt=Se>0==ht[ut]>Le[ut]?ht:Le:lt=ht||Le,lt[ut]+=Se}return xe}}var xr;v==="linear"||v==="spline"?xr=ot:v==="hv"||v==="vh"?xr=Ct:v==="hvh"?xr=Yt(0,Ae,ze):v==="vhv"&&(xr=Yt(1,Ce,me));function er(ut,Ne){var Ye=Ne[0]-ut[0],Ve=(Ne[1]-ut[1])/Ye,Xe=(ut[1]*Ne[0]-Ne[1]*ut[0])/Ye;return Xe>0?[Ve>0?Ae:ze,me]:[Ve>0?ze:Ae,Ce]}function Ke(ut){var Ne=ut[0],Ye=ut[1],Ve=Ne===A[L-1][0],Xe=Ye===A[L-1][1];if(!(Ve&&Xe))if(L>1){var ht=Ne===A[L-2][0],Le=Ye===A[L-2][1];Ve&&(Ne===Ae||Ne===ze)&&ht?Le?L--:A[L-1]=ut:Xe&&(Ye===Ce||Ye===me)&&Le?ht?L--:A[L-1]=ut:A[L++]=ut}else A[L++]=ut}function xt(ut){A[L-1][0]!==ut[0]&&A[L-1][1]!==ut[1]&&Ke([nt,ct]),Ke(ut),qt=null,nt=ct=0}var bt=XP.isArrayOrTypedArray(f);function Lt(ut){if(ut&&c&&(ut.i=_,ut.d=t,ut.trace=n,ut.marker=bt?f[ut.i]:f,ut.backoff=c),ke=ut[0]/l,ge=ut[1]/u,ce=ut[0]ze?ze:0,Ge=ut[1]me?me:0,ce||Ge){if(!L)A[L++]=[ce||ut[0],Ge||ut[1]];else if(qt){var Ne=xr(qt,ut);Ne.length>1&&(xt(Ne[0]),A[L++]=Ne[1])}else rt=xr(A[L-1],ut)[0],A[L++]=rt;var Ye=A[L-1];ce&&Ge&&(Ye[0]!==ce||Ye[1]!==Ge)?(qt&&(nt!==ce&&ct!==Ge?Ke(nt&&ct?er(qt,ut):[nt||ce,ct||Ge]):nt&&ct&&Ke([nt,ct])),Ke([ce,Ge])):nt-ce&&ct-Ge&&Ke([ce||nt,Ge||ct]),qt=ut,nt=ce,ct=Ge}else qt&&xt(xr(qt,ut)[0]),A[L++]=ut}for(_=0;_ie(T,St))break;M=T,N=V[0]*q[0]+V[1]*q[1],N>X?(X=N,p=T,F=!1):N=t.length||!T)break;Lt(T),C=T}}qt&&Ke([nt||qt[0],ct||qt[1]]),g.push(A.slice(0,L))}var Et=v.slice(v.length-1);if(c&&Et!=="h"&&Et!=="v"){for(var dt=!1,Ht=-1,$t=[],fr=0;fr{"use strict";var lve={tonextx:1,tonexty:1,tonext:1};uve.exports=function(t,r,n){var i,a,o,s,l,u={},c=!1,f=-1,h=0,d=-1;for(a=0;a=0?l=d:(l=d=h,h++),l{"use strict";var Dg=xa(),evt=ba(),ZM=Mr(),tT=ZM.ensureSingle,fve=ZM.identity,zf=ao(),rT=lu(),tvt=fU(),rvt=hU(),YP=wM().tester;hve.exports=function(t,r,n,i,a,o){var s,l,u=!a,c=!!a&&a.duration>0,f=rvt(t,r,n);if(s=i.selectAll("g.trace").data(f,function(d){return d[0].trace.uid}),s.enter().append("g").attr("class",function(d){return"trace scatter trace"+d[0].trace.uid}).style("stroke-miterlimit",2),s.order(),ivt(t,s,r),c){o&&(l=o());var h=Dg.transition().duration(a.duration).ease(a.easing).each("end",function(){l&&l()}).each("interrupt",function(){l&&l()});h.each(function(){i.selectAll("g.trace").each(function(d,v){cve(t,v,r,d,f,this,a)})})}else s.each(function(d,v){cve(t,v,r,d,f,this,a)});u&&s.exit().remove(),i.selectAll("path:not([d])").remove()};function ivt(e,t,r){t.each(function(n){var i=tT(Dg.select(this),"g","fills");zf.setClipUrl(i,r.layerClipId,e);var a=n[0].trace,o=[];a._ownfill&&o.push("_ownFill"),a._nexttrace&&o.push("_nextFill");var s=i.selectAll("g").data(o,fve);s.enter().append("g"),s.exit().each(function(l){a[l]=null}).remove(),s.order().each(function(l){a[l]=tT(Dg.select(this),"path","js-fill")})})}function cve(e,t,r,n,i,a,o){var s=e._context.staticPlot,l;nvt(e,t,r,n,i);var u=!!o&&o.duration>0;function c(Yt){return u?Yt.transition():Yt}var f=r.xaxis,h=r.yaxis,d=n[0].trace,v=d.line,x=Dg.select(a),b=tT(x,"g","errorbars"),g=tT(x,"g","lines"),E=tT(x,"g","points"),k=tT(x,"g","text");if(evt.getComponentMethod("errorbars","plot")(e,b,r,o),d.visible!==!0)return;c(x).style("opacity",d.opacity);var A,L,_=d.fill.charAt(d.fill.length-1);_!=="x"&&_!=="y"&&(_="");var C,M;_==="y"?(C=1,M=h.c2p(0,!0)):_==="x"&&(C=0,M=f.c2p(0,!0)),n[0][r.isRangePlot?"nodeRangePlot3":"node3"]=x;var p="",P=[],T=d._prevtrace,F=null,q=null;T&&(p=T._prevRevpath||"",L=T._nextFill,P=T._ownPolygons,F=T._fillsegments,q=T._fillElement);var V,H,X="",G="",N,W,re,ae,_e,Me,ke=[];d._polygons=[];var ge=[],ie=[],Te=ZM.noop;if(A=d._ownFill,rT.hasLines(d)||d.fill!=="none"){L&&L.datum(n),["hv","vh","hvh","vhv"].indexOf(v.shape)!==-1?(N=zf.steps(v.shape),W=zf.steps(v.shape.split("").reverse().join(""))):v.shape==="spline"?N=W=function(Yt){var xr=Yt[Yt.length-1];return Yt.length>1&&Yt[0][0]===xr[0]&&Yt[0][1]===xr[1]?zf.smoothclosed(Yt.slice(1),v.smoothing):zf.smoothopen(Yt,v.smoothing)}:N=W=function(Yt){return"M"+Yt.join("L")},re=function(Yt){return W(Yt.reverse())},ie=tvt(n,{xaxis:f,yaxis:h,trace:d,connectGaps:d.connectgaps,baseTolerance:Math.max(v.width||1,3)/4,shape:v.shape,backoff:v.backoff,simplify:v.simplify,fill:d.fill}),ge=new Array(ie.length);var Ee=0;for(l=0;l=s[0]&&x.x<=s[1]&&x.y>=l[0]&&x.y<=l[1]}),h=Math.ceil(f.length/c),d=0;i.forEach(function(x,b){var g=x[0].trace;rT.hasMarkers(g)&&g.marker.maxdisplayed>0&&b{"use strict";dve.exports={container:"marker",min:"cmin",max:"cmax"}});var JP=ye((Pnr,vve)=>{"use strict";var KP=Qa();vve.exports=function(t,r,n){var i={},a={_fullLayout:n},o=KP.getFromTrace(a,r,"x"),s=KP.getFromTrace(a,r,"y"),l=t.orig_x;l===void 0&&(l=t.x);var u=t.orig_y;return u===void 0&&(u=t.y),i.xLabel=KP.tickText(o,o.c2l(l),!0).text,i.yLabel=KP.tickText(s,s.c2l(u),!0).text,i}});var op=ye((Inr,pve)=>{"use strict";var dU=xa(),nT=ao(),avt=ba();function ovt(e){var t=dU.select(e).selectAll("g.trace.scatter");t.style("opacity",function(r){return r[0].trace.opacity}),t.selectAll("g.points").each(function(r){var n=dU.select(this),i=r.trace||r[0].trace;vU(n,i,e)}),t.selectAll("g.text").each(function(r){var n=dU.select(this),i=r.trace||r[0].trace;pU(n,i,e)}),t.selectAll("g.trace path.js-line").call(nT.lineGroupStyle),t.selectAll("g.trace path.js-fill").call(nT.fillGroupStyle,e,!1),avt.getComponentMethod("errorbars","style")(t)}function vU(e,t,r){nT.pointStyle(e.selectAll("path.point"),t,r)}function pU(e,t,r){nT.textPointStyle(e.selectAll("text"),t,r)}function svt(e,t,r){var n=t[0].trace;n.selectedpoints?(nT.selectedPointStyle(r.selectAll("path.point"),n),nT.selectedTextStyle(r.selectAll("text"),n)):(vU(r,n,e),pU(r,n,e))}pve.exports={style:ovt,stylePoints:vU,styleText:pU,styleOnSelect:svt}});var oT=ye((Rnr,gve)=>{"use strict";var aT=va(),lvt=lu();gve.exports=function(t,r){var n,i;if(t.mode==="lines")return n=t.line.color,n&&aT.opacity(n)?n:t.fillcolor;if(t.mode==="none")return t.fill?t.fillcolor:"";var a=r.mcc||(t.marker||{}).color,o=r.mlcc||((t.marker||{}).line||{}).color;return i=a&&aT.opacity(a)?a:o&&aT.opacity(o)&&(r.mlw||((t.marker||{}).line||{}).width)?o:"",i?aT.opacity(i)<.3?aT.addOpacity(i,.3):i:(n=(t.line||{}).color,n&&aT.opacity(n)&&lvt.hasLines(t)&&t.line.width?n:t.fillcolor)}});var sT=ye((Dnr,yve)=>{"use strict";var $P=Mr(),mve=Nc(),uvt=ba(),cvt=oT(),gU=va(),fvt=$P.fillText;yve.exports=function(t,r,n,i){var a=t.cd,o=a[0].trace,s=t.xa,l=t.ya,u=s.c2p(r),c=l.c2p(n),f=[u,c],h=o.hoveron||"",d=o.mode.indexOf("markers")!==-1?3:.5,v=!!o.xperiodalignment,x=!!o.yperiodalignment;if(h.indexOf("points")!==-1){var b=function(G){if(v){var N=s.c2p(G.xStart),W=s.c2p(G.xEnd);return u>=Math.min(N,W)&&u<=Math.max(N,W)?0:1/0}var re=Math.max(3,G.mrc||0),ae=1-1/re,_e=Math.abs(s.c2p(G.x)-u);return _e=Math.min(N,W)&&c<=Math.max(N,W)?0:1/0}var re=Math.max(3,G.mrc||0),ae=1-1/re,_e=Math.abs(l.c2p(G.y)-c);return _eke!=me>=ke&&(Ae=Te[ie-1][0],ze=Te[ie][0],me-Ce&&(Ee=Ae+(ze-Ae)*(ke-Ce)/(me-Ce),re=Math.min(re,Ee),ae=Math.max(ae,Ee)));return re=Math.max(re,0),ae=Math.min(ae,s._length),{x0:re,x1:ae,y0:ke,y1:ke}}if(h.indexOf("fills")!==-1&&o._fillElement){var V=F(o._fillElement)&&!F(o._fillExclusionElement);if(V){var H=q(o._polygons);H===null&&(H={x0:f[0],x1:f[0],y0:f[1],y1:f[1]});var X=gU.defaultLine;return gU.opacity(o.fillcolor)?X=o.fillcolor:gU.opacity((o.line||{}).color)&&(X=o.line.color),$P.extendFlat(t,{distance:t.maxHoverDistance,x0:H.x0,x1:H.x1,y0:H.y0,y1:H.y1,color:X,hovertemplate:!1}),delete t.index,o.text&&!$P.isArrayOrTypedArray(o.text)?t.text=String(o.text):t.text=o.name,[t]}}}});var lT=ye((znr,xve)=>{"use strict";var _ve=lu();xve.exports=function(t,r){var n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].trace,l,u,c,f,h=!_ve.hasMarkers(s)&&!_ve.hasText(s);if(h)return[];if(r===!1)for(l=0;l{"use strict";bve.exports={xaxis:{valType:"subplotid",dflt:"x",editType:"calc+clearAxisTypes"},yaxis:{valType:"subplotid",dflt:"y",editType:"calc+clearAxisTypes"}}});var yU=ye((qnr,Sve)=>{"use strict";var XM=ba().traceIs,mU=L3();Sve.exports=function(t,r,n,i){n("autotypenumbers",i.autotypenumbersDflt);var a=n("type",(i.splomStash||{}).type);a==="-"&&(hvt(r,i.data),r.type==="-"?r.type="linear":t.type=r.type)};function hvt(e,t){if(e.type==="-"){var r=e._id,n=r.charAt(0),i;r.indexOf("scene")!==-1&&(r=n);var a=dvt(t,r,n);if(a){if(a.type==="histogram"&&n==={v:"y",h:"x"}[a.orientation||"v"]){e.type="linear";return}var o=n+"calendar",s=a[o],l={noMultiCategory:!XM(a,"cartesian")||XM(a,"noMultiCategory")};if(a.type==="box"&&a._hasPreCompStats&&n==={h:"x",v:"y"}[a.orientation||"v"]&&(l.noMultiCategory=!0),l.autotypenumbers=e.autotypenumbers,Ave(a,n)){var u=Tve(a),c=[];for(i=0;i0&&(i["_"+r+"axes"]||{})[t])return i;if((i[r+"axis"]||r)===t){if(Ave(i,r))return i;if((i[r]||[]).length||i[r+"0"])return i}}}function Tve(e){return{v:"x",h:"y"}[e.orientation||"v"]}function Ave(e,t){var r=Tve(e),n=XM(e,"box-violin"),i=XM(e._fullInput||{},"candlestick");return n&&!i&&t===r&&e[r]===void 0&&e[r+"0"]===void 0}});var QP=ye((Onr,Mve)=>{"use strict";var vvt=vv().isTypedArraySpec;function pvt(e,t){var r=t.dataAttr||e._id.charAt(0),n={},i,a,o;if(t.axData)i=t.axData;else for(i=[],a=0;a0||vvt(a),s;o&&(s="array");var l=n("categoryorder",s),u;l==="array"&&(u=n("categoryarray")),!o&&l==="array"&&(l=r.categoryorder="trace"),l==="trace"?r._initialCategories=[]:l==="array"?r._initialCategories=u.slice():(u=pvt(r,i).sort(),l==="category ascending"?r._initialCategories=u:l==="category descending"&&(r._initialCategories=u.reverse()))}}});var YM=ye((Bnr,kve)=>{"use strict";var Eve=id().mix,gvt=dh(),mvt=Mr();kve.exports=function(t,r,n,i){i=i||{};var a=i.dfltColor;function o(C,M){return mvt.coerce2(t,r,i.attributes,C,M)}var s=o("linecolor",a),l=o("linewidth"),u=n("showline",i.showLine||!!s||!!l);u||(delete r.linecolor,delete r.linewidth);var c=Eve(a,i.bgColor,i.blend||gvt.lightFraction).toRgbString(),f=o("gridcolor",c),h=o("gridwidth"),d=o("griddash"),v=n("showgrid",i.showGrid||!!f||!!h||!!d);if(v||(delete r.gridcolor,delete r.gridwidth,delete r.griddash),i.hasMinor){var x=Eve(r.gridcolor,i.bgColor,67).toRgbString(),b=o("minor.gridcolor",x),g=o("minor.gridwidth",r.gridwidth||1),E=o("minor.griddash",r.griddash||"solid"),k=n("minor.showgrid",!!b||!!g||!!E);k||(delete r.minor.gridcolor,delete r.minor.gridwidth,delete r.minor.griddash)}if(!i.noZeroLine){var A=o("zerolinecolor",a),L=o("zerolinewidth"),_=n("zeroline",i.showGrid||!!A||!!L);_||(delete r.zerolinecolor,delete r.zerolinewidth)}}});var JM=ye((Nnr,Dve)=>{"use strict";var Cve=uo(),yvt=ba(),KM=Mr(),_vt=Vs(),xvt=Zd(),_U=Cd(),Lve=xb(),Pve=T3(),bvt=e_(),wvt=t_(),Tvt=QP(),Avt=YM(),Svt=hB(),Ive=ym(),eI=ad().WEEKDAY_PATTERN,Mvt=ad().HOUR_PATTERN;Dve.exports=function(t,r,n,i,a){var o=i.letter,s=i.font||{},l=i.splomStash||{},u=n("visible",!i.visibleDflt),c=r._template||{},f=r.type||c.type||"-",h;if(f==="date"){var d=yvt.getComponentMethod("calendars","handleDefaults");d(t,r,"calendar",i.calendar),i.noTicklabelmode||(h=n("ticklabelmode"))}!i.noTicklabelindex&&(f==="date"||f==="linear")&&n("ticklabelindex");var v="";(!i.noTicklabelposition||f==="multicategory")&&(v=KM.coerce(t,r,{ticklabelposition:{valType:"enumerated",dflt:"outside",values:h==="period"?["outside","inside"]:o==="x"?["outside","inside","outside left","inside left","outside right","inside right"]:["outside","inside","outside top","inside top","outside bottom","inside bottom"]}},"ticklabelposition")),i.noTicklabeloverflow||n("ticklabeloverflow",v.indexOf("inside")!==-1?"hide past domain":f==="category"||f==="multicategory"?"allow":"hide past div"),Ive(r,a),Svt(t,r,n,i),Tvt(t,r,n,i),f!=="category"&&!i.noHover&&n("hoverformat");var x=n("color"),b=x!==_U.color.dflt?x:s.color,g=l.label||a._dfltTitle[o];if(wvt(t,r,n,f,i),!u)return r;n("title.text",g),KM.coerceFont(n,"title.font",s,{overrideDflt:{size:KM.bigFont(s.size),color:b}}),Lve(t,r,n,f);var E=i.hasMinor;if(E&&(_vt.newContainer(r,"minor"),Lve(t,r,n,f,{isMinor:!0})),bvt(t,r,n,f,i),Pve(t,r,n,i),E){var k=i.isMinor;i.isMinor=!0,Pve(t,r,n,i),i.isMinor=k}Avt(t,r,n,{dfltColor:x,bgColor:i.bgColor,showGrid:i.showGrid,hasMinor:E,attributes:_U}),E&&!r.minor.ticks&&!r.minor.showgrid&&delete r.minor,(r.showline||r.ticks)&&n("mirror");var A=f==="multicategory";if(!i.noTickson&&(f==="category"||A)&&(r.ticks||r.showgrid)){var L;A&&(L="boundaries");var _=n("tickson",L);_==="boundaries"&&delete r.ticklabelposition}if(A){var C=n("showdividers");C&&(n("dividercolor"),n("dividerwidth"))}if(f==="date")if(xvt(t,r,{name:"rangebreaks",inclusionAttr:"enabled",handleItemDefaults:Evt}),!r.rangebreaks.length)delete r.rangebreaks;else{for(var M=0;M=2){var o="",s,l;if(a.length===2){for(s=0;s<2;s++)if(l=Rve(a[s]),l){o=eI;break}}var u=n("pattern",o);if(u===eI)for(s=0;s<2;s++)l=Rve(a[s]),l&&(t.bounds[s]=a[s]=l-1);if(u)for(s=0;s<2;s++)switch(l=a[s],u){case eI:if(!Cve(l)){t.enabled=!1;return}if(l=+l,l!==Math.floor(l)||l<0||l>=7){t.enabled=!1;return}t.bounds[s]=a[s]=l;break;case Mvt:if(!Cve(l)){t.enabled=!1;return}if(l=+l,l<0||l>24){t.enabled=!1;return}t.bounds[s]=a[s]=l;break}if(r.autorange===!1){var c=r.range;if(c[0]c[1]){t.enabled=!1;return}}else if(a[0]>c[0]&&a[1]{"use strict";var Cvt=uo(),tI=Mr();zve.exports=function(t,r,n,i){var a=i.counterAxes||[],o=i.overlayableAxes||[],s=i.letter,l=i.grid,u=i.overlayingDomain,c,f,h,d,v,x;l&&(f=l._domains[s][l._axisMap[r._id]],c=l._anchors[r._id],f&&(h=l[s+"side"].split(" ")[0],d=l.domain[s][h==="right"||h==="top"?1:0])),f=f||[0,1],c=c||(Cvt(t.position)?"free":a[0]||"free"),h=h||(s==="x"?"bottom":"left"),d=d||0,v=0,x=!1;var b=tI.coerce(t,r,{anchor:{valType:"enumerated",values:["free"].concat(a),dflt:c}},"anchor"),g=tI.coerce(t,r,{side:{valType:"enumerated",values:s==="x"?["bottom","top"]:["left","right"],dflt:h}},"side");if(b==="free"){if(s==="y"){var E=n("autoshift");E&&(d=g==="left"?u[0]:u[1],x=r.automargin?r.automargin:!0,v=g==="left"?-3:3),n("shift",v)}n("position",d)}n("automargin",x);var k=!1;if(o.length&&(k=tI.coerce(t,r,{overlaying:{valType:"enumerated",values:[!1].concat(o),dflt:!1}},"overlaying")),!k){var A=n("domain",f);A[0]>A[1]-1/4096&&(r.domain=f),tI.noneOrAll(t.domain,r.domain,f),r.tickmode==="sync"&&(r.tickmode="auto")}return n("layer"),r}});var Gve=ye((Vnr,Hve)=>{"use strict";var jb=Mr(),Fve=va(),Lvt=rp().isUnifiedHover,Pvt=OB(),qve=Vs(),Ivt=s3(),Ove=Cd(),Rvt=yU(),Bve=JM(),Dvt=Bb(),Nve=rI(),bU=af(),Cm=bU.id2name,Uve=bU.name2id,zvt=ad().AX_ID_PATTERN,Vve=ba(),iI=Vve.traceIs,xU=Vve.getComponentMethod;function nI(e,t,r){Array.isArray(e[t])?e[t].push(r):e[t]=[r]}Hve.exports=function(t,r,n){var i=r.autotypenumbers,a={},o={},s={},l={},u={},c={},f={},h={},d={},v={},x,b;for(x=0;x{"use strict";var Fvt=xa(),jve=ba(),aI=Mr(),Qp=ao(),oI=Qa();Wve.exports=function(t,r,n,i){var a=t._fullLayout;if(r.length===0){oI.redrawComponents(t);return}function o(b){var g=b.xaxis,E=b.yaxis;a._defs.select("#"+b.clipId+"> rect").call(Qp.setTranslate,0,0).call(Qp.setScale,1,1),b.plot.call(Qp.setTranslate,g._offset,E._offset).call(Qp.setScale,1,1);var k=b.plot.selectAll(".scatterlayer .trace");k.selectAll(".point").call(Qp.setPointGroupScale,1,1),k.selectAll(".textpoint").call(Qp.setTextPointsScale,1,1),k.call(Qp.hideOutsideRangePoints,b)}function s(b,g){var E=b.plotinfo,k=E.xaxis,A=E.yaxis,L=k._length,_=A._length,C=!!b.xr1,M=!!b.yr1,p=[];if(C){var P=aI.simpleMap(b.xr0,k.r2l),T=aI.simpleMap(b.xr1,k.r2l),F=P[1]-P[0],q=T[1]-T[0];p[0]=(P[0]*(1-g)+g*T[0]-P[0])/(P[1]-P[0])*L,p[2]=L*(1-g+g*q/F),k.range[0]=k.l2r(P[0]*(1-g)+g*T[0]),k.range[1]=k.l2r(P[1]*(1-g)+g*T[1])}else p[0]=0,p[2]=L;if(M){var V=aI.simpleMap(b.yr0,A.r2l),H=aI.simpleMap(b.yr1,A.r2l),X=V[1]-V[0],G=H[1]-H[0];p[1]=(V[1]*(1-g)+g*H[1]-V[1])/(V[0]-V[1])*_,p[3]=_*(1-g+g*G/X),A.range[0]=k.l2r(V[0]*(1-g)+g*H[0]),A.range[1]=A.l2r(V[1]*(1-g)+g*H[1])}else p[1]=0,p[3]=_;oI.drawOne(t,k,{skipTitle:!0}),oI.drawOne(t,A,{skipTitle:!0}),oI.redrawComponents(t,[k._id,A._id]);var N=C?L/p[2]:1,W=M?_/p[3]:1,re=C?p[0]:0,ae=M?p[1]:0,_e=C?p[0]/p[2]*L:0,Me=M?p[1]/p[3]*_:0,ke=k._offset-_e,ge=A._offset-Me;E.clipRect.call(Qp.setTranslate,re,ae).call(Qp.setScale,1/N,1/W),E.plot.call(Qp.setTranslate,ke,ge).call(Qp.setScale,N,W),Qp.setPointGroupScale(E.zoomScalePts,1/N,1/W),Qp.setTextPointsScale(E.zoomScaleTxt,1/N,1/W)}var l;i&&(l=i());function u(){for(var b={},g=0;gn.duration?(u(),d=window.cancelAnimationFrame(x)):d=window.requestAnimationFrame(x)}return f=Date.now(),d=window.requestAnimationFrame(x),Promise.resolve()}});var Jf=ye(yv=>{"use strict";var lI=xa(),Xve=ba(),Wb=Mr(),qvt=Xu(),Ovt=ao(),Yve=kd().getModuleCalcData,g_=af(),zg=ad(),Bvt=Zp(),Fl=Wb.ensureSingle;function sI(e,t,r){return Wb.ensureSingle(e,t,r,function(n){n.datum(r)})}var Zb=zg.zindexSeparator;yv.name="cartesian";yv.attr=["xaxis","yaxis"];yv.idRoot=["x","y"];yv.idRegex=zg.idRegex;yv.attrRegex=zg.attrRegex;yv.attributes=wve();yv.layoutAttributes=Cd();yv.supplyLayoutDefaults=Gve();yv.transitionAxes=Zve();yv.finalizeSubplots=function(e,t){var r=t._subplots,n=r.xaxis,i=r.yaxis,a=r.cartesian,o=a,s={},l={},u,c,f;for(u=0;u0){var d=h.id;if(d.indexOf(Zb)!==-1)continue;d+=Zb+(u+1),h=Wb.extendFlat({},h,{id:d,plot:i._cartesianlayer.selectAll(".subplot").select("."+d)})}for(var v=[],x,b=0;b1&&(L+=Zb+A),k.push(s+L),o=0;o1,f=t.mainplotinfo;if(!t.mainplot||c)if(u)t.xlines=Fl(n,"path","xlines-above"),t.ylines=Fl(n,"path","ylines-above"),t.xaxislayer=Fl(n,"g","xaxislayer-above"),t.yaxislayer=Fl(n,"g","yaxislayer-above");else{if(!o){var h=Fl(n,"g","layer-subplot");t.shapelayer=Fl(h,"g","shapelayer"),t.imagelayer=Fl(h,"g","imagelayer"),f&&c?(t.minorGridlayer=f.minorGridlayer,t.gridlayer=f.gridlayer,t.zerolinelayer=f.zerolinelayer):(t.minorGridlayer=Fl(n,"g","minor-gridlayer"),t.gridlayer=Fl(n,"g","gridlayer"),t.zerolinelayer=Fl(n,"g","zerolinelayer"));var d=Fl(n,"g","layer-between");t.shapelayerBetween=Fl(d,"g","shapelayer"),t.imagelayerBetween=Fl(d,"g","imagelayer"),Fl(n,"path","xlines-below"),Fl(n,"path","ylines-below"),t.overlinesBelow=Fl(n,"g","overlines-below"),Fl(n,"g","xaxislayer-below"),Fl(n,"g","yaxislayer-below"),t.overaxesBelow=Fl(n,"g","overaxes-below")}t.overplot=Fl(n,"g","overplot"),t.plot=Fl(t.overplot,"g",i),o||(t.xlines=Fl(n,"path","xlines-above"),t.ylines=Fl(n,"path","ylines-above"),t.overlinesAbove=Fl(n,"g","overlines-above"),Fl(n,"g","xaxislayer-above"),Fl(n,"g","yaxislayer-above"),t.overaxesAbove=Fl(n,"g","overaxes-above"),t.xlines=n.select(".xlines-"+s),t.ylines=n.select(".ylines-"+l),t.xaxislayer=n.select(".xaxislayer-"+s),t.yaxislayer=n.select(".yaxislayer-"+l))}else{var v=f.plotgroup,x=i+"-x",b=i+"-y";t.minorGridlayer=f.minorGridlayer,t.gridlayer=f.gridlayer,t.zerolinelayer=f.zerolinelayer,Fl(f.overlinesBelow,"path",x),Fl(f.overlinesBelow,"path",b),Fl(f.overaxesBelow,"g",x),Fl(f.overaxesBelow,"g",b),t.plot=Fl(f.overplot,"g",i),Fl(f.overlinesAbove,"path",x),Fl(f.overlinesAbove,"path",b),Fl(f.overaxesAbove,"g",x),Fl(f.overaxesAbove,"g",b),t.xlines=v.select(".overlines-"+s).select("."+x),t.ylines=v.select(".overlines-"+l).select("."+b),t.xaxislayer=v.select(".overaxes-"+s).select("."+x),t.yaxislayer=v.select(".overaxes-"+l).select("."+b)}o||(u||(sI(t.minorGridlayer,"g",t.xaxis._id),sI(t.minorGridlayer,"g",t.yaxis._id),t.minorGridlayer.selectAll("g").map(function(g){return g[0]}).sort(g_.idSort),sI(t.gridlayer,"g",t.xaxis._id),sI(t.gridlayer,"g",t.yaxis._id),t.gridlayer.selectAll("g").map(function(g){return g[0]}).sort(g_.idSort)),t.xlines.style("fill","none").classed("crisp",!0),t.ylines.style("fill","none").classed("crisp",!0))}function $ve(e,t){if(e){var r={};e.each(function(l){var u=l[0],c=lI.select(this);c.remove(),Qve(u,t),r[u]=!0});for(var n in t._plots)for(var i=t._plots[n],a=i.overlays||[],o=0;o{"use strict";var uI=lu();epe.exports={hasLines:uI.hasLines,hasMarkers:uI.hasMarkers,hasText:uI.hasText,isBubble:uI.isBubble,attributes:Uc(),layoutAttributes:U6(),supplyDefaults:Ede(),crossTraceDefaults:$N(),supplyLayoutDefaults:Pde(),calc:q0().calc,crossTraceCalc:tve(),arraysToCalcdata:km(),plot:iT(),colorbar:Kd(),formatLabels:JP(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:sT(),selectPoints:lT(),animatable:!0,moduleType:"trace",name:"scatter",basePlotModule:Jf(),categories:["cartesian","svg","symbols","errorBarsOK","showLegend","scatter-like","zoomScale"],meta:{}}});var npe=ye((Wnr,ipe)=>{"use strict";var Uvt=xa(),Vvt=va(),rpe=MN(),wU=Mr(),Hvt=wU.strScale,Gvt=wU.strRotate,jvt=wU.strTranslate;ipe.exports=function(t,r,n){var i=t.node(),a=rpe[n.arrowhead||0],o=rpe[n.startarrowhead||0],s=(n.arrowwidth||1)*(n.arrowsize||1),l=(n.arrowwidth||1)*(n.startarrowsize||1),u=r.indexOf("start")>=0,c=r.indexOf("end")>=0,f=a.backoff*s+n.standoff,h=o.backoff*l+n.startstandoff,d,v,x,b;if(i.nodeName==="line"){d={x:+t.attr("x1"),y:+t.attr("y1")},v={x:+t.attr("x2"),y:+t.attr("y2")};var g=d.x-v.x,E=d.y-v.y;if(x=Math.atan2(E,g),b=x+Math.PI,f&&h&&f+h>Math.sqrt(g*g+E*E)){V();return}if(f){if(f*f>g*g+E*E){V();return}var k=f*Math.cos(x),A=f*Math.sin(x);v.x+=k,v.y+=A,t.attr({x2:v.x,y2:v.y})}if(h){if(h*h>g*g+E*E){V();return}var L=h*Math.cos(x),_=h*Math.sin(x);d.x-=L,d.y-=_,t.attr({x1:d.x,y1:d.y})}}else if(i.nodeName==="path"){var C=i.getTotalLength(),M="";if(C{"use strict";var ape=xa(),TU=ba(),Wvt=Xu(),y_=Mr(),AU=y_.strTranslate,QM=Qa(),Xb=va(),Py=ao(),ope=Nc(),SU=Ll(),MU=Tg(),$M=gv(),Zvt=Vs().arrayEditor,Xvt=npe();upe.exports={draw:Yvt,drawOne:spe,drawRaw:lpe};function Yvt(e){var t=e._fullLayout;t._infolayer.selectAll(".annotation").remove();for(var r=0;r2/3?Xe="right":Xe="center"),{center:0,middle:0,left:.5,bottom:-.5,right:-.5,top:.5}[Xe]}for(var Ce=!1,me=["x","y"],Re=0;Re1)&&(nt===Ge?(St=ct.r2fraction(t["a"+ce]),(St<0||St>1)&&(Ce=!0)):Ce=!0),xr=ct._offset+ct.r2p(t[ce]),xt=.5}else{var Et=Lt==="domain";ce==="x"?(Ke=t[ce],xr=Et?ct._offset+ct._length*Ke:xr=s.l+s.w*Ke):(Ke=1-t[ce],xr=Et?ct._offset+ct._length*Ke:xr=s.t+s.h*Ke),xt=t.showarrow?.5:Ke}if(t.showarrow){Yt.head=xr;var dt=t["a"+ce];if(bt=rt*ze(.5,t.xanchor)-ot*ze(.5,t.yanchor),nt===Ge){var Ht=QM.getRefType(nt);Ht==="domain"?(ce==="y"&&(dt=1-dt),Yt.tail=ct._offset+ct._length*dt):Ht==="paper"?ce==="y"?(dt=1-dt,Yt.tail=s.t+s.h*dt):Yt.tail=s.l+s.w*dt:Yt.tail=ct._offset+ct.r2p(dt),er=bt}else Yt.tail=xr+dt,er=bt+dt;Yt.text=Yt.tail+bt;var $t=o[ce==="x"?"width":"height"];if(Ge==="paper"&&(Yt.head=y_.constrain(Yt.head,1,$t-1)),nt==="pixel"){var fr=-Math.max(Yt.tail-3,Yt.text),_r=Math.min(Yt.tail+3,Yt.text)-$t;fr>0?(Yt.tail+=fr,Yt.text+=fr):_r>0&&(Yt.tail-=_r,Yt.text-=_r)}Yt.tail+=Ct,Yt.head+=Ct}else bt=Rt*ze(xt,kt),er=bt,Yt.text=xr+bt;Yt.text+=Ct,bt+=Ct,er+=Ct,t["_"+ce+"padplus"]=Rt/2+er,t["_"+ce+"padminus"]=Rt/2-er,t["_"+ce+"size"]=Rt,t["_"+ce+"shift"]=bt}if(Ce){C.remove();return}var Br=0,Or=0;if(t.align!=="left"&&(Br=(ie-ke)*(t.align==="center"?.5:1)),t.valign!=="top"&&(Or=(Te-ge)*(t.valign==="middle"?.5:1)),_e)ae.select("svg").attr({x:P+Br-1,y:P+Or}).call(Py.setClipUrl,F?x:null,e);else{var Nr=P+Or-Me.top,ut=P+Br-Me.left;X.call(SU.positionText,ut,Nr).call(Py.setClipUrl,F?x:null,e)}q.select("rect").call(Py.setRect,P,P,ie,Te),T.call(Py.setRect,M/2,M/2,Ee-M,Ae-M),C.call(Py.setTranslate,Math.round(b.x.text-Ee/2),Math.round(b.y.text-Ae/2)),k.attr({transform:"rotate("+g+","+b.x.text+","+b.y.text+")"});var Ne=function(Ve,Xe){E.selectAll(".annotation-arrow-g").remove();var ht=b.x.head,Le=b.y.head,xe=b.x.tail+Ve,Se=b.y.tail+Xe,lt=b.x.text+Ve,Gt=b.y.text+Xe,Vt=y_.rotationXYMatrix(g,lt,Gt),ar=y_.apply2DTransform(Vt),Qr=y_.apply2DTransform2(Vt),ai=+T.attr("width"),jr=+T.attr("height"),ri=lt-.5*ai,bi=ri+ai,nn=Gt-.5*jr,Wi=nn+jr,Ni=[[ri,nn,ri,Wi],[ri,Wi,bi,Wi],[bi,Wi,bi,nn],[bi,nn,ri,nn]].map(Qr);if(!Ni.reduce(function(Vr,gi){return Vr^!!y_.segmentsIntersect(ht,Le,ht+1e6,Le+1e6,gi[0],gi[1],gi[2],gi[3])},!1)){Ni.forEach(function(Vr){var gi=y_.segmentsIntersect(xe,Se,ht,Le,Vr[0],Vr[1],Vr[2],Vr[3]);gi&&(xe=gi.x,Se=gi.y)});var _n=t.arrowwidth,$i=t.arrowcolor,zn=t.arrowside,Wn=E.append("g").style({opacity:Xb.opacity($i)}).classed("annotation-arrow-g",!0),It=Wn.append("path").attr("d","M"+xe+","+Se+"L"+ht+","+Le).style("stroke-width",_n+"px").call(Xb.stroke,Xb.rgb($i));if(Xvt(It,zn,t),l.annotationPosition&&It.node().parentNode&&!n){var ft=ht,jt=Le;if(t.standoff){var Zt=Math.sqrt(Math.pow(ht-xe,2)+Math.pow(Le-Se,2));ft+=t.standoff*(xe-ht)/Zt,jt+=t.standoff*(Se-Le)/Zt}var yr=Wn.append("path").classed("annotation-arrow",!0).classed("anndrag",!0).classed("cursor-move",!0).attr({d:"M3,3H-3V-3H3ZM0,0L"+(xe-ft)+","+(Se-jt),transform:AU(ft,jt)}).style("stroke-width",_n+6+"px").call(Xb.stroke,"rgba(0,0,0,0)").call(Xb.fill,"rgba(0,0,0,0)"),Fr,Zr;$M.init({element:yr.node(),gd:e,prepFn:function(){var Vr=Py.getTranslate(C);Fr=Vr.x,Zr=Vr.y,i&&i.autorange&&h(i._name+".autorange",!0),a&&a.autorange&&h(a._name+".autorange",!0)},moveFn:function(Vr,gi){var Si=ar(Fr,Zr),Mi=Si[0]+Vr,Pi=Si[1]+gi;C.call(Py.setTranslate,Mi,Pi),d("x",m_(i,Vr,"x",s,t)),d("y",m_(a,gi,"y",s,t)),t.axref===t.xref&&d("ax",m_(i,Vr,"ax",s,t)),t.ayref===t.yref&&d("ay",m_(a,gi,"ay",s,t)),Wn.attr("transform",AU(Vr,gi)),k.attr({transform:"rotate("+g+","+Mi+","+Pi+")"})},doneFn:function(){TU.call("_guiRelayout",e,v());var Vr=document.querySelector(".js-notes-box-panel");Vr&&Vr.redraw(Vr.selectedObj)}})}}};if(t.showarrow&&Ne(0,0),A){var Ye;$M.init({element:C.node(),gd:e,prepFn:function(){Ye=k.attr("transform")},moveFn:function(Ve,Xe){var ht="pointer";if(t.showarrow)t.axref===t.xref?d("ax",m_(i,Ve,"ax",s,t)):d("ax",t.ax+Ve),t.ayref===t.yref?d("ay",m_(a,Xe,"ay",s.w,t)):d("ay",t.ay+Xe),Ne(Ve,Xe);else{if(n)return;var Le,xe;if(i)Le=m_(i,Ve,"x",s,t);else{var Se=t._xsize/s.w,lt=t.x+(t._xshift-t.xshift)/s.w-Se/2;Le=$M.align(lt+Ve/s.w,Se,0,1,t.xanchor)}if(a)xe=m_(a,Xe,"y",s,t);else{var Gt=t._ysize/s.h,Vt=t.y-(t._yshift+t.yshift)/s.h-Gt/2;xe=$M.align(Vt-Xe/s.h,Gt,0,1,t.yanchor)}d("x",Le),d("y",xe),(!i||!a)&&(ht=$M.getCursor(i?.5:Le,a?.5:xe,t.xanchor,t.yanchor))}k.attr({transform:AU(Ve,Xe)+Ye}),MU(C,ht)},clickFn:function(Ve,Xe){t.captureevents&&e.emit("plotly_clickannotation",_(Xe))},doneFn:function(){MU(C),TU.call("_guiRelayout",e,v());var Ve=document.querySelector(".js-notes-box-panel");Ve&&Ve.redraw(Ve.selectedObj)}})}}l.annotationText?X.call(SU.makeEditable,{delegate:C,gd:e}).call(G).on("edit",function(W){t.text=W,this.call(G),d("text",W),i&&i.autorange&&h(i._name+".autorange",!0),a&&a.autorange&&h(a._name+".autorange",!0),TU.call("_guiRelayout",e,v())}):X.call(G)}});var ppe=ye((Xnr,vpe)=>{"use strict";var cpe=Mr(),Kvt=ba(),fpe=Vs().arrayEditor;vpe.exports={hasClickToShow:Jvt,onClick:$vt};function Jvt(e,t){var r=dpe(e,t);return r.on.length>0||r.explicitOff.length>0}function $vt(e,t){var r=dpe(e,t),n=r.on,i=r.off.concat(r.explicitOff),a={},o=e._fullLayout.annotations,s,l;if(n.length||i.length){for(s=0;s{"use strict";var EU=Mr(),uT=va();gpe.exports=function(t,r,n,i){i("opacity");var a=i("bgcolor"),o=i("bordercolor"),s=uT.opacity(o);i("borderpad");var l=i("borderwidth"),u=i("showarrow");i("text",u?" ":n._dfltTitle.annotation),i("textangle"),EU.coerceFont(i,"font",n.font),i("width"),i("align");var c=i("height");if(c&&i("valign"),u){var f=i("arrowside"),h,d;f.indexOf("end")!==-1&&(h=i("arrowhead"),d=i("arrowsize")),f.indexOf("start")!==-1&&(i("startarrowhead",h),i("startarrowsize",d)),i("arrowcolor",s?r.bordercolor:uT.defaultLine),i("arrowwidth",(s&&l||1)*2),i("standoff"),i("startstandoff")}var v=i("hovertext"),x=n.hoverlabel||{};if(v){var b=i("hoverlabel.bgcolor",x.bgcolor||(uT.opacity(a)?uT.rgb(a):uT.defaultLine)),g=i("hoverlabel.bordercolor",x.bordercolor||uT.contrast(b)),E=EU.extendFlat({},x.font);E.color||(E.color=g),EU.coerceFont(i,"hoverlabel.font",E)}i("captureevents",!!v)}});var ype=ye((Knr,mpe)=>{"use strict";var CU=Mr(),Yb=Qa(),Qvt=Zd(),ept=kU(),tpt=Nb();mpe.exports=function(t,r){Qvt(t,r,{name:"annotations",handleItemDefaults:rpt})};function rpt(e,t,r){function n(k,A){return CU.coerce(e,t,tpt,k,A)}var i=n("visible"),a=n("clicktoshow");if(i||a){ept(e,t,r,n);for(var o=t.showarrow,s=["x","y"],l=[-10,-30],u={_fullLayout:r},c=0;c<2;c++){var f=s[c],h=Yb.coerceRef(e,t,u,f,"","paper");if(h!=="paper"){var d=Yb.getFromId(u,h);d._annIndices.push(t._index)}if(Yb.coercePosition(t,u,n,h,f,.5),o){var v="a"+f,x=Yb.coerceRef(e,t,u,v,"pixel",["pixel","paper"]);x!=="pixel"&&x!==h&&(x=t[v]="pixel");var b=x==="pixel"?l[c]:.4;Yb.coercePosition(t,u,n,x,v,b)}n(f+"anchor"),n(f+"shift")}if(CU.noneOrAll(e,t,["x","y"]),o&&CU.noneOrAll(e,t,["ax","ay"]),a){var g=n("xclick"),E=n("yclick");t._xclick=g===void 0?t.x:Yb.cleanPosition(g,u,t.xref),t._yclick=E===void 0?t.y:Yb.cleanPosition(E,u,t.yref)}}}});var bpe=ye((Jnr,xpe)=>{"use strict";var LU=Mr(),Kb=Qa(),ipt=cI().draw;xpe.exports=function(t){var r=t._fullLayout,n=LU.filterVisible(r.annotations);if(n.length&&t._fullData.length)return LU.syncOrAsync([ipt,npt],t)};function npt(e){var t=e._fullLayout;LU.filterVisible(t.annotations).forEach(function(r){var n=Kb.getFromId(e,r.xref),i=Kb.getFromId(e,r.yref),a=Kb.getRefType(r.xref),o=Kb.getRefType(r.yref);r._extremes={},a==="range"&&_pe(r,n),o==="range"&&_pe(r,i)})}function _pe(e,t){var r=t._id,n=r.charAt(0),i=e[n],a=e["a"+n],o=e[n+"ref"],s=e["a"+n+"ref"],l=e["_"+n+"padplus"],u=e["_"+n+"padminus"],c={x:1,y:-1}[n]*e[n+"shift"],f=3*e.arrowsize*e.arrowwidth||0,h=f+c,d=f-c,v=3*e.startarrowsize*e.arrowwidth||0,x=v+c,b=v-c,g;if(s===o){var E=Kb.findExtremes(t,[t.r2c(i)],{ppadplus:h,ppadminus:d}),k=Kb.findExtremes(t,[t.r2c(a)],{ppadplus:Math.max(l,x),ppadminus:Math.max(u,b)});g={min:[E.min[0],k.min[0]],max:[E.max[0],k.max[0]]}}else x=a?x+a:x,b=a?b-a:b,g=Kb.findExtremes(t,[t.r2c(i)],{ppadplus:Math.max(l,h,x),ppadminus:Math.max(u,d,b)});e._extremes[r]=g}});var Tpe=ye(($nr,wpe)=>{"use strict";var apt=uo(),opt=l6();wpe.exports=function(t,r,n,i){r=r||{};var a=n==="log"&&r.type==="linear",o=n==="linear"&&r.type==="log";if(!(a||o))return;var s=t._fullLayout.annotations,l=r._id.charAt(0),u,c;function f(d){var v=u[d],x=null;a?x=opt(v,r.range):x=Math.pow(10,v),apt(x)||(x=null),i(c+d,x)}for(var h=0;h{"use strict";var PU=cI(),Ape=ppe();Spe.exports={moduleType:"component",name:"annotations",layoutAttributes:Nb(),supplyLayoutDefaults:ype(),includeBasePlot:IM()("annotations"),calcAutorange:bpe(),draw:PU.draw,drawOne:PU.drawOne,drawRaw:PU.drawRaw,hasClickToShow:Ape.hasClickToShow,onClick:Ape.onClick,convertCoords:Tpe()}});var fI=ye((ear,Epe)=>{"use strict";var Ku=Nb(),spt=Bu().overrideAll,lpt=Vs().templatedArray;Epe.exports=spt(lpt("annotation",{visible:Ku.visible,x:{valType:"any"},y:{valType:"any"},z:{valType:"any"},ax:{valType:"number"},ay:{valType:"number"},xanchor:Ku.xanchor,xshift:Ku.xshift,yanchor:Ku.yanchor,yshift:Ku.yshift,text:Ku.text,textangle:Ku.textangle,font:Ku.font,width:Ku.width,height:Ku.height,opacity:Ku.opacity,align:Ku.align,valign:Ku.valign,bgcolor:Ku.bgcolor,bordercolor:Ku.bordercolor,borderpad:Ku.borderpad,borderwidth:Ku.borderwidth,showarrow:Ku.showarrow,arrowcolor:Ku.arrowcolor,arrowhead:Ku.arrowhead,startarrowhead:Ku.startarrowhead,arrowside:Ku.arrowside,arrowsize:Ku.arrowsize,startarrowsize:Ku.startarrowsize,arrowwidth:Ku.arrowwidth,standoff:Ku.standoff,startstandoff:Ku.startstandoff,hovertext:Ku.hovertext,hoverlabel:Ku.hoverlabel,captureevents:Ku.captureevents}),"calc","from-root")});var Cpe=ye((tar,kpe)=>{"use strict";var IU=Mr(),upt=Qa(),cpt=Zd(),fpt=kU(),hpt=fI();kpe.exports=function(t,r,n){cpt(t,r,{name:"annotations",handleItemDefaults:dpt,fullLayout:n.fullLayout})};function dpt(e,t,r,n){function i(s,l){return IU.coerce(e,t,hpt,s,l)}function a(s){var l=s+"axis",u={_fullLayout:{}};return u._fullLayout[l]=r[l],upt.coercePosition(t,u,i,s,s,.5)}var o=i("visible");o&&(fpt(e,t,n.fullLayout,i),a("x"),a("y"),a("z"),IU.noneOrAll(e,t,["x","y","z"]),t.xref="x",t.yref="y",t.zref="z",i("xanchor"),i("yanchor"),i("xshift"),i("yshift"),t.showarrow&&(t.axref="pixel",t.ayref="pixel",i("ax",-10),i("ay",-30),IU.noneOrAll(e,t,["ax","ay"])))}});var Rpe=ye((rar,Ipe)=>{"use strict";var Lpe=Mr(),Ppe=Qa();Ipe.exports=function(t){for(var r=t.fullSceneLayout,n=r.annotations,i=0;i{"use strict";function RU(e,t){var r=[0,0,0,0],n,i;for(n=0;n<4;++n)for(i=0;i<4;++i)r[i]+=e[4*n+i]*t[n];return r}function ppt(e,t){var r=RU(e.projection,RU(e.view,RU(e.model,[t[0],t[1],t[2],1])));return r}Dpe.exports=ppt});var Fpe=ye((nar,zpe)=>{"use strict";var gpt=cI().drawRaw,mpt=DU(),ypt=["x","y","z"];zpe.exports=function(t){for(var r=t.fullSceneLayout,n=t.dataScale,i=r.annotations,a=0;a1){s=!0;break}}s?t.fullLayout._infolayer.select(".annotation-"+t.id+'[data-index="'+a+'"]').remove():(o._pdata=mpt(t.glplot.cameraParams,[r.xaxis.r2l(o.x)*n[0],r.yaxis.r2l(o.y)*n[1],r.zaxis.r2l(o.z)*n[2]]),gpt(t.graphDiv,o,a,t.id,o._xa,o._ya))}}});var Bpe=ye((aar,Ope)=>{"use strict";var _pt=ba(),qpe=Mr();Ope.exports={moduleType:"component",name:"annotations3d",schema:{subplots:{scene:{annotations:fI()}}},layoutAttributes:fI(),handleDefaults:Cpe(),includeBasePlot:xpt,convert:Rpe(),draw:Fpe()};function xpt(e,t){var r=_pt.subplotsRegistry.gl3d;if(r)for(var n=r.attrRegex,i=Object.keys(e),a=0;a{"use strict";var Npe=Nb(),Upe=Su(),Vpe=Uc().line,bpt=Ed().dash,Fg=no().extendFlat,wpt=Vs().templatedArray,oar=PM(),cT=vl(),Tpt=Wo().shapeTexttemplateAttrs,Apt=x6();Hpe.exports=wpt("shape",{visible:Fg({},cT.visible,{editType:"calc+arraydraw"}),showlegend:{valType:"boolean",dflt:!1,editType:"calc+arraydraw"},legend:Fg({},cT.legend,{editType:"calc+arraydraw"}),legendgroup:Fg({},cT.legendgroup,{editType:"calc+arraydraw"}),legendgrouptitle:{text:Fg({},cT.legendgrouptitle.text,{editType:"calc+arraydraw"}),font:Upe({editType:"calc+arraydraw"}),editType:"calc+arraydraw"},legendrank:Fg({},cT.legendrank,{editType:"calc+arraydraw"}),legendwidth:Fg({},cT.legendwidth,{editType:"calc+arraydraw"}),type:{valType:"enumerated",values:["circle","rect","path","line"],editType:"calc+arraydraw"},layer:{valType:"enumerated",values:["below","above","between"],dflt:"above",editType:"arraydraw"},xref:Fg({},Npe.xref,{}),xsizemode:{valType:"enumerated",values:["scaled","pixel"],dflt:"scaled",editType:"calc+arraydraw"},xanchor:{valType:"any",editType:"calc+arraydraw"},x0:{valType:"any",editType:"calc+arraydraw"},x1:{valType:"any",editType:"calc+arraydraw"},x0shift:{valType:"number",dflt:0,min:-1,max:1,editType:"calc"},x1shift:{valType:"number",dflt:0,min:-1,max:1,editType:"calc"},yref:Fg({},Npe.yref,{}),ysizemode:{valType:"enumerated",values:["scaled","pixel"],dflt:"scaled",editType:"calc+arraydraw"},yanchor:{valType:"any",editType:"calc+arraydraw"},y0:{valType:"any",editType:"calc+arraydraw"},y1:{valType:"any",editType:"calc+arraydraw"},y0shift:{valType:"number",dflt:0,min:-1,max:1,editType:"calc"},y1shift:{valType:"number",dflt:0,min:-1,max:1,editType:"calc"},path:{valType:"string",editType:"calc+arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},line:{color:Fg({},Vpe.color,{editType:"arraydraw"}),width:Fg({},Vpe.width,{editType:"calc+arraydraw"}),dash:Fg({},bpt,{editType:"arraydraw"}),editType:"calc+arraydraw"},fillcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"arraydraw"},fillrule:{valType:"enumerated",values:["evenodd","nonzero"],dflt:"evenodd",editType:"arraydraw"},editable:{valType:"boolean",dflt:!1,editType:"calc+arraydraw"},label:{text:{valType:"string",dflt:"",editType:"arraydraw"},texttemplate:Tpt({},{keys:Object.keys(Apt)}),font:Upe({editType:"calc+arraydraw",colorEditType:"arraydraw"}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right","start","middle","end"],editType:"arraydraw"},textangle:{valType:"angle",dflt:"auto",editType:"calc+arraydraw"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"auto",editType:"calc+arraydraw"},yanchor:{valType:"enumerated",values:["top","middle","bottom"],editType:"calc+arraydraw"},padding:{valType:"number",dflt:3,min:0,editType:"arraydraw"},editType:"arraydraw"},editType:"arraydraw"})});var Wpe=ye((lar,jpe)=>{"use strict";var e4=Mr(),fT=Qa(),Spt=Zd(),Mpt=zU(),Gpe=f_();jpe.exports=function(t,r){Spt(t,r,{name:"shapes",handleItemDefaults:kpt})};function Ept(e,t){return e?"bottom":t.indexOf("top")!==-1?"top":t.indexOf("bottom")!==-1?"bottom":"middle"}function kpt(e,t,r){function n(W,re){return e4.coerce(e,t,Mpt,W,re)}t._isShape=!0;var i=n("visible");if(i){var a=n("showlegend");a&&(n("legend"),n("legendwidth"),n("legendgroup"),n("legendgrouptitle.text"),e4.coerceFont(n,"legendgrouptitle.font"),n("legendrank"));var o=n("path"),s=o?"path":"rect",l=n("type",s),u=l!=="path";u&&delete t.path,n("editable"),n("layer"),n("opacity"),n("fillcolor"),n("fillrule");var c=n("line.width");c&&(n("line.color"),n("line.dash"));for(var f=n("xsizemode"),h=n("ysizemode"),d=["x","y"],v=0;v<2;v++){var x=d[v],b=x+"anchor",g=x==="x"?f:h,E={_fullLayout:r},k,A,L,_=fT.coerceRef(e,t,E,x,void 0,"paper"),C=fT.getRefType(_);if(C==="range"?(k=fT.getFromId(E,_),k._shapeIndices.push(t._index),L=Gpe.rangeToShapePosition(k),A=Gpe.shapePositionToRange(k),(k.type==="category"||k.type==="multicategory")&&(n(x+"0shift"),n(x+"1shift"))):A=L=e4.identity,u){var M=.25,p=.75,P=x+"0",T=x+"1",F=e[P],q=e[T];e[P]=A(e[P],!0),e[T]=A(e[T],!0),g==="pixel"?(n(P,0),n(T,10)):(fT.coercePosition(t,E,n,_,P,M),fT.coercePosition(t,E,n,_,T,p)),t[P]=L(t[P]),t[T]=L(t[T]),e[P]=F,e[T]=q}if(g==="pixel"){var V=e[b];e[b]=A(e[b],!0),fT.coercePosition(t,E,n,_,b,.25),t[b]=L(t[b]),e[b]=V}}u&&e4.noneOrAll(e,t,["x0","x1","y0","y1"]);var H=l==="line",X,G;if(u&&(X=n("label.texttemplate")),X||(G=n("label.text")),G||X){n("label.textangle");var N=n("label.textposition",H?"middle":"middle center");n("label.xanchor"),n("label.yanchor",Ept(H,N)),n("label.padding"),e4.coerceFont(n,"label.font",r.font)}}}});var Ype=ye((uar,Xpe)=>{"use strict";var Cpt=va(),Zpe=Mr();function Lpt(e,t){return e?"bottom":t.indexOf("top")!==-1?"top":t.indexOf("bottom")!==-1?"bottom":"middle"}Xpe.exports=function(t,r,n){n("newshape.visible"),n("newshape.name"),n("newshape.showlegend"),n("newshape.legend"),n("newshape.legendwidth"),n("newshape.legendgroup"),n("newshape.legendgrouptitle.text"),Zpe.coerceFont(n,"newshape.legendgrouptitle.font"),n("newshape.legendrank"),n("newshape.drawdirection"),n("newshape.layer"),n("newshape.fillcolor"),n("newshape.fillrule"),n("newshape.opacity");var i=n("newshape.line.width");if(i){var a=(t||{}).plot_bgcolor||"#FFF";n("newshape.line.color",Cpt.contrast(a)),n("newshape.line.dash")}var o=t.dragmode==="drawline",s=n("newshape.label.text"),l=n("newshape.label.texttemplate");if(s||l){n("newshape.label.textangle");var u=n("newshape.label.textposition",o?"middle":"middle center");n("newshape.label.xanchor"),n("newshape.label.yanchor",Lpt(o,u)),n("newshape.label.padding"),Zpe.coerceFont(n,"newshape.label.font",r.font)}n("activeshape.fillcolor"),n("activeshape.opacity")}});var e0e=ye((car,Qpe)=>{"use strict";var FU=Mr(),hT=Qa(),dT=cM(),Jpe=f_();Qpe.exports=function(t){var r=t._fullLayout,n=FU.filterVisible(r.shapes);if(!(!n.length||!t._fullData.length))for(var i=0;i0?u+o:o;return{ppad:o,ppadplus:s?f:h,ppadminus:s?h:f}}else return{ppad:o}}function Kpe(e,t,r){var n=e._id.charAt(0)==="x"?"x":"y",i=e.type==="category"||e.type==="multicategory",a,o,s=0,l=0,u=i?e.r2c:e.d2c,c=t[n+"sizemode"]==="scaled";if(c?(a=t[n+"0"],o=t[n+"1"],i&&(s=t[n+"0shift"],l=t[n+"1shift"])):(a=t[n+"anchor"],o=t[n+"anchor"]),a!==void 0)return[u(a)+s,u(o)+l];if(t.path){var f=1/0,h=-1/0,d=t.path.match(dT.segmentRE),v,x,b,g,E;for(e.type==="date"&&(u=Jpe.decodeDate(u)),v=0;vh&&(h=E)));if(h>=f)return[f,h]}}});var i0e=ye((far,r0e)=>{"use strict";var t0e=tP();r0e.exports={moduleType:"component",name:"shapes",layoutAttributes:zU(),supplyLayoutDefaults:Wpe(),supplyDrawNewShapeDefaults:Ype(),includeBasePlot:IM()("shapes"),calcAutorange:e0e(),draw:t0e.draw,drawOne:t0e.drawOne}});var qU=ye((dar,a0e)=>{"use strict";var n0e=ad(),Rpt=Vs().templatedArray,har=PM();a0e.exports=Rpt("image",{visible:{valType:"boolean",dflt:!0,editType:"arraydraw"},source:{valType:"string",editType:"arraydraw"},layer:{valType:"enumerated",values:["below","above"],dflt:"above",editType:"arraydraw"},sizex:{valType:"number",dflt:0,editType:"arraydraw"},sizey:{valType:"number",dflt:0,editType:"arraydraw"},sizing:{valType:"enumerated",values:["fill","contain","stretch"],dflt:"contain",editType:"arraydraw"},opacity:{valType:"number",min:0,max:1,dflt:1,editType:"arraydraw"},x:{valType:"any",dflt:0,editType:"arraydraw"},y:{valType:"any",dflt:0,editType:"arraydraw"},xanchor:{valType:"enumerated",values:["left","center","right"],dflt:"left",editType:"arraydraw"},yanchor:{valType:"enumerated",values:["top","middle","bottom"],dflt:"top",editType:"arraydraw"},xref:{valType:"enumerated",values:["paper",n0e.idRegex.x.toString()],dflt:"paper",editType:"arraydraw"},yref:{valType:"enumerated",values:["paper",n0e.idRegex.y.toString()],dflt:"paper",editType:"arraydraw"},editType:"arraydraw"})});var s0e=ye((par,o0e)=>{"use strict";var Dpt=Mr(),OU=Qa(),zpt=Zd(),Fpt=qU(),qpt="images";o0e.exports=function(t,r){var n={name:qpt,handleItemDefaults:Opt};zpt(t,r,n)};function Opt(e,t,r){function n(h,d){return Dpt.coerce(e,t,Fpt,h,d)}var i=n("source"),a=n("visible",!!i);if(!a)return t;n("layer"),n("xanchor"),n("yanchor"),n("sizex"),n("sizey"),n("sizing"),n("opacity");for(var o={_fullLayout:r},s=["x","y"],l=0;l<2;l++){var u=s[l],c=OU.coerceRef(e,t,o,u,"paper",void 0);if(c!=="paper"){var f=OU.getFromId(o,c);f._imgIndices.push(t._index)}OU.coercePosition(t,o,n,c,u,0)}return t}});var f0e=ye((gar,c0e)=>{"use strict";var l0e=xa(),Bpt=ao(),vT=Qa(),u0e=af(),Npt=Zp();c0e.exports=function(t){var r=t._fullLayout,n=[],i={},a=[],o,s;for(s=0;s{"use strict";var h0e=uo(),Upt=l6();d0e.exports=function(t,r,n,i){r=r||{};var a=n==="log"&&r.type==="linear",o=n==="linear"&&r.type==="log";if(a||o){for(var s=t._fullLayout.images,l=r._id.charAt(0),u,c,f=0;f{"use strict";p0e.exports={moduleType:"component",name:"images",layoutAttributes:qU(),supplyLayoutDefaults:s0e(),includeBasePlot:IM()("images"),draw:f0e(),convertCoords:v0e()}});var hI=ye((_ar,m0e)=>{"use strict";m0e.exports={name:"updatemenus",containerClassName:"updatemenu-container",headerGroupClassName:"updatemenu-header-group",headerClassName:"updatemenu-header",headerArrowClassName:"updatemenu-header-arrow",dropdownButtonGroupClassName:"updatemenu-dropdown-button-group",dropdownButtonClassName:"updatemenu-dropdown-button",buttonClassName:"updatemenu-button",itemRectClassName:"updatemenu-item-rect",itemTextClassName:"updatemenu-item-text",menuIndexAttrName:"updatemenu-active-index",autoMarginIdRoot:"updatemenu-",blankHeaderOpts:{label:" "},minWidth:30,minHeight:30,textPadX:24,arrowPadX:16,rx:2,ry:2,textOffsetX:12,textOffsetY:3,arrowOffsetX:4,gapButtonHeader:5,gapButton:2,activeColor:"#F4FAFF",hoverColor:"#F4FAFF",arrowSymbol:{left:"\u25C4",right:"\u25BA",up:"\u25B2",down:"\u25BC"}}});var BU=ye((xar,_0e)=>{"use strict";var Vpt=Su(),Hpt=dh(),Gpt=no().extendFlat,jpt=Bu().overrideAll,Wpt=b6(),y0e=Vs().templatedArray,Zpt=y0e("button",{visible:{valType:"boolean"},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},args2:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string",dflt:""},execute:{valType:"boolean",dflt:!0}});_0e.exports=jpt(y0e("updatemenu",{_arrayAttrRegexps:[/^updatemenus\[(0|[1-9][0-9]+)\]\.buttons/],visible:{valType:"boolean"},type:{valType:"enumerated",values:["dropdown","buttons"],dflt:"dropdown"},direction:{valType:"enumerated",values:["left","right","up","down"],dflt:"down"},active:{valType:"integer",min:-1,dflt:0},showactive:{valType:"boolean",dflt:!0},buttons:Zpt,x:{valType:"number",min:-2,max:3,dflt:-.05},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"right"},y:{valType:"number",min:-2,max:3,dflt:1},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},pad:Gpt(Wpt({editType:"arraydraw"}),{}),font:Vpt({}),bgcolor:{valType:"color"},bordercolor:{valType:"color",dflt:Hpt.borderLine},borderwidth:{valType:"number",min:0,dflt:1,editType:"arraydraw"}}),"arraydraw","from-root")});var T0e=ye((bar,w0e)=>{"use strict";var dI=Mr(),x0e=Zd(),b0e=BU(),Xpt=hI(),Ypt=Xpt.name,Kpt=b0e.buttons;w0e.exports=function(t,r){var n={name:Ypt,handleItemDefaults:Jpt};x0e(t,r,n)};function Jpt(e,t,r){function n(o,s){return dI.coerce(e,t,b0e,o,s)}var i=x0e(e,t,{name:"buttons",handleItemDefaults:$pt}),a=n("visible",i.length>0);a&&(n("active"),n("direction"),n("type"),n("showactive"),n("x"),n("y"),dI.noneOrAll(e,t,["x","y"]),n("xanchor"),n("yanchor"),n("pad.t"),n("pad.r"),n("pad.b"),n("pad.l"),dI.coerceFont(n,"font",r.font),n("bgcolor",r.paper_bgcolor),n("bordercolor"),n("borderwidth"))}function $pt(e,t){function r(i,a){return dI.coerce(e,t,Kpt,i,a)}var n=r("visible",e.method==="skip"||Array.isArray(e.args));n&&(r("method"),r("args"),r("args2"),r("label"),r("execute"))}});var M0e=ye((war,S0e)=>{"use strict";S0e.exports=of;var qg=xa(),A0e=va(),pT=ao(),vI=Mr();function of(e,t,r){this.gd=e,this.container=t,this.id=r,this.position=null,this.translateX=null,this.translateY=null,this.hbar=null,this.vbar=null,this.bg=this.container.selectAll("rect.scrollbox-bg").data([0]),this.bg.exit().on(".drag",null).on("wheel",null).remove(),this.bg.enter().append("rect").classed("scrollbox-bg",!0).style("pointer-events","all").attr({opacity:0,x:0,y:0,width:0,height:0})}of.barWidth=2;of.barLength=20;of.barRadius=2;of.barPad=1;of.barColor="#808BA4";of.prototype.enable=function(t,r,n){var i=this.gd._fullLayout,a=i.width,o=i.height;this.position=t;var s=this.position.l,l=this.position.w,u=this.position.t,c=this.position.h,f=this.position.direction,h=f==="down",d=f==="left",v=f==="right",x=f==="up",b=l,g=c,E,k,A,L;!h&&!d&&!v&&!x&&(this.position.direction="down",h=!0);var _=h||x;_?(E=s,k=E+b,h?(A=u,L=Math.min(A+g,o),g=L-A):(L=u+g,A=Math.max(L-g,0),g=L-A)):(A=u,L=A+g,d?(k=s+b,E=Math.max(k-b,0),b=k-E):(E=s,k=Math.min(E+b,a),b=k-E)),this._box={l:E,t:A,w:b,h:g};var C=l>b,M=of.barLength+2*of.barPad,p=of.barWidth+2*of.barPad,P=s,T=u+c;T+p>o&&(T=o-p);var F=this.container.selectAll("rect.scrollbar-horizontal").data(C?[0]:[]);F.exit().on(".drag",null).remove(),F.enter().append("rect").classed("scrollbar-horizontal",!0).call(A0e.fill,of.barColor),C?(this.hbar=F.attr({rx:of.barRadius,ry:of.barRadius,x:P,y:T,width:M,height:p}),this._hbarXMin=P+M/2,this._hbarTranslateMax=b-M):(delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax);var q=c>g,V=of.barWidth+2*of.barPad,H=of.barLength+2*of.barPad,X=s+l,G=u;X+V>a&&(X=a-V);var N=this.container.selectAll("rect.scrollbar-vertical").data(q?[0]:[]);N.exit().on(".drag",null).remove(),N.enter().append("rect").classed("scrollbar-vertical",!0).call(A0e.fill,of.barColor),q?(this.vbar=N.attr({rx:of.barRadius,ry:of.barRadius,x:X,y:G,width:V,height:H}),this._vbarYMin=G+H/2,this._vbarTranslateMax=g-H):(delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax);var W=this.id,re=E-.5,ae=q?k+V+.5:k+.5,_e=A-.5,Me=C?L+p+.5:L+.5,ke=i._topdefs.selectAll("#"+W).data(C||q?[0]:[]);if(ke.exit().remove(),ke.enter().append("clipPath").attr("id",W).append("rect"),C||q?(this._clipRect=ke.select("rect").attr({x:Math.floor(re),y:Math.floor(_e),width:Math.ceil(ae)-Math.floor(re),height:Math.ceil(Me)-Math.floor(_e)}),this.container.call(pT.setClipUrl,W,this.gd),this.bg.attr({x:s,y:u,width:l,height:c})):(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(pT.setClipUrl,null),delete this._clipRect),C||q){var ge=qg.behavior.drag().on("dragstart",function(){qg.event.sourceEvent.preventDefault()}).on("drag",this._onBoxDrag.bind(this));this.container.on("wheel",null).on("wheel",this._onBoxWheel.bind(this)).on(".drag",null).call(ge);var ie=qg.behavior.drag().on("dragstart",function(){qg.event.sourceEvent.preventDefault(),qg.event.sourceEvent.stopPropagation()}).on("drag",this._onBarDrag.bind(this));C&&this.hbar.on(".drag",null).call(ie),q&&this.vbar.on(".drag",null).call(ie)}this.setTranslate(r,n)};of.prototype.disable=function(){(this.hbar||this.vbar)&&(this.bg.attr({width:0,height:0}),this.container.on("wheel",null).on(".drag",null).call(pT.setClipUrl,null),delete this._clipRect),this.hbar&&(this.hbar.on(".drag",null),this.hbar.remove(),delete this.hbar,delete this._hbarXMin,delete this._hbarTranslateMax),this.vbar&&(this.vbar.on(".drag",null),this.vbar.remove(),delete this.vbar,delete this._vbarYMin,delete this._vbarTranslateMax)};of.prototype._onBoxDrag=function(){var t=this.translateX,r=this.translateY;this.hbar&&(t-=qg.event.dx),this.vbar&&(r-=qg.event.dy),this.setTranslate(t,r)};of.prototype._onBoxWheel=function(){var t=this.translateX,r=this.translateY;this.hbar&&(t+=qg.event.deltaY),this.vbar&&(r+=qg.event.deltaY),this.setTranslate(t,r)};of.prototype._onBarDrag=function(){var t=this.translateX,r=this.translateY;if(this.hbar){var n=t+this._hbarXMin,i=n+this._hbarTranslateMax,a=vI.constrain(qg.event.x,n,i),o=(a-n)/(i-n),s=this.position.w-this._box.w;t=o*s}if(this.vbar){var l=r+this._vbarYMin,u=l+this._vbarTranslateMax,c=vI.constrain(qg.event.y,l,u),f=(c-l)/(u-l),h=this.position.h-this._box.h;r=f*h}this.setTranslate(t,r)};of.prototype.setTranslate=function(t,r){var n=this.position.w-this._box.w,i=this.position.h-this._box.h;if(t=vI.constrain(t||0,0,n),r=vI.constrain(r||0,0,i),this.translateX=t,this.translateY=r,this.container.call(pT.setTranslate,this._box.l-this.position.l-t,this._box.t-this.position.t-r),this._clipRect&&this._clipRect.attr({x:Math.floor(this.position.l+t-.5),y:Math.floor(this.position.t+r-.5)}),this.hbar){var a=t/n;this.hbar.call(pT.setTranslate,t+a*this._hbarTranslateMax,r)}if(this.vbar){var o=r/i;this.vbar.call(pT.setTranslate,t,r+o*this._vbarTranslateMax)}}});var F0e=ye((Tar,z0e)=>{"use strict";var gT=xa(),t4=Xu(),r4=va(),mT=ao(),e0=Mr(),pI=Ll(),Qpt=Vs().arrayEditor,k0e=Nh().LINE_SPACING,Go=hI(),e0t=M0e();z0e.exports=function(t){var r=t._fullLayout,n=e0.filterVisible(r[Go.name]);function i(h){t4.autoMargin(t,R0e(h))}var a=r._menulayer.selectAll("g."+Go.containerClassName).data(n.length>0?[0]:[]);if(a.enter().append("g").classed(Go.containerClassName,!0).style("cursor","pointer"),a.exit().each(function(){gT.select(this).selectAll("g."+Go.headerGroupClassName).each(i)}).remove(),n.length!==0){var o=a.selectAll("g."+Go.headerGroupClassName).data(n,t0t);o.enter().append("g").classed(Go.headerGroupClassName,!0);for(var s=e0.ensureSingle(a,"g",Go.dropdownButtonGroupClassName,function(h){h.style("pointer-events","all")}),l=0;l{"use strict";var l0t=hI();q0e.exports={moduleType:"component",name:l0t.name,layoutAttributes:BU(),supplyLayoutDefaults:T0e(),draw:F0e()}});var n4=ye((Sar,B0e)=>{"use strict";B0e.exports={name:"sliders",containerClassName:"slider-container",groupClassName:"slider-group",inputAreaClass:"slider-input-area",railRectClass:"slider-rail-rect",railTouchRectClass:"slider-rail-touch-rect",gripRectClass:"slider-grip-rect",tickRectClass:"slider-tick-rect",inputProxyClass:"slider-input-proxy",labelsClass:"slider-labels",labelGroupClass:"slider-label-group",labelClass:"slider-label",currentValueClass:"slider-current-value",railHeight:5,menuIndexAttrName:"slider-active-index",autoMarginIdRoot:"slider-",minWidth:30,minHeight:30,textPadX:40,arrowOffsetX:4,railRadius:2,railWidth:5,railBorder:4,railBorderWidth:1,railBorderColor:"#bec8d9",railBgColor:"#f8fafc",railInset:8,stepInset:10,gripRadius:10,gripWidth:20,gripHeight:20,gripBorder:20,gripBorderWidth:1,gripBorderColor:"#bec8d9",gripBgColor:"#f6f8fa",gripBgActiveColor:"#dbdde0",labelPadding:8,labelOffset:0,tickWidth:1,tickColor:"#333",tickOffset:25,tickLength:7,minorTickOffset:25,minorTickColor:"#333",minorTickLength:4,currentValuePadding:8,currentValueInset:0}});var HU=ye((Mar,V0e)=>{"use strict";var N0e=Su(),u0t=b6(),c0t=no().extendDeepAll,f0t=Bu().overrideAll,h0t=zS(),U0e=Vs().templatedArray,Jb=n4(),d0t=U0e("step",{visible:{valType:"boolean",dflt:!0},method:{valType:"enumerated",values:["restyle","relayout","animate","update","skip"],dflt:"restyle"},args:{valType:"info_array",freeLength:!0,items:[{valType:"any"},{valType:"any"},{valType:"any"}]},label:{valType:"string"},value:{valType:"string"},execute:{valType:"boolean",dflt:!0}});V0e.exports=f0t(U0e("slider",{visible:{valType:"boolean",dflt:!0},active:{valType:"number",min:0,dflt:0},steps:d0t,lenmode:{valType:"enumerated",values:["fraction","pixels"],dflt:"fraction"},len:{valType:"number",min:0,dflt:1},x:{valType:"number",min:-2,max:3,dflt:0},pad:c0t(u0t({editType:"arraydraw"}),{},{t:{dflt:20}}),xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"left"},y:{valType:"number",min:-2,max:3,dflt:0},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"top"},transition:{duration:{valType:"number",min:0,dflt:150},easing:{valType:"enumerated",values:h0t.transition.easing.values,dflt:"cubic-in-out"}},currentvalue:{visible:{valType:"boolean",dflt:!0},xanchor:{valType:"enumerated",values:["left","center","right"],dflt:"left"},offset:{valType:"number",dflt:10},prefix:{valType:"string"},suffix:{valType:"string"},font:N0e({})},font:N0e({}),activebgcolor:{valType:"color",dflt:Jb.gripBgActiveColor},bgcolor:{valType:"color",dflt:Jb.railBgColor},bordercolor:{valType:"color",dflt:Jb.railBorderColor},borderwidth:{valType:"number",min:0,dflt:Jb.railBorderWidth},ticklen:{valType:"number",min:0,dflt:Jb.tickLength},tickcolor:{valType:"color",dflt:Jb.tickColor},tickwidth:{valType:"number",min:0,dflt:1},minorticklen:{valType:"number",min:0,dflt:Jb.minorTickLength}}),"arraydraw","from-root")});var W0e=ye((Ear,j0e)=>{"use strict";var yT=Mr(),H0e=Zd(),G0e=HU(),v0t=n4(),p0t=v0t.name,g0t=G0e.steps;j0e.exports=function(t,r){H0e(t,r,{name:p0t,handleItemDefaults:m0t})};function m0t(e,t,r){function n(f,h){return yT.coerce(e,t,G0e,f,h)}for(var i=H0e(e,t,{name:"steps",handleItemDefaults:y0t}),a=0,o=0;o{"use strict";var Og=xa(),gI=Xu(),__=va(),Bg=ao(),t0=Mr(),_0t=t0.strTranslate,a4=Ll(),x0t=Vs().arrayEditor,gs=n4(),WU=Nh(),Y0e=WU.LINE_SPACING,GU=WU.FROM_TL,jU=WU.FROM_BR;tge.exports=function(t){var r=t._context.staticPlot,n=t._fullLayout,i=b0t(n,t),a=n._infolayer.selectAll("g."+gs.containerClassName).data(i.length>0?[0]:[]);a.enter().append("g").classed(gs.containerClassName,!0).style("cursor",r?null:"ew-resize");function o(c){c._commandObserver&&(c._commandObserver.remove(),delete c._commandObserver),gI.autoMargin(t,K0e(c))}if(a.exit().each(function(){Og.select(this).selectAll("g."+gs.groupClassName).each(o)}).remove(),i.length!==0){var s=a.selectAll("g."+gs.groupClassName).data(i,w0t);s.enter().append("g").classed(gs.groupClassName,!0),s.exit().each(o).remove();for(var l=0;l0&&(s=s.transition().duration(t.transition.duration).ease(t.transition.easing)),s.attr("transform",_0t(o-gs.gripWidth*.5,t._dims.currentValueTotalHeight))}}function ZU(e,t){var r=e._dims;return r.inputAreaStart+gs.stepInset+(r.inputAreaLength-2*gs.stepInset)*Math.min(1,Math.max(0,t))}function X0e(e,t){var r=e._dims;return Math.min(1,Math.max(0,(t-gs.stepInset-r.inputAreaStart)/(r.inputAreaLength-2*gs.stepInset-2*r.inputAreaStart)))}function C0t(e,t,r){var n=r._dims,i=t0.ensureSingle(e,"rect",gs.railTouchRectClass,function(a){a.call(Q0e,t,e,r).style("pointer-events","all")});i.attr({width:n.inputAreaLength,height:Math.max(n.inputAreaWidth,gs.tickOffset+r.ticklen+n.labelHeight)}).call(__.fill,r.bgcolor).attr("opacity",0),Bg.setTranslate(i,0,n.currentValueTotalHeight)}function L0t(e,t){var r=t._dims,n=r.inputAreaLength-gs.railInset*2,i=t0.ensureSingle(e,"rect",gs.railRectClass);i.attr({width:n,height:gs.railWidth,rx:gs.railRadius,ry:gs.railRadius,"shape-rendering":"crispEdges"}).call(__.stroke,t.bordercolor).call(__.fill,t.bgcolor).style("stroke-width",t.borderwidth+"px"),Bg.setTranslate(i,gs.railInset,(r.inputAreaWidth-gs.railWidth)*.5+r.currentValueTotalHeight)}});var nge=ye((Car,ige)=>{"use strict";var P0t=n4();ige.exports={moduleType:"component",name:P0t.name,layoutAttributes:HU(),supplyLayoutDefaults:W0e(),draw:rge()}});var yI=ye((Lar,oge)=>{"use strict";var age=dh();oge.exports={bgcolor:{valType:"color",dflt:age.background,editType:"plot"},bordercolor:{valType:"color",dflt:age.defaultLine,editType:"plot"},borderwidth:{valType:"integer",dflt:0,min:0,editType:"plot"},autorange:{valType:"boolean",dflt:!0,editType:"calc",impliedEdits:{"range[0]":void 0,"range[1]":void 0}},range:{valType:"info_array",items:[{valType:"any",editType:"calc",impliedEdits:{"^autorange":!1}},{valType:"any",editType:"calc",impliedEdits:{"^autorange":!1}}],editType:"calc",impliedEdits:{autorange:!1}},thickness:{valType:"number",dflt:.15,min:0,max:1,editType:"plot"},visible:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"}});var XU=ye((Par,sge)=>{"use strict";sge.exports={_isSubplotObj:!0,rangemode:{valType:"enumerated",values:["auto","fixed","match"],dflt:"match",editType:"calc"},range:{valType:"info_array",items:[{valType:"any",editType:"plot"},{valType:"any",editType:"plot"}],editType:"plot"},editType:"calc"}});var _I=ye((Iar,lge)=>{"use strict";lge.exports={name:"rangeslider",containerClassName:"rangeslider-container",bgClassName:"rangeslider-bg",rangePlotClassName:"rangeslider-rangeplot",maskMinClassName:"rangeslider-mask-min",maskMaxClassName:"rangeslider-mask-max",slideBoxClassName:"rangeslider-slidebox",grabberMinClassName:"rangeslider-grabber-min",grabAreaMinClassName:"rangeslider-grabarea-min",handleMinClassName:"rangeslider-handle-min",grabberMaxClassName:"rangeslider-grabber-max",grabAreaMaxClassName:"rangeslider-grabarea-max",handleMaxClassName:"rangeslider-handle-max",maskMinOppAxisClassName:"rangeslider-mask-min-opp-axis",maskMaxOppAxisClassName:"rangeslider-mask-max-opp-axis",maskColor:"rgba(0,0,0,0.4)",maskOppAxisColor:"rgba(0,0,0,0.2)",slideBoxFill:"transparent",slideBoxCursor:"ew-resize",grabAreaFill:"transparent",grabAreaCursor:"col-resize",grabAreaWidth:10,handleWidth:4,handleRadius:1,handleStrokeWidth:1,extraPad:15}});var fge=ye(bI=>{"use strict";var I0t=af(),R0t=Ll(),uge=_I(),D0t=Nh().LINE_SPACING,xI=uge.name;function cge(e){var t=e&&e[xI];return t&&t.visible}bI.isVisible=cge;bI.makeData=function(e){for(var t=I0t.list({_fullLayout:e},"x",!0),r=e.margin,n=[],i=0;i{"use strict";var wI=Mr(),hge=Vs(),dge=af(),z0t=yI(),F0t=XU();vge.exports=function(t,r,n){var i=t[n],a=r[n];if(!(i.rangeslider||r._requestRangeslider[a._id]))return;wI.isPlainObject(i.rangeslider)||(i.rangeslider={});var o=i.rangeslider,s=hge.newContainer(a,"rangeslider");function l(L,_){return wI.coerce(o,s,z0t,L,_)}var u,c;function f(L,_){return wI.coerce(u,c,F0t,L,_)}var h=l("visible");if(h){l("bgcolor",r.plot_bgcolor),l("bordercolor"),l("borderwidth"),l("thickness"),l("autorange",!a.isValidRange(o.range)),l("range");var d=r._subplots;if(d)for(var v=d.cartesian.filter(function(L){return L.substr(0,L.indexOf("y"))===dge.name2id(n)}).map(function(L){return L.substr(L.indexOf("y"),L.length)}),x=wI.simpleMap(v,dge.id2name),b=0;b{"use strict";var q0t=af().list,O0t=wg().getAutoRange,B0t=_I();gge.exports=function(t){for(var r=q0t(t,"x",!0),n=0;n{"use strict";var TI=xa(),N0t=ba(),U0t=Xu(),Ff=Mr(),AI=Ff.strTranslate,_ge=ao(),x_=va(),V0t=Mb(),H0t=Jf(),YU=af(),G0t=gv(),j0t=Tg(),Bs=_I();xge.exports=function(e){for(var t=e._fullLayout,r=t._rangeSliderData,n=0;n=N.max)X=T[G+1];else if(H=N.pmax)X=T[G+1];else if(H0?e.touches[0].clientX:0}function W0t(e,t,r,n){if(t._context.staticPlot)return;var i=e.select("rect."+Bs.slideBoxClassName).node(),a=e.select("rect."+Bs.grabAreaMinClassName).node(),o=e.select("rect."+Bs.grabAreaMaxClassName).node();function s(){var l=TI.event,u=l.target,c=yge(l),f=c-e.node().getBoundingClientRect().left,h=n.d2p(r._rl[0]),d=n.d2p(r._rl[1]),v=G0t.coverSlip();this.addEventListener("touchmove",x),this.addEventListener("touchend",b),v.addEventListener("mousemove",x),v.addEventListener("mouseup",b);function x(g){var E=yge(g),k=+E-c,A,L,_;switch(u){case i:if(_="ew-resize",h+k>r._length||d+k<0)return;A=h+k,L=d+k;break;case a:if(_="col-resize",h+k>r._length)return;A=h+k,L=d;break;case o:if(_="col-resize",d+k<0)return;A=h,L=d+k;break;default:_="ew-resize",A=f,L=f+k;break}if(L{"use strict";var rgt=Mr(),igt=yI(),ngt=XU(),KU=fge();wge.exports={moduleType:"component",name:"rangeslider",schema:{subplots:{xaxis:{rangeslider:rgt.extendFlat({},igt,{yaxis:ngt})}}},layoutAttributes:yI(),handleDefaults:pge(),calcAutorange:mge(),draw:bge(),isVisible:KU.isVisible,makeData:KU.makeData,autoMarginOpts:KU.autoMarginOpts}});var SI=ye((Oar,Sge)=>{"use strict";var agt=Su(),Age=dh(),ogt=Vs().templatedArray,sgt=ogt("button",{visible:{valType:"boolean",dflt:!0,editType:"plot"},step:{valType:"enumerated",values:["month","year","day","hour","minute","second","all"],dflt:"month",editType:"plot"},stepmode:{valType:"enumerated",values:["backward","todate"],dflt:"backward",editType:"plot"},count:{valType:"number",min:0,dflt:1,editType:"plot"},label:{valType:"string",editType:"plot"},editType:"plot"});Sge.exports={visible:{valType:"boolean",editType:"plot"},buttons:sgt,x:{valType:"number",min:-2,max:3,editType:"plot"},xanchor:{valType:"enumerated",values:["auto","left","center","right"],dflt:"left",editType:"plot"},y:{valType:"number",min:-2,max:3,editType:"plot"},yanchor:{valType:"enumerated",values:["auto","top","middle","bottom"],dflt:"bottom",editType:"plot"},font:agt({editType:"plot"}),bgcolor:{valType:"color",dflt:Age.lightLine,editType:"plot"},activecolor:{valType:"color",editType:"plot"},bordercolor:{valType:"color",dflt:Age.defaultLine,editType:"plot"},borderwidth:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"plot"}});var JU=ye((Bar,Mge)=>{"use strict";Mge.exports={yPad:.02,minButtonWidth:30,rx:3,ry:3,lightAmount:25,darkAmount:10}});var Cge=ye((Nar,kge)=>{"use strict";var MI=Mr(),lgt=va(),ugt=Vs(),cgt=Zd(),Ege=SI(),$U=JU();kge.exports=function(t,r,n,i,a){var o=t.rangeselector||{},s=ugt.newContainer(r,"rangeselector");function l(d,v){return MI.coerce(o,s,Ege,d,v)}var u=cgt(o,s,{name:"buttons",handleItemDefaults:fgt,calendar:a}),c=l("visible",u.length>0);if(c){var f=hgt(r,n,i);l("x",f[0]),l("y",f[1]),MI.noneOrAll(t,r,["x","y"]),l("xanchor"),l("yanchor"),MI.coerceFont(l,"font",n.font);var h=l("bgcolor");l("activecolor",lgt.contrast(h,$U.lightAmount,$U.darkAmount)),l("bordercolor"),l("borderwidth")}};function fgt(e,t,r,n){var i=n.calendar;function a(l,u){return MI.coerce(e,t,Ege.buttons,l,u)}var o=a("visible");if(o){var s=a("step");s!=="all"&&(i&&i!=="gregorian"&&(s==="month"||s==="year")?t.stepmode="backward":a("stepmode"),a("count")),a("label")}}function hgt(e,t,r){for(var n=r.filter(function(s){return t[s].anchor===e._id}),i=0,a=0;a{"use strict";var dgt=hq(),vgt=Mr().titleCase;Lge.exports=function(t,r){var n=t._name,i={};if(r.step==="all")i[n+".autorange"]=!0;else{var a=pgt(t,r);i[n+".range[0]"]=a[0],i[n+".range[1]"]=a[1]}return i};function pgt(e,t){var r=e.range,n=new Date(e.r2l(r[1])),i=t.step,a=dgt["utc"+vgt(i)],o=t.count,s;switch(t.stepmode){case"backward":s=e.l2r(+a.offset(n,-o));break;case"todate":var l=a.offset(n,-o);s=e.l2r(+a.ceil(l));break}var u=r[1];return[s,u]}});var Bge=ye((Var,Oge)=>{"use strict";var kI=xa(),ggt=ba(),mgt=Xu(),Ige=va(),qge=ao(),Iy=Mr(),Rge=Iy.strTranslate,EI=Ll(),ygt=af(),tV=Nh(),Dge=tV.LINE_SPACING,zge=tV.FROM_TL,Fge=tV.FROM_BR,eV=JU(),_gt=Pge();Oge.exports=function(t){var r=t._fullLayout,n=r._infolayer.selectAll(".rangeselector").data(xgt(t),bgt);n.enter().append("g").classed("rangeselector",!0),n.exit().remove(),n.style({cursor:"pointer","pointer-events":"all"}),n.each(function(i){var a=kI.select(this),o=i,s=o.rangeselector,l=a.selectAll("g.button").data(Iy.filterVisible(s.buttons));l.enter().append("g").classed("button",!0),l.exit().remove(),l.each(function(u){var c=kI.select(this),f=_gt(o,u);u._isActive=wgt(o,u,f),c.call(QU,s,u),c.call(Agt,s,u,t),c.on("click",function(){t._dragged||ggt.call("_guiRelayout",t,f)}),c.on("mouseover",function(){u._isHovered=!0,c.call(QU,s,u)}),c.on("mouseout",function(){u._isHovered=!1,c.call(QU,s,u)})}),Mgt(t,l,s,o._name,a)})};function xgt(e){for(var t=ygt.list(e,"x",!0),r=[],n=0;n{"use strict";Nge.exports={moduleType:"component",name:"rangeselector",schema:{subplots:{xaxis:{rangeselector:SI()}}},layoutAttributes:SI(),handleDefaults:Cge(),draw:Bge()}});var Ju=ye(rV=>{"use strict";var Vge=no().extendFlat;rV.attributes=function(e,t){e=e||{},t=t||{};var r={valType:"info_array",editType:e.editType,items:[{valType:"number",min:0,max:1,editType:e.editType},{valType:"number",min:0,max:1,editType:e.editType}],dflt:[0,1]},n=e.name?e.name+" ":"",i=e.trace?"trace ":"subplot ",a=t.description?" "+t.description:"",o={x:Vge({},r,{}),y:Vge({},r,{}),editType:e.editType};return e.noGridCell||(o.row={valType:"integer",min:0,dflt:0,editType:e.editType},o.column={valType:"integer",min:0,dflt:0,editType:e.editType}),o};rV.defaults=function(e,t,r,n){var i=n&&n.x||[0,1],a=n&&n.y||[0,1],o=t.grid;if(o){var s=r("domain.column");s!==void 0&&(s{"use strict";var Egt=Mr(),kgt=n3().counter,Cgt=Ju().attributes,Hge=ad().idRegex,Lgt=Vs(),iV={rows:{valType:"integer",min:1,editType:"plot"},roworder:{valType:"enumerated",values:["top to bottom","bottom to top"],dflt:"top to bottom",editType:"plot"},columns:{valType:"integer",min:1,editType:"plot"},subplots:{valType:"info_array",freeLength:!0,dimensions:2,items:{valType:"enumerated",values:[kgt("xy").toString(),""],editType:"plot"},editType:"plot"},xaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[Hge.x.toString(),""],editType:"plot"},editType:"plot"},yaxes:{valType:"info_array",freeLength:!0,items:{valType:"enumerated",values:[Hge.y.toString(),""],editType:"plot"},editType:"plot"},pattern:{valType:"enumerated",values:["independent","coupled"],dflt:"coupled",editType:"plot"},xgap:{valType:"number",min:0,max:1,editType:"plot"},ygap:{valType:"number",min:0,max:1,editType:"plot"},domain:Cgt({name:"grid",editType:"plot",noGridCell:!0},{}),xside:{valType:"enumerated",values:["bottom","bottom plot","top plot","top"],dflt:"bottom plot",editType:"plot"},yside:{valType:"enumerated",values:["left","left plot","right plot","right"],dflt:"left plot",editType:"plot"},editType:"plot"};function CI(e,t,r){var n=t[r+"axes"],i=Object.keys((e._splomAxes||{})[r]||{});if(Array.isArray(n))return n;if(i.length)return i}function Pgt(e,t){var r=e.grid||{},n=CI(t,r,"x"),i=CI(t,r,"y");if(!e.grid&&!n&&!i)return;var a=Array.isArray(r.subplots)&&Array.isArray(r.subplots[0]),o=Array.isArray(n),s=Array.isArray(i),l=o&&n!==r.xaxes&&s&&i!==r.yaxes,u,c;a?(u=r.subplots.length,c=r.subplots[0].length):(s&&(u=i.length),o&&(c=n.length));var f=Lgt.newContainer(t,"grid");function h(_,C){return Egt.coerce(r,f,iV,_,C)}var d=h("rows",u),v=h("columns",c);if(!(d*v>1)){delete t.grid;return}if(!a&&!o&&!s){var x=h("pattern")==="independent";x&&(a=!0)}f._hasSubplotGrid=a;var b=h("roworder"),g=b==="top to bottom",E=a?.2:.1,k=a?.3:.1,A,L;l&&t._splomGridDflt&&(A=t._splomGridDflt.xside,L=t._splomGridDflt.yside),f._domains={x:Gge("x",h,E,A,v),y:Gge("y",h,k,L,d,g)}}function Gge(e,t,r,n,i,a){var o=t(e+"gap",r),s=t("domain."+e);t(e+"side",n);for(var l=new Array(i),u=s[0],c=(s[1]-u)/(i-o),f=c*(1-o),h=0;h{"use strict";Zge.exports={visible:{valType:"boolean",editType:"calc"},type:{valType:"enumerated",values:["percent","constant","sqrt","data"],editType:"calc"},symmetric:{valType:"boolean",editType:"calc"},array:{valType:"data_array",editType:"calc"},arrayminus:{valType:"data_array",editType:"calc"},value:{valType:"number",min:0,dflt:10,editType:"calc"},valueminus:{valType:"number",min:0,dflt:10,editType:"calc"},traceref:{valType:"integer",min:0,dflt:0,editType:"style"},tracerefminus:{valType:"integer",min:0,dflt:0,editType:"style"},copy_ystyle:{valType:"boolean",editType:"plot"},copy_zstyle:{valType:"boolean",editType:"style"},color:{valType:"color",editType:"style"},thickness:{valType:"number",min:0,dflt:2,editType:"style"},width:{valType:"number",min:0,editType:"plot"},editType:"calc"}});var Kge=ye((Zar,Yge)=>{"use strict";var Xge=uo(),Rgt=ba(),Dgt=Mr(),zgt=Vs(),Fgt=aV();Yge.exports=function(e,t,r,n){var i="error_"+n.axis,a=zgt.newContainer(t,i),o=e[i]||{};function s(v,x){return Dgt.coerce(o,a,Fgt,v,x)}var l=o.array!==void 0||o.value!==void 0||o.type==="sqrt",u=s("visible",l);if(u!==!1){var c=s("type","array"in o?"data":"percent"),f=!0;c!=="sqrt"&&(f=s("symmetric",!((c==="data"?"arrayminus":"valueminus")in o))),c==="data"?(s("array"),s("traceref"),f||(s("arrayminus"),s("tracerefminus"))):(c==="percent"||c==="constant")&&(s("value"),f||s("valueminus"));var h="copy_"+n.inherit+"style";if(n.inherit){var d=t["error_"+n.inherit];(d||{}).visible&&s(h,!(o.color||Xge(o.thickness)||Xge(o.width)))}(!n.inherit||!a[h])&&(s("color",r),s("thickness"),s("width",Rgt.traceIs(t,"gl3d")?0:4))}}});var oV=ye((Xar,$ge)=>{"use strict";$ge.exports=function(t){var r=t.type,n=t.symmetric;if(r==="data"){var i=t.array||[];if(n)return function(u,c){var f=+i[c];return[f,f]};var a=t.arrayminus||[];return function(u,c){var f=+i[c],h=+a[c];return!isNaN(f)||!isNaN(h)?[h||0,f||0]:[NaN,NaN]}}else{var o=Jge(r,t.value),s=Jge(r,t.valueminus);return n||t.valueminus===void 0?function(u){var c=o(u);return[c,c]}:function(u){return[s(u),o(u)]}}};function Jge(e,t){if(e==="percent")return function(r){return Math.abs(r*t/100)};if(e==="constant")return function(){return Math.abs(t)};if(e==="sqrt")return function(r){return Math.sqrt(Math.abs(r))}}});var tme=ye((Yar,eme)=>{"use strict";var sV=uo(),qgt=ba(),lV=Qa(),Ogt=Mr(),Bgt=oV();eme.exports=function(t){for(var r=t.calcdata,n=0;n{"use strict";var rme=xa(),b_=uo(),Ngt=ao(),Ugt=lu();ime.exports=function(t,r,n,i){var a,o=n.xaxis,s=n.yaxis,l=i&&i.duration>0,u=t._context.staticPlot;r.each(function(c){var f=c[0].trace,h=f.error_x||{},d=f.error_y||{},v;f.ids&&(v=function(E){return E.id});var x=Ugt.hasMarkers(f)&&f.marker.maxdisplayed>0;!d.visible&&!h.visible&&(c=[]);var b=rme.select(this).selectAll("g.errorbar").data(c,v);if(b.exit().remove(),!!c.length){h.visible||b.selectAll("path.xerror").remove(),d.visible||b.selectAll("path.yerror").remove(),b.style("opacity",1);var g=b.enter().append("g").classed("errorbar",!0);l&&g.style("opacity",0).transition().duration(i.duration).style("opacity",1),Ngt.setClipUrl(b,n.layerClipId,t),b.each(function(E){var k=rme.select(this),A=Vgt(E,o,s);if(!(x&&!E.vis)){var L,_=k.select("path.yerror");if(d.visible&&b_(A.x)&&b_(A.yh)&&b_(A.ys)){var C=d.width;L="M"+(A.x-C)+","+A.yh+"h"+2*C+"m-"+C+",0V"+A.ys,A.noYS||(L+="m-"+C+",0h"+2*C),a=!_.size(),a?_=k.append("path").style("vector-effect",u?"none":"non-scaling-stroke").classed("yerror",!0):l&&(_=_.transition().duration(i.duration).ease(i.easing)),_.attr("d",L)}else _.remove();var M=k.select("path.xerror");if(h.visible&&b_(A.y)&&b_(A.xh)&&b_(A.xs)){var p=(h.copy_ystyle?d:h).width;L="M"+A.xh+","+(A.y-p)+"v"+2*p+"m0,-"+p+"H"+A.xs,A.noXS||(L+="m0,-"+p+"v"+2*p),a=!M.size(),a?M=k.append("path").style("vector-effect",u?"none":"non-scaling-stroke").classed("xerror",!0):l&&(M=M.transition().duration(i.duration).ease(i.easing)),M.attr("d",L)}else M.remove()}})}})};function Vgt(e,t,r){var n={x:t.c2p(e.x),y:r.c2p(e.y)};return e.yh!==void 0&&(n.yh=r.c2p(e.yh),n.ys=r.c2p(e.ys),b_(n.ys)||(n.noYS=!0,n.ys=r.c2p(e.ys,!0))),e.xh!==void 0&&(n.xh=t.c2p(e.xh),n.xs=t.c2p(e.xs),b_(n.xs)||(n.noXS=!0,n.xs=t.c2p(e.xs,!0))),n}});var sme=ye((Jar,ome)=>{"use strict";var Hgt=xa(),ame=va();ome.exports=function(t){t.each(function(r){var n=r[0].trace,i=n.error_y||{},a=n.error_x||{},o=Hgt.select(this);o.selectAll("path.yerror").style("stroke-width",i.thickness+"px").call(ame.stroke,i.color),a.copy_ystyle&&(a=i),o.selectAll("path.xerror").style("stroke-width",a.thickness+"px").call(ame.stroke,a.color)})}});var cme=ye(($ar,ume)=>{"use strict";var o4=Mr(),lme=Bu().overrideAll,s4=aV(),$b={error_x:o4.extendFlat({},s4),error_y:o4.extendFlat({},s4)};delete $b.error_x.copy_zstyle;delete $b.error_y.copy_zstyle;delete $b.error_y.copy_ystyle;var l4={error_x:o4.extendFlat({},s4),error_y:o4.extendFlat({},s4),error_z:o4.extendFlat({},s4)};delete l4.error_x.copy_ystyle;delete l4.error_y.copy_ystyle;delete l4.error_z.copy_ystyle;delete l4.error_z.copy_zstyle;ume.exports={moduleType:"component",name:"errorbars",schema:{traces:{scatter:$b,bar:$b,histogram:$b,scatter3d:lme(l4,"calc","nested"),scattergl:lme($b,"calc","nested")}},supplyDefaults:Kge(),calc:tme(),makeComputeError:oV(),plot:nme(),style:sme(),hoverInfo:Ggt};function Ggt(e,t,r){(t.error_y||{}).visible&&(r.yerr=e.yh-e.y,t.error_y.symmetric||(r.yerrneg=e.y-e.ys)),(t.error_x||{}).visible&&(r.xerr=e.xh-e.x,t.error_x.symmetric||(r.xerrneg=e.x-e.xs))}});var hme=ye((Qar,fme)=>{"use strict";fme.exports={cn:{colorbar:"colorbar",cbbg:"cbbg",cbfill:"cbfill",cbfills:"cbfills",cbline:"cbline",cblines:"cblines",cbaxis:"cbaxis",cbtitleunshift:"cbtitleunshift",cbtitle:"cbtitle",cboutline:"cboutline",crisp:"crisp",jsPlaceholder:"js-placeholder"}}});var _me=ye((eor,yme)=>{"use strict";var w_=xa(),uV=id(),PI=Xu(),dme=ba(),Ry=Qa(),LI=gv(),B0=Mr(),Ug=B0.strTranslate,mme=no().extendFlat,cV=Tg(),Ng=ao(),fV=va(),jgt=Mb(),Wgt=Ll(),Zgt=Dv().flipScale,Xgt=JM(),Ygt=rI(),Kgt=Cd(),hV=Nh(),vme=hV.LINE_SPACING,pme=hV.FROM_TL,gme=hV.FROM_BR,Vc=hme().cn;function Jgt(e){var t=e._fullLayout,r=t._infolayer.selectAll("g."+Vc.colorbar).data($gt(e),function(n){return n._id});r.enter().append("g").attr("class",function(n){return n._id}).classed(Vc.colorbar,!0),r.each(function(n){var i=w_.select(this);B0.ensureSingle(i,"rect",Vc.cbbg),B0.ensureSingle(i,"g",Vc.cbfills),B0.ensureSingle(i,"g",Vc.cblines),B0.ensureSingle(i,"g",Vc.cbaxis,function(o){o.classed(Vc.crisp,!0)}),B0.ensureSingle(i,"g",Vc.cbtitleunshift,function(o){o.append("g").classed(Vc.cbtitle,!0)}),B0.ensureSingle(i,"rect",Vc.cboutline);var a=Qgt(i,n,e);a&&a.then&&(e._promises||[]).push(a),e._context.edits.colorbarPosition&&emt(i,n,e)}),r.exit().each(function(n){PI.autoMargin(e,n._id)}).remove(),r.order()}function $gt(e){var t=e._fullLayout,r=e.calcdata,n=[],i,a,o,s;function l(k){return mme(k,{_fillcolor:null,_line:{color:null,width:null,dash:null},_levels:{start:null,end:null,size:null},_filllevels:null,_fillgradient:null,_zrange:null})}function u(){typeof s.calc=="function"?s.calc(e,o,i):(i._fillgradient=a.reversescale?Zgt(a.colorscale):a.colorscale,i._zrange=[a[s.min],a[s.max]])}for(var c=0;c1){var Re=Math.pow(10,Math.floor(Math.log(me)/Math.LN10));ze*=Re*B0.roundUp(me/Re,[2,5,10]),(Math.abs(F.start)/F.size+1e-6)%1<2e-6&&(Ee.tick0=0)}Ee.dtick=ze}Ee.domain=n?[ie+v/A.h,ie+W-v/A.h]:[ie+d/A.w,ie+W-d/A.w],Ee.setScale(),e.attr("transform",Ug(Math.round(A.l),Math.round(A.t)));var ce=e.select("."+Vc.cbtitleunshift).attr("transform",Ug(-Math.round(A.l),-Math.round(A.t))),Ge=Ee.ticklabelposition,nt=Ee.title.font.size,ct=e.select("."+Vc.cbaxis),qt,rt=0,ot=0;function Rt(er,Ke){var xt={propContainer:Ee,propName:t._propPrefix+"title",traceIndex:t._traceIndex,_meta:t._meta,placeholder:k._dfltTitle.colorbar,containerGroup:e.select("."+Vc.cbtitle)},bt=er.charAt(0)==="h"?er.substr(1):"h"+er;e.selectAll("."+bt+",."+bt+"-math-group").remove(),jgt.draw(r,er,mme(xt,Ke||{}))}function kt(){if(n&&Ae||!n&&!Ae){var er,Ke;M==="top"&&(er=d+A.l+re*x,Ke=v+A.t+ae*(1-ie-W)+3+nt*.75),M==="bottom"&&(er=d+A.l+re*x,Ke=v+A.t+ae*(1-ie)-3-nt*.25),M==="right"&&(Ke=v+A.t+ae*b+3+nt*.75,er=d+A.l+re*ie),Rt(Ee._id+"title",{attributes:{x:er,y:Ke,"text-anchor":n?"start":"middle"}})}}function Ct(){if(n&&!Ae||!n&&Ae){var er=Ee.position||0,Ke=Ee._offset+Ee._length/2,xt,bt;if(M==="right")bt=Ke,xt=A.l+re*er+10+nt*(Ee.showticklabels?1:.5);else if(xt=Ke,M==="bottom"&&(bt=A.t+ae*er+10+(Ge.indexOf("inside")===-1?Ee.tickfont.size:0)+(Ee.ticks!=="intside"&&t.ticklen||0)),M==="top"){var Lt=C.text.split("
").length;bt=A.t+ae*er+10-X-vme*nt*Lt}Rt((n?"h":"v")+Ee._id+"title",{avoid:{selection:w_.select(r).selectAll("g."+Ee._id+"tick"),side:M,offsetTop:n?0:A.t,offsetLeft:n?A.l:0,maxShift:n?k.width:k.height},attributes:{x:xt,y:bt,"text-anchor":"middle"},transform:{rotate:n?-90:0,offset:0}})}}function Yt(){if(!n&&!Ae||n&&Ae){var er=e.select("."+Vc.cbtitle),Ke=er.select("text"),xt=[-l/2,l/2],bt=er.select(".h"+Ee._id+"title-math-group").node(),Lt=15.6;Ke.node()&&(Lt=parseInt(Ke.node().style.fontSize,10)*vme);var St;if(bt?(St=Ng.bBox(bt),ot=St.width,rt=St.height,rt>Lt&&(xt[1]-=(rt-Lt)/2)):Ke.node()&&!Ke.classed(Vc.jsPlaceholder)&&(St=Ng.bBox(Ke.node()),ot=St.width,rt=St.height),n){if(rt){if(rt+=5,M==="top")Ee.domain[1]-=rt/A.h,xt[1]*=-1;else{Ee.domain[0]+=rt/A.h;var Et=Wgt.lineCount(Ke);xt[1]+=(1-Et)*Lt}er.attr("transform",Ug(xt[0],xt[1])),Ee.setScale()}}else ot&&(M==="right"&&(Ee.domain[0]+=(ot+nt/2)/A.w),er.attr("transform",Ug(xt[0],xt[1])),Ee.setScale())}e.selectAll("."+Vc.cbfills+",."+Vc.cblines).attr("transform",n?Ug(0,Math.round(A.h*(1-Ee.domain[1]))):Ug(Math.round(A.w*Ee.domain[0]),0)),ct.attr("transform",n?Ug(0,Math.round(-A.t)):Ug(Math.round(-A.l),0));var dt=e.select("."+Vc.cbfills).selectAll("rect."+Vc.cbfill).attr("style","").data(V);dt.enter().append("rect").classed(Vc.cbfill,!0).attr("style",""),dt.exit().remove();var Ht=p.map(Ee.c2p).map(Math.round).sort(function(Or,Nr){return Or-Nr});dt.each(function(Or,Nr){var ut=[Nr===0?p[0]:(V[Nr]+V[Nr-1])/2,Nr===V.length-1?p[1]:(V[Nr]+V[Nr+1])/2].map(Ee.c2p).map(Math.round);n&&(ut[1]=B0.constrain(ut[1]+(ut[1]>ut[0])?1:-1,Ht[0],Ht[1]));var Ne=w_.select(this).attr(n?"x":"y",_e).attr(n?"y":"x",w_.min(ut)).attr(n?"width":"height",Math.max(X,2)).attr(n?"height":"width",Math.max(w_.max(ut)-w_.min(ut),2));if(t._fillgradient)Ng.gradient(Ne,r,t._id,n?"vertical":"horizontalreversed",t._fillgradient,"fill");else{var Ye=T(Or).replace("e-","");Ne.attr("fill",uV(Ye).toHexString())}});var $t=e.select("."+Vc.cblines).selectAll("path."+Vc.cbline).data(_.color&&_.width?H:[]);$t.enter().append("path").classed(Vc.cbline,!0),$t.exit().remove(),$t.each(function(Or){var Nr=_e,ut=Math.round(Ee.c2p(Or))+_.width/2%1;w_.select(this).attr("d","M"+(n?Nr+","+ut:ut+","+Nr)+(n?"h":"v")+X).call(Ng.lineGroupStyle,_.width,P(Or),_.dash)}),ct.selectAll("g."+Ee._id+"tick,path").remove();var fr=_e+X+(l||0)/2-(t.ticks==="outside"?1:0),_r=Ry.calcTicks(Ee),Br=Ry.getTickSigns(Ee)[2];return Ry.drawTicks(r,Ee,{vals:Ee.ticks==="inside"?Ry.clipEnds(Ee,_r):_r,layer:ct,path:Ry.makeTickPath(Ee,fr,Br),transFn:Ry.makeTransTickFn(Ee)}),Ry.drawLabels(r,Ee,{vals:_r,layer:ct,transFn:Ry.makeTransTickLabelFn(Ee),labelFns:Ry.makeLabelFns(Ee,fr)})}function xr(){var er,Ke=X+l/2;Ge.indexOf("inside")===-1&&(er=Ng.bBox(ct.node()),Ke+=n?er.width:er.height),qt=ce.select("text");var xt=0,bt=n&&M==="top",Lt=!n&&M==="right",St=0;if(qt.node()&&!qt.classed(Vc.jsPlaceholder)){var Et,dt=ce.select(".h"+Ee._id+"title-math-group").node();dt&&(n&&Ae||!n&&!Ae)?(er=Ng.bBox(dt),xt=er.width,Et=er.height):(er=Ng.bBox(ce.node()),xt=er.right-A.l-(n?_e:Te),Et=er.bottom-A.t-(n?Te:_e),!n&&M==="top"&&(Ke+=er.height,St=er.height)),Lt&&(qt.attr("transform",Ug(xt/2+nt/2,0)),xt*=2),Ke=Math.max(Ke,n?xt:Et)}var Ht=(n?d:v)*2+Ke+u+l/2,$t=0;!n&&C.text&&h==="bottom"&&b<=0&&($t=Ht/2,Ht+=$t,St+=$t),k._hColorbarMoveTitle=$t,k._hColorbarMoveCBTitle=St;var fr=u+l,_r=(n?_e:Te)-fr/2-(n?d:0),Br=(n?Te:_e)-(n?N:v+St-$t);e.select("."+Vc.cbbg).attr("x",_r).attr("y",Br).attr(n?"width":"height",Math.max(Ht-$t,2)).attr(n?"height":"width",Math.max(N+fr,2)).call(fV.fill,c).call(fV.stroke,t.bordercolor).style("stroke-width",u);var Or=Lt?Math.max(xt-10,0):0;e.selectAll("."+Vc.cboutline).attr("x",(n?_e:Te+d)+Or).attr("y",(n?Te+v-N:_e)+(bt?rt:0)).attr(n?"width":"height",Math.max(X,2)).attr(n?"height":"width",Math.max(N-(n?2*v+rt:2*d+Or),2)).call(fV.stroke,t.outlinecolor).style({fill:"none","stroke-width":l});var Nr=n?Me*Ht:0,ut=n?0:(1-ke)*Ht-St;if(Nr=E?A.l-Nr:-Nr,ut=g?A.t-ut:-ut,e.attr("transform",Ug(Nr,ut)),!n&&(u||uV(c).getAlpha()&&!uV.equals(k.paper_bgcolor,c))){var Ne=ct.selectAll("text"),Ye=Ne[0].length,Ve=e.select("."+Vc.cbbg).node(),Xe=Ng.bBox(Ve),ht=Ng.getTranslate(e),Le=2;Ne.each(function(ri,bi){var nn=0,Wi=Ye-1;if(bi===nn||bi===Wi){var Ni=Ng.bBox(this),_n=Ng.getTranslate(this),$i;if(bi===Wi){var zn=Ni.right+_n.x,Wn=Xe.right+ht.x+Te-u-Le+x;$i=Wn-zn,$i>0&&($i=0)}else if(bi===nn){var It=Ni.left+_n.x,ft=Xe.left+ht.x+Te+u+Le;$i=ft-It,$i<0&&($i=0)}$i&&(Ye<3?this.setAttribute("transform","translate("+$i+",0) "+this.getAttribute("transform")):this.setAttribute("visibility","hidden"))}})}var xe={},Se=pme[f],lt=gme[f],Gt=pme[h],Vt=gme[h],ar=Ht-X;n?(a==="pixels"?(xe.y=b,xe.t=N*Gt,xe.b=N*Vt):(xe.t=xe.b=0,xe.yt=b+i*Gt,xe.yb=b-i*Vt),s==="pixels"?(xe.x=x,xe.l=Ht*Se,xe.r=Ht*lt):(xe.l=ar*Se,xe.r=ar*lt,xe.xl=x-o*Se,xe.xr=x+o*lt)):(a==="pixels"?(xe.x=x,xe.l=N*Se,xe.r=N*lt):(xe.l=xe.r=0,xe.xl=x+i*Se,xe.xr=x-i*lt),s==="pixels"?(xe.y=1-b,xe.t=Ht*Gt,xe.b=Ht*Vt):(xe.t=ar*Gt,xe.b=ar*Vt,xe.yt=b-o*Gt,xe.yb=b+o*Vt));var Qr=t.y<.5?"b":"t",ai=t.x<.5?"l":"r";r._fullLayout._reservedMargin[t._id]={};var jr={r:k.width-_r-Nr,l:_r+xe.r,b:k.height-Br-ut,t:Br+xe.b};E&&g?PI.autoMargin(r,t._id,xe):E?r._fullLayout._reservedMargin[t._id][Qr]=jr[Qr]:g||n?r._fullLayout._reservedMargin[t._id][ai]=jr[ai]:r._fullLayout._reservedMargin[t._id][Qr]=jr[Qr]}return B0.syncOrAsync([PI.previousPromises,kt,Yt,Ct,PI.previousPromises,xr],r)}function emt(e,t,r){var n=t.orientation==="v",i=r._fullLayout,a=i._size,o,s,l;LI.init({element:e.node(),gd:r,prepFn:function(){o=e.attr("transform"),cV(e)},moveFn:function(u,c){e.attr("transform",o+Ug(u,c)),s=LI.align((n?t._uFrac:t._vFrac)+u/a.w,n?t._thickFrac:t._lenFrac,0,1,t.xanchor),l=LI.align((n?t._vFrac:1-t._uFrac)-c/a.h,n?t._lenFrac:t._thickFrac,0,1,t.yanchor);var f=LI.getCursor(s,l,t.xanchor,t.yanchor);cV(e,f)},doneFn:function(){if(cV(e),s!==void 0&&l!==void 0){var u={};u[t._propPrefix+"x"]=s,u[t._propPrefix+"y"]=l,t._traceIndex!==void 0?dme.call("_guiRestyle",r,u,t._traceIndex):dme.call("_guiRelayout",r,u)}}})}function tmt(e,t,r){var n=t._levels,i=[],a=[],o,s,l=n.end+n.size/100,u=n.size,c=1.001*r[0]-.001*r[1],f=1.001*r[1]-.001*r[0];for(s=0;s<1e5&&(o=n.start+s*u,!(u>0?o>=l:o<=l));s++)o>c&&o0?o>=l:o<=l));s++)o>r[0]&&o{"use strict";xme.exports={moduleType:"component",name:"colorbar",attributes:Y6(),supplyDefaults:AO(),draw:_me().draw,hasColorbar:mO()}});var Tme=ye((ror,wme)=>{"use strict";wme.exports={moduleType:"component",name:"legend",layoutAttributes:yB(),supplyLayoutDefaults:bB(),draw:RB(),style:CB()}});var Sme=ye((ior,Ame)=>{"use strict";Ame.exports={moduleType:"locale",name:"en",dictionary:{"Click to enter Colorscale title":"Click to enter Colourscale title"},format:{days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],periods:["AM","PM"],dateTime:"%a %b %e %X %Y",date:"%d/%m/%Y",time:"%H:%M:%S",decimal:".",thousands:",",grouping:[3],currency:["$",""],year:"%Y",month:"%b %Y",dayMonth:"%b %-d",dayMonthYear:"%b %-d, %Y"}}});var Eme=ye((nor,Mme)=>{"use strict";Mme.exports={moduleType:"locale",name:"en-US",dictionary:{"Click to enter Colorscale title":"Click to enter Colorscale title"},format:{date:"%m/%d/%Y"}}});var vV=ye((aor,Pme)=>{"use strict";var imt=ba(),Lme=Mr(),dV=Lme.extendFlat,kme=Lme.extendDeep;function Cme(e){var t;switch(e){case"themes__thumb":t={autosize:!0,width:150,height:150,title:{text:""},showlegend:!1,margin:{l:5,r:5,t:5,b:5,pad:0},annotations:[]};break;case"thumbnail":t={title:{text:""},hidesources:!0,showlegend:!1,borderwidth:0,bordercolor:"",margin:{l:1,r:1,t:1,b:1,pad:0},annotations:[]};break;default:t={}}return t}function nmt(e){var t=["xaxis","yaxis","zaxis"];return t.indexOf(e.slice(0,5))>-1}Pme.exports=function(t,r){var n,i=t.data,a=t.layout,o=kme([],i),s=kme({},a,Cme(r.tileClass)),l=t._context||{};if(r.width&&(s.width=r.width),r.height&&(s.height=r.height),r.tileClass==="thumbnail"||r.tileClass==="themes__thumb"){s.annotations=[];var u=Object.keys(s);for(n=0;n{"use strict";var amt=vb().EventEmitter,omt=ba(),smt=Mr(),Ime=Ly(),lmt=vV(),umt=OP(),cmt=BP();function fmt(e,t){var r=new amt,n=lmt(e,{format:"png"}),i=n.gd;i.style.position="absolute",i.style.left="-5000px",document.body.appendChild(i);function a(){var s=Ime.getDelay(i._fullLayout);setTimeout(function(){var l=umt(i),u=document.createElement("canvas");u.id=smt.randstr(),r=cmt({format:t.format,width:i._fullLayout.width,height:i._fullLayout.height,canvas:u,emitter:r,svg:l}),r.clean=function(){i&&document.body.removeChild(i)}},s)}var o=Ime.getRedrawFunc(i);return omt.call("_doPlot",i,n.data,n.layout,n.config).then(o).then(a).catch(function(s){r.emit("error",s)}),r}Rme.exports=fmt});var qme=ye((sor,Fme)=>{"use strict";var zme=Ly(),hmt={getDelay:zme.getDelay,getRedrawFunc:zme.getRedrawFunc,clone:vV(),toSVG:OP(),svgToImg:BP(),toImage:Dme(),downloadImage:YN()};Fme.exports=hmt});var Bme=ye(Dy=>{"use strict";Dy.version=QC().version;QQ();Vie();var dmt=ba(),u4=Dy.register=dmt.register,gV=sde(),Ome=Object.keys(gV);for(II=0;II{"use strict";Nme.exports=Bme()});var Qb=ye((cor,Vme)=>{"use strict";Vme.exports={TEXTPAD:3,eventDataKeys:["value","label"]}});var Lm=ye((hor,Wme)=>{"use strict";var Tf=Uc(),Hme=Oc().axisHoverFormat,vmt=Wo().hovertemplateAttrs,pmt=Wo().texttemplateAttrs,jme=Kl(),gmt=Su(),Gme=Qb(),mmt=Ed().pattern,e2=no().extendFlat,mV=gmt({editType:"calc",arrayOk:!0,colorEditType:"style"}),ymt=Tf.marker,_mt=ymt.line,xmt=e2({},_mt.width,{dflt:0}),bmt=e2({width:xmt,editType:"calc"},jme("marker.line")),wmt=e2({line:bmt,editType:"calc"},jme("marker"),{opacity:{valType:"number",arrayOk:!0,dflt:1,min:0,max:1,editType:"style"},pattern:mmt,cornerradius:{valType:"any",editType:"calc"}});Wme.exports={x:Tf.x,x0:Tf.x0,dx:Tf.dx,y:Tf.y,y0:Tf.y0,dy:Tf.dy,xperiod:Tf.xperiod,yperiod:Tf.yperiod,xperiod0:Tf.xperiod0,yperiod0:Tf.yperiod0,xperiodalignment:Tf.xperiodalignment,yperiodalignment:Tf.yperiodalignment,xhoverformat:Hme("x"),yhoverformat:Hme("y"),text:Tf.text,texttemplate:pmt({editType:"plot"},{keys:Gme.eventDataKeys}),hovertext:Tf.hovertext,hovertemplate:vmt({},{keys:Gme.eventDataKeys}),textposition:{valType:"enumerated",values:["inside","outside","auto","none"],dflt:"auto",arrayOk:!0,editType:"calc"},insidetextanchor:{valType:"enumerated",values:["end","middle","start"],dflt:"end",editType:"plot"},textangle:{valType:"angle",dflt:"auto",editType:"plot"},textfont:e2({},mV,{}),insidetextfont:e2({},mV,{}),outsidetextfont:e2({},mV,{}),constraintext:{valType:"enumerated",values:["inside","outside","both","none"],dflt:"both",editType:"calc"},cliponaxis:e2({},Tf.cliponaxis,{}),orientation:{valType:"enumerated",values:["v","h"],editType:"calc+clearAxisTypes"},base:{valType:"any",dflt:null,arrayOk:!0,editType:"calc"},offset:{valType:"number",dflt:null,arrayOk:!0,editType:"calc"},width:{valType:"number",dflt:null,min:0,arrayOk:!0,editType:"calc"},marker:wmt,offsetgroup:Tf.offsetgroup,alignmentgroup:Tf.alignmentgroup,selected:{marker:{opacity:Tf.selected.marker.opacity,color:Tf.selected.marker.color,editType:"style"},textfont:Tf.selected.textfont,editType:"style"},unselected:{marker:{opacity:Tf.unselected.marker.opacity,color:Tf.unselected.marker.color,editType:"style"},textfont:Tf.unselected.textfont,editType:"style"},zorder:Tf.zorder}});var DI=ye((dor,Zme)=>{"use strict";Zme.exports={barmode:{valType:"enumerated",values:["stack","group","overlay","relative"],dflt:"group",editType:"calc"},barnorm:{valType:"enumerated",values:["","fraction","percent"],dflt:"",editType:"calc"},bargap:{valType:"number",min:0,max:1,editType:"calc"},bargroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},barcornerradius:{valType:"any",editType:"calc"}}});var zI=ye((vor,Kme)=>{"use strict";var Tmt=va(),Xme=Dv().hasColorscale,Yme=Uh(),Amt=Mr().coercePattern;Kme.exports=function(t,r,n,i,a){var o=n("marker.color",i),s=Xme(t,"marker");s&&Yme(t,r,a,n,{prefix:"marker.",cLetter:"c"}),n("marker.line.color",Tmt.defaultLine),Xme(t,"marker.line")&&Yme(t,r,a,n,{prefix:"marker.line.",cLetter:"c"}),n("marker.line.width"),n("marker.opacity"),Amt(n,"marker.pattern",o,s),n("selected.marker.color"),n("unselected.marker.color")}});var r0=ye((por,rye)=>{"use strict";var Jme=uo(),xT=Mr(),$me=va(),Smt=ba(),Mmt=K3(),Emt=Pg(),kmt=zI(),Cmt=Hb(),Qme=Lm(),FI=xT.coerceFont;function Lmt(e,t,r,n){function i(u,c){return xT.coerce(e,t,Qme,u,c)}var a=Mmt(e,t,n,i);if(!a){t.visible=!1;return}Emt(e,t,n,i),i("xhoverformat"),i("yhoverformat"),i("zorder"),i("orientation",t.x&&!t.y?"h":"v"),i("base"),i("offset"),i("width"),i("text"),i("hovertext"),i("hovertemplate");var o=i("textposition");tye(e,t,n,i,o,{moduleHasSelected:!0,moduleHasUnselected:!0,moduleHasConstrain:!0,moduleHasCliponaxis:!0,moduleHasTextangle:!0,moduleHasInsideanchor:!0}),kmt(e,t,i,r,n);var s=(t.marker.line||{}).color,l=Smt.getComponentMethod("errorbars","supplyDefaults");l(e,t,s||$me.defaultLine,{axis:"y"}),l(e,t,s||$me.defaultLine,{axis:"x",inherit:"y"}),xT.coerceSelectionMarkerOpacity(t,i)}function Pmt(e,t){var r,n;function i(s,l){return xT.coerce(n._input,n,Qme,s,l)}for(var a=0;a=0)return e}else if(typeof e=="string"&&(e=e.trim(),e.slice(-1)==="%"&&Jme(e.slice(0,-1))&&(e=+e.slice(0,-1),e>=0)))return e+"%"}function tye(e,t,r,n,i,a){a=a||{};var o=a.moduleHasSelected!==!1,s=a.moduleHasUnselected!==!1,l=a.moduleHasConstrain!==!1,u=a.moduleHasCliponaxis!==!1,c=a.moduleHasTextangle!==!1,f=a.moduleHasInsideanchor!==!1,h=!!a.hasPathbar,d=Array.isArray(i)||i==="auto",v=d||i==="inside",x=d||i==="outside";if(v||x){var b=FI(n,"textfont",r.font),g=xT.extendFlat({},b),E=e.textfont&&e.textfont.color,k=!E;if(k&&delete g.color,FI(n,"insidetextfont",g),h){var A=xT.extendFlat({},b);k&&delete A.color,FI(n,"pathbar.textfont",A)}x&&FI(n,"outsidetextfont",b),o&&n("selected.textfont.color"),s&&n("unselected.textfont.color"),l&&n("constraintext"),u&&n("cliponaxis"),c&&n("textangle"),n("texttemplate")}v&&f&&n("insidetextanchor")}rye.exports={supplyDefaults:Lmt,crossTraceDefaults:Pmt,handleText:tye,validateCornerradius:eye}});var yV=ye((gor,iye)=>{"use strict";var Imt=ba(),Rmt=Qa(),Dmt=Mr(),zmt=DI(),Fmt=r0().validateCornerradius;iye.exports=function(e,t,r){function n(x,b){return Dmt.coerce(e,t,zmt,x,b)}for(var i=!1,a=!1,o=!1,s={},l=n("barmode"),u=l==="group",c=0;c0&&!s[h]&&(o=!0),s[h]=!0),f.visible&&f.type==="histogram"){var d=Rmt.getFromId({_fullLayout:t},f[f.orientation==="v"?"xaxis":"yaxis"]);d.type!=="category"&&(a=!0)}}if(!i){delete t.barmode;return}l!=="overlay"&&n("barnorm"),n("bargap",a&&!o?0:.2),n("bargroupgap");var v=n("barcornerradius");t.barcornerradius=Fmt(v)}});var c4=ye((mor,nye)=>{"use strict";var bT=Mr();nye.exports=function(t,r){for(var n=0;n{"use strict";var aye=Qa(),oye=Rg(),sye=Dv().hasColorscale,lye=zv(),qmt=c4(),Omt=F0();uye.exports=function(t,r){var n=aye.getFromId(t,r.xaxis||"x"),i=aye.getFromId(t,r.yaxis||"y"),a,o,s,l,u,c,f={msUTC:!!(r.base||r.base===0)};r.orientation==="h"?(a=n.makeCalcdata(r,"x",f),s=i.makeCalcdata(r,"y"),l=oye(r,i,"y",s),u=!!r.yperiodalignment,c="y"):(a=i.makeCalcdata(r,"y",f),s=n.makeCalcdata(r,"x"),l=oye(r,n,"x",s),u=!!r.xperiodalignment,c="x"),o=l.vals;for(var h=Math.min(o.length,a.length),d=new Array(h),v=0;v{"use strict";var Bmt=xa(),Nmt=Mr();function Umt(e,t,r){var n=e._fullLayout,i=n["_"+r+"Text_minsize"];if(i){var a=n.uniformtext.mode==="hide",o;switch(r){case"funnelarea":case"pie":case"sunburst":o="g.slice";break;case"treemap":case"icicle":o="g.slice, g.pathbar";break;default:o="g.points > g.point"}t.selectAll(o).each(function(s){var l=s.transform;if(l){l.scale=a&&l.hide?0:i/l.fontSize;var u=Bmt.select(this).select("text");Nmt.setTransormAndDisplay(u,l)}})}}function Vmt(e,t,r){if(r.uniformtext.mode){var n=fye(e),i=r.uniformtext.minsize,a=t.scale*t.fontSize;t.hide=a{"use strict";var Gmt=uo(),jmt=id(),dye=Mr().isArrayOrTypedArray;t2.coerceString=function(e,t,r){if(typeof t=="string"){if(t||!e.noBlank)return t}else if((typeof t=="number"||t===!0)&&!e.strict)return String(t);return r!==void 0?r:e.dflt};t2.coerceNumber=function(e,t,r){if(Gmt(t)){t=+t;var n=e.min,i=e.max,a=n!==void 0&&ti;if(!a)return t}return r!==void 0?r:e.dflt};t2.coerceColor=function(e,t,r){return jmt(t).isValid()?t:r!==void 0?r:e.dflt};t2.coerceEnumerated=function(e,t,r){return e.coerceNumber&&(t=+t),e.values.indexOf(t)!==-1?t:r!==void 0?r:e.dflt};t2.getValue=function(e,t){var r;return dye(e)?t{"use strict";var f4=xa(),Wmt=va(),h4=ao(),vye=Mr(),pye=ba(),gye=_v().resizeText,_V=Lm(),Zmt=_V.textfont,Xmt=_V.insidetextfont,Ymt=_V.outsidetextfont,Jd=qI();function Kmt(e){var t=f4.select(e).selectAll('g[class^="barlayer"]').selectAll("g.trace");gye(e,t,"bar");var r=t.size(),n=e._fullLayout;t.style("opacity",function(i){return i[0].trace.opacity}).each(function(i){(n.barmode==="stack"&&r>1||n.bargap===0&&n.bargroupgap===0&&!i[0].trace.marker.line.width)&&f4.select(this).attr("shape-rendering","crispEdges")}),t.selectAll("g.points").each(function(i){var a=f4.select(this),o=i[0].trace;mye(a,o,e)}),pye.getComponentMethod("errorbars","style")(t)}function mye(e,t,r){h4.pointStyle(e.selectAll("path"),t,r),yye(e,t,r)}function yye(e,t,r){e.selectAll("text").each(function(n){var i=f4.select(this),a=vye.ensureUniformFontSize(r,_ye(i,n,t,r));h4.font(i,a)})}function Jmt(e,t,r){var n=t[0].trace;n.selectedpoints?$mt(r,n,e):(mye(r,n,e),pye.getComponentMethod("errorbars","style")(r))}function $mt(e,t,r){h4.selectedPointStyle(e.selectAll("path"),t),Qmt(e.selectAll("text"),t,r)}function Qmt(e,t,r){e.each(function(n){var i=f4.select(this),a;if(n.selected){a=vye.ensureUniformFontSize(r,_ye(i,n,t,r));var o=t.selected.textfont&&t.selected.textfont.color;o&&(a.color=o),h4.font(i,a)}else h4.selectedTextStyle(i,t)})}function _ye(e,t,r,n){var i=n._fullLayout.font,a=r.textfont;if(e.classed("bartext-inside")){var o=Tye(t,r);a=bye(r,t.i,i,o)}else e.classed("bartext-outside")&&(a=wye(r,t.i,i));return a}function xye(e,t,r){return xV(Zmt,e.textfont,t,r)}function bye(e,t,r,n){var i=xye(e,t,r),a=e._input.textfont===void 0||e._input.textfont.color===void 0||Array.isArray(e.textfont.color)&&e.textfont.color[t]===void 0;return a&&(i={color:Wmt.contrast(n),family:i.family,size:i.size,weight:i.weight,style:i.style,variant:i.variant,textcase:i.textcase,lineposition:i.lineposition,shadow:i.shadow}),xV(Xmt,e.insidetextfont,t,i)}function wye(e,t,r){var n=xye(e,t,r);return xV(Ymt,e.outsidetextfont,t,n)}function xV(e,t,r,n){t=t||{};var i=Jd.getValue(t.family,r),a=Jd.getValue(t.size,r),o=Jd.getValue(t.color,r),s=Jd.getValue(t.weight,r),l=Jd.getValue(t.style,r),u=Jd.getValue(t.variant,r),c=Jd.getValue(t.textcase,r),f=Jd.getValue(t.lineposition,r),h=Jd.getValue(t.shadow,r);return{family:Jd.coerceString(e.family,i,n.family),size:Jd.coerceNumber(e.size,a,n.size),color:Jd.coerceColor(e.color,o,n.color),weight:Jd.coerceString(e.weight,s,n.weight),style:Jd.coerceString(e.style,l,n.style),variant:Jd.coerceString(e.variant,u,n.variant),textcase:Jd.coerceString(e.variant,c,n.textcase),lineposition:Jd.coerceString(e.variant,f,n.lineposition),shadow:Jd.coerceString(e.variant,h,n.shadow)}}function Tye(e,t){return t.type==="waterfall"?t[e.dir].marker.color:e.mcc||e.mc||t.marker.color}Aye.exports={style:Kmt,styleTextPoints:yye,styleOnSelect:Jmt,getInsideTextFont:bye,getOutsideTextFont:wye,getBarColor:Tye,resizeText:gye}});var i2=ye((wor,Iye)=>{"use strict";var OI=xa(),BI=uo(),Pd=Mr(),eyt=Ll(),tyt=va(),T_=ao(),ryt=ba(),NI=Qa().tickText,Sye=_v(),iyt=Sye.recordMinTextSize,nyt=Sye.clearMinTextSize,bV=N0(),wT=qI(),ayt=Qb(),Mye=Lm(),oyt=Mye.text,syt=Mye.textposition,lyt=rp().appendArrayPointValue,Uv=ayt.TEXTPAD;function uyt(e){return e.id}function cyt(e){if(e.ids)return uyt}function wV(e){return(e>0)-(e<0)}function Pm(e,t){return e0}function hyt(e,t,r,n,i,a){var o=t.xaxis,s=t.yaxis,l=e._fullLayout,u=e._context.staticPlot;i||(i={mode:l.barmode,norm:l.barmode,gap:l.bargap,groupgap:l.bargroupgap},nyt("bar",l));var c=Pd.makeTraceGroups(n,r,"trace bars").each(function(f){var h=OI.select(this),d=f[0].trace,v=f[0].t,x=d.type==="waterfall",b=d.type==="funnel",g=d.type==="histogram",E=d.type==="bar",k=E||b,A=0;x&&d.connector.visible&&d.connector.mode==="between"&&(A=d.connector.line.width/2);var L=d.orientation==="h",_=kye(i),C=Pd.ensureSingle(h,"g","points"),M=cyt(d),p=C.selectAll("g.point").data(Pd.identity,M);p.enter().append("g").classed("point",!0),p.exit().remove(),p.each(function(T,F){var q=OI.select(this),V=fyt(T,o,s,L),H=V[0][0],X=V[0][1],G=V[1][0],N=V[1][1],W=(L?X-H:N-G)===0;W&&k&&wT.getLineWidth(d,T)&&(W=!1),W||(W=!BI(H)||!BI(X)||!BI(G)||!BI(N)),T.isBlank=W,W&&(L?X=H:N=G),A&&!W&&(L?(H-=Pm(H,X)*A,X+=Pm(H,X)*A):(G-=Pm(G,N)*A,N+=Pm(G,N)*A));var re,ae;if(d.type==="waterfall"){if(!W){var _e=d[T.dir].marker;re=_e.line.width,ae=_e.color}}else re=wT.getLineWidth(d,T),ae=T.mc||d.marker.color;function Me(Ke){var xt=OI.round(re/2%1,2);return i.gap===0&&i.groupgap===0?OI.round(Math.round(Ke)-xt,2):Ke}function ke(Ke,xt,bt){return bt&&Ke===xt?Ke:Math.abs(Ke-xt)>=2?Me(Ke):Ke>xt?Math.ceil(Ke):Math.floor(Ke)}var ge=tyt.opacity(ae),ie=ge<1||re>.01?Me:ke;e._context.staticPlot||(H=ie(H,X,L),X=ie(X,H,L),G=ie(G,N,!L),N=ie(N,G,!L));var Te=L?o.c2p:s.c2p,Ee;T.s0>0?Ee=T._sMax:T.s0<0?Ee=T._sMin:Ee=T.s1>0?T._sMax:T._sMin;function Ae(Ke,xt){if(!Ke)return 0;var bt=Math.abs(L?N-G:X-H),Lt=Math.abs(L?X-H:N-G),St=ie(Math.abs(Te(Ee,!0)-Te(0,!0))),Et=T.hasB?Math.min(bt/2,Lt/2):Math.min(bt/2,St),dt;if(xt==="%"){var Ht=Math.min(50,Ke);dt=bt*(Ht/100)}else dt=Ke;return ie(Math.max(Math.min(dt,Et),0))}var ze=E||g?Ae(v.cornerradiusvalue,v.cornerradiusform):0,Ce,me,Re="M"+H+","+G+"V"+N+"H"+X+"V"+G+"Z",ce=0;if(ze&&T.s){var Ge=wV(T.s0)===0||wV(T.s)===wV(T.s0)?T.s1:T.s0;if(ce=ie(T.hasB?0:Math.abs(Te(Ee,!0)-Te(Ge,!0))),ce0?Math.sqrt(ce*(2*ze-ce)):0,Rt=nt>0?Math.max:Math.min;Ce="M"+H+","+G+"V"+(N-rt*ct)+"H"+Rt(X-(ze-ce)*nt,H)+"A "+ze+","+ze+" 0 0 "+qt+" "+X+","+(N-ze*ct-ot)+"V"+(G+ze*ct+ot)+"A "+ze+","+ze+" 0 0 "+qt+" "+Rt(X-(ze-ce)*nt,H)+","+(G+rt*ct)+"Z"}else if(T.hasB)Ce="M"+(H+ze*nt)+","+G+"A "+ze+","+ze+" 0 0 "+qt+" "+H+","+(G+ze*ct)+"V"+(N-ze*ct)+"A "+ze+","+ze+" 0 0 "+qt+" "+(H+ze*nt)+","+N+"H"+(X-ze*nt)+"A "+ze+","+ze+" 0 0 "+qt+" "+X+","+(N-ze*ct)+"V"+(G+ze*ct)+"A "+ze+","+ze+" 0 0 "+qt+" "+(X-ze*nt)+","+G+"Z";else{me=Math.abs(N-G)+ce;var kt=me0?Math.sqrt(ce*(2*ze-ce)):0,Yt=ct>0?Math.max:Math.min;Ce="M"+(H+kt*nt)+","+G+"V"+Yt(N-(ze-ce)*ct,G)+"A "+ze+","+ze+" 0 0 "+qt+" "+(H+ze*nt-Ct)+","+N+"H"+(X-ze*nt+Ct)+"A "+ze+","+ze+" 0 0 "+qt+" "+(X-kt*nt)+","+Yt(N-(ze-ce)*ct,G)+"V"+G+"Z"}}else Ce=Re}else Ce=Re;var xr=Eye(Pd.ensureSingle(q,"path"),l,i,a);if(xr.style("vector-effect",u?"none":"non-scaling-stroke").attr("d",isNaN((X-H)*(N-G))||W&&e._context.staticPlot?"M0,0Z":Ce).call(T_.setClipUrl,t.layerClipId,e),!l.uniformtext.mode&&_){var er=T_.makePointStyleFns(d);T_.singlePointStyle(T,xr,d,er,e)}dyt(e,t,q,f,F,H,X,G,N,ze,ce,i,a),t.layerClipId&&T_.hideOutsideRangePoint(T,q.select("text"),o,s,d.xcalendar,d.ycalendar)});var P=d.cliponaxis===!1;T_.setClipUrl(h,P?null:t.layerClipId,e)});ryt.getComponentMethod("errorbars","plot")(e,c,t,i)}function dyt(e,t,r,n,i,a,o,s,l,u,c,f,h){var d=t.xaxis,v=t.yaxis,x=e._fullLayout,b;function g(me,Re,ce){var Ge=Pd.ensureSingle(me,"text").text(Re).attr({class:"bartext bartext-"+b,"text-anchor":"middle","data-notex":1}).call(T_.font,ce).call(eyt.convertToTspans,e);return Ge}var E=n[0].trace,k=E.orientation==="h",A=gyt(x,n,i,d,v);b=myt(E,i);var L=f.mode==="stack"||f.mode==="relative",_=n[i],C=!L||_._outmost,M=_.hasB,p=u&&u-c>Uv;if(!A||b==="none"||(_.isBlank||a===o||s===l)&&(b==="auto"||b==="inside")){r.select("text").remove();return}var P=x.font,T=bV.getBarColor(n[i],E),F=bV.getInsideTextFont(E,i,P,T),q=bV.getOutsideTextFont(E,i,P),V=E.insidetextanchor||"end",H=r.datum();k?d.type==="log"&&H.s0<=0&&(d.range[0]0&&Me>0,ie;p?M?ie=r2(N-2*u,W,_e,Me,k)||r2(N,W-2*u,_e,Me,k):k?ie=r2(N-(u-c),W,_e,Me,k)||r2(N,W-2*(u-c),_e,Me,k):ie=r2(N,W-(u-c),_e,Me,k)||r2(N-2*(u-c),W,_e,Me,k):ie=r2(N,W,_e,Me,k),ge&&ie?b="inside":(b="outside",re.remove(),re=null)}else b="inside";if(!re){ke=Pd.ensureUniformFontSize(e,b==="outside"?q:F),re=g(r,A,ke);var Te=re.attr("transform");if(re.attr("transform",""),ae=T_.bBox(re.node()),_e=ae.width,Me=ae.height,re.attr("transform",Te),_e<=0||Me<=0){re.remove();return}}var Ee=E.textangle,Ae,ze;b==="outside"?(ze=E.constraintext==="both"||E.constraintext==="outside",Ae=pyt(a,o,s,l,ae,{isHorizontal:k,constrained:ze,angle:Ee})):(ze=E.constraintext==="both"||E.constraintext==="inside",Ae=Pye(a,o,s,l,ae,{isHorizontal:k,constrained:ze,angle:Ee,anchor:V,hasB:M,r:u,overhead:c})),Ae.fontSize=ke.size,iyt(E.type==="histogram"?"bar":E.type,Ae,x),_.transform=Ae;var Ce=Eye(re,x,f,h);Pd.setTransormAndDisplay(Ce,Ae)}function r2(e,t,r,n,i){if(e<0||t<0)return!1;var a=r<=e&&n<=t,o=r<=t&&n<=e,s=i?e>=r*(t/n):t>=n*(e/r);return a||o||s}function Cye(e){return e==="auto"?0:e}function Lye(e,t){var r=Math.PI/180*t,n=Math.abs(Math.sin(r)),i=Math.abs(Math.cos(r));return{x:e.width*i+e.height*n,y:e.width*n+e.height*i}}function Pye(e,t,r,n,i,a){var o=!!a.isHorizontal,s=!!a.constrained,l=a.angle||0,u=a.anchor,c=u==="end",f=u==="start",h=a.leftToRight||0,d=(h+1)/2,v=1-d,x=a.hasB,b=a.r,g=a.overhead,E=i.width,k=i.height,A=Math.abs(t-e),L=Math.abs(n-r),_=A>2*Uv&&L>2*Uv?Uv:0;A-=2*_,L-=2*_;var C=Cye(l);l==="auto"&&!(E<=A&&k<=L)&&(E>A||k>L)&&(!(E>L||k>A)||EUv){var T=vyt(e,t,r,n,M,b,g,o,x);p=T.scale,P=T.pad}else p=1,s&&(p=Math.min(1,A/M.x,L/M.y)),P=0;var F=i.left*v+i.right*d,q=(i.top+i.bottom)/2,V=(e+Uv)*v+(t-Uv)*d,H=(r+n)/2,X=0,G=0;if(f||c){var N=(o?M.x:M.y)/2;b&&(c||x)&&(_+=P);var W=o?Pm(e,t):Pm(r,n);o?f?(V=e+W*_,X=-W*N):(V=t-W*_,X=W*N):f?(H=r+W*_,G=-W*N):(H=n-W*_,G=W*N)}return{textX:F,textY:q,targetX:V,targetY:H,anchorX:X,anchorY:G,scale:p,rotate:C}}function vyt(e,t,r,n,i,a,o,s,l){var u=Math.max(0,Math.abs(t-e)-2*Uv),c=Math.max(0,Math.abs(n-r)-2*Uv),f=a-Uv,h=o?f-Math.sqrt(f*f-(f-o)*(f-o)):f,d=l?f*2:s?f-o:2*h,v=l?f*2:s?2*h:f-o,x,b,g,E,k;return i.y/i.x>=c/(u-d)?E=c/i.y:i.y/i.x<=(c-v)/u?E=u/i.x:!l&&s?(x=i.x*i.x+i.y*i.y/4,b=-2*i.x*(u-f)-i.y*(c/2-f),g=(u-f)*(u-f)+(c/2-f)*(c/2-f)-f*f,E=(-b+Math.sqrt(b*b-4*x*g))/(2*x)):l?(x=(i.x*i.x+i.y*i.y)/4,b=-i.x*(u/2-f)-i.y*(c/2-f),g=(u/2-f)*(u/2-f)+(c/2-f)*(c/2-f)-f*f,E=(-b+Math.sqrt(b*b-4*x*g))/(2*x)):(x=i.x*i.x/4+i.y*i.y,b=-i.x*(u/2-f)-2*i.y*(c-f),g=(u/2-f)*(u/2-f)+(c-f)*(c-f)-f*f,E=(-b+Math.sqrt(b*b-4*x*g))/(2*x)),E=Math.min(1,E),s?k=Math.max(0,f-Math.sqrt(Math.max(0,f*f-(f-(c-i.y*E)/2)*(f-(c-i.y*E)/2)))-o):k=Math.max(0,f-Math.sqrt(Math.max(0,f*f-(f-(u-i.x*E)/2)*(f-(u-i.x*E)/2)))-o),{scale:E,pad:k}}function pyt(e,t,r,n,i,a){var o=!!a.isHorizontal,s=!!a.constrained,l=a.angle||0,u=i.width,c=i.height,f=Math.abs(t-e),h=Math.abs(n-r),d;o?d=h>2*Uv?Uv:0:d=f>2*Uv?Uv:0;var v=1;s&&(v=o?Math.min(1,h/c):Math.min(1,f/u));var x=Cye(l),b=Lye(i,x),g=(o?b.x:b.y)/2,E=(i.left+i.right)/2,k=(i.top+i.bottom)/2,A=(e+t)/2,L=(r+n)/2,_=0,C=0,M=o?Pm(t,e):Pm(r,n);return o?(A=t-M*d,_=M*g):(L=n+M*d,C=-M*g),{textX:E,textY:k,targetX:A,targetY:L,anchorX:_,anchorY:C,scale:v,rotate:x}}function gyt(e,t,r,n,i){var a=t[0].trace,o=a.texttemplate,s;return o?s=yyt(e,t,r,n,i):a.textinfo?s=_yt(t,r,n,i):s=wT.getValue(a.text,r),wT.coerceString(oyt,s)}function myt(e,t){var r=wT.getValue(e.textposition,t);return wT.coerceEnumerated(syt,r)}function yyt(e,t,r,n,i){var a=t[0].trace,o=Pd.castOption(a,r,"texttemplate");if(!o)return"";var s=a.type==="histogram",l=a.type==="waterfall",u=a.type==="funnel",c=a.orientation==="h",f,h,d,v;c?(f="y",h=i,d="x",v=n):(f="x",h=n,d="y",v=i);function x(_){return NI(h,h.c2l(_),!0).text}function b(_){return NI(v,v.c2l(_),!0).text}var g=t[r],E={};E.label=g.p,E.labelLabel=E[f+"Label"]=x(g.p);var k=Pd.castOption(a,g.i,"text");(k===0||k)&&(E.text=k),E.value=g.s,E.valueLabel=E[d+"Label"]=b(g.s);var A={};lyt(A,a,g.i),(s||A.x===void 0)&&(A.x=c?E.value:E.label),(s||A.y===void 0)&&(A.y=c?E.label:E.value),(s||A.xLabel===void 0)&&(A.xLabel=c?E.valueLabel:E.labelLabel),(s||A.yLabel===void 0)&&(A.yLabel=c?E.labelLabel:E.valueLabel),l&&(E.delta=+g.rawS||g.s,E.deltaLabel=b(E.delta),E.final=g.v,E.finalLabel=b(E.final),E.initial=E.final-E.delta,E.initialLabel=b(E.initial)),u&&(E.value=g.s,E.valueLabel=b(E.value),E.percentInitial=g.begR,E.percentInitialLabel=Pd.formatPercent(g.begR),E.percentPrevious=g.difR,E.percentPreviousLabel=Pd.formatPercent(g.difR),E.percentTotal=g.sumR,E.percenTotalLabel=Pd.formatPercent(g.sumR));var L=Pd.castOption(a,g.i,"customdata");return L&&(E.customdata=L),Pd.texttemplateString(o,E,e._d3locale,A,E,a._meta||{})}function _yt(e,t,r,n){var i=e[0].trace,a=i.orientation==="h",o=i.type==="waterfall",s=i.type==="funnel";function l(L){var _=a?n:r;return NI(_,L,!0).text}function u(L){var _=a?r:n;return NI(_,+L,!0).text}var c=i.textinfo,f=e[t],h=c.split("+"),d=[],v,x=function(L){return h.indexOf(L)!==-1};if(x("label")&&d.push(l(e[t].p)),x("text")&&(v=Pd.castOption(i,f.i,"text"),(v===0||v)&&d.push(v)),o){var b=+f.rawS||f.s,g=f.v,E=g-b;x("initial")&&d.push(u(E)),x("delta")&&d.push(u(b)),x("final")&&d.push(u(g))}if(s){x("value")&&d.push(u(f.s));var k=0;x("percent initial")&&k++,x("percent previous")&&k++,x("percent total")&&k++;var A=k>1;x("percent initial")&&(v=Pd.formatPercent(f.begR),A&&(v+=" of initial"),d.push(v)),x("percent previous")&&(v=Pd.formatPercent(f.difR),A&&(v+=" of previous"),d.push(v)),x("percent total")&&(v=Pd.formatPercent(f.sumR),A&&(v+=" of total"),d.push(v))}return d.join("
")}Iye.exports={plot:hyt,toMoveInsideBar:Pye}});var TT=ye((Tor,Fye)=>{"use strict";var d4=Nc(),xyt=ba(),Rye=va(),byt=Mr().fillText,wyt=qI().getLineWidth,TV=Qa().hoverLabelText,Tyt=es().BADNUM;function Ayt(e,t,r,n,i){var a=Dye(e,t,r,n,i);if(a){var o=a.cd,s=o[0].trace,l=o[a.index];return a.color=zye(s,l),xyt.getComponentMethod("errorbars","hoverInfo")(l,s,a),[a]}}function Dye(e,t,r,n,i){var a=e.cd,o=a[0].trace,s=a[0].t,l=n==="closest",u=o.type==="waterfall",c=e.maxHoverDistance,f=e.maxSpikeDistance,h,d,v,x,b,g,E;o.orientation==="h"?(h=r,d=t,v="y",x="x",b=H,g=F):(h=t,d=r,v="x",x="y",g=H,b=F);var k=o[v+"period"],A=l||k;function L(ie){return C(ie,-1)}function _(ie){return C(ie,1)}function C(ie,Te){var Ee=ie.w;return ie[v]+Te*Ee/2}function M(ie){return ie[v+"End"]-ie[v+"Start"]}var p=l?L:k?function(ie){return ie.p-M(ie)/2}:function(ie){return Math.min(L(ie),ie.p-s.bardelta/2)},P=l?_:k?function(ie){return ie.p+M(ie)/2}:function(ie){return Math.max(_(ie),ie.p+s.bardelta/2)};function T(ie,Te,Ee){return i.finiteRange&&(Ee=0),d4.inbox(ie-h,Te-h,Ee+Math.min(1,Math.abs(Te-ie)/E)-1)}function F(ie){return T(p(ie),P(ie),c)}function q(ie){return T(L(ie),_(ie),f)}function V(ie){var Te=ie[x];if(u){var Ee=Math.abs(ie.rawS)||0;d>0?Te+=Ee:d<0&&(Te-=Ee)}return Te}function H(ie){var Te=d,Ee=ie.b,Ae=V(ie);return d4.inbox(Ee-Te,Ae-Te,c+(Ae-Te)/(Ae-Ee)-1)}function X(ie){var Te=d,Ee=ie.b,Ae=V(ie);return d4.inbox(Ee-Te,Ae-Te,f+(Ae-Te)/(Ae-Ee)-1)}var G=e[v+"a"],N=e[x+"a"];E=Math.abs(G.r2c(G.range[1])-G.r2c(G.range[0]));function W(ie){return(b(ie)+g(ie))/2}var re=d4.getDistanceFunction(n,b,g,W);if(d4.getClosest(a,re,e),e.index!==!1&&a[e.index].p!==Tyt){A||(p=function(ie){return Math.min(L(ie),ie.p-s.bargroupwidth/2)},P=function(ie){return Math.max(_(ie),ie.p+s.bargroupwidth/2)});var ae=e.index,_e=a[ae],Me=o.base?_e.b+_e.s:_e.s;e[x+"0"]=e[x+"1"]=N.c2p(_e[x],!0),e[x+"LabelVal"]=Me;var ke=s.extents[s.extents.round(_e.p)];e[v+"0"]=G.c2p(l?p(_e):ke[0],!0),e[v+"1"]=G.c2p(l?P(_e):ke[1],!0);var ge=_e.orig_p!==void 0;return e[v+"LabelVal"]=ge?_e.orig_p:_e.p,e.labelLabel=TV(G,e[v+"LabelVal"],o[v+"hoverformat"]),e.valueLabel=TV(N,e[x+"LabelVal"],o[x+"hoverformat"]),e.baseLabel=TV(N,_e.b,o[x+"hoverformat"]),e.spikeDistance=(X(_e)+q(_e))/2,e[v+"Spike"]=G.c2p(_e.p,!0),byt(_e,o,e),e.hovertemplate=o.hovertemplate,e}}function zye(e,t){var r=t.mcc||e.marker.color,n=t.mlcc||e.marker.line.color,i=wyt(e,t);if(Rye.opacity(r))return r;if(Rye.opacity(n)&&i)return n}Fye.exports={hoverPoints:Ayt,hoverOnBars:Dye,getTraceColor:zye}});var Oye=ye((Aor,qye)=>{"use strict";qye.exports=function(t,r,n){return t.x="xVal"in r?r.xVal:r.x,t.y="yVal"in r?r.yVal:r.y,r.xa&&(t.xaxis=r.xa),r.ya&&(t.yaxis=r.ya),n.orientation==="h"?(t.label=t.y,t.value=t.x):(t.label=t.x,t.value=t.y),t}});var AT=ye((Sor,Bye)=>{"use strict";Bye.exports=function(t,r){var n=t.cd,i=t.xaxis,a=t.yaxis,o=n[0].trace,s=o.type==="funnel",l=o.orientation==="h",u=[],c;if(r===!1)for(c=0;c{"use strict";Nye.exports={attributes:Lm(),layoutAttributes:DI(),supplyDefaults:r0().supplyDefaults,crossTraceDefaults:r0().crossTraceDefaults,supplyLayoutDefaults:yV(),calc:cye(),crossTraceCalc:Gb().crossTraceCalc,colorbar:Kd(),arraysToCalcdata:c4(),plot:i2().plot,style:N0().style,styleOnSelect:N0().styleOnSelect,hoverPoints:TT().hoverPoints,eventData:Oye(),selectPoints:AT(),moduleType:"trace",name:"bar",basePlotModule:Jf(),categories:["bar-like","cartesian","svg","bar","oriented","errorBarsOK","showLegend","zoomScale"],animatable:!0,meta:{}}});var Hye=ye((Eor,Vye)=>{"use strict";Vye.exports=Uye()});var v4=ye((kor,Zye)=>{"use strict";var Myt=Eg(),U0=Uc(),Gye=Lm(),Eyt=dh(),jye=Oc().axisHoverFormat,kyt=Wo().hovertemplateAttrs,zy=no().extendFlat,ST=U0.marker,Wye=ST.line;Zye.exports={y:{valType:"data_array",editType:"calc+clearAxisTypes"},x:{valType:"data_array",editType:"calc+clearAxisTypes"},x0:{valType:"any",editType:"calc+clearAxisTypes"},y0:{valType:"any",editType:"calc+clearAxisTypes"},dx:{valType:"number",editType:"calc"},dy:{valType:"number",editType:"calc"},xperiod:U0.xperiod,yperiod:U0.yperiod,xperiod0:U0.xperiod0,yperiod0:U0.yperiod0,xperiodalignment:U0.xperiodalignment,yperiodalignment:U0.yperiodalignment,xhoverformat:jye("x"),yhoverformat:jye("y"),name:{valType:"string",editType:"calc+clearAxisTypes"},q1:{valType:"data_array",editType:"calc+clearAxisTypes"},median:{valType:"data_array",editType:"calc+clearAxisTypes"},q3:{valType:"data_array",editType:"calc+clearAxisTypes"},lowerfence:{valType:"data_array",editType:"calc"},upperfence:{valType:"data_array",editType:"calc"},notched:{valType:"boolean",editType:"calc"},notchwidth:{valType:"number",min:0,max:.5,dflt:.25,editType:"calc"},notchspan:{valType:"data_array",editType:"calc"},boxpoints:{valType:"enumerated",values:["all","outliers","suspectedoutliers",!1],editType:"calc"},jitter:{valType:"number",min:0,max:1,editType:"calc"},pointpos:{valType:"number",min:-2,max:2,editType:"calc"},sdmultiple:{valType:"number",min:0,editType:"calc",dflt:1},sizemode:{valType:"enumerated",values:["quartiles","sd"],editType:"calc",dflt:"quartiles"},boxmean:{valType:"enumerated",values:[!0,"sd",!1],editType:"calc"},mean:{valType:"data_array",editType:"calc"},sd:{valType:"data_array",editType:"calc"},orientation:{valType:"enumerated",values:["v","h"],editType:"calc+clearAxisTypes"},quartilemethod:{valType:"enumerated",values:["linear","exclusive","inclusive"],dflt:"linear",editType:"calc"},width:{valType:"number",min:0,dflt:0,editType:"calc"},marker:{outliercolor:{valType:"color",dflt:"rgba(0, 0, 0, 0)",editType:"style"},symbol:zy({},ST.symbol,{arrayOk:!1,editType:"plot"}),opacity:zy({},ST.opacity,{arrayOk:!1,dflt:1,editType:"style"}),angle:zy({},ST.angle,{arrayOk:!1,editType:"calc"}),size:zy({},ST.size,{arrayOk:!1,editType:"calc"}),color:zy({},ST.color,{arrayOk:!1,editType:"style"}),line:{color:zy({},Wye.color,{arrayOk:!1,dflt:Eyt.defaultLine,editType:"style"}),width:zy({},Wye.width,{arrayOk:!1,dflt:0,editType:"style"}),outliercolor:{valType:"color",editType:"style"},outlierwidth:{valType:"number",min:0,dflt:1,editType:"style"},editType:"style"},editType:"plot"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,dflt:2,editType:"style"},editType:"plot"},fillcolor:Myt(),whiskerwidth:{valType:"number",min:0,max:1,dflt:.5,editType:"calc"},showwhiskers:{valType:"boolean",editType:"calc"},offsetgroup:Gye.offsetgroup,alignmentgroup:Gye.alignmentgroup,selected:{marker:U0.selected.marker,editType:"style"},unselected:{marker:U0.unselected.marker,editType:"style"},text:zy({},U0.text,{}),hovertext:zy({},U0.hovertext,{}),hovertemplate:kyt({}),hoveron:{valType:"flaglist",flags:["boxes","points"],dflt:"boxes+points",editType:"style"},zorder:U0.zorder}});var p4=ye((Cor,Xye)=>{"use strict";Xye.exports={boxmode:{valType:"enumerated",values:["group","overlay"],dflt:"overlay",editType:"calc"},boxgap:{valType:"number",min:0,max:1,dflt:.3,editType:"calc"},boxgroupgap:{valType:"number",min:0,max:1,dflt:.3,editType:"calc"}}});var m4=ye((Lor,$ye)=>{"use strict";var V0=Mr(),Cyt=ba(),Lyt=va(),Pyt=Pg(),Iyt=Hb(),Yye=L3(),g4=v4();function Ryt(e,t,r,n){function i(v,x){return V0.coerce(e,t,g4,v,x)}if(Kye(e,t,i,n),t.visible!==!1){Pyt(e,t,n,i),i("xhoverformat"),i("yhoverformat");var a=t._hasPreCompStats;a&&(i("lowerfence"),i("upperfence")),i("line.color",(e.marker||{}).color||r),i("line.width"),i("fillcolor",Lyt.addOpacity(t.line.color,.5));var o=!1;if(a){var s=i("mean"),l=i("sd");s&&s.length&&(o=!0,l&&l.length&&(o="sd"))}i("whiskerwidth");var u=i("sizemode"),c;u==="quartiles"&&(c=i("boxmean",o)),i("showwhiskers",u==="quartiles"),(u==="sd"||c==="sd")&&i("sdmultiple"),i("width"),i("quartilemethod");var f=!1;if(a){var h=i("notchspan");h&&h.length&&(f=!0)}else V0.validate(e.notchwidth,g4.notchwidth)&&(f=!0);var d=i("notched",f);d&&i("notchwidth"),Jye(e,t,i,{prefix:"box"}),i("zorder")}}function Kye(e,t,r,n){function i(P){var T=0;return P&&P.length&&(T+=1,V0.isArrayOrTypedArray(P[0])&&P[0].length&&(T+=1)),T}function a(P){return V0.validate(e[P],g4[P])}var o=r("y"),s=r("x"),l;if(t.type==="box"){var u=r("q1"),c=r("median"),f=r("q3");t._hasPreCompStats=u&&u.length&&c&&c.length&&f&&f.length,l=Math.min(V0.minRowLength(u),V0.minRowLength(c),V0.minRowLength(f))}var h=i(o),d=i(s),v=h&&V0.minRowLength(o),x=d&&V0.minRowLength(s),b=n.calendar,g={autotypenumbers:n.autotypenumbers},E,k;if(t._hasPreCompStats)switch(String(d)+String(h)){case"00":var A=a("x0")||a("dx"),L=a("y0")||a("dy");L&&!A?E="h":E="v",k=l;break;case"10":E="v",k=Math.min(l,x);break;case"20":E="h",k=Math.min(l,s.length);break;case"01":E="h",k=Math.min(l,v);break;case"02":E="v",k=Math.min(l,o.length);break;case"12":E="v",k=Math.min(l,x,o.length);break;case"21":E="h",k=Math.min(l,s.length,v);break;case"11":k=0;break;case"22":var _=!1,C;for(C=0;C0?(E="v",d>0?k=Math.min(x,v):k=Math.min(v)):d>0?(E="h",k=Math.min(x)):k=0;if(!k){t.visible=!1;return}t._length=k;var M=r("orientation",E);t._hasPreCompStats?M==="v"&&d===0?(r("x0",0),r("dx",1)):M==="h"&&h===0&&(r("y0",0),r("dy",1)):M==="v"&&d===0?r("x0"):M==="h"&&h===0&&r("y0");var p=Cyt.getComponentMethod("calendars","handleTraceDefaults");p(e,t,["x","y"],n)}function Jye(e,t,r,n){var i=n.prefix,a=V0.coerce2(e,t,g4,"marker.outliercolor"),o=r("marker.line.outliercolor"),s="outliers";t._hasPreCompStats?s="all":(a||o)&&(s="suspectedoutliers");var l=r(i+"points",s);l?(r("jitter",l==="all"?.3:0),r("pointpos",l==="all"?-1.5:0),r("marker.symbol"),r("marker.opacity"),r("marker.size"),r("marker.angle"),r("marker.color",t.line.color),r("marker.line.color"),r("marker.line.width"),l==="suspectedoutliers"&&(r("marker.line.outliercolor",t.marker.color),r("marker.line.outlierwidth")),r("selected.marker.color"),r("unselected.marker.color"),r("selected.marker.size"),r("unselected.marker.size"),r("text"),r("hovertext")):delete t.marker;var u=r("hoveron");(u==="all"||u.indexOf("points")!==-1)&&r("hovertemplate"),V0.coerceSelectionMarkerOpacity(t,r)}function Dyt(e,t){var r,n;function i(l){return V0.coerce(n._input,n,g4,l)}for(var a=0;a{"use strict";var zyt=ba(),Fyt=Mr(),qyt=p4();function Qye(e,t,r,n,i){for(var a=i+"Layout",o=!1,s=0;s{"use strict";var SV=uo(),VI=Qa(),Byt=Rg(),$f=Mr(),i0=es().BADNUM,Fy=$f._;u1e.exports=function(t,r){var n=t._fullLayout,i=VI.getFromId(t,r.xaxis||"x"),a=VI.getFromId(t,r.yaxis||"y"),o=[],s=r.type==="violin"?"_numViolins":"_numBoxes",l,u,c,f,h,d,v;r.orientation==="h"?(c=i,f="x",h=a,d="y",v=!!r.yperiodalignment):(c=a,f="y",h=i,d="x",v=!!r.xperiodalignment);var x=Nyt(r,d,h,n[s]),b=x[0],g=x[1],E=$f.distinctVals(b,h),k=E.vals,A=E.minDiff/2,L,_,C,M,p,P,T=(r.boxpoints||r.points)==="all"?$f.identity:function(qt){return qt.vL.uf};if(r._hasPreCompStats){var F=r[f],q=function(qt){return c.d2c((r[qt]||[])[l])},V=1/0,H=-1/0;for(l=0;l=L.q1&&L.q3>=L.med){var G=q("lowerfence");L.lf=G!==i0&&G<=L.q1?G:n1e(L,C,M);var N=q("upperfence");L.uf=N!==i0&&N>=L.q3?N:a1e(L,C,M);var W=q("mean");L.mean=W!==i0?W:M?$f.mean(C,M):(L.q1+L.q3)/2;var re=q("sd");L.sd=W!==i0&&re>=0?re:M?$f.stdev(C,M,L.mean):L.q3-L.q1,L.lo=o1e(L),L.uo=s1e(L);var ae=q("notchspan");ae=ae!==i0&&ae>0?ae:l1e(L,M),L.ln=L.med-ae,L.un=L.med+ae;var _e=L.lf,Me=L.uf;r.boxpoints&&C.length&&(_e=Math.min(_e,C[0]),Me=Math.max(Me,C[M-1])),r.notched&&(_e=Math.min(_e,L.ln),Me=Math.max(Me,L.un)),L.min=_e,L.max=Me}else{$f.warn(["Invalid input - make sure that q1 <= median <= q3","q1 = "+L.q1,"median = "+L.med,"q3 = "+L.q3].join(` +`));var ke;L.med!==i0?ke=L.med:L.q1!==i0?L.q3!==i0?ke=(L.q1+L.q3)/2:ke=L.q1:L.q3!==i0?ke=L.q3:ke=0,L.med=ke,L.q1=L.q3=ke,L.lf=L.uf=ke,L.mean=L.sd=ke,L.ln=L.un=ke,L.min=L.max=ke}V=Math.min(V,L.min),H=Math.max(H,L.max),L.pts2=_.filter(T),o.push(L)}}r._extremes[c._id]=VI.findExtremes(c,[V,H],{padded:!0})}else{var ge=c.makeCalcdata(r,f),ie=Uyt(k,A),Te=k.length,Ee=Vyt(Te);for(l=0;l=0&&Ae0){if(L={},L.pos=L[d]=k[l],_=L.pts=Ee[l].sort(r1e),C=L[f]=_.map(i1e),M=C.length,L.min=C[0],L.max=C[M-1],L.mean=$f.mean(C,M),L.sd=$f.stdev(C,M,L.mean)*r.sdmultiple,L.med=$f.interp(C,.5),M%2&&(Re||ce)){var Ge,nt;Re?(Ge=C.slice(0,M/2),nt=C.slice(M/2+1)):ce&&(Ge=C.slice(0,M/2+1),nt=C.slice(M/2)),L.q1=$f.interp(Ge,.5),L.q3=$f.interp(nt,.5)}else L.q1=$f.interp(C,.25),L.q3=$f.interp(C,.75);L.lf=n1e(L,C,M),L.uf=a1e(L,C,M),L.lo=o1e(L),L.uo=s1e(L);var ct=l1e(L,M);L.ln=L.med-ct,L.un=L.med+ct,ze=Math.min(ze,L.ln),Ce=Math.max(Ce,L.un),L.pts2=_.filter(T),o.push(L)}r.notched&&$f.isTypedArray(ge)&&(ge=Array.from(ge)),r._extremes[c._id]=VI.findExtremes(c,r.notched?ge.concat([ze,Ce]):ge,{padded:!0})}return Hyt(o,r),o.length>0?(o[0].t={num:n[s],dPos:A,posLetter:d,valLetter:f,labels:{med:Fy(t,"median:"),min:Fy(t,"min:"),q1:Fy(t,"q1:"),q3:Fy(t,"q3:"),max:Fy(t,"max:"),mean:r.boxmean==="sd"||r.sizemode==="sd"?Fy(t,"mean \xB1 \u03C3:").replace("\u03C3",r.sdmultiple===1?"\u03C3":r.sdmultiple+"\u03C3"):Fy(t,"mean:"),lf:Fy(t,"lower fence:"),uf:Fy(t,"upper fence:")}},n[s]++,o):[{t:{empty:!0}}]};function Nyt(e,t,r,n){var i=t in e,a=t+"0"in e,o="d"+t in e;if(i||a&&o){var s=r.makeCalcdata(e,t),l=Byt(e,r,t,s).vals;return[l,s]}var u;a?u=e[t+"0"]:"name"in e&&(r.type==="category"||SV(e.name)&&["linear","log"].indexOf(r.type)!==-1||$f.isDateTime(e.name)&&r.type==="date")?u=e.name:u=n;for(var c=r.type==="multicategory"?r.r2c_just_indices(u):r.d2c(u,0,e[t+"calendar"]),f=e._length,h=new Array(f),d=0;d{"use strict";var c1e=Qa(),Gyt=Mr(),jyt=Bb().getAxisGroup,f1e=["v","h"];function Wyt(e,t){for(var r=e.calcdata,n=t.xaxis,i=t.yaxis,a=0;a1,E=1-a[e+"gap"],k=1-a[e+"groupgap"];for(l=0;l0;if(C==="positive"?(N=M*(_?1:.5),ae=re,W=ae=P):C==="negative"?(N=ae=P,W=M*(_?1:.5),_e=re):(N=W=M,ae=_e=re),Ee){var Ae=A.pointpos,ze=A.jitter,Ce=A.marker.size/2,me=0;Ae+ze>=0&&(me=re*(Ae+ze),me>N?(Te=!0,ge=Ce,Me=me):me>ae&&(ge=Ce,Me=N)),me<=N&&(Me=N);var Re=0;Ae-ze<=0&&(Re=-re*(Ae-ze),Re>W?(Te=!0,ie=Ce,ke=Re):Re>_e&&(ie=Ce,ke=W)),Re<=W&&(ke=W)}else Me=N,ke=W;var ce=new Array(c.length);for(u=0;u{"use strict";var MT=xa(),n2=Mr(),Zyt=ao(),v1e=5,Xyt=.01;function Yyt(e,t,r,n){var i=e._context.staticPlot,a=t.xaxis,o=t.yaxis;n2.makeTraceGroups(n,r,"trace boxes").each(function(s){var l=MT.select(this),u=s[0],c=u.t,f=u.trace;if(c.wdPos=c.bdPos*f.whiskerwidth,f.visible!==!0||c.empty){l.remove();return}var h,d;f.orientation==="h"?(h=o,d=a):(h=a,d=o),p1e(l,{pos:h,val:d},f,c,i),g1e(l,{x:a,y:o},f,c),m1e(l,{pos:h,val:d},f,c)})}function p1e(e,t,r,n,i){var a=r.orientation==="h",o=t.val,s=t.pos,l=!!s.rangebreaks,u=n.bPos,c=n.wdPos||0,f=n.bPosPxOffset||0,h=r.whiskerwidth||0,d=r.showwhiskers!==!1,v=r.notched||!1,x=v?1-2*r.notchwidth:1,b,g;Array.isArray(n.bdPos)?(b=n.bdPos[0],g=n.bdPos[1]):(b=n.bdPos,g=n.bdPos);var E=e.selectAll("path.box").data(r.type!=="violin"||r.box.visible?n2.identity:[]);E.enter().append("path").style("vector-effect",i?"none":"non-scaling-stroke").attr("class","box"),E.exit().remove(),E.each(function(k){if(k.empty)return MT.select(this).attr("d","M0,0Z");var A=s.c2l(k.pos+u,!0),L=s.l2p(A-b)+f,_=s.l2p(A+g)+f,C=l?(L+_)/2:s.l2p(A)+f,M=r.whiskerwidth,p=l?L*M+(1-M)*C:s.l2p(A-c)+f,P=l?_*M+(1-M)*C:s.l2p(A+c)+f,T=s.l2p(A-b*x)+f,F=s.l2p(A+g*x)+f,q=r.sizemode==="sd",V=o.c2p(q?k.mean-k.sd:k.q1,!0),H=q?o.c2p(k.mean+k.sd,!0):o.c2p(k.q3,!0),X=n2.constrain(q?o.c2p(k.mean,!0):o.c2p(k.med,!0),Math.min(V,H)+1,Math.max(V,H)-1),G=k.lf===void 0||r.boxpoints===!1||q,N=o.c2p(G?k.min:k.lf,!0),W=o.c2p(G?k.max:k.uf,!0),re=o.c2p(k.ln,!0),ae=o.c2p(k.un,!0);a?MT.select(this).attr("d","M"+X+","+T+"V"+F+"M"+V+","+L+"V"+_+(v?"H"+re+"L"+X+","+F+"L"+ae+","+_:"")+"H"+H+"V"+L+(v?"H"+ae+"L"+X+","+T+"L"+re+","+L:"")+"Z"+(d?"M"+V+","+C+"H"+N+"M"+H+","+C+"H"+W+(h===0?"":"M"+N+","+p+"V"+P+"M"+W+","+p+"V"+P):"")):MT.select(this).attr("d","M"+T+","+X+"H"+F+"M"+L+","+V+"H"+_+(v?"V"+re+"L"+F+","+X+"L"+_+","+ae:"")+"V"+H+"H"+L+(v?"V"+ae+"L"+T+","+X+"L"+L+","+re:"")+"Z"+(d?"M"+C+","+V+"V"+N+"M"+C+","+H+"V"+W+(h===0?"":"M"+p+","+N+"H"+P+"M"+p+","+W+"H"+P):""))})}function g1e(e,t,r,n){var i=t.x,a=t.y,o=n.bdPos,s=n.bPos,l=r.boxpoints||r.points;n2.seedPseudoRandom();var u=function(h){return h.forEach(function(d){d.t=n,d.trace=r}),h},c=e.selectAll("g.points").data(l?u:[]);c.enter().append("g").attr("class","points"),c.exit().remove();var f=c.selectAll("path").data(function(h){var d,v=h.pts2,x=Math.max((h.max-h.min)/10,h.q3-h.q1),b=x*1e-9,g=x*Xyt,E=[],k=0,A;if(r.jitter){if(x===0)for(k=1,E=new Array(v.length),d=0;dh.lo&&(P.so=!0)}return v});f.enter().append("path").classed("point",!0),f.exit().remove(),f.call(Zyt.translatePoints,i,a)}function m1e(e,t,r,n){var i=t.val,a=t.pos,o=!!a.rangebreaks,s=n.bPos,l=n.bPosPxOffset||0,u=r.boxmean||(r.meanline||{}).visible,c,f;Array.isArray(n.bdPos)?(c=n.bdPos[0],f=n.bdPos[1]):(c=n.bdPos,f=n.bdPos);var h=e.selectAll("path.mean").data(r.type==="box"&&r.boxmean||r.type==="violin"&&r.box.visible&&r.meanline.visible?n2.identity:[]);h.enter().append("path").attr("class","mean").style({fill:"none","vector-effect":"non-scaling-stroke"}),h.exit().remove(),h.each(function(d){var v=a.c2l(d.pos+s,!0),x=a.l2p(v-c)+l,b=a.l2p(v+f)+l,g=o?(x+b)/2:a.l2p(v)+l,E=i.c2p(d.mean,!0),k=i.c2p(d.mean-d.sd,!0),A=i.c2p(d.mean+d.sd,!0);r.orientation==="h"?MT.select(this).attr("d","M"+E+","+x+"V"+b+(u==="sd"?"m0,0L"+k+","+g+"L"+E+","+x+"L"+A+","+g+"Z":"")):MT.select(this).attr("d","M"+x+","+E+"H"+b+(u==="sd"?"m0,0L"+g+","+k+"L"+x+","+E+"L"+g+","+A+"Z":""))})}y1e.exports={plot:Yyt,plotBoxAndWhiskers:p1e,plotPoints:g1e,plotBoxMean:m1e}});var jI=ye((zor,_1e)=>{"use strict";var EV=xa(),kV=va(),CV=ao();function Kyt(e,t,r){var n=r||EV.select(e).selectAll("g.trace.boxes");n.style("opacity",function(i){return i[0].trace.opacity}),n.each(function(i){var a=EV.select(this),o=i[0].trace,s=o.line.width;function l(f,h,d,v){f.style("stroke-width",h+"px").call(kV.stroke,d).call(kV.fill,v)}var u=a.selectAll("path.box");if(o.type==="candlestick")u.each(function(f){if(!f.empty){var h=EV.select(this),d=o[f.dir];l(h,d.line.width,d.line.color,d.fillcolor),h.style("opacity",o.selectedpoints&&!f.selected?.3:1)}});else{l(u,s,o.line.color,o.fillcolor),a.selectAll("path.mean").style({"stroke-width":s,"stroke-dasharray":2*s+"px,"+s+"px"}).call(kV.stroke,o.line.color);var c=a.selectAll("path.point");CV.pointStyle(c,o,e)}})}function Jyt(e,t,r){var n=t[0].trace,i=r.selectAll("path.point");n.selectedpoints?CV.selectedPointStyle(i,n):CV.pointStyle(i,n,e)}_1e.exports={style:Kyt,styleOnSelect:Jyt}});var PV=ye((For,T1e)=>{"use strict";var $yt=Qa(),LV=Mr(),A_=Nc(),x1e=va(),Qyt=LV.fillText;function e1t(e,t,r,n){var i=e.cd,a=i[0].trace,o=a.hoveron,s=[],l;return o.indexOf("boxes")!==-1&&(s=s.concat(b1e(e,t,r,n))),o.indexOf("points")!==-1&&(l=w1e(e,t,r)),n==="closest"?l?[l]:s:(l&&s.push(l),s)}function b1e(e,t,r,n){var i=e.cd,a=e.xa,o=e.ya,s=i[0].trace,l=i[0].t,u=s.type==="violin",c,f,h,d,v,x,b,g,E,k,A,L=l.bdPos,_,C,M=l.wHover,p=function(Ce){return h.c2l(Ce.pos)+l.bPos-h.c2l(x)};u&&s.side!=="both"?(s.side==="positive"&&(E=function(Ce){var me=p(Ce);return A_.inbox(me,me+M,k)},_=L,C=0),s.side==="negative"&&(E=function(Ce){var me=p(Ce);return A_.inbox(me-M,me,k)},_=0,C=L)):(E=function(Ce){var me=p(Ce);return A_.inbox(me-M,me+M,k)},_=C=L);var P;u?P=function(Ce){return A_.inbox(Ce.span[0]-v,Ce.span[1]-v,k)}:P=function(Ce){return A_.inbox(Ce.min-v,Ce.max-v,k)},s.orientation==="h"?(v=t,x=r,b=P,g=E,c="y",h=o,f="x",d=a):(v=r,x=t,b=E,g=P,c="x",h=a,f="y",d=o);var T=Math.min(1,L/Math.abs(h.r2c(h.range[1])-h.r2c(h.range[0])));k=e.maxHoverDistance-T,A=e.maxSpikeDistance-T;function F(Ce){return(b(Ce)+g(Ce))/2}var q=A_.getDistanceFunction(n,b,g,F);if(A_.getClosest(i,q,e),e.index===!1)return[];var V=i[e.index],H=s.line.color,X=(s.marker||{}).color;x1e.opacity(H)&&s.line.width?e.color=H:x1e.opacity(X)&&s.boxpoints?e.color=X:e.color=s.fillcolor,e[c+"0"]=h.c2p(V.pos+l.bPos-C,!0),e[c+"1"]=h.c2p(V.pos+l.bPos+_,!0),e[c+"LabelVal"]=V.orig_p!==void 0?V.orig_p:V.pos;var G=c+"Spike";e.spikeDistance=F(V)*A/k,e[G]=h.c2p(V.pos,!0);var N=s.boxmean||s.sizemode==="sd"||(s.meanline||{}).visible,W=s.boxpoints||s.points,re=W&&N?["max","uf","q3","med","mean","q1","lf","min"]:W&&!N?["max","uf","q3","med","q1","lf","min"]:!W&&N?["max","q3","med","mean","q1","min"]:["max","q3","med","q1","min"],ae=d.range[1]{"use strict";A1e.exports=function(t,r){return r.hoverOnBox&&(t.hoverOnBox=r.hoverOnBox),"xVal"in r&&(t.x=r.xVal),"yVal"in r&&(t.y=r.yVal),r.xa&&(t.xaxis=r.xa),r.ya&&(t.yaxis=r.ya),t}});var IV=ye((Oor,M1e)=>{"use strict";M1e.exports=function(t,r){var n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s,l;if(r===!1)for(s=0;s{"use strict";E1e.exports={attributes:v4(),layoutAttributes:p4(),supplyDefaults:m4().supplyDefaults,crossTraceDefaults:m4().crossTraceDefaults,supplyLayoutDefaults:UI().supplyLayoutDefaults,calc:MV(),crossTraceCalc:HI().crossTraceCalc,plot:GI().plot,style:jI().style,styleOnSelect:jI().styleOnSelect,hoverPoints:PV().hoverPoints,eventData:S1e(),selectPoints:IV(),moduleType:"trace",name:"box",basePlotModule:Jf(),categories:["cartesian","svg","symbols","oriented","box-violin","showLegend","boxLayout","zoomScale"],meta:{}}});var L1e=ye((Nor,C1e)=>{"use strict";C1e.exports=k1e()});var ET=ye((Uor,P1e)=>{"use strict";var n0=Uc(),t1t=vl(),r1t=Su(),RV=Oc().axisHoverFormat,i1t=Wo().hovertemplateAttrs,n1t=Wo().texttemplateAttrs,a1t=Kl(),Pp=no().extendFlat;P1e.exports=Pp({z:{valType:"data_array",editType:"calc"},x:Pp({},n0.x,{impliedEdits:{xtype:"array"}}),x0:Pp({},n0.x0,{impliedEdits:{xtype:"scaled"}}),dx:Pp({},n0.dx,{impliedEdits:{xtype:"scaled"}}),y:Pp({},n0.y,{impliedEdits:{ytype:"array"}}),y0:Pp({},n0.y0,{impliedEdits:{ytype:"scaled"}}),dy:Pp({},n0.dy,{impliedEdits:{ytype:"scaled"}}),xperiod:Pp({},n0.xperiod,{impliedEdits:{xtype:"scaled"}}),yperiod:Pp({},n0.yperiod,{impliedEdits:{ytype:"scaled"}}),xperiod0:Pp({},n0.xperiod0,{impliedEdits:{xtype:"scaled"}}),yperiod0:Pp({},n0.yperiod0,{impliedEdits:{ytype:"scaled"}}),xperiodalignment:Pp({},n0.xperiodalignment,{impliedEdits:{xtype:"scaled"}}),yperiodalignment:Pp({},n0.yperiodalignment,{impliedEdits:{ytype:"scaled"}}),text:{valType:"data_array",editType:"calc"},hovertext:{valType:"data_array",editType:"calc"},transpose:{valType:"boolean",dflt:!1,editType:"calc"},xtype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},ytype:{valType:"enumerated",values:["array","scaled"],editType:"calc+clearAxisTypes"},zsmooth:{valType:"enumerated",values:["fast","best",!1],dflt:!1,editType:"calc"},hoverongaps:{valType:"boolean",dflt:!0,editType:"none"},connectgaps:{valType:"boolean",editType:"calc"},xgap:{valType:"number",dflt:0,min:0,editType:"plot"},ygap:{valType:"number",dflt:0,min:0,editType:"plot"},xhoverformat:RV("x"),yhoverformat:RV("y"),zhoverformat:RV("z",1),hovertemplate:i1t(),texttemplate:n1t({arrayOk:!1,editType:"plot"},{keys:["x","y","z","text"]}),textfont:r1t({editType:"plot",autoSize:!0,autoColor:!0,colorEditType:"style"}),showlegend:Pp({},t1t.showlegend,{dflt:!1}),zorder:n0.zorder},a1t("",{cLetter:"z",autoColorDflt:!1}))});var ZI=ye((Vor,R1e)=>{"use strict";var o1t=uo(),WI=Mr(),s1t=ba();R1e.exports=function(t,r,n,i,a,o){var s=n("z");a=a||"x",o=o||"y";var l,u;if(s===void 0||!s.length)return 0;if(WI.isArray1D(s)){l=n(a),u=n(o);var c=WI.minRowLength(l),f=WI.minRowLength(u);if(c===0||f===0)return 0;r._length=Math.min(c,f,s.length)}else{if(l=I1e(a,n),u=I1e(o,n),!l1t(s))return 0;n("transpose"),r._length=null}var h=s1t.getComponentMethod("calendars","handleTraceDefaults");return h(t,r,[a,o],i),!0};function I1e(e,t){var r=t(e),n=r?t(e+"type","array"):"scaled";return n==="scaled"&&(t(e+"0"),t("d"+e)),r}function l1t(e){for(var t=!0,r=!1,n=!1,i,a=0;a0&&(r=!0);for(var o=0;o{"use strict";var D1e=Mr();z1e.exports=function(t,r){t("texttemplate");var n=D1e.extendFlat({},r.font,{color:"auto",size:"auto"});D1e.coerceFont(t,"textfont",n)}});var DV=ye((Gor,F1e)=>{"use strict";F1e.exports=function(t,r,n){var i=n("zsmooth");i===!1&&(n("xgap"),n("ygap")),n("zhoverformat")}});var B1e=ye((jor,O1e)=>{"use strict";var q1e=Mr(),u1t=ZI(),c1t=y4(),f1t=Pg(),h1t=DV(),d1t=Uh(),v1t=ET();O1e.exports=function(t,r,n,i){function a(s,l){return q1e.coerce(t,r,v1t,s,l)}var o=u1t(t,r,a,i);if(!o){r.visible=!1;return}f1t(t,r,i,a),a("xhoverformat"),a("yhoverformat"),a("text"),a("hovertext"),a("hovertemplate"),c1t(a,i),h1t(t,r,a,i),a("hoverongaps"),a("connectgaps",q1e.isArray1D(r.z)&&r.zsmooth!==!1),d1t(t,r,i,a,{prefix:"",cLetter:"z"}),a("zorder")}});var zV=ye((Wor,N1e)=>{"use strict";var kT=uo();N1e.exports={count:function(e,t,r){return r[e]++,1},sum:function(e,t,r,n){var i=n[t];return kT(i)?(i=Number(i),r[e]+=i,i):0},avg:function(e,t,r,n,i){var a=n[t];return kT(a)&&(a=Number(a),r[e]+=a,i[e]++),0},min:function(e,t,r,n){var i=n[t];if(kT(i))if(i=Number(i),kT(r[e])){if(r[e]>i){var a=i-r[e];return r[e]=i,a}}else return r[e]=i,i;return 0},max:function(e,t,r,n){var i=n[t];if(kT(i))if(i=Number(i),kT(r[e])){if(r[e]{"use strict";U1e.exports={percent:function(e,t){for(var r=e.length,n=100/t,i=0;i{"use strict";V1e.exports=function(t,r){for(var n=t.length,i=0,a=0;a{"use strict";var CT=es(),a2=CT.ONEAVGYEAR,H1e=CT.ONEAVGMONTH,YI=CT.ONEDAY,G1e=CT.ONEHOUR,j1e=CT.ONEMIN,W1e=CT.ONESEC,Z1e=Qa().tickIncrement;K1e.exports=function(t,r,n,i,a){var o=-1.1*r,s=-.1*r,l=t-s,u=n[0],c=n[1],f=Math.min(XI(u+s,u+l,i,a),XI(c+s,c+l,i,a)),h=Math.min(XI(u+o,u+s,i,a),XI(c+o,c+s,i,a)),d,v;if(f>h&&hYI){var x=d===a2?1:6,b=d===a2?"M12":"M1";return function(g,E){var k=i.c2d(g,a2,a),A=k.indexOf("-",x);A>0&&(k=k.substr(0,A));var L=i.d2c(k,0,a);if(LW1e?e>YI?e>a2*1.1?a2:e>H1e*1.1?H1e:YI:e>G1e?G1e:e>j1e?j1e:W1e:Math.pow(10,Math.floor(Math.log(e)/Math.LN10))}function p1t(e,t,r,n,i,a){if(n&&e>YI){var o=Y1e(t,i,a),s=Y1e(r,i,a),l=e===a2?0:1;return o[l]!==s[l]}return Math.floor(r/e)-Math.floor(t/e)>.1}function Y1e(e,t,r){var n=t.c2d(e,a2,r).split("-");return n[0]===""&&(n.unshift(),n[0]="-"+n[0]),n}});var UV=ye((Kor,Q1e)=>{"use strict";var BV=uo(),Vv=Mr(),J1e=ba(),H0=Qa(),g1t=c4(),$1e=zV(),m1t=FV(),y1t=qV(),_1t=OV();function x1t(e,t){var r=[],n=[],i=t.orientation==="h",a=H0.getFromId(e,i?t.yaxis:t.xaxis),o=i?"y":"x",s={x:"y",y:"x"}[o],l=t[o+"calendar"],u=t.cumulative,c,f=NV(e,t,a,o),h=f[0],d=f[1],v=typeof h.size=="string",x=[],b=v?x:h,g=[],E=[],k=[],A=0,L=t.histnorm,_=t.histfunc,C=L.indexOf("density")!==-1,M,p,P;u.enabled&&C&&(L=L.replace(/ ?density$/,""),C=!1);var T=_==="max"||_==="min",F=T?null:0,q=$1e.count,V=m1t[L],H=!1,X=function(me){return a.r2c(me,0,l)},G;for(Vv.isArrayOrTypedArray(t[s])&&_!=="count"&&(G=t[s],H=_==="avg",q=$1e[_]),c=X(h.start),p=X(h.end)+(c-H0.tickIncrement(c,h.size,!1,l))/1e6;c=0&&P=Ae;c--)if(n[c]){ze=c;break}for(c=Ae;c<=ze;c++)if(BV(r[c])&&BV(n[c])){var Ce={p:r[c],s:n[c],b:0};u.enabled||(Ce.pts=k[c],ae?Ce.ph0=Ce.ph1=k[c].length?d[k[c][0]]:r[c]:(t._computePh=!0,Ce.ph0=ie(x[c]),Ce.ph1=ie(x[c+1],!0))),Ee.push(Ce)}return Ee.length===1&&(Ee[0].width1=H0.tickIncrement(Ee[0].p,h.size,!1,l)-Ee[0].p),g1t(Ee,t),Vv.isArrayOrTypedArray(t.selectedpoints)&&Vv.tagSelected(Ee,t,ke),Ee}function NV(e,t,r,n,i){var a=n+"bins",o=e._fullLayout,s=t["_"+n+"bingroup"],l=o._histogramBinOpts[s],u=o.barmode==="overlay",c,f,h,d,v,x,b,g=function(ge){return r.r2c(ge,0,d)},E=function(ge){return r.c2r(ge,0,d)},k=r.type==="date"?function(ge){return ge||ge===0?Vv.cleanDate(ge,null,d):null}:function(ge){return BV(ge)?Number(ge):null};function A(ge,ie,Te){ie[ge+"Found"]?(ie[ge]=k(ie[ge]),ie[ge]===null&&(ie[ge]=Te[ge])):(x[ge]=ie[ge]=Te[ge],Vv.nestedProperty(f[0],a+"."+ge).set(Te[ge]))}if(t["_"+n+"autoBinFinished"])delete t["_"+n+"autoBinFinished"];else{f=l.traces;var L=[],_=!0,C=!1,M=!1;for(c=0;cr.r2l(G)&&(W=H0.tickIncrement(W,l.size,!0,d)),q.start=r.l2r(W),X||Vv.nestedProperty(t,a+".start").set(q.start)}var re=l.end,ae=r.r2l(F.end),_e=ae!==void 0;if((l.endFound||_e)&&ae!==r.r2l(re)){var Me=_e?ae:Vv.aggNums(Math.max,null,v);q.end=r.l2r(Me),_e||Vv.nestedProperty(t,a+".start").set(q.end)}var ke="autobin"+n;return t._input[ke]===!1&&(t._input[a]=Vv.extendFlat({},t[a]||{}),delete t._input[ke],delete t[ke]),[q,v]}function b1t(e,t,r,n,i){var a=e._fullLayout,o=w1t(e,t),s=!1,l=1/0,u=[t],c,f,h;for(c=0;c=0;n--)s(n);else if(t==="increasing"){for(n=1;n=0;n--)e[n]+=e[n+1];r==="exclude"&&(e.push(0),e.shift())}}Q1e.exports={calc:x1t,calcAllAutoBins:NV}});var s_e=ye((Jor,o_e)=>{"use strict";var e_e=Mr(),LT=Qa(),t_e=zV(),A1t=FV(),S1t=qV(),M1t=OV(),r_e=UV().calcAllAutoBins;o_e.exports=function(t,r){var n=LT.getFromId(t,r.xaxis),i=LT.getFromId(t,r.yaxis),a=r.xcalendar,o=r.ycalendar,s=function(Et){return n.r2c(Et,0,a)},l=function(Et){return i.r2c(Et,0,o)},u=function(Et){return n.c2r(Et,0,a)},c=function(Et){return i.c2r(Et,0,o)},f,h,d,v,x=r_e(t,r,n,"x"),b=x[0],g=x[1],E=r_e(t,r,i,"y"),k=E[0],A=E[1],L=r._length;g.length>L&&g.splice(L,g.length-L),A.length>L&&A.splice(L,A.length-L);var _=[],C=[],M=[],p=typeof b.size=="string",P=typeof k.size=="string",T=[],F=[],q=p?T:b,V=P?F:k,H=0,X=[],G=[],N=r.histnorm,W=r.histfunc,re=N.indexOf("density")!==-1,ae=W==="max"||W==="min",_e=ae?null:0,Me=t_e.count,ke=A1t[N],ge=!1,ie=[],Te=[],Ee="z"in r?r.z:"marker"in r&&Array.isArray(r.marker.color)?r.marker.color:"";Ee&&W!=="count"&&(ge=W==="avg",Me=t_e[W]);var Ae=b.size,ze=s(b.start),Ce=s(b.end)+(ze-LT.tickIncrement(ze,Ae,!1,a))/1e6;for(f=ze;f=0&&d=0&&v{"use strict";var Im=Mr(),l_e=es().BADNUM,u_e=Rg();c_e.exports=function(t,r,n,i,a,o){var s=t._length,l=r.makeCalcdata(t,i),u=n.makeCalcdata(t,a);l=u_e(t,r,i,l).vals,u=u_e(t,n,a,u).vals;var c=t.text,f=c!==void 0&&Im.isArray1D(c),h=t.hovertext,d=h!==void 0&&Im.isArray1D(h),v,x,b=Im.distinctVals(l),g=b.vals,E=Im.distinctVals(u),k=E.vals,A=[],L,_,C=k.length,M=g.length;for(v=0;v{"use strict";var E1t=uo(),k1t=Mr(),JI=es().BADNUM;f_e.exports=function(t,r,n,i){var a,o,s,l,u,c;function f(g){if(E1t(g))return+g}if(r&&r.transpose){for(a=0,u=0;u{"use strict";var C1t=Mr(),h_e=.01,L1t=[[-1,0],[1,0],[0,-1],[0,1]];function P1t(e){return .5-.25*Math.min(1,e*.5)}v_e.exports=function(t,r){var n=1,i;for(d_e(t,r),i=0;ih_e;i++)n=d_e(t,r,P1t(n));return n>h_e&&C1t.log("interp2d didn't converge quickly",n),t};function d_e(e,t,r){var n=0,i,a,o,s,l,u,c,f,h,d,v,x,b;for(s=0;sx&&(n=Math.max(n,Math.abs(e[a][o]-v)/(b-x))))}return n}});var e8=ye((tsr,p_e)=>{"use strict";var I1t=Mr().maxRowLength;p_e.exports=function(t){var r=[],n={},i=[],a=t[0],o=[],s=[0,0,0],l=I1t(t),u,c,f,h,d,v,x,b;for(c=0;c=0;d--)h=i[d],c=h[0],f=h[1],v=((n[[c-1,f]]||s)[2]+(n[[c+1,f]]||s)[2]+(n[[c,f-1]]||s)[2]+(n[[c,f+1]]||s)[2])/20,v&&(x[h]=[c,f,v],i.splice(d,1),b=!0);if(!b)throw"findEmpties iterated with no new neighbors";for(h in x)n[h]=x[h],r.push(x[h])}return r.sort(function(g,E){return E[2]-g[2]})}});var VV=ye((rsr,y_e)=>{"use strict";var g_e=ba(),m_e=Mr().isArrayOrTypedArray;y_e.exports=function(t,r,n,i,a,o){var s=[],l=g_e.traceIs(t,"contour"),u=g_e.traceIs(t,"histogram"),c,f,h,d=m_e(r)&&r.length>1;if(d&&!u&&o.type!=="category"){var v=r.length;if(v<=a){if(l)s=Array.from(r).slice(0,a);else if(a===1)o.type==="log"?s=[.5*r[0],2*r[0]]:s=[r[0]-.5,r[0]+.5];else if(o.type==="log"){for(s=[Math.pow(r[0],1.5)/Math.pow(r[1],.5)],h=1;h{"use strict";var __e=ba(),HV=Mr(),t8=Qa(),x_e=Rg(),R1t=s_e(),D1t=zv(),z1t=KI(),F1t=$I(),q1t=QI(),O1t=e8(),r8=VV(),GV=es().BADNUM;w_e.exports=function(t,r){var n=t8.getFromId(t,r.xaxis||"x"),i=t8.getFromId(t,r.yaxis||"y"),a=__e.traceIs(r,"contour"),o=__e.traceIs(r,"histogram"),s=a?"best":r.zsmooth,l,u,c,f,h,d,v,x,b,g,E;if(n._minDtick=0,i._minDtick=0,o)E=R1t(t,r),f=E.orig_x,l=E.x,u=E.x0,c=E.dx,x=E.orig_y,h=E.y,d=E.y0,v=E.dy,b=E.z;else{var k=r.z;HV.isArray1D(k)?(z1t(r,n,i,"x","y",["z"]),l=r._x,h=r._y,k=r._z):(f=r.x?n.makeCalcdata(r,"x"):[],x=r.y?i.makeCalcdata(r,"y"):[],l=x_e(r,n,"x",f).vals,h=x_e(r,i,"y",x).vals,r._x=l,r._y=h),u=r.x0,c=r.dx,d=r.y0,v=r.dy,b=F1t(k,r,n,i)}(n.rangebreaks||i.rangebreaks)&&(b=B1t(l,h,b),o||(l=b_e(l),h=b_e(h),r._x=l,r._y=h)),!o&&(a||r.connectgaps)&&(r._emptypoints=O1t(b),q1t(b,r._emptypoints));function A(q){s=r._input.zsmooth=r.zsmooth=!1,HV.warn('cannot use zsmooth: "fast": '+q)}function L(q){if(q.length>1){var V=(q[q.length-1]-q[0])/(q.length-1),H=Math.abs(V/100);for(g=0;gH)return!1}return!0}r._islinear=!1,n.type==="log"||i.type==="log"?s==="fast"&&A("log axis found"):L(l)?L(h)?r._islinear=!0:s==="fast"&&A("y scale is not linear"):s==="fast"&&A("x scale is not linear");var _=HV.maxRowLength(b),C=r.xtype==="scaled"?"":l,M=r8(r,C,u,c,_,n),p=r.ytype==="scaled"?"":h,P=r8(r,p,d,v,b.length,i);r._extremes[n._id]=t8.findExtremes(n,M),r._extremes[i._id]=t8.findExtremes(i,P);var T={x:M,y:P,z:b,text:r._text||r.text,hovertext:r._hovertext||r.hovertext};if(r.xperiodalignment&&f&&(T.orig_x=f),r.yperiodalignment&&x&&(T.orig_y=x),C&&C.length===M.length-1&&(T.xCenter=C),p&&p.length===P.length-1&&(T.yCenter=p),o&&(T.xRanges=E.xRanges,T.yRanges=E.yRanges,T.pts=E.pts),a||D1t(t,r,{vals:b,cLetter:"z"}),a&&r.contours&&r.contours.coloring==="heatmap"){var F={type:r.type==="contour"?"heatmap":"histogram2d",xcalendar:r.xcalendar,ycalendar:r.ycalendar};T.xfill=r8(F,C,u,c,_,n),T.yfill=r8(F,p,d,v,b.length,i)}return[T]};function b_e(e){for(var t=[],r=e.length,n=0;n{"use strict";n8.CSS_DECLARATIONS=[["image-rendering","optimizeSpeed"],["image-rendering","-moz-crisp-edges"],["image-rendering","-o-crisp-edges"],["image-rendering","-webkit-optimize-contrast"],["image-rendering","optimize-contrast"],["image-rendering","crisp-edges"],["image-rendering","pixelated"]];n8.STYLE=n8.CSS_DECLARATIONS.map(function(e){return e.join(": ")+"; "}).join("")});var jV=ye((asr,S_e)=>{"use strict";var T_e=a8(),N1t=ao(),A_e=Mr(),PT=null;function U1t(){if(PT!==null)return PT;PT=!1;var e=A_e.isSafari()||A_e.isIOS();if(window.navigator.userAgent&&!e){var t=Array.from(T_e.CSS_DECLARATIONS).reverse(),r=window.CSS&&window.CSS.supports||window.supportsCSS;if(typeof r=="function")PT=t.some(function(o){return r.apply(null,o)});else{var n=N1t.tester.append("image").attr("style",T_e.STYLE),i=window.getComputedStyle(n.node()),a=i.imageRendering;PT=t.some(function(o){var s=o[1];return a===s||a===s.toLowerCase()}),n.remove()}}return PT}S_e.exports=U1t});var o8=ye((osr,D_e)=>{"use strict";var M_e=xa(),V1t=id(),H1t=ba(),G1t=ao(),j1t=Qa(),G0=Mr(),E_e=Ll(),W1t=JP(),Z1t=va(),X1t=Mu().extractOpts,Y1t=Mu().makeColorScaleFuncFromTrace,K1t=Zp(),J1t=Nh(),WV=J1t.LINE_SPACING,$1t=jV(),Q1t=a8().STYLE,I_e="heatmap-label";function R_e(e){return e.selectAll("g."+I_e)}function k_e(e){R_e(e).remove()}D_e.exports=function(e,t,r,n){var i=t.xaxis,a=t.yaxis;G0.makeTraceGroups(n,r,"hm").each(function(o){var s=M_e.select(this),l=o[0],u=l.trace,c=u.xgap||0,f=u.ygap||0,h=l.z,d=l.x,v=l.y,x=l.xCenter,b=l.yCenter,g=H1t.traceIs(u,"contour"),E=g?"best":u.zsmooth,k=h.length,A=G0.maxRowLength(h),L=!1,_=!1,C,M,p,P,T,F,q,V;for(F=0;C===void 0&&F0;)M=i.c2p(d[F]),F--;for(M0;)T=a.c2p(v[F]),F--;T=i._length||M<=0||P>=a._length||T<=0;if(W){var re=s.selectAll("image").data([]);re.exit().remove(),k_e(s);return}var ae,_e;H==="fast"?(ae=A,_e=k):(ae=G,_e=N);var Me=document.createElement("canvas");Me.width=ae,Me.height=_e;var ke=Me.getContext("2d",{willReadFrequently:!0}),ge=Y1t(u,{noNumericCheck:!0,returnArray:!0}),ie,Te;H==="fast"?(ie=L?function(Pi){return A-1-Pi}:G0.identity,Te=_?function(Pi){return k-1-Pi}:G0.identity):(ie=function(Pi){return G0.constrain(Math.round(i.c2p(d[Pi])-C),0,G)},Te=function(Pi){return G0.constrain(Math.round(a.c2p(v[Pi])-P),0,N)});var Ee=Te(0),Ae=[Ee,Ee],ze=L?0:1,Ce=_?0:1,me=0,Re=0,ce=0,Ge=0,nt,ct,qt,rt,ot;function Rt(Pi,Gi){if(Pi!==void 0){var Ki=ge(Pi);return Ki[0]=Math.round(Ki[0]),Ki[1]=Math.round(Ki[1]),Ki[2]=Math.round(Ki[2]),me+=Gi,Re+=Ki[0]*Gi,ce+=Ki[1]*Gi,Ge+=Ki[2]*Gi,Ki}return[0,0,0,0]}function kt(Pi,Gi,Ki,ka){var jn=Pi[Ki.bin0];if(jn===void 0)return Rt(void 0,1);var la=Pi[Ki.bin1],Fa=Gi[Ki.bin0],Ra=Gi[Ki.bin1],jo=la-jn||0,oa=Fa-jn||0,Sn;return la===void 0?Ra===void 0?Sn=0:Fa===void 0?Sn=2*(Ra-jn):Sn=(2*Ra-Fa-jn)*2/3:Ra===void 0?Fa===void 0?Sn=0:Sn=(2*jn-la-Fa)*2/3:Fa===void 0?Sn=(2*Ra-la-jn)*2/3:Sn=Ra+jn-la-Fa,Rt(jn+Ki.frac*jo+ka.frac*(oa+Ki.frac*Sn))}if(H!=="default"){var Ct=0,Yt;try{Yt=new Uint8Array(ae*_e*4)}catch(Pi){Yt=new Array(ae*_e*4)}if(H==="smooth"){var xr=x||d,er=b||v,Ke=new Array(xr.length),xt=new Array(er.length),bt=new Array(G),Lt=x?L_e:C_e,St=b?L_e:C_e,Et,dt,Ht;for(F=0;Far||ar>a._length))for(q=Se;qai||ai>i._length)){var jr=W1t({x:Qr,y:Vt},u,e._fullLayout);jr.x=Qr,jr.y=Vt;var ri=l.z[F][q];ri===void 0?(jr.z="",jr.zLabel=""):(jr.z=ri,jr.zLabel=j1t.tickText(Ve,ri,"hover").text);var bi=l.text&&l.text[F]&&l.text[F][q];(bi===void 0||bi===!1)&&(bi=""),jr.text=bi;var nn=G0.texttemplateString(Ne,jr,e._fullLayout._d3locale,jr,u._meta||{});if(nn){var Wi=nn.split("
"),Ni=Wi.length,_n=0;for(V=0;V{"use strict";z_e.exports={min:"zmin",max:"zmax"}});var s8=ye((lsr,F_e)=>{"use strict";var e_t=xa();F_e.exports=function(t){e_t.select(t).selectAll(".hm image").style("opacity",function(r){return r.trace.opacity})}});var u8=ye((usr,O_e)=>{"use strict";var q_e=Nc(),_4=Mr(),l8=_4.isArrayOrTypedArray,t_t=Qa(),r_t=Mu().extractOpts;O_e.exports=function(t,r,n,i,a){a||(a={});var o=a.isContour,s=t.cd[0],l=s.trace,u=t.xa,c=t.ya,f=s.x,h=s.y,d=s.z,v=s.xCenter,x=s.yCenter,b=s.zmask,g=l.zhoverformat,E=f,k=h,A,L,_,C;if(t.index!==!1){try{_=Math.round(t.index[1]),C=Math.round(t.index[0])}catch(re){_4.error("Error hovering on heatmap, pointNumber must be [row,col], found:",t.index);return}if(_<0||_>=d[0].length||C<0||C>d.length)return}else{if(q_e.inbox(r-f[0],r-f[f.length-1],0)>0||q_e.inbox(n-h[0],n-h[h.length-1],0)>0)return;if(o){var M;for(E=[2*f[0]-f[1]],M=1;M{"use strict";B_e.exports={attributes:ET(),supplyDefaults:B1e(),calc:i8(),plot:o8(),colorbar:S_(),style:s8(),hoverPoints:u8(),moduleType:"trace",name:"heatmap",basePlotModule:Jf(),categories:["cartesian","svg","2dMap","showLegend"],meta:{}}});var V_e=ye((fsr,U_e)=>{"use strict";U_e.exports=N_e()});var ZV=ye((hsr,H_e)=>{"use strict";H_e.exports=function(t,r){return{start:{valType:"any",editType:"calc"},end:{valType:"any",editType:"calc"},size:{valType:"any",editType:"calc"},editType:"calc"}}});var j_e=ye((dsr,G_e)=>{"use strict";G_e.exports={eventDataKeys:["binNumber"]}});var c8=ye((vsr,X_e)=>{"use strict";var Ip=Lm(),W_e=Oc().axisHoverFormat,i_t=Wo().hovertemplateAttrs,n_t=Wo().texttemplateAttrs,XV=Su(),Z_e=ZV(),a_t=j_e(),YV=no().extendFlat;X_e.exports={x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},xhoverformat:W_e("x"),yhoverformat:W_e("y"),text:YV({},Ip.text,{}),hovertext:YV({},Ip.hovertext,{}),orientation:Ip.orientation,histfunc:{valType:"enumerated",values:["count","sum","avg","min","max"],dflt:"count",editType:"calc"},histnorm:{valType:"enumerated",values:["","percent","probability","density","probability density"],dflt:"",editType:"calc"},cumulative:{enabled:{valType:"boolean",dflt:!1,editType:"calc"},direction:{valType:"enumerated",values:["increasing","decreasing"],dflt:"increasing",editType:"calc"},currentbin:{valType:"enumerated",values:["include","exclude","half"],dflt:"include",editType:"calc"},editType:"calc"},nbinsx:{valType:"integer",min:0,dflt:0,editType:"calc"},xbins:Z_e("x",!0),nbinsy:{valType:"integer",min:0,dflt:0,editType:"calc"},ybins:Z_e("y",!0),autobinx:{valType:"boolean",dflt:null,editType:"calc"},autobiny:{valType:"boolean",dflt:null,editType:"calc"},bingroup:{valType:"string",dflt:"",editType:"calc"},hovertemplate:i_t({},{keys:a_t.eventDataKeys}),texttemplate:n_t({arrayOk:!1,editType:"plot"},{keys:["label","value"]}),textposition:YV({},Ip.textposition,{arrayOk:!1}),textfont:XV({arrayOk:!1,editType:"plot",colorEditType:"style"}),outsidetextfont:XV({arrayOk:!1,editType:"plot",colorEditType:"style"}),insidetextfont:XV({arrayOk:!1,editType:"plot",colorEditType:"style"}),insidetextanchor:Ip.insidetextanchor,textangle:Ip.textangle,cliponaxis:Ip.cliponaxis,constraintext:Ip.constraintext,marker:Ip.marker,offsetgroup:Ip.offsetgroup,alignmentgroup:Ip.alignmentgroup,selected:Ip.selected,unselected:Ip.unselected,zorder:Ip.zorder}});var $_e=ye((psr,J_e)=>{"use strict";var Y_e=ba(),x4=Mr(),K_e=va(),o_t=r0().handleText,s_t=zI(),l_t=c8();J_e.exports=function(t,r,n,i){function a(E,k){return x4.coerce(t,r,l_t,E,k)}var o=a("x"),s=a("y"),l=a("cumulative.enabled");l&&(a("cumulative.direction"),a("cumulative.currentbin")),a("text");var u=a("textposition");o_t(t,r,i,a,u,{moduleHasSelected:!0,moduleHasUnselected:!0,moduleHasConstrain:!0,moduleHasCliponaxis:!0,moduleHasTextangle:!0,moduleHasInsideanchor:!0}),a("hovertext"),a("hovertemplate"),a("xhoverformat"),a("yhoverformat");var c=a("orientation",s&&!o?"h":"v"),f=c==="v"?"x":"y",h=c==="v"?"y":"x",d=o&&s?Math.min(x4.minRowLength(o)&&x4.minRowLength(s)):x4.minRowLength(r[f]||[]);if(!d){r.visible=!1;return}r._length=d;var v=Y_e.getComponentMethod("calendars","handleTraceDefaults");v(t,r,["x","y"],i);var x=r[h];x&&a("histfunc"),a("histnorm"),a("autobin"+f),s_t(t,r,a,n,i),x4.coerceSelectionMarkerOpacity(r,a);var b=(r.marker.line||{}).color,g=Y_e.getComponentMethod("errorbars","supplyDefaults");g(t,r,b||K_e.defaultLine,{axis:"y"}),g(t,r,b||K_e.defaultLine,{axis:"x",inherit:"y"}),a("zorder")}});var h8=ye((gsr,txe)=>{"use strict";var b4=Mr(),u_t=af(),f8=ba().traceIs,c_t=Hb(),f_t=r0().validateCornerradius,Q_e=b4.nestedProperty,KV=Bb().getAxisGroup,exe=[{aStr:{x:"xbins.start",y:"ybins.start"},name:"start"},{aStr:{x:"xbins.end",y:"ybins.end"},name:"end"},{aStr:{x:"xbins.size",y:"ybins.size"},name:"size"},{aStr:{x:"nbinsx",y:"nbinsy"},name:"nbins"}],h_t=["x","y"];txe.exports=function(t,r){var n=r._histogramBinOpts={},i=[],a={},o=[],s,l,u,c,f,h,d;function v(H,X){return b4.coerce(s._input,s,s._module.attributes,H,X)}function x(H){return H.orientation==="v"?"x":"y"}function b(H,X){var G=u_t.getFromTrace({_fullLayout:r},H,X);return G.type}function g(H,X,G){var N=H.uid+"__"+G;X||(X=N);var W=b(H,G),re=H[G+"calendar"]||"",ae=n[X],_e=!0;ae&&(W===ae.axType&&re===ae.calendar?(_e=!1,ae.traces.push(H),ae.dirs.push(G)):(X=N,W!==ae.axType&&b4.warn(["Attempted to group the bins of trace",H.index,"set on a","type:"+W,"axis","with bins on","type:"+ae.axType,"axis."].join(" ")),re!==ae.calendar&&b4.warn(["Attempted to group the bins of trace",H.index,"set with a",re,"calendar","with bins",ae.calendar?"on a "+ae.calendar+" calendar":"w/o a set calendar"].join(" ")))),_e&&(n[X]={traces:[H],dirs:[G],axType:W,calendar:H[G+"calendar"]||""}),H["_"+G+"bingroup"]=X}for(f=0;f{"use strict";var d_t=TT().hoverPoints,v_t=Qa().hoverLabelText;rxe.exports=function(t,r,n,i,a){var o=d_t(t,r,n,i,a);if(o){t=o[0];var s=t.cd[t.index],l=t.cd[0].trace;if(!l.cumulative.enabled){var u=l.orientation==="h"?"y":"x";t[u+"Label"]=v_t(t[u+"a"],[s.ph0,s.ph1],l[u+"hoverformat"])}return o}}});var JV=ye((ysr,nxe)=>{"use strict";nxe.exports=function(t,r,n,i,a){if(t.x="xVal"in r?r.xVal:r.x,t.y="yVal"in r?r.yVal:r.y,"zLabelVal"in r&&(t.z=r.zLabelVal),r.xa&&(t.xaxis=r.xa),r.ya&&(t.yaxis=r.ya),!(n.cumulative||{}).enabled){var o=Array.isArray(a)?i[0].pts[a[0]][a[1]]:i[a].pts;t.pointNumbers=o,t.binNumber=t.pointNumber,delete t.pointNumber,delete t.pointIndex;var s;if(n._indexToPoints){s=[];for(var l=0;l{"use strict";axe.exports={attributes:c8(),layoutAttributes:DI(),supplyDefaults:$_e(),crossTraceDefaults:h8(),supplyLayoutDefaults:yV(),calc:UV().calc,crossTraceCalc:Gb().crossTraceCalc,plot:i2().plot,layerName:"barlayer",style:N0().style,styleOnSelect:N0().styleOnSelect,colorbar:Kd(),hoverPoints:ixe(),selectPoints:AT(),eventData:JV(),moduleType:"trace",name:"histogram",basePlotModule:Jf(),categories:["bar-like","cartesian","svg","bar","histogram","oriented","errorBarsOK","showLegend"],meta:{}}});var lxe=ye((xsr,sxe)=>{"use strict";sxe.exports=oxe()});var v8=ye((bsr,cxe)=>{"use strict";var Vg=c8(),uxe=ZV(),d8=ET(),p_t=vl(),$V=Oc().axisHoverFormat,g_t=Wo().hovertemplateAttrs,m_t=Wo().texttemplateAttrs,y_t=Kl(),w4=no().extendFlat;cxe.exports=w4({x:Vg.x,y:Vg.y,z:{valType:"data_array",editType:"calc"},marker:{color:{valType:"data_array",editType:"calc"},editType:"calc"},histnorm:Vg.histnorm,histfunc:Vg.histfunc,nbinsx:Vg.nbinsx,xbins:uxe("x"),nbinsy:Vg.nbinsy,ybins:uxe("y"),autobinx:Vg.autobinx,autobiny:Vg.autobiny,bingroup:w4({},Vg.bingroup,{}),xbingroup:w4({},Vg.bingroup,{}),ybingroup:w4({},Vg.bingroup,{}),xgap:d8.xgap,ygap:d8.ygap,zsmooth:d8.zsmooth,xhoverformat:$V("x"),yhoverformat:$V("y"),zhoverformat:$V("z",1),hovertemplate:g_t({},{keys:"z"}),texttemplate:m_t({arrayOk:!1,editType:"plot"},{keys:"z"}),textfont:d8.textfont,showlegend:w4({},p_t.showlegend,{dflt:!1})},y_t("",{cLetter:"z",autoColorDflt:!1}))});var QV=ye((wsr,hxe)=>{"use strict";var __t=ba(),fxe=Mr();hxe.exports=function(t,r,n,i){var a=n("x"),o=n("y"),s=fxe.minRowLength(a),l=fxe.minRowLength(o);if(!s||!l){r.visible=!1;return}r._length=Math.min(s,l);var u=__t.getComponentMethod("calendars","handleTraceDefaults");u(t,r,["x","y"],i);var c=n("z")||n("marker.color");c&&n("histfunc"),n("histnorm"),n("autobinx"),n("autobiny")}});var vxe=ye((Tsr,dxe)=>{"use strict";var x_t=Mr(),b_t=QV(),w_t=DV(),T_t=Uh(),A_t=y4(),S_t=v8();dxe.exports=function(t,r,n,i){function a(o,s){return x_t.coerce(t,r,S_t,o,s)}b_t(t,r,a,i),r.visible!==!1&&(w_t(t,r,a,i),T_t(t,r,i,a,{prefix:"",cLetter:"z"}),a("hovertemplate"),A_t(a,i),a("xhoverformat"),a("yhoverformat"))}});var mxe=ye((Asr,gxe)=>{"use strict";var M_t=u8(),pxe=Qa().hoverLabelText;gxe.exports=function(t,r,n,i,a){var o=M_t(t,r,n,i,a);if(o){t=o[0];var s=t.index,l=s[0],u=s[1],c=t.cd[0],f=c.trace,h=c.xRanges[u],d=c.yRanges[l];return t.xLabel=pxe(t.xa,[h[0],h[1]],f.xhoverformat),t.yLabel=pxe(t.ya,[d[0],d[1]],f.yhoverformat),o}}});var _xe=ye((Ssr,yxe)=>{"use strict";yxe.exports={attributes:v8(),supplyDefaults:vxe(),crossTraceDefaults:h8(),calc:i8(),plot:o8(),layerName:"heatmaplayer",colorbar:S_(),style:s8(),hoverPoints:mxe(),eventData:JV(),moduleType:"trace",name:"histogram2d",basePlotModule:Jf(),categories:["cartesian","svg","2dMap","histogram","showLegend"],meta:{}}});var bxe=ye((Msr,xxe)=>{"use strict";xxe.exports=_xe()});var p8=ye((Esr,wxe)=>{"use strict";wxe.exports={COMPARISON_OPS:["=","!=","<",">=",">","<="],COMPARISON_OPS2:["=","<",">=",">","<="],INTERVAL_OPS:["[]","()","[)","(]","][",")(","](",")["],SET_OPS:["{}","}{"],CONSTRAINT_REDUCTION:{"=":"=","<":"<","<=":"<",">":">",">=":">","[]":"[]","()":"[]","[)":"[]","(]":"[]","][":"][",")(":"][","](":"][",")[":"]["}}});var T4=ye((ksr,Mxe)=>{"use strict";var Gh=ET(),g8=Uc(),Axe=Oc(),eH=Axe.axisHoverFormat,E_t=Axe.descriptionOnlyNumbers,k_t=Kl(),C_t=Ed().dash,L_t=Su(),IT=no().extendFlat,Sxe=p8(),P_t=Sxe.COMPARISON_OPS2,I_t=Sxe.INTERVAL_OPS,Txe=g8.line;Mxe.exports=IT({z:Gh.z,x:Gh.x,x0:Gh.x0,dx:Gh.dx,y:Gh.y,y0:Gh.y0,dy:Gh.dy,xperiod:Gh.xperiod,yperiod:Gh.yperiod,xperiod0:g8.xperiod0,yperiod0:g8.yperiod0,xperiodalignment:Gh.xperiodalignment,yperiodalignment:Gh.yperiodalignment,text:Gh.text,hovertext:Gh.hovertext,transpose:Gh.transpose,xtype:Gh.xtype,ytype:Gh.ytype,xhoverformat:eH("x"),yhoverformat:eH("y"),zhoverformat:eH("z",1),hovertemplate:Gh.hovertemplate,texttemplate:IT({},Gh.texttemplate,{}),textfont:IT({},Gh.textfont,{}),hoverongaps:Gh.hoverongaps,connectgaps:IT({},Gh.connectgaps,{}),fillcolor:{valType:"color",editType:"calc"},autocontour:{valType:"boolean",dflt:!0,editType:"calc",impliedEdits:{"contours.start":void 0,"contours.end":void 0,"contours.size":void 0}},ncontours:{valType:"integer",dflt:15,min:1,editType:"calc"},contours:{type:{valType:"enumerated",values:["levels","constraint"],dflt:"levels",editType:"calc"},start:{valType:"number",dflt:null,editType:"plot",impliedEdits:{"^autocontour":!1}},end:{valType:"number",dflt:null,editType:"plot",impliedEdits:{"^autocontour":!1}},size:{valType:"number",dflt:null,min:0,editType:"plot",impliedEdits:{"^autocontour":!1}},coloring:{valType:"enumerated",values:["fill","heatmap","lines","none"],dflt:"fill",editType:"calc"},showlines:{valType:"boolean",dflt:!0,editType:"plot"},showlabels:{valType:"boolean",dflt:!1,editType:"plot"},labelfont:L_t({editType:"plot",colorEditType:"style"}),labelformat:{valType:"string",dflt:"",editType:"plot",description:E_t("contour label")},operation:{valType:"enumerated",values:[].concat(P_t).concat(I_t),dflt:"=",editType:"calc"},value:{valType:"any",dflt:0,editType:"calc"},editType:"calc",impliedEdits:{autocontour:!1}},line:{color:IT({},Txe.color,{editType:"style+colorbars"}),width:{valType:"number",min:0,editType:"style+colorbars"},dash:C_t,smoothing:IT({},Txe.smoothing,{}),editType:"plot"},zorder:g8.zorder},k_t("",{cLetter:"z",autoColorDflt:!1,editTypeOverride:"calc"}))});var rH=ye((Csr,kxe)=>{"use strict";var Hv=v8(),qy=T4(),R_t=Kl(),tH=Oc().axisHoverFormat,Exe=no().extendFlat;kxe.exports=Exe({x:Hv.x,y:Hv.y,z:Hv.z,marker:Hv.marker,histnorm:Hv.histnorm,histfunc:Hv.histfunc,nbinsx:Hv.nbinsx,xbins:Hv.xbins,nbinsy:Hv.nbinsy,ybins:Hv.ybins,autobinx:Hv.autobinx,autobiny:Hv.autobiny,bingroup:Hv.bingroup,xbingroup:Hv.xbingroup,ybingroup:Hv.ybingroup,autocontour:qy.autocontour,ncontours:qy.ncontours,contours:qy.contours,line:{color:qy.line.color,width:Exe({},qy.line.width,{dflt:.5}),dash:qy.line.dash,smoothing:qy.line.smoothing,editType:"plot"},xhoverformat:tH("x"),yhoverformat:tH("y"),zhoverformat:tH("z",1),hovertemplate:Hv.hovertemplate,texttemplate:qy.texttemplate,textfont:qy.textfont},R_t("",{cLetter:"z",editTypeOverride:"calc"}))});var m8=ye((Lsr,Cxe)=>{"use strict";Cxe.exports=function(t,r,n,i){var a=i("contours.start"),o=i("contours.end"),s=a===!1||o===!1,l=n("contours.size"),u;s?u=r.autocontour=!0:u=n("autocontour",!1),(u||!l)&&n("ncontours")}});var iH=ye((Psr,Lxe)=>{"use strict";var D_t=Mr();Lxe.exports=function(t,r,n,i){i||(i={});var a=t("contours.showlabels");if(a){var o=r.font;D_t.coerceFont(t,"contours.labelfont",o,{overrideDflt:{color:n}}),t("contours.labelformat")}i.hasHover!==!1&&t("zhoverformat")}});var y8=ye((Isr,Pxe)=>{"use strict";var z_t=Uh(),F_t=iH();Pxe.exports=function(t,r,n,i,a){var o=n("contours.coloring"),s,l="";o==="fill"&&(s=n("contours.showlines")),s!==!1&&(o!=="lines"&&(l=n("line.color","#000")),n("line.width",.5),n("line.dash")),o!=="none"&&(t.showlegend!==!0&&(r.showlegend=!1),r._dfltShowLegend=!1,z_t(t,r,i,n,{prefix:"",cLetter:"z"})),n("line.smoothing"),F_t(n,i,l,a)}});var zxe=ye((Rsr,Dxe)=>{"use strict";var Ixe=Mr(),q_t=QV(),O_t=m8(),B_t=y8(),N_t=y4(),Rxe=rH();Dxe.exports=function(t,r,n,i){function a(s,l){return Ixe.coerce(t,r,Rxe,s,l)}function o(s){return Ixe.coerce2(t,r,Rxe,s)}q_t(t,r,a,i),r.visible!==!1&&(O_t(t,r,a,o),B_t(t,r,a,i),a("xhoverformat"),a("yhoverformat"),a("hovertemplate"),r.contours&&r.contours.coloring==="heatmap"&&N_t(a,i))}});var oH=ye((Dsr,qxe)=>{"use strict";var aH=Qa(),nH=Mr();qxe.exports=function(t,r){var n=t.contours;if(t.autocontour){var i=t.zmin,a=t.zmax;(t.zauto||i===void 0)&&(i=nH.aggNums(Math.min,null,r)),(t.zauto||a===void 0)&&(a=nH.aggNums(Math.max,null,r));var o=Fxe(i,a,t.ncontours);n.size=o.dtick,n.start=aH.tickFirst(o),o.range.reverse(),n.end=aH.tickFirst(o),n.start===i&&(n.start+=n.size),n.end===a&&(n.end-=n.size),n.start>n.end&&(n.start=n.end=(n.start+n.end)/2),t._input.contours||(t._input.contours={}),nH.extendFlat(t._input.contours,{start:n.start,end:n.end,size:n.size}),t._input.autocontour=!0}else if(n.type!=="constraint"){var s=n.start,l=n.end,u=t._input.contours;if(s>l&&(n.start=u.start=l,l=n.end=u.end=s,s=n.start),!(n.size>0)){var c;s===l?c=1:c=Fxe(s,l,t.ncontours).dtick,u.size=n.size=c}}};function Fxe(e,t,r){var n={type:"linear",range:[e,t]};return aH.autoTicks(n,(t-e)/(r||15)),n}});var A4=ye((zsr,Oxe)=>{"use strict";Oxe.exports=function(t){return t.end+t.size/1e6}});var sH=ye((Fsr,Nxe)=>{"use strict";var Bxe=Mu(),U_t=i8(),V_t=oH(),H_t=A4();Nxe.exports=function(t,r){var n=U_t(t,r),i=n[0].z;V_t(r,i);var a=r.contours,o=Bxe.extractOpts(r),s;if(a.coloring==="heatmap"&&o.auto&&r.autocontour===!1){var l=a.start,u=H_t(a),c=a.size||1,f=Math.floor((u-l)/c)+1;isFinite(c)||(c=1,f=1);var h=l-c/2,d=h+f*c;s=[h,d]}else s=i;return Bxe.calc(t,r,{vals:s,cLetter:"z"}),n}});var S4=ye((qsr,Uxe)=>{"use strict";Uxe.exports={BOTTOMSTART:[1,9,13,104,713],TOPSTART:[4,6,7,104,713],LEFTSTART:[8,12,14,208,1114],RIGHTSTART:[2,3,11,208,1114],NEWDELTA:[null,[-1,0],[0,-1],[-1,0],[1,0],null,[0,-1],[-1,0],[0,1],[0,1],null,[0,1],[1,0],[1,0],[0,-1]],CHOOSESADDLE:{104:[4,1],208:[2,8],713:[7,13],1114:[11,14]},SADDLEREMAINDER:{1:4,2:8,4:1,7:13,8:2,11:14,13:7,14:11},LABELDISTANCE:2,LABELINCREASE:10,LABELMIN:3,LABELMAX:10,LABELOPTIMIZER:{EDGECOST:1,ANGLECOST:1,NEIGHBORCOST:5,SAMELEVELFACTOR:10,SAMELEVELDISTANCE:5,MAXCOST:100,INITIALSEARCHPOINTS:10,ITERATIONS:5}}});var lH=ye((Osr,Vxe)=>{"use strict";var _8=S4();Vxe.exports=function(t){var r=t[0].z,n=r.length,i=r[0].length,a=n===2||i===2,o,s,l,u,c,f,h,d,v;for(s=0;se?0:1)+(t[0][1]>e?0:2)+(t[1][1]>e?0:4)+(t[1][0]>e?0:8);if(r===5||r===10){var n=(t[0][0]+t[0][1]+t[1][0]+t[1][1])/4;return e>n?r===5?713:1114:r===5?104:208}return r===15?0:r}});var uH=ye((Bsr,jxe)=>{"use strict";var x8=Mr(),RT=S4();jxe.exports=function(t,r,n){var i,a,o,s,l;for(r=r||.01,n=n||.01,o=0;o20?(o=RT.CHOOSESADDLE[o][(s[0]||s[1])<0?0:1],e.crossings[a]=RT.SADDLEREMAINDER[o]):delete e.crossings[a],s=RT.NEWDELTA[o],!s){x8.log("Found bad marching index:",o,t,e.level);break}l.push(Gxe(e,t,s)),t[0]+=s[0],t[1]+=s[1],a=t.join(","),M4(l[l.length-1],l[l.length-2],n,i)&&l.pop();var v=s[0]&&(t[0]<0||t[0]>c-2)||s[1]&&(t[1]<0||t[1]>u-2),x=t[0]===f[0]&&t[1]===f[1]&&s[0]===h[0]&&s[1]===h[1];if(x||r&&v)break;o=e.crossings[a]}d===1e4&&x8.log("Infinite loop in contour?");var b=M4(l[0],l[l.length-1],n,i),g=0,E=.2*e.smoothing,k=[],A=0,L,_,C,M,p,P,T,F,q,V,H;for(d=1;d=A;d--)if(L=k[d],L=A&&L+k[_]F&&q--,e.edgepaths[q]=H.concat(l,V));break}W||(e.edgepaths[F]=l.concat(V))}for(F=0;F20&&t?e===208||e===1114?n=r[0]===0?1:-1:i=r[1]===0?1:-1:RT.BOTTOMSTART.indexOf(e)!==-1?i=1:RT.LEFTSTART.indexOf(e)!==-1?n=1:RT.TOPSTART.indexOf(e)!==-1?i=-1:n=-1,[n,i]}function Gxe(e,t,r){var n=t[0]+Math.max(r[0],0),i=t[1]+Math.max(r[1],0),a=e.z[i][n],o=e.xaxis,s=e.yaxis;if(r[1]){var l=(e.level-a)/(e.z[i][n+1]-a),u=(l!==1?(1-l)*o.c2l(e.x[n]):0)+(l!==0?l*o.c2l(e.x[n+1]):0);return[o.c2p(o.l2c(u),!0),s.c2p(e.y[i],!0),n+l,i]}else{var c=(e.level-a)/(e.z[i+1][n]-a),f=(c!==1?(1-c)*s.c2l(e.y[i]):0)+(c!==0?c*s.c2l(e.y[i+1]):0);return[o.c2p(e.x[n],!0),s.c2p(s.l2c(f),!0),n,i+c]}}});var Yxe=ye((Nsr,Xxe)=>{"use strict";var cH=p8(),Z_t=uo();Xxe.exports={"[]":Wxe("[]"),"][":Wxe("]["),">":fH(">"),"<":fH("<"),"=":fH("=")};function Zxe(e,t){var r=Array.isArray(t),n;function i(a){return Z_t(a)?+a:null}return cH.COMPARISON_OPS2.indexOf(e)!==-1?n=i(r?t[0]:t):cH.INTERVAL_OPS.indexOf(e)!==-1?n=r?[i(t[0]),i(t[1])]:[i(t),i(t)]:cH.SET_OPS.indexOf(e)!==-1&&(n=r?t.map(i):[i(t)]),n}function Wxe(e){return function(t){t=Zxe(e,t);var r=Math.min(t[0],t[1]),n=Math.max(t[0],t[1]);return{start:r,end:n,size:n-r}}}function fH(e){return function(t){return t=Zxe(e,t),{start:t,end:1/0,size:1/0}}}});var hH=ye((Usr,Jxe)=>{"use strict";var Kxe=Mr(),X_t=Yxe(),Y_t=A4();Jxe.exports=function(t,r,n){for(var i=t.type==="constraint"?X_t[t._operation](t.value):t,a=i.size,o=[],s=Y_t(i),l=n.trace._carpetTrace,u=l?{xaxis:l.aaxis,yaxis:l.baxis,x:n.a,y:n.b}:{xaxis:r.xaxis,yaxis:r.yaxis,x:n.x,y:n.y},c=i.start;c1e3){Kxe.warn("Too many contours, clipping at 1000",t);break}return o}});var dH=ye((Vsr,Qxe)=>{"use strict";var DT=Mr();Qxe.exports=function(e,t){var r,n,i,a=function(l){return l.reverse()},o=function(l){return l};switch(t){case"=":case"<":return e;case">":for(e.length!==1&&DT.warn("Contour data invalid for the specified inequality operation."),n=e[0],r=0;r{"use strict";ebe.exports=function(e,t){var r=e[0],n=r.z,i;switch(t.type){case"levels":var a=Math.min(n[0][0],n[0][1]);for(i=0;io.level||o.starts.length&&a===o.level)}break;case"constraint":if(r.prefixBoundary=!1,r.edgepaths.length)return;var s=r.x.length,l=r.y.length,u=-1/0,c=1/0;for(i=0;i":f>u&&(r.prefixBoundary=!0);break;case"<":(fu||r.starts.length&&d===c)&&(r.prefixBoundary=!0);break;case"][":h=Math.min(f[0],f[1]),d=Math.max(f[0],f[1]),hu&&(r.prefixBoundary=!0);break}break}}});var b8=ye(Gv=>{"use strict";var k4=xa(),Id=Mr(),Oy=ao(),K_t=Mu(),ibe=Ll(),tbe=Qa(),rbe=ym(),J_t=o8(),nbe=lH(),abe=uH(),$_t=hH(),Q_t=dH(),obe=vH(),E4=S4(),Rm=E4.LABELOPTIMIZER;Gv.plot=function(t,r,n,i){var a=r.xaxis,o=r.yaxis;Id.makeTraceGroups(i,n,"contour").each(function(s){var l=k4.select(this),u=s[0],c=u.trace,f=u.x,h=u.y,d=c.contours,v=$_t(d,r,u),x=Id.ensureSingle(l,"g","heatmapcoloring"),b=[];d.coloring==="heatmap"&&(b=[s]),J_t(t,r,b,x),nbe(v),abe(v);var g=a.c2p(f[0],!0),E=a.c2p(f[f.length-1],!0),k=o.c2p(h[0],!0),A=o.c2p(h[h.length-1],!0),L=[[g,A],[E,A],[E,k],[g,k]],_=v;d.type==="constraint"&&(_=Q_t(v,d._operation)),ext(l,L,d),txt(l,_,L,d),rxt(l,v,t,u,d),nxt(l,r,t,u,L)})};function ext(e,t,r){var n=Id.ensureSingle(e,"g","contourbg"),i=n.selectAll("path").data(r.coloring==="fill"?[0]:[]);i.enter().append("path"),i.exit().remove(),i.attr("d","M"+t.join("L")+"Z").style("stroke","none")}function txt(e,t,r,n){var i=n.coloring==="fill"||n.type==="constraint"&&n._operation!=="=",a="M"+r.join("L")+"Z";i&&obe(t,n);var o=Id.ensureSingle(e,"g","contourfill"),s=o.selectAll("path").data(i?t:[]);s.enter().append("path"),s.exit().remove(),s.each(function(l){var u=(l.prefixBoundary?a:"")+sbe(l,r);u?k4.select(this).attr("d",u).style("stroke","none"):k4.select(this).remove()})}function sbe(e,t){var r="",n=0,i=e.edgepaths.map(function(g,E){return E}),a=!0,o,s,l,u,c,f;function h(g){return Math.abs(g[1]-t[0][1])<.01}function d(g){return Math.abs(g[1]-t[2][1])<.01}function v(g){return Math.abs(g[0]-t[0][0])<.01}function x(g){return Math.abs(g[0]-t[2][0])<.01}for(;i.length;){for(f=Oy.smoothopen(e.edgepaths[n],e.smoothing),r+=a?f:f.replace(/^M/,"L"),i.splice(i.indexOf(n),1),o=e.edgepaths[n][e.edgepaths[n].length-1],u=-1,l=0;l<4;l++){if(!o){Id.log("Missing end?",n,e);break}for(h(o)&&!x(o)?s=t[1]:v(o)?s=t[0]:d(o)?s=t[3]:x(o)&&(s=t[2]),c=0;c=0&&(s=b,u=c):Math.abs(o[1]-s[1])<.01?Math.abs(o[1]-b[1])<.01&&(b[0]-o[0])*(s[0]-b[0])>=0&&(s=b,u=c):Id.log("endpt to newendpt is not vert. or horz.",o,s,b)}if(o=s,u>=0)break;r+="L"+s}if(u===e.edgepaths.length){Id.log("unclosed perimeter path");break}n=u,a=i.indexOf(n)===-1,a&&(n=i[0],r+="Z")}for(n=0;nRm.MAXCOST*2)break;h&&(s/=2),o=u-s/2,l=o+s*1.5}if(f<=Rm.MAXCOST)return c};function ixt(e,t,r,n){var i=t.width/2,a=t.height/2,o=e.x,s=e.y,l=e.theta,u=Math.cos(l)*i,c=Math.sin(l)*i,f=(o>n.center?n.right-o:o-n.left)/(u+Math.abs(Math.sin(l)*a)),h=(s>n.middle?n.bottom-s:s-n.top)/(Math.abs(c)+Math.cos(l)*a);if(f<1||h<1)return 1/0;var d=Rm.EDGECOST*(1/(f-1)+1/(h-1));d+=Rm.ANGLECOST*l*l;for(var v=o-u,x=s-c,b=o+u,g=s+c,E=0;E{"use strict";var oxt=xa(),pH=Mu(),sxt=A4();lbe.exports=function(t){var r=t.contours,n=r.start,i=sxt(r),a=r.size||1,o=Math.floor((i-n)/a)+1,s=r.coloring==="lines"?0:1,l=pH.extractOpts(t);isFinite(a)||(a=1,o=1);var u=l.reversescale?pH.flipScale(l.colorscale):l.colorscale,c=u.length,f=new Array(c),h=new Array(c),d,v,x=l.min,b=l.max;if(r.coloring==="heatmap"){for(v=0;v=b)&&(n<=x&&(n=x),i>=b&&(i=b),o=Math.floor((i-n)/a)+1,s=0),v=0;vx&&(f.unshift(x),h.unshift(h[0])),f[f.length-1]{"use strict";var w8=xa(),ube=ao(),lxt=s8(),uxt=gH();cbe.exports=function(t){var r=w8.select(t).selectAll("g.contour");r.style("opacity",function(n){return n[0].trace.opacity}),r.each(function(n){var i=w8.select(this),a=n[0].trace,o=a.contours,s=a.line,l=o.size||1,u=o.start,c=o.type==="constraint",f=!c&&o.coloring==="lines",h=!c&&o.coloring==="fill",d=f||h?uxt(a):null;i.selectAll("g.contourlevel").each(function(b){w8.select(this).selectAll("path").call(ube.lineGroupStyle,s.width,f?d(b.level):s.color,s.dash)});var v=o.labelfont;if(i.selectAll("g.contourlabels text").each(function(b){ube.font(w8.select(this),{weight:v.weight,style:v.style,variant:v.variant,textcase:v.textcase,lineposition:v.lineposition,shadow:v.shadow,family:v.family,size:v.size,color:v.color||(f?d(b.level):s.color)})}),c)i.selectAll("g.contourfill path").style("fill",a.fillcolor);else if(h){var x;i.selectAll("g.contourfill path").style("fill",function(b){return x===void 0&&(x=b.level),d(b.level+.5*l)}),x===void 0&&(x=u),i.selectAll("g.contourbg path").style("fill",d(x-.5*l))}}),lxt(t)}});var A8=ye((Zsr,hbe)=>{"use strict";var fbe=Mu(),cxt=gH(),fxt=A4();function hxt(e,t,r){var n=t.contours,i=t.line,a=n.size||1,o=n.coloring,s=cxt(t,{isColorbar:!0});if(o==="heatmap"){var l=fbe.extractOpts(t);r._fillgradient=l.reversescale?fbe.flipScale(l.colorscale):l.colorscale,r._zrange=[l.min,l.max]}else o==="fill"&&(r._fillcolor=s);r._line={color:o==="lines"?s:i.color,width:n.showlines!==!1?i.width:0,dash:i.dash},r._levels={start:n.start,end:fxt(n),size:a}}hbe.exports={min:"zmin",max:"zmax",calc:hxt}});var mH=ye((Xsr,dbe)=>{"use strict";var S8=va(),dxt=u8();dbe.exports=function(t,r,n,i,a){a||(a={}),a.isContour=!0;var o=dxt(t,r,n,i,a);return o&&o.forEach(function(s){var l=s.trace;l.contours.type==="constraint"&&(l.fillcolor&&S8.opacity(l.fillcolor)?s.color=S8.addOpacity(l.fillcolor,1):l.contours.showlines&&S8.opacity(l.line.color)&&(s.color=S8.addOpacity(l.line.color,1)))}),o}});var pbe=ye((Ysr,vbe)=>{"use strict";vbe.exports={attributes:rH(),supplyDefaults:zxe(),crossTraceDefaults:h8(),calc:sH(),plot:b8().plot,layerName:"contourlayer",style:T8(),colorbar:A8(),hoverPoints:mH(),moduleType:"trace",name:"histogram2dcontour",basePlotModule:Jf(),categories:["cartesian","svg","2dMap","contour","histogram","showLegend"],meta:{}}});var mbe=ye((Ksr,gbe)=>{"use strict";gbe.exports=pbe()});var yH=ye((Jsr,Tbe)=>{"use strict";var ybe=uo(),vxt=iH(),bbe=va(),_be=bbe.addOpacity,pxt=bbe.opacity,wbe=p8(),xbe=Mr().isArrayOrTypedArray,gxt=wbe.CONSTRAINT_REDUCTION,mxt=wbe.COMPARISON_OPS2;Tbe.exports=function(t,r,n,i,a,o){var s=r.contours,l,u,c,f=n("contours.operation");if(s._operation=gxt[f],yxt(n,s),f==="="?l=s.showlines=!0:(l=n("contours.showlines"),c=n("fillcolor",_be((t.line||{}).color||a,.5))),l){var h=c&&pxt(c)?_be(r.fillcolor,1):a;u=n("line.color",h),n("line.width",2),n("line.dash")}n("line.smoothing"),vxt(n,i,u,o)};function yxt(e,t){var r;mxt.indexOf(t.operation)===-1?(e("contours.value",[0,1]),xbe(t.value)?t.value.length>2?t.value=t.value.slice(2):t.length===0?t.value=[0,1]:t.length<2?(r=parseFloat(t.value[0]),t.value=[r,r+1]):t.value=[parseFloat(t.value[0]),parseFloat(t.value[1])]:ybe(t.value)&&(r=parseFloat(t.value),t.value=[r,r+1])):(e("contours.value",0),ybe(t.value)||(xbe(t.value)?t.value=parseFloat(t.value[0]):t.value=0))}});var Mbe=ye(($sr,Sbe)=>{"use strict";var _H=Mr(),_xt=ZI(),xxt=Pg(),bxt=yH(),wxt=m8(),Txt=y8(),Axt=y4(),Abe=T4();Sbe.exports=function(t,r,n,i){function a(u,c){return _H.coerce(t,r,Abe,u,c)}function o(u){return _H.coerce2(t,r,Abe,u)}var s=_xt(t,r,a,i);if(!s){r.visible=!1;return}xxt(t,r,i,a),a("xhoverformat"),a("yhoverformat"),a("text"),a("hovertext"),a("hoverongaps"),a("hovertemplate");var l=a("contours.type")==="constraint";a("connectgaps",_H.isArray1D(r.z)),l?bxt(t,r,a,i,n):(wxt(t,r,a,o),Txt(t,r,a,i)),r.contours&&r.contours.coloring==="heatmap"&&Axt(a,i),a("zorder")}});var kbe=ye((Qsr,Ebe)=>{"use strict";Ebe.exports={attributes:T4(),supplyDefaults:Mbe(),calc:sH(),plot:b8().plot,style:T8(),colorbar:A8(),hoverPoints:mH(),moduleType:"trace",name:"contour",basePlotModule:Jf(),categories:["cartesian","svg","2dMap","contour","showLegend"],meta:{}}});var Lbe=ye((elr,Cbe)=>{"use strict";Cbe.exports=kbe()});var xH=ye((tlr,Ibe)=>{"use strict";var Sxt=Wo().hovertemplateAttrs,Mxt=Wo().texttemplateAttrs,Ext=Eg(),a0=Uc(),kxt=vl(),Pbe=Kl(),Cxt=Ed().dash,M_=no().extendFlat,j0=a0.marker,C4=a0.line,Lxt=j0.line;Ibe.exports={a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},c:{valType:"data_array",editType:"calc"},sum:{valType:"number",dflt:0,min:0,editType:"calc"},mode:M_({},a0.mode,{dflt:"markers"}),text:M_({},a0.text,{}),texttemplate:Mxt({editType:"plot"},{keys:["a","b","c","text"]}),hovertext:M_({},a0.hovertext,{}),line:{color:C4.color,width:C4.width,dash:Cxt,backoff:C4.backoff,shape:M_({},C4.shape,{values:["linear","spline"]}),smoothing:C4.smoothing,editType:"calc"},connectgaps:a0.connectgaps,cliponaxis:a0.cliponaxis,fill:M_({},a0.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:Ext(),marker:M_({symbol:j0.symbol,opacity:j0.opacity,angle:j0.angle,angleref:j0.angleref,standoff:j0.standoff,maxdisplayed:j0.maxdisplayed,size:j0.size,sizeref:j0.sizeref,sizemin:j0.sizemin,sizemode:j0.sizemode,line:M_({width:Lxt.width,editType:"calc"},Pbe("marker.line")),gradient:j0.gradient,editType:"calc"},Pbe("marker")),textfont:a0.textfont,textposition:a0.textposition,selected:a0.selected,unselected:a0.unselected,hoverinfo:M_({},kxt.hoverinfo,{flags:["a","b","c","text","name"]}),hoveron:a0.hoveron,hovertemplate:Sxt()}});var Fbe=ye((rlr,zbe)=>{"use strict";var Rbe=Mr(),Pxt=Sm(),zT=lu(),Ixt=$p(),Rxt=R0(),Dbe=J3(),Dxt=D0(),zxt=Ig(),Fxt=xH();zbe.exports=function(t,r,n,i){function a(h,d){return Rbe.coerce(t,r,Fxt,h,d)}var o=a("a"),s=a("b"),l=a("c"),u;if(o?(u=o.length,s?(u=Math.min(u,s.length),l&&(u=Math.min(u,l.length))):l?u=Math.min(u,l.length):u=0):s&&l&&(u=Math.min(s.length,l.length)),!u){r.visible=!1;return}r._length=u,a("sum"),a("text"),a("hovertext"),r.hoveron!=="fills"&&a("hovertemplate");var c=u{"use strict";var bH=Qa();qbe.exports=function(t,r,n){var i={},a=n[r.subplot]._subplot;return i.aLabel=bH.tickText(a.aaxis,t.a,!0).text,i.bLabel=bH.tickText(a.baxis,t.b,!0).text,i.cLabel=bH.tickText(a.caxis,t.c,!0).text,i}});var Vbe=ye((nlr,Ube)=>{"use strict";var wH=uo(),qxt=z0(),Oxt=km(),Bxt=F0(),Nxt=q0().calcMarkerSize,Bbe=["a","b","c"],Nbe={a:["b","c"],b:["a","c"],c:["a","b"]};Ube.exports=function(t,r){var n=t._fullLayout[r.subplot],i=n.sum,a=r.sum||i,o={a:r.a,b:r.b,c:r.c},s=r.ids,l,u,c,f,h,d;for(l=0;l{"use strict";var Uxt=iT();Hbe.exports=function(t,r,n){var i=r.plotContainer;i.select(".scatterlayer").selectAll("*").remove();for(var a=r.xaxis,o=r.yaxis,s={xaxis:a,yaxis:o,plot:i,layerClipId:r._hasClipOnAxisFalse?r.clipIdRelative:null},l=r.layers.frontplot.select("g.scatterlayer"),u=0;u{"use strict";var Vxt=sT();jbe.exports=function(t,r,n,i){var a=Vxt(t,r,n,i);if(!a||a[0].index===!1)return;var o=a[0];if(o.index===void 0){var s=1-o.y0/t.ya._length,l=t.xa._length,u=l*s/2,c=l-u;return o.x0=Math.max(Math.min(o.x0,c),u),o.x1=Math.max(Math.min(o.x1,c),u),a}var f=o.cd[o.index],h=o.trace,d=o.subplot;o.a=f.a,o.b=f.b,o.c=f.c,o.xLabelVal=void 0,o.yLabelVal=void 0;var v={};v[h.subplot]={_subplot:d};var x=h._module.formatLabels(f,h,v);o.aLabel=x.aLabel,o.bLabel=x.bLabel,o.cLabel=x.cLabel;var b=f.hi||h.hoverinfo,g=[];function E(A,L){g.push(A._hovertitle+": "+L)}if(!h.hovertemplate){var k=b.split("+");k.indexOf("all")!==-1&&(k=["a","b","c"]),k.indexOf("a")!==-1&&E(d.aaxis,o.aLabel),k.indexOf("b")!==-1&&E(d.baxis,o.bLabel),k.indexOf("c")!==-1&&E(d.caxis,o.cLabel)}return o.extraText=g.join("
"),o.hovertemplate=h.hovertemplate,a}});var Xbe=ye((slr,Zbe)=>{"use strict";Zbe.exports=function(t,r,n,i,a){if(r.xa&&(t.xaxis=r.xa),r.ya&&(t.yaxis=r.ya),i[a]){var o=i[a];t.a=o.a,t.b=o.b,t.c=o.c}else t.a=r.a,t.b=r.b,t.c=r.c;return t}});var a2e=ye((llr,n2e)=>{"use strict";var e2e=xa(),Hxt=id(),TH=ba(),By=Mr(),Dm=By.strTranslate,M8=By._,qT=va(),E8=ao(),L4=ym(),AH=no().extendFlat,Gxt=Xu(),E_=Qa(),Ybe=gv(),Kbe=Nc(),t2e=Sg(),Jbe=t2e.freeMode,jxt=t2e.rectMode,SH=Mb(),Wxt=wf().prepSelect,Zxt=wf().selectOnClick,Xxt=wf().clearOutline,Yxt=wf().clearSelectionsCache,r2e=ad();function i2e(e,t){this.id=e.id,this.graphDiv=e.graphDiv,this.init(t),this.makeFramework(t),this.updateFx(t),this.aTickLayout=null,this.bTickLayout=null,this.cTickLayout=null}n2e.exports=i2e;var zm=i2e.prototype;zm.init=function(e){this.container=e._ternarylayer,this.defs=e._defs,this.layoutId=e._uid,this.traceHash={},this.layers={}};zm.plot=function(e,t){var r=this,n=t[r.id],i=t._size;r._hasClipOnAxisFalse=!1;for(var a=0;aFT*u?(g=u,b=g*FT):(b=l,g=b/FT),E=o*b/l,k=s*g/u,v=t.l+t.w*i-b/2,x=t.t+t.h*(1-a)-g/2,r.x0=v,r.y0=x,r.w=b,r.h=g,r.sum=c,r.xaxis={type:"linear",range:[f+2*d-c,c-f-2*h],domain:[i-E/2,i+E/2],_id:"x"},L4(r.xaxis,r.graphDiv._fullLayout),r.xaxis.setScale(),r.xaxis.isPtWithinRange=function(V){return V.a>=r.aaxis.range[0]&&V.a<=r.aaxis.range[1]&&V.b>=r.baxis.range[1]&&V.b<=r.baxis.range[0]&&V.c>=r.caxis.range[1]&&V.c<=r.caxis.range[0]},r.yaxis={type:"linear",range:[f,c-h-d],domain:[a-k/2,a+k/2],_id:"y"},L4(r.yaxis,r.graphDiv._fullLayout),r.yaxis.setScale(),r.yaxis.isPtWithinRange=function(){return!0};var A=r.yaxis.domain[0],L=r.aaxis=AH({},e.aaxis,{range:[f,c-h-d],side:"left",tickangle:(+e.aaxis.tickangle||0)-30,domain:[A,A+k*FT],anchor:"free",position:0,_id:"y",_length:b});L4(L,r.graphDiv._fullLayout),L.setScale();var _=r.baxis=AH({},e.baxis,{range:[c-f-d,h],side:"bottom",domain:r.xaxis.domain,anchor:"free",position:0,_id:"x",_length:b});L4(_,r.graphDiv._fullLayout),_.setScale();var C=r.caxis=AH({},e.caxis,{range:[c-f-h,d],side:"right",tickangle:(+e.caxis.tickangle||0)+30,domain:[A,A+k*FT],anchor:"free",position:0,_id:"y",_length:b});L4(C,r.graphDiv._fullLayout),C.setScale();var M="M"+v+","+(x+g)+"h"+b+"l-"+b/2+",-"+g+"Z";r.clipDef.select("path").attr("d",M),r.layers.plotbg.select("path").attr("d",M);var p="M0,"+g+"h"+b+"l-"+b/2+",-"+g+"Z";r.clipDefRelative.select("path").attr("d",p);var P=Dm(v,x);r.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",P),r.clipDefRelative.select("path").attr("transform",null);var T=Dm(v-_._offset,x+g);r.layers.baxis.attr("transform",T),r.layers.bgrid.attr("transform",T);var F=Dm(v+b/2,x)+"rotate(30)"+Dm(0,-L._offset);r.layers.aaxis.attr("transform",F),r.layers.agrid.attr("transform",F);var q=Dm(v+b/2,x)+"rotate(-30)"+Dm(0,-C._offset);r.layers.caxis.attr("transform",q),r.layers.cgrid.attr("transform",q),r.drawAxes(!0),r.layers.aline.select("path").attr("d",L.showline?"M"+v+","+(x+g)+"l"+b/2+",-"+g:"M0,0").call(qT.stroke,L.linecolor||"#000").style("stroke-width",(L.linewidth||0)+"px"),r.layers.bline.select("path").attr("d",_.showline?"M"+v+","+(x+g)+"h"+b:"M0,0").call(qT.stroke,_.linecolor||"#000").style("stroke-width",(_.linewidth||0)+"px"),r.layers.cline.select("path").attr("d",C.showline?"M"+(v+b/2)+","+x+"l"+b/2+","+g:"M0,0").call(qT.stroke,C.linecolor||"#000").style("stroke-width",(C.linewidth||0)+"px"),r.graphDiv._context.staticPlot||r.initInteractions(),E8.setClipUrl(r.layers.frontplot,r._hasClipOnAxisFalse?null:r.clipId,r.graphDiv)};zm.drawAxes=function(e){var t=this,r=t.graphDiv,n=t.id.substr(7)+"title",i=t.layers,a=t.aaxis,o=t.baxis,s=t.caxis;if(t.drawAx(a),t.drawAx(o),t.drawAx(s),e){var l=Math.max(a.showticklabels?a.tickfont.size/2:0,(s.showticklabels?s.tickfont.size*.75:0)+(s.ticks==="outside"?s.ticklen*.87:0)),u=(o.showticklabels?o.tickfont.size:0)+(o.ticks==="outside"?o.ticklen:0)+3;i["a-title"]=SH.draw(r,"a"+n,{propContainer:a,propName:t.id+".aaxis.title",placeholder:M8(r,"Click to enter Component A title"),attributes:{x:t.x0+t.w/2,y:t.y0-a.title.font.size/3-l,"text-anchor":"middle"}}),i["b-title"]=SH.draw(r,"b"+n,{propContainer:o,propName:t.id+".baxis.title",placeholder:M8(r,"Click to enter Component B title"),attributes:{x:t.x0-u,y:t.y0+t.h+o.title.font.size*.83+u,"text-anchor":"middle"}}),i["c-title"]=SH.draw(r,"c"+n,{propContainer:s,propName:t.id+".caxis.title",placeholder:M8(r,"Click to enter Component C title"),attributes:{x:t.x0+t.w+u,y:t.y0+t.h+s.title.font.size*.83+u,"text-anchor":"middle"}})}};zm.drawAx=function(e){var t=this,r=t.graphDiv,n=e._name,i=n.charAt(0),a=e._id,o=t.layers[n],s=30,l=i+"tickLayout",u=Kxt(e);t[l]!==u&&(o.selectAll("."+a+"tick").remove(),t[l]=u),e.setScale();var c=E_.calcTicks(e),f=E_.clipEnds(e,c),h=E_.makeTransTickFn(e),d=E_.getTickSigns(e)[2],v=By.deg2rad(s),x=d*(e.linewidth||1)/2,b=d*e.ticklen,g=t.w,E=t.h,k=i==="b"?"M0,"+x+"l"+Math.sin(v)*b+","+Math.cos(v)*b:"M"+x+",0l"+Math.cos(v)*b+","+-Math.sin(v)*b,A={a:"M0,0l"+E+",-"+g/2,b:"M0,0l-"+g/2+",-"+E,c:"M0,0l-"+E+","+g/2}[i];E_.drawTicks(r,e,{vals:e.ticks==="inside"?f:c,layer:o,path:k,transFn:h,crisp:!1}),E_.drawGrid(r,e,{vals:f,layer:t.layers[i+"grid"],path:A,transFn:h,crisp:!1}),E_.drawLabels(r,e,{vals:c,layer:o,transFn:h,labelFns:E_.makeLabelFns(e,0,s)})};function Kxt(e){return e.ticks+String(e.ticklen)+String(e.showticklabels)}var fd=r2e.MINZOOM/2+.87,Jxt="m-0.87,.5h"+fd+"v3h-"+(fd+5.2)+"l"+(fd/2+2.6)+",-"+(fd*.87+4.5)+"l2.6,1.5l-"+fd/2+","+fd*.87+"Z",$xt="m0.87,.5h-"+fd+"v3h"+(fd+5.2)+"l-"+(fd/2+2.6)+",-"+(fd*.87+4.5)+"l-2.6,1.5l"+fd/2+","+fd*.87+"Z",Qxt="m0,1l"+fd/2+","+fd*.87+"l2.6,-1.5l-"+(fd/2+2.6)+",-"+(fd*.87+4.5)+"l-"+(fd/2+2.6)+","+(fd*.87+4.5)+"l2.6,1.5l"+fd/2+",-"+fd*.87+"Z",ebt="m0.5,0.5h5v-2h-5v-5h-2v5h-5v2h5v5h2Z",$be=!0;zm.clearOutline=function(){Yxt(this.dragOptions),Xxt(this.dragOptions.gd)};zm.initInteractions=function(){var e=this,t=e.layers.plotbg.select("path").node(),r=e.graphDiv,n=r._fullLayout._zoomlayer,i,a;this.dragOptions={element:t,gd:r,plotinfo:{id:e.id,domain:r._fullLayout[e.id].domain,xaxis:e.xaxis,yaxis:e.yaxis},subplot:e.id,prepFn:function(T,F,q){e.dragOptions.xaxes=[e.xaxis],e.dragOptions.yaxes=[e.yaxis],i=r._fullLayout._invScaleX,a=r._fullLayout._invScaleY;var V=e.dragOptions.dragmode=r._fullLayout.dragmode;Jbe(V)?e.dragOptions.minDrag=1:e.dragOptions.minDrag=void 0,V==="zoom"?(e.dragOptions.moveFn=_,e.dragOptions.clickFn=g,e.dragOptions.doneFn=C,E(T,F,q)):V==="pan"?(e.dragOptions.moveFn=p,e.dragOptions.clickFn=g,e.dragOptions.doneFn=P,M(),e.clearOutline(r)):(jxt(V)||Jbe(V))&&Wxt(T,F,q,e.dragOptions,V)}};var o,s,l,u,c,f,h,d,v,x;function b(T){var F={};return F[e.id+".aaxis.min"]=T.a,F[e.id+".baxis.min"]=T.b,F[e.id+".caxis.min"]=T.c,F}function g(T,F){var q=r._fullLayout.clickmode;Qbe(r),T===2&&(r.emit("plotly_doubleclick",null),TH.call("_guiRelayout",r,b({a:0,b:0,c:0}))),q.indexOf("select")>-1&&T===1&&Zxt(F,r,[e.xaxis],[e.yaxis],e.id,e.dragOptions),q.indexOf("event")>-1&&Kbe.click(r,F,e.id)}function E(T,F,q){var V=t.getBoundingClientRect();o=F-V.left,s=q-V.top,r._fullLayout._calcInverseTransform(r);var H=r._fullLayout._invTransform,X=By.apply3DTransform(H)(o,s);o=X[0],s=X[1],l={a:e.aaxis.range[0],b:e.baxis.range[1],c:e.caxis.range[1]},c=l,u=e.aaxis.range[1]-l.a,f=Hxt(e.graphDiv._fullLayout[e.id].bgcolor).getLuminance(),h="M0,"+e.h+"L"+e.w/2+", 0L"+e.w+","+e.h+"Z",d=!1,v=n.append("path").attr("class","zoombox").attr("transform",Dm(e.x0,e.y0)).style({fill:f>.2?"rgba(0,0,0,0)":"rgba(255,255,255,0)","stroke-width":0}).attr("d",h),x=n.append("path").attr("class","zoombox-corners").attr("transform",Dm(e.x0,e.y0)).style({fill:qT.background,stroke:qT.defaultLine,"stroke-width":1,opacity:0}).attr("d","M0,0Z"),e.clearOutline(r)}function k(T,F){return 1-F/e.h}function A(T,F){return 1-(T+(e.h-F)/Math.sqrt(3))/e.w}function L(T,F){return(T-(e.h-F)/Math.sqrt(3))/e.w}function _(T,F){var q=o+T*i,V=s+F*a,H=Math.max(0,Math.min(1,k(o,s),k(q,V))),X=Math.max(0,Math.min(1,A(o,s),A(q,V))),G=Math.max(0,Math.min(1,L(o,s),L(q,V))),N=(H/2+G)*e.w,W=(1-H/2-X)*e.w,re=(N+W)/2,ae=W-N,_e=(1-H)*e.h,Me=_e-ae/FT;ae.2?"rgba(0,0,0,0.4)":"rgba(255,255,255,0.3)").duration(200),x.transition().style("opacity",1).duration(200),d=!0),r.emit("plotly_relayouting",b(c))}function C(){Qbe(r),c!==l&&(TH.call("_guiRelayout",r,b(c)),$be&&r.data&&r._context.showTips&&(By.notifier(M8(r,"Double-click to zoom back out"),"long"),$be=!1))}function M(){l={a:e.aaxis.range[0],b:e.baxis.range[1],c:e.caxis.range[1]},c=l}function p(T,F){var q=T/e.xaxis._m,V=F/e.yaxis._m;c={a:l.a-V,b:l.b+(q+V)/2,c:l.c-(q-V)/2};var H=[c.a,c.b,c.c].sort(By.sorterAsc),X={a:H.indexOf(c.a),b:H.indexOf(c.b),c:H.indexOf(c.c)};H[0]<0&&(H[1]+H[0]/2<0?(H[2]+=H[0]+H[1],H[0]=H[1]=0):(H[2]+=H[0]/2,H[1]+=H[0]/2,H[0]=0),c={a:H[X.a],b:H[X.b],c:H[X.c]},F=(l.a-c.a)*e.yaxis._m,T=(l.c-c.c-l.b+c.b)*e.xaxis._m);var G=Dm(e.x0+T,e.y0+F);e.plotContainer.selectAll(".scatterlayer,.maplayer").attr("transform",G);var N=Dm(-T,-F);e.clipDefRelative.select("path").attr("transform",N),e.aaxis.range=[c.a,e.sum-c.b-c.c],e.baxis.range=[e.sum-c.a-c.c,c.b],e.caxis.range=[e.sum-c.a-c.b,c.c],e.drawAxes(!1),e._hasClipOnAxisFalse&&e.plotContainer.select(".scatterlayer").selectAll(".trace").call(E8.hideOutsideRangePoints,e),r.emit("plotly_relayouting",b(c))}function P(){TH.call("_guiRelayout",r,b(c))}t.onmousemove=function(T){Kbe.hover(r,T,e.id),r._fullLayout._lasthover=t,r._fullLayout._hoversubplot=e.id},t.onmouseout=function(T){r._dragging||Ybe.unhover(r,T)},Ybe.init(this.dragOptions)};function Qbe(e){e2e.select(e).selectAll(".zoombox,.js-zoombox-backdrop,.js-zoombox-menu,.zoombox-corners").remove()}});var kH=ye((ulr,o2e)=>{"use strict";var tbt=dh(),rbt=Ju().attributes,ql=Cd(),ibt=Bu().overrideAll,MH=no().extendFlat,EH={title:{text:ql.title.text,font:ql.title.font},color:ql.color,tickmode:ql.minor.tickmode,nticks:MH({},ql.nticks,{dflt:6,min:1}),tick0:ql.tick0,dtick:ql.dtick,tickvals:ql.tickvals,ticktext:ql.ticktext,ticks:ql.ticks,ticklen:ql.ticklen,tickwidth:ql.tickwidth,tickcolor:ql.tickcolor,ticklabelstep:ql.ticklabelstep,showticklabels:ql.showticklabels,labelalias:ql.labelalias,showtickprefix:ql.showtickprefix,tickprefix:ql.tickprefix,showticksuffix:ql.showticksuffix,ticksuffix:ql.ticksuffix,showexponent:ql.showexponent,exponentformat:ql.exponentformat,minexponent:ql.minexponent,separatethousands:ql.separatethousands,tickfont:ql.tickfont,tickangle:ql.tickangle,tickformat:ql.tickformat,tickformatstops:ql.tickformatstops,hoverformat:ql.hoverformat,showline:MH({},ql.showline,{dflt:!0}),linecolor:ql.linecolor,linewidth:ql.linewidth,showgrid:MH({},ql.showgrid,{dflt:!0}),gridcolor:ql.gridcolor,gridwidth:ql.gridwidth,griddash:ql.griddash,layer:ql.layer,min:{valType:"number",dflt:0,min:0}},k8=o2e.exports=ibt({domain:rbt({name:"ternary"}),bgcolor:{valType:"color",dflt:tbt.background},sum:{valType:"number",dflt:1,min:0},aaxis:EH,baxis:EH,caxis:EH},"plot","from-root");k8.uirevision={valType:"any",editType:"none"};k8.aaxis.uirevision=k8.baxis.uirevision=k8.caxis.uirevision={valType:"any",editType:"none"}});var k_=ye((clr,s2e)=>{"use strict";var nbt=Mr(),abt=Vs(),obt=Ju().defaults;s2e.exports=function(t,r,n,i){var a=i.type,o=i.attributes,s=i.handleDefaults,l=i.partition||"x",u=r._subplots[a],c=u.length,f=c&&u[0].replace(/\d+$/,""),h,d;function v(E,k){return nbt.coerce(h,d,o,E,k)}for(var x=0;x{"use strict";var sbt=va(),lbt=Vs(),C8=Mr(),ubt=k_(),cbt=e_(),fbt=t_(),hbt=T3(),dbt=xb(),vbt=YM(),u2e=kH(),l2e=["aaxis","baxis","caxis"];c2e.exports=function(t,r,n){ubt(t,r,n,{type:"ternary",attributes:u2e,handleDefaults:pbt,font:r.font,paper_bgcolor:r.paper_bgcolor})};function pbt(e,t,r,n){var i=r("bgcolor"),a=r("sum");n.bgColor=sbt.combine(i,n.paper_bgcolor);for(var o,s,l,u=0;u=a&&(c.min=0,f.min=0,h.min=0,e.aaxis&&delete e.aaxis.min,e.baxis&&delete e.baxis.min,e.caxis&&delete e.caxis.min)}function gbt(e,t,r,n){var i=u2e[t._name];function a(d,v){return C8.coerce(e,t,i,d,v)}a("uirevision",n.uirevision),t.type="linear";var o=a("color"),s=o!==i.color.dflt?o:r.font.color,l=t._name,u=l.charAt(0).toUpperCase(),c="Component "+u,f=a("title.text",c);t._hovertitle=f===c?f:u,C8.coerceFont(a,"title.font",r.font,{overrideDflt:{size:C8.bigFont(r.font.size),color:s}}),a("min"),dbt(e,t,a,"linear"),fbt(e,t,a,"linear"),cbt(e,t,a,"linear",{noAutotickangles:!0,noTicklabelshift:!0,noTicklabelstandoff:!0}),hbt(e,t,a,{outerTicks:!0});var h=a("showticklabels");h&&(C8.coerceFont(a,"tickfont",r.font,{overrideDflt:{color:s}}),a("tickangle"),a("tickformat")),vbt(e,t,a,{dfltColor:o,bgColor:r.bgColor,blend:60,showLine:!0,showGrid:!0,noZeroLine:!0,attributes:i}),a("hoverformat"),a("layer")}});var h2e=ye(W0=>{"use strict";var mbt=a2e(),ybt=kd().getSubplotCalcData,_bt=Mr().counterRegex,OT="ternary";W0.name=OT;var xbt=W0.attr="subplot";W0.idRoot=OT;W0.idRegex=W0.attrRegex=_bt(OT);var bbt=W0.attributes={};bbt[xbt]={valType:"subplotid",dflt:"ternary",editType:"calc"};W0.layoutAttributes=kH();W0.supplyLayoutDefaults=f2e();W0.plot=function(t){for(var r=t._fullLayout,n=t.calcdata,i=r._subplots[OT],a=0;a{"use strict";d2e.exports={attributes:xH(),supplyDefaults:Fbe(),colorbar:Kd(),formatLabels:Obe(),calc:Vbe(),plot:Gbe(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:Wbe(),selectPoints:lT(),eventData:Xbe(),moduleType:"trace",name:"scatterternary",basePlotModule:h2e(),categories:["ternary","symbols","showLegend","scatter-like"],meta:{}}});var g2e=ye((vlr,p2e)=>{"use strict";p2e.exports=v2e()});var CH=ye((plr,y2e)=>{"use strict";var jh=v4(),BT=no().extendFlat,m2e=Oc().axisHoverFormat;y2e.exports={y:jh.y,x:jh.x,x0:jh.x0,y0:jh.y0,xhoverformat:m2e("x"),yhoverformat:m2e("y"),name:BT({},jh.name,{}),orientation:BT({},jh.orientation,{}),bandwidth:{valType:"number",min:0,editType:"calc"},scalegroup:{valType:"string",dflt:"",editType:"calc"},scalemode:{valType:"enumerated",values:["width","count"],dflt:"width",editType:"calc"},spanmode:{valType:"enumerated",values:["soft","hard","manual"],dflt:"soft",editType:"calc"},span:{valType:"info_array",items:[{valType:"any",editType:"calc"},{valType:"any",editType:"calc"}],editType:"calc"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,dflt:2,editType:"style"},editType:"plot"},fillcolor:jh.fillcolor,points:BT({},jh.boxpoints,{}),jitter:BT({},jh.jitter,{}),pointpos:BT({},jh.pointpos,{}),width:BT({},jh.width,{}),marker:jh.marker,text:jh.text,hovertext:jh.hovertext,hovertemplate:jh.hovertemplate,quartilemethod:jh.quartilemethod,box:{visible:{valType:"boolean",dflt:!1,editType:"plot"},width:{valType:"number",min:0,max:1,dflt:.25,editType:"plot"},fillcolor:{valType:"color",editType:"style"},line:{color:{valType:"color",editType:"style"},width:{valType:"number",min:0,editType:"style"},editType:"style"},editType:"plot"},meanline:{visible:{valType:"boolean",dflt:!1,editType:"plot"},color:{valType:"color",editType:"style"},width:{valType:"number",min:0,editType:"style"},editType:"plot"},side:{valType:"enumerated",values:["both","positive","negative"],dflt:"both",editType:"calc"},offsetgroup:jh.offsetgroup,alignmentgroup:jh.alignmentgroup,selected:jh.selected,unselected:jh.unselected,hoveron:{valType:"flaglist",flags:["violins","points","kde"],dflt:"violins+points+kde",extras:["all"],editType:"style"},zorder:jh.zorder}});var IH=ye((glr,_2e)=>{"use strict";var LH=p4(),PH=Mr().extendFlat;_2e.exports={violinmode:PH({},LH.boxmode,{}),violingap:PH({},LH.boxgap,{}),violingroupgap:PH({},LH.boxgroupgap,{})}});var A2e=ye((mlr,T2e)=>{"use strict";var x2e=Mr(),wbt=va(),b2e=m4(),w2e=CH();T2e.exports=function(t,r,n,i){function a(L,_){return x2e.coerce(t,r,w2e,L,_)}function o(L,_){return x2e.coerce2(t,r,w2e,L,_)}if(b2e.handleSampleDefaults(t,r,a,i),r.visible!==!1){a("bandwidth"),a("side");var s=a("width");s||(a("scalegroup",r.name),a("scalemode"));var l=a("span"),u;Array.isArray(l)&&(u="manual"),a("spanmode",u);var c=a("line.color",(t.marker||{}).color||n),f=a("line.width"),h=a("fillcolor",wbt.addOpacity(r.line.color,.5));b2e.handlePointsDefaults(t,r,a,{prefix:""});var d=o("box.width"),v=o("box.fillcolor",h),x=o("box.line.color",c),b=o("box.line.width",f),g=a("box.visible",!!(d||v||x||b));g||(r.box={visible:!1});var E=o("meanline.color",c),k=o("meanline.width",f),A=a("meanline.visible",!!(E||k));A||(r.meanline={visible:!1}),a("quartilemethod"),a("zorder")}}});var M2e=ye((ylr,S2e)=>{"use strict";var Tbt=Mr(),Abt=IH(),Sbt=UI();S2e.exports=function(t,r,n){function i(a,o){return Tbt.coerce(t,r,Abt,a,o)}Sbt._supply(t,r,n,i,"violin")}});var L8=ye(o2=>{"use strict";var Mbt=Mr(),Ebt={gaussian:function(e){return 1/Math.sqrt(2*Math.PI)*Math.exp(-.5*e*e)}};o2.makeKDE=function(e,t,r){var n=r.length,i=Ebt.gaussian,a=e.bandwidth,o=1/(n*a);return function(s){for(var l=0,u=0;u{"use strict";var RH=Mr(),DH=Qa(),kbt=MV(),E2e=L8(),Cbt=es().BADNUM;k2e.exports=function(t,r){var n=kbt(t,r);if(n[0].t.empty)return n;for(var i=t._fullLayout,a=DH.getFromId(t,r[r.orientation==="h"?"xaxis":"yaxis"]),o=1/0,s=-1/0,l=0,u=0,c=0;c{"use strict";var Rbt=HI().setPositionOffset,L2e=["v","h"];P2e.exports=function(t,r){for(var n=t.calcdata,i=r.xaxis,a=r.yaxis,o=0;o{"use strict";var zH=xa(),FH=Mr(),Dbt=ao(),qH=GI(),zbt=fU(),Fbt=L8();R2e.exports=function(t,r,n,i){var a=t._context.staticPlot,o=t._fullLayout,s=r.xaxis,l=r.yaxis;function u(c,f){var h=zbt(c,{xaxis:s,yaxis:l,trace:f,connectGaps:!0,baseTolerance:.75,shape:"spline",simplify:!0,linearized:!0});return Dbt.smoothopen(h[0],1)}FH.makeTraceGroups(i,n,"trace violins").each(function(c){var f=zH.select(this),h=c[0],d=h.t,v=h.trace;if(v.visible!==!0||d.empty){f.remove();return}var x=d.bPos,b=d.bdPos,g=r[d.valLetter+"axis"],E=r[d.posLetter+"axis"],k=v.side==="both",A=k||v.side==="positive",L=k||v.side==="negative",_=f.selectAll("path.violin").data(FH.identity);_.enter().append("path").style("vector-effect",a?"none":"non-scaling-stroke").attr("class","violin"),_.exit().remove(),_.each(function(V){var H=zH.select(this),X=V.density,G=X.length,N=E.c2l(V.pos+x,!0),W=E.l2p(N),re;if(v.width)re=d.maxKDE/b;else{var ae=o._violinScaleGroupStats[v.scalegroup];re=v.scalemode==="count"?ae.maxKDE/b*(ae.maxCount/V.pts.length):ae.maxKDE/b}var _e,Me,ke,ge,ie,Te,Ee;if(A){for(Te=new Array(G),ge=0;ge{"use strict";var z2e=xa(),NT=va(),qbt=op().stylePoints;F2e.exports=function(t){var r=z2e.select(t).selectAll("g.trace.violins");r.style("opacity",function(n){return n[0].trace.opacity}),r.each(function(n){var i=n[0].trace,a=z2e.select(this),o=i.box||{},s=o.line||{},l=i.meanline||{},u=l.width;a.selectAll("path.violin").style("stroke-width",i.line.width+"px").call(NT.stroke,i.line.color).call(NT.fill,i.fillcolor),a.selectAll("path.box").style("stroke-width",s.width+"px").call(NT.stroke,s.color).call(NT.fill,o.fillcolor);var c={"stroke-width":u+"px","stroke-dasharray":2*u+"px,"+u+"px"};a.selectAll("path.mean").style(c).call(NT.stroke,l.color),a.selectAll("path.meanline").style(c).call(NT.stroke,l.color),qbt(a,i,t)})}});var U2e=ye((Alr,N2e)=>{"use strict";var Obt=va(),OH=Mr(),Bbt=Qa(),O2e=PV(),B2e=L8();N2e.exports=function(t,r,n,i,a){a||(a={});var o=a.hoverLayer,s=t.cd,l=s[0].trace,u=l.hoveron,c=u.indexOf("violins")!==-1,f=u.indexOf("kde")!==-1,h=[],d,v;if(c||f){var x=O2e.hoverOnBoxes(t,r,n,i);if(f&&x.length>0){var b=t.xa,g=t.ya,E,k,A,L,_;l.orientation==="h"?(_=r,E="y",A=g,k="x",L=b):(_=n,E="x",A=b,k="y",L=g);var C=s[t.index];if(_>=C.span[0]&&_<=C.span[1]){var M=OH.extendFlat({},t),p=L.c2p(_,!0),P=B2e.getKdeValue(C,l,_),T=B2e.getPositionOnKdePath(C,l,p),F=A._offset,q=A._length;M[E+"0"]=T[0],M[E+"1"]=T[1],M[k+"0"]=M[k+"1"]=p,M[k+"Label"]=k+": "+Bbt.hoverLabelText(L,_,l[k+"hoverformat"])+", "+s[0].t.labels.kde+" "+P.toFixed(3);for(var V=0,H=0;H{"use strict";V2e.exports={attributes:CH(),layoutAttributes:IH(),supplyDefaults:A2e(),crossTraceDefaults:m4().crossTraceDefaults,supplyLayoutDefaults:M2e(),calc:C2e(),crossTraceCalc:I2e(),plot:D2e(),style:q2e(),styleOnSelect:op().styleOnSelect,hoverPoints:U2e(),selectPoints:IV(),moduleType:"trace",name:"violin",basePlotModule:Jf(),categories:["cartesian","svg","symbols","oriented","box-violin","showLegend","violinLayout","zoomScale"],meta:{}}});var j2e=ye((Mlr,G2e)=>{"use strict";G2e.exports=H2e()});var Z2e=ye((Elr,W2e)=>{"use strict";W2e.exports={eventDataKeys:["percentInitial","percentPrevious","percentTotal"]}});var NH=ye((klr,K2e)=>{"use strict";var lc=Lm(),BH=Uc().line,Nbt=vl(),X2e=Oc().axisHoverFormat,Ubt=Wo().hovertemplateAttrs,Vbt=Wo().texttemplateAttrs,Y2e=Z2e(),Ny=no().extendFlat,Hbt=va();K2e.exports={x:lc.x,x0:lc.x0,dx:lc.dx,y:lc.y,y0:lc.y0,dy:lc.dy,xperiod:lc.xperiod,yperiod:lc.yperiod,xperiod0:lc.xperiod0,yperiod0:lc.yperiod0,xperiodalignment:lc.xperiodalignment,yperiodalignment:lc.yperiodalignment,xhoverformat:X2e("x"),yhoverformat:X2e("y"),hovertext:lc.hovertext,hovertemplate:Ubt({},{keys:Y2e.eventDataKeys}),hoverinfo:Ny({},Nbt.hoverinfo,{flags:["name","x","y","text","percent initial","percent previous","percent total"]}),textinfo:{valType:"flaglist",flags:["label","text","percent initial","percent previous","percent total","value"],extras:["none"],editType:"plot",arrayOk:!1},texttemplate:Vbt({editType:"plot"},{keys:Y2e.eventDataKeys.concat(["label","value"])}),text:lc.text,textposition:lc.textposition,insidetextanchor:Ny({},lc.insidetextanchor,{dflt:"middle"}),textangle:Ny({},lc.textangle,{dflt:0}),textfont:lc.textfont,insidetextfont:lc.insidetextfont,outsidetextfont:lc.outsidetextfont,constraintext:lc.constraintext,cliponaxis:lc.cliponaxis,orientation:Ny({},lc.orientation,{}),offset:Ny({},lc.offset,{arrayOk:!1}),width:Ny({},lc.width,{arrayOk:!1}),marker:Gbt(),connector:{fillcolor:{valType:"color",editType:"style"},line:{color:Ny({},BH.color,{dflt:Hbt.defaultLine}),width:Ny({},BH.width,{dflt:0,editType:"plot"}),dash:BH.dash,editType:"style"},visible:{valType:"boolean",dflt:!0,editType:"plot"},editType:"plot"},offsetgroup:lc.offsetgroup,alignmentgroup:lc.alignmentgroup,zorder:lc.zorder};function Gbt(){var e=Ny({},lc.marker);return delete e.pattern,delete e.cornerradius,e}});var UH=ye((Clr,J2e)=>{"use strict";J2e.exports={funnelmode:{valType:"enumerated",values:["stack","group","overlay"],dflt:"stack",editType:"calc"},funnelgap:{valType:"number",min:0,max:1,editType:"calc"},funnelgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}});var HH=ye((Llr,Q2e)=>{"use strict";var P8=Mr(),jbt=Hb(),Wbt=r0().handleText,Zbt=K3(),Xbt=Pg(),$2e=NH(),VH=va();function Ybt(e,t,r,n){function i(f,h){return P8.coerce(e,t,$2e,f,h)}var a=Zbt(e,t,n,i);if(!a){t.visible=!1;return}Xbt(e,t,n,i),i("xhoverformat"),i("yhoverformat"),i("orientation",t.y&&!t.x?"v":"h"),i("offset"),i("width");var o=i("text");i("hovertext"),i("hovertemplate");var s=i("textposition");Wbt(e,t,n,i,s,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!0,moduleHasCliponaxis:!0,moduleHasTextangle:!0,moduleHasInsideanchor:!0}),t.textposition!=="none"&&!t.texttemplate&&i("textinfo",P8.isArrayOrTypedArray(o)?"text+value":"value");var l=i("marker.color",r);i("marker.line.color",VH.defaultLine),i("marker.line.width");var u=i("connector.visible");if(u){i("connector.fillcolor",Kbt(l));var c=i("connector.line.width");c&&(i("connector.line.color"),i("connector.line.dash"))}i("zorder")}function Kbt(e){var t=P8.isArrayOrTypedArray(e)?"#000":e;return VH.addOpacity(t,.5*VH.opacity(t))}function Jbt(e,t){var r,n;function i(o){return P8.coerce(n._input,n,$2e,o)}for(var a=0;a{"use strict";var $bt=Mr(),Qbt=UH();ewe.exports=function(e,t,r){var n=!1;function i(s,l){return $bt.coerce(e,t,Qbt,s,l)}for(var a=0;a{"use strict";var UT=Mr();rwe.exports=function(t,r){for(var n=0;n{"use strict";var nwe=Qa(),awe=Rg(),e2t=iwe(),t2t=F0(),P4=es().BADNUM;owe.exports=function(t,r){var n=nwe.getFromId(t,r.xaxis||"x"),i=nwe.getFromId(t,r.yaxis||"y"),a,o,s,l,u,c,f,h;r.orientation==="h"?(a=n.makeCalcdata(r,"x"),s=i.makeCalcdata(r,"y"),l=awe(r,i,"y",s),u=!!r.yperiodalignment,c="y"):(a=i.makeCalcdata(r,"y"),s=n.makeCalcdata(r,"x"),l=awe(r,n,"x",s),u=!!r.xperiodalignment,c="x"),o=l.vals;var d=Math.min(o.length,a.length),v=new Array(d);for(r._base=[],f=0;f{"use strict";var lwe=Gb().setGroupPositions;uwe.exports=function(t,r){var n=t._fullLayout,i=t._fullData,a=t.calcdata,o=r.xaxis,s=r.yaxis,l=[],u=[],c=[],f,h;for(h=0;h{"use strict";var I8=xa(),L_=Mr(),fwe=ao(),C_=es().BADNUM,r2t=i2(),i2t=_v().clearMinTextSize;dwe.exports=function(t,r,n,i){var a=t._fullLayout;i2t("funnel",a),n2t(t,r,n,i),a2t(t,r,n,i),r2t.plot(t,r,n,i,{mode:a.funnelmode,norm:a.funnelmode,gap:a.funnelgap,groupgap:a.funnelgroupgap})};function n2t(e,t,r,n){var i=t.xaxis,a=t.yaxis;L_.makeTraceGroups(n,r,"trace bars").each(function(o){var s=I8.select(this),l=o[0].trace,u=L_.ensureSingle(s,"g","regions");if(!l.connector||!l.connector.visible){u.remove();return}var c=l.orientation==="h",f=u.selectAll("g.region").data(L_.identity);f.enter().append("g").classed("region",!0),f.exit().remove();var h=f.size();f.each(function(d,v){if(!(v!==h-1&&!d.cNext)){var x=hwe(d,i,a,c),b=x[0],g=x[1],E="";b[0]!==C_&&g[0]!==C_&&b[1]!==C_&&g[1]!==C_&&b[2]!==C_&&g[2]!==C_&&b[3]!==C_&&g[3]!==C_&&(c?E+="M"+b[0]+","+g[1]+"L"+b[2]+","+g[2]+"H"+b[3]+"L"+b[1]+","+g[1]+"Z":E+="M"+b[1]+","+g[1]+"L"+b[2]+","+g[3]+"V"+g[2]+"L"+b[1]+","+g[0]+"Z"),E===""&&(E="M0,0Z"),L_.ensureSingle(I8.select(this),"path").attr("d",E).call(fwe.setClipUrl,t.layerClipId,e)}})})}function a2t(e,t,r,n){var i=t.xaxis,a=t.yaxis;L_.makeTraceGroups(n,r,"trace bars").each(function(o){var s=I8.select(this),l=o[0].trace,u=L_.ensureSingle(s,"g","lines");if(!l.connector||!l.connector.visible||!l.connector.line.width){u.remove();return}var c=l.orientation==="h",f=u.selectAll("g.line").data(L_.identity);f.enter().append("g").classed("line",!0),f.exit().remove();var h=f.size();f.each(function(d,v){if(!(v!==h-1&&!d.cNext)){var x=hwe(d,i,a,c),b=x[0],g=x[1],E="";b[3]!==void 0&&g[3]!==void 0&&(c?(E+="M"+b[0]+","+g[1]+"L"+b[2]+","+g[2],E+="M"+b[1]+","+g[1]+"L"+b[3]+","+g[2]):(E+="M"+b[1]+","+g[1]+"L"+b[2]+","+g[3],E+="M"+b[1]+","+g[0]+"L"+b[2]+","+g[2])),E===""&&(E="M0,0Z"),L_.ensureSingle(I8.select(this),"path").attr("d",E).call(fwe.setClipUrl,t.layerClipId,e)}})})}function hwe(e,t,r,n){var i=[],a=[],o=n?t:r,s=n?r:t;return i[0]=o.c2p(e.s0,!0),a[0]=s.c2p(e.p0,!0),i[1]=o.c2p(e.s1,!0),a[1]=s.c2p(e.p1,!0),i[2]=o.c2p(e.nextS0,!0),a[2]=s.c2p(e.nextP0,!0),i[3]=o.c2p(e.nextS1,!0),a[3]=s.c2p(e.nextP1,!0),n?[i,a]:[a,i]}});var mwe=ye((Flr,gwe)=>{"use strict";var I4=xa(),pwe=ao(),jH=va(),o2t=N1().DESELECTDIM,s2t=N0(),l2t=_v().resizeText,u2t=s2t.styleTextPoints;function c2t(e,t,r){var n=r||I4.select(e).selectAll('g[class^="funnellayer"]').selectAll("g.trace");l2t(e,n,"funnel"),n.style("opacity",function(i){return i[0].trace.opacity}),n.each(function(i){var a=I4.select(this),o=i[0].trace;a.selectAll(".point > path").each(function(s){if(!s.isBlank){var l=o.marker;I4.select(this).call(jH.fill,s.mc||l.color).call(jH.stroke,s.mlc||l.line.color).call(pwe.dashLine,l.line.dash,s.mlw||l.line.width).style("opacity",o.selectedpoints&&!s.selected?o2t:1)}}),u2t(a,o,e),a.selectAll(".regions").each(function(){I4.select(this).selectAll("path").style("stroke-width",0).call(jH.fill,o.connector.fillcolor)}),a.selectAll(".lines").each(function(){var s=o.connector.line;pwe.lineGroupStyle(I4.select(this).selectAll("path"),s.width,s.color,s.dash)})})}gwe.exports={style:c2t}});var xwe=ye((qlr,_we)=>{"use strict";var ywe=va().opacity,f2t=TT().hoverOnBars,WH=Mr().formatPercent;_we.exports=function(t,r,n,i,a){var o=f2t(t,r,n,i,a);if(o){var s=o.cd,l=s[0].trace,u=l.orientation==="h",c=o.index,f=s[c],h=u?"x":"y";o[h+"LabelVal"]=f.s,o.percentInitial=f.begR,o.percentInitialLabel=WH(f.begR,1),o.percentPrevious=f.difR,o.percentPreviousLabel=WH(f.difR,1),o.percentTotal=f.sumR,o.percentTotalLabel=WH(f.sumR,1);var d=f.hi||l.hoverinfo,v=[];if(d&&d!=="none"&&d!=="skip"){var x=d==="all",b=d.split("+"),g=function(E){return x||b.indexOf(E)!==-1};g("percent initial")&&v.push(o.percentInitialLabel+" of initial"),g("percent previous")&&v.push(o.percentPreviousLabel+" of previous"),g("percent total")&&v.push(o.percentTotalLabel+" of total")}return o.extraText=v.join("
"),o.color=h2t(l,f),[o]}};function h2t(e,t){var r=e.marker,n=t.mc||r.color,i=t.mlc||r.line.color,a=t.mlw||r.line.width;if(ywe(n))return n;if(ywe(i)&&a)return i}});var wwe=ye((Olr,bwe)=>{"use strict";bwe.exports=function(t,r){return t.x="xVal"in r?r.xVal:r.x,t.y="yVal"in r?r.yVal:r.y,"percentInitial"in r&&(t.percentInitial=r.percentInitial),"percentPrevious"in r&&(t.percentPrevious=r.percentPrevious),"percentTotal"in r&&(t.percentTotal=r.percentTotal),r.xa&&(t.xaxis=r.xa),r.ya&&(t.yaxis=r.ya),t}});var Awe=ye((Blr,Twe)=>{"use strict";Twe.exports={attributes:NH(),layoutAttributes:UH(),supplyDefaults:HH().supplyDefaults,crossTraceDefaults:HH().crossTraceDefaults,supplyLayoutDefaults:twe(),calc:swe(),crossTraceCalc:cwe(),plot:vwe(),style:mwe().style,hoverPoints:xwe(),eventData:wwe(),selectPoints:AT(),moduleType:"trace",name:"funnel",basePlotModule:Jf(),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}});var Mwe=ye((Nlr,Swe)=>{"use strict";Swe.exports=Awe()});var kwe=ye((Ulr,Ewe)=>{"use strict";Ewe.exports={eventDataKeys:["initial","delta","final"]}});var YH=ye((Vlr,Pwe)=>{"use strict";var Uu=Lm(),ZH=Uc().line,d2t=vl(),Cwe=Oc().axisHoverFormat,v2t=Wo().hovertemplateAttrs,p2t=Wo().texttemplateAttrs,Lwe=kwe(),VT=no().extendFlat,g2t=va();function XH(e){return{marker:{color:VT({},Uu.marker.color,{arrayOk:!1,editType:"style"}),line:{color:VT({},Uu.marker.line.color,{arrayOk:!1,editType:"style"}),width:VT({},Uu.marker.line.width,{arrayOk:!1,editType:"style"}),editType:"style"},editType:"style"},editType:"style"}}Pwe.exports={measure:{valType:"data_array",dflt:[],editType:"calc"},base:{valType:"number",dflt:null,arrayOk:!1,editType:"calc"},x:Uu.x,x0:Uu.x0,dx:Uu.dx,y:Uu.y,y0:Uu.y0,dy:Uu.dy,xperiod:Uu.xperiod,yperiod:Uu.yperiod,xperiod0:Uu.xperiod0,yperiod0:Uu.yperiod0,xperiodalignment:Uu.xperiodalignment,yperiodalignment:Uu.yperiodalignment,xhoverformat:Cwe("x"),yhoverformat:Cwe("y"),hovertext:Uu.hovertext,hovertemplate:v2t({},{keys:Lwe.eventDataKeys}),hoverinfo:VT({},d2t.hoverinfo,{flags:["name","x","y","text","initial","delta","final"]}),textinfo:{valType:"flaglist",flags:["label","text","initial","delta","final"],extras:["none"],editType:"plot",arrayOk:!1},texttemplate:p2t({editType:"plot"},{keys:Lwe.eventDataKeys.concat(["label"])}),text:Uu.text,textposition:Uu.textposition,insidetextanchor:Uu.insidetextanchor,textangle:Uu.textangle,textfont:Uu.textfont,insidetextfont:Uu.insidetextfont,outsidetextfont:Uu.outsidetextfont,constraintext:Uu.constraintext,cliponaxis:Uu.cliponaxis,orientation:Uu.orientation,offset:Uu.offset,width:Uu.width,increasing:XH("increasing"),decreasing:XH("decreasing"),totals:XH("intermediate sums and total"),connector:{line:{color:VT({},ZH.color,{dflt:g2t.defaultLine}),width:VT({},ZH.width,{editType:"plot"}),dash:ZH.dash,editType:"plot"},mode:{valType:"enumerated",values:["spanning","between"],dflt:"between",editType:"plot"},visible:{valType:"boolean",dflt:!0,editType:"plot"},editType:"plot"},offsetgroup:Uu.offsetgroup,alignmentgroup:Uu.alignmentgroup,zorder:Uu.zorder}});var KH=ye((Hlr,Iwe)=>{"use strict";Iwe.exports={waterfallmode:{valType:"enumerated",values:["group","overlay"],dflt:"group",editType:"calc"},waterfallgap:{valType:"number",min:0,max:1,editType:"calc"},waterfallgroupgap:{valType:"number",min:0,max:1,dflt:0,editType:"calc"}}});var HT=ye((Glr,Rwe)=>{"use strict";Rwe.exports={INCREASING:{COLOR:"#3D9970",SYMBOL:"\u25B2"},DECREASING:{COLOR:"#FF4136",SYMBOL:"\u25BC"}}});var $H=ye((jlr,qwe)=>{"use strict";var Dwe=Mr(),m2t=Hb(),y2t=r0().handleText,_2t=K3(),x2t=Pg(),zwe=YH(),b2t=va(),Fwe=HT(),w2t=Fwe.INCREASING.COLOR,T2t=Fwe.DECREASING.COLOR,A2t="#4499FF";function JH(e,t,r){e(t+".marker.color",r),e(t+".marker.line.color",b2t.defaultLine),e(t+".marker.line.width")}function S2t(e,t,r,n){function i(u,c){return Dwe.coerce(e,t,zwe,u,c)}var a=_2t(e,t,n,i);if(!a){t.visible=!1;return}x2t(e,t,n,i),i("xhoverformat"),i("yhoverformat"),i("measure"),i("orientation",t.x&&!t.y?"h":"v"),i("base"),i("offset"),i("width"),i("text"),i("hovertext"),i("hovertemplate");var o=i("textposition");y2t(e,t,n,i,o,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!0,moduleHasCliponaxis:!0,moduleHasTextangle:!0,moduleHasInsideanchor:!0}),t.textposition!=="none"&&(i("texttemplate"),t.texttemplate||i("textinfo")),JH(i,"increasing",w2t),JH(i,"decreasing",T2t),JH(i,"totals",A2t);var s=i("connector.visible");if(s){i("connector.mode");var l=i("connector.line.width");l&&(i("connector.line.color"),i("connector.line.dash"))}i("zorder")}function M2t(e,t){var r,n;function i(o){return Dwe.coerce(n._input,n,zwe,o)}if(t.waterfallmode==="group")for(var a=0;a{"use strict";var E2t=Mr(),k2t=KH();Owe.exports=function(e,t,r){var n=!1;function i(s,l){return E2t.coerce(e,t,k2t,s,l)}for(var a=0;a{"use strict";var Nwe=Qa(),Uwe=Rg(),Vwe=Mr().mergeArray,C2t=F0(),Hwe=es().BADNUM;function QH(e){return e==="a"||e==="absolute"}function eG(e){return e==="t"||e==="total"}Gwe.exports=function(t,r){var n=Nwe.getFromId(t,r.xaxis||"x"),i=Nwe.getFromId(t,r.yaxis||"y"),a,o,s,l,u,c;r.orientation==="h"?(a=n.makeCalcdata(r,"x"),s=i.makeCalcdata(r,"y"),l=Uwe(r,i,"y",s),u=!!r.yperiodalignment,c="y"):(a=i.makeCalcdata(r,"y"),s=n.makeCalcdata(r,"x"),l=Uwe(r,n,"x",s),u=!!r.xperiodalignment,c="x"),o=l.vals;for(var f=Math.min(o.length,a.length),h=new Array(f),d=0,v,x=!1,b=0;b{"use strict";var Wwe=Gb().setGroupPositions;Zwe.exports=function(t,r){var n=t._fullLayout,i=t._fullData,a=t.calcdata,o=r.xaxis,s=r.yaxis,l=[],u=[],c=[],f,h;for(h=0;h{"use strict";var Ywe=xa(),R8=Mr(),L2t=ao(),GT=es().BADNUM,P2t=i2(),I2t=_v().clearMinTextSize;Kwe.exports=function(t,r,n,i){var a=t._fullLayout;I2t("waterfall",a),P2t.plot(t,r,n,i,{mode:a.waterfallmode,norm:a.waterfallmode,gap:a.waterfallgap,groupgap:a.waterfallgroupgap}),R2t(t,r,n,i)};function R2t(e,t,r,n){var i=t.xaxis,a=t.yaxis;R8.makeTraceGroups(n,r,"trace bars").each(function(o){var s=Ywe.select(this),l=o[0].trace,u=R8.ensureSingle(s,"g","lines");if(!l.connector||!l.connector.visible){u.remove();return}var c=l.orientation==="h",f=l.connector.mode,h=u.selectAll("g.line").data(R8.identity);h.enter().append("g").classed("line",!0),h.exit().remove();var d=h.size();h.each(function(v,x){if(!(x!==d-1&&!v.cNext)){var b=D2t(v,i,a,c),g=b[0],E=b[1],k="";g[0]!==GT&&E[0]!==GT&&g[1]!==GT&&E[1]!==GT&&(f==="spanning"&&!v.isSum&&x>0&&(c?k+="M"+g[0]+","+E[1]+"V"+E[0]:k+="M"+g[1]+","+E[0]+"H"+g[0]),f!=="between"&&(v.isSum||x{"use strict";var D8=xa(),$we=ao(),Qwe=va(),z2t=N1().DESELECTDIM,F2t=N0(),q2t=_v().resizeText,O2t=F2t.styleTextPoints;function B2t(e,t,r){var n=r||D8.select(e).selectAll('g[class^="waterfalllayer"]').selectAll("g.trace");q2t(e,n,"waterfall"),n.style("opacity",function(i){return i[0].trace.opacity}),n.each(function(i){var a=D8.select(this),o=i[0].trace;a.selectAll(".point > path").each(function(s){if(!s.isBlank){var l=o[s.dir].marker;D8.select(this).call(Qwe.fill,l.color).call(Qwe.stroke,l.line.color).call($we.dashLine,l.line.dash,l.line.width).style("opacity",o.selectedpoints&&!s.selected?z2t:1)}}),O2t(a,o,e),a.selectAll(".lines").each(function(){var s=o.connector.line;$we.lineGroupStyle(D8.select(this).selectAll("path"),s.width,s.color,s.dash)})})}e3e.exports={style:B2t}});var o3e=ye((Jlr,a3e)=>{"use strict";var N2t=Qa().hoverLabelText,r3e=va().opacity,U2t=TT().hoverOnBars,i3e=HT(),n3e={increasing:i3e.INCREASING.SYMBOL,decreasing:i3e.DECREASING.SYMBOL};a3e.exports=function(t,r,n,i,a){var o=U2t(t,r,n,i,a);if(!o)return;var s=o.cd,l=s[0].trace,u=l.orientation==="h",c=u?"x":"y",f=u?t.xa:t.ya;function h(_){return N2t(f,_,l[c+"hoverformat"])}var d=o.index,v=s[d],x=v.isSum?v.b+v.s:v.rawS;o.initial=v.b+v.s-x,o.delta=x,o.final=o.initial+o.delta;var b=h(Math.abs(o.delta));o.deltaLabel=x<0?"("+b+")":b,o.finalLabel=h(o.final),o.initialLabel=h(o.initial);var g=v.hi||l.hoverinfo,E=[];if(g&&g!=="none"&&g!=="skip"){var k=g==="all",A=g.split("+"),L=function(_){return k||A.indexOf(_)!==-1};v.isSum||(L("final")&&(u?!L("x"):!L("y"))&&E.push(o.finalLabel),L("delta")&&(x<0?E.push(o.deltaLabel+" "+n3e.decreasing):E.push(o.deltaLabel+" "+n3e.increasing)),L("initial")&&E.push("Initial: "+o.initialLabel))}return E.length&&(o.extraText=E.join("
")),o.color=V2t(l,v),[o]};function V2t(e,t){var r=e[t.dir].marker,n=r.color,i=r.line.color,a=r.line.width;if(r3e(n))return n;if(r3e(i)&&a)return i}});var l3e=ye(($lr,s3e)=>{"use strict";s3e.exports=function(t,r){return t.x="xVal"in r?r.xVal:r.x,t.y="yVal"in r?r.yVal:r.y,"initial"in r&&(t.initial=r.initial),"delta"in r&&(t.delta=r.delta),"final"in r&&(t.final=r.final),r.xa&&(t.xaxis=r.xa),r.ya&&(t.yaxis=r.ya),t}});var c3e=ye((Qlr,u3e)=>{"use strict";u3e.exports={attributes:YH(),layoutAttributes:KH(),supplyDefaults:$H().supplyDefaults,crossTraceDefaults:$H().crossTraceDefaults,supplyLayoutDefaults:Bwe(),calc:jwe(),crossTraceCalc:Xwe(),plot:Jwe(),style:t3e().style,hoverPoints:o3e(),eventData:l3e(),selectPoints:AT(),moduleType:"trace",name:"waterfall",basePlotModule:Jf(),categories:["bar-like","cartesian","svg","oriented","showLegend","zoomScale"],meta:{}}});var h3e=ye((eur,f3e)=>{"use strict";f3e.exports=c3e()});var jT=ye((tur,d3e)=>{"use strict";d3e.exports={colormodel:{rgb:{min:[0,0,0],max:[255,255,255],fmt:function(e){return e.slice(0,3)},suffix:["","",""]},rgba:{min:[0,0,0,0],max:[255,255,255,1],fmt:function(e){return e.slice(0,4)},suffix:["","","",""]},rgba256:{colormodel:"rgba",zminDflt:[0,0,0,0],zmaxDflt:[255,255,255,255],min:[0,0,0,0],max:[255,255,255,1],fmt:function(e){return e.slice(0,4)},suffix:["","","",""]},hsl:{min:[0,0,0],max:[360,100,100],fmt:function(e){var t=e.slice(0,3);return t[1]=t[1]+"%",t[2]=t[2]+"%",t},suffix:["\xB0","%","%"]},hsla:{min:[0,0,0,0],max:[360,100,100,1],fmt:function(e){var t=e.slice(0,4);return t[1]=t[1]+"%",t[2]=t[2]+"%",t},suffix:["\xB0","%","%",""]}}}});var tG=ye((rur,p3e)=>{"use strict";var H2t=vl(),G2t=Uc().zorder,j2t=Wo().hovertemplateAttrs,v3e=no().extendFlat,W2t=jT().colormodel,D4=["rgb","rgba","rgba256","hsl","hsla"],Z2t=[],X2t=[];for(WT=0;WT{"use strict";var Y2t=Mr(),K2t=tG(),g3e=jT(),J2t=Ly().IMAGE_URL_PREFIX;m3e.exports=function(t,r){function n(o,s){return Y2t.coerce(t,r,K2t,o,s)}n("source"),r.source&&!r.source.match(J2t)&&delete r.source,r._hasSource=!!r.source;var i=n("z");if(r._hasZ=!(i===void 0||!i.length||!i[0]||!i[0].length),!r._hasZ&&!r._hasSource){r.visible=!1;return}n("x0"),n("y0"),n("dx"),n("dy");var a;r._hasZ?(n("colormodel","rgb"),a=g3e.colormodel[r.colormodel],n("zmin",a.zminDflt||a.min),n("zmax",a.zmaxDflt||a.max)):r._hasSource&&(r.colormodel="rgba256",a=g3e.colormodel[r.colormodel],r.zmin=a.zminDflt,r.zmax=a.zmaxDflt),n("zsmooth"),n("text"),n("hovertext"),n("hovertemplate"),r._length=null,n("zorder")}});var Uy=ye((nur,rG)=>{typeof Object.create=="function"?rG.exports=function(t,r){r&&(t.super_=r,t.prototype=Object.create(r.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}))}:rG.exports=function(t,r){if(r){t.super_=r;var n=function(){};n.prototype=r.prototype,t.prototype=new n,t.prototype.constructor=t}}});var iG=ye((aur,_3e)=>{_3e.exports=vb().EventEmitter});var w3e=ye(z8=>{"use strict";z8.byteLength=Q2t;z8.toByteArray=twt;z8.fromByteArray=nwt;var Fm=[],Z0=[],$2t=typeof Uint8Array!="undefined"?Uint8Array:Array,nG="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";for(s2=0,x3e=nG.length;s20)throw new Error("Invalid string. Length must be a multiple of 4");var r=e.indexOf("=");r===-1&&(r=t);var n=r===t?0:4-r%4;return[r,n]}function Q2t(e){var t=b3e(e),r=t[0],n=t[1];return(r+n)*3/4-n}function ewt(e,t,r){return(t+r)*3/4-r}function twt(e){var t,r=b3e(e),n=r[0],i=r[1],a=new $2t(ewt(e,n,i)),o=0,s=i>0?n-4:n,l;for(l=0;l>16&255,a[o++]=t>>8&255,a[o++]=t&255;return i===2&&(t=Z0[e.charCodeAt(l)]<<2|Z0[e.charCodeAt(l+1)]>>4,a[o++]=t&255),i===1&&(t=Z0[e.charCodeAt(l)]<<10|Z0[e.charCodeAt(l+1)]<<4|Z0[e.charCodeAt(l+2)]>>2,a[o++]=t>>8&255,a[o++]=t&255),a}function rwt(e){return Fm[e>>18&63]+Fm[e>>12&63]+Fm[e>>6&63]+Fm[e&63]}function iwt(e,t,r){for(var n,i=[],a=t;as?s:o+a));return n===1?(t=e[r-1],i.push(Fm[t>>2]+Fm[t<<4&63]+"==")):n===2&&(t=(e[r-2]<<8)+e[r-1],i.push(Fm[t>>10]+Fm[t>>4&63]+Fm[t<<2&63]+"=")),i.join("")}});var T3e=ye(aG=>{aG.read=function(e,t,r,n,i){var a,o,s=i*8-n-1,l=(1<>1,c=-7,f=r?i-1:0,h=r?-1:1,d=e[t+f];for(f+=h,a=d&(1<<-c)-1,d>>=-c,c+=s;c>0;a=a*256+e[t+f],f+=h,c-=8);for(o=a&(1<<-c)-1,a>>=-c,c+=n;c>0;o=o*256+e[t+f],f+=h,c-=8);if(a===0)a=1-u;else{if(a===l)return o?NaN:(d?-1:1)*(1/0);o=o+Math.pow(2,n),a=a-u}return(d?-1:1)*o*Math.pow(2,a-n)};aG.write=function(e,t,r,n,i,a){var o,s,l,u=a*8-i-1,c=(1<>1,h=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,d=n?0:a-1,v=n?1:-1,x=t<0||t===0&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,o=c):(o=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-o))<1&&(o--,l*=2),o+f>=1?t+=h/l:t+=h*Math.pow(2,1-f),t*l>=2&&(o++,l/=2),o+f>=c?(s=0,o=c):o+f>=1?(s=(t*l-1)*Math.pow(2,i),o=o+f):(s=t*Math.pow(2,f-1)*Math.pow(2,i),o=0));i>=8;e[r+d]=s&255,d+=v,s/=256,i-=8);for(o=o<0;e[r+d]=o&255,d+=v,o/=256,u-=8);e[r+d-v]|=x*128}});var u2=ye(KT=>{"use strict";var oG=w3e(),XT=T3e(),A3e=typeof Symbol=="function"&&typeof Symbol.for=="function"?Symbol.for("nodejs.util.inspect.custom"):null;KT.Buffer=In;KT.SlowBuffer=cwt;KT.INSPECT_MAX_BYTES=50;var F8=2147483647;KT.kMaxLength=F8;In.TYPED_ARRAY_SUPPORT=awt();!In.TYPED_ARRAY_SUPPORT&&typeof console!="undefined"&&typeof console.error=="function"&&console.error("This browser lacks typed array (Uint8Array) support which is required by `buffer` v5.x. Use `buffer` v4.x if you require old browser support.");function awt(){try{let e=new Uint8Array(1),t={foo:function(){return 42}};return Object.setPrototypeOf(t,Uint8Array.prototype),Object.setPrototypeOf(e,t),e.foo()===42}catch(e){return!1}}Object.defineProperty(In.prototype,"parent",{enumerable:!0,get:function(){if(In.isBuffer(this))return this.buffer}});Object.defineProperty(In.prototype,"offset",{enumerable:!0,get:function(){if(In.isBuffer(this))return this.byteOffset}});function Vy(e){if(e>F8)throw new RangeError('The value "'+e+'" is invalid for option "size"');let t=new Uint8Array(e);return Object.setPrototypeOf(t,In.prototype),t}function In(e,t,r){if(typeof e=="number"){if(typeof t=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return cG(e)}return k3e(e,t,r)}In.poolSize=8192;function k3e(e,t,r){if(typeof e=="string")return swt(e,t);if(ArrayBuffer.isView(e))return lwt(e);if(e==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e);if(qm(e,ArrayBuffer)||e&&qm(e.buffer,ArrayBuffer)||typeof SharedArrayBuffer!="undefined"&&(qm(e,SharedArrayBuffer)||e&&qm(e.buffer,SharedArrayBuffer)))return lG(e,t,r);if(typeof e=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');let n=e.valueOf&&e.valueOf();if(n!=null&&n!==e)return In.from(n,t,r);let i=uwt(e);if(i)return i;if(typeof Symbol!="undefined"&&Symbol.toPrimitive!=null&&typeof e[Symbol.toPrimitive]=="function")return In.from(e[Symbol.toPrimitive]("string"),t,r);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}In.from=function(e,t,r){return k3e(e,t,r)};Object.setPrototypeOf(In.prototype,Uint8Array.prototype);Object.setPrototypeOf(In,Uint8Array);function C3e(e){if(typeof e!="number")throw new TypeError('"size" argument must be of type number');if(e<0)throw new RangeError('The value "'+e+'" is invalid for option "size"')}function owt(e,t,r){return C3e(e),e<=0?Vy(e):t!==void 0?typeof r=="string"?Vy(e).fill(t,r):Vy(e).fill(t):Vy(e)}In.alloc=function(e,t,r){return owt(e,t,r)};function cG(e){return C3e(e),Vy(e<0?0:fG(e)|0)}In.allocUnsafe=function(e){return cG(e)};In.allocUnsafeSlow=function(e){return cG(e)};function swt(e,t){if((typeof t!="string"||t==="")&&(t="utf8"),!In.isEncoding(t))throw new TypeError("Unknown encoding: "+t);let r=L3e(e,t)|0,n=Vy(r),i=n.write(e,t);return i!==r&&(n=n.slice(0,i)),n}function sG(e){let t=e.length<0?0:fG(e.length)|0,r=Vy(t);for(let n=0;n=F8)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+F8.toString(16)+" bytes");return e|0}function cwt(e){return+e!=e&&(e=0),In.alloc(+e)}In.isBuffer=function(t){return t!=null&&t._isBuffer===!0&&t!==In.prototype};In.compare=function(t,r){if(qm(t,Uint8Array)&&(t=In.from(t,t.offset,t.byteLength)),qm(r,Uint8Array)&&(r=In.from(r,r.offset,r.byteLength)),!In.isBuffer(t)||!In.isBuffer(r))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(t===r)return 0;let n=t.length,i=r.length;for(let a=0,o=Math.min(n,i);ai.length?(In.isBuffer(o)||(o=In.from(o)),o.copy(i,a)):Uint8Array.prototype.set.call(i,o,a);else if(In.isBuffer(o))o.copy(i,a);else throw new TypeError('"list" argument must be an Array of Buffers');a+=o.length}return i};function L3e(e,t){if(In.isBuffer(e))return e.length;if(ArrayBuffer.isView(e)||qm(e,ArrayBuffer))return e.byteLength;if(typeof e!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof e);let r=e.length,n=arguments.length>2&&arguments[2]===!0;if(!n&&r===0)return 0;let i=!1;for(;;)switch(t){case"ascii":case"latin1":case"binary":return r;case"utf8":case"utf-8":return uG(e).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return r*2;case"hex":return r>>>1;case"base64":return B3e(e).length;default:if(i)return n?-1:uG(e).length;t=(""+t).toLowerCase(),i=!0}}In.byteLength=L3e;function fwt(e,t,r){let n=!1;if((t===void 0||t<0)&&(t=0),t>this.length||((r===void 0||r>this.length)&&(r=this.length),r<=0)||(r>>>=0,t>>>=0,r<=t))return"";for(e||(e="utf8");;)switch(e){case"hex":return bwt(this,t,r);case"utf8":case"utf-8":return I3e(this,t,r);case"ascii":return _wt(this,t,r);case"latin1":case"binary":return xwt(this,t,r);case"base64":return mwt(this,t,r);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return wwt(this,t,r);default:if(n)throw new TypeError("Unknown encoding: "+e);e=(e+"").toLowerCase(),n=!0}}In.prototype._isBuffer=!0;function l2(e,t,r){let n=e[t];e[t]=e[r],e[r]=n}In.prototype.swap16=function(){let t=this.length;if(t%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(let r=0;rr&&(t+=" ... "),""};A3e&&(In.prototype[A3e]=In.prototype.inspect);In.prototype.compare=function(t,r,n,i,a){if(qm(t,Uint8Array)&&(t=In.from(t,t.offset,t.byteLength)),!In.isBuffer(t))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof t);if(r===void 0&&(r=0),n===void 0&&(n=t?t.length:0),i===void 0&&(i=0),a===void 0&&(a=this.length),r<0||n>t.length||i<0||a>this.length)throw new RangeError("out of range index");if(i>=a&&r>=n)return 0;if(i>=a)return-1;if(r>=n)return 1;if(r>>>=0,n>>>=0,i>>>=0,a>>>=0,this===t)return 0;let o=a-i,s=n-r,l=Math.min(o,s),u=this.slice(i,a),c=t.slice(r,n);for(let f=0;f2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),r=+r,dG(r)&&(r=i?0:e.length-1),r<0&&(r=e.length+r),r>=e.length){if(i)return-1;r=e.length-1}else if(r<0)if(i)r=0;else return-1;if(typeof t=="string"&&(t=In.from(t,n)),In.isBuffer(t))return t.length===0?-1:S3e(e,t,r,n,i);if(typeof t=="number")return t=t&255,typeof Uint8Array.prototype.indexOf=="function"?i?Uint8Array.prototype.indexOf.call(e,t,r):Uint8Array.prototype.lastIndexOf.call(e,t,r):S3e(e,[t],r,n,i);throw new TypeError("val must be string, number or Buffer")}function S3e(e,t,r,n,i){let a=1,o=e.length,s=t.length;if(n!==void 0&&(n=String(n).toLowerCase(),n==="ucs2"||n==="ucs-2"||n==="utf16le"||n==="utf-16le")){if(e.length<2||t.length<2)return-1;a=2,o/=2,s/=2,r/=2}function l(c,f){return a===1?c[f]:c.readUInt16BE(f*a)}let u;if(i){let c=-1;for(u=r;uo&&(r=o-s),u=r;u>=0;u--){let c=!0;for(let f=0;fi&&(n=i)):n=i;let a=t.length;n>a/2&&(n=a/2);let o;for(o=0;o>>0,isFinite(n)?(n=n>>>0,i===void 0&&(i="utf8")):(i=n,n=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let a=this.length-r;if((n===void 0||n>a)&&(n=a),t.length>0&&(n<0||r<0)||r>this.length)throw new RangeError("Attempt to write outside buffer bounds");i||(i="utf8");let o=!1;for(;;)switch(i){case"hex":return hwt(this,t,r,n);case"utf8":case"utf-8":return dwt(this,t,r,n);case"ascii":case"latin1":case"binary":return vwt(this,t,r,n);case"base64":return pwt(this,t,r,n);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return gwt(this,t,r,n);default:if(o)throw new TypeError("Unknown encoding: "+i);i=(""+i).toLowerCase(),o=!0}};In.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function mwt(e,t,r){return t===0&&r===e.length?oG.fromByteArray(e):oG.fromByteArray(e.slice(t,r))}function I3e(e,t,r){r=Math.min(e.length,r);let n=[],i=t;for(;i239?4:a>223?3:a>191?2:1;if(i+s<=r){let l,u,c,f;switch(s){case 1:a<128&&(o=a);break;case 2:l=e[i+1],(l&192)===128&&(f=(a&31)<<6|l&63,f>127&&(o=f));break;case 3:l=e[i+1],u=e[i+2],(l&192)===128&&(u&192)===128&&(f=(a&15)<<12|(l&63)<<6|u&63,f>2047&&(f<55296||f>57343)&&(o=f));break;case 4:l=e[i+1],u=e[i+2],c=e[i+3],(l&192)===128&&(u&192)===128&&(c&192)===128&&(f=(a&15)<<18|(l&63)<<12|(u&63)<<6|c&63,f>65535&&f<1114112&&(o=f))}}o===null?(o=65533,s=1):o>65535&&(o-=65536,n.push(o>>>10&1023|55296),o=56320|o&1023),n.push(o),i+=s}return ywt(n)}var M3e=4096;function ywt(e){let t=e.length;if(t<=M3e)return String.fromCharCode.apply(String,e);let r="",n=0;for(;nn)&&(r=n);let i="";for(let a=t;an&&(t=n),r<0?(r+=n,r<0&&(r=0)):r>n&&(r=n),rr)throw new RangeError("Trying to access beyond buffer length")}In.prototype.readUintLE=In.prototype.readUIntLE=function(t,r,n){t=t>>>0,r=r>>>0,n||$d(t,r,this.length);let i=this[t],a=1,o=0;for(;++o>>0,r=r>>>0,n||$d(t,r,this.length);let i=this[t+--r],a=1;for(;r>0&&(a*=256);)i+=this[t+--r]*a;return i};In.prototype.readUint8=In.prototype.readUInt8=function(t,r){return t=t>>>0,r||$d(t,1,this.length),this[t]};In.prototype.readUint16LE=In.prototype.readUInt16LE=function(t,r){return t=t>>>0,r||$d(t,2,this.length),this[t]|this[t+1]<<8};In.prototype.readUint16BE=In.prototype.readUInt16BE=function(t,r){return t=t>>>0,r||$d(t,2,this.length),this[t]<<8|this[t+1]};In.prototype.readUint32LE=In.prototype.readUInt32LE=function(t,r){return t=t>>>0,r||$d(t,4,this.length),(this[t]|this[t+1]<<8|this[t+2]<<16)+this[t+3]*16777216};In.prototype.readUint32BE=In.prototype.readUInt32BE=function(t,r){return t=t>>>0,r||$d(t,4,this.length),this[t]*16777216+(this[t+1]<<16|this[t+2]<<8|this[t+3])};In.prototype.readBigUInt64LE=P_(function(t){t=t>>>0,YT(t,"offset");let r=this[t],n=this[t+7];(r===void 0||n===void 0)&&z4(t,this.length-8);let i=r+this[++t]*2**8+this[++t]*2**16+this[++t]*2**24,a=this[++t]+this[++t]*2**8+this[++t]*2**16+n*2**24;return BigInt(i)+(BigInt(a)<>>0,YT(t,"offset");let r=this[t],n=this[t+7];(r===void 0||n===void 0)&&z4(t,this.length-8);let i=r*2**24+this[++t]*2**16+this[++t]*2**8+this[++t],a=this[++t]*2**24+this[++t]*2**16+this[++t]*2**8+n;return(BigInt(i)<>>0,r=r>>>0,n||$d(t,r,this.length);let i=this[t],a=1,o=0;for(;++o=a&&(i-=Math.pow(2,8*r)),i};In.prototype.readIntBE=function(t,r,n){t=t>>>0,r=r>>>0,n||$d(t,r,this.length);let i=r,a=1,o=this[t+--i];for(;i>0&&(a*=256);)o+=this[t+--i]*a;return a*=128,o>=a&&(o-=Math.pow(2,8*r)),o};In.prototype.readInt8=function(t,r){return t=t>>>0,r||$d(t,1,this.length),this[t]&128?(255-this[t]+1)*-1:this[t]};In.prototype.readInt16LE=function(t,r){t=t>>>0,r||$d(t,2,this.length);let n=this[t]|this[t+1]<<8;return n&32768?n|4294901760:n};In.prototype.readInt16BE=function(t,r){t=t>>>0,r||$d(t,2,this.length);let n=this[t+1]|this[t]<<8;return n&32768?n|4294901760:n};In.prototype.readInt32LE=function(t,r){return t=t>>>0,r||$d(t,4,this.length),this[t]|this[t+1]<<8|this[t+2]<<16|this[t+3]<<24};In.prototype.readInt32BE=function(t,r){return t=t>>>0,r||$d(t,4,this.length),this[t]<<24|this[t+1]<<16|this[t+2]<<8|this[t+3]};In.prototype.readBigInt64LE=P_(function(t){t=t>>>0,YT(t,"offset");let r=this[t],n=this[t+7];(r===void 0||n===void 0)&&z4(t,this.length-8);let i=this[t+4]+this[t+5]*2**8+this[t+6]*2**16+(n<<24);return(BigInt(i)<>>0,YT(t,"offset");let r=this[t],n=this[t+7];(r===void 0||n===void 0)&&z4(t,this.length-8);let i=(r<<24)+this[++t]*2**16+this[++t]*2**8+this[++t];return(BigInt(i)<>>0,r||$d(t,4,this.length),XT.read(this,t,!0,23,4)};In.prototype.readFloatBE=function(t,r){return t=t>>>0,r||$d(t,4,this.length),XT.read(this,t,!1,23,4)};In.prototype.readDoubleLE=function(t,r){return t=t>>>0,r||$d(t,8,this.length),XT.read(this,t,!0,52,8)};In.prototype.readDoubleBE=function(t,r){return t=t>>>0,r||$d(t,8,this.length),XT.read(this,t,!1,52,8)};function Rp(e,t,r,n,i,a){if(!In.isBuffer(e))throw new TypeError('"buffer" argument must be a Buffer instance');if(t>i||te.length)throw new RangeError("Index out of range")}In.prototype.writeUintLE=In.prototype.writeUIntLE=function(t,r,n,i){if(t=+t,r=r>>>0,n=n>>>0,!i){let s=Math.pow(2,8*n)-1;Rp(this,t,r,n,s,0)}let a=1,o=0;for(this[r]=t&255;++o>>0,n=n>>>0,!i){let s=Math.pow(2,8*n)-1;Rp(this,t,r,n,s,0)}let a=n-1,o=1;for(this[r+a]=t&255;--a>=0&&(o*=256);)this[r+a]=t/o&255;return r+n};In.prototype.writeUint8=In.prototype.writeUInt8=function(t,r,n){return t=+t,r=r>>>0,n||Rp(this,t,r,1,255,0),this[r]=t&255,r+1};In.prototype.writeUint16LE=In.prototype.writeUInt16LE=function(t,r,n){return t=+t,r=r>>>0,n||Rp(this,t,r,2,65535,0),this[r]=t&255,this[r+1]=t>>>8,r+2};In.prototype.writeUint16BE=In.prototype.writeUInt16BE=function(t,r,n){return t=+t,r=r>>>0,n||Rp(this,t,r,2,65535,0),this[r]=t>>>8,this[r+1]=t&255,r+2};In.prototype.writeUint32LE=In.prototype.writeUInt32LE=function(t,r,n){return t=+t,r=r>>>0,n||Rp(this,t,r,4,4294967295,0),this[r+3]=t>>>24,this[r+2]=t>>>16,this[r+1]=t>>>8,this[r]=t&255,r+4};In.prototype.writeUint32BE=In.prototype.writeUInt32BE=function(t,r,n){return t=+t,r=r>>>0,n||Rp(this,t,r,4,4294967295,0),this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255,r+4};function R3e(e,t,r,n,i){O3e(t,n,i,e,r,7);let a=Number(t&BigInt(4294967295));e[r++]=a,a=a>>8,e[r++]=a,a=a>>8,e[r++]=a,a=a>>8,e[r++]=a;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o,o=o>>8,e[r++]=o,r}function D3e(e,t,r,n,i){O3e(t,n,i,e,r,7);let a=Number(t&BigInt(4294967295));e[r+7]=a,a=a>>8,e[r+6]=a,a=a>>8,e[r+5]=a,a=a>>8,e[r+4]=a;let o=Number(t>>BigInt(32)&BigInt(4294967295));return e[r+3]=o,o=o>>8,e[r+2]=o,o=o>>8,e[r+1]=o,o=o>>8,e[r]=o,r+8}In.prototype.writeBigUInt64LE=P_(function(t,r=0){return R3e(this,t,r,BigInt(0),BigInt("0xffffffffffffffff"))});In.prototype.writeBigUInt64BE=P_(function(t,r=0){return D3e(this,t,r,BigInt(0),BigInt("0xffffffffffffffff"))});In.prototype.writeIntLE=function(t,r,n,i){if(t=+t,r=r>>>0,!i){let l=Math.pow(2,8*n-1);Rp(this,t,r,n,l-1,-l)}let a=0,o=1,s=0;for(this[r]=t&255;++a>0)-s&255;return r+n};In.prototype.writeIntBE=function(t,r,n,i){if(t=+t,r=r>>>0,!i){let l=Math.pow(2,8*n-1);Rp(this,t,r,n,l-1,-l)}let a=n-1,o=1,s=0;for(this[r+a]=t&255;--a>=0&&(o*=256);)t<0&&s===0&&this[r+a+1]!==0&&(s=1),this[r+a]=(t/o>>0)-s&255;return r+n};In.prototype.writeInt8=function(t,r,n){return t=+t,r=r>>>0,n||Rp(this,t,r,1,127,-128),t<0&&(t=255+t+1),this[r]=t&255,r+1};In.prototype.writeInt16LE=function(t,r,n){return t=+t,r=r>>>0,n||Rp(this,t,r,2,32767,-32768),this[r]=t&255,this[r+1]=t>>>8,r+2};In.prototype.writeInt16BE=function(t,r,n){return t=+t,r=r>>>0,n||Rp(this,t,r,2,32767,-32768),this[r]=t>>>8,this[r+1]=t&255,r+2};In.prototype.writeInt32LE=function(t,r,n){return t=+t,r=r>>>0,n||Rp(this,t,r,4,2147483647,-2147483648),this[r]=t&255,this[r+1]=t>>>8,this[r+2]=t>>>16,this[r+3]=t>>>24,r+4};In.prototype.writeInt32BE=function(t,r,n){return t=+t,r=r>>>0,n||Rp(this,t,r,4,2147483647,-2147483648),t<0&&(t=4294967295+t+1),this[r]=t>>>24,this[r+1]=t>>>16,this[r+2]=t>>>8,this[r+3]=t&255,r+4};In.prototype.writeBigInt64LE=P_(function(t,r=0){return R3e(this,t,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});In.prototype.writeBigInt64BE=P_(function(t,r=0){return D3e(this,t,r,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function z3e(e,t,r,n,i,a){if(r+n>e.length)throw new RangeError("Index out of range");if(r<0)throw new RangeError("Index out of range")}function F3e(e,t,r,n,i){return t=+t,r=r>>>0,i||z3e(e,t,r,4,34028234663852886e22,-34028234663852886e22),XT.write(e,t,r,n,23,4),r+4}In.prototype.writeFloatLE=function(t,r,n){return F3e(this,t,r,!0,n)};In.prototype.writeFloatBE=function(t,r,n){return F3e(this,t,r,!1,n)};function q3e(e,t,r,n,i){return t=+t,r=r>>>0,i||z3e(e,t,r,8,17976931348623157e292,-17976931348623157e292),XT.write(e,t,r,n,52,8),r+8}In.prototype.writeDoubleLE=function(t,r,n){return q3e(this,t,r,!0,n)};In.prototype.writeDoubleBE=function(t,r,n){return q3e(this,t,r,!1,n)};In.prototype.copy=function(t,r,n,i){if(!In.isBuffer(t))throw new TypeError("argument should be a Buffer");if(n||(n=0),!i&&i!==0&&(i=this.length),r>=t.length&&(r=t.length),r||(r=0),i>0&&i=this.length)throw new RangeError("Index out of range");if(i<0)throw new RangeError("sourceEnd out of bounds");i>this.length&&(i=this.length),t.length-r>>0,n=n===void 0?this.length:n>>>0,t||(t=0);let a;if(typeof t=="number")for(a=r;a2**32?i=E3e(String(r)):typeof r=="bigint"&&(i=String(r),(r>BigInt(2)**BigInt(32)||r<-(BigInt(2)**BigInt(32)))&&(i=E3e(i)),i+="n"),n+=` It must be ${t}. Received ${i}`,n},RangeError);function E3e(e){let t="",r=e.length,n=e[0]==="-"?1:0;for(;r>=n+4;r-=3)t=`_${e.slice(r-3,r)}${t}`;return`${e.slice(0,r)}${t}`}function Twt(e,t,r){YT(t,"offset"),(e[t]===void 0||e[t+r]===void 0)&&z4(t,e.length-(r+1))}function O3e(e,t,r,n,i,a){if(e>r||e3?t===0||t===BigInt(0)?s=`>= 0${o} and < 2${o} ** ${(a+1)*8}${o}`:s=`>= -(2${o} ** ${(a+1)*8-1}${o}) and < 2 ** ${(a+1)*8-1}${o}`:s=`>= ${t}${o} and <= ${r}${o}`,new ZT.ERR_OUT_OF_RANGE("value",s,e)}Twt(n,i,a)}function YT(e,t){if(typeof e!="number")throw new ZT.ERR_INVALID_ARG_TYPE(t,"number",e)}function z4(e,t,r){throw Math.floor(e)!==e?(YT(e,r),new ZT.ERR_OUT_OF_RANGE(r||"offset","an integer",e)):t<0?new ZT.ERR_BUFFER_OUT_OF_BOUNDS:new ZT.ERR_OUT_OF_RANGE(r||"offset",`>= ${r?1:0} and <= ${t}`,e)}var Awt=/[^+/0-9A-Za-z-_]/g;function Swt(e){if(e=e.split("=")[0],e=e.trim().replace(Awt,""),e.length<2)return"";for(;e.length%4!==0;)e=e+"=";return e}function uG(e,t){t=t||1/0;let r,n=e.length,i=null,a=[];for(let o=0;o55295&&r<57344){if(!i){if(r>56319){(t-=3)>-1&&a.push(239,191,189);continue}else if(o+1===n){(t-=3)>-1&&a.push(239,191,189);continue}i=r;continue}if(r<56320){(t-=3)>-1&&a.push(239,191,189),i=r;continue}r=(i-55296<<10|r-56320)+65536}else i&&(t-=3)>-1&&a.push(239,191,189);if(i=null,r<128){if((t-=1)<0)break;a.push(r)}else if(r<2048){if((t-=2)<0)break;a.push(r>>6|192,r&63|128)}else if(r<65536){if((t-=3)<0)break;a.push(r>>12|224,r>>6&63|128,r&63|128)}else if(r<1114112){if((t-=4)<0)break;a.push(r>>18|240,r>>12&63|128,r>>6&63|128,r&63|128)}else throw new Error("Invalid code point")}return a}function Mwt(e){let t=[];for(let r=0;r>8,i=r%256,a.push(i),a.push(n);return a}function B3e(e){return oG.toByteArray(Swt(e))}function q8(e,t,r,n){let i;for(i=0;i=t.length||i>=e.length);++i)t[i+r]=e[i];return i}function qm(e,t){return e instanceof t||e!=null&&e.constructor!=null&&e.constructor.name!=null&&e.constructor.name===t.name}function dG(e){return e!==e}var kwt=function(){let e="0123456789abcdef",t=new Array(256);for(let r=0;r<16;++r){let n=r*16;for(let i=0;i<16;++i)t[n+i]=e[r]+e[i]}return t}();function P_(e){return typeof BigInt=="undefined"?Cwt:e}function Cwt(){throw new Error("BigInt not supported")}});var O8=ye((cur,N3e)=>{"use strict";N3e.exports=function(){if(typeof Symbol!="function"||typeof Object.getOwnPropertySymbols!="function")return!1;if(typeof Symbol.iterator=="symbol")return!0;var t={},r=Symbol("test"),n=Object(r);if(typeof r=="string"||Object.prototype.toString.call(r)!=="[object Symbol]"||Object.prototype.toString.call(n)!=="[object Symbol]")return!1;var i=42;t[r]=i;for(r in t)return!1;if(typeof Object.keys=="function"&&Object.keys(t).length!==0||typeof Object.getOwnPropertyNames=="function"&&Object.getOwnPropertyNames(t).length!==0)return!1;var a=Object.getOwnPropertySymbols(t);if(a.length!==1||a[0]!==r||!Object.prototype.propertyIsEnumerable.call(t,r))return!1;if(typeof Object.getOwnPropertyDescriptor=="function"){var o=Object.getOwnPropertyDescriptor(t,r);if(o.value!==i||o.enumerable!==!0)return!1}return!0}});var F4=ye((fur,U3e)=>{"use strict";var Lwt=O8();U3e.exports=function(){return Lwt()&&!!Symbol.toStringTag}});var H3e=ye((hur,V3e)=>{"use strict";V3e.exports=Error});var j3e=ye((dur,G3e)=>{"use strict";G3e.exports=EvalError});var Z3e=ye((vur,W3e)=>{"use strict";W3e.exports=RangeError});var Y3e=ye((pur,X3e)=>{"use strict";X3e.exports=ReferenceError});var vG=ye((gur,K3e)=>{"use strict";K3e.exports=SyntaxError});var q4=ye((mur,J3e)=>{"use strict";J3e.exports=TypeError});var Q3e=ye((yur,$3e)=>{"use strict";$3e.exports=URIError});var rTe=ye((_ur,tTe)=>{"use strict";var eTe=typeof Symbol!="undefined"&&Symbol,Pwt=O8();tTe.exports=function(){return typeof eTe!="function"||typeof Symbol!="function"||typeof eTe("foo")!="symbol"||typeof Symbol("bar")!="symbol"?!1:Pwt()}});var aTe=ye((xur,nTe)=>{"use strict";var iTe={foo:{}},Iwt=Object;nTe.exports=function(){return{__proto__:iTe}.foo===iTe.foo&&!({__proto__:null}instanceof Iwt)}});var lTe=ye((bur,sTe)=>{"use strict";var Rwt="Function.prototype.bind called on incompatible ",Dwt=Object.prototype.toString,zwt=Math.max,Fwt="[object Function]",oTe=function(t,r){for(var n=[],i=0;i{"use strict";var Bwt=lTe();uTe.exports=Function.prototype.bind||Bwt});var fTe=ye((Tur,cTe)=>{"use strict";var Nwt=Function.prototype.call,Uwt=Object.prototype.hasOwnProperty,Vwt=B8();cTe.exports=Vwt.call(Nwt,Uwt)});var t5=ye((Aur,gTe)=>{"use strict";var Gl,Hwt=H3e(),Gwt=j3e(),jwt=Z3e(),Wwt=Y3e(),e5=vG(),QT=q4(),Zwt=Q3e(),pTe=Function,pG=function(e){try{return pTe('"use strict"; return ('+e+").constructor;")()}catch(t){}},c2=Object.getOwnPropertyDescriptor;if(c2)try{c2({},"")}catch(e){c2=null}var gG=function(){throw new QT},Xwt=c2?function(){try{return arguments.callee,gG}catch(e){try{return c2(arguments,"callee").get}catch(t){return gG}}}():gG,JT=rTe()(),Ywt=aTe()(),Qd=Object.getPrototypeOf||(Ywt?function(e){return e.__proto__}:null),$T={},Kwt=typeof Uint8Array=="undefined"||!Qd?Gl:Qd(Uint8Array),f2={__proto__:null,"%AggregateError%":typeof AggregateError=="undefined"?Gl:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer=="undefined"?Gl:ArrayBuffer,"%ArrayIteratorPrototype%":JT&&Qd?Qd([][Symbol.iterator]()):Gl,"%AsyncFromSyncIteratorPrototype%":Gl,"%AsyncFunction%":$T,"%AsyncGenerator%":$T,"%AsyncGeneratorFunction%":$T,"%AsyncIteratorPrototype%":$T,"%Atomics%":typeof Atomics=="undefined"?Gl:Atomics,"%BigInt%":typeof BigInt=="undefined"?Gl:BigInt,"%BigInt64Array%":typeof BigInt64Array=="undefined"?Gl:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array=="undefined"?Gl:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView=="undefined"?Gl:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":Hwt,"%eval%":eval,"%EvalError%":Gwt,"%Float32Array%":typeof Float32Array=="undefined"?Gl:Float32Array,"%Float64Array%":typeof Float64Array=="undefined"?Gl:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry=="undefined"?Gl:FinalizationRegistry,"%Function%":pTe,"%GeneratorFunction%":$T,"%Int8Array%":typeof Int8Array=="undefined"?Gl:Int8Array,"%Int16Array%":typeof Int16Array=="undefined"?Gl:Int16Array,"%Int32Array%":typeof Int32Array=="undefined"?Gl:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":JT&&Qd?Qd(Qd([][Symbol.iterator]())):Gl,"%JSON%":typeof JSON=="object"?JSON:Gl,"%Map%":typeof Map=="undefined"?Gl:Map,"%MapIteratorPrototype%":typeof Map=="undefined"||!JT||!Qd?Gl:Qd(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise=="undefined"?Gl:Promise,"%Proxy%":typeof Proxy=="undefined"?Gl:Proxy,"%RangeError%":jwt,"%ReferenceError%":Wwt,"%Reflect%":typeof Reflect=="undefined"?Gl:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set=="undefined"?Gl:Set,"%SetIteratorPrototype%":typeof Set=="undefined"||!JT||!Qd?Gl:Qd(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer=="undefined"?Gl:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":JT&&Qd?Qd(""[Symbol.iterator]()):Gl,"%Symbol%":JT?Symbol:Gl,"%SyntaxError%":e5,"%ThrowTypeError%":Xwt,"%TypedArray%":Kwt,"%TypeError%":QT,"%Uint8Array%":typeof Uint8Array=="undefined"?Gl:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray=="undefined"?Gl:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array=="undefined"?Gl:Uint16Array,"%Uint32Array%":typeof Uint32Array=="undefined"?Gl:Uint32Array,"%URIError%":Zwt,"%WeakMap%":typeof WeakMap=="undefined"?Gl:WeakMap,"%WeakRef%":typeof WeakRef=="undefined"?Gl:WeakRef,"%WeakSet%":typeof WeakSet=="undefined"?Gl:WeakSet};if(Qd)try{null.error}catch(e){hTe=Qd(Qd(e)),f2["%Error.prototype%"]=hTe}var hTe,Jwt=function e(t){var r;if(t==="%AsyncFunction%")r=pG("async function () {}");else if(t==="%GeneratorFunction%")r=pG("function* () {}");else if(t==="%AsyncGeneratorFunction%")r=pG("async function* () {}");else if(t==="%AsyncGenerator%"){var n=e("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if(t==="%AsyncIteratorPrototype%"){var i=e("%AsyncGenerator%");i&&Qd&&(r=Qd(i.prototype))}return f2[t]=r,r},dTe={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},O4=B8(),N8=fTe(),$wt=O4.call(Function.call,Array.prototype.concat),Qwt=O4.call(Function.apply,Array.prototype.splice),vTe=O4.call(Function.call,String.prototype.replace),U8=O4.call(Function.call,String.prototype.slice),e3t=O4.call(Function.call,RegExp.prototype.exec),t3t=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,r3t=/\\(\\)?/g,i3t=function(t){var r=U8(t,0,1),n=U8(t,-1);if(r==="%"&&n!=="%")throw new e5("invalid intrinsic syntax, expected closing `%`");if(n==="%"&&r!=="%")throw new e5("invalid intrinsic syntax, expected opening `%`");var i=[];return vTe(t,t3t,function(a,o,s,l){i[i.length]=s?vTe(l,r3t,"$1"):o||a}),i},n3t=function(t,r){var n=t,i;if(N8(dTe,n)&&(i=dTe[n],n="%"+i[0]+"%"),N8(f2,n)){var a=f2[n];if(a===$T&&(a=Jwt(n)),typeof a=="undefined"&&!r)throw new QT("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:i,name:n,value:a}}throw new e5("intrinsic "+t+" does not exist!")};gTe.exports=function(t,r){if(typeof t!="string"||t.length===0)throw new QT("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof r!="boolean")throw new QT('"allowMissing" argument must be a boolean');if(e3t(/^%?[^%]*%?$/,t)===null)throw new e5("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=i3t(t),i=n.length>0?n[0]:"",a=n3t("%"+i+"%",r),o=a.name,s=a.value,l=!1,u=a.alias;u&&(i=u[0],Qwt(n,$wt([0,1],u)));for(var c=1,f=!0;c=n.length){var x=c2(s,h);f=!!x,f&&"get"in x&&!("originalValue"in x.get)?s=x.get:s=s[h]}else f=N8(s,h),s=s[h];f&&!l&&(f2[o]=s)}}return s}});var H8=ye((Sur,mTe)=>{"use strict";var a3t=t5(),V8=a3t("%Object.defineProperty%",!0)||!1;if(V8)try{V8({},"a",{value:1})}catch(e){V8=!1}mTe.exports=V8});var B4=ye((Mur,yTe)=>{"use strict";var o3t=t5(),G8=o3t("%Object.getOwnPropertyDescriptor%",!0);if(G8)try{G8([],"length")}catch(e){G8=null}yTe.exports=G8});var wTe=ye((Eur,bTe)=>{"use strict";var _Te=H8(),s3t=vG(),r5=q4(),xTe=B4();bTe.exports=function(t,r,n){if(!t||typeof t!="object"&&typeof t!="function")throw new r5("`obj` must be an object or a function`");if(typeof r!="string"&&typeof r!="symbol")throw new r5("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new r5("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new r5("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new r5("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new r5("`loose`, if provided, must be a boolean");var i=arguments.length>3?arguments[3]:null,a=arguments.length>4?arguments[4]:null,o=arguments.length>5?arguments[5]:null,s=arguments.length>6?arguments[6]:!1,l=!!xTe&&xTe(t,r);if(_Te)_Te(t,r,{configurable:o===null&&l?l.configurable:!o,enumerable:i===null&&l?l.enumerable:!i,value:n,writable:a===null&&l?l.writable:!a});else if(s||!i&&!a&&!o)t[r]=n;else throw new s3t("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")}});var yG=ye((kur,ATe)=>{"use strict";var mG=H8(),TTe=function(){return!!mG};TTe.hasArrayLengthDefineBug=function(){if(!mG)return null;try{return mG([],"length",{value:1}).length!==1}catch(t){return!0}};ATe.exports=TTe});var CTe=ye((Cur,kTe)=>{"use strict";var l3t=t5(),STe=wTe(),u3t=yG()(),MTe=B4(),ETe=q4(),c3t=l3t("%Math.floor%");kTe.exports=function(t,r){if(typeof t!="function")throw new ETe("`fn` is not a function");if(typeof r!="number"||r<0||r>4294967295||c3t(r)!==r)throw new ETe("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],i=!0,a=!0;if("length"in t&&MTe){var o=MTe(t,"length");o&&!o.configurable&&(i=!1),o&&!o.writable&&(a=!1)}return(i||a||!n)&&(u3t?STe(t,"length",r,!0,!0):STe(t,"length",r)),t}});var N4=ye((Lur,j8)=>{"use strict";var _G=B8(),W8=t5(),f3t=CTe(),h3t=q4(),ITe=W8("%Function.prototype.apply%"),RTe=W8("%Function.prototype.call%"),DTe=W8("%Reflect.apply%",!0)||_G.call(RTe,ITe),LTe=H8(),d3t=W8("%Math.max%");j8.exports=function(t){if(typeof t!="function")throw new h3t("a function is required");var r=DTe(_G,RTe,arguments);return f3t(r,1+d3t(0,t.length-(arguments.length-1)),!0)};var PTe=function(){return DTe(_G,ITe,arguments)};LTe?LTe(j8.exports,"apply",{value:PTe}):j8.exports.apply=PTe});var i5=ye((Pur,qTe)=>{"use strict";var zTe=t5(),FTe=N4(),v3t=FTe(zTe("String.prototype.indexOf"));qTe.exports=function(t,r){var n=zTe(t,!!r);return typeof n=="function"&&v3t(t,".prototype.")>-1?FTe(n):n}});var NTe=ye((Iur,BTe)=>{"use strict";var p3t=F4()(),g3t=i5(),xG=g3t("Object.prototype.toString"),Z8=function(t){return p3t&&t&&typeof t=="object"&&Symbol.toStringTag in t?!1:xG(t)==="[object Arguments]"},OTe=function(t){return Z8(t)?!0:t!==null&&typeof t=="object"&&typeof t.length=="number"&&t.length>=0&&xG(t)!=="[object Array]"&&xG(t.callee)==="[object Function]"},m3t=function(){return Z8(arguments)}();Z8.isLegacyArguments=OTe;BTe.exports=m3t?Z8:OTe});var HTe=ye((Rur,VTe)=>{"use strict";var y3t=Object.prototype.toString,_3t=Function.prototype.toString,x3t=/^\s*(?:function)?\*/,UTe=F4()(),bG=Object.getPrototypeOf,b3t=function(){if(!UTe)return!1;try{return Function("return function*() {}")()}catch(e){}},wG;VTe.exports=function(t){if(typeof t!="function")return!1;if(x3t.test(_3t.call(t)))return!0;if(!UTe){var r=y3t.call(t);return r==="[object GeneratorFunction]"}if(!bG)return!1;if(typeof wG=="undefined"){var n=b3t();wG=n?bG(n):!1}return bG(t)===wG}});var ZTe=ye((Dur,WTe)=>{"use strict";var jTe=Function.prototype.toString,n5=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,AG,X8;if(typeof n5=="function"&&typeof Object.defineProperty=="function")try{AG=Object.defineProperty({},"length",{get:function(){throw X8}}),X8={},n5(function(){throw 42},null,AG)}catch(e){e!==X8&&(n5=null)}else n5=null;var w3t=/^\s*class\b/,SG=function(t){try{var r=jTe.call(t);return w3t.test(r)}catch(n){return!1}},TG=function(t){try{return SG(t)?!1:(jTe.call(t),!0)}catch(r){return!1}},Y8=Object.prototype.toString,T3t="[object Object]",A3t="[object Function]",S3t="[object GeneratorFunction]",M3t="[object HTMLAllCollection]",E3t="[object HTML document.all class]",k3t="[object HTMLCollection]",C3t=typeof Symbol=="function"&&!!Symbol.toStringTag,L3t=!(0 in[,]),MG=function(){return!1};typeof document=="object"&&(GTe=document.all,Y8.call(GTe)===Y8.call(document.all)&&(MG=function(t){if((L3t||!t)&&(typeof t=="undefined"||typeof t=="object"))try{var r=Y8.call(t);return(r===M3t||r===E3t||r===k3t||r===T3t)&&t("")==null}catch(n){}return!1}));var GTe;WTe.exports=n5?function(t){if(MG(t))return!0;if(!t||typeof t!="function"&&typeof t!="object")return!1;try{n5(t,null,AG)}catch(r){if(r!==X8)return!1}return!SG(t)&&TG(t)}:function(t){if(MG(t))return!0;if(!t||typeof t!="function"&&typeof t!="object")return!1;if(C3t)return TG(t);if(SG(t))return!1;var r=Y8.call(t);return r!==A3t&&r!==S3t&&!/^\[object HTML/.test(r)?!1:TG(t)}});var EG=ye((zur,YTe)=>{"use strict";var P3t=ZTe(),I3t=Object.prototype.toString,XTe=Object.prototype.hasOwnProperty,R3t=function(t,r,n){for(var i=0,a=t.length;i=3&&(i=n),I3t.call(t)==="[object Array]"?R3t(t,r,i):typeof t=="string"?D3t(t,r,i):z3t(t,r,i)};YTe.exports=F3t});var CG=ye((Fur,KTe)=>{"use strict";var kG=["BigInt64Array","BigUint64Array","Float32Array","Float64Array","Int16Array","Int32Array","Int8Array","Uint16Array","Uint32Array","Uint8Array","Uint8ClampedArray"],q3t=typeof globalThis=="undefined"?window:globalThis;KTe.exports=function(){for(var t=[],r=0;r{"use strict";var J8=EG(),O3t=CG(),JTe=N4(),IG=i5(),K8=B4(),B3t=IG("Object.prototype.toString"),QTe=F4()(),$Te=typeof globalThis=="undefined"?window:globalThis,PG=O3t(),RG=IG("String.prototype.slice"),LG=Object.getPrototypeOf,N3t=IG("Array.prototype.indexOf",!0)||function(t,r){for(var n=0;n-1?r:r!=="Object"?!1:V3t(t)}return K8?U3t(t):null}});var s5e=ye((Our,o5e)=>{"use strict";var r5e=EG(),H3t=CG(),zG=i5(),G3t=zG("Object.prototype.toString"),i5e=F4()(),Q8=B4(),j3t=typeof globalThis=="undefined"?window:globalThis,n5e=H3t(),W3t=zG("Array.prototype.indexOf",!0)||function(t,r){for(var n=0;n-1}return Q8?X3t(t):!1}});var OG=ye(Ol=>{"use strict";var Y3t=NTe(),K3t=HTe(),Hg=t5e(),l5e=s5e();function a5(e){return e.call.bind(e)}var u5e=typeof BigInt!="undefined",c5e=typeof Symbol!="undefined",X0=a5(Object.prototype.toString),J3t=a5(Number.prototype.valueOf),$3t=a5(String.prototype.valueOf),Q3t=a5(Boolean.prototype.valueOf);u5e&&(f5e=a5(BigInt.prototype.valueOf));var f5e;c5e&&(h5e=a5(Symbol.prototype.valueOf));var h5e;function V4(e,t){if(typeof e!="object")return!1;try{return t(e),!0}catch(r){return!1}}Ol.isArgumentsObject=Y3t;Ol.isGeneratorFunction=K3t;Ol.isTypedArray=l5e;function eTt(e){return typeof Promise!="undefined"&&e instanceof Promise||e!==null&&typeof e=="object"&&typeof e.then=="function"&&typeof e.catch=="function"}Ol.isPromise=eTt;function tTt(e){return typeof ArrayBuffer!="undefined"&&ArrayBuffer.isView?ArrayBuffer.isView(e):l5e(e)||v5e(e)}Ol.isArrayBufferView=tTt;function rTt(e){return Hg(e)==="Uint8Array"}Ol.isUint8Array=rTt;function iTt(e){return Hg(e)==="Uint8ClampedArray"}Ol.isUint8ClampedArray=iTt;function nTt(e){return Hg(e)==="Uint16Array"}Ol.isUint16Array=nTt;function aTt(e){return Hg(e)==="Uint32Array"}Ol.isUint32Array=aTt;function oTt(e){return Hg(e)==="Int8Array"}Ol.isInt8Array=oTt;function sTt(e){return Hg(e)==="Int16Array"}Ol.isInt16Array=sTt;function lTt(e){return Hg(e)==="Int32Array"}Ol.isInt32Array=lTt;function uTt(e){return Hg(e)==="Float32Array"}Ol.isFloat32Array=uTt;function cTt(e){return Hg(e)==="Float64Array"}Ol.isFloat64Array=cTt;function fTt(e){return Hg(e)==="BigInt64Array"}Ol.isBigInt64Array=fTt;function hTt(e){return Hg(e)==="BigUint64Array"}Ol.isBigUint64Array=hTt;function eR(e){return X0(e)==="[object Map]"}eR.working=typeof Map!="undefined"&&eR(new Map);function dTt(e){return typeof Map=="undefined"?!1:eR.working?eR(e):e instanceof Map}Ol.isMap=dTt;function tR(e){return X0(e)==="[object Set]"}tR.working=typeof Set!="undefined"&&tR(new Set);function vTt(e){return typeof Set=="undefined"?!1:tR.working?tR(e):e instanceof Set}Ol.isSet=vTt;function rR(e){return X0(e)==="[object WeakMap]"}rR.working=typeof WeakMap!="undefined"&&rR(new WeakMap);function pTt(e){return typeof WeakMap=="undefined"?!1:rR.working?rR(e):e instanceof WeakMap}Ol.isWeakMap=pTt;function qG(e){return X0(e)==="[object WeakSet]"}qG.working=typeof WeakSet!="undefined"&&qG(new WeakSet);function gTt(e){return qG(e)}Ol.isWeakSet=gTt;function iR(e){return X0(e)==="[object ArrayBuffer]"}iR.working=typeof ArrayBuffer!="undefined"&&iR(new ArrayBuffer);function d5e(e){return typeof ArrayBuffer=="undefined"?!1:iR.working?iR(e):e instanceof ArrayBuffer}Ol.isArrayBuffer=d5e;function nR(e){return X0(e)==="[object DataView]"}nR.working=typeof ArrayBuffer!="undefined"&&typeof DataView!="undefined"&&nR(new DataView(new ArrayBuffer(1),0,1));function v5e(e){return typeof DataView=="undefined"?!1:nR.working?nR(e):e instanceof DataView}Ol.isDataView=v5e;var FG=typeof SharedArrayBuffer!="undefined"?SharedArrayBuffer:void 0;function U4(e){return X0(e)==="[object SharedArrayBuffer]"}function p5e(e){return typeof FG=="undefined"?!1:(typeof U4.working=="undefined"&&(U4.working=U4(new FG)),U4.working?U4(e):e instanceof FG)}Ol.isSharedArrayBuffer=p5e;function mTt(e){return X0(e)==="[object AsyncFunction]"}Ol.isAsyncFunction=mTt;function yTt(e){return X0(e)==="[object Map Iterator]"}Ol.isMapIterator=yTt;function _Tt(e){return X0(e)==="[object Set Iterator]"}Ol.isSetIterator=_Tt;function xTt(e){return X0(e)==="[object Generator]"}Ol.isGeneratorObject=xTt;function bTt(e){return X0(e)==="[object WebAssembly.Module]"}Ol.isWebAssemblyCompiledModule=bTt;function g5e(e){return V4(e,J3t)}Ol.isNumberObject=g5e;function m5e(e){return V4(e,$3t)}Ol.isStringObject=m5e;function y5e(e){return V4(e,Q3t)}Ol.isBooleanObject=y5e;function _5e(e){return u5e&&V4(e,f5e)}Ol.isBigIntObject=_5e;function x5e(e){return c5e&&V4(e,h5e)}Ol.isSymbolObject=x5e;function wTt(e){return g5e(e)||m5e(e)||y5e(e)||_5e(e)||x5e(e)}Ol.isBoxedPrimitive=wTt;function TTt(e){return typeof Uint8Array!="undefined"&&(d5e(e)||p5e(e))}Ol.isAnyArrayBuffer=TTt;["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(e){Object.defineProperty(Ol,e,{enumerable:!1,value:function(){throw new Error(e+" is not supported in userland")}})})});var BG=ye((Nur,b5e)=>{b5e.exports=function(t){return t&&typeof t=="object"&&typeof t.copy=="function"&&typeof t.fill=="function"&&typeof t.readUInt8=="function"}});var jG=ye(Bl=>{var w5e=Object.getOwnPropertyDescriptors||function(t){for(var r=Object.keys(t),n={},i=0;i=i)return s;switch(s){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(l){return"[Circular]"}default:return s}}),o=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),HG(t)?r.showHidden=t:t&&Bl._extend(r,t),d2(r.showHidden)&&(r.showHidden=!1),d2(r.depth)&&(r.depth=2),d2(r.colors)&&(r.colors=!1),d2(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=STt),lR(r,e,r.depth)}Bl.inspect=I_;I_.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};I_.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function STt(e,t){var r=I_.styles[t];return r?"\x1B["+I_.colors[r][0]+"m"+e+"\x1B["+I_.colors[r][1]+"m":e}function MTt(e,t){return e}function ETt(e){var t={};return e.forEach(function(r,n){t[r]=!0}),t}function lR(e,t,r){if(e.customInspect&&t&&sR(t.inspect)&&t.inspect!==Bl.inspect&&!(t.constructor&&t.constructor.prototype===t)){var n=t.inspect(r,e);return fR(n)||(n=lR(e,n,r)),n}var i=kTt(e,t);if(i)return i;var a=Object.keys(t),o=ETt(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(t)),G4(t)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return NG(t);if(a.length===0){if(sR(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if(H4(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(uR(t))return e.stylize(Date.prototype.toString.call(t),"date");if(G4(t))return NG(t)}var l="",u=!1,c=["{","}"];if(A5e(t)&&(u=!0,c=["[","]"]),sR(t)){var f=t.name?": "+t.name:"";l=" [Function"+f+"]"}if(H4(t)&&(l=" "+RegExp.prototype.toString.call(t)),uR(t)&&(l=" "+Date.prototype.toUTCString.call(t)),G4(t)&&(l=" "+NG(t)),a.length===0&&(!u||t.length==0))return c[0]+l+c[1];if(r<0)return H4(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var h;return u?h=CTt(e,t,r,o,a):h=a.map(function(d){return VG(e,t,r,o,d,u)}),e.seen.pop(),LTt(h,l,c)}function kTt(e,t){if(d2(t))return e.stylize("undefined","undefined");if(fR(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(S5e(t))return e.stylize(""+t,"number");if(HG(t))return e.stylize(""+t,"boolean");if(cR(t))return e.stylize("null","null")}function NG(e){return"["+Error.prototype.toString.call(e)+"]"}function CTt(e,t,r,n,i){for(var a=[],o=0,s=t.length;o-1&&(a?s=s.split(` +`).map(function(u){return" "+u}).join(` +`).slice(2):s=` +`+s.split(` +`).map(function(u){return" "+u}).join(` +`))):s=e.stylize("[Circular]","special")),d2(o)){if(a&&i.match(/^\d+$/))return s;o=JSON.stringify(""+i),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.slice(1,-1),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function LTt(e,t,r){var n=0,i=e.reduce(function(a,o){return n++,o.indexOf(` +`)>=0&&n++,a+o.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?r[0]+(t===""?"":t+` + `)+" "+e.join(`, + `)+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}Bl.types=OG();function A5e(e){return Array.isArray(e)}Bl.isArray=A5e;function HG(e){return typeof e=="boolean"}Bl.isBoolean=HG;function cR(e){return e===null}Bl.isNull=cR;function PTt(e){return e==null}Bl.isNullOrUndefined=PTt;function S5e(e){return typeof e=="number"}Bl.isNumber=S5e;function fR(e){return typeof e=="string"}Bl.isString=fR;function ITt(e){return typeof e=="symbol"}Bl.isSymbol=ITt;function d2(e){return e===void 0}Bl.isUndefined=d2;function H4(e){return o5(e)&&GG(e)==="[object RegExp]"}Bl.isRegExp=H4;Bl.types.isRegExp=H4;function o5(e){return typeof e=="object"&&e!==null}Bl.isObject=o5;function uR(e){return o5(e)&&GG(e)==="[object Date]"}Bl.isDate=uR;Bl.types.isDate=uR;function G4(e){return o5(e)&&(GG(e)==="[object Error]"||e instanceof Error)}Bl.isError=G4;Bl.types.isNativeError=G4;function sR(e){return typeof e=="function"}Bl.isFunction=sR;function RTt(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}Bl.isPrimitive=RTt;Bl.isBuffer=BG();function GG(e){return Object.prototype.toString.call(e)}function UG(e){return e<10?"0"+e.toString(10):e.toString(10)}var DTt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function zTt(){var e=new Date,t=[UG(e.getHours()),UG(e.getMinutes()),UG(e.getSeconds())].join(":");return[e.getDate(),DTt[e.getMonth()],t].join(" ")}Bl.log=function(){console.log("%s - %s",zTt(),Bl.format.apply(Bl,arguments))};Bl.inherits=Uy();Bl._extend=function(e,t){if(!t||!o5(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};function M5e(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var h2=typeof Symbol!="undefined"?Symbol("util.promisify.custom"):void 0;Bl.promisify=function(t){if(typeof t!="function")throw new TypeError('The "original" argument must be of type Function');if(h2&&t[h2]){var r=t[h2];if(typeof r!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(r,h2,{value:r,enumerable:!1,writable:!1,configurable:!0}),r}function r(){for(var n,i,a=new Promise(function(l,u){n=l,i=u}),o=[],s=0;s{"use strict";function E5e(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function OTt(e){for(var t=1;t0?this.tail.next=n:this.head=n,this.tail=n,++this.length}},{key:"unshift",value:function(r){var n={data:r,next:this.head};this.length===0&&(this.tail=n),this.head=n,++this.length}},{key:"shift",value:function(){if(this.length!==0){var r=this.head.data;return this.length===1?this.head=this.tail=null:this.head=this.head.next,--this.length,r}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(r){if(this.length===0)return"";for(var n=this.head,i=""+n.data;n=n.next;)i+=r+n.data;return i}},{key:"concat",value:function(r){if(this.length===0)return hR.alloc(0);for(var n=hR.allocUnsafe(r>>>0),i=this.head,a=0;i;)jTt(i.data,n,a),a+=i.data.length,i=i.next;return n}},{key:"consume",value:function(r,n){var i;return ro.length?o.length:r;if(s===o.length?a+=o:a+=o.slice(0,r),r-=s,r===0){s===o.length?(++i,n.next?this.head=n.next:this.head=this.tail=null):(this.head=n,n.data=o.slice(s));break}++i}return this.length-=i,a}},{key:"_getBuffer",value:function(r){var n=hR.allocUnsafe(r),i=this.head,a=1;for(i.data.copy(n),r-=i.data.length;i=i.next;){var o=i.data,s=r>o.length?o.length:r;if(o.copy(n,n.length-r,0,s),r-=s,r===0){s===o.length?(++a,i.next?this.head=i.next:this.head=this.tail=null):(this.head=i,i.data=o.slice(s));break}++a}return this.length-=a,n}},{key:GTt,value:function(r,n){return WG(this,OTt({},n,{depth:0,customInspect:!1}))}}]),e}()});var XG=ye((Hur,I5e)=>{"use strict";function WTt(e,t){var r=this,n=this._readableState&&this._readableState.destroyed,i=this._writableState&&this._writableState.destroyed;return n||i?(t?t(e):e&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,process.nextTick(ZG,this,e)):process.nextTick(ZG,this,e)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(e||null,function(a){!t&&a?r._writableState?r._writableState.errorEmitted?process.nextTick(dR,r):(r._writableState.errorEmitted=!0,process.nextTick(P5e,r,a)):process.nextTick(P5e,r,a):t?(process.nextTick(dR,r),t(a)):process.nextTick(dR,r)}),this)}function P5e(e,t){ZG(e,t),dR(e)}function dR(e){e._writableState&&!e._writableState.emitClose||e._readableState&&!e._readableState.emitClose||e.emit("close")}function ZTt(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)}function ZG(e,t){e.emit("error",t)}function XTt(e,t){var r=e._readableState,n=e._writableState;r&&r.autoDestroy||n&&n.autoDestroy?e.destroy(t):e.emit("error",t)}I5e.exports={destroy:WTt,undestroy:ZTt,errorOrDestroy:XTt}});var v2=ye((Gur,z5e)=>{"use strict";function YTt(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,e.__proto__=t}var D5e={};function Y0(e,t,r){r||(r=Error);function n(a,o,s){return typeof t=="string"?t:t(a,o,s)}var i=function(a){YTt(o,a);function o(s,l,u){return a.call(this,n(s,l,u))||this}return o}(r);i.prototype.name=r.name,i.prototype.code=e,D5e[e]=i}function R5e(e,t){if(Array.isArray(e)){var r=e.length;return e=e.map(function(n){return String(n)}),r>2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function KTt(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function JTt(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function $Tt(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}Y0("ERR_INVALID_OPT_VALUE",function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'},TypeError);Y0("ERR_INVALID_ARG_TYPE",function(e,t,r){var n;typeof t=="string"&&KTt(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";var i;if(JTt(e," argument"))i="The ".concat(e," ").concat(n," ").concat(R5e(t,"type"));else{var a=$Tt(e,".")?"property":"argument";i='The "'.concat(e,'" ').concat(a," ").concat(n," ").concat(R5e(t,"type"))}return i+=". Received type ".concat(typeof r),i},TypeError);Y0("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");Y0("ERR_METHOD_NOT_IMPLEMENTED",function(e){return"The "+e+" method is not implemented"});Y0("ERR_STREAM_PREMATURE_CLOSE","Premature close");Y0("ERR_STREAM_DESTROYED",function(e){return"Cannot call "+e+" after a stream was destroyed"});Y0("ERR_MULTIPLE_CALLBACK","Callback called multiple times");Y0("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");Y0("ERR_STREAM_WRITE_AFTER_END","write after end");Y0("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);Y0("ERR_UNKNOWN_ENCODING",function(e){return"Unknown encoding: "+e},TypeError);Y0("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");z5e.exports.codes=D5e});var YG=ye((jur,F5e)=>{"use strict";var QTt=v2().codes.ERR_INVALID_OPT_VALUE;function e5t(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function t5t(e,t,r,n){var i=e5t(t,n,r);if(i!=null){if(!(isFinite(i)&&Math.floor(i)===i)||i<0){var a=n?r:"highWaterMark";throw new QTt(a,i)}return Math.floor(i)}return e.objectMode?16:16*1024}F5e.exports={getHighWaterMark:t5t}});var O5e=ye((Wur,q5e)=>{q5e.exports=r5t;function r5t(e,t){if(KG("noDeprecation"))return e;var r=!1;function n(){if(!r){if(KG("throwDeprecation"))throw new Error(t);KG("traceDeprecation")?console.trace(t):console.warn(t),r=!0}return e.apply(this,arguments)}return n}function KG(e){try{if(!window.localStorage)return!1}catch(r){return!1}var t=window.localStorage[e];return t==null?!1:String(t).toLowerCase()==="true"}});var QG=ye((Zur,G5e)=>{"use strict";G5e.exports=_h;function N5e(e){var t=this;this.next=null,this.entry=null,this.finish=function(){C5t(t,e)}}var s5;_h.WritableState=W4;var i5t={deprecate:O5e()},U5e=iG(),pR=u2().Buffer,n5t=window.Uint8Array||function(){};function a5t(e){return pR.from(e)}function o5t(e){return pR.isBuffer(e)||e instanceof n5t}var $G=XG(),s5t=YG(),l5t=s5t.getHighWaterMark,R_=v2().codes,u5t=R_.ERR_INVALID_ARG_TYPE,c5t=R_.ERR_METHOD_NOT_IMPLEMENTED,f5t=R_.ERR_MULTIPLE_CALLBACK,h5t=R_.ERR_STREAM_CANNOT_PIPE,d5t=R_.ERR_STREAM_DESTROYED,v5t=R_.ERR_STREAM_NULL_VALUES,p5t=R_.ERR_STREAM_WRITE_AFTER_END,g5t=R_.ERR_UNKNOWN_ENCODING,l5=$G.errorOrDestroy;Uy()(_h,U5e);function m5t(){}function W4(e,t,r){s5=s5||p2(),e=e||{},typeof r!="boolean"&&(r=t instanceof s5),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.writableObjectMode),this.highWaterMark=l5t(this,e,"writableHighWaterMark",r),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;var n=e.decodeStrings===!1;this.decodeStrings=!n,this.defaultEncoding=e.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=function(i){A5t(t,i)},this.writecb=null,this.writelen=0,this.bufferedRequest=null,this.lastBufferedRequest=null,this.pendingcb=0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.bufferedRequestCount=0,this.corkedRequestsFree=new N5e(this)}W4.prototype.getBuffer=function(){for(var t=this.bufferedRequest,r=[];t;)r.push(t),t=t.next;return r};(function(){try{Object.defineProperty(W4.prototype,"buffer",{get:i5t.deprecate(function(){return this.getBuffer()},"_writableState.buffer is deprecated. Use _writableState.getBuffer instead.","DEP0003")})}catch(e){}})();var vR;typeof Symbol=="function"&&Symbol.hasInstance&&typeof Function.prototype[Symbol.hasInstance]=="function"?(vR=Function.prototype[Symbol.hasInstance],Object.defineProperty(_h,Symbol.hasInstance,{value:function(t){return vR.call(this,t)?!0:this!==_h?!1:t&&t._writableState instanceof W4}})):vR=function(t){return t instanceof this};function _h(e){s5=s5||p2();var t=this instanceof s5;if(!t&&!vR.call(_h,this))return new _h(e);this._writableState=new W4(e,this,t),this.writable=!0,e&&(typeof e.write=="function"&&(this._write=e.write),typeof e.writev=="function"&&(this._writev=e.writev),typeof e.destroy=="function"&&(this._destroy=e.destroy),typeof e.final=="function"&&(this._final=e.final)),U5e.call(this)}_h.prototype.pipe=function(){l5(this,new h5t)};function y5t(e,t){var r=new p5t;l5(e,r),process.nextTick(t,r)}function _5t(e,t,r,n){var i;return r===null?i=new v5t:typeof r!="string"&&!t.objectMode&&(i=new u5t("chunk",["string","Buffer"],r)),i?(l5(e,i),process.nextTick(n,i),!1):!0}_h.prototype.write=function(e,t,r){var n=this._writableState,i=!1,a=!n.objectMode&&o5t(e);return a&&!pR.isBuffer(e)&&(e=a5t(e)),typeof t=="function"&&(r=t,t=null),a?t="buffer":t||(t=n.defaultEncoding),typeof r!="function"&&(r=m5t),n.ending?y5t(this,r):(a||_5t(this,n,e,r))&&(n.pendingcb++,i=b5t(this,n,a,e,t,r)),i};_h.prototype.cork=function(){this._writableState.corked++};_h.prototype.uncork=function(){var e=this._writableState;e.corked&&(e.corked--,!e.writing&&!e.corked&&!e.bufferProcessing&&e.bufferedRequest&&V5e(this,e))};_h.prototype.setDefaultEncoding=function(t){if(typeof t=="string"&&(t=t.toLowerCase()),!(["hex","utf8","utf-8","ascii","binary","base64","ucs2","ucs-2","utf16le","utf-16le","raw"].indexOf((t+"").toLowerCase())>-1))throw new g5t(t);return this._writableState.defaultEncoding=t,this};Object.defineProperty(_h.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}});function x5t(e,t,r){return!e.objectMode&&e.decodeStrings!==!1&&typeof t=="string"&&(t=pR.from(t,r)),t}Object.defineProperty(_h.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}});function b5t(e,t,r,n,i,a){if(!r){var o=x5t(t,n,i);n!==o&&(r=!0,i="buffer",n=o)}var s=t.objectMode?1:n.length;t.length+=s;var l=t.length{"use strict";var L5t=Object.keys||function(e){var t=[];for(var r in e)t.push(r);return t};W5e.exports=Om;var j5e=rj(),tj=QG();Uy()(Om,j5e);for(ej=L5t(tj.prototype),gR=0;gR{var yR=u2(),Bm=yR.Buffer;function Z5e(e,t){for(var r in e)t[r]=e[r]}Bm.from&&Bm.alloc&&Bm.allocUnsafe&&Bm.allocUnsafeSlow?X5e.exports=yR:(Z5e(yR,ij),ij.Buffer=g2);function g2(e,t,r){return Bm(e,t,r)}g2.prototype=Object.create(Bm.prototype);Z5e(Bm,g2);g2.from=function(e,t,r){if(typeof e=="number")throw new TypeError("Argument must not be a number");return Bm(e,t,r)};g2.alloc=function(e,t,r){if(typeof e!="number")throw new TypeError("Argument must be a number");var n=Bm(e);return t!==void 0?typeof r=="string"?n.fill(t,r):n.fill(t):n.fill(0),n};g2.allocUnsafe=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return Bm(e)};g2.allocUnsafeSlow=function(e){if(typeof e!="number")throw new TypeError("Argument must be a number");return yR.SlowBuffer(e)}});var oj=ye(J5e=>{"use strict";var aj=Y5e().Buffer,K5e=aj.isEncoding||function(e){switch(e=""+e,e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function R5t(e){if(!e)return"utf8";for(var t;;)switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase(),t=!0}}function D5t(e){var t=R5t(e);if(typeof t!="string"&&(aj.isEncoding===K5e||!K5e(e)))throw new Error("Unknown encoding: "+e);return t||e}J5e.StringDecoder=Z4;function Z4(e){this.encoding=D5t(e);var t;switch(this.encoding){case"utf16le":this.text=N5t,this.end=U5t,t=4;break;case"utf8":this.fillLast=q5t,t=4;break;case"base64":this.text=V5t,this.end=H5t,t=3;break;default:this.write=G5t,this.end=j5t;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=aj.allocUnsafe(t)}Z4.prototype.write=function(e){if(e.length===0)return"";var t,r;if(this.lastNeed){if(t=this.fillLast(e),t===void 0)return"";r=this.lastNeed,this.lastNeed=0}else r=0;return r>5===6?2:e>>4===14?3:e>>3===30?4:e>>6===2?-1:-2}function z5t(e,t,r){var n=t.length-1;if(n=0?(i>0&&(e.lastNeed=i-1),i):--n=0?(i>0&&(e.lastNeed=i-2),i):--n=0?(i>0&&(i===2?i=0:e.lastNeed=i-3),i):0))}function F5t(e,t,r){if((t[0]&192)!==128)return e.lastNeed=0,"\uFFFD";if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128)return e.lastNeed=1,"\uFFFD";if(e.lastNeed>2&&t.length>2&&(t[2]&192)!==128)return e.lastNeed=2,"\uFFFD"}}function q5t(e){var t=this.lastTotal-this.lastNeed,r=F5t(this,e,t);if(r!==void 0)return r;if(this.lastNeed<=e.length)return e.copy(this.lastChar,t,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);e.copy(this.lastChar,t,0,e.length),this.lastNeed-=e.length}function O5t(e,t){var r=z5t(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);return e.copy(this.lastChar,0,n),e.toString("utf8",t,n)}function B5t(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+"\uFFFD":t}function N5t(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=e[e.length-1],e.toString("utf16le",t,e.length-1)}function U5t(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function V5t(e,t){var r=(e.length-t)%3;return r===0?e.toString("base64",t):(this.lastNeed=3-r,this.lastTotal=3,r===1?this.lastChar[0]=e[e.length-1]:(this.lastChar[0]=e[e.length-2],this.lastChar[1]=e[e.length-1]),e.toString("base64",t,e.length-r))}function H5t(e){var t=e&&e.length?this.write(e):"";return this.lastNeed?t+this.lastChar.toString("base64",0,3-this.lastNeed):t}function G5t(e){return e.toString(this.encoding)}function j5t(e){return e&&e.length?this.write(e):""}});var _R=ye((Kur,eAe)=>{"use strict";var $5e=v2().codes.ERR_STREAM_PREMATURE_CLOSE;function W5t(e){var t=!1;return function(){if(!t){t=!0;for(var r=arguments.length,n=new Array(r),i=0;i{"use strict";var xR;function D_(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Y5t=_R(),z_=Symbol("lastResolve"),m2=Symbol("lastReject"),X4=Symbol("error"),bR=Symbol("ended"),y2=Symbol("lastPromise"),sj=Symbol("handlePromise"),_2=Symbol("stream");function F_(e,t){return{value:e,done:t}}function K5t(e){var t=e[z_];if(t!==null){var r=e[_2].read();r!==null&&(e[y2]=null,e[z_]=null,e[m2]=null,t(F_(r,!1)))}}function J5t(e){process.nextTick(K5t,e)}function $5t(e,t){return function(r,n){e.then(function(){if(t[bR]){r(F_(void 0,!0));return}t[sj](r,n)},n)}}var Q5t=Object.getPrototypeOf(function(){}),eAt=Object.setPrototypeOf((xR={get stream(){return this[_2]},next:function(){var t=this,r=this[X4];if(r!==null)return Promise.reject(r);if(this[bR])return Promise.resolve(F_(void 0,!0));if(this[_2].destroyed)return new Promise(function(o,s){process.nextTick(function(){t[X4]?s(t[X4]):o(F_(void 0,!0))})});var n=this[y2],i;if(n)i=new Promise($5t(n,this));else{var a=this[_2].read();if(a!==null)return Promise.resolve(F_(a,!1));i=new Promise(this[sj])}return this[y2]=i,i}},D_(xR,Symbol.asyncIterator,function(){return this}),D_(xR,"return",function(){var t=this;return new Promise(function(r,n){t[_2].destroy(null,function(i){if(i){n(i);return}r(F_(void 0,!0))})})}),xR),Q5t),tAt=function(t){var r,n=Object.create(eAt,(r={},D_(r,_2,{value:t,writable:!0}),D_(r,z_,{value:null,writable:!0}),D_(r,m2,{value:null,writable:!0}),D_(r,X4,{value:null,writable:!0}),D_(r,bR,{value:t._readableState.endEmitted,writable:!0}),D_(r,sj,{value:function(a,o){var s=n[_2].read();s?(n[y2]=null,n[z_]=null,n[m2]=null,a(F_(s,!1))):(n[z_]=a,n[m2]=o)},writable:!0}),r));return n[y2]=null,Y5t(t,function(i){if(i&&i.code!=="ERR_STREAM_PREMATURE_CLOSE"){var a=n[m2];a!==null&&(n[y2]=null,n[z_]=null,n[m2]=null,a(i)),n[X4]=i;return}var o=n[z_];o!==null&&(n[y2]=null,n[z_]=null,n[m2]=null,o(F_(void 0,!0))),n[bR]=!0}),t.on("readable",J5t.bind(null,n)),n};tAe.exports=tAt});var nAe=ye(($ur,iAe)=>{iAe.exports=function(){throw new Error("Readable.from is not available in the browser")}});var rj=ye((ecr,vAe)=>{"use strict";vAe.exports=vu;var u5;vu.ReadableState=lAe;var Qur=vb().EventEmitter,sAe=function(t,r){return t.listeners(r).length},K4=iG(),wR=u2().Buffer,rAt=window.Uint8Array||function(){};function iAt(e){return wR.from(e)}function nAt(e){return wR.isBuffer(e)||e instanceof rAt}var lj=jG(),Pl;lj&&lj.debuglog?Pl=lj.debuglog("stream"):Pl=function(){};var aAt=L5e(),pj=XG(),oAt=YG(),sAt=oAt.getHighWaterMark,TR=v2().codes,lAt=TR.ERR_INVALID_ARG_TYPE,uAt=TR.ERR_STREAM_PUSH_AFTER_EOF,cAt=TR.ERR_METHOD_NOT_IMPLEMENTED,fAt=TR.ERR_STREAM_UNSHIFT_AFTER_END_EVENT,c5,uj,cj;Uy()(vu,K4);var Y4=pj.errorOrDestroy,fj=["error","close","destroy","pause","resume"];function hAt(e,t,r){if(typeof e.prependListener=="function")return e.prependListener(t,r);!e._events||!e._events[t]?e.on(t,r):Array.isArray(e._events[t])?e._events[t].unshift(r):e._events[t]=[r,e._events[t]]}function lAe(e,t,r){u5=u5||p2(),e=e||{},typeof r!="boolean"&&(r=t instanceof u5),this.objectMode=!!e.objectMode,r&&(this.objectMode=this.objectMode||!!e.readableObjectMode),this.highWaterMark=sAt(this,e,"readableHighWaterMark",r),this.buffer=new aAt,this.length=0,this.pipes=null,this.pipesCount=0,this.flowing=null,this.ended=!1,this.endEmitted=!1,this.reading=!1,this.sync=!0,this.needReadable=!1,this.emittedReadable=!1,this.readableListening=!1,this.resumeScheduled=!1,this.paused=!0,this.emitClose=e.emitClose!==!1,this.autoDestroy=!!e.autoDestroy,this.destroyed=!1,this.defaultEncoding=e.defaultEncoding||"utf8",this.awaitDrain=0,this.readingMore=!1,this.decoder=null,this.encoding=null,e.encoding&&(c5||(c5=oj().StringDecoder),this.decoder=new c5(e.encoding),this.encoding=e.encoding)}function vu(e){if(u5=u5||p2(),!(this instanceof vu))return new vu(e);var t=this instanceof u5;this._readableState=new lAe(e,this,t),this.readable=!0,e&&(typeof e.read=="function"&&(this._read=e.read),typeof e.destroy=="function"&&(this._destroy=e.destroy)),K4.call(this)}Object.defineProperty(vu.prototype,"destroyed",{enumerable:!1,get:function(){return this._readableState===void 0?!1:this._readableState.destroyed},set:function(t){this._readableState&&(this._readableState.destroyed=t)}});vu.prototype.destroy=pj.destroy;vu.prototype._undestroy=pj.undestroy;vu.prototype._destroy=function(e,t){t(e)};vu.prototype.push=function(e,t){var r=this._readableState,n;return r.objectMode?n=!0:typeof e=="string"&&(t=t||r.defaultEncoding,t!==r.encoding&&(e=wR.from(e,t),t=""),n=!0),uAe(this,e,t,!1,n)};vu.prototype.unshift=function(e){return uAe(this,e,null,!0,!1)};function uAe(e,t,r,n,i){Pl("readableAddChunk",t);var a=e._readableState;if(t===null)a.reading=!1,pAt(e,a);else{var o;if(i||(o=dAt(a,t)),o)Y4(e,o);else if(a.objectMode||t&&t.length>0)if(typeof t!="string"&&!a.objectMode&&Object.getPrototypeOf(t)!==wR.prototype&&(t=iAt(t)),n)a.endEmitted?Y4(e,new fAt):hj(e,a,t,!0);else if(a.ended)Y4(e,new uAt);else{if(a.destroyed)return!1;a.reading=!1,a.decoder&&!r?(t=a.decoder.write(t),a.objectMode||t.length!==0?hj(e,a,t,!1):vj(e,a)):hj(e,a,t,!1)}else n||(a.reading=!1,vj(e,a))}return!a.ended&&(a.length=aAe?e=aAe:(e--,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e++),e}function oAe(e,t){return e<=0||t.length===0&&t.ended?0:t.objectMode?1:e!==e?t.flowing&&t.length?t.buffer.head.data.length:t.length:(e>t.highWaterMark&&(t.highWaterMark=vAt(e)),e<=t.length?e:t.ended?t.length:(t.needReadable=!0,0))}vu.prototype.read=function(e){Pl("read",e),e=parseInt(e,10);var t=this._readableState,r=e;if(e!==0&&(t.emittedReadable=!1),e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended))return Pl("read: emitReadable",t.length,t.ended),t.length===0&&t.ended?dj(this):AR(this),null;if(e=oAe(e,t),e===0&&t.ended)return t.length===0&&dj(this),null;var n=t.needReadable;Pl("need readable",n),(t.length===0||t.length-e0?i=hAe(e,t):i=null,i===null?(t.needReadable=t.length<=t.highWaterMark,e=0):(t.length-=e,t.awaitDrain=0),t.length===0&&(t.ended||(t.needReadable=!0),r!==e&&t.ended&&dj(this)),i!==null&&this.emit("data",i),i};function pAt(e,t){if(Pl("onEofChunk"),!t.ended){if(t.decoder){var r=t.decoder.end();r&&r.length&&(t.buffer.push(r),t.length+=t.objectMode?1:r.length)}t.ended=!0,t.sync?AR(e):(t.needReadable=!1,t.emittedReadable||(t.emittedReadable=!0,cAe(e)))}}function AR(e){var t=e._readableState;Pl("emitReadable",t.needReadable,t.emittedReadable),t.needReadable=!1,t.emittedReadable||(Pl("emitReadable",t.flowing),t.emittedReadable=!0,process.nextTick(cAe,e))}function cAe(e){var t=e._readableState;Pl("emitReadable_",t.destroyed,t.length,t.ended),!t.destroyed&&(t.length||t.ended)&&(e.emit("readable"),t.emittedReadable=!1),t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark,gj(e)}function vj(e,t){t.readingMore||(t.readingMore=!0,process.nextTick(gAt,e,t))}function gAt(e,t){for(;!t.reading&&!t.ended&&(t.length1&&dAe(n.pipes,e)!==-1)&&!u&&(Pl("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function h(b){Pl("onerror",b),x(),e.removeListener("error",h),sAe(e,"error")===0&&Y4(e,b)}hAt(e,"error",h);function d(){e.removeListener("finish",v),x()}e.once("close",d);function v(){Pl("onfinish"),e.removeListener("close",d),x()}e.once("finish",v);function x(){Pl("unpipe"),r.unpipe(e)}return e.emit("pipe",r),n.flowing||(Pl("pipe resume"),r.resume()),e};function mAt(e){return function(){var r=e._readableState;Pl("pipeOnDrain",r.awaitDrain),r.awaitDrain&&r.awaitDrain--,r.awaitDrain===0&&sAe(e,"data")&&(r.flowing=!0,gj(e))}}vu.prototype.unpipe=function(e){var t=this._readableState,r={hasUnpiped:!1};if(t.pipesCount===0)return this;if(t.pipesCount===1)return e&&e!==t.pipes?this:(e||(e=t.pipes),t.pipes=null,t.pipesCount=0,t.flowing=!1,e&&e.emit("unpipe",this,r),this);if(!e){var n=t.pipes,i=t.pipesCount;t.pipes=null,t.pipesCount=0,t.flowing=!1;for(var a=0;a0,n.flowing!==!1&&this.resume()):e==="readable"&&!n.endEmitted&&!n.readableListening&&(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,Pl("on readable",n.length,n.reading),n.length?AR(this):n.reading||process.nextTick(yAt,this)),r};vu.prototype.addListener=vu.prototype.on;vu.prototype.removeListener=function(e,t){var r=K4.prototype.removeListener.call(this,e,t);return e==="readable"&&process.nextTick(fAe,this),r};vu.prototype.removeAllListeners=function(e){var t=K4.prototype.removeAllListeners.apply(this,arguments);return(e==="readable"||e===void 0)&&process.nextTick(fAe,this),t};function fAe(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0,t.resumeScheduled&&!t.paused?t.flowing=!0:e.listenerCount("data")>0&&e.resume()}function yAt(e){Pl("readable nexttick read 0"),e.read(0)}vu.prototype.resume=function(){var e=this._readableState;return e.flowing||(Pl("resume"),e.flowing=!e.readableListening,_At(this,e)),e.paused=!1,this};function _At(e,t){t.resumeScheduled||(t.resumeScheduled=!0,process.nextTick(xAt,e,t))}function xAt(e,t){Pl("resume",t.reading),t.reading||e.read(0),t.resumeScheduled=!1,e.emit("resume"),gj(e),t.flowing&&!t.reading&&e.read(0)}vu.prototype.pause=function(){return Pl("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1&&(Pl("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this};function gj(e){var t=e._readableState;for(Pl("flow",t.flowing);t.flowing&&e.read()!==null;);}vu.prototype.wrap=function(e){var t=this,r=this._readableState,n=!1;e.on("end",function(){if(Pl("wrapped end"),r.decoder&&!r.ended){var o=r.decoder.end();o&&o.length&&t.push(o)}t.push(null)}),e.on("data",function(o){if(Pl("wrapped data"),r.decoder&&(o=r.decoder.write(o)),!(r.objectMode&&o==null)&&!(!r.objectMode&&(!o||!o.length))){var s=t.push(o);s||(n=!0,e.pause())}});for(var i in e)this[i]===void 0&&typeof e[i]=="function"&&(this[i]=function(s){return function(){return e[s].apply(e,arguments)}}(i));for(var a=0;a=t.length?(t.decoder?r=t.buffer.join(""):t.buffer.length===1?r=t.buffer.first():r=t.buffer.concat(t.length),t.buffer.clear()):r=t.buffer.consume(e,t.decoder),r}function dj(e){var t=e._readableState;Pl("endReadable",t.endEmitted),t.endEmitted||(t.ended=!0,process.nextTick(bAt,t,e))}function bAt(e,t){if(Pl("endReadableNT",e.endEmitted,e.length),!e.endEmitted&&e.length===0&&(e.endEmitted=!0,t.readable=!1,t.emit("end"),e.autoDestroy)){var r=t._writableState;(!r||r.autoDestroy&&r.finished)&&t.destroy()}}typeof Symbol=="function"&&(vu.from=function(e,t){return cj===void 0&&(cj=nAe()),cj(vu,e,t)});function dAe(e,t){for(var r=0,n=e.length;r{"use strict";gAe.exports=Hy;var SR=v2().codes,wAt=SR.ERR_METHOD_NOT_IMPLEMENTED,TAt=SR.ERR_MULTIPLE_CALLBACK,AAt=SR.ERR_TRANSFORM_ALREADY_TRANSFORMING,SAt=SR.ERR_TRANSFORM_WITH_LENGTH_0,MR=p2();Uy()(Hy,MR);function MAt(e,t){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(n===null)return this.emit("error",new TAt);r.writechunk=null,r.writecb=null,t!=null&&this.push(t),n(e);var i=this._readableState;i.reading=!1,(i.needReadable||i.length{"use strict";yAe.exports=J4;var mAe=mj();Uy()(J4,mAe);function J4(e){if(!(this instanceof J4))return new J4(e);mAe.call(this,e)}J4.prototype._transform=function(e,t,r){r(null,e)}});var AAe=ye((icr,TAe)=>{"use strict";var yj;function kAt(e){var t=!1;return function(){t||(t=!0,e.apply(void 0,arguments))}}var wAe=v2().codes,CAt=wAe.ERR_MISSING_ARGS,LAt=wAe.ERR_STREAM_DESTROYED;function xAe(e){if(e)throw e}function PAt(e){return e.setHeader&&typeof e.abort=="function"}function IAt(e,t,r,n){n=kAt(n);var i=!1;e.on("close",function(){i=!0}),yj===void 0&&(yj=_R()),yj(e,{readable:t,writable:r},function(o){if(o)return n(o);i=!0,n()});var a=!1;return function(o){if(!i&&!a){if(a=!0,PAt(e))return e.abort();if(typeof e.destroy=="function")return e.destroy();n(o||new LAt("pipe"))}}}function bAe(e){e()}function RAt(e,t){return e.pipe(t)}function DAt(e){return!e.length||typeof e[e.length-1]!="function"?xAe:e.pop()}function zAt(){for(var e=arguments.length,t=new Array(e),r=0;r0;return IAt(o,l,u,function(c){i||(i=c),c&&a.forEach(bAe),!l&&(a.forEach(bAe),n(i))})});return t.reduce(RAt)}TAe.exports=zAt});var MAe=ye((ncr,SAe)=>{SAe.exports=K0;var _j=vb().EventEmitter,FAt=Uy();FAt(K0,_j);K0.Readable=rj();K0.Writable=QG();K0.Duplex=p2();K0.Transform=mj();K0.PassThrough=_Ae();K0.finished=_R();K0.pipeline=AAe();K0.Stream=K0;function K0(){_j.call(this)}K0.prototype.pipe=function(e,t){var r=this;function n(c){e.writable&&e.write(c)===!1&&r.pause&&r.pause()}r.on("data",n);function i(){r.readable&&r.resume&&r.resume()}e.on("drain",i),!e._isStdio&&(!t||t.end!==!1)&&(r.on("end",o),r.on("close",s));var a=!1;function o(){a||(a=!0,e.end())}function s(){a||(a=!0,typeof e.destroy=="function"&&e.destroy())}function l(c){if(u(),_j.listenerCount(this,"error")===0)throw c}r.on("error",l),e.on("error",l);function u(){r.removeListener("data",n),e.removeListener("drain",i),r.removeListener("end",o),r.removeListener("close",s),r.removeListener("error",l),e.removeListener("error",l),r.removeListener("end",u),r.removeListener("close",u),e.removeListener("close",u)}return r.on("end",u),r.on("close",u),e.on("close",u),e.emit("pipe",r),e}});var h5=ye(Nl=>{var EAe=Object.getOwnPropertyDescriptors||function(t){for(var r=Object.keys(t),n={},i=0;i=i)return s;switch(s){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(l){return"[Circular]"}default:return s}}),o=n[r];r=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),Tj(t)?r.showHidden=t:t&&Nl._extend(r,t),b2(r.showHidden)&&(r.showHidden=!1),b2(r.depth)&&(r.depth=2),b2(r.colors)&&(r.colors=!1),b2(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=OAt),LR(r,e,r.depth)}Nl.inspect=q_;q_.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};q_.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function OAt(e,t){var r=q_.styles[t];return r?"\x1B["+q_.colors[r][0]+"m"+e+"\x1B["+q_.colors[r][1]+"m":e}function BAt(e,t){return e}function NAt(e){var t={};return e.forEach(function(r,n){t[r]=!0}),t}function LR(e,t,r){if(e.customInspect&&t&&CR(t.inspect)&&t.inspect!==Nl.inspect&&!(t.constructor&&t.constructor.prototype===t)){var n=t.inspect(r,e);return RR(n)||(n=LR(e,n,r)),n}var i=UAt(e,t);if(i)return i;var a=Object.keys(t),o=NAt(a);if(e.showHidden&&(a=Object.getOwnPropertyNames(t)),Q4(t)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return xj(t);if(a.length===0){if(CR(t)){var s=t.name?": "+t.name:"";return e.stylize("[Function"+s+"]","special")}if($4(t))return e.stylize(RegExp.prototype.toString.call(t),"regexp");if(PR(t))return e.stylize(Date.prototype.toString.call(t),"date");if(Q4(t))return xj(t)}var l="",u=!1,c=["{","}"];if(CAe(t)&&(u=!0,c=["[","]"]),CR(t)){var f=t.name?": "+t.name:"";l=" [Function"+f+"]"}if($4(t)&&(l=" "+RegExp.prototype.toString.call(t)),PR(t)&&(l=" "+Date.prototype.toUTCString.call(t)),Q4(t)&&(l=" "+xj(t)),a.length===0&&(!u||t.length==0))return c[0]+l+c[1];if(r<0)return $4(t)?e.stylize(RegExp.prototype.toString.call(t),"regexp"):e.stylize("[Object]","special");e.seen.push(t);var h;return u?h=VAt(e,t,r,o,a):h=a.map(function(d){return wj(e,t,r,o,d,u)}),e.seen.pop(),HAt(h,l,c)}function UAt(e,t){if(b2(t))return e.stylize("undefined","undefined");if(RR(t)){var r="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return e.stylize(r,"string")}if(LAe(t))return e.stylize(""+t,"number");if(Tj(t))return e.stylize(""+t,"boolean");if(IR(t))return e.stylize("null","null")}function xj(e){return"["+Error.prototype.toString.call(e)+"]"}function VAt(e,t,r,n,i){for(var a=[],o=0,s=t.length;o-1&&(a?s=s.split(` +`).map(function(u){return" "+u}).join(` +`).slice(2):s=` +`+s.split(` +`).map(function(u){return" "+u}).join(` +`))):s=e.stylize("[Circular]","special")),b2(o)){if(a&&i.match(/^\d+$/))return s;o=JSON.stringify(""+i),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.slice(1,-1),o=e.stylize(o,"name")):(o=o.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),o=e.stylize(o,"string"))}return o+": "+s}function HAt(e,t,r){var n=0,i=e.reduce(function(a,o){return n++,o.indexOf(` +`)>=0&&n++,a+o.replace(/\u001b\[\d\d?m/g,"").length+1},0);return i>60?r[0]+(t===""?"":t+` + `)+" "+e.join(`, + `)+" "+r[1]:r[0]+t+" "+e.join(", ")+" "+r[1]}Nl.types=OG();function CAe(e){return Array.isArray(e)}Nl.isArray=CAe;function Tj(e){return typeof e=="boolean"}Nl.isBoolean=Tj;function IR(e){return e===null}Nl.isNull=IR;function GAt(e){return e==null}Nl.isNullOrUndefined=GAt;function LAe(e){return typeof e=="number"}Nl.isNumber=LAe;function RR(e){return typeof e=="string"}Nl.isString=RR;function jAt(e){return typeof e=="symbol"}Nl.isSymbol=jAt;function b2(e){return e===void 0}Nl.isUndefined=b2;function $4(e){return f5(e)&&Aj(e)==="[object RegExp]"}Nl.isRegExp=$4;Nl.types.isRegExp=$4;function f5(e){return typeof e=="object"&&e!==null}Nl.isObject=f5;function PR(e){return f5(e)&&Aj(e)==="[object Date]"}Nl.isDate=PR;Nl.types.isDate=PR;function Q4(e){return f5(e)&&(Aj(e)==="[object Error]"||e instanceof Error)}Nl.isError=Q4;Nl.types.isNativeError=Q4;function CR(e){return typeof e=="function"}Nl.isFunction=CR;function WAt(e){return e===null||typeof e=="boolean"||typeof e=="number"||typeof e=="string"||typeof e=="symbol"||typeof e=="undefined"}Nl.isPrimitive=WAt;Nl.isBuffer=BG();function Aj(e){return Object.prototype.toString.call(e)}function bj(e){return e<10?"0"+e.toString(10):e.toString(10)}var ZAt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function XAt(){var e=new Date,t=[bj(e.getHours()),bj(e.getMinutes()),bj(e.getSeconds())].join(":");return[e.getDate(),ZAt[e.getMonth()],t].join(" ")}Nl.log=function(){console.log("%s - %s",XAt(),Nl.format.apply(Nl,arguments))};Nl.inherits=Uy();Nl._extend=function(e,t){if(!t||!f5(t))return e;for(var r=Object.keys(t),n=r.length;n--;)e[r[n]]=t[r[n]];return e};function PAe(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var x2=typeof Symbol!="undefined"?Symbol("util.promisify.custom"):void 0;Nl.promisify=function(t){if(typeof t!="function")throw new TypeError('The "original" argument must be of type Function');if(x2&&t[x2]){var r=t[x2];if(typeof r!="function")throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(r,x2,{value:r,enumerable:!1,writable:!1,configurable:!0}),r}function r(){for(var n,i,a=new Promise(function(l,u){n=l,i=u}),o=[],s=0;s{"use strict";function O_(e){"@babel/helpers - typeof";return O_=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},O_(e)}function IAe(e,t){for(var r=0;r2?"one of ".concat(t," ").concat(e.slice(0,r-1).join(", "),", or ")+e[r-1]:r===2?"one of ".concat(t," ").concat(e[0]," or ").concat(e[1]):"of ".concat(t," ").concat(e[0])}else return"of ".concat(t," ").concat(String(e))}function oSt(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function sSt(e,t,r){return(r===void 0||r>e.length)&&(r=e.length),e.substring(r-t.length,r)===t}function lSt(e,t,r){return typeof r!="number"&&(r=0),r+t.length>e.length?!1:e.indexOf(t,r)!==-1}eE("ERR_AMBIGUOUS_ARGUMENT",'The "%s" argument is ambiguous. %s',TypeError);eE("ERR_INVALID_ARG_TYPE",function(e,t,r){d5===void 0&&(d5=tE()),d5(typeof e=="string","'name' must be a string");var n;typeof t=="string"&&oSt(t,"not ")?(n="must not be",t=t.replace(/^not /,"")):n="must be";var i;if(sSt(e," argument"))i="The ".concat(e," ").concat(n," ").concat(RAe(t,"type"));else{var a=lSt(e,".")?"property":"argument";i='The "'.concat(e,'" ').concat(a," ").concat(n," ").concat(RAe(t,"type"))}return i+=". Received type ".concat(O_(r)),i},TypeError);eE("ERR_INVALID_ARG_VALUE",function(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"is invalid";Sj===void 0&&(Sj=h5());var n=Sj.inspect(t);return n.length>128&&(n="".concat(n.slice(0,128),"...")),"The argument '".concat(e,"' ").concat(r,". Received ").concat(n)},TypeError,RangeError);eE("ERR_INVALID_RETURN_VALUE",function(e,t,r){var n;return r&&r.constructor&&r.constructor.name?n="instance of ".concat(r.constructor.name):n="type ".concat(O_(r)),"Expected ".concat(e,' to be returned from the "').concat(t,'"')+" function but got ".concat(n,".")},TypeError);eE("ERR_MISSING_ARGS",function(){for(var e=arguments.length,t=new Array(e),r=0;r0,"At least one arg needs to be specified");var n="The ",i=t.length;switch(t=t.map(function(a){return'"'.concat(a,'"')}),i){case 1:n+="".concat(t[0]," argument");break;case 2:n+="".concat(t[0]," and ").concat(t[1]," arguments");break;default:n+=t.slice(0,i-1).join(", "),n+=", and ".concat(t[i-1]," arguments");break}return"".concat(n," must be specified")},TypeError);zAe.exports.codes=DAe});var jAe=ye((scr,GAe)=>{"use strict";function FAe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function qAe(e){for(var t=1;te.length)&&(r=e.length),e.substring(r-t.length,r)===t}function _St(e,t){if(t=Math.floor(t),e.length==0||t==0)return"";var r=e.length*t;for(t=Math.floor(Math.log(t)/Math.log(2));t;)e+=e,t--;return e+=e.substring(0,r-e.length),e}var Gg="",rE="",iE="",xv="",w2={deepStrictEqual:"Expected values to be strictly deep-equal:",strictEqual:"Expected values to be strictly equal:",strictEqualObject:'Expected "actual" to be reference-equal to "expected":',deepEqual:"Expected values to be loosely deep-equal:",equal:"Expected values to be loosely equal:",notDeepStrictEqual:'Expected "actual" not to be strictly deep-equal to:',notStrictEqual:'Expected "actual" to be strictly unequal to:',notStrictEqualObject:'Expected "actual" not to be reference-equal to "expected":',notDeepEqual:'Expected "actual" not to be loosely deep-equal to:',notEqual:'Expected "actual" to be loosely unequal to:',notIdentical:"Values identical but not reference-equal:"},xSt=10;function NAe(e){var t=Object.keys(e),r=Object.create(Object.getPrototypeOf(e));return t.forEach(function(n){r[n]=e[n]}),Object.defineProperty(r,"message",{value:e.message}),r}function nE(e){return Lj(e,{compact:!1,customInspect:!1,depth:1e3,maxArrayLength:1/0,showHidden:!1,breakLength:1/0,showProxy:!1,sorted:!0,getters:!0})}function bSt(e,t,r){var n="",i="",a=0,o="",s=!1,l=nE(e),u=l.split(` +`),c=nE(t).split(` +`),f=0,h="";if(r==="strictEqual"&&Dp(e)==="object"&&Dp(t)==="object"&&e!==null&&t!==null&&(r="strictEqualObject"),u.length===1&&c.length===1&&u[0]!==c[0]){var d=u[0].length+c[0].length;if(d<=xSt){if((Dp(e)!=="object"||e===null)&&(Dp(t)!=="object"||t===null)&&(e!==0||t!==0))return"".concat(w2[r],` + +`)+"".concat(u[0]," !== ").concat(c[0],` +`)}else if(r!=="strictEqualObject"){var v=process.stderr&&process.stderr.isTTY?process.stderr.columns:80;if(d2&&(h=` + `.concat(_St(" ",f),"^"),f=0)}}}for(var x=u[u.length-1],b=c[c.length-1];x===b&&(f++<2?o=` + `.concat(x).concat(o):n=x,u.pop(),c.pop(),!(u.length===0||c.length===0));)x=u[u.length-1],b=c[c.length-1];var g=Math.max(u.length,c.length);if(g===0){var E=l.split(` +`);if(E.length>30)for(E[26]="".concat(Gg,"...").concat(xv);E.length>27;)E.pop();return"".concat(w2.notIdentical,` + +`).concat(E.join(` +`),` +`)}f>3&&(o=` +`.concat(Gg,"...").concat(xv).concat(o),s=!0),n!==""&&(o=` + `.concat(n).concat(o),n="");var k=0,A=w2[r]+` +`.concat(rE,"+ actual").concat(xv," ").concat(iE,"- expected").concat(xv),L=" ".concat(Gg,"...").concat(xv," Lines skipped");for(f=0;f1&&f>2&&(_>4?(i+=` +`.concat(Gg,"...").concat(xv),s=!0):_>3&&(i+=` + `.concat(c[f-2]),k++),i+=` + `.concat(c[f-1]),k++),a=f,n+=` +`.concat(iE,"-").concat(xv," ").concat(c[f]),k++;else if(c.length1&&f>2&&(_>4?(i+=` +`.concat(Gg,"...").concat(xv),s=!0):_>3&&(i+=` + `.concat(u[f-2]),k++),i+=` + `.concat(u[f-1]),k++),a=f,i+=` +`.concat(rE,"+").concat(xv," ").concat(u[f]),k++;else{var C=c[f],M=u[f],p=M!==C&&(!BAe(M,",")||M.slice(0,-1)!==C);p&&BAe(C,",")&&C.slice(0,-1)===M&&(p=!1,M+=","),p?(_>1&&f>2&&(_>4?(i+=` +`.concat(Gg,"...").concat(xv),s=!0):_>3&&(i+=` + `.concat(u[f-2]),k++),i+=` + `.concat(u[f-1]),k++),a=f,i+=` +`.concat(rE,"+").concat(xv," ").concat(M),n+=` +`.concat(iE,"-").concat(xv," ").concat(C),k+=2):(i+=n,n="",(_===1||f===0)&&(i+=` + `.concat(M),k++))}if(k>20&&f30)for(d[26]="".concat(Gg,"...").concat(xv);d.length>27;)d.pop();d.length===1?a=r.call(this,"".concat(h," ").concat(d[0])):a=r.call(this,"".concat(h,` + +`).concat(d.join(` +`),` +`))}else{var v=nE(u),x="",b=w2[s];s==="notDeepEqual"||s==="notEqual"?(v="".concat(w2[s],` + +`).concat(v),v.length>1024&&(v="".concat(v.slice(0,1021),"..."))):(x="".concat(nE(c)),v.length>512&&(v="".concat(v.slice(0,509),"...")),x.length>512&&(x="".concat(x.slice(0,509),"...")),s==="deepEqual"||s==="equal"?v="".concat(b,` + +`).concat(v,` + +should equal + +`):x=" ".concat(s," ").concat(x)),a=r.call(this,"".concat(v).concat(x))}return Error.stackTraceLimit=f,a.generatedMessage=!o,Object.defineProperty(kj(a),"name",{value:"AssertionError [ERR_ASSERTION]",enumerable:!1,writable:!0,configurable:!0}),a.code="ERR_ASSERTION",a.actual=u,a.expected=c,a.operator=s,Error.captureStackTrace&&Error.captureStackTrace(kj(a),l),a.stack,a.name="AssertionError",VAe(a)}return fSt(n,[{key:"toString",value:function(){return"".concat(this.name," [").concat(this.code,"]: ").concat(this.message)}},{key:t,value:function(a,o){return Lj(this,qAe(qAe({},o),{},{customInspect:!1,depth:0}))}}]),n}(Cj(Error),Lj.custom);GAe.exports=wSt});var Pj=ye((lcr,ZAe)=>{"use strict";var WAe=Object.prototype.toString;ZAe.exports=function(t){var r=WAe.call(t),n=r==="[object Arguments]";return n||(n=r!=="[object Array]"&&t!==null&&typeof t=="object"&&typeof t.length=="number"&&t.length>=0&&WAe.call(t.callee)==="[object Function]"),n}});var rSe=ye((ucr,tSe)=>{"use strict";var eSe;Object.keys||(sE=Object.prototype.hasOwnProperty,Ij=Object.prototype.toString,XAe=Pj(),Rj=Object.prototype.propertyIsEnumerable,YAe=!Rj.call({toString:null},"toString"),KAe=Rj.call(function(){},"prototype"),lE=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],FR=function(e){var t=e.constructor;return t&&t.prototype===e},JAe={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},$Ae=function(){if(typeof window=="undefined")return!1;for(var e in window)try{if(!JAe["$"+e]&&sE.call(window,e)&&window[e]!==null&&typeof window[e]=="object")try{FR(window[e])}catch(t){return!0}}catch(t){return!0}return!1}(),QAe=function(e){if(typeof window=="undefined"||!$Ae)return FR(e);try{return FR(e)}catch(t){return!1}},eSe=function(t){var r=t!==null&&typeof t=="object",n=Ij.call(t)==="[object Function]",i=XAe(t),a=r&&Ij.call(t)==="[object String]",o=[];if(!r&&!n&&!i)throw new TypeError("Object.keys called on a non-object");var s=KAe&&n;if(a&&t.length>0&&!sE.call(t,0))for(var l=0;l0)for(var u=0;u{"use strict";var TSt=Array.prototype.slice,ASt=Pj(),iSe=Object.keys,qR=iSe?function(t){return iSe(t)}:rSe(),nSe=Object.keys;qR.shim=function(){if(Object.keys){var t=function(){var r=Object.keys(arguments);return r&&r.length===arguments.length}(1,2);t||(Object.keys=function(n){return ASt(n)?nSe(TSt.call(n)):nSe(n)})}else Object.keys=qR;return Object.keys||qR};aSe.exports=qR});var fSe=ye((fcr,cSe)=>{"use strict";var SSt=Dj(),lSe=O8()(),uSe=i5(),oSe=Object,MSt=uSe("Array.prototype.push"),sSe=uSe("Object.prototype.propertyIsEnumerable"),ESt=lSe?Object.getOwnPropertySymbols:null;cSe.exports=function(t,r){if(t==null)throw new TypeError("target must be an object");var n=oSe(t);if(arguments.length===1)return n;for(var i=1;i{"use strict";var zj=fSe(),kSt=function(){if(!Object.assign)return!1;for(var e="abcdefghijklmnopqrst",t=e.split(""),r={},n=0;n{"use strict";var vSe=function(e){return e!==e};pSe.exports=function(t,r){return t===0&&r===0?1/t===1/r:!!(t===r||vSe(t)&&vSe(r))}});var OR=ye((vcr,gSe)=>{"use strict";var LSt=Fj();gSe.exports=function(){return typeof Object.is=="function"?Object.is:LSt}});var uE=ye((pcr,xSe)=>{"use strict";var PSt=Dj(),ISt=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",RSt=Object.prototype.toString,DSt=Array.prototype.concat,mSe=Object.defineProperty,zSt=function(e){return typeof e=="function"&&RSt.call(e)==="[object Function]"},FSt=yG()(),ySe=mSe&&FSt,qSt=function(e,t,r,n){if(t in e){if(n===!0){if(e[t]===r)return}else if(!zSt(n)||!n())return}ySe?mSe(e,t,{configurable:!0,enumerable:!1,value:r,writable:!0}):e[t]=r},_Se=function(e,t){var r=arguments.length>2?arguments[2]:{},n=PSt(t);ISt&&(n=DSt.call(n,Object.getOwnPropertySymbols(t)));for(var i=0;i{"use strict";var OSt=OR(),BSt=uE();bSe.exports=function(){var t=OSt();return BSt(Object,{is:t},{is:function(){return Object.is!==t}}),t}});var MSe=ye((mcr,SSe)=>{"use strict";var NSt=uE(),USt=N4(),VSt=Fj(),TSe=OR(),HSt=wSe(),ASe=USt(TSe(),Object);NSt(ASe,{getPolyfill:TSe,implementation:VSt,shim:HSt});SSe.exports=ASe});var qj=ye((ycr,ESe)=>{"use strict";ESe.exports=function(t){return t!==t}});var Oj=ye((_cr,kSe)=>{"use strict";var GSt=qj();kSe.exports=function(){return Number.isNaN&&Number.isNaN(NaN)&&!Number.isNaN("a")?Number.isNaN:GSt}});var LSe=ye((xcr,CSe)=>{"use strict";var jSt=uE(),WSt=Oj();CSe.exports=function(){var t=WSt();return jSt(Number,{isNaN:t},{isNaN:function(){return Number.isNaN!==t}}),t}});var DSe=ye((bcr,RSe)=>{"use strict";var ZSt=N4(),XSt=uE(),YSt=qj(),PSe=Oj(),KSt=LSe(),ISe=ZSt(PSe(),Number);XSt(ISe,{getPolyfill:PSe,implementation:YSt,shim:KSt});RSe.exports=ISe});var eMe=ye((wcr,QSe)=>{"use strict";function zSe(e,t){return eMt(e)||QSt(e,t)||$St(e,t)||JSt()}function JSt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $St(e,t){if(e){if(typeof e=="string")return FSe(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return FSe(e,t)}}function FSe(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r10)return!0;for(var t=0;t57)return!0}return e.length===10&&e>=Math.pow(2,32)}function UR(e){return Object.keys(e).filter(uMt).concat(HR(e).filter(Object.prototype.propertyIsEnumerable.bind(e)))}function YSe(e,t){if(e===t)return 0;for(var r=e.length,n=t.length,i=0,a=Math.min(r,n);i{"use strict";function jg(e){"@babel/helpers - typeof";return jg=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},jg(e)}function tMe(e,t){for(var r=0;r1?r-1:0),i=1;i1?r-1:0),i=1;i1?r-1:0),i=1;i1?r-1:0),i=1;i{var vE=1e3,pE=vE*60,gE=pE*60,mE=gE*24,zMt=mE*365.25;_Me.exports=function(e,t){t=t||{};var r=typeof e;if(r==="string"&&e.length>0)return FMt(e);if(r==="number"&&isNaN(e)===!1)return t.long?OMt(e):qMt(e);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function FMt(e){if(e=String(e),!(e.length>100)){var t=/^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(e);if(t){var r=parseFloat(t[1]),n=(t[2]||"ms").toLowerCase();switch(n){case"years":case"year":case"yrs":case"yr":case"y":return r*zMt;case"days":case"day":case"d":return r*mE;case"hours":case"hour":case"hrs":case"hr":case"h":return r*gE;case"minutes":case"minute":case"mins":case"min":case"m":return r*pE;case"seconds":case"second":case"secs":case"sec":case"s":return r*vE;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return r;default:return}}}}function qMt(e){return e>=mE?Math.round(e/mE)+"d":e>=gE?Math.round(e/gE)+"h":e>=pE?Math.round(e/pE)+"m":e>=vE?Math.round(e/vE)+"s":e+"ms"}function OMt(e){return JR(e,mE,"day")||JR(e,gE,"hour")||JR(e,pE,"minute")||JR(e,vE,"second")||e+" ms"}function JR(e,t,r){if(!(e{$u=bMe.exports=jj.debug=jj.default=jj;$u.coerce=HMt;$u.disable=UMt;$u.enable=NMt;$u.enabled=VMt;$u.humanize=xMe();$u.names=[];$u.skips=[];$u.formatters={};var Gj;function BMt(e){var t=0,r;for(r in e)t=(t<<5)-t+e.charCodeAt(r),t|=0;return $u.colors[Math.abs(t)%$u.colors.length]}function jj(e){function t(){if(t.enabled){var r=t,n=+new Date,i=n-(Gj||n);r.diff=i,r.prev=Gj,r.curr=n,Gj=n;for(var a=new Array(arguments.length),o=0;o{lp=AMe.exports=wMe();lp.log=WMt;lp.formatArgs=jMt;lp.save=ZMt;lp.load=TMe;lp.useColors=GMt;lp.storage=typeof chrome!="undefined"&&typeof chrome.storage!="undefined"?chrome.storage.local:XMt();lp.colors=["lightseagreen","forestgreen","goldenrod","dodgerblue","darkorchid","crimson"];function GMt(){return typeof window!="undefined"&&window.process&&window.process.type==="renderer"?!0:typeof document!="undefined"&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||typeof window!="undefined"&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||typeof navigator!="undefined"&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)}lp.formatters.j=function(e){try{return JSON.stringify(e)}catch(t){return"[UnexpectedJSONParseError]: "+t.message}};function jMt(e){var t=this.useColors;if(e[0]=(t?"%c":"")+this.namespace+(t?" %c":" ")+e[0]+(t?"%c ":" ")+"+"+lp.humanize(this.diff),!!t){var r="color: "+this.color;e.splice(1,0,r,"color: inherit");var n=0,i=0;e[0].replace(/%[a-zA-Z%]/g,function(a){a!=="%%"&&(n++,a==="%c"&&(i=n))}),e.splice(i,0,r)}}function WMt(){return typeof console=="object"&&console.log&&Function.prototype.apply.call(console.log,console,arguments)}function ZMt(e){try{e==null?lp.storage.removeItem("debug"):lp.storage.debug=e}catch(t){}}function TMe(){var e;try{e=lp.storage.debug}catch(t){}return!e&&typeof process!="undefined"&&"env"in process&&(e=process.env.DEBUG),e}lp.enable(TMe());function XMt(){try{return window.localStorage}catch(e){}}});var RMe=ye((Scr,IMe)=>{var p5=tE(),V_=SMe()("stream-parser");IMe.exports=KMt;var EMe=-1,$R=0,YMt=1,kMe=2;function KMt(e){var t=e&&typeof e._transform=="function",r=e&&typeof e._write=="function";if(!t&&!r)throw new Error("must pass a Writable or Transform stream in");V_("extending Parser into stream"),e._bytes=JMt,e._skipBytes=$Mt,t&&(e._passthrough=QMt),t?e._transform=t4t:e._write=e4t}function yE(e){V_("initializing parser stream"),e._parserBytesLeft=0,e._parserBuffers=[],e._parserBuffered=0,e._parserState=EMe,e._parserCallback=null,typeof e.push=="function"&&(e._parserOutput=e.push.bind(e)),e._parserInit=!0}function JMt(e,t){p5(!this._parserCallback,'there is already a "callback" set!'),p5(isFinite(e)&&e>0,'can only buffer a finite number of bytes > 0, got "'+e+'"'),this._parserInit||yE(this),V_("buffering %o bytes",e),this._parserBytesLeft=e,this._parserCallback=t,this._parserState=$R}function $Mt(e,t){p5(!this._parserCallback,'there is already a "callback" set!'),p5(e>0,'can only skip > 0 bytes, got "'+e+'"'),this._parserInit||yE(this),V_("skipping %o bytes",e),this._parserBytesLeft=e,this._parserCallback=t,this._parserState=YMt}function QMt(e,t){p5(!this._parserCallback,'There is already a "callback" set!'),p5(e>0,'can only pass through > 0 bytes, got "'+e+'"'),this._parserInit||yE(this),V_("passing through %o bytes",e),this._parserBytesLeft=e,this._parserCallback=t,this._parserState=kMe}function e4t(e,t,r){this._parserInit||yE(this),V_("write(%o bytes)",e.length),typeof t=="function"&&(r=t),LMe(this,e,null,r)}function t4t(e,t,r){this._parserInit||yE(this),V_("transform(%o bytes)",e.length),typeof t!="function"&&(t=this._parserOutput),LMe(this,e,t,r)}function CMe(e,t,r,n){return e._parserBytesLeft<=0?n(new Error("got data but not currently parsing anything")):t.length<=e._parserBytesLeft?function(){return MMe(e,t,r,n)}:function(){var i=t.slice(0,e._parserBytesLeft);return MMe(e,i,r,function(a){if(a)return n(a);if(t.length>i.length)return function(){return CMe(e,t.slice(i.length),r,n)}})}}function MMe(e,t,r,n){if(e._parserBytesLeft-=t.length,V_("%o bytes left for stream piece",e._parserBytesLeft),e._parserState===$R?(e._parserBuffers.push(t),e._parserBuffered+=t.length):e._parserState===kMe&&r(t),e._parserBytesLeft===0){var i=e._parserCallback;if(i&&e._parserState===$R&&e._parserBuffers.length>1&&(t=Buffer.concat(e._parserBuffers,e._parserBuffered)),e._parserState!==$R&&(t=null),e._parserCallback=null,e._parserBuffered=0,e._parserState=EMe,e._parserBuffers.splice(0),i){var a=[];t&&a.push(t),r&&a.push(r);var o=i.length>a.length;o&&a.push(PMe(n));var s=i.apply(e,a);if(!o||n===s)return n}}else return n}var LMe=PMe(CMe);function PMe(e){return function(){for(var t=e.apply(this,arguments);typeof t=="function";)t=t();return t}}});var Eu=ye(Gy=>{"use strict";var DMe=MAe().Transform,r4t=RMe();function _E(){DMe.call(this,{readableObjectMode:!0})}_E.prototype=Object.create(DMe.prototype);_E.prototype.constructor=_E;r4t(_E.prototype);Gy.ParserStream=_E;Gy.sliceEq=function(e,t,r){for(var n=t,i=0;i{"use strict";var g5=Eu().readUInt16BE,Zj=Eu().readUInt32BE;function xE(e,t){if(e.length<4+t)return null;var r=Zj(e,t);return e.length>4&15,n=e[4]&15,i=e[5]>>4&15,a=g5(e,6),o=8,s=0;sa.width||i.width===a.width&&i.height>a.height?i:a}),r=e.reduce(function(i,a){return i.height>a.height||i.height===a.height&&i.width>a.width?i:a}),n;return t.width>r.height||t.width===r.height&&t.height>r.width?n=t:n=r,n}eD.exports.readSizeFromMeta=function(e){var t={sizes:[],transforms:[],item_inf:{},item_loc:{}};if(s4t(e,t),!!t.sizes.length){var r=l4t(t.sizes),n=1;t.transforms.forEach(function(a){var o={1:6,2:5,3:8,4:7,5:4,6:3,7:2,8:1},s={1:4,2:3,3:2,4:1,5:6,6:5,7:8,8:7};if(a.type==="imir"&&(a.value===0?n=s[n]:(n=s[n],n=o[n],n=o[n])),a.type==="irot")for(var l=0;l{"use strict";function tD(e,t){var r=new Error(e);return r.code=t,r}function u4t(e){try{return decodeURIComponent(escape(e))}catch(t){return e}}function jy(e,t,r){this.input=e.subarray(t,r),this.start=t;var n=String.fromCharCode.apply(null,this.input.subarray(0,4));if(n!=="II*\0"&&n!=="MM\0*")throw tD("invalid TIFF signature","EBADDATA");this.big_endian=n[0]==="M"}jy.prototype.each=function(e){this.aborted=!1;var t=this.read_uint32(4);for(this.ifds_to_read=[{id:0,offset:t}];this.ifds_to_read.length>0&&!this.aborted;){var r=this.ifds_to_read.shift();r.offset&&this.scan_ifd(r.id,r.offset,e)}};jy.prototype.read_uint16=function(e){var t=this.input;if(e+2>t.length)throw tD("unexpected EOF","EBADDATA");return this.big_endian?t[e]*256+t[e+1]:t[e]+t[e+1]*256};jy.prototype.read_uint32=function(e){var t=this.input;if(e+4>t.length)throw tD("unexpected EOF","EBADDATA");return this.big_endian?t[e]*16777216+t[e+1]*65536+t[e+2]*256+t[e+3]:t[e]+t[e+1]*256+t[e+2]*65536+t[e+3]*16777216};jy.prototype.is_subifd_link=function(e,t){return e===0&&t===34665||e===0&&t===34853||e===34665&&t===40965};jy.prototype.exif_format_length=function(e){switch(e){case 1:case 2:case 6:case 7:return 1;case 3:case 8:return 2;case 4:case 9:case 11:return 4;case 5:case 10:case 12:return 8;default:return 0}};jy.prototype.exif_format_read=function(e,t){var r;switch(e){case 1:case 2:return r=this.input[t],r;case 6:return r=this.input[t],r|(r&128)*33554430;case 3:return r=this.read_uint16(t),r;case 8:return r=this.read_uint16(t),r|(r&32768)*131070;case 4:return r=this.read_uint32(t),r;case 9:return r=this.read_uint32(t),r|0;case 5:case 10:case 11:case 12:return null;case 7:return null;default:return null}};jy.prototype.scan_ifd=function(e,t,r){var n=this.read_uint16(t);t+=2;for(var i=0;ithis.input.length)throw tD("unexpected EOF","EBADDATA");for(var h=[],d=c,v=0;v0&&(this.ifds_to_read.push({id:a,offset:h[0]}),f=!0);var b={is_big_endian:this.big_endian,ifd:e,tag:a,format:o,count:s,entry_offset:t+this.start,data_length:u,data_offset:c+this.start,value:h,is_subifd_link:f};if(r(b)===!1){this.aborted=!0;return}t+=12}e===0&&this.ifds_to_read.push({id:1,offset:this.read_uint32(t)})};Xj.exports.ExifParser=jy;Xj.exports.get_orientation=function(e){var t=0;try{return new jy(e,0,e.length).each(function(r){if(r.ifd===0&&r.tag===274&&Array.isArray(r.value))return t=r.value[0],!1}),t}catch(r){return-1}}});var qMe=ye((Ccr,FMe)=>{"use strict";var c4t=Eu().str2arr,f4t=Eu().sliceEq,h4t=Eu().readUInt32BE,iD=zMe(),d4t=rD(),v4t=c4t("ftyp");FMe.exports=function(e){if(f4t(e,4,v4t)){var t=iD.unbox(e,0);if(t){var r=iD.getMimeType(t.data);if(r){for(var n,i=t.end;;){var a=iD.unbox(e,i);if(!a)break;if(i=a.end,a.boxtype==="mdat")return;if(a.boxtype==="meta"){n=a.data;break}}if(n){var o=iD.readSizeFromMeta(n);if(o){var s={width:o.width,height:o.height,type:r.type,mime:r.mime,wUnits:"px",hUnits:"px"};if(o.variants.length>1&&(s.variants=o.variants),o.orientation&&(s.orientation=o.orientation),o.exif_location&&o.exif_location.offset+o.exif_location.length<=e.length){var l=h4t(e,o.exif_location.offset),u=e.slice(o.exif_location.offset+l+4,o.exif_location.offset+o.exif_location.length),c=d4t.get_orientation(u);c>0&&(s.orientation=c)}return s}}}}}}});var NMe=ye((Lcr,BMe)=>{"use strict";var p4t=Eu().str2arr,g4t=Eu().sliceEq,OMe=Eu().readUInt16LE,m4t=p4t("BM");BMe.exports=function(e){if(!(e.length<26)&&g4t(e,0,m4t))return{width:OMe(e,18),height:OMe(e,22),type:"bmp",mime:"image/bmp",wUnits:"px",hUnits:"px"}}});var jMe=ye((Pcr,GMe)=>{"use strict";var HMe=Eu().str2arr,UMe=Eu().sliceEq,VMe=Eu().readUInt16LE,y4t=HMe("GIF87a"),_4t=HMe("GIF89a");GMe.exports=function(e){if(!(e.length<10)&&!(!UMe(e,0,y4t)&&!UMe(e,0,_4t)))return{width:VMe(e,6),height:VMe(e,8),type:"gif",mime:"image/gif",wUnits:"px",hUnits:"px"}}});var XMe=ye((Icr,ZMe)=>{"use strict";var Yj=Eu().readUInt16LE,x4t=0,b4t=1,WMe=16;ZMe.exports=function(e){var t=Yj(e,0),r=Yj(e,2),n=Yj(e,4);if(!(t!==x4t||r!==b4t||!n)){for(var i=[],a={width:0,height:0},o=0;oa.width||l>a.height)&&(a=u)}return{width:a.width,height:a.height,variants:i,type:"ico",mime:"image/x-icon",wUnits:"px",hUnits:"px"}}}});var KMe=ye((Rcr,YMe)=>{"use strict";var Kj=Eu().readUInt16BE,w4t=Eu().str2arr,T4t=Eu().sliceEq,A4t=rD(),S4t=w4t("Exif\0\0");YMe.exports=function(e){if(!(e.length<2)&&!(e[0]!==255||e[1]!==216||e[2]!==255))for(var t=2;;){for(;;){if(e.length-t<2)return;if(e[t++]===255)break}for(var r=e[t++],n;r===255;)r=e[t++];if(208<=r&&r<=217||r===1)n=0;else if(192<=r&&r<=254){if(e.length-t<2)return;n=Kj(e,t)-2,t+=2}else return;if(r===217||r===218)return;var i;if(r===225&&n>=10&&T4t(e,t,S4t)&&(i=A4t.get_orientation(e.slice(t+6,t+n))),n>=5&&192<=r&&r<=207&&r!==196&&r!==200&&r!==204){if(e.length-t0&&(a.orientation=i),a}t+=n}}});var t4e=ye((Dcr,e4e)=>{"use strict";var QMe=Eu().str2arr,JMe=Eu().sliceEq,$Me=Eu().readUInt32BE,M4t=QMe(`\x89PNG\r + +`),E4t=QMe("IHDR");e4e.exports=function(e){if(!(e.length<24)&&JMe(e,0,M4t)&&JMe(e,12,E4t))return{width:$Me(e,16),height:$Me(e,20),type:"png",mime:"image/png",wUnits:"px",hUnits:"px"}}});var n4e=ye((zcr,i4e)=>{"use strict";var k4t=Eu().str2arr,C4t=Eu().sliceEq,r4e=Eu().readUInt32BE,L4t=k4t("8BPS\0");i4e.exports=function(e){if(!(e.length<22)&&C4t(e,0,L4t))return{width:r4e(e,18),height:r4e(e,14),type:"psd",mime:"image/vnd.adobe.photoshop",wUnits:"px",hUnits:"px"}}});var s4e=ye((Fcr,o4e)=>{"use strict";function P4t(e){return e===32||e===9||e===13||e===10}function m5(e){return typeof e=="number"&&isFinite(e)&&e>0}function I4t(e){var t=0,r=e.length;for(e[0]===239&&e[1]===187&&e[2]===191&&(t=3);t]*>/,D4t=/^<([-_.:a-zA-Z0-9]+:)?svg\s/,z4t=/[^-]\bwidth="([^%]+?)"|[^-]\bwidth='([^%]+?)'/,F4t=/\bheight="([^%]+?)"|\bheight='([^%]+?)'/,q4t=/\bview[bB]ox="(.+?)"|\bview[bB]ox='(.+?)'/,a4e=/in$|mm$|cm$|pt$|pc$|px$|em$|ex$/;function O4t(e){var t=e.match(z4t),r=e.match(F4t),n=e.match(q4t);return{width:t&&(t[1]||t[2]),height:r&&(r[1]||r[2]),viewbox:n&&(n[1]||n[2])}}function Nm(e){return a4e.test(e)?e.match(a4e)[0]:"px"}o4e.exports=function(e){if(I4t(e)){for(var t="",r=0;r{"use strict";var c4e=Eu().str2arr,l4e=Eu().sliceEq,B4t=Eu().readUInt16LE,N4t=Eu().readUInt16BE,U4t=Eu().readUInt32LE,V4t=Eu().readUInt32BE,H4t=c4e("II*\0"),G4t=c4e("MM\0*");function nD(e,t,r){return r?N4t(e,t):B4t(e,t)}function Jj(e,t,r){return r?V4t(e,t):U4t(e,t)}function u4e(e,t,r){var n=nD(e,t+2,r),i=Jj(e,t+4,r);return i!==1||n!==3&&n!==4?null:n===3?nD(e,t+8,r):Jj(e,t+8,r)}f4e.exports=function(e){if(!(e.length<8)&&!(!l4e(e,0,H4t)&&!l4e(e,0,G4t))){var t=e[0]===77,r=Jj(e,4,t)-8;if(!(r<0)){var n=r+8;if(!(e.length-n<2)){var i=nD(e,n+0,t)*12;if(!(i<=0)&&(n+=2,!(e.length-n{"use strict";var p4e=Eu().str2arr,d4e=Eu().sliceEq,v4e=Eu().readUInt16LE,$j=Eu().readUInt32LE,j4t=rD(),W4t=p4e("RIFF"),Z4t=p4e("WEBP");function X4t(e,t){if(!(e[t+3]!==157||e[t+4]!==1||e[t+5]!==42))return{width:v4e(e,t+6)&16383,height:v4e(e,t+8)&16383,type:"webp",mime:"image/webp",wUnits:"px",hUnits:"px"}}function Y4t(e,t){if(e[t]===47){var r=$j(e,t+1);return{width:(r&16383)+1,height:(r>>14&16383)+1,type:"webp",mime:"image/webp",wUnits:"px",hUnits:"px"}}}function K4t(e,t){return{width:(e[t+6]<<16|e[t+5]<<8|e[t+4])+1,height:(e[t+9]<e.length)){for(;t+8=10?r=r||X4t(e,t+8):a==="VP8L"&&o>=9?r=r||Y4t(e,t+8):a==="VP8X"&&o>=10?r=r||K4t(e,t+8):a==="EXIF"&&(n=j4t.get_orientation(e.slice(t+8,t+8+o)),t=1/0),t+=8+o}if(r)return n>0&&(r.orientation=n),r}}}});var _4e=ye((Bcr,y4e)=>{"use strict";y4e.exports={avif:qMe(),bmp:NMe(),gif:jMe(),ico:XMe(),jpeg:KMe(),png:t4e(),psd:n4e(),svg:s4e(),tiff:h4e(),webp:m4e()}});var x4e=ye((Ncr,eW)=>{"use strict";var Qj=_4e();function J4t(e){for(var t=Object.keys(Qj),r=0;r{"use strict";var $4t=x4e(),Q4t=Ly().IMAGE_URL_PREFIX,eEt=u2().Buffer;b4e.getImageSize=function(e){var t=e.replace(Q4t,""),r=new eEt(t,"base64");return $4t(r)}});var S4e=ye((Vcr,A4e)=>{"use strict";var T4e=Mr(),tEt=jT(),rEt=uo(),aD=Qa(),iEt=Mr().maxRowLength,nEt=w4e().getImageSize;A4e.exports=function(t,r){var n,i;if(r._hasZ)n=r.z.length,i=iEt(r.z);else if(r._hasSource){var a=nEt(r.source);n=a.height,i=a.width}var o=aD.getFromId(t,r.xaxis||"x"),s=aD.getFromId(t,r.yaxis||"y"),l=o.d2c(r.x0)-r.dx/2,u=s.d2c(r.y0)-r.dy/2,c,f=[l,l+i*r.dx],h=[u,u+n*r.dy];if(o&&o.type==="log")for(c=0;c{"use strict";var lEt=xa(),T2=Mr(),M4e=T2.strTranslate,uEt=Zp(),cEt=jT(),fEt=jV(),hEt=a8().STYLE;E4e.exports=function(t,r,n,i){var a=r.xaxis,o=r.yaxis,s=!t._context._exportedPlot&&fEt();T2.makeTraceGroups(i,n,"im").each(function(l){var u=lEt.select(this),c=l[0],f=c.trace,h=(f.zsmooth==="fast"||f.zsmooth===!1&&s)&&!f._hasZ&&f._hasSource&&a.type==="linear"&&o.type==="linear";f._realImage=h;var d=c.z,v=c.x0,x=c.y0,b=c.w,g=c.h,E=f.dx,k=f.dy,A,L,_,C,M,p;for(p=0;A===void 0&&p0;)L=a.c2p(v+p*E),p--;for(p=0;C===void 0&&p0;)M=o.c2p(x+p*k),p--;if(LW[0];if(re||ae){var _e=A+T/2,Me=C+F/2;G+="transform:"+M4e(_e+"px",Me+"px")+"scale("+(re?-1:1)+","+(ae?-1:1)+")"+M4e(-_e+"px",-Me+"px")+";"}}X.attr("style",G);var ke=new Promise(function(ge){if(f._hasZ)ge();else if(f._hasSource)if(f._canvas&&f._canvas.el.width===b&&f._canvas.el.height===g&&f._canvas.source===f.source)ge();else{var ie=document.createElement("canvas");ie.width=b,ie.height=g;var Te=ie.getContext("2d",{willReadFrequently:!0});f._image=f._image||new Image;var Ee=f._image;Ee.onload=function(){Te.drawImage(Ee,0,0),f._canvas={el:ie,source:f.source},ge()},Ee.setAttribute("src",f.source)}}).then(function(){var ge,ie;if(f._hasZ)ie=H(function(Ae,ze){var Ce=d[ze][Ae];return T2.isTypedArray(Ce)&&(Ce=Array.from(Ce)),Ce}),ge=ie.toDataURL("image/png");else if(f._hasSource)if(h)ge=f.source;else{var Te=f._canvas.el.getContext("2d",{willReadFrequently:!0}),Ee=Te.getImageData(0,0,b,g).data;ie=H(function(Ae,ze){var Ce=4*(ze*b+Ae);return[Ee[Ce],Ee[Ce+1],Ee[Ce+2],Ee[Ce+3]]}),ge=ie.toDataURL("image/png")}X.attr({"xlink:href":ge,height:F,width:T,x:A,y:C})});t._promises.push(ke)})}});var L4e=ye((Gcr,C4e)=>{"use strict";var dEt=xa();C4e.exports=function(t){dEt.select(t).selectAll(".im image").style("opacity",function(r){return r[0].trace.opacity})}});var D4e=ye((jcr,R4e)=>{"use strict";var P4e=Nc(),I4e=Mr(),oD=I4e.isArrayOrTypedArray,vEt=jT();R4e.exports=function(t,r,n){var i=t.cd[0],a=i.trace,o=t.xa,s=t.ya;if(!(P4e.inbox(r-i.x0,r-(i.x0+i.w*a.dx),0)>0||P4e.inbox(n-i.y0,n-(i.y0+i.h*a.dy),0)>0)){var l=Math.floor((r-i.x0)/a.dx),u=Math.floor(Math.abs(n-i.y0)/a.dy),c;if(a._hasZ?c=i.z[u][l]:a._hasSource&&(c=a._canvas.el.getContext("2d",{willReadFrequently:!0}).getImageData(l,u,1,1).data),!!c){var f=i.hi||a.hoverinfo,h;if(f){var d=f.split("+");d.indexOf("all")!==-1&&(d=["color"]),d.indexOf("color")!==-1&&(h=!0)}var v=vEt.colormodel[a.colormodel],x=v.colormodel||a.colormodel,b=x.length,g=a._scaler(c),E=v.suffix,k=[];(a.hovertemplate||h)&&(k.push("["+[g[0]+E[0],g[1]+E[1],g[2]+E[2]].join(", ")),b===4&&k.push(", "+g[3]+E[3]),k.push("]"),k=k.join(""),t.extraText=x.toUpperCase()+": "+k);var A;oD(a.hovertext)&&oD(a.hovertext[u])?A=a.hovertext[u][l]:oD(a.text)&&oD(a.text[u])&&(A=a.text[u][l]);var L=s.c2p(i.y0+(u+.5)*a.dy),_=i.x0+(l+.5)*a.dx,C=i.y0+(u+.5)*a.dy,M="["+c.slice(0,a.colormodel.length).join(", ")+"]";return[I4e.extendFlat(t,{index:[u,l],x0:o.c2p(i.x0+l*a.dx),x1:o.c2p(i.x0+(l+1)*a.dx),y0:L,y1:L,color:g,xVal:_,xLabelVal:_,yVal:C,yLabelVal:C,zLabelVal:M,text:A,hovertemplateLabels:{zLabel:M,colorLabel:k,"color[0]Label":g[0]+E[0],"color[1]Label":g[1]+E[1],"color[2]Label":g[2]+E[2],"color[3]Label":g[3]+E[3]}})]}}}});var F4e=ye((Wcr,z4e)=>{"use strict";z4e.exports=function(t,r){return"xVal"in r&&(t.x=r.xVal),"yVal"in r&&(t.y=r.yVal),r.xa&&(t.xaxis=r.xa),r.ya&&(t.yaxis=r.ya),t.color=r.color,t.colormodel=r.trace.colormodel,t.z||(t.z=r.color),t}});var O4e=ye((Zcr,q4e)=>{"use strict";q4e.exports={attributes:tG(),supplyDefaults:y3e(),calc:S4e(),plot:k4e(),style:L4e(),hoverPoints:D4e(),eventData:F4e(),moduleType:"trace",name:"image",basePlotModule:Jf(),categories:["cartesian","svg","2dMap","noSortingByValue"],animatable:!1,meta:{}}});var N4e=ye((Xcr,B4e)=>{"use strict";B4e.exports=O4e()});var A2=ye((Ycr,U4e)=>{"use strict";var pEt=vl(),gEt=Ju().attributes,mEt=Su(),yEt=dh(),_Et=Wo().hovertemplateAttrs,xEt=Wo().texttemplateAttrs,bE=no().extendFlat,bEt=Ed().pattern,sD=mEt({editType:"plot",arrayOk:!0,colorEditType:"plot"});U4e.exports={labels:{valType:"data_array",editType:"calc"},label0:{valType:"number",dflt:0,editType:"calc"},dlabel:{valType:"number",dflt:1,editType:"calc"},values:{valType:"data_array",editType:"calc"},marker:{colors:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:yEt.defaultLine,arrayOk:!0,editType:"style"},width:{valType:"number",min:0,dflt:0,arrayOk:!0,editType:"style"},editType:"calc"},pattern:bEt,editType:"calc"},text:{valType:"data_array",editType:"plot"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"style"},scalegroup:{valType:"string",dflt:"",editType:"calc"},textinfo:{valType:"flaglist",flags:["label","text","value","percent"],extras:["none"],editType:"calc"},hoverinfo:bE({},pEt.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:_Et({},{keys:["label","color","value","percent","text"]}),texttemplate:xEt({editType:"plot"},{keys:["label","color","value","percent","text"]}),textposition:{valType:"enumerated",values:["inside","outside","auto","none"],dflt:"auto",arrayOk:!0,editType:"plot"},textfont:bE({},sD,{}),insidetextorientation:{valType:"enumerated",values:["horizontal","radial","tangential","auto"],dflt:"auto",editType:"plot"},insidetextfont:bE({},sD,{}),outsidetextfont:bE({},sD,{}),automargin:{valType:"boolean",dflt:!1,editType:"plot"},title:{text:{valType:"string",dflt:"",editType:"plot"},font:bE({},sD,{}),position:{valType:"enumerated",values:["top left","top center","top right","middle center","bottom left","bottom center","bottom right"],editType:"plot"},editType:"plot"},domain:gEt({name:"pie",trace:!0,editType:"calc"}),hole:{valType:"number",min:0,max:1,dflt:0,editType:"calc"},sort:{valType:"boolean",dflt:!0,editType:"calc"},direction:{valType:"enumerated",values:["clockwise","counterclockwise"],dflt:"counterclockwise",editType:"calc"},rotation:{valType:"angle",dflt:0,editType:"calc"},pull:{valType:"number",min:0,max:1,dflt:0,arrayOk:!0,editType:"calc"}}});var S2=ye((Kcr,G4e)=>{"use strict";var wEt=uo(),wE=Mr(),TEt=A2(),AEt=Ju().defaults,SEt=r0().handleText,MEt=Mr().coercePattern;function V4e(e,t){var r=wE.isArrayOrTypedArray(e),n=wE.isArrayOrTypedArray(t),i=Math.min(r?e.length:1/0,n?t.length:1/0);if(isFinite(i)||(i=0),i&&n){for(var a,o=0;o0){a=!0;break}}a||(i=0)}return{hasLabels:r,hasValues:n,len:i}}function H4e(e,t,r,n,i){var a=n("marker.line.width");a&&n("marker.line.color",i?void 0:r.paper_bgcolor);var o=n("marker.colors");MEt(n,"marker.pattern",o),e.marker&&!t.marker.pattern.fgcolor&&(t.marker.pattern.fgcolor=e.marker.colors),t.marker.pattern.bgcolor||(t.marker.pattern.bgcolor=r.paper_bgcolor)}function EEt(e,t,r,n){function i(E,k){return wE.coerce(e,t,TEt,E,k)}var a=i("labels"),o=i("values"),s=V4e(a,o),l=s.len;if(t._hasLabels=s.hasLabels,t._hasValues=s.hasValues,!t._hasLabels&&t._hasValues&&(i("label0"),i("dlabel")),!l){t.visible=!1;return}t._length=l,H4e(e,t,n,i,!0),i("scalegroup");var u=i("text"),c=i("texttemplate"),f;if(c||(f=i("textinfo",wE.isArrayOrTypedArray(u)?"text+percent":"percent")),i("hovertext"),i("hovertemplate"),c||f&&f!=="none"){var h=i("textposition");SEt(e,t,n,i,h,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1});var d=Array.isArray(h)||h==="auto",v=d||h==="outside";v&&i("automargin"),(h==="inside"||h==="auto"||Array.isArray(h))&&i("insidetextorientation")}else f==="none"&&i("textposition","none");AEt(t,n,i);var x=i("hole"),b=i("title.text");if(b){var g=i("title.position",x?"middle center":"top center");!x&&g==="middle center"&&(t.title.position="top center"),wE.coerceFont(i,"title.font",n.font)}i("sort"),i("direction"),i("rotation"),i("pull")}G4e.exports={handleLabelsAndValues:V4e,handleMarkerDefaults:H4e,supplyDefaults:EEt}});var lD=ye((Jcr,j4e)=>{"use strict";j4e.exports={hiddenlabels:{valType:"data_array",editType:"calc"},piecolorway:{valType:"colorlist",editType:"calc"},extendpiecolors:{valType:"boolean",dflt:!0,editType:"calc"}}});var Z4e=ye(($cr,W4e)=>{"use strict";var kEt=Mr(),CEt=lD();W4e.exports=function(t,r){function n(i,a){return kEt.coerce(t,r,CEt,i,a)}n("hiddenlabels"),n("piecolorway",r.colorway),n("extendpiecolors")}});var y5=ye((Qcr,K4e)=>{"use strict";var LEt=uo(),tW=id(),PEt=va(),IEt={};function REt(e,t){var r=[],n=e._fullLayout,i=n.hiddenlabels||[],a=t.labels,o=t.marker.colors||[],s=t.values,l=t._length,u=t._hasValues&&l,c,f;if(t.dlabel)for(a=new Array(l),c=0;c=0});var A=t.type==="funnelarea"?x:t.sort;return A&&r.sort(function(L,_){return _.v-L.v}),r[0]&&(r[0].vTotal=v),r}function X4e(e){return function(r,n){return!r||(r=tW(r),!r.isValid())?!1:(r=PEt.addOpacity(r,r.getAlpha()),e[n]||(e[n]=r),r)}}function DEt(e,t){var r=(t||{}).type;r||(r="pie");var n=e._fullLayout,i=e.calcdata,a=n[r+"colorway"],o=n["_"+r+"colormap"];n["extend"+r+"colors"]&&(a=Y4e(a,IEt));for(var s=0,l=0;l{"use strict";var zEt=rp().appendArrayMultiPointValues;J4e.exports=function(t,r){var n={curveNumber:r.index,pointNumbers:t.pts,data:r._input,fullData:r,label:t.label,color:t.color,value:t.v,percent:t.percent,text:t.text,bbox:t.bbox,v:t.v};return t.pts.length===1&&(n.pointNumber=n.i=t.pts[0]),zEt(n,r,t.pts),r.type==="funnelarea"&&(delete n.v,delete n.i),n}});var hD=ye((tfr,_Ee)=>{"use strict";var zp=xa(),FEt=Xu(),uD=Nc(),nEe=va(),Wy=ao(),ev=Mr(),qEt=ev.strScale,Q4e=ev.strTranslate,rW=Ll(),aEe=_v(),OEt=aEe.recordMinTextSize,BEt=aEe.clearMinTextSize,oEe=Qb().TEXTPAD,Zo=l_(),cD=$4e(),eEe=Mr().isValidTextValue;function NEt(e,t){var r=e._context.staticPlot,n=e._fullLayout,i=n._size;BEt("pie",n),uEe(t,e),gEe(t,i);var a=ev.makeTraceGroups(n._pielayer,t,"trace").each(function(o){var s=zp.select(this),l=o[0],u=l.trace;YEt(o),s.attr("stroke-linejoin","round"),s.each(function(){var c=zp.select(this).selectAll("g.slice").data(o);c.enter().append("g").classed("slice",!0),c.exit().remove();var f=[[[],[]],[[],[]]],h=!1;c.each(function(A,L){if(A.hidden){zp.select(this).selectAll("path,g").remove();return}A.pointNumber=A.i,A.curveNumber=u.index,f[A.pxmid[1]<0?0:1][A.pxmid[0]<0?0:1].push(A);var _=l.cx,C=l.cy,M=zp.select(this),p=M.selectAll("path.surface").data([A]);if(p.enter().append("path").classed("surface",!0).style({"pointer-events":r?"none":"all"}),M.call(sEe,e,o),u.pull){var P=+Zo.castOption(u.pull,A.pts)||0;P>0&&(_+=P*A.pxmid[0],C+=P*A.pxmid[1])}A.cxFinal=_,A.cyFinal=C;function T(N,W,re,ae){var _e=ae*(W[0]-N[0]),Me=ae*(W[1]-N[1]);return"a"+ae*l.r+","+ae*l.r+" 0 "+A.largeArc+(re?" 1 ":" 0 ")+_e+","+Me}var F=u.hole;if(A.v===l.vTotal){var q="M"+(_+A.px0[0])+","+(C+A.px0[1])+T(A.px0,A.pxmid,!0,1)+T(A.pxmid,A.px0,!0,1)+"Z";F?p.attr("d","M"+(_+F*A.px0[0])+","+(C+F*A.px0[1])+T(A.px0,A.pxmid,!1,F)+T(A.pxmid,A.px0,!1,F)+"Z"+q):p.attr("d",q)}else{var V=T(A.px0,A.px1,!0,1);if(F){var H=1-F;p.attr("d","M"+(_+F*A.px1[0])+","+(C+F*A.px1[1])+T(A.px1,A.px0,!1,F)+"l"+H*A.px0[0]+","+H*A.px0[1]+V+"Z")}else p.attr("d","M"+_+","+C+"l"+A.px0[0]+","+A.px0[1]+V+"Z")}mEe(e,A,l);var X=Zo.castOption(u.textposition,A.pts),G=M.selectAll("g.slicetext").data(A.text&&X!=="none"?[0]:[]);G.enter().append("g").classed("slicetext",!0),G.exit().remove(),G.each(function(){var N=ev.ensureSingle(zp.select(this),"text","",function(ie){ie.attr("data-notex",1)}),W=ev.ensureUniformFontSize(e,X==="outside"?VEt(u,A,n.font):lEe(u,A,n.font));N.text(A.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(Wy.font,W).call(rW.convertToTspans,e);var re=Wy.bBox(N.node()),ae;if(X==="outside")ae=iEe(re,A);else if(ae=cEe(re,A,l),X==="auto"&&ae.scale<1){var _e=ev.ensureUniformFontSize(e,u.outsidetextfont);N.call(Wy.font,_e),re=Wy.bBox(N.node()),ae=iEe(re,A)}var Me=ae.textPosAngle,ke=Me===void 0?A.pxmid:fD(l.r,Me);if(ae.targetX=_+ke[0]*ae.rCenter+(ae.x||0),ae.targetY=C+ke[1]*ae.rCenter+(ae.y||0),yEe(ae,re),ae.outside){var ge=ae.targetY;A.yLabelMin=ge-re.height/2,A.yLabelMid=ge,A.yLabelMax=ge+re.height/2,A.labelExtraX=0,A.labelExtraY=0,h=!0}ae.fontSize=W.size,OEt(u.type,ae,n),o[L].transform=ae,ev.setTransormAndDisplay(N,ae)})});var d=zp.select(this).selectAll("g.titletext").data(u.title.text?[0]:[]);if(d.enter().append("g").classed("titletext",!0),d.exit().remove(),d.each(function(){var A=ev.ensureSingle(zp.select(this),"text","",function(C){C.attr("data-notex",1)}),L=u.title.text;u._meta&&(L=ev.templateString(L,u._meta)),A.text(L).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(Wy.font,u.title.font).call(rW.convertToTspans,e);var _;u.title.position==="middle center"?_=jEt(l):_=vEe(l,i),A.attr("transform",Q4e(_.x,_.y)+qEt(Math.min(1,_.scale))+Q4e(_.tx,_.ty))}),h&&ZEt(f,u),UEt(c,u),h&&u.automargin){var v=Wy.bBox(s.node()),x=u.domain,b=i.w*(x.x[1]-x.x[0]),g=i.h*(x.y[1]-x.y[0]),E=(.5*b-l.r)/i.w,k=(.5*g-l.r)/i.h;FEt.autoMargin(e,"pie."+u.uid+".automargin",{xl:x.x[0]-E,xr:x.x[1]+E,yb:x.y[0]-k,yt:x.y[1]+k,l:Math.max(l.cx-l.r-v.left,0),r:Math.max(v.right-(l.cx+l.r),0),b:Math.max(v.bottom-(l.cy+l.r),0),t:Math.max(l.cy-l.r-v.top,0),pad:5})}})});setTimeout(function(){a.selectAll("tspan").each(function(){var o=zp.select(this);o.attr("dy")&&o.attr("dy",o.attr("dy"))})},0)}function UEt(e,t){e.each(function(r){var n=zp.select(this);if(!r.labelExtraX&&!r.labelExtraY){n.select("path.textline").remove();return}var i=n.select("g.slicetext text");r.transform.targetX+=r.labelExtraX,r.transform.targetY+=r.labelExtraY,ev.setTransormAndDisplay(i,r.transform);var a=r.cxFinal+r.pxmid[0],o=r.cyFinal+r.pxmid[1],s="M"+a+","+o,l=(r.yLabelMax-r.yLabelMin)*(r.pxmid[0]<0?-1:1)/4;if(r.labelExtraX){var u=r.labelExtraX*r.pxmid[1]/r.pxmid[0],c=r.yLabelMid+r.labelExtraY-(r.cyFinal+r.pxmid[1]);Math.abs(u)>Math.abs(c)?s+="l"+c*r.pxmid[0]/r.pxmid[1]+","+c+"H"+(a+r.labelExtraX+l):s+="l"+r.labelExtraX+","+u+"v"+(c-u)+"h"+l}else s+="V"+(r.yLabelMid+r.labelExtraY)+"h"+l;ev.ensureSingle(n,"path","textline").call(nEe.stroke,t.outsidetextfont.color).attr({"stroke-width":Math.min(2,t.outsidetextfont.size/8),d:s,fill:"none"})})}function sEe(e,t,r){var n=r[0],i=n.cx,a=n.cy,o=n.trace,s=o.type==="funnelarea";"_hasHoverLabel"in o||(o._hasHoverLabel=!1),"_hasHoverEvent"in o||(o._hasHoverEvent=!1),e.on("mouseover",function(l){var u=t._fullLayout,c=t._fullData[o.index];if(!(t._dragging||u.hovermode===!1)){var f=c.hoverinfo;if(Array.isArray(f)&&(f=uD.castHoverinfo({hoverinfo:[Zo.castOption(f,l.pts)],_module:o._module},u,0)),f==="all"&&(f="label+text+value+percent+name"),c.hovertemplate||f!=="none"&&f!=="skip"&&f){var h=l.rInscribed||0,d=i+l.pxmid[0]*(1-h),v=a+l.pxmid[1]*(1-h),x=u.separators,b=[];if(f&&f.indexOf("label")!==-1&&b.push(l.label),l.text=Zo.castOption(c.hovertext||c.text,l.pts),f&&f.indexOf("text")!==-1){var g=l.text;ev.isValidTextValue(g)&&b.push(g)}l.value=l.v,l.valueLabel=Zo.formatPieValue(l.v,x),f&&f.indexOf("value")!==-1&&b.push(l.valueLabel),l.percent=l.v/n.vTotal,l.percentLabel=Zo.formatPiePercent(l.percent,x),f&&f.indexOf("percent")!==-1&&b.push(l.percentLabel);var E=c.hoverlabel,k=E.font,A=[];uD.loneHover({trace:o,x0:d-h*n.r,x1:d+h*n.r,y:v,_x0:s?i+l.TL[0]:d-h*n.r,_x1:s?i+l.TR[0]:d+h*n.r,_y0:s?a+l.TL[1]:v-h*n.r,_y1:s?a+l.BL[1]:v+h*n.r,text:b.join("
"),name:c.hovertemplate||f.indexOf("name")!==-1?c.name:void 0,idealAlign:l.pxmid[0]<0?"left":"right",color:Zo.castOption(E.bgcolor,l.pts)||l.color,borderColor:Zo.castOption(E.bordercolor,l.pts),fontFamily:Zo.castOption(k.family,l.pts),fontSize:Zo.castOption(k.size,l.pts),fontColor:Zo.castOption(k.color,l.pts),nameLength:Zo.castOption(E.namelength,l.pts),textAlign:Zo.castOption(E.align,l.pts),hovertemplate:Zo.castOption(c.hovertemplate,l.pts),hovertemplateLabels:l,eventData:[cD(l,c)]},{container:u._hoverlayer.node(),outerContainer:u._paper.node(),gd:t,inOut_bbox:A}),l.bbox=A[0],o._hasHoverLabel=!0}o._hasHoverEvent=!0,t.emit("plotly_hover",{points:[cD(l,c)],event:zp.event})}}),e.on("mouseout",function(l){var u=t._fullLayout,c=t._fullData[o.index],f=zp.select(this).datum();o._hasHoverEvent&&(l.originalEvent=zp.event,t.emit("plotly_unhover",{points:[cD(f,c)],event:zp.event}),o._hasHoverEvent=!1),o._hasHoverLabel&&(uD.loneUnhover(u._hoverlayer.node()),o._hasHoverLabel=!1)}),e.on("click",function(l){var u=t._fullLayout,c=t._fullData[o.index];t._dragging||u.hovermode===!1||(t._hoverdata=[cD(l,c)],uD.click(t,zp.event))})}function VEt(e,t,r){var n=Zo.castOption(e.outsidetextfont.color,t.pts)||Zo.castOption(e.textfont.color,t.pts)||r.color,i=Zo.castOption(e.outsidetextfont.family,t.pts)||Zo.castOption(e.textfont.family,t.pts)||r.family,a=Zo.castOption(e.outsidetextfont.size,t.pts)||Zo.castOption(e.textfont.size,t.pts)||r.size,o=Zo.castOption(e.outsidetextfont.weight,t.pts)||Zo.castOption(e.textfont.weight,t.pts)||r.weight,s=Zo.castOption(e.outsidetextfont.style,t.pts)||Zo.castOption(e.textfont.style,t.pts)||r.style,l=Zo.castOption(e.outsidetextfont.variant,t.pts)||Zo.castOption(e.textfont.variant,t.pts)||r.variant,u=Zo.castOption(e.outsidetextfont.textcase,t.pts)||Zo.castOption(e.textfont.textcase,t.pts)||r.textcase,c=Zo.castOption(e.outsidetextfont.lineposition,t.pts)||Zo.castOption(e.textfont.lineposition,t.pts)||r.lineposition,f=Zo.castOption(e.outsidetextfont.shadow,t.pts)||Zo.castOption(e.textfont.shadow,t.pts)||r.shadow;return{color:n,family:i,size:a,weight:o,style:s,variant:l,textcase:u,lineposition:c,shadow:f}}function lEe(e,t,r){var n=Zo.castOption(e.insidetextfont.color,t.pts);!n&&e._input.textfont&&(n=Zo.castOption(e._input.textfont.color,t.pts));var i=Zo.castOption(e.insidetextfont.family,t.pts)||Zo.castOption(e.textfont.family,t.pts)||r.family,a=Zo.castOption(e.insidetextfont.size,t.pts)||Zo.castOption(e.textfont.size,t.pts)||r.size,o=Zo.castOption(e.insidetextfont.weight,t.pts)||Zo.castOption(e.textfont.weight,t.pts)||r.weight,s=Zo.castOption(e.insidetextfont.style,t.pts)||Zo.castOption(e.textfont.style,t.pts)||r.style,l=Zo.castOption(e.insidetextfont.variant,t.pts)||Zo.castOption(e.textfont.variant,t.pts)||r.variant,u=Zo.castOption(e.insidetextfont.textcase,t.pts)||Zo.castOption(e.textfont.textcase,t.pts)||r.textcase,c=Zo.castOption(e.insidetextfont.lineposition,t.pts)||Zo.castOption(e.textfont.lineposition,t.pts)||r.lineposition,f=Zo.castOption(e.insidetextfont.shadow,t.pts)||Zo.castOption(e.textfont.shadow,t.pts)||r.shadow;return{color:n||nEe.contrast(t.color),family:i,size:a,weight:o,style:s,variant:l,textcase:u,lineposition:c,shadow:f}}function uEe(e,t){for(var r,n,i=0;i=-4;E-=2)g(Math.PI*E,"tan");for(E=4;E>=-4;E-=2)g(Math.PI*(E+1),"tan")}if(f||d){for(E=4;E>=-4;E-=2)g(Math.PI*(E+1.5),"rad");for(E=4;E>=-4;E-=2)g(Math.PI*(E+.5),"rad")}}if(s||v||f){var k=Math.sqrt(e.width*e.width+e.height*e.height);if(b={scale:i*n*2/k,rCenter:1-i,rotate:0},b.textPosAngle=(t.startangle+t.stopangle)/2,b.scale>=1)return b;x.push(b)}(v||d)&&(b=tEe(e,n,o,l,u),b.textPosAngle=(t.startangle+t.stopangle)/2,x.push(b)),(v||h)&&(b=rEe(e,n,o,l,u),b.textPosAngle=(t.startangle+t.stopangle)/2,x.push(b));for(var A=0,L=0,_=0;_=1)break}return x[A]}function HEt(e,t){var r=e.startangle,n=e.stopangle;return r>t&&t>n||r0?1:-1)/2,y:a/(1+r*r/(n*n)),outside:!0}}function jEt(e){var t=Math.sqrt(e.titleBox.width*e.titleBox.width+e.titleBox.height*e.titleBox.height);return{x:e.cx,y:e.cy,scale:e.trace.hole*e.r*2/t,tx:0,ty:-e.titleBox.height/2+e.trace.title.font.size}}function vEe(e,t){var r=1,n=1,i,a=e.trace,o={x:e.cx,y:e.cy},s={tx:0,ty:0};s.ty+=a.title.font.size,i=pEe(a),a.title.position.indexOf("top")!==-1?(o.y-=(1+i)*e.r,s.ty-=e.titleBox.height):a.title.position.indexOf("bottom")!==-1&&(o.y+=(1+i)*e.r);var l=WEt(e.r,e.trace.aspectratio),u=t.w*(a.domain.x[1]-a.domain.x[0])/2;return a.title.position.indexOf("left")!==-1?(u=u+l,o.x-=(1+i)*l,s.tx+=e.titleBox.width/2):a.title.position.indexOf("center")!==-1?u*=2:a.title.position.indexOf("right")!==-1&&(u=u+l,o.x+=(1+i)*l,s.tx-=e.titleBox.width/2),r=u/e.titleBox.width,n=iW(e,t)/e.titleBox.height,{x:o.x,y:o.y,scale:Math.min(r,n),tx:s.tx,ty:s.ty}}function WEt(e,t){return e/(t===void 0?1:t)}function iW(e,t){var r=e.trace,n=t.h*(r.domain.y[1]-r.domain.y[0]);return Math.min(e.titleBox.height,n/2)}function pEe(e){var t=e.pull;if(!t)return 0;var r;if(ev.isArrayOrTypedArray(t))for(t=0,r=0;rt&&(t=e.pull[r]);return t}function ZEt(e,t){var r,n,i,a,o,s,l,u,c,f,h,d,v;function x(k,A){return k.pxmid[1]-A.pxmid[1]}function b(k,A){return A.pxmid[1]-k.pxmid[1]}function g(k,A){A||(A={});var L=A.labelExtraY+(n?A.yLabelMax:A.yLabelMin),_=n?k.yLabelMin:k.yLabelMax,C=n?k.yLabelMax:k.yLabelMin,M=k.cyFinal+o(k.px0[1],k.px1[1]),p=L-_,P,T,F,q,V,H;if(p*l>0&&(k.labelExtraY=p),!!ev.isArrayOrTypedArray(t.pull))for(T=0;T=(Zo.castOption(t.pull,F.pts)||0))&&((k.pxmid[1]-F.pxmid[1])*l>0?(q=F.cyFinal+o(F.px0[1],F.px1[1]),p=q-_-k.labelExtraY,p*l>0&&(k.labelExtraY+=p)):(C+k.labelExtraY-M)*l>0&&(P=3*s*Math.abs(T-f.indexOf(k)),V=F.cxFinal+a(F.px0[0],F.px1[0]),H=V+P-(k.cxFinal+k.pxmid[0])-k.labelExtraX,H*s>0&&(k.labelExtraX+=H)))}for(n=0;n<2;n++)for(i=n?x:b,o=n?Math.max:Math.min,l=n?1:-1,r=0;r<2;r++){for(a=r?Math.max:Math.min,s=r?1:-1,u=e[n][r],u.sort(i),c=e[1-n][r],f=c.concat(u),d=[],h=0;h1?(u=r.r,c=u/i.aspectratio):(c=r.r,u=c*i.aspectratio),u*=(1+i.baseratio)/2,l=u*c}o=Math.min(o,l/r.vTotal)}for(n=0;nt.vTotal/2?1:0,u.halfangle=Math.PI*Math.min(u.v/t.vTotal,.5),u.ring=1-n.hole,u.rInscribed=GEt(u,t))}function fD(e,t){return[e*Math.sin(t),-e*Math.cos(t)]}function mEe(e,t,r){var n=e._fullLayout,i=r.trace,a=i.texttemplate,o=i.textinfo;if(!a&&o&&o!=="none"){var s=o.split("+"),l=function(A){return s.indexOf(A)!==-1},u=l("label"),c=l("text"),f=l("value"),h=l("percent"),d=n.separators,v;if(v=u?[t.label]:[],c){var x=Zo.getFirstFilled(i.text,t.pts);eEe(x)&&v.push(x)}f&&v.push(Zo.formatPieValue(t.v,d)),h&&v.push(Zo.formatPiePercent(t.v/r.vTotal,d)),t.text=v.join("
")}function b(A){return{label:A.label,value:A.v,valueLabel:Zo.formatPieValue(A.v,n.separators),percent:A.v/r.vTotal,percentLabel:Zo.formatPiePercent(A.v/r.vTotal,n.separators),color:A.color,text:A.text,customdata:ev.castOption(i,A.i,"customdata")}}if(a){var g=ev.castOption(i,t.i,"texttemplate");if(!g)t.text="";else{var E=b(t),k=Zo.getFirstFilled(i.text,t.pts);(eEe(k)||k==="")&&(E.text=k),t.text=ev.texttemplateString(g,E,e._fullLayout._d3locale,E,i._meta||{})}}}function yEe(e,t){var r=e.rotate*Math.PI/180,n=Math.cos(r),i=Math.sin(r),a=(t.left+t.right)/2,o=(t.top+t.bottom)/2;e.textX=a*n-o*i,e.textY=a*i+o*n,e.noCenter=!0}_Ee.exports={plot:NEt,formatSliceLabel:mEe,transformInsideText:cEe,determineInsideTextFont:lEe,positionTitleOutside:vEe,prerenderTitles:uEe,layoutAreas:gEe,attachFxHandlers:sEe,computeTransform:yEe}});var wEe=ye((rfr,bEe)=>{"use strict";var xEe=xa(),KEt=z3(),JEt=_v().resizeText;bEe.exports=function(t){var r=t._fullLayout._pielayer.selectAll(".trace");JEt(t,r,"pie"),r.each(function(n){var i=n[0],a=i.trace,o=xEe.select(this);o.style({opacity:a.opacity}),o.selectAll("path.surface").each(function(s){xEe.select(this).call(KEt,s,a,t)})})}});var AEe=ye(_5=>{"use strict";var TEe=Xu();_5.name="pie";_5.plot=function(e,t,r,n){TEe.plotBasePlot(_5.name,e,t,r,n)};_5.clean=function(e,t,r,n){TEe.cleanBasePlot(_5.name,e,t,r,n)}});var MEe=ye((nfr,SEe)=>{"use strict";SEe.exports={attributes:A2(),supplyDefaults:S2().supplyDefaults,supplyLayoutDefaults:Z4e(),layoutAttributes:lD(),calc:y5().calc,crossTraceCalc:y5().crossTraceCalc,plot:hD().plot,style:wEe(),styleOne:z3(),moduleType:"trace",name:"pie",basePlotModule:AEe(),categories:["pie-like","pie","showLegend"],meta:{}}});var kEe=ye((afr,EEe)=>{"use strict";EEe.exports=MEe()});var LEe=ye(x5=>{"use strict";var CEe=Xu();x5.name="sunburst";x5.plot=function(e,t,r,n){CEe.plotBasePlot(x5.name,e,t,r,n)};x5.clean=function(e,t,r,n){CEe.cleanBasePlot(x5.name,e,t,r,n)}});var nW=ye((sfr,PEe)=>{"use strict";PEe.exports={CLICK_TRANSITION_TIME:750,CLICK_TRANSITION_EASING:"linear",eventDataKeys:["currentPath","root","entry","percentRoot","percentEntry","percentParent"]}});var AE=ye((lfr,REe)=>{"use strict";var $Et=vl(),QEt=Wo().hovertemplateAttrs,ekt=Wo().texttemplateAttrs,tkt=Kl(),rkt=Ju().attributes,Zy=A2(),IEe=nW(),TE=no().extendFlat,ikt=Ed().pattern;REe.exports={labels:{valType:"data_array",editType:"calc"},parents:{valType:"data_array",editType:"calc"},values:{valType:"data_array",editType:"calc"},branchvalues:{valType:"enumerated",values:["remainder","total"],dflt:"remainder",editType:"calc"},count:{valType:"flaglist",flags:["branches","leaves"],dflt:"leaves",editType:"calc"},level:{valType:"any",editType:"plot",anim:!0},maxdepth:{valType:"integer",editType:"plot",dflt:-1},marker:TE({colors:{valType:"data_array",editType:"calc"},line:{color:TE({},Zy.marker.line.color,{dflt:null}),width:TE({},Zy.marker.line.width,{dflt:1}),editType:"calc"},pattern:ikt,editType:"calc"},tkt("marker",{colorAttr:"colors",anim:!1})),leaf:{opacity:{valType:"number",editType:"style",min:0,max:1},editType:"plot"},text:Zy.text,textinfo:{valType:"flaglist",flags:["label","text","value","current path","percent root","percent entry","percent parent"],extras:["none"],editType:"plot"},texttemplate:ekt({editType:"plot"},{keys:IEe.eventDataKeys.concat(["label","value"])}),hovertext:Zy.hovertext,hoverinfo:TE({},$Et.hoverinfo,{flags:["label","text","value","name","current path","percent root","percent entry","percent parent"],dflt:"label+text+value+name"}),hovertemplate:QEt({},{keys:IEe.eventDataKeys}),textfont:Zy.textfont,insidetextorientation:Zy.insidetextorientation,insidetextfont:Zy.insidetextfont,outsidetextfont:TE({},Zy.outsidetextfont,{}),rotation:{valType:"angle",dflt:0,editType:"plot"},sort:Zy.sort,root:{color:{valType:"color",editType:"calc",dflt:"rgba(0,0,0,0)"},editType:"calc"},domain:rkt({name:"sunburst",trace:!0,editType:"calc"})}});var aW=ye((ufr,DEe)=>{"use strict";DEe.exports={sunburstcolorway:{valType:"colorlist",editType:"calc"},extendsunburstcolors:{valType:"boolean",dflt:!0,editType:"calc"}}});var OEe=ye((cfr,qEe)=>{"use strict";var zEe=Mr(),nkt=AE(),akt=Ju().defaults,okt=r0().handleText,skt=S2().handleMarkerDefaults,FEe=Mu(),lkt=FEe.hasColorscale,ukt=FEe.handleDefaults;qEe.exports=function(t,r,n,i){function a(h,d){return zEe.coerce(t,r,nkt,h,d)}var o=a("labels"),s=a("parents");if(!o||!o.length||!s||!s.length){r.visible=!1;return}var l=a("values");l&&l.length?a("branchvalues"):a("count"),a("level"),a("maxdepth"),skt(t,r,i,a);var u=r._hasColorscale=lkt(t,"marker","colors")||(t.marker||{}).coloraxis;u&&ukt(t,r,i,a,{prefix:"marker.",cLetter:"c"}),a("leaf.opacity",u?1:.7);var c=a("text");a("texttemplate"),r.texttemplate||a("textinfo",zEe.isArrayOrTypedArray(c)?"text+label":"label"),a("hovertext"),a("hovertemplate");var f="auto";okt(t,r,i,a,f,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),a("insidetextorientation"),a("sort"),a("rotation"),a("root.color"),akt(r,i,a),r._length=null}});var NEe=ye((ffr,BEe)=>{"use strict";var ckt=Mr(),fkt=aW();BEe.exports=function(t,r){function n(i,a){return ckt.coerce(t,r,fkt,i,a)}n("sunburstcolorway",r.colorway),n("extendsunburstcolors")}});var SE=ye((dD,UEe)=>{(function(e,t){typeof dD=="object"&&typeof UEe!="undefined"?t(dD):typeof define=="function"&&define.amd?define(["exports"],t):(e=e||self,t(e.d3=e.d3||{}))})(dD,function(e){"use strict";function t(Ve,Xe){return Ve.parent===Xe.parent?1:2}function r(Ve){return Ve.reduce(n,0)/Ve.length}function n(Ve,Xe){return Ve+Xe.x}function i(Ve){return 1+Ve.reduce(a,0)}function a(Ve,Xe){return Math.max(Ve,Xe.y)}function o(Ve){for(var Xe;Xe=Ve.children;)Ve=Xe[0];return Ve}function s(Ve){for(var Xe;Xe=Ve.children;)Ve=Xe[Xe.length-1];return Ve}function l(){var Ve=t,Xe=1,ht=1,Le=!1;function xe(Se){var lt,Gt=0;Se.eachAfter(function(jr){var ri=jr.children;ri?(jr.x=r(ri),jr.y=i(ri)):(jr.x=lt?Gt+=Ve(jr,lt):0,jr.y=0,lt=jr)});var Vt=o(Se),ar=s(Se),Qr=Vt.x-Ve(Vt,ar)/2,ai=ar.x+Ve(ar,Vt)/2;return Se.eachAfter(Le?function(jr){jr.x=(jr.x-Se.x)*Xe,jr.y=(Se.y-jr.y)*ht}:function(jr){jr.x=(jr.x-Qr)/(ai-Qr)*Xe,jr.y=(1-(Se.y?jr.y/Se.y:1))*ht})}return xe.separation=function(Se){return arguments.length?(Ve=Se,xe):Ve},xe.size=function(Se){return arguments.length?(Le=!1,Xe=+Se[0],ht=+Se[1],xe):Le?null:[Xe,ht]},xe.nodeSize=function(Se){return arguments.length?(Le=!0,Xe=+Se[0],ht=+Se[1],xe):Le?[Xe,ht]:null},xe}function u(Ve){var Xe=0,ht=Ve.children,Le=ht&&ht.length;if(!Le)Xe=1;else for(;--Le>=0;)Xe+=ht[Le].value;Ve.value=Xe}function c(){return this.eachAfter(u)}function f(Ve){var Xe=this,ht,Le=[Xe],xe,Se,lt;do for(ht=Le.reverse(),Le=[];Xe=ht.pop();)if(Ve(Xe),xe=Xe.children,xe)for(Se=0,lt=xe.length;Se=0;--xe)ht.push(Le[xe]);return this}function d(Ve){for(var Xe=this,ht=[Xe],Le=[],xe,Se,lt;Xe=ht.pop();)if(Le.push(Xe),xe=Xe.children,xe)for(Se=0,lt=xe.length;Se=0;)ht+=Le[xe].value;Xe.value=ht})}function x(Ve){return this.eachBefore(function(Xe){Xe.children&&Xe.children.sort(Ve)})}function b(Ve){for(var Xe=this,ht=g(Xe,Ve),Le=[Xe];Xe!==ht;)Xe=Xe.parent,Le.push(Xe);for(var xe=Le.length;Ve!==ht;)Le.splice(xe,0,Ve),Ve=Ve.parent;return Le}function g(Ve,Xe){if(Ve===Xe)return Ve;var ht=Ve.ancestors(),Le=Xe.ancestors(),xe=null;for(Ve=ht.pop(),Xe=Le.pop();Ve===Xe;)xe=Ve,Ve=ht.pop(),Xe=Le.pop();return xe}function E(){for(var Ve=this,Xe=[Ve];Ve=Ve.parent;)Xe.push(Ve);return Xe}function k(){var Ve=[];return this.each(function(Xe){Ve.push(Xe)}),Ve}function A(){var Ve=[];return this.eachBefore(function(Xe){Xe.children||Ve.push(Xe)}),Ve}function L(){var Ve=this,Xe=[];return Ve.each(function(ht){ht!==Ve&&Xe.push({source:ht.parent,target:ht})}),Xe}function _(Ve,Xe){var ht=new T(Ve),Le=+Ve.value&&(ht.value=Ve.value),xe,Se=[ht],lt,Gt,Vt,ar;for(Xe==null&&(Xe=M);xe=Se.pop();)if(Le&&(xe.value=+xe.data.value),(Gt=Xe(xe.data))&&(ar=Gt.length))for(xe.children=new Array(ar),Vt=ar-1;Vt>=0;--Vt)Se.push(lt=xe.children[Vt]=new T(Gt[Vt])),lt.parent=xe,lt.depth=xe.depth+1;return ht.eachBefore(P)}function C(){return _(this).eachBefore(p)}function M(Ve){return Ve.children}function p(Ve){Ve.data=Ve.data.data}function P(Ve){var Xe=0;do Ve.height=Xe;while((Ve=Ve.parent)&&Ve.height<++Xe)}function T(Ve){this.data=Ve,this.depth=this.height=0,this.parent=null}T.prototype=_.prototype={constructor:T,count:c,each:f,eachAfter:d,eachBefore:h,sum:v,sort:x,path:b,ancestors:E,descendants:k,leaves:A,links:L,copy:C};var F=Array.prototype.slice;function q(Ve){for(var Xe=Ve.length,ht,Le;Xe;)Le=Math.random()*Xe--|0,ht=Ve[Xe],Ve[Xe]=Ve[Le],Ve[Le]=ht;return Ve}function V(Ve){for(var Xe=0,ht=(Ve=q(F.call(Ve))).length,Le=[],xe,Se;Xe0&&ht*ht>Le*Le+xe*xe}function N(Ve,Xe){for(var ht=0;htVt?(xe=(ar+Vt-Se)/(2*ar),Gt=Math.sqrt(Math.max(0,Vt/ar-xe*xe)),ht.x=Ve.x-xe*Le-Gt*lt,ht.y=Ve.y-xe*lt+Gt*Le):(xe=(ar+Se-Vt)/(2*ar),Gt=Math.sqrt(Math.max(0,Se/ar-xe*xe)),ht.x=Xe.x+xe*Le-Gt*lt,ht.y=Xe.y+xe*lt+Gt*Le)):(ht.x=Xe.x+ht.r,ht.y=Xe.y)}function ke(Ve,Xe){var ht=Ve.r+Xe.r-1e-6,Le=Xe.x-Ve.x,xe=Xe.y-Ve.y;return ht>0&&ht*ht>Le*Le+xe*xe}function ge(Ve){var Xe=Ve._,ht=Ve.next._,Le=Xe.r+ht.r,xe=(Xe.x*ht.r+ht.x*Xe.r)/Le,Se=(Xe.y*ht.r+ht.y*Xe.r)/Le;return xe*xe+Se*Se}function ie(Ve){this._=Ve,this.next=null,this.previous=null}function Te(Ve){if(!(xe=Ve.length))return 0;var Xe,ht,Le,xe,Se,lt,Gt,Vt,ar,Qr,ai;if(Xe=Ve[0],Xe.x=0,Xe.y=0,!(xe>1))return Xe.r;if(ht=Ve[1],Xe.x=-ht.r,ht.x=Xe.r,ht.y=0,!(xe>2))return Xe.r+ht.r;Me(ht,Xe,Le=Ve[2]),Xe=new ie(Xe),ht=new ie(ht),Le=new ie(Le),Xe.next=Le.previous=ht,ht.next=Xe.previous=Le,Le.next=ht.previous=Xe;e:for(Gt=3;Gt0)throw new Error("cycle");return Gt}return ht.id=function(Le){return arguments.length?(Ve=ze(Le),ht):Ve},ht.parentId=function(Le){return arguments.length?(Xe=ze(Le),ht):Xe},ht}function Ke(Ve,Xe){return Ve.parent===Xe.parent?1:2}function xt(Ve){var Xe=Ve.children;return Xe?Xe[0]:Ve.t}function bt(Ve){var Xe=Ve.children;return Xe?Xe[Xe.length-1]:Ve.t}function Lt(Ve,Xe,ht){var Le=ht/(Xe.i-Ve.i);Xe.c-=Le,Xe.s+=ht,Ve.c+=Le,Xe.z+=ht,Xe.m+=ht}function St(Ve){for(var Xe=0,ht=0,Le=Ve.children,xe=Le.length,Se;--xe>=0;)Se=Le[xe],Se.z+=Xe,Se.m+=Xe,Xe+=Se.s+(ht+=Se.c)}function Et(Ve,Xe,ht){return Ve.a.parent===Xe.parent?Ve.a:ht}function dt(Ve,Xe){this._=Ve,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=Xe}dt.prototype=Object.create(T.prototype);function Ht(Ve){for(var Xe=new dt(Ve,0),ht,Le=[Xe],xe,Se,lt,Gt;ht=Le.pop();)if(Se=ht._.children)for(ht.children=new Array(Gt=Se.length),lt=Gt-1;lt>=0;--lt)Le.push(xe=ht.children[lt]=new dt(Se[lt],lt)),xe.parent=ht;return(Xe.parent=new dt(null,0)).children=[Xe],Xe}function $t(){var Ve=Ke,Xe=1,ht=1,Le=null;function xe(ar){var Qr=Ht(ar);if(Qr.eachAfter(Se),Qr.parent.m=-Qr.z,Qr.eachBefore(lt),Le)ar.eachBefore(Vt);else{var ai=ar,jr=ar,ri=ar;ar.eachBefore(function(_n){_n.xjr.x&&(jr=_n),_n.depth>ri.depth&&(ri=_n)});var bi=ai===jr?1:Ve(ai,jr)/2,nn=bi-ai.x,Wi=Xe/(jr.x+bi+nn),Ni=ht/(ri.depth||1);ar.eachBefore(function(_n){_n.x=(_n.x+nn)*Wi,_n.y=_n.depth*Ni})}return ar}function Se(ar){var Qr=ar.children,ai=ar.parent.children,jr=ar.i?ai[ar.i-1]:null;if(Qr){St(ar);var ri=(Qr[0].z+Qr[Qr.length-1].z)/2;jr?(ar.z=jr.z+Ve(ar._,jr._),ar.m=ar.z-ri):ar.z=ri}else jr&&(ar.z=jr.z+Ve(ar._,jr._));ar.parent.A=Gt(ar,jr,ar.parent.A||ai[0])}function lt(ar){ar._.x=ar.z+ar.parent.m,ar.m+=ar.parent.m}function Gt(ar,Qr,ai){if(Qr){for(var jr=ar,ri=ar,bi=Qr,nn=jr.parent.children[0],Wi=jr.m,Ni=ri.m,_n=bi.m,$i=nn.m,zn;bi=bt(bi),jr=xt(jr),bi&&jr;)nn=xt(nn),ri=bt(ri),ri.a=ar,zn=bi.z+_n-jr.z-Wi+Ve(bi._,jr._),zn>0&&(Lt(Et(bi,ar,ai),ar,zn),Wi+=zn,Ni+=zn),_n+=bi.m,Wi+=jr.m,$i+=nn.m,Ni+=ri.m;bi&&!bt(ri)&&(ri.t=bi,ri.m+=_n-Ni),jr&&!xt(nn)&&(nn.t=jr,nn.m+=Wi-$i,ai=ar)}return ai}function Vt(ar){ar.x*=Xe,ar.y=ar.depth*ht}return xe.separation=function(ar){return arguments.length?(Ve=ar,xe):Ve},xe.size=function(ar){return arguments.length?(Le=!1,Xe=+ar[0],ht=+ar[1],xe):Le?null:[Xe,ht]},xe.nodeSize=function(ar){return arguments.length?(Le=!0,Xe=+ar[0],ht=+ar[1],xe):Le?[Xe,ht]:null},xe}function fr(Ve,Xe,ht,Le,xe){for(var Se=Ve.children,lt,Gt=-1,Vt=Se.length,ar=Ve.value&&(xe-ht)/Ve.value;++Gt_n&&(_n=ar),It=Wi*Wi*Wn,$i=Math.max(_n/It,It/Ni),$i>zn){Wi-=ar;break}zn=$i}lt.push(Vt={value:Wi,dice:ri1?Le:1)},ht}(_r);function Nr(){var Ve=Or,Xe=!1,ht=1,Le=1,xe=[0],Se=Ce,lt=Ce,Gt=Ce,Vt=Ce,ar=Ce;function Qr(jr){return jr.x0=jr.y0=0,jr.x1=ht,jr.y1=Le,jr.eachBefore(ai),xe=[0],Xe&&jr.eachBefore(qt),jr}function ai(jr){var ri=xe[jr.depth],bi=jr.x0+ri,nn=jr.y0+ri,Wi=jr.x1-ri,Ni=jr.y1-ri;Wi=jr-1){var _n=Se[ai];_n.x0=bi,_n.y0=nn,_n.x1=Wi,_n.y1=Ni;return}for(var $i=ar[ai],zn=ri/2+$i,Wn=ai+1,It=jr-1;Wn>>1;ar[ft]Ni-nn){var yr=(bi*Zt+Wi*jt)/ri;Qr(ai,Wn,jt,bi,nn,yr,Ni),Qr(Wn,jr,Zt,yr,nn,Wi,Ni)}else{var Fr=(nn*Zt+Ni*jt)/ri;Qr(ai,Wn,jt,bi,nn,Wi,Fr),Qr(Wn,jr,Zt,bi,Fr,Wi,Ni)}}}function Ne(Ve,Xe,ht,Le,xe){(Ve.depth&1?fr:rt)(Ve,Xe,ht,Le,xe)}var Ye=function Ve(Xe){function ht(Le,xe,Se,lt,Gt){if((Vt=Le._squarify)&&Vt.ratio===Xe)for(var Vt,ar,Qr,ai,jr=-1,ri,bi=Vt.length,nn=Le.value;++jr1?Le:1)},ht}(_r);e.cluster=l,e.hierarchy=_,e.pack=ce,e.packEnclose=V,e.packSiblings=Ee,e.partition=ot,e.stratify=er,e.tree=$t,e.treemap=Nr,e.treemapBinary=ut,e.treemapDice=rt,e.treemapResquarify=Ye,e.treemapSlice=fr,e.treemapSliceDice=Ne,e.treemapSquarify=Or,Object.defineProperty(e,"__esModule",{value:!0})})});var EE=ye(ME=>{"use strict";var VEe=SE(),hkt=uo(),b5=Mr(),dkt=Mu().makeColorScaleFuncFromTrace,vkt=y5().makePullColorFn,pkt=y5().generateExtendedColors,gkt=Mu().calc,mkt=es().ALMOST_EQUAL,ykt={},_kt={},xkt={};ME.calc=function(e,t){var r=e._fullLayout,n=t.ids,i=b5.isArrayOrTypedArray(n),a=t.labels,o=t.parents,s=t.values,l=b5.isArrayOrTypedArray(s),u=[],c={},f={},h=function(G,N){c[G]?c[G].push(N):c[G]=[N],f[N]=1},d=function(G){return G||typeof G=="number"},v=function(G){return!l||hkt(s[G])&&s[G]>=0},x,b,g;i?(x=Math.min(n.length,o.length),b=function(G){return d(n[G])&&v(G)},g=function(G){return String(n[G])}):(x=Math.min(a.length,o.length),b=function(G){return d(a[G])&&v(G)},g=function(G){return String(a[G])}),l&&(x=Math.min(x,s.length));for(var E=0;E1){for(var M=b5.randstr(),p=0;p{});function Vm(){}function jEe(){return this.rgb().formatHex()}function kkt(){return this.rgb().formatHex8()}function Ckt(){return $Ee(this).formatHsl()}function WEe(){return this.rgb().formatRgb()}function j_(e){var t,r;return e=(e+"").trim().toLowerCase(),(t=bkt.exec(e))?(r=t[1].length,t=parseInt(t[1],16),r===6?ZEe(t):r===3?new hd(t>>8&15|t>>4&240,t>>4&15|t&240,(t&15)<<4|t&15,1):r===8?pD(t>>24&255,t>>16&255,t>>8&255,(t&255)/255):r===4?pD(t>>12&15|t>>8&240,t>>8&15|t>>4&240,t>>4&15|t&240,((t&15)<<4|t&15)/255):null):(t=wkt.exec(e))?new hd(t[1],t[2],t[3],1):(t=Tkt.exec(e))?new hd(t[1]*255/100,t[2]*255/100,t[3]*255/100,1):(t=Akt.exec(e))?pD(t[1],t[2],t[3],t[4]):(t=Skt.exec(e))?pD(t[1]*255/100,t[2]*255/100,t[3]*255/100,t[4]):(t=Mkt.exec(e))?KEe(t[1],t[2]/100,t[3]/100,1):(t=Ekt.exec(e))?KEe(t[1],t[2]/100,t[3]/100,t[4]):GEe.hasOwnProperty(e)?ZEe(GEe[e]):e==="transparent"?new hd(NaN,NaN,NaN,0):null}function ZEe(e){return new hd(e>>16&255,e>>8&255,e&255,1)}function pD(e,t,r,n){return n<=0&&(e=t=r=NaN),new hd(e,t,r,n)}function CE(e){return e instanceof Vm||(e=j_(e)),e?(e=e.rgb(),new hd(e.r,e.g,e.b,e.opacity)):new hd}function T5(e,t,r,n){return arguments.length===1?CE(e):new hd(e,t,r,n==null?1:n)}function hd(e,t,r,n){this.r=+e,this.g=+t,this.b=+r,this.opacity=+n}function XEe(){return`#${M2(this.r)}${M2(this.g)}${M2(this.b)}`}function Lkt(){return`#${M2(this.r)}${M2(this.g)}${M2(this.b)}${M2((isNaN(this.opacity)?1:this.opacity)*255)}`}function YEe(){let e=mD(this.opacity);return`${e===1?"rgb(":"rgba("}${E2(this.r)}, ${E2(this.g)}, ${E2(this.b)}${e===1?")":`, ${e})`}`}function mD(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function E2(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function M2(e){return e=E2(e),(e<16?"0":"")+e.toString(16)}function KEe(e,t,r,n){return n<=0?e=t=r=NaN:r<=0||r>=1?e=t=NaN:t<=0&&(e=NaN),new Zg(e,t,r,n)}function $Ee(e){if(e instanceof Zg)return new Zg(e.h,e.s,e.l,e.opacity);if(e instanceof Vm||(e=j_(e)),!e)return new Zg;if(e instanceof Zg)return e;e=e.rgb();var t=e.r/255,r=e.g/255,n=e.b/255,i=Math.min(t,r,n),a=Math.max(t,r,n),o=NaN,s=a-i,l=(a+i)/2;return s?(t===a?o=(r-n)/s+(r0&&l<1?0:o,new Zg(o,s,l,e.opacity)}function LE(e,t,r,n){return arguments.length===1?$Ee(e):new Zg(e,t,r,n==null?1:n)}function Zg(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}function JEe(e){return e=(e||0)%360,e<0?e+360:e}function gD(e){return Math.max(0,Math.min(1,e||0))}function oW(e,t,r){return(e<60?t+(r-t)*e/60:e<180?r:e<240?t+(r-t)*(240-e)/60:t)*255}var G_,k2,w5,kE,Um,bkt,wkt,Tkt,Akt,Skt,Mkt,Ekt,GEe,yD=su(()=>{vD();G_=.7,k2=1/G_,w5="\\s*([+-]?\\d+)\\s*",kE="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",Um="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",bkt=/^#([0-9a-f]{3,8})$/,wkt=new RegExp(`^rgb\\(${w5},${w5},${w5}\\)$`),Tkt=new RegExp(`^rgb\\(${Um},${Um},${Um}\\)$`),Akt=new RegExp(`^rgba\\(${w5},${w5},${w5},${kE}\\)$`),Skt=new RegExp(`^rgba\\(${Um},${Um},${Um},${kE}\\)$`),Mkt=new RegExp(`^hsl\\(${kE},${Um},${Um}\\)$`),Ekt=new RegExp(`^hsla\\(${kE},${Um},${Um},${kE}\\)$`),GEe={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Xy(Vm,j_,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:jEe,formatHex:jEe,formatHex8:kkt,formatHsl:Ckt,formatRgb:WEe,toString:WEe});Xy(hd,T5,H_(Vm,{brighter(e){return e=e==null?k2:Math.pow(k2,e),new hd(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?G_:Math.pow(G_,e),new hd(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new hd(E2(this.r),E2(this.g),E2(this.b),mD(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:XEe,formatHex:XEe,formatHex8:Lkt,formatRgb:YEe,toString:YEe}));Xy(Zg,LE,H_(Vm,{brighter(e){return e=e==null?k2:Math.pow(k2,e),new Zg(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?G_:Math.pow(G_,e),new Zg(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,t=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,n=r+(r<.5?r:1-r)*t,i=2*r-n;return new hd(oW(e>=240?e-240:e+120,i,n),oW(e,i,n),oW(e<120?e+240:e-120,i,n),this.opacity)},clamp(){return new Zg(JEe(this.h),gD(this.s),gD(this.l),mD(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){let e=mD(this.opacity);return`${e===1?"hsl(":"hsla("}${JEe(this.h)}, ${gD(this.s)*100}%, ${gD(this.l)*100}%${e===1?")":`, ${e})`}`}}))});var _D,xD,sW=su(()=>{_D=Math.PI/180,xD=180/Math.PI});function nke(e){if(e instanceof Hm)return new Hm(e.l,e.a,e.b,e.opacity);if(e instanceof Yy)return ake(e);e instanceof hd||(e=CE(e));var t=fW(e.r),r=fW(e.g),n=fW(e.b),i=lW((.2225045*t+.7168786*r+.0606169*n)/eke),a,o;return t===r&&r===n?a=o=i:(a=lW((.4360747*t+.3850649*r+.1430804*n)/QEe),o=lW((.0139322*t+.0971045*r+.7141733*n)/tke)),new Hm(116*i-16,500*(a-i),200*(i-o),e.opacity)}function S5(e,t,r,n){return arguments.length===1?nke(e):new Hm(e,t,r,n==null?1:n)}function Hm(e,t,r,n){this.l=+e,this.a=+t,this.b=+r,this.opacity=+n}function lW(e){return e>Pkt?Math.pow(e,1/3):e/ike+rke}function uW(e){return e>A5?e*e*e:ike*(e-rke)}function cW(e){return 255*(e<=.0031308?12.92*e:1.055*Math.pow(e,1/2.4)-.055)}function fW(e){return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}function Ikt(e){if(e instanceof Yy)return new Yy(e.h,e.c,e.l,e.opacity);if(e instanceof Hm||(e=nke(e)),e.a===0&&e.b===0)return new Yy(NaN,0{vD();yD();sW();bD=18,QEe=.96422,eke=1,tke=.82521,rke=4/29,A5=6/29,ike=3*A5*A5,Pkt=A5*A5*A5;Xy(Hm,S5,H_(Vm,{brighter(e){return new Hm(this.l+bD*(e==null?1:e),this.a,this.b,this.opacity)},darker(e){return new Hm(this.l-bD*(e==null?1:e),this.a,this.b,this.opacity)},rgb(){var e=(this.l+16)/116,t=isNaN(this.a)?e:e+this.a/500,r=isNaN(this.b)?e:e-this.b/200;return t=QEe*uW(t),e=eke*uW(e),r=tke*uW(r),new hd(cW(3.1338561*t-1.6168667*e-.4906146*r),cW(-.9787684*t+1.9161415*e+.033454*r),cW(.0719453*t-.2289914*e+1.4052427*r),this.opacity)}}));Xy(Yy,PE,H_(Vm,{brighter(e){return new Yy(this.h,this.c,this.l+bD*(e==null?1:e),this.opacity)},darker(e){return new Yy(this.h,this.c,this.l-bD*(e==null?1:e),this.opacity)},rgb(){return ake(this).rgb()}}))});function Rkt(e){if(e instanceof C2)return new C2(e.h,e.s,e.l,e.opacity);e instanceof hd||(e=CE(e));var t=e.r/255,r=e.g/255,n=e.b/255,i=(uke*n+ske*t-lke*r)/(uke+ske-lke),a=n-i,o=(IE*(r-i)-dW*a)/wD,s=Math.sqrt(o*o+a*a)/(IE*i*(1-i)),l=s?Math.atan2(o,a)*xD-120:NaN;return new C2(l<0?l+360:l,s,i,e.opacity)}function M5(e,t,r,n){return arguments.length===1?Rkt(e):new C2(e,t,r,n==null?1:n)}function C2(e,t,r,n){this.h=+e,this.s=+t,this.l=+r,this.opacity=+n}var cke,hW,dW,wD,IE,ske,lke,uke,fke=su(()=>{vD();yD();sW();cke=-.14861,hW=1.78277,dW=-.29227,wD=-.90649,IE=1.97294,ske=IE*wD,lke=IE*hW,uke=hW*dW-wD*cke;Xy(C2,M5,H_(Vm,{brighter(e){return e=e==null?k2:Math.pow(k2,e),new C2(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?G_:Math.pow(G_,e),new C2(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=isNaN(this.h)?0:(this.h+120)*_D,t=+this.l,r=isNaN(this.s)?0:this.s*t*(1-t),n=Math.cos(e),i=Math.sin(e);return new hd(255*(t+r*(cke*n+hW*i)),255*(t+r*(dW*n+wD*i)),255*(t+r*(IE*n)),this.opacity)}}))});var L2=su(()=>{yD();oke();fke()});function vW(e,t,r,n,i){var a=e*e,o=a*e;return((1-3*e+3*a-o)*t+(4-6*a+3*o)*r+(1+3*e+3*a-3*o)*n+o*i)/6}function TD(e){var t=e.length-1;return function(r){var n=r<=0?r=0:r>=1?(r=1,t-1):Math.floor(r*t),i=e[n],a=e[n+1],o=n>0?e[n-1]:2*i-a,s=n{});function SD(e){var t=e.length;return function(r){var n=Math.floor(((r%=1)<0?++r:r)*t),i=e[(n+t-1)%t],a=e[n%t],o=e[(n+1)%t],s=e[(n+2)%t];return vW((r-n/t)*t,i,a,o,s)}}var pW=su(()=>{AD()});var E5,gW=su(()=>{E5=e=>()=>e});function hke(e,t){return function(r){return e+r*t}}function Dkt(e,t,r){return e=Math.pow(e,r),t=Math.pow(t,r)-e,r=1/r,function(n){return Math.pow(e+n*t,r)}}function W_(e,t){var r=t-e;return r?hke(e,r>180||r<-180?r-360*Math.round(r/360):r):E5(isNaN(e)?t:e)}function dke(e){return(e=+e)==1?qf:function(t,r){return r-t?Dkt(t,r,e):E5(isNaN(t)?r:t)}}function qf(e,t){var r=t-e;return r?hke(e,r):E5(isNaN(e)?t:e)}var P2=su(()=>{gW()});function vke(e){return function(t){var r=t.length,n=new Array(r),i=new Array(r),a=new Array(r),o,s;for(o=0;o{L2();AD();pW();P2();RE=function e(t){var r=dke(t);function n(i,a){var o=r((i=T5(i)).r,(a=T5(a)).r),s=r(i.g,a.g),l=r(i.b,a.b),u=qf(i.opacity,a.opacity);return function(c){return i.r=o(c),i.g=s(c),i.b=l(c),i.opacity=u(c),i+""}}return n.gamma=e,n}(1);pke=vke(TD),gke=vke(SD)});function k5(e,t){t||(t=[]);var r=e?Math.min(t.length,e.length):0,n=t.slice(),i;return function(a){for(i=0;i{});function mke(e,t){return(MD(t)?k5:yW)(e,t)}function yW(e,t){var r=t?t.length:0,n=e?Math.min(r,e.length):0,i=new Array(n),a=new Array(r),o;for(o=0;o{DE();ED()});function kD(e,t){var r=new Date;return e=+e,t=+t,function(n){return r.setTime(e*(1-n)+t*n),r}}var xW=su(()=>{});function Fp(e,t){return e=+e,t=+t,function(r){return e*(1-r)+t*r}}var zE=su(()=>{});function CD(e,t){var r={},n={},i;(e===null||typeof e!="object")&&(e={}),(t===null||typeof t!="object")&&(t={});for(i in t)i in e?r[i]=Z_(e[i],t[i]):n[i]=t[i];return function(a){for(i in r)n[i]=r[i](a);return n}}var bW=su(()=>{DE()});function zkt(e){return function(){return e}}function Fkt(e){return function(t){return e(t)+""}}function LD(e,t){var r=TW.lastIndex=wW.lastIndex=0,n,i,a,o=-1,s=[],l=[];for(e=e+"",t=t+"";(n=TW.exec(e))&&(i=wW.exec(t));)(a=i.index)>r&&(a=t.slice(r,a),s[o]?s[o]+=a:s[++o]=a),(n=n[0])===(i=i[0])?s[o]?s[o]+=i:s[++o]=i:(s[++o]=null,l.push({i:o,x:Fp(n,i)})),r=wW.lastIndex;return r{zE();TW=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,wW=new RegExp(TW.source,"g")});function Z_(e,t){var r=typeof t,n;return t==null||r==="boolean"?E5(t):(r==="number"?Fp:r==="string"?(n=j_(t))?(t=n,RE):LD:t instanceof j_?RE:t instanceof Date?kD:MD(t)?k5:Array.isArray(t)?yW:typeof t.valueOf!="function"&&typeof t.toString!="function"||isNaN(t)?CD:Fp)(e,t)}var DE=su(()=>{L2();mW();_W();xW();zE();bW();AW();gW();ED()});function yke(e){var t=e.length;return function(r){return e[Math.max(0,Math.min(t-1,Math.floor(r*t)))]}}var _ke=su(()=>{});function xke(e,t){var r=W_(+e,+t);return function(n){var i=r(n);return i-360*Math.floor(i/360)}}var bke=su(()=>{P2()});function wke(e,t){return e=+e,t=+t,function(r){return Math.round(e*(1-r)+t*r)}}var Tke=su(()=>{});function SW(e,t,r,n,i,a){var o,s,l;return(o=Math.sqrt(e*e+t*t))&&(e/=o,t/=o),(l=e*r+t*n)&&(r-=e*l,n-=t*l),(s=Math.sqrt(r*r+n*n))&&(r/=s,n/=s,l/=s),e*n{Ake=180/Math.PI,PD={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1}});function Mke(e){let t=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return t.isIdentity?PD:SW(t.a,t.b,t.c,t.d,t.e,t.f)}function Eke(e){return e==null?PD:(ID||(ID=document.createElementNS("http://www.w3.org/2000/svg","g")),ID.setAttribute("transform",e),(e=ID.transform.baseVal.consolidate())?(e=e.matrix,SW(e.a,e.b,e.c,e.d,e.e,e.f)):PD)}var ID,kke=su(()=>{Ske()});function Cke(e,t,r,n){function i(u){return u.length?u.pop()+" ":""}function a(u,c,f,h,d,v){if(u!==f||c!==h){var x=d.push("translate(",null,t,null,r);v.push({i:x-4,x:Fp(u,f)},{i:x-2,x:Fp(c,h)})}else(f||h)&&d.push("translate("+f+t+h+r)}function o(u,c,f,h){u!==c?(u-c>180?c+=360:c-u>180&&(u+=360),h.push({i:f.push(i(f)+"rotate(",null,n)-2,x:Fp(u,c)})):c&&f.push(i(f)+"rotate("+c+n)}function s(u,c,f,h){u!==c?h.push({i:f.push(i(f)+"skewX(",null,n)-2,x:Fp(u,c)}):c&&f.push(i(f)+"skewX("+c+n)}function l(u,c,f,h,d,v){if(u!==f||c!==h){var x=d.push(i(d)+"scale(",null,",",null,")");v.push({i:x-4,x:Fp(u,f)},{i:x-2,x:Fp(c,h)})}else(f!==1||h!==1)&&d.push(i(d)+"scale("+f+","+h+")")}return function(u,c){var f=[],h=[];return u=e(u),c=e(c),a(u.translateX,u.translateY,c.translateX,c.translateY,f,h),o(u.rotate,c.rotate,f,h),s(u.skewX,c.skewX,f,h),l(u.scaleX,u.scaleY,c.scaleX,c.scaleY,f,h),u=c=null,function(d){for(var v=-1,x=h.length,b;++v{zE();kke();Lke=Cke(Mke,"px, ","px)","deg)"),Pke=Cke(Eke,", ",")",")")});function Rke(e){return((e=Math.exp(e))+1/e)/2}function Okt(e){return((e=Math.exp(e))-1/e)/2}function Bkt(e){return((e=Math.exp(2*e))-1)/(e+1)}var qkt,Dke,zke=su(()=>{qkt=1e-12;Dke=function e(t,r,n){function i(a,o){var s=a[0],l=a[1],u=a[2],c=o[0],f=o[1],h=o[2],d=c-s,v=f-l,x=d*d+v*v,b,g;if(x{L2();P2();qke=Fke(W_),Oke=Fke(qf)});function MW(e,t){var r=qf((e=S5(e)).l,(t=S5(t)).l),n=qf(e.a,t.a),i=qf(e.b,t.b),a=qf(e.opacity,t.opacity);return function(o){return e.l=r(o),e.a=n(o),e.b=i(o),e.opacity=a(o),e+""}}var Nke=su(()=>{L2();P2()});function Uke(e){return function(t,r){var n=e((t=PE(t)).h,(r=PE(r)).h),i=qf(t.c,r.c),a=qf(t.l,r.l),o=qf(t.opacity,r.opacity);return function(s){return t.h=n(s),t.c=i(s),t.l=a(s),t.opacity=o(s),t+""}}}var Vke,Hke,Gke=su(()=>{L2();P2();Vke=Uke(W_),Hke=Uke(qf)});function jke(e){return function t(r){r=+r;function n(i,a){var o=e((i=M5(i)).h,(a=M5(a)).h),s=qf(i.s,a.s),l=qf(i.l,a.l),u=qf(i.opacity,a.opacity);return function(c){return i.h=o(c),i.s=s(c),i.l=l(Math.pow(c,r)),i.opacity=u(c),i+""}}return n.gamma=t,n}(1)}var Wke,Zke,Xke=su(()=>{L2();P2();Wke=jke(W_),Zke=jke(qf)});function EW(e,t){t===void 0&&(t=e,e=Z_);for(var r=0,n=t.length-1,i=t[0],a=new Array(n<0?0:n);r{DE()});function Kke(e,t){for(var r=new Array(t),n=0;n{});var I2={};BQe(I2,{interpolate:()=>Z_,interpolateArray:()=>mke,interpolateBasis:()=>TD,interpolateBasisClosed:()=>SD,interpolateCubehelix:()=>Wke,interpolateCubehelixLong:()=>Zke,interpolateDate:()=>kD,interpolateDiscrete:()=>yke,interpolateHcl:()=>Vke,interpolateHclLong:()=>Hke,interpolateHsl:()=>qke,interpolateHslLong:()=>Oke,interpolateHue:()=>xke,interpolateLab:()=>MW,interpolateNumber:()=>Fp,interpolateNumberArray:()=>k5,interpolateObject:()=>CD,interpolateRgb:()=>RE,interpolateRgbBasis:()=>pke,interpolateRgbBasisClosed:()=>gke,interpolateRound:()=>wke,interpolateString:()=>LD,interpolateTransformCss:()=>Lke,interpolateTransformSvg:()=>Pke,interpolateZoom:()=>Dke,piecewise:()=>EW,quantize:()=>Kke});var R2=su(()=>{DE();_W();AD();pW();xW();_ke();bke();zE();ED();bW();Tke();AW();Ike();zke();mW();Bke();Nke();Gke();Xke();Yke();Jke()});var RD=ye((tdr,$ke)=>{"use strict";var Nkt=ao(),Ukt=va();$ke.exports=function(t,r,n,i,a){var o=r.data.data,s=o.i,l=a||o.color;if(s>=0){r.i=o.i;var u=n.marker;u.pattern?(!u.colors||!u.pattern.shape)&&(u.color=l,r.color=l):(u.color=l,r.color=l),Nkt.pointStyle(t,n,i,r)}else Ukt.fill(t,l)}});var kW=ye((rdr,iCe)=>{"use strict";var Qke=xa(),eCe=va(),tCe=Mr(),Vkt=_v().resizeText,Hkt=RD();function Gkt(e){var t=e._fullLayout._sunburstlayer.selectAll(".trace");Vkt(e,t,"sunburst"),t.each(function(r){var n=Qke.select(this),i=r[0],a=i.trace;n.style("opacity",a.opacity),n.selectAll("path.surface").each(function(o){Qke.select(this).call(rCe,o,a,e)})})}function rCe(e,t,r,n){var i=t.data.data,a=!t.children,o=i.i,s=tCe.castOption(r,o,"marker.line.color")||eCe.defaultLine,l=tCe.castOption(r,o,"marker.line.width")||0;e.call(Hkt,t,r,n).style("stroke-width",l).call(eCe.stroke,s).style("opacity",a?r.leaf.opacity:null)}iCe.exports={style:Gkt,styleOne:rCe}});var Ky=ye(bs=>{"use strict";var D2=Mr(),jkt=va(),Wkt=Tg(),nCe=l_();bs.findEntryWithLevel=function(e,t){var r;return t&&e.eachAfter(function(n){if(bs.getPtId(n)===t)return r=n.copy()}),r||e};bs.findEntryWithChild=function(e,t){var r;return e.eachAfter(function(n){for(var i=n.children||[],a=0;a0)};bs.getMaxDepth=function(e){return e.maxdepth>=0?e.maxdepth:1/0};bs.isHeader=function(e,t){return!(bs.isLeaf(e)||e.depth===t._maxDepth-1)};function aCe(e){return e.data.data.pid}bs.getParent=function(e,t){return bs.findEntryWithLevel(e,aCe(t))};bs.listPath=function(e,t){var r=e.parent;if(!r)return[];var n=t?[r.data[t]]:[r];return bs.listPath(r,t).concat(n)};bs.getPath=function(e){return bs.listPath(e,"label").join("/")+"/"};bs.formatValue=nCe.formatPieValue;bs.formatPercent=function(e,t){var r=D2.formatPercent(e,0);return r==="0%"&&(r=nCe.formatPiePercent(e,t)),r}});var OE=ye((ndr,lCe)=>{"use strict";var C5=xa(),oCe=ba(),Ykt=rp().appendArrayPointValue,FE=Nc(),sCe=Mr(),Kkt=g3(),Wh=Ky(),Jkt=l_(),$kt=Jkt.formatPieValue;lCe.exports=function(t,r,n,i,a){var o=i[0],s=o.trace,l=o.hierarchy,u=s.type==="sunburst",c=s.type==="treemap"||s.type==="icicle";"_hasHoverLabel"in s||(s._hasHoverLabel=!1),"_hasHoverEvent"in s||(s._hasHoverEvent=!1);var f=function(v){var x=n._fullLayout;if(!(n._dragging||x.hovermode===!1)){var b=n._fullData[s.index],g=v.data.data,E=g.i,k=Wh.isHierarchyRoot(v),A=Wh.getParent(l,v),L=Wh.getValue(v),_=function(Me){return sCe.castOption(b,E,Me)},C=_("hovertemplate"),M=FE.castHoverinfo(b,x,E),p=x.separators,P;if(C||M&&M!=="none"&&M!=="skip"){var T,F;u&&(T=o.cx+v.pxmid[0]*(1-v.rInscribed),F=o.cy+v.pxmid[1]*(1-v.rInscribed)),c&&(T=v._hoverX,F=v._hoverY);var q={},V=[],H=[],X=function(Me){return V.indexOf(Me)!==-1};M&&(V=M==="all"?b._module.attributes.hoverinfo.flags:M.split("+")),q.label=g.label,X("label")&&q.label&&H.push(q.label),g.hasOwnProperty("v")&&(q.value=g.v,q.valueLabel=$kt(q.value,p),X("value")&&H.push(q.valueLabel)),q.currentPath=v.currentPath=Wh.getPath(v.data),X("current path")&&!k&&H.push(q.currentPath);var G,N=[],W=function(){N.indexOf(G)===-1&&(H.push(G),N.push(G))};q.percentParent=v.percentParent=L/Wh.getValue(A),q.parent=v.parentString=Wh.getPtLabel(A),X("percent parent")&&(G=Wh.formatPercent(q.percentParent,p)+" of "+q.parent,W()),q.percentEntry=v.percentEntry=L/Wh.getValue(r),q.entry=v.entry=Wh.getPtLabel(r),X("percent entry")&&!k&&!v.onPathbar&&(G=Wh.formatPercent(q.percentEntry,p)+" of "+q.entry,W()),q.percentRoot=v.percentRoot=L/Wh.getValue(l),q.root=v.root=Wh.getPtLabel(l),X("percent root")&&!k&&(G=Wh.formatPercent(q.percentRoot,p)+" of "+q.root,W()),q.text=_("hovertext")||_("text"),X("text")&&(G=q.text,sCe.isValidTextValue(G)&&H.push(G)),P=[qE(v,b,a.eventDataKeys)];var re={trace:b,y:F,_x0:v._x0,_x1:v._x1,_y0:v._y0,_y1:v._y1,text:H.join("
"),name:C||X("name")?b.name:void 0,color:_("hoverlabel.bgcolor")||g.color,borderColor:_("hoverlabel.bordercolor"),fontFamily:_("hoverlabel.font.family"),fontSize:_("hoverlabel.font.size"),fontColor:_("hoverlabel.font.color"),fontWeight:_("hoverlabel.font.weight"),fontStyle:_("hoverlabel.font.style"),fontVariant:_("hoverlabel.font.variant"),nameLength:_("hoverlabel.namelength"),textAlign:_("hoverlabel.align"),hovertemplate:C,hovertemplateLabels:q,eventData:P};u&&(re.x0=T-v.rInscribed*v.rpx1,re.x1=T+v.rInscribed*v.rpx1,re.idealAlign=v.pxmid[0]<0?"left":"right"),c&&(re.x=T,re.idealAlign=T<0?"left":"right");var ae=[];FE.loneHover(re,{container:x._hoverlayer.node(),outerContainer:x._paper.node(),gd:n,inOut_bbox:ae}),P[0].bbox=ae[0],s._hasHoverLabel=!0}if(c){var _e=t.select("path.surface");a.styleOne(_e,v,b,n,{hovered:!0})}s._hasHoverEvent=!0,n.emit("plotly_hover",{points:P||[qE(v,b,a.eventDataKeys)],event:C5.event})}},h=function(v){var x=n._fullLayout,b=n._fullData[s.index],g=C5.select(this).datum();if(s._hasHoverEvent&&(v.originalEvent=C5.event,n.emit("plotly_unhover",{points:[qE(g,b,a.eventDataKeys)],event:C5.event}),s._hasHoverEvent=!1),s._hasHoverLabel&&(FE.loneUnhover(x._hoverlayer.node()),s._hasHoverLabel=!1),c){var E=t.select("path.surface");a.styleOne(E,g,b,n,{hovered:!1})}},d=function(v){var x=n._fullLayout,b=n._fullData[s.index],g=u&&(Wh.isHierarchyRoot(v)||Wh.isLeaf(v)),E=Wh.getPtId(v),k=Wh.isEntry(v)?Wh.findEntryWithChild(l,E):Wh.findEntryWithLevel(l,E),A=Wh.getPtId(k),L={points:[qE(v,b,a.eventDataKeys)],event:C5.event};g||(L.nextLevel=A);var _=Kkt.triggerHandler(n,"plotly_"+s.type+"click",L);if(_!==!1&&x.hovermode&&(n._hoverdata=[qE(v,b,a.eventDataKeys)],FE.click(n,C5.event)),!g&&_!==!1&&!n._dragging&&!n._transitioning){oCe.call("_storeDirectGUIEdit",b,x._tracePreGUI[b.uid],{level:b.level});var C={data:[{level:A}],traces:[s.index]},M={frame:{redraw:!1,duration:a.transitionTime},transition:{duration:a.transitionTime,easing:a.transitionEasing},mode:"immediate",fromcurrent:!0};FE.loneUnhover(x._hoverlayer.node()),oCe.call("animate",n,C,M)}};t.on("mouseover",f),t.on("mouseout",h),t.on("click",d)};function qE(e,t,r){for(var n=e.data.data,i={curveNumber:t.index,pointNumber:n.i,data:t._input,fullData:t},a=0;a{"use strict";var BE=xa(),Qkt=SE(),Xg=(R2(),ab(I2)).interpolate,uCe=ao(),bv=Mr(),eCt=Ll(),dCe=_v(),cCe=dCe.recordMinTextSize,tCt=dCe.clearMinTextSize,vCe=hD(),rCt=l_().getRotationAngle,iCt=vCe.computeTransform,nCt=vCe.transformInsideText,aCt=kW().styleOne,oCt=N0().resizeText,sCt=OE(),CW=nW(),sl=Ky();DD.plot=function(e,t,r,n){var i=e._fullLayout,a=i._sunburstlayer,o,s,l=!r,u=!i.uniformtext.mode&&sl.hasTransition(r);if(tCt("sunburst",i),o=a.selectAll("g.trace.sunburst").data(t,function(f){return f[0].trace.uid}),o.enter().append("g").classed("trace",!0).classed("sunburst",!0).attr("stroke-linejoin","round"),o.order(),u){n&&(s=n());var c=BE.transition().duration(r.duration).ease(r.easing).each("end",function(){s&&s()}).each("interrupt",function(){s&&s()});c.each(function(){a.selectAll("g.trace").each(function(f){fCe(e,f,this,r)})})}else o.each(function(f){fCe(e,f,this,r)}),i.uniformtext.mode&&oCt(e,i._sunburstlayer.selectAll(".trace"),"sunburst");l&&o.exit().remove()};function fCe(e,t,r,n){var i=e._context.staticPlot,a=e._fullLayout,o=!a.uniformtext.mode&&sl.hasTransition(n),s=BE.select(r),l=s.selectAll("g.slice"),u=t[0],c=u.trace,f=u.hierarchy,h=sl.findEntryWithLevel(f,c.level),d=sl.getMaxDepth(c),v=a._size,x=c.domain,b=v.w*(x.x[1]-x.x[0]),g=v.h*(x.y[1]-x.y[0]),E=.5*Math.min(b,g),k=u.cx=v.l+v.w*(x.x[1]+x.x[0])/2,A=u.cy=v.t+v.h*(1-x.y[0])-g/2;if(!h)return l.remove();var L=null,_={};o&&l.each(function(ge){_[sl.getPtId(ge)]={rpx0:ge.rpx0,rpx1:ge.rpx1,x0:ge.x0,x1:ge.x1,transform:ge.transform},!L&&sl.isEntry(ge)&&(L=ge)});var C=lCt(h).descendants(),M=h.height+1,p=0,P=d;u.hasMultipleRoots&&sl.isHierarchyRoot(h)&&(C=C.slice(1),M-=1,p=1,P+=1),C=C.filter(function(ge){return ge.y1<=P});var T=rCt(c.rotation);T&&C.forEach(function(ge){ge.x0+=T,ge.x1+=T});var F=Math.min(M,d),q=function(ge){return(ge-p)/F*E},V=function(ge,ie){return[ge*Math.cos(ie),-ge*Math.sin(ie)]},H=function(ge){return bv.pathAnnulus(ge.rpx0,ge.rpx1,ge.x0,ge.x1,k,A)},X=function(ge){return k+hCe(ge)[0]*(ge.transform.rCenter||0)+(ge.transform.x||0)},G=function(ge){return A+hCe(ge)[1]*(ge.transform.rCenter||0)+(ge.transform.y||0)};l=l.data(C,sl.getPtId),l.enter().append("g").classed("slice",!0),o?l.exit().transition().each(function(){var ge=BE.select(this),ie=ge.select("path.surface");ie.transition().attrTween("d",function(Ee){var Ae=ae(Ee);return function(ze){return H(Ae(ze))}});var Te=ge.select("g.slicetext");Te.attr("opacity",0)}).remove():l.exit().remove(),l.order();var N=null;if(o&&L){var W=sl.getPtId(L);l.each(function(ge){N===null&&sl.getPtId(ge)===W&&(N=ge.x1)})}var re=l;o&&(re=re.transition().each("end",function(){var ge=BE.select(this);sl.setSliceCursor(ge,e,{hideOnRoot:!0,hideOnLeaves:!0,isTransitioning:!1})})),re.each(function(ge){var ie=BE.select(this),Te=bv.ensureSingle(ie,"path","surface",function(Re){Re.style("pointer-events",i?"none":"all")});ge.rpx0=q(ge.y0),ge.rpx1=q(ge.y1),ge.xmid=(ge.x0+ge.x1)/2,ge.pxmid=V(ge.rpx1,ge.xmid),ge.midangle=-(ge.xmid-Math.PI/2),ge.startangle=-(ge.x0-Math.PI/2),ge.stopangle=-(ge.x1-Math.PI/2),ge.halfangle=.5*Math.min(bv.angleDelta(ge.x0,ge.x1)||Math.PI,Math.PI),ge.ring=1-ge.rpx0/ge.rpx1,ge.rInscribed=uCt(ge,c),o?Te.transition().attrTween("d",function(Re){var ce=_e(Re);return function(Ge){return H(ce(Ge))}}):Te.attr("d",H),ie.call(sCt,h,e,t,{eventDataKeys:CW.eventDataKeys,transitionTime:CW.CLICK_TRANSITION_TIME,transitionEasing:CW.CLICK_TRANSITION_EASING}).call(sl.setSliceCursor,e,{hideOnRoot:!0,hideOnLeaves:!0,isTransitioning:e._transitioning}),Te.call(aCt,ge,c,e);var Ee=bv.ensureSingle(ie,"g","slicetext"),Ae=bv.ensureSingle(Ee,"text","",function(Re){Re.attr("data-notex",1)}),ze=bv.ensureUniformFontSize(e,sl.determineTextFont(c,ge,a.font));Ae.text(DD.formatSliceLabel(ge,h,c,t,a)).classed("slicetext",!0).attr("text-anchor","middle").call(uCe.font,ze).call(eCt.convertToTspans,e);var Ce=uCe.bBox(Ae.node());ge.transform=nCt(Ce,ge,u),ge.transform.targetX=X(ge),ge.transform.targetY=G(ge);var me=function(Re,ce){var Ge=Re.transform;return iCt(Ge,ce),Ge.fontSize=ze.size,cCe(c.type,Ge,a),bv.getTextTransform(Ge)};o?Ae.transition().attrTween("transform",function(Re){var ce=Me(Re);return function(Ge){return me(ce(Ge),Ce)}}):Ae.attr("transform",me(ge,Ce))});function ae(ge){var ie=sl.getPtId(ge),Te=_[ie],Ee=_[sl.getPtId(h)],Ae;if(Ee){var ze=(ge.x1>Ee.x1?2*Math.PI:0)+T;Ae=ge.rpx1N?2*Math.PI:0)+T;Te={x0:Ae,x1:Ae}}else Te={rpx0:E,rpx1:E},bv.extendFlat(Te,ke(ge));else Te={rpx0:0,rpx1:0};else Te={x0:T,x1:T};return Xg(Te,Ee)}function Me(ge){var ie=_[sl.getPtId(ge)],Te,Ee=ge.transform;if(ie)Te=ie;else if(Te={rpx1:ge.rpx1,transform:{textPosAngle:Ee.textPosAngle,scale:0,rotate:Ee.rotate,rCenter:Ee.rCenter,x:Ee.x,y:Ee.y}},L)if(ge.parent)if(N){var Ae=ge.x1>N?2*Math.PI:0;Te.x0=Te.x1=Ae}else bv.extendFlat(Te,ke(ge));else Te.x0=Te.x1=T;else Te.x0=Te.x1=T;var ze=Xg(Te.transform.textPosAngle,ge.transform.textPosAngle),Ce=Xg(Te.rpx1,ge.rpx1),me=Xg(Te.x0,ge.x0),Re=Xg(Te.x1,ge.x1),ce=Xg(Te.transform.scale,Ee.scale),Ge=Xg(Te.transform.rotate,Ee.rotate),nt=Ee.rCenter===0?3:Te.transform.rCenter===0?1/3:1,ct=Xg(Te.transform.rCenter,Ee.rCenter),qt=function(rt){return ct(Math.pow(rt,nt))};return function(rt){var ot=Ce(rt),Rt=me(rt),kt=Re(rt),Ct=qt(rt),Yt=V(ot,(Rt+kt)/2),xr=ze(rt),er={pxmid:Yt,rpx1:ot,transform:{textPosAngle:xr,rCenter:Ct,x:Ee.x,y:Ee.y}};return cCe(c.type,Ee,a),{transform:{targetX:X(er),targetY:G(er),scale:ce(rt),rotate:Ge(rt),rCenter:Ct}}}}function ke(ge){var ie=ge.parent,Te=_[sl.getPtId(ie)],Ee={};if(Te){var Ae=ie.children,ze=Ae.indexOf(ge),Ce=Ae.length,me=Xg(Te.x0,Te.x1);Ee.x0=me(ze/Ce),Ee.x1=me(ze/Ce)}else Ee.x0=Ee.x1=0;return Ee}}function lCt(e){return Qkt.partition().size([2*Math.PI,e.height+1])(e)}DD.formatSliceLabel=function(e,t,r,n,i){var a=r.texttemplate,o=r.textinfo;if(!a&&(!o||o==="none"))return"";var s=i.separators,l=n[0],u=e.data.data,c=l.hierarchy,f=sl.isHierarchyRoot(e),h=sl.getParent(c,e),d=sl.getValue(e);if(!a){var v=o.split("+"),x=function(p){return v.indexOf(p)!==-1},b=[],g;if(x("label")&&u.label&&b.push(u.label),u.hasOwnProperty("v")&&x("value")&&b.push(sl.formatValue(u.v,s)),!f){x("current path")&&b.push(sl.getPath(e.data));var E=0;x("percent parent")&&E++,x("percent entry")&&E++,x("percent root")&&E++;var k=E>1;if(E){var A,L=function(p){g=sl.formatPercent(A,s),k&&(g+=" of "+p),b.push(g)};x("percent parent")&&!f&&(A=d/sl.getValue(h),L("parent")),x("percent entry")&&(A=d/sl.getValue(t),L("entry")),x("percent root")&&(A=d/sl.getValue(c),L("root"))}}return x("text")&&(g=bv.castOption(r,u.i,"text"),bv.isValidTextValue(g)&&b.push(g)),b.join("
")}var _=bv.castOption(r,u.i,"texttemplate");if(!_)return"";var C={};u.label&&(C.label=u.label),u.hasOwnProperty("v")&&(C.value=u.v,C.valueLabel=sl.formatValue(u.v,s)),C.currentPath=sl.getPath(e.data),f||(C.percentParent=d/sl.getValue(h),C.percentParentLabel=sl.formatPercent(C.percentParent,s),C.parent=sl.getPtLabel(h)),C.percentEntry=d/sl.getValue(t),C.percentEntryLabel=sl.formatPercent(C.percentEntry,s),C.entry=sl.getPtLabel(t),C.percentRoot=d/sl.getValue(c),C.percentRootLabel=sl.formatPercent(C.percentRoot,s),C.root=sl.getPtLabel(c),u.hasOwnProperty("color")&&(C.color=u.color);var M=bv.castOption(r,u.i,"text");return(bv.isValidTextValue(M)||M==="")&&(C.text=M),C.customdata=bv.castOption(r,u.i,"customdata"),bv.texttemplateString(_,C,i._d3locale,C,r._meta||{})};function uCt(e){return e.rpx0===0&&bv.isFullCircle([e.x0,e.x1])?1:Math.max(0,Math.min(1/(1+1/Math.sin(e.halfangle)),e.ring/2))}function hCe(e){return cCt(e.rpx1,e.transform.textPosAngle)}function cCt(e,t){return[e*Math.sin(t),-e*Math.cos(t)]}});var gCe=ye((odr,pCe)=>{"use strict";pCe.exports={moduleType:"trace",name:"sunburst",basePlotModule:LEe(),categories:[],animatable:!0,attributes:AE(),layoutAttributes:aW(),supplyDefaults:OEe(),supplyLayoutDefaults:NEe(),calc:EE().calc,crossTraceCalc:EE().crossTraceCalc,plot:zD().plot,style:kW().style,colorbar:Kd(),meta:{}}});var yCe=ye((sdr,mCe)=>{"use strict";mCe.exports=gCe()});var xCe=ye(L5=>{"use strict";var _Ce=Xu();L5.name="treemap";L5.plot=function(e,t,r,n){_Ce.plotBasePlot(L5.name,e,t,r,n)};L5.clean=function(e,t,r,n){_Ce.cleanBasePlot(L5.name,e,t,r,n)}});var z2=ye((udr,bCe)=>{"use strict";bCe.exports={CLICK_TRANSITION_TIME:750,CLICK_TRANSITION_EASING:"poly",eventDataKeys:["currentPath","root","entry","percentRoot","percentEntry","percentParent"],gapWithPathbar:1}});var FD=ye((cdr,TCe)=>{"use strict";var fCt=Wo().hovertemplateAttrs,hCt=Wo().texttemplateAttrs,dCt=Kl(),vCt=Ju().attributes,F2=A2(),Q0=AE(),wCe=z2(),LW=no().extendFlat,pCt=Ed().pattern;TCe.exports={labels:Q0.labels,parents:Q0.parents,values:Q0.values,branchvalues:Q0.branchvalues,count:Q0.count,level:Q0.level,maxdepth:Q0.maxdepth,tiling:{packing:{valType:"enumerated",values:["squarify","binary","dice","slice","slice-dice","dice-slice"],dflt:"squarify",editType:"plot"},squarifyratio:{valType:"number",min:1,dflt:1,editType:"plot"},flip:{valType:"flaglist",flags:["x","y"],dflt:"",editType:"plot"},pad:{valType:"number",min:0,dflt:3,editType:"plot"},editType:"calc"},marker:LW({pad:{t:{valType:"number",min:0,editType:"plot"},l:{valType:"number",min:0,editType:"plot"},r:{valType:"number",min:0,editType:"plot"},b:{valType:"number",min:0,editType:"plot"},editType:"calc"},colors:Q0.marker.colors,pattern:pCt,depthfade:{valType:"enumerated",values:[!0,!1,"reversed"],editType:"style"},line:Q0.marker.line,cornerradius:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"calc"},dCt("marker",{colorAttr:"colors",anim:!1})),pathbar:{visible:{valType:"boolean",dflt:!0,editType:"plot"},side:{valType:"enumerated",values:["top","bottom"],dflt:"top",editType:"plot"},edgeshape:{valType:"enumerated",values:[">","<","|","/","\\"],dflt:">",editType:"plot"},thickness:{valType:"number",min:12,editType:"plot"},textfont:LW({},F2.textfont,{}),editType:"calc"},text:F2.text,textinfo:Q0.textinfo,texttemplate:hCt({editType:"plot"},{keys:wCe.eventDataKeys.concat(["label","value"])}),hovertext:F2.hovertext,hoverinfo:Q0.hoverinfo,hovertemplate:fCt({},{keys:wCe.eventDataKeys}),textfont:F2.textfont,insidetextfont:F2.insidetextfont,outsidetextfont:LW({},F2.outsidetextfont,{}),textposition:{valType:"enumerated",values:["top left","top center","top right","middle left","middle center","middle right","bottom left","bottom center","bottom right"],dflt:"top left",editType:"plot"},sort:F2.sort,root:Q0.root,domain:vCt({name:"treemap",trace:!0,editType:"calc"})}});var PW=ye((fdr,ACe)=>{"use strict";ACe.exports={treemapcolorway:{valType:"colorlist",editType:"calc"},extendtreemapcolors:{valType:"boolean",dflt:!0,editType:"calc"}}});var kCe=ye((hdr,ECe)=>{"use strict";var SCe=Mr(),gCt=FD(),mCt=va(),yCt=Ju().defaults,_Ct=r0().handleText,xCt=Qb().TEXTPAD,bCt=S2().handleMarkerDefaults,MCe=Mu(),wCt=MCe.hasColorscale,TCt=MCe.handleDefaults;ECe.exports=function(t,r,n,i){function a(b,g){return SCe.coerce(t,r,gCt,b,g)}var o=a("labels"),s=a("parents");if(!o||!o.length||!s||!s.length){r.visible=!1;return}var l=a("values");l&&l.length?a("branchvalues"):a("count"),a("level"),a("maxdepth");var u=a("tiling.packing");u==="squarify"&&a("tiling.squarifyratio"),a("tiling.flip"),a("tiling.pad");var c=a("text");a("texttemplate"),r.texttemplate||a("textinfo",SCe.isArrayOrTypedArray(c)?"text+label":"label"),a("hovertext"),a("hovertemplate");var f=a("pathbar.visible"),h="auto";_Ct(t,r,i,a,h,{hasPathbar:f,moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),a("textposition");var d=r.textposition.indexOf("bottom")!==-1;bCt(t,r,i,a);var v=r._hasColorscale=wCt(t,"marker","colors")||(t.marker||{}).coloraxis;v?TCt(t,r,i,a,{prefix:"marker.",cLetter:"c"}):a("marker.depthfade",!(r.marker.colors||[]).length);var x=r.textfont.size*2;a("marker.pad.t",d?x/4:x),a("marker.pad.l",x/4),a("marker.pad.r",x/4),a("marker.pad.b",d?x:x/4),a("marker.cornerradius"),r._hovered={marker:{line:{width:2,color:mCt.contrast(i.paper_bgcolor)}}},f&&(a("pathbar.thickness",r.pathbar.textfont.size+2*xCt),a("pathbar.side"),a("pathbar.edgeshape")),a("sort"),a("root.color"),yCt(r,i,a),r._length=null}});var LCe=ye((ddr,CCe)=>{"use strict";var ACt=Mr(),SCt=PW();CCe.exports=function(t,r){function n(i,a){return ACt.coerce(t,r,SCt,i,a)}n("treemapcolorway",r.colorway),n("extendtreemapcolors")}});var RW=ye(IW=>{"use strict";var PCe=EE();IW.calc=function(e,t){return PCe.calc(e,t)};IW.crossTraceCalc=function(e){return PCe._runCrossTraceCalc("treemap",e)}});var DW=ye((pdr,ICe)=>{"use strict";ICe.exports=function e(t,r,n){var i;n.swapXY&&(i=t.x0,t.x0=t.y0,t.y0=i,i=t.x1,t.x1=t.y1,t.y1=i),n.flipX&&(i=t.x0,t.x0=r[0]-t.x1,t.x1=r[0]-i),n.flipY&&(i=t.y0,t.y0=r[1]-t.y1,t.y1=r[1]-i);var a=t.children;if(a)for(var o=0;o{"use strict";var P5=SE(),MCt=DW();RCe.exports=function(t,r,n){var i=n.flipX,a=n.flipY,o=n.packing==="dice-slice",s=n.pad[a?"bottom":"top"],l=n.pad[i?"right":"left"],u=n.pad[i?"left":"right"],c=n.pad[a?"top":"bottom"],f;o&&(f=l,l=s,s=f,f=u,u=c,c=f);var h=P5.treemap().tile(ECt(n.packing,n.squarifyratio)).paddingInner(n.pad.inner).paddingLeft(l).paddingRight(u).paddingTop(s).paddingBottom(c).size(o?[r[1],r[0]]:r)(t);return(o||i||a)&&MCt(h,r,{swapXY:o,flipX:i,flipY:a}),h};function ECt(e,t){switch(e){case"squarify":return P5.treemapSquarify.ratio(t);case"binary":return P5.treemapBinary;case"dice":return P5.treemapDice;case"slice":return P5.treemapSlice;default:return P5.treemapSliceDice}}});var qD=ye((mdr,qCe)=>{"use strict";var DCe=xa(),I5=va(),zCe=Mr(),FW=Ky(),kCt=_v().resizeText,CCt=RD();function LCt(e){var t=e._fullLayout._treemaplayer.selectAll(".trace");kCt(e,t,"treemap"),t.each(function(r){var n=DCe.select(this),i=r[0],a=i.trace;n.style("opacity",a.opacity),n.selectAll("path.surface").each(function(o){DCe.select(this).call(FCe,o,a,e,{hovered:!1})})})}function FCe(e,t,r,n,i){var a=(i||{}).hovered,o=t.data.data,s=o.i,l,u,c=o.color,f=FW.isHierarchyRoot(t),h=1;if(a)l=r._hovered.marker.line.color,u=r._hovered.marker.line.width;else if(f&&c===r.root.color)h=100,l="rgba(0,0,0,0)",u=0;else if(l=zCe.castOption(r,s,"marker.line.color")||I5.defaultLine,u=zCe.castOption(r,s,"marker.line.width")||0,!r._hasColorscale&&!t.onPathbar){var d=r.marker.depthfade;if(d){var v=I5.combine(I5.addOpacity(r._backgroundColor,.75),c),x;if(d===!0){var b=FW.getMaxDepth(r);isFinite(b)?FW.isLeaf(t)?x=0:x=r._maxVisibleLayers-(t.data.depth-r._entryDepth):x=t.data.height+1}else x=t.data.depth-r._entryDepth,r._atRootLevel||x++;if(x>0)for(var g=0;g{"use strict";var OCe=xa(),OD=Mr(),BCe=ao(),PCt=Ll(),ICt=zW(),NCe=qD().styleOne,qW=z2(),R5=Ky(),RCt=OE(),OW=!0;UCe.exports=function(t,r,n,i,a){var o=a.barDifY,s=a.width,l=a.height,u=a.viewX,c=a.viewY,f=a.pathSlice,h=a.toMoveInsideSlice,d=a.strTransform,v=a.hasTransition,x=a.handleSlicesExit,b=a.makeUpdateSliceInterpolator,g=a.makeUpdateTextInterpolator,E={},k=t._context.staticPlot,A=t._fullLayout,L=r[0],_=L.trace,C=L.hierarchy,M=s/_._entryDepth,p=R5.listPath(n.data,"id"),P=ICt(C.copy(),[s,l],{packing:"dice",pad:{inner:0,top:0,left:0,right:0,bottom:0}}).descendants();P=P.filter(function(F){var q=p.indexOf(F.data.id);return q===-1?!1:(F.x0=M*q,F.x1=M*(q+1),F.y0=o,F.y1=o+l,F.onPathbar=!0,!0)}),P.reverse(),i=i.data(P,R5.getPtId),i.enter().append("g").classed("pathbar",!0),x(i,OW,E,[s,l],f),i.order();var T=i;v&&(T=T.transition().each("end",function(){var F=OCe.select(this);R5.setSliceCursor(F,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:!1})})),T.each(function(F){F._x0=u(F.x0),F._x1=u(F.x1),F._y0=c(F.y0),F._y1=c(F.y1),F._hoverX=u(F.x1-Math.min(s,l)/2),F._hoverY=c(F.y1-l/2);var q=OCe.select(this),V=OD.ensureSingle(q,"path","surface",function(N){N.style("pointer-events",k?"none":"all")});v?V.transition().attrTween("d",function(N){var W=b(N,OW,E,[s,l]);return function(re){return f(W(re))}}):V.attr("d",f),q.call(RCt,n,t,r,{styleOne:NCe,eventDataKeys:qW.eventDataKeys,transitionTime:qW.CLICK_TRANSITION_TIME,transitionEasing:qW.CLICK_TRANSITION_EASING}).call(R5.setSliceCursor,t,{hideOnRoot:!1,hideOnLeaves:!1,isTransitioning:t._transitioning}),V.call(NCe,F,_,t,{hovered:!1}),F._text=(R5.getPtLabel(F)||"").split("
").join(" ")||"";var H=OD.ensureSingle(q,"g","slicetext"),X=OD.ensureSingle(H,"text","",function(N){N.attr("data-notex",1)}),G=OD.ensureUniformFontSize(t,R5.determineTextFont(_,F,A.font,{onPathbar:!0}));X.text(F._text||" ").classed("slicetext",!0).attr("text-anchor","start").call(BCe.font,G).call(PCt.convertToTspans,t),F.textBB=BCe.bBox(X.node()),F.transform=h(F,{fontSize:G.size,onPathbar:!0}),F.transform.fontSize=G.size,v?X.transition().attrTween("transform",function(N){var W=g(N,OW,E,[s,l]);return function(re){return d(W(re))}}):X.attr("transform",d(F))})}});var WCe=ye((_dr,jCe)=>{"use strict";var HCe=xa(),BW=(R2(),ab(I2)).interpolate,X_=Ky(),NE=Mr(),GCe=Qb().TEXTPAD,DCt=i2(),zCt=DCt.toMoveInsideBar,FCt=_v(),NW=FCt.recordMinTextSize,qCt=z2(),OCt=VCe();function q2(e){return X_.isHierarchyRoot(e)?"":X_.getPtId(e)}jCe.exports=function(t,r,n,i,a){var o=t._fullLayout,s=r[0],l=s.trace,u=l.type,c=u==="icicle",f=s.hierarchy,h=X_.findEntryWithLevel(f,l.level),d=HCe.select(n),v=d.selectAll("g.pathbar"),x=d.selectAll("g.slice");if(!h){v.remove(),x.remove();return}var b=X_.isHierarchyRoot(h),g=!o.uniformtext.mode&&X_.hasTransition(i),E=X_.getMaxDepth(l),k=function(Ke){return Ke.data.depth-h.data.depth-1?C+P:-(p+P):0,F={x0:M,x1:M,y0:T,y1:T+p},q=function(Ke,xt,bt){var Lt=l.tiling.pad,St=function($t){return $t-Lt<=xt.x0},Et=function($t){return $t+Lt>=xt.x1},dt=function($t){return $t-Lt<=xt.y0},Ht=function($t){return $t+Lt>=xt.y1};return Ke.x0===xt.x0&&Ke.x1===xt.x1&&Ke.y0===xt.y0&&Ke.y1===xt.y1?{x0:Ke.x0,x1:Ke.x1,y0:Ke.y0,y1:Ke.y1}:{x0:St(Ke.x0-Lt)?0:Et(Ke.x0-Lt)?bt[0]:Ke.x0,x1:St(Ke.x1+Lt)?0:Et(Ke.x1+Lt)?bt[0]:Ke.x1,y0:dt(Ke.y0-Lt)?0:Ht(Ke.y0-Lt)?bt[1]:Ke.y0,y1:dt(Ke.y1+Lt)?0:Ht(Ke.y1+Lt)?bt[1]:Ke.y1}},V=null,H={},X={},G=null,N=function(Ke,xt){return xt?H[q2(Ke)]:X[q2(Ke)]},W=function(Ke,xt,bt,Lt){if(xt)return H[q2(f)]||F;var St=X[l.level]||bt;return k(Ke)?q(Ke,St,Lt):{}};s.hasMultipleRoots&&b&&E++,l._maxDepth=E,l._backgroundColor=o.paper_bgcolor,l._entryDepth=h.data.depth,l._atRootLevel=b;var re=-_/2+A.l+A.w*(L.x[1]+L.x[0])/2,ae=-C/2+A.t+A.h*(1-(L.y[1]+L.y[0])/2),_e=function(Ke){return re+Ke},Me=function(Ke){return ae+Ke},ke=Me(0),ge=_e(0),ie=function(Ke){return ge+Ke},Te=function(Ke){return ke+Ke};function Ee(Ke,xt){return Ke+","+xt}var Ae=ie(0),ze=function(Ke){Ke.x=Math.max(Ae,Ke.x)},Ce=l.pathbar.edgeshape,me=function(Ke){var xt=ie(Math.max(Math.min(Ke.x0,Ke.x0),0)),bt=ie(Math.min(Math.max(Ke.x1,Ke.x1),M)),Lt=Te(Ke.y0),St=Te(Ke.y1),Et=p/2,dt={},Ht={};dt.x=xt,Ht.x=bt,dt.y=Ht.y=(Lt+St)/2;var $t={x:xt,y:Lt},fr={x:bt,y:Lt},_r={x:bt,y:St},Br={x:xt,y:St};return Ce===">"?($t.x-=Et,fr.x-=Et,_r.x-=Et,Br.x-=Et):Ce==="/"?(_r.x-=Et,Br.x-=Et,dt.x-=Et/2,Ht.x-=Et/2):Ce==="\\"?($t.x-=Et,fr.x-=Et,dt.x-=Et/2,Ht.x-=Et/2):Ce==="<"&&(dt.x-=Et,Ht.x-=Et),ze($t),ze(Br),ze(dt),ze(fr),ze(_r),ze(Ht),"M"+Ee($t.x,$t.y)+"L"+Ee(fr.x,fr.y)+"L"+Ee(Ht.x,Ht.y)+"L"+Ee(_r.x,_r.y)+"L"+Ee(Br.x,Br.y)+"L"+Ee(dt.x,dt.y)+"Z"},Re=l[c?"tiling":"marker"].pad,ce=function(Ke){return l.textposition.indexOf(Ke)!==-1},Ge=ce("top"),nt=ce("left"),ct=ce("right"),qt=ce("bottom"),rt=function(Ke){var xt=_e(Ke.x0),bt=_e(Ke.x1),Lt=Me(Ke.y0),St=Me(Ke.y1),Et=bt-xt,dt=St-Lt;if(!Et||!dt)return"";var Ht=l.marker.cornerradius||0,$t=Math.min(Ht,Et/2,dt/2);$t&&Ke.data&&Ke.data.data&&Ke.data.data.label&&(Ge&&($t=Math.min($t,Re.t)),nt&&($t=Math.min($t,Re.l)),ct&&($t=Math.min($t,Re.r)),qt&&($t=Math.min($t,Re.b)));var fr=function(_r,Br){return $t?"a"+Ee($t,$t)+" 0 0 1 "+Ee(_r,Br):""};return"M"+Ee(xt,Lt+$t)+fr($t,-$t)+"L"+Ee(bt-$t,Lt)+fr($t,$t)+"L"+Ee(bt,St-$t)+fr(-$t,$t)+"L"+Ee(xt+$t,St)+fr(-$t,-$t)+"Z"},ot=function(Ke,xt){var bt=Ke.x0,Lt=Ke.x1,St=Ke.y0,Et=Ke.y1,dt=Ke.textBB,Ht=Ge||xt.isHeader&&!qt,$t=Ht?"start":qt?"end":"middle",fr=ce("right"),_r=ce("left")||xt.onPathbar,Br=_r?-1:fr?1:0;if(xt.isHeader){if(bt+=(c?Re:Re.l)-GCe,Lt-=(c?Re:Re.r)-GCe,bt>=Lt){var Or=(bt+Lt)/2;bt=Or,Lt=Or}var Nr;qt?(Nr=Et-(c?Re:Re.b),St{"use strict";var BCt=xa(),NCt=Ky(),UCt=_v(),VCt=UCt.clearMinTextSize,HCt=N0().resizeText,ZCe=WCe();XCe.exports=function(t,r,n,i,a){var o=a.type,s=a.drawDescendants,l=t._fullLayout,u=l["_"+o+"layer"],c,f,h=!n;if(VCt(o,l),c=u.selectAll("g.trace."+o).data(r,function(v){return v[0].trace.uid}),c.enter().append("g").classed("trace",!0).classed(o,!0),c.order(),!l.uniformtext.mode&&NCt.hasTransition(n)){i&&(f=i());var d=BCt.transition().duration(n.duration).ease(n.easing).each("end",function(){f&&f()}).each("interrupt",function(){f&&f()});d.each(function(){u.selectAll("g.trace").each(function(v){ZCe(t,v,this,n,s)})})}else c.each(function(v){ZCe(t,v,this,n,s)}),l.uniformtext.mode&&HCt(t,u.selectAll(".trace"),o);h&&c.exit().remove()}});var QCe=ye((bdr,$Ce)=>{"use strict";var YCe=xa(),BD=Mr(),KCe=ao(),GCt=Ll(),jCt=zW(),JCe=qD().styleOne,VW=z2(),Y_=Ky(),WCt=OE(),ZCt=zD().formatSliceLabel,HW=!1;$Ce.exports=function(t,r,n,i,a){var o=a.width,s=a.height,l=a.viewX,u=a.viewY,c=a.pathSlice,f=a.toMoveInsideSlice,h=a.strTransform,d=a.hasTransition,v=a.handleSlicesExit,x=a.makeUpdateSliceInterpolator,b=a.makeUpdateTextInterpolator,g=a.prevEntry,E={},k=t._context.staticPlot,A=t._fullLayout,L=r[0],_=L.trace,C=_.textposition.indexOf("left")!==-1,M=_.textposition.indexOf("right")!==-1,p=_.textposition.indexOf("bottom")!==-1,P=!p&&!_.marker.pad.t||p&&!_.marker.pad.b,T=jCt(n,[o,s],{packing:_.tiling.packing,squarifyratio:_.tiling.squarifyratio,flipX:_.tiling.flip.indexOf("x")>-1,flipY:_.tiling.flip.indexOf("y")>-1,pad:{inner:_.tiling.pad,top:_.marker.pad.t,left:_.marker.pad.l,right:_.marker.pad.r,bottom:_.marker.pad.b}}),F=T.descendants(),q=1/0,V=-1/0;F.forEach(function(W){var re=W.depth;re>=_._maxDepth?(W.x0=W.x1=(W.x0+W.x1)/2,W.y0=W.y1=(W.y0+W.y1)/2):(q=Math.min(q,re),V=Math.max(V,re))}),i=i.data(F,Y_.getPtId),_._maxVisibleLayers=isFinite(V)?V-q+1:0,i.enter().append("g").classed("slice",!0),v(i,HW,E,[o,s],c),i.order();var H=null;if(d&&g){var X=Y_.getPtId(g);i.each(function(W){H===null&&Y_.getPtId(W)===X&&(H={x0:W.x0,x1:W.x1,y0:W.y0,y1:W.y1})})}var G=function(){return H||{x0:0,x1:o,y0:0,y1:s}},N=i;return d&&(N=N.transition().each("end",function(){var W=YCe.select(this);Y_.setSliceCursor(W,t,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})})),N.each(function(W){var re=Y_.isHeader(W,_);W._x0=l(W.x0),W._x1=l(W.x1),W._y0=u(W.y0),W._y1=u(W.y1),W._hoverX=l(W.x1-_.marker.pad.r),W._hoverY=u(p?W.y1-_.marker.pad.b/2:W.y0+_.marker.pad.t/2);var ae=YCe.select(this),_e=BD.ensureSingle(ae,"path","surface",function(Ee){Ee.style("pointer-events",k?"none":"all")});d?_e.transition().attrTween("d",function(Ee){var Ae=x(Ee,HW,G(),[o,s]);return function(ze){return c(Ae(ze))}}):_e.attr("d",c),ae.call(WCt,n,t,r,{styleOne:JCe,eventDataKeys:VW.eventDataKeys,transitionTime:VW.CLICK_TRANSITION_TIME,transitionEasing:VW.CLICK_TRANSITION_EASING}).call(Y_.setSliceCursor,t,{isTransitioning:t._transitioning}),_e.call(JCe,W,_,t,{hovered:!1}),W.x0===W.x1||W.y0===W.y1?W._text="":re?W._text=P?"":Y_.getPtLabel(W)||"":W._text=ZCt(W,n,_,r,A)||"";var Me=BD.ensureSingle(ae,"g","slicetext"),ke=BD.ensureSingle(Me,"text","",function(Ee){Ee.attr("data-notex",1)}),ge=BD.ensureUniformFontSize(t,Y_.determineTextFont(_,W,A.font)),ie=W._text||" ",Te=re&&ie.indexOf("
")===-1;ke.text(ie).classed("slicetext",!0).attr("text-anchor",M?"end":C||Te?"start":"middle").call(KCe.font,ge).call(GCt.convertToTspans,t),W.textBB=KCe.bBox(ke.node()),W.transform=f(W,{fontSize:ge.size,isHeader:re}),W.transform.fontSize=ge.size,d?ke.transition().attrTween("transform",function(Ee){var Ae=b(Ee,HW,G(),[o,s]);return function(ze){return h(Ae(ze))}}):ke.attr("transform",h(W))}),H}});var t6e=ye((wdr,e6e)=>{"use strict";var XCt=UW(),YCt=QCe();e6e.exports=function(t,r,n,i){return XCt(t,r,n,i,{type:"treemap",drawDescendants:YCt})}});var i6e=ye((Tdr,r6e)=>{"use strict";r6e.exports={moduleType:"trace",name:"treemap",basePlotModule:xCe(),categories:[],animatable:!0,attributes:FD(),layoutAttributes:PW(),supplyDefaults:kCe(),supplyLayoutDefaults:LCe(),calc:RW().calc,crossTraceCalc:RW().crossTraceCalc,plot:t6e(),style:qD().style,colorbar:Kd(),meta:{}}});var a6e=ye((Adr,n6e)=>{"use strict";n6e.exports=i6e()});var s6e=ye(D5=>{"use strict";var o6e=Xu();D5.name="icicle";D5.plot=function(e,t,r,n){o6e.plotBasePlot(D5.name,e,t,r,n)};D5.clean=function(e,t,r,n){o6e.cleanBasePlot(D5.name,e,t,r,n)}});var GW=ye((Mdr,u6e)=>{"use strict";var KCt=Wo().hovertemplateAttrs,JCt=Wo().texttemplateAttrs,$Ct=Kl(),QCt=Ju().attributes,UE=A2(),o0=AE(),ND=FD(),l6e=z2(),e6t=no().extendFlat,t6t=Ed().pattern;u6e.exports={labels:o0.labels,parents:o0.parents,values:o0.values,branchvalues:o0.branchvalues,count:o0.count,level:o0.level,maxdepth:o0.maxdepth,tiling:{orientation:{valType:"enumerated",values:["v","h"],dflt:"h",editType:"plot"},flip:ND.tiling.flip,pad:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"calc"},marker:e6t({colors:o0.marker.colors,line:o0.marker.line,pattern:t6t,editType:"calc"},$Ct("marker",{colorAttr:"colors",anim:!1})),leaf:o0.leaf,pathbar:ND.pathbar,text:UE.text,textinfo:o0.textinfo,texttemplate:JCt({editType:"plot"},{keys:l6e.eventDataKeys.concat(["label","value"])}),hovertext:UE.hovertext,hoverinfo:o0.hoverinfo,hovertemplate:KCt({},{keys:l6e.eventDataKeys}),textfont:UE.textfont,insidetextfont:UE.insidetextfont,outsidetextfont:ND.outsidetextfont,textposition:ND.textposition,sort:UE.sort,root:o0.root,domain:QCt({name:"icicle",trace:!0,editType:"calc"})}});var jW=ye((Edr,c6e)=>{"use strict";c6e.exports={iciclecolorway:{valType:"colorlist",editType:"calc"},extendiciclecolors:{valType:"boolean",dflt:!0,editType:"calc"}}});var v6e=ye((kdr,d6e)=>{"use strict";var f6e=Mr(),r6t=GW(),i6t=va(),n6t=Ju().defaults,a6t=r0().handleText,o6t=Qb().TEXTPAD,s6t=S2().handleMarkerDefaults,h6e=Mu(),l6t=h6e.hasColorscale,u6t=h6e.handleDefaults;d6e.exports=function(t,r,n,i){function a(d,v){return f6e.coerce(t,r,r6t,d,v)}var o=a("labels"),s=a("parents");if(!o||!o.length||!s||!s.length){r.visible=!1;return}var l=a("values");l&&l.length?a("branchvalues"):a("count"),a("level"),a("maxdepth"),a("tiling.orientation"),a("tiling.flip"),a("tiling.pad");var u=a("text");a("texttemplate"),r.texttemplate||a("textinfo",f6e.isArrayOrTypedArray(u)?"text+label":"label"),a("hovertext"),a("hovertemplate");var c=a("pathbar.visible"),f="auto";a6t(t,r,i,a,f,{hasPathbar:c,moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1}),a("textposition"),s6t(t,r,i,a);var h=r._hasColorscale=l6t(t,"marker","colors")||(t.marker||{}).coloraxis;h&&u6t(t,r,i,a,{prefix:"marker.",cLetter:"c"}),a("leaf.opacity",h?1:.7),r._hovered={marker:{line:{width:2,color:i6t.contrast(i.paper_bgcolor)}}},c&&(a("pathbar.thickness",r.pathbar.textfont.size+2*o6t),a("pathbar.side"),a("pathbar.edgeshape")),a("sort"),a("root.color"),n6t(r,i,a),r._length=null}});var g6e=ye((Cdr,p6e)=>{"use strict";var c6t=Mr(),f6t=jW();p6e.exports=function(t,r){function n(i,a){return c6t.coerce(t,r,f6t,i,a)}n("iciclecolorway",r.colorway),n("extendiciclecolors")}});var ZW=ye(WW=>{"use strict";var m6e=EE();WW.calc=function(e,t){return m6e.calc(e,t)};WW.crossTraceCalc=function(e){return m6e._runCrossTraceCalc("icicle",e)}});var _6e=ye((Pdr,y6e)=>{"use strict";var h6t=SE(),d6t=DW();y6e.exports=function(t,r,n){var i=n.flipX,a=n.flipY,o=n.orientation==="h",s=n.maxDepth,l=r[0],u=r[1];s&&(l=(t.height+1)*r[0]/Math.min(t.height+1,s),u=(t.height+1)*r[1]/Math.min(t.height+1,s));var c=h6t.partition().padding(n.pad.inner).size(o?[r[1],l]:[r[0],u])(t);return(o||i||a)&&d6t(c,r,{swapXY:o,flipX:i,flipY:a}),c}});var XW=ye((Idr,A6e)=>{"use strict";var x6e=xa(),b6e=va(),w6e=Mr(),v6t=_v().resizeText,p6t=RD();function g6t(e){var t=e._fullLayout._iciclelayer.selectAll(".trace");v6t(e,t,"icicle"),t.each(function(r){var n=x6e.select(this),i=r[0],a=i.trace;n.style("opacity",a.opacity),n.selectAll("path.surface").each(function(o){x6e.select(this).call(T6e,o,a,e)})})}function T6e(e,t,r,n){var i=t.data.data,a=!t.children,o=i.i,s=w6e.castOption(r,o,"marker.line.color")||b6e.defaultLine,l=w6e.castOption(r,o,"marker.line.width")||0;e.call(p6t,t,r,n).style("stroke-width",l).call(b6e.stroke,s).style("opacity",a?r.leaf.opacity:null)}A6e.exports={style:g6t,styleOne:T6e}});var C6e=ye((Rdr,k6e)=>{"use strict";var S6e=xa(),UD=Mr(),M6e=ao(),m6t=Ll(),y6t=_6e(),E6e=XW().styleOne,YW=z2(),z5=Ky(),_6t=OE(),x6t=zD().formatSliceLabel,KW=!1;k6e.exports=function(t,r,n,i,a){var o=a.width,s=a.height,l=a.viewX,u=a.viewY,c=a.pathSlice,f=a.toMoveInsideSlice,h=a.strTransform,d=a.hasTransition,v=a.handleSlicesExit,x=a.makeUpdateSliceInterpolator,b=a.makeUpdateTextInterpolator,g=a.prevEntry,E={},k=t._context.staticPlot,A=t._fullLayout,L=r[0],_=L.trace,C=_.textposition.indexOf("left")!==-1,M=_.textposition.indexOf("right")!==-1,p=_.textposition.indexOf("bottom")!==-1,P=y6t(n,[o,s],{flipX:_.tiling.flip.indexOf("x")>-1,flipY:_.tiling.flip.indexOf("y")>-1,orientation:_.tiling.orientation,pad:{inner:_.tiling.pad},maxDepth:_._maxDepth}),T=P.descendants(),F=1/0,q=-1/0;T.forEach(function(N){var W=N.depth;W>=_._maxDepth?(N.x0=N.x1=(N.x0+N.x1)/2,N.y0=N.y1=(N.y0+N.y1)/2):(F=Math.min(F,W),q=Math.max(q,W))}),i=i.data(T,z5.getPtId),_._maxVisibleLayers=isFinite(q)?q-F+1:0,i.enter().append("g").classed("slice",!0),v(i,KW,E,[o,s],c),i.order();var V=null;if(d&&g){var H=z5.getPtId(g);i.each(function(N){V===null&&z5.getPtId(N)===H&&(V={x0:N.x0,x1:N.x1,y0:N.y0,y1:N.y1})})}var X=function(){return V||{x0:0,x1:o,y0:0,y1:s}},G=i;return d&&(G=G.transition().each("end",function(){var N=S6e.select(this);z5.setSliceCursor(N,t,{hideOnRoot:!0,hideOnLeaves:!1,isTransitioning:!1})})),G.each(function(N){N._x0=l(N.x0),N._x1=l(N.x1),N._y0=u(N.y0),N._y1=u(N.y1),N._hoverX=l(N.x1-_.tiling.pad),N._hoverY=u(p?N.y1-_.tiling.pad/2:N.y0+_.tiling.pad/2);var W=S6e.select(this),re=UD.ensureSingle(W,"path","surface",function(ke){ke.style("pointer-events",k?"none":"all")});d?re.transition().attrTween("d",function(ke){var ge=x(ke,KW,X(),[o,s],{orientation:_.tiling.orientation,flipX:_.tiling.flip.indexOf("x")>-1,flipY:_.tiling.flip.indexOf("y")>-1});return function(ie){return c(ge(ie))}}):re.attr("d",c),W.call(_6t,n,t,r,{styleOne:E6e,eventDataKeys:YW.eventDataKeys,transitionTime:YW.CLICK_TRANSITION_TIME,transitionEasing:YW.CLICK_TRANSITION_EASING}).call(z5.setSliceCursor,t,{isTransitioning:t._transitioning}),re.call(E6e,N,_,t,{hovered:!1}),N.x0===N.x1||N.y0===N.y1?N._text="":N._text=x6t(N,n,_,r,A)||"";var ae=UD.ensureSingle(W,"g","slicetext"),_e=UD.ensureSingle(ae,"text","",function(ke){ke.attr("data-notex",1)}),Me=UD.ensureUniformFontSize(t,z5.determineTextFont(_,N,A.font));_e.text(N._text||" ").classed("slicetext",!0).attr("text-anchor",M?"end":C?"start":"middle").call(M6e.font,Me).call(m6t.convertToTspans,t),N.textBB=M6e.bBox(_e.node()),N.transform=f(N,{fontSize:Me.size}),N.transform.fontSize=Me.size,d?_e.transition().attrTween("transform",function(ke){var ge=b(ke,KW,X(),[o,s]);return function(ie){return h(ge(ie))}}):_e.attr("transform",h(N))}),V}});var P6e=ye((Ddr,L6e)=>{"use strict";var b6t=UW(),w6t=C6e();L6e.exports=function(t,r,n,i){return b6t(t,r,n,i,{type:"icicle",drawDescendants:w6t})}});var R6e=ye((zdr,I6e)=>{"use strict";I6e.exports={moduleType:"trace",name:"icicle",basePlotModule:s6e(),categories:[],animatable:!0,attributes:GW(),layoutAttributes:jW(),supplyDefaults:v6e(),supplyLayoutDefaults:g6e(),calc:ZW().calc,crossTraceCalc:ZW().crossTraceCalc,plot:P6e(),style:XW().style,colorbar:Kd(),meta:{}}});var z6e=ye((Fdr,D6e)=>{"use strict";D6e.exports=R6e()});var q6e=ye(F5=>{"use strict";var F6e=Xu();F5.name="funnelarea";F5.plot=function(e,t,r,n){F6e.plotBasePlot(F5.name,e,t,r,n)};F5.clean=function(e,t,r,n){F6e.cleanBasePlot(F5.name,e,t,r,n)}});var JW=ye((Odr,O6e)=>{"use strict";var tv=A2(),T6t=vl(),A6t=Ju().attributes,S6t=Wo().hovertemplateAttrs,M6t=Wo().texttemplateAttrs,O2=no().extendFlat;O6e.exports={labels:tv.labels,label0:tv.label0,dlabel:tv.dlabel,values:tv.values,marker:{colors:tv.marker.colors,line:{color:O2({},tv.marker.line.color,{dflt:null}),width:O2({},tv.marker.line.width,{dflt:1}),editType:"calc"},pattern:tv.marker.pattern,editType:"calc"},text:tv.text,hovertext:tv.hovertext,scalegroup:O2({},tv.scalegroup,{}),textinfo:O2({},tv.textinfo,{flags:["label","text","value","percent"]}),texttemplate:M6t({editType:"plot"},{keys:["label","color","value","text","percent"]}),hoverinfo:O2({},T6t.hoverinfo,{flags:["label","text","value","percent","name"]}),hovertemplate:S6t({},{keys:["label","color","value","text","percent"]}),textposition:O2({},tv.textposition,{values:["inside","none"],dflt:"inside"}),textfont:tv.textfont,insidetextfont:tv.insidetextfont,title:{text:tv.title.text,font:tv.title.font,position:O2({},tv.title.position,{values:["top left","top center","top right"],dflt:"top center"}),editType:"plot"},domain:A6t({name:"funnelarea",trace:!0,editType:"calc"}),aspectratio:{valType:"number",min:0,dflt:1,editType:"plot"},baseratio:{valType:"number",min:0,max:1,dflt:.333,editType:"plot"}}});var $W=ye((Bdr,B6e)=>{"use strict";var E6t=lD().hiddenlabels;B6e.exports={hiddenlabels:E6t,funnelareacolorway:{valType:"colorlist",editType:"calc"},extendfunnelareacolors:{valType:"boolean",dflt:!0,editType:"calc"}}});var V6e=ye((Ndr,U6e)=>{"use strict";var N6e=Mr(),k6t=JW(),C6t=Ju().defaults,L6t=r0().handleText,P6t=S2().handleLabelsAndValues,I6t=S2().handleMarkerDefaults;U6e.exports=function(t,r,n,i){function a(x,b){return N6e.coerce(t,r,k6t,x,b)}var o=a("labels"),s=a("values"),l=P6t(o,s),u=l.len;if(r._hasLabels=l.hasLabels,r._hasValues=l.hasValues,!r._hasLabels&&r._hasValues&&(a("label0"),a("dlabel")),!u){r.visible=!1;return}r._length=u,I6t(t,r,i,a),a("scalegroup");var c=a("text"),f=a("texttemplate"),h;if(f||(h=a("textinfo",Array.isArray(c)?"text+percent":"percent")),a("hovertext"),a("hovertemplate"),f||h&&h!=="none"){var d=a("textposition");L6t(t,r,i,a,d,{moduleHasSelected:!1,moduleHasUnselected:!1,moduleHasConstrain:!1,moduleHasCliponaxis:!1,moduleHasTextangle:!1,moduleHasInsideanchor:!1})}else h==="none"&&a("textposition","none");C6t(r,i,a);var v=a("title.text");v&&(a("title.position"),N6e.coerceFont(a,"title.font",i.font)),a("aspectratio"),a("baseratio")}});var G6e=ye((Udr,H6e)=>{"use strict";var R6t=Mr(),D6t=$W();H6e.exports=function(t,r){function n(i,a){return R6t.coerce(t,r,D6t,i,a)}n("hiddenlabels"),n("funnelareacolorway",r.colorway),n("extendfunnelareacolors")}});var QW=ye((Vdr,W6e)=>{"use strict";var j6e=y5();function z6t(e,t){return j6e.calc(e,t)}function F6t(e){j6e.crossTraceCalc(e,{type:"funnelarea"})}W6e.exports={calc:z6t,crossTraceCalc:F6t}});var J6e=ye((Hdr,K6e)=>{"use strict";var B2=xa(),eZ=ao(),K_=Mr(),q6t=K_.strScale,Z6e=K_.strTranslate,X6e=Ll(),O6t=i2(),B6t=O6t.toMoveInsideBar,Y6e=_v(),N6t=Y6e.recordMinTextSize,U6t=Y6e.clearMinTextSize,V6t=l_(),q5=hD(),H6t=q5.attachFxHandlers,G6t=q5.determineInsideTextFont,j6t=q5.layoutAreas,W6t=q5.prerenderTitles,Z6t=q5.positionTitleOutside,X6t=q5.formatSliceLabel;K6e.exports=function(t,r){var n=t._context.staticPlot,i=t._fullLayout;U6t("funnelarea",i),W6t(r,t),j6t(r,i._size),K_.makeTraceGroups(i._funnelarealayer,r,"trace").each(function(a){var o=B2.select(this),s=a[0],l=s.trace;K6t(a),o.each(function(){var u=B2.select(this).selectAll("g.slice").data(a);u.enter().append("g").classed("slice",!0),u.exit().remove(),u.each(function(f,h){if(f.hidden){B2.select(this).selectAll("path,g").remove();return}f.pointNumber=f.i,f.curveNumber=l.index;var d=s.cx,v=s.cy,x=B2.select(this),b=x.selectAll("path.surface").data([f]);b.enter().append("path").classed("surface",!0).style({"pointer-events":n?"none":"all"}),x.call(H6t,t,a);var g="M"+(d+f.TR[0])+","+(v+f.TR[1])+tZ(f.TR,f.BR)+tZ(f.BR,f.BL)+tZ(f.BL,f.TL)+"Z";b.attr("d",g),X6t(t,f,s);var E=V6t.castOption(l.textposition,f.pts),k=x.selectAll("g.slicetext").data(f.text&&E!=="none"?[0]:[]);k.enter().append("g").classed("slicetext",!0),k.exit().remove(),k.each(function(){var A=K_.ensureSingle(B2.select(this),"text","",function(F){F.attr("data-notex",1)}),L=K_.ensureUniformFontSize(t,G6t(l,f,i.font));A.text(f.text).attr({class:"slicetext",transform:"","text-anchor":"middle"}).call(eZ.font,L).call(X6e.convertToTspans,t);var _=eZ.bBox(A.node()),C,M,p,P=Math.min(f.BL[1],f.BR[1])+v,T=Math.max(f.TL[1],f.TR[1])+v;M=Math.max(f.TL[0],f.BL[0])+d,p=Math.min(f.TR[0],f.BR[0])+d,C=B6t(M,p,P,T,_,{isHorizontal:!0,constrained:!0,angle:0,anchor:"middle"}),C.fontSize=L.size,N6t(l.type,C,i),a[h].transform=C,K_.setTransormAndDisplay(A,C)})});var c=B2.select(this).selectAll("g.titletext").data(l.title.text?[0]:[]);c.enter().append("g").classed("titletext",!0),c.exit().remove(),c.each(function(){var f=K_.ensureSingle(B2.select(this),"text","",function(v){v.attr("data-notex",1)}),h=l.title.text;l._meta&&(h=K_.templateString(h,l._meta)),f.text(h).attr({class:"titletext",transform:"","text-anchor":"middle"}).call(eZ.font,l.title.font).call(X6e.convertToTspans,t);var d=Z6t(s,i._size);f.attr("transform",Z6e(d.x,d.y)+q6t(Math.min(1,d.scale))+Z6e(d.tx,d.ty))})})})};function tZ(e,t){var r=t[0]-e[0],n=t[1]-e[1];return"l"+r+","+n}function Y6t(e,t){return[.5*(e[0]+t[0]),.5*(e[1]+t[1])]}function K6t(e){if(!e.length)return;var t=e[0],r=t.trace,n=r.aspectratio,i=r.baseratio;i>.999&&(i=.999);var a=Math.pow(i,2),o=t.vTotal,s=o*a/(1-a),l=o,u=s/o;function c(){var q=Math.sqrt(u);return{x:q,y:-q}}function f(){var q=c();return[q.x,q.y]}var h,d=[];d.push(f());var v,x;for(v=e.length-1;v>-1;v--)if(x=e[v],!x.hidden){var b=x.v/l;u+=b,d.push(f())}var g=1/0,E=-1/0;for(v=0;v-1;v--)if(x=e[v],!x.hidden){P+=1;var T=d[P][0],F=d[P][1];x.TL=[-T,F],x.TR=[T,F],x.BL=M,x.BR=p,x.pxmid=Y6t(x.TR,x.BR),M=x.TL,p=x.TR}}});var eLe=ye((Gdr,Q6e)=>{"use strict";var $6e=xa(),J6t=z3(),$6t=_v().resizeText;Q6e.exports=function(t){var r=t._fullLayout._funnelarealayer.selectAll(".trace");$6t(t,r,"funnelarea"),r.each(function(n){var i=n[0],a=i.trace,o=$6e.select(this);o.style({opacity:a.opacity}),o.selectAll("path.surface").each(function(s){$6e.select(this).call(J6t,s,a,t)})})}});var rLe=ye((jdr,tLe)=>{"use strict";tLe.exports={moduleType:"trace",name:"funnelarea",basePlotModule:q6e(),categories:["pie-like","funnelarea","showLegend"],attributes:JW(),layoutAttributes:$W(),supplyDefaults:V6e(),supplyLayoutDefaults:G6e(),calc:QW().calc,crossTraceCalc:QW().crossTraceCalc,plot:J6e(),style:eLe(),styleOne:z3(),meta:{}}});var nLe=ye((Wdr,iLe)=>{"use strict";iLe.exports=rLe()});var Rd=ye((Zdr,aLe)=>{(function(){var e={1964:function(i,a,o){i.exports={alpha_shape:o(3502),convex_hull:o(7352),delaunay_triangulate:o(7642),gl_cone3d:o(6405),gl_error3d:o(9165),gl_line3d:o(5714),gl_mesh3d:o(7201),gl_plot3d:o(4100),gl_scatter3d:o(8418),gl_streamtube3d:o(7815),gl_surface3d:o(9499),ndarray:o(9618),ndarray_linear_interpolate:o(4317)}},4793:function(i,a,o){"use strict";var s;function l(Le,xe){if(!(Le instanceof xe))throw new TypeError("Cannot call a class as a function")}function u(Le,xe){for(var Se=0;SeM)throw new RangeError('The value "'+Le+'" is invalid for option "size"');var xe=new Uint8Array(Le);return Object.setPrototypeOf(xe,T.prototype),xe}function T(Le,xe,Se){if(typeof Le=="number"){if(typeof xe=="string")throw new TypeError('The "string" argument must be of type string. Received type number');return H(Le)}return F(Le,xe,Se)}T.poolSize=8192;function F(Le,xe,Se){if(typeof Le=="string")return X(Le,xe);if(ArrayBuffer.isView(Le))return N(Le);if(Le==null)throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+A(Le));if(Ne(Le,ArrayBuffer)||Le&&Ne(Le.buffer,ArrayBuffer)||typeof SharedArrayBuffer!="undefined"&&(Ne(Le,SharedArrayBuffer)||Le&&Ne(Le.buffer,SharedArrayBuffer)))return W(Le,xe,Se);if(typeof Le=="number")throw new TypeError('The "value" argument must not be of type number. Received type number');var lt=Le.valueOf&&Le.valueOf();if(lt!=null&<!==Le)return T.from(lt,xe,Se);var Gt=re(Le);if(Gt)return Gt;if(typeof Symbol!="undefined"&&Symbol.toPrimitive!=null&&typeof Le[Symbol.toPrimitive]=="function")return T.from(Le[Symbol.toPrimitive]("string"),xe,Se);throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+A(Le))}T.from=function(Le,xe,Se){return F(Le,xe,Se)},Object.setPrototypeOf(T.prototype,Uint8Array.prototype),Object.setPrototypeOf(T,Uint8Array);function q(Le){if(typeof Le!="number")throw new TypeError('"size" argument must be of type number');if(Le<0)throw new RangeError('The value "'+Le+'" is invalid for option "size"')}function V(Le,xe,Se){return q(Le),Le<=0?P(Le):xe!==void 0?typeof Se=="string"?P(Le).fill(xe,Se):P(Le).fill(xe):P(Le)}T.alloc=function(Le,xe,Se){return V(Le,xe,Se)};function H(Le){return q(Le),P(Le<0?0:ae(Le)|0)}T.allocUnsafe=function(Le){return H(Le)},T.allocUnsafeSlow=function(Le){return H(Le)};function X(Le,xe){if((typeof xe!="string"||xe==="")&&(xe="utf8"),!T.isEncoding(xe))throw new TypeError("Unknown encoding: "+xe);var Se=Me(Le,xe)|0,lt=P(Se),Gt=lt.write(Le,xe);return Gt!==Se&&(lt=lt.slice(0,Gt)),lt}function G(Le){for(var xe=Le.length<0?0:ae(Le.length)|0,Se=P(xe),lt=0;lt=M)throw new RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+M.toString(16)+" bytes");return Le|0}function _e(Le){return+Le!=Le&&(Le=0),T.alloc(+Le)}T.isBuffer=function(xe){return xe!=null&&xe._isBuffer===!0&&xe!==T.prototype},T.compare=function(xe,Se){if(Ne(xe,Uint8Array)&&(xe=T.from(xe,xe.offset,xe.byteLength)),Ne(Se,Uint8Array)&&(Se=T.from(Se,Se.offset,Se.byteLength)),!T.isBuffer(xe)||!T.isBuffer(Se))throw new TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(xe===Se)return 0;for(var lt=xe.length,Gt=Se.length,Vt=0,ar=Math.min(lt,Gt);VtGt.length?(T.isBuffer(ar)||(ar=T.from(ar)),ar.copy(Gt,Vt)):Uint8Array.prototype.set.call(Gt,ar,Vt);else if(T.isBuffer(ar))ar.copy(Gt,Vt);else throw new TypeError('"list" argument must be an Array of Buffers');Vt+=ar.length}return Gt};function Me(Le,xe){if(T.isBuffer(Le))return Le.length;if(ArrayBuffer.isView(Le)||Ne(Le,ArrayBuffer))return Le.byteLength;if(typeof Le!="string")throw new TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+A(Le));var Se=Le.length,lt=arguments.length>2&&arguments[2]===!0;if(!lt&&Se===0)return 0;for(var Gt=!1;;)switch(xe){case"ascii":case"latin1":case"binary":return Se;case"utf8":case"utf-8":return _r(Le).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Se*2;case"hex":return Se>>>1;case"base64":return Nr(Le).length;default:if(Gt)return lt?-1:_r(Le).length;xe=(""+xe).toLowerCase(),Gt=!0}}T.byteLength=Me;function ke(Le,xe,Se){var lt=!1;if((xe===void 0||xe<0)&&(xe=0),xe>this.length||((Se===void 0||Se>this.length)&&(Se=this.length),Se<=0)||(Se>>>=0,xe>>>=0,Se<=xe))return"";for(Le||(Le="utf8");;)switch(Le){case"hex":return rt(this,xe,Se);case"utf8":case"utf-8":return ce(this,xe,Se);case"ascii":return ct(this,xe,Se);case"latin1":case"binary":return qt(this,xe,Se);case"base64":return Re(this,xe,Se);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return ot(this,xe,Se);default:if(lt)throw new TypeError("Unknown encoding: "+Le);Le=(Le+"").toLowerCase(),lt=!0}}T.prototype._isBuffer=!0;function ge(Le,xe,Se){var lt=Le[xe];Le[xe]=Le[Se],Le[Se]=lt}T.prototype.swap16=function(){var xe=this.length;if(xe%2!==0)throw new RangeError("Buffer size must be a multiple of 16-bits");for(var Se=0;SeSe&&(xe+=" ... "),""},C&&(T.prototype[C]=T.prototype.inspect),T.prototype.compare=function(xe,Se,lt,Gt,Vt){if(Ne(xe,Uint8Array)&&(xe=T.from(xe,xe.offset,xe.byteLength)),!T.isBuffer(xe))throw new TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+A(xe));if(Se===void 0&&(Se=0),lt===void 0&&(lt=xe?xe.length:0),Gt===void 0&&(Gt=0),Vt===void 0&&(Vt=this.length),Se<0||lt>xe.length||Gt<0||Vt>this.length)throw new RangeError("out of range index");if(Gt>=Vt&&Se>=lt)return 0;if(Gt>=Vt)return-1;if(Se>=lt)return 1;if(Se>>>=0,lt>>>=0,Gt>>>=0,Vt>>>=0,this===xe)return 0;for(var ar=Vt-Gt,Qr=lt-Se,ai=Math.min(ar,Qr),jr=this.slice(Gt,Vt),ri=xe.slice(Se,lt),bi=0;bi2147483647?Se=2147483647:Se<-2147483648&&(Se=-2147483648),Se=+Se,Ye(Se)&&(Se=Gt?0:Le.length-1),Se<0&&(Se=Le.length+Se),Se>=Le.length){if(Gt)return-1;Se=Le.length-1}else if(Se<0)if(Gt)Se=0;else return-1;if(typeof xe=="string"&&(xe=T.from(xe,lt)),T.isBuffer(xe))return xe.length===0?-1:Te(Le,xe,Se,lt,Gt);if(typeof xe=="number")return xe=xe&255,typeof Uint8Array.prototype.indexOf=="function"?Gt?Uint8Array.prototype.indexOf.call(Le,xe,Se):Uint8Array.prototype.lastIndexOf.call(Le,xe,Se):Te(Le,[xe],Se,lt,Gt);throw new TypeError("val must be string, number or Buffer")}function Te(Le,xe,Se,lt,Gt){var Vt=1,ar=Le.length,Qr=xe.length;if(lt!==void 0&&(lt=String(lt).toLowerCase(),lt==="ucs2"||lt==="ucs-2"||lt==="utf16le"||lt==="utf-16le")){if(Le.length<2||xe.length<2)return-1;Vt=2,ar/=2,Qr/=2,Se/=2}function ai(Wi,Ni){return Vt===1?Wi[Ni]:Wi.readUInt16BE(Ni*Vt)}var jr;if(Gt){var ri=-1;for(jr=Se;jrar&&(Se=ar-Qr),jr=Se;jr>=0;jr--){for(var bi=!0,nn=0;nnGt&&(lt=Gt)):lt=Gt;var Vt=xe.length;lt>Vt/2&&(lt=Vt/2);var ar;for(ar=0;ar>>0,isFinite(lt)?(lt=lt>>>0,Gt===void 0&&(Gt="utf8")):(Gt=lt,lt=void 0);else throw new Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");var Vt=this.length-Se;if((lt===void 0||lt>Vt)&&(lt=Vt),xe.length>0&&(lt<0||Se<0)||Se>this.length)throw new RangeError("Attempt to write outside buffer bounds");Gt||(Gt="utf8");for(var ar=!1;;)switch(Gt){case"hex":return Ee(this,xe,Se,lt);case"utf8":case"utf-8":return Ae(this,xe,Se,lt);case"ascii":case"latin1":case"binary":return ze(this,xe,Se,lt);case"base64":return Ce(this,xe,Se,lt);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return me(this,xe,Se,lt);default:if(ar)throw new TypeError("Unknown encoding: "+Gt);Gt=(""+Gt).toLowerCase(),ar=!0}},T.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};function Re(Le,xe,Se){return xe===0&&Se===Le.length?L.fromByteArray(Le):L.fromByteArray(Le.slice(xe,Se))}function ce(Le,xe,Se){Se=Math.min(Le.length,Se);for(var lt=[],Gt=xe;Gt239?4:Vt>223?3:Vt>191?2:1;if(Gt+Qr<=Se){var ai=void 0,jr=void 0,ri=void 0,bi=void 0;switch(Qr){case 1:Vt<128&&(ar=Vt);break;case 2:ai=Le[Gt+1],(ai&192)===128&&(bi=(Vt&31)<<6|ai&63,bi>127&&(ar=bi));break;case 3:ai=Le[Gt+1],jr=Le[Gt+2],(ai&192)===128&&(jr&192)===128&&(bi=(Vt&15)<<12|(ai&63)<<6|jr&63,bi>2047&&(bi<55296||bi>57343)&&(ar=bi));break;case 4:ai=Le[Gt+1],jr=Le[Gt+2],ri=Le[Gt+3],(ai&192)===128&&(jr&192)===128&&(ri&192)===128&&(bi=(Vt&15)<<18|(ai&63)<<12|(jr&63)<<6|ri&63,bi>65535&&bi<1114112&&(ar=bi))}}ar===null?(ar=65533,Qr=1):ar>65535&&(ar-=65536,lt.push(ar>>>10&1023|55296),ar=56320|ar&1023),lt.push(ar),Gt+=Qr}return nt(lt)}var Ge=4096;function nt(Le){var xe=Le.length;if(xe<=Ge)return String.fromCharCode.apply(String,Le);for(var Se="",lt=0;ltlt)&&(Se=lt);for(var Gt="",Vt=xe;Vtlt&&(xe=lt),Se<0?(Se+=lt,Se<0&&(Se=0)):Se>lt&&(Se=lt),SeSe)throw new RangeError("Trying to access beyond buffer length")}T.prototype.readUintLE=T.prototype.readUIntLE=function(xe,Se,lt){xe=xe>>>0,Se=Se>>>0,lt||Rt(xe,Se,this.length);for(var Gt=this[xe],Vt=1,ar=0;++ar>>0,Se=Se>>>0,lt||Rt(xe,Se,this.length);for(var Gt=this[xe+--Se],Vt=1;Se>0&&(Vt*=256);)Gt+=this[xe+--Se]*Vt;return Gt},T.prototype.readUint8=T.prototype.readUInt8=function(xe,Se){return xe=xe>>>0,Se||Rt(xe,1,this.length),this[xe]},T.prototype.readUint16LE=T.prototype.readUInt16LE=function(xe,Se){return xe=xe>>>0,Se||Rt(xe,2,this.length),this[xe]|this[xe+1]<<8},T.prototype.readUint16BE=T.prototype.readUInt16BE=function(xe,Se){return xe=xe>>>0,Se||Rt(xe,2,this.length),this[xe]<<8|this[xe+1]},T.prototype.readUint32LE=T.prototype.readUInt32LE=function(xe,Se){return xe=xe>>>0,Se||Rt(xe,4,this.length),(this[xe]|this[xe+1]<<8|this[xe+2]<<16)+this[xe+3]*16777216},T.prototype.readUint32BE=T.prototype.readUInt32BE=function(xe,Se){return xe=xe>>>0,Se||Rt(xe,4,this.length),this[xe]*16777216+(this[xe+1]<<16|this[xe+2]<<8|this[xe+3])},T.prototype.readBigUInt64LE=Xe(function(xe){xe=xe>>>0,dt(xe,"offset");var Se=this[xe],lt=this[xe+7];(Se===void 0||lt===void 0)&&Ht(xe,this.length-8);var Gt=Se+this[++xe]*Math.pow(2,8)+this[++xe]*Math.pow(2,16)+this[++xe]*Math.pow(2,24),Vt=this[++xe]+this[++xe]*Math.pow(2,8)+this[++xe]*Math.pow(2,16)+lt*Math.pow(2,24);return BigInt(Gt)+(BigInt(Vt)<>>0,dt(xe,"offset");var Se=this[xe],lt=this[xe+7];(Se===void 0||lt===void 0)&&Ht(xe,this.length-8);var Gt=Se*Math.pow(2,24)+this[++xe]*Math.pow(2,16)+this[++xe]*Math.pow(2,8)+this[++xe],Vt=this[++xe]*Math.pow(2,24)+this[++xe]*Math.pow(2,16)+this[++xe]*Math.pow(2,8)+lt;return(BigInt(Gt)<>>0,Se=Se>>>0,lt||Rt(xe,Se,this.length);for(var Gt=this[xe],Vt=1,ar=0;++ar=Vt&&(Gt-=Math.pow(2,8*Se)),Gt},T.prototype.readIntBE=function(xe,Se,lt){xe=xe>>>0,Se=Se>>>0,lt||Rt(xe,Se,this.length);for(var Gt=Se,Vt=1,ar=this[xe+--Gt];Gt>0&&(Vt*=256);)ar+=this[xe+--Gt]*Vt;return Vt*=128,ar>=Vt&&(ar-=Math.pow(2,8*Se)),ar},T.prototype.readInt8=function(xe,Se){return xe=xe>>>0,Se||Rt(xe,1,this.length),this[xe]&128?(255-this[xe]+1)*-1:this[xe]},T.prototype.readInt16LE=function(xe,Se){xe=xe>>>0,Se||Rt(xe,2,this.length);var lt=this[xe]|this[xe+1]<<8;return lt&32768?lt|4294901760:lt},T.prototype.readInt16BE=function(xe,Se){xe=xe>>>0,Se||Rt(xe,2,this.length);var lt=this[xe+1]|this[xe]<<8;return lt&32768?lt|4294901760:lt},T.prototype.readInt32LE=function(xe,Se){return xe=xe>>>0,Se||Rt(xe,4,this.length),this[xe]|this[xe+1]<<8|this[xe+2]<<16|this[xe+3]<<24},T.prototype.readInt32BE=function(xe,Se){return xe=xe>>>0,Se||Rt(xe,4,this.length),this[xe]<<24|this[xe+1]<<16|this[xe+2]<<8|this[xe+3]},T.prototype.readBigInt64LE=Xe(function(xe){xe=xe>>>0,dt(xe,"offset");var Se=this[xe],lt=this[xe+7];(Se===void 0||lt===void 0)&&Ht(xe,this.length-8);var Gt=this[xe+4]+this[xe+5]*Math.pow(2,8)+this[xe+6]*Math.pow(2,16)+(lt<<24);return(BigInt(Gt)<>>0,dt(xe,"offset");var Se=this[xe],lt=this[xe+7];(Se===void 0||lt===void 0)&&Ht(xe,this.length-8);var Gt=(Se<<24)+this[++xe]*Math.pow(2,16)+this[++xe]*Math.pow(2,8)+this[++xe];return(BigInt(Gt)<>>0,Se||Rt(xe,4,this.length),_.read(this,xe,!0,23,4)},T.prototype.readFloatBE=function(xe,Se){return xe=xe>>>0,Se||Rt(xe,4,this.length),_.read(this,xe,!1,23,4)},T.prototype.readDoubleLE=function(xe,Se){return xe=xe>>>0,Se||Rt(xe,8,this.length),_.read(this,xe,!0,52,8)},T.prototype.readDoubleBE=function(xe,Se){return xe=xe>>>0,Se||Rt(xe,8,this.length),_.read(this,xe,!1,52,8)};function kt(Le,xe,Se,lt,Gt,Vt){if(!T.isBuffer(Le))throw new TypeError('"buffer" argument must be a Buffer instance');if(xe>Gt||xeLe.length)throw new RangeError("Index out of range")}T.prototype.writeUintLE=T.prototype.writeUIntLE=function(xe,Se,lt,Gt){if(xe=+xe,Se=Se>>>0,lt=lt>>>0,!Gt){var Vt=Math.pow(2,8*lt)-1;kt(this,xe,Se,lt,Vt,0)}var ar=1,Qr=0;for(this[Se]=xe&255;++Qr>>0,lt=lt>>>0,!Gt){var Vt=Math.pow(2,8*lt)-1;kt(this,xe,Se,lt,Vt,0)}var ar=lt-1,Qr=1;for(this[Se+ar]=xe&255;--ar>=0&&(Qr*=256);)this[Se+ar]=xe/Qr&255;return Se+lt},T.prototype.writeUint8=T.prototype.writeUInt8=function(xe,Se,lt){return xe=+xe,Se=Se>>>0,lt||kt(this,xe,Se,1,255,0),this[Se]=xe&255,Se+1},T.prototype.writeUint16LE=T.prototype.writeUInt16LE=function(xe,Se,lt){return xe=+xe,Se=Se>>>0,lt||kt(this,xe,Se,2,65535,0),this[Se]=xe&255,this[Se+1]=xe>>>8,Se+2},T.prototype.writeUint16BE=T.prototype.writeUInt16BE=function(xe,Se,lt){return xe=+xe,Se=Se>>>0,lt||kt(this,xe,Se,2,65535,0),this[Se]=xe>>>8,this[Se+1]=xe&255,Se+2},T.prototype.writeUint32LE=T.prototype.writeUInt32LE=function(xe,Se,lt){return xe=+xe,Se=Se>>>0,lt||kt(this,xe,Se,4,4294967295,0),this[Se+3]=xe>>>24,this[Se+2]=xe>>>16,this[Se+1]=xe>>>8,this[Se]=xe&255,Se+4},T.prototype.writeUint32BE=T.prototype.writeUInt32BE=function(xe,Se,lt){return xe=+xe,Se=Se>>>0,lt||kt(this,xe,Se,4,4294967295,0),this[Se]=xe>>>24,this[Se+1]=xe>>>16,this[Se+2]=xe>>>8,this[Se+3]=xe&255,Se+4};function Ct(Le,xe,Se,lt,Gt){Et(xe,lt,Gt,Le,Se,7);var Vt=Number(xe&BigInt(4294967295));Le[Se++]=Vt,Vt=Vt>>8,Le[Se++]=Vt,Vt=Vt>>8,Le[Se++]=Vt,Vt=Vt>>8,Le[Se++]=Vt;var ar=Number(xe>>BigInt(32)&BigInt(4294967295));return Le[Se++]=ar,ar=ar>>8,Le[Se++]=ar,ar=ar>>8,Le[Se++]=ar,ar=ar>>8,Le[Se++]=ar,Se}function Yt(Le,xe,Se,lt,Gt){Et(xe,lt,Gt,Le,Se,7);var Vt=Number(xe&BigInt(4294967295));Le[Se+7]=Vt,Vt=Vt>>8,Le[Se+6]=Vt,Vt=Vt>>8,Le[Se+5]=Vt,Vt=Vt>>8,Le[Se+4]=Vt;var ar=Number(xe>>BigInt(32)&BigInt(4294967295));return Le[Se+3]=ar,ar=ar>>8,Le[Se+2]=ar,ar=ar>>8,Le[Se+1]=ar,ar=ar>>8,Le[Se]=ar,Se+8}T.prototype.writeBigUInt64LE=Xe(function(xe){var Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return Ct(this,xe,Se,BigInt(0),BigInt("0xffffffffffffffff"))}),T.prototype.writeBigUInt64BE=Xe(function(xe){var Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return Yt(this,xe,Se,BigInt(0),BigInt("0xffffffffffffffff"))}),T.prototype.writeIntLE=function(xe,Se,lt,Gt){if(xe=+xe,Se=Se>>>0,!Gt){var Vt=Math.pow(2,8*lt-1);kt(this,xe,Se,lt,Vt-1,-Vt)}var ar=0,Qr=1,ai=0;for(this[Se]=xe&255;++ar>0)-ai&255;return Se+lt},T.prototype.writeIntBE=function(xe,Se,lt,Gt){if(xe=+xe,Se=Se>>>0,!Gt){var Vt=Math.pow(2,8*lt-1);kt(this,xe,Se,lt,Vt-1,-Vt)}var ar=lt-1,Qr=1,ai=0;for(this[Se+ar]=xe&255;--ar>=0&&(Qr*=256);)xe<0&&ai===0&&this[Se+ar+1]!==0&&(ai=1),this[Se+ar]=(xe/Qr>>0)-ai&255;return Se+lt},T.prototype.writeInt8=function(xe,Se,lt){return xe=+xe,Se=Se>>>0,lt||kt(this,xe,Se,1,127,-128),xe<0&&(xe=255+xe+1),this[Se]=xe&255,Se+1},T.prototype.writeInt16LE=function(xe,Se,lt){return xe=+xe,Se=Se>>>0,lt||kt(this,xe,Se,2,32767,-32768),this[Se]=xe&255,this[Se+1]=xe>>>8,Se+2},T.prototype.writeInt16BE=function(xe,Se,lt){return xe=+xe,Se=Se>>>0,lt||kt(this,xe,Se,2,32767,-32768),this[Se]=xe>>>8,this[Se+1]=xe&255,Se+2},T.prototype.writeInt32LE=function(xe,Se,lt){return xe=+xe,Se=Se>>>0,lt||kt(this,xe,Se,4,2147483647,-2147483648),this[Se]=xe&255,this[Se+1]=xe>>>8,this[Se+2]=xe>>>16,this[Se+3]=xe>>>24,Se+4},T.prototype.writeInt32BE=function(xe,Se,lt){return xe=+xe,Se=Se>>>0,lt||kt(this,xe,Se,4,2147483647,-2147483648),xe<0&&(xe=4294967295+xe+1),this[Se]=xe>>>24,this[Se+1]=xe>>>16,this[Se+2]=xe>>>8,this[Se+3]=xe&255,Se+4},T.prototype.writeBigInt64LE=Xe(function(xe){var Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return Ct(this,xe,Se,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))}),T.prototype.writeBigInt64BE=Xe(function(xe){var Se=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;return Yt(this,xe,Se,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});function xr(Le,xe,Se,lt,Gt,Vt){if(Se+lt>Le.length)throw new RangeError("Index out of range");if(Se<0)throw new RangeError("Index out of range")}function er(Le,xe,Se,lt,Gt){return xe=+xe,Se=Se>>>0,Gt||xr(Le,xe,Se,4,34028234663852886e22,-34028234663852886e22),_.write(Le,xe,Se,lt,23,4),Se+4}T.prototype.writeFloatLE=function(xe,Se,lt){return er(this,xe,Se,!0,lt)},T.prototype.writeFloatBE=function(xe,Se,lt){return er(this,xe,Se,!1,lt)};function Ke(Le,xe,Se,lt,Gt){return xe=+xe,Se=Se>>>0,Gt||xr(Le,xe,Se,8,17976931348623157e292,-17976931348623157e292),_.write(Le,xe,Se,lt,52,8),Se+8}T.prototype.writeDoubleLE=function(xe,Se,lt){return Ke(this,xe,Se,!0,lt)},T.prototype.writeDoubleBE=function(xe,Se,lt){return Ke(this,xe,Se,!1,lt)},T.prototype.copy=function(xe,Se,lt,Gt){if(!T.isBuffer(xe))throw new TypeError("argument should be a Buffer");if(lt||(lt=0),!Gt&&Gt!==0&&(Gt=this.length),Se>=xe.length&&(Se=xe.length),Se||(Se=0),Gt>0&&Gt=this.length)throw new RangeError("Index out of range");if(Gt<0)throw new RangeError("sourceEnd out of bounds");Gt>this.length&&(Gt=this.length),xe.length-Se>>0,lt=lt===void 0?this.length:lt>>>0,xe||(xe=0);var ar;if(typeof xe=="number")for(ar=Se;arMath.pow(2,32)?Gt=Lt(String(Se)):typeof Se=="bigint"&&(Gt=String(Se),(Se>Math.pow(BigInt(2),BigInt(32))||Se<-Math.pow(BigInt(2),BigInt(32)))&&(Gt=Lt(Gt)),Gt+="n"),lt+=" It must be ".concat(xe,". Received ").concat(Gt),lt},RangeError);function Lt(Le){for(var xe="",Se=Le.length,lt=Le[0]==="-"?1:0;Se>=lt+4;Se-=3)xe="_".concat(Le.slice(Se-3,Se)).concat(xe);return"".concat(Le.slice(0,Se)).concat(xe)}function St(Le,xe,Se){dt(xe,"offset"),(Le[xe]===void 0||Le[xe+Se]===void 0)&&Ht(xe,Le.length-(Se+1))}function Et(Le,xe,Se,lt,Gt,Vt){if(Le>Se||Le3?xe===0||xe===BigInt(0)?Qr=">= 0".concat(ar," and < 2").concat(ar," ** ").concat((Vt+1)*8).concat(ar):Qr=">= -(2".concat(ar," ** ").concat((Vt+1)*8-1).concat(ar,") and < 2 ** ")+"".concat((Vt+1)*8-1).concat(ar):Qr=">= ".concat(xe).concat(ar," and <= ").concat(Se).concat(ar),new xt.ERR_OUT_OF_RANGE("value",Qr,Le)}St(lt,Gt,Vt)}function dt(Le,xe){if(typeof Le!="number")throw new xt.ERR_INVALID_ARG_TYPE(xe,"number",Le)}function Ht(Le,xe,Se){throw Math.floor(Le)!==Le?(dt(Le,Se),new xt.ERR_OUT_OF_RANGE(Se||"offset","an integer",Le)):xe<0?new xt.ERR_BUFFER_OUT_OF_BOUNDS:new xt.ERR_OUT_OF_RANGE(Se||"offset",">= ".concat(Se?1:0," and <= ").concat(xe),Le)}var $t=/[^+/0-9A-Za-z-_]/g;function fr(Le){if(Le=Le.split("=")[0],Le=Le.trim().replace($t,""),Le.length<2)return"";for(;Le.length%4!==0;)Le=Le+"=";return Le}function _r(Le,xe){xe=xe||1/0;for(var Se,lt=Le.length,Gt=null,Vt=[],ar=0;ar55295&&Se<57344){if(!Gt){if(Se>56319){(xe-=3)>-1&&Vt.push(239,191,189);continue}else if(ar+1===lt){(xe-=3)>-1&&Vt.push(239,191,189);continue}Gt=Se;continue}if(Se<56320){(xe-=3)>-1&&Vt.push(239,191,189),Gt=Se;continue}Se=(Gt-55296<<10|Se-56320)+65536}else Gt&&(xe-=3)>-1&&Vt.push(239,191,189);if(Gt=null,Se<128){if((xe-=1)<0)break;Vt.push(Se)}else if(Se<2048){if((xe-=2)<0)break;Vt.push(Se>>6|192,Se&63|128)}else if(Se<65536){if((xe-=3)<0)break;Vt.push(Se>>12|224,Se>>6&63|128,Se&63|128)}else if(Se<1114112){if((xe-=4)<0)break;Vt.push(Se>>18|240,Se>>12&63|128,Se>>6&63|128,Se&63|128)}else throw new Error("Invalid code point")}return Vt}function Br(Le){for(var xe=[],Se=0;Se>8,Gt=Se%256,Vt.push(Gt),Vt.push(lt);return Vt}function Nr(Le){return L.toByteArray(fr(Le))}function ut(Le,xe,Se,lt){var Gt;for(Gt=0;Gt=xe.length||Gt>=Le.length);++Gt)xe[Gt+Se]=Le[Gt];return Gt}function Ne(Le,xe){return Le instanceof xe||Le!=null&&Le.constructor!=null&&Le.constructor.name!=null&&Le.constructor.name===xe.name}function Ye(Le){return Le!==Le}var Ve=function(){for(var Le="0123456789abcdef",xe=new Array(256),Se=0;Se<16;++Se)for(var lt=Se*16,Gt=0;Gt<16;++Gt)xe[lt+Gt]=Le[Se]+Le[Gt];return xe}();function Xe(Le){return typeof BigInt=="undefined"?ht:Le}function ht(){throw new Error("BigInt not supported")}},9216:function(i){"use strict";i.exports=l,i.exports.isMobile=l,i.exports.default=l;var a=/(android|bb\d+|meego).+mobile|armv7l|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series[46]0|samsungbrowser.*mobile|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,o=/CrOS/,s=/android|ipad|playbook|silk/i;function l(u){u||(u={});var c=u.ua;if(!c&&typeof navigator!="undefined"&&(c=navigator.userAgent),c&&c.headers&&typeof c.headers["user-agent"]=="string"&&(c=c.headers["user-agent"]),typeof c!="string")return!1;var f=a.test(c)&&!o.test(c)||!!u.tablet&&s.test(c);return!f&&u.tablet&&u.featureDetect&&navigator&&navigator.maxTouchPoints>1&&c.indexOf("Macintosh")!==-1&&c.indexOf("Safari")!==-1&&(f=!0),f}},6296:function(i,a,o){"use strict";i.exports=h;var s=o(7261),l=o(9977),u=o(1811);function c(d,v){this._controllerNames=Object.keys(d),this._controllerList=this._controllerNames.map(function(x){return d[x]}),this._mode=v,this._active=d[v],this._active||(this._mode="turntable",this._active=d.turntable),this.modes=this._controllerNames,this.computedMatrix=this._active.computedMatrix,this.computedEye=this._active.computedEye,this.computedUp=this._active.computedUp,this.computedCenter=this._active.computedCenter,this.computedRadius=this._active.computedRadius}var f=c.prototype;f.flush=function(d){for(var v=this._controllerList,x=0;x0)throw new Error("Invalid string. Length must be a multiple of 4");var L=k.indexOf("=");L===-1&&(L=A);var _=L===A?0:4-L%4;return[L,_]}function d(k){var A=h(k),L=A[0],_=A[1];return(L+_)*3/4-_}function v(k,A,L){return(A+L)*3/4-L}function x(k){var A,L=h(k),_=L[0],C=L[1],M=new l(v(k,_,C)),p=0,P=C>0?_-4:_,T;for(T=0;T>16&255,M[p++]=A>>8&255,M[p++]=A&255;return C===2&&(A=s[k.charCodeAt(T)]<<2|s[k.charCodeAt(T+1)]>>4,M[p++]=A&255),C===1&&(A=s[k.charCodeAt(T)]<<10|s[k.charCodeAt(T+1)]<<4|s[k.charCodeAt(T+2)]>>2,M[p++]=A>>8&255,M[p++]=A&255),M}function b(k){return o[k>>18&63]+o[k>>12&63]+o[k>>6&63]+o[k&63]}function g(k,A,L){for(var _,C=[],M=A;MP?P:p+M));return _===1?(A=k[L-1],C.push(o[A>>2]+o[A<<4&63]+"==")):_===2&&(A=(k[L-2]<<8)+k[L-1],C.push(o[A>>10]+o[A>>4&63]+o[A<<2&63]+"=")),C.join("")}},3865:function(i,a,o){"use strict";var s=o(869);i.exports=l;function l(u,c){return s(u[0].mul(c[1]).add(c[0].mul(u[1])),u[1].mul(c[1]))}},1318:function(i){"use strict";i.exports=a;function a(o,s){return o[0].mul(s[1]).cmp(s[0].mul(o[1]))}},8697:function(i,a,o){"use strict";var s=o(869);i.exports=l;function l(u,c){return s(u[0].mul(c[1]),u[1].mul(c[0]))}},7842:function(i,a,o){"use strict";var s=o(6330),l=o(1533),u=o(2651),c=o(6768),f=o(869),h=o(8697);i.exports=d;function d(v,x){if(s(v))return x?h(v,d(x)):[v[0].clone(),v[1].clone()];var b=0,g,E;if(l(v))g=v.clone();else if(typeof v=="string")g=c(v);else{if(v===0)return[u(0),u(1)];if(v===Math.floor(v))g=u(v);else{for(;v!==Math.floor(v);)v=v*Math.pow(2,256),b-=256;g=u(v)}}if(s(x))g.mul(x[1]),E=x[0].clone();else if(l(x))E=x.clone();else if(typeof x=="string")E=c(x);else if(!x)E=u(1);else if(x===Math.floor(x))E=u(x);else{for(;x!==Math.floor(x);)x=x*Math.pow(2,256),b+=256;E=u(x)}return b>0?g=g.ushln(b):b<0&&(E=E.ushln(-b)),f(g,E)}},6330:function(i,a,o){"use strict";var s=o(1533);i.exports=l;function l(u){return Array.isArray(u)&&u.length===2&&s(u[0])&&s(u[1])}},5716:function(i,a,o){"use strict";var s=o(6859);i.exports=l;function l(u){return u.cmp(new s(0))}},1369:function(i,a,o){"use strict";var s=o(5716);i.exports=l;function l(u){var c=u.length,f=u.words,h=0;if(c===1)h=f[0];else if(c===2)h=f[0]+f[1]*67108864;else for(var d=0;d20?52:h+32}},1533:function(i,a,o){"use strict";var s=o(6859);i.exports=l;function l(u){return u&&typeof u=="object"&&!!u.words}},2651:function(i,a,o){"use strict";var s=o(6859),l=o(2361);i.exports=u;function u(c){var f=l.exponent(c);return f<52?new s(c):new s(c*Math.pow(2,52-f)).ushln(f-52)}},869:function(i,a,o){"use strict";var s=o(2651),l=o(5716);i.exports=u;function u(c,f){var h=l(c),d=l(f);if(h===0)return[s(0),s(1)];if(d===0)return[s(0),s(0)];d<0&&(c=c.neg(),f=f.neg());var v=c.gcd(f);return v.cmpn(1)?[c.div(v),f.div(v)]:[c,f]}},6768:function(i,a,o){"use strict";var s=o(6859);i.exports=l;function l(u){return new s(u)}},6504:function(i,a,o){"use strict";var s=o(869);i.exports=l;function l(u,c){return s(u[0].mul(c[0]),u[1].mul(c[1]))}},7721:function(i,a,o){"use strict";var s=o(5716);i.exports=l;function l(u){return s(u[0])*s(u[1])}},5572:function(i,a,o){"use strict";var s=o(869);i.exports=l;function l(u,c){return s(u[0].mul(c[1]).sub(u[1].mul(c[0])),u[1].mul(c[1]))}},946:function(i,a,o){"use strict";var s=o(1369),l=o(4025);i.exports=u;function u(c){var f=c[0],h=c[1];if(f.cmpn(0)===0)return 0;var d=f.abs().divmod(h.abs()),v=d.div,x=s(v),b=d.mod,g=f.negative!==h.negative?-1:1;if(b.cmpn(0)===0)return g*x;if(x){var E=l(x)+4,k=s(b.ushln(E).divRound(h));return g*(x+k*Math.pow(2,-E))}else{var A=h.bitLength()-b.bitLength()+53,k=s(b.ushln(A).divRound(h));return A<1023?g*k*Math.pow(2,-A):(k*=Math.pow(2,-1023),g*k*Math.pow(2,1023-A))}}},2478:function(i){"use strict";function a(f,h,d,v,x){for(var b=x+1;v<=x;){var g=v+x>>>1,E=f[g],k=d!==void 0?d(E,h):E-h;k>=0?(b=g,x=g-1):v=g+1}return b}function o(f,h,d,v,x){for(var b=x+1;v<=x;){var g=v+x>>>1,E=f[g],k=d!==void 0?d(E,h):E-h;k>0?(b=g,x=g-1):v=g+1}return b}function s(f,h,d,v,x){for(var b=v-1;v<=x;){var g=v+x>>>1,E=f[g],k=d!==void 0?d(E,h):E-h;k<0?(b=g,v=g+1):x=g-1}return b}function l(f,h,d,v,x){for(var b=v-1;v<=x;){var g=v+x>>>1,E=f[g],k=d!==void 0?d(E,h):E-h;k<=0?(b=g,v=g+1):x=g-1}return b}function u(f,h,d,v,x){for(;v<=x;){var b=v+x>>>1,g=f[b],E=d!==void 0?d(g,h):g-h;if(E===0)return b;E<=0?v=b+1:x=b-1}return-1}function c(f,h,d,v,x,b){return typeof d=="function"?b(f,h,d,v===void 0?0:v|0,x===void 0?f.length-1:x|0):b(f,h,void 0,d===void 0?0:d|0,v===void 0?f.length-1:v|0)}i.exports={ge:function(f,h,d,v,x){return c(f,h,d,v,x,a)},gt:function(f,h,d,v,x){return c(f,h,d,v,x,o)},lt:function(f,h,d,v,x){return c(f,h,d,v,x,s)},le:function(f,h,d,v,x){return c(f,h,d,v,x,l)},eq:function(f,h,d,v,x){return c(f,h,d,v,x,u)}}},8828:function(i,a){"use strict";"use restrict";var o=32;a.INT_BITS=o,a.INT_MAX=2147483647,a.INT_MIN=-1<0)-(u<0)},a.abs=function(u){var c=u>>o-1;return(u^c)-c},a.min=function(u,c){return c^(u^c)&-(u65535)<<4,u>>>=c,f=(u>255)<<3,u>>>=f,c|=f,f=(u>15)<<2,u>>>=f,c|=f,f=(u>3)<<1,u>>>=f,c|=f,c|u>>1},a.log10=function(u){return u>=1e9?9:u>=1e8?8:u>=1e7?7:u>=1e6?6:u>=1e5?5:u>=1e4?4:u>=1e3?3:u>=100?2:u>=10?1:0},a.popCount=function(u){return u=u-(u>>>1&1431655765),u=(u&858993459)+(u>>>2&858993459),(u+(u>>>4)&252645135)*16843009>>>24};function s(u){var c=32;return u&=-u,u&&c--,u&65535&&(c-=16),u&16711935&&(c-=8),u&252645135&&(c-=4),u&858993459&&(c-=2),u&1431655765&&(c-=1),c}a.countTrailingZeros=s,a.nextPow2=function(u){return u+=u===0,--u,u|=u>>>1,u|=u>>>2,u|=u>>>4,u|=u>>>8,u|=u>>>16,u+1},a.prevPow2=function(u){return u|=u>>>1,u|=u>>>2,u|=u>>>4,u|=u>>>8,u|=u>>>16,u-(u>>>1)},a.parity=function(u){return u^=u>>>16,u^=u>>>8,u^=u>>>4,u&=15,27030>>>u&1};var l=new Array(256);(function(u){for(var c=0;c<256;++c){var f=c,h=c,d=7;for(f>>>=1;f;f>>>=1)h<<=1,h|=f&1,--d;u[c]=h<>>8&255]<<16|l[u>>>16&255]<<8|l[u>>>24&255]},a.interleave2=function(u,c){return u&=65535,u=(u|u<<8)&16711935,u=(u|u<<4)&252645135,u=(u|u<<2)&858993459,u=(u|u<<1)&1431655765,c&=65535,c=(c|c<<8)&16711935,c=(c|c<<4)&252645135,c=(c|c<<2)&858993459,c=(c|c<<1)&1431655765,u|c<<1},a.deinterleave2=function(u,c){return u=u>>>c&1431655765,u=(u|u>>>1)&858993459,u=(u|u>>>2)&252645135,u=(u|u>>>4)&16711935,u=(u|u>>>16)&65535,u<<16>>16},a.interleave3=function(u,c,f){return u&=1023,u=(u|u<<16)&4278190335,u=(u|u<<8)&251719695,u=(u|u<<4)&3272356035,u=(u|u<<2)&1227133513,c&=1023,c=(c|c<<16)&4278190335,c=(c|c<<8)&251719695,c=(c|c<<4)&3272356035,c=(c|c<<2)&1227133513,u|=c<<1,f&=1023,f=(f|f<<16)&4278190335,f=(f|f<<8)&251719695,f=(f|f<<4)&3272356035,f=(f|f<<2)&1227133513,u|f<<2},a.deinterleave3=function(u,c){return u=u>>>c&1227133513,u=(u|u>>>2)&3272356035,u=(u|u>>>4)&251719695,u=(u|u>>>8)&4278190335,u=(u|u>>>16)&1023,u<<22>>22},a.nextCombination=function(u){var c=u|u-1;return c+1|(~c&-~c)-1>>>s(u)+1}},6859:function(i,a,o){i=o.nmd(i),function(s,l){"use strict";function u(G,N){if(!G)throw new Error(N||"Assertion failed")}function c(G,N){G.super_=N;var W=function(){};W.prototype=N.prototype,G.prototype=new W,G.prototype.constructor=G}function f(G,N,W){if(f.isBN(G))return G;this.negative=0,this.words=null,this.length=0,this.red=null,G!==null&&((N==="le"||N==="be")&&(W=N,N=10),this._init(G||0,N||10,W||"be"))}typeof s=="object"?s.exports=f:l.BN=f,f.BN=f,f.wordSize=26;var h;try{typeof window!="undefined"&&typeof window.Buffer!="undefined"?h=window.Buffer:h=o(7790).Buffer}catch(G){}f.isBN=function(N){return N instanceof f?!0:N!==null&&typeof N=="object"&&N.constructor.wordSize===f.wordSize&&Array.isArray(N.words)},f.max=function(N,W){return N.cmp(W)>0?N:W},f.min=function(N,W){return N.cmp(W)<0?N:W},f.prototype._init=function(N,W,re){if(typeof N=="number")return this._initNumber(N,W,re);if(typeof N=="object")return this._initArray(N,W,re);W==="hex"&&(W=16),u(W===(W|0)&&W>=2&&W<=36),N=N.toString().replace(/\s+/g,"");var ae=0;N[0]==="-"&&(ae++,this.negative=1),ae=0;ae-=3)Me=N[ae]|N[ae-1]<<8|N[ae-2]<<16,this.words[_e]|=Me<>>26-ke&67108863,ke+=24,ke>=26&&(ke-=26,_e++);else if(re==="le")for(ae=0,_e=0;ae>>26-ke&67108863,ke+=24,ke>=26&&(ke-=26,_e++);return this.strip()};function d(G,N){var W=G.charCodeAt(N);return W>=65&&W<=70?W-55:W>=97&&W<=102?W-87:W-48&15}function v(G,N,W){var re=d(G,W);return W-1>=N&&(re|=d(G,W-1)<<4),re}f.prototype._parseHex=function(N,W,re){this.length=Math.ceil((N.length-W)/6),this.words=new Array(this.length);for(var ae=0;ae=W;ae-=2)ke=v(N,W,ae)<<_e,this.words[Me]|=ke&67108863,_e>=18?(_e-=18,Me+=1,this.words[Me]|=ke>>>26):_e+=8;else{var ge=N.length-W;for(ae=ge%2===0?W+1:W;ae=18?(_e-=18,Me+=1,this.words[Me]|=ke>>>26):_e+=8}this.strip()};function x(G,N,W,re){for(var ae=0,_e=Math.min(G.length,W),Me=N;Me<_e;Me++){var ke=G.charCodeAt(Me)-48;ae*=re,ke>=49?ae+=ke-49+10:ke>=17?ae+=ke-17+10:ae+=ke}return ae}f.prototype._parseBase=function(N,W,re){this.words=[0],this.length=1;for(var ae=0,_e=1;_e<=67108863;_e*=W)ae++;ae--,_e=_e/W|0;for(var Me=N.length-re,ke=Me%ae,ge=Math.min(Me,Me-ke)+re,ie=0,Te=re;Te1&&this.words[this.length-1]===0;)this.length--;return this._normSign()},f.prototype._normSign=function(){return this.length===1&&this.words[0]===0&&(this.negative=0),this},f.prototype.inspect=function(){return(this.red?""};var b=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],g=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],E=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64e6,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,243e5,28629151,33554432,39135393,45435424,52521875,60466176];f.prototype.toString=function(N,W){N=N||10,W=W|0||1;var re;if(N===16||N==="hex"){re="";for(var ae=0,_e=0,Me=0;Me>>24-ae&16777215,_e!==0||Me!==this.length-1?re=b[6-ge.length]+ge+re:re=ge+re,ae+=2,ae>=26&&(ae-=26,Me--)}for(_e!==0&&(re=_e.toString(16)+re);re.length%W!==0;)re="0"+re;return this.negative!==0&&(re="-"+re),re}if(N===(N|0)&&N>=2&&N<=36){var ie=g[N],Te=E[N];re="";var Ee=this.clone();for(Ee.negative=0;!Ee.isZero();){var Ae=Ee.modn(Te).toString(N);Ee=Ee.idivn(Te),Ee.isZero()?re=Ae+re:re=b[ie-Ae.length]+Ae+re}for(this.isZero()&&(re="0"+re);re.length%W!==0;)re="0"+re;return this.negative!==0&&(re="-"+re),re}u(!1,"Base should be between 2 and 36")},f.prototype.toNumber=function(){var N=this.words[0];return this.length===2?N+=this.words[1]*67108864:this.length===3&&this.words[2]===1?N+=4503599627370496+this.words[1]*67108864:this.length>2&&u(!1,"Number can only safely store up to 53 bits"),this.negative!==0?-N:N},f.prototype.toJSON=function(){return this.toString(16)},f.prototype.toBuffer=function(N,W){return u(typeof h!="undefined"),this.toArrayLike(h,N,W)},f.prototype.toArray=function(N,W){return this.toArrayLike(Array,N,W)},f.prototype.toArrayLike=function(N,W,re){var ae=this.byteLength(),_e=re||Math.max(1,ae);u(ae<=_e,"byte array longer than desired length"),u(_e>0,"Requested array length <= 0"),this.strip();var Me=W==="le",ke=new N(_e),ge,ie,Te=this.clone();if(Me){for(ie=0;!Te.isZero();ie++)ge=Te.andln(255),Te.iushrn(8),ke[ie]=ge;for(;ie<_e;ie++)ke[ie]=0}else{for(ie=0;ie<_e-ae;ie++)ke[ie]=0;for(ie=0;!Te.isZero();ie++)ge=Te.andln(255),Te.iushrn(8),ke[_e-ie-1]=ge}return ke},Math.clz32?f.prototype._countBits=function(N){return 32-Math.clz32(N)}:f.prototype._countBits=function(N){var W=N,re=0;return W>=4096&&(re+=13,W>>>=13),W>=64&&(re+=7,W>>>=7),W>=8&&(re+=4,W>>>=4),W>=2&&(re+=2,W>>>=2),re+W},f.prototype._zeroBits=function(N){if(N===0)return 26;var W=N,re=0;return W&8191||(re+=13,W>>>=13),W&127||(re+=7,W>>>=7),W&15||(re+=4,W>>>=4),W&3||(re+=2,W>>>=2),W&1||re++,re},f.prototype.bitLength=function(){var N=this.words[this.length-1],W=this._countBits(N);return(this.length-1)*26+W};function k(G){for(var N=new Array(G.bitLength()),W=0;W>>ae}return N}f.prototype.zeroBits=function(){if(this.isZero())return 0;for(var N=0,W=0;WN.length?this.clone().ior(N):N.clone().ior(this)},f.prototype.uor=function(N){return this.length>N.length?this.clone().iuor(N):N.clone().iuor(this)},f.prototype.iuand=function(N){var W;this.length>N.length?W=N:W=this;for(var re=0;reN.length?this.clone().iand(N):N.clone().iand(this)},f.prototype.uand=function(N){return this.length>N.length?this.clone().iuand(N):N.clone().iuand(this)},f.prototype.iuxor=function(N){var W,re;this.length>N.length?(W=this,re=N):(W=N,re=this);for(var ae=0;aeN.length?this.clone().ixor(N):N.clone().ixor(this)},f.prototype.uxor=function(N){return this.length>N.length?this.clone().iuxor(N):N.clone().iuxor(this)},f.prototype.inotn=function(N){u(typeof N=="number"&&N>=0);var W=Math.ceil(N/26)|0,re=N%26;this._expand(W),re>0&&W--;for(var ae=0;ae0&&(this.words[ae]=~this.words[ae]&67108863>>26-re),this.strip()},f.prototype.notn=function(N){return this.clone().inotn(N)},f.prototype.setn=function(N,W){u(typeof N=="number"&&N>=0);var re=N/26|0,ae=N%26;return this._expand(re+1),W?this.words[re]=this.words[re]|1<N.length?(re=this,ae=N):(re=N,ae=this);for(var _e=0,Me=0;Me>>26;for(;_e!==0&&Me>>26;if(this.length=re.length,_e!==0)this.words[this.length]=_e,this.length++;else if(re!==this)for(;MeN.length?this.clone().iadd(N):N.clone().iadd(this)},f.prototype.isub=function(N){if(N.negative!==0){N.negative=0;var W=this.iadd(N);return N.negative=1,W._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(N),this.negative=1,this._normSign();var re=this.cmp(N);if(re===0)return this.negative=0,this.length=1,this.words[0]=0,this;var ae,_e;re>0?(ae=this,_e=N):(ae=N,_e=this);for(var Me=0,ke=0;ke<_e.length;ke++)W=(ae.words[ke]|0)-(_e.words[ke]|0)+Me,Me=W>>26,this.words[ke]=W&67108863;for(;Me!==0&&ke>26,this.words[ke]=W&67108863;if(Me===0&&ke>>26,Ee=ge&67108863,Ae=Math.min(ie,N.length-1),ze=Math.max(0,ie-G.length+1);ze<=Ae;ze++){var Ce=ie-ze|0;ae=G.words[Ce]|0,_e=N.words[ze]|0,Me=ae*_e+Ee,Te+=Me/67108864|0,Ee=Me&67108863}W.words[ie]=Ee|0,ge=Te|0}return ge!==0?W.words[ie]=ge|0:W.length--,W.strip()}var L=function(N,W,re){var ae=N.words,_e=W.words,Me=re.words,ke=0,ge,ie,Te,Ee=ae[0]|0,Ae=Ee&8191,ze=Ee>>>13,Ce=ae[1]|0,me=Ce&8191,Re=Ce>>>13,ce=ae[2]|0,Ge=ce&8191,nt=ce>>>13,ct=ae[3]|0,qt=ct&8191,rt=ct>>>13,ot=ae[4]|0,Rt=ot&8191,kt=ot>>>13,Ct=ae[5]|0,Yt=Ct&8191,xr=Ct>>>13,er=ae[6]|0,Ke=er&8191,xt=er>>>13,bt=ae[7]|0,Lt=bt&8191,St=bt>>>13,Et=ae[8]|0,dt=Et&8191,Ht=Et>>>13,$t=ae[9]|0,fr=$t&8191,_r=$t>>>13,Br=_e[0]|0,Or=Br&8191,Nr=Br>>>13,ut=_e[1]|0,Ne=ut&8191,Ye=ut>>>13,Ve=_e[2]|0,Xe=Ve&8191,ht=Ve>>>13,Le=_e[3]|0,xe=Le&8191,Se=Le>>>13,lt=_e[4]|0,Gt=lt&8191,Vt=lt>>>13,ar=_e[5]|0,Qr=ar&8191,ai=ar>>>13,jr=_e[6]|0,ri=jr&8191,bi=jr>>>13,nn=_e[7]|0,Wi=nn&8191,Ni=nn>>>13,_n=_e[8]|0,$i=_n&8191,zn=_n>>>13,Wn=_e[9]|0,It=Wn&8191,ft=Wn>>>13;re.negative=N.negative^W.negative,re.length=19,ge=Math.imul(Ae,Or),ie=Math.imul(Ae,Nr),ie=ie+Math.imul(ze,Or)|0,Te=Math.imul(ze,Nr);var jt=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(jt>>>26)|0,jt&=67108863,ge=Math.imul(me,Or),ie=Math.imul(me,Nr),ie=ie+Math.imul(Re,Or)|0,Te=Math.imul(Re,Nr),ge=ge+Math.imul(Ae,Ne)|0,ie=ie+Math.imul(Ae,Ye)|0,ie=ie+Math.imul(ze,Ne)|0,Te=Te+Math.imul(ze,Ye)|0;var Zt=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(Zt>>>26)|0,Zt&=67108863,ge=Math.imul(Ge,Or),ie=Math.imul(Ge,Nr),ie=ie+Math.imul(nt,Or)|0,Te=Math.imul(nt,Nr),ge=ge+Math.imul(me,Ne)|0,ie=ie+Math.imul(me,Ye)|0,ie=ie+Math.imul(Re,Ne)|0,Te=Te+Math.imul(Re,Ye)|0,ge=ge+Math.imul(Ae,Xe)|0,ie=ie+Math.imul(Ae,ht)|0,ie=ie+Math.imul(ze,Xe)|0,Te=Te+Math.imul(ze,ht)|0;var yr=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(yr>>>26)|0,yr&=67108863,ge=Math.imul(qt,Or),ie=Math.imul(qt,Nr),ie=ie+Math.imul(rt,Or)|0,Te=Math.imul(rt,Nr),ge=ge+Math.imul(Ge,Ne)|0,ie=ie+Math.imul(Ge,Ye)|0,ie=ie+Math.imul(nt,Ne)|0,Te=Te+Math.imul(nt,Ye)|0,ge=ge+Math.imul(me,Xe)|0,ie=ie+Math.imul(me,ht)|0,ie=ie+Math.imul(Re,Xe)|0,Te=Te+Math.imul(Re,ht)|0,ge=ge+Math.imul(Ae,xe)|0,ie=ie+Math.imul(Ae,Se)|0,ie=ie+Math.imul(ze,xe)|0,Te=Te+Math.imul(ze,Se)|0;var Fr=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(Fr>>>26)|0,Fr&=67108863,ge=Math.imul(Rt,Or),ie=Math.imul(Rt,Nr),ie=ie+Math.imul(kt,Or)|0,Te=Math.imul(kt,Nr),ge=ge+Math.imul(qt,Ne)|0,ie=ie+Math.imul(qt,Ye)|0,ie=ie+Math.imul(rt,Ne)|0,Te=Te+Math.imul(rt,Ye)|0,ge=ge+Math.imul(Ge,Xe)|0,ie=ie+Math.imul(Ge,ht)|0,ie=ie+Math.imul(nt,Xe)|0,Te=Te+Math.imul(nt,ht)|0,ge=ge+Math.imul(me,xe)|0,ie=ie+Math.imul(me,Se)|0,ie=ie+Math.imul(Re,xe)|0,Te=Te+Math.imul(Re,Se)|0,ge=ge+Math.imul(Ae,Gt)|0,ie=ie+Math.imul(Ae,Vt)|0,ie=ie+Math.imul(ze,Gt)|0,Te=Te+Math.imul(ze,Vt)|0;var Zr=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(Zr>>>26)|0,Zr&=67108863,ge=Math.imul(Yt,Or),ie=Math.imul(Yt,Nr),ie=ie+Math.imul(xr,Or)|0,Te=Math.imul(xr,Nr),ge=ge+Math.imul(Rt,Ne)|0,ie=ie+Math.imul(Rt,Ye)|0,ie=ie+Math.imul(kt,Ne)|0,Te=Te+Math.imul(kt,Ye)|0,ge=ge+Math.imul(qt,Xe)|0,ie=ie+Math.imul(qt,ht)|0,ie=ie+Math.imul(rt,Xe)|0,Te=Te+Math.imul(rt,ht)|0,ge=ge+Math.imul(Ge,xe)|0,ie=ie+Math.imul(Ge,Se)|0,ie=ie+Math.imul(nt,xe)|0,Te=Te+Math.imul(nt,Se)|0,ge=ge+Math.imul(me,Gt)|0,ie=ie+Math.imul(me,Vt)|0,ie=ie+Math.imul(Re,Gt)|0,Te=Te+Math.imul(Re,Vt)|0,ge=ge+Math.imul(Ae,Qr)|0,ie=ie+Math.imul(Ae,ai)|0,ie=ie+Math.imul(ze,Qr)|0,Te=Te+Math.imul(ze,ai)|0;var Vr=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(Vr>>>26)|0,Vr&=67108863,ge=Math.imul(Ke,Or),ie=Math.imul(Ke,Nr),ie=ie+Math.imul(xt,Or)|0,Te=Math.imul(xt,Nr),ge=ge+Math.imul(Yt,Ne)|0,ie=ie+Math.imul(Yt,Ye)|0,ie=ie+Math.imul(xr,Ne)|0,Te=Te+Math.imul(xr,Ye)|0,ge=ge+Math.imul(Rt,Xe)|0,ie=ie+Math.imul(Rt,ht)|0,ie=ie+Math.imul(kt,Xe)|0,Te=Te+Math.imul(kt,ht)|0,ge=ge+Math.imul(qt,xe)|0,ie=ie+Math.imul(qt,Se)|0,ie=ie+Math.imul(rt,xe)|0,Te=Te+Math.imul(rt,Se)|0,ge=ge+Math.imul(Ge,Gt)|0,ie=ie+Math.imul(Ge,Vt)|0,ie=ie+Math.imul(nt,Gt)|0,Te=Te+Math.imul(nt,Vt)|0,ge=ge+Math.imul(me,Qr)|0,ie=ie+Math.imul(me,ai)|0,ie=ie+Math.imul(Re,Qr)|0,Te=Te+Math.imul(Re,ai)|0,ge=ge+Math.imul(Ae,ri)|0,ie=ie+Math.imul(Ae,bi)|0,ie=ie+Math.imul(ze,ri)|0,Te=Te+Math.imul(ze,bi)|0;var gi=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(gi>>>26)|0,gi&=67108863,ge=Math.imul(Lt,Or),ie=Math.imul(Lt,Nr),ie=ie+Math.imul(St,Or)|0,Te=Math.imul(St,Nr),ge=ge+Math.imul(Ke,Ne)|0,ie=ie+Math.imul(Ke,Ye)|0,ie=ie+Math.imul(xt,Ne)|0,Te=Te+Math.imul(xt,Ye)|0,ge=ge+Math.imul(Yt,Xe)|0,ie=ie+Math.imul(Yt,ht)|0,ie=ie+Math.imul(xr,Xe)|0,Te=Te+Math.imul(xr,ht)|0,ge=ge+Math.imul(Rt,xe)|0,ie=ie+Math.imul(Rt,Se)|0,ie=ie+Math.imul(kt,xe)|0,Te=Te+Math.imul(kt,Se)|0,ge=ge+Math.imul(qt,Gt)|0,ie=ie+Math.imul(qt,Vt)|0,ie=ie+Math.imul(rt,Gt)|0,Te=Te+Math.imul(rt,Vt)|0,ge=ge+Math.imul(Ge,Qr)|0,ie=ie+Math.imul(Ge,ai)|0,ie=ie+Math.imul(nt,Qr)|0,Te=Te+Math.imul(nt,ai)|0,ge=ge+Math.imul(me,ri)|0,ie=ie+Math.imul(me,bi)|0,ie=ie+Math.imul(Re,ri)|0,Te=Te+Math.imul(Re,bi)|0,ge=ge+Math.imul(Ae,Wi)|0,ie=ie+Math.imul(Ae,Ni)|0,ie=ie+Math.imul(ze,Wi)|0,Te=Te+Math.imul(ze,Ni)|0;var Si=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(Si>>>26)|0,Si&=67108863,ge=Math.imul(dt,Or),ie=Math.imul(dt,Nr),ie=ie+Math.imul(Ht,Or)|0,Te=Math.imul(Ht,Nr),ge=ge+Math.imul(Lt,Ne)|0,ie=ie+Math.imul(Lt,Ye)|0,ie=ie+Math.imul(St,Ne)|0,Te=Te+Math.imul(St,Ye)|0,ge=ge+Math.imul(Ke,Xe)|0,ie=ie+Math.imul(Ke,ht)|0,ie=ie+Math.imul(xt,Xe)|0,Te=Te+Math.imul(xt,ht)|0,ge=ge+Math.imul(Yt,xe)|0,ie=ie+Math.imul(Yt,Se)|0,ie=ie+Math.imul(xr,xe)|0,Te=Te+Math.imul(xr,Se)|0,ge=ge+Math.imul(Rt,Gt)|0,ie=ie+Math.imul(Rt,Vt)|0,ie=ie+Math.imul(kt,Gt)|0,Te=Te+Math.imul(kt,Vt)|0,ge=ge+Math.imul(qt,Qr)|0,ie=ie+Math.imul(qt,ai)|0,ie=ie+Math.imul(rt,Qr)|0,Te=Te+Math.imul(rt,ai)|0,ge=ge+Math.imul(Ge,ri)|0,ie=ie+Math.imul(Ge,bi)|0,ie=ie+Math.imul(nt,ri)|0,Te=Te+Math.imul(nt,bi)|0,ge=ge+Math.imul(me,Wi)|0,ie=ie+Math.imul(me,Ni)|0,ie=ie+Math.imul(Re,Wi)|0,Te=Te+Math.imul(Re,Ni)|0,ge=ge+Math.imul(Ae,$i)|0,ie=ie+Math.imul(Ae,zn)|0,ie=ie+Math.imul(ze,$i)|0,Te=Te+Math.imul(ze,zn)|0;var Mi=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(Mi>>>26)|0,Mi&=67108863,ge=Math.imul(fr,Or),ie=Math.imul(fr,Nr),ie=ie+Math.imul(_r,Or)|0,Te=Math.imul(_r,Nr),ge=ge+Math.imul(dt,Ne)|0,ie=ie+Math.imul(dt,Ye)|0,ie=ie+Math.imul(Ht,Ne)|0,Te=Te+Math.imul(Ht,Ye)|0,ge=ge+Math.imul(Lt,Xe)|0,ie=ie+Math.imul(Lt,ht)|0,ie=ie+Math.imul(St,Xe)|0,Te=Te+Math.imul(St,ht)|0,ge=ge+Math.imul(Ke,xe)|0,ie=ie+Math.imul(Ke,Se)|0,ie=ie+Math.imul(xt,xe)|0,Te=Te+Math.imul(xt,Se)|0,ge=ge+Math.imul(Yt,Gt)|0,ie=ie+Math.imul(Yt,Vt)|0,ie=ie+Math.imul(xr,Gt)|0,Te=Te+Math.imul(xr,Vt)|0,ge=ge+Math.imul(Rt,Qr)|0,ie=ie+Math.imul(Rt,ai)|0,ie=ie+Math.imul(kt,Qr)|0,Te=Te+Math.imul(kt,ai)|0,ge=ge+Math.imul(qt,ri)|0,ie=ie+Math.imul(qt,bi)|0,ie=ie+Math.imul(rt,ri)|0,Te=Te+Math.imul(rt,bi)|0,ge=ge+Math.imul(Ge,Wi)|0,ie=ie+Math.imul(Ge,Ni)|0,ie=ie+Math.imul(nt,Wi)|0,Te=Te+Math.imul(nt,Ni)|0,ge=ge+Math.imul(me,$i)|0,ie=ie+Math.imul(me,zn)|0,ie=ie+Math.imul(Re,$i)|0,Te=Te+Math.imul(Re,zn)|0,ge=ge+Math.imul(Ae,It)|0,ie=ie+Math.imul(Ae,ft)|0,ie=ie+Math.imul(ze,It)|0,Te=Te+Math.imul(ze,ft)|0;var Pi=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(Pi>>>26)|0,Pi&=67108863,ge=Math.imul(fr,Ne),ie=Math.imul(fr,Ye),ie=ie+Math.imul(_r,Ne)|0,Te=Math.imul(_r,Ye),ge=ge+Math.imul(dt,Xe)|0,ie=ie+Math.imul(dt,ht)|0,ie=ie+Math.imul(Ht,Xe)|0,Te=Te+Math.imul(Ht,ht)|0,ge=ge+Math.imul(Lt,xe)|0,ie=ie+Math.imul(Lt,Se)|0,ie=ie+Math.imul(St,xe)|0,Te=Te+Math.imul(St,Se)|0,ge=ge+Math.imul(Ke,Gt)|0,ie=ie+Math.imul(Ke,Vt)|0,ie=ie+Math.imul(xt,Gt)|0,Te=Te+Math.imul(xt,Vt)|0,ge=ge+Math.imul(Yt,Qr)|0,ie=ie+Math.imul(Yt,ai)|0,ie=ie+Math.imul(xr,Qr)|0,Te=Te+Math.imul(xr,ai)|0,ge=ge+Math.imul(Rt,ri)|0,ie=ie+Math.imul(Rt,bi)|0,ie=ie+Math.imul(kt,ri)|0,Te=Te+Math.imul(kt,bi)|0,ge=ge+Math.imul(qt,Wi)|0,ie=ie+Math.imul(qt,Ni)|0,ie=ie+Math.imul(rt,Wi)|0,Te=Te+Math.imul(rt,Ni)|0,ge=ge+Math.imul(Ge,$i)|0,ie=ie+Math.imul(Ge,zn)|0,ie=ie+Math.imul(nt,$i)|0,Te=Te+Math.imul(nt,zn)|0,ge=ge+Math.imul(me,It)|0,ie=ie+Math.imul(me,ft)|0,ie=ie+Math.imul(Re,It)|0,Te=Te+Math.imul(Re,ft)|0;var Gi=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(Gi>>>26)|0,Gi&=67108863,ge=Math.imul(fr,Xe),ie=Math.imul(fr,ht),ie=ie+Math.imul(_r,Xe)|0,Te=Math.imul(_r,ht),ge=ge+Math.imul(dt,xe)|0,ie=ie+Math.imul(dt,Se)|0,ie=ie+Math.imul(Ht,xe)|0,Te=Te+Math.imul(Ht,Se)|0,ge=ge+Math.imul(Lt,Gt)|0,ie=ie+Math.imul(Lt,Vt)|0,ie=ie+Math.imul(St,Gt)|0,Te=Te+Math.imul(St,Vt)|0,ge=ge+Math.imul(Ke,Qr)|0,ie=ie+Math.imul(Ke,ai)|0,ie=ie+Math.imul(xt,Qr)|0,Te=Te+Math.imul(xt,ai)|0,ge=ge+Math.imul(Yt,ri)|0,ie=ie+Math.imul(Yt,bi)|0,ie=ie+Math.imul(xr,ri)|0,Te=Te+Math.imul(xr,bi)|0,ge=ge+Math.imul(Rt,Wi)|0,ie=ie+Math.imul(Rt,Ni)|0,ie=ie+Math.imul(kt,Wi)|0,Te=Te+Math.imul(kt,Ni)|0,ge=ge+Math.imul(qt,$i)|0,ie=ie+Math.imul(qt,zn)|0,ie=ie+Math.imul(rt,$i)|0,Te=Te+Math.imul(rt,zn)|0,ge=ge+Math.imul(Ge,It)|0,ie=ie+Math.imul(Ge,ft)|0,ie=ie+Math.imul(nt,It)|0,Te=Te+Math.imul(nt,ft)|0;var Ki=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(Ki>>>26)|0,Ki&=67108863,ge=Math.imul(fr,xe),ie=Math.imul(fr,Se),ie=ie+Math.imul(_r,xe)|0,Te=Math.imul(_r,Se),ge=ge+Math.imul(dt,Gt)|0,ie=ie+Math.imul(dt,Vt)|0,ie=ie+Math.imul(Ht,Gt)|0,Te=Te+Math.imul(Ht,Vt)|0,ge=ge+Math.imul(Lt,Qr)|0,ie=ie+Math.imul(Lt,ai)|0,ie=ie+Math.imul(St,Qr)|0,Te=Te+Math.imul(St,ai)|0,ge=ge+Math.imul(Ke,ri)|0,ie=ie+Math.imul(Ke,bi)|0,ie=ie+Math.imul(xt,ri)|0,Te=Te+Math.imul(xt,bi)|0,ge=ge+Math.imul(Yt,Wi)|0,ie=ie+Math.imul(Yt,Ni)|0,ie=ie+Math.imul(xr,Wi)|0,Te=Te+Math.imul(xr,Ni)|0,ge=ge+Math.imul(Rt,$i)|0,ie=ie+Math.imul(Rt,zn)|0,ie=ie+Math.imul(kt,$i)|0,Te=Te+Math.imul(kt,zn)|0,ge=ge+Math.imul(qt,It)|0,ie=ie+Math.imul(qt,ft)|0,ie=ie+Math.imul(rt,It)|0,Te=Te+Math.imul(rt,ft)|0;var ka=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(ka>>>26)|0,ka&=67108863,ge=Math.imul(fr,Gt),ie=Math.imul(fr,Vt),ie=ie+Math.imul(_r,Gt)|0,Te=Math.imul(_r,Vt),ge=ge+Math.imul(dt,Qr)|0,ie=ie+Math.imul(dt,ai)|0,ie=ie+Math.imul(Ht,Qr)|0,Te=Te+Math.imul(Ht,ai)|0,ge=ge+Math.imul(Lt,ri)|0,ie=ie+Math.imul(Lt,bi)|0,ie=ie+Math.imul(St,ri)|0,Te=Te+Math.imul(St,bi)|0,ge=ge+Math.imul(Ke,Wi)|0,ie=ie+Math.imul(Ke,Ni)|0,ie=ie+Math.imul(xt,Wi)|0,Te=Te+Math.imul(xt,Ni)|0,ge=ge+Math.imul(Yt,$i)|0,ie=ie+Math.imul(Yt,zn)|0,ie=ie+Math.imul(xr,$i)|0,Te=Te+Math.imul(xr,zn)|0,ge=ge+Math.imul(Rt,It)|0,ie=ie+Math.imul(Rt,ft)|0,ie=ie+Math.imul(kt,It)|0,Te=Te+Math.imul(kt,ft)|0;var jn=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(jn>>>26)|0,jn&=67108863,ge=Math.imul(fr,Qr),ie=Math.imul(fr,ai),ie=ie+Math.imul(_r,Qr)|0,Te=Math.imul(_r,ai),ge=ge+Math.imul(dt,ri)|0,ie=ie+Math.imul(dt,bi)|0,ie=ie+Math.imul(Ht,ri)|0,Te=Te+Math.imul(Ht,bi)|0,ge=ge+Math.imul(Lt,Wi)|0,ie=ie+Math.imul(Lt,Ni)|0,ie=ie+Math.imul(St,Wi)|0,Te=Te+Math.imul(St,Ni)|0,ge=ge+Math.imul(Ke,$i)|0,ie=ie+Math.imul(Ke,zn)|0,ie=ie+Math.imul(xt,$i)|0,Te=Te+Math.imul(xt,zn)|0,ge=ge+Math.imul(Yt,It)|0,ie=ie+Math.imul(Yt,ft)|0,ie=ie+Math.imul(xr,It)|0,Te=Te+Math.imul(xr,ft)|0;var la=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(la>>>26)|0,la&=67108863,ge=Math.imul(fr,ri),ie=Math.imul(fr,bi),ie=ie+Math.imul(_r,ri)|0,Te=Math.imul(_r,bi),ge=ge+Math.imul(dt,Wi)|0,ie=ie+Math.imul(dt,Ni)|0,ie=ie+Math.imul(Ht,Wi)|0,Te=Te+Math.imul(Ht,Ni)|0,ge=ge+Math.imul(Lt,$i)|0,ie=ie+Math.imul(Lt,zn)|0,ie=ie+Math.imul(St,$i)|0,Te=Te+Math.imul(St,zn)|0,ge=ge+Math.imul(Ke,It)|0,ie=ie+Math.imul(Ke,ft)|0,ie=ie+Math.imul(xt,It)|0,Te=Te+Math.imul(xt,ft)|0;var Fa=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(Fa>>>26)|0,Fa&=67108863,ge=Math.imul(fr,Wi),ie=Math.imul(fr,Ni),ie=ie+Math.imul(_r,Wi)|0,Te=Math.imul(_r,Ni),ge=ge+Math.imul(dt,$i)|0,ie=ie+Math.imul(dt,zn)|0,ie=ie+Math.imul(Ht,$i)|0,Te=Te+Math.imul(Ht,zn)|0,ge=ge+Math.imul(Lt,It)|0,ie=ie+Math.imul(Lt,ft)|0,ie=ie+Math.imul(St,It)|0,Te=Te+Math.imul(St,ft)|0;var Ra=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(Ra>>>26)|0,Ra&=67108863,ge=Math.imul(fr,$i),ie=Math.imul(fr,zn),ie=ie+Math.imul(_r,$i)|0,Te=Math.imul(_r,zn),ge=ge+Math.imul(dt,It)|0,ie=ie+Math.imul(dt,ft)|0,ie=ie+Math.imul(Ht,It)|0,Te=Te+Math.imul(Ht,ft)|0;var jo=(ke+ge|0)+((ie&8191)<<13)|0;ke=(Te+(ie>>>13)|0)+(jo>>>26)|0,jo&=67108863,ge=Math.imul(fr,It),ie=Math.imul(fr,ft),ie=ie+Math.imul(_r,It)|0,Te=Math.imul(_r,ft);var oa=(ke+ge|0)+((ie&8191)<<13)|0;return ke=(Te+(ie>>>13)|0)+(oa>>>26)|0,oa&=67108863,Me[0]=jt,Me[1]=Zt,Me[2]=yr,Me[3]=Fr,Me[4]=Zr,Me[5]=Vr,Me[6]=gi,Me[7]=Si,Me[8]=Mi,Me[9]=Pi,Me[10]=Gi,Me[11]=Ki,Me[12]=ka,Me[13]=jn,Me[14]=la,Me[15]=Fa,Me[16]=Ra,Me[17]=jo,Me[18]=oa,ke!==0&&(Me[19]=ke,re.length++),re};Math.imul||(L=A);function _(G,N,W){W.negative=N.negative^G.negative,W.length=G.length+N.length;for(var re=0,ae=0,_e=0;_e>>26)|0,ae+=Me>>>26,Me&=67108863}W.words[_e]=ke,re=Me,Me=ae}return re!==0?W.words[_e]=re:W.length--,W.strip()}function C(G,N,W){var re=new M;return re.mulp(G,N,W)}f.prototype.mulTo=function(N,W){var re,ae=this.length+N.length;return this.length===10&&N.length===10?re=L(this,N,W):ae<63?re=A(this,N,W):ae<1024?re=_(this,N,W):re=C(this,N,W),re};function M(G,N){this.x=G,this.y=N}M.prototype.makeRBT=function(N){for(var W=new Array(N),re=f.prototype._countBits(N)-1,ae=0;ae>=1;return ae},M.prototype.permute=function(N,W,re,ae,_e,Me){for(var ke=0;ke>>1)_e++;return 1<<_e+1+ae},M.prototype.conjugate=function(N,W,re){if(!(re<=1))for(var ae=0;ae>>13,re[2*Me+1]=_e&8191,_e=_e>>>13;for(Me=2*W;Me>=26,W+=ae/67108864|0,W+=_e>>>26,this.words[re]=_e&67108863}return W!==0&&(this.words[re]=W,this.length++),this},f.prototype.muln=function(N){return this.clone().imuln(N)},f.prototype.sqr=function(){return this.mul(this)},f.prototype.isqr=function(){return this.imul(this.clone())},f.prototype.pow=function(N){var W=k(N);if(W.length===0)return new f(1);for(var re=this,ae=0;ae=0);var W=N%26,re=(N-W)/26,ae=67108863>>>26-W<<26-W,_e;if(W!==0){var Me=0;for(_e=0;_e>>26-W}Me&&(this.words[_e]=Me,this.length++)}if(re!==0){for(_e=this.length-1;_e>=0;_e--)this.words[_e+re]=this.words[_e];for(_e=0;_e=0);var ae;W?ae=(W-W%26)/26:ae=0;var _e=N%26,Me=Math.min((N-_e)/26,this.length),ke=67108863^67108863>>>_e<<_e,ge=re;if(ae-=Me,ae=Math.max(0,ae),ge){for(var ie=0;ieMe)for(this.length-=Me,ie=0;ie=0&&(Te!==0||ie>=ae);ie--){var Ee=this.words[ie]|0;this.words[ie]=Te<<26-_e|Ee>>>_e,Te=Ee&ke}return ge&&Te!==0&&(ge.words[ge.length++]=Te),this.length===0&&(this.words[0]=0,this.length=1),this.strip()},f.prototype.ishrn=function(N,W,re){return u(this.negative===0),this.iushrn(N,W,re)},f.prototype.shln=function(N){return this.clone().ishln(N)},f.prototype.ushln=function(N){return this.clone().iushln(N)},f.prototype.shrn=function(N){return this.clone().ishrn(N)},f.prototype.ushrn=function(N){return this.clone().iushrn(N)},f.prototype.testn=function(N){u(typeof N=="number"&&N>=0);var W=N%26,re=(N-W)/26,ae=1<=0);var W=N%26,re=(N-W)/26;if(u(this.negative===0,"imaskn works only with positive numbers"),this.length<=re)return this;if(W!==0&&re++,this.length=Math.min(re,this.length),W!==0){var ae=67108863^67108863>>>W<=67108864;W++)this.words[W]-=67108864,W===this.length-1?this.words[W+1]=1:this.words[W+1]++;return this.length=Math.max(this.length,W+1),this},f.prototype.isubn=function(N){if(u(typeof N=="number"),u(N<67108864),N<0)return this.iaddn(-N);if(this.negative!==0)return this.negative=0,this.iaddn(N),this.negative=1,this;if(this.words[0]-=N,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var W=0;W>26)-(ge/67108864|0),this.words[_e+re]=Me&67108863}for(;_e>26,this.words[_e+re]=Me&67108863;if(ke===0)return this.strip();for(u(ke===-1),ke=0,_e=0;_e>26,this.words[_e]=Me&67108863;return this.negative=1,this.strip()},f.prototype._wordDiv=function(N,W){var re=this.length-N.length,ae=this.clone(),_e=N,Me=_e.words[_e.length-1]|0,ke=this._countBits(Me);re=26-ke,re!==0&&(_e=_e.ushln(re),ae.iushln(re),Me=_e.words[_e.length-1]|0);var ge=ae.length-_e.length,ie;if(W!=="mod"){ie=new f(null),ie.length=ge+1,ie.words=new Array(ie.length);for(var Te=0;Te=0;Ae--){var ze=(ae.words[_e.length+Ae]|0)*67108864+(ae.words[_e.length+Ae-1]|0);for(ze=Math.min(ze/Me|0,67108863),ae._ishlnsubmul(_e,ze,Ae);ae.negative!==0;)ze--,ae.negative=0,ae._ishlnsubmul(_e,1,Ae),ae.isZero()||(ae.negative^=1);ie&&(ie.words[Ae]=ze)}return ie&&ie.strip(),ae.strip(),W!=="div"&&re!==0&&ae.iushrn(re),{div:ie||null,mod:ae}},f.prototype.divmod=function(N,W,re){if(u(!N.isZero()),this.isZero())return{div:new f(0),mod:new f(0)};var ae,_e,Me;return this.negative!==0&&N.negative===0?(Me=this.neg().divmod(N,W),W!=="mod"&&(ae=Me.div.neg()),W!=="div"&&(_e=Me.mod.neg(),re&&_e.negative!==0&&_e.iadd(N)),{div:ae,mod:_e}):this.negative===0&&N.negative!==0?(Me=this.divmod(N.neg(),W),W!=="mod"&&(ae=Me.div.neg()),{div:ae,mod:Me.mod}):this.negative&N.negative?(Me=this.neg().divmod(N.neg(),W),W!=="div"&&(_e=Me.mod.neg(),re&&_e.negative!==0&&_e.isub(N)),{div:Me.div,mod:_e}):N.length>this.length||this.cmp(N)<0?{div:new f(0),mod:this}:N.length===1?W==="div"?{div:this.divn(N.words[0]),mod:null}:W==="mod"?{div:null,mod:new f(this.modn(N.words[0]))}:{div:this.divn(N.words[0]),mod:new f(this.modn(N.words[0]))}:this._wordDiv(N,W)},f.prototype.div=function(N){return this.divmod(N,"div",!1).div},f.prototype.mod=function(N){return this.divmod(N,"mod",!1).mod},f.prototype.umod=function(N){return this.divmod(N,"mod",!0).mod},f.prototype.divRound=function(N){var W=this.divmod(N);if(W.mod.isZero())return W.div;var re=W.div.negative!==0?W.mod.isub(N):W.mod,ae=N.ushrn(1),_e=N.andln(1),Me=re.cmp(ae);return Me<0||_e===1&&Me===0?W.div:W.div.negative!==0?W.div.isubn(1):W.div.iaddn(1)},f.prototype.modn=function(N){u(N<=67108863);for(var W=(1<<26)%N,re=0,ae=this.length-1;ae>=0;ae--)re=(W*re+(this.words[ae]|0))%N;return re},f.prototype.idivn=function(N){u(N<=67108863);for(var W=0,re=this.length-1;re>=0;re--){var ae=(this.words[re]|0)+W*67108864;this.words[re]=ae/N|0,W=ae%N}return this.strip()},f.prototype.divn=function(N){return this.clone().idivn(N)},f.prototype.egcd=function(N){u(N.negative===0),u(!N.isZero());var W=this,re=N.clone();W.negative!==0?W=W.umod(N):W=W.clone();for(var ae=new f(1),_e=new f(0),Me=new f(0),ke=new f(1),ge=0;W.isEven()&&re.isEven();)W.iushrn(1),re.iushrn(1),++ge;for(var ie=re.clone(),Te=W.clone();!W.isZero();){for(var Ee=0,Ae=1;!(W.words[0]&Ae)&&Ee<26;++Ee,Ae<<=1);if(Ee>0)for(W.iushrn(Ee);Ee-- >0;)(ae.isOdd()||_e.isOdd())&&(ae.iadd(ie),_e.isub(Te)),ae.iushrn(1),_e.iushrn(1);for(var ze=0,Ce=1;!(re.words[0]&Ce)&&ze<26;++ze,Ce<<=1);if(ze>0)for(re.iushrn(ze);ze-- >0;)(Me.isOdd()||ke.isOdd())&&(Me.iadd(ie),ke.isub(Te)),Me.iushrn(1),ke.iushrn(1);W.cmp(re)>=0?(W.isub(re),ae.isub(Me),_e.isub(ke)):(re.isub(W),Me.isub(ae),ke.isub(_e))}return{a:Me,b:ke,gcd:re.iushln(ge)}},f.prototype._invmp=function(N){u(N.negative===0),u(!N.isZero());var W=this,re=N.clone();W.negative!==0?W=W.umod(N):W=W.clone();for(var ae=new f(1),_e=new f(0),Me=re.clone();W.cmpn(1)>0&&re.cmpn(1)>0;){for(var ke=0,ge=1;!(W.words[0]&ge)&&ke<26;++ke,ge<<=1);if(ke>0)for(W.iushrn(ke);ke-- >0;)ae.isOdd()&&ae.iadd(Me),ae.iushrn(1);for(var ie=0,Te=1;!(re.words[0]&Te)&&ie<26;++ie,Te<<=1);if(ie>0)for(re.iushrn(ie);ie-- >0;)_e.isOdd()&&_e.iadd(Me),_e.iushrn(1);W.cmp(re)>=0?(W.isub(re),ae.isub(_e)):(re.isub(W),_e.isub(ae))}var Ee;return W.cmpn(1)===0?Ee=ae:Ee=_e,Ee.cmpn(0)<0&&Ee.iadd(N),Ee},f.prototype.gcd=function(N){if(this.isZero())return N.abs();if(N.isZero())return this.abs();var W=this.clone(),re=N.clone();W.negative=0,re.negative=0;for(var ae=0;W.isEven()&&re.isEven();ae++)W.iushrn(1),re.iushrn(1);do{for(;W.isEven();)W.iushrn(1);for(;re.isEven();)re.iushrn(1);var _e=W.cmp(re);if(_e<0){var Me=W;W=re,re=Me}else if(_e===0||re.cmpn(1)===0)break;W.isub(re)}while(!0);return re.iushln(ae)},f.prototype.invm=function(N){return this.egcd(N).a.umod(N)},f.prototype.isEven=function(){return(this.words[0]&1)===0},f.prototype.isOdd=function(){return(this.words[0]&1)===1},f.prototype.andln=function(N){return this.words[0]&N},f.prototype.bincn=function(N){u(typeof N=="number");var W=N%26,re=(N-W)/26,ae=1<>>26,ke&=67108863,this.words[Me]=ke}return _e!==0&&(this.words[Me]=_e,this.length++),this},f.prototype.isZero=function(){return this.length===1&&this.words[0]===0},f.prototype.cmpn=function(N){var W=N<0;if(this.negative!==0&&!W)return-1;if(this.negative===0&&W)return 1;this.strip();var re;if(this.length>1)re=1;else{W&&(N=-N),u(N<=67108863,"Number is too big");var ae=this.words[0]|0;re=ae===N?0:aeN.length)return 1;if(this.length=0;re--){var ae=this.words[re]|0,_e=N.words[re]|0;if(ae!==_e){ae<_e?W=-1:ae>_e&&(W=1);break}}return W},f.prototype.gtn=function(N){return this.cmpn(N)===1},f.prototype.gt=function(N){return this.cmp(N)===1},f.prototype.gten=function(N){return this.cmpn(N)>=0},f.prototype.gte=function(N){return this.cmp(N)>=0},f.prototype.ltn=function(N){return this.cmpn(N)===-1},f.prototype.lt=function(N){return this.cmp(N)===-1},f.prototype.lten=function(N){return this.cmpn(N)<=0},f.prototype.lte=function(N){return this.cmp(N)<=0},f.prototype.eqn=function(N){return this.cmpn(N)===0},f.prototype.eq=function(N){return this.cmp(N)===0},f.red=function(N){return new H(N)},f.prototype.toRed=function(N){return u(!this.red,"Already a number in reduction context"),u(this.negative===0,"red works only with positives"),N.convertTo(this)._forceRed(N)},f.prototype.fromRed=function(){return u(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},f.prototype._forceRed=function(N){return this.red=N,this},f.prototype.forceRed=function(N){return u(!this.red,"Already a number in reduction context"),this._forceRed(N)},f.prototype.redAdd=function(N){return u(this.red,"redAdd works only with red numbers"),this.red.add(this,N)},f.prototype.redIAdd=function(N){return u(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,N)},f.prototype.redSub=function(N){return u(this.red,"redSub works only with red numbers"),this.red.sub(this,N)},f.prototype.redISub=function(N){return u(this.red,"redISub works only with red numbers"),this.red.isub(this,N)},f.prototype.redShl=function(N){return u(this.red,"redShl works only with red numbers"),this.red.shl(this,N)},f.prototype.redMul=function(N){return u(this.red,"redMul works only with red numbers"),this.red._verify2(this,N),this.red.mul(this,N)},f.prototype.redIMul=function(N){return u(this.red,"redMul works only with red numbers"),this.red._verify2(this,N),this.red.imul(this,N)},f.prototype.redSqr=function(){return u(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},f.prototype.redISqr=function(){return u(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},f.prototype.redSqrt=function(){return u(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},f.prototype.redInvm=function(){return u(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},f.prototype.redNeg=function(){return u(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},f.prototype.redPow=function(N){return u(this.red&&!N.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,N)};var p={k256:null,p224:null,p192:null,p25519:null};function P(G,N){this.name=G,this.p=new f(N,16),this.n=this.p.bitLength(),this.k=new f(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}P.prototype._tmp=function(){var N=new f(null);return N.words=new Array(Math.ceil(this.n/13)),N},P.prototype.ireduce=function(N){var W=N,re;do this.split(W,this.tmp),W=this.imulK(W),W=W.iadd(this.tmp),re=W.bitLength();while(re>this.n);var ae=re0?W.isub(this.p):W.strip!==void 0?W.strip():W._strip(),W},P.prototype.split=function(N,W){N.iushrn(this.n,0,W)},P.prototype.imulK=function(N){return N.imul(this.k)};function T(){P.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}c(T,P),T.prototype.split=function(N,W){for(var re=4194303,ae=Math.min(N.length,9),_e=0;_e>>22,Me=ke}Me>>>=22,N.words[_e-10]=Me,Me===0&&N.length>10?N.length-=10:N.length-=9},T.prototype.imulK=function(N){N.words[N.length]=0,N.words[N.length+1]=0,N.length+=2;for(var W=0,re=0;re>>=26,N.words[re]=_e,W=ae}return W!==0&&(N.words[N.length++]=W),N},f._prime=function(N){if(p[N])return p[N];var W;if(N==="k256")W=new T;else if(N==="p224")W=new F;else if(N==="p192")W=new q;else if(N==="p25519")W=new V;else throw new Error("Unknown prime "+N);return p[N]=W,W};function H(G){if(typeof G=="string"){var N=f._prime(G);this.m=N.p,this.prime=N}else u(G.gtn(1),"modulus must be greater than 1"),this.m=G,this.prime=null}H.prototype._verify1=function(N){u(N.negative===0,"red works only with positives"),u(N.red,"red works only with red numbers")},H.prototype._verify2=function(N,W){u((N.negative|W.negative)===0,"red works only with positives"),u(N.red&&N.red===W.red,"red works only with red numbers")},H.prototype.imod=function(N){return this.prime?this.prime.ireduce(N)._forceRed(this):N.umod(this.m)._forceRed(this)},H.prototype.neg=function(N){return N.isZero()?N.clone():this.m.sub(N)._forceRed(this)},H.prototype.add=function(N,W){this._verify2(N,W);var re=N.add(W);return re.cmp(this.m)>=0&&re.isub(this.m),re._forceRed(this)},H.prototype.iadd=function(N,W){this._verify2(N,W);var re=N.iadd(W);return re.cmp(this.m)>=0&&re.isub(this.m),re},H.prototype.sub=function(N,W){this._verify2(N,W);var re=N.sub(W);return re.cmpn(0)<0&&re.iadd(this.m),re._forceRed(this)},H.prototype.isub=function(N,W){this._verify2(N,W);var re=N.isub(W);return re.cmpn(0)<0&&re.iadd(this.m),re},H.prototype.shl=function(N,W){return this._verify1(N),this.imod(N.ushln(W))},H.prototype.imul=function(N,W){return this._verify2(N,W),this.imod(N.imul(W))},H.prototype.mul=function(N,W){return this._verify2(N,W),this.imod(N.mul(W))},H.prototype.isqr=function(N){return this.imul(N,N.clone())},H.prototype.sqr=function(N){return this.mul(N,N)},H.prototype.sqrt=function(N){if(N.isZero())return N.clone();var W=this.m.andln(3);if(u(W%2===1),W===3){var re=this.m.add(new f(1)).iushrn(2);return this.pow(N,re)}for(var ae=this.m.subn(1),_e=0;!ae.isZero()&&ae.andln(1)===0;)_e++,ae.iushrn(1);u(!ae.isZero());var Me=new f(1).toRed(this),ke=Me.redNeg(),ge=this.m.subn(1).iushrn(1),ie=this.m.bitLength();for(ie=new f(2*ie*ie).toRed(this);this.pow(ie,ge).cmp(ke)!==0;)ie.redIAdd(ke);for(var Te=this.pow(ie,ae),Ee=this.pow(N,ae.addn(1).iushrn(1)),Ae=this.pow(N,ae),ze=_e;Ae.cmp(Me)!==0;){for(var Ce=Ae,me=0;Ce.cmp(Me)!==0;me++)Ce=Ce.redSqr();u(me=0;_e--){for(var Te=W.words[_e],Ee=ie-1;Ee>=0;Ee--){var Ae=Te>>Ee&1;if(Me!==ae[0]&&(Me=this.sqr(Me)),Ae===0&&ke===0){ge=0;continue}ke<<=1,ke|=Ae,ge++,!(ge!==re&&(_e!==0||Ee!==0))&&(Me=this.mul(Me,ae[ke]),ge=0,ke=0)}ie=26}return Me},H.prototype.convertTo=function(N){var W=N.umod(this.m);return W===N?W.clone():W},H.prototype.convertFrom=function(N){var W=N.clone();return W.red=null,W},f.mont=function(N){return new X(N)};function X(G){H.call(this,G),this.shift=this.m.bitLength(),this.shift%26!==0&&(this.shift+=26-this.shift%26),this.r=new f(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}c(X,H),X.prototype.convertTo=function(N){return this.imod(N.ushln(this.shift))},X.prototype.convertFrom=function(N){var W=this.imod(N.mul(this.rinv));return W.red=null,W},X.prototype.imul=function(N,W){if(N.isZero()||W.isZero())return N.words[0]=0,N.length=1,N;var re=N.imul(W),ae=re.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_e=re.isub(ae).iushrn(this.shift),Me=_e;return _e.cmp(this.m)>=0?Me=_e.isub(this.m):_e.cmpn(0)<0&&(Me=_e.iadd(this.m)),Me._forceRed(this)},X.prototype.mul=function(N,W){if(N.isZero()||W.isZero())return new f(0)._forceRed(this);var re=N.mul(W),ae=re.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),_e=re.isub(ae).iushrn(this.shift),Me=_e;return _e.cmp(this.m)>=0?Me=_e.isub(this.m):_e.cmpn(0)<0&&(Me=_e.iadd(this.m)),Me._forceRed(this)},X.prototype.invm=function(N){var W=this.imod(N._invmp(this.m).mul(this.r2));return W._forceRed(this)}}(i,this)},6204:function(i){"use strict";i.exports=a;function a(o){var s,l,u,c=o.length,f=0;for(s=0;s>>1;if(!(M<=0)){var p,P=s.mallocDouble(2*M*_),T=s.mallocInt32(_);if(_=f(E,M,P,T),_>0){if(M===1&&L)l.init(_),p=l.sweepComplete(M,A,0,_,P,T,0,_,P,T);else{var F=s.mallocDouble(2*M*C),q=s.mallocInt32(C);C=f(k,M,F,q),C>0&&(l.init(_+C),M===1?p=l.sweepBipartite(M,A,0,_,P,T,0,C,F,q):p=u(M,A,L,_,P,T,C,F,q),s.free(F),s.free(q))}s.free(P),s.free(T)}return p}}}var d;function v(E,k){d.push([E,k])}function x(E){return d=[],h(E,E,v,!0),d}function b(E,k){return d=[],h(E,k,v,!1),d}function g(E,k,A){switch(arguments.length){case 1:return x(E);case 2:return typeof k=="function"?h(E,E,k,!0):b(E,k);case 3:return h(E,k,A,!1);default:throw new Error("box-intersect: Invalid arguments")}}},2455:function(i,a){"use strict";function o(){function u(h,d,v,x,b,g,E,k,A,L,_){for(var C=2*h,M=x,p=C*x;MA-k?u(h,d,v,x,b,g,E,k,A,L,_):c(h,d,v,x,b,g,E,k,A,L,_)}return f}function s(){function u(v,x,b,g,E,k,A,L,_,C,M){for(var p=2*v,P=g,T=p*g;PC-_?g?u(v,x,b,E,k,A,L,_,C,M,p):c(v,x,b,E,k,A,L,_,C,M,p):g?f(v,x,b,E,k,A,L,_,C,M,p):h(v,x,b,E,k,A,L,_,C,M,p)}return d}function l(u){return u?o():s()}a.partial=l(!1),a.full=l(!0)},7150:function(i,a,o){"use strict";i.exports=G;var s=o(1888),l=o(8828),u=o(2455),c=u.partial,f=u.full,h=o(855),d=o(3545),v=o(8105),x=128,b=1<<22,g=1<<22,E=v("!(lo>=p0)&&!(p1>=hi)"),k=v("lo===p0"),A=v("lo0;){Te-=1;var ze=Te*M,Ce=T[ze],me=T[ze+1],Re=T[ze+2],ce=T[ze+3],Ge=T[ze+4],nt=T[ze+5],ct=Te*p,qt=F[ct],rt=F[ct+1],ot=nt&1,Rt=!!(nt&16),kt=_e,Ct=Me,Yt=ge,xr=ie;if(ot&&(kt=ge,Ct=ie,Yt=_e,xr=Me),!(nt&2&&(Re=A(N,Ce,me,Re,kt,Ct,rt),me>=Re))&&!(nt&4&&(me=L(N,Ce,me,Re,kt,Ct,qt),me>=Re))){var er=Re-me,Ke=Ge-ce;if(Rt){if(N*er*(er+Ke)v&&b[C+d]>L;--_,C-=E){for(var M=C,p=C+E,P=0;P>>1,L=2*h,_=A,C=b[L*A+d];E=F?(_=T,C=F):P>=V?(_=p,C=P):(_=q,C=V):F>=V?(_=T,C=F):V>=P?(_=p,C=P):(_=q,C=V);for(var G=L*(k-1),N=L*_,H=0;H=p0)&&!(p1>=hi)":d};function o(v){return a[v]}function s(v,x,b,g,E,k,A){for(var L=2*v,_=L*b,C=_,M=b,p=x,P=v+x,T=b;g>T;++T,_+=L){var F=E[_+p];if(F===A)if(M===T)M+=1,C+=L;else{for(var q=0;L>q;++q){var V=E[_+q];E[_+q]=E[C],E[C++]=V}var H=k[T];k[T]=k[M],k[M++]=H}}return M}function l(v,x,b,g,E,k,A){for(var L=2*v,_=L*b,C=_,M=b,p=x,P=v+x,T=b;g>T;++T,_+=L){var F=E[_+p];if(Fq;++q){var V=E[_+q];E[_+q]=E[C],E[C++]=V}var H=k[T];k[T]=k[M],k[M++]=H}}return M}function u(v,x,b,g,E,k,A){for(var L=2*v,_=L*b,C=_,M=b,p=x,P=v+x,T=b;g>T;++T,_+=L){var F=E[_+P];if(F<=A)if(M===T)M+=1,C+=L;else{for(var q=0;L>q;++q){var V=E[_+q];E[_+q]=E[C],E[C++]=V}var H=k[T];k[T]=k[M],k[M++]=H}}return M}function c(v,x,b,g,E,k,A){for(var L=2*v,_=L*b,C=_,M=b,p=x,P=v+x,T=b;g>T;++T,_+=L){var F=E[_+P];if(F<=A)if(M===T)M+=1,C+=L;else{for(var q=0;L>q;++q){var V=E[_+q];E[_+q]=E[C],E[C++]=V}var H=k[T];k[T]=k[M],k[M++]=H}}return M}function f(v,x,b,g,E,k,A){for(var L=2*v,_=L*b,C=_,M=b,p=x,P=v+x,T=b;g>T;++T,_+=L){var F=E[_+p],q=E[_+P];if(F<=A&&A<=q)if(M===T)M+=1,C+=L;else{for(var V=0;L>V;++V){var H=E[_+V];E[_+V]=E[C],E[C++]=H}var X=k[T];k[T]=k[M],k[M++]=X}}return M}function h(v,x,b,g,E,k,A){for(var L=2*v,_=L*b,C=_,M=b,p=x,P=v+x,T=b;g>T;++T,_+=L){var F=E[_+p],q=E[_+P];if(FV;++V){var H=E[_+V];E[_+V]=E[C],E[C++]=H}var X=k[T];k[T]=k[M],k[M++]=X}}return M}function d(v,x,b,g,E,k,A,L){for(var _=2*v,C=_*b,M=C,p=b,P=x,T=v+x,F=b;g>F;++F,C+=_){var q=E[C+P],V=E[C+T];if(!(q>=A)&&!(L>=V))if(p===F)p+=1,M+=_;else{for(var H=0;_>H;++H){var X=E[C+H];E[C+H]=E[M],E[M++]=X}var G=k[F];k[F]=k[p],k[p++]=G}}return p}},4192:function(i){"use strict";i.exports=o;var a=32;function o(x,b){b<=4*a?s(0,b-1,x):v(0,b-1,x)}function s(x,b,g){for(var E=2*(x+1),k=x+1;k<=b;++k){for(var A=g[E++],L=g[E++],_=k,C=E-2;_-- >x;){var M=g[C-2],p=g[C-1];if(Mg[b+1]:!0}function d(x,b,g,E){x*=2;var k=E[x];return k>1,_=L-E,C=L+E,M=k,p=_,P=L,T=C,F=A,q=x+1,V=b-1,H=0;h(M,p,g)&&(H=M,M=p,p=H),h(T,F,g)&&(H=T,T=F,F=H),h(M,P,g)&&(H=M,M=P,P=H),h(p,P,g)&&(H=p,p=P,P=H),h(M,T,g)&&(H=M,M=T,T=H),h(P,T,g)&&(H=P,P=T,T=H),h(p,F,g)&&(H=p,p=F,F=H),h(p,P,g)&&(H=p,p=P,P=H),h(T,F,g)&&(H=T,T=F,F=H);for(var X=g[2*p],G=g[2*p+1],N=g[2*T],W=g[2*T+1],re=2*M,ae=2*P,_e=2*F,Me=2*k,ke=2*L,ge=2*A,ie=0;ie<2;++ie){var Te=g[re+ie],Ee=g[ae+ie],Ae=g[_e+ie];g[Me+ie]=Te,g[ke+ie]=Ee,g[ge+ie]=Ae}u(_,x,g),u(C,b,g);for(var ze=q;ze<=V;++ze)if(d(ze,X,G,g))ze!==q&&l(ze,q,g),++q;else if(!d(ze,N,W,g))for(;;)if(d(V,N,W,g)){d(V,X,G,g)?(c(ze,q,V,g),++q,--V):(l(ze,V,g),--V);break}else{if(--V>>1;u(E,Ee);for(var Ae=0,ze=0,ke=0;ke=c)Ce=Ce-c|0,A(v,x,ze--,Ce);else if(Ce>=0)A(h,d,Ae--,Ce);else if(Ce<=-c){Ce=-Ce-c|0;for(var me=0;me>>1;u(E,Ee);for(var Ae=0,ze=0,Ce=0,ke=0;ke>1===E[2*ke+3]>>1&&(Re=2,ke+=1),me<0){for(var ce=-(me>>1)-1,Ge=0;Ge>1)-1;Re===0?A(h,d,Ae--,ce):Re===1?A(v,x,ze--,ce):Re===2&&A(b,g,Ce--,ce)}}}function M(P,T,F,q,V,H,X,G,N,W,re,ae){var _e=0,Me=2*P,ke=T,ge=T+P,ie=1,Te=1;q?Te=c:ie=c;for(var Ee=V;Ee>>1;u(E,me);for(var Re=0,Ee=0;Ee=c?(Ge=!q,Ae-=c):(Ge=!!q,Ae-=1),Ge)L(h,d,Re++,Ae);else{var nt=ae[Ae],ct=Me*Ae,qt=re[ct+T+1],rt=re[ct+T+1+P];e:for(var ot=0;ot>>1;u(E,Ae);for(var ze=0,ge=0;ge=c)h[ze++]=ie-c;else{ie-=1;var me=re[ie],Re=_e*ie,ce=W[Re+T+1],Ge=W[Re+T+1+P];e:for(var nt=0;nt=0;--nt)if(h[nt]===ie){for(var ot=nt+1;ot0;){for(var k=d.pop(),b=d.pop(),A=-1,L=-1,g=x[b],C=1;C=0||(h.flip(b,k),u(f,h,d,A,b,L),u(f,h,d,b,L,A),u(f,h,d,L,k,A),u(f,h,d,k,A,L))}}},5023:function(i,a,o){"use strict";var s=o(2478);i.exports=d;function l(v,x,b,g,E,k,A){this.cells=v,this.neighbor=x,this.flags=g,this.constraint=b,this.active=E,this.next=k,this.boundary=A}var u=l.prototype;function c(v,x){return v[0]-x[0]||v[1]-x[1]||v[2]-x[2]}u.locate=function(){var v=[0,0,0];return function(x,b,g){var E=x,k=b,A=g;return b0||A.length>0;){for(;k.length>0;){var p=k.pop();if(L[p]!==-E){L[p]=E;for(var P=_[p],T=0;T<3;++T){var F=M[3*p+T];F>=0&&L[F]===0&&(C[3*p+T]?A.push(F):(k.push(F),L[F]=E))}}}var q=A;A=k,k=q,A.length=0,E=-E}var V=h(_,L,x);return b?V.concat(g.boundary):V}},8902:function(i,a,o){"use strict";var s=o(2478),l=o(3250)[3],u=0,c=1,f=2;i.exports=A;function h(L,_,C,M,p){this.a=L,this.b=_,this.idx=C,this.lowerIds=M,this.upperIds=p}function d(L,_,C,M){this.a=L,this.b=_,this.type=C,this.idx=M}function v(L,_){var C=L.a[0]-_.a[0]||L.a[1]-_.a[1]||L.type-_.type;return C||L.type!==u&&(C=l(L.a,L.b,_.b),C)?C:L.idx-_.idx}function x(L,_){return l(L.a,L.b,_)}function b(L,_,C,M,p){for(var P=s.lt(_,M,x),T=s.gt(_,M,x),F=P;F1&&l(C[V[X-2]],C[V[X-1]],M)>0;)L.push([V[X-1],V[X-2],p]),X-=1;V.length=X,V.push(p);for(var H=q.upperIds,X=H.length;X>1&&l(C[H[X-2]],C[H[X-1]],M)<0;)L.push([H[X-2],H[X-1],p]),X-=1;H.length=X,H.push(p)}}function g(L,_){var C;return L.a[0]<_.a[0]?C=l(L.a,L.b,_.a):C=l(_.b,_.a,L.a),C||(_.b[0]q[0]&&p.push(new d(q,F,f,P),new d(F,q,c,P))}p.sort(v);for(var V=p[0].a[0]-(1+Math.abs(p[0].a[0]))*Math.pow(2,-52),H=[new h([V,1],[V,0],-1,[],[],[],[])],X=[],P=0,G=p.length;P=0}}(),u.removeTriangle=function(h,d,v){var x=this.stars;c(x[h],d,v),c(x[d],v,h),c(x[v],h,d)},u.addTriangle=function(h,d,v){var x=this.stars;x[h].push(d,v),x[d].push(v,h),x[v].push(h,d)},u.opposite=function(h,d){for(var v=this.stars[d],x=1,b=v.length;x=0;--N){var Te=X[N];W=Te[0];var Ee=V[W],Ae=Ee[0],ze=Ee[1],Ce=q[Ae],me=q[ze];if((Ce[0]-me[0]||Ce[1]-me[1])<0){var Re=Ae;Ae=ze,ze=Re}Ee[0]=Ae;var ce=Ee[1]=Te[1],Ge;for(G&&(Ge=Ee[2]);N>0&&X[N-1][0]===W;){var Te=X[--N],nt=Te[1];G?V.push([ce,nt,Ge]):V.push([ce,nt]),ce=nt}G?V.push([ce,ze,Ge]):V.push([ce,ze])}return re}function _(q,V,H){for(var X=V.length,G=new s(X),N=[],W=0;WV[2]?1:0)}function p(q,V,H){if(q.length!==0){if(V)for(var X=0;X0||W.length>0}function F(q,V,H){var X;if(H){X=V;for(var G=new Array(V.length),N=0;NL+1)throw new Error(k+" map requires nshades to be at least size "+E.length);Array.isArray(d.alpha)?d.alpha.length!==2?_=[1,1]:_=d.alpha.slice():typeof d.alpha=="number"?_=[d.alpha,d.alpha]:_=[1,1],v=E.map(function(F){return Math.round(F.index*L)}),_[0]=Math.min(Math.max(_[0],0),1),_[1]=Math.min(Math.max(_[1],0),1);var M=E.map(function(F,q){var V=E[q].index,H=E[q].rgb.slice();return H.length===4&&H[3]>=0&&H[3]<=1||(H[3]=_[0]+(_[1]-_[0])*V),H}),p=[];for(C=0;C=0}function d(v,x,b,g){var E=s(x,b,g);if(E===0){var k=l(s(v,x,b)),A=l(s(v,x,g));if(k===A){if(k===0){var L=h(v,x,b),_=h(v,x,g);return L===_?0:L?1:-1}return 0}else{if(A===0)return k>0||h(v,x,g)?-1:1;if(k===0)return A>0||h(v,x,b)?1:-1}return l(A-k)}var C=s(v,x,b);if(C>0)return E>0&&s(v,x,g)>0?1:-1;if(C<0)return E>0||s(v,x,g)>0?1:-1;var M=s(v,x,g);return M>0||h(v,x,b)?1:-1}},8572:function(i){"use strict";i.exports=function(o){return o<0?-1:o>0?1:0}},8507:function(i){i.exports=s;var a=Math.min;function o(l,u){return l-u}function s(l,u){var c=l.length,f=l.length-u.length;if(f)return f;switch(c){case 0:return 0;case 1:return l[0]-u[0];case 2:return l[0]+l[1]-u[0]-u[1]||a(l[0],l[1])-a(u[0],u[1]);case 3:var h=l[0]+l[1],d=u[0]+u[1];if(f=h+l[2]-(d+u[2]),f)return f;var v=a(l[0],l[1]),x=a(u[0],u[1]);return a(v,l[2])-a(x,u[2])||a(v+l[2],h)-a(x+u[2],d);case 4:var b=l[0],g=l[1],E=l[2],k=l[3],A=u[0],L=u[1],_=u[2],C=u[3];return b+g+E+k-(A+L+_+C)||a(b,g,E,k)-a(A,L,_,C,A)||a(b+g,b+E,b+k,g+E,g+k,E+k)-a(A+L,A+_,A+C,L+_,L+C,_+C)||a(b+g+E,b+g+k,b+E+k,g+E+k)-a(A+L+_,A+L+C,A+_+C,L+_+C);default:for(var M=l.slice().sort(o),p=u.slice().sort(o),P=0;Po[l][0]&&(l=u);return sl?[[l],[s]]:[[s]]}},4750:function(i,a,o){"use strict";i.exports=l;var s=o(3090);function l(u){var c=s(u),f=c.length;if(f<=2)return[];for(var h=new Array(f),d=c[f-1],v=0;v=d[A]&&(k+=1);g[E]=k}}return h}function f(h,d){try{return s(h,!0)}catch(g){var v=l(h);if(v.length<=d)return[];var x=u(h,v),b=s(x,!0);return c(b,v)}}},4769:function(i){"use strict";function a(s,l,u,c,f,h){var d=6*f*f-6*f,v=3*f*f-4*f+1,x=-6*f*f+6*f,b=3*f*f-2*f;if(s.length){h||(h=new Array(s.length));for(var g=s.length-1;g>=0;--g)h[g]=d*s[g]+v*l[g]+x*u[g]+b*c[g];return h}return d*s+v*l+x*u[g]+b*c}function o(s,l,u,c,f,h){var d=f-1,v=f*f,x=d*d,b=(1+2*f)*x,g=f*x,E=v*(3-2*f),k=v*d;if(s.length){h||(h=new Array(s.length));for(var A=s.length-1;A>=0;--A)h[A]=b*s[A]+g*l[A]+E*u[A]+k*c[A];return h}return b*s+g*l+E*u+k*c}i.exports=o,i.exports.derivative=a},7642:function(i,a,o){"use strict";var s=o(8954),l=o(1682);i.exports=h;function u(d,v){this.point=d,this.index=v}function c(d,v){for(var x=d.point,b=v.point,g=x.length,E=0;E=2)return!1;H[G]=N}return!0}):V=V.filter(function(H){for(var X=0;X<=b;++X){var G=P[H[X]];if(G<0)return!1;H[X]=G}return!0}),b&1)for(var k=0;k>>31},i.exports.exponent=function(E){var k=i.exports.hi(E);return(k<<1>>>21)-1023},i.exports.fraction=function(E){var k=i.exports.lo(E),A=i.exports.hi(E),L=A&(1<<20)-1;return A&2146435072&&(L+=1048576),[k,L]},i.exports.denormalized=function(E){var k=i.exports.hi(E);return!(k&2146435072)}},1338:function(i){"use strict";function a(l,u,c){var f=l[c]|0;if(f<=0)return[];var h=new Array(f),d;if(c===l.length-1)for(d=0;d0)return o(l|0,u);break;case"object":if(typeof l.length=="number")return a(l,u,0);break}return[]}i.exports=s},3134:function(i,a,o){"use strict";i.exports=l;var s=o(1682);function l(u,c){var f=u.length;if(typeof c!="number"){c=0;for(var h=0;h=b-1)for(var C=k.length-1,p=v-x[b-1],M=0;M=b-1)for(var _=k.length-1,C=v-x[b-1],M=0;M=0;--b)if(v[--x])return!1;return!0},f.jump=function(v){var x=this.lastT(),b=this.dimension;if(!(v0;--M)g.push(u(L[M-1],_[M-1],arguments[M])),E.push(0)}},f.push=function(v){var x=this.lastT(),b=this.dimension;if(!(v1e-6?1/A:0;this._time.push(v);for(var p=b;p>0;--p){var P=u(_[p-1],C[p-1],arguments[p]);g.push(P),E.push((P-g[k++])*M)}}},f.set=function(v){var x=this.dimension;if(!(v0;--L)b.push(u(k[L-1],A[L-1],arguments[L])),g.push(0)}},f.move=function(v){var x=this.lastT(),b=this.dimension;if(!(v<=x||arguments.length!==b+1)){var g=this._state,E=this._velocity,k=g.length-this.dimension,A=this.bounds,L=A[0],_=A[1],C=v-x,M=C>1e-6?1/C:0;this._time.push(v);for(var p=b;p>0;--p){var P=arguments[p];g.push(u(L[p-1],_[p-1],g[k++]+P)),E.push(P*M)}}},f.idle=function(v){var x=this.lastT();if(!(v=0;--M)g.push(u(L[M],_[M],g[k]+C*E[k])),E.push(0),k+=1}};function h(v){for(var x=new Array(v),b=0;b=0;--q){var p=P[q];T[q]<=0?P[q]=new s(p._color,p.key,p.value,P[q+1],p.right,p._count+1):P[q]=new s(p._color,p.key,p.value,p.left,P[q+1],p._count+1)}for(var q=P.length-1;q>1;--q){var V=P[q-1],p=P[q];if(V._color===o||p._color===o)break;var H=P[q-2];if(H.left===V)if(V.left===p){var X=H.right;if(X&&X._color===a)V._color=o,H.right=u(o,X),H._color=a,q-=1;else{if(H._color=a,H.left=V.right,V._color=o,V.right=H,P[q-2]=V,P[q-1]=p,c(H),c(V),q>=3){var G=P[q-3];G.left===H?G.left=V:G.right=V}break}}else{var X=H.right;if(X&&X._color===a)V._color=o,H.right=u(o,X),H._color=a,q-=1;else{if(V.right=p.left,H._color=a,H.left=p.right,p._color=o,p.left=V,p.right=H,P[q-2]=p,P[q-1]=V,c(H),c(V),c(p),q>=3){var G=P[q-3];G.left===H?G.left=p:G.right=p}break}}else if(V.right===p){var X=H.left;if(X&&X._color===a)V._color=o,H.left=u(o,X),H._color=a,q-=1;else{if(H._color=a,H.right=V.left,V._color=o,V.left=H,P[q-2]=V,P[q-1]=p,c(H),c(V),q>=3){var G=P[q-3];G.right===H?G.right=V:G.left=V}break}}else{var X=H.left;if(X&&X._color===a)V._color=o,H.left=u(o,X),H._color=a,q-=1;else{if(V.left=p.right,H._color=a,H.right=p.left,p._color=o,p.right=V,p.left=H,P[q-2]=p,P[q-1]=V,c(H),c(V),c(p),q>=3){var G=P[q-3];G.right===H?G.right=p:G.left=p}break}}}return P[0]._color=o,new f(M,P[0])};function d(_,C){if(C.left){var M=d(_,C.left);if(M)return M}var M=_(C.key,C.value);if(M)return M;if(C.right)return d(_,C.right)}function v(_,C,M,p){var P=C(_,p.key);if(P<=0){if(p.left){var T=v(_,C,M,p.left);if(T)return T}var T=M(p.key,p.value);if(T)return T}if(p.right)return v(_,C,M,p.right)}function x(_,C,M,p,P){var T=M(_,P.key),F=M(C,P.key),q;if(T<=0&&(P.left&&(q=x(_,C,M,p,P.left),q)||F>0&&(q=p(P.key,P.value),q)))return q;if(F>0&&P.right)return x(_,C,M,p,P.right)}h.forEach=function(C,M,p){if(this.root)switch(arguments.length){case 1:return d(C,this.root);case 2:return v(M,this._compare,C,this.root);case 3:return this._compare(M,p)>=0?void 0:x(M,p,this._compare,C,this.root)}},Object.defineProperty(h,"begin",{get:function(){for(var _=[],C=this.root;C;)_.push(C),C=C.left;return new b(this,_)}}),Object.defineProperty(h,"end",{get:function(){for(var _=[],C=this.root;C;)_.push(C),C=C.right;return new b(this,_)}}),h.at=function(_){if(_<0)return new b(this,[]);for(var C=this.root,M=[];;){if(M.push(C),C.left){if(_=C.right._count)break;C=C.right}else break}return new b(this,[])},h.ge=function(_){for(var C=this._compare,M=this.root,p=[],P=0;M;){var T=C(_,M.key);p.push(M),T<=0&&(P=p.length),T<=0?M=M.left:M=M.right}return p.length=P,new b(this,p)},h.gt=function(_){for(var C=this._compare,M=this.root,p=[],P=0;M;){var T=C(_,M.key);p.push(M),T<0&&(P=p.length),T<0?M=M.left:M=M.right}return p.length=P,new b(this,p)},h.lt=function(_){for(var C=this._compare,M=this.root,p=[],P=0;M;){var T=C(_,M.key);p.push(M),T>0&&(P=p.length),T<=0?M=M.left:M=M.right}return p.length=P,new b(this,p)},h.le=function(_){for(var C=this._compare,M=this.root,p=[],P=0;M;){var T=C(_,M.key);p.push(M),T>=0&&(P=p.length),T<0?M=M.left:M=M.right}return p.length=P,new b(this,p)},h.find=function(_){for(var C=this._compare,M=this.root,p=[];M;){var P=C(_,M.key);if(p.push(M),P===0)return new b(this,p);P<=0?M=M.left:M=M.right}return new b(this,[])},h.remove=function(_){var C=this.find(_);return C?C.remove():this},h.get=function(_){for(var C=this._compare,M=this.root;M;){var p=C(_,M.key);if(p===0)return M.value;p<=0?M=M.left:M=M.right}};function b(_,C){this.tree=_,this._stack=C}var g=b.prototype;Object.defineProperty(g,"valid",{get:function(){return this._stack.length>0}}),Object.defineProperty(g,"node",{get:function(){return this._stack.length>0?this._stack[this._stack.length-1]:null},enumerable:!0}),g.clone=function(){return new b(this.tree,this._stack.slice())};function E(_,C){_.key=C.key,_.value=C.value,_.left=C.left,_.right=C.right,_._color=C._color,_._count=C._count}function k(_){for(var C,M,p,P,T=_.length-1;T>=0;--T){if(C=_[T],T===0){C._color=o;return}if(M=_[T-1],M.left===C){if(p=M.right,p.right&&p.right._color===a){if(p=M.right=l(p),P=p.right=l(p.right),M.right=p.left,p.left=M,p.right=P,p._color=M._color,C._color=o,M._color=o,P._color=o,c(M),c(p),T>1){var F=_[T-2];F.left===M?F.left=p:F.right=p}_[T-1]=p;return}else if(p.left&&p.left._color===a){if(p=M.right=l(p),P=p.left=l(p.left),M.right=P.left,p.left=P.right,P.left=M,P.right=p,P._color=M._color,M._color=o,p._color=o,C._color=o,c(M),c(p),c(P),T>1){var F=_[T-2];F.left===M?F.left=P:F.right=P}_[T-1]=P;return}if(p._color===o)if(M._color===a){M._color=o,M.right=u(a,p);return}else{M.right=u(a,p);continue}else{if(p=l(p),M.right=p.left,p.left=M,p._color=M._color,M._color=a,c(M),c(p),T>1){var F=_[T-2];F.left===M?F.left=p:F.right=p}_[T-1]=p,_[T]=M,T+1<_.length?_[T+1]=C:_.push(C),T=T+2}}else{if(p=M.left,p.left&&p.left._color===a){if(p=M.left=l(p),P=p.left=l(p.left),M.left=p.right,p.right=M,p.left=P,p._color=M._color,C._color=o,M._color=o,P._color=o,c(M),c(p),T>1){var F=_[T-2];F.right===M?F.right=p:F.left=p}_[T-1]=p;return}else if(p.right&&p.right._color===a){if(p=M.left=l(p),P=p.right=l(p.right),M.left=P.right,p.right=P.left,P.right=M,P.left=p,P._color=M._color,M._color=o,p._color=o,C._color=o,c(M),c(p),c(P),T>1){var F=_[T-2];F.right===M?F.right=P:F.left=P}_[T-1]=P;return}if(p._color===o)if(M._color===a){M._color=o,M.left=u(a,p);return}else{M.left=u(a,p);continue}else{if(p=l(p),M.left=p.right,p.right=M,p._color=M._color,M._color=a,c(M),c(p),T>1){var F=_[T-2];F.right===M?F.right=p:F.left=p}_[T-1]=p,_[T]=M,T+1<_.length?_[T+1]=C:_.push(C),T=T+2}}}}g.remove=function(){var _=this._stack;if(_.length===0)return this.tree;var C=new Array(_.length),M=_[_.length-1];C[C.length-1]=new s(M._color,M.key,M.value,M.left,M.right,M._count);for(var p=_.length-2;p>=0;--p){var M=_[p];M.left===_[p+1]?C[p]=new s(M._color,M.key,M.value,C[p+1],M.right,M._count):C[p]=new s(M._color,M.key,M.value,M.left,C[p+1],M._count)}if(M=C[C.length-1],M.left&&M.right){var P=C.length;for(M=M.left;M.right;)C.push(M),M=M.right;var T=C[P-1];C.push(new s(M._color,T.key,T.value,M.left,M.right,M._count)),C[P-1].key=M.key,C[P-1].value=M.value;for(var p=C.length-2;p>=P;--p)M=C[p],C[p]=new s(M._color,M.key,M.value,M.left,C[p+1],M._count);C[P-1].left=C[P]}if(M=C[C.length-1],M._color===a){var F=C[C.length-2];F.left===M?F.left=null:F.right===M&&(F.right=null),C.pop();for(var p=0;p0)return this._stack[this._stack.length-1].key},enumerable:!0}),Object.defineProperty(g,"value",{get:function(){if(this._stack.length>0)return this._stack[this._stack.length-1].value},enumerable:!0}),Object.defineProperty(g,"index",{get:function(){var _=0,C=this._stack;if(C.length===0){var M=this.tree.root;return M?M._count:0}else C[C.length-1].left&&(_=C[C.length-1].left._count);for(var p=C.length-2;p>=0;--p)C[p+1]===C[p].right&&(++_,C[p].left&&(_+=C[p].left._count));return _},enumerable:!0}),g.next=function(){var _=this._stack;if(_.length!==0){var C=_[_.length-1];if(C.right)for(C=C.right;C;)_.push(C),C=C.left;else for(_.pop();_.length>0&&_[_.length-1].right===C;)C=_[_.length-1],_.pop()}},Object.defineProperty(g,"hasNext",{get:function(){var _=this._stack;if(_.length===0)return!1;if(_[_.length-1].right)return!0;for(var C=_.length-1;C>0;--C)if(_[C-1].left===_[C])return!0;return!1}}),g.update=function(_){var C=this._stack;if(C.length===0)throw new Error("Can't update empty node!");var M=new Array(C.length),p=C[C.length-1];M[M.length-1]=new s(p._color,p.key,_,p.left,p.right,p._count);for(var P=C.length-2;P>=0;--P)p=C[P],p.left===C[P+1]?M[P]=new s(p._color,p.key,p.value,M[P+1],p.right,p._count):M[P]=new s(p._color,p.key,p.value,p.left,M[P+1],p._count);return new f(this.tree._compare,M[0])},g.prev=function(){var _=this._stack;if(_.length!==0){var C=_[_.length-1];if(C.left)for(C=C.left;C;)_.push(C),C=C.right;else for(_.pop();_.length>0&&_[_.length-1].left===C;)C=_[_.length-1],_.pop()}},Object.defineProperty(g,"hasPrev",{get:function(){var _=this._stack;if(_.length===0)return!1;if(_[_.length-1].left)return!0;for(var C=_.length-1;C>0;--C)if(_[C-1].right===_[C])return!0;return!1}});function A(_,C){return _C?1:0}function L(_){return new f(_||A,null)}},3837:function(i,a,o){"use strict";i.exports=q;var s=o(4935),l=o(501),u=o(5304),c=o(6429),f=o(6444),h=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),d=ArrayBuffer,v=DataView;function x(V){return d.isView(V)&&!(V instanceof v)}function b(V){return Array.isArray(V)||x(V)}function g(V,H){return V[0]=H[0],V[1]=H[1],V[2]=H[2],V}function E(V){this.gl=V,this.pixelRatio=1,this.bounds=[[-10,-10,-10],[10,10,10]],this.ticks=[[],[],[]],this.autoTicks=!0,this.tickSpacing=[1,1,1],this.tickEnable=[!0,!0,!0],this.tickFont=["sans-serif","sans-serif","sans-serif"],this.tickFontStyle=["normal","normal","normal"],this.tickFontWeight=["normal","normal","normal"],this.tickFontVariant=["normal","normal","normal"],this.tickSize=[12,12,12],this.tickAngle=[0,0,0],this.tickAlign=["auto","auto","auto"],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[10,10,10],this.lastCubeProps={cubeEdges:[0,0,0],axis:[0,0,0]},this.labels=["x","y","z"],this.labelEnable=[!0,!0,!0],this.labelFont=["sans-serif","sans-serif","sans-serif"],this.labelFontStyle=["normal","normal","normal"],this.labelFontWeight=["normal","normal","normal"],this.labelFontVariant=["normal","normal","normal"],this.labelSize=[20,20,20],this.labelAngle=[0,0,0],this.labelAlign=["auto","auto","auto"],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[10,10,10],this.lineEnable=[!0,!0,!0],this.lineMirror=[!1,!1,!1],this.lineWidth=[1,1,1],this.lineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.lineTickEnable=[!0,!0,!0],this.lineTickMirror=[!1,!1,!1],this.lineTickLength=[0,0,0],this.lineTickWidth=[1,1,1],this.lineTickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.gridEnable=[!0,!0,!0],this.gridWidth=[1,1,1],this.gridColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroEnable=[!0,!0,!0],this.zeroLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroLineWidth=[2,2,2],this.backgroundEnable=[!1,!1,!1],this.backgroundColor=[[.8,.8,.8,.5],[.8,.8,.8,.5],[.8,.8,.8,.5]],this._firstInit=!0,this._text=null,this._lines=null,this._background=u(V)}var k=E.prototype;k.update=function(V){V=V||{};function H(Ae,ze,Ce){if(Ce in V){var me=V[Ce],Re=this[Ce],ce;(Ae?b(me)&&b(me[0]):b(me))?this[Ce]=ce=[ze(me[0]),ze(me[1]),ze(me[2])]:this[Ce]=ce=[ze(me),ze(me),ze(me)];for(var Ge=0;Ge<3;++Ge)if(ce[Ge]!==Re[Ge])return!0}return!1}var X=H.bind(this,!1,Number),G=H.bind(this,!1,Boolean),N=H.bind(this,!1,String),W=H.bind(this,!0,function(Ae){if(b(Ae)){if(Ae.length===3)return[+Ae[0],+Ae[1],+Ae[2],1];if(Ae.length===4)return[+Ae[0],+Ae[1],+Ae[2],+Ae[3]]}return[0,0,0,1]}),re,ae=!1,_e=!1;if("bounds"in V)for(var Me=V.bounds,ke=0;ke<2;++ke)for(var ge=0;ge<3;++ge)Me[ke][ge]!==this.bounds[ke][ge]&&(_e=!0),this.bounds[ke][ge]=Me[ke][ge];if("ticks"in V){re=V.ticks,ae=!0,this.autoTicks=!1;for(var ke=0;ke<3;++ke)this.tickSpacing[ke]=0}else X("tickSpacing")&&(this.autoTicks=!0,_e=!0);if(this._firstInit&&("ticks"in V||"tickSpacing"in V||(this.autoTicks=!0),_e=!0,ae=!0,this._firstInit=!1),_e&&this.autoTicks&&(re=f.create(this.bounds,this.tickSpacing),ae=!0),ae){for(var ke=0;ke<3;++ke)re[ke].sort(function(ze,Ce){return ze.x-Ce.x});f.equal(re,this.ticks)?ae=!1:this.ticks=re}G("tickEnable"),N("tickFont")&&(ae=!0),N("tickFontStyle")&&(ae=!0),N("tickFontWeight")&&(ae=!0),N("tickFontVariant")&&(ae=!0),X("tickSize"),X("tickAngle"),X("tickPad"),W("tickColor");var ie=N("labels");N("labelFont")&&(ie=!0),N("labelFontStyle")&&(ie=!0),N("labelFontWeight")&&(ie=!0),N("labelFontVariant")&&(ie=!0),G("labelEnable"),X("labelSize"),X("labelPad"),W("labelColor"),G("lineEnable"),G("lineMirror"),X("lineWidth"),W("lineColor"),G("lineTickEnable"),G("lineTickMirror"),X("lineTickLength"),X("lineTickWidth"),W("lineTickColor"),G("gridEnable"),X("gridWidth"),W("gridColor"),G("zeroEnable"),W("zeroLineColor"),X("zeroLineWidth"),G("backgroundEnable"),W("backgroundColor");var Te=[{family:this.labelFont[0],style:this.labelFontStyle[0],weight:this.labelFontWeight[0],variant:this.labelFontVariant[0]},{family:this.labelFont[1],style:this.labelFontStyle[1],weight:this.labelFontWeight[1],variant:this.labelFontVariant[1]},{family:this.labelFont[2],style:this.labelFontStyle[2],weight:this.labelFontWeight[2],variant:this.labelFontVariant[2]}],Ee=[{family:this.tickFont[0],style:this.tickFontStyle[0],weight:this.tickFontWeight[0],variant:this.tickFontVariant[0]},{family:this.tickFont[1],style:this.tickFontStyle[1],weight:this.tickFontWeight[1],variant:this.tickFontVariant[1]},{family:this.tickFont[2],style:this.tickFontStyle[2],weight:this.tickFontWeight[2],variant:this.tickFontVariant[2]}];this._text?this._text&&(ie||ae)&&this._text.update(this.bounds,this.labels,Te,this.ticks,Ee):this._text=s(this.gl,this.bounds,this.labels,Te,this.ticks,Ee),this._lines&&ae&&(this._lines.dispose(),this._lines=null),this._lines||(this._lines=l(this.gl,this.bounds,this.ticks))};function A(){this.primalOffset=[0,0,0],this.primalMinor=[0,0,0],this.mirrorOffset=[0,0,0],this.mirrorMinor=[0,0,0]}var L=[new A,new A,new A];function _(V,H,X,G,N){for(var W=V.primalOffset,re=V.primalMinor,ae=V.mirrorOffset,_e=V.mirrorMinor,Me=G[H],ke=0;ke<3;++ke)if(H!==ke){var ge=W,ie=ae,Te=re,Ee=_e;Me&1<0?(Te[ke]=-1,Ee[ke]=0):(Te[ke]=0,Ee[ke]=1)}}var C=[0,0,0],M={model:h,view:h,projection:h,_ortho:!1};k.isOpaque=function(){return!0},k.isTransparent=function(){return!1},k.drawTransparent=function(V){};var p=0,P=[0,0,0],T=[0,0,0],F=[0,0,0];k.draw=function(V){V=V||M;for(var Ce=this.gl,H=V.model||h,X=V.view||h,G=V.projection||h,N=this.bounds,W=V._ortho||!1,re=c(H,X,G,N,W),ae=re.cubeEdges,_e=re.axis,Me=X[12],ke=X[13],ge=X[14],ie=X[15],Te=W?2:1,Ee=Te*this.pixelRatio*(G[3]*Me+G[7]*ke+G[11]*ge+G[15]*ie)/Ce.drawingBufferHeight,Ae=0;Ae<3;++Ae)this.lastCubeProps.cubeEdges[Ae]=ae[Ae],this.lastCubeProps.axis[Ae]=_e[Ae];for(var ze=L,Ae=0;Ae<3;++Ae)_(L[Ae],Ae,this.bounds,ae,_e);for(var Ce=this.gl,me=C,Ae=0;Ae<3;++Ae)this.backgroundEnable[Ae]?me[Ae]=_e[Ae]:me[Ae]=0;this._background.draw(H,X,G,N,me,this.backgroundColor),this._lines.bind(H,X,G,this);for(var Ae=0;Ae<3;++Ae){var Re=[0,0,0];_e[Ae]>0?Re[Ae]=N[1][Ae]:Re[Ae]=N[0][Ae];for(var ce=0;ce<2;++ce){var Ge=(Ae+1+ce)%3,nt=(Ae+1+(ce^1))%3;this.gridEnable[Ge]&&this._lines.drawGrid(Ge,nt,this.bounds,Re,this.gridColor[Ge],this.gridWidth[Ge]*this.pixelRatio)}for(var ce=0;ce<2;++ce){var Ge=(Ae+1+ce)%3,nt=(Ae+1+(ce^1))%3;this.zeroEnable[nt]&&Math.min(N[0][nt],N[1][nt])<=0&&Math.max(N[0][nt],N[1][nt])>=0&&this._lines.drawZero(Ge,nt,this.bounds,Re,this.zeroLineColor[nt],this.zeroLineWidth[nt]*this.pixelRatio)}}for(var Ae=0;Ae<3;++Ae){this.lineEnable[Ae]&&this._lines.drawAxisLine(Ae,this.bounds,ze[Ae].primalOffset,this.lineColor[Ae],this.lineWidth[Ae]*this.pixelRatio),this.lineMirror[Ae]&&this._lines.drawAxisLine(Ae,this.bounds,ze[Ae].mirrorOffset,this.lineColor[Ae],this.lineWidth[Ae]*this.pixelRatio);for(var ct=g(P,ze[Ae].primalMinor),qt=g(T,ze[Ae].mirrorMinor),rt=this.lineTickLength,ce=0;ce<3;++ce){var ot=Ee/H[5*ce];ct[ce]*=rt[ce]*ot,qt[ce]*=rt[ce]*ot}this.lineTickEnable[Ae]&&this._lines.drawAxisTicks(Ae,ze[Ae].primalOffset,ct,this.lineTickColor[Ae],this.lineTickWidth[Ae]*this.pixelRatio),this.lineTickMirror[Ae]&&this._lines.drawAxisTicks(Ae,ze[Ae].mirrorOffset,qt,this.lineTickColor[Ae],this.lineTickWidth[Ae]*this.pixelRatio)}this._lines.unbind(),this._text.bind(H,X,G,this.pixelRatio);var Rt,kt=.5,Ct,Yt;function xr(St){Yt=[0,0,0],Yt[St]=1}function er(St,Et,dt){var Ht=(St+1)%3,$t=(St+2)%3,fr=Et[Ht],_r=Et[$t],Br=dt[Ht],Or=dt[$t];if(fr>0&&Or>0){xr(Ht);return}else if(fr>0&&Or<0){xr(Ht);return}else if(fr<0&&Or>0){xr(Ht);return}else if(fr<0&&Or<0){xr(Ht);return}else if(_r>0&&Br>0){xr($t);return}else if(_r>0&&Br<0){xr($t);return}else if(_r<0&&Br>0){xr($t);return}else if(_r<0&&Br<0){xr($t);return}}for(var Ae=0;Ae<3;++Ae){for(var Ke=ze[Ae].primalMinor,xt=ze[Ae].mirrorMinor,bt=g(F,ze[Ae].primalOffset),ce=0;ce<3;++ce)this.lineTickEnable[Ae]&&(bt[ce]+=Ee*Ke[ce]*Math.max(this.lineTickLength[ce],0)/H[5*ce]);var Lt=[0,0,0];if(Lt[Ae]=1,this.tickEnable[Ae]){this.tickAngle[Ae]===-3600?(this.tickAngle[Ae]=0,this.tickAlign[Ae]="auto"):this.tickAlign[Ae]=-1,Ct=1,Rt=[this.tickAlign[Ae],kt,Ct],Rt[0]==="auto"?Rt[0]=p:Rt[0]=parseInt(""+Rt[0]),Yt=[0,0,0],er(Ae,Ke,xt);for(var ce=0;ce<3;++ce)bt[ce]+=Ee*Ke[ce]*this.tickPad[ce]/H[5*ce];this._text.drawTicks(Ae,this.tickSize[Ae],this.tickAngle[Ae],bt,this.tickColor[Ae],Lt,Yt,Rt)}if(this.labelEnable[Ae]){Ct=0,Yt=[0,0,0],this.labels[Ae].length>4&&(xr(Ae),Ct=1),Rt=[this.labelAlign[Ae],kt,Ct],Rt[0]==="auto"?Rt[0]=p:Rt[0]=parseInt(""+Rt[0]);for(var ce=0;ce<3;++ce)bt[ce]+=Ee*Ke[ce]*this.labelPad[ce]/H[5*ce];bt[Ae]+=.5*(N[0][Ae]+N[1][Ae]),this._text.drawLabel(Ae,this.labelSize[Ae],this.labelAngle[Ae],bt,this.labelColor[Ae],[0,0,0],Yt,Rt)}}this._text.unbind()},k.dispose=function(){this._text.dispose(),this._lines.dispose(),this._background.dispose(),this._lines=null,this._text=null,this._background=null,this.gl=null};function q(V,H){var X=new E(V);return X.update(H),X}},5304:function(i,a,o){"use strict";i.exports=h;var s=o(2762),l=o(8116),u=o(1879).bg;function c(d,v,x,b){this.gl=d,this.buffer=v,this.vao=x,this.shader=b}var f=c.prototype;f.draw=function(d,v,x,b,g,E){for(var k=!1,A=0;A<3;++A)k=k||g[A];if(k){var L=this.gl;L.enable(L.POLYGON_OFFSET_FILL),L.polygonOffset(1,2),this.shader.bind(),this.shader.uniforms={model:d,view:v,projection:x,bounds:b,enable:g,colors:E},this.vao.bind(),this.vao.draw(this.gl.TRIANGLES,36),this.vao.unbind(),L.disable(L.POLYGON_OFFSET_FILL)}},f.dispose=function(){this.vao.dispose(),this.buffer.dispose(),this.shader.dispose()};function h(d){for(var v=[],x=[],b=0,g=0;g<3;++g)for(var E=(g+1)%3,k=(g+2)%3,A=[0,0,0],L=[0,0,0],_=-1;_<=1;_+=2){x.push(b,b+2,b+1,b+1,b+2,b+3),A[g]=_,L[g]=_;for(var C=-1;C<=1;C+=2){A[E]=C;for(var M=-1;M<=1;M+=2)A[k]=M,v.push(A[0],A[1],A[2],L[0],L[1],L[2]),b+=1}var p=E;E=k,k=p}var P=s(d,new Float32Array(v)),T=s(d,new Uint16Array(x),d.ELEMENT_ARRAY_BUFFER),F=l(d,[{buffer:P,type:d.FLOAT,size:3,offset:0,stride:24},{buffer:P,type:d.FLOAT,size:3,offset:12,stride:24}],T),q=u(d);return q.attributes.position.location=0,q.attributes.normal.location=1,new c(d,P,F,q)}},6429:function(i,a,o){"use strict";i.exports=_;var s=o(8828),l=o(6760),u=o(5202),c=o(3250),f=new Array(16),h=new Array(8),d=new Array(8),v=new Array(3),x=[0,0,0];(function(){for(var C=0;C<8;++C)h[C]=[1,1,1,1],d[C]=[1,1,1]})();function b(C,M,p){for(var P=0;P<4;++P){C[P]=p[12+P];for(var T=0;T<3;++T)C[P]+=M[T]*p[4*T+P]}}var g=[[0,0,1,0,0],[0,0,-1,1,0],[0,-1,0,1,0],[0,1,0,1,0],[-1,0,0,1,0],[1,0,0,1,0]];function E(C){for(var M=0;M_e&&(X|=1<_e){X|=1<d[q][1])&&(ze=q);for(var Ce=-1,q=0;q<3;++q){var me=ze^1<d[Re][0]&&(Re=me)}}var ce=k;ce[0]=ce[1]=ce[2]=0,ce[s.log2(Ce^ze)]=ze&Ce,ce[s.log2(ze^Re)]=zeℜvar Ge=Re^7;Ge===X||Ge===Ae?(Ge=Ce^7,ce[s.log2(Re^Ge)]=Ge&Re):ce[s.log2(Ce^Ge)]=Ge&Ce;for(var nt=A,ct=X,W=0;W<3;++W)ct&1< HALF_PI) && (b <= ONE_AND_HALF_PI)) ? + b - PI : + b; +} + +float look_horizontal_or_vertical(float a, float ratio) { + // ratio controls the ratio between being horizontal to (vertical + horizontal) + // if ratio is set to 0.5 then it is 50%, 50%. + // when using a higher ratio e.g. 0.75 the result would + // likely be more horizontal than vertical. + + float b = positive_angle(a); + + return + (b < ( ratio) * HALF_PI) ? 0.0 : + (b < (2.0 - ratio) * HALF_PI) ? -HALF_PI : + (b < (2.0 + ratio) * HALF_PI) ? 0.0 : + (b < (4.0 - ratio) * HALF_PI) ? HALF_PI : + 0.0; +} + +float roundTo(float a, float b) { + return float(b * floor((a + 0.5 * b) / b)); +} + +float look_round_n_directions(float a, int n) { + float b = positive_angle(a); + float div = TWO_PI / float(n); + float c = roundTo(b, div); + return look_upwards(c); +} + +float applyAlignOption(float rawAngle, float delta) { + return + (option > 2) ? look_round_n_directions(rawAngle + delta, option) : // option 3-n: round to n directions + (option == 2) ? look_horizontal_or_vertical(rawAngle + delta, hv_ratio) : // horizontal or vertical + (option == 1) ? rawAngle + delta : // use free angle, and flip to align with one direction of the axis + (option == 0) ? look_upwards(rawAngle) : // use free angle, and stay upwards + (option ==-1) ? 0.0 : // useful for backward compatibility, all texts remains horizontal + rawAngle; // otherwise return back raw input angle +} + +bool isAxisTitle = (axis.x == 0.0) && + (axis.y == 0.0) && + (axis.z == 0.0); + +void main() { + //Compute world offset + float axisDistance = position.z; + vec3 dataPosition = axisDistance * axis + offset; + + float beta = angle; // i.e. user defined attributes for each tick + + float axisAngle; + float clipAngle; + float flip; + + if (enableAlign) { + axisAngle = (isAxisTitle) ? HALF_PI : + computeViewAngle(dataPosition, dataPosition + axis); + clipAngle = computeViewAngle(dataPosition, dataPosition + alignDir); + + axisAngle += (sin(axisAngle) < 0.0) ? PI : 0.0; + clipAngle += (sin(clipAngle) < 0.0) ? PI : 0.0; + + flip = (dot(vec2(cos(axisAngle), sin(axisAngle)), + vec2(sin(clipAngle),-cos(clipAngle))) > 0.0) ? 1.0 : 0.0; + + beta += applyAlignOption(clipAngle, flip * PI); + } + + //Compute plane offset + vec2 planeCoord = position.xy * pixelScale; + + mat2 planeXform = scale * mat2( + cos(beta), sin(beta), + -sin(beta), cos(beta) + ); + + vec2 viewOffset = 2.0 * planeXform * planeCoord / resolution; + + //Compute clip position + vec3 clipPosition = project(dataPosition); + + //Apply text offset in clip coordinates + clipPosition += vec3(viewOffset, 0.0); + + //Done + gl_Position = vec4(clipPosition, 1.0); +} +`]),h=s([`precision highp float; +#define GLSLIFY 1 + +uniform vec4 color; +void main() { + gl_FragColor = color; +}`]);a.Q=function(x){return l(x,f,h,null,[{name:"position",type:"vec3"}])};var d=s([`precision highp float; +#define GLSLIFY 1 + +attribute vec3 position; +attribute vec3 normal; + +uniform mat4 model, view, projection; +uniform vec3 enable; +uniform vec3 bounds[2]; + +varying vec3 colorChannel; + +void main() { + + vec3 signAxis = sign(bounds[1] - bounds[0]); + + vec3 realNormal = signAxis * normal; + + if(dot(realNormal, enable) > 0.0) { + vec3 minRange = min(bounds[0], bounds[1]); + vec3 maxRange = max(bounds[0], bounds[1]); + vec3 nPosition = mix(minRange, maxRange, 0.5 * (position + 1.0)); + gl_Position = projection * (view * (model * vec4(nPosition, 1.0))); + } else { + gl_Position = vec4(0,0,0,0); + } + + colorChannel = abs(realNormal); +} +`]),v=s([`precision highp float; +#define GLSLIFY 1 + +uniform vec4 colors[3]; + +varying vec3 colorChannel; + +void main() { + gl_FragColor = colorChannel.x * colors[0] + + colorChannel.y * colors[1] + + colorChannel.z * colors[2]; +}`]);a.bg=function(x){return l(x,d,v,null,[{name:"position",type:"vec3"},{name:"normal",type:"vec3"}])}},4935:function(i,a,o){"use strict";i.exports=E;var s=o(2762),l=o(8116),u=o(4359),c=o(1879).Q,f=window||process.global||{},h=f.__TEXT_CACHE||{};f.__TEXT_CACHE={};var d=3;function v(k,A,L,_){this.gl=k,this.shader=A,this.buffer=L,this.vao=_,this.tickOffset=this.tickCount=this.labelOffset=this.labelCount=null}var x=v.prototype,b=[0,0];x.bind=function(k,A,L,_){this.vao.bind(),this.shader.bind();var C=this.shader.uniforms;C.model=k,C.view=A,C.projection=L,C.pixelScale=_,b[0]=this.gl.drawingBufferWidth,b[1]=this.gl.drawingBufferHeight,this.shader.uniforms.resolution=b},x.unbind=function(){this.vao.unbind()},x.update=function(k,A,L,_,C){var M=[];function p(W,re,ae,_e,Me,ke){var ge=[ae.style,ae.weight,ae.variant,ae.family].join("_"),ie=h[ge];ie||(ie=h[ge]={});var Te=ie[re];Te||(Te=ie[re]=g(re,{triangles:!0,font:ae.family,fontStyle:ae.style,fontWeight:ae.weight,fontVariant:ae.variant,textAlign:"center",textBaseline:"middle",lineSpacing:Me,styletags:ke}));for(var Ee=(_e||12)/12,Ae=Te.positions,ze=Te.cells,Ce=0,me=ze.length;Ce=0;--ce){var Ge=Ae[Re[ce]];M.push(Ee*Ge[0],-Ee*Ge[1],W)}}for(var P=[0,0,0],T=[0,0,0],F=[0,0,0],q=[0,0,0],V=1.25,H={breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0},X=0;X<3;++X){F[X]=M.length/d|0,p(.5*(k[0][X]+k[1][X]),A[X],L[X],12,V,H),q[X]=(M.length/d|0)-F[X],P[X]=M.length/d|0;for(var G=0;G<_[X].length;++G)if(_[X][G].text){var N={family:_[X][G].font||C[X].family,style:C[X].fontStyle||C[X].style,weight:C[X].fontWeight||C[X].weight,variant:C[X].fontVariant||C[X].variant};p(_[X][G].x,_[X][G].text,N,_[X][G].fontSize||12,V,H)}T[X]=(M.length/d|0)-P[X]}this.buffer.update(M),this.tickOffset=P,this.tickCount=T,this.labelOffset=F,this.labelCount=q},x.drawTicks=function(k,A,L,_,C,M,p,P){this.tickCount[k]&&(this.shader.uniforms.axis=M,this.shader.uniforms.color=C,this.shader.uniforms.angle=L,this.shader.uniforms.scale=A,this.shader.uniforms.offset=_,this.shader.uniforms.alignDir=p,this.shader.uniforms.alignOpt=P,this.vao.draw(this.gl.TRIANGLES,this.tickCount[k],this.tickOffset[k]))},x.drawLabel=function(k,A,L,_,C,M,p,P){this.labelCount[k]&&(this.shader.uniforms.axis=M,this.shader.uniforms.color=C,this.shader.uniforms.angle=L,this.shader.uniforms.scale=A,this.shader.uniforms.offset=_,this.shader.uniforms.alignDir=p,this.shader.uniforms.alignOpt=P,this.vao.draw(this.gl.TRIANGLES,this.labelCount[k],this.labelOffset[k]))},x.dispose=function(){this.shader.dispose(),this.vao.dispose(),this.buffer.dispose()};function g(k,A){try{return u(k,A)}catch(L){return console.warn('error vectorizing text:"'+k+'" error:',L),{cells:[],positions:[]}}}function E(k,A,L,_,C,M){var p=s(k),P=l(k,[{buffer:p,size:3}]),T=c(k);T.attributes.position.location=0;var F=new v(k,T,p,P);return F.update(A,L,_,C,M),F}},6444:function(i,a){"use strict";a.create=s,a.equal=l;function o(u,c){var f=u+"",h=f.indexOf("."),d=0;h>=0&&(d=f.length-h-1);var v=Math.pow(10,d),x=Math.round(u*c*v),b=x+"";if(b.indexOf("e")>=0)return b;var g=x/v,E=x%v;x<0?(g=-Math.ceil(g)|0,E=-E|0):(g=Math.floor(g)|0,E=E|0);var k=""+g;if(x<0&&(k="-"+k),d){for(var A=""+E;A.length=u[0][h];--x)d.push({x:x*c[h],text:o(c[h],x)});f.push(d)}return f}function l(u,c){for(var f=0;f<3;++f){if(u[f].length!==c[f].length)return!1;for(var h=0;hk)throw new Error("gl-buffer: If resizing buffer, must not specify offset");return g.bufferSubData(E,_,L),k}function v(g,E){for(var k=s.malloc(g.length,E),A=g.length,L=0;L=0;--A){if(E[A]!==k)return!1;k*=g[A]}return!0}h.update=function(g,E){if(typeof E!="number"&&(E=-1),this.bind(),typeof g=="object"&&typeof g.shape!="undefined"){var k=g.dtype;if(c.indexOf(k)<0&&(k="float32"),this.type===this.gl.ELEMENT_ARRAY_BUFFER){var A=gl.getExtension("OES_element_index_uint");A&&k!=="uint16"?k="uint32":k="uint16"}if(k===g.dtype&&x(g.shape,g.stride))g.offset===0&&g.data.length===g.shape[0]?this.length=d(this.gl,this.type,this.length,this.usage,g.data,E):this.length=d(this.gl,this.type,this.length,this.usage,g.data.subarray(g.offset,g.shape[0]),E);else{var L=s.malloc(g.size,k),_=u(L,g.shape);l.assign(_,g),E<0?this.length=d(this.gl,this.type,this.length,this.usage,L,E):this.length=d(this.gl,this.type,this.length,this.usage,L.subarray(0,g.size),E),s.free(L)}}else if(Array.isArray(g)){var C;this.type===this.gl.ELEMENT_ARRAY_BUFFER?C=v(g,"uint16"):C=v(g,"float32"),E<0?this.length=d(this.gl,this.type,this.length,this.usage,C,E):this.length=d(this.gl,this.type,this.length,this.usage,C.subarray(0,g.length),E),s.free(C)}else if(typeof g=="object"&&typeof g.length=="number")this.length=d(this.gl,this.type,this.length,this.usage,g,E);else if(typeof g=="number"||g===void 0){if(E>=0)throw new Error("gl-buffer: Cannot specify offset when resizing buffer");g=g|0,g<=0&&(g=1),this.gl.bufferData(this.type,g|0,this.usage),this.length=g}else throw new Error("gl-buffer: Invalid data type")};function b(g,E,k,A){if(k=k||g.ARRAY_BUFFER,A=A||g.DYNAMIC_DRAW,k!==g.ARRAY_BUFFER&&k!==g.ELEMENT_ARRAY_BUFFER)throw new Error("gl-buffer: Invalid type for webgl buffer, must be either gl.ARRAY_BUFFER or gl.ELEMENT_ARRAY_BUFFER");if(A!==g.DYNAMIC_DRAW&&A!==g.STATIC_DRAW&&A!==g.STREAM_DRAW)throw new Error("gl-buffer: Invalid usage for buffer, must be either gl.DYNAMIC_DRAW, gl.STATIC_DRAW or gl.STREAM_DRAW");var L=g.createBuffer(),_=new f(g,k,L,0,A);return _.update(E),_}i.exports=b},6405:function(i,a,o){"use strict";var s=o(2931);i.exports=function(u,c){var f=u.positions,h=u.vectors,d={positions:[],vertexIntensity:[],vertexIntensityBounds:u.vertexIntensityBounds,vectors:[],cells:[],coneOffset:u.coneOffset,colormap:u.colormap};if(u.positions.length===0)return c&&(c[0]=[0,0,0],c[1]=[0,0,0]),d;for(var v=0,x=1/0,b=-1/0,g=1/0,E=-1/0,k=1/0,A=-1/0,L=null,_=null,C=[],M=1/0,p=!1,P=u.coneSizemode==="raw",T=0;Tv&&(v=s.length(q)),T&&!P){var V=2*s.distance(L,F)/(s.length(_)+s.length(q));V?(M=Math.min(M,V),p=!1):p=!0}p||(L=F,_=q),C.push(q)}var H=[x,g,k],X=[b,E,A];c&&(c[0]=H,c[1]=X),v===0&&(v=1);var G=1/v;isFinite(M)||(M=1),d.vectorScale=M;var N=u.coneSize||(P?1:.5);u.absoluteConeSize&&(N=u.absoluteConeSize*G),d.coneScale=N;for(var T=0,W=0;T=1},g.isTransparent=function(){return this.opacity<1},g.pickSlots=1,g.setPickBase=function(C){this.pickId=C};function E(C){for(var M=v({colormap:C,nshades:256,format:"rgba"}),p=new Uint8Array(256*4),P=0;P<256;++P){for(var T=M[P],F=0;F<3;++F)p[4*P+F]=T[F];p[4*P+3]=T[3]*255}return d(p,[256,256,4],[4,0,1])}function k(C){for(var M=C.length,p=new Array(M),P=0;P0){var W=this.triShader;W.bind(),W.uniforms=V,this.triangleVAO.bind(),M.drawArrays(M.TRIANGLES,0,this.triangleCount*3),this.triangleVAO.unbind()}},g.drawPick=function(C){C=C||{};for(var M=this.gl,p=C.model||x,P=C.view||x,T=C.projection||x,F=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],q=0;q<3;++q)F[0][q]=Math.max(F[0][q],this.clipBounds[0][q]),F[1][q]=Math.min(F[1][q],this.clipBounds[1][q]);this._model=[].slice.call(p),this._view=[].slice.call(P),this._projection=[].slice.call(T),this._resolution=[M.drawingBufferWidth,M.drawingBufferHeight];var V={model:p,view:P,projection:T,clipBounds:F,tubeScale:this.tubeScale,vectorScale:this.vectorScale,coneScale:this.coneScale,coneOffset:this.coneOffset,pickId:this.pickId/255},H=this.pickShader;H.bind(),H.uniforms=V,this.triangleCount>0&&(this.triangleVAO.bind(),M.drawArrays(M.TRIANGLES,0,this.triangleCount*3),this.triangleVAO.unbind())},g.pick=function(C){if(!C||C.id!==this.pickId)return null;var M=C.value[0]+256*C.value[1]+65536*C.value[2],p=this.cells[M],P=this.positions[p[1]].slice(0,3),T={position:P,dataCoordinate:P,index:Math.floor(p[1]/48)};return this.traceType==="cone"?T.index=Math.floor(p[1]/48):this.traceType==="streamtube"&&(T.intensity=this.intensity[p[1]],T.velocity=this.vectors[p[1]].slice(0,3),T.divergence=this.vectors[p[1]][3],T.index=M),T},g.dispose=function(){this.texture.dispose(),this.triShader.dispose(),this.pickShader.dispose(),this.triangleVAO.dispose(),this.trianglePositions.dispose(),this.triangleVectors.dispose(),this.triangleColors.dispose(),this.triangleUVs.dispose(),this.triangleIds.dispose()};function A(C,M){var p=s(C,M.meshShader.vertex,M.meshShader.fragment,null,M.meshShader.attributes);return p.attributes.position.location=0,p.attributes.color.location=2,p.attributes.uv.location=3,p.attributes.vector.location=4,p}function L(C,M){var p=s(C,M.pickShader.vertex,M.pickShader.fragment,null,M.pickShader.attributes);return p.attributes.position.location=0,p.attributes.id.location=1,p.attributes.vector.location=4,p}function _(C,M,p){var P=p.shaders;arguments.length===1&&(M=C,C=M.gl);var T=A(C,P),F=L(C,P),q=c(C,d(new Uint8Array([255,255,255,255]),[1,1,4]));q.generateMipmap(),q.minFilter=C.LINEAR_MIPMAP_LINEAR,q.magFilter=C.LINEAR;var V=l(C),H=l(C),X=l(C),G=l(C),N=l(C),W=u(C,[{buffer:V,type:C.FLOAT,size:4},{buffer:N,type:C.UNSIGNED_BYTE,size:4,normalized:!0},{buffer:X,type:C.FLOAT,size:4},{buffer:G,type:C.FLOAT,size:2},{buffer:H,type:C.FLOAT,size:4}]),re=new b(C,q,T,F,V,H,N,X,G,W,p.traceType||"cone");return re.update(M),re}i.exports=_},614:function(i,a,o){var s=o(3236),l=s([`precision highp float; + +precision highp float; +#define GLSLIFY 1 + +vec3 getOrthogonalVector(vec3 v) { + // Return up-vector for only-z vector. + // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0). + // From the above if-statement we have ||a|| > 0 U ||b|| > 0. + // Assign z = 0, x = -b, y = a: + // a*-b + b*a + c*0 = -ba + ba + 0 = 0 + if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) { + return normalize(vec3(-v.y, v.x, 0.0)); + } else { + return normalize(vec3(0.0, v.z, -v.y)); + } +} + +// Calculate the cone vertex and normal at the given index. +// +// The returned vertex is for a cone with its top at origin and height of 1.0, +// pointing in the direction of the vector attribute. +// +// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices. +// These vertices are used to make up the triangles of the cone by the following: +// segment + 0 top vertex +// segment + 1 perimeter vertex a+1 +// segment + 2 perimeter vertex a +// segment + 3 center base vertex +// segment + 4 perimeter vertex a +// segment + 5 perimeter vertex a+1 +// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment. +// To go from index to segment, floor(index / 6) +// To go from segment to angle, 2*pi * (segment/segmentCount) +// To go from index to segment index, index - (segment*6) +// +vec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) { + + const float segmentCount = 8.0; + + float index = rawIndex - floor(rawIndex / + (segmentCount * 6.0)) * + (segmentCount * 6.0); + + float segment = floor(0.001 + index/6.0); + float segmentIndex = index - (segment*6.0); + + normal = -normalize(d); + + if (segmentIndex > 2.99 && segmentIndex < 3.01) { + return mix(vec3(0.0), -d, coneOffset); + } + + float nextAngle = ( + (segmentIndex > 0.99 && segmentIndex < 1.01) || + (segmentIndex > 4.99 && segmentIndex < 5.01) + ) ? 1.0 : 0.0; + float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount); + + vec3 v1 = mix(d, vec3(0.0), coneOffset); + vec3 v2 = v1 - d; + + vec3 u = getOrthogonalVector(d); + vec3 v = normalize(cross(u, d)); + + vec3 x = u * cos(angle) * length(d)*0.25; + vec3 y = v * sin(angle) * length(d)*0.25; + vec3 v3 = v2 + x + y; + if (segmentIndex < 3.0) { + vec3 tx = u * sin(angle); + vec3 ty = v * -cos(angle); + vec3 tangent = tx + ty; + normal = normalize(cross(v3 - v1, tangent)); + } + + if (segmentIndex == 0.0) { + return mix(d, vec3(0.0), coneOffset); + } + return v3; +} + +attribute vec3 vector; +attribute vec4 color, position; +attribute vec2 uv; + +uniform float vectorScale, coneScale, coneOffset; +uniform mat4 model, view, projection, inverseModel; +uniform vec3 eyePosition, lightPosition; + +varying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position; +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + // Scale the vector magnitude to stay constant with + // model & view changes. + vec3 normal; + vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector), position.w, coneOffset, normal); + vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0); + + //Lighting geometry parameters + vec4 cameraCoordinate = view * conePosition; + cameraCoordinate.xyz /= cameraCoordinate.w; + f_lightDirection = lightPosition - cameraCoordinate.xyz; + f_eyeDirection = eyePosition - cameraCoordinate.xyz; + f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz); + + // vec4 m_position = model * vec4(conePosition, 1.0); + vec4 t_position = view * conePosition; + gl_Position = projection * t_position; + + f_color = color; + f_data = conePosition.xyz; + f_position = position.xyz; + f_uv = uv; +} +`]),u=s([`#extension GL_OES_standard_derivatives : enable + +precision highp float; +#define GLSLIFY 1 + +float beckmannDistribution(float x, float roughness) { + float NdotH = max(x, 0.0001); + float cos2Alpha = NdotH * NdotH; + float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha; + float roughness2 = roughness * roughness; + float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha; + return exp(tan2Alpha / roughness2) / denom; +} + +float cookTorranceSpecular( + vec3 lightDirection, + vec3 viewDirection, + vec3 surfaceNormal, + float roughness, + float fresnel) { + + float VdotN = max(dot(viewDirection, surfaceNormal), 0.0); + float LdotN = max(dot(lightDirection, surfaceNormal), 0.0); + + //Half angle vector + vec3 H = normalize(lightDirection + viewDirection); + + //Geometric term + float NdotH = max(dot(surfaceNormal, H), 0.0); + float VdotH = max(dot(viewDirection, H), 0.000001); + float LdotH = max(dot(lightDirection, H), 0.000001); + float G1 = (2.0 * NdotH * VdotN) / VdotH; + float G2 = (2.0 * NdotH * LdotN) / LdotH; + float G = min(1.0, min(G1, G2)); + + //Distribution term + float D = beckmannDistribution(NdotH, roughness); + + //Fresnel term + float F = pow(1.0 - VdotN, fresnel); + + //Multiply terms and done + return G * F * D / max(3.14159265 * VdotN, 0.000001); +} + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity; +uniform sampler2D texture; + +varying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position; +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard; + vec3 N = normalize(f_normal); + vec3 L = normalize(f_lightDirection); + vec3 V = normalize(f_eyeDirection); + + if(gl_FrontFacing) { + N = -N; + } + + float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel))); + float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0); + + vec4 surfaceColor = f_color * texture2D(texture, f_uv); + vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0); + + gl_FragColor = litColor * opacity; +} +`]),c=s([`precision highp float; + +precision highp float; +#define GLSLIFY 1 + +vec3 getOrthogonalVector(vec3 v) { + // Return up-vector for only-z vector. + // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0). + // From the above if-statement we have ||a|| > 0 U ||b|| > 0. + // Assign z = 0, x = -b, y = a: + // a*-b + b*a + c*0 = -ba + ba + 0 = 0 + if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) { + return normalize(vec3(-v.y, v.x, 0.0)); + } else { + return normalize(vec3(0.0, v.z, -v.y)); + } +} + +// Calculate the cone vertex and normal at the given index. +// +// The returned vertex is for a cone with its top at origin and height of 1.0, +// pointing in the direction of the vector attribute. +// +// Each cone is made up of a top vertex, a center base vertex and base perimeter vertices. +// These vertices are used to make up the triangles of the cone by the following: +// segment + 0 top vertex +// segment + 1 perimeter vertex a+1 +// segment + 2 perimeter vertex a +// segment + 3 center base vertex +// segment + 4 perimeter vertex a +// segment + 5 perimeter vertex a+1 +// Where segment is the number of the radial segment * 6 and a is the angle at that radial segment. +// To go from index to segment, floor(index / 6) +// To go from segment to angle, 2*pi * (segment/segmentCount) +// To go from index to segment index, index - (segment*6) +// +vec3 getConePosition(vec3 d, float rawIndex, float coneOffset, out vec3 normal) { + + const float segmentCount = 8.0; + + float index = rawIndex - floor(rawIndex / + (segmentCount * 6.0)) * + (segmentCount * 6.0); + + float segment = floor(0.001 + index/6.0); + float segmentIndex = index - (segment*6.0); + + normal = -normalize(d); + + if (segmentIndex > 2.99 && segmentIndex < 3.01) { + return mix(vec3(0.0), -d, coneOffset); + } + + float nextAngle = ( + (segmentIndex > 0.99 && segmentIndex < 1.01) || + (segmentIndex > 4.99 && segmentIndex < 5.01) + ) ? 1.0 : 0.0; + float angle = 2.0 * 3.14159 * ((segment + nextAngle) / segmentCount); + + vec3 v1 = mix(d, vec3(0.0), coneOffset); + vec3 v2 = v1 - d; + + vec3 u = getOrthogonalVector(d); + vec3 v = normalize(cross(u, d)); + + vec3 x = u * cos(angle) * length(d)*0.25; + vec3 y = v * sin(angle) * length(d)*0.25; + vec3 v3 = v2 + x + y; + if (segmentIndex < 3.0) { + vec3 tx = u * sin(angle); + vec3 ty = v * -cos(angle); + vec3 tangent = tx + ty; + normal = normalize(cross(v3 - v1, tangent)); + } + + if (segmentIndex == 0.0) { + return mix(d, vec3(0.0), coneOffset); + } + return v3; +} + +attribute vec4 vector; +attribute vec4 position; +attribute vec4 id; + +uniform mat4 model, view, projection; +uniform float vectorScale, coneScale, coneOffset; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + vec3 normal; + vec3 XYZ = getConePosition(mat3(model) * ((vectorScale * coneScale) * vector.xyz), position.w, coneOffset, normal); + vec4 conePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0); + gl_Position = projection * (view * conePosition); + f_id = id; + f_position = position.xyz; +} +`]),f=s([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float pickId; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard; + + gl_FragColor = vec4(pickId, f_id.xyz); +}`]);a.meshShader={vertex:l,fragment:u,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec3"}]},a.pickShader={vertex:c,fragment:f,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec3"}]}},737:function(i){i.exports={0:"NONE",1:"ONE",2:"LINE_LOOP",3:"LINE_STRIP",4:"TRIANGLES",5:"TRIANGLE_STRIP",6:"TRIANGLE_FAN",256:"DEPTH_BUFFER_BIT",512:"NEVER",513:"LESS",514:"EQUAL",515:"LEQUAL",516:"GREATER",517:"NOTEQUAL",518:"GEQUAL",519:"ALWAYS",768:"SRC_COLOR",769:"ONE_MINUS_SRC_COLOR",770:"SRC_ALPHA",771:"ONE_MINUS_SRC_ALPHA",772:"DST_ALPHA",773:"ONE_MINUS_DST_ALPHA",774:"DST_COLOR",775:"ONE_MINUS_DST_COLOR",776:"SRC_ALPHA_SATURATE",1024:"STENCIL_BUFFER_BIT",1028:"FRONT",1029:"BACK",1032:"FRONT_AND_BACK",1280:"INVALID_ENUM",1281:"INVALID_VALUE",1282:"INVALID_OPERATION",1285:"OUT_OF_MEMORY",1286:"INVALID_FRAMEBUFFER_OPERATION",2304:"CW",2305:"CCW",2849:"LINE_WIDTH",2884:"CULL_FACE",2885:"CULL_FACE_MODE",2886:"FRONT_FACE",2928:"DEPTH_RANGE",2929:"DEPTH_TEST",2930:"DEPTH_WRITEMASK",2931:"DEPTH_CLEAR_VALUE",2932:"DEPTH_FUNC",2960:"STENCIL_TEST",2961:"STENCIL_CLEAR_VALUE",2962:"STENCIL_FUNC",2963:"STENCIL_VALUE_MASK",2964:"STENCIL_FAIL",2965:"STENCIL_PASS_DEPTH_FAIL",2966:"STENCIL_PASS_DEPTH_PASS",2967:"STENCIL_REF",2968:"STENCIL_WRITEMASK",2978:"VIEWPORT",3024:"DITHER",3042:"BLEND",3088:"SCISSOR_BOX",3089:"SCISSOR_TEST",3106:"COLOR_CLEAR_VALUE",3107:"COLOR_WRITEMASK",3317:"UNPACK_ALIGNMENT",3333:"PACK_ALIGNMENT",3379:"MAX_TEXTURE_SIZE",3386:"MAX_VIEWPORT_DIMS",3408:"SUBPIXEL_BITS",3410:"RED_BITS",3411:"GREEN_BITS",3412:"BLUE_BITS",3413:"ALPHA_BITS",3414:"DEPTH_BITS",3415:"STENCIL_BITS",3553:"TEXTURE_2D",4352:"DONT_CARE",4353:"FASTEST",4354:"NICEST",5120:"BYTE",5121:"UNSIGNED_BYTE",5122:"SHORT",5123:"UNSIGNED_SHORT",5124:"INT",5125:"UNSIGNED_INT",5126:"FLOAT",5386:"INVERT",5890:"TEXTURE",6401:"STENCIL_INDEX",6402:"DEPTH_COMPONENT",6406:"ALPHA",6407:"RGB",6408:"RGBA",6409:"LUMINANCE",6410:"LUMINANCE_ALPHA",7680:"KEEP",7681:"REPLACE",7682:"INCR",7683:"DECR",7936:"VENDOR",7937:"RENDERER",7938:"VERSION",9728:"NEAREST",9729:"LINEAR",9984:"NEAREST_MIPMAP_NEAREST",9985:"LINEAR_MIPMAP_NEAREST",9986:"NEAREST_MIPMAP_LINEAR",9987:"LINEAR_MIPMAP_LINEAR",10240:"TEXTURE_MAG_FILTER",10241:"TEXTURE_MIN_FILTER",10242:"TEXTURE_WRAP_S",10243:"TEXTURE_WRAP_T",10497:"REPEAT",10752:"POLYGON_OFFSET_UNITS",16384:"COLOR_BUFFER_BIT",32769:"CONSTANT_COLOR",32770:"ONE_MINUS_CONSTANT_COLOR",32771:"CONSTANT_ALPHA",32772:"ONE_MINUS_CONSTANT_ALPHA",32773:"BLEND_COLOR",32774:"FUNC_ADD",32777:"BLEND_EQUATION_RGB",32778:"FUNC_SUBTRACT",32779:"FUNC_REVERSE_SUBTRACT",32819:"UNSIGNED_SHORT_4_4_4_4",32820:"UNSIGNED_SHORT_5_5_5_1",32823:"POLYGON_OFFSET_FILL",32824:"POLYGON_OFFSET_FACTOR",32854:"RGBA4",32855:"RGB5_A1",32873:"TEXTURE_BINDING_2D",32926:"SAMPLE_ALPHA_TO_COVERAGE",32928:"SAMPLE_COVERAGE",32936:"SAMPLE_BUFFERS",32937:"SAMPLES",32938:"SAMPLE_COVERAGE_VALUE",32939:"SAMPLE_COVERAGE_INVERT",32968:"BLEND_DST_RGB",32969:"BLEND_SRC_RGB",32970:"BLEND_DST_ALPHA",32971:"BLEND_SRC_ALPHA",33071:"CLAMP_TO_EDGE",33170:"GENERATE_MIPMAP_HINT",33189:"DEPTH_COMPONENT16",33306:"DEPTH_STENCIL_ATTACHMENT",33635:"UNSIGNED_SHORT_5_6_5",33648:"MIRRORED_REPEAT",33901:"ALIASED_POINT_SIZE_RANGE",33902:"ALIASED_LINE_WIDTH_RANGE",33984:"TEXTURE0",33985:"TEXTURE1",33986:"TEXTURE2",33987:"TEXTURE3",33988:"TEXTURE4",33989:"TEXTURE5",33990:"TEXTURE6",33991:"TEXTURE7",33992:"TEXTURE8",33993:"TEXTURE9",33994:"TEXTURE10",33995:"TEXTURE11",33996:"TEXTURE12",33997:"TEXTURE13",33998:"TEXTURE14",33999:"TEXTURE15",34e3:"TEXTURE16",34001:"TEXTURE17",34002:"TEXTURE18",34003:"TEXTURE19",34004:"TEXTURE20",34005:"TEXTURE21",34006:"TEXTURE22",34007:"TEXTURE23",34008:"TEXTURE24",34009:"TEXTURE25",34010:"TEXTURE26",34011:"TEXTURE27",34012:"TEXTURE28",34013:"TEXTURE29",34014:"TEXTURE30",34015:"TEXTURE31",34016:"ACTIVE_TEXTURE",34024:"MAX_RENDERBUFFER_SIZE",34041:"DEPTH_STENCIL",34055:"INCR_WRAP",34056:"DECR_WRAP",34067:"TEXTURE_CUBE_MAP",34068:"TEXTURE_BINDING_CUBE_MAP",34069:"TEXTURE_CUBE_MAP_POSITIVE_X",34070:"TEXTURE_CUBE_MAP_NEGATIVE_X",34071:"TEXTURE_CUBE_MAP_POSITIVE_Y",34072:"TEXTURE_CUBE_MAP_NEGATIVE_Y",34073:"TEXTURE_CUBE_MAP_POSITIVE_Z",34074:"TEXTURE_CUBE_MAP_NEGATIVE_Z",34076:"MAX_CUBE_MAP_TEXTURE_SIZE",34338:"VERTEX_ATTRIB_ARRAY_ENABLED",34339:"VERTEX_ATTRIB_ARRAY_SIZE",34340:"VERTEX_ATTRIB_ARRAY_STRIDE",34341:"VERTEX_ATTRIB_ARRAY_TYPE",34342:"CURRENT_VERTEX_ATTRIB",34373:"VERTEX_ATTRIB_ARRAY_POINTER",34466:"NUM_COMPRESSED_TEXTURE_FORMATS",34467:"COMPRESSED_TEXTURE_FORMATS",34660:"BUFFER_SIZE",34661:"BUFFER_USAGE",34816:"STENCIL_BACK_FUNC",34817:"STENCIL_BACK_FAIL",34818:"STENCIL_BACK_PASS_DEPTH_FAIL",34819:"STENCIL_BACK_PASS_DEPTH_PASS",34877:"BLEND_EQUATION_ALPHA",34921:"MAX_VERTEX_ATTRIBS",34922:"VERTEX_ATTRIB_ARRAY_NORMALIZED",34930:"MAX_TEXTURE_IMAGE_UNITS",34962:"ARRAY_BUFFER",34963:"ELEMENT_ARRAY_BUFFER",34964:"ARRAY_BUFFER_BINDING",34965:"ELEMENT_ARRAY_BUFFER_BINDING",34975:"VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",35040:"STREAM_DRAW",35044:"STATIC_DRAW",35048:"DYNAMIC_DRAW",35632:"FRAGMENT_SHADER",35633:"VERTEX_SHADER",35660:"MAX_VERTEX_TEXTURE_IMAGE_UNITS",35661:"MAX_COMBINED_TEXTURE_IMAGE_UNITS",35663:"SHADER_TYPE",35664:"FLOAT_VEC2",35665:"FLOAT_VEC3",35666:"FLOAT_VEC4",35667:"INT_VEC2",35668:"INT_VEC3",35669:"INT_VEC4",35670:"BOOL",35671:"BOOL_VEC2",35672:"BOOL_VEC3",35673:"BOOL_VEC4",35674:"FLOAT_MAT2",35675:"FLOAT_MAT3",35676:"FLOAT_MAT4",35678:"SAMPLER_2D",35680:"SAMPLER_CUBE",35712:"DELETE_STATUS",35713:"COMPILE_STATUS",35714:"LINK_STATUS",35715:"VALIDATE_STATUS",35716:"INFO_LOG_LENGTH",35717:"ATTACHED_SHADERS",35718:"ACTIVE_UNIFORMS",35719:"ACTIVE_UNIFORM_MAX_LENGTH",35720:"SHADER_SOURCE_LENGTH",35721:"ACTIVE_ATTRIBUTES",35722:"ACTIVE_ATTRIBUTE_MAX_LENGTH",35724:"SHADING_LANGUAGE_VERSION",35725:"CURRENT_PROGRAM",36003:"STENCIL_BACK_REF",36004:"STENCIL_BACK_VALUE_MASK",36005:"STENCIL_BACK_WRITEMASK",36006:"FRAMEBUFFER_BINDING",36007:"RENDERBUFFER_BINDING",36048:"FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",36049:"FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",36050:"FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",36051:"FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",36053:"FRAMEBUFFER_COMPLETE",36054:"FRAMEBUFFER_INCOMPLETE_ATTACHMENT",36055:"FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",36057:"FRAMEBUFFER_INCOMPLETE_DIMENSIONS",36061:"FRAMEBUFFER_UNSUPPORTED",36064:"COLOR_ATTACHMENT0",36096:"DEPTH_ATTACHMENT",36128:"STENCIL_ATTACHMENT",36160:"FRAMEBUFFER",36161:"RENDERBUFFER",36162:"RENDERBUFFER_WIDTH",36163:"RENDERBUFFER_HEIGHT",36164:"RENDERBUFFER_INTERNAL_FORMAT",36168:"STENCIL_INDEX8",36176:"RENDERBUFFER_RED_SIZE",36177:"RENDERBUFFER_GREEN_SIZE",36178:"RENDERBUFFER_BLUE_SIZE",36179:"RENDERBUFFER_ALPHA_SIZE",36180:"RENDERBUFFER_DEPTH_SIZE",36181:"RENDERBUFFER_STENCIL_SIZE",36194:"RGB565",36336:"LOW_FLOAT",36337:"MEDIUM_FLOAT",36338:"HIGH_FLOAT",36339:"LOW_INT",36340:"MEDIUM_INT",36341:"HIGH_INT",36346:"SHADER_COMPILER",36347:"MAX_VERTEX_UNIFORM_VECTORS",36348:"MAX_VARYING_VECTORS",36349:"MAX_FRAGMENT_UNIFORM_VECTORS",37440:"UNPACK_FLIP_Y_WEBGL",37441:"UNPACK_PREMULTIPLY_ALPHA_WEBGL",37442:"CONTEXT_LOST_WEBGL",37443:"UNPACK_COLORSPACE_CONVERSION_WEBGL",37444:"BROWSER_DEFAULT_WEBGL"}},5171:function(i,a,o){var s=o(737);i.exports=function(u){return s[u]}},9165:function(i,a,o){"use strict";i.exports=b;var s=o(2762),l=o(8116),u=o(3436),c=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function f(g,E,k,A){this.gl=g,this.shader=A,this.buffer=E,this.vao=k,this.pixelRatio=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lineWidth=[1,1,1],this.capSize=[10,10,10],this.lineCount=[0,0,0],this.lineOffset=[0,0,0],this.opacity=1,this.hasAlpha=!1}var h=f.prototype;h.isOpaque=function(){return!this.hasAlpha},h.isTransparent=function(){return this.hasAlpha},h.drawTransparent=h.draw=function(g){var E=this.gl,k=this.shader.uniforms;this.shader.bind();var A=k.view=g.view||c,L=k.projection=g.projection||c;k.model=g.model||c,k.clipBounds=this.clipBounds,k.opacity=this.opacity;var _=A[12],C=A[13],M=A[14],p=A[15],P=g._ortho||!1,T=P?2:1,F=T*this.pixelRatio*(L[3]*_+L[7]*C+L[11]*M+L[15]*p)/E.drawingBufferHeight;this.vao.bind();for(var q=0;q<3;++q)E.lineWidth(this.lineWidth[q]*this.pixelRatio),k.capSize=this.capSize[q]*F,this.lineCount[q]&&E.drawArrays(E.LINES,this.lineOffset[q],this.lineCount[q]);this.vao.unbind()};function d(g,E){for(var k=0;k<3;++k)g[0][k]=Math.min(g[0][k],E[k]),g[1][k]=Math.max(g[1][k],E[k])}var v=function(){for(var g=new Array(3),E=0;E<3;++E){for(var k=[],A=1;A<=2;++A)for(var L=-1;L<=1;L+=2){var _=(A+E)%3,C=[0,0,0];C[_]=L,k.push(C)}g[E]=k}return g}();function x(g,E,k,A){for(var L=v[A],_=0;_0){var V=P.slice();V[M]+=F[1][M],L.push(P[0],P[1],P[2],q[0],q[1],q[2],q[3],0,0,0,V[0],V[1],V[2],q[0],q[1],q[2],q[3],0,0,0),d(this.bounds,V),C+=2+x(L,V,q,M)}}}this.lineCount[M]=C-this.lineOffset[M]}this.buffer.update(L)}},h.dispose=function(){this.shader.dispose(),this.buffer.dispose(),this.vao.dispose()};function b(g){var E=g.gl,k=s(E),A=l(E,[{buffer:k,type:E.FLOAT,size:3,offset:0,stride:40},{buffer:k,type:E.FLOAT,size:4,offset:12,stride:40},{buffer:k,type:E.FLOAT,size:3,offset:28,stride:40}]),L=u(E);L.attributes.position.location=0,L.attributes.color.location=1,L.attributes.offset.location=2;var _=new f(E,k,A,L);return _.update(g),_}},3436:function(i,a,o){"use strict";var s=o(3236),l=o(9405),u=s([`precision highp float; +#define GLSLIFY 1 + +attribute vec3 position, offset; +attribute vec4 color; +uniform mat4 model, view, projection; +uniform float capSize; +varying vec4 fragColor; +varying vec3 fragPosition; + +void main() { + vec4 worldPosition = model * vec4(position, 1.0); + worldPosition = (worldPosition / worldPosition.w) + vec4(capSize * offset, 0.0); + gl_Position = projection * (view * worldPosition); + fragColor = color; + fragPosition = position; +}`]),c=s([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float opacity; +varying vec3 fragPosition; +varying vec4 fragColor; + +void main() { + if ( + outOfRange(clipBounds[0], clipBounds[1], fragPosition) || + fragColor.a * opacity == 0. + ) discard; + + gl_FragColor = opacity * fragColor; +}`]);i.exports=function(f){return l(f,u,c,null,[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"offset",type:"vec3"}])}},2260:function(i,a,o){"use strict";var s=o(7766);i.exports=C;var l=null,u,c,f,h;function d(M){var p=M.getParameter(M.FRAMEBUFFER_BINDING),P=M.getParameter(M.RENDERBUFFER_BINDING),T=M.getParameter(M.TEXTURE_BINDING_2D);return[p,P,T]}function v(M,p){M.bindFramebuffer(M.FRAMEBUFFER,p[0]),M.bindRenderbuffer(M.RENDERBUFFER,p[1]),M.bindTexture(M.TEXTURE_2D,p[2])}function x(M,p){var P=M.getParameter(p.MAX_COLOR_ATTACHMENTS_WEBGL);l=new Array(P+1);for(var T=0;T<=P;++T){for(var F=new Array(P),q=0;q1&&H.drawBuffersWEBGL(l[V]);var re=P.getExtension("WEBGL_depth_texture");re?X?M.depth=g(P,F,q,re.UNSIGNED_INT_24_8_WEBGL,P.DEPTH_STENCIL,P.DEPTH_STENCIL_ATTACHMENT):G&&(M.depth=g(P,F,q,P.UNSIGNED_SHORT,P.DEPTH_COMPONENT,P.DEPTH_ATTACHMENT)):G&&X?M._depth_rb=E(P,F,q,P.DEPTH_STENCIL,P.DEPTH_STENCIL_ATTACHMENT):G?M._depth_rb=E(P,F,q,P.DEPTH_COMPONENT16,P.DEPTH_ATTACHMENT):X&&(M._depth_rb=E(P,F,q,P.STENCIL_INDEX,P.STENCIL_ATTACHMENT));var ae=P.checkFramebufferStatus(P.FRAMEBUFFER);if(ae!==P.FRAMEBUFFER_COMPLETE){M._destroyed=!0,P.bindFramebuffer(P.FRAMEBUFFER,null),P.deleteFramebuffer(M.handle),M.handle=null,M.depth&&(M.depth.dispose(),M.depth=null),M._depth_rb&&(P.deleteRenderbuffer(M._depth_rb),M._depth_rb=null);for(var W=0;WF||P<0||P>F)throw new Error("gl-fbo: Can't resize FBO, invalid dimensions");M._shape[0]=p,M._shape[1]=P;for(var q=d(T),V=0;Vq||P<0||P>q)throw new Error("gl-fbo: Parameters are too large for FBO");T=T||{};var V=1;if("color"in T){if(V=Math.max(T.color|0,0),V<0)throw new Error("gl-fbo: Must specify a nonnegative number of colors");if(V>1)if(F){if(V>M.getParameter(F.MAX_COLOR_ATTACHMENTS_WEBGL))throw new Error("gl-fbo: Context does not support "+V+" draw buffers")}else throw new Error("gl-fbo: Multiple draw buffer extension not supported")}var H=M.UNSIGNED_BYTE,X=M.getExtension("OES_texture_float");if(T.float&&V>0){if(!X)throw new Error("gl-fbo: Context does not support floating point textures");H=M.FLOAT}else T.preferFloat&&V>0&&X&&(H=M.FLOAT);var G=!0;"depth"in T&&(G=!!T.depth);var N=!1;return"stencil"in T&&(N=!!T.stencil),new A(M,p,P,H,V,G,N,F)}},2992:function(i,a,o){var s=o(3387).sprintf,l=o(5171),u=o(1848),c=o(1085);i.exports=f;function f(h,d,v){"use strict";var x=u(d)||"of unknown name (see npm glsl-shader-name)",b="unknown type";v!==void 0&&(b=v===l.FRAGMENT_SHADER?"fragment":"vertex");for(var g=s(`Error compiling %s shader %s: +`,b,x),E=s("%s%s",g,h),k=h.split(` +`),A={},L=0;L max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform sampler2D dashTexture; +uniform float dashScale; +uniform float opacity; + +varying vec3 worldPosition; +varying float pixelArcLength; +varying vec4 fragColor; + +void main() { + if ( + outOfRange(clipBounds[0], clipBounds[1], worldPosition) || + fragColor.a * opacity == 0. + ) discard; + + float dashWeight = texture2D(dashTexture, vec2(dashScale * pixelArcLength, 0)).r; + if(dashWeight < 0.5) { + discard; + } + gl_FragColor = fragColor * opacity; +} +`]),f=s([`precision highp float; +#define GLSLIFY 1 + +#define FLOAT_MAX 1.70141184e38 +#define FLOAT_MIN 1.17549435e-38 + +// https://github.com/mikolalysenko/glsl-read-float/blob/master/index.glsl +vec4 packFloat(float v) { + float av = abs(v); + + //Handle special cases + if(av < FLOAT_MIN) { + return vec4(0.0, 0.0, 0.0, 0.0); + } else if(v > FLOAT_MAX) { + return vec4(127.0, 128.0, 0.0, 0.0) / 255.0; + } else if(v < -FLOAT_MAX) { + return vec4(255.0, 128.0, 0.0, 0.0) / 255.0; + } + + vec4 c = vec4(0,0,0,0); + + //Compute exponent and mantissa + float e = floor(log2(av)); + float m = av * pow(2.0, -e) - 1.0; + + //Unpack mantissa + c[1] = floor(128.0 * m); + m -= c[1] / 128.0; + c[2] = floor(32768.0 * m); + m -= c[2] / 32768.0; + c[3] = floor(8388608.0 * m); + + //Unpack exponent + float ebias = e + 127.0; + c[0] = floor(ebias / 2.0); + ebias -= c[0] * 2.0; + c[1] += floor(ebias) * 128.0; + + //Unpack sign bit + c[0] += 128.0 * step(0.0, -v); + + //Scale back to range + return c / 255.0; +} + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform float pickId; +uniform vec3 clipBounds[2]; + +varying vec3 worldPosition; +varying float pixelArcLength; +varying vec4 fragColor; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], worldPosition)) discard; + + gl_FragColor = vec4(pickId/255.0, packFloat(pixelArcLength).xyz); +}`]),h=[{name:"position",type:"vec3"},{name:"nextPosition",type:"vec3"},{name:"arcLength",type:"float"},{name:"lineWidth",type:"float"},{name:"color",type:"vec4"}];a.createShader=function(d){return l(d,u,c,null,h)},a.createPickShader=function(d){return l(d,u,f,null,h)}},5714:function(i,a,o){"use strict";i.exports=M;var s=o(2762),l=o(8116),u=o(7766),c=new Uint8Array(4),f=new Float32Array(c.buffer);function h(p,P,T,F){return c[0]=F,c[1]=T,c[2]=P,c[3]=p,f[0]}var d=o(2478),v=o(9618),x=o(7319),b=x.createShader,g=x.createPickShader,E=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function k(p,P){for(var T=0,F=0;F<3;++F){var q=p[F]-P[F];T+=q*q}return Math.sqrt(T)}function A(p){for(var P=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],T=0;T<3;++T)P[0][T]=Math.max(p[0][T],P[0][T]),P[1][T]=Math.min(p[1][T],P[1][T]);return P}function L(p,P,T,F){this.arcLength=p,this.position=P,this.index=T,this.dataCoordinate=F}function _(p,P,T,F,q,V){this.gl=p,this.shader=P,this.pickShader=T,this.buffer=F,this.vao=q,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.points=[],this.arcLength=[],this.vertexCount=0,this.bounds=[[0,0,0],[0,0,0]],this.pickId=0,this.lineWidth=1,this.texture=V,this.dashScale=1,this.opacity=1,this.hasAlpha=!1,this.dirty=!0,this.pixelRatio=1}var C=_.prototype;C.isTransparent=function(){return this.hasAlpha},C.isOpaque=function(){return!this.hasAlpha},C.pickSlots=1,C.setPickBase=function(p){this.pickId=p},C.drawTransparent=C.draw=function(p){if(this.vertexCount){var P=this.gl,T=this.shader,F=this.vao;T.bind(),T.uniforms={model:p.model||E,view:p.view||E,projection:p.projection||E,clipBounds:A(this.clipBounds),dashTexture:this.texture.bind(),dashScale:this.dashScale/this.arcLength[this.arcLength.length-1],opacity:this.opacity,screenShape:[P.drawingBufferWidth,P.drawingBufferHeight],pixelRatio:this.pixelRatio},F.bind(),F.draw(P.TRIANGLE_STRIP,this.vertexCount),F.unbind()}},C.drawPick=function(p){if(this.vertexCount){var P=this.gl,T=this.pickShader,F=this.vao;T.bind(),T.uniforms={model:p.model||E,view:p.view||E,projection:p.projection||E,pickId:this.pickId,clipBounds:A(this.clipBounds),screenShape:[P.drawingBufferWidth,P.drawingBufferHeight],pixelRatio:this.pixelRatio},F.bind(),F.draw(P.TRIANGLE_STRIP,this.vertexCount),F.unbind()}},C.update=function(p){var P,T;this.dirty=!0;var F=!!p.connectGaps;"dashScale"in p&&(this.dashScale=p.dashScale),this.hasAlpha=!1,"opacity"in p&&(this.opacity=+p.opacity,this.opacity<1&&(this.hasAlpha=!0));var q=[],V=[],H=[],X=0,G=0,N=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],W=p.position||p.positions;if(W){var re=p.color||p.colors||[0,0,0,1],ae=p.lineWidth||1,_e=!1;e:for(P=1;P0){for(var ge=0;ge<24;++ge)q.push(q[q.length-12]);G+=2,_e=!0}continue e}N[0][T]=Math.min(N[0][T],Me[T],ke[T]),N[1][T]=Math.max(N[1][T],Me[T],ke[T])}var ie,Te;Array.isArray(re[0])?(ie=re.length>P-1?re[P-1]:re.length>0?re[re.length-1]:[0,0,0,1],Te=re.length>P?re[P]:re.length>0?re[re.length-1]:[0,0,0,1]):ie=Te=re,ie.length===3&&(ie=[ie[0],ie[1],ie[2],1]),Te.length===3&&(Te=[Te[0],Te[1],Te[2],1]),!this.hasAlpha&&ie[3]<1&&(this.hasAlpha=!0);var Ee;Array.isArray(ae)?Ee=ae.length>P-1?ae[P-1]:ae.length>0?ae[ae.length-1]:[0,0,0,1]:Ee=ae;var Ae=X;if(X+=k(Me,ke),_e){for(T=0;T<2;++T)q.push(Me[0],Me[1],Me[2],ke[0],ke[1],ke[2],Ae,Ee,ie[0],ie[1],ie[2],ie[3]);G+=2,_e=!1}q.push(Me[0],Me[1],Me[2],ke[0],ke[1],ke[2],Ae,Ee,ie[0],ie[1],ie[2],ie[3],Me[0],Me[1],Me[2],ke[0],ke[1],ke[2],Ae,-Ee,ie[0],ie[1],ie[2],ie[3],ke[0],ke[1],ke[2],Me[0],Me[1],Me[2],X,-Ee,Te[0],Te[1],Te[2],Te[3],ke[0],ke[1],ke[2],Me[0],Me[1],Me[2],X,Ee,Te[0],Te[1],Te[2],Te[3]),G+=4}}if(this.buffer.update(q),V.push(X),H.push(W[W.length-1].slice()),this.bounds=N,this.vertexCount=G,this.points=H,this.arcLength=V,"dashes"in p){var ze=p.dashes,Ce=ze.slice();for(Ce.unshift(0),P=1;P1.0001)return null;T+=P[L]}return Math.abs(T-1)>.001?null:[_,h(v,P),P]}},840:function(i,a,o){var s=o(3236),l=s([`precision highp float; +#define GLSLIFY 1 + +attribute vec3 position, normal; +attribute vec4 color; +attribute vec2 uv; + +uniform mat4 model + , view + , projection + , inverseModel; +uniform vec3 eyePosition + , lightPosition; + +varying vec3 f_normal + , f_lightDirection + , f_eyeDirection + , f_data; +varying vec4 f_color; +varying vec2 f_uv; + +vec4 project(vec3 p) { + return projection * (view * (model * vec4(p, 1.0))); +} + +void main() { + gl_Position = project(position); + + //Lighting geometry parameters + vec4 cameraCoordinate = view * vec4(position , 1.0); + cameraCoordinate.xyz /= cameraCoordinate.w; + f_lightDirection = lightPosition - cameraCoordinate.xyz; + f_eyeDirection = eyePosition - cameraCoordinate.xyz; + f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz); + + f_color = color; + f_data = position; + f_uv = uv; +} +`]),u=s([`#extension GL_OES_standard_derivatives : enable + +precision highp float; +#define GLSLIFY 1 + +float beckmannDistribution(float x, float roughness) { + float NdotH = max(x, 0.0001); + float cos2Alpha = NdotH * NdotH; + float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha; + float roughness2 = roughness * roughness; + float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha; + return exp(tan2Alpha / roughness2) / denom; +} + +float cookTorranceSpecular( + vec3 lightDirection, + vec3 viewDirection, + vec3 surfaceNormal, + float roughness, + float fresnel) { + + float VdotN = max(dot(viewDirection, surfaceNormal), 0.0); + float LdotN = max(dot(lightDirection, surfaceNormal), 0.0); + + //Half angle vector + vec3 H = normalize(lightDirection + viewDirection); + + //Geometric term + float NdotH = max(dot(surfaceNormal, H), 0.0); + float VdotH = max(dot(viewDirection, H), 0.000001); + float LdotH = max(dot(lightDirection, H), 0.000001); + float G1 = (2.0 * NdotH * VdotN) / VdotH; + float G2 = (2.0 * NdotH * LdotN) / LdotH; + float G = min(1.0, min(G1, G2)); + + //Distribution term + float D = beckmannDistribution(NdotH, roughness); + + //Fresnel term + float F = pow(1.0 - VdotN, fresnel); + + //Multiply terms and done + return G * F * D / max(3.14159265 * VdotN, 0.000001); +} + +//#pragma glslify: beckmann = require(glsl-specular-beckmann) // used in gl-surface3d + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float roughness + , fresnel + , kambient + , kdiffuse + , kspecular; +uniform sampler2D texture; + +varying vec3 f_normal + , f_lightDirection + , f_eyeDirection + , f_data; +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + if (f_color.a == 0.0 || + outOfRange(clipBounds[0], clipBounds[1], f_data) + ) discard; + + vec3 N = normalize(f_normal); + vec3 L = normalize(f_lightDirection); + vec3 V = normalize(f_eyeDirection); + + if(gl_FrontFacing) { + N = -N; + } + + float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel))); + //float specular = max(0.0, beckmann(L, V, N, roughness)); // used in gl-surface3d + + float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0); + + vec4 surfaceColor = vec4(f_color.rgb, 1.0) * texture2D(texture, f_uv); + vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0); + + gl_FragColor = litColor * f_color.a; +} +`]),c=s([`precision highp float; +#define GLSLIFY 1 + +attribute vec3 position; +attribute vec4 color; +attribute vec2 uv; + +uniform mat4 model, view, projection; + +varying vec4 f_color; +varying vec3 f_data; +varying vec2 f_uv; + +void main() { + gl_Position = projection * (view * (model * vec4(position, 1.0))); + f_color = color; + f_data = position; + f_uv = uv; +}`]),f=s([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform sampler2D texture; +uniform float opacity; + +varying vec4 f_color; +varying vec3 f_data; +varying vec2 f_uv; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], f_data)) discard; + + gl_FragColor = f_color * texture2D(texture, f_uv) * opacity; +}`]),h=s([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +attribute vec3 position; +attribute vec4 color; +attribute vec2 uv; +attribute float pointSize; + +uniform mat4 model, view, projection; +uniform vec3 clipBounds[2]; + +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], position)) { + + gl_Position = vec4(0.0, 0.0 ,0.0 ,0.0); + } else { + gl_Position = projection * (view * (model * vec4(position, 1.0))); + } + gl_PointSize = pointSize; + f_color = color; + f_uv = uv; +}`]),d=s([`precision highp float; +#define GLSLIFY 1 + +uniform sampler2D texture; +uniform float opacity; + +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + vec2 pointR = gl_PointCoord.xy - vec2(0.5, 0.5); + if(dot(pointR, pointR) > 0.25) { + discard; + } + gl_FragColor = f_color * texture2D(texture, f_uv) * opacity; +}`]),v=s([`precision highp float; +#define GLSLIFY 1 + +attribute vec3 position; +attribute vec4 id; + +uniform mat4 model, view, projection; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + gl_Position = projection * (view * (model * vec4(position, 1.0))); + f_id = id; + f_position = position; +}`]),x=s([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float pickId; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard; + + gl_FragColor = vec4(pickId, f_id.xyz); +}`]),b=s([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +attribute vec3 position; +attribute float pointSize; +attribute vec4 id; + +uniform mat4 model, view, projection; +uniform vec3 clipBounds[2]; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], position)) { + + gl_Position = vec4(0.0, 0.0, 0.0, 0.0); + } else { + gl_Position = projection * (view * (model * vec4(position, 1.0))); + gl_PointSize = pointSize; + } + f_id = id; + f_position = position; +}`]),g=s([`precision highp float; +#define GLSLIFY 1 + +attribute vec3 position; + +uniform mat4 model, view, projection; + +void main() { + gl_Position = projection * (view * (model * vec4(position, 1.0))); +}`]),E=s([`precision highp float; +#define GLSLIFY 1 + +uniform vec3 contourColor; + +void main() { + gl_FragColor = vec4(contourColor, 1.0); +} +`]);a.meshShader={vertex:l,fragment:u,attributes:[{name:"position",type:"vec3"},{name:"normal",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},a.wireShader={vertex:c,fragment:f,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"}]},a.pointShader={vertex:h,fragment:d,attributes:[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"pointSize",type:"float"}]},a.pickShader={vertex:v,fragment:x,attributes:[{name:"position",type:"vec3"},{name:"id",type:"vec4"}]},a.pointPickShader={vertex:b,fragment:x,attributes:[{name:"position",type:"vec3"},{name:"pointSize",type:"float"},{name:"id",type:"vec4"}]},a.contourShader={vertex:g,fragment:E,attributes:[{name:"position",type:"vec3"}]}},7201:function(i,a,o){"use strict";var s=1e-6,l=1e-6,u=o(9405),c=o(2762),f=o(8116),h=o(7766),d=o(8406),v=o(6760),x=o(7608),b=o(9618),g=o(6729),E=o(7765),k=o(1888),A=o(840),L=o(7626),_=A.meshShader,C=A.wireShader,M=A.pointShader,p=A.pickShader,P=A.pointPickShader,T=A.contourShader,F=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1];function q(ge,ie,Te,Ee,Ae,ze,Ce,me,Re,ce,Ge,nt,ct,qt,rt,ot,Rt,kt,Ct,Yt,xr,er,Ke,xt,bt,Lt,St){this.gl=ge,this.pixelRatio=1,this.cells=[],this.positions=[],this.intensity=[],this.texture=ie,this.dirty=!0,this.triShader=Te,this.lineShader=Ee,this.pointShader=Ae,this.pickShader=ze,this.pointPickShader=Ce,this.contourShader=me,this.trianglePositions=Re,this.triangleColors=Ge,this.triangleNormals=ct,this.triangleUVs=nt,this.triangleIds=ce,this.triangleVAO=qt,this.triangleCount=0,this.lineWidth=1,this.edgePositions=rt,this.edgeColors=Rt,this.edgeUVs=kt,this.edgeIds=ot,this.edgeVAO=Ct,this.edgeCount=0,this.pointPositions=Yt,this.pointColors=er,this.pointUVs=Ke,this.pointSizes=xt,this.pointIds=xr,this.pointVAO=bt,this.pointCount=0,this.contourLineWidth=1,this.contourPositions=Lt,this.contourVAO=St,this.contourCount=0,this.contourColor=[0,0,0],this.contourEnable=!0,this.pickVertex=!0,this.pickId=1,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.lightPosition=[1e5,1e5,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.opacity=1,this.hasAlpha=!1,this.opacityscale=!1,this._model=F,this._view=F,this._projection=F,this._resolution=[1,1]}var V=q.prototype;V.isOpaque=function(){return!this.hasAlpha},V.isTransparent=function(){return this.hasAlpha},V.pickSlots=1,V.setPickBase=function(ge){this.pickId=ge};function H(ge,ie){if(!ie||!ie.length)return 1;for(var Te=0;Tege&&Te>0){var Ee=(ie[Te][0]-ge)/(ie[Te][0]-ie[Te-1][0]);return ie[Te][1]*(1-Ee)+Ee*ie[Te-1][1]}}return 1}function X(ge,ie){for(var Te=g({colormap:ge,nshades:256,format:"rgba"}),Ee=new Uint8Array(256*4),Ae=0;Ae<256;++Ae){for(var ze=Te[Ae],Ce=0;Ce<3;++Ce)Ee[4*Ae+Ce]=ze[Ce];ie?Ee[4*Ae+3]=255*H(Ae/255,ie):Ee[4*Ae+3]=255*ze[3]}return b(Ee,[256,256,4],[4,0,1])}function G(ge){for(var ie=ge.length,Te=new Array(ie),Ee=0;Ee0){var ct=this.triShader;ct.bind(),ct.uniforms=me,this.triangleVAO.bind(),ie.drawArrays(ie.TRIANGLES,0,this.triangleCount*3),this.triangleVAO.unbind()}if(this.edgeCount>0&&this.lineWidth>0){var ct=this.lineShader;ct.bind(),ct.uniforms=me,this.edgeVAO.bind(),ie.lineWidth(this.lineWidth*this.pixelRatio),ie.drawArrays(ie.LINES,0,this.edgeCount*2),this.edgeVAO.unbind()}if(this.pointCount>0){var ct=this.pointShader;ct.bind(),ct.uniforms=me,this.pointVAO.bind(),ie.drawArrays(ie.POINTS,0,this.pointCount),this.pointVAO.unbind()}if(this.contourEnable&&this.contourCount>0&&this.contourLineWidth>0){var ct=this.contourShader;ct.bind(),ct.uniforms=me,this.contourVAO.bind(),ie.drawArrays(ie.LINES,0,this.contourCount),this.contourVAO.unbind()}},V.drawPick=function(ge){ge=ge||{};for(var ie=this.gl,Te=ge.model||F,Ee=ge.view||F,Ae=ge.projection||F,ze=[[-1e6,-1e6,-1e6],[1e6,1e6,1e6]],Ce=0;Ce<3;++Ce)ze[0][Ce]=Math.max(ze[0][Ce],this.clipBounds[0][Ce]),ze[1][Ce]=Math.min(ze[1][Ce],this.clipBounds[1][Ce]);this._model=[].slice.call(Te),this._view=[].slice.call(Ee),this._projection=[].slice.call(Ae),this._resolution=[ie.drawingBufferWidth,ie.drawingBufferHeight];var me={model:Te,view:Ee,projection:Ae,clipBounds:ze,pickId:this.pickId/255},Re=this.pickShader;if(Re.bind(),Re.uniforms=me,this.triangleCount>0&&(this.triangleVAO.bind(),ie.drawArrays(ie.TRIANGLES,0,this.triangleCount*3),this.triangleVAO.unbind()),this.edgeCount>0&&(this.edgeVAO.bind(),ie.lineWidth(this.lineWidth*this.pixelRatio),ie.drawArrays(ie.LINES,0,this.edgeCount*2),this.edgeVAO.unbind()),this.pointCount>0){var Re=this.pointPickShader;Re.bind(),Re.uniforms=me,this.pointVAO.bind(),ie.drawArrays(ie.POINTS,0,this.pointCount),this.pointVAO.unbind()}},V.pick=function(ge){if(!ge||ge.id!==this.pickId)return null;for(var ie=ge.value[0]+256*ge.value[1]+65536*ge.value[2],Te=this.cells[ie],Ee=this.positions,Ae=new Array(Te.length),ze=0;zeMath.abs(p))g.rotate(F,0,0,-M*P*Math.PI*_.rotateSpeed/window.innerWidth);else if(!_._ortho){var q=-_.zoomSpeed*T*p/window.innerHeight*(F-g.lastT())/20;g.pan(F,0,0,k*(Math.exp(q)-1))}}},!0)},_.enableMouseListeners(),_}},799:function(i,a,o){var s=o(3236),l=o(9405),u=s([`precision mediump float; +#define GLSLIFY 1 +attribute vec2 position; +varying vec2 uv; +void main() { + uv = position; + gl_Position = vec4(position, 0, 1); +}`]),c=s([`precision mediump float; +#define GLSLIFY 1 + +uniform sampler2D accumBuffer; +varying vec2 uv; + +void main() { + vec4 accum = texture2D(accumBuffer, 0.5 * (uv + 1.0)); + gl_FragColor = min(vec4(1,1,1,1), accum); +}`]);i.exports=function(f){return l(f,u,c,null,[{name:"position",type:"vec2"}])}},4100:function(i,a,o){"use strict";var s=o(4437),l=o(3837),u=o(5445),c=o(4449),f=o(3589),h=o(2260),d=o(7169),v=o(351),x=o(4772),b=o(4040),g=o(799),E=o(9216)({tablet:!0,featureDetect:!0});i.exports={createScene:C,createCamera:s};function k(){this.mouse=[-1,-1],this.screen=null,this.distance=1/0,this.index=null,this.dataCoordinate=null,this.dataPosition=null,this.object=null,this.data=null}function A(p,P){var T=null;try{T=p.getContext("webgl",P),T||(T=p.getContext("experimental-webgl",P))}catch(F){return null}return T}function L(p){var P=Math.round(Math.log(Math.abs(p))/Math.log(10));if(P<0){var T=Math.round(Math.pow(10,-P));return Math.ceil(p*T)/T}else if(P>0){var T=Math.round(Math.pow(10,P));return Math.ceil(p/T)*T}return Math.ceil(p)}function _(p){return typeof p=="boolean"?p:!0}function C(p){p=p||{},p.camera=p.camera||{};var P=p.canvas;if(!P)if(P=document.createElement("canvas"),p.container){var T=p.container;T.appendChild(P)}else document.body.appendChild(P);var F=p.gl;if(F||(p.glOptions&&(E=!!p.glOptions.preserveDrawingBuffer),F=A(P,p.glOptions||{premultipliedAlpha:!0,antialias:!0,preserveDrawingBuffer:E})),!F)throw new Error("webgl not supported");var q=p.bounds||[[-10,-10,-10],[10,10,10]],V=new k,H=h(F,F.drawingBufferWidth,F.drawingBufferHeight,{preferFloat:!E}),X=g(F),G=p.cameraObject&&p.cameraObject._ortho===!0||p.camera.projection&&p.camera.projection.type==="orthographic"||!1,N={eye:p.camera.eye||[2,0,0],center:p.camera.center||[0,0,0],up:p.camera.up||[0,1,0],zoomMin:p.camera.zoomMax||.1,zoomMax:p.camera.zoomMin||100,mode:p.camera.mode||"turntable",_ortho:G},W=p.axes||{},re=l(F,W);re.enable=!W.disable;var ae=p.spikes||{},_e=c(F,ae),Me=[],ke=[],ge=[],ie=[],Te=!0,Ce=!0,Ee=new Array(16),Ae=new Array(16),ze={view:null,projection:Ee,model:Ae,_ortho:!1},Ce=!0,me=[F.drawingBufferWidth,F.drawingBufferHeight],Re=p.cameraObject||s(P,N),ce={gl:F,contextLost:!1,pixelRatio:p.pixelRatio||1,canvas:P,selection:V,camera:Re,axes:re,axesPixels:null,spikes:_e,bounds:q,objects:Me,shape:me,aspect:p.aspectRatio||[1,1,1],pickRadius:p.pickRadius||10,zNear:p.zNear||.01,zFar:p.zFar||1e3,fovy:p.fovy||Math.PI/4,clearColor:p.clearColor||[0,0,0,0],autoResize:_(p.autoResize),autoBounds:_(p.autoBounds),autoScale:!!p.autoScale,autoCenter:_(p.autoCenter),clipToBounds:_(p.clipToBounds),snapToData:!!p.snapToData,onselect:p.onselect||null,onrender:p.onrender||null,onclick:p.onclick||null,cameraParams:ze,oncontextloss:null,mouseListener:null,_stopped:!1,getAspectratio:function(){return{x:this.aspect[0],y:this.aspect[1],z:this.aspect[2]}},setAspectratio:function(Yt){this.aspect[0]=Yt.x,this.aspect[1]=Yt.y,this.aspect[2]=Yt.z,Ce=!0},setBounds:function(Yt,xr){this.bounds[0][Yt]=xr.min,this.bounds[1][Yt]=xr.max},setClearColor:function(Yt){this.clearColor=Yt},clearRGBA:function(){this.gl.clearColor(this.clearColor[0],this.clearColor[1],this.clearColor[2],this.clearColor[3]),this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT)}},Ge=[F.drawingBufferWidth/ce.pixelRatio|0,F.drawingBufferHeight/ce.pixelRatio|0];function nt(){if(!ce._stopped&&ce.autoResize){var Yt=P.parentNode,xr=1,er=1;Yt&&Yt!==document.body?(xr=Yt.clientWidth,er=Yt.clientHeight):(xr=window.innerWidth,er=window.innerHeight);var Ke=Math.ceil(xr*ce.pixelRatio)|0,xt=Math.ceil(er*ce.pixelRatio)|0;if(Ke!==P.width||xt!==P.height){P.width=Ke,P.height=xt;var bt=P.style;bt.position=bt.position||"absolute",bt.left="0px",bt.top="0px",bt.width=xr+"px",bt.height=er+"px",Te=!0}}}ce.autoResize&&nt(),window.addEventListener("resize",nt);function ct(){for(var Yt=Me.length,xr=ie.length,er=0;er0&&ge[xr-1]===0;)ge.pop(),ie.pop().dispose()}ce.update=function(Yt){ce._stopped||(Yt=Yt||{},Te=!0,Ce=!0)},ce.add=function(Yt){ce._stopped||(Yt.axes=re,Me.push(Yt),ke.push(-1),Te=!0,Ce=!0,ct())},ce.remove=function(Yt){if(!ce._stopped){var xr=Me.indexOf(Yt);xr<0||(Me.splice(xr,1),ke.pop(),Te=!0,Ce=!0,ct())}},ce.dispose=function(){if(!ce._stopped&&(ce._stopped=!0,window.removeEventListener("resize",nt),P.removeEventListener("webglcontextlost",qt),ce.mouseListener.enabled=!1,!ce.contextLost)){re.dispose(),_e.dispose();for(var Yt=0;YtV.distance)continue;for(var dt=0;dt1e-6?(E=Math.acos(k),A=Math.sin(E),L=Math.sin((1-u)*E)/A,_=Math.sin(u*E)/A):(L=1-u,_=u),o[0]=L*c+_*v,o[1]=L*f+_*x,o[2]=L*h+_*b,o[3]=L*d+_*g,o}},5964:function(i){"use strict";i.exports=function(a){return!a&&a!==0?"":a.toString()}},9366:function(i,a,o){"use strict";var s=o(4359);i.exports=u;var l={};function u(c,f,h){var d=[f.style,f.weight,f.variant,f.family].join("_"),v=l[d];if(v||(v=l[d]={}),c in v)return v[c];var x={textAlign:"center",textBaseline:"middle",lineHeight:1,font:f.family,fontStyle:f.style,fontWeight:f.weight,fontVariant:f.variant,lineSpacing:1.25,styletags:{breaklines:!0,bolds:!0,italics:!0,subscripts:!0,superscripts:!0}};x.triangles=!0;var b=s(c,x);x.triangles=!1;var g=s(c,x),E,k;if(h&&h!==1){for(E=0;E max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +attribute vec3 position; +attribute vec4 color; +attribute vec2 glyph; +attribute vec4 id; + +uniform vec4 highlightId; +uniform float highlightScale; +uniform mat4 model, view, projection; +uniform vec3 clipBounds[2]; + +varying vec4 interpColor; +varying vec4 pickId; +varying vec3 dataCoordinate; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], position)) { + + gl_Position = vec4(0,0,0,0); + } else { + float scale = 1.0; + if(distance(highlightId, id) < 0.0001) { + scale = highlightScale; + } + + vec4 worldPosition = model * vec4(position, 1); + vec4 viewPosition = view * worldPosition; + viewPosition = viewPosition / viewPosition.w; + vec4 clipPosition = projection * (viewPosition + scale * vec4(glyph.x, -glyph.y, 0, 0)); + + gl_Position = clipPosition; + interpColor = color; + pickId = id; + dataCoordinate = position; + } +}`]),c=l([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +attribute vec3 position; +attribute vec4 color; +attribute vec2 glyph; +attribute vec4 id; + +uniform mat4 model, view, projection; +uniform vec2 screenSize; +uniform vec3 clipBounds[2]; +uniform float highlightScale, pixelRatio; +uniform vec4 highlightId; + +varying vec4 interpColor; +varying vec4 pickId; +varying vec3 dataCoordinate; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], position)) { + + gl_Position = vec4(0,0,0,0); + } else { + float scale = pixelRatio; + if(distance(highlightId.bgr, id.bgr) < 0.001) { + scale *= highlightScale; + } + + vec4 worldPosition = model * vec4(position, 1.0); + vec4 viewPosition = view * worldPosition; + vec4 clipPosition = projection * viewPosition; + clipPosition /= clipPosition.w; + + gl_Position = clipPosition + vec4(screenSize * scale * vec2(glyph.x, -glyph.y), 0.0, 0.0); + interpColor = color; + pickId = id; + dataCoordinate = position; + } +}`]),f=l([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +attribute vec3 position; +attribute vec4 color; +attribute vec2 glyph; +attribute vec4 id; + +uniform float highlightScale; +uniform vec4 highlightId; +uniform vec3 axes[2]; +uniform mat4 model, view, projection; +uniform vec2 screenSize; +uniform vec3 clipBounds[2]; +uniform float scale, pixelRatio; + +varying vec4 interpColor; +varying vec4 pickId; +varying vec3 dataCoordinate; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], position)) { + + gl_Position = vec4(0,0,0,0); + } else { + float lscale = pixelRatio * scale; + if(distance(highlightId, id) < 0.0001) { + lscale *= highlightScale; + } + + vec4 clipCenter = projection * (view * (model * vec4(position, 1))); + vec3 dataPosition = position + 0.5*lscale*(axes[0] * glyph.x + axes[1] * glyph.y) * clipCenter.w * screenSize.y; + vec4 clipPosition = projection * (view * (model * vec4(dataPosition, 1))); + + gl_Position = clipPosition; + interpColor = color; + pickId = id; + dataCoordinate = dataPosition; + } +} +`]),h=l([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 fragClipBounds[2]; +uniform float opacity; + +varying vec4 interpColor; +varying vec3 dataCoordinate; + +void main() { + if ( + outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate) || + interpColor.a * opacity == 0. + ) discard; + gl_FragColor = interpColor * opacity; +} +`]),d=l([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 fragClipBounds[2]; +uniform float pickGroup; + +varying vec4 pickId; +varying vec3 dataCoordinate; + +void main() { + if (outOfRange(fragClipBounds[0], fragClipBounds[1], dataCoordinate)) discard; + + gl_FragColor = vec4(pickGroup, pickId.bgr); +}`]),v=[{name:"position",type:"vec3"},{name:"color",type:"vec4"},{name:"glyph",type:"vec2"},{name:"id",type:"vec4"}],x={vertex:u,fragment:h,attributes:v},b={vertex:c,fragment:h,attributes:v},g={vertex:f,fragment:h,attributes:v},E={vertex:u,fragment:d,attributes:v},k={vertex:c,fragment:d,attributes:v},A={vertex:f,fragment:d,attributes:v};function L(_,C){var M=s(_,C),p=M.attributes;return p.position.location=0,p.color.location=1,p.glyph.location=2,p.id.location=3,M}a.createPerspective=function(_){return L(_,x)},a.createOrtho=function(_){return L(_,b)},a.createProject=function(_){return L(_,g)},a.createPickPerspective=function(_){return L(_,E)},a.createPickOrtho=function(_){return L(_,k)},a.createPickProject=function(_){return L(_,A)}},8418:function(i,a,o){"use strict";var s=o(5219),l=o(2762),u=o(8116),c=o(1888),f=o(6760),h=o(1283),d=o(9366),v=o(5964),x=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],b=ArrayBuffer,g=DataView;function E(Ae){return b.isView(Ae)&&!(Ae instanceof g)}function k(Ae){return Array.isArray(Ae)||E(Ae)}i.exports=Ee;function A(Ae,ze){var Ce=Ae[0],me=Ae[1],Re=Ae[2],ce=Ae[3];return Ae[0]=ze[0]*Ce+ze[4]*me+ze[8]*Re+ze[12]*ce,Ae[1]=ze[1]*Ce+ze[5]*me+ze[9]*Re+ze[13]*ce,Ae[2]=ze[2]*Ce+ze[6]*me+ze[10]*Re+ze[14]*ce,Ae[3]=ze[3]*Ce+ze[7]*me+ze[11]*Re+ze[15]*ce,Ae}function L(Ae,ze,Ce,me){return A(me,me,Ce),A(me,me,ze),A(me,me,Ae)}function _(Ae,ze){this.index=Ae,this.dataCoordinate=this.position=ze}function C(Ae){return Ae===!0||Ae>1?1:Ae}function M(Ae,ze,Ce,me,Re,ce,Ge,nt,ct,qt,rt,ot){this.gl=Ae,this.pixelRatio=1,this.shader=ze,this.orthoShader=Ce,this.projectShader=me,this.pointBuffer=Re,this.colorBuffer=ce,this.glyphBuffer=Ge,this.idBuffer=nt,this.vao=ct,this.vertexCount=0,this.lineVertexCount=0,this.opacity=1,this.hasAlpha=!1,this.lineWidth=0,this.projectScale=[.6666666666666666,.6666666666666666,.6666666666666666],this.projectOpacity=[1,1,1],this.projectHasAlpha=!1,this.pickId=0,this.pickPerspectiveShader=qt,this.pickOrthoShader=rt,this.pickProjectShader=ot,this.points=[],this._selectResult=new _(0,[0,0,0]),this.useOrtho=!0,this.bounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.axesProject=[!0,!0,!0],this.axesBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.highlightId=[1,1,1,1],this.highlightScale=2,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.dirty=!0}var p=M.prototype;p.pickSlots=1,p.setPickBase=function(Ae){this.pickId=Ae},p.isTransparent=function(){if(this.hasAlpha)return!0;for(var Ae=0;Ae<3;++Ae)if(this.axesProject[Ae]&&this.projectHasAlpha)return!0;return!1},p.isOpaque=function(){if(!this.hasAlpha)return!0;for(var Ae=0;Ae<3;++Ae)if(this.axesProject[Ae]&&!this.projectHasAlpha)return!0;return!1};var P=[0,0],T=[0,0,0],F=[0,0,0],q=[0,0,0,1],V=[0,0,0,1],H=x.slice(),X=[0,0,0],G=[[0,0,0],[0,0,0]];function N(Ae){return Ae[0]=Ae[1]=Ae[2]=0,Ae}function W(Ae,ze){return Ae[0]=ze[0],Ae[1]=ze[1],Ae[2]=ze[2],Ae[3]=1,Ae}function re(Ae,ze,Ce,me){return Ae[0]=ze[0],Ae[1]=ze[1],Ae[2]=ze[2],Ae[Ce]=me,Ae}function ae(Ae){for(var ze=G,Ce=0;Ce<2;++Ce)for(var me=0;me<3;++me)ze[Ce][me]=Math.max(Math.min(Ae[Ce][me],1e8),-1e8);return ze}function _e(Ae,ze,Ce,me){var Re=ze.axesProject,ce=ze.gl,Ge=Ae.uniforms,nt=Ce.model||x,ct=Ce.view||x,qt=Ce.projection||x,rt=ze.axesBounds,ot=ae(ze.clipBounds),Rt;ze.axes&&ze.axes.lastCubeProps?Rt=ze.axes.lastCubeProps.axis:Rt=[1,1,1],P[0]=2/ce.drawingBufferWidth,P[1]=2/ce.drawingBufferHeight,Ae.bind(),Ge.view=ct,Ge.projection=qt,Ge.screenSize=P,Ge.highlightId=ze.highlightId,Ge.highlightScale=ze.highlightScale,Ge.clipBounds=ot,Ge.pickGroup=ze.pickId/255,Ge.pixelRatio=me;for(var kt=0;kt<3;++kt)if(Re[kt]){Ge.scale=ze.projectScale[kt],Ge.opacity=ze.projectOpacity[kt];for(var Ct=H,Yt=0;Yt<16;++Yt)Ct[Yt]=0;for(var Yt=0;Yt<4;++Yt)Ct[5*Yt]=1;Ct[5*kt]=0,Rt[kt]<0?Ct[12+kt]=rt[0][kt]:Ct[12+kt]=rt[1][kt],f(Ct,nt,Ct),Ge.model=Ct;var xr=(kt+1)%3,er=(kt+2)%3,Ke=N(T),xt=N(F);Ke[xr]=1,xt[er]=1;var bt=L(qt,ct,nt,W(q,Ke)),Lt=L(qt,ct,nt,W(V,xt));if(Math.abs(bt[1])>Math.abs(Lt[1])){var St=bt;bt=Lt,Lt=St,St=Ke,Ke=xt,xt=St;var Et=xr;xr=er,er=Et}bt[0]<0&&(Ke[xr]=-1),Lt[1]>0&&(xt[er]=-1);for(var dt=0,Ht=0,Yt=0;Yt<4;++Yt)dt+=Math.pow(nt[4*xr+Yt],2),Ht+=Math.pow(nt[4*er+Yt],2);Ke[xr]/=Math.sqrt(dt),xt[er]/=Math.sqrt(Ht),Ge.axes[0]=Ke,Ge.axes[1]=xt,Ge.fragClipBounds[0]=re(X,ot[0],kt,-1e8),Ge.fragClipBounds[1]=re(X,ot[1],kt,1e8),ze.vao.bind(),ze.vao.draw(ce.TRIANGLES,ze.vertexCount),ze.lineWidth>0&&(ce.lineWidth(ze.lineWidth*me),ze.vao.draw(ce.LINES,ze.lineVertexCount,ze.vertexCount)),ze.vao.unbind()}}var Me=[-1e8,-1e8,-1e8],ke=[1e8,1e8,1e8],ge=[Me,ke];function ie(Ae,ze,Ce,me,Re,ce,Ge){var nt=Ce.gl;if((ce===Ce.projectHasAlpha||Ge)&&_e(ze,Ce,me,Re),ce===Ce.hasAlpha||Ge){Ae.bind();var ct=Ae.uniforms;ct.model=me.model||x,ct.view=me.view||x,ct.projection=me.projection||x,P[0]=2/nt.drawingBufferWidth,P[1]=2/nt.drawingBufferHeight,ct.screenSize=P,ct.highlightId=Ce.highlightId,ct.highlightScale=Ce.highlightScale,ct.fragClipBounds=ge,ct.clipBounds=Ce.axes.bounds,ct.opacity=Ce.opacity,ct.pickGroup=Ce.pickId/255,ct.pixelRatio=Re,Ce.vao.bind(),Ce.vao.draw(nt.TRIANGLES,Ce.vertexCount),Ce.lineWidth>0&&(nt.lineWidth(Ce.lineWidth*Re),Ce.vao.draw(nt.LINES,Ce.lineVertexCount,Ce.vertexCount)),Ce.vao.unbind()}}p.draw=function(Ae){var ze=this.useOrtho?this.orthoShader:this.shader;ie(ze,this.projectShader,this,Ae,this.pixelRatio,!1,!1)},p.drawTransparent=function(Ae){var ze=this.useOrtho?this.orthoShader:this.shader;ie(ze,this.projectShader,this,Ae,this.pixelRatio,!0,!1)},p.drawPick=function(Ae){var ze=this.useOrtho?this.pickOrthoShader:this.pickPerspectiveShader;ie(ze,this.pickProjectShader,this,Ae,1,!0,!0)},p.pick=function(Ae){if(!Ae||Ae.id!==this.pickId)return null;var ze=Ae.value[2]+(Ae.value[1]<<8)+(Ae.value[0]<<16);if(ze>=this.pointCount||ze<0)return null;var Ce=this.points[ze],me=this._selectResult;me.index=ze;for(var Re=0;Re<3;++Re)me.position[Re]=me.dataCoordinate[Re]=Ce[Re];return me},p.highlight=function(Ae){if(!Ae)this.highlightId=[1,1,1,1];else{var ze=Ae.index,Ce=ze&255,me=ze>>8&255,Re=ze>>16&255;this.highlightId=[Ce/255,me/255,Re/255,0]}};function Te(Ae,ze,Ce,me){var Re;k(Ae)?ze0){var Nr=0,ut=er,Ne=[0,0,0,1],Ye=[0,0,0,1],Ve=k(Rt)&&k(Rt[0]),Xe=k(Yt)&&k(Yt[0]);e:for(var me=0;me0?1-Ht[0][0]:Vt<0?1+Ht[1][0]:1,ar*=ar>0?1-Ht[0][1]:ar<0?1+Ht[1][1]:1;for(var Qr=[Vt,ar],nn=Et.cells||[],Wi=Et.positions||[],Lt=0;Ltthis.buffer.length){l.free(this.buffer);for(var k=this.buffer=l.mallocUint8(c(E*g*4)),A=0;Ak)for(g=k;gE)for(g=E;g=0){for(var G=X.type.charAt(X.type.length-1)|0,N=new Array(G),W=0;W=0;)re+=1;V[H]=re}var ae=new Array(k.length);function _e(){_.program=c.program(C,_._vref,_._fref,q,V);for(var Me=0;Me=0){var p=C.charCodeAt(C.length-1)-48;if(p<2||p>4)throw new s("","Invalid data type for attribute "+_+": "+C);f(v,x,M[0],g,p,E,_)}else if(C.indexOf("mat")>=0){var p=C.charCodeAt(C.length-1)-48;if(p<2||p>4)throw new s("","Invalid data type for attribute "+_+": "+C);h(v,x,M,g,p,E,_)}else throw new s("","Unknown data type for attribute "+_+": "+C);break}}return E}},3327:function(i,a,o){"use strict";var s=o(216),l=o(8866);i.exports=f;function u(h){return function(){return h}}function c(h,d){for(var v=new Array(h),x=0;x4)throw new l("","Invalid data type");switch(re.charAt(0)){case"b":case"i":h["uniform"+ae+"iv"](x[V],H);break;case"v":h["uniform"+ae+"fv"](x[V],H);break;default:throw new l("","Unrecognized data type for vector "+name+": "+re)}}else if(re.indexOf("mat")===0&&re.length===4){if(ae=re.charCodeAt(re.length-1)-48,ae<2||ae>4)throw new l("","Invalid uniform dimension type for matrix "+name+": "+re);h["uniformMatrix"+ae+"fv"](x[V],!1,H);break}else throw new l("","Unknown uniform data type for "+name+": "+re)}}}}}function E(C,M){if(typeof M!="object")return[[C,M]];var p=[];for(var P in M){var T=M[P],F=C;parseInt(P)+""===P?F+="["+P+"]":F+="."+P,typeof T=="object"?p.push.apply(p,E(F,T)):p.push([F,T])}return p}function k(C){switch(C){case"bool":return!1;case"int":case"sampler2D":case"samplerCube":return 0;case"float":return 0;default:var M=C.indexOf("vec");if(0<=M&&M<=1&&C.length===4+M){var p=C.charCodeAt(C.length-1)-48;if(p<2||p>4)throw new l("","Invalid data type");return C.charAt(0)==="b"?c(p,!1):c(p,0)}else if(C.indexOf("mat")===0&&C.length===4){var p=C.charCodeAt(C.length-1)-48;if(p<2||p>4)throw new l("","Invalid uniform dimension type for matrix "+name+": "+C);return c(p*p,0)}else throw new l("","Unknown uniform data type for "+name+": "+C)}}function A(C,M,p){if(typeof p=="object"){var P=L(p);Object.defineProperty(C,M,{get:u(P),set:g(p),enumerable:!0,configurable:!1})}else x[p]?Object.defineProperty(C,M,{get:b(p),set:g(p),enumerable:!0,configurable:!1}):C[M]=k(v[p].type)}function L(C){var M;if(Array.isArray(C)){M=new Array(C.length);for(var p=0;p1){v[0]in h||(h[v[0]]=[]),h=h[v[0]];for(var x=1;x1)for(var E=0;E 0 U ||b|| > 0. + // Assign z = 0, x = -b, y = a: + // a*-b + b*a + c*0 = -ba + ba + 0 = 0 + if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) { + return normalize(vec3(-v.y, v.x, 0.0)); + } else { + return normalize(vec3(0.0, v.z, -v.y)); + } +} + +// Calculate the tube vertex and normal at the given index. +// +// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d. +// +// Each tube segment is made up of a ring of vertices. +// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array. +// The indexes of tube segments run from 0 to 8. +// +vec3 getTubePosition(vec3 d, float index, out vec3 normal) { + float segmentCount = 8.0; + + float angle = 2.0 * 3.14159 * (index / segmentCount); + + vec3 u = getOrthogonalVector(d); + vec3 v = normalize(cross(u, d)); + + vec3 x = u * cos(angle) * length(d); + vec3 y = v * sin(angle) * length(d); + vec3 v3 = x + y; + + normal = normalize(v3); + + return v3; +} + +attribute vec4 vector; +attribute vec4 color, position; +attribute vec2 uv; + +uniform float vectorScale, tubeScale; +uniform mat4 model, view, projection, inverseModel; +uniform vec3 eyePosition, lightPosition; + +varying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position; +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + // Scale the vector magnitude to stay constant with + // model & view changes. + vec3 normal; + vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal); + vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0); + + //Lighting geometry parameters + vec4 cameraCoordinate = view * tubePosition; + cameraCoordinate.xyz /= cameraCoordinate.w; + f_lightDirection = lightPosition - cameraCoordinate.xyz; + f_eyeDirection = eyePosition - cameraCoordinate.xyz; + f_normal = normalize((vec4(normal, 0.0) * inverseModel).xyz); + + // vec4 m_position = model * vec4(tubePosition, 1.0); + vec4 t_position = view * tubePosition; + gl_Position = projection * t_position; + + f_color = color; + f_data = tubePosition.xyz; + f_position = position.xyz; + f_uv = uv; +} +`]),u=s([`#extension GL_OES_standard_derivatives : enable + +precision highp float; +#define GLSLIFY 1 + +float beckmannDistribution(float x, float roughness) { + float NdotH = max(x, 0.0001); + float cos2Alpha = NdotH * NdotH; + float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha; + float roughness2 = roughness * roughness; + float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha; + return exp(tan2Alpha / roughness2) / denom; +} + +float cookTorranceSpecular( + vec3 lightDirection, + vec3 viewDirection, + vec3 surfaceNormal, + float roughness, + float fresnel) { + + float VdotN = max(dot(viewDirection, surfaceNormal), 0.0); + float LdotN = max(dot(lightDirection, surfaceNormal), 0.0); + + //Half angle vector + vec3 H = normalize(lightDirection + viewDirection); + + //Geometric term + float NdotH = max(dot(surfaceNormal, H), 0.0); + float VdotH = max(dot(viewDirection, H), 0.000001); + float LdotH = max(dot(lightDirection, H), 0.000001); + float G1 = (2.0 * NdotH * VdotN) / VdotH; + float G2 = (2.0 * NdotH * LdotN) / LdotH; + float G = min(1.0, min(G1, G2)); + + //Distribution term + float D = beckmannDistribution(NdotH, roughness); + + //Fresnel term + float F = pow(1.0 - VdotN, fresnel); + + //Multiply terms and done + return G * F * D / max(3.14159265 * VdotN, 0.000001); +} + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity; +uniform sampler2D texture; + +varying vec3 f_normal, f_lightDirection, f_eyeDirection, f_data, f_position; +varying vec4 f_color; +varying vec2 f_uv; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard; + vec3 N = normalize(f_normal); + vec3 L = normalize(f_lightDirection); + vec3 V = normalize(f_eyeDirection); + + if(gl_FrontFacing) { + N = -N; + } + + float specular = min(1.0, max(0.0, cookTorranceSpecular(L, V, N, roughness, fresnel))); + float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0); + + vec4 surfaceColor = f_color * texture2D(texture, f_uv); + vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0); + + gl_FragColor = litColor * opacity; +} +`]),c=s([`precision highp float; + +precision highp float; +#define GLSLIFY 1 + +vec3 getOrthogonalVector(vec3 v) { + // Return up-vector for only-z vector. + // Return ax + by + cz = 0, a point that lies on the plane that has v as a normal and that isn't (0,0,0). + // From the above if-statement we have ||a|| > 0 U ||b|| > 0. + // Assign z = 0, x = -b, y = a: + // a*-b + b*a + c*0 = -ba + ba + 0 = 0 + if (v.x*v.x > v.z*v.z || v.y*v.y > v.z*v.z) { + return normalize(vec3(-v.y, v.x, 0.0)); + } else { + return normalize(vec3(0.0, v.z, -v.y)); + } +} + +// Calculate the tube vertex and normal at the given index. +// +// The returned vertex is for a tube ring with its center at origin, radius of length(d), pointing in the direction of d. +// +// Each tube segment is made up of a ring of vertices. +// These vertices are used to make up the triangles of the tube by connecting them together in the vertex array. +// The indexes of tube segments run from 0 to 8. +// +vec3 getTubePosition(vec3 d, float index, out vec3 normal) { + float segmentCount = 8.0; + + float angle = 2.0 * 3.14159 * (index / segmentCount); + + vec3 u = getOrthogonalVector(d); + vec3 v = normalize(cross(u, d)); + + vec3 x = u * cos(angle) * length(d); + vec3 y = v * sin(angle) * length(d); + vec3 v3 = x + y; + + normal = normalize(v3); + + return v3; +} + +attribute vec4 vector; +attribute vec4 position; +attribute vec4 id; + +uniform mat4 model, view, projection; +uniform float tubeScale; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + vec3 normal; + vec3 XYZ = getTubePosition(mat3(model) * (tubeScale * vector.w * normalize(vector.xyz)), position.w, normal); + vec4 tubePosition = model * vec4(position.xyz, 1.0) + vec4(XYZ, 0.0); + + gl_Position = projection * (view * tubePosition); + f_id = id; + f_position = position.xyz; +} +`]),f=s([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 clipBounds[2]; +uniform float pickId; + +varying vec3 f_position; +varying vec4 f_id; + +void main() { + if (outOfRange(clipBounds[0], clipBounds[1], f_position)) discard; + + gl_FragColor = vec4(pickId, f_id.xyz); +}`]);a.meshShader={vertex:l,fragment:u,attributes:[{name:"position",type:"vec4"},{name:"color",type:"vec4"},{name:"uv",type:"vec2"},{name:"vector",type:"vec4"}]},a.pickShader={vertex:c,fragment:f,attributes:[{name:"position",type:"vec4"},{name:"id",type:"vec4"},{name:"vector",type:"vec4"}]}},7815:function(i,a,o){"use strict";var s=o(2931),l=o(9970),u=["xyz","xzy","yxz","yzx","zxy","zyx"],c=function(A,L,_,C){for(var M=A.points,p=A.velocities,P=A.divergences,T=[],F=[],q=[],V=[],H=[],X=[],G=0,N=0,W=l.create(),re=l.create(),ae=8,_e=0;_e0)for(var ie=0;ieL)return C-1}return C},d=function(A,L,_){return A_?_:A},v=function(A,L,_){var C=L.vectors,M=L.meshgrid,p=A[0],P=A[1],T=A[2],F=M[0].length,q=M[1].length,V=M[2].length,H=h(M[0],p),X=h(M[1],P),G=h(M[2],T),N=H+1,W=X+1,re=G+1;if(H=d(H,0,F-1),N=d(N,0,F-1),X=d(X,0,q-1),W=d(W,0,q-1),G=d(G,0,V-1),re=d(re,0,V-1),H<0||X<0||G<0||N>F-1||W>q-1||re>V-1)return s.create();var ae=M[0][H],_e=M[0][N],Me=M[1][X],ke=M[1][W],ge=M[2][G],ie=M[2][re],Te=(p-ae)/(_e-ae),Ee=(P-Me)/(ke-Me),Ae=(T-ge)/(ie-ge);isFinite(Te)||(Te=.5),isFinite(Ee)||(Ee=.5),isFinite(Ae)||(Ae=.5);var ze,Ce,me,Re,ce,Ge;switch(_.reversedX&&(H=F-1-H,N=F-1-N),_.reversedY&&(X=q-1-X,W=q-1-W),_.reversedZ&&(G=V-1-G,re=V-1-re),_.filled){case 5:ce=G,Ge=re,me=X*V,Re=W*V,ze=H*V*q,Ce=N*V*q;break;case 4:ce=G,Ge=re,ze=H*V,Ce=N*V,me=X*V*F,Re=W*V*F;break;case 3:me=X,Re=W,ce=G*q,Ge=re*q,ze=H*q*V,Ce=N*q*V;break;case 2:me=X,Re=W,ze=H*q,Ce=N*q,ce=G*q*F,Ge=re*q*F;break;case 1:ze=H,Ce=N,ce=G*F,Ge=re*F,me=X*F*V,Re=W*F*V;break;default:ze=H,Ce=N,me=X*F,Re=W*F,ce=G*F*q,Ge=re*F*q;break}var nt=C[ze+me+ce],ct=C[ze+me+Ge],qt=C[ze+Re+ce],rt=C[ze+Re+Ge],ot=C[Ce+me+ce],Rt=C[Ce+me+Ge],kt=C[Ce+Re+ce],Ct=C[Ce+Re+Ge],Yt=s.create(),xr=s.create(),er=s.create(),Ke=s.create();s.lerp(Yt,nt,ot,Te),s.lerp(xr,ct,Rt,Te),s.lerp(er,qt,kt,Te),s.lerp(Ke,rt,Ct,Te);var xt=s.create(),bt=s.create();s.lerp(xt,Yt,er,Ee),s.lerp(bt,xr,Ke,Ee);var Lt=s.create();return s.lerp(Lt,xt,bt,Ae),Lt},x=function(A,L){var _=L[0],C=L[1],M=L[2];return A[0]=_<0?-_:_,A[1]=C<0?-C:C,A[2]=M<0?-M:M,A},b=function(A){var L=1/0;A.sort(function(p,P){return p-P});for(var _=A.length,C=1;C<_;C++){var M=Math.abs(A[C]-A[C-1]);MN||CtW||Ytre)},_e=s.distance(L[0],L[1]),Me=10*_e/C,ke=Me*Me,ge=1,ie=0,Te=_.length;Te>1&&(ge=g(_));for(var Ee=0;Eeie&&(ie=nt),ce.push(nt),V.push({points:ze,velocities:Ce,divergences:ce});for(var ct=0;ctke&&s.scale(qt,qt,Me/Math.sqrt(rt)),s.add(qt,qt,Ae),me=F(qt),s.squaredDistance(Re,qt)-ke>-1e-4*ke){ze.push(qt),Re=qt,Ce.push(me);var Ge=q(qt,me),nt=s.length(Ge);isFinite(nt)&&nt>ie&&(ie=nt),ce.push(nt)}Ae=qt}}var ot=f(V,A.colormap,ie,ge);return p?ot.tubeScale=p:(ie===0&&(ie=1),ot.tubeScale=M*.5*ge/ie),ot};var E=o(6740),k=o(6405).createMesh;i.exports.createTubeMesh=function(A,L){return k(A,L,{shaders:E,traceType:"streamtube"})}},990:function(i,a,o){var s=o(9405),l=o(3236),u=l([`precision highp float; +#define GLSLIFY 1 + +attribute vec4 uv; +attribute vec3 f; +attribute vec3 normal; + +uniform vec3 objectOffset; +uniform mat4 model, view, projection, inverseModel; +uniform vec3 lightPosition, eyePosition; +uniform sampler2D colormap; + +varying float value, kill; +varying vec3 worldCoordinate; +varying vec2 planeCoordinate; +varying vec3 lightDirection, eyeDirection, surfaceNormal; +varying vec4 vColor; + +void main() { + vec3 localCoordinate = vec3(uv.zw, f.x); + worldCoordinate = objectOffset + localCoordinate; + mat4 objectOffsetTranslation = mat4(1.0) + mat4(vec4(0), vec4(0), vec4(0), vec4(objectOffset, 0)); + vec4 worldPosition = (model * objectOffsetTranslation) * vec4(localCoordinate, 1.0); + vec4 clipPosition = projection * (view * worldPosition); + gl_Position = clipPosition; + kill = f.y; + value = f.z; + planeCoordinate = uv.xy; + + vColor = texture2D(colormap, vec2(value, value)); + + //Lighting geometry parameters + vec4 cameraCoordinate = view * worldPosition; + cameraCoordinate.xyz /= cameraCoordinate.w; + lightDirection = lightPosition - cameraCoordinate.xyz; + eyeDirection = eyePosition - cameraCoordinate.xyz; + surfaceNormal = normalize((vec4(normal,0) * inverseModel).xyz); +} +`]),c=l([`precision highp float; +#define GLSLIFY 1 + +float beckmannDistribution(float x, float roughness) { + float NdotH = max(x, 0.0001); + float cos2Alpha = NdotH * NdotH; + float tan2Alpha = (cos2Alpha - 1.0) / cos2Alpha; + float roughness2 = roughness * roughness; + float denom = 3.141592653589793 * roughness2 * cos2Alpha * cos2Alpha; + return exp(tan2Alpha / roughness2) / denom; +} + +float beckmannSpecular( + vec3 lightDirection, + vec3 viewDirection, + vec3 surfaceNormal, + float roughness) { + return beckmannDistribution(dot(surfaceNormal, normalize(lightDirection + viewDirection)), roughness); +} + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec3 lowerBound, upperBound; +uniform float contourTint; +uniform vec4 contourColor; +uniform sampler2D colormap; +uniform vec3 clipBounds[2]; +uniform float roughness, fresnel, kambient, kdiffuse, kspecular, opacity; +uniform float vertexColor; + +varying float value, kill; +varying vec3 worldCoordinate; +varying vec3 lightDirection, eyeDirection, surfaceNormal; +varying vec4 vColor; + +void main() { + if ( + kill > 0.0 || + vColor.a == 0.0 || + outOfRange(clipBounds[0], clipBounds[1], worldCoordinate) + ) discard; + + vec3 N = normalize(surfaceNormal); + vec3 V = normalize(eyeDirection); + vec3 L = normalize(lightDirection); + + if(gl_FrontFacing) { + N = -N; + } + + float specular = max(beckmannSpecular(L, V, N, roughness), 0.); + float diffuse = min(kambient + kdiffuse * max(dot(N, L), 0.0), 1.0); + + //decide how to interpolate color \u2014 in vertex or in fragment + vec4 surfaceColor = + step(vertexColor, .5) * texture2D(colormap, vec2(value, value)) + + step(.5, vertexColor) * vColor; + + vec4 litColor = surfaceColor.a * vec4(diffuse * surfaceColor.rgb + kspecular * vec3(1,1,1) * specular, 1.0); + + gl_FragColor = mix(litColor, contourColor, contourTint) * opacity; +} +`]),f=l([`precision highp float; +#define GLSLIFY 1 + +attribute vec4 uv; +attribute float f; + +uniform vec3 objectOffset; +uniform mat3 permutation; +uniform mat4 model, view, projection; +uniform float height, zOffset; +uniform sampler2D colormap; + +varying float value, kill; +varying vec3 worldCoordinate; +varying vec2 planeCoordinate; +varying vec3 lightDirection, eyeDirection, surfaceNormal; +varying vec4 vColor; + +void main() { + vec3 dataCoordinate = permutation * vec3(uv.xy, height); + worldCoordinate = objectOffset + dataCoordinate; + mat4 objectOffsetTranslation = mat4(1.0) + mat4(vec4(0), vec4(0), vec4(0), vec4(objectOffset, 0)); + vec4 worldPosition = (model * objectOffsetTranslation) * vec4(dataCoordinate, 1.0); + + vec4 clipPosition = projection * (view * worldPosition); + clipPosition.z += zOffset; + + gl_Position = clipPosition; + value = f + objectOffset.z; + kill = -1.0; + planeCoordinate = uv.zw; + + vColor = texture2D(colormap, vec2(value, value)); + + //Don't do lighting for contours + surfaceNormal = vec3(1,0,0); + eyeDirection = vec3(0,1,0); + lightDirection = vec3(0,0,1); +} +`]),h=l([`precision highp float; +#define GLSLIFY 1 + +bool outOfRange(float a, float b, float p) { + return ((p > max(a, b)) || + (p < min(a, b))); +} + +bool outOfRange(vec2 a, vec2 b, vec2 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y)); +} + +bool outOfRange(vec3 a, vec3 b, vec3 p) { + return (outOfRange(a.x, b.x, p.x) || + outOfRange(a.y, b.y, p.y) || + outOfRange(a.z, b.z, p.z)); +} + +bool outOfRange(vec4 a, vec4 b, vec4 p) { + return outOfRange(a.xyz, b.xyz, p.xyz); +} + +uniform vec2 shape; +uniform vec3 clipBounds[2]; +uniform float pickId; + +varying float value, kill; +varying vec3 worldCoordinate; +varying vec2 planeCoordinate; +varying vec3 surfaceNormal; + +vec2 splitFloat(float v) { + float vh = 255.0 * v; + float upper = floor(vh); + float lower = fract(vh); + return vec2(upper / 255.0, floor(lower * 16.0) / 16.0); +} + +void main() { + if ((kill > 0.0) || + (outOfRange(clipBounds[0], clipBounds[1], worldCoordinate))) discard; + + vec2 ux = splitFloat(planeCoordinate.x / shape.x); + vec2 uy = splitFloat(planeCoordinate.y / shape.y); + gl_FragColor = vec4(pickId, ux.x, uy.x, ux.y + (uy.y/16.0)); +} +`]);a.createShader=function(d){var v=s(d,u,c,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return v.attributes.uv.location=0,v.attributes.f.location=1,v.attributes.normal.location=2,v},a.createPickShader=function(d){var v=s(d,u,h,null,[{name:"uv",type:"vec4"},{name:"f",type:"vec3"},{name:"normal",type:"vec3"}]);return v.attributes.uv.location=0,v.attributes.f.location=1,v.attributes.normal.location=2,v},a.createContourShader=function(d){var v=s(d,f,c,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return v.attributes.uv.location=0,v.attributes.f.location=1,v},a.createPickContourShader=function(d){var v=s(d,f,h,null,[{name:"uv",type:"vec4"},{name:"f",type:"float"}]);return v.attributes.uv.location=0,v.attributes.f.location=1,v}},9499:function(i,a,o){"use strict";i.exports=ze;var s=o(8828),l=o(2762),u=o(8116),c=o(7766),f=o(1888),h=o(6729),d=o(5298),v=o(9994),x=o(9618),b=o(3711),g=o(6760),E=o(7608),k=o(2478),A=o(6199),L=o(990),_=L.createShader,C=L.createContourShader,M=L.createPickShader,p=L.createPickContourShader,P=4*10,T=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],F=[[0,0],[0,1],[1,0],[1,1],[1,0],[0,1]],q=[[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0]];(function(){for(var Ce=0;Ce<3;++Ce){var me=q[Ce],Re=(Ce+1)%3,ce=(Ce+2)%3;me[Re+0]=1,me[ce+3]=1,me[Ce+6]=1}})();function V(Ce,me,Re,ce,Ge){this.position=Ce,this.index=me,this.uv=Re,this.level=ce,this.dataCoordinate=Ge}var H=256;function X(Ce,me,Re,ce,Ge,nt,ct,qt,rt,ot,Rt,kt,Ct,Yt,xr){this.gl=Ce,this.shape=me,this.bounds=Re,this.objectOffset=xr,this.intensityBounds=[],this._shader=ce,this._pickShader=Ge,this._coordinateBuffer=nt,this._vao=ct,this._colorMap=qt,this._contourShader=rt,this._contourPickShader=ot,this._contourBuffer=Rt,this._contourVAO=kt,this._contourOffsets=[[],[],[]],this._contourCounts=[[],[],[]],this._vertexCount=0,this._pickResult=new V([0,0,0],[0,0],[0,0],[0,0,0],[0,0,0]),this._dynamicBuffer=Ct,this._dynamicVAO=Yt,this._dynamicOffsets=[0,0,0],this._dynamicCounts=[0,0,0],this.contourWidth=[1,1,1],this.contourLevels=[[1],[1],[1]],this.contourTint=[0,0,0],this.contourColor=[[.5,.5,.5,1],[.5,.5,.5,1],[.5,.5,.5,1]],this.showContour=!0,this.showSurface=!0,this.enableHighlight=[!0,!0,!0],this.highlightColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.highlightTint=[1,1,1],this.highlightLevel=[-1,-1,-1],this.enableDynamic=[!0,!0,!0],this.dynamicLevel=[NaN,NaN,NaN],this.dynamicColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.dynamicTint=[1,1,1],this.dynamicWidth=[1,1,1],this.axesBounds=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]],this.surfaceProject=[!1,!1,!1],this.contourProject=[[!1,!1,!1],[!1,!1,!1],[!1,!1,!1]],this.colorBounds=[!1,!1],this._field=[x(f.mallocFloat(1024),[0,0]),x(f.mallocFloat(1024),[0,0]),x(f.mallocFloat(1024),[0,0])],this.pickId=1,this.clipBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.snapToData=!1,this.pixelRatio=1,this.opacity=1,this.lightPosition=[10,1e4,0],this.ambientLight=.8,this.diffuseLight=.8,this.specularLight=2,this.roughness=.5,this.fresnel=1.5,this.vertexColor=0,this.dirty=!0}var G=X.prototype;G.genColormap=function(Ce,me){var Re=!1,ce=v([h({colormap:Ce,nshades:H,format:"rgba"}).map(function(Ge,nt){var ct=me?N(nt/255,me):Ge[3];return ct<1&&(Re=!0),[Ge[0],Ge[1],Ge[2],255*ct]})]);return d.divseq(ce,255),this.hasAlphaScale=Re,ce},G.isTransparent=function(){return this.opacity<1||this.hasAlphaScale},G.isOpaque=function(){return!this.isTransparent()},G.pickSlots=1,G.setPickBase=function(Ce){this.pickId=Ce};function N(Ce,me){if(!me||!me.length)return 1;for(var Re=0;ReCe&&Re>0){var ce=(me[Re][0]-Ce)/(me[Re][0]-me[Re-1][0]);return me[Re][1]*(1-ce)+ce*me[Re-1][1]}}return 1}var W=[0,0,0],re={showSurface:!1,showContour:!1,projections:[T.slice(),T.slice(),T.slice()],clipBounds:[[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]],[[0,0,0],[0,0,0]]]};function ae(Ce,me){var Re,ce,Ge,nt=me.axes&&me.axes.lastCubeProps.axis||W,ct=me.showSurface,qt=me.showContour;for(Re=0;Re<3;++Re)for(ct=ct||me.surfaceProject[Re],ce=0;ce<3;++ce)qt=qt||me.contourProject[Re][ce];for(Re=0;Re<3;++Re){var rt=re.projections[Re];for(ce=0;ce<16;++ce)rt[ce]=0;for(ce=0;ce<4;++ce)rt[5*ce]=1;rt[5*Re]=0,rt[12+Re]=me.axesBounds[+(nt[Re]>0)][Re],g(rt,Ce.model,rt);var ot=re.clipBounds[Re];for(Ge=0;Ge<2;++Ge)for(ce=0;ce<3;++ce)ot[Ge][ce]=Ce.clipBounds[Ge][ce];ot[0][Re]=-1e8,ot[1][Re]=1e8}return re.showSurface=ct,re.showContour=qt,re}var _e={model:T,view:T,projection:T,inverseModel:T.slice(),lowerBound:[0,0,0],upperBound:[0,0,0],colorMap:0,clipBounds:[[0,0,0],[0,0,0]],height:0,contourTint:0,contourColor:[0,0,0,1],permutation:[1,0,0,0,1,0,0,0,1],zOffset:-1e-4,objectOffset:[0,0,0],kambient:1,kdiffuse:1,kspecular:1,lightPosition:[1e3,1e3,1e3],eyePosition:[0,0,0],roughness:1,fresnel:1,opacity:1,vertexColor:0},Me=T.slice(),ke=[1,0,0,0,1,0,0,0,1];function ge(Ce,me){Ce=Ce||{};var Re=this.gl;Re.disable(Re.CULL_FACE),this._colorMap.bind(0);var ce=_e;ce.model=Ce.model||T,ce.view=Ce.view||T,ce.projection=Ce.projection||T,ce.lowerBound=[this.bounds[0][0],this.bounds[0][1],this.colorBounds[0]||this.bounds[0][2]],ce.upperBound=[this.bounds[1][0],this.bounds[1][1],this.colorBounds[1]||this.bounds[1][2]],ce.objectOffset=this.objectOffset,ce.contourColor=this.contourColor[0],ce.inverseModel=E(ce.inverseModel,ce.model);for(var Ge=0;Ge<2;++Ge)for(var nt=ce.clipBounds[Ge],ct=0;ct<3;++ct)nt[ct]=Math.min(Math.max(this.clipBounds[Ge][ct],-1e8),1e8);ce.kambient=this.ambientLight,ce.kdiffuse=this.diffuseLight,ce.kspecular=this.specularLight,ce.roughness=this.roughness,ce.fresnel=this.fresnel,ce.opacity=this.opacity,ce.height=0,ce.permutation=ke,ce.vertexColor=this.vertexColor;var qt=Me;for(g(qt,ce.view,ce.model),g(qt,ce.projection,qt),E(qt,qt),Ge=0;Ge<3;++Ge)ce.eyePosition[Ge]=qt[12+Ge]/qt[15];var rt=qt[15];for(Ge=0;Ge<3;++Ge)rt+=this.lightPosition[Ge]*qt[4*Ge+3];for(Ge=0;Ge<3;++Ge){var ot=qt[12+Ge];for(ct=0;ct<3;++ct)ot+=qt[4*ct+Ge]*this.lightPosition[ct];ce.lightPosition[Ge]=ot/rt}var Rt=ae(ce,this);if(Rt.showSurface){for(this._shader.bind(),this._shader.uniforms=ce,this._vao.bind(),this.showSurface&&this._vertexCount&&this._vao.draw(Re.TRIANGLES,this._vertexCount),Ge=0;Ge<3;++Ge)!this.surfaceProject[Ge]||!this.vertexCount||(this._shader.uniforms.model=Rt.projections[Ge],this._shader.uniforms.clipBounds=Rt.clipBounds[Ge],this._vao.draw(Re.TRIANGLES,this._vertexCount));this._vao.unbind()}if(Rt.showContour){var kt=this._contourShader;ce.kambient=1,ce.kdiffuse=0,ce.kspecular=0,ce.opacity=1,kt.bind(),kt.uniforms=ce;var Ct=this._contourVAO;for(Ct.bind(),Ge=0;Ge<3;++Ge)for(kt.uniforms.permutation=q[Ge],Re.lineWidth(this.contourWidth[Ge]*this.pixelRatio),ct=0;ct>4)/16)/255,Ge=Math.floor(ce),nt=ce-Ge,ct=me[1]*(Ce.value[1]+(Ce.value[2]&15)/16)/255,qt=Math.floor(ct),rt=ct-qt;Ge+=1,qt+=1;var ot=Re.position;ot[0]=ot[1]=ot[2]=0;for(var Rt=0;Rt<2;++Rt)for(var kt=Rt?nt:1-nt,Ct=0;Ct<2;++Ct)for(var Yt=Ct?rt:1-rt,xr=Ge+Rt,er=qt+Ct,Ke=kt*Yt,xt=0;xt<3;++xt)ot[xt]+=this._field[xt].get(xr,er)*Ke;for(var bt=this._pickResult.level,Lt=0;Lt<3;++Lt)if(bt[Lt]=k.le(this.contourLevels[Lt],ot[Lt]),bt[Lt]<0)this.contourLevels[Lt].length>0&&(bt[Lt]=0);else if(bt[Lt]Math.abs(Et-ot[Lt])&&(bt[Lt]+=1)}for(Re.index[0]=nt<.5?Ge:Ge+1,Re.index[1]=rt<.5?qt:qt+1,Re.uv[0]=ce/me[0],Re.uv[1]=ct/me[1],xt=0;xt<3;++xt)Re.dataCoordinate[xt]=this._field[xt].get(Re.index[0],Re.index[1]);return Re},G.padField=function(Ce,me){var Re=me.shape.slice(),ce=Ce.shape.slice();d.assign(Ce.lo(1,1).hi(Re[0],Re[1]),me),d.assign(Ce.lo(1).hi(Re[0],1),me.hi(Re[0],1)),d.assign(Ce.lo(1,ce[1]-1).hi(Re[0],1),me.lo(0,Re[1]-1).hi(Re[0],1)),d.assign(Ce.lo(0,1).hi(1,Re[1]),me.hi(1)),d.assign(Ce.lo(ce[0]-1,1).hi(1,Re[1]),me.lo(Re[0]-1)),Ce.set(0,0,me.get(0,0)),Ce.set(0,ce[1]-1,me.get(0,Re[1]-1)),Ce.set(ce[0]-1,0,me.get(Re[0]-1,0)),Ce.set(ce[0]-1,ce[1]-1,me.get(Re[0]-1,Re[1]-1))};function Te(Ce,me){return Array.isArray(Ce)?[me(Ce[0]),me(Ce[1]),me(Ce[2])]:[me(Ce),me(Ce),me(Ce)]}function Ee(Ce){return Array.isArray(Ce)?Ce.length===3?[Ce[0],Ce[1],Ce[2],1]:[Ce[0],Ce[1],Ce[2],Ce[3]]:[0,0,0,1]}function Ae(Ce){if(Array.isArray(Ce)){if(Array.isArray(Ce))return[Ee(Ce[0]),Ee(Ce[1]),Ee(Ce[2])];var me=Ee(Ce);return[me.slice(),me.slice(),me.slice()]}}G.update=function(Ce){Ce=Ce||{},this.objectOffset=Ce.objectOffset||this.objectOffset,this.dirty=!0,"contourWidth"in Ce&&(this.contourWidth=Te(Ce.contourWidth,Number)),"showContour"in Ce&&(this.showContour=Te(Ce.showContour,Boolean)),"showSurface"in Ce&&(this.showSurface=!!Ce.showSurface),"contourTint"in Ce&&(this.contourTint=Te(Ce.contourTint,Boolean)),"contourColor"in Ce&&(this.contourColor=Ae(Ce.contourColor)),"contourProject"in Ce&&(this.contourProject=Te(Ce.contourProject,function(Gi){return Te(Gi,Boolean)})),"surfaceProject"in Ce&&(this.surfaceProject=Ce.surfaceProject),"dynamicColor"in Ce&&(this.dynamicColor=Ae(Ce.dynamicColor)),"dynamicTint"in Ce&&(this.dynamicTint=Te(Ce.dynamicTint,Number)),"dynamicWidth"in Ce&&(this.dynamicWidth=Te(Ce.dynamicWidth,Number)),"opacity"in Ce&&(this.opacity=Ce.opacity),"opacityscale"in Ce&&(this.opacityscale=Ce.opacityscale),"colorBounds"in Ce&&(this.colorBounds=Ce.colorBounds),"vertexColor"in Ce&&(this.vertexColor=Ce.vertexColor?1:0),"colormap"in Ce&&this._colorMap.setPixels(this.genColormap(Ce.colormap,this.opacityscale));var me=Ce.field||Ce.coords&&Ce.coords[2]||null,Re=!1;if(me||(this._field[2].shape[0]||this._field[2].shape[2]?me=this._field[2].lo(1,1).hi(this._field[2].shape[0]-2,this._field[2].shape[1]-2):me=this._field[2].hi(0,0)),"field"in Ce||"coords"in Ce){var ce=(me.shape[0]+2)*(me.shape[1]+2);ce>this._field[2].data.length&&(f.freeFloat(this._field[2].data),this._field[2].data=f.mallocFloat(s.nextPow2(ce))),this._field[2]=x(this._field[2].data,[me.shape[0]+2,me.shape[1]+2]),this.padField(this._field[2],me),this.shape=me.shape.slice();for(var Ge=this.shape,nt=0;nt<2;++nt)this._field[2].size>this._field[nt].data.length&&(f.freeFloat(this._field[nt].data),this._field[nt].data=f.mallocFloat(this._field[2].size)),this._field[nt]=x(this._field[nt].data,[Ge[0]+2,Ge[1]+2]);if(Ce.coords){var ct=Ce.coords;if(!Array.isArray(ct)||ct.length!==3)throw new Error("gl-surface: invalid coordinates for x/y");for(nt=0;nt<2;++nt){var qt=ct[nt];for(Ct=0;Ct<2;++Ct)if(qt.shape[Ct]!==Ge[Ct])throw new Error("gl-surface: coords have incorrect shape");this.padField(this._field[nt],qt)}}else if(Ce.ticks){var rt=Ce.ticks;if(!Array.isArray(rt)||rt.length!==2)throw new Error("gl-surface: invalid ticks");for(nt=0;nt<2;++nt){var ot=rt[nt];if((Array.isArray(ot)||ot.length)&&(ot=x(ot)),ot.shape[0]!==Ge[nt])throw new Error("gl-surface: invalid tick length");var Rt=x(ot.data,Ge);Rt.stride[nt]=ot.stride[0],Rt.stride[nt^1]=0,this.padField(this._field[nt],Rt)}}else{for(nt=0;nt<2;++nt){var kt=[0,0];kt[nt]=1,this._field[nt]=x(this._field[nt].data,[Ge[0]+2,Ge[1]+2],kt,0)}this._field[0].set(0,0,0);for(var Ct=0;Ct0){for(var Mi=0;Mi<5;++Mi)ai.pop();Ve-=1}continue e}}}nn.push(Ve)}this._contourOffsets[jr]=bi,this._contourCounts[jr]=nn}var Pi=f.mallocFloat(ai.length);for(nt=0;ntV||F<0||F>V)throw new Error("gl-texture2d: Invalid texture size");return P._shape=[T,F],P.bind(),q.texImage2D(q.TEXTURE_2D,0,P.format,T,F,0,P.format,P.type,null),P._mipLevels=[0],P}function g(P,T,F,q,V,H){this.gl=P,this.handle=T,this.format=V,this.type=H,this._shape=[F,q],this._mipLevels=[0],this._magFilter=P.NEAREST,this._minFilter=P.NEAREST,this._wrapS=P.CLAMP_TO_EDGE,this._wrapT=P.CLAMP_TO_EDGE,this._anisoSamples=1;var X=this,G=[this._wrapS,this._wrapT];Object.defineProperties(G,[{get:function(){return X._wrapS},set:function(W){return X.wrapS=W}},{get:function(){return X._wrapT},set:function(W){return X.wrapT=W}}]),this._wrapVector=G;var N=[this._shape[0],this._shape[1]];Object.defineProperties(N,[{get:function(){return X._shape[0]},set:function(W){return X.width=W}},{get:function(){return X._shape[1]},set:function(W){return X.height=W}}]),this._shapeVector=N}var E=g.prototype;Object.defineProperties(E,{minFilter:{get:function(){return this._minFilter},set:function(P){this.bind();var T=this.gl;if(this.type===T.FLOAT&&c.indexOf(P)>=0&&(T.getExtension("OES_texture_float_linear")||(P=T.NEAREST)),f.indexOf(P)<0)throw new Error("gl-texture2d: Unknown filter mode "+P);return T.texParameteri(T.TEXTURE_2D,T.TEXTURE_MIN_FILTER,P),this._minFilter=P}},magFilter:{get:function(){return this._magFilter},set:function(P){this.bind();var T=this.gl;if(this.type===T.FLOAT&&c.indexOf(P)>=0&&(T.getExtension("OES_texture_float_linear")||(P=T.NEAREST)),f.indexOf(P)<0)throw new Error("gl-texture2d: Unknown filter mode "+P);return T.texParameteri(T.TEXTURE_2D,T.TEXTURE_MAG_FILTER,P),this._magFilter=P}},mipSamples:{get:function(){return this._anisoSamples},set:function(P){var T=this._anisoSamples;if(this._anisoSamples=Math.max(P,1)|0,T!==this._anisoSamples){var F=this.gl.getExtension("EXT_texture_filter_anisotropic");F&&this.gl.texParameterf(this.gl.TEXTURE_2D,F.TEXTURE_MAX_ANISOTROPY_EXT,this._anisoSamples)}return this._anisoSamples}},wrapS:{get:function(){return this._wrapS},set:function(P){if(this.bind(),h.indexOf(P)<0)throw new Error("gl-texture2d: Unknown wrap mode "+P);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_S,P),this._wrapS=P}},wrapT:{get:function(){return this._wrapT},set:function(P){if(this.bind(),h.indexOf(P)<0)throw new Error("gl-texture2d: Unknown wrap mode "+P);return this.gl.texParameteri(this.gl.TEXTURE_2D,this.gl.TEXTURE_WRAP_T,P),this._wrapT=P}},wrap:{get:function(){return this._wrapVector},set:function(P){if(Array.isArray(P)||(P=[P,P]),P.length!==2)throw new Error("gl-texture2d: Must specify wrap mode for rows and columns");for(var T=0;T<2;++T)if(h.indexOf(P[T])<0)throw new Error("gl-texture2d: Unknown wrap mode "+P);this._wrapS=P[0],this._wrapT=P[1];var F=this.gl;return this.bind(),F.texParameteri(F.TEXTURE_2D,F.TEXTURE_WRAP_S,this._wrapS),F.texParameteri(F.TEXTURE_2D,F.TEXTURE_WRAP_T,this._wrapT),P}},shape:{get:function(){return this._shapeVector},set:function(P){if(!Array.isArray(P))P=[P|0,P|0];else if(P.length!==2)throw new Error("gl-texture2d: Invalid texture shape");return b(this,P[0]|0,P[1]|0),[P[0]|0,P[1]|0]}},width:{get:function(){return this._shape[0]},set:function(P){return P=P|0,b(this,P,this._shape[1]),P}},height:{get:function(){return this._shape[1]},set:function(P){return P=P|0,b(this,this._shape[0],P),P}}}),E.bind=function(P){var T=this.gl;return P!==void 0&&T.activeTexture(T.TEXTURE0+(P|0)),T.bindTexture(T.TEXTURE_2D,this.handle),P!==void 0?P|0:T.getParameter(T.ACTIVE_TEXTURE)-T.TEXTURE0},E.dispose=function(){this.gl.deleteTexture(this.handle)},E.generateMipmap=function(){this.bind(),this.gl.generateMipmap(this.gl.TEXTURE_2D);for(var P=Math.min(this._shape[0],this._shape[1]),T=0;P>0;++T,P>>>=1)this._mipLevels.indexOf(T)<0&&this._mipLevels.push(T)},E.setPixels=function(P,T,F,q){var V=this.gl;this.bind(),Array.isArray(T)?(q=F,F=T[1]|0,T=T[0]|0):(T=T||0,F=F||0),q=q||0;var H=v(P)?P:P.raw;if(H){var X=this._mipLevels.indexOf(q)<0;X?(V.texImage2D(V.TEXTURE_2D,0,this.format,this.format,this.type,H),this._mipLevels.push(q)):V.texSubImage2D(V.TEXTURE_2D,q,T,F,this.format,this.type,H)}else if(P.shape&&P.stride&&P.data){if(P.shape.length<2||T+P.shape[1]>this._shape[1]>>>q||F+P.shape[0]>this._shape[0]>>>q||T<0||F<0)throw new Error("gl-texture2d: Texture dimensions are out of bounds");A(V,T,F,q,this.format,this.type,this._mipLevels,P)}else throw new Error("gl-texture2d: Unsupported data type")};function k(P,T){return P.length===3?T[2]===1&&T[1]===P[0]*P[2]&&T[0]===P[2]:T[0]===1&&T[1]===P[0]}function A(P,T,F,q,V,H,X,G){var N=G.dtype,W=G.shape.slice();if(W.length<2||W.length>3)throw new Error("gl-texture2d: Invalid ndarray, must be 2d or 3d");var re=0,ae=0,_e=k(W,G.stride.slice());N==="float32"?re=P.FLOAT:N==="float64"?(re=P.FLOAT,_e=!1,N="float32"):N==="uint8"?re=P.UNSIGNED_BYTE:(re=P.UNSIGNED_BYTE,_e=!1,N="uint8");var Me=1;if(W.length===2)ae=P.LUMINANCE,W=[W[0],W[1],1],G=s(G.data,W,[G.stride[0],G.stride[1],1],G.offset);else if(W.length===3){if(W[2]===1)ae=P.ALPHA;else if(W[2]===2)ae=P.LUMINANCE_ALPHA;else if(W[2]===3)ae=P.RGB;else if(W[2]===4)ae=P.RGBA;else throw new Error("gl-texture2d: Invalid shape for pixel coords");Me=W[2]}else throw new Error("gl-texture2d: Invalid shape for texture");if((ae===P.LUMINANCE||ae===P.ALPHA)&&(V===P.LUMINANCE||V===P.ALPHA)&&(ae=V),ae!==V)throw new Error("gl-texture2d: Incompatible texture format for setPixels");var ke=G.size,ge=X.indexOf(q)<0;if(ge&&X.push(q),re===H&&_e)G.offset===0&&G.data.length===ke?ge?P.texImage2D(P.TEXTURE_2D,q,V,W[0],W[1],0,V,H,G.data):P.texSubImage2D(P.TEXTURE_2D,q,T,F,W[0],W[1],V,H,G.data):ge?P.texImage2D(P.TEXTURE_2D,q,V,W[0],W[1],0,V,H,G.data.subarray(G.offset,G.offset+ke)):P.texSubImage2D(P.TEXTURE_2D,q,T,F,W[0],W[1],V,H,G.data.subarray(G.offset,G.offset+ke));else{var ie;H===P.FLOAT?ie=u.mallocFloat32(ke):ie=u.mallocUint8(ke);var Te=s(ie,W,[W[2],W[2]*W[0],1]);re===P.FLOAT&&H===P.UNSIGNED_BYTE?x(Te,G):l.assign(Te,G),ge?P.texImage2D(P.TEXTURE_2D,q,V,W[0],W[1],0,V,H,ie.subarray(0,ke)):P.texSubImage2D(P.TEXTURE_2D,q,T,F,W[0],W[1],V,H,ie.subarray(0,ke)),H===P.FLOAT?u.freeFloat32(ie):u.freeUint8(ie)}}function L(P){var T=P.createTexture();return P.bindTexture(P.TEXTURE_2D,T),P.texParameteri(P.TEXTURE_2D,P.TEXTURE_MIN_FILTER,P.NEAREST),P.texParameteri(P.TEXTURE_2D,P.TEXTURE_MAG_FILTER,P.NEAREST),P.texParameteri(P.TEXTURE_2D,P.TEXTURE_WRAP_S,P.CLAMP_TO_EDGE),P.texParameteri(P.TEXTURE_2D,P.TEXTURE_WRAP_T,P.CLAMP_TO_EDGE),T}function _(P,T,F,q,V){var H=P.getParameter(P.MAX_TEXTURE_SIZE);if(T<0||T>H||F<0||F>H)throw new Error("gl-texture2d: Invalid texture shape");if(V===P.FLOAT&&!P.getExtension("OES_texture_float"))throw new Error("gl-texture2d: Floating point textures not supported on this platform");var X=L(P);return P.texImage2D(P.TEXTURE_2D,0,q,T,F,0,q,V,null),new g(P,X,T,F,q,V)}function C(P,T,F,q,V,H){var X=L(P);return P.texImage2D(P.TEXTURE_2D,0,V,V,H,T),new g(P,X,F,q,V,H)}function M(P,T){var F=T.dtype,q=T.shape.slice(),V=P.getParameter(P.MAX_TEXTURE_SIZE);if(q[0]<0||q[0]>V||q[1]<0||q[1]>V)throw new Error("gl-texture2d: Invalid texture size");var H=k(q,T.stride.slice()),X=0;F==="float32"?X=P.FLOAT:F==="float64"?(X=P.FLOAT,H=!1,F="float32"):F==="uint8"?X=P.UNSIGNED_BYTE:(X=P.UNSIGNED_BYTE,H=!1,F="uint8");var G=0;if(q.length===2)G=P.LUMINANCE,q=[q[0],q[1],1],T=s(T.data,q,[T.stride[0],T.stride[1],1],T.offset);else if(q.length===3)if(q[2]===1)G=P.ALPHA;else if(q[2]===2)G=P.LUMINANCE_ALPHA;else if(q[2]===3)G=P.RGB;else if(q[2]===4)G=P.RGBA;else throw new Error("gl-texture2d: Invalid shape for pixel coords");else throw new Error("gl-texture2d: Invalid shape for texture");X===P.FLOAT&&!P.getExtension("OES_texture_float")&&(X=P.UNSIGNED_BYTE,H=!1);var N,W,re=T.size;if(H)T.offset===0&&T.data.length===re?N=T.data:N=T.data.subarray(T.offset,T.offset+re);else{var ae=[q[2],q[2]*q[0],1];W=u.malloc(re,F);var _e=s(W,q,ae,0);(F==="float32"||F==="float64")&&X===P.UNSIGNED_BYTE?x(_e,T):l.assign(_e,T),N=W.subarray(0,re)}var Me=L(P);return P.texImage2D(P.TEXTURE_2D,0,G,q[0],q[1],0,G,X,N),H||u.free(W),new g(P,Me,q[0],q[1],G,X)}function p(P){if(arguments.length<=1)throw new Error("gl-texture2d: Missing arguments for texture2d constructor");if(c||d(P),typeof arguments[1]=="number")return _(P,arguments[1],arguments[2],arguments[3]||P.RGBA,arguments[4]||P.UNSIGNED_BYTE);if(Array.isArray(arguments[1]))return _(P,arguments[1][0]|0,arguments[1][1]|0,arguments[2]||P.RGBA,arguments[3]||P.UNSIGNED_BYTE);if(typeof arguments[1]=="object"){var T=arguments[1],F=v(T)?T:T.raw;if(F)return C(P,F,T.width|0,T.height|0,arguments[2]||P.RGBA,arguments[3]||P.UNSIGNED_BYTE);if(T.shape&&T.data&&T.stride)return M(P,T)}throw new Error("gl-texture2d: Invalid arguments for texture2d constructor")}},1433:function(i){"use strict";function a(o,s,l){s?s.bind():o.bindBuffer(o.ELEMENT_ARRAY_BUFFER,null);var u=o.getParameter(o.MAX_VERTEX_ATTRIBS)|0;if(l){if(l.length>u)throw new Error("gl-vao: Too many vertex attributes");for(var c=0;c1?0:Math.acos(x)}},9226:function(i){i.exports=a;function a(o,s){return o[0]=Math.ceil(s[0]),o[1]=Math.ceil(s[1]),o[2]=Math.ceil(s[2]),o}},3126:function(i){i.exports=a;function a(o){var s=new Float32Array(3);return s[0]=o[0],s[1]=o[1],s[2]=o[2],s}},3990:function(i){i.exports=a;function a(o,s){return o[0]=s[0],o[1]=s[1],o[2]=s[2],o}},1091:function(i){i.exports=a;function a(){var o=new Float32Array(3);return o[0]=0,o[1]=0,o[2]=0,o}},5911:function(i){i.exports=a;function a(o,s,l){var u=s[0],c=s[1],f=s[2],h=l[0],d=l[1],v=l[2];return o[0]=c*v-f*d,o[1]=f*h-u*v,o[2]=u*d-c*h,o}},5455:function(i,a,o){i.exports=o(7056)},7056:function(i){i.exports=a;function a(o,s){var l=s[0]-o[0],u=s[1]-o[1],c=s[2]-o[2];return Math.sqrt(l*l+u*u+c*c)}},4008:function(i,a,o){i.exports=o(6690)},6690:function(i){i.exports=a;function a(o,s,l){return o[0]=s[0]/l[0],o[1]=s[1]/l[1],o[2]=s[2]/l[2],o}},244:function(i){i.exports=a;function a(o,s){return o[0]*s[0]+o[1]*s[1]+o[2]*s[2]}},2613:function(i){i.exports=1e-6},9922:function(i,a,o){i.exports=l;var s=o(2613);function l(u,c){var f=u[0],h=u[1],d=u[2],v=c[0],x=c[1],b=c[2];return Math.abs(f-v)<=s*Math.max(1,Math.abs(f),Math.abs(v))&&Math.abs(h-x)<=s*Math.max(1,Math.abs(h),Math.abs(x))&&Math.abs(d-b)<=s*Math.max(1,Math.abs(d),Math.abs(b))}},9265:function(i){i.exports=a;function a(o,s){return o[0]===s[0]&&o[1]===s[1]&&o[2]===s[2]}},2681:function(i){i.exports=a;function a(o,s){return o[0]=Math.floor(s[0]),o[1]=Math.floor(s[1]),o[2]=Math.floor(s[2]),o}},5137:function(i,a,o){i.exports=l;var s=o(1091)();function l(u,c,f,h,d,v){var x,b;for(c||(c=3),f||(f=0),h?b=Math.min(h*c+f,u.length):b=u.length,x=f;x0&&(f=1/Math.sqrt(f),o[0]=s[0]*f,o[1]=s[1]*f,o[2]=s[2]*f),o}},7636:function(i){i.exports=a;function a(o,s){s=s||1;var l=Math.random()*2*Math.PI,u=Math.random()*2-1,c=Math.sqrt(1-u*u)*s;return o[0]=Math.cos(l)*c,o[1]=Math.sin(l)*c,o[2]=u*s,o}},6894:function(i){i.exports=a;function a(o,s,l,u){var c=l[1],f=l[2],h=s[1]-c,d=s[2]-f,v=Math.sin(u),x=Math.cos(u);return o[0]=s[0],o[1]=c+h*x-d*v,o[2]=f+h*v+d*x,o}},109:function(i){i.exports=a;function a(o,s,l,u){var c=l[0],f=l[2],h=s[0]-c,d=s[2]-f,v=Math.sin(u),x=Math.cos(u);return o[0]=c+d*v+h*x,o[1]=s[1],o[2]=f+d*x-h*v,o}},8692:function(i){i.exports=a;function a(o,s,l,u){var c=l[0],f=l[1],h=s[0]-c,d=s[1]-f,v=Math.sin(u),x=Math.cos(u);return o[0]=c+h*x-d*v,o[1]=f+h*v+d*x,o[2]=s[2],o}},2447:function(i){i.exports=a;function a(o,s){return o[0]=Math.round(s[0]),o[1]=Math.round(s[1]),o[2]=Math.round(s[2]),o}},6621:function(i){i.exports=a;function a(o,s,l){return o[0]=s[0]*l,o[1]=s[1]*l,o[2]=s[2]*l,o}},8489:function(i){i.exports=a;function a(o,s,l,u){return o[0]=s[0]+l[0]*u,o[1]=s[1]+l[1]*u,o[2]=s[2]+l[2]*u,o}},1463:function(i){i.exports=a;function a(o,s,l,u){return o[0]=s,o[1]=l,o[2]=u,o}},6141:function(i,a,o){i.exports=o(2953)},5486:function(i,a,o){i.exports=o(3066)},2953:function(i){i.exports=a;function a(o,s){var l=s[0]-o[0],u=s[1]-o[1],c=s[2]-o[2];return l*l+u*u+c*c}},3066:function(i){i.exports=a;function a(o){var s=o[0],l=o[1],u=o[2];return s*s+l*l+u*u}},2229:function(i,a,o){i.exports=o(6843)},6843:function(i){i.exports=a;function a(o,s,l){return o[0]=s[0]-l[0],o[1]=s[1]-l[1],o[2]=s[2]-l[2],o}},492:function(i){i.exports=a;function a(o,s,l){var u=s[0],c=s[1],f=s[2];return o[0]=u*l[0]+c*l[3]+f*l[6],o[1]=u*l[1]+c*l[4]+f*l[7],o[2]=u*l[2]+c*l[5]+f*l[8],o}},5673:function(i){i.exports=a;function a(o,s,l){var u=s[0],c=s[1],f=s[2],h=l[3]*u+l[7]*c+l[11]*f+l[15];return h=h||1,o[0]=(l[0]*u+l[4]*c+l[8]*f+l[12])/h,o[1]=(l[1]*u+l[5]*c+l[9]*f+l[13])/h,o[2]=(l[2]*u+l[6]*c+l[10]*f+l[14])/h,o}},264:function(i){i.exports=a;function a(o,s,l){var u=s[0],c=s[1],f=s[2],h=l[0],d=l[1],v=l[2],x=l[3],b=x*u+d*f-v*c,g=x*c+v*u-h*f,E=x*f+h*c-d*u,k=-h*u-d*c-v*f;return o[0]=b*x+k*-h+g*-v-E*-d,o[1]=g*x+k*-d+E*-h-b*-v,o[2]=E*x+k*-v+b*-d-g*-h,o}},4361:function(i){i.exports=a;function a(o,s,l){return o[0]=s[0]+l[0],o[1]=s[1]+l[1],o[2]=s[2]+l[2],o[3]=s[3]+l[3],o}},2335:function(i){i.exports=a;function a(o){var s=new Float32Array(4);return s[0]=o[0],s[1]=o[1],s[2]=o[2],s[3]=o[3],s}},2933:function(i){i.exports=a;function a(o,s){return o[0]=s[0],o[1]=s[1],o[2]=s[2],o[3]=s[3],o}},7536:function(i){i.exports=a;function a(){var o=new Float32Array(4);return o[0]=0,o[1]=0,o[2]=0,o[3]=0,o}},4691:function(i){i.exports=a;function a(o,s){var l=s[0]-o[0],u=s[1]-o[1],c=s[2]-o[2],f=s[3]-o[3];return Math.sqrt(l*l+u*u+c*c+f*f)}},1373:function(i){i.exports=a;function a(o,s,l){return o[0]=s[0]/l[0],o[1]=s[1]/l[1],o[2]=s[2]/l[2],o[3]=s[3]/l[3],o}},3750:function(i){i.exports=a;function a(o,s){return o[0]*s[0]+o[1]*s[1]+o[2]*s[2]+o[3]*s[3]}},3390:function(i){i.exports=a;function a(o,s,l,u){var c=new Float32Array(4);return c[0]=o,c[1]=s,c[2]=l,c[3]=u,c}},9970:function(i,a,o){i.exports={create:o(7536),clone:o(2335),fromValues:o(3390),copy:o(2933),set:o(4578),add:o(4361),subtract:o(6860),multiply:o(3576),divide:o(1373),min:o(2334),max:o(160),scale:o(9288),scaleAndAdd:o(4844),distance:o(4691),squaredDistance:o(7960),length:o(6808),squaredLength:o(483),negate:o(1498),inverse:o(4494),normalize:o(5177),dot:o(3750),lerp:o(2573),random:o(9131),transformMat4:o(5352),transformQuat:o(4041)}},4494:function(i){i.exports=a;function a(o,s){return o[0]=1/s[0],o[1]=1/s[1],o[2]=1/s[2],o[3]=1/s[3],o}},6808:function(i){i.exports=a;function a(o){var s=o[0],l=o[1],u=o[2],c=o[3];return Math.sqrt(s*s+l*l+u*u+c*c)}},2573:function(i){i.exports=a;function a(o,s,l,u){var c=s[0],f=s[1],h=s[2],d=s[3];return o[0]=c+u*(l[0]-c),o[1]=f+u*(l[1]-f),o[2]=h+u*(l[2]-h),o[3]=d+u*(l[3]-d),o}},160:function(i){i.exports=a;function a(o,s,l){return o[0]=Math.max(s[0],l[0]),o[1]=Math.max(s[1],l[1]),o[2]=Math.max(s[2],l[2]),o[3]=Math.max(s[3],l[3]),o}},2334:function(i){i.exports=a;function a(o,s,l){return o[0]=Math.min(s[0],l[0]),o[1]=Math.min(s[1],l[1]),o[2]=Math.min(s[2],l[2]),o[3]=Math.min(s[3],l[3]),o}},3576:function(i){i.exports=a;function a(o,s,l){return o[0]=s[0]*l[0],o[1]=s[1]*l[1],o[2]=s[2]*l[2],o[3]=s[3]*l[3],o}},1498:function(i){i.exports=a;function a(o,s){return o[0]=-s[0],o[1]=-s[1],o[2]=-s[2],o[3]=-s[3],o}},5177:function(i){i.exports=a;function a(o,s){var l=s[0],u=s[1],c=s[2],f=s[3],h=l*l+u*u+c*c+f*f;return h>0&&(h=1/Math.sqrt(h),o[0]=l*h,o[1]=u*h,o[2]=c*h,o[3]=f*h),o}},9131:function(i,a,o){var s=o(5177),l=o(9288);i.exports=u;function u(c,f){return f=f||1,c[0]=Math.random(),c[1]=Math.random(),c[2]=Math.random(),c[3]=Math.random(),s(c,c),l(c,c,f),c}},9288:function(i){i.exports=a;function a(o,s,l){return o[0]=s[0]*l,o[1]=s[1]*l,o[2]=s[2]*l,o[3]=s[3]*l,o}},4844:function(i){i.exports=a;function a(o,s,l,u){return o[0]=s[0]+l[0]*u,o[1]=s[1]+l[1]*u,o[2]=s[2]+l[2]*u,o[3]=s[3]+l[3]*u,o}},4578:function(i){i.exports=a;function a(o,s,l,u,c){return o[0]=s,o[1]=l,o[2]=u,o[3]=c,o}},7960:function(i){i.exports=a;function a(o,s){var l=s[0]-o[0],u=s[1]-o[1],c=s[2]-o[2],f=s[3]-o[3];return l*l+u*u+c*c+f*f}},483:function(i){i.exports=a;function a(o){var s=o[0],l=o[1],u=o[2],c=o[3];return s*s+l*l+u*u+c*c}},6860:function(i){i.exports=a;function a(o,s,l){return o[0]=s[0]-l[0],o[1]=s[1]-l[1],o[2]=s[2]-l[2],o[3]=s[3]-l[3],o}},5352:function(i){i.exports=a;function a(o,s,l){var u=s[0],c=s[1],f=s[2],h=s[3];return o[0]=l[0]*u+l[4]*c+l[8]*f+l[12]*h,o[1]=l[1]*u+l[5]*c+l[9]*f+l[13]*h,o[2]=l[2]*u+l[6]*c+l[10]*f+l[14]*h,o[3]=l[3]*u+l[7]*c+l[11]*f+l[15]*h,o}},4041:function(i){i.exports=a;function a(o,s,l){var u=s[0],c=s[1],f=s[2],h=l[0],d=l[1],v=l[2],x=l[3],b=x*u+d*f-v*c,g=x*c+v*u-h*f,E=x*f+h*c-d*u,k=-h*u-d*c-v*f;return o[0]=b*x+k*-h+g*-v-E*-d,o[1]=g*x+k*-d+E*-h-b*-v,o[2]=E*x+k*-v+b*-d-g*-h,o[3]=s[3],o}},1848:function(i,a,o){var s=o(4905),l=o(6468);i.exports=u;function u(c){for(var f=Array.isArray(c)?c:s(c),h=0;h0)continue;Lt=Ke.slice(0,1).join("")}return Re(Lt),ke+=Lt.length,N=N.slice(Lt.length),N.length}while(!0)}function Ct(){return/[^a-fA-F0-9]/.test(X)?(Re(N.join("")),H=h,q):(N.push(X),G=X,q+1)}function Yt(){return X==="."||/[eE]/.test(X)?(N.push(X),H=k,G=X,q+1):X==="x"&&N.length===1&&N[0]==="0"?(H=p,N.push(X),G=X,q+1):/[^\d]/.test(X)?(Re(N.join("")),H=h,q):(N.push(X),G=X,q+1)}function xr(){return X==="f"&&(N.push(X),G=X,q+=1),/[eE]/.test(X)||(X==="-"||X==="+")&&/[eE]/.test(G)?(N.push(X),G=X,q+1):/[^\d]/.test(X)?(Re(N.join("")),H=h,q):(N.push(X),G=X,q+1)}function er(){if(/[^\d\w_]/.test(X)){var Ke=N.join("");return me[Ke]?H=_:Ce[Ke]?H=L:H=A,Re(N.join("")),H=h,q}return N.push(X),G=X,q+1}}},3508:function(i,a,o){var s=o(6852);s=s.slice().filter(function(l){return!/^(gl\_|texture)/.test(l)}),i.exports=s.concat(["gl_VertexID","gl_InstanceID","gl_Position","gl_PointSize","gl_FragCoord","gl_FrontFacing","gl_FragDepth","gl_PointCoord","gl_MaxVertexAttribs","gl_MaxVertexUniformVectors","gl_MaxVertexOutputVectors","gl_MaxFragmentInputVectors","gl_MaxVertexTextureImageUnits","gl_MaxCombinedTextureImageUnits","gl_MaxTextureImageUnits","gl_MaxFragmentUniformVectors","gl_MaxDrawBuffers","gl_MinProgramTexelOffset","gl_MaxProgramTexelOffset","gl_DepthRangeParameters","gl_DepthRange","trunc","round","roundEven","isnan","isinf","floatBitsToInt","floatBitsToUint","intBitsToFloat","uintBitsToFloat","packSnorm2x16","unpackSnorm2x16","packUnorm2x16","unpackUnorm2x16","packHalf2x16","unpackHalf2x16","outerProduct","transpose","determinant","inverse","texture","textureSize","textureProj","textureLod","textureOffset","texelFetch","texelFetchOffset","textureProjOffset","textureLodOffset","textureProjLod","textureProjLodOffset","textureGrad","textureGradOffset","textureProjGrad","textureProjGradOffset"])},6852:function(i){i.exports=["abs","acos","all","any","asin","atan","ceil","clamp","cos","cross","dFdx","dFdy","degrees","distance","dot","equal","exp","exp2","faceforward","floor","fract","gl_BackColor","gl_BackLightModelProduct","gl_BackLightProduct","gl_BackMaterial","gl_BackSecondaryColor","gl_ClipPlane","gl_ClipVertex","gl_Color","gl_DepthRange","gl_DepthRangeParameters","gl_EyePlaneQ","gl_EyePlaneR","gl_EyePlaneS","gl_EyePlaneT","gl_Fog","gl_FogCoord","gl_FogFragCoord","gl_FogParameters","gl_FragColor","gl_FragCoord","gl_FragData","gl_FragDepth","gl_FragDepthEXT","gl_FrontColor","gl_FrontFacing","gl_FrontLightModelProduct","gl_FrontLightProduct","gl_FrontMaterial","gl_FrontSecondaryColor","gl_LightModel","gl_LightModelParameters","gl_LightModelProducts","gl_LightProducts","gl_LightSource","gl_LightSourceParameters","gl_MaterialParameters","gl_MaxClipPlanes","gl_MaxCombinedTextureImageUnits","gl_MaxDrawBuffers","gl_MaxFragmentUniformComponents","gl_MaxLights","gl_MaxTextureCoords","gl_MaxTextureImageUnits","gl_MaxTextureUnits","gl_MaxVaryingFloats","gl_MaxVertexAttribs","gl_MaxVertexTextureImageUnits","gl_MaxVertexUniformComponents","gl_ModelViewMatrix","gl_ModelViewMatrixInverse","gl_ModelViewMatrixInverseTranspose","gl_ModelViewMatrixTranspose","gl_ModelViewProjectionMatrix","gl_ModelViewProjectionMatrixInverse","gl_ModelViewProjectionMatrixInverseTranspose","gl_ModelViewProjectionMatrixTranspose","gl_MultiTexCoord0","gl_MultiTexCoord1","gl_MultiTexCoord2","gl_MultiTexCoord3","gl_MultiTexCoord4","gl_MultiTexCoord5","gl_MultiTexCoord6","gl_MultiTexCoord7","gl_Normal","gl_NormalMatrix","gl_NormalScale","gl_ObjectPlaneQ","gl_ObjectPlaneR","gl_ObjectPlaneS","gl_ObjectPlaneT","gl_Point","gl_PointCoord","gl_PointParameters","gl_PointSize","gl_Position","gl_ProjectionMatrix","gl_ProjectionMatrixInverse","gl_ProjectionMatrixInverseTranspose","gl_ProjectionMatrixTranspose","gl_SecondaryColor","gl_TexCoord","gl_TextureEnvColor","gl_TextureMatrix","gl_TextureMatrixInverse","gl_TextureMatrixInverseTranspose","gl_TextureMatrixTranspose","gl_Vertex","greaterThan","greaterThanEqual","inversesqrt","length","lessThan","lessThanEqual","log","log2","matrixCompMult","max","min","mix","mod","normalize","not","notEqual","pow","radians","reflect","refract","sign","sin","smoothstep","sqrt","step","tan","texture2D","texture2DLod","texture2DProj","texture2DProjLod","textureCube","textureCubeLod","texture2DLodEXT","texture2DProjLodEXT","textureCubeLodEXT","texture2DGradEXT","texture2DProjGradEXT","textureCubeGradEXT"]},7932:function(i,a,o){var s=o(620);i.exports=s.slice().concat(["layout","centroid","smooth","case","mat2x2","mat2x3","mat2x4","mat3x2","mat3x3","mat3x4","mat4x2","mat4x3","mat4x4","uvec2","uvec3","uvec4","samplerCubeShadow","sampler2DArray","sampler2DArrayShadow","isampler2D","isampler3D","isamplerCube","isampler2DArray","usampler2D","usampler3D","usamplerCube","usampler2DArray","coherent","restrict","readonly","writeonly","resource","atomic_uint","noperspective","patch","sample","subroutine","common","partition","active","filter","image1D","image2D","image3D","imageCube","iimage1D","iimage2D","iimage3D","iimageCube","uimage1D","uimage2D","uimage3D","uimageCube","image1DArray","image2DArray","iimage1DArray","iimage2DArray","uimage1DArray","uimage2DArray","image1DShadow","image2DShadow","image1DArrayShadow","image2DArrayShadow","imageBuffer","iimageBuffer","uimageBuffer","sampler1DArray","sampler1DArrayShadow","isampler1D","isampler1DArray","usampler1D","usampler1DArray","isampler2DRect","usampler2DRect","samplerBuffer","isamplerBuffer","usamplerBuffer","sampler2DMS","isampler2DMS","usampler2DMS","sampler2DMSArray","isampler2DMSArray","usampler2DMSArray"])},620:function(i){i.exports=["precision","highp","mediump","lowp","attribute","const","uniform","varying","break","continue","do","for","while","if","else","in","out","inout","float","int","uint","void","bool","true","false","discard","return","mat2","mat3","mat4","vec2","vec3","vec4","ivec2","ivec3","ivec4","bvec2","bvec3","bvec4","sampler1D","sampler2D","sampler3D","samplerCube","sampler1DShadow","sampler2DShadow","struct","asm","class","union","enum","typedef","template","this","packed","goto","switch","default","inline","noinline","volatile","public","static","extern","external","interface","long","short","double","half","fixed","unsigned","input","output","hvec2","hvec3","hvec4","dvec2","dvec3","dvec4","fvec2","fvec3","fvec4","sampler2DRect","sampler3DRect","sampler2DRectShadow","sizeof","cast","namespace","using"]},7827:function(i){i.exports=["<<=",">>=","++","--","<<",">>","<=",">=","==","!=","&&","||","+=","-=","*=","/=","%=","&=","^^","^=","|=","(",")","[","]",".","!","~","*","/","%","+","-","<",">","&","^","|","?",":","=",",",";","{","}"]},4905:function(i,a,o){var s=o(5874);i.exports=l;function l(u,c){var f=s(c),h=[];return h=h.concat(f(u)),h=h.concat(f(null)),h}},3236:function(i){i.exports=function(a){typeof a=="string"&&(a=[a]);for(var o=[].slice.call(arguments,1),s=[],l=0;l>1,b=-7,g=l?c-1:0,E=l?-1:1,k=o[s+g];for(g+=E,f=k&(1<<-b)-1,k>>=-b,b+=d;b>0;f=f*256+o[s+g],g+=E,b-=8);for(h=f&(1<<-b)-1,f>>=-b,b+=u;b>0;h=h*256+o[s+g],g+=E,b-=8);if(f===0)f=1-x;else{if(f===v)return h?NaN:(k?-1:1)*(1/0);h=h+Math.pow(2,u),f=f-x}return(k?-1:1)*h*Math.pow(2,f-u)},a.write=function(o,s,l,u,c,f){var h,d,v,x=f*8-c-1,b=(1<>1,E=c===23?Math.pow(2,-24)-Math.pow(2,-77):0,k=u?0:f-1,A=u?1:-1,L=s<0||s===0&&1/s<0?1:0;for(s=Math.abs(s),isNaN(s)||s===1/0?(d=isNaN(s)?1:0,h=b):(h=Math.floor(Math.log(s)/Math.LN2),s*(v=Math.pow(2,-h))<1&&(h--,v*=2),h+g>=1?s+=E/v:s+=E*Math.pow(2,1-g),s*v>=2&&(h++,v/=2),h+g>=b?(d=0,h=b):h+g>=1?(d=(s*v-1)*Math.pow(2,c),h=h+g):(d=s*Math.pow(2,g-1)*Math.pow(2,c),h=0));c>=8;o[l+k]=d&255,k+=A,d/=256,c-=8);for(h=h<0;o[l+k]=h&255,k+=A,h/=256,x-=8);o[l+k-A]|=L*128}},8954:function(i,a,o){"use strict";i.exports=g;var s=o(3250),l=o(6803).Fw;function u(E,k,A){this.vertices=E,this.adjacent=k,this.boundary=A,this.lastVisited=-1}u.prototype.flip=function(){var E=this.vertices[0];this.vertices[0]=this.vertices[1],this.vertices[1]=E;var k=this.adjacent[0];this.adjacent[0]=this.adjacent[1],this.adjacent[1]=k};function c(E,k,A){this.vertices=E,this.cell=k,this.index=A}function f(E,k){return l(E.vertices,k.vertices)}function h(E){return function(){var k=this.tuple;return E.apply(this,k)}}function d(E){var k=s[E+1];return k||(k=s),h(k)}var v=[];function x(E,k,A){this.dimension=E,this.vertices=k,this.simplices=A,this.interior=A.filter(function(C){return!C.boundary}),this.tuple=new Array(E+1);for(var L=0;L<=E;++L)this.tuple[L]=this.vertices[L];var _=v[E];_||(_=v[E]=d(E)),this.orient=_}var b=x.prototype;b.handleBoundaryDegeneracy=function(E,k){var A=this.dimension,L=this.vertices.length-1,_=this.tuple,C=this.vertices,M=[E];for(E.lastVisited=-L;M.length>0;){E=M.pop();for(var p=E.adjacent,P=0;P<=A;++P){var T=p[P];if(!(!T.boundary||T.lastVisited<=-L)){for(var F=T.vertices,q=0;q<=A;++q){var V=F[q];V<0?_[q]=k:_[q]=C[V]}var H=this.orient();if(H>0)return T;T.lastVisited=-L,H===0&&M.push(T)}}}return null},b.walk=function(E,k){var A=this.vertices.length-1,L=this.dimension,_=this.vertices,C=this.tuple,M=k?this.interior.length*Math.random()|0:this.interior.length-1,p=this.interior[M];e:for(;!p.boundary;){for(var P=p.vertices,T=p.adjacent,F=0;F<=L;++F)C[F]=_[P[F]];p.lastVisited=A;for(var F=0;F<=L;++F){var q=T[F];if(!(q.lastVisited>=A)){var V=C[F];C[F]=E;var H=this.orient();if(C[F]=V,H<0){p=q;continue e}else q.boundary?q.lastVisited=-A:q.lastVisited=A}}return}return p},b.addPeaks=function(E,k){var A=this.vertices.length-1,L=this.dimension,_=this.vertices,C=this.tuple,M=this.interior,p=this.simplices,P=[k];k.lastVisited=A,k.vertices[k.vertices.indexOf(-1)]=A,k.boundary=!1,M.push(k);for(var T=[];P.length>0;){var k=P.pop(),F=k.vertices,q=k.adjacent,V=F.indexOf(A);if(!(V<0)){for(var H=0;H<=L;++H)if(H!==V){var X=q[H];if(!(!X.boundary||X.lastVisited>=A)){var G=X.vertices;if(X.lastVisited!==-A){for(var N=0,W=0;W<=L;++W)G[W]<0?(N=W,C[W]=E):C[W]=_[G[W]];var re=this.orient();if(re>0){G[N]=A,X.boundary=!1,M.push(X),P.push(X),X.lastVisited=A;continue}else X.lastVisited=-A}var ae=X.adjacent,_e=F.slice(),Me=q.slice(),ke=new u(_e,Me,!0);p.push(ke);var ge=ae.indexOf(k);if(!(ge<0)){ae[ge]=ke,Me[V]=X,_e[H]=-1,Me[H]=k,q[H]=ke,ke.flip();for(var W=0;W<=L;++W){var ie=_e[W];if(!(ie<0||ie===A)){for(var Te=new Array(L-1),Ee=0,Ae=0;Ae<=L;++Ae){var ze=_e[Ae];ze<0||Ae===W||(Te[Ee++]=ze)}T.push(new c(Te,ke,W))}}}}}}}T.sort(f);for(var H=0;H+1=0?M[P++]=p[F]:T=F&1;if(T===(E&1)){var q=M[0];M[0]=M[1],M[1]=q}k.push(M)}}return k};function g(E,k){var A=E.length;if(A===0)throw new Error("Must have at least d+1 points");var L=E[0].length;if(A<=L)throw new Error("Must input at least d+1 points");var _=E.slice(0,L+1),C=s.apply(void 0,_);if(C===0)throw new Error("Input not in general position");for(var M=new Array(L+1),p=0;p<=L;++p)M[p]=p;C<0&&(M[0]=1,M[1]=0);for(var P=new u(M,new Array(L+1),!1),T=P.adjacent,F=new Array(L+2),p=0;p<=L;++p){for(var q=M.slice(),V=0;V<=L;++V)V===p&&(q[V]=-1);var H=q[0];q[0]=q[1],q[1]=H;var X=new u(q,new Array(L+1),!0);T[p]=X,F[p]=X}F[L+1]=P;for(var p=0;p<=L;++p)for(var q=T[p].vertices,G=T[p].adjacent,V=0;V<=L;++V){var N=q[V];if(N<0){G[V]=P;continue}for(var W=0;W<=L;++W)T[W].vertices.indexOf(N)<0&&(G[V]=T[W])}for(var re=new x(L,_,F),ae=!!k,p=L+1;p3*(F+1)?x(this,T):this.left.insert(T):this.left=C([T]);else if(T[0]>this.mid)this.right?4*(this.right.count+1)>3*(F+1)?x(this,T):this.right.insert(T):this.right=C([T]);else{var q=s.ge(this.leftPoints,T,L),V=s.ge(this.rightPoints,T,_);this.leftPoints.splice(q,0,T),this.rightPoints.splice(V,0,T)}},h.remove=function(T){var F=this.count-this.leftPoints;if(T[1]3*(F-1))return b(this,T);var V=this.left.remove(T);return V===c?(this.left=null,this.count-=1,u):(V===u&&(this.count-=1),V)}else if(T[0]>this.mid){if(!this.right)return l;var H=this.left?this.left.count:0;if(4*H>3*(F-1))return b(this,T);var V=this.right.remove(T);return V===c?(this.right=null,this.count-=1,u):(V===u&&(this.count-=1),V)}else{if(this.count===1)return this.leftPoints[0]===T?c:l;if(this.leftPoints.length===1&&this.leftPoints[0]===T){if(this.left&&this.right){for(var X=this,G=this.left;G.right;)X=G,G=G.right;if(X===this)G.right=this.right;else{var N=this.left,V=this.right;X.count-=G.count,X.right=G.left,G.left=N,G.right=V}d(this,G),this.count=(this.left?this.left.count:0)+(this.right?this.right.count:0)+this.leftPoints.length}else this.left?d(this,this.left):d(this,this.right);return u}for(var N=s.ge(this.leftPoints,T,L);N=0&&T[V][1]>=F;--V){var H=q(T[V]);if(H)return H}}function k(T,F){for(var q=0;qthis.mid){if(this.right){var q=this.right.queryPoint(T,F);if(q)return q}return E(this.rightPoints,T,F)}else return k(this.leftPoints,F)},h.queryInterval=function(T,F,q){if(Tthis.mid&&this.right){var V=this.right.queryInterval(T,F,q);if(V)return V}return Fthis.mid?E(this.rightPoints,T,q):k(this.leftPoints,q)};function A(T,F){return T-F}function L(T,F){var q=T[0]-F[0];return q||T[1]-F[1]}function _(T,F){var q=T[1]-F[1];return q||T[0]-F[0]}function C(T){if(T.length===0)return null;for(var F=[],q=0;q>1],H=[],X=[],G=[],q=0;q13)&&s!==32&&s!==133&&s!==160&&s!==5760&&s!==6158&&(s<8192||s>8205)&&s!==8232&&s!==8233&&s!==8239&&s!==8287&&s!==8288&&s!==12288&&s!==65279)return!1;return!0}},395:function(i){function a(o,s,l){return o*(1-l)+s*l}i.exports=a},2652:function(i,a,o){var s=o(4335),l=o(6864),u=o(1903),c=o(9921),f=o(7608),h=o(5665),d={length:o(1387),normalize:o(3536),dot:o(244),cross:o(5911)},v=l(),x=l(),b=[0,0,0,0],g=[[0,0,0],[0,0,0],[0,0,0]],E=[0,0,0];i.exports=function(C,M,p,P,T,F){if(M||(M=[0,0,0]),p||(p=[0,0,0]),P||(P=[0,0,0]),T||(T=[0,0,0,1]),F||(F=[0,0,0,1]),!s(v,C)||(u(x,v),x[3]=0,x[7]=0,x[11]=0,x[15]=1,Math.abs(c(x)<1e-8)))return!1;var q=v[3],V=v[7],H=v[11],X=v[12],G=v[13],N=v[14],W=v[15];if(q!==0||V!==0||H!==0){b[0]=q,b[1]=V,b[2]=H,b[3]=W;var re=f(x,x);if(!re)return!1;h(x,x),k(T,b,x)}else T[0]=T[1]=T[2]=0,T[3]=1;if(M[0]=X,M[1]=G,M[2]=N,A(g,v),p[0]=d.length(g[0]),d.normalize(g[0],g[0]),P[0]=d.dot(g[0],g[1]),L(g[1],g[1],g[0],1,-P[0]),p[1]=d.length(g[1]),d.normalize(g[1],g[1]),P[0]/=p[1],P[1]=d.dot(g[0],g[2]),L(g[2],g[2],g[0],1,-P[1]),P[2]=d.dot(g[1],g[2]),L(g[2],g[2],g[1],1,-P[2]),p[2]=d.length(g[2]),d.normalize(g[2],g[2]),P[1]/=p[2],P[2]/=p[2],d.cross(E,g[1],g[2]),d.dot(g[0],E)<0)for(var ae=0;ae<3;ae++)p[ae]*=-1,g[ae][0]*=-1,g[ae][1]*=-1,g[ae][2]*=-1;return F[0]=.5*Math.sqrt(Math.max(1+g[0][0]-g[1][1]-g[2][2],0)),F[1]=.5*Math.sqrt(Math.max(1-g[0][0]+g[1][1]-g[2][2],0)),F[2]=.5*Math.sqrt(Math.max(1-g[0][0]-g[1][1]+g[2][2],0)),F[3]=.5*Math.sqrt(Math.max(1+g[0][0]+g[1][1]+g[2][2],0)),g[2][1]>g[1][2]&&(F[0]=-F[0]),g[0][2]>g[2][0]&&(F[1]=-F[1]),g[1][0]>g[0][1]&&(F[2]=-F[2]),!0};function k(_,C,M){var p=C[0],P=C[1],T=C[2],F=C[3];return _[0]=M[0]*p+M[4]*P+M[8]*T+M[12]*F,_[1]=M[1]*p+M[5]*P+M[9]*T+M[13]*F,_[2]=M[2]*p+M[6]*P+M[10]*T+M[14]*F,_[3]=M[3]*p+M[7]*P+M[11]*T+M[15]*F,_}function A(_,C){_[0][0]=C[0],_[0][1]=C[1],_[0][2]=C[2],_[1][0]=C[4],_[1][1]=C[5],_[1][2]=C[6],_[2][0]=C[8],_[2][1]=C[9],_[2][2]=C[10]}function L(_,C,M,p,P){_[0]=C[0]*p+M[0]*P,_[1]=C[1]*p+M[1]*P,_[2]=C[2]*p+M[2]*P}},4335:function(i){i.exports=function(o,s){var l=s[15];if(l===0)return!1;for(var u=1/l,c=0;c<16;c++)o[c]=s[c]*u;return!0}},7442:function(i,a,o){var s=o(6658),l=o(7182),u=o(2652),c=o(9921),f=o(8648),h=b(),d=b(),v=b();i.exports=x;function x(k,A,L,_){if(c(A)===0||c(L)===0)return!1;var C=u(A,h.translate,h.scale,h.skew,h.perspective,h.quaternion),M=u(L,d.translate,d.scale,d.skew,d.perspective,d.quaternion);return!C||!M?!1:(s(v.translate,h.translate,d.translate,_),s(v.skew,h.skew,d.skew,_),s(v.scale,h.scale,d.scale,_),s(v.perspective,h.perspective,d.perspective,_),f(v.quaternion,h.quaternion,d.quaternion,_),l(k,v.translate,v.scale,v.skew,v.perspective,v.quaternion),!0)}function b(){return{translate:g(),scale:g(1),skew:g(),perspective:E(),quaternion:E()}}function g(k){return[k||0,k||0,k||0]}function E(){return[0,0,0,1]}},7182:function(i,a,o){var s={identity:o(7894),translate:o(7656),multiply:o(6760),create:o(6864),scale:o(2504),fromRotationTranslation:o(6743)},l=s.create(),u=s.create();i.exports=function(f,h,d,v,x,b){return s.identity(f),s.fromRotationTranslation(f,b,h),f[3]=x[0],f[7]=x[1],f[11]=x[2],f[15]=x[3],s.identity(u),v[2]!==0&&(u[9]=v[2],s.multiply(f,f,u)),v[1]!==0&&(u[9]=0,u[8]=v[1],s.multiply(f,f,u)),v[0]!==0&&(u[8]=0,u[4]=v[0],s.multiply(f,f,u)),s.scale(f,f,d),f}},1811:function(i,a,o){"use strict";var s=o(2478),l=o(7442),u=o(7608),c=o(5567),f=o(2408),h=o(7089),d=o(6582),v=o(7656),x=o(2504),b=o(3536),g=[0,0,0];i.exports=L;function E(_){this._components=_.slice(),this._time=[0],this.prevMatrix=_.slice(),this.nextMatrix=_.slice(),this.computedMatrix=_.slice(),this.computedInverse=_.slice(),this.computedEye=[0,0,0],this.computedUp=[0,0,0],this.computedCenter=[0,0,0],this.computedRadius=[0],this._limits=[-1/0,1/0]}var k=E.prototype;k.recalcMatrix=function(_){var C=this._time,M=s.le(C,_),p=this.computedMatrix;if(!(M<0)){var P=this._components;if(M===C.length-1)for(var T=16*M,F=0;F<16;++F)p[F]=P[T++];else{for(var q=C[M+1]-C[M],T=16*M,V=this.prevMatrix,H=!0,F=0;F<16;++F)V[F]=P[T++];for(var X=this.nextMatrix,F=0;F<16;++F)X[F]=P[T++],H=H&&V[F]===X[F];if(q<1e-6||H)for(var F=0;F<16;++F)p[F]=V[F];else l(p,V,X,(_-C[M])/q)}var G=this.computedUp;G[0]=p[1],G[1]=p[5],G[2]=p[9],b(G,G);var N=this.computedInverse;u(N,p);var W=this.computedEye,re=N[15];W[0]=N[12]/re,W[1]=N[13]/re,W[2]=N[14]/re;for(var ae=this.computedCenter,_e=Math.exp(this.computedRadius[0]),F=0;F<3;++F)ae[F]=W[F]-p[2+4*F]*_e}},k.idle=function(_){if(!(_1&&s(u[d[g-2]],u[d[g-1]],b)<=0;)g-=1,d.pop();for(d.push(x),g=v.length;g>1&&s(u[v[g-2]],u[v[g-1]],b)>=0;)g-=1,v.pop();v.push(x)}for(var E=new Array(v.length+d.length-2),k=0,f=0,A=d.length;f0;--L)E[k++]=v[L];return E}},351:function(i,a,o){"use strict";i.exports=l;var s=o(4687);function l(u,c){c||(c=u,u=window);var f=0,h=0,d=0,v={shift:!1,alt:!1,control:!1,meta:!1},x=!1;function b(T){var F=!1;return"altKey"in T&&(F=F||T.altKey!==v.alt,v.alt=!!T.altKey),"shiftKey"in T&&(F=F||T.shiftKey!==v.shift,v.shift=!!T.shiftKey),"ctrlKey"in T&&(F=F||T.ctrlKey!==v.control,v.control=!!T.ctrlKey),"metaKey"in T&&(F=F||T.metaKey!==v.meta,v.meta=!!T.metaKey),F}function g(T,F){var q=s.x(F),V=s.y(F);"buttons"in F&&(T=F.buttons|0),(T!==f||q!==h||V!==d||b(F))&&(f=T|0,h=q||0,d=V||0,c&&c(f,h,d,v))}function E(T){g(0,T)}function k(){(f||h||d||v.shift||v.alt||v.meta||v.control)&&(h=d=0,f=0,v.shift=v.alt=v.control=v.meta=!1,c&&c(0,0,0,v))}function A(T){b(T)&&c&&c(f,h,d,v)}function L(T){s.buttons(T)===0?g(0,T):g(f,T)}function _(T){g(f|s.buttons(T),T)}function C(T){g(f&~s.buttons(T),T)}function M(){x||(x=!0,u.addEventListener("mousemove",L),u.addEventListener("mousedown",_),u.addEventListener("mouseup",C),u.addEventListener("mouseleave",E),u.addEventListener("mouseenter",E),u.addEventListener("mouseout",E),u.addEventListener("mouseover",E),u.addEventListener("blur",k),u.addEventListener("keyup",A),u.addEventListener("keydown",A),u.addEventListener("keypress",A),u!==window&&(window.addEventListener("blur",k),window.addEventListener("keyup",A),window.addEventListener("keydown",A),window.addEventListener("keypress",A)))}function p(){x&&(x=!1,u.removeEventListener("mousemove",L),u.removeEventListener("mousedown",_),u.removeEventListener("mouseup",C),u.removeEventListener("mouseleave",E),u.removeEventListener("mouseenter",E),u.removeEventListener("mouseout",E),u.removeEventListener("mouseover",E),u.removeEventListener("blur",k),u.removeEventListener("keyup",A),u.removeEventListener("keydown",A),u.removeEventListener("keypress",A),u!==window&&(window.removeEventListener("blur",k),window.removeEventListener("keyup",A),window.removeEventListener("keydown",A),window.removeEventListener("keypress",A)))}M();var P={element:u};return Object.defineProperties(P,{enabled:{get:function(){return x},set:function(T){T?M():p()},enumerable:!0},buttons:{get:function(){return f},enumerable:!0},x:{get:function(){return h},enumerable:!0},y:{get:function(){return d},enumerable:!0},mods:{get:function(){return v},enumerable:!0}}),P}},24:function(i){var a={left:0,top:0};i.exports=o;function o(l,u,c){u=u||l.currentTarget||l.srcElement,Array.isArray(c)||(c=[0,0]);var f=l.clientX||0,h=l.clientY||0,d=s(u);return c[0]=f-d.left,c[1]=h-d.top,c}function s(l){return l===window||l===document||l===document.body?a:l.getBoundingClientRect()}},4687:function(i,a){"use strict";function o(c){if(typeof c=="object"){if("buttons"in c)return c.buttons;if("which"in c){var f=c.which;if(f===2)return 4;if(f===3)return 2;if(f>0)return 1<=0)return 1<0){if(Me=1,ie[Ee++]=v(M[F],k,A,L),F+=re,_>0)for(_e=1,q=M[F],Ae=ie[Ee]=v(q,k,A,L),me=ie[Ee+ze],Ge=ie[Ee+Re],qt=ie[Ee+nt],(Ae!==me||Ae!==Ge||Ae!==qt)&&(H=M[F+V],G=M[F+X],W=M[F+N],h(_e,Me,q,H,G,W,Ae,me,Ge,qt,k,A,L),rt=Te[Ee]=ke++),Ee+=1,F+=re,_e=2;_e<_;++_e)q=M[F],Ae=ie[Ee]=v(q,k,A,L),me=ie[Ee+ze],Ge=ie[Ee+Re],qt=ie[Ee+nt],(Ae!==me||Ae!==Ge||Ae!==qt)&&(H=M[F+V],G=M[F+X],W=M[F+N],h(_e,Me,q,H,G,W,Ae,me,Ge,qt,k,A,L),rt=Te[Ee]=ke++,qt!==me&&d(Te[Ee+ze],rt,W,H,qt,me,k,A,L)),Ee+=1,F+=re;for(F+=ae,Ee=0,ot=ze,ze=Ce,Ce=ot,ot=Re,Re=ce,ce=ot,ot=nt,nt=ct,ct=ot,Me=2;Me0)for(_e=1,q=M[F],Ae=ie[Ee]=v(q,k,A,L),me=ie[Ee+ze],Ge=ie[Ee+Re],qt=ie[Ee+nt],(Ae!==me||Ae!==Ge||Ae!==qt)&&(H=M[F+V],G=M[F+X],W=M[F+N],h(_e,Me,q,H,G,W,Ae,me,Ge,qt,k,A,L),rt=Te[Ee]=ke++,qt!==Ge&&d(Te[Ee+Re],rt,G,W,Ge,qt,k,A,L)),Ee+=1,F+=re,_e=2;_e<_;++_e)q=M[F],Ae=ie[Ee]=v(q,k,A,L),me=ie[Ee+ze],Ge=ie[Ee+Re],qt=ie[Ee+nt],(Ae!==me||Ae!==Ge||Ae!==qt)&&(H=M[F+V],G=M[F+X],W=M[F+N],h(_e,Me,q,H,G,W,Ae,me,Ge,qt,k,A,L),rt=Te[Ee]=ke++,qt!==Ge&&d(Te[Ee+Re],rt,G,W,Ge,qt,k,A,L),qt!==me&&d(Te[Ee+ze],rt,W,H,qt,me,k,A,L)),Ee+=1,F+=re;Me&1&&(Ee=0),ot=ze,ze=Ce,Ce=ot,ot=Re,Re=ce,ce=ot,ot=nt,nt=ct,ct=ot,F+=ae}}b(Te),b(ie)}},"false,1,0":function(h,d,v,x,b){return function(E,k,A,L){var _=E.shape[0]|0,C=E.shape[1]|0,M=E.data,p=E.offset|0,P=E.stride[0]|0,T=E.stride[1]|0,F=p,q,V=-P|0,H=0,X=-T|0,G=0,N=-P-T|0,W=0,re=T|0,ae=P-T*C|0,_e=0,Me=0,ke=0,ge=2*C|0,ie=x(ge),Te=x(ge),Ee=0,Ae=0,ze=-1,Ce=-1,me=0,Re=-C|0,ce=C|0,Ge=0,nt=-C-1|0,ct=C-1|0,qt=0,rt=0,ot=0;for(Me=0;Me0){if(_e=1,ie[Ee++]=v(M[F],k,A,L),F+=re,C>0)for(Me=1,q=M[F],Ae=ie[Ee]=v(q,k,A,L),Ge=ie[Ee+Re],me=ie[Ee+ze],qt=ie[Ee+nt],(Ae!==Ge||Ae!==me||Ae!==qt)&&(H=M[F+V],G=M[F+X],W=M[F+N],h(_e,Me,q,H,G,W,Ae,Ge,me,qt,k,A,L),rt=Te[Ee]=ke++),Ee+=1,F+=re,Me=2;Me0)for(Me=1,q=M[F],Ae=ie[Ee]=v(q,k,A,L),Ge=ie[Ee+Re],me=ie[Ee+ze],qt=ie[Ee+nt],(Ae!==Ge||Ae!==me||Ae!==qt)&&(H=M[F+V],G=M[F+X],W=M[F+N],h(_e,Me,q,H,G,W,Ae,Ge,me,qt,k,A,L),rt=Te[Ee]=ke++,qt!==Ge&&d(Te[Ee+Re],rt,W,H,qt,Ge,k,A,L)),Ee+=1,F+=re,Me=2;Me 0"),typeof f.vertex!="function"&&h("Must specify vertex creation function"),typeof f.cell!="function"&&h("Must specify cell creation function"),typeof f.phase!="function"&&h("Must specify phase function");for(var b=f.getters||[],g=new Array(v),E=0;E=0?g[E]=!0:g[E]=!1;return u(f.vertex,f.cell,f.phase,x,d,g)}},6199:function(i,a,o){"use strict";var s=o(1338),l={zero:function(L,_,C,M){var p=L[0],P=C[0];M|=0;var T=0,F=P;for(T=0;T2&&T[1]>2&&M(P.pick(-1,-1).lo(1,1).hi(T[0]-2,T[1]-2),p.pick(-1,-1,0).lo(1,1).hi(T[0]-2,T[1]-2),p.pick(-1,-1,1).lo(1,1).hi(T[0]-2,T[1]-2)),T[1]>2&&(C(P.pick(0,-1).lo(1).hi(T[1]-2),p.pick(0,-1,1).lo(1).hi(T[1]-2)),_(p.pick(0,-1,0).lo(1).hi(T[1]-2))),T[1]>2&&(C(P.pick(T[0]-1,-1).lo(1).hi(T[1]-2),p.pick(T[0]-1,-1,1).lo(1).hi(T[1]-2)),_(p.pick(T[0]-1,-1,0).lo(1).hi(T[1]-2))),T[0]>2&&(C(P.pick(-1,0).lo(1).hi(T[0]-2),p.pick(-1,0,0).lo(1).hi(T[0]-2)),_(p.pick(-1,0,1).lo(1).hi(T[0]-2))),T[0]>2&&(C(P.pick(-1,T[1]-1).lo(1).hi(T[0]-2),p.pick(-1,T[1]-1,0).lo(1).hi(T[0]-2)),_(p.pick(-1,T[1]-1,1).lo(1).hi(T[0]-2))),p.set(0,0,0,0),p.set(0,0,1,0),p.set(T[0]-1,0,0,0),p.set(T[0]-1,0,1,0),p.set(0,T[1]-1,0,0),p.set(0,T[1]-1,1,0),p.set(T[0]-1,T[1]-1,0,0),p.set(T[0]-1,T[1]-1,1,0),p}}function A(L){var _=L.join(),T=v[_];if(T)return T;for(var C=L.length,M=[b,g],p=1;p<=C;++p)M.push(E(p));var P=k,T=P.apply(void 0,M);return v[_]=T,T}i.exports=function(_,C,M){if(Array.isArray(M)||(typeof M=="string"?M=s(C.dimension,M):M=s(C.dimension,"clamp")),C.size===0)return _;if(C.dimension===0)return _.set(0),_;var p=A(M);return p(_,C)}},4317:function(i){"use strict";function a(c,f){var h=Math.floor(f),d=f-h,v=0<=h&&h0;){G<64?(_=G,G=0):(_=64,G-=64);for(var N=v[1]|0;N>0;){N<64?(C=N,N=0):(C=64,N-=64),g=H+G*p+N*P,A=X+G*F+N*q;var W=0,re=0,ae=0,_e=T,Me=p-M*T,ke=P-_*p,ge=V,ie=F-M*V,Te=q-_*F;for(ae=0;ae0;){q<64?(_=q,q=0):(_=64,q-=64);for(var V=v[0]|0;V>0;){V<64?(L=V,V=0):(L=64,V-=64),g=T+q*M+V*C,A=F+q*P+V*p;var H=0,X=0,G=M,N=C-_*M,W=P,re=p-_*P;for(X=0;X0;){X<64?(C=X,X=0):(C=64,X-=64);for(var G=v[0]|0;G>0;){G<64?(L=G,G=0):(L=64,G-=64);for(var N=v[1]|0;N>0;){N<64?(_=N,N=0):(_=64,N-=64),g=V+X*P+G*M+N*p,A=H+X*q+G*T+N*F;var W=0,re=0,ae=0,_e=P,Me=M-C*P,ke=p-L*M,ge=q,ie=T-C*q,Te=F-L*T;for(ae=0;ae<_;++ae){for(re=0;reE;){W=0,re=H-_;t:for(G=0;G_e)break t;re+=T,W+=F}for(W=H,re=H-_,G=0;G>1,N=G-V,W=G+V,re=H,ae=N,_e=G,Me=W,ke=X,ge=k+1,ie=A-1,Te=!0,Ee,Ae,ze,Ce,me,Re,ce,Ge,nt,ct=0,qt=0,rt=0,ot,Rt,kt,Ct,Yt,xr,er,Ke,xt,bt,Lt,St,Et,dt,Ht,$t,fr=P,_r=b(fr),Br=b(fr);Rt=C*re,kt=C*ae,$t=_;e:for(ot=0;ot0){Ae=re,re=ae,ae=Ae;break e}if(rt<0)break e;$t+=F}Rt=C*Me,kt=C*ke,$t=_;e:for(ot=0;ot0){Ae=Me,Me=ke,ke=Ae;break e}if(rt<0)break e;$t+=F}Rt=C*re,kt=C*_e,$t=_;e:for(ot=0;ot0){Ae=re,re=_e,_e=Ae;break e}if(rt<0)break e;$t+=F}Rt=C*ae,kt=C*_e,$t=_;e:for(ot=0;ot0){Ae=ae,ae=_e,_e=Ae;break e}if(rt<0)break e;$t+=F}Rt=C*re,kt=C*Me,$t=_;e:for(ot=0;ot0){Ae=re,re=Me,Me=Ae;break e}if(rt<0)break e;$t+=F}Rt=C*_e,kt=C*Me,$t=_;e:for(ot=0;ot0){Ae=_e,_e=Me,Me=Ae;break e}if(rt<0)break e;$t+=F}Rt=C*ae,kt=C*ke,$t=_;e:for(ot=0;ot0){Ae=ae,ae=ke,ke=Ae;break e}if(rt<0)break e;$t+=F}Rt=C*ae,kt=C*_e,$t=_;e:for(ot=0;ot0){Ae=ae,ae=_e,_e=Ae;break e}if(rt<0)break e;$t+=F}Rt=C*Me,kt=C*ke,$t=_;e:for(ot=0;ot0){Ae=Me,Me=ke,ke=Ae;break e}if(rt<0)break e;$t+=F}for(Rt=C*re,kt=C*ae,Ct=C*_e,Yt=C*Me,xr=C*ke,er=C*H,Ke=C*G,xt=C*X,Ht=0,$t=_,ot=0;ot0)ie--;else if(rt<0){for(Rt=C*Re,kt=C*ge,Ct=C*ie,$t=_,ot=0;ot0)for(;;){ce=_+ie*C,Ht=0;e:for(ot=0;ot0){if(--ieX){e:for(;;){for(ce=_+ge*C,Ht=0,$t=_,ot=0;ot1&&E?A(g,E[0],E[1]):A(g)}var d={"uint32,1,0":function(x,b){return function(g){var E=g.data,k=g.offset|0,A=g.shape,L=g.stride,_=L[0]|0,C=A[0]|0,M=L[1]|0,p=A[1]|0,P=M,T=M,F=1;C<=32?x(0,C-1,E,k,_,M,C,p,P,T,F):b(0,C-1,E,k,_,M,C,p,P,T,F)}}};function v(x,b){var g=[b,x].join(","),E=d[g],k=c(x,b),A=h(x,b,k);return E(k,A)}i.exports=v},446:function(i,a,o){"use strict";var s=o(7640),l={};function u(c){var f=c.order,h=c.dtype,d=[f,h],v=d.join(":"),x=l[v];return x||(l[v]=x=s(f,h)),x(c),c}i.exports=u},9618:function(i,a,o){var s=o(7163),l=typeof Float64Array!="undefined";function u(b,g){return b[0]-g[0]}function c(){var b=this.stride,g=new Array(b.length),E;for(E=0;E=0&&(M=_|0,C+=P*M,p-=M),new k(this.data,p,P,C)},A.step=function(_){var C=this.shape[0],M=this.stride[0],p=this.offset,P=0,T=Math.ceil;return typeof _=="number"&&(P=_|0,P<0?(p+=M*(C-1),C=T(-C/P)):C=T(C/P),M*=P),new k(this.data,C,M,p)},A.transpose=function(_){_=_===void 0?0:_|0;var C=this.shape,M=this.stride;return new k(this.data,C[_],M[_],this.offset)},A.pick=function(_){var C=[],M=[],p=this.offset;typeof _=="number"&&_>=0?p=p+this.stride[0]*_|0:(C.push(this.shape[0]),M.push(this.stride[0]));var P=g[C.length+1];return P(this.data,C,M,p)},function(_,C,M,p){return new k(_,C[0],M[0],p)}},2:function(b,g,E){function k(L,_,C,M,p,P){this.data=L,this.shape=[_,C],this.stride=[M,p],this.offset=P|0}var A=k.prototype;return A.dtype=b,A.dimension=2,Object.defineProperty(A,"size",{get:function(){return this.shape[0]*this.shape[1]}}),Object.defineProperty(A,"order",{get:function(){return Math.abs(this.stride[0])>Math.abs(this.stride[1])?[1,0]:[0,1]}}),A.set=function(_,C,M){return b==="generic"?this.data.set(this.offset+this.stride[0]*_+this.stride[1]*C,M):this.data[this.offset+this.stride[0]*_+this.stride[1]*C]=M},A.get=function(_,C){return b==="generic"?this.data.get(this.offset+this.stride[0]*_+this.stride[1]*C):this.data[this.offset+this.stride[0]*_+this.stride[1]*C]},A.index=function(_,C){return this.offset+this.stride[0]*_+this.stride[1]*C},A.hi=function(_,C){return new k(this.data,typeof _!="number"||_<0?this.shape[0]:_|0,typeof C!="number"||C<0?this.shape[1]:C|0,this.stride[0],this.stride[1],this.offset)},A.lo=function(_,C){var M=this.offset,p=0,P=this.shape[0],T=this.shape[1],F=this.stride[0],q=this.stride[1];return typeof _=="number"&&_>=0&&(p=_|0,M+=F*p,P-=p),typeof C=="number"&&C>=0&&(p=C|0,M+=q*p,T-=p),new k(this.data,P,T,F,q,M)},A.step=function(_,C){var M=this.shape[0],p=this.shape[1],P=this.stride[0],T=this.stride[1],F=this.offset,q=0,V=Math.ceil;return typeof _=="number"&&(q=_|0,q<0?(F+=P*(M-1),M=V(-M/q)):M=V(M/q),P*=q),typeof C=="number"&&(q=C|0,q<0?(F+=T*(p-1),p=V(-p/q)):p=V(p/q),T*=q),new k(this.data,M,p,P,T,F)},A.transpose=function(_,C){_=_===void 0?0:_|0,C=C===void 0?1:C|0;var M=this.shape,p=this.stride;return new k(this.data,M[_],M[C],p[_],p[C],this.offset)},A.pick=function(_,C){var M=[],p=[],P=this.offset;typeof _=="number"&&_>=0?P=P+this.stride[0]*_|0:(M.push(this.shape[0]),p.push(this.stride[0])),typeof C=="number"&&C>=0?P=P+this.stride[1]*C|0:(M.push(this.shape[1]),p.push(this.stride[1]));var T=g[M.length+1];return T(this.data,M,p,P)},function(_,C,M,p){return new k(_,C[0],C[1],M[0],M[1],p)}},3:function(b,g,E){function k(L,_,C,M,p,P,T,F){this.data=L,this.shape=[_,C,M],this.stride=[p,P,T],this.offset=F|0}var A=k.prototype;return A.dtype=b,A.dimension=3,Object.defineProperty(A,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]}}),Object.defineProperty(A,"order",{get:function(){var _=Math.abs(this.stride[0]),C=Math.abs(this.stride[1]),M=Math.abs(this.stride[2]);return _>C?C>M?[2,1,0]:_>M?[1,2,0]:[1,0,2]:_>M?[2,0,1]:M>C?[0,1,2]:[0,2,1]}}),A.set=function(_,C,M,p){return b==="generic"?this.data.set(this.offset+this.stride[0]*_+this.stride[1]*C+this.stride[2]*M,p):this.data[this.offset+this.stride[0]*_+this.stride[1]*C+this.stride[2]*M]=p},A.get=function(_,C,M){return b==="generic"?this.data.get(this.offset+this.stride[0]*_+this.stride[1]*C+this.stride[2]*M):this.data[this.offset+this.stride[0]*_+this.stride[1]*C+this.stride[2]*M]},A.index=function(_,C,M){return this.offset+this.stride[0]*_+this.stride[1]*C+this.stride[2]*M},A.hi=function(_,C,M){return new k(this.data,typeof _!="number"||_<0?this.shape[0]:_|0,typeof C!="number"||C<0?this.shape[1]:C|0,typeof M!="number"||M<0?this.shape[2]:M|0,this.stride[0],this.stride[1],this.stride[2],this.offset)},A.lo=function(_,C,M){var p=this.offset,P=0,T=this.shape[0],F=this.shape[1],q=this.shape[2],V=this.stride[0],H=this.stride[1],X=this.stride[2];return typeof _=="number"&&_>=0&&(P=_|0,p+=V*P,T-=P),typeof C=="number"&&C>=0&&(P=C|0,p+=H*P,F-=P),typeof M=="number"&&M>=0&&(P=M|0,p+=X*P,q-=P),new k(this.data,T,F,q,V,H,X,p)},A.step=function(_,C,M){var p=this.shape[0],P=this.shape[1],T=this.shape[2],F=this.stride[0],q=this.stride[1],V=this.stride[2],H=this.offset,X=0,G=Math.ceil;return typeof _=="number"&&(X=_|0,X<0?(H+=F*(p-1),p=G(-p/X)):p=G(p/X),F*=X),typeof C=="number"&&(X=C|0,X<0?(H+=q*(P-1),P=G(-P/X)):P=G(P/X),q*=X),typeof M=="number"&&(X=M|0,X<0?(H+=V*(T-1),T=G(-T/X)):T=G(T/X),V*=X),new k(this.data,p,P,T,F,q,V,H)},A.transpose=function(_,C,M){_=_===void 0?0:_|0,C=C===void 0?1:C|0,M=M===void 0?2:M|0;var p=this.shape,P=this.stride;return new k(this.data,p[_],p[C],p[M],P[_],P[C],P[M],this.offset)},A.pick=function(_,C,M){var p=[],P=[],T=this.offset;typeof _=="number"&&_>=0?T=T+this.stride[0]*_|0:(p.push(this.shape[0]),P.push(this.stride[0])),typeof C=="number"&&C>=0?T=T+this.stride[1]*C|0:(p.push(this.shape[1]),P.push(this.stride[1])),typeof M=="number"&&M>=0?T=T+this.stride[2]*M|0:(p.push(this.shape[2]),P.push(this.stride[2]));var F=g[p.length+1];return F(this.data,p,P,T)},function(_,C,M,p){return new k(_,C[0],C[1],C[2],M[0],M[1],M[2],p)}},4:function(b,g,E){function k(L,_,C,M,p,P,T,F,q,V){this.data=L,this.shape=[_,C,M,p],this.stride=[P,T,F,q],this.offset=V|0}var A=k.prototype;return A.dtype=b,A.dimension=4,Object.defineProperty(A,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]*this.shape[3]}}),Object.defineProperty(A,"order",{get:E}),A.set=function(_,C,M,p,P){return b==="generic"?this.data.set(this.offset+this.stride[0]*_+this.stride[1]*C+this.stride[2]*M+this.stride[3]*p,P):this.data[this.offset+this.stride[0]*_+this.stride[1]*C+this.stride[2]*M+this.stride[3]*p]=P},A.get=function(_,C,M,p){return b==="generic"?this.data.get(this.offset+this.stride[0]*_+this.stride[1]*C+this.stride[2]*M+this.stride[3]*p):this.data[this.offset+this.stride[0]*_+this.stride[1]*C+this.stride[2]*M+this.stride[3]*p]},A.index=function(_,C,M,p){return this.offset+this.stride[0]*_+this.stride[1]*C+this.stride[2]*M+this.stride[3]*p},A.hi=function(_,C,M,p){return new k(this.data,typeof _!="number"||_<0?this.shape[0]:_|0,typeof C!="number"||C<0?this.shape[1]:C|0,typeof M!="number"||M<0?this.shape[2]:M|0,typeof p!="number"||p<0?this.shape[3]:p|0,this.stride[0],this.stride[1],this.stride[2],this.stride[3],this.offset)},A.lo=function(_,C,M,p){var P=this.offset,T=0,F=this.shape[0],q=this.shape[1],V=this.shape[2],H=this.shape[3],X=this.stride[0],G=this.stride[1],N=this.stride[2],W=this.stride[3];return typeof _=="number"&&_>=0&&(T=_|0,P+=X*T,F-=T),typeof C=="number"&&C>=0&&(T=C|0,P+=G*T,q-=T),typeof M=="number"&&M>=0&&(T=M|0,P+=N*T,V-=T),typeof p=="number"&&p>=0&&(T=p|0,P+=W*T,H-=T),new k(this.data,F,q,V,H,X,G,N,W,P)},A.step=function(_,C,M,p){var P=this.shape[0],T=this.shape[1],F=this.shape[2],q=this.shape[3],V=this.stride[0],H=this.stride[1],X=this.stride[2],G=this.stride[3],N=this.offset,W=0,re=Math.ceil;return typeof _=="number"&&(W=_|0,W<0?(N+=V*(P-1),P=re(-P/W)):P=re(P/W),V*=W),typeof C=="number"&&(W=C|0,W<0?(N+=H*(T-1),T=re(-T/W)):T=re(T/W),H*=W),typeof M=="number"&&(W=M|0,W<0?(N+=X*(F-1),F=re(-F/W)):F=re(F/W),X*=W),typeof p=="number"&&(W=p|0,W<0?(N+=G*(q-1),q=re(-q/W)):q=re(q/W),G*=W),new k(this.data,P,T,F,q,V,H,X,G,N)},A.transpose=function(_,C,M,p){_=_===void 0?0:_|0,C=C===void 0?1:C|0,M=M===void 0?2:M|0,p=p===void 0?3:p|0;var P=this.shape,T=this.stride;return new k(this.data,P[_],P[C],P[M],P[p],T[_],T[C],T[M],T[p],this.offset)},A.pick=function(_,C,M,p){var P=[],T=[],F=this.offset;typeof _=="number"&&_>=0?F=F+this.stride[0]*_|0:(P.push(this.shape[0]),T.push(this.stride[0])),typeof C=="number"&&C>=0?F=F+this.stride[1]*C|0:(P.push(this.shape[1]),T.push(this.stride[1])),typeof M=="number"&&M>=0?F=F+this.stride[2]*M|0:(P.push(this.shape[2]),T.push(this.stride[2])),typeof p=="number"&&p>=0?F=F+this.stride[3]*p|0:(P.push(this.shape[3]),T.push(this.stride[3]));var q=g[P.length+1];return q(this.data,P,T,F)},function(_,C,M,p){return new k(_,C[0],C[1],C[2],C[3],M[0],M[1],M[2],M[3],p)}},5:function(g,E,k){function A(_,C,M,p,P,T,F,q,V,H,X,G){this.data=_,this.shape=[C,M,p,P,T],this.stride=[F,q,V,H,X],this.offset=G|0}var L=A.prototype;return L.dtype=g,L.dimension=5,Object.defineProperty(L,"size",{get:function(){return this.shape[0]*this.shape[1]*this.shape[2]*this.shape[3]*this.shape[4]}}),Object.defineProperty(L,"order",{get:k}),L.set=function(C,M,p,P,T,F){return g==="generic"?this.data.set(this.offset+this.stride[0]*C+this.stride[1]*M+this.stride[2]*p+this.stride[3]*P+this.stride[4]*T,F):this.data[this.offset+this.stride[0]*C+this.stride[1]*M+this.stride[2]*p+this.stride[3]*P+this.stride[4]*T]=F},L.get=function(C,M,p,P,T){return g==="generic"?this.data.get(this.offset+this.stride[0]*C+this.stride[1]*M+this.stride[2]*p+this.stride[3]*P+this.stride[4]*T):this.data[this.offset+this.stride[0]*C+this.stride[1]*M+this.stride[2]*p+this.stride[3]*P+this.stride[4]*T]},L.index=function(C,M,p,P,T){return this.offset+this.stride[0]*C+this.stride[1]*M+this.stride[2]*p+this.stride[3]*P+this.stride[4]*T},L.hi=function(C,M,p,P,T){return new A(this.data,typeof C!="number"||C<0?this.shape[0]:C|0,typeof M!="number"||M<0?this.shape[1]:M|0,typeof p!="number"||p<0?this.shape[2]:p|0,typeof P!="number"||P<0?this.shape[3]:P|0,typeof T!="number"||T<0?this.shape[4]:T|0,this.stride[0],this.stride[1],this.stride[2],this.stride[3],this.stride[4],this.offset)},L.lo=function(C,M,p,P,T){var F=this.offset,q=0,V=this.shape[0],H=this.shape[1],X=this.shape[2],G=this.shape[3],N=this.shape[4],W=this.stride[0],re=this.stride[1],ae=this.stride[2],_e=this.stride[3],Me=this.stride[4];return typeof C=="number"&&C>=0&&(q=C|0,F+=W*q,V-=q),typeof M=="number"&&M>=0&&(q=M|0,F+=re*q,H-=q),typeof p=="number"&&p>=0&&(q=p|0,F+=ae*q,X-=q),typeof P=="number"&&P>=0&&(q=P|0,F+=_e*q,G-=q),typeof T=="number"&&T>=0&&(q=T|0,F+=Me*q,N-=q),new A(this.data,V,H,X,G,N,W,re,ae,_e,Me,F)},L.step=function(C,M,p,P,T){var F=this.shape[0],q=this.shape[1],V=this.shape[2],H=this.shape[3],X=this.shape[4],G=this.stride[0],N=this.stride[1],W=this.stride[2],re=this.stride[3],ae=this.stride[4],_e=this.offset,Me=0,ke=Math.ceil;return typeof C=="number"&&(Me=C|0,Me<0?(_e+=G*(F-1),F=ke(-F/Me)):F=ke(F/Me),G*=Me),typeof M=="number"&&(Me=M|0,Me<0?(_e+=N*(q-1),q=ke(-q/Me)):q=ke(q/Me),N*=Me),typeof p=="number"&&(Me=p|0,Me<0?(_e+=W*(V-1),V=ke(-V/Me)):V=ke(V/Me),W*=Me),typeof P=="number"&&(Me=P|0,Me<0?(_e+=re*(H-1),H=ke(-H/Me)):H=ke(H/Me),re*=Me),typeof T=="number"&&(Me=T|0,Me<0?(_e+=ae*(X-1),X=ke(-X/Me)):X=ke(X/Me),ae*=Me),new A(this.data,F,q,V,H,X,G,N,W,re,ae,_e)},L.transpose=function(C,M,p,P,T){C=C===void 0?0:C|0,M=M===void 0?1:M|0,p=p===void 0?2:p|0,P=P===void 0?3:P|0,T=T===void 0?4:T|0;var F=this.shape,q=this.stride;return new A(this.data,F[C],F[M],F[p],F[P],F[T],q[C],q[M],q[p],q[P],q[T],this.offset)},L.pick=function(C,M,p,P,T){var F=[],q=[],V=this.offset;typeof C=="number"&&C>=0?V=V+this.stride[0]*C|0:(F.push(this.shape[0]),q.push(this.stride[0])),typeof M=="number"&&M>=0?V=V+this.stride[1]*M|0:(F.push(this.shape[1]),q.push(this.stride[1])),typeof p=="number"&&p>=0?V=V+this.stride[2]*p|0:(F.push(this.shape[2]),q.push(this.stride[2])),typeof P=="number"&&P>=0?V=V+this.stride[3]*P|0:(F.push(this.shape[3]),q.push(this.stride[3])),typeof T=="number"&&T>=0?V=V+this.stride[4]*T|0:(F.push(this.shape[4]),q.push(this.stride[4]));var H=E[F.length+1];return H(this.data,F,q,V)},function(C,M,p,P){return new A(C,M[0],M[1],M[2],M[3],M[4],p[0],p[1],p[2],p[3],p[4],P)}}};function h(b,g){var E=g===-1?"T":String(g),k=f[E];return g===-1?k(b):g===0?k(b,v[b][0]):k(b,v[b],c)}function d(b){if(s(b))return"buffer";if(l)switch(Object.prototype.toString.call(b)){case"[object Float64Array]":return"float64";case"[object Float32Array]":return"float32";case"[object Int8Array]":return"int8";case"[object Int16Array]":return"int16";case"[object Int32Array]":return"int32";case"[object Uint8ClampedArray]":return"uint8_clamped";case"[object Uint8Array]":return"uint8";case"[object Uint16Array]":return"uint16";case"[object Uint32Array]":return"uint32";case"[object BigInt64Array]":return"bigint64";case"[object BigUint64Array]":return"biguint64"}return Array.isArray(b)?"array":"generic"}var v={generic:[],buffer:[],array:[],float32:[],float64:[],int8:[],int16:[],int32:[],uint8_clamped:[],uint8:[],uint16:[],uint32:[],bigint64:[],biguint64:[]};function x(b,g,E,k){if(b===void 0){var p=v.array[0];return p([])}else typeof b=="number"&&(b=[b]);g===void 0&&(g=[b.length]);var A=g.length;if(E===void 0){E=new Array(A);for(var L=A-1,_=1;L>=0;--L)E[L]=_,_*=g[L]}if(k===void 0){k=0;for(var L=0;L>>0;i.exports=c;function c(f,h){if(isNaN(f)||isNaN(h))return NaN;if(f===h)return f;if(f===0)return h<0?-l:l;var d=s.hi(f),v=s.lo(f);return h>f==f>0?v===u?(d+=1,v=0):v+=1:v===0?(v=u,d-=1):v-=1,s.pack(v,d)}},8406:function(i,a){var o=1e-6,s=1e-6;a.vertexNormals=function(l,u,c){for(var f=u.length,h=new Array(f),d=c===void 0?o:c,v=0;vd)for(var F=h[g],q=1/Math.sqrt(M*P),T=0;T<3;++T){var V=(T+1)%3,H=(T+2)%3;F[T]+=q*(p[V]*C[H]-p[H]*C[V])}}for(var v=0;vd)for(var q=1/Math.sqrt(X),T=0;T<3;++T)F[T]*=q;else for(var T=0;T<3;++T)F[T]=0}return h},a.faceNormals=function(l,u,c){for(var f=l.length,h=new Array(f),d=c===void 0?s:c,v=0;vd?L=1/Math.sqrt(L):L=0;for(var g=0;g<3;++g)A[g]*=L;h[v]=A}return h}},4081:function(i){"use strict";i.exports=a;function a(o,s,l,u,c,f,h,d,v,x){var b=s+f+x;if(g>0){var g=Math.sqrt(b+1);o[0]=.5*(h-v)/g,o[1]=.5*(d-u)/g,o[2]=.5*(l-f)/g,o[3]=.5*g}else{var E=Math.max(s,f,x),g=Math.sqrt(2*E-b+1);s>=E?(o[0]=.5*g,o[1]=.5*(c+l)/g,o[2]=.5*(d+u)/g,o[3]=.5*(h-v)/g):f>=E?(o[0]=.5*(l+c)/g,o[1]=.5*g,o[2]=.5*(v+h)/g,o[3]=.5*(d-u)/g):(o[0]=.5*(u+d)/g,o[1]=.5*(h+v)/g,o[2]=.5*g,o[3]=.5*(l-c)/g)}return o}},9977:function(i,a,o){"use strict";i.exports=g;var s=o(9215),l=o(6582),u=o(7399),c=o(7608),f=o(4081);function h(E,k,A){return Math.sqrt(Math.pow(E,2)+Math.pow(k,2)+Math.pow(A,2))}function d(E,k,A,L){return Math.sqrt(Math.pow(E,2)+Math.pow(k,2)+Math.pow(A,2)+Math.pow(L,2))}function v(E,k){var A=k[0],L=k[1],_=k[2],C=k[3],M=d(A,L,_,C);M>1e-6?(E[0]=A/M,E[1]=L/M,E[2]=_/M,E[3]=C/M):(E[0]=E[1]=E[2]=0,E[3]=1)}function x(E,k,A){this.radius=s([A]),this.center=s(k),this.rotation=s(E),this.computedRadius=this.radius.curve(0),this.computedCenter=this.center.curve(0),this.computedRotation=this.rotation.curve(0),this.computedUp=[.1,0,0],this.computedEye=[.1,0,0],this.computedMatrix=[.1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],this.recalcMatrix(0)}var b=x.prototype;b.lastT=function(){return Math.max(this.radius.lastT(),this.center.lastT(),this.rotation.lastT())},b.recalcMatrix=function(E){this.radius.curve(E),this.center.curve(E),this.rotation.curve(E);var k=this.computedRotation;v(k,k);var A=this.computedMatrix;u(A,k);var L=this.computedCenter,_=this.computedEye,C=this.computedUp,M=Math.exp(this.computedRadius[0]);_[0]=L[0]+M*A[2],_[1]=L[1]+M*A[6],_[2]=L[2]+M*A[10],C[0]=A[1],C[1]=A[5],C[2]=A[9];for(var p=0;p<3;++p){for(var P=0,T=0;T<3;++T)P+=A[p+4*T]*_[T];A[12+p]=-P}},b.getMatrix=function(E,k){this.recalcMatrix(E);var A=this.computedMatrix;if(k){for(var L=0;L<16;++L)k[L]=A[L];return k}return A},b.idle=function(E){this.center.idle(E),this.radius.idle(E),this.rotation.idle(E)},b.flush=function(E){this.center.flush(E),this.radius.flush(E),this.rotation.flush(E)},b.pan=function(E,k,A,L){k=k||0,A=A||0,L=L||0,this.recalcMatrix(E);var _=this.computedMatrix,C=_[1],M=_[5],p=_[9],P=h(C,M,p);C/=P,M/=P,p/=P;var T=_[0],F=_[4],q=_[8],V=T*C+F*M+q*p;T-=C*V,F-=M*V,q-=p*V;var H=h(T,F,q);T/=H,F/=H,q/=H;var X=_[2],G=_[6],N=_[10],W=X*C+G*M+N*p,re=X*T+G*F+N*q;X-=W*C+re*T,G-=W*M+re*F,N-=W*p+re*q;var ae=h(X,G,N);X/=ae,G/=ae,N/=ae;var _e=T*k+C*A,Me=F*k+M*A,ke=q*k+p*A;this.center.move(E,_e,Me,ke);var ge=Math.exp(this.computedRadius[0]);ge=Math.max(1e-4,ge+L),this.radius.set(E,Math.log(ge))},b.rotate=function(E,k,A,L){this.recalcMatrix(E),k=k||0,A=A||0;var _=this.computedMatrix,C=_[0],M=_[4],p=_[8],P=_[1],T=_[5],F=_[9],q=_[2],V=_[6],H=_[10],X=k*C+A*P,G=k*M+A*T,N=k*p+A*F,W=-(V*N-H*G),re=-(H*X-q*N),ae=-(q*G-V*X),_e=Math.sqrt(Math.max(0,1-Math.pow(W,2)-Math.pow(re,2)-Math.pow(ae,2))),Me=d(W,re,ae,_e);Me>1e-6?(W/=Me,re/=Me,ae/=Me,_e/=Me):(W=re=ae=0,_e=1);var ke=this.computedRotation,ge=ke[0],ie=ke[1],Te=ke[2],Ee=ke[3],Ae=ge*_e+Ee*W+ie*ae-Te*re,ze=ie*_e+Ee*re+Te*W-ge*ae,Ce=Te*_e+Ee*ae+ge*re-ie*W,me=Ee*_e-ge*W-ie*re-Te*ae;if(L){W=q,re=V,ae=H;var Re=Math.sin(L)/h(W,re,ae);W*=Re,re*=Re,ae*=Re,_e=Math.cos(k),Ae=Ae*_e+me*W+ze*ae-Ce*re,ze=ze*_e+me*re+Ce*W-Ae*ae,Ce=Ce*_e+me*ae+Ae*re-ze*W,me=me*_e-Ae*W-ze*re-Ce*ae}var ce=d(Ae,ze,Ce,me);ce>1e-6?(Ae/=ce,ze/=ce,Ce/=ce,me/=ce):(Ae=ze=Ce=0,me=1),this.rotation.set(E,Ae,ze,Ce,me)},b.lookAt=function(E,k,A,L){this.recalcMatrix(E),A=A||this.computedCenter,k=k||this.computedEye,L=L||this.computedUp;var _=this.computedMatrix;l(_,k,A,L);var C=this.computedRotation;f(C,_[0],_[1],_[2],_[4],_[5],_[6],_[8],_[9],_[10]),v(C,C),this.rotation.set(E,C[0],C[1],C[2],C[3]);for(var M=0,p=0;p<3;++p)M+=Math.pow(A[p]-k[p],2);this.radius.set(E,.5*Math.log(Math.max(M,1e-6))),this.center.set(E,A[0],A[1],A[2])},b.translate=function(E,k,A,L){this.center.move(E,k||0,A||0,L||0)},b.setMatrix=function(E,k){var A=this.computedRotation;f(A,k[0],k[1],k[2],k[4],k[5],k[6],k[8],k[9],k[10]),v(A,A),this.rotation.set(E,A[0],A[1],A[2],A[3]);var L=this.computedMatrix;c(L,k);var _=L[15];if(Math.abs(_)>1e-6){var C=L[12]/_,M=L[13]/_,p=L[14]/_;this.recalcMatrix(E);var P=Math.exp(this.computedRadius[0]);this.center.set(E,C-L[2]*P,M-L[6]*P,p-L[10]*P),this.radius.idle(E)}else this.center.idle(E),this.radius.idle(E)},b.setDistance=function(E,k){k>0&&this.radius.set(E,Math.log(k))},b.setDistanceLimits=function(E,k){E>0?E=Math.log(E):E=-1/0,k>0?k=Math.log(k):k=1/0,k=Math.max(k,E),this.radius.bounds[0][0]=E,this.radius.bounds[1][0]=k},b.getDistanceLimits=function(E){var k=this.radius.bounds;return E?(E[0]=Math.exp(k[0][0]),E[1]=Math.exp(k[1][0]),E):[Math.exp(k[0][0]),Math.exp(k[1][0])]},b.toJSON=function(){return this.recalcMatrix(this.lastT()),{center:this.computedCenter.slice(),rotation:this.computedRotation.slice(),distance:Math.log(this.computedRadius[0]),zoomMin:this.radius.bounds[0][0],zoomMax:this.radius.bounds[1][0]}},b.fromJSON=function(E){var k=this.lastT(),A=E.center;A&&this.center.set(k,A[0],A[1],A[2]);var L=E.rotation;L&&this.rotation.set(k,L[0],L[1],L[2],L[3]);var _=E.distance;_&&_>0&&this.radius.set(k,Math.log(_)),this.setDistanceLimits(E.zoomMin,E.zoomMax)};function g(E){E=E||{};var k=E.center||[0,0,0],A=E.rotation||[0,0,0,1],L=E.radius||1;k=[].slice.call(k,0,3),A=[].slice.call(A,0,4),v(A,A);var _=new x(A,k,Math.log(L));return _.setDistanceLimits(E.zoomMin,E.zoomMax),("eye"in E||"up"in E)&&_.lookAt(0,E.eye,E.center,E.up),_}},1371:function(i,a,o){"use strict";var s=o(3233);i.exports=function(u,c,f){return f=typeof f!="undefined"?f+"":" ",s(f,c)+u}},3202:function(i){i.exports=function(o,s){s||(s=[0,""]),o=String(o);var l=parseFloat(o,10);return s[0]=l,s[1]=o.match(/[\d.\-\+]*\s*(.*)/)[1]||"",s}},3088:function(i,a,o){"use strict";i.exports=l;var s=o(3140);function l(u,c){for(var f=c.length|0,h=u.length,d=[new Array(f),new Array(f)],v=0;v0){F=d[H][P][0],V=H;break}q=F[V^1];for(var X=0;X<2;++X)for(var G=d[X][P],N=0;N0&&(F=W,q=re,V=X)}return T||F&&g(F,V),q}function k(p,P){var T=d[P][p][0],F=[p];g(T,P);for(var q=T[P^1],V=P;;){for(;q!==p;)F.push(q),q=E(F[F.length-2],q,!1);if(d[0][p].length+d[1][p].length===0)break;var H=F[F.length-1],X=p,G=F[1],N=E(H,X,!0);if(s(c[H],c[X],c[G],c[N])<0)break;F.push(p),q=E(H,X)}return F}function A(p,P){return P[1]===P[P.length-1]}for(var v=0;v0;){var C=d[0][v].length,M=k(v,L);A(_,M)?_.push.apply(_,M):(_.length>0&&b.push(_),_=M)}_.length>0&&b.push(_)}return b}},5609:function(i,a,o){"use strict";i.exports=l;var s=o(3134);function l(u,c){for(var f=s(u,c.length),h=new Array(c.length),d=new Array(c.length),v=[],x=0;x0;){var g=v.pop();h[g]=!1;for(var E=f[g],x=0;x0}C=C.filter(M);for(var p=C.length,P=new Array(p),T=new Array(p),_=0;_0;){var ce=Ce.pop(),Ge=Me[ce];h(Ge,function(ot,Rt){return ot-Rt});var nt=Ge.length,ct=me[ce],qt;if(ct===0){var G=C[ce];qt=[G]}for(var _=0;_=0)&&(me[rt]=ct^1,Ce.push(rt),ct===0)){var G=C[rt];ze(G)||(G.reverse(),qt.push(G))}}ct===0&&Re.push(qt)}return Re}},5085:function(i,a,o){i.exports=E;var s=o(3250)[3],l=o(4209),u=o(3352),c=o(2478);function f(){return!0}function h(k){return function(A,L){var _=k[A];return _?!!_.queryPoint(L,f):!1}}function d(k){for(var A={},L=0;L0&&A[_]===L[0])C=k[_-1];else return 1;for(var M=1;C;){var p=C.key,P=s(L,p[0],p[1]);if(p[0][0]0)M=-1,C=C.right;else return 0;else if(P>0)C=C.left;else if(P<0)M=1,C=C.right;else return 0}return M}}function x(k){return 1}function b(k){return function(L){return k(L[0],L[1])?0:1}}function g(k,A){return function(_){return k(_[0],_[1])?0:A(_)}}function E(k){for(var A=k.length,L=[],_=[],C=0,M=0;M=x?(p=1,T=x+2*E+A):(p=-E/x,T=E*p+A)):(p=0,k>=0?(P=0,T=A):-k>=g?(P=1,T=g+2*k+A):(P=-k/g,T=k*P+A));else if(P<0)P=0,E>=0?(p=0,T=A):-E>=x?(p=1,T=x+2*E+A):(p=-E/x,T=E*p+A);else{var F=1/M;p*=F,P*=F,T=p*(x*p+b*P+2*E)+P*(b*p+g*P+2*k)+A}else{var q,V,H,X;p<0?(q=b+E,V=g+k,V>q?(H=V-q,X=x-2*b+g,H>=X?(p=1,P=0,T=x+2*E+A):(p=H/X,P=1-p,T=p*(x*p+b*P+2*E)+P*(b*p+g*P+2*k)+A)):(p=0,V<=0?(P=1,T=g+2*k+A):k>=0?(P=0,T=A):(P=-k/g,T=k*P+A))):P<0?(q=b+k,V=x+E,V>q?(H=V-q,X=x-2*b+g,H>=X?(P=1,p=0,T=g+2*k+A):(P=H/X,p=1-P,T=p*(x*p+b*P+2*E)+P*(b*p+g*P+2*k)+A)):(P=0,V<=0?(p=1,T=x+2*E+A):E>=0?(p=0,T=A):(p=-E/x,T=E*p+A))):(H=g+k-b-E,H<=0?(p=0,P=1,T=g+2*k+A):(X=x-2*b+g,H>=X?(p=1,P=0,T=x+2*E+A):(p=H/X,P=1-p,T=p*(x*p+b*P+2*E)+P*(b*p+g*P+2*k)+A)))}for(var G=1-p-P,v=0;v0){var g=f[d-1];if(s(x,g)===0&&u(g)!==b){d-=1;continue}}f[d++]=x}}return f.length=d,f}},3233:function(i){"use strict";var a="",o;i.exports=s;function s(l,u){if(typeof l!="string")throw new TypeError("expected a string");if(u===1)return l;if(u===2)return l+l;var c=l.length*u;if(o!==l||typeof o=="undefined")o=l,a="";else if(a.length>=c)return a.substr(0,c);for(;c>a.length&&u>1;)u&1&&(a+=l),u>>=1,l+=l;return a+=l,a=a.substr(0,c),a}},3025:function(i,a,o){i.exports=o.g.performance&&o.g.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}},7004:function(i){"use strict";i.exports=a;function a(o){for(var s=o.length,l=o[o.length-1],u=s,c=s-2;c>=0;--c){var f=l,h=o[c];l=f+h;var d=l-f,v=h-d;v&&(o[--u]=l,l=v)}for(var x=0,c=u;c0){if(V<=0)return H;X=q+V}else if(q<0){if(V>=0)return H;X=-(q+V)}else return H;var G=d*X;return H>=G||H<=-G?H:k(P,T,F)},function(P,T,F,q){var V=P[0]-q[0],H=T[0]-q[0],X=F[0]-q[0],G=P[1]-q[1],N=T[1]-q[1],W=F[1]-q[1],re=P[2]-q[2],ae=T[2]-q[2],_e=F[2]-q[2],Me=H*W,ke=X*N,ge=X*G,ie=V*W,Te=V*N,Ee=H*G,Ae=re*(Me-ke)+ae*(ge-ie)+_e*(Te-Ee),ze=(Math.abs(Me)+Math.abs(ke))*Math.abs(re)+(Math.abs(ge)+Math.abs(ie))*Math.abs(ae)+(Math.abs(Te)+Math.abs(Ee))*Math.abs(_e),Ce=v*ze;return Ae>Ce||-Ae>Ce?Ae:A(P,T,F,q)}];function _(p){var P=L[p.length];return P||(P=L[p.length]=E(p.length)),P.apply(void 0,p)}function C(p,P,T,F,q,V,H){return function(G,N,W,re,ae){switch(arguments.length){case 0:case 1:return 0;case 2:return F(G,N);case 3:return q(G,N,W);case 4:return V(G,N,W,re);case 5:return H(G,N,W,re,ae)}for(var _e=new Array(arguments.length),Me=0;Me0&&x>0||v<0&&x<0)return!1;var b=s(h,c,f),g=s(d,c,f);return b>0&&g>0||b<0&&g<0?!1:v===0&&x===0&&b===0&&g===0?l(c,f,h,d):!0}},8545:function(i){"use strict";i.exports=o;function a(s,l){var u=s+l,c=u-s,f=u-c,h=l-c,d=s-f,v=d+h;return v?[v,u]:[u]}function o(s,l){var u=s.length|0,c=l.length|0;if(u===1&&c===1)return a(s[0],-l[0]);var f=u+c,h=new Array(f),d=0,v=0,x=0,b=Math.abs,g=s[v],E=b(g),k=-l[x],A=b(k),L,_;E=c?(L=g,v+=1,v=c?(L=g,v+=1,v>1,k=f[2*E+1];if(k===x)return E;x>1,k=f[2*E+1];if(k===x)return E;x>1,k=f[2*E+1];if(k===x)return E;x>1,k=f[2*E+1];if(k===x)return E;x>1,X=d(P[H],T);X<=0?(X===0&&(V=H),F=H+1):X>0&&(q=H-1)}return V}s=g;function E(P,T){for(var F=new Array(P.length),q=0,V=F.length;q=P.length||d(P[Me],H)!==0););}return F}s=E;function k(P,T){if(!T)return E(b(L(P,0)),P,0);for(var F=new Array(T),q=0;q>>W&1&&N.push(V[W]);T.push(N)}return x(T)}s=A;function L(P,T){if(T<0)return[];for(var F=[],q=(1<0)-(u<0)},a.abs=function(u){var c=u>>o-1;return(u^c)-c},a.min=function(u,c){return c^(u^c)&-(u65535)<<4,u>>>=c,f=(u>255)<<3,u>>>=f,c|=f,f=(u>15)<<2,u>>>=f,c|=f,f=(u>3)<<1,u>>>=f,c|=f,c|u>>1},a.log10=function(u){return u>=1e9?9:u>=1e8?8:u>=1e7?7:u>=1e6?6:u>=1e5?5:u>=1e4?4:u>=1e3?3:u>=100?2:u>=10?1:0},a.popCount=function(u){return u=u-(u>>>1&1431655765),u=(u&858993459)+(u>>>2&858993459),(u+(u>>>4)&252645135)*16843009>>>24};function s(u){var c=32;return u&=-u,u&&c--,u&65535&&(c-=16),u&16711935&&(c-=8),u&252645135&&(c-=4),u&858993459&&(c-=2),u&1431655765&&(c-=1),c}a.countTrailingZeros=s,a.nextPow2=function(u){return u+=u===0,--u,u|=u>>>1,u|=u>>>2,u|=u>>>4,u|=u>>>8,u|=u>>>16,u+1},a.prevPow2=function(u){return u|=u>>>1,u|=u>>>2,u|=u>>>4,u|=u>>>8,u|=u>>>16,u-(u>>>1)},a.parity=function(u){return u^=u>>>16,u^=u>>>8,u^=u>>>4,u&=15,27030>>>u&1};var l=new Array(256);(function(u){for(var c=0;c<256;++c){var f=c,h=c,d=7;for(f>>>=1;f;f>>>=1)h<<=1,h|=f&1,--d;u[c]=h<>>8&255]<<16|l[u>>>16&255]<<8|l[u>>>24&255]},a.interleave2=function(u,c){return u&=65535,u=(u|u<<8)&16711935,u=(u|u<<4)&252645135,u=(u|u<<2)&858993459,u=(u|u<<1)&1431655765,c&=65535,c=(c|c<<8)&16711935,c=(c|c<<4)&252645135,c=(c|c<<2)&858993459,c=(c|c<<1)&1431655765,u|c<<1},a.deinterleave2=function(u,c){return u=u>>>c&1431655765,u=(u|u>>>1)&858993459,u=(u|u>>>2)&252645135,u=(u|u>>>4)&16711935,u=(u|u>>>16)&65535,u<<16>>16},a.interleave3=function(u,c,f){return u&=1023,u=(u|u<<16)&4278190335,u=(u|u<<8)&251719695,u=(u|u<<4)&3272356035,u=(u|u<<2)&1227133513,c&=1023,c=(c|c<<16)&4278190335,c=(c|c<<8)&251719695,c=(c|c<<4)&3272356035,c=(c|c<<2)&1227133513,u|=c<<1,f&=1023,f=(f|f<<16)&4278190335,f=(f|f<<8)&251719695,f=(f|f<<4)&3272356035,f=(f|f<<2)&1227133513,u|f<<2},a.deinterleave3=function(u,c){return u=u>>>c&1227133513,u=(u|u>>>2)&3272356035,u=(u|u>>>4)&251719695,u=(u|u>>>8)&4278190335,u=(u|u>>>16)&1023,u<<22>>22},a.nextCombination=function(u){var c=u|u-1;return c+1|(~c&-~c)-1>>>s(u)+1}},2014:function(i,a,o){"use strict";"use restrict";var s=o(3105),l=o(4623);function u(p){for(var P=0,T=Math.max,F=0,q=p.length;F>1,H=h(p[V],P);H<=0?(H===0&&(q=V),T=V+1):H>0&&(F=V-1)}return q}a.findCell=b;function g(p,P){for(var T=new Array(p.length),F=0,q=T.length;F=p.length||h(p[_e],V)!==0););}return T}a.incidence=g;function E(p,P){if(!P)return g(x(A(p,0)),p,0);for(var T=new Array(P),F=0;F>>N&1&&G.push(q[N]);P.push(G)}return v(P)}a.explode=k;function A(p,P){if(P<0)return[];for(var T=[],F=(1<>1:(ie>>1)-1}function F(ie){for(var Te=P(ie);;){var Ee=Te,Ae=2*ie+1,ze=2*(ie+1),Ce=ie;if(Ae0;){var Ee=T(ie);if(Ee>=0){var Ae=P(Ee);if(Te0){var ie=G[0];return p(0,re-1),re-=1,F(0),ie}return-1}function H(ie,Te){var Ee=G[ie];return E[Ee]===Te?ie:(E[Ee]=-1/0,q(ie),V(),E[Ee]=Te,re+=1,q(re-1))}function X(ie){if(!k[ie]){k[ie]=!0;var Te=b[ie],Ee=g[ie];b[Ee]>=0&&(b[Ee]=Te),g[Te]>=0&&(g[Te]=Ee),N[Te]>=0&&H(N[Te],M(Te)),N[Ee]>=0&&H(N[Ee],M(Ee))}}for(var G=[],N=new Array(v),A=0;A>1;A>=0;--A)F(A);for(;;){var ae=V();if(ae<0||E[ae]>d)break;X(ae)}for(var _e=[],A=0;A=0&&Ee>=0&&Te!==Ee){var Ae=N[Te],ze=N[Ee];Ae!==ze&&ge.push([Ae,ze])}}),l.unique(l.normalize(ge)),{positions:_e,edges:ge}}},1303:function(i,a,o){"use strict";i.exports=u;var s=o(3250);function l(c,f){var h,d;if(f[0][0]f[1][0])h=f[1],d=f[0];else{var v=Math.min(c[0][1],c[1][1]),x=Math.max(c[0][1],c[1][1]),b=Math.min(f[0][1],f[1][1]),g=Math.max(f[0][1],f[1][1]);return xg?v-g:x-g}var E,k;c[0][1]f[1][0])h=f[1],d=f[0];else return l(f,c);var v,x;if(c[0][0]c[1][0])v=c[1],x=c[0];else return-l(c,f);var b=s(h,d,x),g=s(h,d,v);if(b<0){if(g<=0)return b}else if(b>0){if(g>=0)return b}else if(g)return g;if(b=s(x,v,d),g=s(x,v,h),b<0){if(g<=0)return b}else if(b>0){if(g>=0)return b}else if(g)return g;return d[0]-x[0]}},4209:function(i,a,o){"use strict";i.exports=g;var s=o(2478),l=o(3840),u=o(3250),c=o(1303);function f(E,k,A){this.slabs=E,this.coordinates=k,this.horizontal=A}var h=f.prototype;function d(E,k){return E.y-k}function v(E,k){for(var A=null;E;){var L=E.key,_,C;L[0][0]0)if(k[0]!==L[1][0])A=E,E=E.right;else{var p=v(E.right,k);if(p)return p;E=E.left}else{if(k[0]!==L[1][0])return E;var p=v(E.right,k);if(p)return p;E=E.left}}return A}h.castUp=function(E){var k=s.le(this.coordinates,E[0]);if(k<0)return-1;var A=this.slabs[k],L=v(this.slabs[k],E),_=-1;if(L&&(_=L.value),this.coordinates[k]===E[0]){var C=null;if(L&&(C=L.key),k>0){var M=v(this.slabs[k-1],E);M&&(C?c(M.key,C)>0&&(C=M.key,_=M.value):(_=M.value,C=M.key))}var p=this.horizontal[k];if(p.length>0){var P=s.ge(p,E[1],d);if(P=p.length)return _;T=p[P]}}if(T.start)if(C){var F=u(C[0],C[1],[E[0],T.y]);C[0][0]>C[1][0]&&(F=-F),F>0&&(_=T.index)}else _=T.index;else T.y!==E[1]&&(_=T.index)}}}return _};function x(E,k,A,L){this.y=E,this.index=k,this.start=A,this.closed=L}function b(E,k,A,L){this.x=E,this.segment=k,this.create=A,this.index=L}function g(E){for(var k=E.length,A=2*k,L=new Array(A),_=0;_1&&(k=1);for(var A=1-k,L=v.length,_=new Array(L),C=0;C0||E>0&&_<0){var C=c(k,_,A,E);b.push(C),g.push(C.slice())}_<0?g.push(A.slice()):_>0?b.push(A.slice()):(b.push(A.slice()),g.push(A.slice())),E=_}return{positive:b,negative:g}}function h(v,x){for(var b=[],g=u(v[v.length-1],x),E=v[v.length-1],k=v[0],A=0;A0||g>0&&L<0)&&b.push(c(E,L,k,g)),L>=0&&b.push(k.slice()),g=L}return b}function d(v,x){for(var b=[],g=u(v[v.length-1],x),E=v[v.length-1],k=v[0],A=0;A0||g>0&&L<0)&&b.push(c(E,L,k,g)),L<=0&&b.push(k.slice()),g=L}return b}},3387:function(i,a,o){var s;(function(){"use strict";var l={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function u(v){return f(d(v),arguments)}function c(v,x){return u.apply(null,[v].concat(x||[]))}function f(v,x){var b=1,g=v.length,E,k="",A,L,_,C,M,p,P,T;for(A=0;A=0),_.type){case"b":E=parseInt(E,10).toString(2);break;case"c":E=String.fromCharCode(parseInt(E,10));break;case"d":case"i":E=parseInt(E,10);break;case"j":E=JSON.stringify(E,null,_.width?parseInt(_.width):0);break;case"e":E=_.precision?parseFloat(E).toExponential(_.precision):parseFloat(E).toExponential();break;case"f":E=_.precision?parseFloat(E).toFixed(_.precision):parseFloat(E);break;case"g":E=_.precision?String(Number(E.toPrecision(_.precision))):parseFloat(E);break;case"o":E=(parseInt(E,10)>>>0).toString(8);break;case"s":E=String(E),E=_.precision?E.substring(0,_.precision):E;break;case"t":E=String(!!E),E=_.precision?E.substring(0,_.precision):E;break;case"T":E=Object.prototype.toString.call(E).slice(8,-1).toLowerCase(),E=_.precision?E.substring(0,_.precision):E;break;case"u":E=parseInt(E,10)>>>0;break;case"v":E=E.valueOf(),E=_.precision?E.substring(0,_.precision):E;break;case"x":E=(parseInt(E,10)>>>0).toString(16);break;case"X":E=(parseInt(E,10)>>>0).toString(16).toUpperCase();break}l.json.test(_.type)?k+=E:(l.number.test(_.type)&&(!P||_.sign)?(T=P?"+":"-",E=E.toString().replace(l.sign,"")):T="",M=_.pad_char?_.pad_char==="0"?"0":_.pad_char.charAt(1):" ",p=_.width-(T+E).length,C=_.width&&p>0?M.repeat(p):"",k+=_.align?T+E+C:M==="0"?T+C+E:C+T+E)}return k}var h=Object.create(null);function d(v){if(h[v])return h[v];for(var x=v,b,g=[],E=0;x;){if((b=l.text.exec(x))!==null)g.push(b[0]);else if((b=l.modulo.exec(x))!==null)g.push("%");else if((b=l.placeholder.exec(x))!==null){if(b[2]){E|=1;var k=[],A=b[2],L=[];if((L=l.key.exec(A))!==null)for(k.push(L[1]);(A=A.substring(L[0].length))!=="";)if((L=l.key_access.exec(A))!==null)k.push(L[1]);else if((L=l.index_access.exec(A))!==null)k.push(L[1]);else throw new SyntaxError("[sprintf] failed to parse named argument key");else throw new SyntaxError("[sprintf] failed to parse named argument key");b[2]=k}else E|=2;if(E===3)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");g.push({placeholder:b[0],param_no:b[1],keys:b[2],sign:b[3],pad_char:b[4],align:b[5],width:b[6],precision:b[7],type:b[8]})}else throw new SyntaxError("[sprintf] unexpected placeholder");x=x.substring(b[0].length)}return h[v]=g}a.sprintf=u,a.vsprintf=c,typeof window!="undefined"&&(window.sprintf=u,window.vsprintf=c,s=function(){return{sprintf:u,vsprintf:c}}.call(a,o,a,i),s!==void 0&&(i.exports=s))})()},3711:function(i,a,o){"use strict";i.exports=d;var s=o(2640),l=o(781),u={"2d":function(v,x,b){var g=v({order:x,scalarArguments:3,getters:b==="generic"?[0]:void 0,phase:function(k,A,L,_){return k>_|0},vertex:function(k,A,L,_,C,M,p,P,T,F,q,V,H){var X=(p<<0)+(P<<1)+(T<<2)+(F<<3)|0;if(!(X===0||X===15))switch(X){case 0:q.push([k-.5,A-.5]);break;case 1:q.push([k-.25-.25*(_+L-2*H)/(L-_),A-.25-.25*(C+L-2*H)/(L-C)]);break;case 2:q.push([k-.75-.25*(-_-L+2*H)/(_-L),A-.25-.25*(M+_-2*H)/(_-M)]);break;case 3:q.push([k-.5,A-.5-.5*(C+L+M+_-4*H)/(L-C+_-M)]);break;case 4:q.push([k-.25-.25*(M+C-2*H)/(C-M),A-.75-.25*(-C-L+2*H)/(C-L)]);break;case 5:q.push([k-.5-.5*(_+L+M+C-4*H)/(L-_+C-M),A-.5]);break;case 6:q.push([k-.5-.25*(-_-L+M+C)/(_-L+C-M),A-.5-.25*(-C-L+M+_)/(C-L+_-M)]);break;case 7:q.push([k-.75-.25*(M+C-2*H)/(C-M),A-.75-.25*(M+_-2*H)/(_-M)]);break;case 8:q.push([k-.75-.25*(-M-C+2*H)/(M-C),A-.75-.25*(-M-_+2*H)/(M-_)]);break;case 9:q.push([k-.5-.25*(_+L+-M-C)/(L-_+M-C),A-.5-.25*(C+L+-M-_)/(L-C+M-_)]);break;case 10:q.push([k-.5-.5*(-_-L+-M-C+4*H)/(_-L+M-C),A-.5]);break;case 11:q.push([k-.25-.25*(-M-C+2*H)/(M-C),A-.75-.25*(C+L-2*H)/(L-C)]);break;case 12:q.push([k-.5,A-.5-.5*(-C-L+-M-_+4*H)/(C-L+M-_)]);break;case 13:q.push([k-.75-.25*(_+L-2*H)/(L-_),A-.25-.25*(-M-_+2*H)/(M-_)]);break;case 14:q.push([k-.25-.25*(-_-L+2*H)/(_-L),A-.25-.25*(-C-L+2*H)/(C-L)]);break;case 15:q.push([k-.5,A-.5]);break}},cell:function(k,A,L,_,C,M,p,P,T){C?P.push([k,A]):P.push([A,k])}});return function(E,k){var A=[],L=[];return g(E,A,L,k),{positions:A,cells:L}}}};function c(v,x){var b=v.length+"d",g=u[b];if(g)return g(s,v,x)}function f(v,x){for(var b=l(v,x),g=b.length,E=new Array(g),k=new Array(g),A=0;AMath.max(_,C)?M[2]=1:_>Math.max(L,C)?M[0]=1:M[1]=1;for(var p=0,P=0,T=0;T<3;++T)p+=A[T]*A[T],P+=M[T]*A[T];for(var T=0;T<3;++T)M[T]-=P/p*A[T];return f(M,M),M}function b(A,L,_,C,M,p,P,T){this.center=s(_),this.up=s(C),this.right=s(M),this.radius=s([p]),this.angle=s([P,T]),this.angle.bounds=[[-1/0,-Math.PI/2],[1/0,Math.PI/2]],this.setDistanceLimits(A,L),this.computedCenter=this.center.curve(0),this.computedUp=this.up.curve(0),this.computedRight=this.right.curve(0),this.computedRadius=this.radius.curve(0),this.computedAngle=this.angle.curve(0),this.computedToward=[0,0,0],this.computedEye=[0,0,0],this.computedMatrix=new Array(16);for(var F=0;F<16;++F)this.computedMatrix[F]=.5;this.recalcMatrix(0)}var g=b.prototype;g.setDistanceLimits=function(A,L){A>0?A=Math.log(A):A=-1/0,L>0?L=Math.log(L):L=1/0,L=Math.max(L,A),this.radius.bounds[0][0]=A,this.radius.bounds[1][0]=L},g.getDistanceLimits=function(A){var L=this.radius.bounds[0];return A?(A[0]=Math.exp(L[0][0]),A[1]=Math.exp(L[1][0]),A):[Math.exp(L[0][0]),Math.exp(L[1][0])]},g.recalcMatrix=function(A){this.center.curve(A),this.up.curve(A),this.right.curve(A),this.radius.curve(A),this.angle.curve(A);for(var L=this.computedUp,_=this.computedRight,C=0,M=0,p=0;p<3;++p)M+=L[p]*_[p],C+=L[p]*L[p];for(var P=Math.sqrt(C),T=0,p=0;p<3;++p)_[p]-=L[p]*M/C,T+=_[p]*_[p],L[p]/=P;for(var F=Math.sqrt(T),p=0;p<3;++p)_[p]/=F;var q=this.computedToward;c(q,L,_),f(q,q);for(var V=Math.exp(this.computedRadius[0]),H=this.computedAngle[0],X=this.computedAngle[1],G=Math.cos(H),N=Math.sin(H),W=Math.cos(X),re=Math.sin(X),ae=this.computedCenter,_e=G*W,Me=N*W,ke=re,ge=-G*re,ie=-N*re,Te=W,Ee=this.computedEye,Ae=this.computedMatrix,p=0;p<3;++p){var ze=_e*_[p]+Me*q[p]+ke*L[p];Ae[4*p+1]=ge*_[p]+ie*q[p]+Te*L[p],Ae[4*p+2]=ze,Ae[4*p+3]=0}var Ce=Ae[1],me=Ae[5],Re=Ae[9],ce=Ae[2],Ge=Ae[6],nt=Ae[10],ct=me*nt-Re*Ge,qt=Re*ce-Ce*nt,rt=Ce*Ge-me*ce,ot=d(ct,qt,rt);ct/=ot,qt/=ot,rt/=ot,Ae[0]=ct,Ae[4]=qt,Ae[8]=rt;for(var p=0;p<3;++p)Ee[p]=ae[p]+Ae[2+4*p]*V;for(var p=0;p<3;++p){for(var T=0,Rt=0;Rt<3;++Rt)T+=Ae[p+4*Rt]*Ee[Rt];Ae[12+p]=-T}Ae[15]=1},g.getMatrix=function(A,L){this.recalcMatrix(A);var _=this.computedMatrix;if(L){for(var C=0;C<16;++C)L[C]=_[C];return L}return _};var E=[0,0,0];g.rotate=function(A,L,_,C){if(this.angle.move(A,L,_),C){this.recalcMatrix(A);var M=this.computedMatrix;E[0]=M[2],E[1]=M[6],E[2]=M[10];for(var p=this.computedUp,P=this.computedRight,T=this.computedToward,F=0;F<3;++F)M[4*F]=p[F],M[4*F+1]=P[F],M[4*F+2]=T[F];u(M,M,C,E);for(var F=0;F<3;++F)p[F]=M[4*F],P[F]=M[4*F+1];this.up.set(A,p[0],p[1],p[2]),this.right.set(A,P[0],P[1],P[2])}},g.pan=function(A,L,_,C){L=L||0,_=_||0,C=C||0,this.recalcMatrix(A);var M=this.computedMatrix,p=Math.exp(this.computedRadius[0]),P=M[1],T=M[5],F=M[9],q=d(P,T,F);P/=q,T/=q,F/=q;var V=M[0],H=M[4],X=M[8],G=V*P+H*T+X*F;V-=P*G,H-=T*G,X-=F*G;var N=d(V,H,X);V/=N,H/=N,X/=N;var W=V*L+P*_,re=H*L+T*_,ae=X*L+F*_;this.center.move(A,W,re,ae);var _e=Math.exp(this.computedRadius[0]);_e=Math.max(1e-4,_e+C),this.radius.set(A,Math.log(_e))},g.translate=function(A,L,_,C){this.center.move(A,L||0,_||0,C||0)},g.setMatrix=function(A,L,_,C){var M=1;typeof _=="number"&&(M=_|0),(M<0||M>3)&&(M=1);var p=(M+2)%3,P=(M+1)%3;L||(this.recalcMatrix(A),L=this.computedMatrix);var T=L[M],F=L[M+4],q=L[M+8];if(C){var H=Math.abs(T),X=Math.abs(F),G=Math.abs(q),N=Math.max(H,X,G);H===N?(T=T<0?-1:1,F=q=0):G===N?(q=q<0?-1:1,T=F=0):(F=F<0?-1:1,T=q=0)}else{var V=d(T,F,q);T/=V,F/=V,q/=V}var W=L[p],re=L[p+4],ae=L[p+8],_e=W*T+re*F+ae*q;W-=T*_e,re-=F*_e,ae-=q*_e;var Me=d(W,re,ae);W/=Me,re/=Me,ae/=Me;var ke=F*ae-q*re,ge=q*W-T*ae,ie=T*re-F*W,Te=d(ke,ge,ie);ke/=Te,ge/=Te,ie/=Te,this.center.jump(A,er,Ke,xt),this.radius.idle(A),this.up.jump(A,T,F,q),this.right.jump(A,W,re,ae);var Ee,Ae;if(M===2){var ze=L[1],Ce=L[5],me=L[9],Re=ze*W+Ce*re+me*ae,ce=ze*ke+Ce*ge+me*ie;qt<0?Ee=-Math.PI/2:Ee=Math.PI/2,Ae=Math.atan2(ce,Re)}else{var Ge=L[2],nt=L[6],ct=L[10],qt=Ge*T+nt*F+ct*q,rt=Ge*W+nt*re+ct*ae,ot=Ge*ke+nt*ge+ct*ie;Ee=Math.asin(v(qt)),Ae=Math.atan2(ot,rt)}this.angle.jump(A,Ae,Ee),this.recalcMatrix(A);var Rt=L[2],kt=L[6],Ct=L[10],Yt=this.computedMatrix;l(Yt,L);var xr=Yt[15],er=Yt[12]/xr,Ke=Yt[13]/xr,xt=Yt[14]/xr,bt=Math.exp(this.computedRadius[0]);this.center.jump(A,er-Rt*bt,Ke-kt*bt,xt-Ct*bt)},g.lastT=function(){return Math.max(this.center.lastT(),this.up.lastT(),this.right.lastT(),this.radius.lastT(),this.angle.lastT())},g.idle=function(A){this.center.idle(A),this.up.idle(A),this.right.idle(A),this.radius.idle(A),this.angle.idle(A)},g.flush=function(A){this.center.flush(A),this.up.flush(A),this.right.flush(A),this.radius.flush(A),this.angle.flush(A)},g.setDistance=function(A,L){L>0&&this.radius.set(A,Math.log(L))},g.lookAt=function(A,L,_,C){this.recalcMatrix(A),L=L||this.computedEye,_=_||this.computedCenter,C=C||this.computedUp;var M=C[0],p=C[1],P=C[2],T=d(M,p,P);if(!(T<1e-6)){M/=T,p/=T,P/=T;var F=L[0]-_[0],q=L[1]-_[1],V=L[2]-_[2],H=d(F,q,V);if(!(H<1e-6)){F/=H,q/=H,V/=H;var X=this.computedRight,G=X[0],N=X[1],W=X[2],re=M*G+p*N+P*W;G-=re*M,N-=re*p,W-=re*P;var ae=d(G,N,W);if(!(ae<.01&&(G=p*V-P*q,N=P*F-M*V,W=M*q-p*F,ae=d(G,N,W),ae<1e-6))){G/=ae,N/=ae,W/=ae,this.up.set(A,M,p,P),this.right.set(A,G,N,W),this.center.set(A,_[0],_[1],_[2]),this.radius.set(A,Math.log(H));var _e=p*W-P*N,Me=P*G-M*W,ke=M*N-p*G,ge=d(_e,Me,ke);_e/=ge,Me/=ge,ke/=ge;var ie=M*F+p*q+P*V,Te=G*F+N*q+W*V,Ee=_e*F+Me*q+ke*V,Ae=Math.asin(v(ie)),ze=Math.atan2(Ee,Te),Ce=this.angle._state,me=Ce[Ce.length-1],Re=Ce[Ce.length-2];me=me%(2*Math.PI);var ce=Math.abs(me+2*Math.PI-ze),Ge=Math.abs(me-ze),nt=Math.abs(me-2*Math.PI-ze);ce0?W.pop():new ArrayBuffer(G)}a.mallocArrayBuffer=E;function k(X){return new Uint8Array(E(X),0,X)}a.mallocUint8=k;function A(X){return new Uint16Array(E(2*X),0,X)}a.mallocUint16=A;function L(X){return new Uint32Array(E(4*X),0,X)}a.mallocUint32=L;function _(X){return new Int8Array(E(X),0,X)}a.mallocInt8=_;function C(X){return new Int16Array(E(2*X),0,X)}a.mallocInt16=C;function M(X){return new Int32Array(E(4*X),0,X)}a.mallocInt32=M;function p(X){return new Float32Array(E(4*X),0,X)}a.mallocFloat32=a.mallocFloat=p;function P(X){return new Float64Array(E(8*X),0,X)}a.mallocFloat64=a.mallocDouble=P;function T(X){return c?new Uint8ClampedArray(E(X),0,X):k(X)}a.mallocUint8Clamped=T;function F(X){return f?new BigUint64Array(E(8*X),0,X):null}a.mallocBigUint64=F;function q(X){return h?new BigInt64Array(E(8*X),0,X):null}a.mallocBigInt64=q;function V(X){return new DataView(E(X),0,X)}a.mallocDataView=V;function H(X){X=s.nextPow2(X);var G=s.log2(X),N=x[G];return N.length>0?N.pop():new u(X)}a.mallocBuffer=H,a.clearCache=function(){for(var G=0;G<32;++G)d.UINT8[G].length=0,d.UINT16[G].length=0,d.UINT32[G].length=0,d.INT8[G].length=0,d.INT16[G].length=0,d.INT32[G].length=0,d.FLOAT[G].length=0,d.DOUBLE[G].length=0,d.BIGUINT64[G].length=0,d.BIGINT64[G].length=0,d.UINT8C[G].length=0,v[G].length=0,x[G].length=0}},1755:function(i){"use strict";"use restrict";i.exports=a;function a(s){this.roots=new Array(s),this.ranks=new Array(s);for(var l=0;l",W="",re=N.length,ae=W.length,_e=H[0]===E||H[0]===L,Me=0,ke=-ae;Me>-1&&(Me=X.indexOf(N,Me),!(Me===-1||(ke=X.indexOf(W,Me+re),ke===-1)||ke<=Me));){for(var ge=Me;ge=ke)G[ge]=null,X=X.substr(0,ge)+" "+X.substr(ge+1);else if(G[ge]!==null){var ie=G[ge].indexOf(H[0]);ie===-1?G[ge]+=H:_e&&(G[ge]=G[ge].substr(0,ie+1)+(1+parseInt(G[ge][ie+1]))+G[ge].substr(ie+2))}var Te=Me+re,Ee=X.substr(Te,ke-Te),Ae=Ee.indexOf(N);Ae!==-1?Me=Ae:Me=ke+ae}return G}function M(V,H,X){for(var G=H.textAlign||"start",N=H.textBaseline||"alphabetic",W=[1<<30,1<<30],re=[0,0],ae=V.length,_e=0;_e/g,` +`):X=X.replace(/\/g," ");var re="",ae=[];for(me=0;me-1?parseInt(Ke[1+Lt]):0,dt=St>-1?parseInt(xt[1+St]):0;Et!==dt&&(bt=bt.replace(rt(),"?px "),Ge*=Math.pow(.75,dt-Et),bt=bt.replace("?px ",rt())),ce+=.25*ie*(dt-Et)}if(W.superscripts===!0){var Ht=Ke.indexOf(E),$t=xt.indexOf(E),fr=Ht>-1?parseInt(Ke[1+Ht]):0,_r=$t>-1?parseInt(xt[1+$t]):0;fr!==_r&&(bt=bt.replace(rt(),"?px "),Ge*=Math.pow(.75,_r-fr),bt=bt.replace("?px ",rt())),ce-=.25*ie*(_r-fr)}if(W.bolds===!0){var Br=Ke.indexOf(v)>-1,Or=xt.indexOf(v)>-1;!Br&&Or&&(Nr?bt=bt.replace("italic ","italic bold "):bt="bold "+bt),Br&&!Or&&(bt=bt.replace("bold ",""))}if(W.italics===!0){var Nr=Ke.indexOf(b)>-1,ut=xt.indexOf(b)>-1;!Nr&&ut&&(bt="italic "+bt),Nr&&!ut&&(bt=bt.replace("italic ",""))}H.font=bt}for(Ce=0;Ce0&&(N=G.size),G.lineSpacing&&G.lineSpacing>0&&(W=G.lineSpacing),G.styletags&&G.styletags.breaklines&&(re.breaklines=!!G.styletags.breaklines),G.styletags&&G.styletags.bolds&&(re.bolds=!!G.styletags.bolds),G.styletags&&G.styletags.italics&&(re.italics=!!G.styletags.italics),G.styletags&&G.styletags.subscripts&&(re.subscripts=!!G.styletags.subscripts),G.styletags&&G.styletags.superscripts&&(re.superscripts=!!G.styletags.superscripts)),X.font=[G.fontStyle,G.fontVariant,G.fontWeight,N+"px",G.font].filter(function(_e){return _e}).join(" "),X.textAlign="start",X.textBaseline="alphabetic",X.direction="ltr";var ae=p(H,X,V,N,W,re);return F(ae,G,N)}},1538:function(i){(function(){"use strict";if(typeof ses!="undefined"&&ses.ok&&!ses.ok())return;function o(T){T.permitHostObjects___&&T.permitHostObjects___(o)}typeof ses!="undefined"&&(ses.weakMapPermitHostObjects=o);var s=!1;if(typeof WeakMap=="function"){var l=WeakMap;if(!(typeof navigator!="undefined"&&/Firefox/.test(navigator.userAgent))){var u=new l,c=Object.freeze({});if(u.set(c,1),u.get(c)!==1)s=!0;else{i.exports=WeakMap;return}}}var f=Object.prototype.hasOwnProperty,h=Object.getOwnPropertyNames,d=Object.defineProperty,v=Object.isExtensible,x="weakmap:",b=x+"ident:"+Math.random()+"___";if(typeof crypto!="undefined"&&typeof crypto.getRandomValues=="function"&&typeof ArrayBuffer=="function"&&typeof Uint8Array=="function"){var g=new ArrayBuffer(25),E=new Uint8Array(g);crypto.getRandomValues(E),b=x+"rand:"+Array.prototype.map.call(E,function(T){return(T%36).toString(36)}).join("")+"___"}function k(T){return!(T.substr(0,x.length)==x&&T.substr(T.length-3)==="___")}if(d(Object,"getOwnPropertyNames",{value:function(F){return h(F).filter(k)}}),"getPropertyNames"in Object){var A=Object.getPropertyNames;d(Object,"getPropertyNames",{value:function(F){return A(F).filter(k)}})}function L(T){if(T!==Object(T))throw new TypeError("Not an object: "+T);var F=T[b];if(F&&F.key===T)return F;if(v(T)){F={key:T};try{return d(T,b,{value:F,writable:!1,enumerable:!1,configurable:!1}),F}catch(q){return}}}(function(){var T=Object.freeze;d(Object,"freeze",{value:function(H){return L(H),T(H)}});var F=Object.seal;d(Object,"seal",{value:function(H){return L(H),F(H)}});var q=Object.preventExtensions;d(Object,"preventExtensions",{value:function(H){return L(H),q(H)}})})();function _(T){return T.prototype=null,Object.freeze(T)}var C=!1;function M(){!C&&typeof console!="undefined"&&(C=!0,console.warn("WeakMap should be invoked as new WeakMap(), not WeakMap(). This will be an error in the future."))}var p=0,P=function(){this instanceof P||M();var T=[],F=[],q=p++;function V(N,W){var re,ae=L(N);return ae?q in ae?ae[q]:W:(re=T.indexOf(N),re>=0?F[re]:W)}function H(N){var W=L(N);return W?q in W:T.indexOf(N)>=0}function X(N,W){var re,ae=L(N);return ae?ae[q]=W:(re=T.indexOf(N),re>=0?F[re]=W:(re=T.length,F[re]=W,T[re]=N)),this}function G(N){var W=L(N),re,ae;return W?q in W&&delete W[q]:(re=T.indexOf(N),re<0?!1:(ae=T.length-1,T[re]=void 0,F[re]=F[ae],T[re]=T[ae],T.length=ae,F.length=ae,!0))}return Object.create(P.prototype,{get___:{value:_(V)},has___:{value:_(H)},set___:{value:_(X)},delete___:{value:_(G)}})};P.prototype=Object.create(Object.prototype,{get:{value:function(F,q){return this.get___(F,q)},writable:!0,configurable:!0},has:{value:function(F){return this.has___(F)},writable:!0,configurable:!0},set:{value:function(F,q){return this.set___(F,q)},writable:!0,configurable:!0},delete:{value:function(F){return this.delete___(F)},writable:!0,configurable:!0}}),typeof l=="function"?function(){s&&typeof Proxy!="undefined"&&(Proxy=void 0);function T(){this instanceof P||M();var F=new l,q=void 0,V=!1;function H(W,re){return q?F.has(W)?F.get(W):q.get___(W,re):F.get(W,re)}function X(W){return F.has(W)||(q?q.has___(W):!1)}var G;s?G=function(W,re){return F.set(W,re),F.has(W)||(q||(q=new P),q.set(W,re)),this}:G=function(W,re){if(V)try{F.set(W,re)}catch(ae){q||(q=new P),q.set___(W,re)}else F.set(W,re);return this};function N(W){var re=!!F.delete(W);return q&&q.delete___(W)||re}return Object.create(P.prototype,{get___:{value:_(H)},has___:{value:_(X)},set___:{value:_(G)},delete___:{value:_(N)},permitHostObjects___:{value:_(function(W){if(W===o)V=!0;else throw new Error("bogus call to permitHostObjects___")})}})}T.prototype=P.prototype,i.exports=T,Object.defineProperty(WeakMap.prototype,"constructor",{value:WeakMap,enumerable:!1,configurable:!0,writable:!0})}():(typeof Proxy!="undefined"&&(Proxy=void 0),i.exports=P)})()},236:function(i,a,o){var s=o(8284);i.exports=l;function l(){var u={};return function(c){if((typeof c!="object"||c===null)&&typeof c!="function")throw new Error("Weakmap-shim: Key must be object");var f=c.valueOf(u);return f&&f.identity===u?f:s(c,u)}}},8284:function(i){i.exports=a;function a(o,s){var l={identity:s},u=o.valueOf;return Object.defineProperty(o,"valueOf",{value:function(c){return c!==s?u.apply(this,arguments):l},writable:!0}),l}},606:function(i,a,o){var s=o(236);i.exports=l;function l(){var u=s();return{get:function(c,f){var h=u(c);return h.hasOwnProperty("value")?h.value:f},set:function(c,f){return u(c).value=f,this},has:function(c){return"value"in u(c)},delete:function(c){return delete u(c).value}}}},3349:function(i){"use strict";function a(){return function(f,h,d,v,x,b){var g=f[0],E=d[0],k=[0],A=E;v|=0;var L=0,_=E;for(L=0;L=0!=M>=0&&x.push(k[0]+.5+.5*(C+M)/(C-M))}v+=_,++k[0]}}}function o(){return a()}var s=o;function l(f){var h={};return function(v,x,b){var g=v.dtype,E=v.order,k=[g,E.join()].join(),A=h[k];return A||(h[k]=A=f([g,E])),A(v.shape.slice(0),v.data,v.stride,v.offset|0,x,b)}}function u(f){return l(s.bind(void 0,f))}function c(f){return u({funcName:f.funcName})}i.exports=c({funcName:"zeroCrossings"})},781:function(i,a,o){"use strict";i.exports=l;var s=o(3349);function l(u,c){var f=[];return c=+c||0,s(u.hi(u.shape[0]-1),f,c),f}},7790:function(){}},t={};function r(i){var a=t[i];if(a!==void 0)return a.exports;var o=t[i]={id:i,loaded:!1,exports:{}};return e[i].call(o.exports,o,o.exports,r),o.loaded=!0,o.exports}(function(){r.g=function(){if(typeof globalThis=="object")return globalThis;try{return this||new Function("return this")()}catch(i){if(typeof window=="object")return window}}()})(),function(){r.nmd=function(i){return i.paths=[],i.children||(i.children=[]),i}}();var n=r(1964);aLe.exports=n})()});var sLe=ye((Xdr,oLe)=>{"use strict";oLe.exports={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]}});var fLe=ye((Ydr,cLe)=>{"use strict";var lLe=sLe();cLe.exports=Q6t;var uLe={red:0,orange:60,yellow:120,green:180,blue:240,purple:300};function Q6t(e){var t,r=[],n=1,i;if(typeof e=="string")if(e=e.toLowerCase(),lLe[e])r=lLe[e].slice(),i="rgb";else if(e==="transparent")n=0,i="rgb",r=[0,0,0];else if(/^#[A-Fa-f0-9]+$/.test(e)){var a=e.slice(1),o=a.length,s=o<=4;n=1,s?(r=[parseInt(a[0]+a[0],16),parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16)],o===4&&(n=parseInt(a[3]+a[3],16)/255)):(r=[parseInt(a[0]+a[1],16),parseInt(a[2]+a[3],16),parseInt(a[4]+a[5],16)],o===8&&(n=parseInt(a[6]+a[7],16)/255)),r[0]||(r[0]=0),r[1]||(r[1]=0),r[2]||(r[2]=0),i="rgb"}else if(t=/^((?:rgb|hs[lvb]|hwb|cmyk?|xy[zy]|gray|lab|lchu?v?|[ly]uv|lms)a?)\s*\(([^\)]*)\)/.exec(e)){var l=t[1],u=l==="rgb",a=l.replace(/a$/,"");i=a;var o=a==="cmyk"?4:a==="gray"?1:3;r=t[2].trim().split(/\s*[,\/]\s*|\s+/).map(function(h,d){if(/%$/.test(h))return d===o?parseFloat(h)/100:a==="rgb"?parseFloat(h)*255/100:parseFloat(h);if(a[d]==="h"){if(/deg$/.test(h))return parseFloat(h);if(uLe[h]!==void 0)return uLe[h]}return parseFloat(h)}),l===a&&r.push(1),n=u||r[o]===void 0?1:r[o],r=r.slice(0,o)}else e.length>10&&/[0-9](?:\s|\/)/.test(e)&&(r=e.match(/([0-9]+)/g).map(function(c){return parseFloat(c)}),i=e.match(/([a-z])/ig).join("").toLowerCase());else isNaN(e)?Array.isArray(e)||e.length?(r=[e[0],e[1],e[2]],i="rgb",n=e.length===4?e[3]:1):e instanceof Object&&(e.r!=null||e.red!=null||e.R!=null?(i="rgb",r=[e.r||e.red||e.R||0,e.g||e.green||e.G||0,e.b||e.blue||e.B||0]):(i="hsl",r=[e.h||e.hue||e.H||0,e.s||e.saturation||e.S||0,e.l||e.lightness||e.L||e.b||e.brightness]),n=e.a||e.alpha||e.opacity||1,e.opacity!=null&&(n/=100)):(i="rgb",r=[e>>>16,(e&65280)>>>8,e&255]);return{space:i,values:r,alpha:n}}});var dLe=ye((Kdr,hLe)=>{"use strict";hLe.exports={name:"rgb",min:[0,0,0],max:[255,255,255],channel:["red","green","blue"],alias:["RGB"]}});var pLe=ye((Jdr,vLe)=>{"use strict";var eLt=dLe();vLe.exports={name:"hsl",min:[0,0,0],max:[360,100,100],channel:["hue","saturation","lightness"],alias:["HSL"],rgb:function(e){var t=e[0]/360,r=e[1]/100,n=e[2]/100,i,a,o,s,l;if(r===0)return l=n*255,[l,l,l];n<.5?a=n*(1+r):a=n+r-n*r,i=2*n-a,s=[0,0,0];for(var u=0;u<3;u++)o=t+1/3*-(u-1),o<0?o++:o>1&&o--,6*o<1?l=i+(a-i)*6*o:2*o<1?l=a:3*o<2?l=i+(a-i)*(2/3-o)*6:l=i,s[u]=l*255;return s}};eLt.hsl=function(e){var t=e[0]/255,r=e[1]/255,n=e[2]/255,i=Math.min(t,r,n),a=Math.max(t,r,n),o=a-i,s,l,u;return a===i?s=0:t===a?s=(r-n)/o:r===a?s=2+(n-t)/o:n===a&&(s=4+(t-r)/o),s=Math.min(s*60,360),s<0&&(s+=360),u=(i+a)/2,a===i?l=0:u<=.5?l=o/(a+i):l=o/(2-a-i),[s,l*100,u*100]}});var O5=ye(($dr,gLe)=>{gLe.exports=tLt;function tLt(e,t,r){return tr?r:e:et?t:e}});var rZ=ye((Qdr,mLe)=>{"use strict";var rLt=fLe(),iLt=pLe(),VD=O5();mLe.exports=function(t){var r,n,i,a=rLt(t);return a.space?(r=Array(3),r[0]=VD(a.values[0],0,255),r[1]=VD(a.values[1],0,255),r[2]=VD(a.values[2],0,255),a.space[0]==="h"&&(r=iLt.rgb(r)),r.push(VD(a.alpha,0,1)),r):[]}});var HD=ye((evr,yLe)=>{yLe.exports=function(e){switch(e){case"int8":return Int8Array;case"int16":return Int16Array;case"int32":return Int32Array;case"uint8":return Uint8Array;case"uint16":return Uint16Array;case"uint32":return Uint32Array;case"float32":return Float32Array;case"float64":return Float64Array;case"array":return Array;case"uint8_clamped":return Uint8ClampedArray}}});var J_=ye((tvr,_Le)=>{"use strict";var nLt=rZ(),GD=O5(),aLt=HD();_Le.exports=function(t,r){(r==="float"||!r)&&(r="array"),r==="uint"&&(r="uint8"),r==="uint_clamped"&&(r="uint8_clamped");var n=aLt(r),i=new n(4),a=r!=="uint8"&&r!=="uint8_clamped";return(!t.length||typeof t=="string")&&(t=nLt(t),t[0]/=255,t[1]/=255,t[2]/=255),oLt(t)?(i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=t[3]!=null?t[3]:255,a&&(i[0]/=255,i[1]/=255,i[2]/=255,i[3]/=255),i):(a?(i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=t[3]!=null?t[3]:1):(i[0]=GD(Math.floor(t[0]*255),0,255),i[1]=GD(Math.floor(t[1]*255),0,255),i[2]=GD(Math.floor(t[2]*255),0,255),i[3]=t[3]==null?255:GD(Math.floor(t[3]*255),0,255)),i)};function oLt(e){return!!(e instanceof Uint8Array||e instanceof Uint8ClampedArray||Array.isArray(e)&&(e[0]>1||e[0]===0)&&(e[1]>1||e[1]===0)&&(e[2]>1||e[2]===0)&&(!e[3]||e[3]>1))}});var Jy=ye((rvr,xLe)=>{"use strict";var sLt=J_();function lLt(e){return e?sLt(e):[0,0,0,1]}xLe.exports=lLt});var $y=ye((ivr,ELe)=>{"use strict";var SLe=uo(),uLt=id(),jD=J_(),WD=Mu(),cLt=dh().defaultLine,bLe=vv().isArrayOrTypedArray,iZ=jD(cLt),MLe=1;function wLe(e,t){var r=e;return r[3]*=t,r}function TLe(e){if(SLe(e))return iZ;var t=jD(e);return t.length?t:iZ}function ALe(e){return SLe(e)?e:MLe}function fLt(e,t,r){var n=e.color;n&&n._inputArray&&(n=n._inputArray);var i=bLe(n),a=bLe(t),o=WD.extractOpts(e),s=[],l,u,c,f,h;if(o.colorscale!==void 0?l=WD.makeColorScaleFuncFromTrace(e):l=TLe,i?u=function(v,x){return v[x]===void 0?iZ:jD(l(v[x]))}:u=TLe,a?c=function(v,x){return v[x]===void 0?MLe:ALe(v[x])}:c=ALe,i||a)for(var d=0;d{"use strict";kLe.exports={solid:[[],0],dot:[[.5,1],200],dash:[[.5,1],50],longdash:[[.5,1],10],dashdot:[[.5,.625,.875,1],50],longdashdot:[[.5,.7,.8,1],10]}});var ZD=ye((avr,CLe)=>{"use strict";CLe.exports={circle:"\u25CF","circle-open":"\u25CB",square:"\u25A0","square-open":"\u25A1",diamond:"\u25C6","diamond-open":"\u25C7",cross:"+",x:"\u274C"}});var PLe=ye((ovr,LLe)=>{"use strict";var dLt=ba();function aZ(e,t,r,n){if(!t||!t.visible)return null;for(var i=dLt.getComponentMethod("errorbars","makeComputeError")(t),a=new Array(e.length),o=0;o0){var f=n.c2l(u);n._lowerLogErrorBound||(n._lowerLogErrorBound=f),n._lowerErrorBound=Math.min(n._lowerLogErrorBound,f)}}else a[o]=[-s[0]*r,s[1]*r]}return a}function vLt(e){for(var t=0;t{"use strict";var gLt=Rd().gl_line3d,ILe=Rd().gl_scatter3d,mLt=Rd().gl_error3d,yLt=Rd().gl_mesh3d,_Lt=Rd().delaunay_triangulate,Qy=Mr(),qLe=Jy(),XD=$y().formatColor,xLt=S3(),oZ=nZ(),bLt=ZD(),wLt=Qa(),TLt=rp().appendArrayPointValue,ALt=PLe();function OLe(e,t){this.scene=e,this.uid=t,this.linePlot=null,this.scatterPlot=null,this.errorBars=null,this.textMarkers=null,this.delaunayMesh=null,this.color=null,this.mode="",this.dataPoints=[],this.axesBounds=[[-1/0,-1/0,-1/0],[1/0,1/0,1/0]],this.textLabels=null,this.data=null}var lZ=OLe.prototype;lZ.handlePick=function(e){if(e.object&&(e.object===this.linePlot||e.object===this.delaunayMesh||e.object===this.textMarkers||e.object===this.scatterPlot)){var t=e.index=e.data.index;return e.object.highlight&&e.object.highlight(null),this.scatterPlot&&(e.object=this.scatterPlot,this.scatterPlot.highlight(e.data)),e.textLabel="",this.textLabels&&(Qy.isArrayOrTypedArray(this.textLabels)?(this.textLabels[t]||this.textLabels[t]===0)&&(e.textLabel=this.textLabels[t]):e.textLabel=this.textLabels),e.traceCoordinate=[this.data.x[t],this.data.y[t],this.data.z[t]],!0}};function SLt(e,t,r){var n=(r+1)%3,i=(r+2)%3,a=[],o=[],s;for(s=0;s-1?-1:e.indexOf("right")>-1?1:0}function DLe(e){return e==null?0:e.indexOf("top")>-1?-1:e.indexOf("bottom")>-1?1:0}function ELt(e){var t=0,r=0,n=[t,r];if(Array.isArray(e))for(var i=0;i=0){var u=SLt(s.position,s.delaunayColor,s.delaunayAxis);u.opacity=e.opacity,this.delaunayMesh?this.delaunayMesh.update(u):(u.gl=t,this.delaunayMesh=yLt(u),this.delaunayMesh._trace=this,this.scene.glplot.add(this.delaunayMesh))}else this.delaunayMesh&&(this.scene.glplot.remove(this.delaunayMesh),this.delaunayMesh.dispose(),this.delaunayMesh=null)};lZ.dispose=function(){this.linePlot&&(this.scene.glplot.remove(this.linePlot),this.linePlot.dispose()),this.scatterPlot&&(this.scene.glplot.remove(this.scatterPlot),this.scatterPlot.dispose()),this.errorBars&&(this.scene.glplot.remove(this.errorBars),this.errorBars.dispose()),this.textMarkers&&(this.scene.glplot.remove(this.textMarkers),this.textMarkers.dispose()),this.delaunayMesh&&(this.scene.glplot.remove(this.delaunayMesh),this.delaunayMesh.dispose())};function PLt(e,t){var r=new OLe(e,t.uid);return r.update(t),r}BLe.exports=PLt});var dZ=ye((lvr,HLe)=>{"use strict";var e1=Uc(),ILt=Su(),hZ=Kl(),uZ=Oc().axisHoverFormat,RLt=Wo().hovertemplateAttrs,DLt=Wo().texttemplateAttrs,ULe=vl(),zLt=nZ(),FLt=ZD(),Yg=no().extendFlat,qLt=Bu().overrideAll,VLe=X1(),OLt=e1.line,N2=e1.marker,BLt=N2.line,NLt=Yg({width:OLt.width,dash:{valType:"enumerated",values:VLe(zLt),dflt:"solid"}},hZ("line"));function cZ(e){return{show:{valType:"boolean",dflt:!1},opacity:{valType:"number",min:0,max:1,dflt:1},scale:{valType:"number",min:0,max:10,dflt:2/3}}}var fZ=HLe.exports=qLt({x:e1.x,y:e1.y,z:{valType:"data_array"},text:Yg({},e1.text,{}),texttemplate:DLt({},{}),hovertext:Yg({},e1.hovertext,{}),hovertemplate:RLt(),xhoverformat:uZ("x"),yhoverformat:uZ("y"),zhoverformat:uZ("z"),mode:Yg({},e1.mode,{dflt:"lines+markers"}),surfaceaxis:{valType:"enumerated",values:[-1,0,1,2],dflt:-1},surfacecolor:{valType:"color"},projection:{x:cZ("x"),y:cZ("y"),z:cZ("z")},connectgaps:e1.connectgaps,line:NLt,marker:Yg({symbol:{valType:"enumerated",values:VLe(FLt),dflt:"circle",arrayOk:!0},size:Yg({},N2.size,{dflt:8}),sizeref:N2.sizeref,sizemin:N2.sizemin,sizemode:N2.sizemode,opacity:Yg({},N2.opacity,{arrayOk:!1}),colorbar:N2.colorbar,line:Yg({width:Yg({},BLt.width,{arrayOk:!1})},hZ("marker.line"))},hZ("marker")),textposition:Yg({},e1.textposition,{dflt:"top center"}),textfont:ILt({noFontShadow:!0,noFontLineposition:!0,noFontTextcase:!0,editType:"calc",colorEditType:"style",arrayOk:!0,variantValues:["normal","small-caps"]}),opacity:ULe.opacity,hoverinfo:Yg({},ULe.hoverinfo)},"calc","nested");fZ.x.editType=fZ.y.editType=fZ.z.editType="calc+clearAxisTypes"});var WLe=ye((uvr,jLe)=>{"use strict";var GLe=ba(),ULt=Mr(),vZ=lu(),VLt=$p(),HLt=R0(),GLt=D0(),jLt=dZ();jLe.exports=function(t,r,n,i){function a(d,v){return ULt.coerce(t,r,jLt,d,v)}var o=WLt(t,r,a,i);if(!o){r.visible=!1;return}a("text"),a("hovertext"),a("hovertemplate"),a("xhoverformat"),a("yhoverformat"),a("zhoverformat"),a("mode"),vZ.hasMarkers(r)&&VLt(t,r,n,i,a,{noSelect:!0,noAngle:!0}),vZ.hasLines(r)&&(a("connectgaps"),HLt(t,r,n,i,a)),vZ.hasText(r)&&(a("texttemplate"),GLt(t,r,i,a,{noSelect:!0,noFontShadow:!0,noFontLineposition:!0,noFontTextcase:!0}));var s=(r.line||{}).color,l=(r.marker||{}).color;a("surfaceaxis")>=0&&a("surfacecolor",s||l);for(var u=["x","y","z"],c=0;c<3;++c){var f="projection."+u[c];a(f+".show")&&(a(f+".opacity"),a(f+".scale"))}var h=GLe.getComponentMethod("errorbars","supplyDefaults");h(t,r,s||l||n,{axis:"z"}),h(t,r,s||l||n,{axis:"y",inherit:"z"}),h(t,r,s||l||n,{axis:"x",inherit:"z"})};function WLt(e,t,r,n){var i=0,a=r("x"),o=r("y"),s=r("z"),l=GLe.getComponentMethod("calendars","handleTraceDefaults");return l(e,t,["x","y","z"],n),a&&o&&s&&(i=Math.min(a.length,o.length,s.length),t._length=t._xlength=t._ylength=t._zlength=i),i}});var XLe=ye((cvr,ZLe)=>{"use strict";var ZLt=km(),XLt=z0();ZLe.exports=function(t,r){var n=[{x:!1,y:!1,trace:r,t:{}}];return ZLt(n,r),XLt(t,r),n}});var KLe=ye((fvr,YLe)=>{YLe.exports=YLt;function YLt(e,t){if(typeof e!="string")throw new TypeError("must specify type string");if(t=t||{},typeof document=="undefined"&&!t.canvas)return null;var r=t.canvas||document.createElement("canvas");typeof t.width=="number"&&(r.width=t.width),typeof t.height=="number"&&(r.height=t.height);var n=t,i;try{var a=[e];e.indexOf("webgl")===0&&a.push("experimental-"+e);for(var o=0;o{var KLt=KLe();JLe.exports=function(t){return KLt("webgl",t)}});var pZ=ye((dvr,ePe)=>{"use strict";var QLe=va(),JLt=function(){};ePe.exports=function(t){for(var r in t)typeof t[r]=="function"&&(t[r]=JLt);t.destroy=function(){t.container.parentNode.removeChild(t.container)};var n=document.createElement("div");n.className="no-webgl",n.style.cursor="pointer",n.style.fontSize="24px",n.style.color=QLe.defaults[0],n.style.position="absolute",n.style.left=n.style.top="0px",n.style.width=n.style.height="100%",n.style["background-color"]=QLe.lightLine,n.style["z-index"]=30;var i=document.createElement("p");return i.textContent="WebGL is not supported by your browser - visit https://get.webgl.org for more info",i.style.position="relative",i.style.top="50%",i.style.left="50%",i.style.height="30%",i.style.width="50%",i.style.margin="-15% 0 0 -25%",n.appendChild(i),t.container.appendChild(n),t.container.style.background="#FFFFFF",t.container.onclick=function(){window.open("https://get.webgl.org")},!1}});var iPe=ye((vvr,rPe)=>{"use strict";var U2=Jy(),$Lt=Mr(),QLt=["xaxis","yaxis","zaxis"];function tPe(){this.bounds=[[-10,-10,-10],[10,10,10]],this.ticks=[[],[],[]],this.tickEnable=[!0,!0,!0],this.tickFont=["sans-serif","sans-serif","sans-serif"],this.tickSize=[12,12,12],this.tickFontWeight=["normal","normal","normal","normal"],this.tickFontStyle=["normal","normal","normal","normal"],this.tickFontVariant=["normal","normal","normal","normal"],this.tickAngle=[0,0,0],this.tickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.tickPad=[18,18,18],this.labels=["x","y","z"],this.labelEnable=[!0,!0,!0],this.labelFont=["Open Sans","Open Sans","Open Sans"],this.labelSize=[20,20,20],this.labelFontWeight=["normal","normal","normal","normal"],this.labelFontStyle=["normal","normal","normal","normal"],this.labelFontVariant=["normal","normal","normal","normal"],this.labelColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.labelPad=[30,30,30],this.lineEnable=[!0,!0,!0],this.lineMirror=[!1,!1,!1],this.lineWidth=[1,1,1],this.lineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.lineTickEnable=[!0,!0,!0],this.lineTickMirror=[!1,!1,!1],this.lineTickLength=[10,10,10],this.lineTickWidth=[1,1,1],this.lineTickColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.gridEnable=[!0,!0,!0],this.gridWidth=[1,1,1],this.gridColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroEnable=[!0,!0,!0],this.zeroLineColor=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.zeroLineWidth=[2,2,2],this.backgroundEnable=[!0,!0,!0],this.backgroundColor=[[.8,.8,.8,.5],[.8,.8,.8,.5],[.8,.8,.8,.5]],this._defaultTickPad=this.tickPad.slice(),this._defaultLabelPad=this.labelPad.slice(),this._defaultLineTickLength=this.lineTickLength.slice()}var ePt=tPe.prototype;ePt.merge=function(e,t){for(var r=this,n=0;n<3;++n){var i=t[QLt[n]];if(!i.visible){r.tickEnable[n]=!1,r.labelEnable[n]=!1,r.lineEnable[n]=!1,r.lineTickEnable[n]=!1,r.gridEnable[n]=!1,r.zeroEnable[n]=!1,r.backgroundEnable[n]=!1;continue}r.labels[n]=e._meta?$Lt.templateString(i.title.text,e._meta):i.title.text,"font"in i.title&&(i.title.font.color&&(r.labelColor[n]=U2(i.title.font.color)),i.title.font.family&&(r.labelFont[n]=i.title.font.family),i.title.font.size&&(r.labelSize[n]=i.title.font.size),i.title.font.weight&&(r.labelFontWeight[n]=i.title.font.weight),i.title.font.style&&(r.labelFontStyle[n]=i.title.font.style),i.title.font.variant&&(r.labelFontVariant[n]=i.title.font.variant)),"showline"in i&&(r.lineEnable[n]=i.showline),"linecolor"in i&&(r.lineColor[n]=U2(i.linecolor)),"linewidth"in i&&(r.lineWidth[n]=i.linewidth),"showgrid"in i&&(r.gridEnable[n]=i.showgrid),"gridcolor"in i&&(r.gridColor[n]=U2(i.gridcolor)),"gridwidth"in i&&(r.gridWidth[n]=i.gridwidth),i.type==="log"?r.zeroEnable[n]=!1:"zeroline"in i&&(r.zeroEnable[n]=i.zeroline),"zerolinecolor"in i&&(r.zeroLineColor[n]=U2(i.zerolinecolor)),"zerolinewidth"in i&&(r.zeroLineWidth[n]=i.zerolinewidth),"ticks"in i&&i.ticks?r.lineTickEnable[n]=!0:r.lineTickEnable[n]=!1,"ticklen"in i&&(r.lineTickLength[n]=r._defaultLineTickLength[n]=i.ticklen),"tickcolor"in i&&(r.lineTickColor[n]=U2(i.tickcolor)),"tickwidth"in i&&(r.lineTickWidth[n]=i.tickwidth),"tickangle"in i&&(r.tickAngle[n]=i.tickangle==="auto"?-3600:Math.PI*-i.tickangle/180),"showticklabels"in i&&(r.tickEnable[n]=i.showticklabels),"tickfont"in i&&(i.tickfont.color&&(r.tickColor[n]=U2(i.tickfont.color)),i.tickfont.family&&(r.tickFont[n]=i.tickfont.family),i.tickfont.size&&(r.tickSize[n]=i.tickfont.size),i.tickfont.weight&&(r.tickFontWeight[n]=i.tickfont.weight),i.tickfont.style&&(r.tickFontStyle[n]=i.tickfont.style),i.tickfont.variant&&(r.tickFontVariant[n]=i.tickfont.variant)),"mirror"in i?["ticks","all","allticks"].indexOf(i.mirror)!==-1?(r.lineTickMirror[n]=!0,r.lineMirror[n]=!0):i.mirror===!0?(r.lineTickMirror[n]=!1,r.lineMirror[n]=!0):(r.lineTickMirror[n]=!1,r.lineMirror[n]=!1):r.lineMirror[n]=!1,"showbackground"in i&&i.showbackground!==!1?(r.backgroundEnable[n]=!0,r.backgroundColor[n]=U2(i.backgroundcolor)):r.backgroundEnable[n]=!1}};function tPt(e,t){var r=new tPe;return r.merge(e,t),r}rPe.exports=tPt});var oPe=ye((pvr,aPe)=>{"use strict";var rPt=Jy(),iPt=["xaxis","yaxis","zaxis"];function nPe(){this.enabled=[!0,!0,!0],this.colors=[[0,0,0,1],[0,0,0,1],[0,0,0,1]],this.drawSides=[!0,!0,!0],this.lineWidth=[1,1,1]}var nPt=nPe.prototype;nPt.merge=function(e){for(var t=0;t<3;++t){var r=e[iPt[t]];if(!r.visible){this.enabled[t]=!1,this.drawSides[t]=!1;continue}this.enabled[t]=r.showspikes,this.colors[t]=rPt(r.spikecolor),this.drawSides[t]=r.spikesides,this.lineWidth[t]=r.spikethickness}};function aPt(e){var t=new nPe;return t.merge(e),t}aPe.exports=aPt});var uPe=ye((gvr,lPe)=>{"use strict";lPe.exports=cPt;var sPe=Qa(),oPt=Mr(),sPt=["xaxis","yaxis","zaxis"],lPt=[0,0,0];function uPt(e){for(var t=new Array(3),r=0;r<3;++r){for(var n=e[r],i=new Array(n.length),a=0;a/g," "));i[a]=u,o.tickmode=s}}t.ticks=i;for(var a=0;a<3;++a){lPt[a]=.5*(e.glplot.bounds[0][a]+e.glplot.bounds[1][a]);for(var c=0;c<2;++c)t.bounds[c][a]=e.glplot.bounds[c][a]}e.contourLevels=uPt(i)}});var gPe=ye((mvr,pPe)=>{"use strict";var hPe=Rd().gl_plot3d,fPt=hPe.createCamera,cPe=hPe.createScene,hPt=$Le(),dPt=EL(),JD=ba(),up=Mr(),KD=up.preserveDrawingBuffer(),$D=Qa(),Kg=Nc(),vPt=Jy(),pPt=pZ(),gPt=DU(),mPt=iPe(),yPt=oPe(),_Pt=uPe(),xPt=wg().applyAutorangeOptions,VE,YD,dPe=!1;function vPe(e,t){var r=document.createElement("div"),n=e.container;this.graphDiv=e.graphDiv;var i=document.createElementNS("http://www.w3.org/2000/svg","svg");i.style.position="absolute",i.style.top=i.style.left="0px",i.style.width=i.style.height="100%",i.style["z-index"]=20,i.style["pointer-events"]="none",r.appendChild(i),this.svgContainer=i,r.id=e.id,r.style.position="absolute",r.style.top=r.style.left="0px",r.style.width=r.style.height="100%",n.appendChild(r),this.fullLayout=t,this.id=e.id||"scene",this.fullSceneLayout=t[this.id],this.plotArgs=[[],{},{}],this.axesOptions=mPt(t,t[this.id]),this.spikeOptions=yPt(t[this.id]),this.container=r,this.staticMode=!!e.staticPlot,this.pixelRatio=this.pixelRatio||e.plotGlPixelRatio||2,this.dataScale=[1,1,1],this.contourLevels=[[],[],[]],this.convertAnnotations=JD.getComponentMethod("annotations3d","convert"),this.drawAnnotations=JD.getComponentMethod("annotations3d","draw"),this.initializeGLPlot()}var wv=vPe.prototype;wv.prepareOptions=function(){var e=this,t={canvas:e.canvas,gl:e.gl,glOptions:{preserveDrawingBuffer:KD,premultipliedAlpha:!0,antialias:!0},container:e.container,axes:e.axesOptions,spikes:e.spikeOptions,pickRadius:10,snapToData:!0,autoScale:!0,autoBounds:!1,cameraObject:e.camera,pixelRatio:e.pixelRatio};if(e.staticMode){if(!YD&&(VE=document.createElement("canvas"),YD=hPt({canvas:VE,preserveDrawingBuffer:!0,premultipliedAlpha:!0,antialias:!0}),!YD))throw new Error("error creating static canvas/context for image server");t.gl=YD,t.canvas=VE}return t};var fPe=!0;wv.tryCreatePlot=function(){var e=this,t=e.prepareOptions(),r=!0;try{e.glplot=cPe(t)}catch(n){if(e.staticMode||!fPe||KD)r=!1;else{up.warn(["webgl setup failed possibly due to","false preserveDrawingBuffer config.","The mobile/tablet device may not be detected by is-mobile module.","Enabling preserveDrawingBuffer in second attempt to create webgl scene..."].join(" "));try{KD=t.glOptions.preserveDrawingBuffer=!0,e.glplot=cPe(t)}catch(i){KD=t.glOptions.preserveDrawingBuffer=!1,r=!1}}}return fPe=!1,r};wv.initializeGLCamera=function(){var e=this,t=e.fullSceneLayout.camera,r=t.projection.type==="orthographic";e.camera=fPt(e.container,{center:[t.center.x,t.center.y,t.center.z],eye:[t.eye.x,t.eye.y,t.eye.z],up:[t.up.x,t.up.y,t.up.z],_ortho:r,zoomMin:.01,zoomMax:100,mode:"orbit"})};wv.initializeGLPlot=function(){var e=this;e.initializeGLCamera();var t=e.tryCreatePlot();if(!t)return pPt(e);e.traces={},e.make4thDimension();var r=e.graphDiv,n=r.layout,i=function(){var o={};return e.isCameraChanged(n)&&(o[e.id+".camera"]=e.getCamera()),e.isAspectChanged(n)&&(o[e.id+".aspectratio"]=e.glplot.getAspectratio(),n[e.id].aspectmode!=="manual"&&(e.fullSceneLayout.aspectmode=n[e.id].aspectmode=o[e.id+".aspectmode"]="manual")),o},a=function(o){if(o.fullSceneLayout.dragmode!==!1){var s=i();o.saveLayout(n),o.graphDiv.emit("plotly_relayout",s)}};return e.glplot.canvas&&(e.glplot.canvas.addEventListener("mouseup",function(){a(e)}),e.glplot.canvas.addEventListener("touchstart",function(){dPe=!0}),e.glplot.canvas.addEventListener("wheel",function(o){if(r._context._scrollZoom.gl3d){if(e.camera._ortho){var s=o.deltaX>o.deltaY?1.1:.9090909090909091,l=e.glplot.getAspectratio();e.glplot.setAspectratio({x:s*l.x,y:s*l.y,z:s*l.z})}a(e)}},dPt?{passive:!1}:!1),e.glplot.canvas.addEventListener("mousemove",function(){if(e.fullSceneLayout.dragmode!==!1&&e.camera.mouseListener.buttons!==0){var o=i();e.graphDiv.emit("plotly_relayouting",o)}}),e.staticMode||e.glplot.canvas.addEventListener("webglcontextlost",function(o){r&&r.emit&&r.emit("plotly_webglcontextlost",{event:o,layer:e.id})},!1)),e.glplot.oncontextloss=function(){e.recoverContext()},e.glplot.onrender=function(){e.render()},!0};wv.render=function(){var e=this,t=e.graphDiv,r,n=e.svgContainer,i=e.container.getBoundingClientRect();t._fullLayout._calcInverseTransform(t);var a=t._fullLayout._invScaleX,o=t._fullLayout._invScaleY,s=i.width*a,l=i.height*o;n.setAttributeNS(null,"viewBox","0 0 "+s+" "+l),n.setAttributeNS(null,"width",s),n.setAttributeNS(null,"height",l),_Pt(e),e.glplot.axes.update(e.axesOptions);for(var u=Object.keys(e.traces),c=null,f=e.glplot.selection,h=0;h")):r.type==="isosurface"||r.type==="volume"?(g.valueLabel=$D.hoverLabelText(e._mockAxis,e._mockAxis.d2l(f.traceCoordinate[3]),r.valuehoverformat),_.push("value: "+g.valueLabel),f.textLabel&&_.push(f.textLabel),L=_.join("
")):L=f.textLabel;var C={x:f.traceCoordinate[0],y:f.traceCoordinate[1],z:f.traceCoordinate[2],data:x._input,fullData:x,curveNumber:x.index,pointNumber:b};Kg.appendArrayPointValue(C,x,b),r._module.eventData&&(C=x._module.eventData(C,f,x,{},b));var M={points:[C]};if(e.fullSceneLayout.hovermode){var p=[];Kg.loneHover({trace:x,x:(.5+.5*v[0]/v[3])*s,y:(.5-.5*v[1]/v[3])*l,xLabel:g.xLabel,yLabel:g.yLabel,zLabel:g.zLabel,text:L,name:c.name,color:Kg.castHoverOption(x,b,"bgcolor")||c.color,borderColor:Kg.castHoverOption(x,b,"bordercolor"),fontFamily:Kg.castHoverOption(x,b,"font.family"),fontSize:Kg.castHoverOption(x,b,"font.size"),fontColor:Kg.castHoverOption(x,b,"font.color"),nameLength:Kg.castHoverOption(x,b,"namelength"),textAlign:Kg.castHoverOption(x,b,"align"),hovertemplate:up.castOption(x,b,"hovertemplate"),hovertemplateLabels:up.extendFlat({},C,g),eventData:[C]},{container:n,gd:t,inOut_bbox:p}),C.bbox=p[0]}f.distance<5&&(f.buttons||dPe)?t.emit("plotly_click",M):t.emit("plotly_hover",M),this.oldEventData=M}else Kg.loneUnhover(n),this.oldEventData&&t.emit("plotly_unhover",this.oldEventData),this.oldEventData=void 0;e.drawAnnotations(e)};wv.recoverContext=function(){var e=this;e.glplot.dispose();var t=function(){if(e.glplot.gl.isContextLost()){requestAnimationFrame(t);return}if(!e.initializeGLPlot()){up.error("Catastrophic and unrecoverable WebGL error. Context lost.");return}e.plot.apply(e,e.plotArgs)};requestAnimationFrame(t)};var HE=["xaxis","yaxis","zaxis"];function bPt(e,t,r){for(var n=e.fullSceneLayout,i=0;i<3;i++){var a=HE[i],o=a.charAt(0),s=n[a],l=t[o],u=t[o+"calendar"],c=t["_"+o+"length"];if(!up.isArrayOrTypedArray(l))r[0][i]=Math.min(r[0][i],0),r[1][i]=Math.max(r[1][i],c-1);else for(var f,h=0;h<(c||l.length);h++)if(up.isArrayOrTypedArray(l[h]))for(var d=0;dx[1][o])x[0][o]=-1,x[1][o]=1;else{var T=x[1][o]-x[0][o];x[0][o]-=T/32,x[1][o]+=T/32}if(E=[x[0][o],x[1][o]],E=xPt(E,l),x[0][o]=E[0],x[1][o]=E[1],l.isReversed()){var F=x[0][o];x[0][o]=x[1][o],x[1][o]=F}}else E=l.range,x[0][o]=l.r2l(E[0]),x[1][o]=l.r2l(E[1]);x[0][o]===x[1][o]&&(x[0][o]-=1,x[1][o]+=1),b[o]=x[1][o]-x[0][o],l.range=[x[0][o],x[1][o]],l.limitRange(),n.glplot.setBounds(o,{min:l.range[0]*d[o],max:l.range[1]*d[o]})}var q,V=c.aspectmode;if(V==="cube")q=[1,1,1];else if(V==="manual"){var H=c.aspectratio;q=[H.x,H.y,H.z]}else if(V==="auto"||V==="data"){var X=[1,1,1];for(o=0;o<3;++o){l=c[HE[o]],u=l.type;var G=g[u];X[o]=Math.pow(G.acc,1/G.count)/d[o]}V==="data"||Math.max.apply(null,X)/Math.min.apply(null,X)<=4?q=X:q=[1,1,1]}else throw new Error("scene.js aspectRatio was not one of the enumerated types");c.aspectratio.x=f.aspectratio.x=q[0],c.aspectratio.y=f.aspectratio.y=q[1],c.aspectratio.z=f.aspectratio.z=q[2],n.glplot.setAspectratio(c.aspectratio),n.viewInitial.aspectratio||(n.viewInitial.aspectratio={x:c.aspectratio.x,y:c.aspectratio.y,z:c.aspectratio.z}),n.viewInitial.aspectmode||(n.viewInitial.aspectmode=c.aspectmode);var N=c.domain||null,W=t._size||null;if(N&&W){var re=n.container.style;re.position="absolute",re.left=W.l+N.x[0]*W.w+"px",re.top=W.t+(1-N.y[1])*W.h+"px",re.width=W.w*(N.x[1]-N.x[0])+"px",re.height=W.h*(N.y[1]-N.y[0])+"px"}n.glplot.redraw()}};wv.destroy=function(){var e=this;e.glplot&&(e.camera.mouseListener.enabled=!1,e.container.removeEventListener("wheel",e.camera.wheelListener),e.camera=null,e.glplot.dispose(),e.container.parentNode.removeChild(e.container),e.glplot=null)};function TPt(e){return[[e.eye.x,e.eye.y,e.eye.z],[e.center.x,e.center.y,e.center.z],[e.up.x,e.up.y,e.up.z]]}function APt(e){return{up:{x:e.up[0],y:e.up[1],z:e.up[2]},center:{x:e.center[0],y:e.center[1],z:e.center[2]},eye:{x:e.eye[0],y:e.eye[1],z:e.eye[2]},projection:{type:e._ortho===!0?"orthographic":"perspective"}}}wv.getCamera=function(){var e=this;return e.camera.view.recalcMatrix(e.camera.view.lastT()),APt(e.camera)};wv.setViewport=function(e){var t=this,r=e.camera;t.camera.lookAt.apply(this,TPt(r)),t.glplot.setAspectratio(e.aspectratio);var n=r.projection.type==="orthographic",i=t.camera._ortho;n!==i&&(t.glplot.redraw(),t.glplot.clearRGBA(),t.glplot.dispose(),t.initializeGLPlot())};wv.isCameraChanged=function(e){var t=this,r=t.getCamera(),n=up.nestedProperty(e,t.id+".camera"),i=n.get();function a(u,c,f,h){var d=["up","center","eye"],v=["x","y","z"];return c[d[f]]&&u[d[f]][v[h]]===c[d[f]][v[h]]}var o=!1;if(i===void 0)o=!0;else{for(var s=0;s<3;s++)for(var l=0;l<3;l++)if(!a(r,i,s,l)){o=!0;break}(!i.projection||r.projection&&r.projection.type!==i.projection.type)&&(o=!0)}return o};wv.isAspectChanged=function(e){var t=this,r=t.glplot.getAspectratio(),n=up.nestedProperty(e,t.id+".aspectratio"),i=n.get();return i===void 0||i.x!==r.x||i.y!==r.y||i.z!==r.z};wv.saveLayout=function(e){var t=this,r=t.fullLayout,n,i,a,o,s,l,u=t.isCameraChanged(e),c=t.isAspectChanged(e),f=u||c;if(f){var h={};if(u&&(n=t.getCamera(),i=up.nestedProperty(e,t.id+".camera"),a=i.get(),h[t.id+".camera"]=a),c&&(o=t.glplot.getAspectratio(),s=up.nestedProperty(e,t.id+".aspectratio"),l=s.get(),h[t.id+".aspectratio"]=l),JD.call("_storeDirectGUIEdit",e,r._preGUI,h),u){i.set(n);var d=up.nestedProperty(r,t.id+".camera");d.set(n)}if(c){s.set(o);var v=up.nestedProperty(r,t.id+".aspectratio");v.set(o),t.glplot.redraw()}}return f};wv.updateFx=function(e,t){var r=this,n=r.camera;if(n)if(e==="orbit")n.mode="orbit",n.keyBindingMode="rotate";else if(e==="turntable"){n.up=[0,0,1],n.mode="turntable",n.keyBindingMode="rotate";var i=r.graphDiv,a=i._fullLayout,o=r.fullSceneLayout.camera,s=o.up.x,l=o.up.y,u=o.up.z;if(u/Math.sqrt(s*s+l*l+u*u)<.999){var c=r.id+".camera.up",f={x:0,y:0,z:1},h={};h[c]=f;var d=i.layout;JD.call("_storeDirectGUIEdit",d,a._preGUI,h),o.up=f,up.nestedProperty(d,c).set(f)}}else n.keyBindingMode=e;r.fullSceneLayout.hovermode=t};function SPt(e,t,r){for(var n=0,i=r-1;n0)for(var s=255/o,l=0;l<3;++l)e[a+l]=Math.min(s*e[a+l],255)}}wv.toImage=function(e){var t=this;e||(e="png"),t.staticMode&&t.container.appendChild(VE),t.glplot.redraw();var r=t.glplot.gl,n=r.drawingBufferWidth,i=r.drawingBufferHeight;r.bindFramebuffer(r.FRAMEBUFFER,null);var a=new Uint8Array(n*i*4);r.readPixels(0,0,n,i,r.RGBA,r.UNSIGNED_BYTE,a),SPt(a,n,i),MPt(a,n,i);var o=document.createElement("canvas");o.width=n,o.height=i;var s=o.getContext("2d",{willReadFrequently:!0}),l=s.createImageData(n,i);l.data.set(a),s.putImageData(l,0,0);var u;switch(e){case"jpeg":u=o.toDataURL("image/jpeg");break;case"webp":u=o.toDataURL("image/webp");break;default:u=o.toDataURL("image/png")}return t.staticMode&&t.container.removeChild(VE),u};wv.setConvert=function(){for(var e=this,t=0;t<3;t++){var r=e.fullSceneLayout[HE[t]];$D.setConvert(r,e.fullLayout),r.setScale=up.noop}};wv.make4thDimension=function(){var e=this,t=e.graphDiv,r=t._fullLayout;e._mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},$D.setConvert(e._mockAxis,r)};pPe.exports=vPe});var yPe=ye((yvr,mPe)=>{"use strict";mPe.exports={scene:{valType:"subplotid",dflt:"scene",editType:"calc+clearAxisTypes"}}});var mZ=ye((_vr,_Pe)=>{"use strict";var EPt=va(),cs=Cd(),gZ=no().extendFlat,kPt=Bu().overrideAll;_Pe.exports=kPt({visible:cs.visible,showspikes:{valType:"boolean",dflt:!0},spikesides:{valType:"boolean",dflt:!0},spikethickness:{valType:"number",min:0,dflt:2},spikecolor:{valType:"color",dflt:EPt.defaultLine},showbackground:{valType:"boolean",dflt:!1},backgroundcolor:{valType:"color",dflt:"rgba(204, 204, 204, 0.5)"},showaxeslabels:{valType:"boolean",dflt:!0},color:cs.color,categoryorder:cs.categoryorder,categoryarray:cs.categoryarray,title:{text:cs.title.text,font:cs.title.font},type:gZ({},cs.type,{values:["-","linear","log","date","category"]}),autotypenumbers:cs.autotypenumbers,autorange:cs.autorange,autorangeoptions:{minallowed:cs.autorangeoptions.minallowed,maxallowed:cs.autorangeoptions.maxallowed,clipmin:cs.autorangeoptions.clipmin,clipmax:cs.autorangeoptions.clipmax,include:cs.autorangeoptions.include,editType:"plot"},rangemode:cs.rangemode,minallowed:cs.minallowed,maxallowed:cs.maxallowed,range:gZ({},cs.range,{items:[{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1}},{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1}}],anim:!1}),tickmode:cs.minor.tickmode,nticks:cs.nticks,tick0:cs.tick0,dtick:cs.dtick,tickvals:cs.tickvals,ticktext:cs.ticktext,ticks:cs.ticks,mirror:cs.mirror,ticklen:cs.ticklen,tickwidth:cs.tickwidth,tickcolor:cs.tickcolor,showticklabels:cs.showticklabels,labelalias:cs.labelalias,tickfont:cs.tickfont,tickangle:cs.tickangle,tickprefix:cs.tickprefix,showtickprefix:cs.showtickprefix,ticksuffix:cs.ticksuffix,showticksuffix:cs.showticksuffix,showexponent:cs.showexponent,exponentformat:cs.exponentformat,minexponent:cs.minexponent,separatethousands:cs.separatethousands,tickformat:cs.tickformat,tickformatstops:cs.tickformatstops,hoverformat:cs.hoverformat,showline:cs.showline,linecolor:cs.linecolor,linewidth:cs.linewidth,showgrid:cs.showgrid,gridcolor:gZ({},cs.gridcolor,{dflt:"rgb(204, 204, 204)"}),gridwidth:cs.gridwidth,zeroline:cs.zeroline,zerolinecolor:cs.zerolinecolor,zerolinewidth:cs.zerolinewidth},"plot","from-root")});var bZ=ye((xvr,xPe)=>{"use strict";var yZ=mZ(),CPt=Ju().attributes,_Z=no().extendFlat,LPt=Mr().counterRegex;function xZ(e,t,r){return{x:{valType:"number",dflt:e,editType:"camera"},y:{valType:"number",dflt:t,editType:"camera"},z:{valType:"number",dflt:r,editType:"camera"},editType:"camera"}}xPe.exports={_arrayAttrRegexps:[LPt("scene",".annotations",!0)],bgcolor:{valType:"color",dflt:"rgba(0,0,0,0)",editType:"plot"},camera:{up:_Z(xZ(0,0,1),{}),center:_Z(xZ(0,0,0),{}),eye:_Z(xZ(1.25,1.25,1.25),{}),projection:{type:{valType:"enumerated",values:["perspective","orthographic"],dflt:"perspective",editType:"calc"},editType:"calc"},editType:"camera"},domain:CPt({name:"scene",editType:"plot"}),aspectmode:{valType:"enumerated",values:["auto","cube","data","manual"],dflt:"auto",editType:"plot",impliedEdits:{"aspectratio.x":void 0,"aspectratio.y":void 0,"aspectratio.z":void 0}},aspectratio:{x:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},y:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},z:{valType:"number",min:0,editType:"plot",impliedEdits:{"^aspectmode":"manual"}},editType:"plot",impliedEdits:{aspectmode:"manual"}},xaxis:yZ,yaxis:yZ,zaxis:yZ,dragmode:{valType:"enumerated",values:["orbit","turntable","zoom","pan",!1],editType:"plot"},hovermode:{valType:"enumerated",values:["closest",!1],dflt:"closest",editType:"modebar"},uirevision:{valType:"any",editType:"none"},editType:"plot"}});var APe=ye((bvr,TPe)=>{"use strict";var PPt=id().mix,bPe=Mr(),IPt=Vs(),RPt=mZ(),DPt=yU(),zPt=JM(),wPe=["xaxis","yaxis","zaxis"],FPt=100*136/187;TPe.exports=function(t,r,n){var i,a;function o(u,c){return bPe.coerce(i,a,RPt,u,c)}for(var s=0;s{"use strict";var qPt=Mr(),OPt=va(),BPt=ba(),NPt=k_(),UPt=APe(),SPe=bZ(),VPt=kd().getSubplotData,MPe="gl3d";EPe.exports=function(t,r,n){var i=r._basePlotModules.length>1;function a(o){if(!i){var s=qPt.validate(t[o],SPe[o]);if(s)return t[o]}}NPt(t,r,n,{type:MPe,attributes:SPe,handleDefaults:HPt,fullLayout:r,font:r.font,fullData:n,getDfltFromLayout:a,autotypenumbersDflt:r.autotypenumbers,paper_bgcolor:r.paper_bgcolor,calendar:r.calendar})};function HPt(e,t,r,n){for(var i=r("bgcolor"),a=OPt.combine(i,n.paper_bgcolor),o=["up","center","eye"],s=0;s.999)&&(h="turntable")}else h="turntable";r("dragmode",h),r("hovermode",n.getDfltFromLayout("hovermode"))}});var $_=ye(cp=>{"use strict";var GPt=Bu().overrideAll,jPt=B1(),WPt=gPe(),ZPt=kd().getSubplotData,XPt=Mr(),YPt=Zp(),B5="gl3d",wZ="scene";cp.name=B5;cp.attr=wZ;cp.idRoot=wZ;cp.idRegex=cp.attrRegex=XPt.counterRegex("scene");cp.attributes=yPe();cp.layoutAttributes=bZ();cp.baseLayoutAttrOverrides=GPt({hoverlabel:jPt.hoverlabel},"plot","nested");cp.supplyLayoutDefaults=kPe();cp.plot=function(t){for(var r=t._fullLayout,n=t._fullData,i=r._subplots[B5],a=0;a{"use strict";CPe.exports={plot:NLe(),attributes:dZ(),markerSymbols:ZD(),supplyDefaults:WLe(),colorbar:[{container:"marker",min:"cmin",max:"cmax"},{container:"line",min:"cmin",max:"cmax"}],calc:XLe(),moduleType:"trace",name:"scatter3d",basePlotModule:$_(),categories:["gl3d","symbols","showLegend","scatter-like"],meta:{}}});var IPe=ye((Svr,PPe)=>{"use strict";PPe.exports=LPe()});var GE=ye((Mvr,zPe)=>{"use strict";var RPe=va(),KPt=Kl(),TZ=Oc().axisHoverFormat,JPt=Wo().hovertemplateAttrs,DPe=vl(),AZ=no().extendFlat,$Pt=Bu().overrideAll;function SZ(e){return{valType:"boolean",dflt:!1}}function MZ(e){return{show:{valType:"boolean",dflt:!1},start:{valType:"number",dflt:null,editType:"plot"},end:{valType:"number",dflt:null,editType:"plot"},size:{valType:"number",dflt:null,min:0,editType:"plot"},project:{x:SZ("x"),y:SZ("y"),z:SZ("z")},color:{valType:"color",dflt:RPe.defaultLine},usecolormap:{valType:"boolean",dflt:!1},width:{valType:"number",min:1,max:16,dflt:2},highlight:{valType:"boolean",dflt:!0},highlightcolor:{valType:"color",dflt:RPe.defaultLine},highlightwidth:{valType:"number",min:1,max:16,dflt:2}}}var EZ=zPe.exports=$Pt(AZ({z:{valType:"data_array"},x:{valType:"data_array"},y:{valType:"data_array"},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:JPt(),xhoverformat:TZ("x"),yhoverformat:TZ("y"),zhoverformat:TZ("z"),connectgaps:{valType:"boolean",dflt:!1,editType:"calc"},surfacecolor:{valType:"data_array"}},KPt("",{colorAttr:"z or surfacecolor",showScaleDflt:!0,autoColorDflt:!1,editTypeOverride:"calc"}),{contours:{x:MZ("x"),y:MZ("y"),z:MZ("z")},hidesurface:{valType:"boolean",dflt:!1},lightposition:{x:{valType:"number",min:-1e5,max:1e5,dflt:10},y:{valType:"number",min:-1e5,max:1e5,dflt:1e4},z:{valType:"number",min:-1e5,max:1e5,dflt:0}},lighting:{ambient:{valType:"number",min:0,max:1,dflt:.8},diffuse:{valType:"number",min:0,max:1,dflt:.8},specular:{valType:"number",min:0,max:2,dflt:.05},roughness:{valType:"number",min:0,max:1,dflt:.5},fresnel:{valType:"number",min:0,max:5,dflt:.2}},opacity:{valType:"number",min:0,max:1,dflt:1},opacityscale:{valType:"any",editType:"calc"},hoverinfo:AZ({},DPe.hoverinfo),showlegend:AZ({},DPe.showlegend,{dflt:!1})}),"calc","nested");EZ.x.editType=EZ.y.editType=EZ.z.editType="calc+clearAxisTypes"});var CZ=ye((Evr,OPe)=>{"use strict";var QPt=ba(),FPe=Mr(),eIt=Uh(),tIt=GE(),kZ=.1;function rIt(e,t){for(var r=[],n=32,i=0;i{"use strict";var BPe=zv();NPe.exports=function(t,r){r.surfacecolor?BPe(t,r,{vals:r.surfacecolor,containerStr:"",cLetter:"c"}):BPe(t,r,{vals:r.z,containerStr:"",cLetter:"c"})}});var ZPe=ye((Cvr,WPe)=>{"use strict";var aIt=Rd().gl_surface3d,N5=Rd().ndarray,oIt=Rd().ndarray_linear_interpolate.d2,sIt=QI(),lIt=e8(),jE=Mr().isArrayOrTypedArray,uIt=$y().parseColorScale,VPe=Jy(),cIt=Mu().extractOpts;function GPe(e,t,r){this.scene=e,this.uid=r,this.surface=t,this.data=null,this.showContour=[!1,!1,!1],this.contourStart=[null,null,null],this.contourEnd=[null,null,null],this.contourSize=[0,0,0],this.minValues=[1/0,1/0,1/0],this.maxValues=[-1/0,-1/0,-1/0],this.dataScaleX=1,this.dataScaleY=1,this.refineData=!0,this.objectOffset=[0,0,0]}var Jg=GPe.prototype;Jg.getXat=function(e,t,r,n){var i=jE(this.data.x)?jE(this.data.x[0])?this.data.x[t][e]:this.data.x[e]:e;return r===void 0?i:n.d2l(i,0,r)};Jg.getYat=function(e,t,r,n){var i=jE(this.data.y)?jE(this.data.y[0])?this.data.y[t][e]:this.data.y[t]:t;return r===void 0?i:n.d2l(i,0,r)};Jg.getZat=function(e,t,r,n){var i=this.data.z[t][e];return i===null&&this.data.connectgaps&&this.data._interpolatedZ&&(i=this.data._interpolatedZ[t][e]),r===void 0?i:n.d2l(i,0,r)};Jg.handlePick=function(e){if(e.object===this.surface){var t=(e.data.index[0]-1)/this.dataScaleX-1,r=(e.data.index[1]-1)/this.dataScaleY-1,n=Math.max(Math.min(Math.round(t),this.data.z[0].length-1),0),i=Math.max(Math.min(Math.round(r),this.data._ylength-1),0);e.index=[n,i],e.traceCoordinate=[this.getXat(n,i),this.getYat(n,i),this.getZat(n,i)],e.dataCoordinate=[this.getXat(n,i,this.data.xcalendar,this.scene.fullSceneLayout.xaxis),this.getYat(n,i,this.data.ycalendar,this.scene.fullSceneLayout.yaxis),this.getZat(n,i,this.data.zcalendar,this.scene.fullSceneLayout.zaxis)];for(var a=0;a<3;a++){var o=e.dataCoordinate[a];o!=null&&(e.dataCoordinate[a]*=this.scene.dataScale[a])}var s=this.data.hovertext||this.data.text;return jE(s)&&s[i]&&s[i][n]!==void 0?e.textLabel=s[i][n]:s?e.textLabel=s:e.textLabel="",e.data.dataCoordinate=e.dataCoordinate.slice(),this.surface.highlight(e.data),this.scene.glplot.spikes.position=e.dataCoordinate,!0}};function fIt(e){var t=e[0].rgb,r=e[e.length-1].rgb;return t[0]===r[0]&&t[1]===r[1]&&t[2]===r[2]&&t[3]===r[3]}var U5=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997,1009,1013,1019,1021,1031,1033,1039,1049,1051,1061,1063,1069,1087,1091,1093,1097,1103,1109,1117,1123,1129,1151,1153,1163,1171,1181,1187,1193,1201,1213,1217,1223,1229,1231,1237,1249,1259,1277,1279,1283,1289,1291,1297,1301,1303,1307,1319,1321,1327,1361,1367,1373,1381,1399,1409,1423,1427,1429,1433,1439,1447,1451,1453,1459,1471,1481,1483,1487,1489,1493,1499,1511,1523,1531,1543,1549,1553,1559,1567,1571,1579,1583,1597,1601,1607,1609,1613,1619,1621,1627,1637,1657,1663,1667,1669,1693,1697,1699,1709,1721,1723,1733,1741,1747,1753,1759,1777,1783,1787,1789,1801,1811,1823,1831,1847,1861,1867,1871,1873,1877,1879,1889,1901,1907,1913,1931,1933,1949,1951,1973,1979,1987,1993,1997,1999,2003,2011,2017,2027,2029,2039,2053,2063,2069,2081,2083,2087,2089,2099,2111,2113,2129,2131,2137,2141,2143,2153,2161,2179,2203,2207,2213,2221,2237,2239,2243,2251,2267,2269,2273,2281,2287,2293,2297,2309,2311,2333,2339,2341,2347,2351,2357,2371,2377,2381,2383,2389,2393,2399,2411,2417,2423,2437,2441,2447,2459,2467,2473,2477,2503,2521,2531,2539,2543,2549,2551,2557,2579,2591,2593,2609,2617,2621,2633,2647,2657,2659,2663,2671,2677,2683,2687,2689,2693,2699,2707,2711,2713,2719,2729,2731,2741,2749,2753,2767,2777,2789,2791,2797,2801,2803,2819,2833,2837,2843,2851,2857,2861,2879,2887,2897,2903,2909,2917,2927,2939,2953,2957,2963,2969,2971,2999];function hIt(e,t){if(e0){r=U5[n];break}return r}function vIt(e,t){if(!(e<1||t<1)){for(var r=LZ(e),n=LZ(t),i=1,a=0;aQD;)n--,n/=dIt(n),n++,n1?i:1};function gIt(e,t,r){var n=r[8]+r[2]*t[0]+r[5]*t[1];return e[0]=(r[6]+r[0]*t[0]+r[3]*t[1])/n,e[1]=(r[7]+r[1]*t[0]+r[4]*t[1])/n,e}function mIt(e,t,r){return yIt(e,t,gIt,r),e}function yIt(e,t,r,n){for(var i=[0,0],a=e.shape[0],o=e.shape[1],s=0;s0&&this.contourStart[n]!==null&&this.contourEnd[n]!==null&&this.contourEnd[n]>this.contourStart[n]))for(t[n]=!0,i=this.contourStart[n];ih&&(this.minValues[u]=h),this.maxValues[u]{"use strict";XPe.exports={attributes:GE(),supplyDefaults:CZ().supplyDefaults,colorbar:{min:"cmin",max:"cmax"},calc:UPe(),plot:ZPe(),moduleType:"trace",name:"surface",basePlotModule:$_(),categories:["gl3d","2dMap","showLegend"],meta:{}}});var JPe=ye((Pvr,KPe)=>{"use strict";KPe.exports=YPe()});var V5=ye((Ivr,QPe)=>{"use strict";var bIt=Kl(),PZ=Oc().axisHoverFormat,wIt=Wo().hovertemplateAttrs,Q_=GE(),$Pe=vl(),ex=no().extendFlat;QPe.exports=ex({x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},i:{valType:"data_array",editType:"calc"},j:{valType:"data_array",editType:"calc"},k:{valType:"data_array",editType:"calc"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:wIt({editType:"calc"}),xhoverformat:PZ("x"),yhoverformat:PZ("y"),zhoverformat:PZ("z"),delaunayaxis:{valType:"enumerated",values:["x","y","z"],dflt:"z",editType:"calc"},alphahull:{valType:"number",dflt:-1,editType:"calc"},intensity:{valType:"data_array",editType:"calc"},intensitymode:{valType:"enumerated",values:["vertex","cell"],dflt:"vertex",editType:"calc"},color:{valType:"color",editType:"calc"},vertexcolor:{valType:"data_array",editType:"calc"},facecolor:{valType:"data_array",editType:"calc"}},bIt("",{colorAttr:"`intensity`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:Q_.opacity,flatshading:{valType:"boolean",dflt:!1,editType:"calc"},contour:{show:ex({},Q_.contours.x.show,{}),color:Q_.contours.x.color,width:Q_.contours.x.width,editType:"calc"},lightposition:{x:ex({},Q_.lightposition.x,{dflt:1e5}),y:ex({},Q_.lightposition.y,{dflt:1e5}),z:ex({},Q_.lightposition.z,{dflt:0}),editType:"calc"},lighting:ex({vertexnormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-12,editType:"calc"},facenormalsepsilon:{valType:"number",min:0,max:1,dflt:1e-6,editType:"calc"},editType:"calc"},Q_.lighting),hoverinfo:ex({},$Pe.hoverinfo,{editType:"calc"}),showlegend:ex({},$Pe.showlegend,{dflt:!1})})});var tz=ye((Rvr,tIe)=>{"use strict";var TIt=Kl(),ez=Oc().axisHoverFormat,AIt=Wo().hovertemplateAttrs,WE=V5(),eIe=vl(),IZ=no().extendFlat,SIt=Bu().overrideAll;function RZ(e){return{show:{valType:"boolean",dflt:!1},locations:{valType:"data_array",dflt:[]},fill:{valType:"number",min:0,max:1,dflt:1}}}function DZ(e){return{show:{valType:"boolean",dflt:!0},fill:{valType:"number",min:0,max:1,dflt:1}}}var H5=tIe.exports=SIt(IZ({x:{valType:"data_array"},y:{valType:"data_array"},z:{valType:"data_array"},value:{valType:"data_array"},isomin:{valType:"number"},isomax:{valType:"number"},surface:{show:{valType:"boolean",dflt:!0},count:{valType:"integer",dflt:2,min:1},fill:{valType:"number",min:0,max:1,dflt:1},pattern:{valType:"flaglist",flags:["A","B","C","D","E"],extras:["all","odd","even"],dflt:"all"}},spaceframe:{show:{valType:"boolean",dflt:!1},fill:{valType:"number",min:0,max:1,dflt:.15}},slices:{x:RZ("x"),y:RZ("y"),z:RZ("z")},caps:{x:DZ("x"),y:DZ("y"),z:DZ("z")},text:{valType:"string",dflt:"",arrayOk:!0},hovertext:{valType:"string",dflt:"",arrayOk:!0},hovertemplate:AIt(),xhoverformat:ez("x"),yhoverformat:ez("y"),zhoverformat:ez("z"),valuehoverformat:ez("value",1),showlegend:IZ({},eIe.showlegend,{dflt:!1})},TIt("",{colorAttr:"`value`",showScaleDflt:!0,editTypeOverride:"calc"}),{opacity:WE.opacity,lightposition:WE.lightposition,lighting:WE.lighting,flatshading:WE.flatshading,contour:WE.contour,hoverinfo:IZ({},eIe.hoverinfo)}),"calc","nested");H5.flatshading.dflt=!0;H5.lighting.facenormalsepsilon.dflt=0;H5.x.editType=H5.y.editType=H5.z.editType=H5.value.editType="calc+clearAxisTypes"});var zZ=ye((Dvr,iIe)=>{"use strict";var MIt=Mr(),EIt=ba(),kIt=tz(),CIt=Uh();function LIt(e,t,r,n){function i(a,o){return MIt.coerce(e,t,kIt,a,o)}rIe(e,t,r,n,i)}function rIe(e,t,r,n,i){var a=i("isomin"),o=i("isomax");o!=null&&a!==void 0&&a!==null&&a>o&&(t.isomin=null,t.isomax=null);var s=i("x"),l=i("y"),u=i("z"),c=i("value");if(!s||!s.length||!l||!l.length||!u||!u.length||!c||!c.length){t.visible=!1;return}var f=EIt.getComponentMethod("calendars","handleTraceDefaults");f(e,t,["x","y","z"],n),i("valuehoverformat"),["x","y","z"].forEach(function(x){i(x+"hoverformat");var b="caps."+x,g=i(b+".show");g&&i(b+".fill");var E="slices."+x,k=i(E+".show");k&&(i(E+".fill"),i(E+".locations"))});var h=i("spaceframe.show");h&&i("spaceframe.fill");var d=i("surface.show");d&&(i("surface.count"),i("surface.fill"),i("surface.pattern"));var v=i("contour.show");v&&(i("contour.color"),i("contour.width")),["text","hovertext","hovertemplate","lighting.ambient","lighting.diffuse","lighting.specular","lighting.roughness","lighting.fresnel","lighting.vertexnormalsepsilon","lighting.facenormalsepsilon","lightposition.x","lightposition.y","lightposition.z","flatshading","opacity"].forEach(function(x){i(x)}),CIt(e,t,n,i,{prefix:"",cLetter:"c"}),t._length=null}iIe.exports={supplyDefaults:LIt,supplyIsoDefaults:rIe}});var rz=ye((zvr,aIe)=>{"use strict";var qZ=Mr(),PIt=zv();function IIt(e,t){t._len=Math.min(t.u.length,t.v.length,t.w.length,t.x.length,t.y.length,t.z.length),t._u=Gm(t.u,t._len),t._v=Gm(t.v,t._len),t._w=Gm(t.w,t._len),t._x=Gm(t.x,t._len),t._y=Gm(t.y,t._len),t._z=Gm(t.z,t._len);var r=nIe(t);t._gridFill=r.fill,t._Xs=r.Xs,t._Ys=r.Ys,t._Zs=r.Zs,t._len=r.len;var n=0,i,a,o;t.starts&&(i=Gm(t.starts.x||[]),a=Gm(t.starts.y||[]),o=Gm(t.starts.z||[]),n=Math.min(i.length,a.length,o.length)),t._startsX=i||[],t._startsY=a||[],t._startsZ=o||[];var s=0,l=1/0,u;for(u=0;u1&&(k=t[i-1],L=r[i-1],C=n[i-1]),a=0;ak?"-":"+")+"x"),v=v.replace("y",(A>L?"-":"+")+"y"),v=v.replace("z",(_>C?"-":"+")+"z");var T=function(){i=0,M=[],p=[],P=[]};(!i||i{"use strict";var RIt=zv(),DIt=rz().processGrid,iz=rz().filter;oIe.exports=function(t,r){r._len=Math.min(r.x.length,r.y.length,r.z.length,r.value.length),r._x=iz(r.x,r._len),r._y=iz(r.y,r._len),r._z=iz(r.z,r._len),r._value=iz(r.value,r._len);var n=DIt(r);r._gridFill=n.fill,r._Xs=n.Xs,r._Ys=n.Ys,r._Zs=n.Zs,r._len=n.len;for(var i=1/0,a=-1/0,o=0;o{"use strict";sIe.exports=function(t,r,n,i){i=i||t.length;for(var a=new Array(i),o=0;o{"use strict";var zIt=Rd().gl_mesh3d,FIt=$y().parseColorScale,qIt=Mr().isArrayOrTypedArray,OIt=Jy(),BIt=Mu().extractOpts,lIe=G5(),ZE=function(e,t){for(var r=t.length-1;r>0;r--){var n=Math.min(t[r],t[r-1]),i=Math.max(t[r],t[r-1]);if(i>n&&n-1}function ae(bt,Lt){return bt===null?Lt:bt}function _e(bt,Lt,St){T();var Et=[Lt],dt=[St];if(G>=1)Et=[Lt],dt=[St];else if(G>0){var Ht=W(Lt,St);Et=Ht.xyzv,dt=Ht.abc}for(var $t=0;$t-1?St[_r]:P(Br,Or,Nr);Ne>-1?fr[_r]=Ne:fr[_r]=q(Br,Or,Nr,ae(bt,ut))}V(fr[0],fr[1],fr[2])}}function Me(bt,Lt,St){var Et=function(dt,Ht,$t){_e(bt,[Lt[dt],Lt[Ht],Lt[$t]],[St[dt],St[Ht],St[$t]])};Et(0,1,2),Et(2,3,0)}function ke(bt,Lt,St){var Et=function(dt,Ht,$t){_e(bt,[Lt[dt],Lt[Ht],Lt[$t]],[St[dt],St[Ht],St[$t]])};Et(0,1,2),Et(3,0,1),Et(2,3,0),Et(1,2,3)}function ge(bt,Lt,St,Et){var dt=bt[3];dtEt&&(dt=Et);for(var Ht=(bt[3]-dt)/(bt[3]-Lt[3]+1e-9),$t=[],fr=0;fr<4;fr++)$t[fr]=(1-Ht)*bt[fr]+Ht*Lt[fr];return $t}function ie(bt,Lt,St){return bt>=Lt&&bt<=St}function Te(bt){var Lt=.001*(L-A);return bt>=A-Lt&&bt<=L+Lt}function Ee(bt){for(var Lt=[],St=0;St<4;St++){var Et=bt[St];Lt.push([e._x[Et],e._y[Et],e._z[Et],e._value[Et]])}return Lt}var Ae=3;function ze(bt,Lt,St,Et,dt,Ht){Ht||(Ht=1),St=[-1,-1,-1];var $t=!1,fr=[ie(Lt[0][3],Et,dt),ie(Lt[1][3],Et,dt),ie(Lt[2][3],Et,dt)];if(!fr[0]&&!fr[1]&&!fr[2])return!1;var _r=function(Or,Nr,ut){return Te(Nr[0][3])&&Te(Nr[1][3])&&Te(Nr[2][3])?(_e(Or,Nr,ut),!0):Htfr?[E,Ht]:[Ht,k];kt(Lt,_r[0],_r[1])}}var Br=[[Math.min(A,k),Math.max(A,k)],[Math.min(E,L),Math.max(E,L)]];["x","y","z"].forEach(function(Or){for(var Nr=[],ut=0;ut0&&(Le.push(lt.id),Or==="x"?xe.push([lt.distRatio,0,0]):Or==="y"?xe.push([0,lt.distRatio,0]):xe.push([0,0,lt.distRatio]))}else Or==="x"?ht=er(1,d-1):Or==="y"?ht=er(1,v-1):ht=er(1,x-1);Le.length>0&&(Or==="x"?Nr[Ne]=Ct(bt,Le,Ye,Ve,xe,Nr[Ne]):Or==="y"?Nr[Ne]=Yt(bt,Le,Ye,Ve,xe,Nr[Ne]):Nr[Ne]=xr(bt,Le,Ye,Ve,xe,Nr[Ne]),Ne++),ht.length>0&&(Or==="x"?Nr[Ne]=ct(bt,ht,Ye,Ve,Nr[Ne]):Or==="y"?Nr[Ne]=qt(bt,ht,Ye,Ve,Nr[Ne]):Nr[Ne]=rt(bt,ht,Ye,Ve,Nr[Ne]),Ne++)}var Gt=e.caps[Or];Gt.show&&Gt.fill&&(N(Gt.fill),Or==="x"?Nr[Ne]=ct(bt,[0,d-1],Ye,Ve,Nr[Ne]):Or==="y"?Nr[Ne]=qt(bt,[0,v-1],Ye,Ve,Nr[Ne]):Nr[Ne]=rt(bt,[0,x-1],Ye,Ve,Nr[Ne]),Ne++)}}),s===0&&F(),e._meshX=_,e._meshY=C,e._meshZ=M,e._meshIntensity=p,e._Xs=c,e._Ys=f,e._Zs=h}return xt(),e}function UIt(e,t){var r=e.glplot.gl,n=zIt({gl:r}),i=new uIe(e,n,t.uid);return n._trace=i,i.update(t),e.glplot.add(n),i}fIe.exports={findNearestOnAxis:ZE,generateIsoMeshes:cIe,createIsosurfaceTrace:UIt}});var dIe=ye((Bvr,hIe)=>{"use strict";hIe.exports={attributes:tz(),supplyDefaults:zZ().supplyDefaults,calc:OZ(),colorbar:{min:"cmin",max:"cmax"},plot:nz().createIsosurfaceTrace,moduleType:"trace",name:"isosurface",basePlotModule:$_(),categories:["gl3d","showLegend"],meta:{}}});var pIe=ye((Nvr,vIe)=>{"use strict";vIe.exports=dIe()});var UZ=ye((Uvr,mIe)=>{"use strict";var VIt=Kl(),xh=tz(),HIt=GE(),gIe=vl(),NZ=no().extendFlat,GIt=Bu().overrideAll,az=mIe.exports=GIt(NZ({x:xh.x,y:xh.y,z:xh.z,value:xh.value,isomin:xh.isomin,isomax:xh.isomax,surface:xh.surface,spaceframe:{show:{valType:"boolean",dflt:!1},fill:{valType:"number",min:0,max:1,dflt:1}},slices:xh.slices,caps:xh.caps,text:xh.text,hovertext:xh.hovertext,xhoverformat:xh.xhoverformat,yhoverformat:xh.yhoverformat,zhoverformat:xh.zhoverformat,valuehoverformat:xh.valuehoverformat,hovertemplate:xh.hovertemplate},VIt("",{colorAttr:"`value`",showScaleDflt:!0,editTypeOverride:"calc"}),{colorbar:xh.colorbar,opacity:xh.opacity,opacityscale:HIt.opacityscale,lightposition:xh.lightposition,lighting:xh.lighting,flatshading:xh.flatshading,contour:xh.contour,hoverinfo:NZ({},gIe.hoverinfo),showlegend:NZ({},gIe.showlegend,{dflt:!1})}),"calc","nested");az.x.editType=az.y.editType=az.z.editType=az.value.editType="calc+clearAxisTypes"});var _Ie=ye((Vvr,yIe)=>{"use strict";var jIt=Mr(),WIt=UZ(),ZIt=zZ().supplyIsoDefaults,XIt=CZ().opacityscaleDefaults;yIe.exports=function(t,r,n,i){function a(o,s){return jIt.coerce(t,r,WIt,o,s)}ZIt(t,r,n,i,a),XIt(t,r,i,a)}});var TIe=ye((Hvr,wIe)=>{"use strict";var YIt=Rd().gl_mesh3d,KIt=$y().parseColorScale,JIt=Mr().isArrayOrTypedArray,$It=Jy(),QIt=Mu().extractOpts,xIe=G5(),VZ=nz().findNearestOnAxis,e8t=nz().generateIsoMeshes;function bIe(e,t,r){this.scene=e,this.uid=r,this.mesh=t,this.name="",this.data=null,this.showContour=!1}var HZ=bIe.prototype;HZ.handlePick=function(e){if(e.object===this.mesh){var t=e.data.index,r=this.data._meshX[t],n=this.data._meshY[t],i=this.data._meshZ[t],a=this.data._Ys.length,o=this.data._Zs.length,s=VZ(r,this.data._Xs).id,l=VZ(n,this.data._Ys).id,u=VZ(i,this.data._Zs).id,c=e.index=u+o*l+o*a*s;e.traceCoordinate=[this.data._meshX[c],this.data._meshY[c],this.data._meshZ[c],this.data._value[c]];var f=this.data.hovertext||this.data.text;return JIt(f)&&f[c]!==void 0?e.textLabel=f[c]:f&&(e.textLabel=f),!0}};HZ.update=function(e){var t=this.scene,r=t.fullSceneLayout;this.data=e8t(e);function n(l,u,c,f){return u.map(function(h){return l.d2l(h,0,f)*c})}var i=xIe(n(r.xaxis,e._meshX,t.dataScale[0],e.xcalendar),n(r.yaxis,e._meshY,t.dataScale[1],e.ycalendar),n(r.zaxis,e._meshZ,t.dataScale[2],e.zcalendar)),a=xIe(e._meshI,e._meshJ,e._meshK),o={positions:i,cells:a,lightPosition:[e.lightposition.x,e.lightposition.y,e.lightposition.z],ambient:e.lighting.ambient,diffuse:e.lighting.diffuse,specular:e.lighting.specular,roughness:e.lighting.roughness,fresnel:e.lighting.fresnel,vertexNormalsEpsilon:e.lighting.vertexnormalsepsilon,faceNormalsEpsilon:e.lighting.facenormalsepsilon,opacity:e.opacity,opacityscale:e.opacityscale,contourEnable:e.contour.show,contourColor:$It(e.contour.color).slice(0,3),contourWidth:e.contour.width,useFacetNormals:e.flatshading},s=QIt(e);o.vertexIntensity=e._meshIntensity,o.vertexIntensityBounds=[s.min,s.max],o.colormap=KIt(e),this.mesh.update(o)};HZ.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()};function t8t(e,t){var r=e.glplot.gl,n=YIt({gl:r}),i=new bIe(e,n,t.uid);return n._trace=i,i.update(t),e.glplot.add(n),i}wIe.exports=t8t});var SIe=ye((Gvr,AIe)=>{"use strict";AIe.exports={attributes:UZ(),supplyDefaults:_Ie(),calc:OZ(),colorbar:{min:"cmin",max:"cmax"},plot:TIe(),moduleType:"trace",name:"volume",basePlotModule:$_(),categories:["gl3d","showLegend"],meta:{}}});var EIe=ye((jvr,MIe)=>{"use strict";MIe.exports=SIe()});var LIe=ye((Wvr,CIe)=>{"use strict";var r8t=ba(),kIe=Mr(),i8t=Uh(),n8t=V5();CIe.exports=function(t,r,n,i){function a(c,f){return kIe.coerce(t,r,n8t,c,f)}function o(c){var f=c.map(function(h){var d=a(h);return d&&kIe.isArrayOrTypedArray(d)?d:null});return f.every(function(h){return h&&h.length===f[0].length})&&f}var s=o(["x","y","z"]);if(!s){r.visible=!1;return}if(o(["i","j","k"]),r.i&&(!r.j||!r.k)||r.j&&(!r.k||!r.i)||r.k&&(!r.i||!r.j)){r.visible=!1;return}var l=r8t.getComponentMethod("calendars","handleTraceDefaults");l(t,r,["x","y","z"],i),["lighting.ambient","lighting.diffuse","lighting.specular","lighting.roughness","lighting.fresnel","lighting.vertexnormalsepsilon","lighting.facenormalsepsilon","lightposition.x","lightposition.y","lightposition.z","flatshading","alphahull","delaunayaxis","opacity"].forEach(function(c){a(c)});var u=a("contour.show");u&&(a("contour.color"),a("contour.width")),"intensity"in t?(a("intensity"),a("intensitymode"),i8t(t,r,i,a,{prefix:"",cLetter:"c"})):(r.showscale=!1,"facecolor"in t?a("facecolor"):"vertexcolor"in t?a("vertexcolor"):a("color",n)),a("text"),a("hovertext"),a("hovertemplate"),a("xhoverformat"),a("yhoverformat"),a("zhoverformat"),r._length=null}});var IIe=ye((Zvr,PIe)=>{"use strict";var a8t=zv();PIe.exports=function(t,r){r.intensity&&a8t(t,r,{vals:r.intensity,containerStr:"",cLetter:"c"})}});var qIe=ye((Xvr,FIe)=>{"use strict";var o8t=Rd().gl_mesh3d,s8t=Rd().delaunay_triangulate,l8t=Rd().alpha_shape,u8t=Rd().convex_hull,c8t=$y().parseColorScale,f8t=Mr().isArrayOrTypedArray,ZZ=Jy(),h8t=Mu().extractOpts,RIe=G5();function zIe(e,t,r){this.scene=e,this.uid=r,this.mesh=t,this.name="",this.color="#fff",this.data=null,this.showContour=!1}var XZ=zIe.prototype;XZ.handlePick=function(e){if(e.object===this.mesh){var t=e.index=e.data.index;e.data._cellCenter?e.traceCoordinate=e.data.dataCoordinate:e.traceCoordinate=[this.data.x[t],this.data.y[t],this.data.z[t]];var r=this.data.hovertext||this.data.text;return f8t(r)&&r[t]!==void 0?e.textLabel=r[t]:r&&(e.textLabel=r),!0}};function DIe(e){for(var t=[],r=e.length,n=0;n=t-.5)return!1;return!0}XZ.update=function(e){var t=this.scene,r=t.fullSceneLayout;this.data=e;var n=e.x.length,i=RIe(GZ(r.xaxis,e.x,t.dataScale[0],e.xcalendar),GZ(r.yaxis,e.y,t.dataScale[1],e.ycalendar),GZ(r.zaxis,e.z,t.dataScale[2],e.zcalendar)),a;if(e.i&&e.j&&e.k){if(e.i.length!==e.j.length||e.j.length!==e.k.length||!WZ(e.i,n)||!WZ(e.j,n)||!WZ(e.k,n))return;a=RIe(jZ(e.i),jZ(e.j),jZ(e.k))}else e.alphahull===0?a=u8t(i):e.alphahull>0?a=l8t(e.alphahull,i):a=d8t(e.delaunayaxis,i);var o={positions:i,cells:a,lightPosition:[e.lightposition.x,e.lightposition.y,e.lightposition.z],ambient:e.lighting.ambient,diffuse:e.lighting.diffuse,specular:e.lighting.specular,roughness:e.lighting.roughness,fresnel:e.lighting.fresnel,vertexNormalsEpsilon:e.lighting.vertexnormalsepsilon,faceNormalsEpsilon:e.lighting.facenormalsepsilon,opacity:e.opacity,contourEnable:e.contour.show,contourColor:ZZ(e.contour.color).slice(0,3),contourWidth:e.contour.width,useFacetNormals:e.flatshading};if(e.intensity){var s=h8t(e);this.color="#fff";var l=e.intensitymode;o[l+"Intensity"]=e.intensity,o[l+"IntensityBounds"]=[s.min,s.max],o.colormap=c8t(e)}else e.vertexcolor?(this.color=e.vertexcolor[0],o.vertexColors=DIe(e.vertexcolor)):e.facecolor?(this.color=e.facecolor[0],o.cellColors=DIe(e.facecolor)):(this.color=e.color,o.meshColor=ZZ(e.color));this.mesh.update(o)};XZ.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()};function v8t(e,t){var r=e.glplot.gl,n=o8t({gl:r}),i=new zIe(e,n,t.uid);return n._trace=i,i.update(t),e.glplot.add(n),i}FIe.exports=v8t});var BIe=ye((Yvr,OIe)=>{"use strict";OIe.exports={attributes:V5(),supplyDefaults:LIe(),calc:IIe(),colorbar:{min:"cmin",max:"cmax"},plot:qIe(),moduleType:"trace",name:"mesh3d",basePlotModule:$_(),categories:["gl3d","showLegend"],meta:{}}});var UIe=ye((Kvr,NIe)=>{"use strict";NIe.exports=BIe()});var KZ=ye((Jvr,HIe)=>{"use strict";var p8t=Kl(),j5=Oc().axisHoverFormat,g8t=Wo().hovertemplateAttrs,m8t=V5(),VIe=vl(),YZ=no().extendFlat,oz={x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},u:{valType:"data_array",editType:"calc"},v:{valType:"data_array",editType:"calc"},w:{valType:"data_array",editType:"calc"},sizemode:{valType:"enumerated",values:["scaled","absolute","raw"],editType:"calc",dflt:"scaled"},sizeref:{valType:"number",editType:"calc",min:0},anchor:{valType:"enumerated",editType:"calc",values:["tip","tail","cm","center"],dflt:"cm"},text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertemplate:g8t({editType:"calc"},{keys:["norm"]}),uhoverformat:j5("u",1),vhoverformat:j5("v",1),whoverformat:j5("w",1),xhoverformat:j5("x"),yhoverformat:j5("y"),zhoverformat:j5("z"),showlegend:YZ({},VIe.showlegend,{dflt:!1})};YZ(oz,p8t("",{colorAttr:"u/v/w norm",showScaleDflt:!0,editTypeOverride:"calc"}));var y8t=["opacity","lightposition","lighting"];y8t.forEach(function(e){oz[e]=m8t[e]});oz.hoverinfo=YZ({},VIe.hoverinfo,{editType:"calc",flags:["x","y","z","u","v","w","norm","text","name"],dflt:"x+y+z+norm+text+name"});HIe.exports=oz});var jIe=ye(($vr,GIe)=>{"use strict";var _8t=Mr(),x8t=Uh(),b8t=KZ();GIe.exports=function(t,r,n,i){function a(d,v){return _8t.coerce(t,r,b8t,d,v)}var o=a("u"),s=a("v"),l=a("w"),u=a("x"),c=a("y"),f=a("z");if(!o||!o.length||!s||!s.length||!l||!l.length||!u||!u.length||!c||!c.length||!f||!f.length){r.visible=!1;return}var h=a("sizemode");a("sizeref",h==="raw"?1:.5),a("anchor"),a("lighting.ambient"),a("lighting.diffuse"),a("lighting.specular"),a("lighting.roughness"),a("lighting.fresnel"),a("lightposition.x"),a("lightposition.y"),a("lightposition.z"),x8t(t,r,i,a,{prefix:"",cLetter:"c"}),a("text"),a("hovertext"),a("hovertemplate"),a("uhoverformat"),a("vhoverformat"),a("whoverformat"),a("xhoverformat"),a("yhoverformat"),a("zhoverformat"),r._length=null}});var ZIe=ye((Qvr,WIe)=>{"use strict";var w8t=zv();WIe.exports=function(t,r){for(var n=r.u,i=r.v,a=r.w,o=Math.min(r.x.length,r.y.length,r.z.length,n.length,i.length,a.length),s=-1/0,l=1/0,u=0;u{"use strict";var T8t=Rd().gl_cone3d,A8t=Rd().gl_cone3d.createConeMesh,S8t=Mr().simpleMap,M8t=$y().parseColorScale,E8t=Mu().extractOpts,k8t=Mr().isArrayOrTypedArray,XIe=G5();function YIe(e,t){this.scene=e,this.uid=t,this.mesh=null,this.data=null}var JZ=YIe.prototype;JZ.handlePick=function(e){if(e.object===this.mesh){var t=e.index=e.data.index,r=this.data.x[t],n=this.data.y[t],i=this.data.z[t],a=this.data.u[t],o=this.data.v[t],s=this.data.w[t];e.traceCoordinate=[r,n,i,a,o,s,Math.sqrt(a*a+o*o+s*s)];var l=this.data.hovertext||this.data.text;return k8t(l)&&l[t]!==void 0?e.textLabel=l[t]:l&&(e.textLabel=l),!0}};var C8t={xaxis:0,yaxis:1,zaxis:2},L8t={tip:1,tail:0,cm:.25,center:.5},P8t={tip:1,tail:1,cm:.75,center:.5};function KIe(e,t){var r=e.fullSceneLayout,n=e.dataScale,i={};function a(c,f){var h=r[f],d=n[C8t[f]];return S8t(c,function(v){return h.d2l(v)*d})}i.vectors=XIe(a(t.u,"xaxis"),a(t.v,"yaxis"),a(t.w,"zaxis"),t._len),i.positions=XIe(a(t.x,"xaxis"),a(t.y,"yaxis"),a(t.z,"zaxis"),t._len);var o=E8t(t);i.colormap=M8t(t),i.vertexIntensityBounds=[o.min/t._normMax,o.max/t._normMax],i.coneOffset=L8t[t.anchor];var s=t.sizemode;s==="scaled"?i.coneSize=t.sizeref||.5:s==="absolute"?i.coneSize=t.sizeref&&t._normMax?t.sizeref/t._normMax:.5:s==="raw"&&(i.coneSize=t.sizeref),i.coneSizemode=s;var l=T8t(i),u=t.lightposition;return l.lightPosition=[u.x,u.y,u.z],l.ambient=t.lighting.ambient,l.diffuse=t.lighting.diffuse,l.specular=t.lighting.specular,l.roughness=t.lighting.roughness,l.fresnel=t.lighting.fresnel,l.opacity=t.opacity,t._pad=P8t[t.anchor]*l.vectorScale*l.coneScale*t._normMax,l}JZ.update=function(e){this.data=e;var t=KIe(this.scene,e);this.mesh.update(t)};JZ.dispose=function(){this.scene.glplot.remove(this.mesh),this.mesh.dispose()};function I8t(e,t){var r=e.glplot.gl,n=KIe(e,t),i=A8t(r,n),a=new YIe(e,t.uid);return a.mesh=i,a.data=t,i._trace=a,e.glplot.add(i),a}JIe.exports=I8t});var e8e=ye((tpr,QIe)=>{"use strict";QIe.exports={moduleType:"trace",name:"cone",basePlotModule:$_(),categories:["gl3d","showLegend"],attributes:KZ(),supplyDefaults:jIe(),colorbar:{min:"cmin",max:"cmax"},calc:ZIe(),plot:$Ie(),eventData:function(e,t){return e.norm=t.traceCoordinate[6],e},meta:{}}});var r8e=ye((rpr,t8e)=>{"use strict";t8e.exports=e8e()});var QZ=ye((ipr,n8e)=>{"use strict";var R8t=Kl(),W5=Oc().axisHoverFormat,D8t=Wo().hovertemplateAttrs,z8t=V5(),i8e=vl(),$Z=no().extendFlat,sz={x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},z:{valType:"data_array",editType:"calc+clearAxisTypes"},u:{valType:"data_array",editType:"calc"},v:{valType:"data_array",editType:"calc"},w:{valType:"data_array",editType:"calc"},starts:{x:{valType:"data_array",editType:"calc"},y:{valType:"data_array",editType:"calc"},z:{valType:"data_array",editType:"calc"},editType:"calc"},maxdisplayed:{valType:"integer",min:0,dflt:1e3,editType:"calc"},sizeref:{valType:"number",editType:"calc",min:0,dflt:1},text:{valType:"string",dflt:"",editType:"calc"},hovertext:{valType:"string",dflt:"",editType:"calc"},hovertemplate:D8t({editType:"calc"},{keys:["tubex","tubey","tubez","tubeu","tubev","tubew","norm","divergence"]}),uhoverformat:W5("u",1),vhoverformat:W5("v",1),whoverformat:W5("w",1),xhoverformat:W5("x"),yhoverformat:W5("y"),zhoverformat:W5("z"),showlegend:$Z({},i8e.showlegend,{dflt:!1})};$Z(sz,R8t("",{colorAttr:"u/v/w norm",showScaleDflt:!0,editTypeOverride:"calc"}));var F8t=["opacity","lightposition","lighting"];F8t.forEach(function(e){sz[e]=z8t[e]});sz.hoverinfo=$Z({},i8e.hoverinfo,{editType:"calc",flags:["x","y","z","u","v","w","norm","divergence","text","name"],dflt:"x+y+z+norm+text+name"});n8e.exports=sz});var o8e=ye((npr,a8e)=>{"use strict";var q8t=Mr(),O8t=Uh(),B8t=QZ();a8e.exports=function(t,r,n,i){function a(h,d){return q8t.coerce(t,r,B8t,h,d)}var o=a("u"),s=a("v"),l=a("w"),u=a("x"),c=a("y"),f=a("z");if(!o||!o.length||!s||!s.length||!l||!l.length||!u||!u.length||!c||!c.length||!f||!f.length){r.visible=!1;return}a("starts.x"),a("starts.y"),a("starts.z"),a("maxdisplayed"),a("sizeref"),a("lighting.ambient"),a("lighting.diffuse"),a("lighting.specular"),a("lighting.roughness"),a("lighting.fresnel"),a("lightposition.x"),a("lightposition.y"),a("lightposition.z"),O8t(t,r,i,a,{prefix:"",cLetter:"c"}),a("text"),a("hovertext"),a("hovertemplate"),a("uhoverformat"),a("vhoverformat"),a("whoverformat"),a("xhoverformat"),a("yhoverformat"),a("zhoverformat"),r._length=null}});var v8e=ye((apr,d8e)=>{"use strict";var u8e=Rd().gl_streamtube3d,N8t=u8e.createTubeMesh,U8t=Mr(),V8t=$y().parseColorScale,H8t=Mu().extractOpts,s8e=G5(),c8e={xaxis:0,yaxis:1,zaxis:2};function f8e(e,t){this.scene=e,this.uid=t,this.mesh=null,this.data=null}var tX=f8e.prototype;tX.handlePick=function(e){var t=this.scene.fullSceneLayout,r=this.scene.dataScale;function n(o,s){var l=t[s],u=r[c8e[s]];return l.l2c(o)/u}if(e.object===this.mesh){var i=e.data.position,a=e.data.velocity;return e.traceCoordinate=[n(i[0],"xaxis"),n(i[1],"yaxis"),n(i[2],"zaxis"),n(a[0],"xaxis"),n(a[1],"yaxis"),n(a[2],"zaxis"),e.data.intensity*this.data._normMax,e.data.divergence],e.textLabel=this.data.hovertext||this.data.text,!0}};function l8e(e){var t=e.length,r;return t>2?r=e.slice(1,t-1):t===2?r=[(e[0]+e[1])/2]:r=e,r}function eX(e){var t=e.length;return t===1?[.5,.5]:[e[1]-e[0],e[t-1]-e[t-2]]}function h8e(e,t){var r=e.fullSceneLayout,n=e.dataScale,i=t._len,a={};function o(F,q){var V=r[q],H=n[c8e[q]];return U8t.simpleMap(F,function(X){return V.d2l(X)*H})}if(a.vectors=s8e(o(t._u,"xaxis"),o(t._v,"yaxis"),o(t._w,"zaxis"),i),!i)return{positions:[],cells:[]};var s=o(t._Xs,"xaxis"),l=o(t._Ys,"yaxis"),u=o(t._Zs,"zaxis");a.meshgrid=[s,l,u],a.gridFill=t._gridFill;var c=t._slen;if(c)a.startingPositions=s8e(o(t._startsX,"xaxis"),o(t._startsY,"yaxis"),o(t._startsZ,"zaxis"));else{for(var f=l[0],h=l8e(s),d=l8e(u),v=new Array(h.length*d.length),x=0,b=0;b{"use strict";p8e.exports={moduleType:"trace",name:"streamtube",basePlotModule:$_(),categories:["gl3d","showLegend"],attributes:QZ(),supplyDefaults:o8e(),colorbar:{min:"cmin",max:"cmax"},calc:rz().calc,plot:v8e(),eventData:function(e,t){return e.tubex=e.x,e.tubey=e.y,e.tubez=e.z,e.tubeu=t.traceCoordinate[3],e.tubev=t.traceCoordinate[4],e.tubew=t.traceCoordinate[5],e.norm=t.traceCoordinate[6],e.divergence=t.traceCoordinate[7],delete e.x,delete e.y,delete e.z,e},meta:{}}});var y8e=ye((spr,m8e)=>{"use strict";m8e.exports=g8e()});var H2=ye((lpr,b8e)=>{"use strict";var j8t=Wo().hovertemplateAttrs,W8t=Wo().texttemplateAttrs,Z8t=Eg(),jm=Uc(),X8t=vl(),_8e=Kl(),Y8t=Ed().dash,V2=no().extendFlat,K8t=Bu().overrideAll,eg=jm.marker,x8e=jm.line,J8t=eg.line;b8e.exports=K8t({lon:{valType:"data_array"},lat:{valType:"data_array"},locations:{valType:"data_array"},locationmode:{valType:"enumerated",values:["ISO-3","USA-states","country names","geojson-id"],dflt:"ISO-3"},geojson:{valType:"any",editType:"calc"},featureidkey:{valType:"string",editType:"calc",dflt:"id"},mode:V2({},jm.mode,{dflt:"markers"}),text:V2({},jm.text,{}),texttemplate:W8t({editType:"plot"},{keys:["lat","lon","location","text"]}),hovertext:V2({},jm.hovertext,{}),textfont:jm.textfont,textposition:jm.textposition,line:{color:x8e.color,width:x8e.width,dash:Y8t},connectgaps:jm.connectgaps,marker:V2({symbol:eg.symbol,opacity:eg.opacity,angle:eg.angle,angleref:V2({},eg.angleref,{values:["previous","up","north"]}),standoff:eg.standoff,size:eg.size,sizeref:eg.sizeref,sizemin:eg.sizemin,sizemode:eg.sizemode,colorbar:eg.colorbar,line:V2({width:J8t.width},_8e("marker.line")),gradient:eg.gradient},_8e("marker")),fill:{valType:"enumerated",values:["none","toself"],dflt:"none"},fillcolor:Z8t(),selected:jm.selected,unselected:jm.unselected,hoverinfo:V2({},X8t.hoverinfo,{flags:["lon","lat","location","text","name"]}),hovertemplate:j8t()},"calc","nested")});var T8e=ye((upr,w8e)=>{"use strict";var rX=Mr(),iX=lu(),$8t=$p(),Q8t=R0(),eRt=D0(),tRt=Ig(),rRt=H2();w8e.exports=function(t,r,n,i){function a(d,v){return rX.coerce(t,r,rRt,d,v)}var o=a("locations"),s;if(o&&o.length){var l=a("geojson"),u;(typeof l=="string"&&l!==""||rX.isPlainObject(l))&&(u="geojson-id");var c=a("locationmode",u);c==="geojson-id"&&a("featureidkey"),s=o.length}else{var f=a("lon")||[],h=a("lat")||[];s=Math.min(f.length,h.length)}if(!s){r.visible=!1;return}r._length=s,a("text"),a("hovertext"),a("hovertemplate"),a("mode"),iX.hasMarkers(r)&&$8t(t,r,n,i,a,{gradient:!0}),iX.hasLines(r)&&(Q8t(t,r,n,i,a),a("connectgaps")),iX.hasText(r)&&(a("texttemplate"),eRt(t,r,i,a)),a("fill"),r.fill!=="none"&&tRt(t,r,n,a),rX.coerceSelectionMarkerOpacity(r,a)}});var M8e=ye((cpr,S8e)=>{"use strict";var A8e=Qa();S8e.exports=function(t,r,n){var i={},a=n[r.geo]._subplot,o=a.mockAxis,s=t.lonlat;return i.lonLabel=A8e.tickText(o,o.c2l(s[0]),!0).text,i.latLabel=A8e.tickText(o,o.c2l(s[1]),!0).text,i}});var lz=ye((fpr,L8e)=>{"use strict";var nX=uo(),E8e=es().BADNUM,iRt=z0(),nRt=km(),aRt=F0(),oRt=Mr().isArrayOrTypedArray,k8e=Mr()._;function C8e(e){return e&&typeof e=="string"}L8e.exports=function(t,r){var n=oRt(r.locations),i=n?r.locations.length:r._length,a=new Array(i),o;r.geojson?o=function(h){return C8e(h)||nX(h)}:o=C8e;for(var s=0;s{"use strict";Tv.projNames={airy:"airy",aitoff:"aitoff","albers usa":"albersUsa",albers:"albers",august:"august","azimuthal equal area":"azimuthalEqualArea","azimuthal equidistant":"azimuthalEquidistant",baker:"baker",bertin1953:"bertin1953",boggs:"boggs",bonne:"bonne",bottomley:"bottomley",bromley:"bromley",collignon:"collignon","conic conformal":"conicConformal","conic equal area":"conicEqualArea","conic equidistant":"conicEquidistant",craig:"craig",craster:"craster","cylindrical equal area":"cylindricalEqualArea","cylindrical stereographic":"cylindricalStereographic",eckert1:"eckert1",eckert2:"eckert2",eckert3:"eckert3",eckert4:"eckert4",eckert5:"eckert5",eckert6:"eckert6",eisenlohr:"eisenlohr","equal earth":"equalEarth",equirectangular:"equirectangular",fahey:"fahey","foucaut sinusoidal":"foucautSinusoidal",foucaut:"foucaut",ginzburg4:"ginzburg4",ginzburg5:"ginzburg5",ginzburg6:"ginzburg6",ginzburg8:"ginzburg8",ginzburg9:"ginzburg9",gnomonic:"gnomonic","gringorten quincuncial":"gringortenQuincuncial",gringorten:"gringorten",guyou:"guyou",hammer:"hammer",hill:"hill",homolosine:"homolosine",hufnagel:"hufnagel",hyperelliptical:"hyperelliptical",kavrayskiy7:"kavrayskiy7",lagrange:"lagrange",larrivee:"larrivee",laskowski:"laskowski",loximuthal:"loximuthal",mercator:"mercator",miller:"miller",mollweide:"mollweide","mt flat polar parabolic":"mtFlatPolarParabolic","mt flat polar quartic":"mtFlatPolarQuartic","mt flat polar sinusoidal":"mtFlatPolarSinusoidal","natural earth":"naturalEarth","natural earth1":"naturalEarth1","natural earth2":"naturalEarth2","nell hammer":"nellHammer",nicolosi:"nicolosi",orthographic:"orthographic",patterson:"patterson","peirce quincuncial":"peirceQuincuncial",polyconic:"polyconic","rectangular polyconic":"rectangularPolyconic",robinson:"robinson",satellite:"satellite","sinu mollweide":"sinuMollweide",sinusoidal:"sinusoidal",stereographic:"stereographic",times:"times","transverse mercator":"transverseMercator","van der grinten":"vanDerGrinten","van der grinten2":"vanDerGrinten2","van der grinten3":"vanDerGrinten3","van der grinten4":"vanDerGrinten4",wagner4:"wagner4",wagner6:"wagner6",wiechel:"wiechel","winkel tripel":"winkel3",winkel3:"winkel3"};Tv.axesNames=["lonaxis","lataxis"];Tv.lonaxisSpan={orthographic:180,"azimuthal equal area":360,"azimuthal equidistant":360,"conic conformal":180,gnomonic:160,stereographic:180,"transverse mercator":180,"*":360};Tv.lataxisSpan={"conic conformal":150,stereographic:179.5,"*":180};Tv.scopeDefaults={world:{lonaxisRange:[-180,180],lataxisRange:[-90,90],projType:"equirectangular",projRotate:[0,0,0]},usa:{lonaxisRange:[-180,-50],lataxisRange:[15,80],projType:"albers usa"},europe:{lonaxisRange:[-30,60],lataxisRange:[30,85],projType:"conic conformal",projRotate:[15,0,0],projParallels:[0,60]},asia:{lonaxisRange:[22,160],lataxisRange:[-15,55],projType:"mercator",projRotate:[0,0,0]},africa:{lonaxisRange:[-30,60],lataxisRange:[-40,40],projType:"mercator",projRotate:[0,0,0]},"north america":{lonaxisRange:[-180,-45],lataxisRange:[5,85],projType:"conic conformal",projRotate:[-100,0,0],projParallels:[29.5,45.5]},"south america":{lonaxisRange:[-100,-30],lataxisRange:[-60,15],projType:"mercator",projRotate:[0,0,0]}};Tv.clipPad=.001;Tv.precision=.1;Tv.landColor="#F0DC82";Tv.waterColor="#3399FF";Tv.locationmodeToLayer={"ISO-3":"countries","USA-states":"subunits","country names":"countries"};Tv.sphereSVG={type:"Sphere"};Tv.fillLayers={ocean:1,land:1,lakes:1};Tv.lineLayers={subunits:1,countries:1,coastlines:1,rivers:1,frame:1};Tv.layers=["bg","ocean","land","lakes","subunits","countries","coastlines","rivers","lataxis","lonaxis","frame","backplot","frontplot"];Tv.layersForChoropleth=["bg","ocean","land","subunits","countries","coastlines","lataxis","lonaxis","frame","backplot","rivers","lakes","frontplot"];Tv.layerNameToAdjective={ocean:"ocean",land:"land",lakes:"lake",subunits:"subunit",countries:"country",coastlines:"coastline",rivers:"river",frame:"frame"}});var aX=ye((uz,P8e)=>{(function(e,t){typeof uz=="object"&&typeof P8e!="undefined"?t(uz):typeof define=="function"&&define.amd?define(["exports"],t):(e=e||self,t(e.topojson=e.topojson||{}))})(uz,function(e){"use strict";function t(k){return k}function r(k){if(k==null)return t;var A,L,_=k.scale[0],C=k.scale[1],M=k.translate[0],p=k.translate[1];return function(P,T){T||(A=L=0);var F=2,q=P.length,V=new Array(q);for(V[0]=(A+=P[0])*_+M,V[1]=(L+=P[1])*C+p;FM&&(M=F[0]),F[1]p&&(p=F[1])}function T(F){switch(F.type){case"GeometryCollection":F.geometries.forEach(T);break;case"Point":P(F.coordinates);break;case"MultiPoint":F.coordinates.forEach(P);break}}k.arcs.forEach(function(F){for(var q=-1,V=F.length,H;++qM&&(M=H[0]),H[1]p&&(p=H[1])});for(L in k.objects)T(k.objects[L]);return[_,C,M,p]}function i(k,A){for(var L,_=k.length,C=_-A;C<--_;)L=k[C],k[C++]=k[_],k[_]=L}function a(k,A){return typeof A=="string"&&(A=k.objects[A]),A.type==="GeometryCollection"?{type:"FeatureCollection",features:A.geometries.map(function(L){return o(k,L)})}:o(k,A)}function o(k,A){var L=A.id,_=A.bbox,C=A.properties==null?{}:A.properties,M=s(k,A);return L==null&&_==null?{type:"Feature",properties:C,geometry:M}:_==null?{type:"Feature",id:L,properties:C,geometry:M}:{type:"Feature",id:L,bbox:_,properties:C,geometry:M}}function s(k,A){var L=r(k.transform),_=k.arcs;function C(q,V){V.length&&V.pop();for(var H=_[q<0?~q:q],X=0,G=H.length;X1)_=f(k,A,L);else for(C=0,_=new Array(M=k.arcs.length);C1)for(var V=1,H=P(F[0]),X,G;VH&&(G=F[0],F[0]=F[V],F[V]=G,H=X);return F}).filter(function(T){return T.length>0})}}function x(k,A){for(var L=0,_=k.length;L<_;){var C=L+_>>>1;k[C]=2))throw new Error("n must be \u22652");T=k.bbox||n(k);var L=T[0],_=T[1],C=T[2],M=T[3],p;A={scale:[C-L?(C-L)/(p-1):1,M-_?(M-_)/(p-1):1],translate:[L,_]}}else T=k.bbox;var P=g(A),T,F,q=k.objects,V={};function H(N){return P(N)}function X(N){var W;switch(N.type){case"GeometryCollection":W={type:"GeometryCollection",geometries:N.geometries.map(X)};break;case"Point":W={type:"Point",coordinates:H(N.coordinates)};break;case"MultiPoint":W={type:"MultiPoint",coordinates:N.coordinates.map(H)};break;default:return N}return N.id!=null&&(W.id=N.id),N.bbox!=null&&(W.bbox=N.bbox),N.properties!=null&&(W.properties=N.properties),W}function G(N){var W=0,re=1,ae=N.length,_e,Me=new Array(ae);for(Me[0]=P(N[0],0);++W{"use strict";var oX=I8e.exports={},sRt=XE().locationmodeToLayer,lRt=aX().feature;oX.getTopojsonName=function(e){return[e.scope.replace(/ /g,"-"),"_",e.resolution.toString(),"m"].join("")};oX.getTopojsonPath=function(e,t){return e+t+".json"};oX.getTopojsonFeatures=function(e,t){var r=sRt[e.locationmode],n=t.objects[r];return lRt(t,n).features}});var tx=ye(YE=>{"use strict";var uRt=es().BADNUM;YE.calcTraceToLineCoords=function(e){for(var t=e[0].trace,r=t.connectgaps,n=[],i=[],a=0;a0&&(n.push(i),i=[])}return i.length>0&&n.push(i),n};YE.makeLine=function(e){return e.length===1?{type:"LineString",coordinates:e[0]}:{type:"MultiLineString",coordinates:e}};YE.makePolygon=function(e){if(e.length===1)return{type:"Polygon",coordinates:e};for(var t=new Array(e.length),r=0;r{R8e.exports={AFG:"afghan",ALA:"\\b\\wland",ALB:"albania",DZA:"algeria",ASM:"^(?=.*americ).*samoa",AND:"andorra",AGO:"angola",AIA:"anguill?a",ATA:"antarctica",ATG:"antigua",ARG:"argentin",ARM:"armenia",ABW:"^(?!.*bonaire).*\\baruba",AUS:"australia",AUT:"^(?!.*hungary).*austria|\\baustri.*\\bemp",AZE:"azerbaijan",BHS:"bahamas",BHR:"bahrain",BGD:"bangladesh|^(?=.*east).*paki?stan",BRB:"barbados",BLR:"belarus|byelo",BEL:"^(?!.*luxem).*belgium",BLZ:"belize|^(?=.*british).*honduras",BEN:"benin|dahome",BMU:"bermuda",BTN:"bhutan",BOL:"bolivia",BES:"^(?=.*bonaire).*eustatius|^(?=.*carib).*netherlands|\\bbes.?islands",BIH:"herzegovina|bosnia",BWA:"botswana|bechuana",BVT:"bouvet",BRA:"brazil",IOT:"british.?indian.?ocean",BRN:"brunei",BGR:"bulgaria",BFA:"burkina|\\bfaso|upper.?volta",BDI:"burundi",CPV:"verde",KHM:"cambodia|kampuchea|khmer",CMR:"cameroon",CAN:"canada",CYM:"cayman",CAF:"\\bcentral.african.republic",TCD:"\\bchad",CHL:"\\bchile",CHN:"^(?!.*\\bmac)(?!.*\\bhong)(?!.*\\btai)(?!.*\\brep).*china|^(?=.*peo)(?=.*rep).*china",CXR:"christmas",CCK:"\\bcocos|keeling",COL:"colombia",COM:"comoro",COG:"^(?!.*\\bdem)(?!.*\\bd[\\.]?r)(?!.*kinshasa)(?!.*zaire)(?!.*belg)(?!.*l.opoldville)(?!.*free).*\\bcongo",COK:"\\bcook",CRI:"costa.?rica",CIV:"ivoire|ivory",HRV:"croatia",CUB:"\\bcuba",CUW:"^(?!.*bonaire).*\\bcura(c|\xE7)ao",CYP:"cyprus",CSK:"czechoslovakia",CZE:"^(?=.*rep).*czech|czechia|bohemia",COD:"\\bdem.*congo|congo.*\\bdem|congo.*\\bd[\\.]?r|\\bd[\\.]?r.*congo|belgian.?congo|congo.?free.?state|kinshasa|zaire|l.opoldville|drc|droc|rdc",DNK:"denmark",DJI:"djibouti",DMA:"dominica(?!n)",DOM:"dominican.rep",ECU:"ecuador",EGY:"egypt",SLV:"el.?salvador",GNQ:"guine.*eq|eq.*guine|^(?=.*span).*guinea",ERI:"eritrea",EST:"estonia",ETH:"ethiopia|abyssinia",FLK:"falkland|malvinas",FRO:"faroe|faeroe",FJI:"fiji",FIN:"finland",FRA:"^(?!.*\\bdep)(?!.*martinique).*france|french.?republic|\\bgaul",GUF:"^(?=.*french).*guiana",PYF:"french.?polynesia|tahiti",ATF:"french.?southern",GAB:"gabon",GMB:"gambia",GEO:"^(?!.*south).*georgia",DDR:"german.?democratic.?republic|democratic.?republic.*germany|east.germany",DEU:"^(?!.*east).*germany|^(?=.*\\bfed.*\\brep).*german",GHA:"ghana|gold.?coast",GIB:"gibraltar",GRC:"greece|hellenic|hellas",GRL:"greenland",GRD:"grenada",GLP:"guadeloupe",GUM:"\\bguam",GTM:"guatemala",GGY:"guernsey",GIN:"^(?!.*eq)(?!.*span)(?!.*bissau)(?!.*portu)(?!.*new).*guinea",GNB:"bissau|^(?=.*portu).*guinea",GUY:"guyana|british.?guiana",HTI:"haiti",HMD:"heard.*mcdonald",VAT:"holy.?see|vatican|papal.?st",HND:"^(?!.*brit).*honduras",HKG:"hong.?kong",HUN:"^(?!.*austr).*hungary",ISL:"iceland",IND:"india(?!.*ocea)",IDN:"indonesia",IRN:"\\biran|persia",IRQ:"\\biraq|mesopotamia",IRL:"(^ireland)|(^republic.*ireland)",IMN:"^(?=.*isle).*\\bman",ISR:"israel",ITA:"italy",JAM:"jamaica",JPN:"japan",JEY:"jersey",JOR:"jordan",KAZ:"kazak",KEN:"kenya|british.?east.?africa|east.?africa.?prot",KIR:"kiribati",PRK:"^(?=.*democrat|people|north|d.*p.*.r).*\\bkorea|dprk|korea.*(d.*p.*r)",KWT:"kuwait",KGZ:"kyrgyz|kirghiz",LAO:"\\blaos?\\b",LVA:"latvia",LBN:"lebanon",LSO:"lesotho|basuto",LBR:"liberia",LBY:"libya",LIE:"liechtenstein",LTU:"lithuania",LUX:"^(?!.*belg).*luxem",MAC:"maca(o|u)",MDG:"madagascar|malagasy",MWI:"malawi|nyasa",MYS:"malaysia",MDV:"maldive",MLI:"\\bmali\\b",MLT:"\\bmalta",MHL:"marshall",MTQ:"martinique",MRT:"mauritania",MUS:"mauritius",MYT:"\\bmayotte",MEX:"\\bmexic",FSM:"fed.*micronesia|micronesia.*fed",MCO:"monaco",MNG:"mongolia",MNE:"^(?!.*serbia).*montenegro",MSR:"montserrat",MAR:"morocco|\\bmaroc",MOZ:"mozambique",MMR:"myanmar|burma",NAM:"namibia",NRU:"nauru",NPL:"nepal",NLD:"^(?!.*\\bant)(?!.*\\bcarib).*netherlands",ANT:"^(?=.*\\bant).*(nether|dutch)",NCL:"new.?caledonia",NZL:"new.?zealand",NIC:"nicaragua",NER:"\\bniger(?!ia)",NGA:"nigeria",NIU:"niue",NFK:"norfolk",MNP:"mariana",NOR:"norway",OMN:"\\boman|trucial",PAK:"^(?!.*east).*paki?stan",PLW:"palau",PSE:"palestin|\\bgaza|west.?bank",PAN:"panama",PNG:"papua|new.?guinea",PRY:"paraguay",PER:"peru",PHL:"philippines",PCN:"pitcairn",POL:"poland",PRT:"portugal",PRI:"puerto.?rico",QAT:"qatar",KOR:"^(?!.*d.*p.*r)(?!.*democrat)(?!.*people)(?!.*north).*\\bkorea(?!.*d.*p.*r)",MDA:"moldov|b(a|e)ssarabia",REU:"r(e|\xE9)union",ROU:"r(o|u|ou)mania",RUS:"\\brussia|soviet.?union|u\\.?s\\.?s\\.?r|socialist.?republics",RWA:"rwanda",BLM:"barth(e|\xE9)lemy",SHN:"helena",KNA:"kitts|\\bnevis",LCA:"\\blucia",MAF:"^(?=.*collectivity).*martin|^(?=.*france).*martin(?!ique)|^(?=.*french).*martin(?!ique)",SPM:"miquelon",VCT:"vincent",WSM:"^(?!.*amer).*samoa",SMR:"san.?marino",STP:"\\bs(a|\xE3)o.?tom(e|\xE9)",SAU:"\\bsa\\w*.?arabia",SEN:"senegal",SRB:"^(?!.*monte).*serbia",SYC:"seychell",SLE:"sierra",SGP:"singapore",SXM:"^(?!.*martin)(?!.*saba).*maarten",SVK:"^(?!.*cze).*slovak",SVN:"slovenia",SLB:"solomon",SOM:"somali",ZAF:"south.africa|s\\\\..?africa",SGS:"south.?georgia|sandwich",SSD:"\\bs\\w*.?sudan",ESP:"spain",LKA:"sri.?lanka|ceylon",SDN:"^(?!.*\\bs(?!u)).*sudan",SUR:"surinam|dutch.?guiana",SJM:"svalbard",SWZ:"swaziland",SWE:"sweden",CHE:"switz|swiss",SYR:"syria",TWN:"taiwan|taipei|formosa|^(?!.*peo)(?=.*rep).*china",TJK:"tajik",THA:"thailand|\\bsiam",MKD:"macedonia|fyrom",TLS:"^(?=.*leste).*timor|^(?=.*east).*timor",TGO:"togo",TKL:"tokelau",TON:"tonga",TTO:"trinidad|tobago",TUN:"tunisia",TUR:"turkey",TKM:"turkmen",TCA:"turks",TUV:"tuvalu",UGA:"uganda",UKR:"ukrain",ARE:"emirates|^u\\.?a\\.?e\\.?$|united.?arab.?em",GBR:"united.?kingdom|britain|^u\\.?k\\.?$",TZA:"tanzania",USA:"united.?states\\b(?!.*islands)|\\bu\\.?s\\.?a\\.?\\b|^\\s*u\\.?s\\.?\\b(?!.*islands)",UMI:"minor.?outlying.?is",URY:"uruguay",UZB:"uzbek",VUT:"vanuatu|new.?hebrides",VEN:"venezuela",VNM:"^(?!.*republic).*viet.?nam|^(?=.*socialist).*viet.?nam",VGB:"^(?=.*\\bu\\.?\\s?k).*virgin|^(?=.*brit).*virgin|^(?=.*kingdom).*virgin",VIR:"^(?=.*\\bu\\.?\\s?s).*virgin|^(?=.*states).*virgin",WLF:"futuna|wallis",ESH:"western.sahara",YEM:"^(?!.*arab)(?!.*north)(?!.*sana)(?!.*peo)(?!.*dem)(?!.*south)(?!.*aden)(?!.*\\bp\\.?d\\.?r).*yemen",YMD:"^(?=.*peo).*yemen|^(?!.*rep)(?=.*dem).*yemen|^(?=.*south).*yemen|^(?=.*aden).*yemen|^(?=.*\\bp\\.?d\\.?r).*yemen",YUG:"yugoslavia",ZMB:"zambia|northern.?rhodesia",EAZ:"zanzibar",ZWE:"zimbabwe|^(?!.*northern).*rhodesia"}});var dz=ye(ku=>{"use strict";Object.defineProperty(ku,"__esModule",{value:!0});var qp=63710088e-1,lX={centimeters:qp*100,centimetres:qp*100,degrees:360/(2*Math.PI),feet:qp*3.28084,inches:qp*39.37,kilometers:qp/1e3,kilometres:qp/1e3,meters:qp,metres:qp,miles:qp/1609.344,millimeters:qp*1e3,millimetres:qp*1e3,nauticalmiles:qp/1852,radians:1,yards:qp*1.0936},sX={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,nauticalmiles:29155334959812285e-23,millimeters:1e6,millimetres:1e6,yards:1.195990046};function rx(e,t,r={}){let n={type:"Feature"};return(r.id===0||r.id)&&(n.id=r.id),r.bbox&&(n.bbox=r.bbox),n.properties=t||{},n.geometry=e,n}function cRt(e,t,r={}){switch(e){case"Point":return uX(t).geometry;case"LineString":return fX(t).geometry;case"Polygon":return cX(t).geometry;case"MultiPoint":return F8e(t).geometry;case"MultiLineString":return z8e(t).geometry;case"MultiPolygon":return q8e(t).geometry;default:throw new Error(e+" is invalid")}}function uX(e,t,r={}){if(!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!fz(e[0])||!fz(e[1]))throw new Error("coordinates must contain numbers");return rx({type:"Point",coordinates:e},t,r)}function fRt(e,t,r={}){return hz(e.map(n=>uX(n,t)),r)}function cX(e,t,r={}){for(let i of e){if(i.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(i[i.length-1].length!==i[0].length)throw new Error("First and last Position are not equivalent.");for(let a=0;acX(n,t)),r)}function fX(e,t,r={}){if(e.length<2)throw new Error("coordinates must be an array of two or more positions");return rx({type:"LineString",coordinates:e},t,r)}function dRt(e,t,r={}){return hz(e.map(n=>fX(n,t)),r)}function hz(e,t={}){let r={type:"FeatureCollection"};return t.id&&(r.id=t.id),t.bbox&&(r.bbox=t.bbox),r.features=e,r}function z8e(e,t,r={}){return rx({type:"MultiLineString",coordinates:e},t,r)}function F8e(e,t,r={}){return rx({type:"MultiPoint",coordinates:e},t,r)}function q8e(e,t,r={}){return rx({type:"MultiPolygon",coordinates:e},t,r)}function vRt(e,t,r={}){return rx({type:"GeometryCollection",geometries:e},t,r)}function pRt(e,t=0){if(t&&!(t>=0))throw new Error("precision must be a positive number");let r=Math.pow(10,t||0);return Math.round(e*r)/r}function O8e(e,t="kilometers"){let r=lX[t];if(!r)throw new Error(t+" units is invalid");return e*r}function hX(e,t="kilometers"){let r=lX[t];if(!r)throw new Error(t+" units is invalid");return e/r}function gRt(e,t){return B8e(hX(e,t))}function mRt(e){let t=e%360;return t<0&&(t+=360),t}function yRt(e){return e=e%360,e>0?e>180?e-360:e:e<-180?e+360:e}function B8e(e){return e%(2*Math.PI)*180/Math.PI}function _Rt(e){return e%360*Math.PI/180}function xRt(e,t="kilometers",r="kilometers"){if(!(e>=0))throw new Error("length must be a positive number");return O8e(hX(e,t),r)}function bRt(e,t="meters",r="kilometers"){if(!(e>=0))throw new Error("area must be a positive number");let n=sX[t];if(!n)throw new Error("invalid original units");let i=sX[r];if(!i)throw new Error("invalid final units");return e/n*i}function fz(e){return!isNaN(e)&&e!==null&&!Array.isArray(e)}function wRt(e){return e!==null&&typeof e=="object"&&!Array.isArray(e)}function TRt(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(e.length!==4&&e.length!==6)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach(t=>{if(!fz(t))throw new Error("bbox must only contain numbers")})}function ARt(e){if(!e)throw new Error("id is required");if(["string","number"].indexOf(typeof e)===-1)throw new Error("id must be a number or a string")}ku.areaFactors=sX;ku.azimuthToBearing=yRt;ku.bearingToAzimuth=mRt;ku.convertArea=bRt;ku.convertLength=xRt;ku.degreesToRadians=_Rt;ku.earthRadius=qp;ku.factors=lX;ku.feature=rx;ku.featureCollection=hz;ku.geometry=cRt;ku.geometryCollection=vRt;ku.isNumber=fz;ku.isObject=wRt;ku.lengthToDegrees=gRt;ku.lengthToRadians=hX;ku.lineString=fX;ku.lineStrings=dRt;ku.multiLineString=z8e;ku.multiPoint=F8e;ku.multiPolygon=q8e;ku.point=uX;ku.points=fRt;ku.polygon=cX;ku.polygons=hRt;ku.radiansToDegrees=B8e;ku.radiansToLength=O8e;ku.round=pRt;ku.validateBBox=TRt;ku.validateId=ARt});var pz=ye(Dd=>{"use strict";Object.defineProperty(Dd,"__esModule",{value:!0});var jv=dz();function KE(e,t,r){if(e!==null)for(var n,i,a,o,s,l,u,c=0,f=0,h,d=e.type,v=d==="FeatureCollection",x=d==="Feature",b=v?e.features.length:1,g=0;gl||v>u||x>c){s=f,l=n,u=v,c=x,a=0;return}var b=jv.lineString.call(void 0,[s,f],r.properties);if(t(b,n,i,x,a)===!1)return!1;a++,s=f})===!1)return!1}}})}function PRt(e,t,r){var n=r,i=!1;return V8e(e,function(a,o,s,l,u){i===!1&&r===void 0?n=a:n=t(n,a,o,s,l,u),i=!0}),n}function H8e(e,t){if(!e)throw new Error("geojson is required");vz(e,function(r,n,i){if(r.geometry!==null){var a=r.geometry.type,o=r.geometry.coordinates;switch(a){case"LineString":if(t(r,n,i,0,0)===!1)return!1;break;case"Polygon":for(var s=0;s{"use strict";Object.defineProperty(gz,"__esModule",{value:!0});var G8e=dz(),zRt=pz();function Z8e(e){return zRt.geomReduce.call(void 0,e,(t,r)=>t+FRt(r),0)}function FRt(e){let t=0,r;switch(e.type){case"Polygon":return j8e(e.coordinates);case"MultiPolygon":for(r=0;r0){t+=Math.abs(W8e(e[0]));for(let r=1;r=t?(n+2)%t:n+2],s=i[0]*vX,l=a[1]*vX,u=o[0]*vX;r+=(u-s)*Math.sin(l),n++}return r*qRt}var ORt=Z8e;gz.area=Z8e;gz.default=ORt});var K8e=ye(mz=>{"use strict";Object.defineProperty(mz,"__esModule",{value:!0});var BRt=dz(),NRt=pz();function Y8e(e,t={}){let r=0,n=0,i=0;return NRt.coordEach.call(void 0,e,function(a){r+=a[0],n+=a[1],i++},!0),BRt.point.call(void 0,[r/i,n/i],t.properties)}var URt=Y8e;mz.centroid=Y8e;mz.default=URt});var $8e=ye(yz=>{"use strict";Object.defineProperty(yz,"__esModule",{value:!0});var VRt=pz();function J8e(e,t={}){if(e.bbox!=null&&t.recompute!==!0)return e.bbox;let r=[1/0,1/0,-1/0,-1/0];return VRt.coordEach.call(void 0,e,n=>{r[0]>n[0]&&(r[0]=n[0]),r[1]>n[1]&&(r[1]=n[1]),r[2]{"use strict";var GRt=xa(),tRe=D8e(),{area:jRt}=X8e(),{centroid:WRt}=K8e(),{bbox:ZRt}=$8e(),Q8e=OS(),Z5=H1(),XRt=gy(),YRt=ES(),_z=wM(),eRe=Object.keys(tRe),KRt={"ISO-3":Q8e,"USA-states":Q8e,"country names":JRt};function JRt(e){for(var t=0;t0&&c[f+1][0]<0)return f;return null}switch(n==="RUS"||n==="FJI"?a=function(c){var f;if(u(c)===null)f=c;else for(f=new Array(c.length),l=0;lf?h[d++]=[c[l][0]+360,c[l][1]]:l===f?(h[d++]=c[l],h[d++]=[c[l][0],-90]):h[d++]=c[l];var v=_z.tester(h);v.pts.pop(),i.push(v)}:a=function(c){i.push(_z.tester(c))},t.type){case"MultiPolygon":for(o=0;o0?v.properties.ct=tDt(v):v.properties.ct=[NaN,NaN],h.fIn=c,h.fOut=v,i.push(v)}else Z5.log(["Location",h.loc,"does not have a valid GeoJSON geometry.","Traces with locationmode *geojson-id* only support","*Polygon* and *MultiPolygon* geometries."].join(" "))}delete n[f]}switch(r.type){case"FeatureCollection":var l=r.features;for(a=0;ai&&(i=s,r=o)}else r=t;return WRt(r).geometry.coordinates}function rDt(e){var t=window.PlotlyGeoAssets||{},r=[];function n(l){return new Promise(function(u,c){GRt.json(l,function(f,h){if(f){delete t[l];var d=f.status===404?'GeoJSON at URL "'+l+'" does not exist.':"Unexpected error while fetching from "+l;return c(new Error(d))}return t[l]=h,u(h)})})}function i(l){return new Promise(function(u,c){var f=0,h=setInterval(function(){if(t[l]&&t[l]!=="pending")return clearInterval(h),u(t[l]);if(f>100)return clearInterval(h),c("Unexpected error while fetching from "+l);f++},50)})}for(var a=0;a{"use strict";var nDt=xa(),aDt=ao(),nRe=va(),aRe=op(),oDt=aRe.stylePoints,sDt=aRe.styleText;oRe.exports=function(t,r){r&&lDt(t,r)};function lDt(e,t){var r=t[0].trace,n=t[0].node3;n.style("opacity",t[0].trace.opacity),oDt(n,r,e),sDt(n,r,e),n.selectAll("path.js-line").style("fill","none").each(function(i){var a=nDt.select(this),o=i.trace,s=o.line||{};a.call(nRe.stroke,s.color).call(aDt.dashLine,s.dash||"",s.width||0),o.fill!=="none"&&a.call(nRe.fill,o.fillcolor)})}});var _X=ye((Tpr,uRe)=>{"use strict";var sRe=xa(),bz=Mr(),uDt=cz().getTopojsonFeatures,gX=tx(),xz=ix(),lRe=wg().findExtremes,yX=es().BADNUM,cDt=q0().calcMarkerSize,mX=lu(),fDt=pX();function hDt(e,t,r){var n=t.layers.frontplot.select(".scatterlayer"),i=bz.makeTraceGroups(n,r,"trace scattergeo");function a(o,s){o.lonlat[0]===yX&&sRe.select(s).remove()}i.selectAll("*").remove(),i.each(function(o){var s=sRe.select(this),l=o[0].trace;if(mX.hasLines(l)||l.fill!=="none"){var u=gX.calcTraceToLineCoords(o),c=l.fill!=="none"?gX.makePolygon(u):gX.makeLine(u);s.selectAll("path.js-line").data([{geojson:c,trace:l}]).enter().append("path").classed("js-line",!0).style("stroke-miterlimit",2)}mX.hasMarkers(l)&&s.selectAll("path.point").data(bz.identity).enter().append("path").classed("point",!0).each(function(f){a(f,this)}),mX.hasText(l)&&s.selectAll("g").data(bz.identity).enter().append("g").append("text").each(function(f){a(f,this)}),fDt(e,o)})}function dDt(e,t){var r=e[0].trace,n=t[r.geo],i=n._subplot,a=r._length,o,s;if(bz.isArrayOrTypedArray(r.locations)){var l=r.locationmode,u=l==="geojson-id"?xz.extractTraceFeature(e):uDt(r,i.topojson);for(o=0;o{"use strict";var vDt=Nc(),pDt=es().BADNUM,gDt=oT(),mDt=Mr().fillText,yDt=H2();cRe.exports=function(t,r,n){var i=t.cd,a=i[0].trace,o=t.xa,s=t.ya,l=t.subplot,u=l.projection.isLonLatOverEdges,c=l.project;function f(E){var k=E.lonlat;if(k[0]===pDt||u(k))return 1/0;var A=c(k),L=c([r,n]),_=Math.abs(A[0]-L[0]),C=Math.abs(A[1]-L[1]),M=Math.max(3,E.mrc||0);return Math.max(Math.sqrt(_*_+C*C)-M,1-3/M)}if(vDt.getClosest(i,f,t),t.index!==!1){var h=i[t.index],d=h.lonlat,v=[o.c2p(d),s.c2p(d)],x=h.mrc||1;t.x0=v[0]-x,t.x1=v[0]+x,t.y0=v[1]-x,t.y1=v[1]+x,t.loc=h.loc,t.lon=d[0],t.lat=d[1];var b={};b[a.geo]={_subplot:l};var g=a._module.formatLabels(h,a,b);return t.lonLabel=g.lonLabel,t.latLabel=g.latLabel,t.color=gDt(a,h),t.extraText=_Dt(a,h,t,i[0].t.labels),t.hovertemplate=a.hovertemplate,[t]}};function _Dt(e,t,r,n){if(e.hovertemplate)return;var i=t.hi||e.hoverinfo,a=i==="all"?yDt.hoverinfo.flags:i.split("+"),o=a.indexOf("location")!==-1&&Array.isArray(e.locations),s=a.indexOf("lon")!==-1,l=a.indexOf("lat")!==-1,u=a.indexOf("text")!==-1,c=[];function f(h){return h+"\xB0"}return o?c.push(t.loc):s&&l?c.push("("+f(r.latLabel)+", "+f(r.lonLabel)+")"):s?c.push(n.lon+f(r.lonLabel)):l&&c.push(n.lat+f(r.latLabel)),u&&mDt(t,e,c),c.join("
")}});var dRe=ye((Spr,hRe)=>{"use strict";hRe.exports=function(t,r,n,i,a){t.lon=r.lon,t.lat=r.lat,t.location=r.loc?r.loc:null;var o=i[a];return o.fIn&&o.fIn.properties&&(t.properties=o.fIn.properties),t}});var gRe=ye((Mpr,pRe)=>{"use strict";var vRe=lu(),xDt=es().BADNUM;pRe.exports=function(t,r){var n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].trace,l,u,c,f,h,d=!vRe.hasMarkers(s)&&!vRe.hasText(s);if(d)return[];if(r===!1)for(h=0;h{(function(e,t){typeof wz=="object"&&typeof mRe!="undefined"?t(wz):typeof define=="function"&&define.amd?define(["exports"],t):t(e.d3=e.d3||{})})(wz,function(e){"use strict";function t(Ee,Ae){return EeAe?1:Ee>=Ae?0:NaN}function r(Ee){return Ee.length===1&&(Ee=n(Ee)),{left:function(Ae,ze,Ce,me){for(Ce==null&&(Ce=0),me==null&&(me=Ae.length);Ce>>1;Ee(Ae[Re],ze)<0?Ce=Re+1:me=Re}return Ce},right:function(Ae,ze,Ce,me){for(Ce==null&&(Ce=0),me==null&&(me=Ae.length);Ce>>1;Ee(Ae[Re],ze)>0?me=Re:Ce=Re+1}return Ce}}}function n(Ee){return function(Ae,ze){return t(Ee(Ae),ze)}}var i=r(t),a=i.right,o=i.left;function s(Ee,Ae){Ae==null&&(Ae=l);for(var ze=0,Ce=Ee.length-1,me=Ee[0],Re=new Array(Ce<0?0:Ce);zeEe?1:Ae>=Ee?0:NaN}function f(Ee){return Ee===null?NaN:+Ee}function h(Ee,Ae){var ze=Ee.length,Ce=0,me=-1,Re=0,ce,Ge,nt=0;if(Ae==null)for(;++me1)return nt/(Ce-1)}function d(Ee,Ae){var ze=h(Ee,Ae);return ze&&Math.sqrt(ze)}function v(Ee,Ae){var ze=Ee.length,Ce=-1,me,Re,ce;if(Ae==null){for(;++Ce=me)for(Re=ce=me;++Ceme&&(Re=me),ce=me)for(Re=ce=me;++Ceme&&(Re=me),ce0)return[Ee];if((Ce=Ae0)for(Ee=Math.ceil(Ee/Ge),Ae=Math.floor(Ae/Ge),ce=new Array(Re=Math.ceil(Ae-Ee+1));++me=0?(Re>=L?10:Re>=_?5:Re>=C?2:1)*Math.pow(10,me):-Math.pow(10,-me)/(Re>=L?10:Re>=_?5:Re>=C?2:1)}function P(Ee,Ae,ze){var Ce=Math.abs(Ae-Ee)/Math.max(0,ze),me=Math.pow(10,Math.floor(Math.log(Ce)/Math.LN10)),Re=Ce/me;return Re>=L?me*=10:Re>=_?me*=5:Re>=C&&(me*=2),Aert;)ot.pop(),--Rt;var kt=new Array(Rt+1),Ct;for(Re=0;Re<=Rt;++Re)Ct=kt[Re]=[],Ct.x0=Re>0?ot[Re-1]:qt,Ct.x1=Re=1)return+ze(Ee[Ce-1],Ce-1,Ee);var Ce,me=(Ce-1)*Ae,Re=Math.floor(me),ce=+ze(Ee[Re],Re,Ee),Ge=+ze(Ee[Re+1],Re+1,Ee);return ce+(Ge-ce)*(me-Re)}}function V(Ee,Ae,ze){return Ee=g.call(Ee,f).sort(t),Math.ceil((ze-Ae)/(2*(q(Ee,.75)-q(Ee,.25))*Math.pow(Ee.length,-1/3)))}function H(Ee,Ae,ze){return Math.ceil((ze-Ae)/(3.5*d(Ee)*Math.pow(Ee.length,-1/3)))}function X(Ee,Ae){var ze=Ee.length,Ce=-1,me,Re;if(Ae==null){for(;++Ce=me)for(Re=me;++CeRe&&(Re=me)}else for(;++Ce=me)for(Re=me;++CeRe&&(Re=me);return Re}function G(Ee,Ae){var ze=Ee.length,Ce=ze,me=-1,Re,ce=0;if(Ae==null)for(;++me=0;)for(ce=Ee[Ae],ze=ce.length;--ze>=0;)Re[--me]=ce[ze];return Re}function re(Ee,Ae){var ze=Ee.length,Ce=-1,me,Re;if(Ae==null){for(;++Ce=me)for(Re=me;++Ceme&&(Re=me)}else for(;++Ce=me)for(Re=me;++Ceme&&(Re=me);return Re}function ae(Ee,Ae){for(var ze=Ae.length,Ce=new Array(ze);ze--;)Ce[ze]=Ee[Ae[ze]];return Ce}function _e(Ee,Ae){if(ze=Ee.length){var ze,Ce=0,me=0,Re,ce=Ee[me];for(Ae==null&&(Ae=t);++Ce{(function(e,t){typeof Tz=="object"&&typeof yRe!="undefined"?t(Tz,JE()):typeof define=="function"&&define.amd?define(["exports","d3-array"],t):(e=e||self,t(e.d3=e.d3||{},e.d3))})(Tz,function(e,t){"use strict";function r(){return new n}function n(){this.reset()}n.prototype={constructor:n,reset:function(){this.s=this.t=0},add:function(gt){a(i,gt,this.t),a(this,i.s,this.s),this.s?this.t+=i.t:this.s=i.t},valueOf:function(){return this.s}};var i=new n;function a(gt,Bt,wr){var vr=gt.s=Bt+wr,Ur=vr-Bt,fi=vr-Ur;gt.t=Bt-fi+(wr-Ur)}var o=1e-6,s=1e-12,l=Math.PI,u=l/2,c=l/4,f=l*2,h=180/l,d=l/180,v=Math.abs,x=Math.atan,b=Math.atan2,g=Math.cos,E=Math.ceil,k=Math.exp,A=Math.log,L=Math.pow,_=Math.sin,C=Math.sign||function(gt){return gt>0?1:gt<0?-1:0},M=Math.sqrt,p=Math.tan;function P(gt){return gt>1?0:gt<-1?l:Math.acos(gt)}function T(gt){return gt>1?u:gt<-1?-u:Math.asin(gt)}function F(gt){return(gt=_(gt/2))*gt}function q(){}function V(gt,Bt){gt&&X.hasOwnProperty(gt.type)&&X[gt.type](gt,Bt)}var H={Feature:function(gt,Bt){V(gt.geometry,Bt)},FeatureCollection:function(gt,Bt){for(var wr=gt.features,vr=-1,Ur=wr.length;++vr=0?1:-1,Ur=vr*wr,fi=g(Bt),xi=_(Bt),Fi=ie*xi,Xi=ge*fi+Fi*g(Ur),hn=Fi*vr*_(Ur);re.add(b(hn,Xi)),ke=gt,ge=fi,ie=xi}function me(gt){return ae.reset(),W(gt,Te),ae*2}function Re(gt){return[b(gt[1],gt[0]),T(gt[2])]}function ce(gt){var Bt=gt[0],wr=gt[1],vr=g(wr);return[vr*g(Bt),vr*_(Bt),_(wr)]}function Ge(gt,Bt){return gt[0]*Bt[0]+gt[1]*Bt[1]+gt[2]*Bt[2]}function nt(gt,Bt){return[gt[1]*Bt[2]-gt[2]*Bt[1],gt[2]*Bt[0]-gt[0]*Bt[2],gt[0]*Bt[1]-gt[1]*Bt[0]]}function ct(gt,Bt){gt[0]+=Bt[0],gt[1]+=Bt[1],gt[2]+=Bt[2]}function qt(gt,Bt){return[gt[0]*Bt,gt[1]*Bt,gt[2]*Bt]}function rt(gt){var Bt=M(gt[0]*gt[0]+gt[1]*gt[1]+gt[2]*gt[2]);gt[0]/=Bt,gt[1]/=Bt,gt[2]/=Bt}var ot,Rt,kt,Ct,Yt,xr,er,Ke,xt=r(),bt,Lt,St={point:Et,lineStart:Ht,lineEnd:$t,polygonStart:function(){St.point=fr,St.lineStart=_r,St.lineEnd=Br,xt.reset(),Te.polygonStart()},polygonEnd:function(){Te.polygonEnd(),St.point=Et,St.lineStart=Ht,St.lineEnd=$t,re<0?(ot=-(kt=180),Rt=-(Ct=90)):xt>o?Ct=90:xt<-o&&(Rt=-90),Lt[0]=ot,Lt[1]=kt},sphere:function(){ot=-(kt=180),Rt=-(Ct=90)}};function Et(gt,Bt){bt.push(Lt=[ot=gt,kt=gt]),BtCt&&(Ct=Bt)}function dt(gt,Bt){var wr=ce([gt*d,Bt*d]);if(Ke){var vr=nt(Ke,wr),Ur=[vr[1],-vr[0],0],fi=nt(Ur,vr);rt(fi),fi=Re(fi);var xi=gt-Yt,Fi=xi>0?1:-1,Xi=fi[0]*h*Fi,hn,Ti=v(xi)>180;Ti^(Fi*YtCt&&(Ct=hn)):(Xi=(Xi+360)%360-180,Ti^(Fi*YtCt&&(Ct=Bt))),Ti?gtOr(ot,kt)&&(kt=gt):Or(gt,kt)>Or(ot,kt)&&(ot=gt):kt>=ot?(gtkt&&(kt=gt)):gt>Yt?Or(ot,gt)>Or(ot,kt)&&(kt=gt):Or(gt,kt)>Or(ot,kt)&&(ot=gt)}else bt.push(Lt=[ot=gt,kt=gt]);BtCt&&(Ct=Bt),Ke=wr,Yt=gt}function Ht(){St.point=dt}function $t(){Lt[0]=ot,Lt[1]=kt,St.point=Et,Ke=null}function fr(gt,Bt){if(Ke){var wr=gt-Yt;xt.add(v(wr)>180?wr+(wr>0?360:-360):wr)}else xr=gt,er=Bt;Te.point(gt,Bt),dt(gt,Bt)}function _r(){Te.lineStart()}function Br(){fr(xr,er),Te.lineEnd(),v(xt)>o&&(ot=-(kt=180)),Lt[0]=ot,Lt[1]=kt,Ke=null}function Or(gt,Bt){return(Bt-=gt)<0?Bt+360:Bt}function Nr(gt,Bt){return gt[0]-Bt[0]}function ut(gt,Bt){return gt[0]<=gt[1]?gt[0]<=Bt&&Bt<=gt[1]:BtOr(vr[0],vr[1])&&(vr[1]=Ur[1]),Or(Ur[0],vr[1])>Or(vr[0],vr[1])&&(vr[0]=Ur[0])):fi.push(vr=Ur);for(xi=-1/0,wr=fi.length-1,Bt=0,vr=fi[wr];Bt<=wr;vr=Ur,++Bt)Ur=fi[Bt],(Fi=Or(vr[1],Ur[0]))>xi&&(xi=Fi,ot=Ur[0],kt=vr[1])}return bt=Lt=null,ot===1/0||Rt===1/0?[[NaN,NaN],[NaN,NaN]]:[[ot,Rt],[kt,Ct]]}var Ye,Ve,Xe,ht,Le,xe,Se,lt,Gt,Vt,ar,Qr,ai,jr,ri,bi,nn={sphere:q,point:Wi,lineStart:_n,lineEnd:Wn,polygonStart:function(){nn.lineStart=It,nn.lineEnd=ft},polygonEnd:function(){nn.lineStart=_n,nn.lineEnd=Wn}};function Wi(gt,Bt){gt*=d,Bt*=d;var wr=g(Bt);Ni(wr*g(gt),wr*_(gt),_(Bt))}function Ni(gt,Bt,wr){++Ye,Xe+=(gt-Xe)/Ye,ht+=(Bt-ht)/Ye,Le+=(wr-Le)/Ye}function _n(){nn.point=$i}function $i(gt,Bt){gt*=d,Bt*=d;var wr=g(Bt);jr=wr*g(gt),ri=wr*_(gt),bi=_(Bt),nn.point=zn,Ni(jr,ri,bi)}function zn(gt,Bt){gt*=d,Bt*=d;var wr=g(Bt),vr=wr*g(gt),Ur=wr*_(gt),fi=_(Bt),xi=b(M((xi=ri*fi-bi*Ur)*xi+(xi=bi*vr-jr*fi)*xi+(xi=jr*Ur-ri*vr)*xi),jr*vr+ri*Ur+bi*fi);Ve+=xi,xe+=xi*(jr+(jr=vr)),Se+=xi*(ri+(ri=Ur)),lt+=xi*(bi+(bi=fi)),Ni(jr,ri,bi)}function Wn(){nn.point=Wi}function It(){nn.point=jt}function ft(){Zt(Qr,ai),nn.point=Wi}function jt(gt,Bt){Qr=gt,ai=Bt,gt*=d,Bt*=d,nn.point=Zt;var wr=g(Bt);jr=wr*g(gt),ri=wr*_(gt),bi=_(Bt),Ni(jr,ri,bi)}function Zt(gt,Bt){gt*=d,Bt*=d;var wr=g(Bt),vr=wr*g(gt),Ur=wr*_(gt),fi=_(Bt),xi=ri*fi-bi*Ur,Fi=bi*vr-jr*fi,Xi=jr*Ur-ri*vr,hn=M(xi*xi+Fi*Fi+Xi*Xi),Ti=T(hn),qi=hn&&-Ti/hn;Gt+=qi*xi,Vt+=qi*Fi,ar+=qi*Xi,Ve+=Ti,xe+=Ti*(jr+(jr=vr)),Se+=Ti*(ri+(ri=Ur)),lt+=Ti*(bi+(bi=fi)),Ni(jr,ri,bi)}function yr(gt){Ye=Ve=Xe=ht=Le=xe=Se=lt=Gt=Vt=ar=0,W(gt,nn);var Bt=Gt,wr=Vt,vr=ar,Ur=Bt*Bt+wr*wr+vr*vr;return Url?gt+Math.round(-gt/f)*f:gt,Bt]}Vr.invert=Vr;function gi(gt,Bt,wr){return(gt%=f)?Bt||wr?Zr(Mi(gt),Pi(Bt,wr)):Mi(gt):Bt||wr?Pi(Bt,wr):Vr}function Si(gt){return function(Bt,wr){return Bt+=gt,[Bt>l?Bt-f:Bt<-l?Bt+f:Bt,wr]}}function Mi(gt){var Bt=Si(gt);return Bt.invert=Si(-gt),Bt}function Pi(gt,Bt){var wr=g(gt),vr=_(gt),Ur=g(Bt),fi=_(Bt);function xi(Fi,Xi){var hn=g(Xi),Ti=g(Fi)*hn,qi=_(Fi)*hn,Ii=_(Xi),mi=Ii*wr+Ti*vr;return[b(qi*Ur-mi*fi,Ti*wr-Ii*vr),T(mi*Ur+qi*fi)]}return xi.invert=function(Fi,Xi){var hn=g(Xi),Ti=g(Fi)*hn,qi=_(Fi)*hn,Ii=_(Xi),mi=Ii*Ur-qi*fi;return[b(qi*Ur+Ii*fi,Ti*wr+mi*vr),T(mi*wr-Ti*vr)]},xi}function Gi(gt){gt=gi(gt[0]*d,gt[1]*d,gt.length>2?gt[2]*d:0);function Bt(wr){return wr=gt(wr[0]*d,wr[1]*d),wr[0]*=h,wr[1]*=h,wr}return Bt.invert=function(wr){return wr=gt.invert(wr[0]*d,wr[1]*d),wr[0]*=h,wr[1]*=h,wr},Bt}function Ki(gt,Bt,wr,vr,Ur,fi){if(wr){var xi=g(Bt),Fi=_(Bt),Xi=vr*wr;Ur==null?(Ur=Bt+vr*f,fi=Bt-Xi/2):(Ur=ka(xi,Ur),fi=ka(xi,fi),(vr>0?Urfi)&&(Ur+=vr*f));for(var hn,Ti=Ur;vr>0?Ti>fi:Ti1&>.push(gt.pop().concat(gt.shift()))},result:function(){var wr=gt;return gt=[],Bt=null,wr}}}function Fa(gt,Bt){return v(gt[0]-Bt[0])=0;--Fi)Ur.point((qi=Ti[Fi])[0],qi[1]);else vr(Ii.x,Ii.p.x,-1,Ur);Ii=Ii.p}Ii=Ii.o,Ti=Ii.z,mi=!mi}while(!Ii.v);Ur.lineEnd()}}}function oa(gt){if(Bt=gt.length){for(var Bt,wr=0,vr=gt[0],Ur;++wr=0?1:-1,Qo=Ts*Xo,ys=Qo>l,Bo=Ma*Ua;if(Sn.add(b(Bo*Ts*_(Qo),Ta*mo+Bo*g(Qo))),xi+=ys?Xo+Ts*f:Xo,ys^mi>=wr^Cn>=wr){var yl=nt(ce(Ii),ce(qa));rt(yl);var Gs=nt(fi,yl);rt(Gs);var Rs=(ys^Xo>=0?-1:1)*T(Gs[2]);(vr>Rs||vr===Rs&&(yl[0]||yl[1]))&&(Fi+=ys^Xo>=0?1:-1)}}return(xi<-o||xi0){for(Xi||(Ur.polygonStart(),Xi=!0),Ur.lineStart(),mo=0;mo1&&sn&2&&Ua.push(Ua.pop().concat(Ua.shift())),Ti.push(Ua.filter(_t))}}return Ii}}function _t(gt){return gt.length>1}function br(gt,Bt){return((gt=gt.x)[0]<0?gt[1]-u-o:u-gt[1])-((Bt=Bt.x)[0]<0?Bt[1]-u-o:u-Bt[1])}var Hr=xn(function(){return!0},ti,Yi,[-l,-u]);function ti(gt){var Bt=NaN,wr=NaN,vr=NaN,Ur;return{lineStart:function(){gt.lineStart(),Ur=1},point:function(fi,xi){var Fi=fi>0?l:-l,Xi=v(fi-Bt);v(Xi-l)0?u:-u),gt.point(vr,wr),gt.lineEnd(),gt.lineStart(),gt.point(Fi,wr),gt.point(fi,wr),Ur=0):vr!==Fi&&Xi>=l&&(v(Bt-vr)o?x((_(Bt)*(fi=g(vr))*_(wr)-_(vr)*(Ur=g(Bt))*_(gt))/(Ur*fi*xi)):(Bt+vr)/2}function Yi(gt,Bt,wr,vr){var Ur;if(gt==null)Ur=wr*u,vr.point(-l,Ur),vr.point(0,Ur),vr.point(l,Ur),vr.point(l,0),vr.point(l,-Ur),vr.point(0,-Ur),vr.point(-l,-Ur),vr.point(-l,0),vr.point(-l,Ur);else if(v(gt[0]-Bt[0])>o){var fi=gt[0]0,Ur=v(Bt)>o;function fi(Ti,qi,Ii,mi){Ki(mi,gt,wr,Ii,Ti,qi)}function xi(Ti,qi){return g(Ti)*g(qi)>Bt}function Fi(Ti){var qi,Ii,mi,Pn,Ma;return{lineStart:function(){Pn=mi=!1,Ma=1},point:function(Ta,Ea){var qa=[Ta,Ea],Cn,sn=xi(Ta,Ea),Ua=vr?sn?0:hn(Ta,Ea):sn?hn(Ta+(Ta<0?l:-l),Ea):0;if(!qi&&(Pn=mi=sn)&&Ti.lineStart(),sn!==mi&&(Cn=Xi(qi,qa),(!Cn||Fa(qi,Cn)||Fa(qa,Cn))&&(qa[2]=1)),sn!==mi)Ma=0,sn?(Ti.lineStart(),Cn=Xi(qa,qi),Ti.point(Cn[0],Cn[1])):(Cn=Xi(qi,qa),Ti.point(Cn[0],Cn[1],2),Ti.lineEnd()),qi=Cn;else if(Ur&&qi&&vr^sn){var mo;!(Ua&Ii)&&(mo=Xi(qa,qi,!0))&&(Ma=0,vr?(Ti.lineStart(),Ti.point(mo[0][0],mo[0][1]),Ti.point(mo[1][0],mo[1][1]),Ti.lineEnd()):(Ti.point(mo[1][0],mo[1][1]),Ti.lineEnd(),Ti.lineStart(),Ti.point(mo[0][0],mo[0][1],3)))}sn&&(!qi||!Fa(qi,qa))&&Ti.point(qa[0],qa[1]),qi=qa,mi=sn,Ii=Ua},lineEnd:function(){mi&&Ti.lineEnd(),qi=null},clean:function(){return Ma|(Pn&&mi)<<1}}}function Xi(Ti,qi,Ii){var mi=ce(Ti),Pn=ce(qi),Ma=[1,0,0],Ta=nt(mi,Pn),Ea=Ge(Ta,Ta),qa=Ta[0],Cn=Ea-qa*qa;if(!Cn)return!Ii&&Ti;var sn=Bt*Ea/Cn,Ua=-Bt*qa/Cn,mo=nt(Ma,Ta),Xo=qt(Ma,sn),Ts=qt(Ta,Ua);ct(Xo,Ts);var Qo=mo,ys=Ge(Xo,Qo),Bo=Ge(Qo,Qo),yl=ys*ys-Bo*(Ge(Xo,Xo)-1);if(!(yl<0)){var Gs=M(yl),Rs=qt(Qo,(-ys-Gs)/Bo);if(ct(Rs,Xo),Rs=Re(Rs),!Ii)return Rs;var ia=Ti[0],Ka=qi[0],vs=Ti[1],Ko=qi[1],iu;Ka0^Rs[1]<(v(Rs[0]-ia)l^(ia<=Rs[0]&&Rs[0]<=Ka)){var bu=qt(Qo,(-ys+Gs)/Bo);return ct(bu,Xo),[Rs,Re(bu)]}}}function hn(Ti,qi){var Ii=vr?gt:l-gt,mi=0;return Ti<-Ii?mi|=1:Ti>Ii&&(mi|=2),qi<-Ii?mi|=4:qi>Ii&&(mi|=8),mi}return xn(xi,Fi,fi,vr?[0,-gt]:[-l,gt-l])}function hi(gt,Bt,wr,vr,Ur,fi){var xi=gt[0],Fi=gt[1],Xi=Bt[0],hn=Bt[1],Ti=0,qi=1,Ii=Xi-xi,mi=hn-Fi,Pn;if(Pn=wr-xi,!(!Ii&&Pn>0)){if(Pn/=Ii,Ii<0){if(Pn0){if(Pn>qi)return;Pn>Ti&&(Ti=Pn)}if(Pn=Ur-xi,!(!Ii&&Pn<0)){if(Pn/=Ii,Ii<0){if(Pn>qi)return;Pn>Ti&&(Ti=Pn)}else if(Ii>0){if(Pn0)){if(Pn/=mi,mi<0){if(Pn0){if(Pn>qi)return;Pn>Ti&&(Ti=Pn)}if(Pn=fi-Fi,!(!mi&&Pn<0)){if(Pn/=mi,mi<0){if(Pn>qi)return;Pn>Ti&&(Ti=Pn)}else if(mi>0){if(Pn0&&(gt[0]=xi+Ti*Ii,gt[1]=Fi+Ti*mi),qi<1&&(Bt[0]=xi+qi*Ii,Bt[1]=Fi+qi*mi),!0}}}}}var Ji=1e9,ua=-Ji;function Fn(gt,Bt,wr,vr){function Ur(hn,Ti){return gt<=hn&&hn<=wr&&Bt<=Ti&&Ti<=vr}function fi(hn,Ti,qi,Ii){var mi=0,Pn=0;if(hn==null||(mi=xi(hn,qi))!==(Pn=xi(Ti,qi))||Xi(hn,Ti)<0^qi>0)do Ii.point(mi===0||mi===3?gt:wr,mi>1?vr:Bt);while((mi=(mi+qi+4)%4)!==Pn);else Ii.point(Ti[0],Ti[1])}function xi(hn,Ti){return v(hn[0]-gt)0?0:3:v(hn[0]-wr)0?2:1:v(hn[1]-Bt)0?1:0:Ti>0?3:2}function Fi(hn,Ti){return Xi(hn.x,Ti.x)}function Xi(hn,Ti){var qi=xi(hn,1),Ii=xi(Ti,1);return qi!==Ii?qi-Ii:qi===0?Ti[1]-hn[1]:qi===1?hn[0]-Ti[0]:qi===2?hn[1]-Ti[1]:Ti[0]-hn[0]}return function(hn){var Ti=hn,qi=la(),Ii,mi,Pn,Ma,Ta,Ea,qa,Cn,sn,Ua,mo,Xo={point:Ts,lineStart:yl,lineEnd:Gs,polygonStart:ys,polygonEnd:Bo};function Ts(ia,Ka){Ur(ia,Ka)&&Ti.point(ia,Ka)}function Qo(){for(var ia=0,Ka=0,vs=mi.length;Kavr&&(Kc-mf)*(vr-bu)>(Du-bu)*(gt-mf)&&++ia:Du<=vr&&(Kc-mf)*(vr-bu)<(Du-bu)*(gt-mf)&&--ia;return ia}function ys(){Ti=qi,Ii=[],mi=[],mo=!0}function Bo(){var ia=Qo(),Ka=mo&&ia,vs=(Ii=t.merge(Ii)).length;(Ka||vs)&&(hn.polygonStart(),Ka&&(hn.lineStart(),fi(null,null,1,hn),hn.lineEnd()),vs&&jo(Ii,Fi,ia,fi,hn),hn.polygonEnd()),Ti=hn,Ii=mi=Pn=null}function yl(){Xo.point=Rs,mi&&mi.push(Pn=[]),Ua=!0,sn=!1,qa=Cn=NaN}function Gs(){Ii&&(Rs(Ma,Ta),Ea&&sn&&qi.rejoin(),Ii.push(qi.result())),Xo.point=Ts,sn&&Ti.lineEnd()}function Rs(ia,Ka){var vs=Ur(ia,Ka);if(mi&&Pn.push([ia,Ka]),Ua)Ma=ia,Ta=Ka,Ea=vs,Ua=!1,vs&&(Ti.lineStart(),Ti.point(ia,Ka));else if(vs&&sn)Ti.point(ia,Ka);else{var Ko=[qa=Math.max(ua,Math.min(Ji,qa)),Cn=Math.max(ua,Math.min(Ji,Cn))],iu=[ia=Math.max(ua,Math.min(Ji,ia)),Ka=Math.max(ua,Math.min(Ji,Ka))];hi(Ko,iu,gt,Bt,wr,vr)?(sn||(Ti.lineStart(),Ti.point(Ko[0],Ko[1])),Ti.point(iu[0],iu[1]),vs||Ti.lineEnd(),mo=!1):vs&&(Ti.lineStart(),Ti.point(ia,Ka),mo=!1)}qa=ia,Cn=Ka,sn=vs}return Xo}}function Sa(){var gt=0,Bt=0,wr=960,vr=500,Ur,fi,xi;return xi={stream:function(Fi){return Ur&&fi===Fi?Ur:Ur=Fn(gt,Bt,wr,vr)(fi=Fi)},extent:function(Fi){return arguments.length?(gt=+Fi[0][0],Bt=+Fi[0][1],wr=+Fi[1][0],vr=+Fi[1][1],Ur=fi=null,xi):[[gt,Bt],[wr,vr]]}}}var go=r(),Oo,ho,Mo,xo={sphere:q,point:q,lineStart:zs,lineEnd:q,polygonStart:q,polygonEnd:q};function zs(){xo.point=Zs,xo.lineEnd=ks}function ks(){xo.point=xo.lineEnd=q}function Zs(gt,Bt){gt*=d,Bt*=d,Oo=gt,ho=_(Bt),Mo=g(Bt),xo.point=Xs}function Xs(gt,Bt){gt*=d,Bt*=d;var wr=_(Bt),vr=g(Bt),Ur=v(gt-Oo),fi=g(Ur),xi=_(Ur),Fi=vr*xi,Xi=Mo*wr-ho*vr*fi,hn=ho*wr+Mo*vr*fi;go.add(b(M(Fi*Fi+Xi*Xi),hn)),Oo=gt,ho=wr,Mo=vr}function wl(gt){return go.reset(),W(gt,xo),+go}var os=[null,null],cl={type:"LineString",coordinates:os};function Cs(gt,Bt){return os[0]=gt,os[1]=Bt,wl(cl)}var ml={Feature:function(gt,Bt){return Hs(gt.geometry,Bt)},FeatureCollection:function(gt,Bt){for(var wr=gt.features,vr=-1,Ur=wr.length;++vr0&&(Ur=Cs(gt[fi],gt[fi-1]),Ur>0&&wr<=Ur&&vr<=Ur&&(wr+vr-Ur)*(1-Math.pow((wr-vr)/Ur,2))o}).map(Ii)).concat(t.range(E(fi/hn)*hn,Ur,hn).filter(function(Cn){return v(Cn%qi)>o}).map(mi))}return Ea.lines=function(){return qa().map(function(Cn){return{type:"LineString",coordinates:Cn}})},Ea.outline=function(){return{type:"Polygon",coordinates:[Pn(vr).concat(Ma(xi).slice(1),Pn(wr).reverse().slice(1),Ma(Fi).reverse().slice(1))]}},Ea.extent=function(Cn){return arguments.length?Ea.extentMajor(Cn).extentMinor(Cn):Ea.extentMinor()},Ea.extentMajor=function(Cn){return arguments.length?(vr=+Cn[0][0],wr=+Cn[1][0],Fi=+Cn[0][1],xi=+Cn[1][1],vr>wr&&(Cn=vr,vr=wr,wr=Cn),Fi>xi&&(Cn=Fi,Fi=xi,xi=Cn),Ea.precision(Ta)):[[vr,Fi],[wr,xi]]},Ea.extentMinor=function(Cn){return arguments.length?(Bt=+Cn[0][0],gt=+Cn[1][0],fi=+Cn[0][1],Ur=+Cn[1][1],Bt>gt&&(Cn=Bt,Bt=gt,gt=Cn),fi>Ur&&(Cn=fi,fi=Ur,Ur=Cn),Ea.precision(Ta)):[[Bt,fi],[gt,Ur]]},Ea.step=function(Cn){return arguments.length?Ea.stepMajor(Cn).stepMinor(Cn):Ea.stepMinor()},Ea.stepMajor=function(Cn){return arguments.length?(Ti=+Cn[0],qi=+Cn[1],Ea):[Ti,qi]},Ea.stepMinor=function(Cn){return arguments.length?(Xi=+Cn[0],hn=+Cn[1],Ea):[Xi,hn]},Ea.precision=function(Cn){return arguments.length?(Ta=+Cn,Ii=on(fi,Ur,90),mi=fa(Bt,gt,Ta),Pn=on(Fi,xi,90),Ma=fa(vr,wr,Ta),Ea):Ta},Ea.extentMajor([[-180,-90+o],[180,90-o]]).extentMinor([[-180,-80-o],[180,80+o]])}function Il(){return Qu()()}function vo(gt,Bt){var wr=gt[0]*d,vr=gt[1]*d,Ur=Bt[0]*d,fi=Bt[1]*d,xi=g(vr),Fi=_(vr),Xi=g(fi),hn=_(fi),Ti=xi*g(wr),qi=xi*_(wr),Ii=Xi*g(Ur),mi=Xi*_(Ur),Pn=2*T(M(F(fi-vr)+xi*Xi*F(Ur-wr))),Ma=_(Pn),Ta=Pn?function(Ea){var qa=_(Ea*=Pn)/Ma,Cn=_(Pn-Ea)/Ma,sn=Cn*Ti+qa*Ii,Ua=Cn*qi+qa*mi,mo=Cn*Fi+qa*hn;return[b(Ua,sn)*h,b(mo,M(sn*sn+Ua*Ua))*h]}:function(){return[wr*h,vr*h]};return Ta.distance=Pn,Ta}function Wl(gt){return gt}var Ks=r(),Zl=r(),Ec,Zn,ko,Co,Tl={point:q,lineStart:q,lineEnd:q,polygonStart:function(){Tl.lineStart=uf,Tl.lineEnd=rh},polygonEnd:function(){Tl.lineStart=Tl.lineEnd=Tl.point=q,Ks.add(v(Zl)),Zl.reset()},result:function(){var gt=Ks/2;return Ks.reset(),gt}};function uf(){Tl.point=So}function So(gt,Bt){Tl.point=cf,Ec=ko=gt,Zn=Co=Bt}function cf(gt,Bt){Zl.add(Co*gt-ko*Bt),ko=gt,Co=Bt}function rh(){cf(Ec,Zn)}var Al=1/0,Hc=Al,Ql=-Al,Ls=Ql,mu={point:kc,lineStart:q,lineEnd:q,polygonStart:q,polygonEnd:q,result:function(){var gt=[[Al,Hc],[Ql,Ls]];return Ql=Ls=-(Hc=Al=1/0),gt}};function kc(gt,Bt){gtQl&&(Ql=gt),BtLs&&(Ls=Bt)}var Of=0,Gc=0,vd=0,Bf=0,ss=0,ff=0,ih=0,Ul=0,Js=0,hc,Cc,ws,$s,hs={point:Ms,lineStart:dc,lineEnd:Ps,polygonStart:function(){hs.lineStart=ov,hs.lineEnd=wo},polygonEnd:function(){hs.point=Ms,hs.lineStart=dc,hs.lineEnd=Ps},result:function(){var gt=Js?[ih/Js,Ul/Js]:ff?[Bf/ff,ss/ff]:vd?[Of/vd,Gc/vd]:[NaN,NaN];return Of=Gc=vd=Bf=ss=ff=ih=Ul=Js=0,gt}};function Ms(gt,Bt){Of+=gt,Gc+=Bt,++vd}function dc(){hs.point=Sl}function Sl(gt,Bt){hs.point=ec,Ms(ws=gt,$s=Bt)}function ec(gt,Bt){var wr=gt-ws,vr=Bt-$s,Ur=M(wr*wr+vr*vr);Bf+=Ur*(ws+gt)/2,ss+=Ur*($s+Bt)/2,ff+=Ur,Ms(ws=gt,$s=Bt)}function Ps(){hs.point=Ms}function ov(){hs.point=Od}function wo(){$o(hc,Cc)}function Od(gt,Bt){hs.point=$o,Ms(hc=ws=gt,Cc=$s=Bt)}function $o(gt,Bt){var wr=gt-ws,vr=Bt-$s,Ur=M(wr*wr+vr*vr);Bf+=Ur*(ws+gt)/2,ss+=Ur*($s+Bt)/2,ff+=Ur,Ur=$s*gt-ws*Bt,ih+=Ur*(ws+gt),Ul+=Ur*($s+Bt),Js+=Ur*3,Ms(ws=gt,$s=Bt)}function Ja(gt){this._context=gt}Ja.prototype={_radius:4.5,pointRadius:function(gt){return this._radius=gt,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(gt,Bt){switch(this._point){case 0:{this._context.moveTo(gt,Bt),this._point=1;break}case 1:{this._context.lineTo(gt,Bt);break}default:{this._context.moveTo(gt+this._radius,Bt),this._context.arc(gt,Bt,this._radius,0,f);break}}},result:q};var Ef=r(),tc,uu,Mh,jc,kf,Ml={point:q,lineStart:function(){Ml.point=Yh},lineEnd:function(){tc&&Eh(uu,Mh),Ml.point=q},polygonStart:function(){tc=!0},polygonEnd:function(){tc=null},result:function(){var gt=+Ef;return Ef.reset(),gt}};function Yh(gt,Bt){Ml.point=Eh,uu=jc=gt,Mh=kf=Bt}function Eh(gt,Bt){jc-=gt,kf-=Bt,Ef.add(M(jc*jc+kf*kf)),jc=gt,kf=Bt}function nh(){this._string=[]}nh.prototype={_radius:4.5,_circle:hf(4.5),pointRadius:function(gt){return(gt=+gt)!==this._radius&&(this._radius=gt,this._circle=null),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._string.push("Z"),this._point=NaN},point:function(gt,Bt){switch(this._point){case 0:{this._string.push("M",gt,",",Bt),this._point=1;break}case 1:{this._string.push("L",gt,",",Bt);break}default:{this._circle==null&&(this._circle=hf(this._radius)),this._string.push("M",gt,",",Bt,this._circle);break}}},result:function(){if(this._string.length){var gt=this._string.join("");return this._string=[],gt}else return null}};function hf(gt){return"m0,"+gt+"a"+gt+","+gt+" 0 1,1 0,"+-2*gt+"a"+gt+","+gt+" 0 1,1 0,"+2*gt+"z"}function kh(gt,Bt){var wr=4.5,vr,Ur;function fi(xi){return xi&&(typeof wr=="function"&&Ur.pointRadius(+wr.apply(this,arguments)),W(xi,vr(Ur))),Ur.result()}return fi.area=function(xi){return W(xi,vr(Tl)),Tl.result()},fi.measure=function(xi){return W(xi,vr(Ml)),Ml.result()},fi.bounds=function(xi){return W(xi,vr(mu)),mu.result()},fi.centroid=function(xi){return W(xi,vr(hs)),hs.result()},fi.projection=function(xi){return arguments.length?(vr=xi==null?(gt=null,Wl):(gt=xi).stream,fi):gt},fi.context=function(xi){return arguments.length?(Ur=xi==null?(Bt=null,new nh):new Ja(Bt=xi),typeof wr!="function"&&Ur.pointRadius(wr),fi):Bt},fi.pointRadius=function(xi){return arguments.length?(wr=typeof xi=="function"?xi:(Ur.pointRadius(+xi),+xi),fi):wr},fi.projection(gt).context(Bt)}function Kh(gt){return{stream:rc(gt)}}function rc(gt){return function(Bt){var wr=new ah;for(var vr in gt)wr[vr]=gt[vr];return wr.stream=Bt,wr}}function ah(){}ah.prototype={constructor:ah,point:function(gt,Bt){this.stream.point(gt,Bt)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function Wc(gt,Bt,wr){var vr=gt.clipExtent&>.clipExtent();return gt.scale(150).translate([0,0]),vr!=null&>.clipExtent(null),W(wr,gt.stream(mu)),Bt(mu.result()),vr!=null&>.clipExtent(vr),gt}function df(gt,Bt,wr){return Wc(gt,function(vr){var Ur=Bt[1][0]-Bt[0][0],fi=Bt[1][1]-Bt[0][1],xi=Math.min(Ur/(vr[1][0]-vr[0][0]),fi/(vr[1][1]-vr[0][1])),Fi=+Bt[0][0]+(Ur-xi*(vr[1][0]+vr[0][0]))/2,Xi=+Bt[0][1]+(fi-xi*(vr[1][1]+vr[0][1]))/2;gt.scale(150*xi).translate([Fi,Xi])},wr)}function Cu(gt,Bt,wr){return df(gt,[[0,0],Bt],wr)}function Nf(gt,Bt,wr){return Wc(gt,function(vr){var Ur=+Bt,fi=Ur/(vr[1][0]-vr[0][0]),xi=(Ur-fi*(vr[1][0]+vr[0][0]))/2,Fi=-fi*vr[0][1];gt.scale(150*fi).translate([xi,Fi])},wr)}function Zc(gt,Bt,wr){return Wc(gt,function(vr){var Ur=+Bt,fi=Ur/(vr[1][1]-vr[0][1]),xi=-fi*vr[0][0],Fi=(Ur-fi*(vr[1][1]+vr[0][1]))/2;gt.scale(150*fi).translate([xi,Fi])},wr)}var ds=16,Ch=g(30*d);function Bd(gt,Bt){return+Bt?Cf(gt,Bt):Jh(gt)}function Jh(gt){return rc({point:function(Bt,wr){Bt=gt(Bt,wr),this.stream.point(Bt[0],Bt[1])}})}function Cf(gt,Bt){function wr(vr,Ur,fi,xi,Fi,Xi,hn,Ti,qi,Ii,mi,Pn,Ma,Ta){var Ea=hn-vr,qa=Ti-Ur,Cn=Ea*Ea+qa*qa;if(Cn>4*Bt&&Ma--){var sn=xi+Ii,Ua=Fi+mi,mo=Xi+Pn,Xo=M(sn*sn+Ua*Ua+mo*mo),Ts=T(mo/=Xo),Qo=v(v(mo)-1)Bt||v((Ea*Gs+qa*Rs)/Cn-.5)>.3||xi*Ii+Fi*mi+Xi*Pn2?ia[2]%360*d:0,Gs()):[Fi*h,Xi*h,hn*h]},Bo.angle=function(ia){return arguments.length?(qi=ia%360*d,Gs()):qi*h},Bo.reflectX=function(ia){return arguments.length?(Ii=ia?-1:1,Gs()):Ii<0},Bo.reflectY=function(ia){return arguments.length?(mi=ia?-1:1,Gs()):mi<0},Bo.precision=function(ia){return arguments.length?(mo=Bd(Xo,Ua=ia*ia),Rs()):M(Ua)},Bo.fitExtent=function(ia,Ka){return df(Bo,ia,Ka)},Bo.fitSize=function(ia,Ka){return Cu(Bo,ia,Ka)},Bo.fitWidth=function(ia,Ka){return Nf(Bo,ia,Ka)},Bo.fitHeight=function(ia,Ka){return Zc(Bo,ia,Ka)};function Gs(){var ia=eu(wr,0,0,Ii,mi,qi).apply(null,Bt(fi,xi)),Ka=(qi?eu:$h)(wr,vr-ia[0],Ur-ia[1],Ii,mi,qi);return Ti=gi(Fi,Xi,hn),Xo=Zr(Bt,Ka),Ts=Zr(Ti,Xo),mo=Bd(Xo,Ua),Rs()}function Rs(){return Qo=ys=null,Bo}return function(){return Bt=gt.apply(this,arguments),Bo.invert=Bt.invert&&yl,Gs()}}function fl(gt){var Bt=0,wr=l/3,vr=Lc(gt),Ur=vr(Bt,wr);return Ur.parallels=function(fi){return arguments.length?vr(Bt=fi[0]*d,wr=fi[1]*d):[Bt*h,wr*h]},Ur}function Xc(gt){var Bt=g(gt);function wr(vr,Ur){return[vr*Bt,_(Ur)/Bt]}return wr.invert=function(vr,Ur){return[vr/Bt,T(Ur*Bt)]},wr}function ic(gt,Bt){var wr=_(gt),vr=(wr+_(Bt))/2;if(v(vr)=.12&&Ta<.234&&Ma>=-.425&&Ma<-.214?Ur:Ta>=.166&&Ta<.234&&Ma>=-.214&&Ma<-.115?xi:wr).invert(Ii)},Ti.stream=function(Ii){return gt&&Bt===Ii?gt:gt=Qh([wr.stream(Bt=Ii),Ur.stream(Ii),xi.stream(Ii)])},Ti.precision=function(Ii){return arguments.length?(wr.precision(Ii),Ur.precision(Ii),xi.precision(Ii),qi()):wr.precision()},Ti.scale=function(Ii){return arguments.length?(wr.scale(Ii),Ur.scale(Ii*.35),xi.scale(Ii),Ti.translate(wr.translate())):wr.scale()},Ti.translate=function(Ii){if(!arguments.length)return wr.translate();var mi=wr.scale(),Pn=+Ii[0],Ma=+Ii[1];return vr=wr.translate(Ii).clipExtent([[Pn-.455*mi,Ma-.238*mi],[Pn+.455*mi,Ma+.238*mi]]).stream(hn),fi=Ur.translate([Pn-.307*mi,Ma+.201*mi]).clipExtent([[Pn-.425*mi+o,Ma+.12*mi+o],[Pn-.214*mi-o,Ma+.234*mi-o]]).stream(hn),Fi=xi.translate([Pn-.205*mi,Ma+.212*mi]).clipExtent([[Pn-.214*mi+o,Ma+.166*mi+o],[Pn-.115*mi-o,Ma+.234*mi-o]]).stream(hn),qi()},Ti.fitExtent=function(Ii,mi){return df(Ti,Ii,mi)},Ti.fitSize=function(Ii,mi){return Cu(Ti,Ii,mi)},Ti.fitWidth=function(Ii,mi){return Nf(Ti,Ii,mi)},Ti.fitHeight=function(Ii,mi){return Zc(Ti,Ii,mi)};function qi(){return gt=Bt=null,Ti}return Ti.scale(1070)}function Gu(gt){return function(Bt,wr){var vr=g(Bt),Ur=g(wr),fi=gt(vr*Ur);return[fi*Ur*_(Bt),fi*_(wr)]}}function Pc(gt){return function(Bt,wr){var vr=M(Bt*Bt+wr*wr),Ur=gt(vr),fi=_(Ur),xi=g(Ur);return[b(Bt*fi,vr*xi),T(vr&&wr*fi/vr)]}}var vc=Gu(function(gt){return M(2/(1+gt))});vc.invert=Pc(function(gt){return 2*T(gt/2)});function sv(){return Pu(vc).scale(124.75).clipAngle(180-.001)}var Lf=Gu(function(gt){return(gt=P(gt))&>/_(gt)});Lf.invert=Pc(function(gt){return gt});function Uf(){return Pu(Lf).scale(79.4188).clipAngle(180-.001)}function Iu(gt,Bt){return[gt,A(p((u+Bt)/2))]}Iu.invert=function(gt,Bt){return[gt,2*x(k(Bt))-u]};function oh(){return tu(Iu).scale(961/f)}function tu(gt){var Bt=Pu(gt),wr=Bt.center,vr=Bt.scale,Ur=Bt.translate,fi=Bt.clipExtent,xi=null,Fi,Xi,hn;Bt.scale=function(qi){return arguments.length?(vr(qi),Ti()):vr()},Bt.translate=function(qi){return arguments.length?(Ur(qi),Ti()):Ur()},Bt.center=function(qi){return arguments.length?(wr(qi),Ti()):wr()},Bt.clipExtent=function(qi){return arguments.length?(qi==null?xi=Fi=Xi=hn=null:(xi=+qi[0][0],Fi=+qi[0][1],Xi=+qi[1][0],hn=+qi[1][1]),Ti()):xi==null?null:[[xi,Fi],[Xi,hn]]};function Ti(){var qi=l*vr(),Ii=Bt(Gi(Bt.rotate()).invert([0,0]));return fi(xi==null?[[Ii[0]-qi,Ii[1]-qi],[Ii[0]+qi,Ii[1]+qi]]:gt===Iu?[[Math.max(Ii[0]-qi,xi),Fi],[Math.min(Ii[0]+qi,Xi),hn]]:[[xi,Math.max(Ii[1]-qi,Fi)],[Xi,Math.min(Ii[1]+qi,hn)]])}return Ti()}function vf(gt){return p((u+gt)/2)}function md(gt,Bt){var wr=g(gt),vr=gt===Bt?_(gt):A(wr/g(Bt))/A(vf(Bt)/vf(gt)),Ur=wr*L(vf(gt),vr)/vr;if(!vr)return Iu;function fi(xi,Fi){Ur>0?Fi<-u+o&&(Fi=-u+o):Fi>u-o&&(Fi=u-o);var Xi=Ur/L(vf(Fi),vr);return[Xi*_(vr*xi),Ur-Xi*g(vr*xi)]}return fi.invert=function(xi,Fi){var Xi=Ur-Fi,hn=C(vr)*M(xi*xi+Xi*Xi),Ti=b(xi,v(Xi))*C(Xi);return Xi*vr<0&&(Ti-=l*C(xi)*C(Xi)),[Ti/vr,2*x(L(Ur/hn,1/vr))-u]},fi}function sh(){return fl(md).scale(109.5).parallels([30,30])}function Fs(gt,Bt){return[gt,Bt]}Fs.invert=Fs;function _u(){return Pu(Fs).scale(152.63)}function xu(gt,Bt){var wr=g(gt),vr=gt===Bt?_(gt):(wr-g(Bt))/(Bt-gt),Ur=wr/vr+gt;if(v(vr)o&&--vr>0);return[gt/(.8707+(fi=wr*wr)*(-.131979+fi*(-.013791+fi*fi*fi*(.003971-.001529*fi)))),wr]};function gc(){return Pu(Rc).scale(175.295)}function hl(gt,Bt){return[g(Bt)*_(gt),_(Bt)]}hl.invert=Pc(T);function ru(){return Pu(hl).scale(249.5).clipAngle(90+o)}function mc(gt,Bt){var wr=g(Bt),vr=1+g(gt)*wr;return[wr*_(gt)/vr,_(Bt)/vr]}mc.invert=Pc(function(gt){return 2*x(gt)});function Yc(){return Pu(mc).scale(250).clipAngle(142)}function nc(gt,Bt){return[A(p((u+Bt)/2)),-gt]}nc.invert=function(gt,Bt){return[-Bt,2*x(k(gt))-u]};function gf(){var gt=tu(nc),Bt=gt.center,wr=gt.rotate;return gt.center=function(vr){return arguments.length?Bt([-vr[1],vr[0]]):(vr=Bt(),[vr[1],-vr[0]])},gt.rotate=function(vr){return arguments.length?wr([vr[0],vr[1],vr.length>2?vr[2]+90:90]):(vr=wr(),[vr[0],vr[1],vr[2]-90])},wr([0,0,90]).scale(159.155)}e.geoAlbers=Qs,e.geoAlbersUsa=gd,e.geoArea=me,e.geoAzimuthalEqualArea=sv,e.geoAzimuthalEqualAreaRaw=vc,e.geoAzimuthalEquidistant=Uf,e.geoAzimuthalEquidistantRaw=Lf,e.geoBounds=Ne,e.geoCentroid=yr,e.geoCircle=jn,e.geoClipAntimeridian=Hr,e.geoClipCircle=an,e.geoClipExtent=Sa,e.geoClipRectangle=Fn,e.geoConicConformal=sh,e.geoConicConformalRaw=md,e.geoConicEqualArea=yu,e.geoConicEqualAreaRaw=ic,e.geoConicEquidistant=Lh,e.geoConicEquidistantRaw=xu,e.geoContains=ms,e.geoDistance=Cs,e.geoEqualEarth=Ph,e.geoEqualEarthRaw=pf,e.geoEquirectangular=_u,e.geoEquirectangularRaw=Fs,e.geoGnomonic=Ih,e.geoGnomonicRaw=Rl,e.geoGraticule=Qu,e.geoGraticule10=Il,e.geoIdentity=Wu,e.geoInterpolate=vo,e.geoLength=wl,e.geoMercator=oh,e.geoMercatorRaw=Iu,e.geoNaturalEarth1=gc,e.geoNaturalEarth1Raw=Rc,e.geoOrthographic=ru,e.geoOrthographicRaw=hl,e.geoPath=kh,e.geoProjection=Pu,e.geoProjectionMutator=Lc,e.geoRotation=Gi,e.geoStereographic=Yc,e.geoStereographicRaw=mc,e.geoStream=W,e.geoTransform=Kh,e.geoTransverseMercator=gf,e.geoTransverseMercatorRaw=nc,Object.defineProperty(e,"__esModule",{value:!0})})});var xRe=ye((Az,_Re)=>{(function(e,t){typeof Az=="object"&&typeof _Re!="undefined"?t(Az,xX(),JE()):typeof define=="function"&&define.amd?define(["exports","d3-geo","d3-array"],t):t(e.d3=e.d3||{},e.d3,e.d3)})(Az,function(e,t,r){"use strict";var n=Math.abs,i=Math.atan,a=Math.atan2,o=Math.cos,s=Math.exp,l=Math.floor,u=Math.log,c=Math.max,f=Math.min,h=Math.pow,d=Math.round,v=Math.sign||function(he){return he>0?1:he<0?-1:0},x=Math.sin,b=Math.tan,g=1e-6,E=1e-12,k=Math.PI,A=k/2,L=k/4,_=Math.SQRT1_2,C=H(2),M=H(k),p=k*2,P=180/k,T=k/180;function F(he){return he?he/Math.sin(he):1}function q(he){return he>1?A:he<-1?-A:Math.asin(he)}function V(he){return he>1?0:he<-1?k:Math.acos(he)}function H(he){return he>0?Math.sqrt(he):0}function X(he){return he=s(2*he),(he-1)/(he+1)}function G(he){return(s(he)-s(-he))/2}function N(he){return(s(he)+s(-he))/2}function W(he){return u(he+H(he*he+1))}function re(he){return u(he+H(he*he-1))}function ae(he){var be=b(he/2),Pe=2*u(o(he/2))/(be*be);function Oe(Je,He){var et=o(Je),Mt=o(He),Dt=x(He),Ut=Mt*et,tr=-((1-Ut?u((1+Ut)/2)/(1-Ut):-.5)+Pe/(1+Ut));return[tr*Mt*x(Je),tr*Dt]}return Oe.invert=function(Je,He){var et=H(Je*Je+He*He),Mt=-he/2,Dt=50,Ut;if(!et)return[0,0];do{var tr=Mt/2,mr=o(tr),Rr=x(tr),zr=Rr/mr,Xr=-u(n(mr));Mt-=Ut=(2/zr*Xr-Pe*zr-et)/(-Xr/(Rr*Rr)+1-Pe/(2*mr*mr))*(mr<0?.7:1)}while(n(Ut)>g&&--Dt>0);var di=x(Mt);return[a(Je*di,et*o(Mt)),q(He*di/et)]},Oe}function _e(){var he=A,be=t.geoProjectionMutator(ae),Pe=be(he);return Pe.radius=function(Oe){return arguments.length?be(he=Oe*T):he*P},Pe.scale(179.976).clipAngle(147)}function Me(he,be){var Pe=o(be),Oe=F(V(Pe*o(he/=2)));return[2*Pe*x(he)*Oe,x(be)*Oe]}Me.invert=function(he,be){if(!(he*he+4*be*be>k*k+g)){var Pe=he,Oe=be,Je=25;do{var He=x(Pe),et=x(Pe/2),Mt=o(Pe/2),Dt=x(Oe),Ut=o(Oe),tr=x(2*Oe),mr=Dt*Dt,Rr=Ut*Ut,zr=et*et,Xr=1-Rr*Mt*Mt,di=Xr?V(Ut*Mt)*H(Li=1/Xr):Li=0,Li,Ci=2*di*Ut*et-he,Qi=di*Dt-be,Mn=Li*(Rr*zr+di*Ut*Mt*mr),pa=Li*(.5*He*tr-di*2*Dt*et),ea=Li*.25*(tr*et-di*Dt*Rr*He),Ga=Li*(mr*Mt+di*zr*Ut),To=pa*ea-Ga*Mn;if(!To)break;var Wa=(Qi*pa-Ci*Ga)/To,co=(Ci*ea-Qi*Mn)/To;Pe-=Wa,Oe-=co}while((n(Wa)>g||n(co)>g)&&--Je>0);return[Pe,Oe]}};function ke(){return t.geoProjection(Me).scale(152.63)}function ge(he){var be=x(he),Pe=o(he),Oe=he>=0?1:-1,Je=b(Oe*he),He=(1+be-Pe)/2;function et(Mt,Dt){var Ut=o(Dt),tr=o(Mt/=2);return[(1+Ut)*x(Mt),(Oe*Dt>-a(tr,Je)-.001?0:-Oe*10)+He+x(Dt)*Pe-(1+Ut)*be*tr]}return et.invert=function(Mt,Dt){var Ut=0,tr=0,mr=50;do{var Rr=o(Ut),zr=x(Ut),Xr=o(tr),di=x(tr),Li=1+Xr,Ci=Li*zr-Mt,Qi=He+di*Pe-Li*be*Rr-Dt,Mn=Li*Rr/2,pa=-zr*di,ea=be*Li*zr/2,Ga=Pe*Xr+be*Rr*di,To=pa*ea-Ga*Mn,Wa=(Qi*pa-Ci*Ga)/To/2,co=(Ci*ea-Qi*Mn)/To;n(co)>2&&(co/=2),Ut-=Wa,tr-=co}while((n(Wa)>g||n(co)>g)&&--mr>0);return Oe*tr>-a(o(Ut),Je)-.001?[Ut*2,tr]:null},et}function ie(){var he=20*T,be=he>=0?1:-1,Pe=b(be*he),Oe=t.geoProjectionMutator(ge),Je=Oe(he),He=Je.stream;return Je.parallel=function(et){return arguments.length?(Pe=b((be=(he=et*T)>=0?1:-1)*he),Oe(he)):he*P},Je.stream=function(et){var Mt=Je.rotate(),Dt=He(et),Ut=(Je.rotate([0,0]),He(et)),tr=Je.precision();return Je.rotate(Mt),Dt.sphere=function(){Ut.polygonStart(),Ut.lineStart();for(var mr=be*-180;be*mr<180;mr+=be*90)Ut.point(mr,be*90);if(he)for(;be*(mr-=3*be*tr)>=-180;)Ut.point(mr,be*-a(o(mr*T/2),Pe)*P);Ut.lineEnd(),Ut.polygonEnd()},Dt},Je.scale(218.695).center([0,28.0974])}function Te(he,be){var Pe=b(be/2),Oe=H(1-Pe*Pe),Je=1+Oe*o(he/=2),He=x(he)*Oe/Je,et=Pe/Je,Mt=He*He,Dt=et*et;return[4/3*He*(3+Mt-3*Dt),4/3*et*(3+3*Mt-Dt)]}Te.invert=function(he,be){if(he*=3/8,be*=3/8,!he&&n(be)>1)return null;var Pe=he*he,Oe=be*be,Je=1+Pe+Oe,He=H((Je-H(Je*Je-4*be*be))/2),et=q(He)/3,Mt=He?re(n(be/He))/3:W(n(he))/3,Dt=o(et),Ut=N(Mt),tr=Ut*Ut-Dt*Dt;return[v(he)*2*a(G(Mt)*Dt,.25-tr),v(be)*2*a(Ut*x(et),.25+tr)]};function Ee(){return t.geoProjection(Te).scale(66.1603)}var Ae=H(8),ze=u(1+C);function Ce(he,be){var Pe=n(be);return PeE&&--Oe>0);return[he/(o(Pe)*(Ae-1/x(Pe))),v(be)*Pe]};function me(){return t.geoProjection(Ce).scale(112.314)}function Re(he){var be=2*k/he;function Pe(Oe,Je){var He=t.geoAzimuthalEquidistantRaw(Oe,Je);if(n(Oe)>A){var et=a(He[1],He[0]),Mt=H(He[0]*He[0]+He[1]*He[1]),Dt=be*d((et-A)/be)+A,Ut=a(x(et-=Dt),2-o(et));et=Dt+q(k/Mt*x(Ut))-Ut,He[0]=Mt*o(et),He[1]=Mt*x(et)}return He}return Pe.invert=function(Oe,Je){var He=H(Oe*Oe+Je*Je);if(He>A){var et=a(Je,Oe),Mt=be*d((et-A)/be)+A,Dt=et>Mt?-1:1,Ut=He*o(Mt-et),tr=1/b(Dt*V((Ut-k)/H(k*(k-2*Ut)+He*He)));et=Mt+2*i((tr+Dt*H(tr*tr-3))/3),Oe=He*o(et),Je=He*x(et)}return t.geoAzimuthalEquidistantRaw.invert(Oe,Je)},Pe}function ce(){var he=5,be=t.geoProjectionMutator(Re),Pe=be(he),Oe=Pe.stream,Je=.01,He=-o(Je*T),et=x(Je*T);return Pe.lobes=function(Mt){return arguments.length?be(he=+Mt):he},Pe.stream=function(Mt){var Dt=Pe.rotate(),Ut=Oe(Mt),tr=(Pe.rotate([0,0]),Oe(Mt));return Pe.rotate(Dt),Ut.sphere=function(){tr.polygonStart(),tr.lineStart();for(var mr=0,Rr=360/he,zr=2*k/he,Xr=90-180/he,di=A;mr0&&n(Je)>g);return Oe<0?NaN:Pe}function rt(he,be,Pe){return be===void 0&&(be=40),Pe===void 0&&(Pe=E),function(Oe,Je,He,et){var Mt,Dt,Ut;He=He===void 0?0:+He,et=et===void 0?0:+et;for(var tr=0;trMt){He-=Dt/=2,et-=Ut/=2;continue}Mt=Xr;var di=(He>0?-1:1)*Pe,Li=(et>0?-1:1)*Pe,Ci=he(He+di,et),Qi=he(He,et+Li),Mn=(Ci[0]-mr[0])/di,pa=(Ci[1]-mr[1])/di,ea=(Qi[0]-mr[0])/Li,Ga=(Qi[1]-mr[1])/Li,To=Ga*Mn-pa*ea,Wa=(n(To)<.5?.5:1)/To;if(Dt=(zr*ea-Rr*Ga)*Wa,Ut=(Rr*pa-zr*Mn)*Wa,He+=Dt,et+=Ut,n(Dt)0&&(Mt[1]*=1+Dt/1.5*Mt[0]*Mt[0]),Mt}return Oe.invert=rt(Oe),Oe}function Rt(){return t.geoProjection(ot()).rotate([-16.5,-42]).scale(176.57).center([7.93,.09])}function kt(he,be){var Pe=he*x(be),Oe=30,Je;do be-=Je=(be+x(be)-Pe)/(1+o(be));while(n(Je)>g&&--Oe>0);return be/2}function Ct(he,be,Pe){function Oe(Je,He){return[he*Je*o(He=kt(Pe,He)),be*x(He)]}return Oe.invert=function(Je,He){return He=q(He/be),[Je/(he*o(He)),q((2*He+x(2*He))/Pe)]},Oe}var Yt=Ct(C/A,C,k);function xr(){return t.geoProjection(Yt).scale(169.529)}var er=2.00276,Ke=1.11072;function xt(he,be){var Pe=kt(k,be);return[er*he/(1/o(be)+Ke/o(Pe)),(be+C*x(Pe))/er]}xt.invert=function(he,be){var Pe=er*be,Oe=be<0?-L:L,Je=25,He,et;do et=Pe-C*x(Oe),Oe-=He=(x(2*Oe)+2*Oe-k*x(et))/(2*o(2*Oe)+2+k*o(et)*C*o(Oe));while(n(He)>g&&--Je>0);return et=Pe-C*x(Oe),[he*(1/o(et)+Ke/o(Oe))/er,et]};function bt(){return t.geoProjection(xt).scale(160.857)}function Lt(he){var be=0,Pe=t.geoProjectionMutator(he),Oe=Pe(be);return Oe.parallel=function(Je){return arguments.length?Pe(be=Je*T):be*P},Oe}function St(he,be){return[he*o(be),be]}St.invert=function(he,be){return[he/o(be),be]};function Et(){return t.geoProjection(St).scale(152.63)}function dt(he){if(!he)return St;var be=1/b(he);function Pe(Oe,Je){var He=be+he-Je,et=He&&Oe*o(Je)/He;return[He*x(et),be-He*o(et)]}return Pe.invert=function(Oe,Je){var He=H(Oe*Oe+(Je=be-Je)*Je),et=be+he-He;return[He/o(et)*a(Oe,Je),et]},Pe}function Ht(){return Lt(dt).scale(123.082).center([0,26.1441]).parallel(45)}function $t(he){function be(Pe,Oe){var Je=A-Oe,He=Je&&Pe*he*x(Je)/Je;return[Je*x(He)/he,A-Je*o(He)]}return be.invert=function(Pe,Oe){var Je=Pe*he,He=A-Oe,et=H(Je*Je+He*He),Mt=a(Je,He);return[(et?et/x(et):1)*Mt/he,A-et]},be}function fr(){var he=.5,be=t.geoProjectionMutator($t),Pe=be(he);return Pe.fraction=function(Oe){return arguments.length?be(he=+Oe):he},Pe.scale(158.837)}var _r=Ct(1,4/k,k);function Br(){return t.geoProjection(_r).scale(152.63)}function Or(he,be,Pe,Oe,Je,He){var et=o(He),Mt;if(n(he)>1||n(He)>1)Mt=V(Pe*Je+be*Oe*et);else{var Dt=x(he/2),Ut=x(He/2);Mt=2*q(H(Dt*Dt+be*Oe*Ut*Ut))}return n(Mt)>g?[Mt,a(Oe*x(He),be*Je-Pe*Oe*et)]:[0,0]}function Nr(he,be,Pe){return V((he*he+be*be-Pe*Pe)/(2*he*be))}function ut(he){return he-2*k*l((he+k)/(2*k))}function Ne(he,be,Pe){for(var Oe=[[he[0],he[1],x(he[1]),o(he[1])],[be[0],be[1],x(be[1]),o(be[1])],[Pe[0],Pe[1],x(Pe[1]),o(Pe[1])]],Je=Oe[2],He,et=0;et<3;++et,Je=He)He=Oe[et],Je.v=Or(He[1]-Je[1],Je[3],Je[2],He[3],He[2],He[0]-Je[0]),Je.point=[0,0];var Mt=Nr(Oe[0].v[0],Oe[2].v[0],Oe[1].v[0]),Dt=Nr(Oe[0].v[0],Oe[1].v[0],Oe[2].v[0]),Ut=k-Mt;Oe[2].point[1]=0,Oe[0].point[0]=-(Oe[1].point[0]=Oe[0].v[0]/2);var tr=[Oe[2].point[0]=Oe[0].point[0]+Oe[2].v[0]*o(Mt),2*(Oe[0].point[1]=Oe[1].point[1]=Oe[2].v[0]*x(Mt))];function mr(Rr,zr){var Xr=x(zr),di=o(zr),Li=new Array(3),Ci;for(Ci=0;Ci<3;++Ci){var Qi=Oe[Ci];if(Li[Ci]=Or(zr-Qi[1],Qi[3],Qi[2],di,Xr,Rr-Qi[0]),!Li[Ci][0])return Qi.point;Li[Ci][1]=ut(Li[Ci][1]-Qi.v[1])}var Mn=tr.slice();for(Ci=0;Ci<3;++Ci){var pa=Ci==2?0:Ci+1,ea=Nr(Oe[Ci].v[0],Li[Ci][0],Li[pa][0]);Li[Ci][1]<0&&(ea=-ea),Ci?Ci==1?(ea=Dt-ea,Mn[0]-=Li[Ci][0]*o(ea),Mn[1]-=Li[Ci][0]*x(ea)):(ea=Ut-ea,Mn[0]+=Li[Ci][0]*o(ea),Mn[1]+=Li[Ci][0]*x(ea)):(Mn[0]+=Li[Ci][0]*o(ea),Mn[1]-=Li[Ci][0]*x(ea))}return Mn[0]/=3,Mn[1]/=3,Mn}return mr}function Ye(he){return he[0]*=T,he[1]*=T,he}function Ve(){return Xe([0,22],[45,22],[22.5,-22]).scale(380).center([22.5,2])}function Xe(he,be,Pe){var Oe=t.geoCentroid({type:"MultiPoint",coordinates:[he,be,Pe]}),Je=[-Oe[0],-Oe[1]],He=t.geoRotation(Je),et=Ne(Ye(He(he)),Ye(He(be)),Ye(He(Pe)));et.invert=rt(et);var Mt=t.geoProjection(et).rotate(Je),Dt=Mt.center;return delete Mt.rotate,Mt.center=function(Ut){return arguments.length?Dt(He(Ut)):He.invert(Dt())},Mt.clipAngle(90)}function ht(he,be){var Pe=H(1-x(be));return[2/M*he*Pe,M*(1-Pe)]}ht.invert=function(he,be){var Pe=(Pe=be/M-1)*Pe;return[Pe>0?he*H(k/Pe)/2:0,q(1-Pe)]};function Le(){return t.geoProjection(ht).scale(95.6464).center([0,30])}function xe(he){var be=b(he);function Pe(Oe,Je){return[Oe,(Oe?Oe/x(Oe):1)*(x(Je)*o(Oe)-be*o(Je))]}return Pe.invert=be?function(Oe,Je){Oe&&(Je*=x(Oe)/Oe);var He=o(Oe);return[Oe,2*a(H(He*He+be*be-Je*Je)-He,be-Je)]}:function(Oe,Je){return[Oe,q(Oe?Je*b(Oe)/Oe:Je)]},Pe}function Se(){return Lt(xe).scale(249.828).clipAngle(90)}var lt=H(3);function Gt(he,be){return[lt*he*(2*o(2*be/3)-1)/M,lt*M*x(be/3)]}Gt.invert=function(he,be){var Pe=3*q(be/(lt*M));return[M*he/(lt*(2*o(2*Pe/3)-1)),Pe]};function Vt(){return t.geoProjection(Gt).scale(156.19)}function ar(he){var be=o(he);function Pe(Oe,Je){return[Oe*be,x(Je)/be]}return Pe.invert=function(Oe,Je){return[Oe/be,q(Je*be)]},Pe}function Qr(){return Lt(ar).parallel(38.58).scale(195.044)}function ai(he){var be=o(he);function Pe(Oe,Je){return[Oe*be,(1+be)*b(Je/2)]}return Pe.invert=function(Oe,Je){return[Oe/be,i(Je/(1+be))*2]},Pe}function jr(){return Lt(ai).scale(124.75)}function ri(he,be){var Pe=H(8/(3*k));return[Pe*he*(1-n(be)/k),Pe*be]}ri.invert=function(he,be){var Pe=H(8/(3*k)),Oe=be/Pe;return[he/(Pe*(1-n(Oe)/k)),Oe]};function bi(){return t.geoProjection(ri).scale(165.664)}function nn(he,be){var Pe=H(4-3*x(n(be)));return[2/H(6*k)*he*Pe,v(be)*H(2*k/3)*(2-Pe)]}nn.invert=function(he,be){var Pe=2-n(be)/H(2*k/3);return[he*H(6*k)/(2*Pe),v(be)*q((4-Pe*Pe)/3)]};function Wi(){return t.geoProjection(nn).scale(165.664)}function Ni(he,be){var Pe=H(k*(4+k));return[2/Pe*he*(1+H(1-4*be*be/(k*k))),4/Pe*be]}Ni.invert=function(he,be){var Pe=H(k*(4+k))/2;return[he*Pe/(1+H(1-be*be*(4+k)/(4*k))),be*Pe/2]};function _n(){return t.geoProjection(Ni).scale(180.739)}function $i(he,be){var Pe=(2+A)*x(be);be/=2;for(var Oe=0,Je=1/0;Oe<10&&n(Je)>g;Oe++){var He=o(be);be-=Je=(be+x(be)*(He+2)-Pe)/(2*He*(1+He))}return[2/H(k*(4+k))*he*(1+o(be)),2*H(k/(4+k))*x(be)]}$i.invert=function(he,be){var Pe=be*H((4+k)/k)/2,Oe=q(Pe),Je=o(Oe);return[he/(2/H(k*(4+k))*(1+Je)),q((Oe+Pe*(Je+2))/(2+A))]};function zn(){return t.geoProjection($i).scale(180.739)}function Wn(he,be){return[he*(1+o(be))/H(2+k),2*be/H(2+k)]}Wn.invert=function(he,be){var Pe=H(2+k),Oe=be*Pe/2;return[Pe*he/(1+o(Oe)),Oe]};function It(){return t.geoProjection(Wn).scale(173.044)}function ft(he,be){for(var Pe=(1+A)*x(be),Oe=0,Je=1/0;Oe<10&&n(Je)>g;Oe++)be-=Je=(be+x(be)-Pe)/(1+o(be));return Pe=H(2+k),[he*(1+o(be))/Pe,2*be/Pe]}ft.invert=function(he,be){var Pe=1+A,Oe=H(Pe/2);return[he*2*Oe/(1+o(be*=Oe)),q((be+x(be))/Pe)]};function jt(){return t.geoProjection(ft).scale(173.044)}var Zt=3+2*C;function yr(he,be){var Pe=x(he/=2),Oe=o(he),Je=H(o(be)),He=o(be/=2),et=x(be)/(He+C*Oe*Je),Mt=H(2/(1+et*et)),Dt=H((C*He+(Oe+Pe)*Je)/(C*He+(Oe-Pe)*Je));return[Zt*(Mt*(Dt-1/Dt)-2*u(Dt)),Zt*(Mt*et*(Dt+1/Dt)-2*i(et))]}yr.invert=function(he,be){if(!(He=Te.invert(he/1.2,be*1.065)))return null;var Pe=He[0],Oe=He[1],Je=20,He;he/=Zt,be/=Zt;do{var et=Pe/2,Mt=Oe/2,Dt=x(et),Ut=o(et),tr=x(Mt),mr=o(Mt),Rr=o(Oe),zr=H(Rr),Xr=tr/(mr+C*Ut*zr),di=Xr*Xr,Li=H(2/(1+di)),Ci=C*mr+(Ut+Dt)*zr,Qi=C*mr+(Ut-Dt)*zr,Mn=Ci/Qi,pa=H(Mn),ea=pa-1/pa,Ga=pa+1/pa,To=Li*ea-2*u(pa)-he,Wa=Li*Xr*Ga-2*i(Xr)-be,co=tr&&_*zr*Dt*di/tr,Ro=(C*Ut*mr+zr)/(2*(mr+C*Ut*zr)*(mr+C*Ut*zr)*zr),Ds=-.5*Xr*Li*Li*Li,As=Ds*co,yo=Ds*Ro,po=(po=2*mr+C*zr*(Ut-Dt))*po*pa,_l=(C*Ut*mr*zr+Rr)/po,Vl=-(C*Dt*tr)/(zr*po),Zu=ea*As-2*_l/pa+Li*(_l+_l/Mn),cu=ea*yo-2*Vl/pa+Li*(Vl+Vl/Mn),el=Xr*Ga*As-2*co/(1+di)+Li*Ga*co+Li*Xr*(_l-_l/Mn),nu=Xr*Ga*yo-2*Ro/(1+di)+Li*Ga*Ro+Li*Xr*(Vl-Vl/Mn),zc=cu*el-nu*Zu;if(!zc)break;var Dl=(Wa*cu-To*nu)/zc,zl=(To*el-Wa*Zu)/zc;Pe-=Dl,Oe=c(-A,f(A,Oe-zl))}while((n(Dl)>g||n(zl)>g)&&--Je>0);return n(n(Oe)-A)Oe){var mr=H(tr),Rr=a(Ut,Dt),zr=Pe*d(Rr/Pe),Xr=Rr-zr,di=he*o(Xr),Li=(he*x(Xr)-Xr*x(di))/(A-di),Ci=Fa(Xr,Li),Qi=(k-he)/Ra(Ci,di,k);Dt=mr;var Mn=50,pa;do Dt-=pa=(he+Ra(Ci,di,Dt)*Qi-mr)/(Ci(Dt)*Qi);while(n(pa)>g&&--Mn>0);Ut=Xr*x(Dt),DtOe){var Dt=H(Mt),Ut=a(et,He),tr=Pe*d(Ut/Pe),mr=Ut-tr;He=Dt*o(mr),et=Dt*x(mr);for(var Rr=He-A,zr=x(He),Xr=et/zr,di=Heg||n(Xr)>g)&&--di>0);return[mr,Rr]},Dt}var Sn=oa(2.8284,-1.6988,.75432,-.18071,1.76003,-.38914,.042555);function Ha(){return t.geoProjection(Sn).scale(149.995)}var oo=oa(2.583819,-.835827,.170354,-.038094,1.543313,-.411435,.082742);function xn(){return t.geoProjection(oo).scale(153.93)}var _t=oa(5/6*k,-.62636,-.0344,0,1.3493,-.05524,0,.045);function br(){return t.geoProjection(_t).scale(130.945)}function Hr(he,be){var Pe=he*he,Oe=be*be;return[he*(1-.162388*Oe)*(.87-952426e-9*Pe*Pe),be*(1+Oe/12)]}Hr.invert=function(he,be){var Pe=he,Oe=be,Je=50,He;do{var et=Oe*Oe;Oe-=He=(Oe*(1+et/12)-be)/(1+et/4)}while(n(He)>g&&--Je>0);Je=50,he/=1-.162388*et;do{var Mt=(Mt=Pe*Pe)*Mt;Pe-=He=(Pe*(.87-952426e-9*Mt)-he)/(.87-.00476213*Mt)}while(n(He)>g&&--Je>0);return[Pe,Oe]};function ti(){return t.geoProjection(Hr).scale(131.747)}var zi=oa(2.6516,-.76534,.19123,-.047094,1.36289,-.13965,.031762);function Yi(){return t.geoProjection(zi).scale(131.087)}function an(he){var be=he(A,0)[0]-he(-A,0)[0];function Pe(Oe,Je){var He=Oe>0?-.5:.5,et=he(Oe+He*k,Je);return et[0]-=He*be,et}return he.invert&&(Pe.invert=function(Oe,Je){var He=Oe>0?-.5:.5,et=he.invert(Oe+He*be,Je),Mt=et[0]-He*k;return Mt<-k?Mt+=2*k:Mt>k&&(Mt-=2*k),et[0]=Mt,et}),Pe}function hi(he,be){var Pe=v(he),Oe=v(be),Je=o(be),He=o(he)*Je,et=x(he)*Je,Mt=x(Oe*be);he=n(a(et,Mt)),be=q(He),n(he-A)>g&&(he%=A);var Dt=Ji(he>k/4?A-he:he,be);return he>k/4&&(Mt=Dt[0],Dt[0]=-Dt[1],Dt[1]=-Mt),Dt[0]*=Pe,Dt[1]*=-Oe,Dt}hi.invert=function(he,be){n(he)>1&&(he=v(he)*2-he),n(be)>1&&(be=v(be)*2-be);var Pe=v(he),Oe=v(be),Je=-Pe*he,He=-Oe*be,et=He/Je<1,Mt=ua(et?He:Je,et?Je:He),Dt=Mt[0],Ut=Mt[1],tr=o(Ut);return et&&(Dt=-A-Dt),[Pe*(a(x(Dt)*tr,-x(Ut))+k),Oe*q(o(Dt)*tr)]};function Ji(he,be){if(be===A)return[0,0];var Pe=x(be),Oe=Pe*Pe,Je=Oe*Oe,He=1+Je,et=1+3*Je,Mt=1-Je,Dt=q(1/H(He)),Ut=Mt+Oe*He*Dt,tr=(1-Pe)/Ut,mr=H(tr),Rr=tr*He,zr=H(Rr),Xr=mr*Mt,di,Li;if(he===0)return[0,-(Xr+Oe*zr)];var Ci=o(be),Qi=1/Ci,Mn=2*Pe*Ci,pa=(-3*Oe+Dt*et)*Mn,ea=(-Ut*Ci-(1-Pe)*pa)/(Ut*Ut),Ga=.5*ea/mr,To=Mt*Ga-2*Oe*mr*Mn,Wa=Oe*He*ea+tr*et*Mn,co=-Qi*Mn,Ro=-Qi*Wa,Ds=-2*Qi*To,As=4*he/k,yo;if(he>.222*k||be.175*k){if(di=(Xr+Oe*H(Rr*(1+Je)-Xr*Xr))/(1+Je),he>k/4)return[di,di];var po=di,_l=.5*di;di=.5*(_l+po),Li=50;do{var Vl=H(Rr-di*di),Zu=di*(Ds+co*Vl)+Ro*q(di/zr)-As;if(!Zu)break;Zu<0?_l=di:po=di,di=.5*(_l+po)}while(n(po-_l)>g&&--Li>0)}else{di=g,Li=25;do{var cu=di*di,el=H(Rr-cu),nu=Ds+co*el,zc=di*nu+Ro*q(di/zr)-As,Dl=nu+(Ro-co*cu)/el;di-=yo=el?zc/Dl:0}while(n(yo)>g&&--Li>0)}return[di,-Xr-Oe*H(Rr-di*di)]}function ua(he,be){for(var Pe=0,Oe=1,Je=.5,He=50;;){var et=Je*Je,Mt=H(Je),Dt=q(1/H(1+et)),Ut=1-et+Je*(1+et)*Dt,tr=(1-Mt)/Ut,mr=H(tr),Rr=tr*(1+et),zr=mr*(1-et),Xr=Rr-he*he,di=H(Xr),Li=be+zr+Je*di;if(n(Oe-Pe)0?Pe=Je:Oe=Je,Je=.5*(Pe+Oe)}if(!He)return null;var Ci=q(Mt),Qi=o(Ci),Mn=1/Qi,pa=2*Mt*Qi,ea=(-3*Je+Dt*(1+3*et))*pa,Ga=(-Ut*Qi-(1-Mt)*ea)/(Ut*Ut),To=.5*Ga/mr,Wa=(1-et)*To-2*Je*mr*pa,co=-2*Mn*Wa,Ro=-Mn*pa,Ds=-Mn*(Je*(1+et)*Ga+tr*(1+3*et)*pa);return[k/4*(he*(co+Ro*di)+Ds*q(he/H(Rr))),Ci]}function Fn(){return t.geoProjection(an(hi)).scale(239.75)}function Sa(he,be,Pe){var Oe,Je,He;return he?(Oe=go(he,Pe),be?(Je=go(be,1-Pe),He=Je[1]*Je[1]+Pe*Oe[0]*Oe[0]*Je[0]*Je[0],[[Oe[0]*Je[2]/He,Oe[1]*Oe[2]*Je[0]*Je[1]/He],[Oe[1]*Je[1]/He,-Oe[0]*Oe[2]*Je[0]*Je[2]/He],[Oe[2]*Je[1]*Je[2]/He,-Pe*Oe[0]*Oe[1]*Je[0]/He]]):[[Oe[0],0],[Oe[1],0],[Oe[2],0]]):(Je=go(be,1-Pe),[[0,Je[0]/Je[1]],[1/Je[1],0],[Je[2]/Je[1],0]])}function go(he,be){var Pe,Oe,Je,He,et;if(be=1-g)return Pe=(1-be)/4,Oe=N(he),He=X(he),Je=1/Oe,et=Oe*G(he),[He+Pe*(et-he)/(Oe*Oe),Je-Pe*He*Je*(et-he),Je+Pe*He*Je*(et+he),2*i(s(he))-A+Pe*(et-he)/Oe];var Mt=[1,0,0,0,0,0,0,0,0],Dt=[H(be),0,0,0,0,0,0,0,0],Ut=0;for(Oe=H(1-be),et=1;n(Dt[Ut]/Mt[Ut])>g&&Ut<8;)Pe=Mt[Ut++],Dt[Ut]=(Pe-Oe)/2,Mt[Ut]=(Pe+Oe)/2,Oe=H(Pe*Oe),et*=2;Je=et*Mt[Ut]*he;do He=Dt[Ut]*x(Oe=Je)/Mt[Ut],Je=(q(He)+Je)/2;while(--Ut);return[x(Je),He=o(Je),He/o(Je-Oe),Je]}function Oo(he,be,Pe){var Oe=n(he),Je=n(be),He=G(Je);if(Oe){var et=1/x(Oe),Mt=1/(b(Oe)*b(Oe)),Dt=-(Mt+Pe*(He*He*et*et)-1+Pe),Ut=(Pe-1)*Mt,tr=(-Dt+H(Dt*Dt-4*Ut))/2;return[ho(i(1/H(tr)),Pe)*v(he),ho(i(H((tr/Mt-1)/Pe)),1-Pe)*v(be)]}return[0,ho(i(He),1-Pe)*v(be)]}function ho(he,be){if(!be)return he;if(be===1)return u(b(he/2+L));for(var Pe=1,Oe=H(1-be),Je=H(be),He=0;n(Je)>g;He++){if(he%k){var et=i(Oe*b(he)/Pe);et<0&&(et+=k),he+=et+~~(he/k)*k}else he+=he;Je=(Pe+Oe)/2,Oe=H(Pe*Oe),Je=((Pe=Je)-Oe)/2}return he/(h(2,He)*Pe)}function Mo(he,be){var Pe=(C-1)/(C+1),Oe=H(1-Pe*Pe),Je=ho(A,Oe*Oe),He=-1,et=u(b(k/4+n(be)/2)),Mt=s(He*et)/H(Pe),Dt=xo(Mt*o(He*he),Mt*x(He*he)),Ut=Oo(Dt[0],Dt[1],Oe*Oe);return[-Ut[1],(be>=0?1:-1)*(.5*Je-Ut[0])]}function xo(he,be){var Pe=he*he,Oe=be+1,Je=1-Pe-be*be;return[.5*((he>=0?A:-A)-a(Je,2*he)),-.25*u(Je*Je+4*Pe)+.5*u(Oe*Oe+Pe)]}function zs(he,be){var Pe=be[0]*be[0]+be[1]*be[1];return[(he[0]*be[0]+he[1]*be[1])/Pe,(he[1]*be[0]-he[0]*be[1])/Pe]}Mo.invert=function(he,be){var Pe=(C-1)/(C+1),Oe=H(1-Pe*Pe),Je=ho(A,Oe*Oe),He=-1,et=Sa(.5*Je-be,-he,Oe*Oe),Mt=zs(et[0],et[1]),Dt=a(Mt[1],Mt[0])/He;return[Dt,2*i(s(.5/He*u(Pe*Mt[0]*Mt[0]+Pe*Mt[1]*Mt[1])))-A]};function ks(){return t.geoProjection(an(Mo)).scale(151.496)}function Zs(he){var be=x(he),Pe=o(he),Oe=Xs(he);Oe.invert=Xs(-he);function Je(He,et){var Mt=Oe(He,et);He=Mt[0],et=Mt[1];var Dt=x(et),Ut=o(et),tr=o(He),mr=V(be*Dt+Pe*Ut*tr),Rr=x(mr),zr=n(Rr)>g?mr/Rr:1;return[zr*Pe*x(He),(n(He)>A?zr:-zr)*(be*Ut-Pe*Dt*tr)]}return Je.invert=function(He,et){var Mt=H(He*He+et*et),Dt=-x(Mt),Ut=o(Mt),tr=Mt*Ut,mr=-et*Dt,Rr=Mt*be,zr=H(tr*tr+mr*mr-Rr*Rr),Xr=a(tr*Rr+mr*zr,mr*Rr-tr*zr),di=(Mt>A?-1:1)*a(He*Dt,Mt*o(Xr)*Ut+et*x(Xr)*Dt);return Oe.invert(di,Xr)},Je}function Xs(he){var be=x(he),Pe=o(he);return function(Oe,Je){var He=o(Je),et=o(Oe)*He,Mt=x(Oe)*He,Dt=x(Je);return[a(Mt,et*Pe-Dt*be),q(Dt*Pe+et*be)]}}function wl(){var he=0,be=t.geoProjectionMutator(Zs),Pe=be(he),Oe=Pe.rotate,Je=Pe.stream,He=t.geoCircle();return Pe.parallel=function(et){if(!arguments.length)return he*P;var Mt=Pe.rotate();return be(he=et*T).rotate(Mt)},Pe.rotate=function(et){return arguments.length?(Oe.call(Pe,[et[0],et[1]-he*P]),He.center([-et[0],-et[1]]),Pe):(et=Oe.call(Pe),et[1]+=he*P,et)},Pe.stream=function(et){return et=Je(et),et.sphere=function(){et.polygonStart();var Mt=.01,Dt=He.radius(90-Mt)().coordinates[0],Ut=Dt.length-1,tr=-1,mr;for(et.lineStart();++tr=0;)et.point((mr=Dt[tr])[0],mr[1]);et.lineEnd(),et.polygonEnd()},et},Pe.scale(79.4187).parallel(45).clipAngle(180-.001)}var os=3,cl=q(1-1/os)*P,Cs=ar(0);function ml(he){var be=cl*T,Pe=ht(k,be)[0]-ht(-k,be)[0],Oe=Cs(0,be)[1],Je=ht(0,be)[1],He=M-Je,et=p/he,Mt=4/p,Dt=Oe+He*He*4/p;function Ut(tr,mr){var Rr,zr=n(mr);if(zr>be){var Xr=f(he-1,c(0,l((tr+k)/et)));tr+=k*(he-1)/he-Xr*et,Rr=ht(tr,zr),Rr[0]=Rr[0]*p/Pe-p*(he-1)/(2*he)+Xr*p/he,Rr[1]=Oe+(Rr[1]-Je)*4*He/p,mr<0&&(Rr[1]=-Rr[1])}else Rr=Cs(tr,mr);return Rr[0]*=Mt,Rr[1]/=Dt,Rr}return Ut.invert=function(tr,mr){tr/=Mt,mr*=Dt;var Rr=n(mr);if(Rr>Oe){var zr=f(he-1,c(0,l((tr+k)/et)));tr=(tr+k*(he-1)/he-zr*et)*Pe/p;var Xr=ht.invert(tr,.25*(Rr-Oe)*p/He+Je);return Xr[0]-=k*(he-1)/he-zr*et,mr<0&&(Xr[1]=-Xr[1]),Xr}return Cs.invert(tr,mr)},Ut}function Ys(he,be){return[he,be&1?90-g:cl]}function Hs(he,be){return[he,be&1?-90+g:-cl]}function Eo(he){return[he[0]*(1-g),he[1]]}function fs(he){var be=[].concat(r.range(-180,180+he/2,he).map(Ys),r.range(180,-180-he/2,-he).map(Hs));return{type:"Polygon",coordinates:[he===180?be.map(Eo):be]}}function $l(){var he=4,be=t.geoProjectionMutator(ml),Pe=be(he),Oe=Pe.stream;return Pe.lobes=function(Je){return arguments.length?be(he=+Je):he},Pe.stream=function(Je){var He=Pe.rotate(),et=Oe(Je),Mt=(Pe.rotate([0,0]),Oe(Je));return Pe.rotate(He),et.sphere=function(){t.geoStream(fs(180/he),Mt)},et},Pe.scale(239.75)}function Hu(he){var be=1+he,Pe=x(1/be),Oe=q(Pe),Je=2*H(k/(He=k+4*Oe*be)),He,et=.5*Je*(be+H(he*(2+he))),Mt=he*he,Dt=be*be;function Ut(tr,mr){var Rr=1-x(mr),zr,Xr;if(Rr&&Rr<2){var di=A-mr,Li=25,Ci;do{var Qi=x(di),Mn=o(di),pa=Oe+a(Qi,be-Mn),ea=1+Dt-2*be*Mn;di-=Ci=(di-Mt*Oe-be*Qi+ea*pa-.5*Rr*He)/(2*be*Qi*pa)}while(n(Ci)>E&&--Li>0);zr=Je*H(ea),Xr=tr*pa/k}else zr=Je*(he+Rr),Xr=tr*Oe/k;return[zr*x(Xr),et-zr*o(Xr)]}return Ut.invert=function(tr,mr){var Rr=tr*tr+(mr-=et)*mr,zr=(1+Dt-Rr/(Je*Je))/(2*be),Xr=V(zr),di=x(Xr),Li=Oe+a(di,be-zr);return[q(tr/H(Rr))*k/Li,q(1-2*(Xr-Mt*Oe-be*di+(1+Dt-2*be*zr)*Li)/He)]},Ut}function fc(){var he=1,be=t.geoProjectionMutator(Hu),Pe=be(he);return Pe.ratio=function(Oe){return arguments.length?be(he=+Oe):he},Pe.scale(167.774).center([0,18.67])}var ms=.7109889596207567,on=.0528035274542;function fa(he,be){return be>-ms?(he=Yt(he,be),he[1]+=on,he):St(he,be)}fa.invert=function(he,be){return be>-ms?Yt.invert(he,be-on):St.invert(he,be)};function Qu(){return t.geoProjection(fa).rotate([-20,-55]).scale(164.263).center([0,-5.4036])}function Il(he,be){return n(be)>ms?(he=Yt(he,be),he[1]-=be>0?on:-on,he):St(he,be)}Il.invert=function(he,be){return n(be)>ms?Yt.invert(he,be+(be>0?on:-on)):St.invert(he,be)};function vo(){return t.geoProjection(Il).scale(152.63)}function Wl(he,be,Pe,Oe){var Je=H(4*k/(2*Pe+(1+he-be/2)*x(2*Pe)+(he+be)/2*x(4*Pe)+be/2*x(6*Pe))),He=H(Oe*x(Pe)*H((1+he*o(2*Pe)+be*o(4*Pe))/(1+he+be))),et=Pe*Dt(1);function Mt(mr){return H(1+he*o(2*mr)+be*o(4*mr))}function Dt(mr){var Rr=mr*Pe;return(2*Rr+(1+he-be/2)*x(2*Rr)+(he+be)/2*x(4*Rr)+be/2*x(6*Rr))/Pe}function Ut(mr){return Mt(mr)*x(mr)}var tr=function(mr,Rr){var zr=Pe*qt(Dt,et*x(Rr)/Pe,Rr/k);isNaN(zr)&&(zr=Pe*v(Rr));var Xr=Je*Mt(zr);return[Xr*He*mr/k*o(zr),Xr/He*x(zr)]};return tr.invert=function(mr,Rr){var zr=qt(Ut,Rr*He/Je);return[mr*k/(o(zr)*Je*He*Mt(zr)),q(Pe*Dt(zr/Pe)/et)]},Pe===0&&(Je=H(Oe/k),tr=function(mr,Rr){return[mr*Je,x(Rr)/Je]},tr.invert=function(mr,Rr){return[mr/Je,q(Rr*Je)]}),tr}function Ks(){var he=1,be=0,Pe=45*T,Oe=2,Je=t.geoProjectionMutator(Wl),He=Je(he,be,Pe,Oe);return He.a=function(et){return arguments.length?Je(he=+et,be,Pe,Oe):he},He.b=function(et){return arguments.length?Je(he,be=+et,Pe,Oe):be},He.psiMax=function(et){return arguments.length?Je(he,be,Pe=+et*T,Oe):Pe*P},He.ratio=function(et){return arguments.length?Je(he,be,Pe,Oe=+et):Oe},He.scale(180.739)}function Zl(he,be,Pe,Oe,Je,He,et,Mt,Dt,Ut,tr){if(tr.nanEncountered)return NaN;var mr,Rr,zr,Xr,di,Li,Ci,Qi,Mn,pa;if(mr=Pe-be,Rr=he(be+mr*.25),zr=he(Pe-mr*.25),isNaN(Rr)){tr.nanEncountered=!0;return}if(isNaN(zr)){tr.nanEncountered=!0;return}return Xr=mr*(Oe+4*Rr+Je)/12,di=mr*(Je+4*zr+He)/12,Li=Xr+di,pa=(Li-et)/15,Ut>Dt?(tr.maxDepthCount++,Li+pa):Math.abs(pa)>1;do Dt[Li]>zr?di=Li:Xr=Li,Li=Xr+di>>1;while(Li>Xr);var Ci=Dt[Li+1]-Dt[Li];return Ci&&(Ci=(zr-Dt[Li+1])/Ci),(Li+1+Ci)/et}var mr=2*tr(1)/k*He/Pe,Rr=function(zr,Xr){var di=tr(n(x(Xr))),Li=Oe(di)*zr;return di/=mr,[Li,Xr>=0?di:-di]};return Rr.invert=function(zr,Xr){var di;return Xr*=mr,n(Xr)<1&&(di=v(Xr)*q(Je(n(Xr))*He)),[zr/Oe(n(Xr)),di]},Rr}function ko(){var he=0,be=2.5,Pe=1.183136,Oe=t.geoProjectionMutator(Zn),Je=Oe(he,be,Pe);return Je.alpha=function(He){return arguments.length?Oe(he=+He,be,Pe):he},Je.k=function(He){return arguments.length?Oe(he,be=+He,Pe):be},Je.gamma=function(He){return arguments.length?Oe(he,be,Pe=+He):Pe},Je.scale(152.63)}function Co(he,be){return n(he[0]-be[0])=0;--Dt)Pe=he[1][Dt],Oe=Pe[0][0],Je=Pe[0][1],He=Pe[1][1],et=Pe[2][0],Mt=Pe[2][1],be.push(Tl([[et-g,Mt-g],[et-g,He+g],[Oe+g,He+g],[Oe+g,Je-g]],30));return{type:"Polygon",coordinates:[r.merge(be)]}}function So(he,be,Pe){var Oe,Je;function He(Dt,Ut){for(var tr=Ut<0?-1:1,mr=be[+(Ut<0)],Rr=0,zr=mr.length-1;Rrmr[Rr][2][0];++Rr);var Xr=he(Dt-mr[Rr][1][0],Ut);return Xr[0]+=he(mr[Rr][1][0],tr*Ut>tr*mr[Rr][0][1]?mr[Rr][0][1]:Ut)[0],Xr}Pe?He.invert=Pe(He):he.invert&&(He.invert=function(Dt,Ut){for(var tr=Je[+(Ut<0)],mr=be[+(Ut<0)],Rr=0,zr=tr.length;RrXr&&(di=zr,zr=Xr,Xr=di),[[mr,zr],[Rr,Xr]]})}),et):be.map(function(Ut){return Ut.map(function(tr){return[[tr[0][0]*P,tr[0][1]*P],[tr[1][0]*P,tr[1][1]*P],[tr[2][0]*P,tr[2][1]*P]]})})},be!=null&&et.lobes(be),et}var cf=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]];function rh(){return So(xt,cf).scale(160.857)}var Al=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]];function Hc(){return So(Il,Al).scale(152.63)}var Ql=[[[[-180,0],[-100,90],[-40,0]],[[-40,0],[30,90],[180,0]]],[[[-180,0],[-160,-90],[-100,0]],[[-100,0],[-60,-90],[-20,0]],[[-20,0],[20,-90],[80,0]],[[80,0],[140,-90],[180,0]]]];function Ls(){return So(Yt,Ql).scale(169.529)}var mu=[[[[-180,0],[-90,90],[0,0]],[[0,0],[90,90],[180,0]]],[[[-180,0],[-90,-90],[0,0]],[[0,0],[90,-90],[180,0]]]];function kc(){return So(Yt,mu).scale(169.529).rotate([20,0])}var Of=[[[[-180,35],[-30,90],[0,35]],[[0,35],[30,90],[180,35]]],[[[-180,-10],[-102,-90],[-65,-10]],[[-65,-10],[5,-90],[77,-10]],[[77,-10],[103,-90],[180,-10]]]];function Gc(){return So(fa,Of,rt).rotate([-20,-55]).scale(164.263).center([0,-5.4036])}var vd=[[[[-180,0],[-110,90],[-40,0]],[[-40,0],[0,90],[40,0]],[[40,0],[110,90],[180,0]]],[[[-180,0],[-110,-90],[-40,0]],[[-40,0],[0,-90],[40,0]],[[40,0],[110,-90],[180,0]]]];function Bf(){return So(St,vd).scale(152.63).rotate([-20,0])}function ss(he,be){return[3/p*he*H(k*k/3-be*be),be]}ss.invert=function(he,be){return[p/3*he/H(k*k/3-be*be),be]};function ff(){return t.geoProjection(ss).scale(158.837)}function ih(he){function be(Pe,Oe){if(n(n(Oe)-A)2)return null;Pe/=2,Oe/=2;var He=Pe*Pe,et=Oe*Oe,Mt=2*Oe/(1+He+et);return Mt=h((1+Mt)/(1-Mt),1/he),[a(2*Pe,1-He-et)/he,q((Mt-1)/(Mt+1))]},be}function Ul(){var he=.5,be=t.geoProjectionMutator(ih),Pe=be(he);return Pe.spacing=function(Oe){return arguments.length?be(he=+Oe):he},Pe.scale(124.75)}var Js=k/C;function hc(he,be){return[he*(1+H(o(be)))/2,be/(o(be/2)*o(he/6))]}hc.invert=function(he,be){var Pe=n(he),Oe=n(be),Je=g,He=A;Oeg||n(Li)>g)&&--Je>0);return Je&&[Pe,Oe]};function $s(){return t.geoProjection(ws).scale(139.98)}function hs(he,be){return[x(he)/o(be),b(be)*o(he)]}hs.invert=function(he,be){var Pe=he*he,Oe=be*be,Je=Oe+1,He=Pe+Je,et=he?_*H((He-H(He*He-4*Pe))/Pe):1/H(Je);return[q(he*et),v(be)*V(et)]};function Ms(){return t.geoProjection(hs).scale(144.049).clipAngle(90-.001)}function dc(he){var be=o(he),Pe=b(L+he/2);function Oe(Je,He){var et=He-he,Mt=n(et)=0;)tr=he[Ut],mr=tr[0]+Mt*(zr=mr)-Dt*Rr,Rr=tr[1]+Mt*Rr+Dt*zr;return mr=Mt*(zr=mr)-Dt*Rr,Rr=Mt*Rr+Dt*zr,[mr,Rr]}return Pe.invert=function(Oe,Je){var He=20,et=Oe,Mt=Je;do{for(var Dt=be,Ut=he[Dt],tr=Ut[0],mr=Ut[1],Rr=0,zr=0,Xr;--Dt>=0;)Ut=he[Dt],Rr=tr+et*(Xr=Rr)-Mt*zr,zr=mr+et*zr+Mt*Xr,tr=Ut[0]+et*(Xr=tr)-Mt*mr,mr=Ut[1]+et*mr+Mt*Xr;Rr=tr+et*(Xr=Rr)-Mt*zr,zr=mr+et*zr+Mt*Xr,tr=et*(Xr=tr)-Mt*mr-Oe,mr=et*mr+Mt*Xr-Je;var di=Rr*Rr+zr*zr,Li,Ci;et-=Li=(tr*Rr+mr*zr)/di,Mt-=Ci=(mr*Rr-tr*zr)/di}while(n(Li)+n(Ci)>g*g&&--He>0);if(He){var Qi=H(et*et+Mt*Mt),Mn=2*i(Qi*.5),pa=x(Mn);return[a(et*pa,Qi*o(Mn)),Qi?q(Mt*pa/Qi):0]}},Pe}var wo=[[.9972523,0],[.0052513,-.0041175],[.0074606,.0048125],[-.0153783,-.1968253],[.0636871,-.1408027],[.3660976,-.2937382]],Od=[[.98879,0],[0,0],[-.050909,0],[0,0],[.075528,0]],$o=[[.984299,0],[.0211642,.0037608],[-.1036018,-.0575102],[-.0329095,-.0320119],[.0499471,.1223335],[.026046,.0899805],[7388e-7,-.1435792],[.0075848,-.1334108],[-.0216473,.0776645],[-.0225161,.0853673]],Ja=[[.9245,0],[0,0],[.01943,0]],Ef=[[.721316,0],[0,0],[-.00881625,-.00617325]];function tc(){return Ml(wo,[152,-64]).scale(1400).center([-160.908,62.4864]).clipAngle(30).angle(7.8)}function uu(){return Ml(Od,[95,-38]).scale(1e3).clipAngle(55).center([-96.5563,38.8675])}function Mh(){return Ml($o,[120,-45]).scale(359.513).clipAngle(55).center([-117.474,53.0628])}function jc(){return Ml(Ja,[-20,-18]).scale(209.091).center([20,16.7214]).clipAngle(82)}function kf(){return Ml(Ef,[165,10]).scale(250).clipAngle(130).center([-165,-10])}function Ml(he,be){var Pe=t.geoProjection(ov(he)).rotate(be).clipAngle(90),Oe=t.geoRotation(be),Je=Pe.center;return delete Pe.rotate,Pe.center=function(He){return arguments.length?Je(Oe(He)):Oe.invert(Je())},Pe}var Yh=H(6),Eh=H(7);function nh(he,be){var Pe=q(7*x(be)/(3*Yh));return[Yh*he*(2*o(2*Pe/3)-1)/Eh,9*x(Pe/3)/Eh]}nh.invert=function(he,be){var Pe=3*q(be*Eh/9);return[he*Eh/(Yh*(2*o(2*Pe/3)-1)),q(x(Pe)*3*Yh/7)]};function hf(){return t.geoProjection(nh).scale(164.859)}function kh(he,be){for(var Pe=(1+_)*x(be),Oe=be,Je=0,He;Je<25&&(Oe-=He=(x(Oe/2)+x(Oe)-Pe)/(.5*o(Oe/2)+o(Oe)),!(n(He)E&&--Oe>0);return He=Pe*Pe,et=He*He,Mt=He*et,[he/(.84719-.13063*He+Mt*Mt*(-.04515+.05494*He-.02326*et+.00331*Mt)),Pe]};function df(){return t.geoProjection(Wc).scale(175.295)}function Cu(he,be){return[he*(1+o(be))/2,2*(be-b(be/2))]}Cu.invert=function(he,be){for(var Pe=be/2,Oe=0,Je=1/0;Oe<10&&n(Je)>g;++Oe){var He=o(be/2);be-=Je=(be-b(be/2)-Pe)/(1-.5/(He*He))}return[2*he/(1+o(be)),be]};function Nf(){return t.geoProjection(Cu).scale(152.63)}var Zc=[[[[-180,0],[-90,90],[0,0]],[[0,0],[90,90],[180,0]]],[[[-180,0],[-90,-90],[0,0]],[[0,0],[90,-90],[180,0]]]];function ds(){return So(Ge(1/0),Zc).rotate([20,0]).scale(152.63)}function Ch(he,be){var Pe=x(be),Oe=o(be),Je=v(he);if(he===0||n(be)===A)return[0,be];if(be===0)return[he,0];if(n(he)===A)return[he*Oe,A*Pe];var He=k/(2*he)-2*he/k,et=2*be/k,Mt=(1-et*et)/(Pe-et),Dt=He*He,Ut=Mt*Mt,tr=1+Dt/Ut,mr=1+Ut/Dt,Rr=(He*Pe/Mt-He/2)/tr,zr=(Ut*Pe/Dt+Mt/2)/mr,Xr=Rr*Rr+Oe*Oe/tr,di=zr*zr-(Ut*Pe*Pe/Dt+Mt*Pe-1)/mr;return[A*(Rr+H(Xr)*Je),A*(zr+H(di<0?0:di)*v(-be*He)*Je)]}Ch.invert=function(he,be){he/=A,be/=A;var Pe=he*he,Oe=be*be,Je=Pe+Oe,He=k*k;return[he?(Je-1+H((1-Je)*(1-Je)+4*Pe))/(2*he)*A:0,qt(function(et){return Je*(k*x(et)-2*et)*k+4*et*et*(be-x(et))+2*k*et-He*be},0)]};function Bd(){return t.geoProjection(Ch).scale(127.267)}var Jh=1.0148,Cf=.23185,pd=-.14499,Lu=.02406,$h=Jh,eu=5*Cf,Pu=7*pd,Lc=9*Lu,fl=1.790857183;function Xc(he,be){var Pe=be*be;return[he,be*(Jh+Pe*Pe*(Cf+Pe*(pd+Lu*Pe)))]}Xc.invert=function(he,be){be>fl?be=fl:be<-fl&&(be=-fl);var Pe=be,Oe;do{var Je=Pe*Pe;Pe-=Oe=(Pe*(Jh+Je*Je*(Cf+Je*(pd+Lu*Je)))-be)/($h+Je*Je*(eu+Je*(Pu+Lc*Je)))}while(n(Oe)>g);return[he,Pe]};function ic(){return t.geoProjection(Xc).scale(139.319)}function yu(he,be){if(n(be)g&&--Je>0);return et=b(Oe),[(n(be)=0;)if(Oe=be[Mt],Pe[0]===Oe[0]&&Pe[1]===Oe[1]){if(He)return[He,Pe];He=Pe}}}function tu(he){for(var be=he.length,Pe=[],Oe=he[be-1],Je=0;Je0?[-Oe[0],0]:[180-Oe[0],180])};var be=sh.map(function(Pe){return{face:Pe,project:he(Pe)}});return[-1,0,0,1,0,1,4,5].forEach(function(Pe,Oe){var Je=be[Pe];Je&&(Je.children||(Je.children=[])).push(be[Oe])}),Lf(be[0],function(Pe,Oe){return be[Pe<-k/2?Oe<0?6:4:Pe<0?Oe<0?2:0:PeOe^zr>Oe&&Pe<(Rr-Ut)*(Oe-tr)/(zr-tr)+Ut&&(Je=!Je)}return Je}function Rl(he,be){var Pe=be.stream,Oe;if(!Pe)throw new Error("invalid projection");switch(he&&he.type){case"Feature":Oe=Wu;break;case"FeatureCollection":Oe=Ih;break;default:Oe=gc;break}return Oe(he,Pe)}function Ih(he,be){return{type:"FeatureCollection",features:he.features.map(function(Pe){return Wu(Pe,be)})}}function Wu(he,be){return{type:"Feature",id:he.id,properties:he.properties,geometry:gc(he.geometry,be)}}function Rc(he,be){return{type:"GeometryCollection",geometries:he.geometries.map(function(Pe){return gc(Pe,be)})}}function gc(he,be){if(!he)return null;if(he.type==="GeometryCollection")return Rc(he,be);var Pe;switch(he.type){case"Point":Pe=mc;break;case"MultiPoint":Pe=mc;break;case"LineString":Pe=Yc;break;case"MultiLineString":Pe=Yc;break;case"Polygon":Pe=nc;break;case"MultiPolygon":Pe=nc;break;case"Sphere":Pe=nc;break;default:return null}return t.geoStream(he,be(Pe)),Pe.result()}var hl=[],ru=[],mc={point:function(he,be){hl.push([he,be])},result:function(){var he=hl.length?hl.length<2?{type:"Point",coordinates:hl[0]}:{type:"MultiPoint",coordinates:hl}:null;return hl=[],he}},Yc={lineStart:pc,point:function(he,be){hl.push([he,be])},lineEnd:function(){hl.length&&(ru.push(hl),hl=[])},result:function(){var he=ru.length?ru.length<2?{type:"LineString",coordinates:ru[0]}:{type:"MultiLineString",coordinates:ru}:null;return ru=[],he}},nc={polygonStart:pc,lineStart:pc,point:function(he,be){hl.push([he,be])},lineEnd:function(){var he=hl.length;if(he){do hl.push(hl[0].slice());while(++he<4);ru.push(hl),hl=[]}},polygonEnd:pc,result:function(){if(!ru.length)return null;var he=[],be=[];return ru.forEach(function(Pe){pf(Pe)?he.push([Pe]):be.push(Pe)}),be.forEach(function(Pe){var Oe=Pe[0];he.some(function(Je){if(Ph(Je[0],Oe))return Je.push(Pe),!0})||he.push([Pe])}),ru=[],he.length?he.length>1?{type:"MultiPolygon",coordinates:he}:{type:"Polygon",coordinates:he[0]}:null}};function gf(he){var be=he(A,0)[0]-he(-A,0)[0];function Pe(Oe,Je){var He=n(Oe)0?Oe-k:Oe+k,Je),Mt=(et[0]-et[1])*_,Dt=(et[0]+et[1])*_;if(He)return[Mt,Dt];var Ut=be*_,tr=Mt>0^Dt>0?-1:1;return[tr*Mt-v(Dt)*Ut,tr*Dt-v(Mt)*Ut]}return he.invert&&(Pe.invert=function(Oe,Je){var He=(Oe+Je)*_,et=(Je-Oe)*_,Mt=n(He)<.5*be&&n(et)<.5*be;if(!Mt){var Dt=be*_,Ut=He>0^et>0?-1:1,tr=-Ut*Oe+(et>0?1:-1)*Dt,mr=-Ut*Je+(He>0?1:-1)*Dt;He=(-tr-mr)*_,et=(tr-mr)*_}var Rr=he.invert(He,et);return Mt||(Rr[0]+=He>0?k:-k),Rr}),t.geoProjection(Pe).rotate([-90,-90,45]).clipAngle(180-.001)}function gt(){return gf(hi).scale(176.423)}function Bt(){return gf(Mo).scale(111.48)}function wr(he,be){if(!(0<=(be=+be)&&be<=20))throw new Error("invalid digits");function Pe(Ut){var tr=Ut.length,mr=2,Rr=new Array(tr);for(Rr[0]=+Ut[0].toFixed(be),Rr[1]=+Ut[1].toFixed(be);mr2||zr[0]!=tr[0]||zr[1]!=tr[1])&&(mr.push(zr),tr=zr)}return mr.length===1&&Ut.length>1&&mr.push(Pe(Ut[Ut.length-1])),mr}function He(Ut){return Ut.map(Je)}function et(Ut){if(Ut==null)return Ut;var tr;switch(Ut.type){case"GeometryCollection":tr={type:"GeometryCollection",geometries:Ut.geometries.map(et)};break;case"Point":tr={type:"Point",coordinates:Pe(Ut.coordinates)};break;case"MultiPoint":tr={type:Ut.type,coordinates:Oe(Ut.coordinates)};break;case"LineString":tr={type:Ut.type,coordinates:Je(Ut.coordinates)};break;case"MultiLineString":case"Polygon":tr={type:Ut.type,coordinates:He(Ut.coordinates)};break;case"MultiPolygon":tr={type:"MultiPolygon",coordinates:Ut.coordinates.map(He)};break;default:return Ut}return Ut.bbox!=null&&(tr.bbox=Ut.bbox),tr}function Mt(Ut){var tr={type:"Feature",properties:Ut.properties,geometry:et(Ut.geometry)};return Ut.id!=null&&(tr.id=Ut.id),Ut.bbox!=null&&(tr.bbox=Ut.bbox),tr}if(he!=null)switch(he.type){case"Feature":return Mt(he);case"FeatureCollection":{var Dt={type:"FeatureCollection",features:he.features.map(Mt)};return he.bbox!=null&&(Dt.bbox=he.bbox),Dt}default:return et(he)}return he}function vr(he){var be=x(he);function Pe(Oe,Je){var He=be?b(Oe*be/2)/be:Oe/2;if(!Je)return[2*He,-he];var et=2*i(He*x(Je)),Mt=1/b(Je);return[x(et)*Mt,Je+(1-o(et))*Mt-he]}return Pe.invert=function(Oe,Je){if(n(Je+=he)g&&--Mt>0);var Rr=Oe*(Ut=b(et)),zr=b(n(Je)0?A:-A)*(Dt+Je*(tr-et)/2+Je*Je*(tr-2*Dt+et)/2)]}xi.invert=function(he,be){var Pe=be/A,Oe=Pe*90,Je=f(18,n(Oe/5)),He=c(0,l(Je));do{var et=fi[He][1],Mt=fi[He+1][1],Dt=fi[f(19,He+2)][1],Ut=Dt-et,tr=Dt-2*Mt+et,mr=2*(n(Pe)-Mt)/Ut,Rr=tr/Ut,zr=mr*(1-Rr*mr*(1-2*Rr*mr));if(zr>=0||He===1){Oe=(be>=0?5:-5)*(zr+Je);var Xr=50,di;do Je=f(18,n(Oe)/5),He=l(Je),zr=Je-He,et=fi[He][1],Mt=fi[He+1][1],Dt=fi[f(19,He+2)][1],Oe-=(di=(be>=0?A:-A)*(Mt+zr*(Dt-et)/2+zr*zr*(Dt-2*Mt+et)/2)-be)*P;while(n(di)>E&&--Xr>0);break}}while(--He>=0);var Li=fi[He][0],Ci=fi[He+1][0],Qi=fi[f(19,He+2)][0];return[he/(Ci+zr*(Qi-Li)/2+zr*zr*(Qi-2*Ci+Li)/2),Oe*T]};function Fi(){return t.geoProjection(xi).scale(152.63)}function Xi(he){function be(Pe,Oe){var Je=o(Oe),He=(he-1)/(he-Je*o(Pe));return[He*Je*x(Pe),He*x(Oe)]}return be.invert=function(Pe,Oe){var Je=Pe*Pe+Oe*Oe,He=H(Je),et=(he-H(1-Je*(he+1)/(he-1)))/((he-1)/He+He/(he-1));return[a(Pe*et,He*H(1-et*et)),He?q(Oe*et/He):0]},be}function hn(he,be){var Pe=Xi(he);if(!be)return Pe;var Oe=o(be),Je=x(be);function He(et,Mt){var Dt=Pe(et,Mt),Ut=Dt[1],tr=Ut*Je/(he-1)+Oe;return[Dt[0]*Oe/tr,Ut/tr]}return He.invert=function(et,Mt){var Dt=(he-1)/(he-1-Mt*Je);return Pe.invert(Dt*et,Dt*Mt*Oe)},He}function Ti(){var he=2,be=0,Pe=t.geoProjectionMutator(hn),Oe=Pe(he,be);return Oe.distance=function(Je){return arguments.length?Pe(he=+Je,be):he},Oe.tilt=function(Je){return arguments.length?Pe(he,be=Je*T):be*P},Oe.scale(432.147).clipAngle(V(1/he)*P-1e-6)}var qi=1e-4,Ii=1e4,mi=-180,Pn=mi+qi,Ma=180,Ta=Ma-qi,Ea=-90,qa=Ea+qi,Cn=90,sn=Cn-qi;function Ua(he){return he.length>0}function mo(he){return Math.floor(he*Ii)/Ii}function Xo(he){return he===Ea||he===Cn?[0,he]:[mi,mo(he)]}function Ts(he){var be=he[0],Pe=he[1],Oe=!1;return be<=Pn?(be=mi,Oe=!0):be>=Ta&&(be=Ma,Oe=!0),Pe<=qa?(Pe=Ea,Oe=!0):Pe>=sn&&(Pe=Cn,Oe=!0),Oe?[be,Pe]:he}function Qo(he){return he.map(Ts)}function ys(he,be,Pe){for(var Oe=0,Je=he.length;Oe=Ta||tr<=qa||tr>=sn){He[et]=Ts(Dt);for(var mr=et+1;mrPn&&zrqa&&Xr=Mt)break;Pe.push({index:-1,polygon:be,ring:He=He.slice(mr-1)}),He[0]=Xo(He[0][1]),et=-1,Mt=He.length}}}}function Bo(he){var be,Pe=he.length,Oe={},Je={},He,et,Mt,Dt,Ut;for(be=0;be0?k-Mt:Mt)*P],Ut=t.geoProjection(he(et)).rotate(Dt),tr=t.geoRotation(Dt),mr=Ut.center;return delete Ut.rotate,Ut.center=function(Rr){return arguments.length?mr(tr(Rr)):tr.invert(mr())},Ut.clipAngle(90)}function Ko(he){var be=o(he);function Pe(Oe,Je){var He=t.geoGnomonicRaw(Oe,Je);return He[0]*=be,He}return Pe.invert=function(Oe,Je){return t.geoGnomonicRaw.invert(Oe/be,Je)},Pe}function iu(){return Ru([-158,21.5],[-77,39]).clipAngle(60).scale(400)}function Ru(he,be){return vs(Ko,he,be)}function ac(he){if(!(he*=2))return t.geoAzimuthalEquidistantRaw;var be=-he/2,Pe=-be,Oe=he*he,Je=b(Pe),He=.5/x(Pe);function et(Mt,Dt){var Ut=V(o(Dt)*o(Mt-be)),tr=V(o(Dt)*o(Mt-Pe)),mr=Dt<0?-1:1;return Ut*=Ut,tr*=tr,[(Ut-tr)/(2*he),mr*H(4*Oe*tr-(Oe-Ut+tr)*(Oe-Ut+tr))/(2*he)]}return et.invert=function(Mt,Dt){var Ut=Dt*Dt,tr=o(H(Ut+(Rr=Mt+be)*Rr)),mr=o(H(Ut+(Rr=Mt+Pe)*Rr)),Rr,zr;return[a(zr=tr-mr,Rr=(tr+mr)*Je),(Dt<0?-1:1)*V(H(Rr*Rr+zr*zr)*He)]},et}function mf(){return bu([-158,21.5],[-77,39]).clipAngle(130).scale(122.571)}function bu(he,be){return vs(ac,he,be)}function Kc(he,be){if(n(be)g&&--Mt>0);return[v(he)*(H(Je*Je+4)+Je)*k/4,A*et]};function _c(){return t.geoProjection(yc).scale(127.16)}function le(he,be,Pe,Oe,Je){function He(et,Mt){var Dt=Pe*x(Oe*Mt),Ut=H(1-Dt*Dt),tr=H(2/(1+Ut*o(et*=Je)));return[he*Ut*tr*x(et),be*Dt*tr]}return He.invert=function(et,Mt){var Dt=et/he,Ut=Mt/be,tr=H(Dt*Dt+Ut*Ut),mr=2*q(tr/2);return[a(et*b(mr),he*tr)/Je,tr&&q(Mt*x(mr)/(be*Pe*tr))/Oe]},He}function w(he,be,Pe,Oe){var Je=k/3;he=c(he,g),be=c(be,g),he=f(he,A),be=f(be,k-g),Pe=c(Pe,0),Pe=f(Pe,100-g),Oe=c(Oe,g);var He=Pe/100+1,et=Oe/100,Mt=V(He*o(Je))/Je,Dt=x(he)/x(Mt*A),Ut=be/k,tr=H(et*x(he/2)/x(be/2)),mr=tr/H(Ut*Dt*Mt),Rr=1/(tr*H(Ut*Dt*Mt));return le(mr,Rr,Dt,Mt,Ut)}function B(){var he=65*T,be=60*T,Pe=20,Oe=200,Je=t.geoProjectionMutator(w),He=Je(he,be,Pe,Oe);return He.poleline=function(et){return arguments.length?Je(he=+et*T,be,Pe,Oe):he*P},He.parallels=function(et){return arguments.length?Je(he,be=+et*T,Pe,Oe):be*P},He.inflation=function(et){return arguments.length?Je(he,be,Pe=+et,Oe):Pe},He.ratio=function(et){return arguments.length?Je(he,be,Pe,Oe=+et):Oe},He.scale(163.775)}function Q(){return B().poleline(65).parallels(60).inflation(0).ratio(200).scale(172.633)}var ee=4*k+3*H(3),se=2*H(2*k*H(3)/ee),qe=Ct(se*H(3)/k,se,ee/6);function je(){return t.geoProjection(qe).scale(176.84)}function it(he,be){return[he*H(1-3*be*be/(k*k)),be]}it.invert=function(he,be){return[he/H(1-3*be*be/(k*k)),be]};function yt(){return t.geoProjection(it).scale(152.63)}function Ot(he,be){var Pe=o(be),Oe=o(he)*Pe,Je=1-Oe,He=o(he=a(x(he)*Pe,-x(be))),et=x(he);return Pe=H(1-Oe*Oe),[et*Pe-He*Je,-He*Pe-et*Je]}Ot.invert=function(he,be){var Pe=(he*he+be*be)/-2,Oe=H(-Pe*(2+Pe)),Je=be*Pe+he*Oe,He=he*Pe-be*Oe,et=H(He*He+Je*Je);return[a(Oe*Je,et*(1+Pe)),et?-q(Oe*He/et):0]};function Nt(){return t.geoProjection(Ot).rotate([0,-90,45]).scale(124.75).clipAngle(180-.001)}function hr(he,be){var Pe=Me(he,be);return[(Pe[0]+he/A)/2,(Pe[1]+be)/2]}hr.invert=function(he,be){var Pe=he,Oe=be,Je=25;do{var He=o(Oe),et=x(Oe),Mt=x(2*Oe),Dt=et*et,Ut=He*He,tr=x(Pe),mr=o(Pe/2),Rr=x(Pe/2),zr=Rr*Rr,Xr=1-Ut*mr*mr,di=Xr?V(He*mr)*H(Li=1/Xr):Li=0,Li,Ci=.5*(2*di*He*Rr+Pe/A)-he,Qi=.5*(di*et+Oe)-be,Mn=.5*Li*(Ut*zr+di*He*mr*Dt)+.5/A,pa=Li*(tr*Mt/4-di*et*Rr),ea=.125*Li*(Mt*Rr-di*et*Ut*tr),Ga=.5*Li*(Dt*mr+di*zr*He)+.5,To=pa*ea-Ga*Mn,Wa=(Qi*pa-Ci*Ga)/To,co=(Ci*ea-Qi*Mn)/To;Pe-=Wa,Oe-=co}while((n(Wa)>g||n(co)>g)&&--Je>0);return[Pe,Oe]};function Sr(){return t.geoProjection(hr).scale(158.837)}e.geoNaturalEarth=t.geoNaturalEarth1,e.geoNaturalEarthRaw=t.geoNaturalEarth1Raw,e.geoAiry=_e,e.geoAiryRaw=ae,e.geoAitoff=ke,e.geoAitoffRaw=Me,e.geoArmadillo=ie,e.geoArmadilloRaw=ge,e.geoAugust=Ee,e.geoAugustRaw=Te,e.geoBaker=me,e.geoBakerRaw=Ce,e.geoBerghaus=ce,e.geoBerghausRaw=Re,e.geoBertin1953=Rt,e.geoBertin1953Raw=ot,e.geoBoggs=bt,e.geoBoggsRaw=xt,e.geoBonne=Ht,e.geoBonneRaw=dt,e.geoBottomley=fr,e.geoBottomleyRaw=$t,e.geoBromley=Br,e.geoBromleyRaw=_r,e.geoChamberlin=Xe,e.geoChamberlinRaw=Ne,e.geoChamberlinAfrica=Ve,e.geoCollignon=Le,e.geoCollignonRaw=ht,e.geoCraig=Se,e.geoCraigRaw=xe,e.geoCraster=Vt,e.geoCrasterRaw=Gt,e.geoCylindricalEqualArea=Qr,e.geoCylindricalEqualAreaRaw=ar,e.geoCylindricalStereographic=jr,e.geoCylindricalStereographicRaw=ai,e.geoEckert1=bi,e.geoEckert1Raw=ri,e.geoEckert2=Wi,e.geoEckert2Raw=nn,e.geoEckert3=_n,e.geoEckert3Raw=Ni,e.geoEckert4=zn,e.geoEckert4Raw=$i,e.geoEckert5=It,e.geoEckert5Raw=Wn,e.geoEckert6=jt,e.geoEckert6Raw=ft,e.geoEisenlohr=Fr,e.geoEisenlohrRaw=yr,e.geoFahey=gi,e.geoFaheyRaw=Vr,e.geoFoucaut=Mi,e.geoFoucautRaw=Si,e.geoFoucautSinusoidal=Gi,e.geoFoucautSinusoidalRaw=Pi,e.geoGilbert=jn,e.geoGingery=jo,e.geoGingeryRaw=la,e.geoGinzburg4=Ha,e.geoGinzburg4Raw=Sn,e.geoGinzburg5=xn,e.geoGinzburg5Raw=oo,e.geoGinzburg6=br,e.geoGinzburg6Raw=_t,e.geoGinzburg8=ti,e.geoGinzburg8Raw=Hr,e.geoGinzburg9=Yi,e.geoGinzburg9Raw=zi,e.geoGringorten=Fn,e.geoGringortenRaw=hi,e.geoGuyou=ks,e.geoGuyouRaw=Mo,e.geoHammer=ct,e.geoHammerRaw=Ge,e.geoHammerRetroazimuthal=wl,e.geoHammerRetroazimuthalRaw=Zs,e.geoHealpix=$l,e.geoHealpixRaw=ml,e.geoHill=fc,e.geoHillRaw=Hu,e.geoHomolosine=vo,e.geoHomolosineRaw=Il,e.geoHufnagel=Ks,e.geoHufnagelRaw=Wl,e.geoHyperelliptical=ko,e.geoHyperellipticalRaw=Zn,e.geoInterrupt=So,e.geoInterruptedBoggs=rh,e.geoInterruptedHomolosine=Hc,e.geoInterruptedMollweide=Ls,e.geoInterruptedMollweideHemispheres=kc,e.geoInterruptedSinuMollweide=Gc,e.geoInterruptedSinusoidal=Bf,e.geoKavrayskiy7=ff,e.geoKavrayskiy7Raw=ss,e.geoLagrange=Ul,e.geoLagrangeRaw=ih,e.geoLarrivee=Cc,e.geoLarriveeRaw=hc,e.geoLaskowski=$s,e.geoLaskowskiRaw=ws,e.geoLittrow=Ms,e.geoLittrowRaw=hs,e.geoLoximuthal=Sl,e.geoLoximuthalRaw=dc,e.geoMiller=Ps,e.geoMillerRaw=ec,e.geoModifiedStereographic=Ml,e.geoModifiedStereographicRaw=ov,e.geoModifiedStereographicAlaska=tc,e.geoModifiedStereographicGs48=uu,e.geoModifiedStereographicGs50=Mh,e.geoModifiedStereographicMiller=jc,e.geoModifiedStereographicLee=kf,e.geoMollweide=xr,e.geoMollweideRaw=Yt,e.geoMtFlatPolarParabolic=hf,e.geoMtFlatPolarParabolicRaw=nh,e.geoMtFlatPolarQuartic=Kh,e.geoMtFlatPolarQuarticRaw=kh,e.geoMtFlatPolarSinusoidal=ah,e.geoMtFlatPolarSinusoidalRaw=rc,e.geoNaturalEarth2=df,e.geoNaturalEarth2Raw=Wc,e.geoNellHammer=Nf,e.geoNellHammerRaw=Cu,e.geoInterruptedQuarticAuthalic=ds,e.geoNicolosi=Bd,e.geoNicolosiRaw=Ch,e.geoPatterson=ic,e.geoPattersonRaw=Xc,e.geoPolyconic=Qs,e.geoPolyconicRaw=yu,e.geoPolyhedral=Lf,e.geoPolyhedralButterfly=Fs,e.geoPolyhedralCollignon=Lh,e.geoPolyhedralWaterman=Is,e.geoProject=Rl,e.geoGringortenQuincuncial=gt,e.geoPeirceQuincuncial=Bt,e.geoPierceQuincuncial=Bt,e.geoQuantize=wr,e.geoQuincuncial=gf,e.geoRectangularPolyconic=Ur,e.geoRectangularPolyconicRaw=vr,e.geoRobinson=Fi,e.geoRobinsonRaw=xi,e.geoSatellite=Ti,e.geoSatelliteRaw=hn,e.geoSinuMollweide=Qu,e.geoSinuMollweideRaw=fa,e.geoSinusoidal=Et,e.geoSinusoidalRaw=St,e.geoStitch=Rs,e.geoTimes=Ka,e.geoTimesRaw=ia,e.geoTwoPointAzimuthal=Ru,e.geoTwoPointAzimuthalRaw=Ko,e.geoTwoPointAzimuthalUsa=iu,e.geoTwoPointEquidistant=bu,e.geoTwoPointEquidistantRaw=ac,e.geoTwoPointEquidistantUsa=mf,e.geoVanDerGrinten=Du,e.geoVanDerGrintenRaw=Kc,e.geoVanDerGrinten2=Da,e.geoVanDerGrinten2Raw=Dc,e.geoVanDerGrinten3=Jc,e.geoVanDerGrinten3Raw=eo,e.geoVanDerGrinten4=_c,e.geoVanDerGrinten4Raw=yc,e.geoWagner=B,e.geoWagner7=Q,e.geoWagnerRaw=w,e.geoWagner4=je,e.geoWagner4Raw=qe,e.geoWagner6=yt,e.geoWagner6Raw=it,e.geoWiechel=Nt,e.geoWiechelRaw=Ot,e.geoWinkel3=Sr,e.geoWinkel3Raw=hr,Object.defineProperty(e,"__esModule",{value:!0})})});var SRe=ye((Epr,ARe)=>{"use strict";var Zh=xa(),bX=Mr(),bDt=ba(),X5=Math.PI/180,G2=180/Math.PI,TX={cursor:"pointer"},AX={cursor:"auto"};function wDt(e,t){var r=e.projection,n;return t._isScoped?n=TDt:t._isClipped?n=SDt:n=ADt,n(e,r)}ARe.exports=wDt;function SX(e,t){return Zh.behavior.zoom().translate(t.translate()).scale(t.scale())}function MX(e,t,r){var n=e.id,i=e.graphDiv,a=i.layout,o=a[n],s=i._fullLayout,l=s[n],u={},c={};function f(h,d){u[n+"."+h]=bX.nestedProperty(o,h).get(),bDt.call("_storeDirectGUIEdit",a,s._preGUI,u);var v=bX.nestedProperty(l,h);v.get()!==d&&(v.set(d),bX.nestedProperty(o,h).set(d),c[n+"."+h]=d)}r(f),f("projection.scale",t.scale()/e.fitScale),f("fitbounds",!1),i.emit("plotly_relayout",c)}function TDt(e,t){var r=SX(e,t);function n(){Zh.select(this).style(TX)}function i(){t.scale(Zh.event.scale).translate(Zh.event.translate),e.render(!0);var s=t.invert(e.midPt);e.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":t.scale()/e.fitScale,"geo.center.lon":s[0],"geo.center.lat":s[1]})}function a(s){var l=t.invert(e.midPt);s("center.lon",l[0]),s("center.lat",l[1])}function o(){Zh.select(this).style(AX),MX(e,t,a)}return r.on("zoomstart",n).on("zoom",i).on("zoomend",o),r}function ADt(e,t){var r=SX(e,t),n=2,i,a,o,s,l,u,c,f,h;function d(k){return t.invert(k)}function v(k){var A=d(k);if(!A)return!0;var L=t(A);return Math.abs(L[0]-k[0])>n||Math.abs(L[1]-k[1])>n}function x(){Zh.select(this).style(TX),i=Zh.mouse(this),a=t.rotate(),o=t.translate(),s=a,l=d(i)}function b(){if(u=Zh.mouse(this),v(i)){r.scale(t.scale()),r.translate(t.translate());return}t.scale(Zh.event.scale),t.translate([o[0],Zh.event.translate[1]]),l?d(u)&&(f=d(u),c=[s[0]+(f[0]-l[0]),a[1],a[2]],t.rotate(c),s=c):(i=u,l=d(i)),h=!0,e.render(!0);var k=t.rotate(),A=t.invert(e.midPt);e.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":t.scale()/e.fitScale,"geo.center.lon":A[0],"geo.center.lat":A[1],"geo.projection.rotation.lon":-k[0]})}function g(){Zh.select(this).style(AX),h&&MX(e,t,E)}function E(k){var A=t.rotate(),L=t.invert(e.midPt);k("projection.rotation.lon",-A[0]),k("center.lon",L[0]),k("center.lat",L[1])}return r.on("zoomstart",x).on("zoom",b).on("zoomend",g),r}function SDt(e,t){var r={r:t.rotate(),k:t.scale()},n=SX(e,t),i=RDt(n,"zoomstart","zoom","zoomend"),a=0,o=n.on,s;n.on("zoomstart",function(){Zh.select(this).style(TX);var h=Zh.mouse(this),d=t.rotate(),v=d,x=t.translate(),b=MDt(d);s=Sz(t,h),o.call(n,"zoom",function(){var g=Zh.mouse(this);if(t.scale(r.k=Zh.event.scale),!s)h=g,s=Sz(t,h);else if(Sz(t,g)){t.rotate(d).translate(x);var E=Sz(t,g),k=kDt(s,E),A=LDt(EDt(b,k)),L=r.r=CDt(A,s,v);(!isFinite(L[0])||!isFinite(L[1])||!isFinite(L[2]))&&(L=v),t.rotate(L),v=L}u(i.of(this,arguments))}),l(i.of(this,arguments))}).on("zoomend",function(){Zh.select(this).style(AX),o.call(n,"zoom",null),c(i.of(this,arguments)),MX(e,t,f)}).on("zoom.redraw",function(){e.render(!0);var h=t.rotate();e.graphDiv.emit("plotly_relayouting",{"geo.projection.scale":t.scale()/e.fitScale,"geo.projection.rotation.lon":-h[0],"geo.projection.rotation.lat":-h[1]})});function l(h){a++||h({type:"zoomstart"})}function u(h){h({type:"zoom"})}function c(h){--a||h({type:"zoomend"})}function f(h){var d=t.rotate();h("projection.rotation.lon",-d[0]),h("projection.rotation.lat",-d[1])}return Zh.rebind(n,i,"on")}function Sz(e,t){var r=e.invert(t);return r&&isFinite(r[0])&&isFinite(r[1])&&PDt(r)}function MDt(e){var t=.5*e[0]*X5,r=.5*e[1]*X5,n=.5*e[2]*X5,i=Math.sin(t),a=Math.cos(t),o=Math.sin(r),s=Math.cos(r),l=Math.sin(n),u=Math.cos(n);return[a*s*u+i*o*l,i*s*u-a*o*l,a*o*u+i*s*l,a*s*l-i*o*u]}function EDt(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=t[0],s=t[1],l=t[2],u=t[3];return[r*o-n*s-i*l-a*u,r*s+n*o+i*u-a*l,r*l-n*u+i*o+a*s,r*u+n*l-i*s+a*o]}function kDt(e,t){if(!(!e||!t)){var r=IDt(e,t),n=Math.sqrt(TRe(r,r)),i=.5*Math.acos(Math.max(-1,Math.min(1,TRe(e,t)))),a=Math.sin(i)/n;return n&&[Math.cos(i),r[2]*a,-r[1]*a,r[0]*a]}}function CDt(e,t,r){var n=wX(t,2,e[0]);n=wX(n,1,e[1]),n=wX(n,0,e[2]-r[2]);var i=t[0],a=t[1],o=t[2],s=n[0],l=n[1],u=n[2],c=Math.atan2(a,i)*G2,f=Math.sqrt(i*i+a*a),h,d;Math.abs(l)>f?(d=(l>0?90:-90)-c,h=0):(d=Math.asin(l/f)*G2-c,h=Math.sqrt(f*f-l*l));var v=180-d-2*c,x=(Math.atan2(u,s)-Math.atan2(o,h))*G2,b=(Math.atan2(u,s)-Math.atan2(o,-h))*G2,g=bRe(r[0],r[1],d,x),E=bRe(r[0],r[1],v,b);return g<=E?[d,x,r[2]]:[v,b,r[2]]}function bRe(e,t,r,n){var i=wRe(r-e),a=wRe(n-t);return Math.sqrt(i*i+a*a)}function wRe(e){return(e%360+540)%360-180}function wX(e,t,r){var n=r*X5,i=e.slice(),a=t===0?1:0,o=t===2?1:2,s=Math.cos(n),l=Math.sin(n);return i[a]=e[a]*s-e[o]*l,i[o]=e[o]*s+e[a]*l,i}function LDt(e){return[Math.atan2(2*(e[0]*e[1]+e[2]*e[3]),1-2*(e[1]*e[1]+e[2]*e[2]))*G2,Math.asin(Math.max(-1,Math.min(1,2*(e[0]*e[2]-e[3]*e[1]))))*G2,Math.atan2(2*(e[0]*e[3]+e[1]*e[2]),1-2*(e[2]*e[2]+e[3]*e[3]))*G2]}function PDt(e){var t=e[0]*X5,r=e[1]*X5,n=Math.cos(r);return[n*Math.cos(t),n*Math.sin(t),Math.sin(r)]}function TRe(e,t){for(var r=0,n=0,i=e.length;n{"use strict";var t1=xa(),CX=xX(),DDt=CX.geoPath,zDt=CX.geoDistance,FDt=xRe(),qDt=ba(),QE=Mr(),ODt=QE.strTranslate,Mz=va(),$E=ao(),MRe=Nc(),BDt=Xu(),kX=Qa(),ERe=wg().getAutoRange,EX=gv(),NDt=wf().prepSelect,UDt=wf().clearOutline,VDt=wf().selectOnClick,HDt=SRe(),fp=XE(),GDt=ix(),CRe=cz(),jDt=aX().feature;function LRe(e){this.id=e.id,this.graphDiv=e.graphDiv,this.container=e.container,this.topojsonURL=e.topojsonURL,this.isStatic=e.staticPlot,this.topojsonName=null,this.topojson=null,this.projection=null,this.scope=null,this.viewInitial=null,this.fitScale=null,this.bounds=null,this.midPt=null,this.hasChoropleth=!1,this.traceHash={},this.layers={},this.basePaths={},this.dataPaths={},this.dataPoints={},this.clipDef=null,this.clipRect=null,this.bgRect=null,this.makeFramework()}var $g=LRe.prototype;PRe.exports=function(t){return new LRe(t)};$g.plot=function(e,t,r,n){var i=this;if(n)return i.update(e,t,!0);i._geoCalcData=e,i._fullLayout=t;var a=t[this.id],o=[],s=!1;for(var l in fp.layerNameToAdjective)if(l!=="frame"&&a["show"+l]){s=!0;break}for(var u=!1,c=0;c0&&o._module.calcGeoJSON(a,t)}if(!r){var s=this.updateProjection(e,t);if(s)return;(!this.viewInitial||this.scope!==n.scope)&&this.saveViewInitial(n)}this.scope=n.scope,this.updateBaseLayers(t,n),this.updateDims(t,n),this.updateFx(t,n),BDt.generalUpdatePerTraceModule(this.graphDiv,this,e,n);var l=this.layers.frontplot.select(".scatterlayer");this.dataPoints.point=l.selectAll(".point"),this.dataPoints.text=l.selectAll("text"),this.dataPaths.line=l.selectAll(".js-line");var u=this.layers.backplot.select(".choroplethlayer");this.dataPaths.choropleth=u.selectAll("path"),this._render()};$g.updateProjection=function(e,t){var r=this.graphDiv,n=t[this.id],i=t._size,a=n.domain,o=n.projection,s=n.lonaxis,l=n.lataxis,u=s._ax,c=l._ax,f=this.projection=WDt(n),h=[[i.l+i.w*a.x[0],i.t+i.h*(1-a.y[1])],[i.l+i.w*a.x[1],i.t+i.h*(1-a.y[0])]],d=n.center||{},v=o.rotation||{},x=s.range||[],b=l.range||[];if(n.fitbounds){u._length=h[1][0]-h[0][0],c._length=h[1][1]-h[0][1],u.range=ERe(r,u),c.range=ERe(r,c);var g=(u.range[0]+u.range[1])/2,E=(c.range[0]+c.range[1])/2;if(n._isScoped)d={lon:g,lat:E};else if(n._isClipped){d={lon:g,lat:E},v={lon:g,lat:E,roll:v.roll};var k=o.type,A=fp.lonaxisSpan[k]/2||180,L=fp.lataxisSpan[k]/2||90;x=[g-A,g+A],b=[E-L,E+L]}else d={lon:g,lat:E},v={lon:g,lat:v.lat,roll:v.roll}}f.center([d.lon-v.lon,d.lat-v.lat]).rotate([-v.lon,-v.lat,v.roll]).parallels(o.parallels);var _=kRe(x,b);f.fitExtent(h,_);var C=this.bounds=f.getBounds(_),M=this.fitScale=f.scale(),p=f.translate();if(n.fitbounds){var P=f.getBounds(kRe(u.range,c.range)),T=Math.min((C[1][0]-C[0][0])/(P[1][0]-P[0][0]),(C[1][1]-C[0][1])/(P[1][1]-P[0][1]));isFinite(T)?f.scale(T*M):QE.warn("Something went wrong during"+this.id+"fitbounds computations.")}else f.scale(o.scale*M);var F=this.midPt=[(C[0][0]+C[1][0])/2,(C[0][1]+C[1][1])/2];if(f.translate([p[0]+(F[0]-p[0]),p[1]+(F[1]-p[1])]).clipExtent(C),n._isAlbersUsa){var q=f([d.lon,d.lat]),V=f.translate();f.translate([V[0]-(q[0]-V[0]),V[1]-(q[1]-V[1])])}};$g.updateBaseLayers=function(e,t){var r=this,n=r.topojson,i=r.layers,a=r.basePaths;function o(h){return h==="lonaxis"||h==="lataxis"}function s(h){return!!fp.lineLayers[h]}function l(h){return!!fp.fillLayers[h]}var u=this.hasChoropleth?fp.layersForChoropleth:fp.layers,c=u.filter(function(h){return s(h)||l(h)?t["show"+h]:o(h)?t[h].showgrid:!0}),f=r.framework.selectAll(".layer").data(c,String);f.exit().each(function(h){delete i[h],delete a[h],t1.select(this).remove()}),f.enter().append("g").attr("class",function(h){return"layer "+h}).each(function(h){var d=i[h]=t1.select(this);h==="bg"?r.bgRect=d.append("rect").style("pointer-events","all"):o(h)?a[h]=d.append("path").style("fill","none"):h==="backplot"?d.append("g").classed("choroplethlayer",!0):h==="frontplot"?d.append("g").classed("scatterlayer",!0):s(h)?a[h]=d.append("path").style("fill","none").style("stroke-miterlimit",2):l(h)&&(a[h]=d.append("path").style("stroke","none"))}),f.order(),f.each(function(h){var d=a[h],v=fp.layerNameToAdjective[h];h==="frame"?d.datum(fp.sphereSVG):s(h)||l(h)?d.datum(jDt(n,n.objects[h])):o(h)&&d.datum(ZDt(h,t,e)).call(Mz.stroke,t[h].gridcolor).call($E.dashLine,t[h].griddash,t[h].gridwidth),s(h)?d.call(Mz.stroke,t[v+"color"]).call($E.dashLine,"",t[v+"width"]):l(h)&&d.call(Mz.fill,t[v+"color"])})};$g.updateDims=function(e,t){var r=this.bounds,n=(t.framewidth||0)/2,i=r[0][0]-n,a=r[0][1]-n,o=r[1][0]-i+n,s=r[1][1]-a+n;$E.setRect(this.clipRect,i,a,o,s),this.bgRect.call($E.setRect,i,a,o,s).call(Mz.fill,t.bgcolor),this.xaxis._offset=i,this.xaxis._length=o,this.yaxis._offset=a,this.yaxis._length=s};$g.updateFx=function(e,t){var r=this,n=r.graphDiv,i=r.bgRect,a=e.dragmode,o=e.clickmode;if(r.isStatic)return;function s(){var f=r.viewInitial,h={};for(var d in f)h[r.id+"."+d]=f[d];qDt.call("_guiRelayout",n,h),n.emit("plotly_doubleclick",null)}function l(f){return r.projection.invert([f[0]+r.xaxis._offset,f[1]+r.yaxis._offset])}var u=function(f,h){if(h.isRect){var d=f.range={};d[r.id]=[l([h.xmin,h.ymin]),l([h.xmax,h.ymax])]}else{var v=f.lassoPoints={};v[r.id]=h.map(l)}},c={element:r.bgRect.node(),gd:n,plotinfo:{id:r.id,xaxis:r.xaxis,yaxis:r.yaxis,fillRangeItems:u},xaxes:[r.xaxis],yaxes:[r.yaxis],subplot:r.id,clickFn:function(f){f===2&&UDt(n)}};a==="pan"?(i.node().onmousedown=null,i.call(HDt(r,t)),i.on("dblclick.zoom",s),n._context._scrollZoom.geo||i.on("wheel.zoom",null)):(a==="select"||a==="lasso")&&(i.on(".zoom",null),c.prepFn=function(f,h,d){NDt(f,h,d,c,a)},EX.init(c)),i.on("mousemove",function(){var f=r.projection.invert(QE.getPositionFromD3Event());if(!f)return EX.unhover(n,t1.event);r.xaxis.p2c=function(){return f[0]},r.yaxis.p2c=function(){return f[1]},MRe.hover(n,t1.event,r.id)}),i.on("mouseout",function(){n._dragging||EX.unhover(n,t1.event)}),i.on("click",function(){a!=="select"&&a!=="lasso"&&(o.indexOf("select")>-1&&VDt(t1.event,n,[r.xaxis],[r.yaxis],r.id,c),o.indexOf("event")>-1&&MRe.click(n,t1.event))})};$g.makeFramework=function(){var e=this,t=e.graphDiv,r=t._fullLayout,n="clip"+r._uid+e.id;e.clipDef=r._clips.append("clipPath").attr("id",n),e.clipRect=e.clipDef.append("rect"),e.framework=t1.select(e.container).append("g").attr("class","geo "+e.id).call($E.setClipUrl,n,t),e.project=function(i){var a=e.projection(i);return a?[a[0]-e.xaxis._offset,a[1]-e.yaxis._offset]:[null,null]},e.xaxis={_id:"x",c2p:function(i){return e.project(i)[0]}},e.yaxis={_id:"y",c2p:function(i){return e.project(i)[1]}},e.mockAxis={type:"linear",showexponent:"all",exponentformat:"B"},kX.setConvert(e.mockAxis,r)};$g.saveViewInitial=function(e){var t=e.center||{},r=e.projection,n=r.rotation||{};this.viewInitial={fitbounds:e.fitbounds,"projection.scale":r.scale};var i;e._isScoped?i={"center.lon":t.lon,"center.lat":t.lat}:e._isClipped?i={"projection.rotation.lon":n.lon,"projection.rotation.lat":n.lat}:i={"center.lon":t.lon,"center.lat":t.lat,"projection.rotation.lon":n.lon},QE.extendFlat(this.viewInitial,i)};$g.render=function(e){this._hasMarkerAngles&&e?this.plot(this._geoCalcData,this._fullLayout,[],!0):this._render()};$g._render=function(){var e=this.projection,t=e.getPath(),r;function n(a){var o=e(a.lonlat);return o?ODt(o[0],o[1]):null}function i(a){return e.isLonLatOverEdges(a.lonlat)?"none":null}for(r in this.basePaths)this.basePaths[r].attr("d",t);for(r in this.dataPaths)this.dataPaths[r].attr("d",function(a){return t(a.geojson)});for(r in this.dataPoints)this.dataPoints[r].attr("display",i).attr("transform",n)};function WDt(e){var t=e.projection,r=t.type,n=fp.projNames[r];n="geo"+QE.titleCase(n);for(var i=CX[n]||FDt[n],a=i(),o=e._isSatellite?Math.acos(1/t.distance)*180/Math.PI:e._isClipped?fp.lonaxisSpan[r]/2:null,s=["center","rotate","parallels","clipExtent"],l=function(f){return f?a:[]},u=0;uv}else return!1},a.getPath=function(){return DDt().projection(a)},a.getBounds=function(f){return a.getPath().bounds(f)},a.precision(fp.precision),e._isSatellite&&a.tilt(t.tilt).distance(t.distance),o&&a.clipAngle(o-fp.clipPad),a}function ZDt(e,t,r){var n=1e-6,i=2.5,a=t[e],o=fp.scopeDefaults[t.scope],s,l,u;e==="lonaxis"?(s=o.lonaxisRange,l=o.lataxisRange,u=function(E,k){return[E,k]}):e==="lataxis"&&(s=o.lataxisRange,l=o.lonaxisRange,u=function(E,k){return[k,E]});var c={type:"linear",range:[s[0],s[1]-n],tick0:a.tick0,dtick:a.dtick};kX.setConvert(c,r);var f=kX.calcTicks(c);!t.isScoped&&e==="lonaxis"&&f.pop();for(var h=f.length,d=new Array(h),v=0;v0&&i<0&&(i+=360);var s=(i-n)/4;return{type:"Polygon",coordinates:[[[n,a],[n,o],[n+s,o],[n+2*s,o],[n+3*s,o],[i,o],[i,a],[i-s,a],[i-2*s,a],[i-3*s,a],[n,a]]]}}});var LX=ye((Cpr,zRe)=>{"use strict";var K5=dh(),XDt=Ju().attributes,YDt=Ed().dash,Y5=XE(),KDt=Bu().overrideAll,RRe=X1(),DRe={range:{valType:"info_array",items:[{valType:"number"},{valType:"number"}]},showgrid:{valType:"boolean",dflt:!1},tick0:{valType:"number",dflt:0},dtick:{valType:"number"},gridcolor:{valType:"color",dflt:K5.lightLine},gridwidth:{valType:"number",min:0,dflt:1},griddash:YDt},JDt=zRe.exports=KDt({domain:XDt({name:"geo"},{}),fitbounds:{valType:"enumerated",values:[!1,"locations","geojson"],dflt:!1,editType:"plot"},resolution:{valType:"enumerated",values:[110,50],dflt:110,coerceNumber:!0},scope:{valType:"enumerated",values:RRe(Y5.scopeDefaults),dflt:"world"},projection:{type:{valType:"enumerated",values:RRe(Y5.projNames)},rotation:{lon:{valType:"number"},lat:{valType:"number"},roll:{valType:"number"}},tilt:{valType:"number",dflt:0},distance:{valType:"number",min:1.001,dflt:2},parallels:{valType:"info_array",items:[{valType:"number"},{valType:"number"}]},scale:{valType:"number",min:0,dflt:1}},center:{lon:{valType:"number"},lat:{valType:"number"}},visible:{valType:"boolean",dflt:!0},showcoastlines:{valType:"boolean"},coastlinecolor:{valType:"color",dflt:K5.defaultLine},coastlinewidth:{valType:"number",min:0,dflt:1},showland:{valType:"boolean",dflt:!1},landcolor:{valType:"color",dflt:Y5.landColor},showocean:{valType:"boolean",dflt:!1},oceancolor:{valType:"color",dflt:Y5.waterColor},showlakes:{valType:"boolean",dflt:!1},lakecolor:{valType:"color",dflt:Y5.waterColor},showrivers:{valType:"boolean",dflt:!1},rivercolor:{valType:"color",dflt:Y5.waterColor},riverwidth:{valType:"number",min:0,dflt:1},showcountries:{valType:"boolean"},countrycolor:{valType:"color",dflt:K5.defaultLine},countrywidth:{valType:"number",min:0,dflt:1},showsubunits:{valType:"boolean"},subunitcolor:{valType:"color",dflt:K5.defaultLine},subunitwidth:{valType:"number",min:0,dflt:1},showframe:{valType:"boolean"},framecolor:{valType:"color",dflt:K5.defaultLine},framewidth:{valType:"number",min:0,dflt:1},bgcolor:{valType:"color",dflt:K5.background},lonaxis:DRe,lataxis:DRe},"plot","from-root");JDt.uirevision={valType:"any",editType:"none"}});var ORe=ye((Lpr,qRe)=>{"use strict";var Ez=Mr(),$Dt=k_(),QDt=kd().getSubplotData,kz=XE(),ezt=LX(),FRe=kz.axesNames;qRe.exports=function(t,r,n){$Dt(t,r,n,{type:"geo",attributes:ezt,handleDefaults:tzt,fullData:n,partition:"y"})};function tzt(e,t,r,n){var i=QDt(n.fullData,"geo",n.id),a=i.map(function(ae){return ae.index}),o=r("resolution"),s=r("scope"),l=kz.scopeDefaults[s],u=r("projection.type",l.projType),c=t._isAlbersUsa=u==="albers usa";c&&(s=t.scope="usa");var f=t._isScoped=s!=="world",h=t._isSatellite=u==="satellite",d=t._isConic=u.indexOf("conic")!==-1||u==="albers",v=t._isClipped=!!kz.lonaxisSpan[u];if(e.visible===!1){var x=Ez.extendDeep({},t._template);x.showcoastlines=!1,x.showcountries=!1,x.showframe=!1,x.showlakes=!1,x.showland=!1,x.showocean=!1,x.showrivers=!1,x.showsubunits=!1,x.lonaxis&&(x.lonaxis.showgrid=!1),x.lataxis&&(x.lataxis.showgrid=!1),t._template=x}for(var b=r("visible"),g,E=0;E0&&q<0&&(q+=360);var V=(F+q)/2,H;if(!c){var X=f?l.projRotate:[V,0,0];H=r("projection.rotation.lon",X[0]),r("projection.rotation.lat",X[1]),r("projection.rotation.roll",X[2]),g=r("showcoastlines",!f&&b),g&&(r("coastlinecolor"),r("coastlinewidth")),g=r("showocean",b?void 0:!1),g&&r("oceancolor")}var G,N;if(c?(G=-96.6,N=38.7):(G=f?V:H,N=(T[0]+T[1])/2),r("center.lon",G),r("center.lat",N),h&&(r("projection.tilt"),r("projection.distance")),d){var W=l.projParallels||[0,60];r("projection.parallels",W)}r("projection.scale"),g=r("showland",b?void 0:!1),g&&r("landcolor"),g=r("showlakes",b?void 0:!1),g&&r("lakecolor"),g=r("showrivers",b?void 0:!1),g&&(r("rivercolor"),r("riverwidth")),g=r("showcountries",f&&s!=="usa"&&b),g&&(r("countrycolor"),r("countrywidth")),(s==="usa"||s==="north america"&&o===50)&&(r("showsubunits",b),r("subunitcolor"),r("subunitwidth")),f||(g=r("showframe",b),g&&(r("framecolor"),r("framewidth"))),r("bgcolor");var re=r("fitbounds");re&&(delete t.projection.scale,f?(delete t.center.lon,delete t.center.lat):v?(delete t.center.lon,delete t.center.lat,delete t.projection.rotation.lon,delete t.projection.rotation.lat,delete t.lonaxis.range,delete t.lataxis.range):(delete t.center.lon,delete t.center.lat,delete t.projection.rotation.lon))}});var PX=ye((Ppr,URe)=>{"use strict";var rzt=kd().getSubplotCalcData,izt=Mr().counterRegex,nzt=IRe(),Wm="geo",BRe=izt(Wm),NRe={};NRe[Wm]={valType:"subplotid",dflt:Wm,editType:"calc"};function azt(e){for(var t=e._fullLayout,r=e.calcdata,n=t._subplots[Wm],i=0;i{"use strict";VRe.exports={attributes:H2(),supplyDefaults:T8e(),colorbar:Kd(),formatLabels:M8e(),calc:lz(),calcGeoJSON:_X().calcGeoJSON,plot:_X().plot,style:pX(),styleOnSelect:op().styleOnSelect,hoverPoints:fRe(),eventData:dRe(),selectPoints:gRe(),moduleType:"trace",name:"scattergeo",basePlotModule:PX(),categories:["geo","symbols","showLegend","scatter-like"],meta:{}}});var jRe=ye((Rpr,GRe)=>{"use strict";GRe.exports=HRe()});var J5=ye((Dpr,XRe)=>{"use strict";var lzt=Wo().hovertemplateAttrs,ax=H2(),uzt=Kl(),WRe=vl(),czt=dh().defaultLine,nx=no().extendFlat,ZRe=ax.marker.line;XRe.exports=nx({locations:{valType:"data_array",editType:"calc"},locationmode:ax.locationmode,z:{valType:"data_array",editType:"calc"},geojson:nx({},ax.geojson,{}),featureidkey:ax.featureidkey,text:nx({},ax.text,{}),hovertext:nx({},ax.hovertext,{}),marker:{line:{color:nx({},ZRe.color,{dflt:czt}),width:nx({},ZRe.width,{dflt:1}),editType:"calc"},opacity:{valType:"number",arrayOk:!0,min:0,max:1,dflt:1,editType:"style"},editType:"calc"},selected:{marker:{opacity:ax.selected.marker.opacity,editType:"plot"},editType:"plot"},unselected:{marker:{opacity:ax.unselected.marker.opacity,editType:"plot"},editType:"plot"},hoverinfo:nx({},WRe.hoverinfo,{editType:"calc",flags:["location","z","text","name"]}),hovertemplate:lzt(),showlegend:nx({},WRe.showlegend,{dflt:!1})},uzt("",{cLetter:"z",editTypeOverride:"calc"}))});var KRe=ye((zpr,YRe)=>{"use strict";var Cz=Mr(),fzt=Uh(),hzt=J5();YRe.exports=function(t,r,n,i){function a(h,d){return Cz.coerce(t,r,hzt,h,d)}var o=a("locations"),s=a("z");if(!(o&&o.length&&Cz.isArrayOrTypedArray(s)&&s.length)){r.visible=!1;return}r._length=Math.min(o.length,s.length);var l=a("geojson"),u;(typeof l=="string"&&l!==""||Cz.isPlainObject(l))&&(u="geojson-id");var c=a("locationmode",u);c==="geojson-id"&&a("featureidkey"),a("text"),a("hovertext"),a("hovertemplate");var f=a("marker.line.width");f&&a("marker.line.color"),a("marker.opacity"),fzt(t,r,i,a,{prefix:"",cLetter:"z"}),Cz.coerceSelectionMarkerOpacity(r,a)}});var Lz=ye((Fpr,QRe)=>{"use strict";var JRe=uo(),dzt=es().BADNUM,vzt=zv(),pzt=km(),gzt=F0();function $Re(e){return e&&typeof e=="string"}QRe.exports=function(t,r){var n=r._length,i=new Array(n),a;r.geojson?a=function(c){return $Re(c)||JRe(c)}:a=$Re;for(var o=0;o{"use strict";var mzt=xa(),yzt=va(),IX=ao(),_zt=Mu();function xzt(e,t){t&&eDe(e,t)}function eDe(e,t){var r=t[0].trace,n=t[0].node3,i=n.selectAll(".choroplethlocation"),a=r.marker||{},o=a.line||{},s=_zt.makeColorScaleFuncFromTrace(r);i.each(function(l){mzt.select(this).attr("fill",s(l.z)).call(yzt.stroke,l.mlc||o.color).call(IX.dashLine,"",l.mlw||o.width||0).style("opacity",a.opacity)}),IX.selectedPointStyle(i,r)}function bzt(e,t){var r=t[0].node3,n=t[0].trace;n.selectedpoints?IX.selectedPointStyle(r.selectAll(".choroplethlocation"),n):eDe(e,t)}tDe.exports={style:xzt,styleOnSelect:bzt}});var RX=ye((Opr,nDe)=>{"use strict";var wzt=xa(),rDe=Mr(),$5=ix(),Tzt=cz().getTopojsonFeatures,iDe=wg().findExtremes,Azt=Pz().style;function Szt(e,t,r){var n=t.layers.backplot.select(".choroplethlayer");rDe.makeTraceGroups(n,r,"trace choropleth").each(function(i){var a=wzt.select(this),o=a.selectAll("path.choroplethlocation").data(rDe.identity);o.enter().append("path").classed("choroplethlocation",!0),o.exit().remove(),Azt(e,i)})}function Mzt(e,t){for(var r=e[0].trace,n=t[r.geo],i=n._subplot,a=r.locationmode,o=r._length,s=a==="geojson-id"?$5.extractTraceFeature(e):Tzt(r,i.topojson),l=[],u=[],c=0;c{"use strict";var Ezt=Qa(),kzt=J5(),Czt=Mr().fillText;aDe.exports=function(t,r,n){var i=t.cd,a=i[0].trace,o=t.subplot,s,l,u,c,f=[r,n],h=[r+360,n];for(l=0;l")}}});var Rz=ye((Npr,oDe)=>{"use strict";oDe.exports=function(t,r,n,i,a){t.location=r.location,t.z=r.z;var o=i[a];return o.fIn&&o.fIn.properties&&(t.properties=o.fIn.properties),t.ct=o.ct,t}});var Dz=ye((Upr,sDe)=>{"use strict";sDe.exports=function(t,r){var n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s,l,u,c,f;if(r===!1)for(s=0;s{"use strict";lDe.exports={attributes:J5(),supplyDefaults:KRe(),colorbar:S_(),calc:Lz(),calcGeoJSON:RX().calcGeoJSON,plot:RX().plot,style:Pz().style,styleOnSelect:Pz().styleOnSelect,hoverPoints:Iz(),eventData:Rz(),selectPoints:Dz(),moduleType:"trace",name:"choropleth",basePlotModule:PX(),categories:["geo","noOpacity","showLegend"],meta:{}}});var fDe=ye((Hpr,cDe)=>{"use strict";cDe.exports=uDe()});var zz=ye((Gpr,dDe)=>{"use strict";var Pzt=ba(),s0=Mr(),Izt=oT();function Rzt(e,t,r,n){var i=e.cd,a=i[0].t,o=i[0].trace,s=e.xa,l=e.ya,u=a.x,c=a.y,f=s.c2p(t),h=l.c2p(r),d=e.distance,v;if(a.tree){var x=s.p2c(f-d),b=s.p2c(f+d),g=l.p2c(h-d),E=l.p2c(h+d);n==="x"?v=a.tree.range(Math.min(x,b),Math.min(l._rl[0],l._rl[1]),Math.max(x,b),Math.max(l._rl[0],l._rl[1])):v=a.tree.range(Math.min(x,b),Math.min(g,E),Math.max(x,b),Math.max(g,E))}else v=a.ids;var k,A,L,_,C,M,p,P,T,F=d;if(n==="x"){var q=!!o.xperiodalignment,V=!!o.yperiodalignment;for(C=0;C=Math.min(H,X)&&f<=Math.max(H,X)?0:1/0}if(M=Math.min(G,N)&&h<=Math.max(G,N)?0:1/0}T=Math.sqrt(M*M+p*p),A=v[C]}}}else for(C=v.length-1;C>-1;C--)k=v[C],L=u[k],_=c[k],M=s.c2p(L)-f,p=l.c2p(_)-h,P=Math.sqrt(M*M+p*p),P{"use strict";var vDe=20;pDe.exports={TOO_MANY_POINTS:1e5,SYMBOL_SDF_SIZE:200,SYMBOL_SIZE:vDe,SYMBOL_STROKE:vDe/20,DOT_RE:/-dot/,OPEN_RE:/-open/,DASHES:{solid:[1],dot:[1,1],dash:[4,1],longdash:[8,1],dashdot:[4,1,1,1],longdashdot:[8,1,1,1]}}});var ek=ye((Wpr,_De)=>{"use strict";var Dzt=vl(),zzt=Su(),Fzt=Eg(),Af=Uc(),gDe=Oc().axisHoverFormat,mDe=Kl(),qzt=X1(),DX=no().extendFlat,Ozt=Bu().overrideAll,Bzt=ox().DASHES,yDe=Af.line,r1=Af.marker,Nzt=r1.line,Q5=_De.exports=Ozt({x:Af.x,x0:Af.x0,dx:Af.dx,y:Af.y,y0:Af.y0,dy:Af.dy,xperiod:Af.xperiod,yperiod:Af.yperiod,xperiod0:Af.xperiod0,yperiod0:Af.yperiod0,xperiodalignment:Af.xperiodalignment,yperiodalignment:Af.yperiodalignment,xhoverformat:gDe("x"),yhoverformat:gDe("y"),text:Af.text,hovertext:Af.hovertext,textposition:Af.textposition,textfont:zzt({noFontShadow:!0,noFontLineposition:!0,noFontTextcase:!0,editType:"calc",colorEditType:"style",arrayOk:!0,noNumericWeightValues:!0,variantValues:["normal","small-caps"]}),mode:{valType:"flaglist",flags:["lines","markers","text"],extras:["none"]},line:{color:yDe.color,width:yDe.width,shape:{valType:"enumerated",values:["linear","hv","vh","hvh","vhv"],dflt:"linear",editType:"plot"},dash:{valType:"enumerated",values:qzt(Bzt),dflt:"solid"}},marker:DX({},mDe("marker"),{symbol:r1.symbol,angle:r1.angle,size:r1.size,sizeref:r1.sizeref,sizemin:r1.sizemin,sizemode:r1.sizemode,opacity:r1.opacity,colorbar:r1.colorbar,line:DX({},mDe("marker.line"),{width:Nzt.width})}),connectgaps:Af.connectgaps,fill:DX({},Af.fill,{dflt:"none"}),fillcolor:Fzt(),selected:{marker:Af.selected.marker,textfont:Af.selected.textfont},unselected:{marker:Af.unselected.marker,textfont:Af.unselected.textfont},opacity:Dzt.opacity},"calc","nested");Q5.x.editType=Q5.y.editType=Q5.x0.editType=Q5.y0.editType="calc+clearAxisTypes";Q5.hovertemplate=Af.hovertemplate;Q5.texttemplate=Af.texttemplate});var Fz=ye(zX=>{"use strict";var xDe=ox();zX.isOpenSymbol=function(e){return typeof e=="string"?xDe.OPEN_RE.test(e):e%200>100};zX.isDotSymbol=function(e){return typeof e=="string"?xDe.DOT_RE.test(e):e>200}});var TDe=ye((Xpr,wDe)=>{"use strict";var bDe=Mr(),Uzt=ba(),Vzt=Fz(),Hzt=ek(),Gzt=Sm(),qz=lu(),jzt=K3(),Wzt=Pg(),Zzt=$p(),Xzt=R0(),Yzt=Ig(),Kzt=D0();wDe.exports=function(t,r,n,i){function a(d,v){return bDe.coerce(t,r,Hzt,d,v)}var o=t.marker?Vzt.isOpenSymbol(t.marker.symbol):!1,s=qz.isBubble(t),l=jzt(t,r,i,a);if(!l){r.visible=!1;return}Wzt(t,r,i,a),a("xhoverformat"),a("yhoverformat");var u=l{"use strict";var Jzt=JP();ADe.exports=function(t,r,n){var i=t.i;return"x"in t||(t.x=r._x[i]),"y"in t||(t.y=r._y[i]),Jzt(t,r,n)}});var EDe=ye((Kpr,MDe)=>{"use strict";function $zt(e,t,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=e[o],l=r!==void 0?r(s,t):s-t;l>=0?(a=o,i=o-1):n=o+1}return a}function Qzt(e,t,r,n,i){for(var a=i+1;n<=i;){var o=n+i>>>1,s=e[o],l=r!==void 0?r(s,t):s-t;l>0?(a=o,i=o-1):n=o+1}return a}function eFt(e,t,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=e[o],l=r!==void 0?r(s,t):s-t;l<0?(a=o,n=o+1):i=o-1}return a}function tFt(e,t,r,n,i){for(var a=n-1;n<=i;){var o=n+i>>>1,s=e[o],l=r!==void 0?r(s,t):s-t;l<=0?(a=o,n=o+1):i=o-1}return a}function rFt(e,t,r,n,i){for(;n<=i;){var a=n+i>>>1,o=e[a],s=r!==void 0?r(o,t):o-t;if(s===0)return a;s<=0?n=a+1:i=a-1}return-1}function tk(e,t,r,n,i,a){return typeof r=="function"?a(e,t,r,n===void 0?0:n|0,i===void 0?e.length-1:i|0):a(e,t,void 0,r===void 0?0:r|0,n===void 0?e.length-1:n|0)}MDe.exports={ge:function(e,t,r,n,i){return tk(e,t,r,n,i,$zt)},gt:function(e,t,r,n,i){return tk(e,t,r,n,i,Qzt)},lt:function(e,t,r,n,i){return tk(e,t,r,n,i,eFt)},le:function(e,t,r,n,i){return tk(e,t,r,n,i,tFt)},eq:function(e,t,r,n,i){return tk(e,t,r,n,i,rFt)}}});var Zm=ye((Jpr,CDe)=>{"use strict";CDe.exports=function(t,r,n){var i={},a,o;if(typeof r=="string"&&(r=kDe(r)),Array.isArray(r)){var s={};for(o=0;o{"use strict";var iFt=Zm();LDe.exports=nFt;function nFt(e){var t;return arguments.length>1&&(e=arguments),typeof e=="string"?e=e.split(/\s/).map(parseFloat):typeof e=="number"&&(e=[e]),e.length&&typeof e[0]=="number"?e.length===1?t={width:e[0],height:e[0],x:0,y:0}:e.length===2?t={width:e[0],height:e[1],x:0,y:0}:t={x:e[0],y:e[1],width:e[2]-e[0]||0,height:e[3]-e[1]||0}:e&&(e=iFt(e,{left:"x l left Left",top:"y t top Top",width:"w width W Width",height:"h height W Width",bottom:"b bottom Bottom",right:"r right Right"}),t={x:e.left||0,y:e.top||0},e.width==null?e.right?t.width=e.right-t.x:t.width=0:t.width=e.width,e.height==null?e.bottom?t.height=e.bottom-t.y:t.height=0:t.height=e.height),t}});var j2=ye((Qpr,PDe)=>{"use strict";PDe.exports=aFt;function aFt(e,t){if(!e||e.length==null)throw Error("Argument should be an array");t==null?t=1:t=Math.floor(t);for(var r=Array(t*2),n=0;ni&&(i=e[o]),e[o]{IDe.exports=function(){for(var e=0;e{var DDe=HD();zDe.exports=oFt;function oFt(e,t,r){if(!e)throw new TypeError("must specify data as first parameter");if(r=+(r||0)|0,Array.isArray(e)&&e[0]&&typeof e[0][0]=="number"){var n=e[0].length,i=e.length*n,a,o,s,l;(!t||typeof t=="string")&&(t=new(DDe(t||"float32"))(i+r));var u=t.length-r;if(i!==u)throw new Error("source length "+i+" ("+n+"x"+e.length+") does not match destination length "+u);for(a=0,s=r;a{"use strict";FDe.exports=function(e){var t=typeof e;return e!==null&&(t==="object"||t==="function")}});var BDe=ye((i0r,ODe)=>{"use strict";ODe.exports=Math.log2||function(e){return Math.log(e)*Math.LOG2E}});var WDe=ye((n0r,jDe)=>{"use strict";var NDe=EDe(),UDe=O5(),sFt=eA(),lFt=j2(),VDe=Zm(),qX=RDe(),uFt=W2(),cFt=qDe(),fFt=HD(),HDe=BDe(),hFt=1073741824;jDe.exports=function(t,r){r||(r={}),t=uFt(t,"float64"),r=VDe(r,{bounds:"range bounds dataBox databox",maxDepth:"depth maxDepth maxdepth level maxLevel maxlevel levels",dtype:"type dtype format out dst output destination"});let n=qX(r.maxDepth,255),i=qX(r.bounds,lFt(t,2));i[0]===i[2]&&i[2]++,i[1]===i[3]&&i[3]++;let a=GDe(t,i),o=t.length>>>1,s;r.dtype||(r.dtype="array"),typeof r.dtype=="string"?s=new(fFt(r.dtype))(o):r.dtype&&(s=r.dtype,Array.isArray(s)&&(s.length=o));for(let g=0;gn||_>hFt){for(let N=0;N_e||p>Me||P=F||re===ae)return;let ke=l[W];ae===void 0&&(ae=ke.length);for(let Re=re;Re=A&&Ge<=_&&nt>=L&&nt<=C&&q.push(ce)}let ge=u[W],ie=ge[re*4+0],Te=ge[re*4+1],Ee=ge[re*4+2],Ae=ge[re*4+3],ze=H(ge,re+1),Ce=N*.5,me=W+1;V(X,G,Ce,me,ie,Te||Ee||Ae||ze),V(X,G+Ce,Ce,me,Te,Ee||Ae||ze),V(X+Ce,G,Ce,me,Ee,Ae||ze),V(X+Ce,G+Ce,Ce,me,Ae,ze)}function H(X,G){let N=null,W=0;for(;N===null;)if(N=X[G*4+W],W++,W>X.length)return null;return N}return q}function x(g,E,k,A,L){let _=[];for(let C=0;C{"use strict";ZDe.exports=WDe()});var OX=ye((o0r,XDe)=>{XDe.exports=dFt;function dFt(e){var t=0,r=0,n=0,i=0;return e.map(function(a){a=a.slice();var o=a[0],s=o.toUpperCase();if(o!=s)switch(a[0]=s,o){case"a":a[6]+=n,a[7]+=i;break;case"v":a[1]+=i;break;case"h":a[1]+=n;break;default:for(var l=1;l{"use strict";Object.defineProperty(Bz,"__esModule",{value:!0});var vFt=function(){function e(t,r){var n=[],i=!0,a=!1,o=void 0;try{for(var s=t[Symbol.iterator](),l;!(i=(l=s.next()).done)&&(n.push(l.value),!(r&&n.length===r));i=!0);}catch(u){a=!0,o=u}finally{try{!i&&s.return&&s.return()}finally{if(a)throw o}}return n}return function(t,r){if(Array.isArray(t))return t;if(Symbol.iterator in Object(t))return e(t,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),rk=Math.PI*2,BX=function(t,r,n,i,a,o,s){var l=t.x,u=t.y;l*=r,u*=n;var c=i*l-a*u,f=a*l+i*u;return{x:c+o,y:f+s}},pFt=function(t,r){var n=r===1.5707963267948966?.551915024494:r===-1.5707963267948966?-.551915024494:1.3333333333333333*Math.tan(r/4),i=Math.cos(t),a=Math.sin(t),o=Math.cos(t+r),s=Math.sin(t+r);return[{x:i-a*n,y:a+i*n},{x:o+s*n,y:s-o*n},{x:o,y:s}]},YDe=function(t,r,n,i){var a=t*i-r*n<0?-1:1,o=t*n+r*i;return o>1&&(o=1),o<-1&&(o=-1),a*Math.acos(o)},gFt=function(t,r,n,i,a,o,s,l,u,c,f,h){var d=Math.pow(a,2),v=Math.pow(o,2),x=Math.pow(f,2),b=Math.pow(h,2),g=d*v-d*b-v*x;g<0&&(g=0),g/=d*b+v*x,g=Math.sqrt(g)*(s===l?-1:1);var E=g*a/o*h,k=g*-o/a*f,A=c*E-u*k+(t+n)/2,L=u*E+c*k+(r+i)/2,_=(f-E)/a,C=(h-k)/o,M=(-f-E)/a,p=(-h-k)/o,P=YDe(1,0,_,C),T=YDe(_,C,M,p);return l===0&&T>0&&(T-=rk),l===1&&T<0&&(T+=rk),[A,L,P,T]},mFt=function(t){var r=t.px,n=t.py,i=t.cx,a=t.cy,o=t.rx,s=t.ry,l=t.xAxisRotation,u=l===void 0?0:l,c=t.largeArcFlag,f=c===void 0?0:c,h=t.sweepFlag,d=h===void 0?0:h,v=[];if(o===0||s===0)return[];var x=Math.sin(u*rk/360),b=Math.cos(u*rk/360),g=b*(r-i)/2+x*(n-a)/2,E=-x*(r-i)/2+b*(n-a)/2;if(g===0&&E===0)return[];o=Math.abs(o),s=Math.abs(s);var k=Math.pow(g,2)/Math.pow(o,2)+Math.pow(E,2)/Math.pow(s,2);k>1&&(o*=Math.sqrt(k),s*=Math.sqrt(k));var A=gFt(r,n,i,a,o,s,f,d,x,b,g,E),L=vFt(A,4),_=L[0],C=L[1],M=L[2],p=L[3],P=Math.abs(p)/(rk/4);Math.abs(1-P)<1e-7&&(P=1);var T=Math.max(Math.ceil(P),1);p/=T;for(var F=0;F{"use strict";QDe.exports=_Ft;var yFt=JDe();function _Ft(e){for(var t,r=[],n=0,i=0,a=0,o=0,s=null,l=null,u=0,c=0,f=0,h=e.length;f4?(n=d[d.length-4],i=d[d.length-3]):(n=u,i=c),r.push(d)}return r}function Nz(e,t,r,n){return["C",e,t,r,n,r,n]}function $De(e,t,r,n,i,a){return["C",e/3+2/3*r,t/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}});var NX=ye((l0r,tze)=>{"use strict";tze.exports=function(t){return typeof t!="string"?!1:(t=t.trim(),!!(/^[mzlhvcsqta]\s*[-+.0-9][^mlhvzcsqta]+/i.test(t)&&/[\dz]$/i.test(t)&&t.length>4))}});var nze=ye((u0r,ize)=>{"use strict";var xFt=XS(),bFt=OX(),wFt=eze(),TFt=NX(),rze=tE();ize.exports=AFt;function AFt(e){if(Array.isArray(e)&&e.length===1&&typeof e[0]=="string"&&(e=e[0]),typeof e=="string"&&(rze(TFt(e),"String is not an SVG path."),e=xFt(e)),rze(Array.isArray(e),"Argument should be a string or an array of path segments."),e=bFt(e),e=wFt(e),!e.length)return[0,0,0,0];for(var t=[1/0,1/0,-1/0,-1/0],r=0,n=e.length;rt[2]&&(t[2]=i[a+0]),i[a+1]>t[3]&&(t[3]=i[a+1]);return t}});var cze=ye((c0r,uze)=>{var Z2=Math.PI,aze=lze(120);uze.exports=SFt;function SFt(e){for(var t,r=[],n=0,i=0,a=0,o=0,s=null,l=null,u=0,c=0,f=0,h=e.length;f7&&(r.push(d.splice(0,7)),d.unshift("C"));break;case"S":var x=u,b=c;(t=="C"||t=="S")&&(x+=x-n,b+=b-i),d=["C",x,b,d[1],d[2],d[3],d[4]];break;case"T":t=="Q"||t=="T"?(s=u*2-s,l=c*2-l):(s=u,l=c),d=oze(u,c,s,l,d[1],d[2]);break;case"Q":s=d[1],l=d[2],d=oze(u,c,d[1],d[2],d[3],d[4]);break;case"L":d=Uz(u,c,d[1],d[2]);break;case"H":d=Uz(u,c,d[1],c);break;case"V":d=Uz(u,c,u,d[1]);break;case"Z":d=Uz(u,c,a,o);break}t=v,u=d[d.length-2],c=d[d.length-1],d.length>4?(n=d[d.length-4],i=d[d.length-3]):(n=u,i=c),r.push(d)}return r}function Uz(e,t,r,n){return["C",e,t,r,n,r,n]}function oze(e,t,r,n,i,a){return["C",e/3+2/3*r,t/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}function sze(e,t,r,n,i,a,o,s,l,u){if(u)k=u[0],A=u[1],g=u[2],E=u[3];else{var c=UX(e,t,-i);e=c.x,t=c.y,c=UX(s,l,-i),s=c.x,l=c.y;var f=(e-s)/2,h=(t-l)/2,d=f*f/(r*r)+h*h/(n*n);d>1&&(d=Math.sqrt(d),r=d*r,n=d*n);var v=r*r,x=n*n,b=(a==o?-1:1)*Math.sqrt(Math.abs((v*x-v*h*h-x*f*f)/(v*h*h+x*f*f)));b==1/0&&(b=1);var g=b*r*h/n+(e+s)/2,E=b*-n*f/r+(t+l)/2,k=Math.asin(((t-E)/n).toFixed(9)),A=Math.asin(((l-E)/n).toFixed(9));k=eA&&(k=k-Z2*2),!o&&A>k&&(A=A-Z2*2)}if(Math.abs(A-k)>aze){var L=A,_=s,C=l;A=k+aze*(o&&A>k?1:-1),s=g+r*Math.cos(A),l=E+n*Math.sin(A);var M=sze(s,l,r,n,i,0,o,_,C,[A,L,g,E])}var p=Math.tan((A-k)/4),P=4/3*r*p,T=4/3*n*p,F=[2*e-(e+P*Math.sin(k)),2*t-(t-T*Math.cos(k)),s+P*Math.sin(A),l-T*Math.cos(A),s,l];if(u)return F;M&&(F=F.concat(M));for(var q=0;q{var MFt=OX(),EFt=cze(),kFt={M:"moveTo",C:"bezierCurveTo"};fze.exports=function(e,t){e.beginPath(),EFt(MFt(t)).forEach(function(r){var n=r[0],i=r.slice(1);e[kFt[n]].apply(e,i)}),e.closePath()}});var gze=ye((h0r,pze)=>{"use strict";var CFt=O5();pze.exports=LFt;var ik=1e20;function LFt(e,t){t||(t={});var r=t.cutoff==null?.25:t.cutoff,n=t.radius==null?8:t.radius,i=t.channel||0,a,o,s,l,u,c,f,h,d,v,x;if(ArrayBuffer.isView(e)||Array.isArray(e)){if(!t.width||!t.height)throw Error("For raw data width and height should be provided by options");a=t.width,o=t.height,l=e,t.stride?c=t.stride:c=Math.floor(e.length/a/o)}else window.HTMLCanvasElement&&e instanceof window.HTMLCanvasElement?(h=e,f=h.getContext("2d"),a=h.width,o=h.height,d=f.getImageData(0,0,a,o),l=d.data,c=4):window.CanvasRenderingContext2D&&e instanceof window.CanvasRenderingContext2D?(h=e.canvas,f=e,a=h.width,o=h.height,d=f.getImageData(0,0,a,o),l=d.data,c=4):window.ImageData&&e instanceof window.ImageData&&(d=e,a=e.width,o=e.height,l=d.data,c=4);if(s=Math.max(a,o),window.Uint8ClampedArray&&l instanceof window.Uint8ClampedArray||window.Uint8Array&&l instanceof window.Uint8Array)for(u=l,l=Array(a*o),v=0,x=u.length;v{"use strict";var PFt=nze(),IFt=XS(),RFt=hze(),DFt=NX(),zFt=gze(),VX=document.createElement("canvas"),hp=VX.getContext("2d");mze.exports=FFt;function FFt(e,t){if(!DFt(e))throw Error("Argument should be valid svg path string");t||(t={});var r,n;t.shape?(r=t.shape[0],n=t.shape[1]):(r=VX.width=t.w||t.width||200,n=VX.height=t.h||t.height||200);var i=Math.min(r,n),a=t.stroke||0,o=t.viewbox||t.viewBox||PFt(e),s=[r/(o[2]-o[0]),n/(o[3]-o[1])],l=Math.min(s[0]||0,s[1]||0)/2;if(hp.fillStyle="black",hp.fillRect(0,0,r,n),hp.fillStyle="white",a&&(typeof a!="number"&&(a=1),a>0?hp.strokeStyle="white":hp.strokeStyle="black",hp.lineWidth=Math.abs(a)),hp.translate(r*.5,n*.5),hp.scale(l,l),qFt()){var u=new Path2D(e);hp.fill(u),a&&hp.stroke(u)}else{var c=IFt(e);RFt(hp,c),hp.fill(),a&&hp.stroke()}hp.setTransform(1,0,0,1,0,0);var f=zFt(hp,{cutoff:t.cutoff!=null?t.cutoff:.5,radius:t.radius!=null?t.radius:i*.5});return f}var Vz;function qFt(){if(Vz!=null)return Vz;var e=document.createElement("canvas").getContext("2d");if(e.canvas.width=e.canvas.height=1,!window.Path2D)return Vz=!1;var t=new Path2D("M0,0h1v1h-1v-1Z");e.fillStyle="black",e.fill(t);var r=e.getImageData(0,0,1,1);return Vz=r&&r.data&&r.data[3]===255}});var Y2=ye((v0r,Cze)=>{"use strict";var Gz=uo(),OFt=yze(),Hz=J_(),BFt=ba(),iA=Mr(),Qf=iA.isArrayOrTypedArray,tA=ao(),_ze=af(),xze=$y().formatColor,rA=lu(),NFt=S3(),GX=Fz(),nk=ox(),UFt=N1().DESELECTDIM,bze={start:1,left:1,end:-1,right:-1,middle:0,center:0,bottom:1,top:-1},VFt=rp().appendArrayPointValue;function HFt(e,t){var r,n={marker:void 0,markerSel:void 0,markerUnsel:void 0,line:void 0,fill:void 0,errorX:void 0,errorY:void 0,text:void 0,textSel:void 0,textUnsel:void 0},i=e._context.plotGlPixelRatio;if(t.visible!==!0)return n;if(rA.hasText(t)&&(n.text=kze(e,t),n.textSel=Tze(e,t,t.selected),n.textUnsel=Tze(e,t,t.unselected)),rA.hasMarkers(t)&&(n.marker=WX(e,t),n.markerSel=jX(e,t,t.selected),n.markerUnsel=jX(e,t,t.unselected),!t.unselected&&Qf(t.marker.opacity))){var a=t.marker.opacity;for(n.markerUnsel.opacity=new Array(a.length),r=0;r500?"bold":"normal":e}function WX(e,t){var r=t._length,n=t.marker,i={},a,o=Qf(n.symbol),s=Qf(n.angle),l=Qf(n.color),u=Qf(n.line.color),c=Qf(n.opacity),f=Qf(n.size),h=Qf(n.line.width),d;if(o||(d=GX.isOpenSymbol(n.symbol)),o||l||u||c||s){i.symbols=new Array(r),i.angles=new Array(r),i.colors=new Array(r),i.borderColors=new Array(r);var v=n.symbol,x=n.angle,b=xze(n,n.opacity,r),g=xze(n.line,n.opacity,r);if(!Qf(g[0])){var E=g;for(g=Array(r),a=0;ank.TOO_MANY_POINTS||rA.hasMarkers(t)?"rect":"round";if(u&&t.connectgaps){var f=a[0],h=a[1];for(o=0;o1?l[o]:l[0]:l,d=Qf(u)?u.length>1?u[o]:u[0]:u,v=bze[h],x=bze[d],b=c?c/.8+1:0,g=-x*b-x*.5;a.offset[o]=[v*b/f,g/f]}}return a}Cze.exports={style:HFt,markerStyle:WX,markerSelection:jX,linePositions:jFt,errorBarPositions:WFt,textPosition:ZFt}});var ZX=ye((p0r,Lze)=>{"use strict";var jz=Mr();Lze.exports=function(t,r){var n=r._scene,i={count:0,dirty:!0,lineOptions:[],fillOptions:[],markerOptions:[],markerSelectedOptions:[],markerUnselectedOptions:[],errorXOptions:[],errorYOptions:[],textOptions:[],textSelectedOptions:[],textUnselectedOptions:[],selectBatch:[],unselectBatch:[]},a={fill2d:!1,scatter2d:!1,error2d:!1,line2d:!1,glText:!1,select2d:!1};return r._scene||(n=r._scene={},n.init=function(){jz.extendFlat(n,a,i)},n.init(),n.update=function(s){var l=jz.repeat(s,n.count);if(n.fill2d&&n.fill2d.update(l),n.scatter2d&&n.scatter2d.update(l),n.line2d&&n.line2d.update(l),n.error2d&&n.error2d.update(l.concat(l)),n.select2d&&n.select2d.update(l),n.glText)for(var u=0;u{"use strict";var XFt=Oz(),nA=Mr(),Pze=af(),YFt=wg().findExtremes,Ize=Rg(),XX=q0(),KFt=XX.calcMarkerSize,JFt=XX.calcAxisExpansion,$Ft=XX.setFirstScatter,QFt=z0(),aA=Y2(),e7t=ZX(),Rze=es().BADNUM,t7t=ox().TOO_MANY_POINTS;zze.exports=function(t,r){var n=t._fullLayout,i=r._xA=Pze.getFromId(t,r.xaxis,"x"),a=r._yA=Pze.getFromId(t,r.yaxis,"y"),o=n._plots[r.xaxis+r.yaxis],s=r._length,l=s>=t7t,u=s*2,c={},f,h=i.makeCalcdata(r,"x"),d=a.makeCalcdata(r,"y"),v=Ize(r,i,"x",h),x=Ize(r,a,"y",d),b=v.vals,g=x.vals;r._x=b,r._y=g,r.xperiodalignment&&(r._origX=h,r._xStarts=v.starts,r._xEnds=v.ends),r.yperiodalignment&&(r._origY=d,r._yStarts=x.starts,r._yEnds=x.ends);var E=new Array(u),k=new Array(s);for(f=0;f1&&nA.extendFlat(o.line,aA.linePositions(e,r,n)),o.errorX||o.errorY){var s=aA.errorBarPositions(e,r,n,i,a);o.errorX&&nA.extendFlat(o.errorX,s.x),o.errorY&&nA.extendFlat(o.errorY,s.y)}return o.text&&(nA.extendFlat(o.text,{positions:n},aA.textPosition(e,r,o.text,o.marker)),nA.extendFlat(o.textSel,{positions:n},aA.textPosition(e,r,o.text,o.markerSel)),nA.extendFlat(o.textUnsel,{positions:n},aA.textPosition(e,r,o.text,o.markerUnsel))),o}});var YX=ye((m0r,Oze)=>{"use strict";var qze=Mr(),i7t=va(),n7t=N1().DESELECTDIM;function a7t(e){var t=e[0],r=t.trace,n=t.t,i=n._scene,a=n.index,o=i.selectBatch[a],s=i.unselectBatch[a],l=i.textOptions[a],u=i.textSelectedOptions[a]||{},c=i.textUnselectedOptions[a]||{},f=qze.extendFlat({},l),h,d;if(o.length||s.length){var v=u.color,x=c.color,b=l.color,g=qze.isArrayOrTypedArray(b);for(f.color=new Array(r._length),h=0;h{"use strict";var Bze=lu(),o7t=YX().styleTextSelection;Nze.exports=function(t,r){var n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].trace,l=n[0].t,u=s._length,c=l.x,f=l.y,h=l._scene,d=l.index;if(!h)return o;var v=Bze.hasText(s),x=Bze.hasMarkers(s),b=!x&&!v;if(s.visible!==!0||b)return o;var g=[],E=[];if(r!==!1&&!r.degenerate)for(var k=0;k{"use strict";var s7t=zz();Uze.exports={moduleType:"trace",name:"scattergl",basePlotModule:Jf(),categories:["gl","regl","cartesian","symbols","errorBarsOK","showLegend","scatter-like"],attributes:ek(),supplyDefaults:TDe(),crossTraceDefaults:$N(),colorbar:Kd(),formatLabels:SDe(),calc:Fze(),hoverPoints:s7t.hoverPoints,selectPoints:KX(),meta:{}}});var Gze=ye((x0r,Zz)=>{"use strict";var Wz=O5();Zz.exports=Hze;Zz.exports.to=Hze;Zz.exports.from=l7t;function Hze(e,t){t==null&&(t=!0);var r=e[0],n=e[1],i=e[2],a=e[3];a==null&&(a=t?1:255),t&&(r*=255,n*=255,i*=255,a*=255),r=Wz(r,0,255)&255,n=Wz(n,0,255)&255,i=Wz(i,0,255)&255,a=Wz(a,0,255)&255;var o=r*16777216+(n<<16)+(i<<8)+a;return o}function l7t(e,t){e=+e;var r=e>>>24,n=(e&16711680)>>>16,i=(e&65280)>>>8,a=e&255;return t===!1?[r,n,i,a]:[r/255,n/255,i/255,a/255]}});var bh=ye((b0r,Wze)=>{"use strict";var jze=Object.getOwnPropertySymbols,u7t=Object.prototype.hasOwnProperty,c7t=Object.prototype.propertyIsEnumerable;function f7t(e){if(e==null)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}function h7t(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de",Object.getOwnPropertyNames(e)[0]==="5")return!1;for(var t={},r=0;r<10;r++)t["_"+String.fromCharCode(r)]=r;var n=Object.getOwnPropertyNames(t).map(function(a){return t[a]});if(n.join("")!=="0123456789")return!1;var i={};return"abcdefghijklmnopqrst".split("").forEach(function(a){i[a]=a}),Object.keys(Object.assign({},i)).join("")==="abcdefghijklmnopqrst"}catch(a){return!1}}Wze.exports=h7t()?Object.assign:function(e,t){for(var r,n=f7t(e),i,a=1;a{Zze.exports=function(e){typeof e=="string"&&(e=[e]);for(var t=[].slice.call(arguments,1),r=[],n=0;n{"use strict";Yze.exports=function(t,r,n){Array.isArray(n)||(n=[].slice.call(arguments,2));for(var i=0,a=n.length;i{"use strict";Kze.exports=typeof navigator!="undefined"&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion))});var Xz=ye((S0r,oA)=>{"use strict";oA.exports=ak;oA.exports.float32=oA.exports.float=ak;oA.exports.fract32=oA.exports.fract=d7t;var $ze=new Float32Array(1);function d7t(e,t){if(e.length){if(e instanceof Float32Array)return new Float32Array(e.length);t instanceof Float32Array||(t=ak(e));for(var r=0,n=t.length;r{"use strict";function v7t(e,t){var r=e==null?null:typeof Symbol!="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,a,o,s=[],l=!0,u=!1;try{if(a=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;l=!1}else for(;!(l=(n=a.call(r)).done)&&(s.push(n.value),s.length!==t);l=!0);}catch(c){u=!0,i=c}finally{try{if(!l&&r.return!=null&&(o=r.return(),Object(o)!==o))return}finally{if(u)throw i}}return s}}function p7t(e,t){return y7t(e)||v7t(e,t)||eFe(e,t)||b7t()}function g7t(e){return m7t(e)||_7t(e)||eFe(e)||x7t()}function m7t(e){if(Array.isArray(e))return $X(e)}function y7t(e){if(Array.isArray(e))return e}function _7t(e){if(typeof Symbol!="undefined"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function eFe(e,t){if(e){if(typeof e=="string")return $X(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return $X(e,t)}}function $X(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r 1.0 + delta) { + discard; + } + + alpha -= smoothstep(1.0 - delta, 1.0 + delta, radius); + + float borderRadius = fragBorderRadius; + float ratio = smoothstep(borderRadius - delta, borderRadius + delta, radius); + vec4 color = mix(fragColor, fragBorderColor, ratio); + color.a *= alpha * opacity; + gl_FragColor = color; +} +`]),v.vert=Yz([`precision highp float; +#define GLSLIFY 1 + +attribute float x, y, xFract, yFract; +attribute float size, borderSize; +attribute vec4 colorId, borderColorId; +attribute float isActive; + +// \`invariant\` effectively turns off optimizations for the position. +// We need this because -fast-math on M1 Macs is re-ordering +// floating point operations in a way that causes floating point +// precision limits to put points in the wrong locations. +invariant gl_Position; + +uniform bool constPointSize; +uniform float pixelRatio; +uniform vec2 paletteSize, scale, scaleFract, translate, translateFract; +uniform sampler2D paletteTexture; + +const float maxSize = 100.; + +varying vec4 fragColor, fragBorderColor; +varying float fragBorderRadius, fragWidth; + +float pointSizeScale = (constPointSize) ? 2. : pixelRatio; + +bool isDirect = (paletteSize.x < 1.); + +vec4 getColor(vec4 id) { + return isDirect ? id / 255. : texture2D(paletteTexture, + vec2( + (id.x + .5) / paletteSize.x, + (id.y + .5) / paletteSize.y + ) + ); +} + +void main() { + // ignore inactive points + if (isActive == 0.) return; + + vec2 position = vec2(x, y); + vec2 positionFract = vec2(xFract, yFract); + + vec4 color = getColor(colorId); + vec4 borderColor = getColor(borderColorId); + + float size = size * maxSize / 255.; + float borderSize = borderSize * maxSize / 255.; + + gl_PointSize = (size + borderSize) * pointSizeScale; + + vec2 pos = (position + translate) * scale + + (positionFract + translateFract) * scale + + (position + translate) * scaleFract + + (positionFract + translateFract) * scaleFract; + + gl_Position = vec4(pos * 2. - 1., 0., 1.); + + fragBorderRadius = 1. - 2. * borderSize / (size + borderSize); + fragColor = color; + fragBorderColor = borderColor.a == 0. || borderSize == 0. ? vec4(color.rgb, 0.) : borderColor; + fragWidth = 1. / gl_PointSize; +} +`]),Qze&&(v.frag=v.frag.replace("smoothstep","smoothStep"),d.frag=d.frag.replace("smoothstep","smoothStep")),this.drawCircle=e(v)}rv.defaults={color:"black",borderColor:"transparent",borderSize:0,size:12,opacity:1,marker:void 0,viewport:null,range:null,pixelSize:null,count:0,offset:0,bounds:null,positions:[],snap:1e4};rv.prototype.render=function(){return arguments.length&&this.update.apply(this,arguments),this.draw(),this};rv.prototype.draw=function(){for(var e=this,t=arguments.length,r=new Array(t),n=0;nre)?N.tree=S7t(G,{bounds:ge}):re&&re.length&&(N.tree=re),N.tree){var ie={primitive:"points",usage:"static",data:N.tree,type:"uint32"};N.elements?N.elements(ie):N.elements=o.elements(ie)}var Te=Kz.float32(G);ae({data:Te,usage:"dynamic"});var Ee=Kz.fract32(G,Te);return _e({data:Ee,usage:"dynamic"}),Me({data:new Uint8Array(ke),type:"uint8",usage:"stream"}),G}},{marker:function(G,N,W){var re=N.activation;if(re.forEach(function(Ee){return Ee&&Ee.destroy&&Ee.destroy()}),re.length=0,!G||typeof G[0]=="number"){var ae=e.addMarker(G);re[ae]=!0}else{for(var _e=[],Me=0,ke=Math.min(G.length,N.count);Me=0)return i;var a;if(e instanceof Uint8Array||e instanceof Uint8ClampedArray)a=e;else{a=new Uint8Array(e.length);for(var o=0,s=e.length;on*4&&(this.tooManyColors=!0),this.updatePalette(r),i.length===1?i[0]:i};rv.prototype.updatePalette=function(e){if(!this.tooManyColors){var t=this.maxColors,r=this.paletteTexture,n=Math.ceil(e.length*.25/t);if(n>1){e=e.slice();for(var i=e.length*.25%t;i{"use strict";iY.exports=Qz;iY.exports.default=Qz;function Qz(e,t,r){r=r||2;var n=t&&t.length,i=n?t[0]*r:e.length,a=iFe(e,0,i,r,!0),o=[];if(!a||a.next===a.prev)return o;var s,l,u,c,f,h,d;if(n&&(a=q7t(e,t,a,r)),e.length>80*r){s=u=e[0],l=c=e[1];for(var v=r;vu&&(u=f),h>c&&(c=h);d=Math.max(u-s,c-l),d=d!==0?32767/d:0}return ok(a,o,r,s,l,d,0),o}function iFe(e,t,r,n,i){var a,o;if(i===rY(e,t,r,n)>0)for(a=t;a=t;a-=n)o=rFe(a,e[a],e[a+1],o);return o&&eF(o,o.next)&&(lk(o),o=o.next),o}function J2(e,t){if(!e)return e;t||(t=e);var r=e,n;do if(n=!1,!r.steiner&&(eF(r,r.next)||eh(r.prev,r,r.next)===0)){if(lk(r),r=t=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==t);return t}function ok(e,t,r,n,i,a,o){if(e){!o&&a&&V7t(e,n,i,a);for(var s=e,l,u;e.prev!==e.next;){if(l=e.prev,u=e.next,a?D7t(e,n,i,a):R7t(e)){t.push(l.i/r|0),t.push(e.i/r|0),t.push(u.i/r|0),lk(e),e=u.next,s=u.next;continue}if(e=u,e===s){o?o===1?(e=z7t(J2(e),t,r),ok(e,t,r,n,i,a,2)):o===2&&F7t(e,t,r,n,i,a):ok(J2(e),t,r,n,i,a,1);break}}}}function R7t(e){var t=e.prev,r=e,n=e.next;if(eh(t,r,n)>=0)return!1;for(var i=t.x,a=r.x,o=n.x,s=t.y,l=r.y,u=n.y,c=ia?i>o?i:o:a>o?a:o,d=s>l?s>u?s:u:l>u?l:u,v=n.next;v!==t;){if(v.x>=c&&v.x<=h&&v.y>=f&&v.y<=d&&sA(i,s,a,l,o,u,v.x,v.y)&&eh(v.prev,v,v.next)>=0)return!1;v=v.next}return!0}function D7t(e,t,r,n){var i=e.prev,a=e,o=e.next;if(eh(i,a,o)>=0)return!1;for(var s=i.x,l=a.x,u=o.x,c=i.y,f=a.y,h=o.y,d=sl?s>u?s:u:l>u?l:u,b=c>f?c>h?c:h:f>h?f:h,g=eY(d,v,t,r,n),E=eY(x,b,t,r,n),k=e.prevZ,A=e.nextZ;k&&k.z>=g&&A&&A.z<=E;){if(k.x>=d&&k.x<=x&&k.y>=v&&k.y<=b&&k!==i&&k!==o&&sA(s,c,l,f,u,h,k.x,k.y)&&eh(k.prev,k,k.next)>=0||(k=k.prevZ,A.x>=d&&A.x<=x&&A.y>=v&&A.y<=b&&A!==i&&A!==o&&sA(s,c,l,f,u,h,A.x,A.y)&&eh(A.prev,A,A.next)>=0))return!1;A=A.nextZ}for(;k&&k.z>=g;){if(k.x>=d&&k.x<=x&&k.y>=v&&k.y<=b&&k!==i&&k!==o&&sA(s,c,l,f,u,h,k.x,k.y)&&eh(k.prev,k,k.next)>=0)return!1;k=k.prevZ}for(;A&&A.z<=E;){if(A.x>=d&&A.x<=x&&A.y>=v&&A.y<=b&&A!==i&&A!==o&&sA(s,c,l,f,u,h,A.x,A.y)&&eh(A.prev,A,A.next)>=0)return!1;A=A.nextZ}return!0}function z7t(e,t,r){var n=e;do{var i=n.prev,a=n.next.next;!eF(i,a)&&nFe(i,n,n.next,a)&&sk(i,a)&&sk(a,i)&&(t.push(i.i/r|0),t.push(n.i/r|0),t.push(a.i/r|0),lk(n),lk(n.next),n=e=a),n=n.next}while(n!==e);return J2(n)}function F7t(e,t,r,n,i,a){var o=e;do{for(var s=o.next.next;s!==o.prev;){if(o.i!==s.i&&j7t(o,s)){var l=aFe(o,s);o=J2(o,o.next),l=J2(l,l.next),ok(o,t,r,n,i,a,0),ok(l,t,r,n,i,a,0);return}s=s.next}o=o.next}while(o!==e)}function q7t(e,t,r,n){var i=[],a,o,s,l,u;for(a=0,o=t.length;a=r.next.y&&r.next.y!==r.y){var s=r.x+(i-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(s<=n&&s>a&&(a=s,o=r.x=r.x&&r.x>=u&&n!==r.x&&sA(io.x||r.x===o.x&&U7t(o,r)))&&(o=r,f=h)),r=r.next;while(r!==l);return o}function U7t(e,t){return eh(e.prev,e,t.prev)<0&&eh(t.next,e,e.next)<0}function V7t(e,t,r,n){var i=e;do i.z===0&&(i.z=eY(i.x,i.y,t,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next;while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,H7t(i)}function H7t(e){var t,r,n,i,a,o,s,l,u=1;do{for(r=e,e=null,a=null,o=0;r;){for(o++,n=r,s=0,t=0;t0||l>0&&n;)s!==0&&(l===0||!n||r.z<=n.z)?(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,l--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;r=n}a.nextZ=null,u*=2}while(o>1);return e}function eY(e,t,r,n,i){return e=(e-r)*i|0,t=(t-n)*i|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function G7t(e){var t=e,r=e;do(t.x=(e-o)*(a-s)&&(e-o)*(n-s)>=(r-o)*(t-s)&&(r-o)*(a-s)>=(i-o)*(n-s)}function j7t(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!W7t(e,t)&&(sk(e,t)&&sk(t,e)&&Z7t(e,t)&&(eh(e.prev,e,t.prev)||eh(e,t.prev,t))||eF(e,t)&&eh(e.prev,e,e.next)>0&&eh(t.prev,t,t.next)>0)}function eh(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function eF(e,t){return e.x===t.x&&e.y===t.y}function nFe(e,t,r,n){var i=$z(eh(e,t,r)),a=$z(eh(e,t,n)),o=$z(eh(r,n,e)),s=$z(eh(r,n,t));return!!(i!==a&&o!==s||i===0&&Jz(e,r,t)||a===0&&Jz(e,n,t)||o===0&&Jz(r,e,n)||s===0&&Jz(r,t,n))}function Jz(e,t,r){return t.x<=Math.max(e.x,r.x)&&t.x>=Math.min(e.x,r.x)&&t.y<=Math.max(e.y,r.y)&&t.y>=Math.min(e.y,r.y)}function $z(e){return e>0?1:e<0?-1:0}function W7t(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&nFe(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function sk(e,t){return eh(e.prev,e,e.next)<0?eh(e,t,e.next)>=0&&eh(e,e.prev,t)>=0:eh(e,t,e.prev)<0||eh(e,e.next,t)<0}function Z7t(e,t){var r=e,n=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do r.y>a!=r.next.y>a&&r.next.y!==r.y&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==e);return n}function aFe(e,t){var r=new tY(e.i,e.x,e.y),n=new tY(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function rFe(e,t,r,n){var i=new tY(e,t,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function lk(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function tY(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}Qz.deviation=function(e,t,r,n){var i=t&&t.length,a=i?t[0]*r:e.length,o=Math.abs(rY(e,0,a,r));if(i)for(var s=0,l=t.length;s0&&(n+=e[i-1].length,r.holes.push(n))}return r}});var lFe=ye((k0r,sFe)=>{"use strict";var X7t=j2();sFe.exports=Y7t;function Y7t(e,t,r){if(!e||e.length==null)throw Error("Argument should be an array");t==null&&(t=1),r==null&&(r=X7t(e,t));for(var n=0;n{"use strict";uFe.exports=function(){var e,t;if(typeof WeakMap!="function")return!1;try{e=new WeakMap([[t={},"one"],[{},"two"],[{},"three"]])}catch(r){return!1}return!(String(e)!=="[object WeakMap]"||typeof e.set!="function"||e.set({},1)!==e||typeof e.delete!="function"||typeof e.has!="function"||e.get(t)!=="one")}});var hFe=ye((L0r,fFe)=>{"use strict";fFe.exports=function(){}});var sx=ye((P0r,dFe)=>{"use strict";var K7t=hFe()();dFe.exports=function(e){return e!==K7t&&e!==null}});var nY=ye((I0r,pFe)=>{"use strict";var J7t=Object.create,$7t=Object.getPrototypeOf,vFe={};pFe.exports=function(){var e=Object.setPrototypeOf,t=arguments[0]||J7t;return typeof e!="function"?!1:$7t(e(t(null),vFe))===vFe}});var aY=ye((R0r,gFe)=>{"use strict";var Q7t=sx(),e9t={function:!0,object:!0};gFe.exports=function(e){return Q7t(e)&&e9t[typeof e]||!1}});var i1=ye((D0r,mFe)=>{"use strict";var t9t=sx();mFe.exports=function(e){if(!t9t(e))throw new TypeError("Cannot use null or undefined");return e}});var _Fe=ye((z0r,yFe)=>{"use strict";var oY=Object.create,tF;nY()()||(tF=sY());yFe.exports=function(){var e,t,r;return!tF||tF.level!==1?oY:(e={},t={},r={configurable:!1,enumerable:!1,writable:!0,value:void 0},Object.getOwnPropertyNames(Object.prototype).forEach(function(n){if(n==="__proto__"){t[n]={configurable:!0,enumerable:!1,writable:!0,value:void 0};return}t[n]=r}),Object.defineProperties(e,t),Object.defineProperty(tF,"nullPolyfill",{configurable:!1,enumerable:!1,writable:!1,value:e}),function(n,i){return oY(n===null?e:n,i)})}()});var sY=ye((F0r,xFe)=>{"use strict";var r9t=aY(),i9t=i1(),n9t=Object.prototype.isPrototypeOf,a9t=Object.defineProperty,o9t={configurable:!0,enumerable:!1,writable:!0,value:void 0},rF;rF=function(e,t){if(i9t(e),t===null||r9t(t))return e;throw new TypeError("Prototype must be null or an object")};xFe.exports=function(e){var t,r;return e?(e.level===2?e.set?(r=e.set,t=function(n,i){return r.call(rF(n,i),i),n}):t=function(n,i){return rF(n,i).__proto__=i,n}:t=function n(i,a){var o;return rF(i,a),o=n9t.call(n.nullPolyfill,i),o&&delete n.nullPolyfill.__proto__,a===null&&(a=n.nullPolyfill),i.__proto__=a,o&&a9t(n.nullPolyfill,"__proto__",o9t),i},Object.defineProperty(t,"level",{configurable:!1,enumerable:!1,writable:!1,value:e.level})):null}(function(){var e=Object.create(null),t={},r,n=Object.getOwnPropertyDescriptor(Object.prototype,"__proto__");if(n){try{r=n.set,r.call(e,t)}catch(i){}if(Object.getPrototypeOf(e)===t)return{set:r,level:2}}return e.__proto__=t,Object.getPrototypeOf(e)===t?{level:2}:(e={},e.__proto__=t,Object.getPrototypeOf(e)===t?{level:1}:!1)}());_Fe()});var iF=ye((q0r,bFe)=>{"use strict";bFe.exports=nY()()?Object.setPrototypeOf:sY()});var TFe=ye((O0r,wFe)=>{"use strict";var s9t=aY();wFe.exports=function(e){if(!s9t(e))throw new TypeError(e+" is not an Object");return e}});var SFe=ye((B0r,AFe)=>{"use strict";var l9t=Object.create(null),u9t=Math.random;AFe.exports=function(){var e;do e=u9t().toString(36).slice(2);while(l9t[e]);return e}});var $2=ye((N0r,MFe)=>{"use strict";var c9t=void 0;MFe.exports=function(e){return e!==c9t&&e!==null}});var nF=ye((U0r,EFe)=>{"use strict";var f9t=$2(),h9t={object:!0,function:!0,undefined:!0};EFe.exports=function(e){return f9t(e)?hasOwnProperty.call(h9t,typeof e):!1}});var CFe=ye((V0r,kFe)=>{"use strict";var d9t=nF();kFe.exports=function(e){if(!d9t(e))return!1;try{return e.constructor?e.constructor.prototype===e:!1}catch(t){return!1}}});var PFe=ye((H0r,LFe)=>{"use strict";var v9t=CFe();LFe.exports=function(e){if(typeof e!="function"||!hasOwnProperty.call(e,"length"))return!1;try{if(typeof e.length!="number"||typeof e.call!="function"||typeof e.apply!="function")return!1}catch(t){return!1}return!v9t(e)}});var lY=ye((G0r,IFe)=>{"use strict";var p9t=PFe(),g9t=/^\s*class[\s{/}]/,m9t=Function.prototype.toString;IFe.exports=function(e){return!(!p9t(e)||g9t.test(m9t.call(e)))}});var DFe=ye((j0r,RFe)=>{"use strict";RFe.exports=function(){var e=Object.assign,t;return typeof e!="function"?!1:(t={foo:"raz"},e(t,{bar:"dwa"},{trzy:"trzy"}),t.foo+t.bar+t.trzy==="razdwatrzy")}});var FFe=ye((W0r,zFe)=>{"use strict";zFe.exports=function(){try{return Object.keys("primitive"),!0}catch(e){return!1}}});var OFe=ye((Z0r,qFe)=>{"use strict";var y9t=sx(),_9t=Object.keys;qFe.exports=function(e){return _9t(y9t(e)?Object(e):e)}});var NFe=ye((X0r,BFe)=>{"use strict";BFe.exports=FFe()()?Object.keys:OFe()});var VFe=ye((Y0r,UFe)=>{"use strict";var x9t=NFe(),b9t=i1(),w9t=Math.max;UFe.exports=function(e,t){var r,n,i=w9t(arguments.length,2),a;for(e=Object(b9t(e)),a=function(o){try{e[o]=t[o]}catch(s){r||(r=s)}},n=1;n{"use strict";HFe.exports=DFe()()?Object.assign:VFe()});var uY=ye((J0r,GFe)=>{"use strict";var T9t=sx(),A9t=Array.prototype.forEach,S9t=Object.create,M9t=function(e,t){var r;for(r in e)t[r]=e[r]};GFe.exports=function(e){var t=S9t(null);return A9t.call(arguments,function(r){T9t(r)&&M9t(Object(r),t)}),t}});var WFe=ye(($0r,jFe)=>{"use strict";var cY="razdwatrzy";jFe.exports=function(){return typeof cY.contains!="function"?!1:cY.contains("dwa")===!0&&cY.contains("foo")===!1}});var XFe=ye((Q0r,ZFe)=>{"use strict";var E9t=String.prototype.indexOf;ZFe.exports=function(e){return E9t.call(this,e,arguments[1])>-1}});var fY=ye((egr,YFe)=>{"use strict";YFe.exports=WFe()()?String.prototype.contains:XFe()});var n1=ye((tgr,QFe)=>{"use strict";var oF=$2(),KFe=lY(),JFe=aF(),$Fe=uY(),uk=fY(),k9t=QFe.exports=function(e,t){var r,n,i,a,o;return arguments.length<2||typeof e!="string"?(a=t,t=e,e=null):a=arguments[2],oF(e)?(r=uk.call(e,"c"),n=uk.call(e,"e"),i=uk.call(e,"w")):(r=i=!0,n=!1),o={value:t,configurable:r,enumerable:n,writable:i},a?JFe($Fe(a),o):o};k9t.gs=function(e,t,r){var n,i,a,o;return typeof e!="string"?(a=r,r=t,t=e,e=null):a=arguments[3],oF(t)?KFe(t)?oF(r)?KFe(r)||(a=r,r=void 0):r=void 0:(a=t,t=r=void 0):t=void 0,oF(e)?(n=uk.call(e,"c"),i=uk.call(e,"e")):(n=!0,i=!1),o={get:t,set:r,configurable:n,enumerable:i},a?JFe($Fe(a),o):o}});var ck=ye((rgr,t7e)=>{"use strict";var e7e=Object.prototype.toString,C9t=e7e.call(function(){return arguments}());t7e.exports=function(e){return e7e.call(e)===C9t}});var fk=ye((igr,i7e)=>{"use strict";var r7e=Object.prototype.toString,L9t=r7e.call("");i7e.exports=function(e){return typeof e=="string"||e&&typeof e=="object"&&(e instanceof String||r7e.call(e)===L9t)||!1}});var a7e=ye((ngr,n7e)=>{"use strict";n7e.exports=function(){return typeof globalThis!="object"||!globalThis?!1:globalThis.Array===Array}});var l7e=ye((agr,s7e)=>{var o7e=function(){if(typeof self=="object"&&self)return self;if(typeof window=="object"&&window)return window;throw new Error("Unable to resolve global `this`")};s7e.exports=function(){if(this)return this;try{Object.defineProperty(Object.prototype,"__global__",{get:function(){return this},configurable:!0})}catch(e){return o7e()}try{return __global__||o7e()}finally{delete Object.prototype.__global__}}()});var hk=ye((ogr,u7e)=>{"use strict";u7e.exports=a7e()()?globalThis:l7e()});var f7e=ye((sgr,c7e)=>{"use strict";var P9t=hk(),hY={object:!0,symbol:!0};c7e.exports=function(){var e=P9t.Symbol,t;if(typeof e!="function")return!1;t=e("test symbol");try{String(t)}catch(r){return!1}return!(!hY[typeof e.iterator]||!hY[typeof e.toPrimitive]||!hY[typeof e.toStringTag])}});var d7e=ye((lgr,h7e)=>{"use strict";h7e.exports=function(e){return e?typeof e=="symbol"?!0:!e.constructor||e.constructor.name!=="Symbol"?!1:e[e.constructor.toStringTag]==="Symbol":!1}});var dY=ye((ugr,v7e)=>{"use strict";var I9t=d7e();v7e.exports=function(e){if(!I9t(e))throw new TypeError(e+" is not a symbol");return e}});var _7e=ye((cgr,y7e)=>{"use strict";var p7e=n1(),R9t=Object.create,g7e=Object.defineProperty,D9t=Object.prototype,m7e=R9t(null);y7e.exports=function(e){for(var t=0,r,n;m7e[e+(t||"")];)++t;return e+=t||"",m7e[e]=!0,r="@@"+e,g7e(D9t,r,p7e.gs(null,function(i){n||(n=!0,g7e(this,r,p7e(i)),n=!1)})),r}});var b7e=ye((fgr,x7e)=>{"use strict";var Qg=n1(),wh=hk().Symbol;x7e.exports=function(e){return Object.defineProperties(e,{hasInstance:Qg("",wh&&wh.hasInstance||e("hasInstance")),isConcatSpreadable:Qg("",wh&&wh.isConcatSpreadable||e("isConcatSpreadable")),iterator:Qg("",wh&&wh.iterator||e("iterator")),match:Qg("",wh&&wh.match||e("match")),replace:Qg("",wh&&wh.replace||e("replace")),search:Qg("",wh&&wh.search||e("search")),species:Qg("",wh&&wh.species||e("species")),split:Qg("",wh&&wh.split||e("split")),toPrimitive:Qg("",wh&&wh.toPrimitive||e("toPrimitive")),toStringTag:Qg("",wh&&wh.toStringTag||e("toStringTag")),unscopables:Qg("",wh&&wh.unscopables||e("unscopables"))})}});var A7e=ye((hgr,T7e)=>{"use strict";var w7e=n1(),z9t=dY(),dk=Object.create(null);T7e.exports=function(e){return Object.defineProperties(e,{for:w7e(function(t){return dk[t]?dk[t]:dk[t]=e(String(t))}),keyFor:w7e(function(t){var r;z9t(t);for(r in dk)if(dk[r]===t)return r})})}});var E7e=ye((dgr,M7e)=>{"use strict";var Xm=n1(),vY=dY(),sF=hk().Symbol,F9t=_7e(),q9t=b7e(),O9t=A7e(),B9t=Object.create,pY=Object.defineProperties,lF=Object.defineProperty,Wv,lA,S7e;if(typeof sF=="function")try{String(sF()),S7e=!0}catch(e){}else sF=null;lA=function(t){if(this instanceof lA)throw new TypeError("Symbol is not a constructor");return Wv(t)};M7e.exports=Wv=function e(t){var r;if(this instanceof e)throw new TypeError("Symbol is not a constructor");return S7e?sF(t):(r=B9t(lA.prototype),t=t===void 0?"":String(t),pY(r,{__description__:Xm("",t),__name__:Xm("",F9t(t))}))};q9t(Wv);O9t(Wv);pY(lA.prototype,{constructor:Xm(Wv),toString:Xm("",function(){return this.__name__})});pY(Wv.prototype,{toString:Xm(function(){return"Symbol ("+vY(this).__description__+")"}),valueOf:Xm(function(){return vY(this)})});lF(Wv.prototype,Wv.toPrimitive,Xm("",function(){var e=vY(this);return typeof e=="symbol"?e:e.toString()}));lF(Wv.prototype,Wv.toStringTag,Xm("c","Symbol"));lF(lA.prototype,Wv.toStringTag,Xm("c",Wv.prototype[Wv.toStringTag]));lF(lA.prototype,Wv.toPrimitive,Xm("c",Wv.prototype[Wv.toPrimitive]))});var lx=ye((vgr,k7e)=>{"use strict";k7e.exports=f7e()()?hk().Symbol:E7e()});var L7e=ye((pgr,C7e)=>{"use strict";var N9t=i1();C7e.exports=function(){return N9t(this).length=0,this}});var uA=ye((ggr,P7e)=>{"use strict";P7e.exports=function(e){if(typeof e!="function")throw new TypeError(e+" is not a function");return e}});var R7e=ye((mgr,I7e)=>{"use strict";var U9t=$2(),V9t=nF(),H9t=Object.prototype.toString;I7e.exports=function(e){if(!U9t(e))return null;if(V9t(e)){var t=e.toString;if(typeof t!="function"||t===H9t)return null}try{return""+e}catch(r){return null}}});var z7e=ye((ygr,D7e)=>{"use strict";D7e.exports=function(e){try{return e.toString()}catch(t){try{return String(e)}catch(r){return null}}}});var q7e=ye((_gr,F7e)=>{"use strict";var G9t=z7e(),j9t=/[\n\r\u2028\u2029]/g;F7e.exports=function(e){var t=G9t(e);return t===null?"":(t.length>100&&(t=t.slice(0,99)+"\u2026"),t=t.replace(j9t,function(r){switch(r){case` +`:return"\\n";case"\r":return"\\r";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:throw new Error("Unexpected character")}}),t)}});var gY=ye((xgr,N7e)=>{"use strict";var O7e=$2(),W9t=nF(),Z9t=R7e(),X9t=q7e(),B7e=function(e,t){return e.replace("%v",X9t(t))};N7e.exports=function(e,t,r){if(!W9t(r))throw new TypeError(B7e(t,e));if(!O7e(e)){if("default"in r)return r.default;if(r.isOptional)return null}var n=Z9t(r.errorMessage);throw O7e(n)||(n=t),new TypeError(B7e(n,e))}});var V7e=ye((bgr,U7e)=>{"use strict";var Y9t=gY(),K9t=$2();U7e.exports=function(e){return K9t(e)?e:Y9t(e,"Cannot use %v",arguments[1])}});var G7e=ye((wgr,H7e)=>{"use strict";var J9t=gY(),$9t=lY();H7e.exports=function(e){return $9t(e)?e:J9t(e,"%v is not a plain function",arguments[1])}});var W7e=ye((Tgr,j7e)=>{"use strict";j7e.exports=function(){var e=Array.from,t,r;return typeof e!="function"?!1:(t=["raz","dwa"],r=e(t),!!(r&&r!==t&&r[1]==="dwa"))}});var X7e=ye((Agr,Z7e)=>{"use strict";var Q9t=Object.prototype.toString,eqt=RegExp.prototype.test.bind(/^[object [A-Za-z0-9]*Function]$/);Z7e.exports=function(e){return typeof e=="function"&&eqt(Q9t.call(e))}});var K7e=ye((Sgr,Y7e)=>{"use strict";Y7e.exports=function(){var e=Math.sign;return typeof e!="function"?!1:e(10)===1&&e(-20)===-1}});var $7e=ye((Mgr,J7e)=>{"use strict";J7e.exports=function(e){return e=Number(e),isNaN(e)||e===0?e:e>0?1:-1}});var e9e=ye((Egr,Q7e)=>{"use strict";Q7e.exports=K7e()()?Math.sign:$7e()});var r9e=ye((kgr,t9e)=>{"use strict";var tqt=e9e(),rqt=Math.abs,iqt=Math.floor;t9e.exports=function(e){return isNaN(e)?0:(e=Number(e),e===0||!isFinite(e)?e:tqt(e)*iqt(rqt(e)))}});var n9e=ye((Cgr,i9e)=>{"use strict";var nqt=r9e(),aqt=Math.max;i9e.exports=function(e){return aqt(0,nqt(e))}});var l9e=ye((Lgr,s9e)=>{"use strict";var oqt=lx().iterator,sqt=ck(),lqt=X7e(),uqt=n9e(),a9e=uA(),cqt=i1(),fqt=sx(),hqt=fk(),o9e=Array.isArray,mY=Function.prototype.call,Q2={configurable:!0,enumerable:!0,writable:!0,value:null},yY=Object.defineProperty;s9e.exports=function(e){var t=arguments[1],r=arguments[2],n,i,a,o,s,l,u,c,f,h;if(e=Object(cqt(e)),fqt(t)&&a9e(t),!this||this===Array||!lqt(this)){if(!t){if(sqt(e))return s=e.length,s!==1?Array.apply(null,e):(o=new Array(1),o[0]=e[0],o);if(o9e(e)){for(o=new Array(s=e.length),i=0;i=55296&&l<=56319&&(h+=e[++i])),h=t?mY.call(t,r,h,a):h,n?(Q2.value=h,yY(o,a,Q2)):o[a]=h,++a;s=a}}if(s===void 0)for(s=uqt(e.length),n&&(o=new n(s)),i=0;i{"use strict";u9e.exports=W7e()()?Array.from:l9e()});var h9e=ye((Igr,f9e)=>{"use strict";var dqt=c9e(),vqt=aF(),pqt=i1();f9e.exports=function(e){var t=Object(pqt(e)),r=arguments[1],n=Object(arguments[2]);if(t!==e&&!r)return t;var i={};return r?dqt(r,function(a){(n.ensure||a in e)&&(i[a]=e[a])}):vqt(i,e),i}});var p9e=ye((Rgr,v9e)=>{"use strict";var gqt=uA(),mqt=i1(),yqt=Function.prototype.bind,d9e=Function.prototype.call,_qt=Object.keys,xqt=Object.prototype.propertyIsEnumerable;v9e.exports=function(e,t){return function(r,n){var i,a=arguments[2],o=arguments[3];return r=Object(mqt(r)),gqt(n),i=_qt(r),o&&i.sort(typeof o=="function"?yqt.call(o,r):void 0),typeof e!="function"&&(e=i[e]),d9e.call(e,i,function(s,l){return xqt.call(r,s)?d9e.call(n,a,r[s],s,r,l):t})}}});var m9e=ye((Dgr,g9e)=>{"use strict";g9e.exports=p9e()("forEach")});var _9e=ye((zgr,y9e)=>{"use strict";var bqt=uA(),wqt=m9e(),Tqt=Function.prototype.call;y9e.exports=function(e,t){var r={},n=arguments[2];return bqt(t),wqt(e,function(i,a,o,s){r[a]=Tqt.call(t,n,i,a,o,s)}),r}});var T9e=ye((Fgr,w9e)=>{"use strict";var Aqt=$2(),Sqt=V7e(),x9e=G7e(),Mqt=h9e(),Eqt=uY(),kqt=_9e(),Cqt=Function.prototype.bind,Lqt=Object.defineProperty,Pqt=Object.prototype.hasOwnProperty,b9e;b9e=function(e,t,r){var n=Sqt(t)&&x9e(t.value),i;return i=Mqt(t),delete i.writable,delete i.value,i.get=function(){return!r.overwriteDefinition&&Pqt.call(this,e)?n:(t.value=Cqt.call(n,r.resolveContext?r.resolveContext(this):this),Lqt(this,e,t),this[e])},i};w9e.exports=function(e){var t=Eqt(arguments[1]);return Aqt(t.resolveContext)&&x9e(t.resolveContext),kqt(e,function(r,n){return b9e(n,r,t)})}});var _Y=ye((qgr,E9e)=>{"use strict";var Iqt=L7e(),Rqt=aF(),Dqt=uA(),zqt=i1(),Op=n1(),Fqt=T9e(),A9e=lx(),S9e=Object.defineProperty,M9e=Object.defineProperties,vk;E9e.exports=vk=function(e,t){if(!(this instanceof vk))throw new TypeError("Constructor requires 'new'");M9e(this,{__list__:Op("w",zqt(e)),__context__:Op("w",t),__nextIndex__:Op("w",0)}),t&&(Dqt(t.on),t.on("_add",this._onAdd),t.on("_delete",this._onDelete),t.on("_clear",this._onClear))};delete vk.prototype.constructor;M9e(vk.prototype,Rqt({_next:Op(function(){var e;if(this.__list__){if(this.__redo__&&(e=this.__redo__.shift(),e!==void 0))return e;if(this.__nextIndex__=this.__nextIndex__)){if(++this.__nextIndex__,!this.__redo__){S9e(this,"__redo__",Op("c",[e]));return}this.__redo__.forEach(function(t,r){t>=e&&(this.__redo__[r]=++t)},this),this.__redo__.push(e)}}),_onDelete:Op(function(e){var t;e>=this.__nextIndex__||(--this.__nextIndex__,this.__redo__&&(t=this.__redo__.indexOf(e),t!==-1&&this.__redo__.splice(t,1),this.__redo__.forEach(function(r,n){r>e&&(this.__redo__[n]=--r)},this)))}),_onClear:Op(function(){this.__redo__&&Iqt.call(this.__redo__),this.__nextIndex__=0})})));S9e(vk.prototype,A9e.iterator,Op(function(){return this}))});var I9e=ye((Ogr,P9e)=>{"use strict";var k9e=iF(),C9e=fY(),xY=n1(),qqt=lx(),bY=_Y(),L9e=Object.defineProperty,cA;cA=P9e.exports=function(e,t){if(!(this instanceof cA))throw new TypeError("Constructor requires 'new'");bY.call(this,e),t?C9e.call(t,"key+value")?t="key+value":C9e.call(t,"key")?t="key":t="value":t="value",L9e(this,"__kind__",xY("",t))};k9e&&k9e(cA,bY);delete cA.prototype.constructor;cA.prototype=Object.create(bY.prototype,{_resolve:xY(function(e){return this.__kind__==="value"?this.__list__[e]:this.__kind__==="key+value"?[e,this.__list__[e]]:e})});L9e(cA.prototype,qqt.toStringTag,xY("c","Array Iterator"))});var F9e=ye((Bgr,z9e)=>{"use strict";var R9e=iF(),uF=n1(),Oqt=lx(),wY=_Y(),D9e=Object.defineProperty,fA;fA=z9e.exports=function(e){if(!(this instanceof fA))throw new TypeError("Constructor requires 'new'");e=String(e),wY.call(this,e),D9e(this,"__length__",uF("",e.length))};R9e&&R9e(fA,wY);delete fA.prototype.constructor;fA.prototype=Object.create(wY.prototype,{_next:uF(function(){if(this.__list__){if(this.__nextIndex__=55296&&r<=56319?t+this.__list__[this.__nextIndex__++]:t)})});D9e(fA.prototype,Oqt.toStringTag,uF("c","String Iterator"))});var O9e=ye((Ngr,q9e)=>{"use strict";var Bqt=ck(),Nqt=sx(),Uqt=fk(),Vqt=lx().iterator,Hqt=Array.isArray;q9e.exports=function(e){return Nqt(e)?Hqt(e)||Uqt(e)||Bqt(e)?!0:typeof e[Vqt]=="function":!1}});var N9e=ye((Ugr,B9e)=>{"use strict";var Gqt=O9e();B9e.exports=function(e){if(!Gqt(e))throw new TypeError(e+" is not iterable");return e}});var TY=ye((Vgr,H9e)=>{"use strict";var jqt=ck(),Wqt=fk(),U9e=I9e(),Zqt=F9e(),Xqt=N9e(),V9e=lx().iterator;H9e.exports=function(e){return typeof Xqt(e)[V9e]=="function"?e[V9e]():jqt(e)?new U9e(e):Wqt(e)?new Zqt(e):new U9e(e)}});var j9e=ye((Hgr,G9e)=>{"use strict";var Yqt=ck(),Kqt=uA(),Jqt=fk(),$qt=TY(),Qqt=Array.isArray,AY=Function.prototype.call,eOt=Array.prototype.some;G9e.exports=function(e,t){var r,n=arguments[2],i,a,o,s,l,u,c;if(Qqt(e)||Yqt(e)?r="array":Jqt(e)?r="string":e=$qt(e),Kqt(t),a=function(){o=!0},r==="array"){eOt.call(e,function(f){return AY.call(t,n,f,a),o});return}if(r==="string"){for(l=e.length,s=0;s=55296&&c<=56319&&(u+=e[++s])),AY.call(t,n,u,a),!o);++s);return}for(i=e.next();!i.done;){if(AY.call(t,n,i.value,a),o)return;i=e.next()}}});var Z9e=ye((Ggr,W9e)=>{"use strict";W9e.exports=function(){return typeof WeakMap!="function"?!1:Object.prototype.toString.call(new WeakMap)==="[object WeakMap]"}()});var K9e=ye((jgr,Y9e)=>{"use strict";var tOt=sx(),fF=iF(),cF=TFe(),rOt=i1(),iOt=SFe(),a1=n1(),nOt=TY(),aOt=j9e(),oOt=lx().toStringTag,X9e=Z9e(),sOt=Array.isArray,MY=Object.defineProperty,SY=Object.prototype.hasOwnProperty,lOt=Object.getPrototypeOf,ux;Y9e.exports=ux=function(){var e=arguments[0],t;if(!(this instanceof ux))throw new TypeError("Constructor requires 'new'");return t=X9e&&fF&&WeakMap!==ux?fF(new WeakMap,lOt(this)):this,tOt(e)&&(sOt(e)||(e=nOt(e))),MY(t,"__weakMapData__",a1("c","$weakMap$"+iOt())),e&&aOt(e,function(r){rOt(r),t.set(r[0],r[1])}),t};X9e&&(fF&&fF(ux,WeakMap),ux.prototype=Object.create(WeakMap.prototype,{constructor:a1(ux)}));Object.defineProperties(ux.prototype,{delete:a1(function(e){return SY.call(cF(e),this.__weakMapData__)?(delete e[this.__weakMapData__],!0):!1}),get:a1(function(e){if(SY.call(cF(e),this.__weakMapData__))return e[this.__weakMapData__]}),has:a1(function(e){return SY.call(cF(e),this.__weakMapData__)}),set:a1(function(e,t){return MY(cF(e),this.__weakMapData__,a1("c",t)),this}),toString:a1(function(){return"[object WeakMap]"})});MY(ux.prototype,oOt,a1("c","WeakMap"))});var EY=ye((Wgr,J9e)=>{"use strict";J9e.exports=cFe()()?WeakMap:K9e()});var Q9e=ye((Zgr,$9e)=>{"use strict";$9e.exports=function(e,t,r){if(typeof Array.prototype.findIndex=="function")return e.findIndex(t,r);if(typeof t!="function")throw new TypeError("predicate must be a function");var n=Object(e),i=n.length;if(i===0)return-1;for(var a=0;a{"use strict";var hF=J_(),uOt=j2(),CY=bh(),cOt=Zm(),fOt=W2(),eqe=oFe(),hOt=lFe(),{float32:dOt,fract32:kY}=Xz(),vOt=EY(),tqe=eA(),pOt=Q9e(),gOt=` +precision highp float; + +attribute vec2 aCoord, bCoord, aCoordFract, bCoordFract; +attribute vec4 color; +attribute float lineEnd, lineTop; + +uniform vec2 scale, scaleFract, translate, translateFract; +uniform float thickness, pixelRatio, id, depth; +uniform vec4 viewport; + +varying vec4 fragColor; +varying vec2 tangent; + +vec2 project(vec2 position, vec2 positionFract, vec2 scale, vec2 scaleFract, vec2 translate, vec2 translateFract) { + // the order is important + return position * scale + translate + + positionFract * scale + translateFract + + position * scaleFract + + positionFract * scaleFract; +} + +void main() { + float lineStart = 1. - lineEnd; + float lineOffset = lineTop * 2. - 1.; + + vec2 diff = (bCoord + bCoordFract - aCoord - aCoordFract); + tangent = normalize(diff * scale * viewport.zw); + vec2 normal = vec2(-tangent.y, tangent.x); + + vec2 position = project(aCoord, aCoordFract, scale, scaleFract, translate, translateFract) * lineStart + + project(bCoord, bCoordFract, scale, scaleFract, translate, translateFract) * lineEnd + + + thickness * normal * .5 * lineOffset / viewport.zw; + + gl_Position = vec4(position * 2.0 - 1.0, depth, 1); + + fragColor = color / 255.; +} +`,mOt=` +precision highp float; + +uniform float dashLength, pixelRatio, thickness, opacity, id; +uniform sampler2D dashTexture; + +varying vec4 fragColor; +varying vec2 tangent; + +void main() { + float alpha = 1.; + + float t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25; + float dash = texture2D(dashTexture, vec2(t, .5)).r; + + gl_FragColor = fragColor; + gl_FragColor.a *= alpha * opacity * dash; +} +`,yOt=` +precision highp float; + +attribute vec2 position, positionFract; + +uniform vec4 color; +uniform vec2 scale, scaleFract, translate, translateFract; +uniform float pixelRatio, id; +uniform vec4 viewport; +uniform float opacity; + +varying vec4 fragColor; + +const float MAX_LINES = 256.; + +void main() { + float depth = (MAX_LINES - 4. - id) / (MAX_LINES); + + vec2 position = position * scale + translate + + positionFract * scale + translateFract + + position * scaleFract + + positionFract * scaleFract; + + gl_Position = vec4(position * 2.0 - 1.0, depth, 1); + + fragColor = color / 255.; + fragColor.a *= opacity; +} +`,_Ot=` +precision highp float; +varying vec4 fragColor; + +void main() { + gl_FragColor = fragColor; +} +`,xOt=` +precision highp float; + +attribute vec2 aCoord, bCoord, nextCoord, prevCoord; +attribute vec4 aColor, bColor; +attribute float lineEnd, lineTop; + +uniform vec2 scale, translate; +uniform float thickness, pixelRatio, id, depth; +uniform vec4 viewport; +uniform float miterLimit, miterMode; + +varying vec4 fragColor; +varying vec4 startCutoff, endCutoff; +varying vec2 tangent; +varying vec2 startCoord, endCoord; +varying float enableStartMiter, enableEndMiter; + +const float REVERSE_THRESHOLD = -.875; +const float MIN_DIFF = 1e-6; + +// TODO: possible optimizations: avoid overcalculating all for vertices and calc just one instead +// TODO: precalculate dot products, normalize things beforehead etc. +// TODO: refactor to rectangular algorithm + +float distToLine(vec2 p, vec2 a, vec2 b) { + vec2 diff = b - a; + vec2 perp = normalize(vec2(-diff.y, diff.x)); + return dot(p - a, perp); +} + +bool isNaN( float val ){ + return ( val < 0.0 || 0.0 < val || val == 0.0 ) ? false : true; +} + +void main() { + vec2 aCoord = aCoord, bCoord = bCoord, prevCoord = prevCoord, nextCoord = nextCoord; + + vec2 adjustedScale; + adjustedScale.x = (abs(scale.x) < MIN_DIFF) ? MIN_DIFF : scale.x; + adjustedScale.y = (abs(scale.y) < MIN_DIFF) ? MIN_DIFF : scale.y; + + vec2 scaleRatio = adjustedScale * viewport.zw; + vec2 normalWidth = thickness / scaleRatio; + + float lineStart = 1. - lineEnd; + float lineBot = 1. - lineTop; + + fragColor = (lineStart * aColor + lineEnd * bColor) / 255.; + + if (isNaN(aCoord.x) || isNaN(aCoord.y) || isNaN(bCoord.x) || isNaN(bCoord.y)) return; + + if (aCoord == prevCoord) prevCoord = aCoord + normalize(bCoord - aCoord); + if (bCoord == nextCoord) nextCoord = bCoord - normalize(bCoord - aCoord); + + + vec2 prevDiff = aCoord - prevCoord; + vec2 currDiff = bCoord - aCoord; + vec2 nextDiff = nextCoord - bCoord; + + vec2 prevTangent = normalize(prevDiff * scaleRatio); + vec2 currTangent = normalize(currDiff * scaleRatio); + vec2 nextTangent = normalize(nextDiff * scaleRatio); + + vec2 prevNormal = vec2(-prevTangent.y, prevTangent.x); + vec2 currNormal = vec2(-currTangent.y, currTangent.x); + vec2 nextNormal = vec2(-nextTangent.y, nextTangent.x); + + vec2 startJoinDirection = normalize(prevTangent - currTangent); + vec2 endJoinDirection = normalize(currTangent - nextTangent); + + // collapsed/unidirectional segment cases + // FIXME: there should be more elegant solution + vec2 prevTanDiff = abs(prevTangent - currTangent); + vec2 nextTanDiff = abs(nextTangent - currTangent); + if (max(prevTanDiff.x, prevTanDiff.y) < MIN_DIFF) { + startJoinDirection = currNormal; + } + if (max(nextTanDiff.x, nextTanDiff.y) < MIN_DIFF) { + endJoinDirection = currNormal; + } + if (aCoord == bCoord) { + endJoinDirection = startJoinDirection; + currNormal = prevNormal; + currTangent = prevTangent; + } + + tangent = currTangent; + + //calculate join shifts relative to normals + float startJoinShift = dot(currNormal, startJoinDirection); + float endJoinShift = dot(currNormal, endJoinDirection); + + float startMiterRatio = abs(1. / startJoinShift); + float endMiterRatio = abs(1. / endJoinShift); + + vec2 startJoin = startJoinDirection * startMiterRatio; + vec2 endJoin = endJoinDirection * endMiterRatio; + + vec2 startTopJoin, startBotJoin, endTopJoin, endBotJoin; + startTopJoin = sign(startJoinShift) * startJoin * .5; + startBotJoin = -startTopJoin; + + endTopJoin = sign(endJoinShift) * endJoin * .5; + endBotJoin = -endTopJoin; + + vec2 aTopCoord = aCoord + normalWidth * startTopJoin; + vec2 bTopCoord = bCoord + normalWidth * endTopJoin; + vec2 aBotCoord = aCoord + normalWidth * startBotJoin; + vec2 bBotCoord = bCoord + normalWidth * endBotJoin; + + //miter anti-clipping + float baClipping = distToLine(bCoord, aCoord, aBotCoord) / dot(normalize(normalWidth * endBotJoin), normalize(normalWidth.yx * vec2(-startBotJoin.y, startBotJoin.x))); + float abClipping = distToLine(aCoord, bCoord, bTopCoord) / dot(normalize(normalWidth * startBotJoin), normalize(normalWidth.yx * vec2(-endBotJoin.y, endBotJoin.x))); + + //prevent close to reverse direction switch + bool prevReverse = dot(currTangent, prevTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, prevNormal)) * min(length(prevDiff), length(currDiff)) < length(normalWidth * currNormal); + bool nextReverse = dot(currTangent, nextTangent) <= REVERSE_THRESHOLD && abs(dot(currTangent, nextNormal)) * min(length(nextDiff), length(currDiff)) < length(normalWidth * currNormal); + + if (prevReverse) { + //make join rectangular + vec2 miterShift = normalWidth * startJoinDirection * miterLimit * .5; + float normalAdjust = 1. - min(miterLimit / startMiterRatio, 1.); + aBotCoord = aCoord + miterShift - normalAdjust * normalWidth * currNormal * .5; + aTopCoord = aCoord + miterShift + normalAdjust * normalWidth * currNormal * .5; + } + else if (!nextReverse && baClipping > 0. && baClipping < length(normalWidth * endBotJoin)) { + //handle miter clipping + bTopCoord -= normalWidth * endTopJoin; + bTopCoord += normalize(endTopJoin * normalWidth) * baClipping; + } + + if (nextReverse) { + //make join rectangular + vec2 miterShift = normalWidth * endJoinDirection * miterLimit * .5; + float normalAdjust = 1. - min(miterLimit / endMiterRatio, 1.); + bBotCoord = bCoord + miterShift - normalAdjust * normalWidth * currNormal * .5; + bTopCoord = bCoord + miterShift + normalAdjust * normalWidth * currNormal * .5; + } + else if (!prevReverse && abClipping > 0. && abClipping < length(normalWidth * startBotJoin)) { + //handle miter clipping + aBotCoord -= normalWidth * startBotJoin; + aBotCoord += normalize(startBotJoin * normalWidth) * abClipping; + } + + vec2 aTopPosition = (aTopCoord) * adjustedScale + translate; + vec2 aBotPosition = (aBotCoord) * adjustedScale + translate; + + vec2 bTopPosition = (bTopCoord) * adjustedScale + translate; + vec2 bBotPosition = (bBotCoord) * adjustedScale + translate; + + //position is normalized 0..1 coord on the screen + vec2 position = (aTopPosition * lineTop + aBotPosition * lineBot) * lineStart + (bTopPosition * lineTop + bBotPosition * lineBot) * lineEnd; + + startCoord = aCoord * scaleRatio + translate * viewport.zw + viewport.xy; + endCoord = bCoord * scaleRatio + translate * viewport.zw + viewport.xy; + + gl_Position = vec4(position * 2.0 - 1.0, depth, 1); + + enableStartMiter = step(dot(currTangent, prevTangent), .5); + enableEndMiter = step(dot(currTangent, nextTangent), .5); + + //bevel miter cutoffs + if (miterMode == 1.) { + if (enableStartMiter == 1.) { + vec2 startMiterWidth = vec2(startJoinDirection) * thickness * miterLimit * .5; + startCutoff = vec4(aCoord, aCoord); + startCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio; + startCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw; + startCutoff += viewport.xyxy; + startCutoff += startMiterWidth.xyxy; + } + + if (enableEndMiter == 1.) { + vec2 endMiterWidth = vec2(endJoinDirection) * thickness * miterLimit * .5; + endCutoff = vec4(bCoord, bCoord); + endCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio; + endCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw; + endCutoff += viewport.xyxy; + endCutoff += endMiterWidth.xyxy; + } + } + + //round miter cutoffs + else if (miterMode == 2.) { + if (enableStartMiter == 1.) { + vec2 startMiterWidth = vec2(startJoinDirection) * thickness * abs(dot(startJoinDirection, currNormal)) * .5; + startCutoff = vec4(aCoord, aCoord); + startCutoff.zw += vec2(-startJoinDirection.y, startJoinDirection.x) / scaleRatio; + startCutoff = startCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw; + startCutoff += viewport.xyxy; + startCutoff += startMiterWidth.xyxy; + } + + if (enableEndMiter == 1.) { + vec2 endMiterWidth = vec2(endJoinDirection) * thickness * abs(dot(endJoinDirection, currNormal)) * .5; + endCutoff = vec4(bCoord, bCoord); + endCutoff.zw += vec2(-endJoinDirection.y, endJoinDirection.x) / scaleRatio; + endCutoff = endCutoff * scaleRatio.xyxy + translate.xyxy * viewport.zwzw; + endCutoff += viewport.xyxy; + endCutoff += endMiterWidth.xyxy; + } + } +} +`,bOt=` +precision highp float; + +uniform float dashLength, pixelRatio, thickness, opacity, id, miterMode; +uniform sampler2D dashTexture; + +varying vec4 fragColor; +varying vec2 tangent; +varying vec4 startCutoff, endCutoff; +varying vec2 startCoord, endCoord; +varying float enableStartMiter, enableEndMiter; + +float distToLine(vec2 p, vec2 a, vec2 b) { + vec2 diff = b - a; + vec2 perp = normalize(vec2(-diff.y, diff.x)); + return dot(p - a, perp); +} + +void main() { + float alpha = 1., distToStart, distToEnd; + float cutoff = thickness * .5; + + //bevel miter + if (miterMode == 1.) { + if (enableStartMiter == 1.) { + distToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw); + if (distToStart < -1.) { + discard; + return; + } + alpha *= min(max(distToStart + 1., 0.), 1.); + } + + if (enableEndMiter == 1.) { + distToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw); + if (distToEnd < -1.) { + discard; + return; + } + alpha *= min(max(distToEnd + 1., 0.), 1.); + } + } + + // round miter + else if (miterMode == 2.) { + if (enableStartMiter == 1.) { + distToStart = distToLine(gl_FragCoord.xy, startCutoff.xy, startCutoff.zw); + if (distToStart < 0.) { + float radius = length(gl_FragCoord.xy - startCoord); + + if(radius > cutoff + .5) { + discard; + return; + } + + alpha -= smoothstep(cutoff - .5, cutoff + .5, radius); + } + } + + if (enableEndMiter == 1.) { + distToEnd = distToLine(gl_FragCoord.xy, endCutoff.xy, endCutoff.zw); + if (distToEnd < 0.) { + float radius = length(gl_FragCoord.xy - endCoord); + + if(radius > cutoff + .5) { + discard; + return; + } + + alpha -= smoothstep(cutoff - .5, cutoff + .5, radius); + } + } + } + + float t = fract(dot(tangent, gl_FragCoord.xy) / dashLength) * .5 + .25; + float dash = texture2D(dashTexture, vec2(t, .5)).r; + + gl_FragColor = fragColor; + gl_FragColor.a *= alpha * opacity * dash; +} +`;rqe.exports=uc;function uc(e,t){if(!(this instanceof uc))return new uc(e,t);if(typeof e=="function"?(t||(t={}),t.regl=e):t=e,t.length&&(t.positions=t),e=t.regl,!e.hasExtension("ANGLE_instanced_arrays"))throw Error("regl-error2d: `ANGLE_instanced_arrays` extension should be enabled");this.gl=e._gl,this.regl=e,this.passes=[],this.shaders=uc.shaders.has(e)?uc.shaders.get(e):uc.shaders.set(e,uc.createShaders(e)).get(e),this.update(t)}uc.dashMult=2;uc.maxPatternLength=256;uc.precisionThreshold=3e6;uc.maxPoints=1e4;uc.maxLines=2048;uc.shaders=new vOt;uc.createShaders=function(e){let t=e.buffer({usage:"static",type:"float",data:[0,1,0,0,1,1,1,0]}),r={primitive:"triangle strip",instances:e.prop("count"),count:4,offset:0,uniforms:{miterMode:(o,s)=>s.join==="round"?2:1,miterLimit:e.prop("miterLimit"),scale:e.prop("scale"),scaleFract:e.prop("scaleFract"),translateFract:e.prop("translateFract"),translate:e.prop("translate"),thickness:e.prop("thickness"),dashTexture:e.prop("dashTexture"),opacity:e.prop("opacity"),pixelRatio:e.context("pixelRatio"),id:e.prop("id"),dashLength:e.prop("dashLength"),viewport:(o,s)=>[s.viewport.x,s.viewport.y,o.viewportWidth,o.viewportHeight],depth:e.prop("depth")},blend:{enable:!0,color:[0,0,0,0],equation:{rgb:"add",alpha:"add"},func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},depth:{enable:(o,s)=>!s.overlay},stencil:{enable:!1},scissor:{enable:!0,box:e.prop("viewport")},viewport:e.prop("viewport")},n=e(CY({vert:gOt,frag:mOt,attributes:{lineEnd:{buffer:t,divisor:0,stride:8,offset:0},lineTop:{buffer:t,divisor:0,stride:8,offset:4},aCoord:{buffer:e.prop("positionBuffer"),stride:8,offset:8,divisor:1},bCoord:{buffer:e.prop("positionBuffer"),stride:8,offset:16,divisor:1},aCoordFract:{buffer:e.prop("positionFractBuffer"),stride:8,offset:8,divisor:1},bCoordFract:{buffer:e.prop("positionFractBuffer"),stride:8,offset:16,divisor:1},color:{buffer:e.prop("colorBuffer"),stride:4,offset:0,divisor:1}}},r)),i;try{i=e(CY({cull:{enable:!0,face:"back"},vert:xOt,frag:bOt,attributes:{lineEnd:{buffer:t,divisor:0,stride:8,offset:0},lineTop:{buffer:t,divisor:0,stride:8,offset:4},aColor:{buffer:e.prop("colorBuffer"),stride:4,offset:0,divisor:1},bColor:{buffer:e.prop("colorBuffer"),stride:4,offset:4,divisor:1},prevCoord:{buffer:e.prop("positionBuffer"),stride:8,offset:0,divisor:1},aCoord:{buffer:e.prop("positionBuffer"),stride:8,offset:8,divisor:1},bCoord:{buffer:e.prop("positionBuffer"),stride:8,offset:16,divisor:1},nextCoord:{buffer:e.prop("positionBuffer"),stride:8,offset:24,divisor:1}}},r))}catch(o){i=n}return{fill:e({primitive:"triangle",elements:(o,s)=>s.triangles,offset:0,vert:yOt,frag:_Ot,uniforms:{scale:e.prop("scale"),color:e.prop("fill"),scaleFract:e.prop("scaleFract"),translateFract:e.prop("translateFract"),translate:e.prop("translate"),opacity:e.prop("opacity"),pixelRatio:e.context("pixelRatio"),id:e.prop("id"),viewport:(o,s)=>[s.viewport.x,s.viewport.y,o.viewportWidth,o.viewportHeight]},attributes:{position:{buffer:e.prop("positionBuffer"),stride:8,offset:8},positionFract:{buffer:e.prop("positionFractBuffer"),stride:8,offset:8}},blend:r.blend,depth:{enable:!1},scissor:r.scissor,stencil:r.stencil,viewport:r.viewport}),rect:n,miter:i}};uc.defaults={dashes:null,join:"miter",miterLimit:1,thickness:10,cap:"square",color:"black",opacity:1,overlay:!1,viewport:null,range:null,close:!1,fill:null};uc.prototype.render=function(...e){e.length&&this.update(...e),this.draw()};uc.prototype.draw=function(...e){return(e.length?e:this.passes).forEach((t,r)=>{if(t&&Array.isArray(t))return this.draw(...t);typeof t=="number"&&(t=this.passes[t]),t&&t.count>1&&t.opacity&&(this.regl._refresh(),t.fill&&t.triangles&&t.triangles.length>2&&this.shaders.fill(t),t.thickness&&(t.scale[0]*t.viewport.width>uc.precisionThreshold||t.scale[1]*t.viewport.height>uc.precisionThreshold?this.shaders.rect(t):t.join==="rect"||!t.join&&(t.thickness<=2||t.count>=uc.maxPoints)?this.shaders.rect(t):this.shaders.miter(t)))}),this};uc.prototype.update=function(e){if(!e)return;e.length!=null?typeof e[0]=="number"&&(e=[{positions:e}]):Array.isArray(e)||(e=[e]);let{regl:t,gl:r}=this;if(e.forEach((i,a)=>{let o=this.passes[a];if(i!==void 0){if(i===null){this.passes[a]=null;return}if(typeof i[0]=="number"&&(i={positions:i}),i=cOt(i,{positions:"positions points data coords",thickness:"thickness lineWidth lineWidths line-width linewidth width stroke-width strokewidth strokeWidth",join:"lineJoin linejoin join type mode",miterLimit:"miterlimit miterLimit",dashes:"dash dashes dasharray dash-array dashArray",color:"color colour stroke colors colours stroke-color strokeColor",fill:"fill fill-color fillColor",opacity:"alpha opacity",overlay:"overlay crease overlap intersect",close:"closed close closed-path closePath",range:"range dataBox",viewport:"viewport viewBox",hole:"holes hole hollow",splitNull:"splitNull"}),o||(this.passes[a]=o={id:a,scale:null,scaleFract:null,translate:null,translateFract:null,count:0,hole:[],depth:0,dashLength:1,dashTexture:t.texture({channels:1,data:new Uint8Array([255]),width:1,height:1,mag:"linear",min:"linear"}),colorBuffer:t.buffer({usage:"dynamic",type:"uint8",data:new Uint8Array}),positionBuffer:t.buffer({usage:"dynamic",type:"float",data:new Uint8Array}),positionFractBuffer:t.buffer({usage:"dynamic",type:"float",data:new Uint8Array})},i=CY({},uc.defaults,i)),i.thickness!=null&&(o.thickness=parseFloat(i.thickness)),i.opacity!=null&&(o.opacity=parseFloat(i.opacity)),i.miterLimit!=null&&(o.miterLimit=parseFloat(i.miterLimit)),i.overlay!=null&&(o.overlay=!!i.overlay,aL-_),E=[],k=0,A=o.hole!=null?o.hole[0]:null;if(A!=null){let L=pOt(g,_=>_>=A);g=g.slice(0,L),g.push(A)}for(let L=0;Lp-A+(g[L]-k)),M=eqe(_,C);M=M.map(p=>p+k+(p+k{e.colorBuffer.destroy(),e.positionBuffer.destroy(),e.dashTexture.destroy()}),this.passes.length=0,this}});var sqe=ye((Ygr,oqe)=>{"use strict";var wOt=j2(),TOt=J_(),AOt=JX(),SOt=Zm(),iqe=bh(),nqe=W2(),{float32:MOt,fract32:PY}=Xz();oqe.exports=EOt;var aqe=[[1,0,0,1,0,0],[1,0,0,-1,0,0],[-1,0,0,-1,0,0],[-1,0,0,-1,0,0],[-1,0,0,1,0,0],[1,0,0,1,0,0],[1,0,-1,0,0,1],[1,0,-1,0,0,-1],[1,0,1,0,0,-1],[1,0,1,0,0,-1],[1,0,1,0,0,1],[1,0,-1,0,0,1],[-1,0,-1,0,0,1],[-1,0,-1,0,0,-1],[-1,0,1,0,0,-1],[-1,0,1,0,0,-1],[-1,0,1,0,0,1],[-1,0,-1,0,0,1],[0,1,1,0,0,0],[0,1,-1,0,0,0],[0,-1,-1,0,0,0],[0,-1,-1,0,0,0],[0,1,1,0,0,0],[0,-1,1,0,0,0],[0,1,0,-1,1,0],[0,1,0,-1,-1,0],[0,1,0,1,-1,0],[0,1,0,1,1,0],[0,1,0,-1,1,0],[0,1,0,1,-1,0],[0,-1,0,-1,1,0],[0,-1,0,-1,-1,0],[0,-1,0,1,-1,0],[0,-1,0,1,1,0],[0,-1,0,-1,1,0],[0,-1,0,1,-1,0]];function EOt(e,t){if(typeof e=="function"?(t||(t={}),t.regl=e):t=e,t.length&&(t.positions=t),e=t.regl,!e.hasExtension("ANGLE_instanced_arrays"))throw Error("regl-error2d: `ANGLE_instanced_arrays` extension should be enabled");let r=e._gl,n,i,a,o,s,l,u={color:"black",capSize:5,lineWidth:1,opacity:1,viewport:null,range:null,offset:0,count:0,bounds:null,positions:[],errors:[]},c=[];return o=e.buffer({usage:"dynamic",type:"uint8",data:new Uint8Array(0)}),i=e.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),a=e.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),s=e.buffer({usage:"dynamic",type:"float",data:new Uint8Array(0)}),l=e.buffer({usage:"static",type:"float",data:aqe}),v(t),n=e({vert:` + precision highp float; + + attribute vec2 position, positionFract; + attribute vec4 error; + attribute vec4 color; + + attribute vec2 direction, lineOffset, capOffset; + + uniform vec4 viewport; + uniform float lineWidth, capSize; + uniform vec2 scale, scaleFract, translate, translateFract; + + varying vec4 fragColor; + + void main() { + fragColor = color / 255.; + + vec2 pixelOffset = lineWidth * lineOffset + (capSize + lineWidth) * capOffset; + + vec2 dxy = -step(.5, direction.xy) * error.xz + step(direction.xy, vec2(-.5)) * error.yw; + + vec2 position = position + dxy; + + vec2 pos = (position + translate) * scale + + (positionFract + translateFract) * scale + + (position + translate) * scaleFract + + (positionFract + translateFract) * scaleFract; + + pos += pixelOffset / viewport.zw; + + gl_Position = vec4(pos * 2. - 1., 0, 1); + } + `,frag:` + precision highp float; + + varying vec4 fragColor; + + uniform float opacity; + + void main() { + gl_FragColor = fragColor; + gl_FragColor.a *= opacity; + } + `,uniforms:{range:e.prop("range"),lineWidth:e.prop("lineWidth"),capSize:e.prop("capSize"),opacity:e.prop("opacity"),scale:e.prop("scale"),translate:e.prop("translate"),scaleFract:e.prop("scaleFract"),translateFract:e.prop("translateFract"),viewport:(b,g)=>[g.viewport.x,g.viewport.y,b.viewportWidth,b.viewportHeight]},attributes:{color:{buffer:o,offset:(b,g)=>g.offset*4,divisor:1},position:{buffer:i,offset:(b,g)=>g.offset*8,divisor:1},positionFract:{buffer:a,offset:(b,g)=>g.offset*8,divisor:1},error:{buffer:s,offset:(b,g)=>g.offset*16,divisor:1},direction:{buffer:l,stride:24,offset:0},lineOffset:{buffer:l,stride:24,offset:8},capOffset:{buffer:l,stride:24,offset:16}},primitive:"triangles",blend:{enable:!0,color:[0,0,0,0],equation:{rgb:"add",alpha:"add"},func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},depth:{enable:!1},scissor:{enable:!0,box:e.prop("viewport")},viewport:e.prop("viewport"),stencil:!1,instances:e.prop("count"),count:aqe.length}),iqe(f,{update:v,draw:h,destroy:x,regl:e,gl:r,canvas:r.canvas,groups:c}),f;function f(b){b?v(b):b===null&&x(),h()}function h(b){if(typeof b=="number")return d(b);b&&!Array.isArray(b)&&(b=[b]),e._refresh(),c.forEach((g,E)=>{if(g){if(b&&(b[E]?g.draw=!0:g.draw=!1),!g.draw){g.draw=!0;return}d(E)}})}function d(b){typeof b=="number"&&(b=c[b]),b!=null&&b&&b.count&&b.color&&b.opacity&&b.positions&&b.positions.length>1&&(b.scaleRatio=[b.scale[0]*b.viewport.width,b.scale[1]*b.viewport.height],n(b),b.after&&b.after(b))}function v(b){if(!b)return;b.length!=null?typeof b[0]=="number"&&(b=[{positions:b}]):Array.isArray(b)||(b=[b]);let g=0,E=0;if(f.groups=c=b.map((L,_)=>{let C=c[_];if(L)typeof L=="function"?L={after:L}:typeof L[0]=="number"&&(L={positions:L});else return C;return L=SOt(L,{color:"color colors fill",capSize:"capSize cap capsize cap-size",lineWidth:"lineWidth line-width width line thickness",opacity:"opacity alpha",range:"range dataBox",viewport:"viewport viewBox",errors:"errors error",positions:"positions position data points"}),C||(c[_]=C={id:_,scale:null,translate:null,scaleFract:null,translateFract:null,draw:!0},L=iqe({},u,L)),AOt(C,L,[{lineWidth:M=>+M*.5,capSize:M=>+M*.5,opacity:parseFloat,errors:M=>(M=nqe(M),E+=M.length,M),positions:(M,p)=>(M=nqe(M,"float64"),p.count=Math.floor(M.length/2),p.bounds=wOt(M,2),p.offset=g,g+=p.count,M)},{color:(M,p)=>{let P=p.count;if(M||(M="transparent"),!Array.isArray(M)||typeof M[0]=="number"){let F=M;M=Array(P);for(let q=0;q{let T=p.bounds;return M||(M=T),p.scale=[1/(M[2]-M[0]),1/(M[3]-M[1])],p.translate=[-M[0],-M[1]],p.scaleFract=PY(p.scale),p.translateFract=PY(p.translate),M},viewport:M=>{let p;return Array.isArray(M)?p={x:M[0],y:M[1],width:M[2]-M[0],height:M[3]-M[1]}:M?(p={x:M.x||M.left||0,y:M.y||M.top||0},M.right?p.width=M.right-p.x:p.width=M.w||M.width||0,M.bottom?p.height=M.bottom-p.y:p.height=M.h||M.height||0):p={x:0,y:0,width:r.drawingBufferWidth,height:r.drawingBufferHeight},p}}]),C}),g||E){let L=c.reduce((p,P,T)=>p+(P?P.count:0),0),_=new Float64Array(L*2),C=new Uint8Array(L*4),M=new Float32Array(L*4);c.forEach((p,P)=>{if(!p)return;let{positions:T,count:F,offset:q,color:V,errors:H}=p;F&&(C.set(V,q*4),M.set(H,q*4),_.set(T,q*2))});var k=MOt(_);i(k);var A=PY(_,k);a(A),o(C),s(M)}}function x(){i.destroy(),a.destroy(),o.destroy(),s.destroy(),l.destroy()}}});var cqe=ye((Kgr,uqe)=>{var lqe=/[\'\"]/;uqe.exports=function(t){return t?(lqe.test(t.charAt(0))&&(t=t.substr(1)),lqe.test(t.charAt(t.length-1))&&(t=t.substr(0,t.length-1)),t):""}});var IY=ye(()=>{});var RY=ye(()=>{});var DY=ye(()=>{});var zY=ye(()=>{});var FY=ye(()=>{});var vqe=ye((smr,dqe)=>{"use strict";function fqe(e,t){if(typeof e!="string")return[e];var r=[e];typeof t=="string"||Array.isArray(t)?t={brackets:t}:t||(t={});var n=t.brackets?Array.isArray(t.brackets)?t.brackets:[t.brackets]:["{}","[]","()"],i=t.escape||"___",a=!!t.flat;n.forEach(function(l){var u=new RegExp(["\\",l[0],"[^\\",l[0],"\\",l[1],"]*\\",l[1]].join("")),c=[];function f(h,d,v){var x=r.push(h.slice(l[0].length,-l[1].length))-1;return c.push(x),i+x+i}r.forEach(function(h,d){for(var v,x=0;h!=v;)if(v=h,h=h.replace(u,f),x++>1e4)throw Error("References have circular dependency. Please, check them.");r[d]=h}),c=c.reverse(),r=r.map(function(h){return c.forEach(function(d){h=h.replace(new RegExp("(\\"+i+d+"\\"+i+")","g"),l[0]+"$1"+l[1])}),h})});var o=new RegExp("\\"+i+"([0-9]+)\\"+i);function s(l,u,c){for(var f=[],h,d=0;h=o.exec(l);){if(d++>1e4)throw Error("Circular references in parenthesis");f.push(l.slice(0,h.index)),f.push(s(u[h[1]],u)),l=l.slice(h.index+h[0].length)}return f.push(l),f}return a?r:s(r[0],r)}function hqe(e,t){if(t&&t.flat){var r=t&&t.escape||"___",n=e[0],i;if(!n)return"";for(var a=new RegExp("\\"+r+"([0-9]+)\\"+r),o=0;n!=i;){if(o++>1e4)throw Error("Circular references in "+e);i=n,n=n.replace(a,s)}return n}return e.reduce(function l(u,c){return Array.isArray(c)&&(c=c.reduce(l,"")),u+c},"");function s(l,u){if(e[u]==null)throw Error("Reference "+u+"is undefined");return e[u]}}function qY(e,t){return Array.isArray(e)?hqe(e,t):fqe(e,t)}qY.parse=fqe;qY.stringify=hqe;dqe.exports=qY});var mqe=ye((lmr,gqe)=>{"use strict";var pqe=vqe();gqe.exports=function(t,r,n){if(t==null)throw Error("First argument should be a string");if(r==null)throw Error("Separator should be a string or a RegExp");n?(typeof n=="string"||Array.isArray(n))&&(n={ignore:n}):n={},n.escape==null&&(n.escape=!0),n.ignore==null?n.ignore=["[]","()","{}","<>",'""',"''","``","\u201C\u201D","\xAB\xBB"]:(typeof n.ignore=="string"&&(n.ignore=[n.ignore]),n.ignore=n.ignore.map(function(f){return f.length===1&&(f=f+f),f}));var i=pqe.parse(t,{flat:!0,brackets:n.ignore}),a=i[0],o=a.split(r);if(n.escape){for(var s=[],l=0;l{});var OY=ye((fmr,_qe)=>{"use strict";var kOt=yqe();_qe.exports={isSize:function(t){return/^[\d\.]/.test(t)||t.indexOf("/")!==-1||kOt.indexOf(t)!==-1}}});var Tqe=ye((hmr,wqe)=>{"use strict";var COt=cqe(),LOt=IY(),POt=RY(),IOt=DY(),ROt=zY(),DOt=FY(),BY=mqe(),zOt=OY().isSize;wqe.exports=bqe;var pk=bqe.cache={};function bqe(e){if(typeof e!="string")throw new Error("Font argument must be a string.");if(pk[e])return pk[e];if(e==="")throw new Error("Cannot parse an empty string.");if(POt.indexOf(e)!==-1)return pk[e]={system:e};for(var t={style:"normal",variant:"normal",weight:"normal",stretch:"normal",lineHeight:"normal",size:"1rem",family:["serif"]},r=BY(e,/\s+/),n;n=r.shift();){if(LOt.indexOf(n)!==-1)return["style","variant","weight","stretch"].forEach(function(a){t[a]=n}),pk[e]=t;if(ROt.indexOf(n)!==-1){t.style=n;continue}if(n==="normal"||n==="small-caps"){t.variant=n;continue}if(DOt.indexOf(n)!==-1){t.stretch=n;continue}if(IOt.indexOf(n)!==-1){t.weight=n;continue}if(zOt(n)){var i=BY(n,"/");if(t.size=i[0],i[1]!=null?t.lineHeight=xqe(i[1]):r[0]==="/"&&(r.shift(),t.lineHeight=xqe(r.shift())),!r.length)throw new Error("Missing required font-family.");return t.family=BY(r.join(" "),/\s*,\s*/).map(COt),pk[e]=t}throw new Error("Unknown or unsupported font token: "+n)}throw new Error("Missing required font-size.")}function xqe(e){var t=parseFloat(e);return t.toString()===e?t:e}});var UY=ye((dmr,Aqe)=>{"use strict";var FOt=Zm(),qOt=OY().isSize,OOt=mk(IY()),BOt=mk(RY()),NOt=mk(DY()),UOt=mk(zY()),VOt=mk(FY()),HOt={normal:1,"small-caps":1},GOt={serif:1,"sans-serif":1,monospace:1,cursive:1,fantasy:1,"system-ui":1},NY={style:"normal",variant:"normal",weight:"normal",stretch:"normal",size:"1rem",lineHeight:"normal",family:"serif"};Aqe.exports=function(t){if(t=FOt(t,{style:"style fontstyle fontStyle font-style slope distinction",variant:"variant font-variant fontVariant fontvariant var capitalization",weight:"weight w font-weight fontWeight fontweight",stretch:"stretch font-stretch fontStretch fontstretch width",size:"size s font-size fontSize fontsize height em emSize",lineHeight:"lh line-height lineHeight lineheight leading",family:"font family fontFamily font-family fontfamily type typeface face",system:"system reserved default global"}),t.system)return t.system&&gk(t.system,BOt),t.system;if(gk(t.style,UOt),gk(t.variant,HOt),gk(t.weight,NOt),gk(t.stretch,VOt),t.size==null&&(t.size=NY.size),typeof t.size=="number"&&(t.size+="px"),!qOt)throw Error("Bad size value `"+t.size+"`");t.family||(t.family=NY.family),Array.isArray(t.family)&&(t.family.length||(t.family=[NY.family]),t.family=t.family.map(function(n){return GOt[n]?n:'"'+n+'"'}).join(", "));var r=[];return r.push(t.style),t.variant!==t.style&&r.push(t.variant),t.weight!==t.variant&&t.weight!==t.style&&r.push(t.weight),t.stretch!==t.weight&&t.stretch!==t.variant&&t.stretch!==t.style&&r.push(t.stretch),r.push(t.size+(t.lineHeight==null||t.lineHeight==="normal"||t.lineHeight+""=="1"?"":"/"+t.lineHeight)),r.push(t.family),r.filter(Boolean).join(" ")};function gk(e,t){if(e&&!t[e]&&!OOt[e])throw Error("Unknown keyword `"+e+"`");return e}function mk(e){for(var t={},r=0;r{"use strict";Sqe.exports={parse:Tqe(),stringify:UY()}});var GY=ye((VY,HY)=>{(function(e,t){typeof VY=="object"&&typeof HY!="undefined"?HY.exports=t():typeof define=="function"&&define.amd?define(t):e.createREGL=t()})(VY,function(){"use strict";var e=function(At,Er){for(var Wr=Object.keys(Er),wi=0;wi1&&Er===Wr&&(Er==='"'||Er==="'"))return['"'+o(At.substr(1,At.length-2))+'"'];var wi=/\[(false|true|null|\d+|'[^']*'|"[^"]*")\]/.exec(At);if(wi)return s(At.substr(0,wi.index)).concat(s(wi[1])).concat(s(At.substr(wi.index+wi[0].length)));var Ui=At.split(".");if(Ui.length===1)return['"'+o(At)+'"'];for(var Oi=[],Bi=0;Bi65535)<<4,At>>>=Er,Wr=(At>255)<<3,At>>>=Wr,Er|=Wr,Wr=(At>15)<<2,At>>>=Wr,Er|=Wr,Wr=(At>3)<<1,At>>>=Wr,Er|=Wr,Er|At>>1}function N(){var At=M(8,function(){return[]});function Er(Oi){var Bi=X(Oi),cn=At[G(Bi)>>2];return cn.length>0?cn.pop():new ArrayBuffer(Bi)}function Wr(Oi){At[G(Oi.byteLength)>>2].push(Oi)}function wi(Oi,Bi){var cn=null;switch(Oi){case p:cn=new Int8Array(Er(Bi),0,Bi);break;case P:cn=new Uint8Array(Er(Bi),0,Bi);break;case T:cn=new Int16Array(Er(2*Bi),0,Bi);break;case F:cn=new Uint16Array(Er(2*Bi),0,Bi);break;case q:cn=new Int32Array(Er(4*Bi),0,Bi);break;case V:cn=new Uint32Array(Er(4*Bi),0,Bi);break;case H:cn=new Float32Array(Er(4*Bi),0,Bi);break;default:return null}return cn.length!==Bi?cn.subarray(0,Bi):cn}function Ui(Oi){Wr(Oi.buffer)}return{alloc:Er,free:Wr,allocType:wi,freeType:Ui}}var W=N();W.zero=N();var re=3408,ae=3410,_e=3411,Me=3412,ke=3413,ge=3414,ie=3415,Te=33901,Ee=33902,Ae=3379,ze=3386,Ce=34921,me=36347,Re=36348,ce=35661,Ge=35660,nt=34930,ct=36349,qt=34076,rt=34024,ot=7936,Rt=7937,kt=7938,Ct=35724,Yt=34047,xr=36063,er=34852,Ke=3553,xt=34067,bt=34069,Lt=33984,St=6408,Et=5126,dt=5121,Ht=36160,$t=36053,fr=36064,_r=16384,Br=function(At,Er){var Wr=1;Er.ext_texture_filter_anisotropic&&(Wr=At.getParameter(Yt));var wi=1,Ui=1;Er.webgl_draw_buffers&&(wi=At.getParameter(er),Ui=At.getParameter(xr));var Oi=!!Er.oes_texture_float;if(Oi){var Bi=At.createTexture();At.bindTexture(Ke,Bi),At.texImage2D(Ke,0,St,1,1,0,St,Et,null);var cn=At.createFramebuffer();if(At.bindFramebuffer(Ht,cn),At.framebufferTexture2D(Ht,fr,Ke,Bi,0),At.bindTexture(Ke,null),At.checkFramebufferStatus(Ht)!==$t)Oi=!1;else{At.viewport(0,0,1,1),At.clearColor(1,0,0,1),At.clear(_r);var On=W.allocType(Et,4);At.readPixels(0,0,1,1,St,Et,On),At.getError()?Oi=!1:(At.deleteFramebuffer(cn),At.deleteTexture(Bi),Oi=On[0]===1),W.freeType(On)}}var Bn=typeof navigator!="undefined"&&(/MSIE/.test(navigator.userAgent)||/Trident\//.test(navigator.appVersion)||/Edge/.test(navigator.userAgent)),yn=!0;if(!Bn){var to=At.createTexture(),Rn=W.allocType(dt,36);At.activeTexture(Lt),At.bindTexture(xt,to),At.texImage2D(bt,0,St,3,3,0,St,dt,Rn),W.freeType(Rn),At.bindTexture(xt,null),At.deleteTexture(to),yn=!At.getError()}return{colorBits:[At.getParameter(ae),At.getParameter(_e),At.getParameter(Me),At.getParameter(ke)],depthBits:At.getParameter(ge),stencilBits:At.getParameter(ie),subpixelBits:At.getParameter(re),extensions:Object.keys(Er).filter(function(Dn){return!!Er[Dn]}),maxAnisotropic:Wr,maxDrawbuffers:wi,maxColorAttachments:Ui,pointSizeDims:At.getParameter(Te),lineWidthDims:At.getParameter(Ee),maxViewportDims:At.getParameter(ze),maxCombinedTextureUnits:At.getParameter(ce),maxCubeMapSize:At.getParameter(qt),maxRenderbufferSize:At.getParameter(rt),maxTextureUnits:At.getParameter(nt),maxTextureSize:At.getParameter(Ae),maxAttributes:At.getParameter(Ce),maxVertexUniforms:At.getParameter(me),maxVertexTextureUnits:At.getParameter(Ge),maxVaryingVectors:At.getParameter(Re),maxFragmentUniforms:At.getParameter(ct),glsl:At.getParameter(Ct),renderer:At.getParameter(Rt),vendor:At.getParameter(ot),version:At.getParameter(kt),readFloat:Oi,npotTextureCube:yn}},Or=function(At){return At instanceof Uint8Array||At instanceof Uint16Array||At instanceof Uint32Array||At instanceof Int8Array||At instanceof Int16Array||At instanceof Int32Array||At instanceof Float32Array||At instanceof Float64Array||At instanceof Uint8ClampedArray};function Nr(At){return!!At&&typeof At=="object"&&Array.isArray(At.shape)&&Array.isArray(At.stride)&&typeof At.offset=="number"&&At.shape.length===At.stride.length&&(Array.isArray(At.data)||Or(At.data))}var ut=function(At){return Object.keys(At).map(function(Er){return At[Er]})},Ne={shape:xe,flatten:Le};function Ye(At,Er,Wr){for(var wi=0;wi0){var Za;if(Array.isArray(ji[0])){Kn=$i(ji);for(var wn=1,vn=1;vn0){if(typeof wn[0]=="number"){var Xn=W.allocType(gn.dtype,wn.length);yr(Xn,wn),Kn(Xn,Aa),W.freeType(Xn)}else if(Array.isArray(wn[0])||Or(wn[0])){aa=$i(wn);var Vn=_n(wn,aa,gn.dtype);Kn(Vn,Aa),W.freeType(Vn)}}}else if(Nr(wn)){aa=wn.shape;var ma=wn.stride,ro=0,Ao=0,Jn=0,Oa=0;aa.length===1?(ro=aa[0],Ao=1,Jn=ma[0],Oa=0):aa.length===2&&(ro=aa[0],Ao=aa[1],Jn=ma[0],Oa=ma[1]);var _o=Array.isArray(wn.data)?gn.dtype:Zt(wn.data),Po=W.allocType(_o,ro*Ao);Fr(Po,wn.data,ro,Ao,Jn,Oa,wn.offset),Kn(Po,Aa),W.freeType(Po)}return ca}return Ln||ca(Ai),ca._reglType="buffer",ca._buffer=gn,ca.subdata=Za,Wr.profile&&(ca.stats=gn.stats),ca.destroy=function(){Rn(gn)},ca}function fn(){ut(Oi).forEach(function(Ai){Ai.buffer=At.createBuffer(),At.bindBuffer(Ai.type,Ai.buffer),At.bufferData(Ai.type,Ai.persistentData||Ai.byteLength,Ai.usage)})}return Wr.profile&&(Er.getTotalBufferSize=function(){var Ai=0;return Object.keys(Oi).forEach(function(ji){Ai+=Oi[ji].stats.size}),Ai}),{create:Dn,createStream:On,destroyStream:Bn,clear:function(){ut(Oi).forEach(Rn),cn.forEach(Rn)},getBuffer:function(Ai){return Ai&&Ai._buffer instanceof Bi?Ai._buffer:null},restore:fn,_initBuffer:to}}var Vr=0,gi=0,Si=1,Mi=1,Pi=4,Gi=4,Ki={points:Vr,point:gi,lines:Si,line:Mi,triangles:Pi,triangle:Gi,"line loop":2,"line strip":3,"triangle strip":5,"triangle fan":6},ka=0,jn=1,la=4,Fa=5120,Ra=5121,jo=5122,oa=5123,Sn=5124,Ha=5125,oo=34963,xn=35040,_t=35044;function br(At,Er,Wr,wi){var Ui={},Oi=0,Bi={uint8:Ra,uint16:oa};Er.oes_element_index_uint&&(Bi.uint32=Ha);function cn(fn){this.id=Oi++,Ui[this.id]=this,this.buffer=fn,this.primType=la,this.vertCount=0,this.type=0}cn.prototype.bind=function(){this.buffer.bind()};var On=[];function Bn(fn){var Ai=On.pop();return Ai||(Ai=new cn(Wr.create(null,oo,!0,!1)._buffer)),to(Ai,fn,xn,-1,-1,0,0),Ai}function yn(fn){On.push(fn)}function to(fn,Ai,ji,Ln,Un,gn,ca){fn.buffer.bind();var Kn;if(Ai){var Za=ca;!ca&&(!Or(Ai)||Nr(Ai)&&!Or(Ai.data))&&(Za=Er.oes_element_index_uint?Ha:oa),Wr._initBuffer(fn.buffer,Ai,ji,Za,3)}else At.bufferData(oo,gn,ji),fn.buffer.dtype=Kn||Ra,fn.buffer.usage=ji,fn.buffer.dimension=3,fn.buffer.byteLength=gn;if(Kn=ca,!ca){switch(fn.buffer.dtype){case Ra:case Fa:Kn=Ra;break;case oa:case jo:Kn=oa;break;case Ha:case Sn:Kn=Ha;break;default:}fn.buffer.dtype=Kn}fn.type=Kn;var wn=Un;wn<0&&(wn=fn.buffer.byteLength,Kn===oa?wn>>=1:Kn===Ha&&(wn>>=2)),fn.vertCount=wn;var vn=Ln;if(Ln<0){vn=la;var Aa=fn.buffer.dimension;Aa===1&&(vn=ka),Aa===2&&(vn=jn),Aa===3&&(vn=la)}fn.primType=vn}function Rn(fn){wi.elementsCount--,delete Ui[fn.id],fn.buffer.destroy(),fn.buffer=null}function Dn(fn,Ai){var ji=Wr.create(null,oo,!0),Ln=new cn(ji._buffer);wi.elementsCount++;function Un(gn){if(!gn)ji(),Ln.primType=la,Ln.vertCount=0,Ln.type=Ra;else if(typeof gn=="number")ji(gn),Ln.primType=la,Ln.vertCount=gn|0,Ln.type=Ra;else{var ca=null,Kn=_t,Za=-1,wn=-1,vn=0,Aa=0;Array.isArray(gn)||Or(gn)||Nr(gn)?ca=gn:("data"in gn&&(ca=gn.data),"usage"in gn&&(Kn=Ni[gn.usage]),"primitive"in gn&&(Za=Ki[gn.primitive]),"count"in gn&&(wn=gn.count|0),"type"in gn&&(Aa=Bi[gn.type]),"length"in gn?vn=gn.length|0:(vn=wn,Aa===oa||Aa===jo?vn*=2:(Aa===Ha||Aa===Sn)&&(vn*=4))),to(Ln,ca,Kn,Za,wn,vn,Aa)}return Un}return Un(fn),Un._reglType="elements",Un._elements=Ln,Un.subdata=function(gn,ca){return ji.subdata(gn,ca),Un},Un.destroy=function(){Rn(Ln)},Un}return{create:Dn,createStream:Bn,destroyStream:yn,getElements:function(fn){return typeof fn=="function"&&fn._elements instanceof cn?fn._elements:null},clear:function(){ut(Ui).forEach(Rn)}}}var Hr=new Float32Array(1),ti=new Uint32Array(Hr.buffer),zi=5123;function Yi(At){for(var Er=W.allocType(zi,At.length),Wr=0;Wr>>31<<15,Oi=(wi<<1>>>24)-127,Bi=wi>>13&1023;if(Oi<-24)Er[Wr]=Ui;else if(Oi<-14){var cn=-14-Oi;Er[Wr]=Ui+(Bi+1024>>cn)}else Oi>15?Er[Wr]=Ui+31744:Er[Wr]=Ui+(Oi+15<<10)+Bi}return Er}function an(At){return Array.isArray(At)||Or(At)}var hi=34467,Ji=3553,ua=34067,Fn=34069,Sa=6408,go=6406,Oo=6407,ho=6409,Mo=6410,xo=32854,zs=32855,ks=36194,Zs=32819,Xs=32820,wl=33635,os=34042,cl=6402,Cs=34041,ml=35904,Ys=35906,Hs=36193,Eo=33776,fs=33777,$l=33778,Hu=33779,fc=35986,ms=35987,on=34798,fa=35840,Qu=35841,Il=35842,vo=35843,Wl=36196,Ks=5121,Zl=5123,Ec=5125,Zn=5126,ko=10242,Co=10243,Tl=10497,uf=33071,So=33648,cf=10240,rh=10241,Al=9728,Hc=9729,Ql=9984,Ls=9985,mu=9986,kc=9987,Of=33170,Gc=4352,vd=4353,Bf=4354,ss=34046,ff=3317,ih=37440,Ul=37441,Js=37443,hc=37444,Cc=33984,ws=[Ql,mu,Ls,kc],$s=[0,ho,Mo,Oo,Sa],hs={};hs[ho]=hs[go]=hs[cl]=1,hs[Cs]=hs[Mo]=2,hs[Oo]=hs[ml]=3,hs[Sa]=hs[Ys]=4;function Ms(At){return"[object "+At+"]"}var dc=Ms("HTMLCanvasElement"),Sl=Ms("OffscreenCanvas"),ec=Ms("CanvasRenderingContext2D"),Ps=Ms("ImageBitmap"),ov=Ms("HTMLImageElement"),wo=Ms("HTMLVideoElement"),Od=Object.keys(Se).concat([dc,Sl,ec,Ps,ov,wo]),$o=[];$o[Ks]=1,$o[Zn]=4,$o[Hs]=2,$o[Zl]=2,$o[Ec]=4;var Ja=[];Ja[xo]=2,Ja[zs]=2,Ja[ks]=2,Ja[Cs]=4,Ja[Eo]=.5,Ja[fs]=.5,Ja[$l]=1,Ja[Hu]=1,Ja[fc]=.5,Ja[ms]=1,Ja[on]=1,Ja[fa]=.5,Ja[Qu]=.25,Ja[Il]=.5,Ja[vo]=.25,Ja[Wl]=.5;function Ef(At){return Array.isArray(At)&&(At.length===0||typeof At[0]=="number")}function tc(At){if(!Array.isArray(At))return!1;var Er=At.length;return!(Er===0||!an(At[0]))}function uu(At){return Object.prototype.toString.call(At)}function Mh(At){return uu(At)===dc}function jc(At){return uu(At)===Sl}function kf(At){return uu(At)===ec}function Ml(At){return uu(At)===Ps}function Yh(At){return uu(At)===ov}function Eh(At){return uu(At)===wo}function nh(At){if(!At)return!1;var Er=uu(At);return Od.indexOf(Er)>=0?!0:Ef(At)||tc(At)||Nr(At)}function hf(At){return Se[Object.prototype.toString.call(At)]|0}function kh(At,Er){var Wr=Er.length;switch(At.type){case Ks:case Zl:case Ec:case Zn:var wi=W.allocType(At.type,Wr);wi.set(Er),At.data=wi;break;case Hs:At.data=Yi(Er);break;default:}}function Kh(At,Er){return W.allocType(At.type===Hs?Zn:At.type,Er)}function rc(At,Er){At.type===Hs?(At.data=Yi(Er),W.freeType(Er)):At.data=Er}function ah(At,Er,Wr,wi,Ui,Oi){for(var Bi=At.width,cn=At.height,On=At.channels,Bn=Bi*cn*On,yn=Kh(At,Bn),to=0,Rn=0;Rn=1;)cn+=Bi*On*On,On/=2;return cn}else return Bi*Wr*wi}function df(At,Er,Wr,wi,Ui,Oi,Bi){var cn={"don't care":Gc,"dont care":Gc,nice:Bf,fast:vd},On={repeat:Tl,clamp:uf,mirror:So},Bn={nearest:Al,linear:Hc},yn=e({mipmap:kc,"nearest mipmap nearest":Ql,"linear mipmap nearest":Ls,"nearest mipmap linear":mu,"linear mipmap linear":kc},Bn),to={none:0,browser:hc},Rn={uint8:Ks,rgba4:Zs,rgb565:wl,"rgb5 a1":Xs},Dn={alpha:go,luminance:ho,"luminance alpha":Mo,rgb:Oo,rgba:Sa,rgba4:xo,"rgb5 a1":zs,rgb565:ks},fn={};Er.ext_srgb&&(Dn.srgb=ml,Dn.srgba=Ys),Er.oes_texture_float&&(Rn.float32=Rn.float=Zn),Er.oes_texture_half_float&&(Rn.float16=Rn["half float"]=Hs),Er.webgl_depth_texture&&(e(Dn,{depth:cl,"depth stencil":Cs}),e(Rn,{uint16:Zl,uint32:Ec,"depth stencil":os})),Er.webgl_compressed_texture_s3tc&&e(fn,{"rgb s3tc dxt1":Eo,"rgba s3tc dxt1":fs,"rgba s3tc dxt3":$l,"rgba s3tc dxt5":Hu}),Er.webgl_compressed_texture_atc&&e(fn,{"rgb atc":fc,"rgba atc explicit alpha":ms,"rgba atc interpolated alpha":on}),Er.webgl_compressed_texture_pvrtc&&e(fn,{"rgb pvrtc 4bppv1":fa,"rgb pvrtc 2bppv1":Qu,"rgba pvrtc 4bppv1":Il,"rgba pvrtc 2bppv1":vo}),Er.webgl_compressed_texture_etc1&&(fn["rgb etc1"]=Wl);var Ai=Array.prototype.slice.call(At.getParameter(hi));Object.keys(fn).forEach(function(de){var Ie=fn[de];Ai.indexOf(Ie)>=0&&(Dn[de]=Ie)});var ji=Object.keys(Dn);Wr.textureFormats=ji;var Ln=[];Object.keys(Dn).forEach(function(de){var Ie=Dn[de];Ln[Ie]=de});var Un=[];Object.keys(Rn).forEach(function(de){var Ie=Rn[de];Un[Ie]=de});var gn=[];Object.keys(Bn).forEach(function(de){var Ie=Bn[de];gn[Ie]=de});var ca=[];Object.keys(yn).forEach(function(de){var Ie=yn[de];ca[Ie]=de});var Kn=[];Object.keys(On).forEach(function(de){var Ie=On[de];Kn[Ie]=de});var Za=ji.reduce(function(de,Ie){var $e=Dn[Ie];return $e===ho||$e===go||$e===ho||$e===Mo||$e===cl||$e===Cs||Er.ext_srgb&&($e===ml||$e===Ys)?de[$e]=$e:$e===zs||Ie.indexOf("rgba")>=0?de[$e]=Sa:de[$e]=Oo,de},{});function wn(){this.internalformat=Sa,this.format=Sa,this.type=Ks,this.compressed=!1,this.premultiplyAlpha=!1,this.flipY=!1,this.unpackAlignment=1,this.colorSpace=hc,this.width=0,this.height=0,this.channels=0}function vn(de,Ie){de.internalformat=Ie.internalformat,de.format=Ie.format,de.type=Ie.type,de.compressed=Ie.compressed,de.premultiplyAlpha=Ie.premultiplyAlpha,de.flipY=Ie.flipY,de.unpackAlignment=Ie.unpackAlignment,de.colorSpace=Ie.colorSpace,de.width=Ie.width,de.height=Ie.height,de.channels=Ie.channels}function Aa(de,Ie){if(!(typeof Ie!="object"||!Ie)){if("premultiplyAlpha"in Ie&&(de.premultiplyAlpha=Ie.premultiplyAlpha),"flipY"in Ie&&(de.flipY=Ie.flipY),"alignment"in Ie&&(de.unpackAlignment=Ie.alignment),"colorSpace"in Ie&&(de.colorSpace=to[Ie.colorSpace]),"type"in Ie){var $e=Ie.type;de.type=Rn[$e]}var pt=de.width,Kt=de.height,ir=de.channels,Jt=!1;"shape"in Ie?(pt=Ie.shape[0],Kt=Ie.shape[1],Ie.shape.length===3&&(ir=Ie.shape[2],Jt=!0)):("radius"in Ie&&(pt=Kt=Ie.radius),"width"in Ie&&(pt=Ie.width),"height"in Ie&&(Kt=Ie.height),"channels"in Ie&&(ir=Ie.channels,Jt=!0)),de.width=pt|0,de.height=Kt|0,de.channels=ir|0;var vt=!1;if("format"in Ie){var Pt=Ie.format,Wt=de.internalformat=Dn[Pt];de.format=Za[Wt],Pt in Rn&&("type"in Ie||(de.type=Rn[Pt])),Pt in fn&&(de.compressed=!0),vt=!0}!Jt&&vt?de.channels=hs[de.format]:Jt&&!vt&&de.channels!==$s[de.format]&&(de.format=de.internalformat=$s[de.channels])}}function aa(de){At.pixelStorei(ih,de.flipY),At.pixelStorei(Ul,de.premultiplyAlpha),At.pixelStorei(Js,de.colorSpace),At.pixelStorei(ff,de.unpackAlignment)}function Xn(){wn.call(this),this.xOffset=0,this.yOffset=0,this.data=null,this.needsFree=!1,this.element=null,this.needsCopy=!1}function Vn(de,Ie){var $e=null;if(nh(Ie)?$e=Ie:Ie&&(Aa(de,Ie),"x"in Ie&&(de.xOffset=Ie.x|0),"y"in Ie&&(de.yOffset=Ie.y|0),nh(Ie.data)&&($e=Ie.data)),Ie.copy){var pt=Ui.viewportWidth,Kt=Ui.viewportHeight;de.width=de.width||pt-de.xOffset,de.height=de.height||Kt-de.yOffset,de.needsCopy=!0}else if(!$e)de.width=de.width||1,de.height=de.height||1,de.channels=de.channels||4;else if(Or($e))de.channels=de.channels||4,de.data=$e,!("type"in Ie)&&de.type===Ks&&(de.type=hf($e));else if(Ef($e))de.channels=de.channels||4,kh(de,$e),de.alignment=1,de.needsFree=!0;else if(Nr($e)){var ir=$e.data;!Array.isArray(ir)&&de.type===Ks&&(de.type=hf(ir));var Jt=$e.shape,vt=$e.stride,Pt,Wt,rr,dr,pr,kr;Jt.length===3?(rr=Jt[2],kr=vt[2]):(rr=1,kr=1),Pt=Jt[0],Wt=Jt[1],dr=vt[0],pr=vt[1],de.alignment=1,de.width=Pt,de.height=Wt,de.channels=rr,de.format=de.internalformat=$s[rr],de.needsFree=!0,ah(de,ir,dr,pr,kr,$e.offset)}else if(Mh($e)||jc($e)||kf($e))Mh($e)||jc($e)?de.element=$e:de.element=$e.canvas,de.width=de.element.width,de.height=de.element.height,de.channels=4;else if(Ml($e))de.element=$e,de.width=$e.width,de.height=$e.height,de.channels=4;else if(Yh($e))de.element=$e,de.width=$e.naturalWidth,de.height=$e.naturalHeight,de.channels=4;else if(Eh($e))de.element=$e,de.width=$e.videoWidth,de.height=$e.videoHeight,de.channels=4;else if(tc($e)){var Ar=de.width||$e[0].length,gr=de.height||$e.length,Cr=de.channels;an($e[0][0])?Cr=Cr||$e[0][0].length:Cr=Cr||1;for(var cr=Ne.shape($e),Gr=1,ei=0;ei>=Kt,$e.height>>=Kt,Vn($e,pt[Kt]),de.mipmask|=1<=0&&!("faces"in Ie)&&(de.genMipmaps=!0)}if("mag"in Ie){var pt=Ie.mag;de.magFilter=Bn[pt]}var Kt=de.wrapS,ir=de.wrapT;if("wrap"in Ie){var Jt=Ie.wrap;typeof Jt=="string"?Kt=ir=On[Jt]:Array.isArray(Jt)&&(Kt=On[Jt[0]],ir=On[Jt[1]])}else{if("wrapS"in Ie){var vt=Ie.wrapS;Kt=On[vt]}if("wrapT"in Ie){var Pt=Ie.wrapT;ir=On[Pt]}}if(de.wrapS=Kt,de.wrapT=ir,"anisotropic"in Ie){var Wt=Ie.anisotropic;de.anisotropic=Ie.anisotropic}if("mipmap"in Ie){var rr=!1;switch(typeof Ie.mipmap){case"string":de.mipmapHint=cn[Ie.mipmap],de.genMipmaps=!0,rr=!0;break;case"boolean":rr=de.genMipmaps=Ie.mipmap;break;case"object":de.genMipmaps=!1,rr=!0;break;default:}rr&&!("min"in Ie)&&(de.minFilter=Ql)}}function wc(de,Ie){At.texParameteri(Ie,rh,de.minFilter),At.texParameteri(Ie,cf,de.magFilter),At.texParameteri(Ie,ko,de.wrapS),At.texParameteri(Ie,Co,de.wrapT),Er.ext_texture_filter_anisotropic&&At.texParameteri(Ie,ss,de.anisotropic),de.genMipmaps&&(At.hint(Of,de.mipmapHint),At.generateMipmap(Ie))}var yf=0,Hl={},Fc=Wr.maxTextureUnits,ef=Array(Fc).map(function(){return null});function ls(de){wn.call(this),this.mipmask=0,this.internalformat=Sa,this.id=yf++,this.refCount=1,this.target=de,this.texture=At.createTexture(),this.unit=-1,this.bindCount=0,this.texInfo=new El,Bi.profile&&(this.stats={size:0})}function _f(de){At.activeTexture(Cc),At.bindTexture(de.target,de.texture)}function ns(){var de=ef[0];de?At.bindTexture(de.target,de.texture):At.bindTexture(Ji,null)}function Y(de){var Ie=de.texture,$e=de.unit,pt=de.target;$e>=0&&(At.activeTexture(Cc+$e),At.bindTexture(pt,null),ef[$e]=null),At.deleteTexture(Ie),de.texture=null,de.params=null,de.pixels=null,de.refCount=0,delete Hl[de.id],Oi.textureCount--}e(ls.prototype,{bind:function(){var de=this;de.bindCount+=1;var Ie=de.unit;if(Ie<0){for(var $e=0;$e0)continue;pt.unit=-1}ef[$e]=de,Ie=$e;break}Ie>=Fc,Bi.profile&&Oi.maxTextureUnits>pr)-rr,kr.height=kr.height||($e.height>>pr)-dr,_f($e),ro(kr,Ji,rr,dr,pr),ns(),Oa(kr),pt}function ir(Jt,vt){var Pt=Jt|0,Wt=vt|0||Pt;if(Pt===$e.width&&Wt===$e.height)return pt;pt.width=$e.width=Pt,pt.height=$e.height=Wt,_f($e);for(var rr=0;$e.mipmask>>rr;++rr){var dr=Pt>>rr,pr=Wt>>rr;if(!dr||!pr)break;At.texImage2D(Ji,rr,$e.format,dr,pr,0,$e.format,$e.type,null)}return ns(),Bi.profile&&($e.stats.size=Wc($e.internalformat,$e.type,Pt,Wt,!1,!1)),pt}return pt(de,Ie),pt.subimage=Kt,pt.resize=ir,pt._reglType="texture2d",pt._texture=$e,Bi.profile&&(pt.stats=$e.stats),pt.destroy=function(){$e.decRef()},pt}function K(de,Ie,$e,pt,Kt,ir){var Jt=new ls(ua);Hl[Jt.id]=Jt,Oi.cubeCount++;var vt=new Array(6);function Pt(dr,pr,kr,Ar,gr,Cr){var cr,Gr=Jt.texInfo;for(El.call(Gr),cr=0;cr<6;++cr)vt[cr]=xs();if(typeof dr=="number"||!dr){var ei=dr|0||1;for(cr=0;cr<6;++cr)Po(vt[cr],ei,ei)}else if(typeof dr=="object")if(pr)Jo(vt[0],dr),Jo(vt[1],pr),Jo(vt[2],kr),Jo(vt[3],Ar),Jo(vt[4],gr),Jo(vt[5],Cr);else if(bc(Gr,dr),Aa(Jt,dr),"faces"in dr){var yi=dr.faces;for(cr=0;cr<6;++cr)vn(vt[cr],Jt),Jo(vt[cr],yi[cr])}else for(cr=0;cr<6;++cr)Jo(vt[cr],dr);for(vn(Jt,vt[0]),Gr.genMipmaps?Jt.mipmask=(vt[0].width<<1)-1:Jt.mipmask=vt[0].mipmask,Jt.internalformat=vt[0].internalformat,Pt.width=vt[0].width,Pt.height=vt[0].height,_f(Jt),cr=0;cr<6;++cr)Xl(vt[cr],Fn+cr);for(wc(Gr,ua),ns(),Bi.profile&&(Jt.stats.size=Wc(Jt.internalformat,Jt.type,Pt.width,Pt.height,Gr.genMipmaps,!0)),Pt.format=Ln[Jt.internalformat],Pt.type=Un[Jt.type],Pt.mag=gn[Gr.magFilter],Pt.min=ca[Gr.minFilter],Pt.wrapS=Kn[Gr.wrapS],Pt.wrapT=Kn[Gr.wrapT],cr=0;cr<6;++cr)Qc(vt[cr]);return Pt}function Wt(dr,pr,kr,Ar,gr){var Cr=kr|0,cr=Ar|0,Gr=gr|0,ei=Jn();return vn(ei,Jt),ei.width=0,ei.height=0,Vn(ei,pr),ei.width=ei.width||(Jt.width>>Gr)-Cr,ei.height=ei.height||(Jt.height>>Gr)-cr,_f(Jt),ro(ei,Fn+dr,Cr,cr,Gr),ns(),Oa(ei),Pt}function rr(dr){var pr=dr|0;if(pr!==Jt.width){Pt.width=Jt.width=pr,Pt.height=Jt.height=pr,_f(Jt);for(var kr=0;kr<6;++kr)for(var Ar=0;Jt.mipmask>>Ar;++Ar)At.texImage2D(Fn+kr,Ar,Jt.format,pr>>Ar,pr>>Ar,0,Jt.format,Jt.type,null);return ns(),Bi.profile&&(Jt.stats.size=Wc(Jt.internalformat,Jt.type,Pt.width,Pt.height,!1,!0)),Pt}}return Pt(de,Ie,$e,pt,Kt,ir),Pt.subimage=Wt,Pt.resize=rr,Pt._reglType="textureCube",Pt._texture=Jt,Bi.profile&&(Pt.stats=Jt.stats),Pt.destroy=function(){Jt.decRef()},Pt}function O(){for(var de=0;de>pt,$e.height>>pt,0,$e.internalformat,$e.type,null);else for(var Kt=0;Kt<6;++Kt)At.texImage2D(Fn+Kt,pt,$e.internalformat,$e.width>>pt,$e.height>>pt,0,$e.internalformat,$e.type,null);wc($e.texInfo,$e.target)})}function pe(){for(var de=0;de=0?Qc=!0:On.indexOf(El)>=0&&(Qc=!1))),("depthTexture"in ls||"depthStencilTexture"in ls)&&(ef=!!(ls.depthTexture||ls.depthStencilTexture)),"depth"in ls&&(typeof ls.depth=="boolean"?Xl=ls.depth:(yf=ls.depth,$c=!1)),"stencil"in ls&&(typeof ls.stencil=="boolean"?$c=ls.stencil:(Hl=ls.stencil,Xl=!1)),"depthStencil"in ls&&(typeof ls.depthStencil=="boolean"?Xl=$c=ls.depthStencil:(Fc=ls.depthStencil,Xl=!1,$c=!1))}var ns=null,Y=null,z=null,K=null;if(Array.isArray(xs))ns=xs.map(fn);else if(xs)ns=[fn(xs)];else for(ns=new Array(wc),_o=0;_o0&&(Oa.depth=Vn[0].depth,Oa.stencil=Vn[0].stencil,Oa.depthStencil=Vn[0].depthStencil),Vn[Jn]?Vn[Jn](Oa):Vn[Jn]=vn(Oa)}return e(ma,{width:_o,height:_o,color:El})}function ro(Ao){var Jn,Oa=Ao|0;if(Oa===ma.width)return ma;var _o=ma.color;for(Jn=0;Jn<_o.length;++Jn)_o[Jn].resize(Oa);for(Jn=0;Jn<6;++Jn)Vn[Jn].resize(Oa);return ma.width=ma.height=Oa,ma}return ma(Xn),e(ma,{faces:Vn,resize:ro,_reglType:"framebufferCube",destroy:function(){Vn.forEach(function(Ao){Ao.destroy()})}})}function aa(){Bi.cur=null,Bi.next=null,Bi.dirty=!0,ut(gn).forEach(function(Xn){Xn.framebuffer=At.createFramebuffer(),wn(Xn)})}return e(Bi,{getFramebuffer:function(Xn){if(typeof Xn=="function"&&Xn._reglType==="framebuffer"){var Vn=Xn._framebuffer;if(Vn instanceof ca)return Vn}return null},create:vn,createCube:Aa,clear:function(){ut(gn).forEach(Za)},restore:aa})}var md=5126,sh=34962,Fs=34963;function _u(){this.state=0,this.x=0,this.y=0,this.z=0,this.w=0,this.buffer=null,this.size=0,this.normalized=!1,this.type=md,this.offset=0,this.stride=0,this.divisor=0}function xu(At,Er,Wr,wi,Ui,Oi,Bi){for(var cn=Wr.maxAttributes,On=new Array(cn),Bn=0;Bn=_o.byteLength?Po.subdata(_o):(Po.destroy(),vn.buffers[Ao]=null)),vn.buffers[Ao]||(Po=vn.buffers[Ao]=Ui.create(Jn,sh,!1,!0)),Oa.buffer=Ui.getBuffer(Po),Oa.size=Oa.buffer.dimension|0,Oa.normalized=!1,Oa.type=Oa.buffer.dtype,Oa.offset=0,Oa.stride=0,Oa.divisor=0,Oa.state=1,ma[Ao]=1}else Ui.getBuffer(Jn)?(Oa.buffer=Ui.getBuffer(Jn),Oa.size=Oa.buffer.dimension|0,Oa.normalized=!1,Oa.type=Oa.buffer.dtype,Oa.offset=0,Oa.stride=0,Oa.divisor=0,Oa.state=1):Ui.getBuffer(Jn.buffer)?(Oa.buffer=Ui.getBuffer(Jn.buffer),Oa.size=(+Jn.size||Oa.buffer.dimension)|0,Oa.normalized=!!Jn.normalized||!1,"type"in Jn?Oa.type=bi[Jn.type]:Oa.type=Oa.buffer.dtype,Oa.offset=(Jn.offset||0)|0,Oa.stride=(Jn.stride||0)|0,Oa.divisor=(Jn.divisor||0)|0,Oa.state=1):"x"in Jn&&(Oa.x=+Jn.x||0,Oa.y=+Jn.y||0,Oa.z=+Jn.z||0,Oa.w=+Jn.w||0,Oa.state=2)}for(var Jo=0;Jo1)for(var aa=0;aaAi&&(Ai=ji.stats.uniformsCount)}),Ai},Wr.getMaxAttributesCount=function(){var Ai=0;return yn.forEach(function(ji){ji.stats.attributesCount>Ai&&(Ai=ji.stats.attributesCount)}),Ai});function fn(){Ui={},Oi={};for(var Ai=0;Ai16&&(Wr=Ti(Wr,At.length*8));for(var wi=Array(16),Ui=Array(16),Oi=0;Oi<16;Oi++)wi[Oi]=Wr[Oi]^909522486,Ui[Oi]=Wr[Oi]^1549556828;var Bi=Ti(wi.concat(gf(Er)),512+Er.length*8);return gt(Ti(Ui.concat(Bi),768))}function ru(At){for(var Er=Ih?"0123456789ABCDEF":"0123456789abcdef",Wr="",wi,Ui=0;Ui>>4&15)+Er.charAt(wi&15);return Wr}function mc(At){for(var Er="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Wr="",wi=At.length,Ui=0;UiAt.length*8?Wr+=Wu:Wr+=Er.charAt(Oi>>>6*(3-Bi)&63);return Wr}function Yc(At,Er){var Wr=Er.length,wi=Array(),Ui,Oi,Bi,cn,On=Array(Math.ceil(At.length/2));for(Ui=0;Ui0;){for(cn=Array(),Bi=0,Ui=0;Ui0||Oi>0)&&(cn[cn.length]=Oi);wi[wi.length]=Bi,On=cn}var Bn="";for(Ui=wi.length-1;Ui>=0;Ui--)Bn+=Er.charAt(wi[Ui]);var yn=Math.ceil(At.length*8/(Math.log(Er.length)/Math.log(2)));for(Ui=Bn.length;Ui>>6&31,128|wi&63):wi<=65535?Er+=String.fromCharCode(224|wi>>>12&15,128|wi>>>6&63,128|wi&63):wi<=2097151&&(Er+=String.fromCharCode(240|wi>>>18&7,128|wi>>>12&63,128|wi>>>6&63,128|wi&63));return Er}function gf(At){for(var Er=Array(At.length>>2),Wr=0;Wr>5]|=(At.charCodeAt(Wr/8)&255)<<24-Wr%32;return Er}function gt(At){for(var Er="",Wr=0;Wr>5]>>>24-Wr%32&255);return Er}function Bt(At,Er){return At>>>Er|At<<32-Er}function wr(At,Er){return At>>>Er}function vr(At,Er,Wr){return At&Er^~At&Wr}function Ur(At,Er,Wr){return At&Er^At&Wr^Er&Wr}function fi(At){return Bt(At,2)^Bt(At,13)^Bt(At,22)}function xi(At){return Bt(At,6)^Bt(At,11)^Bt(At,25)}function Fi(At){return Bt(At,7)^Bt(At,18)^wr(At,3)}function Xi(At){return Bt(At,17)^Bt(At,19)^wr(At,10)}var hn=new Array(1116352408,1899447441,-1245643825,-373957723,961987163,1508970993,-1841331548,-1424204075,-670586216,310598401,607225278,1426881987,1925078388,-2132889090,-1680079193,-1046744716,-459576895,-272742522,264347078,604807628,770255983,1249150122,1555081692,1996064986,-1740746414,-1473132947,-1341970488,-1084653625,-958395405,-710438585,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,-2117940946,-1838011259,-1564481375,-1474664885,-1035236496,-949202525,-778901479,-694614492,-200395387,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,-2067236844,-1933114872,-1866530822,-1538233109,-1090935817,-965641998);function Ti(At,Er){var Wr=new Array(1779033703,-1150833019,1013904242,-1521486534,1359893119,-1694144372,528734635,1541459225),wi=new Array(64),Ui,Oi,Bi,cn,On,Bn,yn,to,Rn,Dn,fn,Ai;for(At[Er>>5]|=128<<24-Er%32,At[(Er+64>>9<<4)+15]=Er,Rn=0;Rn>16)+(Er>>16)+(Wr>>16);return wi<<16|Wr&65535}function Ii(At){return Array.prototype.slice.call(At)}function mi(At){return Ii(At).join("")}function Pn(At){var Er=At&&At.cache,Wr=0,wi=[],Ui=[],Oi=[];function Bi(fn,Ai){var ji=Ai&&Ai.stable;if(!ji){for(var Ln=0;Ln0&&(fn.push(Un,"="),fn.push.apply(fn,Ii(arguments)),fn.push(";")),Un}return e(Ai,{def:Ln,toString:function(){return mi([ji.length>0?"var "+ji.join(",")+";":"",mi(fn)])}})}function On(){var fn=cn(),Ai=cn(),ji=fn.toString,Ln=Ai.toString;function Un(gn,ca){Ai(gn,ca,"=",fn.def(gn,ca),";")}return e(function(){fn.apply(fn,Ii(arguments))},{def:fn.def,entry:fn,exit:Ai,save:Un,set:function(gn,ca,Kn){Un(gn,ca),fn(gn,ca,"=",Kn,";")},toString:function(){return ji()+Ln()}})}function Bn(){var fn=mi(arguments),Ai=On(),ji=On(),Ln=Ai.toString,Un=ji.toString;return e(Ai,{then:function(){return Ai.apply(Ai,Ii(arguments)),this},else:function(){return ji.apply(ji,Ii(arguments)),this},toString:function(){var gn=Un();return gn&&(gn="else{"+gn+"}"),mi(["if(",fn,"){",Ln(),"}",gn])}})}var yn=cn(),to={};function Rn(fn,Ai){var ji=[];function Ln(){var Za="a"+ji.length;return ji.push(Za),Za}Ai=Ai||0;for(var Un=0;Un":516,notequal:517,"!=":517,"!==":517,gequal:518,">=":518,always:519},Kr={0:0,zero:0,keep:7680,replace:7681,increment:7682,decrement:7683,"increment wrap":34055,"decrement wrap":34056,invert:5386},ii={cw:we,ccw:Be};function vi(At){return Array.isArray(At)||Or(At)||Nr(At)}function ci(At){return At.sort(function(Er,Wr){return Er===ee?-1:Wr===ee?1:Er=1,wi>=2,Er)}else if(Wr===Xo){var Ui=At.data;return new Jr(Ui.thisDep,Ui.contextDep,Ui.propDep,Er)}else{if(Wr===Ts)return new Jr(!1,!1,!1,Er);if(Wr===Qo){for(var Oi=!1,Bi=!1,cn=!1,On=0;On=1&&(Bi=!0),yn>=2&&(cn=!0)}else Bn.type===Xo&&(Oi=Oi||Bn.data.thisDep,Bi=Bi||Bn.data.contextDep,cn=cn||Bn.data.propDep)}return new Jr(Oi,Bi,cn,Er)}else return new Jr(Wr===mo,Wr===Ua,Wr===sn,Er)}}var Nn=new Jr(!1,!1,!1,function(){});function ga(At,Er,Wr,wi,Ui,Oi,Bi,cn,On,Bn,yn,to,Rn,Dn,fn,Ai){var ji=Bn.Record,Ln={add:32774,subtract:32778,"reverse subtract":32779};Wr.ext_blend_minmax&&(Ln.min=Ue,Ln.max=We);var Un=Wr.angle_instanced_arrays,gn=Wr.webgl_draw_buffers,ca=Wr.oes_vertex_array_object,Kn={dirty:!0,profile:Ai.profile},Za={},wn=[],vn={},Aa={};function aa(vt){return vt.replace(".","_")}function Xn(vt,Pt,Wt){var rr=aa(vt);wn.push(vt),Za[rr]=Kn[rr]=!!Wt,vn[rr]=Pt}function Vn(vt,Pt,Wt){var rr=aa(vt);wn.push(vt),Array.isArray(Wt)?(Kn[rr]=Wt.slice(),Za[rr]=Wt.slice()):Kn[rr]=Za[rr]=Wt,Aa[rr]=Pt}function ma(vt){return!!isNaN(vt)}Xn(ys,di),Xn(Bo,Xr),Vn(yl,"blendColor",[0,0,0,0]),Vn(Gs,"blendEquationSeparate",[lr,lr]),Vn(Rs,"blendFuncSeparate",[or,zt,or,zt]),Xn(ia,Ci,!0),Vn(Ka,"depthFunc",Dr),Vn(vs,"depthRange",[0,1]),Vn(Ko,"depthMask",!0),Vn(iu,iu,[!0,!0,!0,!0]),Xn(Ru,zr),Vn(ac,"cullFace",oe),Vn(mf,mf,Be),Vn(bu,bu,1),Xn(Kc,Mn),Vn(Du,"polygonOffset",[0,0]),Xn(Dc,pa),Xn(Da,ea),Vn(eo,"sampleCoverage",[1,!1]),Xn(Jc,Li),Vn(yc,"stencilMask",-1),Vn(_c,"stencilFunc",[wt,0,-1]),Vn(le,"stencilOpSeparate",[Z,tt,tt,tt]),Vn(w,"stencilOpSeparate",[oe,tt,tt,tt]),Xn(B,Qi),Vn(Q,"scissor",[0,0,At.drawingBufferWidth,At.drawingBufferHeight]),Vn(ee,ee,[0,0,At.drawingBufferWidth,At.drawingBufferHeight]);var ro={gl:At,context:Rn,strings:Er,next:Za,current:Kn,draw:to,elements:Oi,buffer:Ui,shader:yn,attributes:Bn.state,vao:Bn,uniforms:On,framebuffer:cn,extensions:Wr,timer:Dn,isBufferArgs:vi},Ao={primTypes:Ki,compareFuncs:qr,blendFuncs:ui,blendEquations:Ln,stencilOps:Kr,glTypes:bi,orientationType:ii};gn&&(Ao.backBuffer=[oe],Ao.drawBuffer=M(wi.maxDrawbuffers,function(vt){return vt===0?[0]:M(vt,function(Pt){return oi+Pt})}));var Jn=0;function Oa(){var vt=Pn({cache:fn}),Pt=vt.link,Wt=vt.global;vt.id=Jn++,vt.batchId="0";var rr=Pt(ro),dr=vt.shared={props:"a0"};Object.keys(ro).forEach(function(Cr){dr[Cr]=Wt.def(rr,".",Cr)});var pr=vt.next={},kr=vt.current={};Object.keys(Aa).forEach(function(Cr){Array.isArray(Kn[Cr])&&(pr[Cr]=Wt.def(dr.next,".",Cr),kr[Cr]=Wt.def(dr.current,".",Cr))});var Ar=vt.constants={};Object.keys(Ao).forEach(function(Cr){Ar[Cr]=Wt.def(JSON.stringify(Ao[Cr]))}),vt.invoke=function(Cr,cr){switch(cr.type){case Cn:var Gr=["this",dr.context,dr.props,vt.batchId];return Cr.def(Pt(cr.data),".call(",Gr.slice(0,Math.max(cr.data.length+1,4)),")");case sn:return Cr.def(dr.props,cr.data);case Ua:return Cr.def(dr.context,cr.data);case mo:return Cr.def("this",cr.data);case Xo:return cr.data.append(vt,Cr),cr.data.ref;case Ts:return cr.data.toString();case Qo:return cr.data.map(function(ei){return vt.invoke(Cr,ei)})}},vt.attribCache={};var gr={};return vt.scopeAttrib=function(Cr){var cr=Er.id(Cr);if(cr in gr)return gr[cr];var Gr=Bn.scope[cr];Gr||(Gr=Bn.scope[cr]=new ji);var ei=gr[cr]=Pt(Gr);return ei},vt}function _o(vt){var Pt=vt.static,Wt=vt.dynamic,rr;if(se in Pt){var dr=!!Pt[se];rr=dn(function(kr,Ar){return dr}),rr.enable=dr}else if(se in Wt){var pr=Wt[se];rr=En(pr,function(kr,Ar){return kr.invoke(Ar,pr)})}return rr}function Po(vt,Pt){var Wt=vt.static,rr=vt.dynamic;if(qe in Wt){var dr=Wt[qe];return dr?(dr=cn.getFramebuffer(dr),dn(function(kr,Ar){var gr=kr.link(dr),Cr=kr.shared;Ar.set(Cr.framebuffer,".next",gr);var cr=Cr.context;return Ar.set(cr,"."+Oe,gr+".width"),Ar.set(cr,"."+Je,gr+".height"),gr})):dn(function(kr,Ar){var gr=kr.shared;Ar.set(gr.framebuffer,".next","null");var Cr=gr.context;return Ar.set(Cr,"."+Oe,Cr+"."+Dt),Ar.set(Cr,"."+Je,Cr+"."+Ut),"null"})}else if(qe in rr){var pr=rr[qe];return En(pr,function(kr,Ar){var gr=kr.invoke(Ar,pr),Cr=kr.shared,cr=Cr.framebuffer,Gr=Ar.def(cr,".getFramebuffer(",gr,")");Ar.set(cr,".next",Gr);var ei=Cr.context;return Ar.set(ei,"."+Oe,Gr+"?"+Gr+".width:"+ei+"."+Dt),Ar.set(ei,"."+Je,Gr+"?"+Gr+".height:"+ei+"."+Ut),Gr})}else return null}function Jo(vt,Pt,Wt){var rr=vt.static,dr=vt.dynamic;function pr(gr){if(gr in rr){var Cr=rr[gr],cr=!0,Gr=Cr.x|0,ei=Cr.y|0,yi,tn;return"width"in Cr?yi=Cr.width|0:cr=!1,"height"in Cr?tn=Cr.height|0:cr=!1,new Jr(!cr&&Pt&&Pt.thisDep,!cr&&Pt&&Pt.contextDep,!cr&&Pt&&Pt.propDep,function(Qn,qn){var rn=Qn.shared.context,bn=yi;"width"in Cr||(bn=qn.def(rn,".",Oe,"-",Gr));var mn=tn;return"height"in Cr||(mn=qn.def(rn,".",Je,"-",ei)),[Gr,ei,bn,mn]})}else if(gr in dr){var Ri=dr[gr],ln=En(Ri,function(Qn,qn){var rn=Qn.invoke(qn,Ri),bn=Qn.shared.context,mn=qn.def(rn,".x|0"),Gn=qn.def(rn,".y|0"),da=qn.def('"width" in ',rn,"?",rn,".width|0:","(",bn,".",Oe,"-",mn,")"),No=qn.def('"height" in ',rn,"?",rn,".height|0:","(",bn,".",Je,"-",Gn,")");return[mn,Gn,da,No]});return Pt&&(ln.thisDep=ln.thisDep||Pt.thisDep,ln.contextDep=ln.contextDep||Pt.contextDep,ln.propDep=ln.propDep||Pt.propDep),ln}else return Pt?new Jr(Pt.thisDep,Pt.contextDep,Pt.propDep,function(Qn,qn){var rn=Qn.shared.context;return[0,0,qn.def(rn,".",Oe),qn.def(rn,".",Je)]}):null}var kr=pr(ee);if(kr){var Ar=kr;kr=new Jr(kr.thisDep,kr.contextDep,kr.propDep,function(gr,Cr){var cr=Ar.append(gr,Cr),Gr=gr.shared.context;return Cr.set(Gr,"."+He,cr[2]),Cr.set(Gr,"."+et,cr[3]),cr})}return{viewport:kr,scissor_box:pr(Q)}}function Xl(vt,Pt){var Wt=vt.static,rr=typeof Wt[it]=="string"&&typeof Wt[je]=="string";if(rr){if(Object.keys(Pt.dynamic).length>0)return null;var dr=Pt.static,pr=Object.keys(dr);if(pr.length>0&&typeof dr[pr[0]]=="number"){for(var kr=[],Ar=0;Ar"+mn+"?"+cr+".constant["+mn+"]:0;"}).join(""),"}}else{","if(",yi,"(",cr,".buffer)){",Qn,"=",tn,".createStream(",mr,",",cr,".buffer);","}else{",Qn,"=",tn,".getBuffer(",cr,".buffer);","}",qn,'="type" in ',cr,"?",ei.glTypes,"[",cr,".type]:",Qn,".dtype;",Ri.normalized,"=!!",cr,".normalized;");function rn(bn){Cr(Ri[bn],"=",cr,".",bn,"|0;")}return rn("size"),rn("offset"),rn("stride"),rn("divisor"),Cr("}}"),Cr.exit("if(",Ri.isStream,"){",tn,".destroyStream(",Qn,");","}"),Ri}dr[pr]=En(kr,Ar)}),dr}function wc(vt){var Pt=vt.static,Wt=vt.dynamic,rr={};return Object.keys(Pt).forEach(function(dr){var pr=Pt[dr];rr[dr]=dn(function(kr,Ar){return typeof pr=="number"||typeof pr=="boolean"?""+pr:kr.link(pr)})}),Object.keys(Wt).forEach(function(dr){var pr=Wt[dr];rr[dr]=En(pr,function(kr,Ar){return kr.invoke(Ar,pr)})}),rr}function yf(vt,Pt,Wt,rr,dr){var pr=vt.static,kr=vt.dynamic,Ar=Xl(vt,Pt),gr=Po(vt,dr),Cr=Jo(vt,gr,dr),cr=xs(vt,dr),Gr=Qc(vt,dr),ei=$c(vt,dr,Ar);function yi(rn){var bn=Cr[rn];bn&&(Gr[rn]=bn)}yi(ee),yi(aa(Q));var tn=Object.keys(Gr).length>0,Ri={framebuffer:gr,draw:cr,shader:ei,state:Gr,dirty:tn,scopeVAO:null,drawVAO:null,useVAO:!1,attributes:{}};if(Ri.profile=_o(vt,dr),Ri.uniforms=El(Wt,dr),Ri.drawVAO=Ri.scopeVAO=cr.vao,!Ri.drawVAO&&ei.program&&!Ar&&Wr.angle_instanced_arrays&&cr.static.elements){var ln=!0,Qn=ei.program.attributes.map(function(rn){var bn=Pt.static[rn];return ln=ln&&!!bn,bn});if(ln&&Qn.length>0){var qn=Bn.getVAO(Bn.createVAO({attributes:Qn,elements:cr.static.elements}));Ri.drawVAO=new Jr(null,null,null,function(rn,bn){return rn.link(qn)}),Ri.useVAO=!0}}return Ar?Ri.useVAO=!0:Ri.attributes=bc(Pt,dr),Ri.context=wc(rr,dr),Ri}function Hl(vt,Pt,Wt){var rr=vt.shared,dr=rr.context,pr=vt.scope();Object.keys(Wt).forEach(function(kr){Pt.save(dr,"."+kr);var Ar=Wt[kr],gr=Ar.append(vt,Pt);Array.isArray(gr)?pr(dr,".",kr,"=[",gr.join(),"];"):pr(dr,".",kr,"=",gr,";")}),Pt(pr)}function Fc(vt,Pt,Wt,rr){var dr=vt.shared,pr=dr.gl,kr=dr.framebuffer,Ar;gn&&(Ar=Pt.def(dr.extensions,".webgl_draw_buffers"));var gr=vt.constants,Cr=gr.drawBuffer,cr=gr.backBuffer,Gr;Wt?Gr=Wt.append(vt,Pt):Gr=Pt.def(kr,".next"),rr||Pt("if(",Gr,"!==",kr,".cur){"),Pt("if(",Gr,"){",pr,".bindFramebuffer(",Ir,",",Gr,".framebuffer);"),gn&&Pt(Ar,".drawBuffersWEBGL(",Cr,"[",Gr,".colorAttachments.length]);"),Pt("}else{",pr,".bindFramebuffer(",Ir,",null);"),gn&&Pt(Ar,".drawBuffersWEBGL(",cr,");"),Pt("}",kr,".cur=",Gr,";"),rr||Pt("}")}function ef(vt,Pt,Wt){var rr=vt.shared,dr=rr.gl,pr=vt.current,kr=vt.next,Ar=rr.current,gr=rr.next,Cr=vt.cond(Ar,".dirty");wn.forEach(function(cr){var Gr=aa(cr);if(!(Gr in Wt.state)){var ei,yi;if(Gr in kr){ei=kr[Gr],yi=pr[Gr];var tn=M(Kn[Gr].length,function(ln){return Cr.def(ei,"[",ln,"]")});Cr(vt.cond(tn.map(function(ln,Qn){return ln+"!=="+yi+"["+Qn+"]"}).join("||")).then(dr,".",Aa[Gr],"(",tn,");",tn.map(function(ln,Qn){return yi+"["+Qn+"]="+ln}).join(";"),";"))}else{ei=Cr.def(gr,".",Gr);var Ri=vt.cond(ei,"!==",Ar,".",Gr);Cr(Ri),Gr in vn?Ri(vt.cond(ei).then(dr,".enable(",vn[Gr],");").else(dr,".disable(",vn[Gr],");"),Ar,".",Gr,"=",ei,";"):Ri(dr,".",Aa[Gr],"(",ei,");",Ar,".",Gr,"=",ei,";")}}}),Object.keys(Wt.state).length===0&&Cr(Ar,".dirty=false;"),Pt(Cr)}function ls(vt,Pt,Wt,rr){var dr=vt.shared,pr=vt.current,kr=dr.current,Ar=dr.gl,gr;ci(Object.keys(Wt)).forEach(function(Cr){var cr=Wt[Cr];if(!(rr&&!rr(cr))){var Gr=cr.append(vt,Pt);if(vn[Cr]){var ei=vn[Cr];un(cr)?(gr=vt.link(Gr,{stable:!0}),Pt(vt.cond(gr).then(Ar,".enable(",ei,");").else(Ar,".disable(",ei,");")),Pt(kr,".",Cr,"=",gr,";")):(Pt(vt.cond(Gr).then(Ar,".enable(",ei,");").else(Ar,".disable(",ei,");")),Pt(kr,".",Cr,"=",Gr,";"))}else if(an(Gr)){var yi=pr[Cr];Pt(Ar,".",Aa[Cr],"(",Gr,");",Gr.map(function(tn,Ri){return yi+"["+Ri+"]="+tn}).join(";"),";")}else un(cr)?(gr=vt.link(Gr,{stable:!0}),Pt(Ar,".",Aa[Cr],"(",gr,");",kr,".",Cr,"=",gr,";")):Pt(Ar,".",Aa[Cr],"(",Gr,");",kr,".",Cr,"=",Gr,";")}})}function _f(vt,Pt){Un&&(vt.instancing=Pt.def(vt.shared.extensions,".angle_instanced_arrays"))}function ns(vt,Pt,Wt,rr,dr){var pr=vt.shared,kr=vt.stats,Ar=pr.current,gr=pr.timer,Cr=Wt.profile;function cr(){return typeof performance=="undefined"?"Date.now()":"performance.now()"}var Gr,ei;function yi(rn){Gr=Pt.def(),rn(Gr,"=",cr(),";"),typeof dr=="string"?rn(kr,".count+=",dr,";"):rn(kr,".count++;"),Dn&&(rr?(ei=Pt.def(),rn(ei,"=",gr,".getNumPendingQueries();")):rn(gr,".beginQuery(",kr,");"))}function tn(rn){rn(kr,".cpuTime+=",cr(),"-",Gr,";"),Dn&&(rr?rn(gr,".pushScopeStats(",ei,",",gr,".getNumPendingQueries(),",kr,");"):rn(gr,".endQuery();"))}function Ri(rn){var bn=Pt.def(Ar,".profile");Pt(Ar,".profile=",rn,";"),Pt.exit(Ar,".profile=",bn,";")}var ln;if(Cr){if(un(Cr)){Cr.enable?(yi(Pt),tn(Pt.exit),Ri("true")):Ri("false");return}ln=Cr.append(vt,Pt),Ri(ln)}else ln=Pt.def(Ar,".profile");var Qn=vt.block();yi(Qn),Pt("if(",ln,"){",Qn,"}");var qn=vt.block();tn(qn),Pt.exit("if(",ln,"){",qn,"}")}function Y(vt,Pt,Wt,rr,dr){var pr=vt.shared;function kr(gr){switch(gr){case To:case Ds:case _l:return 2;case Wa:case As:case Vl:return 3;case co:case yo:case Zu:return 4;default:return 1}}function Ar(gr,Cr,cr){var Gr=pr.gl,ei=Pt.def(gr,".location"),yi=Pt.def(pr.attributes,"[",ei,"]"),tn=cr.state,Ri=cr.buffer,ln=[cr.x,cr.y,cr.z,cr.w],Qn=["buffer","normalized","offset","stride"];function qn(){Pt("if(!",yi,".buffer){",Gr,".enableVertexAttribArray(",ei,");}");var bn=cr.type,mn;if(cr.size?mn=Pt.def(cr.size,"||",Cr):mn=Cr,Pt("if(",yi,".type!==",bn,"||",yi,".size!==",mn,"||",Qn.map(function(da){return yi+"."+da+"!=="+cr[da]}).join("||"),"){",Gr,".bindBuffer(",mr,",",Ri,".buffer);",Gr,".vertexAttribPointer(",[ei,mn,bn,cr.normalized,cr.stride,cr.offset],");",yi,".type=",bn,";",yi,".size=",mn,";",Qn.map(function(da){return yi+"."+da+"="+cr[da]+";"}).join(""),"}"),Un){var Gn=cr.divisor;Pt("if(",yi,".divisor!==",Gn,"){",vt.instancing,".vertexAttribDivisorANGLE(",[ei,Gn],");",yi,".divisor=",Gn,";}")}}function rn(){Pt("if(",yi,".buffer){",Gr,".disableVertexAttribArray(",ei,");",yi,".buffer=null;","}if(",Ma.map(function(bn,mn){return yi+"."+bn+"!=="+ln[mn]}).join("||"),"){",Gr,".vertexAttrib4f(",ei,",",ln,");",Ma.map(function(bn,mn){return yi+"."+bn+"="+ln[mn]+";"}).join(""),"}")}tn===Ea?qn():tn===qa?rn():(Pt("if(",tn,"===",Ea,"){"),qn(),Pt("}else{"),rn(),Pt("}"))}rr.forEach(function(gr){var Cr=gr.name,cr=Wt.attributes[Cr],Gr;if(cr){if(!dr(cr))return;Gr=cr.append(vt,Pt)}else{if(!dr(Nn))return;var ei=vt.scopeAttrib(Cr);Gr={},Object.keys(new ji).forEach(function(yi){Gr[yi]=Pt.def(ei,".",yi)})}Ar(vt.link(gr),kr(gr.info.type),Gr)})}function z(vt,Pt,Wt,rr,dr,pr){for(var kr=vt.shared,Ar=kr.gl,gr,Cr=0;Cr1){for(var Do=[],ps=[],fo=0;fo>1)",Ri],");")}function Gn(){Wt(ln,".drawArraysInstancedANGLE(",[ei,yi,tn,Ri],");")}cr&&cr!=="null"?qn?mn():(Wt("if(",cr,"){"),mn(),Wt("}else{"),Gn(),Wt("}")):Gn()}function bn(){function mn(){Wt(pr+".drawElements("+[ei,tn,Qn,yi+"<<(("+Qn+"-"+Ta+")>>1)"]+");")}function Gn(){Wt(pr+".drawArrays("+[ei,yi,tn]+");")}cr&&cr!=="null"?qn?mn():(Wt("if(",cr,"){"),mn(),Wt("}else{"),Gn(),Wt("}")):Gn()}Un&&(typeof Ri!="number"||Ri>=0)?typeof Ri=="string"?(Wt("if(",Ri,">0){"),rn(),Wt("}else if(",Ri,"<0){"),bn(),Wt("}")):rn():bn()}function O(vt,Pt,Wt,rr,dr){var pr=Oa(),kr=pr.proc("body",dr);return Un&&(pr.instancing=kr.def(pr.shared.extensions,".angle_instanced_arrays")),vt(pr,kr,Wt,rr),pr.compile().body}function $(vt,Pt,Wt,rr){_f(vt,Pt),Wt.useVAO?Wt.drawVAO?Pt(vt.shared.vao,".setVAO(",Wt.drawVAO.append(vt,Pt),");"):Pt(vt.shared.vao,".setVAO(",vt.shared.vao,".targetVAO);"):(Pt(vt.shared.vao,".setVAO(null);"),Y(vt,Pt,Wt,rr.attributes,function(){return!0})),z(vt,Pt,Wt,rr.uniforms,function(){return!0},!1),K(vt,Pt,Pt,Wt)}function pe(vt,Pt){var Wt=vt.proc("draw",1);_f(vt,Wt),Hl(vt,Wt,Pt.context),Fc(vt,Wt,Pt.framebuffer),ef(vt,Wt,Pt),ls(vt,Wt,Pt.state),ns(vt,Wt,Pt,!1,!0);var rr=Pt.shader.progVar.append(vt,Wt);if(Wt(vt.shared.gl,".useProgram(",rr,".program);"),Pt.shader.program)$(vt,Wt,Pt,Pt.shader.program);else{Wt(vt.shared.vao,".setVAO(null);");var dr=vt.global.def("{}"),pr=Wt.def(rr,".id"),kr=Wt.def(dr,"[",pr,"]");Wt(vt.cond(kr).then(kr,".call(this,a0);").else(kr,"=",dr,"[",pr,"]=",vt.link(function(Ar){return O($,vt,Pt,Ar,1)}),"(",rr,");",kr,".call(this,a0);"))}Object.keys(Pt.state).length>0&&Wt(vt.shared.current,".dirty=true;"),vt.shared.vao&&Wt(vt.shared.vao,".setVAO(null);")}function de(vt,Pt,Wt,rr){vt.batchId="a1",_f(vt,Pt);function dr(){return!0}Y(vt,Pt,Wt,rr.attributes,dr),z(vt,Pt,Wt,rr.uniforms,dr,!1),K(vt,Pt,Pt,Wt)}function Ie(vt,Pt,Wt,rr){_f(vt,Pt);var dr=Wt.contextDep,pr=Pt.def(),kr="a0",Ar="a1",gr=Pt.def();vt.shared.props=gr,vt.batchId=pr;var Cr=vt.scope(),cr=vt.scope();Pt(Cr.entry,"for(",pr,"=0;",pr,"<",Ar,";++",pr,"){",gr,"=",kr,"[",pr,"];",cr,"}",Cr.exit);function Gr(Qn){return Qn.contextDep&&dr||Qn.propDep}function ei(Qn){return!Gr(Qn)}if(Wt.needsContext&&Hl(vt,cr,Wt.context),Wt.needsFramebuffer&&Fc(vt,cr,Wt.framebuffer),ls(vt,cr,Wt.state,Gr),Wt.profile&&Gr(Wt.profile)&&ns(vt,cr,Wt,!1,!0),rr)Wt.useVAO?Wt.drawVAO?Gr(Wt.drawVAO)?cr(vt.shared.vao,".setVAO(",Wt.drawVAO.append(vt,cr),");"):Cr(vt.shared.vao,".setVAO(",Wt.drawVAO.append(vt,Cr),");"):Cr(vt.shared.vao,".setVAO(",vt.shared.vao,".targetVAO);"):(Cr(vt.shared.vao,".setVAO(null);"),Y(vt,Cr,Wt,rr.attributes,ei),Y(vt,cr,Wt,rr.attributes,Gr)),z(vt,Cr,Wt,rr.uniforms,ei,!1),z(vt,cr,Wt,rr.uniforms,Gr,!0),K(vt,Cr,cr,Wt);else{var yi=vt.global.def("{}"),tn=Wt.shader.progVar.append(vt,cr),Ri=cr.def(tn,".id"),ln=cr.def(yi,"[",Ri,"]");cr(vt.shared.gl,".useProgram(",tn,".program);","if(!",ln,"){",ln,"=",yi,"[",Ri,"]=",vt.link(function(Qn){return O(de,vt,Wt,Qn,2)}),"(",tn,");}",ln,".call(this,a0[",pr,"],",pr,");")}}function $e(vt,Pt){var Wt=vt.proc("batch",2);vt.batchId="0",_f(vt,Wt);var rr=!1,dr=!0;Object.keys(Pt.context).forEach(function(yi){rr=rr||Pt.context[yi].propDep}),rr||(Hl(vt,Wt,Pt.context),dr=!1);var pr=Pt.framebuffer,kr=!1;pr?(pr.propDep?rr=kr=!0:pr.contextDep&&rr&&(kr=!0),kr||Fc(vt,Wt,pr)):Fc(vt,Wt,null),Pt.state.viewport&&Pt.state.viewport.propDep&&(rr=!0);function Ar(yi){return yi.contextDep&&rr||yi.propDep}ef(vt,Wt,Pt),ls(vt,Wt,Pt.state,function(yi){return!Ar(yi)}),(!Pt.profile||!Ar(Pt.profile))&&ns(vt,Wt,Pt,!1,"a1"),Pt.contextDep=rr,Pt.needsContext=dr,Pt.needsFramebuffer=kr;var gr=Pt.shader.progVar;if(gr.contextDep&&rr||gr.propDep)Ie(vt,Wt,Pt,null);else{var Cr=gr.append(vt,Wt);if(Wt(vt.shared.gl,".useProgram(",Cr,".program);"),Pt.shader.program)Ie(vt,Wt,Pt,Pt.shader.program);else{Wt(vt.shared.vao,".setVAO(null);");var cr=vt.global.def("{}"),Gr=Wt.def(Cr,".id"),ei=Wt.def(cr,"[",Gr,"]");Wt(vt.cond(ei).then(ei,".call(this,a0,a1);").else(ei,"=",cr,"[",Gr,"]=",vt.link(function(yi){return O(Ie,vt,Pt,yi,2)}),"(",Cr,");",ei,".call(this,a0,a1);"))}}Object.keys(Pt.state).length>0&&Wt(vt.shared.current,".dirty=true;"),vt.shared.vao&&Wt(vt.shared.vao,".setVAO(null);")}function pt(vt,Pt){var Wt=vt.proc("scope",3);vt.batchId="a2";var rr=vt.shared,dr=rr.current;if(Hl(vt,Wt,Pt.context),Pt.framebuffer&&Pt.framebuffer.append(vt,Wt),ci(Object.keys(Pt.state)).forEach(function(Ar){var gr=Pt.state[Ar],Cr=gr.append(vt,Wt);an(Cr)?Cr.forEach(function(cr,Gr){ma(cr)?Wt.set(vt.next[Ar],"["+Gr+"]",cr):Wt.set(vt.next[Ar],"["+Gr+"]",vt.link(cr,{stable:!0}))}):un(gr)?Wt.set(rr.next,"."+Ar,vt.link(Cr,{stable:!0})):Wt.set(rr.next,"."+Ar,Cr)}),ns(vt,Wt,Pt,!0,!0),[yt,hr,Nt,Sr,Ot].forEach(function(Ar){var gr=Pt.draw[Ar];if(gr){var Cr=gr.append(vt,Wt);ma(Cr)?Wt.set(rr.draw,"."+Ar,Cr):Wt.set(rr.draw,"."+Ar,vt.link(Cr),{stable:!0})}}),Object.keys(Pt.uniforms).forEach(function(Ar){var gr=Pt.uniforms[Ar].append(vt,Wt);Array.isArray(gr)&&(gr="["+gr.map(function(Cr){return ma(Cr)?Cr:vt.link(Cr,{stable:!0})})+"]"),Wt.set(rr.uniforms,"["+vt.link(Er.id(Ar),{stable:!0})+"]",gr)}),Object.keys(Pt.attributes).forEach(function(Ar){var gr=Pt.attributes[Ar].append(vt,Wt),Cr=vt.scopeAttrib(Ar);Object.keys(new ji).forEach(function(cr){Wt.set(Cr,"."+cr,gr[cr])})}),Pt.scopeVAO){var pr=Pt.scopeVAO.append(vt,Wt);ma(pr)?Wt.set(rr.vao,".targetVAO",pr):Wt.set(rr.vao,".targetVAO",vt.link(pr,{stable:!0}))}function kr(Ar){var gr=Pt.shader[Ar];if(gr){var Cr=gr.append(vt,Wt);ma(Cr)?Wt.set(rr.shader,"."+Ar,Cr):Wt.set(rr.shader,"."+Ar,vt.link(Cr,{stable:!0}))}}kr(je),kr(it),Object.keys(Pt.state).length>0&&(Wt(dr,".dirty=true;"),Wt.exit(dr,".dirty=true;")),Wt("a1(",vt.shared.context,",a0,",vt.batchId,");")}function Kt(vt){if(!(typeof vt!="object"||an(vt))){for(var Pt=Object.keys(vt),Wt=0;Wt=0;--O){var $=ro[O];$&&$(fn,null,0)}Wr.flush(),yn&&yn.update()}function Jo(){!_o&&ro.length>0&&(_o=d.next(Po))}function Xl(){_o&&(d.cancel(Po),_o=null)}function $c(O){O.preventDefault(),Ui=!0,Xl(),Ao.forEach(function($){$()})}function xs(O){Wr.getError(),Ui=!1,Oi.restore(),Za.restore(),Un.restore(),wn.restore(),vn.restore(),Aa.restore(),ca.restore(),yn&&yn.restore(),aa.procs.refresh(),Jo(),Jn.forEach(function($){$()})}ma&&(ma.addEventListener(Lo,$c,!1),ma.addEventListener(Fo,xs,!1));function Qc(){ro.length=0,Xl(),ma&&(ma.removeEventListener(Lo,$c),ma.removeEventListener(Fo,xs)),Za.clear(),Aa.clear(),vn.clear(),ca.clear(),wn.clear(),gn.clear(),Un.clear(),yn&&yn.clear(),Oa.forEach(function(O){O()})}function El(O){function $(pr){var kr=e({},pr);delete kr.uniforms,delete kr.attributes,delete kr.context,delete kr.vao,"stencil"in kr&&kr.stencil.op&&(kr.stencil.opBack=kr.stencil.opFront=kr.stencil.op,delete kr.stencil.op);function Ar(gr){if(gr in kr){var Cr=kr[gr];delete kr[gr],Object.keys(Cr).forEach(function(cr){kr[gr+"."+cr]=Cr[cr]})}}return Ar("blend"),Ar("depth"),Ar("cull"),Ar("stencil"),Ar("polygonOffset"),Ar("scissor"),Ar("sample"),"vao"in pr&&(kr.vao=pr.vao),kr}function pe(pr,kr){var Ar={},gr={};return Object.keys(pr).forEach(function(Cr){var cr=pr[Cr];if(h.isDynamic(cr)){gr[Cr]=h.unbox(cr,Cr);return}else if(kr&&Array.isArray(cr)){for(var Gr=0;Gr0)return vt.call(this,rr(pr|0),pr|0)}else if(Array.isArray(pr)){if(pr.length)return vt.call(this,pr,pr.length)}else return Jt.call(this,pr)}return e(dr,{stats:Kt,destroy:function(){ir.destroy()}})}var bc=Aa.setFBO=El({framebuffer:h.define.call(null,js,"framebuffer")});function wc(O,$){var pe=0;aa.procs.poll();var de=$.color;de&&(Wr.clearColor(+de[0]||0,+de[1]||0,+de[2]||0,+de[3]||0),pe|=_s),"depth"in $&&(Wr.clearDepth(+$.depth),pe|=Ns),"stencil"in $&&(Wr.clearStencil($.stencil|0),pe|=pn),Wr.clear(pe)}function yf(O){if("framebuffer"in O)if(O.framebuffer&&O.framebuffer_reglType==="framebufferCube")for(var $=0;$<6;++$)bc(e({framebuffer:O.framebuffer.faces[$]},O),wc);else bc(O,wc);else wc(null,O)}function Hl(O){ro.push(O);function $(){var pe=dl(ro,O);function de(){var Ie=dl(ro,de);ro[Ie]=ro[ro.length-1],ro.length-=1,ro.length<=0&&Xl()}ro[pe]=de}return Jo(),{cancel:$}}function Fc(){var O=Vn.viewport,$=Vn.scissor_box;O[0]=O[1]=$[0]=$[1]=0,fn.viewportWidth=fn.framebufferWidth=fn.drawingBufferWidth=O[2]=$[2]=Wr.drawingBufferWidth,fn.viewportHeight=fn.framebufferHeight=fn.drawingBufferHeight=O[3]=$[3]=Wr.drawingBufferHeight}function ef(){fn.tick+=1,fn.time=_f(),Fc(),aa.procs.poll()}function ls(){wn.refresh(),Fc(),aa.procs.refresh(),yn&&yn.update()}function _f(){return(v()-to)/1e3}ls();function ns(O,$){var pe;switch(O){case"frame":return Hl($);case"lost":pe=Ao;break;case"restore":pe=Jn;break;case"destroy":pe=Oa;break;default:}return pe.push($),{cancel:function(){for(var de=0;de=0},read:Xn,destroy:Qc,_gl:Wr,_refresh:ls,poll:function(){ef(),yn&&yn.update()},now:_f,stats:cn,getCachedCode:Y,preloadCachedCode:z});return Er.onDone(null,K),K}return xc})});var Pqe=ye((pmr,Lqe)=>{"use strict";var jOt=Zm();Lqe.exports=function(t){if(t?typeof t=="string"&&(t={container:t}):t={},kqe(t)?t={container:t}:WOt(t)?t={container:t}:ZOt(t)?t={gl:t}:t=jOt(t,{container:"container target element el canvas holder parent parentNode wrapper use ref root node",gl:"gl context webgl glContext",attrs:"attributes attrs contextAttributes",pixelRatio:"pixelRatio pxRatio px ratio pxratio pixelratio",width:"w width",height:"h height"},!0),t.pixelRatio||(t.pixelRatio=window.pixelRatio||1),t.gl)return t.gl;if(t.canvas&&(t.container=t.canvas.parentNode),t.container){if(typeof t.container=="string"){var r=document.querySelector(t.container);if(!r)throw Error("Element "+t.container+" is not found");t.container=r}kqe(t.container)?(t.canvas=t.container,t.container=t.canvas.parentNode):t.canvas||(t.canvas=Cqe(),t.container.appendChild(t.canvas),Eqe(t))}else if(!t.canvas)if(typeof document!="undefined")t.container=document.body||document.documentElement,t.canvas=Cqe(),t.container.appendChild(t.canvas),Eqe(t);else throw Error("Not DOM environment. Use headless-gl.");return t.gl||["webgl","experimental-webgl","webgl-experimental"].some(function(n){try{t.gl=t.canvas.getContext(n,t.attrs)}catch(i){}return t.gl}),t.gl};function Eqe(e){if(e.container)if(e.container==document.body)document.body.style.width||(e.canvas.width=e.width||e.pixelRatio*window.innerWidth),document.body.style.height||(e.canvas.height=e.height||e.pixelRatio*window.innerHeight);else{var t=e.container.getBoundingClientRect();e.canvas.width=e.width||t.right-t.left,e.canvas.height=e.height||t.bottom-t.top}}function kqe(e){return typeof e.getContext=="function"&&"width"in e&&"height"in e}function WOt(e){return typeof e.nodeName=="string"&&typeof e.appendChild=="function"&&typeof e.getBoundingClientRect=="function"}function ZOt(e){return typeof e.drawArrays=="function"||typeof e.drawElements=="function"}function Cqe(){var e=document.createElement("canvas");return e.style.position="absolute",e.style.top=0,e.style.left=0,e}});var Rqe=ye((gmr,Iqe)=>{"use strict";var XOt=UY(),YOt=[32,126];Iqe.exports=KOt;function KOt(e){e=e||{};var t=e.shape?e.shape:e.canvas?[e.canvas.width,e.canvas.height]:[512,512],r=e.canvas||document.createElement("canvas"),n=e.font,i=typeof e.step=="number"?[e.step,e.step]:e.step||[32,32],a=e.chars||YOt;if(n&&typeof n!="string"&&(n=XOt(n)),!Array.isArray(a))a=String(a).split("");else if(a.length===2&&typeof a[0]=="number"&&typeof a[1]=="number"){for(var o=[],s=a[0],l=0;s<=a[1];s++)o[l++]=String.fromCharCode(s);a=o}t=t.slice(),r.width=t[0],r.height=t[1];var u=r.getContext("2d");u.fillStyle="#000",u.fillRect(0,0,r.width,r.height),u.font=n,u.textAlign="center",u.textBaseline="middle",u.fillStyle="#fff";for(var c=i[0]/2,f=i[1]/2,s=0;st[0]-i[0]/2&&(c=i[0]/2,f+=i[1]);return r}});var WY=ye(Th=>{"use strict";"use restrict";var jY=32;Th.INT_BITS=jY;Th.INT_MAX=2147483647;Th.INT_MIN=-1<0)-(e<0)};Th.abs=function(e){var t=e>>jY-1;return(e^t)-t};Th.min=function(e,t){return t^(e^t)&-(e65535)<<4,e>>>=t,r=(e>255)<<3,e>>>=r,t|=r,r=(e>15)<<2,e>>>=r,t|=r,r=(e>3)<<1,e>>>=r,t|=r,t|e>>1};Th.log10=function(e){return e>=1e9?9:e>=1e8?8:e>=1e7?7:e>=1e6?6:e>=1e5?5:e>=1e4?4:e>=1e3?3:e>=100?2:e>=10?1:0};Th.popCount=function(e){return e=e-(e>>>1&1431655765),e=(e&858993459)+(e>>>2&858993459),(e+(e>>>4)&252645135)*16843009>>>24};function Dqe(e){var t=32;return e&=-e,e&&t--,e&65535&&(t-=16),e&16711935&&(t-=8),e&252645135&&(t-=4),e&858993459&&(t-=2),e&1431655765&&(t-=1),t}Th.countTrailingZeros=Dqe;Th.nextPow2=function(e){return e+=e===0,--e,e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e+1};Th.prevPow2=function(e){return e|=e>>>1,e|=e>>>2,e|=e>>>4,e|=e>>>8,e|=e>>>16,e-(e>>>1)};Th.parity=function(e){return e^=e>>>16,e^=e>>>8,e^=e>>>4,e&=15,27030>>>e&1};var yk=new Array(256);(function(e){for(var t=0;t<256;++t){var r=t,n=t,i=7;for(r>>>=1;r;r>>>=1)n<<=1,n|=r&1,--i;e[t]=n<>>8&255]<<16|yk[e>>>16&255]<<8|yk[e>>>24&255]};Th.interleave2=function(e,t){return e&=65535,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t&=65535,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1};Th.deinterleave2=function(e,t){return e=e>>>t&1431655765,e=(e|e>>>1)&858993459,e=(e|e>>>2)&252645135,e=(e|e>>>4)&16711935,e=(e|e>>>16)&65535,e<<16>>16};Th.interleave3=function(e,t,r){return e&=1023,e=(e|e<<16)&4278190335,e=(e|e<<8)&251719695,e=(e|e<<4)&3272356035,e=(e|e<<2)&1227133513,t&=1023,t=(t|t<<16)&4278190335,t=(t|t<<8)&251719695,t=(t|t<<4)&3272356035,t=(t|t<<2)&1227133513,e|=t<<1,r&=1023,r=(r|r<<16)&4278190335,r=(r|r<<8)&251719695,r=(r|r<<4)&3272356035,r=(r|r<<2)&1227133513,e|r<<2};Th.deinterleave3=function(e,t){return e=e>>>t&1227133513,e=(e|e>>>2)&3272356035,e=(e|e>>>4)&251719695,e=(e|e>>>8)&4278190335,e=(e|e>>>16)&1023,e<<22>>22};Th.nextCombination=function(e){var t=e|e-1;return t+1|(~t&-~t)-1>>>Dqe(e)+1}});var qqe=ye((ymr,Fqe)=>{"use strict";function zqe(e,t,r){var n=e[r]|0;if(n<=0)return[];var i=new Array(n),a;if(r===e.length-1)for(a=0;a0)return JOt(e|0,t);break;case"object":if(typeof e.length=="number")return zqe(e,t,0);break}return[]}Fqe.exports=$Ot});var $qe=ye(jl=>{"use strict";var cx=WY(),Av=qqe(),Oqe=u2().Buffer;window.__TYPEDARRAY_POOL||(window.__TYPEDARRAY_POOL={UINT8:Av([32,0]),UINT16:Av([32,0]),UINT32:Av([32,0]),BIGUINT64:Av([32,0]),INT8:Av([32,0]),INT16:Av([32,0]),INT32:Av([32,0]),BIGINT64:Av([32,0]),FLOAT:Av([32,0]),DOUBLE:Av([32,0]),DATA:Av([32,0]),UINT8C:Av([32,0]),BUFFER:Av([32,0])});var QOt=typeof Uint8ClampedArray!="undefined",eBt=typeof BigUint64Array!="undefined",tBt=typeof BigInt64Array!="undefined",Xh=window.__TYPEDARRAY_POOL;Xh.UINT8C||(Xh.UINT8C=Av([32,0]));Xh.BIGUINT64||(Xh.BIGUINT64=Av([32,0]));Xh.BIGINT64||(Xh.BIGINT64=Av([32,0]));Xh.BUFFER||(Xh.BUFFER=Av([32,0]));var dF=Xh.DATA,vF=Xh.BUFFER;jl.free=function(t){if(Oqe.isBuffer(t))vF[cx.log2(t.length)].push(t);else{if(Object.prototype.toString.call(t)!=="[object ArrayBuffer]"&&(t=t.buffer),!t)return;var r=t.length||t.byteLength,n=cx.log2(r)|0;dF[n].push(t)}};function Bqe(e){if(e){var t=e.length||e.byteLength,r=cx.log2(t);dF[r].push(e)}}function rBt(e){Bqe(e.buffer)}jl.freeUint8=jl.freeUint16=jl.freeUint32=jl.freeBigUint64=jl.freeInt8=jl.freeInt16=jl.freeInt32=jl.freeBigInt64=jl.freeFloat32=jl.freeFloat=jl.freeFloat64=jl.freeDouble=jl.freeUint8Clamped=jl.freeDataView=rBt;jl.freeArrayBuffer=Bqe;jl.freeBuffer=function(t){vF[cx.log2(t.length)].push(t)};jl.malloc=function(t,r){if(r===void 0||r==="arraybuffer")return Bp(t);switch(r){case"uint8":return ZY(t);case"uint16":return Nqe(t);case"uint32":return Uqe(t);case"int8":return Vqe(t);case"int16":return Hqe(t);case"int32":return Gqe(t);case"float":case"float32":return jqe(t);case"double":case"float64":return Wqe(t);case"uint8_clamped":return Zqe(t);case"bigint64":return Yqe(t);case"biguint64":return Xqe(t);case"buffer":return Jqe(t);case"data":case"dataview":return Kqe(t);default:return null}return null};function Bp(t){var t=cx.nextPow2(t),r=cx.log2(t),n=dF[r];return n.length>0?n.pop():new ArrayBuffer(t)}jl.mallocArrayBuffer=Bp;function ZY(e){return new Uint8Array(Bp(e),0,e)}jl.mallocUint8=ZY;function Nqe(e){return new Uint16Array(Bp(2*e),0,e)}jl.mallocUint16=Nqe;function Uqe(e){return new Uint32Array(Bp(4*e),0,e)}jl.mallocUint32=Uqe;function Vqe(e){return new Int8Array(Bp(e),0,e)}jl.mallocInt8=Vqe;function Hqe(e){return new Int16Array(Bp(2*e),0,e)}jl.mallocInt16=Hqe;function Gqe(e){return new Int32Array(Bp(4*e),0,e)}jl.mallocInt32=Gqe;function jqe(e){return new Float32Array(Bp(4*e),0,e)}jl.mallocFloat32=jl.mallocFloat=jqe;function Wqe(e){return new Float64Array(Bp(8*e),0,e)}jl.mallocFloat64=jl.mallocDouble=Wqe;function Zqe(e){return QOt?new Uint8ClampedArray(Bp(e),0,e):ZY(e)}jl.mallocUint8Clamped=Zqe;function Xqe(e){return eBt?new BigUint64Array(Bp(8*e),0,e):null}jl.mallocBigUint64=Xqe;function Yqe(e){return tBt?new BigInt64Array(Bp(8*e),0,e):null}jl.mallocBigInt64=Yqe;function Kqe(e){return new DataView(Bp(e),0,e)}jl.mallocDataView=Kqe;function Jqe(e){e=cx.nextPow2(e);var t=cx.log2(e),r=vF[t];return r.length>0?r.pop():new Oqe(e)}jl.mallocBuffer=Jqe;jl.clearCache=function(){for(var t=0;t<32;++t)Xh.UINT8[t].length=0,Xh.UINT16[t].length=0,Xh.UINT32[t].length=0,Xh.INT8[t].length=0,Xh.INT16[t].length=0,Xh.INT32[t].length=0,Xh.FLOAT[t].length=0,Xh.DOUBLE[t].length=0,Xh.BIGUINT64[t].length=0,Xh.BIGINT64[t].length=0,Xh.UINT8C[t].length=0,dF[t].length=0,vF[t].length=0}});var eOe=ye((xmr,Qqe)=>{"use strict";var iBt=Object.prototype.toString;Qqe.exports=function(e){var t;return iBt.call(e)==="[object Object]"&&(t=Object.getPrototypeOf(e),t===null||t===Object.getPrototypeOf({}))}});var XY=ye((bmr,tOe)=>{tOe.exports=function(t,r){r||(r=[0,""]),t=String(t);var n=parseFloat(t,10);return r[0]=n,r[1]=t.match(/[\d.\-\+]*\s*(.*)/)[1]||"",r}});var nOe=ye((wmr,iOe)=>{"use strict";var nBt=XY();iOe.exports=rOe;var _k=96;function YY(e,t){var r=nBt(getComputedStyle(e).getPropertyValue(t));return r[0]*rOe(r[1],e)}function aBt(e,t){var r=document.createElement("div");r.style["font-size"]="128"+e,t.appendChild(r);var n=YY(r,"font-size")/128;return t.removeChild(r),n}function rOe(e,t){switch(t=t||document.body,e=(e||"px").trim().toLowerCase(),(t===window||t===document)&&(t=document.body),e){case"%":return t.clientHeight/100;case"ch":case"ex":return aBt(e,t);case"em":return YY(t,"font-size");case"rem":return YY(document.body,"font-size");case"vw":return window.innerWidth/100;case"vh":return window.innerHeight/100;case"vmin":return Math.min(window.innerWidth,window.innerHeight)/100;case"vmax":return Math.max(window.innerWidth,window.innerHeight)/100;case"in":return _k;case"cm":return _k/2.54;case"mm":return _k/25.4;case"pt":return _k/72;case"pc":return _k/6}return 1}});var sOe=ye((Tmr,oOe)=>{"use strict";oOe.exports=mF;var oBt=mF.canvas=document.createElement("canvas"),pF=oBt.getContext("2d"),aOe=gF([32,126]);mF.createPairs=gF;mF.ascii=aOe;function mF(e,t){Array.isArray(e)&&(e=e.join(", "));var r={},n,i=16,a=.05;t&&(t.length===2&&typeof t[0]=="number"?n=gF(t):Array.isArray(t)?n=t:(t.o?n=gF(t.o):t.pairs&&(n=t.pairs),t.fontSize&&(i=t.fontSize),t.threshold!=null&&(a=t.threshold))),n||(n=aOe),pF.font=i+"px "+e;for(var o=0;oi*a){var c=(u-l)/i;r[s]=c*1e3}}return r}function gF(e){for(var t=[],r=e[0];r<=e[1];r++)for(var n=String.fromCharCode(r),i=e[0];i{"use strict";cOe.exports=fx;fx.canvas=document.createElement("canvas");fx.cache={};function fx(o,t){t||(t={}),(typeof o=="string"||Array.isArray(o))&&(t.family=o);var r=Array.isArray(t.family)?t.family.join(", "):t.family;if(!r)throw Error("`family` must be defined");var n=t.size||t.fontSize||t.em||48,i=t.weight||t.fontWeight||"",a=t.style||t.fontStyle||"",o=[a,i,n].join(" ")+"px "+r,s=t.origin||"top";if(fx.cache[r]&&n<=fx.cache[r].em)return lOe(fx.cache[r],s);var l=t.canvas||fx.canvas,u=l.getContext("2d"),c={upper:t.upper!==void 0?t.upper:"H",lower:t.lower!==void 0?t.lower:"x",descent:t.descent!==void 0?t.descent:"p",ascent:t.ascent!==void 0?t.ascent:"h",tittle:t.tittle!==void 0?t.tittle:"i",overshoot:t.overshoot!==void 0?t.overshoot:"O"},f=Math.ceil(n*1.5);l.height=f,l.width=f*.5,u.font=o;var h="H",d={top:0};u.clearRect(0,0,f,f),u.textBaseline="top",u.fillStyle="black",u.fillText(h,0,0);var v=Ym(u.getImageData(0,0,f,f));u.clearRect(0,0,f,f),u.textBaseline="bottom",u.fillText(h,0,f);var x=Ym(u.getImageData(0,0,f,f));d.lineHeight=d.bottom=f-x+v,u.clearRect(0,0,f,f),u.textBaseline="alphabetic",u.fillText(h,0,f);var b=Ym(u.getImageData(0,0,f,f)),g=f-b-1+v;d.baseline=d.alphabetic=g,u.clearRect(0,0,f,f),u.textBaseline="middle",u.fillText(h,0,f*.5);var E=Ym(u.getImageData(0,0,f,f));d.median=d.middle=f-E-1+v-f*.5,u.clearRect(0,0,f,f),u.textBaseline="hanging",u.fillText(h,0,f*.5);var k=Ym(u.getImageData(0,0,f,f));d.hanging=f-k-1+v-f*.5,u.clearRect(0,0,f,f),u.textBaseline="ideographic",u.fillText(h,0,f);var A=Ym(u.getImageData(0,0,f,f));if(d.ideographic=f-A-1+v,c.upper&&(u.clearRect(0,0,f,f),u.textBaseline="top",u.fillText(c.upper,0,0),d.upper=Ym(u.getImageData(0,0,f,f)),d.capHeight=d.baseline-d.upper),c.lower&&(u.clearRect(0,0,f,f),u.textBaseline="top",u.fillText(c.lower,0,0),d.lower=Ym(u.getImageData(0,0,f,f)),d.xHeight=d.baseline-d.lower),c.tittle&&(u.clearRect(0,0,f,f),u.textBaseline="top",u.fillText(c.tittle,0,0),d.tittle=Ym(u.getImageData(0,0,f,f))),c.ascent&&(u.clearRect(0,0,f,f),u.textBaseline="top",u.fillText(c.ascent,0,0),d.ascent=Ym(u.getImageData(0,0,f,f))),c.descent&&(u.clearRect(0,0,f,f),u.textBaseline="top",u.fillText(c.descent,0,0),d.descent=uOe(u.getImageData(0,0,f,f))),c.overshoot){u.clearRect(0,0,f,f),u.textBaseline="top",u.fillText(c.overshoot,0,0);var L=uOe(u.getImageData(0,0,f,f));d.overshoot=L-g}for(var _ in d)d[_]/=n;return d.em=n,fx.cache[r]=d,lOe(d,s)}function lOe(e,t){var r={};typeof t=="string"&&(t=e[t]);for(var n in e)n!=="em"&&(r[n]=e[n]-t);return r}function Ym(e){for(var t=e.height,r=e.data,n=3;n0;n-=4)if(r[n]!==0)return Math.floor((n-3)*.25/t)}});var pOe=ye((Smr,vOe)=>{"use strict";var hA=Mqe(),sBt=Zm(),lBt=GY(),uBt=Pqe(),cBt=EY(),KY=J_(),fBt=Rqe(),hx=$qe(),hBt=eA(),dBt=eOe(),vBt=XY(),pBt=nOe(),gBt=sOe(),mBt=bh(),yBt=fOe(),_Bt=W2(),xBt=WY(),hOe=xBt.nextPow2,dOe=new cBt,_F=!1;document.body&&(yF=document.body.appendChild(document.createElement("div")),yF.style.font="italic small-caps bold condensed 16px/2 cursive",getComputedStyle(yF).fontStretch&&(_F=!0),document.body.removeChild(yF));var yF,Vu=function(t){bBt(t)?(t={regl:t},this.gl=t.regl._gl):this.gl=uBt(t),this.shader=dOe.get(this.gl),this.shader?this.regl=this.shader.regl:this.regl=t.regl||lBt({gl:this.gl}),this.charBuffer=this.regl.buffer({type:"uint8",usage:"stream"}),this.sizeBuffer=this.regl.buffer({type:"float",usage:"stream"}),this.shader||(this.shader=this.createShader(),dOe.set(this.gl,this.shader)),this.batch=[],this.fontSize=[],this.font=[],this.fontAtlas=[],this.draw=this.shader.draw.bind(this),this.render=function(){this.regl._refresh(),this.draw(this.batch)},this.canvas=this.gl.canvas,this.update(dBt(t)?t:{})};Vu.prototype.createShader=function(){var t=this.regl,r=t({blend:{enable:!0,color:[0,0,0,1],func:{srcRGB:"src alpha",dstRGB:"one minus src alpha",srcAlpha:"one minus dst alpha",dstAlpha:"one"}},stencil:{enable:!1},depth:{enable:!1},count:t.prop("count"),offset:t.prop("offset"),attributes:{charOffset:{offset:4,stride:8,buffer:t.this("sizeBuffer")},width:{offset:0,stride:8,buffer:t.this("sizeBuffer")},char:t.this("charBuffer"),position:t.this("position")},uniforms:{atlasSize:function(i,a){return[a.atlas.width,a.atlas.height]},atlasDim:function(i,a){return[a.atlas.cols,a.atlas.rows]},atlas:function(i,a){return a.atlas.texture},charStep:function(i,a){return a.atlas.step},em:function(i,a){return a.atlas.em},color:t.prop("color"),opacity:t.prop("opacity"),viewport:t.this("viewportArray"),scale:t.this("scale"),align:t.prop("align"),baseline:t.prop("baseline"),translate:t.this("translate"),positionOffset:t.prop("positionOffset")},primitive:"points",viewport:t.this("viewport"),vert:` + precision highp float; + attribute float width, charOffset, char; + attribute vec2 position; + uniform float fontSize, charStep, em, align, baseline; + uniform vec4 viewport; + uniform vec4 color; + uniform vec2 atlasSize, atlasDim, scale, translate, positionOffset; + varying vec2 charCoord, charId; + varying float charWidth; + varying vec4 fontColor; + void main () { + vec2 offset = floor(em * (vec2(align + charOffset, baseline) + + vec2(positionOffset.x, -positionOffset.y))) + / (viewport.zw * scale.xy); + + vec2 position = (position + translate) * scale; + position += offset * scale; + + charCoord = position * viewport.zw + viewport.xy; + + gl_Position = vec4(position * 2. - 1., 0, 1); + + gl_PointSize = charStep; + + charId.x = mod(char, atlasDim.x); + charId.y = floor(char / atlasDim.x); + + charWidth = width * em; + + fontColor = color / 255.; + }`,frag:` + precision highp float; + uniform float fontSize, charStep, opacity; + uniform vec2 atlasSize; + uniform vec4 viewport; + uniform sampler2D atlas; + varying vec4 fontColor; + varying vec2 charCoord, charId; + varying float charWidth; + + float lightness(vec4 color) { + return color.r * 0.299 + color.g * 0.587 + color.b * 0.114; + } + + void main () { + vec2 uv = gl_FragCoord.xy - charCoord + charStep * .5; + float halfCharStep = floor(charStep * .5 + .5); + + // invert y and shift by 1px (FF expecially needs that) + uv.y = charStep - uv.y; + + // ignore points outside of character bounding box + float halfCharWidth = ceil(charWidth * .5); + if (floor(uv.x) > halfCharStep + halfCharWidth || + floor(uv.x) < halfCharStep - halfCharWidth) return; + + uv += charId * charStep; + uv = uv / atlasSize; + + vec4 color = fontColor; + vec4 mask = texture2D(atlas, uv); + + float maskY = lightness(mask); + // float colorY = lightness(color); + color.a *= maskY; + color.a *= opacity; + + // color.a += .1; + + // antialiasing, see yiq color space y-channel formula + // color.rgb += (1. - color.rgb) * (1. - mask.rgb); + + gl_FragColor = color; + }`}),n={};return{regl:t,draw:r,atlas:n}};Vu.prototype.update=function(t){var r=this;if(typeof t=="string")t={text:t};else if(!t)return;t=sBt(t,{position:"position positions coord coords coordinates",font:"font fontFace fontface typeface cssFont css-font family fontFamily",fontSize:"fontSize fontsize size font-size",text:"text texts chars characters value values symbols",align:"align alignment textAlign textbaseline",baseline:"baseline textBaseline textbaseline",direction:"dir direction textDirection",color:"color colour fill fill-color fillColor textColor textcolor",kerning:"kerning kern",range:"range dataBox",viewport:"vp viewport viewBox viewbox viewPort",opacity:"opacity alpha transparency visible visibility opaque",offset:"offset positionOffset padding shift indent indentation"},!0),t.opacity!=null&&(Array.isArray(t.opacity)?this.opacity=t.opacity.map(function(ke){return parseFloat(ke)}):this.opacity=parseFloat(t.opacity)),t.viewport!=null&&(this.viewport=hBt(t.viewport),this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),this.viewport==null&&(this.viewport={x:0,y:0,width:this.gl.drawingBufferWidth,height:this.gl.drawingBufferHeight},this.viewportArray=[this.viewport.x,this.viewport.y,this.viewport.width,this.viewport.height]),t.kerning!=null&&(this.kerning=t.kerning),t.offset!=null&&(typeof t.offset=="number"&&(t.offset=[t.offset,0]),this.positionOffset=_Bt(t.offset)),t.direction&&(this.direction=t.direction),t.range&&(this.range=t.range,this.scale=[1/(t.range[2]-t.range[0]),1/(t.range[3]-t.range[1])],this.translate=[-t.range[0],-t.range[1]]),t.scale&&(this.scale=t.scale),t.translate&&(this.translate=t.translate),this.scale||(this.scale=[1/this.viewport.width,1/this.viewport.height]),this.translate||(this.translate=[0,0]),!this.font.length&&!t.font&&(t.font=Vu.baseFontSize+"px sans-serif");var n=!1,i=!1;if(t.font&&(Array.isArray(t.font)?t.font:[t.font]).forEach(function(ke,ge){if(typeof ke=="string")try{ke=hA.parse(ke)}catch(Ge){ke=hA.parse(Vu.baseFontSize+"px "+ke)}else{var ie=ke.style,Te=ke.weight,Ee=ke.stretch,Ae=ke.variant;ke=hA.parse(hA.stringify(ke)),ie&&(ke.style=ie),Te&&(ke.weight=Te),Ee&&(ke.stretch=Ee),Ae&&(ke.variant=Ae)}var ze=hA.stringify({size:Vu.baseFontSize,family:ke.family,stretch:_F?ke.stretch:void 0,variant:ke.variant,weight:ke.weight,style:ke.style}),Ce=vBt(ke.size),me=Math.round(Ce[0]*pBt(Ce[1]));if(me!==r.fontSize[ge]&&(i=!0,r.fontSize[ge]=me),(!r.font[ge]||ze!=r.font[ge].baseString)&&(n=!0,r.font[ge]=Vu.fonts[ze],!r.font[ge])){var Re=ke.family.join(", "),ce=[ke.style];ke.style!=ke.variant&&ce.push(ke.variant),ke.variant!=ke.weight&&ce.push(ke.weight),_F&&ke.weight!=ke.stretch&&ce.push(ke.stretch),r.font[ge]={baseString:ze,family:Re,weight:ke.weight,stretch:ke.stretch,style:ke.style,variant:ke.variant,width:{},kerning:{},metrics:yBt(Re,{origin:"top",fontSize:Vu.baseFontSize,fontStyle:ce.join(" ")})},Vu.fonts[ze]=r.font[ge]}}),(n||i)&&this.font.forEach(function(ke,ge){var ie=hA.stringify({size:r.fontSize[ge],family:ke.family,stretch:_F?ke.stretch:void 0,variant:ke.variant,weight:ke.weight,style:ke.style});if(r.fontAtlas[ge]=r.shader.atlas[ie],!r.fontAtlas[ge]){var Te=ke.metrics;r.shader.atlas[ie]=r.fontAtlas[ge]={fontString:ie,step:Math.ceil(r.fontSize[ge]*Te.bottom*.5)*2,em:r.fontSize[ge],cols:0,rows:0,height:0,width:0,chars:[],ids:{},texture:r.regl.texture()}}t.text==null&&(t.text=r.text)}),typeof t.text=="string"&&t.position&&t.position.length>2){for(var a=Array(t.position.length*.5),o=0;o2){for(var u=!t.position[0].length,c=hx.mallocFloat(this.count*2),f=0,h=0;f1?r.align[ge]:r.align[0]:r.align;if(typeof ie=="number")return ie;switch(ie){case"right":case"end":return-ke;case"center":case"centre":case"middle":return-ke*.5}return 0})),this.baseline==null&&t.baseline==null&&(t.baseline=0),t.baseline!=null&&(this.baseline=t.baseline,Array.isArray(this.baseline)||(this.baseline=[this.baseline]),this.baselineOffset=this.baseline.map(function(ke,ge){var ie=(r.font[ge]||r.font[0]).metrics,Te=0;return Te+=ie.bottom*.5,typeof ke=="number"?Te+=ke-ie.baseline:Te+=-ie[ke],Te*=-1,Te})),t.color!=null)if(t.color||(t.color="transparent"),typeof t.color=="string"||!isNaN(t.color))this.color=KY(t.color,"uint8");else{var H;if(typeof t.color[0]=="number"&&t.color.length>this.counts.length){var X=t.color.length;H=hx.mallocUint8(X);for(var G=(t.color.subarray||t.color.slice).bind(t.color),N=0;N4||this.baselineOffset.length>1||this.align&&this.align.length>1||this.fontAtlas.length>1||this.positionOffset.length>2;if(ae){var _e=Math.max(this.position.length*.5||0,this.color.length*.25||0,this.baselineOffset.length||0,this.alignOffset.length||0,this.font.length||0,this.opacity.length||0,this.positionOffset.length*.5||0);this.batch=Array(_e);for(var Me=0;Me1?this.counts[Me]:this.counts[0],offset:this.textOffsets.length>1?this.textOffsets[Me]:this.textOffsets[0],color:this.color?this.color.length<=4?this.color:this.color.subarray(Me*4,Me*4+4):[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[Me]:this.opacity,baseline:this.baselineOffset[Me]!=null?this.baselineOffset[Me]:this.baselineOffset[0],align:this.align?this.alignOffset[Me]!=null?this.alignOffset[Me]:this.alignOffset[0]:0,atlas:this.fontAtlas[Me]||this.fontAtlas[0],positionOffset:this.positionOffset.length>2?this.positionOffset.subarray(Me*2,Me*2+2):this.positionOffset}}else this.count?this.batch=[{count:this.count,offset:0,color:this.color||[0,0,0,255],opacity:Array.isArray(this.opacity)?this.opacity[0]:this.opacity,baseline:this.baselineOffset[0],align:this.alignOffset?this.alignOffset[0]:0,atlas:this.fontAtlas[0],positionOffset:this.positionOffset}]:this.batch=[]}};Vu.prototype.destroy=function(){};Vu.prototype.kerning=!0;Vu.prototype.position={constant:new Float32Array(2)};Vu.prototype.translate=null;Vu.prototype.scale=null;Vu.prototype.font=null;Vu.prototype.text="";Vu.prototype.positionOffset=[0,0];Vu.prototype.opacity=1;Vu.prototype.color=new Uint8Array([0,0,0,255]);Vu.prototype.alignOffset=[0,0];Vu.maxAtlasSize=1024;Vu.atlasCanvas=document.createElement("canvas");Vu.atlasContext=Vu.atlasCanvas.getContext("2d",{alpha:!1});Vu.baseFontSize=64;Vu.fonts={};function bBt(e){return typeof e=="function"&&e._gl&&e.prop&&e.texture&&e.buffer}vOe.exports=Vu});var xF=ye((Mmr,gOe)=>{"use strict";var wBt=pZ(),TBt=GY();gOe.exports=function(t,r,n){var i=t._fullLayout,a=!0;return i._glcanvas.each(function(o){if(o.regl){o.regl.preloadCachedCode(n);return}if(!(o.pick&&!i._has("parcoords"))){try{o.regl=TBt({canvas:this,attributes:{antialias:!o.pick,preserveDrawingBuffer:!0},pixelRatio:t._context.plotGlPixelRatio||window.devicePixelRatio,extensions:r||[],cachedCode:n||{}})}catch(s){a=!1}o.regl||(a=!1),a&&this.addEventListener("webglcontextlost",function(s){t&&t.emit&&t.emit("plotly_webglcontextlost",{event:s,layer:o.key})},!1)}}),a||wBt({container:i._glcontainer.node()}),a}});var QY=ye(($Y,bOe)=>{"use strict";var mOe=QX(),yOe=LY(),ABt=sqe(),_Oe=pOe(),JY=Mr(),SBt=Sg().selectMode,MBt=xF(),EBt=lu(),kBt=hU(),CBt=YX().styleTextSelection,xOe={};function LBt(e,t,r,n){var i=e._size,a=e.width*n,o=e.height*n,s=i.l*n,l=i.b*n,u=i.r*n,c=i.t*n,f=i.w*n,h=i.h*n;return[s+t.domain[0]*f,l+r.domain[0]*h,a-u-(1-t.domain[1])*f,o-c-(1-r.domain[1])*h]}var $Y=bOe.exports=function(t,r,n){if(n.length){var i=t._fullLayout,a=r._scene,o=r.xaxis,s=r.yaxis,l,u;if(a){var c=MBt(t,["ANGLE_instanced_arrays","OES_element_index_uint"],xOe);if(!c){a.init();return}var f=a.count,h=i._glcanvas.data()[0].regl;if(kBt(t,r,n),a.dirty){if((a.line2d||a.error2d)&&!(a.scatter2d||a.fill2d||a.glText)&&h.clear({}),a.error2d===!0&&(a.error2d=ABt(h)),a.line2d===!0&&(a.line2d=yOe(h)),a.scatter2d===!0&&(a.scatter2d=mOe(h)),a.fill2d===!0&&(a.fill2d=yOe(h)),a.glText===!0)for(a.glText=new Array(f),l=0;la.glText.length){var d=f-a.glText.length;for(l=0;lae&&(isNaN(re[_e])||isNaN(re[_e+1]));)_e-=2;W.positions=re.slice(ae,_e+2)}return W}),a.line2d.update(a.lineOptions)),a.error2d){var b=(a.errorXOptions||[]).concat(a.errorYOptions||[]);a.error2d.update(b)}a.scatter2d&&a.scatter2d.update(a.markerOptions),a.fillOrder=JY.repeat(null,f),a.fill2d&&(a.fillOptions=a.fillOptions.map(function(W,re){var ae=n[re];if(!(!W||!ae||!ae[0]||!ae[0].trace)){var _e=ae[0],Me=_e.trace,ke=_e.t,ge=a.lineOptions[re],ie,Te,Ee=[];Me._ownfill&&Ee.push(re),Me._nexttrace&&Ee.push(re+1),Ee.length&&(a.fillOrder[re]=Ee);var Ae=[],ze=ge&&ge.positions||ke.positions,Ce,me;if(Me.fill==="tozeroy"){for(Ce=0;CeCe&&isNaN(ze[me+1]);)me-=2;ze[Ce+1]!==0&&(Ae=[ze[Ce],0]),Ae=Ae.concat(ze.slice(Ce,me+2)),ze[me+1]!==0&&(Ae=Ae.concat([ze[me],0]))}else if(Me.fill==="tozerox"){for(Ce=0;CeCe&&isNaN(ze[me]);)me-=2;ze[Ce]!==0&&(Ae=[0,ze[Ce+1]]),Ae=Ae.concat(ze.slice(Ce,me+2)),ze[me]!==0&&(Ae=Ae.concat([0,ze[me+1]]))}else if(Me.fill==="toself"||Me.fill==="tonext"){for(Ae=[],ie=0,W.splitNull=!0,Te=0;Te-1;for(l=0;l{"use strict";var wOe=Vze();wOe.plot=QY();TOe.exports=wOe});var MOe=ye((kmr,SOe)=>{"use strict";SOe.exports=AOe()});var eK=ye((Cmr,LOe)=>{"use strict";var PBt=Uc(),COe=Kl(),EOe=Oc().axisHoverFormat,IBt=Wo().hovertemplateAttrs,xk=ek(),RBt=ad().idRegex,DBt=Vs().templatedArray,dA=no().extendFlat,o1=PBt.marker,zBt=o1.line,FBt=dA(COe("marker.line",{editTypeOverride:"calc"}),{width:dA({},zBt.width,{editType:"calc"}),editType:"calc"}),bF=dA(COe("marker"),{symbol:o1.symbol,angle:o1.angle,size:dA({},o1.size,{editType:"markerSize"}),sizeref:o1.sizeref,sizemin:o1.sizemin,sizemode:o1.sizemode,opacity:o1.opacity,colorbar:o1.colorbar,line:FBt,editType:"calc"});bF.color.editType=bF.cmin.editType=bF.cmax.editType="style";function kOe(e){return{valType:"info_array",freeLength:!0,editType:"calc",items:{valType:"subplotid",regex:RBt[e],editType:"plot"}}}LOe.exports={dimensions:DBt("dimension",{visible:{valType:"boolean",dflt:!0,editType:"calc"},label:{valType:"string",editType:"calc"},values:{valType:"data_array",editType:"calc+clearAxisTypes"},axis:{type:{valType:"enumerated",values:["linear","log","date","category"],editType:"calc+clearAxisTypes"},matches:{valType:"boolean",dflt:!1,editType:"calc"},editType:"calc+clearAxisTypes"},editType:"calc+clearAxisTypes"}),text:dA({},xk.text,{}),hovertext:dA({},xk.hovertext,{}),hovertemplate:IBt(),xhoverformat:EOe("x"),yhoverformat:EOe("y"),marker:bF,xaxes:kOe("x"),yaxes:kOe("y"),diagonal:{visible:{valType:"boolean",dflt:!0,editType:"calc"},editType:"calc"},showupperhalf:{valType:"boolean",dflt:!0,editType:"calc"},showlowerhalf:{valType:"boolean",dflt:!0,editType:"calc"},selected:{marker:xk.selected.marker,editType:"calc"},unselected:{marker:xk.unselected.marker,editType:"calc"},opacity:xk.opacity}});var wF=ye((Lmr,POe)=>{"use strict";POe.exports=function(e,t,r,n){n||(n=1/0);var i,a;for(i=0;i{"use strict";var tK=Mr(),qBt=Zd(),IOe=eK(),OBt=lu(),BBt=$p(),NBt=wF(),UBt=Fz().isOpenSymbol;ROe.exports=function(t,r,n,i){function a(d,v){return tK.coerce(t,r,IOe,d,v)}var o=qBt(t,r,{name:"dimensions",handleItemDefaults:VBt}),s=a("diagonal.visible"),l=a("showupperhalf"),u=a("showlowerhalf"),c=NBt(r,o,"values");if(!c||!s&&!l&&!u){r.visible=!1;return}a("text"),a("hovertext"),a("hovertemplate"),a("xhoverformat"),a("yhoverformat"),BBt(t,r,n,i,a,{noAngleRef:!0,noStandOff:!0});var f=UBt(r.marker.symbol),h=OBt.isBubble(r);a("marker.line.width",f||h?1:0),HBt(t,r,i,a),tK.coerceSelectionMarkerOpacity(r,a)};function VBt(e,t){function r(i,a){return tK.coerce(e,t,IOe.dimensions,i,a)}r("label");var n=r("values");n&&n.length?r("visible"):t.visible=!1,r("axis.type"),r("axis.matches")}function HBt(e,t,r,n){var i=t.dimensions,a=i.length,o=t.showupperhalf,s=t.showlowerhalf,l=t.diagonal.visible,u,c,f=new Array(a),h=new Array(a);for(u=0;uc&&o||u{"use strict";var zOe=Mr();FOe.exports=function(t,r){var n=t._fullLayout,i=r.uid,a=n._splomScenes;a||(a=n._splomScenes={});var o={dirty:!0,selectBatch:[],unselectBatch:[]},s={matrix:!1,selectBatch:[],unselectBatch:[]},l=a[r.uid];return l||(l=a[i]=zOe.extendFlat({},o,s),l.draw=function(){l.matrix&&l.matrix.draw&&(l.selectBatch.length||l.unselectBatch.length?l.matrix.draw(l.unselectBatch,l.selectBatch):l.matrix.draw()),l.dirty=!1},l.destroy=function(){l.matrix&&l.matrix.destroy&&l.matrix.destroy(),l.matrixOptions=null,l.selectBatch=null,l.unselectBatch=null,l=null}),l.dirty||zOe.extendFlat(l,o),l}});var NOe=ye((Rmr,BOe)=>{"use strict";var rK=Mr(),TF=af(),GBt=q0().calcMarkerSize,jBt=q0().calcAxisExpansion,WBt=z0(),OOe=Y2().markerSelection,ZBt=Y2().markerStyle,XBt=qOe(),YBt=es().BADNUM,KBt=ox().TOO_MANY_POINTS;BOe.exports=function(t,r){var n=r.dimensions,i=r._length,a={},o=a.cdata=[],s=a.data=[],l=r._visibleDims=[],u,c,f,h,d;function v(k,A){for(var L=k.makeCalcdata({v:A.values,vcalendar:r.calendar},"v"),_=0;_KBt,g;for(b?g=a.sizeAvg||Math.max(a.size,3):g=GBt(r,i),c=0;c{(function(){var e,t,r,n,i,a;typeof performance!="undefined"&&performance!==null&&performance.now?bk.exports=function(){return performance.now()}:typeof process!="undefined"&&process!==null&&process.hrtime?(bk.exports=function(){return(e()-i)/1e6},t=process.hrtime,e=function(){var o;return o=t(),o[0]*1e9+o[1]},n=e(),a=process.uptime()*1e9,i=n-a):Date.now?(bk.exports=function(){return Date.now()-r},r=Date.now()):(bk.exports=function(){return new Date().getTime()-r},r=new Date().getTime())}).call(UOe)});var GOe=ye((Dmr,MF)=>{var JBt=VOe(),s1=window,AF=["moz","webkit"],pA="AnimationFrame",gA=s1["request"+pA],wk=s1["cancel"+pA]||s1["cancelRequest"+pA];for(vA=0;!gA&&vA{jOe.exports=function(t,r){var n=typeof t=="number",i=typeof r=="number";n&&!i?(r=t,t=0):!n&&!i&&(t=0,r=0),t=t|0,r=r|0;var a=r-t;if(a<0)throw new Error("array length must be positive");for(var o=new Array(a),s=0,l=t;s{"use strict";var $Bt=QX(),QBt=Zm(),eNt=j2(),ZOe=GOe(),tNt=WOe(),nK=eA(),rNt=W2();YOe.exports=vx;function vx(e,t){if(!(this instanceof vx))return new vx(e,t);this.traces=[],this.passes={},this.regl=e,this.scatter=$Bt(e),this.canvas=this.scatter.canvas}vx.prototype.render=function(...e){return e.length&&this.update(...e),this.regl.attributes.preserveDrawingBuffer?this.draw():(this.dirty?this.planned==null&&(this.planned=ZOe(()=>{this.draw(),this.dirty=!0,this.planned=null})):(this.draw(),this.dirty=!0,ZOe(()=>{this.dirty=!1})),this)};vx.prototype.update=function(...e){if(!e.length)return;for(let n=0;nb||!i.lower&&x{t[a+s]=n})}this.scatter.draw(...t)}return this};vx.prototype.destroy=function(){return this.traces.forEach(e=>{e.buffer&&e.buffer.destroy&&e.buffer.destroy()}),this.traces=null,this.passes=null,this.scatter.destroy(),this};function iNt(e,t,r){let n=e.id!=null?e.id:e,i=t,a=r;return n<<16|(i&255)<<8|a&255}function EF(e,t,r){let n,i,a,o,s,l,u,c,f=e[t],h=e[r];return f.length>2?(n=f[0],a=f[2],i=f[1],o=f[3]):f.length?(n=i=f[0],a=o=f[1]):(n=f.x,i=f.y,a=f.x+f.width,o=f.y+f.height),h.length>2?(s=h[0],u=h[2],l=h[1],c=h[3]):h.length?(s=l=h[0],u=c=h[1]):(s=h.x,l=h.y,u=h.x+h.width,c=h.y+h.height),[s,i,u,o]}function XOe(e){if(typeof e=="number")return[e,e,e,e];if(e.length===2)return[e[0],e[1],e[0],e[1]];{let t=nK(e);return[t.x,t.y,t.x+t.width,t.y+t.height]}}});var $Oe=ye((qmr,JOe)=>{"use strict";var nNt=KOe(),aK=Mr(),kF=af(),aNt=Sg().selectMode;JOe.exports=function(t,r,n){if(n.length)for(var i=0;i-1,T=aNt(c)||!!i.selectedpoints||P,F=!0;if(T){var q=i._length;if(i.selectedpoints){o.selectBatch=i.selectedpoints;var V=i.selectedpoints,H={};for(d=0;d{"use strict";QOe.getDimIndex=function(t,r){for(var n=r._id,i=n.charAt(0),a={x:0,y:1}[i],o=t._visibleDims,s=0;s{"use strict";var eBe=oK(),sNt=zz().calcHover,tBe=Qa().getFromId,lNt=no().extendFlat;function uNt(e,t,r,n,i){i||(i={});var a=(n||"").charAt(0)==="x",o=(n||"").charAt(0)==="y",s=rBe(e,t,r);if((a||o)&&i.hoversubplots==="axis"&&s[0])for(var l=(a?e.xa:e.ya)._subplotsWith,u=i.gd,c=lNt({},e),f=0;f{"use strict";var lBe=Mr(),aBe=lBe.pushUnique,oBe=lu(),sBe=oK();uBe.exports=function(t,r){var n=t.cd,i=n[0].trace,a=n[0].t,o=t.scene,s=o.matrixOptions.cdata,l=t.xaxis,u=t.yaxis,c=[];if(!o)return c;var f=!oBe.hasMarkers(i)&&!oBe.hasText(i);if(i.visible!==!0||f)return c;var h=sBe.getDimIndex(i,l),d=sBe.getDimIndex(i,u);if(h===!1||d===!1)return c;var v=a.xpx[h],x=a.ypx[d],b=s[h],g=s[d],E=(t.scene.selectBatch||[]).slice(),k=[];if(r!==!1&&!r.degenerate)for(var A=0;A{"use strict";var fBe=Mr(),cNt=z0(),fNt=Y2().markerStyle;hBe.exports=function(t,r){var n=r.trace,i=t._fullLayout._splomScenes[n.uid];if(i){cNt(t,n),fBe.extendFlat(i.matrixOptions,fNt(t,n));var a=fBe.extendFlat({},i.matrixOptions,i.viewOpts);i.matrix.update(a,null)}}});var pBe=ye((Vmr,vBe)=>{"use strict";var hNt=ba(),dNt=nV();vBe.exports={moduleType:"trace",name:"splom",categories:["gl","regl","cartesian","symbols","showLegend","scatter-like"],attributes:eK(),supplyDefaults:DOe(),colorbar:Kd(),calc:NOe(),plot:$Oe(),hoverPoints:nBe().hoverPoints,selectPoints:cBe(),editStyle:dBe(),meta:{}};hNt.register(dNt)});var bBe=ye((Hmr,xBe)=>{"use strict";var vNt=LY(),pNt=ba(),gNt=xF(),mNt=kd().getModuleCalcData,px=Jf(),gBe=af().getFromId,mBe=Qa().shouldShowZeroLine,yBe="splom",_Be={};function yNt(e){var t=e._fullLayout,r=pNt.getModule(yBe),n=mNt(e.calcdata,r)[0],i=gNt(e,["ANGLE_instanced_arrays","OES_element_index_uint"],_Be);i&&(t._hasOnlyLargeSploms&&sK(e),r.plot(e,{},n))}function _Nt(e){var t=e.calcdata,r=e._fullLayout;r._hasOnlyLargeSploms&&sK(e);for(var n=0;n{"use strict";var wBe=pBe();wBe.basePlotModule=bBe(),TBe.exports=wBe});var MBe=ye((jmr,SBe)=>{"use strict";SBe.exports=ABe()});var cK=ye((Wmr,EBe)=>{"use strict";var TNt=Kl(),lK=Cd(),uK=Su(),ANt=Ju().attributes,CF=no().extendFlat,SNt=Vs().templatedArray;EBe.exports={domain:ANt({name:"parcoords",trace:!0,editType:"plot"}),labelangle:{valType:"angle",dflt:0,editType:"plot"},labelside:{valType:"enumerated",values:["top","bottom"],dflt:"top",editType:"plot"},labelfont:uK({editType:"plot"}),tickfont:uK({autoShadowDflt:!0,editType:"plot"}),rangefont:uK({editType:"plot"}),dimensions:SNt("dimension",{label:{valType:"string",editType:"plot"},tickvals:CF({},lK.tickvals,{editType:"plot"}),ticktext:CF({},lK.ticktext,{editType:"plot"}),tickformat:CF({},lK.tickformat,{editType:"plot"}),visible:{valType:"boolean",dflt:!0,editType:"plot"},range:{valType:"info_array",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot"},constraintrange:{valType:"info_array",freeLength:!0,dimensions:"1-2",items:[{valType:"any",editType:"plot"},{valType:"any",editType:"plot"}],editType:"plot"},multiselect:{valType:"boolean",dflt:!0,editType:"plot"},values:{valType:"data_array",editType:"calc"},editType:"calc"}),line:CF({editType:"calc"},TNt("line",{colorscaleDflt:"Viridis",autoColorDflt:!1,editTypeOverride:"calc"})),unselected:{line:{color:{valType:"color",dflt:"#7f7f7f",editType:"plot"},opacity:{valType:"number",min:0,max:1,dflt:"auto",editType:"plot"},editType:"plot"},editType:"plot"}}});var Tk=ye((Zmr,kBe)=>{"use strict";kBe.exports={maxDimensionCount:60,overdrag:45,verticalPadding:2,tickDistance:50,canvasPixelRatio:1,blockLineCount:5e3,layers:["contextLineLayer","focusLineLayer","pickLineLayer"],axisTitleOffset:28,axisExtentOffset:10,bar:{width:4,captureWidth:10,fillColor:"magenta",fillOpacity:1,snapDuration:150,snapRatio:.25,snapClose:.01,strokeOpacity:1,strokeWidth:1,handleHeight:8,handleOpacity:1,handleOverlap:0},cn:{axisExtentText:"axis-extent-text",parcoordsLineLayers:"parcoords-line-layers",parcoordsLineLayer:"parcoords-lines",parcoords:"parcoords",parcoordsControlView:"parcoords-control-view",yAxis:"y-axis",axisOverlays:"axis-overlays",axis:"axis",axisHeading:"axis-heading",axisTitle:"axis-title",axisExtent:"axis-extent",axisExtentTop:"axis-extent-top",axisExtentTopText:"axis-extent-top-text",axisExtentBottom:"axis-extent-bottom",axisExtentBottomText:"axis-extent-bottom-text",axisBrush:"axis-brush"},id:{filterBarPattern:"filter-bar-pattern"}}});var Km=ye((Xmr,LBe)=>{"use strict";var MNt=OS();function CBe(e){return[e]}LBe.exports={keyFun:function(e){return e.key},repeat:CBe,descend:MNt,wrap:CBe,unwrap:function(e){return e[0]}}});var dK=ye((Ymr,UBe)=>{"use strict";var th=Tk(),em=xa(),ENt=Km().keyFun,LF=Km().repeat,mA=Mr().sorterAsc,kNt=Mr().strTranslate,PBe=th.bar.snapRatio;function IBe(e,t){return e*(1-PBe)+t*PBe}var RBe=th.bar.snapClose;function CNt(e,t){return e*(1-RBe)+t*RBe}function IF(e,t,r,n){if(LNt(r,n))return r;var i=e?-1:1,a=0,o=t.length-1;if(i<0){var s=a;a=o,o=s}for(var l=t[a],u=l,c=a;i*c=t[r][0]&&e<=t[r][1])return!0;return!1}function PNt(e){e.attr("x",-th.bar.captureWidth/2).attr("width",th.bar.captureWidth)}function INt(e){e.attr("visibility","visible").style("visibility","visible").attr("fill","yellow").attr("opacity",0)}function RNt(e){if(!e.brush.filterSpecified)return"0,"+e.height;for(var t=DBe(e.brush.filter.getConsolidated(),e.height),r=[0],n,i,a,o=t.length?t[0][0]:null,s=0;se[1]+r||t=.9*e[1]+.1*e[0]?"n":t<=.9*e[0]+.1*e[1]?"s":"ns"}function zBe(){em.select(document.body).style("cursor",null)}function hK(e){e.attr("stroke-dasharray",RNt)}function PF(e,t){var r=em.select(e).selectAll(".highlight, .highlight-shadow"),n=t?r.transition().duration(th.bar.snapDuration).each("end",t):r;hK(n)}function FBe(e,t){var r=e.brush,n=r.filterSpecified,i=NaN,a={},o;if(n){var s=e.height,l=r.filter.getConsolidated(),u=DBe(l,s),c=NaN,f=NaN,h=NaN;for(o=0;o<=u.length;o++){var d=u[o];if(d&&d[0]<=t&&t<=d[1]){c=o;break}else if(f=o?o-1:NaN,d&&d[0]>t){h=o;break}}if(i=c,isNaN(i)&&(isNaN(f)||isNaN(h)?i=isNaN(f)?h:f:i=t-u[f][1]=E[0]&&g<=E[1]){a.clickableOrdinalRange=E;break}}}return a}function zNt(e,t){em.event.sourceEvent.stopPropagation();var r=t.height-em.mouse(e)[1]-2*th.verticalPadding,n=t.unitToPaddedPx.invert(r),i=t.brush,a=FBe(t,r),o=a.interval,s=i.svgBrush;if(s.wasDragged=!1,s.grabbingBar=a.region==="ns",s.grabbingBar){var l=o.map(t.unitToPaddedPx);s.grabPoint=r-l[0]-th.verticalPadding,s.barLength=l[1]-l[0]}s.clickableOrdinalRange=a.clickableOrdinalRange,s.stayingIntervals=t.multiselect&&i.filterSpecified?i.filter.getConsolidated():[],o&&(s.stayingIntervals=s.stayingIntervals.filter(function(u){return u[0]!==o[0]&&u[1]!==o[1]})),s.startExtent=a.region?o[a.region==="s"?1:0]:n,t.parent.inBrushDrag=!0,s.brushStartCallback()}function qBe(e,t){em.event.sourceEvent.stopPropagation();var r=t.height-em.mouse(e)[1]-2*th.verticalPadding,n=t.brush.svgBrush;n.wasDragged=!0,n._dragging=!0,n.grabbingBar?n.newExtent=[r-n.grabPoint,r+n.barLength-n.grabPoint].map(t.unitToPaddedPx.invert):n.newExtent=[n.startExtent,t.unitToPaddedPx.invert(r)].sort(mA),t.brush.filterSpecified=!0,n.extent=n.stayingIntervals.concat([n.newExtent]),n.brushCallback(t),PF(e.parentNode)}function FNt(e,t){var r=t.brush,n=r.filter,i=r.svgBrush;i._dragging||(OBe(e,t),qBe(e,t),t.brush.svgBrush.wasDragged=!1),i._dragging=!1;var a=em.event;a.sourceEvent.stopPropagation();var o=i.grabbingBar;if(i.grabbingBar=!1,i.grabLocation=void 0,t.parent.inBrushDrag=!1,zBe(),!i.wasDragged){i.wasDragged=void 0,i.clickableOrdinalRange?r.filterSpecified&&t.multiselect?i.extent.push(i.clickableOrdinalRange):(i.extent=[i.clickableOrdinalRange],r.filterSpecified=!0):o?(i.extent=i.stayingIntervals,i.extent.length===0&&fK(r)):fK(r),i.brushCallback(t),PF(e.parentNode),i.brushEndCallback(r.filterSpecified?n.getConsolidated():[]);return}var s=function(){n.set(n.getConsolidated())};if(t.ordinal){var l=t.unitTickvals;l[l.length-1]i.newExtent[0];i.extent=i.stayingIntervals.concat(u?[i.newExtent]:[]),i.extent.length||fK(r),i.brushCallback(t),u?PF(e.parentNode,s):(s(),PF(e.parentNode))}else s();i.brushEndCallback(r.filterSpecified?n.getConsolidated():[])}function OBe(e,t){var r=t.height-em.mouse(e)[1]-2*th.verticalPadding,n=FBe(t,r),i="crosshair";n.clickableOrdinalRange?i="pointer":n.region&&(i=n.region+"-resize"),em.select(document.body).style("cursor",i)}function qNt(e){e.on("mousemove",function(t){em.event.preventDefault(),t.parent.inBrushDrag||OBe(this,t)}).on("mouseleave",function(t){t.parent.inBrushDrag||zBe()}).call(em.behavior.drag().on("dragstart",function(t){zNt(this,t)}).on("drag",function(t){qBe(this,t)}).on("dragend",function(t){FNt(this,t)}))}function BBe(e,t){return e[0]-t[0]}function ONt(e,t,r){var n=r._context.staticPlot,i=e.selectAll(".background").data(LF);i.enter().append("rect").classed("background",!0).call(PNt).call(INt).style("pointer-events",n?"none":"auto").attr("transform",kNt(0,th.verticalPadding)),i.call(qNt).attr("height",function(s){return s.height-th.verticalPadding});var a=e.selectAll(".highlight-shadow").data(LF);a.enter().append("line").classed("highlight-shadow",!0).attr("x",-th.bar.width/2).attr("stroke-width",th.bar.width+th.bar.strokeWidth).attr("stroke",t).attr("opacity",th.bar.strokeOpacity).attr("stroke-linecap","butt"),a.attr("y1",function(s){return s.height}).call(hK);var o=e.selectAll(".highlight").data(LF);o.enter().append("line").classed("highlight",!0).attr("x",-th.bar.width/2).attr("stroke-width",th.bar.width-th.bar.strokeWidth).attr("stroke",th.bar.fillColor).attr("opacity",th.bar.fillOpacity).attr("stroke-linecap","butt"),o.attr("y1",function(s){return s.height}).call(hK)}function BNt(e,t,r){var n=e.selectAll("."+th.cn.axisBrush).data(LF,ENt);n.enter().append("g").classed(th.cn.axisBrush,!0),ONt(n,t,r)}function NNt(e){return e.svgBrush.extent.map(function(t){return t.slice()})}function fK(e){e.filterSpecified=!1,e.svgBrush.extent=[[-1/0,1/0]]}function UNt(e){return function(r){var n=r.brush,i=NNt(n),a=i.slice();n.filter.set(a),e()}}function NBe(e){for(var t=e.slice(),r=[],n,i=t.shift();i;){for(n=i.slice();(i=t.shift())&&i[0]<=n[1];)n[1]=Math.max(n[1],i[1]);r.push(n)}return r.length===1&&r[0][0]>r[0][1]&&(r=[]),r}function VNt(){var e=[],t,r;return{set:function(n){e=n.map(function(i){return i.slice().sort(mA)}).sort(BBe),e.length===1&&e[0][0]===-1/0&&e[0][1]===1/0&&(e=[[0,-1]]),t=NBe(e),r=e.reduce(function(i,a){return[Math.min(i[0],a[0]),Math.max(i[1],a[1])]},[1/0,-1/0])},get:function(){return e.slice()},getConsolidated:function(){return t},getBounds:function(){return r}}}function HNt(e,t,r,n,i,a){var o=VNt();return o.set(r),{filter:o,filterSpecified:t,svgBrush:{extent:[],brushStartCallback:n,brushCallback:UNt(i),brushEndCallback:a}}}function GNt(e,t){if(Array.isArray(e[0])?(e=e.map(function(n){return n.sort(mA)}),t.multiselect?e=NBe(e.sort(BBe)):e=[e[0]]):e=[e.sort(mA)],t.tickvals){var r=t.tickvals.slice().sort(mA);if(e=e.map(function(n){var i=[IF(0,r,n[0],[]),IF(1,r,n[1],[])];if(i[1]>i[0])return i}).filter(function(n){return n}),!e.length)return}return e.length>1?e:e[0]}UBe.exports={makeBrush:HNt,ensureAxisBrush:BNt,cleanRanges:GNt}});var GBe=ye((Kmr,HBe)=>{"use strict";var gx=Mr(),jNt=Dv().hasColorscale,WNt=Uh(),ZNt=Ju().defaults,XNt=Zd(),YNt=Qa(),VBe=cK(),KNt=dK(),vK=Tk().maxDimensionCount,JNt=wF();function $Nt(e,t,r,n,i){var a=i("line.color",r);if(jNt(e,"line")&&gx.isArrayOrTypedArray(a)){if(a.length)return i("line.colorscale"),WNt(e,t,n,i,{prefix:"line.",cLetter:"c"}),a.length;t.line.color=r}return 1/0}function QNt(e,t,r,n){function i(u,c){return gx.coerce(e,t,VBe.dimensions,u,c)}var a=i("values"),o=i("visible");if(a&&a.length||(o=t.visible=!1),o){i("label"),i("tickvals"),i("ticktext"),i("tickformat");var s=i("range");t._ax={_id:"y",type:"linear",showexponent:"all",exponentformat:"B",range:s},YNt.setConvert(t._ax,n.layout),i("multiselect");var l=i("constraintrange");l&&(t.constraintrange=KNt.cleanRanges(l,t))}}HBe.exports=function(t,r,n,i){function a(c,f){return gx.coerce(t,r,VBe,c,f)}var o=t.dimensions;Array.isArray(o)&&o.length>vK&&(gx.log("parcoords traces support up to "+vK+" dimensions at the moment"),o.splice(vK));var s=XNt(t,r,{name:"dimensions",layout:i,handleItemDefaults:QNt}),l=$Nt(t,r,n,i,a);ZNt(r,i,a),(!Array.isArray(s)||!s.length)&&(r.visible=!1),JNt(r,s,"values",l);var u=gx.extendFlat({},i.font,{size:Math.round(i.font.size/1.2)});gx.coerceFont(a,"labelfont",u),gx.coerceFont(a,"tickfont",u,{autoShadowDflt:!0}),gx.coerceFont(a,"rangefont",u),a("labelangle"),a("labelside"),a("unselected.line.color"),a("unselected.line.opacity")}});var WBe=ye((Jmr,jBe)=>{"use strict";var eUt=Mr().isArrayOrTypedArray,pK=Mu(),tUt=Km().wrap;jBe.exports=function(t,r){var n,i;return pK.hasColorscale(r,"line")&&eUt(r.line.color)?(n=r.line.color,i=pK.extractOpts(r.line).colorscale,pK.calc(t,r,{vals:n,containerStr:"line",cLetter:"c"})):(n=rUt(r._length),i=[[0,r.line.color],[1,r.line.color]]),tUt({lineColor:n,cscale:i})};function rUt(e){for(var t=new Array(e),r=0;r{"use strict";var iUt=Mr().isTypedArray;RF.convertTypedArray=function(e){return iUt(e)?Array.prototype.slice.call(e):e};RF.isOrdinal=function(e){return!!e.tickvals};RF.isVisible=function(e){return e.visible||!("visible"in e)}});var rNe=ye((Qmr,tNe)=>{"use strict";var nUt=["precision highp float;","","varying vec4 fragColor;","","attribute vec4 p01_04, p05_08, p09_12, p13_16,"," p17_20, p21_24, p25_28, p29_32,"," p33_36, p37_40, p41_44, p45_48,"," p49_52, p53_56, p57_60, colors;","","uniform mat4 dim0A, dim1A, dim0B, dim1B, dim0C, dim1C, dim0D, dim1D,"," loA, hiA, loB, hiB, loC, hiC, loD, hiD;","","uniform vec2 resolution, viewBoxPos, viewBoxSize;","uniform float maskHeight;","uniform float drwLayer; // 0: context, 1: focus, 2: pick","uniform vec4 contextColor;","uniform sampler2D maskTexture, palette;","","bool isPick = (drwLayer > 1.5);","bool isContext = (drwLayer < 0.5);","","const vec4 ZEROS = vec4(0.0, 0.0, 0.0, 0.0);","const vec4 UNITS = vec4(1.0, 1.0, 1.0, 1.0);","","float val(mat4 p, mat4 v) {"," return dot(matrixCompMult(p, v) * UNITS, UNITS);","}","","float axisY(float ratio, mat4 A, mat4 B, mat4 C, mat4 D) {"," float y1 = val(A, dim0A) + val(B, dim0B) + val(C, dim0C) + val(D, dim0D);"," float y2 = val(A, dim1A) + val(B, dim1B) + val(C, dim1C) + val(D, dim1D);"," return y1 * (1.0 - ratio) + y2 * ratio;","}","","int iMod(int a, int b) {"," return a - b * (a / b);","}","","bool fOutside(float p, float lo, float hi) {"," return (lo < hi) && (lo > p || p > hi);","}","","bool vOutside(vec4 p, vec4 lo, vec4 hi) {"," return ("," fOutside(p[0], lo[0], hi[0]) ||"," fOutside(p[1], lo[1], hi[1]) ||"," fOutside(p[2], lo[2], hi[2]) ||"," fOutside(p[3], lo[3], hi[3])"," );","}","","bool mOutside(mat4 p, mat4 lo, mat4 hi) {"," return ("," vOutside(p[0], lo[0], hi[0]) ||"," vOutside(p[1], lo[1], hi[1]) ||"," vOutside(p[2], lo[2], hi[2]) ||"," vOutside(p[3], lo[3], hi[3])"," );","}","","bool outsideBoundingBox(mat4 A, mat4 B, mat4 C, mat4 D) {"," return mOutside(A, loA, hiA) ||"," mOutside(B, loB, hiB) ||"," mOutside(C, loC, hiC) ||"," mOutside(D, loD, hiD);","}","","bool outsideRasterMask(mat4 A, mat4 B, mat4 C, mat4 D) {"," mat4 pnts[4];"," pnts[0] = A;"," pnts[1] = B;"," pnts[2] = C;"," pnts[3] = D;",""," for(int i = 0; i < 4; ++i) {"," for(int j = 0; j < 4; ++j) {"," for(int k = 0; k < 4; ++k) {"," if(0 == iMod("," int(255.0 * texture2D(maskTexture,"," vec2("," (float(i * 2 + j / 2) + 0.5) / 8.0,"," (pnts[i][j][k] * (maskHeight - 1.0) + 1.0) / maskHeight"," ))[3]"," ) / int(pow(2.0, float(iMod(j * 4 + k, 8)))),"," 2"," )) return true;"," }"," }"," }"," return false;","}","","vec4 position(bool isContext, float v, mat4 A, mat4 B, mat4 C, mat4 D) {"," float x = 0.5 * sign(v) + 0.5;"," float y = axisY(x, A, B, C, D);"," float z = 1.0 - abs(v);",""," z += isContext ? 0.0 : 2.0 * float("," outsideBoundingBox(A, B, C, D) ||"," outsideRasterMask(A, B, C, D)"," );",""," return vec4("," 2.0 * (vec2(x, y) * viewBoxSize + viewBoxPos) / resolution - 1.0,"," z,"," 1.0"," );","}","","void main() {"," mat4 A = mat4(p01_04, p05_08, p09_12, p13_16);"," mat4 B = mat4(p17_20, p21_24, p25_28, p29_32);"," mat4 C = mat4(p33_36, p37_40, p41_44, p45_48);"," mat4 D = mat4(p49_52, p53_56, p57_60, ZEROS);",""," float v = colors[3];",""," gl_Position = position(isContext, v, A, B, C, D);",""," fragColor ="," isContext ? vec4(contextColor) :"," isPick ? vec4(colors.rgb, 1.0) : texture2D(palette, vec2(abs(v), 0.5));","}"].join(` +`),aUt=["precision highp float;","","varying vec4 fragColor;","","void main() {"," gl_FragColor = fragColor;","}"].join(` +`),Ak=Tk().maxDimensionCount,$Be=Mr(),ZBe=1e-6,DF=2048,oUt=new Uint8Array(4),XBe=new Uint8Array(4),YBe={shape:[256,1],format:"rgba",type:"uint8",mag:"nearest",min:"nearest"};function sUt(e){e.read({x:0,y:0,width:1,height:1,data:oUt})}function QBe(e,t,r,n,i){var a=e._gl;a.enable(a.SCISSOR_TEST),a.scissor(t,r,n,i),e.clear({color:[0,0,0,0],depth:1})}function lUt(e,t,r,n,i,a){var o=a.key;function s(l){var u=Math.min(n,i-l*n);l===0&&(window.cancelAnimationFrame(r.currentRafs[o]),delete r.currentRafs[o],QBe(e,a.scissorX,a.scissorY,a.scissorWidth,a.viewBoxSize[1])),!r.clearOnly&&(a.count=2*u,a.offset=2*l*n,t(a),l*n+u>>8*t)%256/255}function fUt(e,t,r){for(var n=new Array(e*(Ak+4)),i=0,a=0;aX&&(X=M[F].dim1.canvasX,V=F);T===0&&QBe(i,0,0,u.canvasWidth,u.canvasHeight);var G=k(r);for(F=0;F{"use strict";var zd=xa(),l1=Mr(),yK=l1.isArrayOrTypedArray,lNe=l1.numberFormat,uNe=rZ(),cNe=Qa(),gUt=l1.strRotate,Jm=l1.strTranslate,mUt=Ll(),zF=ao(),iNe=Mu(),bK=Km(),tg=bK.keyFun,$m=bK.repeat,fNe=bK.unwrap,yA=gK(),ll=Tk(),hNe=dK(),yUt=rNe();function nNe(e,t,r){return l1.aggNums(e,null,t,r)}function dNe(e,t){return wK(nNe(Math.min,e,t),nNe(Math.max,e,t))}function FF(e){var t=e.range;return t?wK(t[0],t[1]):dNe(e.values,e._length)}function wK(e,t){return(isNaN(e)||!isFinite(e))&&(e=0),(isNaN(t)||!isFinite(t))&&(t=0),e===t&&(e===0?(e-=1,t+=1):(e*=.9,t*=1.1)),[e,t]}function _Ut(e,t){return t?function(r,n){var i=t[n];return i==null?e(r):i}:e}function xUt(e,t,r,n,i){var a=FF(r);return n?zd.scale.ordinal().domain(n.map(_Ut(lNe(r.tickformat),i))).range(n.map(function(o){var s=(o-a[0])/(a[1]-a[0]);return e-t+s*(2*t-e)})):zd.scale.linear().domain(a).range([e-t,t])}function bUt(e,t){return zd.scale.linear().range([t,e-t])}function wUt(e,t){return zd.scale.linear().domain(FF(e)).range([t,1-t])}function TUt(e){if(e.tickvals){var t=FF(e);return zd.scale.ordinal().domain(e.tickvals).range(e.tickvals.map(function(r){return(r-t[0])/(t[1]-t[0])}))}}function AUt(e){var t=e.map(function(a){return a[0]}),r=e.map(function(a){var o=uNe(a[1]);return zd.rgb("rgb("+o[0]+","+o[1]+","+o[2]+")")}),n=function(a){return function(o){return o[a]}},i="rgb".split("").map(function(a){return zd.scale.linear().clamp(!0).domain(t).range(r.map(n(a)))});return function(a){return i.map(function(o){return o(a)})}}function xK(e){return e.dimensions.some(function(t){return t.brush.filterSpecified})}function SUt(e,t,r){var n=fNe(t),i=n.trace,a=yA.convertTypedArray(n.lineColor),o=i.line,s={color:uNe(i.unselected.line.color),opacity:i.unselected.line.opacity},l=iNe.extractOpts(o),u=l.reversescale?iNe.flipScale(n.cscale):n.cscale,c=i.domain,f=i.dimensions,h=e.width,d=i.labelangle,v=i.labelside,x=i.labelfont,b=i.tickfont,g=i.rangefont,E=l1.extendDeepNoArrays({},o,{color:a.map(zd.scale.linear().domain(FF({values:a,range:[l.min,l.max],_length:i._length}))),blockLineCount:ll.blockLineCount,canvasOverdrag:ll.overdrag*ll.canvasPixelRatio}),k=Math.floor(h*(c.x[1]-c.x[0])),A=Math.floor(e.height*(c.y[1]-c.y[0])),L=e.margin||{l:80,r:80,t:100,b:80},_=k,C=A;return{key:r,colCount:f.filter(yA.isVisible).length,dimensions:f,tickDistance:ll.tickDistance,unitToColor:AUt(u),lines:E,deselectedLines:s,labelAngle:d,labelSide:v,labelFont:x,tickFont:b,rangeFont:g,layoutWidth:h,layoutHeight:e.height,domain:c,translateX:c.x[0]*h,translateY:e.height-c.y[1]*e.height,pad:L,canvasWidth:_*ll.canvasPixelRatio+2*E.canvasOverdrag,canvasHeight:C*ll.canvasPixelRatio,width:_,height:C,canvasPixelRatio:ll.canvasPixelRatio}}function MUt(e,t,r){var n=r.width,i=r.height,a=r.dimensions,o=r.canvasPixelRatio,s=function(h){return n*h/Math.max(1,r.colCount-1)},l=ll.verticalPadding/i,u=bUt(i,ll.verticalPadding),c={key:r.key,xScale:s,model:r,inBrushDrag:!1},f={};return c.dimensions=a.filter(yA.isVisible).map(function(h,d){var v=wUt(h,l),x=f[h.label];f[h.label]=(x||0)+1;var b=h.label+(x?"__"+x:""),g=h.constraintrange,E=g&&g.length;E&&!yK(g[0])&&(g=[g]);var k=E?g.map(function(q){return q.map(v)}):[[-1/0,1/0]],A=function(){var q=c;q.focusLayer&&q.focusLayer.render(q.panels,!0);var V=xK(q);!e.contextShown()&&V?(q.contextLayer&&q.contextLayer.render(q.panels,!0),e.contextShown(!0)):e.contextShown()&&!V&&(q.contextLayer&&q.contextLayer.render(q.panels,!0,!0),e.contextShown(!1))},L=h.values;L.length>h._length&&(L=L.slice(0,h._length));var _=h.tickvals,C;function M(q,V){return{val:q,text:C[V]}}function p(q,V){return q.val-V.val}if(yK(_)&&_.length){l1.isTypedArray(_)&&(_=Array.from(_)),C=h.ticktext,!yK(C)||!C.length?C=_.map(lNe(h.tickformat)):C.length>_.length?C=C.slice(0,_.length):_.length>C.length&&(_=_.slice(0,C.length));for(var P=1;P<_.length;P++)if(_[P]<_[P-1]){for(var T=_.map(M).sort(p),F=0;F<_.length;F++)_[F]=T[F].val,C[F]=T[F].text;break}}else _=void 0;return L=yA.convertTypedArray(L),{key:b,label:h.label,tickFormat:h.tickformat,tickvals:_,ticktext:C,ordinal:yA.isOrdinal(h),multiselect:h.multiselect,xIndex:d,crossfilterDimensionIndex:d,visibleIndex:h._index,height:i,values:L,paddedUnitValues:L.map(v),unitTickvals:_&&_.map(v),xScale:s,x:s(d),canvasX:s(d)*o,unitToPaddedPx:u,domainScale:xUt(i,ll.verticalPadding,h,_,C),ordinalScale:TUt(h),parent:c,model:r,brush:hNe.makeBrush(e,E,k,function(){e.linePickActive(!1)},A,function(q){if(c.focusLayer.render(c.panels,!0),c.pickLayer&&c.pickLayer.render(c.panels,!0),e.linePickActive(!0),t&&t.filterChanged){var V=v.invert,H=q.map(function(X){return X.map(V).sort(l1.sorterAsc)}).sort(function(X,G){return X[0]-G[0]});t.filterChanged(c.key,h._index,H)}})}}),c}function aNe(e){e.classed(ll.cn.axisExtentText,!0).attr("text-anchor","middle").style("cursor","default")}function EUt(){var e=!0,t=!1;return{linePickActive:function(r){return arguments.length?e=!!r:e},contextShown:function(r){return arguments.length?t=!!r:t}}}function oNe(e,t){var r=t==="top"?1:-1,n=e*Math.PI/180,i=Math.sin(n),a=Math.cos(n);return{dir:r,dx:i,dy:a,degrees:e}}function _K(e,t,r){for(var n=t.panels||(t.panels=[]),i=e.data(),a=0;a=V||N>=H)return;var W=F.lineLayer.readPixel(G,H-1-N),re=W[3]!==0,ae=re?W[2]+256*(W[1]+256*W[0]):null,_e={x:G,y:N,clientX:q.clientX,clientY:q.clientY,dataIndex:F.model.key,curveNumber:ae};ae!==v&&(re?i.hover(_e):i.unhover&&i.unhover(_e),v=ae)}}),d.style("opacity",function(F){return F.pick?0:1}),s.style("background","rgba(255, 255, 255, 0)");var b=s.selectAll("."+ll.cn.parcoords).data(h,tg);b.exit().remove(),b.enter().append("g").classed(ll.cn.parcoords,!0).style("shape-rendering","crispEdges").style("pointer-events","none"),b.attr("transform",function(F){return Jm(F.model.translateX,F.model.translateY)});var g=b.selectAll("."+ll.cn.parcoordsControlView).data($m,tg);g.enter().append("g").classed(ll.cn.parcoordsControlView,!0),g.attr("transform",function(F){return Jm(F.model.pad.l,F.model.pad.t)});var E=g.selectAll("."+ll.cn.yAxis).data(function(F){return F.dimensions},tg);E.enter().append("g").classed(ll.cn.yAxis,!0),g.each(function(F){_K(E,F,u)}),d.each(function(F){if(F.viewModel){!F.lineLayer||i?F.lineLayer=yUt(this,F):F.lineLayer.update(F),(F.key||F.key===0)&&(F.viewModel[F.key]=F.lineLayer);var q=!F.context||i;F.lineLayer.render(F.viewModel.panels,q)}}),E.attr("transform",function(F){return Jm(F.xScale(F.xIndex),0)}),E.call(zd.behavior.drag().origin(function(F){return F}).on("drag",function(F){var q=F.parent;f.linePickActive(!1),F.x=Math.max(-ll.overdrag,Math.min(F.model.width+ll.overdrag,zd.event.x)),F.canvasX=F.x*F.model.canvasPixelRatio,E.sort(function(V,H){return V.x-H.x}).each(function(V,H){V.xIndex=H,V.x=F===V?V.x:V.xScale(V.xIndex),V.canvasX=V.x*V.model.canvasPixelRatio}),_K(E,q,u),E.filter(function(V){return Math.abs(F.xIndex-V.xIndex)!==0}).attr("transform",function(V){return Jm(V.xScale(V.xIndex),0)}),zd.select(this).attr("transform",Jm(F.x,0)),E.each(function(V,H,X){X===F.parent.key&&(q.dimensions[H]=V)}),q.contextLayer&&q.contextLayer.render(q.panels,!1,!xK(q)),q.focusLayer.render&&q.focusLayer.render(q.panels)}).on("dragend",function(F){var q=F.parent;F.x=F.xScale(F.xIndex),F.canvasX=F.x*F.model.canvasPixelRatio,_K(E,q,u),zd.select(this).attr("transform",function(V){return Jm(V.x,0)}),q.contextLayer&&q.contextLayer.render(q.panels,!1,!xK(q)),q.focusLayer&&q.focusLayer.render(q.panels),q.pickLayer&&q.pickLayer.render(q.panels,!0),f.linePickActive(!0),i&&i.axesMoved&&i.axesMoved(q.key,q.dimensions.map(function(V){return V.crossfilterDimensionIndex}))})),E.exit().remove();var k=E.selectAll("."+ll.cn.axisOverlays).data($m,tg);k.enter().append("g").classed(ll.cn.axisOverlays,!0),k.selectAll("."+ll.cn.axis).remove();var A=k.selectAll("."+ll.cn.axis).data($m,tg);A.enter().append("g").classed(ll.cn.axis,!0),A.each(function(F){var q=F.model.height/F.model.tickDistance,V=F.domainScale,H=V.domain();zd.select(this).call(zd.svg.axis().orient("left").tickSize(4).outerTickSize(2).ticks(q,F.tickFormat).tickValues(F.ordinal?H:null).tickFormat(function(X){return yA.isOrdinal(F)?X:vNe(F.model.dimensions[F.visibleIndex],X)}).scale(V)),zF.font(A.selectAll("text"),F.model.tickFont)}),A.selectAll(".domain, .tick>line").attr("fill","none").attr("stroke","black").attr("stroke-opacity",.25).attr("stroke-width","1px"),A.selectAll("text").style("cursor","default");var L=k.selectAll("."+ll.cn.axisHeading).data($m,tg);L.enter().append("g").classed(ll.cn.axisHeading,!0);var _=L.selectAll("."+ll.cn.axisTitle).data($m,tg);_.enter().append("text").classed(ll.cn.axisTitle,!0).attr("text-anchor","middle").style("cursor","ew-resize").style("pointer-events",a?"none":"auto"),_.text(function(F){return F.label}).each(function(F){var q=zd.select(this);zF.font(q,F.model.labelFont),mUt.convertToTspans(q,t)}).attr("transform",function(F){var q=oNe(F.model.labelAngle,F.model.labelSide),V=ll.axisTitleOffset;return(q.dir>0?"":Jm(0,2*V+F.model.height))+gUt(q.degrees)+Jm(-V*q.dx,-V*q.dy)}).attr("text-anchor",function(F){var q=oNe(F.model.labelAngle,F.model.labelSide),V=Math.abs(q.dx),H=Math.abs(q.dy);return 2*V>H?q.dir*q.dx<0?"start":"end":"middle"});var C=k.selectAll("."+ll.cn.axisExtent).data($m,tg);C.enter().append("g").classed(ll.cn.axisExtent,!0);var M=C.selectAll("."+ll.cn.axisExtentTop).data($m,tg);M.enter().append("g").classed(ll.cn.axisExtentTop,!0),M.attr("transform",Jm(0,-ll.axisExtentOffset));var p=M.selectAll("."+ll.cn.axisExtentTopText).data($m,tg);p.enter().append("text").classed(ll.cn.axisExtentTopText,!0).call(aNe),p.text(function(F){return sNe(F,!0)}).each(function(F){zF.font(zd.select(this),F.model.rangeFont)});var P=C.selectAll("."+ll.cn.axisExtentBottom).data($m,tg);P.enter().append("g").classed(ll.cn.axisExtentBottom,!0),P.attr("transform",function(F){return Jm(0,F.model.height+ll.axisExtentOffset)});var T=P.selectAll("."+ll.cn.axisExtentBottomText).data($m,tg);T.enter().append("text").classed(ll.cn.axisExtentBottomText,!0).attr("dy","0.75em").call(aNe),T.text(function(F){return sNe(F,!1)}).each(function(F){zF.font(zd.select(this),F.model.rangeFont)}),hNe.ensureAxisBrush(k,c,t)}});var AK=ye((TK,xNe)=>{"use strict";var CUt=gNe(),LUt=xF(),mNe=gK().isVisible,_Ne={};function yNe(e,t,r){var n=t.indexOf(r),i=e.indexOf(n);return i===-1&&(i+=t.length),i}function PUt(e,t){return function(n,i){return yNe(e,t,n)-yNe(e,t,i)}}var TK=xNe.exports=function(t,r){var n=t._fullLayout,i=LUt(t,[],_Ne);if(i){var a={},o={},s={},l={},u=n._size;r.forEach(function(v,x){var b=v[0].trace;s[x]=b.index;var g=l[x]=b.index;a[x]=t.data[g].dimensions,o[x]=t.data[g].dimensions.slice()});var c=function(v,x,b){var g=o[v][x],E=b.map(function(M){return M.slice()}),k="dimensions["+x+"].constraintrange",A=n._tracePreGUI[t._fullData[s[v]]._fullInput.uid];if(A[k]===void 0){var L=g.constraintrange;A[k]=L||null}var _=t._fullData[s[v]].dimensions[x];E.length?(E.length===1&&(E=E[0]),g.constraintrange=E,_.constraintrange=E.slice(),E=[E]):(delete g.constraintrange,delete _.constraintrange,E=null);var C={};C[k]=E,t.emit("plotly_restyle",[C,[l[v]]])},f=function(v){t.emit("plotly_hover",v)},h=function(v){t.emit("plotly_unhover",v)},d=function(v,x){var b=PUt(x,o[v].filter(mNe));a[v].sort(b),o[v].filter(function(g){return!mNe(g)}).sort(function(g){return o[v].indexOf(g)}).forEach(function(g){a[v].splice(a[v].indexOf(g),1),a[v].splice(o[v].indexOf(g),0,g)}),t.emit("plotly_restyle",[{dimensions:[a[v]]},[l[v]]])};CUt(t,r,{width:u.w,height:u.h,margin:{t:u.t,r:u.r,b:u.b,l:u.l}},{filterChanged:c,hover:f,unhover:h,axesMoved:d})}};TK.reglPrecompiled=_Ne});var wNe=ye(Sk=>{"use strict";var bNe=xa(),IUt=kd().getModuleCalcData,RUt=AK(),DUt=Zp();Sk.name="parcoords";Sk.plot=function(e){var t=IUt(e.calcdata,"parcoords")[0];t.length&&RUt(e,t)};Sk.clean=function(e,t,r,n){var i=n._has&&n._has("parcoords"),a=t._has&&t._has("parcoords");i&&!a&&(n._paperdiv.selectAll(".parcoords").remove(),n._glimages.selectAll("*").remove())};Sk.toSVG=function(e){var t=e._fullLayout._glimages,r=bNe.select(e).selectAll(".svg-container"),n=r.filter(function(a,o){return o===r.size()-1}).selectAll(".gl-canvas-context, .gl-canvas-focus");function i(){var a=this,o=a.toDataURL("image/png"),s=t.append("svg:image");s.attr({xmlns:DUt.svg,"xlink:href":o,preserveAspectRatio:"none",x:0,y:0,width:a.style.width,height:a.style.height})}n.each(i),window.setTimeout(function(){bNe.selectAll("#filterBarPattern").attr("id","filterBarPattern")},60)}});var ANe=ye((ryr,TNe)=>{"use strict";TNe.exports={attributes:cK(),supplyDefaults:GBe(),calc:WBe(),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcoords",basePlotModule:wNe(),categories:["gl","regl","noOpacity","noHover"],meta:{}}});var ENe=ye((iyr,MNe)=>{"use strict";var SNe=ANe();SNe.plot=AK();MNe.exports=SNe});var CNe=ye((nyr,kNe)=>{"use strict";kNe.exports=ENe()});var SK=ye((ayr,RNe)=>{"use strict";var PNe=no().extendFlat,zUt=vl(),LNe=Su(),FUt=Kl(),INe=Wo().hovertemplateAttrs,qUt=Ju().attributes,OUt=PNe({editType:"calc"},FUt("line",{editTypeOverride:"calc"}),{shape:{valType:"enumerated",values:["linear","hspline"],dflt:"linear",editType:"plot"},hovertemplate:INe({editType:"plot",arrayOk:!1},{keys:["count","probability"]})});RNe.exports={domain:qUt({name:"parcats",trace:!0,editType:"calc"}),hoverinfo:PNe({},zUt.hoverinfo,{flags:["count","probability"],editType:"plot",arrayOk:!1}),hoveron:{valType:"enumerated",values:["category","color","dimension"],dflt:"category",editType:"plot"},hovertemplate:INe({editType:"plot",arrayOk:!1},{keys:["count","probability","category","categorycount","colorcount","bandcolorcount"]}),arrangement:{valType:"enumerated",values:["perpendicular","freeform","fixed"],dflt:"perpendicular",editType:"plot"},bundlecolors:{valType:"boolean",dflt:!0,editType:"plot"},sortpaths:{valType:"enumerated",values:["forward","backward"],dflt:"forward",editType:"plot"},labelfont:LNe({editType:"calc"}),tickfont:LNe({autoShadowDflt:!0,editType:"calc"}),dimensions:{_isLinkedToArray:"dimension",label:{valType:"string",editType:"calc"},categoryorder:{valType:"enumerated",values:["trace","category ascending","category descending","array"],dflt:"trace",editType:"calc"},categoryarray:{valType:"data_array",editType:"calc"},ticktext:{valType:"data_array",editType:"calc"},values:{valType:"data_array",dflt:[],editType:"calc"},displayindex:{valType:"integer",editType:"calc"},editType:"calc",visible:{valType:"boolean",dflt:!0,editType:"calc"}},line:OUt,counts:{valType:"number",min:0,dflt:1,arrayOk:!0,editType:"calc"},customdata:void 0,hoverlabel:void 0,ids:void 0,legend:void 0,legendgroup:void 0,legendrank:void 0,opacity:void 0,selectedpoints:void 0,showlegend:void 0}});var FNe=ye((oyr,zNe)=>{"use strict";var _A=Mr(),BUt=Dv().hasColorscale,NUt=Uh(),UUt=Ju().defaults,VUt=Zd(),DNe=SK(),HUt=wF(),GUt=vv().isTypedArraySpec;function jUt(e,t,r,n,i){i("line.shape"),i("line.hovertemplate");var a=i("line.color",n.colorway[0]);if(BUt(e,"line")&&_A.isArrayOrTypedArray(a)){if(a.length)return i("line.colorscale"),NUt(e,t,n,i,{prefix:"line.",cLetter:"c"}),a.length;t.line.color=r}return 1/0}function WUt(e,t){function r(u,c){return _A.coerce(e,t,DNe.dimensions,u,c)}var n=r("values"),i=r("visible");if(n&&n.length||(i=t.visible=!1),i){r("label"),r("displayindex",t._index);var a=e.categoryarray,o=_A.isArrayOrTypedArray(a)&&a.length>0||GUt(a),s;o&&(s="array");var l=r("categoryorder",s);l==="array"?(r("categoryarray"),r("ticktext")):(delete e.categoryarray,delete e.ticktext),!o&&l==="array"&&(t.categoryorder="trace")}}zNe.exports=function(t,r,n,i){function a(u,c){return _A.coerce(t,r,DNe,u,c)}var o=VUt(t,r,{name:"dimensions",handleItemDefaults:WUt}),s=jUt(t,r,n,i,a);UUt(r,i,a),(!Array.isArray(o)||!o.length)&&(r.visible=!1),HUt(r,o,"values",s),a("hoveron"),a("hovertemplate"),a("arrangement"),a("bundlecolors"),a("sortpaths"),a("counts");var l=i.font;_A.coerceFont(a,"labelfont",l,{overrideDflt:{size:Math.round(l.size)}}),_A.coerceFont(a,"tickfont",l,{autoShadowDflt:!0,overrideDflt:{size:Math.round(l.size/1.2)}})}});var ONe=ye((syr,qNe)=>{"use strict";var ZUt=Km().wrap,XUt=Dv().hasColorscale,YUt=zv(),KUt=Gq(),JUt=ao(),Mk=Mr(),$Ut=uo();qNe.exports=function(t,r){var n=Mk.filterVisible(r.dimensions);if(n.length===0)return[];var i=n.map(function(p){var P;if(p.categoryorder==="trace")P=null;else if(p.categoryorder==="array")P=p.categoryarray;else{P=KUt(p.values);for(var T=!0,F=0;F=e.length||t[e[r]]!==void 0)return!1;t[e[r]]=!0}return!0}});var ZNe=ye((lyr,WNe)=>{"use strict";var ul=xa(),uVt=(R2(),ab(I2)).interpolateNumber,cVt=qP(),Ck=Nc(),mx=Mr(),Ek=mx.strTranslate,BNe=ao(),MK=id(),fVt=Ll();function hVt(e,t,r,n){var i=t._context.staticPlot,a=e.map(EVt.bind(0,t,r)),o=n.selectAll("g.parcatslayer").data([null]);o.enter().append("g").attr("class","parcatslayer").style("pointer-events",i?"none":"all");var s=o.selectAll("g.trace.parcats").data(a,u1),l=s.enter().append("g").attr("class","trace parcats");s.attr("transform",function(E){return Ek(E.x,E.y)}),l.append("g").attr("class","paths");var u=s.select("g.paths"),c=u.selectAll("path.path").data(function(E){return E.paths},u1);c.attr("fill",function(E){return E.model.color});var f=c.enter().append("path").attr("class","path").attr("stroke-opacity",0).attr("fill",function(E){return E.model.color}).attr("fill-opacity",0);CK(f),c.attr("d",function(E){return E.svgD}),f.empty()||c.sort(EK),c.exit().remove(),c.on("mouseover",dVt).on("mouseout",vVt).on("click",pVt),l.append("g").attr("class","dimensions");var h=s.select("g.dimensions"),d=h.selectAll("g.dimension").data(function(E){return E.dimensions},u1);d.enter().append("g").attr("class","dimension"),d.attr("transform",function(E){return Ek(E.x,0)}),d.exit().remove();var v=d.selectAll("g.category").data(function(E){return E.categories},u1),x=v.enter().append("g").attr("class","category");v.attr("transform",function(E){return Ek(0,E.y)}),x.append("rect").attr("class","catrect").attr("pointer-events","none"),v.select("rect.catrect").attr("fill","none").attr("width",function(E){return E.width}).attr("height",function(E){return E.height}),UNe(x);var b=v.selectAll("rect.bandrect").data(function(E){return E.bands},u1);b.each(function(){mx.raiseToTop(this)}),b.attr("fill",function(E){return E.color});var g=b.enter().append("rect").attr("class","bandrect").attr("stroke-opacity",0).attr("fill",function(E){return E.color}).attr("fill-opacity",0);b.attr("fill",function(E){return E.color}).attr("width",function(E){return E.width}).attr("height",function(E){return E.height}).attr("y",function(E){return E.y}).attr("cursor",function(E){return E.parcatsViewModel.arrangement==="fixed"?"default":E.parcatsViewModel.arrangement==="perpendicular"?"ns-resize":"move"}),PK(g),b.exit().remove(),x.append("text").attr("class","catlabel").attr("pointer-events","none"),v.select("text.catlabel").attr("text-anchor",function(E){return kk(E)?"start":"end"}).attr("alignment-baseline","middle").style("fill","rgb(0, 0, 0)").attr("x",function(E){return kk(E)?E.width+5:-5}).attr("y",function(E){return E.height/2}).text(function(E){return E.model.categoryLabel}).each(function(E){BNe.font(ul.select(this),E.parcatsViewModel.categorylabelfont),fVt.convertToTspans(ul.select(this),t)}),x.append("text").attr("class","dimlabel"),v.select("text.dimlabel").attr("text-anchor","middle").attr("alignment-baseline","baseline").attr("cursor",function(E){return E.parcatsViewModel.arrangement==="fixed"?"default":"ew-resize"}).attr("x",function(E){return E.width/2}).attr("y",-5).text(function(E,k){return k===0?E.parcatsViewModel.model.dimensions[E.model.dimensionInd].dimensionLabel:null}).each(function(E){BNe.font(ul.select(this),E.parcatsViewModel.labelfont)}),v.selectAll("rect.bandrect").on("mouseover",wVt).on("mouseout",TVt),v.exit().remove(),d.call(ul.behavior.drag().origin(function(E){return{x:E.x,y:0}}).on("dragstart",AVt).on("drag",SVt).on("dragend",MVt)),s.each(function(E){E.traceSelection=ul.select(this),E.pathSelection=ul.select(this).selectAll("g.paths").selectAll("path.path"),E.dimensionSelection=ul.select(this).selectAll("g.dimensions").selectAll("g.dimension")}),s.exit().remove()}WNe.exports=function(e,t,r,n){hVt(r,e,n,t)};function u1(e){return e.key}function kk(e){var t=e.parcatsViewModel.dimensions.length,r=e.parcatsViewModel.dimensions[t-1].model.dimensionInd;return e.model.dimensionInd===r}function EK(e,t){return e.model.rawColor>t.model.rawColor?1:e.model.rawColor"),_=ul.mouse(i)[0];Ck.loneHover({trace:a,x:v-s.left+l.left,y:x-s.top+l.top,text:L,color:e.model.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:10,fontColor:b,idealAlign:_1&&u.displayInd===l.dimensions.length-1?(h=o.left,d="left"):(h=o.left+o.width,d="right");var v=s.model.count,x=s.model.categoryLabel,b=v/s.parcatsViewModel.model.count,g={countLabel:v,categoryLabel:x,probabilityLabel:b.toFixed(3)},E=[];s.parcatsViewModel.hoverinfoItems.indexOf("count")!==-1&&E.push(["Count:",g.countLabel].join(" ")),s.parcatsViewModel.hoverinfoItems.indexOf("probability")!==-1&&E.push(["P("+g.categoryLabel+"):",g.probabilityLabel].join(" "));var k=E.join("
");return{trace:c,x:n*(h-t.left),y:i*(f-t.top),text:k,color:"lightgray",borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontSize:12,fontColor:"black",idealAlign:d,hovertemplate:c.hovertemplate,hovertemplateLabels:g,eventData:[{data:c._input,fullData:c,count:v,category:x,probability:b}]}}function xVt(e,t,r){var n=[];return ul.select(r.parentNode.parentNode).selectAll("g.category").select("rect.catrect").each(function(){var i=this;n.push(VNe(e,t,i))}),n}function bVt(e,t,r){e._fullLayout._calcInverseTransform(e);var n=e._fullLayout._invScaleX,i=e._fullLayout._invScaleY,a=r.getBoundingClientRect(),o=ul.select(r).datum(),s=o.categoryViewModel,l=s.parcatsViewModel,u=l.model.dimensions[s.model.dimensionInd],c=l.trace,f=a.y+a.height/2,h,d;l.dimensions.length>1&&u.displayInd===l.dimensions.length-1?(h=a.left,d="left"):(h=a.left+a.width,d="right");var v=s.model.categoryLabel,x=o.parcatsViewModel.model.count,b=0;o.categoryViewModel.bands.forEach(function(P){P.color===o.color&&(b+=P.count)});var g=s.model.count,E=0;l.pathSelection.each(function(P){P.model.color===o.color&&(E+=P.model.count)});var k=b/x,A=b/E,L=b/g,_={countLabel:b,categoryLabel:v,probabilityLabel:k.toFixed(3)},C=[];s.parcatsViewModel.hoverinfoItems.indexOf("count")!==-1&&C.push(["Count:",_.countLabel].join(" ")),s.parcatsViewModel.hoverinfoItems.indexOf("probability")!==-1&&(C.push("P(color \u2229 "+v+"): "+_.probabilityLabel),C.push("P("+v+" | color): "+A.toFixed(3)),C.push("P(color | "+v+"): "+L.toFixed(3)));var M=C.join("
"),p=MK.mostReadable(o.color,["black","white"]);return{trace:c,x:n*(h-t.left),y:i*(f-t.top),text:M,color:o.color,borderColor:"black",fontFamily:'Monaco, "Courier New", monospace',fontColor:p,fontSize:10,idealAlign:d,hovertemplate:c.hovertemplate,hovertemplateLabels:_,eventData:[{data:c._input,fullData:c,category:v,count:x,probability:k,categorycount:g,colorcount:E,bandcolorcount:b}]}}function wVt(e){if(!e.parcatsViewModel.dragDimension&&e.parcatsViewModel.hoverinfoItems.indexOf("skip")===-1){var t=ul.mouse(this)[1];if(t<-1)return;var r=e.parcatsViewModel.graphDiv,n=r._fullLayout,i=n._paperdiv.node().getBoundingClientRect(),a=e.parcatsViewModel.hoveron,o=this;if(a==="color"?(_Vt(o),RK(o,"plotly_hover",ul.event)):(yVt(o),IK(o,"plotly_hover",ul.event)),e.parcatsViewModel.hoverinfoItems.indexOf("none")===-1){var s;a==="category"?s=VNe(r,i,o):a==="color"?s=bVt(r,i,o):a==="dimension"&&(s=xVt(r,i,o)),s&&Ck.loneHover(s,{container:n._hoverlayer.node(),outerContainer:n._paper.node(),gd:r})}}}function TVt(e){var t=e.parcatsViewModel;if(!t.dragDimension&&(CK(t.pathSelection),UNe(t.dimensionSelection.selectAll("g.category")),PK(t.dimensionSelection.selectAll("g.category").selectAll("rect.bandrect")),Ck.loneUnhover(t.graphDiv._fullLayout._hoverlayer.node()),t.pathSelection.sort(EK),t.hoverinfoItems.indexOf("skip")===-1)){var r=e.parcatsViewModel.hoveron,n=this;r==="color"?RK(n,"plotly_unhover",ul.event):IK(n,"plotly_unhover",ul.event)}}function AVt(e){e.parcatsViewModel.arrangement!=="fixed"&&(e.dragDimensionDisplayInd=e.model.displayInd,e.initialDragDimensionDisplayInds=e.parcatsViewModel.model.dimensions.map(function(t){return t.displayInd}),e.dragHasMoved=!1,e.dragCategoryDisplayInd=null,ul.select(this).selectAll("g.category").select("rect.catrect").each(function(t){var r=ul.mouse(this)[0],n=ul.mouse(this)[1];-2<=r&&r<=t.width+2&&-2<=n&&n<=t.height+2&&(e.dragCategoryDisplayInd=t.model.displayInd,e.initialDragCategoryDisplayInds=e.model.categories.map(function(i){return i.displayInd}),t.model.dragY=t.y,mx.raiseToTop(this.parentNode),ul.select(this.parentNode).selectAll("rect.bandrect").each(function(i){i.yc.y+c.height/2&&(a.model.displayInd=c.model.displayInd,c.model.displayInd=s),e.dragCategoryDisplayInd=a.model.displayInd}if(e.dragCategoryDisplayInd===null||e.parcatsViewModel.arrangement==="freeform"){i.model.dragX=ul.event.x;var f=e.parcatsViewModel.dimensions[r],h=e.parcatsViewModel.dimensions[n];f!==void 0&&i.model.dragXh.x&&(i.model.displayInd=h.model.displayInd,h.model.displayInd=e.dragDimensionDisplayInd),e.dragDimensionDisplayInd=i.model.displayInd}zK(e.parcatsViewModel),DK(e.parcatsViewModel),jNe(e.parcatsViewModel),GNe(e.parcatsViewModel)}}function MVt(e){if(e.parcatsViewModel.arrangement!=="fixed"&&e.dragDimensionDisplayInd!==null){ul.select(this).selectAll("text").attr("font-weight","normal");var t={},r=HNe(e.parcatsViewModel),n=e.parcatsViewModel.model.dimensions.map(function(h){return h.displayInd}),i=e.initialDragDimensionDisplayInds.some(function(h,d){return h!==n[d]});i&&n.forEach(function(h,d){var v=e.parcatsViewModel.model.dimensions[d].containerInd;t["dimensions["+v+"].displayindex"]=h});var a=!1;if(e.dragCategoryDisplayInd!==null){var o=e.model.categories.map(function(h){return h.displayInd});if(a=e.initialDragCategoryDisplayInds.some(function(h,d){return h!==o[d]}),a){var s=e.model.categories.slice().sort(function(h,d){return h.displayInd-d.displayInd}),l=s.map(function(h){return h.categoryValue}),u=s.map(function(h){return h.categoryLabel});t["dimensions["+e.model.containerInd+"].categoryarray"]=[l],t["dimensions["+e.model.containerInd+"].ticktext"]=[u],t["dimensions["+e.model.containerInd+"].categoryorder"]="array"}}if(e.parcatsViewModel.hoverinfoItems.indexOf("skip")===-1&&!e.dragHasMoved&&e.potentialClickBand&&(e.parcatsViewModel.hoveron==="color"?RK(e.potentialClickBand,"plotly_click",ul.event.sourceEvent):IK(e.potentialClickBand,"plotly_click",ul.event.sourceEvent)),e.model.dragX=null,e.dragCategoryDisplayInd!==null){var c=e.parcatsViewModel.dimensions[e.dragDimensionDisplayInd].categories[e.dragCategoryDisplayInd];c.model.dragY=null,e.dragCategoryDisplayInd=null}e.dragDimensionDisplayInd=null,e.parcatsViewModel.dragDimension=null,e.dragHasMoved=null,e.potentialClickBand=null,zK(e.parcatsViewModel),DK(e.parcatsViewModel);var f=ul.transition().duration(300).ease("cubic-in-out");f.each(function(){jNe(e.parcatsViewModel,!0),GNe(e.parcatsViewModel,!0)}).each("end",function(){(i||a)&&cVt.restyle(e.parcatsViewModel.graphDiv,t,[r])})}}function HNe(e){for(var t,r=e.graphDiv._fullData,n=0;n=0;l--)u+="C"+o[l]+","+(t[l+1]+n)+" "+a[l]+","+(t[l]+n)+" "+(e[l]+r[l])+","+(t[l]+n),u+="l-"+r[l]+",0 ";return u+="Z",u}function DK(e){var t=e.dimensions,r=e.model,n=t.map(function(q){return q.categories.map(function(V){return V.y})}),i=e.model.dimensions.map(function(q){return q.categories.map(function(V){return V.displayInd})}),a=e.model.dimensions.map(function(q){return q.displayInd}),o=e.dimensions.map(function(q){return q.model.dimensionInd}),s=t.map(function(q){return q.x}),l=t.map(function(q){return q.width}),u=[];for(var c in r.paths)r.paths.hasOwnProperty(c)&&u.push(r.paths[c]);function f(q){var V=q.categoryInds.map(function(X,G){return i[G][X]}),H=o.map(function(X){return V[X]});return H}u.sort(function(q,V){var H=f(q),X=f(V);return e.sortpaths==="backward"&&(H.reverse(),X.reverse()),H.push(q.valueInds[0]),X.push(V.valueInds[0]),e.bundlecolors&&(H.unshift(q.rawColor),X.unshift(V.rawColor)),HX?1:0});for(var h=new Array(u.length),d=t[0].model.count,v=t[0].categories.map(function(q){return q.height}).reduce(function(q,V){return q+V}),x=0;x0?g=v*(b.count/d):g=0;for(var E=new Array(n.length),k=0;k1?o=(e.width-2*r-n)/(i-1):o=0,s=r,l=s+o*a;var u=[],c=e.model.maxCats,f=t.categories.length,h=8,d=t.count,v=e.height-h*(c-1),x,b,g,E,k,A=(c-f)*h/2,L=t.categories.map(function(_){return{displayInd:_.displayInd,categoryInd:_.categoryInd}});for(L.sort(function(_,C){return _.displayInd-C.displayInd}),k=0;k0?x=b.count/d*v:x=0,g={key:b.valueInds[0],model:b,width:n,height:x,y:b.dragY!==null?b.dragY:A,bands:[],parcatsViewModel:e},A=A+x+h,u.push(g);return{key:t.dimensionInd,x:t.dragX!==null?t.dragX:l,y:0,width:n,model:t,categories:u,parcatsViewModel:e,dragCategoryDisplayInd:null,dragDimensionDisplayInd:null,initialDragDimensionDisplayInds:null,initialDragCategoryDisplayInds:null,dragHasMoved:null,potentialClickBand:null}}});var FK=ye((uyr,XNe)=>{"use strict";var CVt=ZNe();XNe.exports=function(t,r,n,i){var a=t._fullLayout,o=a._paper,s=a._size;CVt(t,o,r,{width:s.w,height:s.h,margin:{t:s.t,r:s.r,b:s.b,l:s.l}},n,i)}});var KNe=ye(OF=>{"use strict";var LVt=kd().getModuleCalcData,PVt=FK(),YNe="parcats";OF.name=YNe;OF.plot=function(e,t,r,n){var i=LVt(e.calcdata,YNe);if(i.length){var a=i[0];PVt(e,a,r,n)}};OF.clean=function(e,t,r,n){var i=n._has&&n._has("parcats"),a=t._has&&t._has("parcats");i&&!a&&n._paperdiv.selectAll(".parcats").remove()}});var $Ne=ye((fyr,JNe)=>{"use strict";JNe.exports={attributes:SK(),supplyDefaults:FNe(),calc:ONe(),plot:FK(),colorbar:{container:"line",min:"cmin",max:"cmax"},moduleType:"trace",name:"parcats",basePlotModule:KNe(),categories:["noOpacity"],meta:{}}});var eUe=ye((hyr,QNe)=>{"use strict";QNe.exports=$Ne()});var c1=ye((dyr,sUe)=>{"use strict";var IVt=X1(),tUe="1.13.4",aUe='\xA9 OpenStreetMap contributors',rUe=['\xA9 Carto',aUe].join(" "),iUe=['Map tiles by Stamen Design','under CC BY 3.0',"|",'Data by OpenStreetMap contributors','under ODbL'].join(" "),RVt=['Map tiles by Stamen Design','under CC BY 3.0',"|",'Data by OpenStreetMap contributors','under CC BY SA'].join(" "),oUe={"open-street-map":{id:"osm",version:8,sources:{"plotly-osm-tiles":{type:"raster",attribution:aUe,tiles:["https://a.tile.openstreetmap.org/{z}/{x}/{y}.png","https://b.tile.openstreetmap.org/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-osm-tiles",type:"raster",source:"plotly-osm-tiles",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf"},"white-bg":{id:"white-bg",version:8,sources:{},layers:[{id:"white-bg",type:"background",paint:{"background-color":"#FFFFFF"},minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf"},"carto-positron":{id:"carto-positron",version:8,sources:{"plotly-carto-positron":{type:"raster",attribution:rUe,tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-carto-positron",type:"raster",source:"plotly-carto-positron",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf"},"carto-darkmatter":{id:"carto-darkmatter",version:8,sources:{"plotly-carto-darkmatter":{type:"raster",attribution:rUe,tiles:["https://cartodb-basemaps-c.global.ssl.fastly.net/dark_all/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-carto-darkmatter",type:"raster",source:"plotly-carto-darkmatter",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf"},"stamen-terrain":{id:"stamen-terrain",version:8,sources:{"plotly-stamen-terrain":{type:"raster",attribution:iUe,tiles:["https://tiles.stadiamaps.com/tiles/stamen_terrain/{z}/{x}/{y}.png?api_key="],tileSize:256}},layers:[{id:"plotly-stamen-terrain",type:"raster",source:"plotly-stamen-terrain",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf"},"stamen-toner":{id:"stamen-toner",version:8,sources:{"plotly-stamen-toner":{type:"raster",attribution:iUe,tiles:["https://tiles.stadiamaps.com/tiles/stamen_toner/{z}/{x}/{y}.png?api_key="],tileSize:256}},layers:[{id:"plotly-stamen-toner",type:"raster",source:"plotly-stamen-toner",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf"},"stamen-watercolor":{id:"stamen-watercolor",version:8,sources:{"plotly-stamen-watercolor":{type:"raster",attribution:RVt,tiles:["https://tiles.stadiamaps.com/tiles/stamen_watercolor/{z}/{x}/{y}.jpg?api_key="],tileSize:256}},layers:[{id:"plotly-stamen-watercolor",type:"raster",source:"plotly-stamen-watercolor",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf"}},nUe=IVt(oUe);sUe.exports={requiredVersion:tUe,styleUrlPrefix:"mapbox://styles/mapbox/",styleUrlSuffix:"v9",styleValuesMapbox:["basic","streets","outdoors","light","dark","satellite","satellite-streets"],styleValueDflt:"basic",stylesNonMapbox:oUe,styleValuesNonMapbox:nUe,traceLayerPrefix:"plotly-trace-layer-",layoutLayerPrefix:"plotly-layout-layer-",wrongVersionErrorMsg:["Your custom plotly.js bundle is not using the correct mapbox-gl version","Please install @plotly/mapbox-gl@"+tUe+"."].join(` +`),noAccessTokenErrorMsg:["Missing Mapbox access token.","Mapbox trace type require a Mapbox access token to be registered.","For example:"," Plotly.newPlot(gd, data, layout, { mapboxAccessToken: 'my-access-token' });","More info here: https://www.mapbox.com/help/define-access-token/"].join(` +`),missingStyleErrorMsg:["No valid mapbox style found, please set `mapbox.style` to one of:",nUe.join(", "),"or register a Mapbox access token to use a Mapbox-served style."].join(` +`),multipleTokensErrorMsg:["Set multiple mapbox access token across different mapbox subplot,","using first token found as mapbox-gl does not allow multipleaccess tokens on the same page."].join(` +`),mapOnErrorMsg:"Mapbox error.",mapboxLogo:{path0:"m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z",path1:"M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z",path2:"M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z",polygon:"11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34"},styleRules:{map:"overflow:hidden;position:relative;","missing-css":"display:none;",canary:"background-color:salmon;","ctrl-bottom-left":"position: absolute; pointer-events: none; z-index: 2; bottom: 0; left: 0;","ctrl-bottom-right":"position: absolute; pointer-events: none; z-index: 2; right: 0; bottom: 0;",ctrl:"clear: both; pointer-events: auto; transform: translate(0, 0);","ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner":"display: none;","ctrl-attrib.mapboxgl-compact:hover .mapboxgl-ctrl-attrib-inner":"display: block; margin-top:2px","ctrl-attrib.mapboxgl-compact:hover":"padding: 2px 24px 2px 4px; visibility: visible; margin-top: 6px;","ctrl-attrib.mapboxgl-compact::after":`content: ""; cursor: pointer; position: absolute; background-image: url('data:image/svg+xml;charset=utf-8,%3Csvg viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg"%3E %3Cpath fill="%23333333" fill-rule="evenodd" d="M4,10a6,6 0 1,0 12,0a6,6 0 1,0 -12,0 M9,7a1,1 0 1,0 2,0a1,1 0 1,0 -2,0 M9,10a1,1 0 1,1 2,0l0,3a1,1 0 1,1 -2,0"/%3E %3C/svg%3E'); background-color: rgba(255, 255, 255, 0.5); width: 24px; height: 24px; box-sizing: border-box; border-radius: 12px;`,"ctrl-attrib.mapboxgl-compact":"min-height: 20px; padding: 0; margin: 10px; position: relative; background-color: #fff; border-radius: 3px 12px 12px 3px;","ctrl-bottom-right > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; right: 0","ctrl-bottom-left > .mapboxgl-ctrl-attrib.mapboxgl-compact::after":"bottom: 0; left: 0","ctrl-bottom-left .mapboxgl-ctrl":"margin: 0 0 10px 10px; float: left;","ctrl-bottom-right .mapboxgl-ctrl":"margin: 0 10px 10px 0; float: right;","ctrl-attrib":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a":"color: rgba(0, 0, 0, 0.75); text-decoration: none; font-size: 12px","ctrl-attrib a:hover":"color: inherit; text-decoration: underline;","ctrl-attrib .mapbox-improve-map":"font-weight: bold; margin-left: 2px;","attrib-empty":"display: none;","ctrl-logo":`display:block; width: 21px; height: 21px; background-image: url('data:image/svg+xml;charset=utf-8,%3C?xml version="1.0" encoding="utf-8"?%3E %3Csvg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 21 21" style="enable-background:new 0 0 21 21;" xml:space="preserve"%3E%3Cg transform="translate(0,0.01)"%3E%3Cpath d="m 10.5,1.24 c -5.11,0 -9.25,4.15 -9.25,9.25 0,5.1 4.15,9.25 9.25,9.25 5.1,0 9.25,-4.15 9.25,-9.25 0,-5.11 -4.14,-9.25 -9.25,-9.25 z m 4.39,11.53 c -1.93,1.93 -4.78,2.31 -6.7,2.31 -0.7,0 -1.41,-0.05 -2.1,-0.16 0,0 -1.02,-5.64 2.14,-8.81 0.83,-0.83 1.95,-1.28 3.13,-1.28 1.27,0 2.49,0.51 3.39,1.42 1.84,1.84 1.89,4.75 0.14,6.52 z" style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3Cpath d="M 10.5,-0.01 C 4.7,-0.01 0,4.7 0,10.49 c 0,5.79 4.7,10.5 10.5,10.5 5.8,0 10.5,-4.7 10.5,-10.5 C 20.99,4.7 16.3,-0.01 10.5,-0.01 Z m 0,19.75 c -5.11,0 -9.25,-4.15 -9.25,-9.25 0,-5.1 4.14,-9.26 9.25,-9.26 5.11,0 9.25,4.15 9.25,9.25 0,5.13 -4.14,9.26 -9.25,9.26 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpath d="M 14.74,6.25 C 12.9,4.41 9.98,4.35 8.23,6.1 5.07,9.27 6.09,14.91 6.09,14.91 c 0,0 5.64,1.02 8.81,-2.14 C 16.64,11 16.59,8.09 14.74,6.25 Z m -2.27,4.09 -0.91,1.87 -0.9,-1.87 -1.86,-0.91 1.86,-0.9 0.9,-1.87 0.91,1.87 1.86,0.9 z" style="opacity:0.35;enable-background:new" class="st1"/%3E%3Cpolygon points="11.56,12.21 10.66,10.34 8.8,9.43 10.66,8.53 11.56,6.66 12.47,8.53 14.33,9.43 12.47,10.34 " style="opacity:0.9;fill:%23ffffff;enable-background:new" class="st0"/%3E%3C/g%3E%3C/svg%3E')`}}});var Pk=ye((vyr,fUe)=>{"use strict";var lUe=Mr(),uUe=va().defaultLine,DVt=Ju().attributes,zVt=Su(),FVt=Uc().textposition,qVt=Bu().overrideAll,OVt=Vs().templatedArray,qK=c1(),cUe=zVt({noFontVariant:!0,noFontShadow:!0,noFontLineposition:!0,noFontTextcase:!0});cUe.family.dflt="Open Sans Regular, Arial Unicode MS Regular";var BVt=fUe.exports=qVt({_arrayAttrRegexps:[lUe.counterRegex("mapbox",".layers",!0)],domain:DVt({name:"mapbox"}),accesstoken:{valType:"string",noBlank:!0,strict:!0},style:{valType:"any",values:qK.styleValuesMapbox.concat(qK.styleValuesNonMapbox),dflt:qK.styleValueDflt},center:{lon:{valType:"number",dflt:0},lat:{valType:"number",dflt:0}},zoom:{valType:"number",dflt:1},bearing:{valType:"number",dflt:0},pitch:{valType:"number",dflt:0},bounds:{west:{valType:"number"},east:{valType:"number"},south:{valType:"number"},north:{valType:"number"}},layers:OVt("layer",{visible:{valType:"boolean",dflt:!0},sourcetype:{valType:"enumerated",values:["geojson","vector","raster","image"],dflt:"geojson"},source:{valType:"any"},sourcelayer:{valType:"string",dflt:""},sourceattribution:{valType:"string"},type:{valType:"enumerated",values:["circle","line","fill","symbol","raster"],dflt:"circle"},coordinates:{valType:"any"},below:{valType:"string"},color:{valType:"color",dflt:uUe},opacity:{valType:"number",min:0,max:1,dflt:1},minzoom:{valType:"number",min:0,max:24,dflt:0},maxzoom:{valType:"number",min:0,max:24,dflt:24},circle:{radius:{valType:"number",dflt:15}},line:{width:{valType:"number",dflt:2},dash:{valType:"data_array"}},fill:{outlinecolor:{valType:"color",dflt:uUe}},symbol:{icon:{valType:"string",dflt:"marker"},iconsize:{valType:"number",dflt:10},text:{valType:"string",dflt:""},placement:{valType:"enumerated",values:["point","line","line-center"],dflt:"point"},textfont:cUe,textposition:lUe.extendFlat({},FVt,{arrayOk:!1})}})},"plot","from-root");BVt.uirevision={valType:"any",editType:"none"}});var BF=ye((pyr,vUe)=>{"use strict";var NVt=Wo().hovertemplateAttrs,UVt=Wo().texttemplateAttrs,VVt=Eg(),Ik=H2(),xA=Uc(),hUe=Pk(),HVt=vl(),GVt=Kl(),ew=no().extendFlat,jVt=Bu().overrideAll,WVt=Pk(),dUe=Ik.line,bA=Ik.marker;vUe.exports=jVt({lon:Ik.lon,lat:Ik.lat,cluster:{enabled:{valType:"boolean"},maxzoom:ew({},WVt.layers.maxzoom,{}),step:{valType:"number",arrayOk:!0,dflt:-1,min:-1},size:{valType:"number",arrayOk:!0,dflt:20,min:0},color:{valType:"color",arrayOk:!0},opacity:ew({},bA.opacity,{dflt:1})},mode:ew({},xA.mode,{dflt:"markers"}),text:ew({},xA.text,{}),texttemplate:UVt({editType:"plot"},{keys:["lat","lon","text"]}),hovertext:ew({},xA.hovertext,{}),line:{color:dUe.color,width:dUe.width},connectgaps:xA.connectgaps,marker:ew({symbol:{valType:"string",dflt:"circle",arrayOk:!0},angle:{valType:"number",dflt:"auto",arrayOk:!0},allowoverlap:{valType:"boolean",dflt:!1},opacity:bA.opacity,size:bA.size,sizeref:bA.sizeref,sizemin:bA.sizemin,sizemode:bA.sizemode},GVt("marker")),fill:Ik.fill,fillcolor:VVt(),textfont:hUe.layers.symbol.textfont,textposition:hUe.layers.symbol.textposition,below:{valType:"string"},selected:{marker:xA.selected.marker},unselected:{marker:xA.unselected.marker},hoverinfo:ew({},HVt.hoverinfo,{flags:["lon","lat","text","name"]}),hovertemplate:NVt()},"calc","nested")});var OK=ye((gyr,pUe)=>{"use strict";var ZVt=["Metropolis Black Italic","Metropolis Black","Metropolis Bold Italic","Metropolis Bold","Metropolis Extra Bold Italic","Metropolis Extra Bold","Metropolis Extra Light Italic","Metropolis Extra Light","Metropolis Light Italic","Metropolis Light","Metropolis Medium Italic","Metropolis Medium","Metropolis Regular Italic","Metropolis Regular","Metropolis Semi Bold Italic","Metropolis Semi Bold","Metropolis Thin Italic","Metropolis Thin","Open Sans Bold Italic","Open Sans Bold","Open Sans Extrabold Italic","Open Sans Extrabold","Open Sans Italic","Open Sans Light Italic","Open Sans Light","Open Sans Regular","Open Sans Semibold Italic","Open Sans Semibold","Klokantech Noto Sans Bold","Klokantech Noto Sans CJK Bold","Klokantech Noto Sans CJK Regular","Klokantech Noto Sans Italic","Klokantech Noto Sans Regular"];pUe.exports={isSupportedFont:function(e){return ZVt.indexOf(e)!==-1}}});var yUe=ye((myr,mUe)=>{"use strict";var Rk=Mr(),BK=lu(),XVt=$p(),YVt=R0(),KVt=D0(),JVt=Ig(),gUe=BF(),$Vt=OK().isSupportedFont;mUe.exports=function(t,r,n,i){function a(g,E){return Rk.coerce(t,r,gUe,g,E)}function o(g,E){return Rk.coerce2(t,r,gUe,g,E)}var s=QVt(t,r,a);if(!s){r.visible=!1;return}if(a("text"),a("texttemplate"),a("hovertext"),a("hovertemplate"),a("mode"),a("below"),BK.hasMarkers(r)){XVt(t,r,n,i,a,{noLine:!0,noAngle:!0}),a("marker.allowoverlap"),a("marker.angle");var l=r.marker;l.symbol!=="circle"&&(Rk.isArrayOrTypedArray(l.size)&&(l.size=l.size[0]),Rk.isArrayOrTypedArray(l.color)&&(l.color=l.color[0]))}BK.hasLines(r)&&(YVt(t,r,n,i,a,{noDash:!0}),a("connectgaps"));var u=o("cluster.maxzoom"),c=o("cluster.step"),f=o("cluster.color",r.marker&&r.marker.color||n),h=o("cluster.size"),d=o("cluster.opacity"),v=u!==!1||c!==!1||f!==!1||h!==!1||d!==!1,x=a("cluster.enabled",v);if(x||BK.hasText(r)){var b=i.font.family;KVt(t,r,i,a,{noSelect:!0,noFontVariant:!0,noFontShadow:!0,noFontLineposition:!0,noFontTextcase:!0,font:{family:$Vt(b)?b:"Open Sans Regular",weight:i.font.weight,style:i.font.style,size:i.font.size,color:i.font.color}})}a("fill"),r.fill!=="none"&&JVt(t,r,n,a),Rk.coerceSelectionMarkerOpacity(r,a)};function QVt(e,t,r){var n=r("lon")||[],i=r("lat")||[],a=Math.min(n.length,i.length);return t._length=a,a}});var NK=ye((yyr,xUe)=>{"use strict";var _Ue=Qa();xUe.exports=function(t,r,n){var i={},a=n[r.subplot]._subplot,o=a.mockAxis,s=t.lonlat;return i.lonLabel=_Ue.tickText(o,o.c2l(s[0]),!0).text,i.latLabel=_Ue.tickText(o,o.c2l(s[1]),!0).text,i}});var UK=ye((_yr,wUe)=>{"use strict";var bUe=Mr();wUe.exports=function(t,r){var n=t.split(" "),i=n[0],a=n[1],o=bUe.isArrayOrTypedArray(r)?bUe.mean(r):r,s=.5+o/100,l=1.5+o/100,u=["",""],c=[0,0];switch(i){case"top":u[0]="top",c[1]=-l;break;case"bottom":u[0]="bottom",c[1]=l;break}switch(a){case"left":u[1]="right",c[0]=-s;break;case"right":u[1]="left",c[0]=s;break}var f;return u[0]&&u[1]?f=u.join("-"):u[0]?f=u[0]:u[1]?f=u[1]:f="center",{anchor:f,offset:c}}});var kUe=ye((xyr,EUe)=>{"use strict";var SUe=uo(),iv=Mr(),eHt=es().BADNUM,UF=tx(),TUe=Mu(),tHt=ao(),rHt=S3(),VF=lu(),iHt=OK().isSupportedFont,nHt=UK(),aHt=rp().appendArrayPointValue,oHt=Ll().NEWLINES,sHt=Ll().BR_TAG_ALL;EUe.exports=function(t,r){var n=r[0].trace,i=n.visible===!0&&n._length!==0,a=n.fill!=="none",o=VF.hasLines(n),s=VF.hasMarkers(n),l=VF.hasText(n),u=s&&n.marker.symbol==="circle",c=s&&n.marker.symbol!=="circle",f=n.cluster&&n.cluster.enabled,h=NF("fill"),d=NF("line"),v=NF("circle"),x=NF("symbol"),b={fill:h,line:d,circle:v,symbol:x};if(!i)return b;var g;if((a||o)&&(g=UF.calcTraceToLineCoords(r)),a&&(h.geojson=UF.makePolygon(g),h.layout.visibility="visible",iv.extendFlat(h.paint,{"fill-color":n.fillcolor})),o&&(d.geojson=UF.makeLine(g),d.layout.visibility="visible",iv.extendFlat(d.paint,{"line-width":n.line.width,"line-color":n.line.color,"line-opacity":n.opacity})),u){var E=lHt(r);v.geojson=E.geojson,v.layout.visibility="visible",f&&(v.filter=["!",["has","point_count"]],b.cluster={type:"circle",filter:["has","point_count"],layout:{visibility:"visible"},paint:{"circle-color":HK(n.cluster.color,n.cluster.step),"circle-radius":HK(n.cluster.size,n.cluster.step),"circle-opacity":HK(n.cluster.opacity,n.cluster.step)}},b.clusterCount={type:"symbol",filter:["has","point_count"],paint:{},layout:{"text-field":"{point_count_abbreviated}","text-font":AUe(n),"text-size":12}}),iv.extendFlat(v.paint,{"circle-color":E.mcc,"circle-radius":E.mrc,"circle-opacity":E.mo})}if(u&&f&&(v.filter=["!",["has","point_count"]]),(c||l)&&(x.geojson=uHt(r,t),iv.extendFlat(x.layout,{visibility:"visible","icon-image":"{symbol}-15","text-field":"{text}"}),c&&(iv.extendFlat(x.layout,{"icon-size":n.marker.size/10}),"angle"in n.marker&&n.marker.angle!=="auto"&&iv.extendFlat(x.layout,{"icon-rotate":{type:"identity",property:"angle"},"icon-rotation-alignment":"map"}),x.layout["icon-allow-overlap"]=n.marker.allowoverlap,iv.extendFlat(x.paint,{"icon-opacity":n.opacity*n.marker.opacity,"icon-color":n.marker.color})),l)){var k=(n.marker||{}).size,A=nHt(n.textposition,k);iv.extendFlat(x.layout,{"text-size":n.textfont.size,"text-anchor":A.anchor,"text-offset":A.offset,"text-font":AUe(n)}),iv.extendFlat(x.paint,{"text-color":n.textfont.color,"text-opacity":n.opacity})}return b};function NF(e){return{type:e,geojson:UF.makeBlank(),layout:{visibility:"none"},filter:null,paint:{}}}function lHt(e){var t=e[0].trace,r=t.marker,n=t.selectedpoints,i=iv.isArrayOrTypedArray(r.color),a=iv.isArrayOrTypedArray(r.size),o=iv.isArrayOrTypedArray(r.opacity),s;function l(k){return t.opacity*k}function u(k){return k/2}var c;i&&(TUe.hasColorscale(t,"marker")?c=TUe.makeColorScaleFuncFromTrace(r):c=iv.identity);var f;a&&(f=rHt(t));var h;o&&(h=function(k){var A=SUe(k)?+iv.constrain(k,0,1):0;return l(A)});var d=[];for(s=0;s850?s+=" Black":i>750?s+=" Extra Bold":i>650?s+=" Bold":i>550?s+=" Semi Bold":i>450?s+=" Medium":i>350?s+=" Regular":i>250?s+=" Light":i>150?s+=" Extra Light":s+=" Thin"):a.slice(0,2).join(" ")==="Open Sans"?(s="Open Sans",i>750?s+=" Extrabold":i>650?s+=" Bold":i>550?s+=" Semibold":i>350?s+=" Regular":s+=" Light"):a.slice(0,3).join(" ")==="Klokantech Noto Sans"&&(s="Klokantech Noto Sans",a[3]==="CJK"&&(s+=" CJK"),s+=i>500?" Bold":" Regular")),o&&(s+=" Italic"),s==="Open Sans Regular Italic"?s="Open Sans Italic":s==="Open Sans Regular Bold"?s="Open Sans Bold":s==="Open Sans Regular Bold Italic"?s="Open Sans Bold Italic":s==="Klokantech Noto Sans Regular Italic"&&(s="Klokantech Noto Sans Italic"),iHt(s)||(s=r);var l=s.split(", ");return l}});var IUe=ye((byr,PUe)=>{"use strict";var cHt=Mr(),CUe=kUe(),wA=c1().traceLayerPrefix,rg={cluster:["cluster","clusterCount","circle"],nonCluster:["fill","line","circle","symbol"]};function LUe(e,t,r,n){this.type="scattermapbox",this.subplot=e,this.uid=t,this.clusterEnabled=r,this.isHidden=n,this.sourceIds={fill:"source-"+t+"-fill",line:"source-"+t+"-line",circle:"source-"+t+"-circle",symbol:"source-"+t+"-symbol",cluster:"source-"+t+"-circle",clusterCount:"source-"+t+"-circle"},this.layerIds={fill:wA+t+"-fill",line:wA+t+"-line",circle:wA+t+"-circle",symbol:wA+t+"-symbol",cluster:wA+t+"-cluster",clusterCount:wA+t+"-cluster-count"},this.below=null}var Dk=LUe.prototype;Dk.addSource=function(e,t,r){var n={type:"geojson",data:t.geojson};r&&r.enabled&&cHt.extendFlat(n,{cluster:!0,clusterMaxZoom:r.maxzoom});var i=this.subplot.map.getSource(this.sourceIds[e]);i?i.setData(t.geojson):this.subplot.map.addSource(this.sourceIds[e],n)};Dk.setSourceData=function(e,t){this.subplot.map.getSource(this.sourceIds[e]).setData(t.geojson)};Dk.addLayer=function(e,t,r){var n={type:t.type,id:this.layerIds[e],source:this.sourceIds[e],layout:t.layout,paint:t.paint};t.filter&&(n.filter=t.filter);for(var i=this.layerIds[e],a,o=this.subplot.getMapLayers(),s=0;s=0;L--){var _=A[L];i.removeLayer(u.layerIds[_])}k||i.removeSource(u.sourceIds.circle)}function h(k){for(var A=rg.nonCluster,L=0;L=0;L--){var _=A[L];i.removeLayer(u.layerIds[_]),k||i.removeSource(u.sourceIds[_])}}function v(k){l?f(k):d(k)}function x(k){s?c(k):h(k)}function b(){for(var k=s?rg.cluster:rg.nonCluster,A=0;A=0;n--){var i=r[n];t.removeLayer(this.layerIds[i]),t.removeSource(this.sourceIds[i])}};PUe.exports=function(t,r){var n=r[0].trace,i=n.cluster&&n.cluster.enabled,a=n.visible!==!0,o=new LUe(t,n.uid,i,a),s=CUe(t.gd,r),l=o.below=t.belowLookup["trace-"+n.uid],u,c,f;if(i)for(o.addSource("circle",s.circle,n.cluster),u=0;u{"use strict";var fHt=Nc(),GK=Mr(),hHt=oT(),dHt=GK.fillText,vHt=es().BADNUM,pHt=c1().traceLayerPrefix;function gHt(e,t,r){var n=e.cd,i=n[0].trace,a=e.xa,o=e.ya,s=e.subplot,l=[],u=pHt+i.uid+"-circle",c=i.cluster&&i.cluster.enabled;if(c){var f=s.map.queryRenderedFeatures(null,{layers:[u]});l=f.map(function(M){return M.id})}var h=t>=0?Math.floor((t+180)/360):Math.ceil((t-180)/360),d=h*360,v=t-d;function x(M){var p=M.lonlat;if(p[0]===vHt||c&&l.indexOf(M.i+1)===-1)return 1/0;var P=GK.modHalf(p[0],360),T=p[1],F=s.project([P,T]),q=F.x-a.c2p([v,T]),V=F.y-o.c2p([P,r]),H=Math.max(3,M.mrc||0);return Math.max(Math.sqrt(q*q+V*V)-H,1-3/H)}if(fHt.getClosest(n,x,e),e.index!==!1){var b=n[e.index],g=b.lonlat,E=[GK.modHalf(g[0],360)+d,g[1]],k=a.c2p(E),A=o.c2p(E),L=b.mrc||1;e.x0=k-L,e.x1=k+L,e.y0=A-L,e.y1=A+L;var _={};_[i.subplot]={_subplot:s};var C=i._module.formatLabels(b,i,_);return e.lonLabel=C.lonLabel,e.latLabel=C.latLabel,e.color=hHt(i,b),e.extraText=RUe(i,b,n[0].t.labels),e.hovertemplate=i.hovertemplate,[e]}}function RUe(e,t,r){if(e.hovertemplate)return;var n=t.hi||e.hoverinfo,i=n.split("+"),a=i.indexOf("all")!==-1,o=i.indexOf("lon")!==-1,s=i.indexOf("lat")!==-1,l=t.lonlat,u=[];function c(f){return f+"\xB0"}return a||o&&s?u.push("("+c(l[1])+", "+c(l[0])+")"):o?u.push(r.lon+c(l[0])):s&&u.push(r.lat+c(l[1])),(a||i.indexOf("text")!==-1)&&dHt(t,e,u),u.join("
")}DUe.exports={hoverPoints:gHt,getExtraText:RUe}});var FUe=ye((Tyr,zUe)=>{"use strict";zUe.exports=function(t,r){return t.lon=r.lon,t.lat=r.lat,t}});var OUe=ye((Ayr,qUe)=>{"use strict";var mHt=Mr(),yHt=lu(),_Ht=es().BADNUM;qUe.exports=function(t,r){var n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].trace,l;if(!yHt.hasMarkers(s))return[];if(r===!1)for(l=0;l{(function(e,t){typeof jK=="object"&&typeof WK!="undefined"?WK.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self,e.mapboxgl=t())})(jK,function(){"use strict";var e,t,r;function n(i,a){if(!e)e=a;else if(!t)t=a;else{var o="var sharedChunk = {}; ("+e+")(sharedChunk); ("+t+")(sharedChunk);",s={};e(s),r=a(s),typeof window!="undefined"&&(r.workerUrl=window.URL.createObjectURL(new Blob([o],{type:"text/javascript"})))}}return n(["exports"],function(i){"use strict";function a(m,y){return y={exports:{}},m(y,y.exports),y.exports}var o="1.13.4",s=l;function l(m,y,I,U){this.cx=3*m,this.bx=3*(I-m)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*y,this.by=3*(U-y)-this.cy,this.ay=1-this.cy-this.by,this.p1x=m,this.p1y=U,this.p2x=I,this.p2y=U}l.prototype.sampleCurveX=function(m){return((this.ax*m+this.bx)*m+this.cx)*m},l.prototype.sampleCurveY=function(m){return((this.ay*m+this.by)*m+this.cy)*m},l.prototype.sampleCurveDerivativeX=function(m){return(3*this.ax*m+2*this.bx)*m+this.cx},l.prototype.solveCurveX=function(m,y){typeof y=="undefined"&&(y=1e-6);var I,U,J,ne,fe;for(J=m,fe=0;fe<8;fe++){if(ne=this.sampleCurveX(J)-m,Math.abs(ne)U)return U;for(;Ine?I=J:U=J,J=(U-I)*.5+I}return J},l.prototype.solve=function(m,y){return this.sampleCurveY(this.solveCurveX(m,y))};var u=c;function c(m,y){this.x=m,this.y=y}c.prototype={clone:function(){return new c(this.x,this.y)},add:function(m){return this.clone()._add(m)},sub:function(m){return this.clone()._sub(m)},multByPoint:function(m){return this.clone()._multByPoint(m)},divByPoint:function(m){return this.clone()._divByPoint(m)},mult:function(m){return this.clone()._mult(m)},div:function(m){return this.clone()._div(m)},rotate:function(m){return this.clone()._rotate(m)},rotateAround:function(m,y){return this.clone()._rotateAround(m,y)},matMult:function(m){return this.clone()._matMult(m)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(m){return this.x===m.x&&this.y===m.y},dist:function(m){return Math.sqrt(this.distSqr(m))},distSqr:function(m){var y=m.x-this.x,I=m.y-this.y;return y*y+I*I},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(m){return Math.atan2(this.y-m.y,this.x-m.x)},angleWith:function(m){return this.angleWithSep(m.x,m.y)},angleWithSep:function(m,y){return Math.atan2(this.x*y-this.y*m,this.x*m+this.y*y)},_matMult:function(m){var y=m[0]*this.x+m[1]*this.y,I=m[2]*this.x+m[3]*this.y;return this.x=y,this.y=I,this},_add:function(m){return this.x+=m.x,this.y+=m.y,this},_sub:function(m){return this.x-=m.x,this.y-=m.y,this},_mult:function(m){return this.x*=m,this.y*=m,this},_div:function(m){return this.x/=m,this.y/=m,this},_multByPoint:function(m){return this.x*=m.x,this.y*=m.y,this},_divByPoint:function(m){return this.x/=m.x,this.y/=m.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var m=this.y;return this.y=this.x,this.x=-m,this},_rotate:function(m){var y=Math.cos(m),I=Math.sin(m),U=y*this.x-I*this.y,J=I*this.x+y*this.y;return this.x=U,this.y=J,this},_rotateAround:function(m,y){var I=Math.cos(m),U=Math.sin(m),J=y.x+I*(this.x-y.x)-U*(this.y-y.y),ne=y.y+U*(this.x-y.x)+I*(this.y-y.y);return this.x=J,this.y=ne,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},c.convert=function(m){return m instanceof c?m:Array.isArray(m)?new c(m[0],m[1]):m};var f=typeof self!="undefined"?self:{};function h(m,y){if(Array.isArray(m)){if(!Array.isArray(y)||m.length!==y.length)return!1;for(var I=0;I=1)return 1;var y=m*m,I=y*m;return 4*(m<.5?I:3*(m-y)+I-.75)}function x(m,y,I,U){var J=new s(m,y,I,U);return function(ne){return J.solve(ne)}}var b=x(.25,.1,.25,1);function g(m,y,I){return Math.min(I,Math.max(y,m))}function E(m,y,I){var U=I-y,J=((m-y)%U+U)%U+y;return J===y?I:J}function k(m,y,I){if(!m.length)return I(null,[]);var U=m.length,J=new Array(m.length),ne=null;m.forEach(function(fe,Fe){y(fe,function(Qe,st){Qe&&(ne=Qe),J[Fe]=st,--U===0&&I(ne,J)})})}function A(m){var y=[];for(var I in m)y.push(m[I]);return y}function L(m,y){var I=[];for(var U in m)U in y||I.push(U);return I}function _(m){for(var y=[],I=arguments.length-1;I-- >0;)y[I]=arguments[I+1];for(var U=0,J=y;U>y/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,m)}return m()}function T(m){return m<=1?1:Math.pow(2,Math.ceil(Math.log(m)/Math.LN2))}function F(m){return m?/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(m):!1}function q(m,y){m.forEach(function(I){y[I]&&(y[I]=y[I].bind(y))})}function V(m,y){return m.indexOf(y,m.length-y.length)!==-1}function H(m,y,I){var U={};for(var J in m)U[J]=y.call(I||this,m[J],J,m);return U}function X(m,y,I){var U={};for(var J in m)y.call(I||this,m[J],J,m)&&(U[J]=m[J]);return U}function G(m){return Array.isArray(m)?m.map(G):typeof m=="object"&&m?H(m,G):m}function N(m,y){for(var I=0;I=0)return!0;return!1}var W={};function re(m){W[m]||(typeof console!="undefined"&&console.warn(m),W[m]=!0)}function ae(m,y,I){return(I.y-m.y)*(y.x-m.x)>(y.y-m.y)*(I.x-m.x)}function _e(m){for(var y=0,I=0,U=m.length,J=U-1,ne=void 0,fe=void 0;I@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,I={};if(m.replace(y,function(J,ne,fe,Fe){var Qe=fe||Fe;return I[ne]=Qe?Qe.toLowerCase():!0,""}),I["max-age"]){var U=parseInt(I["max-age"],10);isNaN(U)?delete I["max-age"]:I["max-age"]=U}return I}var ie=null;function Te(m){if(ie==null){var y=m.navigator?m.navigator.userAgent:null;ie=!!m.safari||!!(y&&(/\b(iPad|iPhone|iPod)\b/.test(y)||y.match("Safari")&&!y.match("Chrome")))}return ie}function Ee(m){try{var y=f[m];return y.setItem("_mapbox_test_",1),y.removeItem("_mapbox_test_"),!0}catch(I){return!1}}function Ae(m){return f.btoa(encodeURIComponent(m).replace(/%([0-9A-F]{2})/g,function(y,I){return String.fromCharCode(+("0x"+I))}))}function ze(m){return decodeURIComponent(f.atob(m).split("").map(function(y){return"%"+("00"+y.charCodeAt(0).toString(16)).slice(-2)}).join(""))}var Ce=f.performance&&f.performance.now?f.performance.now.bind(f.performance):Date.now.bind(Date),me=f.requestAnimationFrame||f.mozRequestAnimationFrame||f.webkitRequestAnimationFrame||f.msRequestAnimationFrame,Re=f.cancelAnimationFrame||f.mozCancelAnimationFrame||f.webkitCancelAnimationFrame||f.msCancelAnimationFrame,ce,Ge,nt={now:Ce,frame:function(y){var I=me(y);return{cancel:function(){return Re(I)}}},getImageData:function(y,I){I===void 0&&(I=0);var U=f.document.createElement("canvas"),J=U.getContext("2d");if(!J)throw new Error("failed to create canvas 2d context");return U.width=y.width,U.height=y.height,J.drawImage(y,0,0,y.width,y.height),J.getImageData(-I,-I,y.width+2*I,y.height+2*I)},resolveURL:function(y){return ce||(ce=f.document.createElement("a")),ce.href=y,ce.href},hardwareConcurrency:f.navigator&&f.navigator.hardwareConcurrency||4,get devicePixelRatio(){return f.devicePixelRatio},get prefersReducedMotion(){return f.matchMedia?(Ge==null&&(Ge=f.matchMedia("(prefers-reduced-motion: reduce)")),Ge.matches):!1}},ct={API_URL:"https://api.mapbox.com",get EVENTS_URL(){return this.API_URL?this.API_URL.indexOf("https://api.mapbox.cn")===0?"https://events.mapbox.cn/events/v2":this.API_URL.indexOf("https://api.mapbox.com")===0?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},qt={supported:!1,testSupport:Ct},rt,ot=!1,Rt,kt=!1;f.document&&(Rt=f.document.createElement("img"),Rt.onload=function(){rt&&Yt(rt),rt=null,kt=!0},Rt.onerror=function(){ot=!0,rt=null},Rt.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");function Ct(m){ot||!Rt||(kt?Yt(m):rt=m)}function Yt(m){var y=m.createTexture();m.bindTexture(m.TEXTURE_2D,y);try{if(m.texImage2D(m.TEXTURE_2D,0,m.RGBA,m.RGBA,m.UNSIGNED_BYTE,Rt),m.isContextLost())return;qt.supported=!0}catch(I){}m.deleteTexture(y),ot=!0}var xr="01";function er(){for(var m="1",y="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",I="",U=0;U<10;U++)I+=y[Math.floor(Math.random()*62)];var J=12*60*60*1e3,ne=[m,xr,I].join(""),fe=Date.now()+J;return{token:ne,tokenExpiresAt:fe}}var Ke=function(y,I){this._transformRequestFn=y,this._customAccessToken=I,this._createSkuToken()};Ke.prototype._createSkuToken=function(){var y=er();this._skuToken=y.token,this._skuTokenExpiresAt=y.tokenExpiresAt},Ke.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},Ke.prototype.transformRequest=function(y,I){return this._transformRequestFn?this._transformRequestFn(y,I)||{url:y}:{url:y}},Ke.prototype.normalizeStyleURL=function(y,I){if(!xt(y))return y;var U=Ht(y);return U.path="/styles/v1"+U.path,this._makeAPIURL(U,this._customAccessToken||I)},Ke.prototype.normalizeGlyphsURL=function(y,I){if(!xt(y))return y;var U=Ht(y);return U.path="/fonts/v1"+U.path,this._makeAPIURL(U,this._customAccessToken||I)},Ke.prototype.normalizeSourceURL=function(y,I){if(!xt(y))return y;var U=Ht(y);return U.path="/v4/"+U.authority+".json",U.params.push("secure"),this._makeAPIURL(U,this._customAccessToken||I)},Ke.prototype.normalizeSpriteURL=function(y,I,U,J){var ne=Ht(y);return xt(y)?(ne.path="/styles/v1"+ne.path+"/sprite"+I+U,this._makeAPIURL(ne,this._customAccessToken||J)):(ne.path+=""+I+U,$t(ne))},Ke.prototype.normalizeTileURL=function(y,I){if(this._isSkuTokenExpired()&&this._createSkuToken(),y&&!xt(y))return y;var U=Ht(y),J=/(\.(png|jpg)\d*)(?=$)/,ne=/^.+\/v4\//,fe=nt.devicePixelRatio>=2||I===512?"@2x":"",Fe=qt.supported?".webp":"$1";U.path=U.path.replace(J,""+fe+Fe),U.path=U.path.replace(ne,"/"),U.path="/v4"+U.path;var Qe=this._customAccessToken||Et(U.params)||ct.ACCESS_TOKEN;return ct.REQUIRE_ACCESS_TOKEN&&Qe&&this._skuToken&&U.params.push("sku="+this._skuToken),this._makeAPIURL(U,Qe)},Ke.prototype.canonicalizeTileURL=function(y,I){var U="/v4/",J=/\.[\w]+$/,ne=Ht(y);if(!ne.path.match(/(^\/v4\/)/)||!ne.path.match(J))return y;var fe="mapbox://tiles/";fe+=ne.path.replace(U,"");var Fe=ne.params;return I&&(Fe=Fe.filter(function(Qe){return!Qe.match(/^access_token=/)})),Fe.length&&(fe+="?"+Fe.join("&")),fe},Ke.prototype.canonicalizeTileset=function(y,I){for(var U=I?xt(I):!1,J=[],ne=0,fe=y.tiles||[];ne=0&&y.params.splice(ne,1)}if(J.path!=="/"&&(y.path=""+J.path+y.path),!ct.REQUIRE_ACCESS_TOKEN)return $t(y);if(I=I||ct.ACCESS_TOKEN,!I)throw new Error("An API access token is required to use Mapbox GL. "+U);if(I[0]==="s")throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+U);return y.params=y.params.filter(function(fe){return fe.indexOf("access_token")===-1}),y.params.push("access_token="+I),$t(y)};function xt(m){return m.indexOf("mapbox:")===0}var bt=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;function Lt(m){return bt.test(m)}function St(m){return m.indexOf("sku=")>0&&Lt(m)}function Et(m){for(var y=0,I=m;y=1&&f.localStorage.setItem(I,JSON.stringify(this.eventData))}catch(J){re("Unable to write to LocalStorage")}},Br.prototype.processRequests=function(y){},Br.prototype.postEvent=function(y,I,U,J){var ne=this;if(ct.EVENTS_URL){var fe=Ht(ct.EVENTS_URL);fe.params.push("access_token="+(J||ct.ACCESS_TOKEN||""));var Fe={event:this.type,created:new Date(y).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:o,skuId:xr,userId:this.anonId},Qe=I?_(Fe,I):Fe,st={url:$t(fe),headers:{"Content-Type":"text/plain"},body:JSON.stringify([Qe])};this.pendingRequest=Vr(st,function(mt){ne.pendingRequest=null,U(mt),ne.saveEventData(),ne.processRequests(J)})}},Br.prototype.queueRequest=function(y,I){this.queue.push(y),this.processRequests(I)};var Or=function(m){function y(){m.call(this,"map.load"),this.success={},this.skuToken=""}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype.postMapLoadEvent=function(U,J,ne,fe){this.skuToken=ne,(ct.EVENTS_URL&&fe||ct.ACCESS_TOKEN&&Array.isArray(U)&&U.some(function(Fe){return xt(Fe)||Lt(Fe)}))&&this.queueRequest({id:J,timestamp:Date.now()},fe)},y.prototype.processRequests=function(U){var J=this;if(!(this.pendingRequest||this.queue.length===0)){var ne=this.queue.shift(),fe=ne.id,Fe=ne.timestamp;fe&&this.success[fe]||(this.anonId||this.fetchEventData(),F(this.anonId)||(this.anonId=P()),this.postEvent(Fe,{skuToken:this.skuToken},function(Qe){Qe||fe&&(J.success[fe]=!0)},U))}},y}(Br),Nr=function(m){function y(I){m.call(this,"appUserTurnstile"),this._customAccessToken=I}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype.postTurnstileEvent=function(U,J){ct.EVENTS_URL&&ct.ACCESS_TOKEN&&Array.isArray(U)&&U.some(function(ne){return xt(ne)||Lt(ne)})&&this.queueRequest(Date.now(),J)},y.prototype.processRequests=function(U){var J=this;if(!(this.pendingRequest||this.queue.length===0)){(!this.anonId||!this.eventData.lastSuccess||!this.eventData.tokenU)&&this.fetchEventData();var ne=_r(ct.ACCESS_TOKEN),fe=ne?ne.u:ct.ACCESS_TOKEN,Fe=fe!==this.eventData.tokenU;F(this.anonId)||(this.anonId=P(),Fe=!0);var Qe=this.queue.shift();if(this.eventData.lastSuccess){var st=new Date(this.eventData.lastSuccess),mt=new Date(Qe),Xt=(Qe-this.eventData.lastSuccess)/(24*60*60*1e3);Fe=Fe||Xt>=1||Xt<-1||st.getDate()!==mt.getDate()}else Fe=!0;if(!Fe)return this.processRequests();this.postEvent(Qe,{"enabled.telemetry":!1},function(ur){ur||(J.eventData.lastSuccess=Qe,J.eventData.tokenU=fe)},U)}},y}(Br),ut=new Nr,Ne=ut.postTurnstileEvent.bind(ut),Ye=new Or,Ve=Ye.postMapLoadEvent.bind(Ye),Xe="mapbox-tiles",ht=500,Le=50,xe=1e3*60*7,Se;function lt(){f.caches&&!Se&&(Se=f.caches.open(Xe))}var Gt;function Vt(m,y){if(Gt===void 0)try{new Response(new ReadableStream),Gt=!0}catch(I){Gt=!1}Gt?y(m.body):m.blob().then(y)}function ar(m,y,I){if(lt(),!!Se){var U={status:y.status,statusText:y.statusText,headers:new f.Headers};y.headers.forEach(function(fe,Fe){return U.headers.set(Fe,fe)});var J=ge(y.headers.get("Cache-Control")||"");if(!J["no-store"]){J["max-age"]&&U.headers.set("Expires",new Date(I+J["max-age"]*1e3).toUTCString());var ne=new Date(U.headers.get("Expires")).getTime()-I;neDate.now()&&!I["no-cache"]}var ri=1/0;function bi(m){ri++,ri>Le&&(m.getActor().send("enforceCacheSizeLimit",ht),ri=0)}function nn(m){lt(),Se&&Se.then(function(y){y.keys().then(function(I){for(var U=0;U=200&&I.status<300||I.status===0)&&I.response!==null){var J=I.response;if(m.type==="json")try{J=JSON.parse(I.response)}catch(ne){return y(ne)}y(null,J,I.getResponseHeader("Cache-Control"),I.getResponseHeader("Expires"))}else y(new Wn(I.statusText,I.status,m.url))},I.send(m.body),{cancel:function(){return I.abort()}}}var yr=function(m,y){if(!ft(m.url)){if(f.fetch&&f.Request&&f.AbortController&&f.Request.prototype.hasOwnProperty("signal"))return jt(m,y);if(ke()&&self.worker&&self.worker.actor){var I=!0;return self.worker.actor.send("getResource",m,y,void 0,I)}}return Zt(m,y)},Fr=function(m,y){return yr(_(m,{type:"json"}),y)},Zr=function(m,y){return yr(_(m,{type:"arrayBuffer"}),y)},Vr=function(m,y){return yr(_(m,{method:"POST"}),y)};function gi(m){var y=f.document.createElement("a");return y.href=m,y.protocol===f.document.location.protocol&&y.host===f.document.location.host}var Si="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";function Mi(m,y,I,U){var J=new f.Image,ne=f.URL;J.onload=function(){y(null,J),ne.revokeObjectURL(J.src),J.onload=null,f.requestAnimationFrame(function(){J.src=Si})},J.onerror=function(){return y(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))};var fe=new f.Blob([new Uint8Array(m)],{type:"image/png"});J.cacheControl=I,J.expires=U,J.src=m.byteLength?ne.createObjectURL(fe):Si}function Pi(m,y){var I=new f.Blob([new Uint8Array(m)],{type:"image/png"});f.createImageBitmap(I).then(function(U){y(null,U)}).catch(function(U){y(new Error("Could not load image because of "+U.message+". Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))})}var Gi,Ki,ka=function(){Gi=[],Ki=0};ka();var jn=function(m,y){if(qt.supported&&(m.headers||(m.headers={}),m.headers.accept="image/webp,*/*"),Ki>=ct.MAX_PARALLEL_IMAGE_REQUESTS){var I={requestParameters:m,callback:y,cancelled:!1,cancel:function(){this.cancelled=!0}};return Gi.push(I),I}Ki++;var U=!1,J=function(){if(!U)for(U=!0,Ki--;Gi.length&&Ki0||this._oneTimeListeners&&this._oneTimeListeners[y]&&this._oneTimeListeners[y].length>0||this._eventedParent&&this._eventedParent.listens(y)},Sn.prototype.setEventedParent=function(y,I){return this._eventedParent=y,this._eventedParentData=I,this};var Ha=8,oo={version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},xn={"*":{type:"source"}},_t=["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],br={type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},Hr={type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},ti={type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{}},default:"mapbox"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},zi={type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},Yi={type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},an={type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},hi={id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},Ji=["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],ua={visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},Fn={"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},Sa={"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},go={visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},Oo={"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},ho={"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},Mo={visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},xo={visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},zs={type:"array",value:"*"},ks={type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},Zs={type:"enum",values:{Point:{},LineString:{},Polygon:{}}},Xs={type:"array",minimum:0,maximum:24,value:["number","color"],length:2},wl={type:"array",value:"*",minimum:1},os={anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},cl=["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],Cs={"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},ml={"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},Ys={"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},Hs={"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},Eo={"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},fs={"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},$l={"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},Hu={"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},fc={duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},ms={"*":{type:"string"}},on={$version:Ha,$root:oo,sources:xn,source:_t,source_vector:br,source_raster:Hr,source_raster_dem:ti,source_geojson:zi,source_video:Yi,source_image:an,layer:hi,layout:Ji,layout_background:ua,layout_fill:Fn,layout_circle:Sa,layout_heatmap:go,"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:Oo,layout_symbol:ho,layout_raster:Mo,layout_hillshade:xo,filter:zs,filter_operator:ks,geometry_type:Zs,function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:Xs,expression:wl,light:os,paint:cl,paint_fill:Cs,"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:ml,paint_circle:Ys,paint_heatmap:Hs,paint_symbol:Eo,paint_raster:fs,paint_hillshade:$l,paint_background:Hu,transition:fc,"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:ms},fa=function(y,I,U,J){this.message=(y?y+": ":"")+U,J&&(this.identifier=J),I!=null&&I.__line__&&(this.line=I.__line__)};function Qu(m){var y=m.key,I=m.value;return I?[new fa(y,I,"constants have been deprecated as of v8")]:[]}function Il(m){for(var y=[],I=arguments.length-1;I-- >0;)y[I]=arguments[I+1];for(var U=0,J=y;U":m.itemType.kind==="value"?"array":"array<"+y+">"}else return m.kind}var mu=[Ec,Zn,ko,Co,Tl,Al,uf,Ql(So),Hc];function kc(m,y){if(y.kind==="error")return null;if(m.kind==="array"){if(y.kind==="array"&&(y.N===0&&y.itemType.kind==="value"||!kc(m.itemType,y.itemType))&&(typeof m.N!="number"||m.N===y.N))return null}else{if(m.kind===y.kind)return null;if(m.kind==="value")for(var I=0,U=mu;I255?255:st}function J(st){return st<0?0:st>1?1:st}function ne(st){return st[st.length-1]==="%"?U(parseFloat(st)/100*255):U(parseInt(st))}function fe(st){return st[st.length-1]==="%"?J(parseFloat(st)/100):J(parseFloat(st))}function Fe(st,mt,Xt){return Xt<0?Xt+=1:Xt>1&&(Xt-=1),Xt*6<1?st+(mt-st)*Xt*6:Xt*2<1?mt:Xt*3<2?st+(mt-st)*(2/3-Xt)*6:st}function Qe(st){var mt=st.replace(/ /g,"").toLowerCase();if(mt in I)return I[mt].slice();if(mt[0]==="#"){if(mt.length===4){var Xt=parseInt(mt.substr(1),16);return Xt>=0&&Xt<=4095?[(Xt&3840)>>4|(Xt&3840)>>8,Xt&240|(Xt&240)>>4,Xt&15|(Xt&15)<<4,1]:null}else if(mt.length===7){var Xt=parseInt(mt.substr(1),16);return Xt>=0&&Xt<=16777215?[(Xt&16711680)>>16,(Xt&65280)>>8,Xt&255,1]:null}return null}var ur=mt.indexOf("("),nr=mt.indexOf(")");if(ur!==-1&&nr+1===mt.length){var Lr=mt.substr(0,ur),Yr=mt.substr(ur+1,nr-(ur+1)).split(","),_i=1;switch(Lr){case"rgba":if(Yr.length!==4)return null;_i=fe(Yr.pop());case"rgb":return Yr.length!==3?null:[ne(Yr[0]),ne(Yr[1]),ne(Yr[2]),_i];case"hsla":if(Yr.length!==4)return null;_i=fe(Yr.pop());case"hsl":if(Yr.length!==3)return null;var si=(parseFloat(Yr[0])%360+360)%360/360,Hi=fe(Yr[1]),Ei=fe(Yr[2]),Vi=Ei<=.5?Ei*(Hi+1):Ei+Hi-Ei*Hi,en=Ei*2-Vi;return[U(Fe(en,Vi,si+1/3)*255),U(Fe(en,Vi,si)*255),U(Fe(en,Vi,si-1/3)*255),_i];default:return null}}return null}try{y.parseCSSColor=Qe}catch(st){}}),Bf=vd.parseCSSColor,ss=function(y,I,U,J){J===void 0&&(J=1),this.r=y,this.g=I,this.b=U,this.a=J};ss.parse=function(y){if(y){if(y instanceof ss)return y;if(typeof y=="string"){var I=Bf(y);if(I)return new ss(I[0]/255*I[3],I[1]/255*I[3],I[2]/255*I[3],I[3])}}},ss.prototype.toString=function(){var y=this.toArray(),I=y[0],U=y[1],J=y[2],ne=y[3];return"rgba("+Math.round(I)+","+Math.round(U)+","+Math.round(J)+","+ne+")"},ss.prototype.toArray=function(){var y=this,I=y.r,U=y.g,J=y.b,ne=y.a;return ne===0?[0,0,0,0]:[I*255/ne,U*255/ne,J*255/ne,ne]},ss.black=new ss(0,0,0,1),ss.white=new ss(1,1,1,1),ss.transparent=new ss(0,0,0,0),ss.red=new ss(1,0,0,1);var ff=function(y,I,U){y?this.sensitivity=I?"variant":"case":this.sensitivity=I?"accent":"base",this.locale=U,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})};ff.prototype.compare=function(y,I){return this.collator.compare(y,I)},ff.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var ih=function(y,I,U,J,ne){this.text=y,this.image=I,this.scale=U,this.fontStack=J,this.textColor=ne},Ul=function(y){this.sections=y};Ul.fromString=function(y){return new Ul([new ih(y,null,null,null,null)])},Ul.prototype.isEmpty=function(){return this.sections.length===0?!0:!this.sections.some(function(y){return y.text.length!==0||y.image&&y.image.name.length!==0})},Ul.factory=function(y){return y instanceof Ul?y:Ul.fromString(y)},Ul.prototype.toString=function(){return this.sections.length===0?"":this.sections.map(function(y){return y.text}).join("")},Ul.prototype.serialize=function(){for(var y=["format"],I=0,U=this.sections;I=0&&m<=255&&typeof y=="number"&&y>=0&&y<=255&&typeof I=="number"&&I>=0&&I<=255)){var J=typeof U=="number"?[m,y,I,U]:[m,y,I];return"Invalid rgba value ["+J.join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."}return typeof U=="undefined"||typeof U=="number"&&U>=0&&U<=1?null:"Invalid rgba value ["+[m,y,I,U].join(", ")+"]: 'a' must be between 0 and 1."}function Cc(m){if(m===null)return!0;if(typeof m=="string")return!0;if(typeof m=="boolean")return!0;if(typeof m=="number")return!0;if(m instanceof ss)return!0;if(m instanceof ff)return!0;if(m instanceof Ul)return!0;if(m instanceof Js)return!0;if(Array.isArray(m)){for(var y=0,I=m;y2){var Fe=y[1];if(typeof Fe!="string"||!(Fe in dc)||Fe==="object")return I.error('The item type argument of "array" must be one of string, number, boolean',1);fe=dc[Fe],U++}else fe=So;var Qe;if(y.length>3){if(y[2]!==null&&(typeof y[2]!="number"||y[2]<0||y[2]!==Math.floor(y[2])))return I.error('The length argument to "array" must be a positive integer literal',2);Qe=y[2],U++}J=Ql(fe,Qe)}else J=dc[ne];for(var st=[];U1)&&I.push(J)}}return I.concat(this.args.map(function(ne){return ne.serialize()}))};var ec=function(y){this.type=Al,this.sections=y};ec.parse=function(y,I){if(y.length<2)return I.error("Expected at least one argument.");var U=y[1];if(!Array.isArray(U)&&typeof U=="object")return I.error("First argument must be an image or text section.");for(var J=[],ne=!1,fe=1;fe<=y.length-1;++fe){var Fe=y[fe];if(ne&&typeof Fe=="object"&&!Array.isArray(Fe)){ne=!1;var Qe=null;if(Fe["font-scale"]&&(Qe=I.parse(Fe["font-scale"],1,Zn),!Qe))return null;var st=null;if(Fe["text-font"]&&(st=I.parse(Fe["text-font"],1,Ql(ko)),!st))return null;var mt=null;if(Fe["text-color"]&&(mt=I.parse(Fe["text-color"],1,Tl),!mt))return null;var Xt=J[J.length-1];Xt.scale=Qe,Xt.font=st,Xt.textColor=mt}else{var ur=I.parse(y[fe],1,So);if(!ur)return null;var nr=ur.type.kind;if(nr!=="string"&&nr!=="value"&&nr!=="null"&&nr!=="resolvedImage")return I.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");ne=!0,J.push({content:ur,scale:null,font:null,textColor:null})}}return new ec(J)},ec.prototype.evaluate=function(y){var I=function(U){var J=U.content.evaluate(y);return ws(J)===Hc?new ih("",J,null,null,null):new ih($s(J),null,U.scale?U.scale.evaluate(y):null,U.font?U.font.evaluate(y).join(","):null,U.textColor?U.textColor.evaluate(y):null)};return new Ul(this.sections.map(I))},ec.prototype.eachChild=function(y){for(var I=0,U=this.sections;I-1),U},Ps.prototype.eachChild=function(y){y(this.input)},Ps.prototype.outputDefined=function(){return!1},Ps.prototype.serialize=function(){return["image",this.input.serialize()]};var ov={"to-boolean":Co,"to-color":Tl,"to-number":Zn,"to-string":ko},wo=function(y,I){this.type=y,this.args=I};wo.parse=function(y,I){if(y.length<2)return I.error("Expected at least one argument.");var U=y[0];if((U==="to-boolean"||U==="to-string")&&y.length!==2)return I.error("Expected one argument.");for(var J=ov[U],ne=[],fe=1;fe4?U="Invalid rbga value "+JSON.stringify(I)+": expected an array containing either three or four numeric values.":U=hc(I[0],I[1],I[2],I[3]),!U))return new ss(I[0]/255,I[1]/255,I[2]/255,I[3])}throw new Ms(U||"Could not parse color from value '"+(typeof I=="string"?I:String(JSON.stringify(I)))+"'")}else if(this.type.kind==="number"){for(var Qe=null,st=0,mt=this.args;st=y[2]||m[1]<=y[1]||m[3]>=y[3])}function Yh(m,y){var I=jc(m[0]),U=kf(m[1]),J=Math.pow(2,y.z);return[Math.round(I*J*uu),Math.round(U*J*uu)]}function Eh(m,y,I){var U=m[0]-y[0],J=m[1]-y[1],ne=m[0]-I[0],fe=m[1]-I[1];return U*fe-ne*J===0&&U*ne<=0&&J*fe<=0}function nh(m,y,I){return y[1]>m[1]!=I[1]>m[1]&&m[0]<(I[0]-y[0])*(m[1]-y[1])/(I[1]-y[1])+y[0]}function hf(m,y){for(var I=!1,U=0,J=y.length;U0&&Xt<0||mt<0&&Xt>0}function ah(m,y,I,U){var J=[y[0]-m[0],y[1]-m[1]],ne=[U[0]-I[0],U[1]-I[1]];return Kh(ne,J)===0?!1:!!(rc(m,y,I,U)&&rc(I,U,m,y))}function Wc(m,y,I){for(var U=0,J=I;UI[2]){var J=U*.5,ne=m[0]-I[0]>J?-U:I[0]-m[0]>J?U:0;ne===0&&(ne=m[0]-I[2]>J?-U:I[2]-m[0]>J?U:0),m[0]+=ne}Mh(y,m)}function Ch(m){m[0]=m[1]=1/0,m[2]=m[3]=-1/0}function Bd(m,y,I,U){for(var J=Math.pow(2,U.z)*uu,ne=[U.x*uu,U.y*uu],fe=[],Fe=0,Qe=m;Fe=0)return!1;var I=!0;return m.eachChild(function(U){I&&!Pu(U,y)&&(I=!1)}),I}var Lc=function(y,I){this.type=I.type,this.name=y,this.boundExpression=I};Lc.parse=function(y,I){if(y.length!==2||typeof y[1]!="string")return I.error("'var' expression requires exactly one string literal argument.");var U=y[1];return I.scope.has(U)?new Lc(U,I.scope.get(U)):I.error('Unknown variable "'+U+'". Make sure "'+U+'" has been bound in an enclosing "let" expression before using it.',1)},Lc.prototype.evaluate=function(y){return this.boundExpression.evaluate(y)},Lc.prototype.eachChild=function(){},Lc.prototype.outputDefined=function(){return!1},Lc.prototype.serialize=function(){return["var",this.name]};var fl=function(y,I,U,J,ne){I===void 0&&(I=[]),J===void 0&&(J=new Zl),ne===void 0&&(ne=[]),this.registry=y,this.path=I,this.key=I.map(function(fe){return"["+fe+"]"}).join(""),this.scope=J,this.errors=ne,this.expectedType=U};fl.prototype.parse=function(y,I,U,J,ne){return ne===void 0&&(ne={}),I?this.concat(I,U,J)._parse(y,ne):this._parse(y,ne)},fl.prototype._parse=function(y,I){(y===null||typeof y=="string"||typeof y=="boolean"||typeof y=="number")&&(y=["literal",y]);function U(mt,Xt,ur){return ur==="assert"?new Sl(Xt,[mt]):ur==="coerce"?new wo(Xt,[mt]):mt}if(Array.isArray(y)){if(y.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var J=y[0];if(typeof J!="string")return this.error("Expression name must be a string, but found "+typeof J+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var ne=this.registry[J];if(ne){var fe=ne.parse(y,this);if(!fe)return null;if(this.expectedType){var Fe=this.expectedType,Qe=fe.type;if((Fe.kind==="string"||Fe.kind==="number"||Fe.kind==="boolean"||Fe.kind==="object"||Fe.kind==="array")&&Qe.kind==="value")fe=U(fe,Fe,I.typeAnnotation||"assert");else if((Fe.kind==="color"||Fe.kind==="formatted"||Fe.kind==="resolvedImage")&&(Qe.kind==="value"||Qe.kind==="string"))fe=U(fe,Fe,I.typeAnnotation||"coerce");else if(this.checkSubtype(Fe,Qe))return null}if(!(fe instanceof hs)&&fe.type.kind!=="resolvedImage"&&Xc(fe)){var st=new $o;try{fe=new hs(fe.type,fe.evaluate(st))}catch(mt){return this.error(mt.message),null}}return fe}return this.error('Unknown expression "'+J+'". If you wanted a literal array, use ["literal", [...]].',0)}else return typeof y=="undefined"?this.error("'undefined' value invalid. Use null instead."):typeof y=="object"?this.error('Bare objects invalid. Use ["literal", {...}] instead.'):this.error("Expected an array, but found "+typeof y+" instead.")},fl.prototype.concat=function(y,I,U){var J=typeof y=="number"?this.path.concat(y):this.path,ne=U?this.scope.concat(U):this.scope;return new fl(this.registry,J,I||null,ne,this.errors)},fl.prototype.error=function(y){for(var I=[],U=arguments.length-1;U-- >0;)I[U]=arguments[U+1];var J=""+this.key+I.map(function(ne){return"["+ne+"]"}).join("");this.errors.push(new Ks(J,y))},fl.prototype.checkSubtype=function(y,I){var U=kc(y,I);return U&&this.error(U),U};function Xc(m){if(m instanceof Lc)return Xc(m.boundExpression);if(m instanceof Ja&&m.name==="error")return!1;if(m instanceof tc)return!1;if(m instanceof Lu)return!1;var y=m instanceof wo||m instanceof Sl,I=!0;return m.eachChild(function(U){y?I=I&&Xc(U):I=I&&U instanceof hs}),I?$h(m)&&Pu(m,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"]):!1}function ic(m,y){for(var I=m.length-1,U=0,J=I,ne=0,fe,Fe;U<=J;)if(ne=Math.floor((U+J)/2),fe=m[ne],Fe=m[ne+1],fe<=y){if(ne===I||yy)J=ne-1;else throw new Ms("Input is not a number.");return 0}var yu=function(y,I,U){this.type=y,this.input=I,this.labels=[],this.outputs=[];for(var J=0,ne=U;J=Fe)return I.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',st);var Xt=I.parse(Qe,mt,ne);if(!Xt)return null;ne=ne||Xt.type,J.push([Fe,Xt])}return new yu(ne,U,J)},yu.prototype.evaluate=function(y){var I=this.labels,U=this.outputs;if(I.length===1)return U[0].evaluate(y);var J=this.input.evaluate(y);if(J<=I[0])return U[0].evaluate(y);var ne=I.length;if(J>=I[ne-1])return U[ne-1].evaluate(y);var fe=ic(I,J);return U[fe].evaluate(y)},yu.prototype.eachChild=function(y){y(this.input);for(var I=0,U=this.outputs;I0&&y.push(this.labels[I]),y.push(this.outputs[I].serialize());return y};function Qs(m,y,I){return m*(1-I)+y*I}function Qh(m,y,I){return new ss(Qs(m.r,y.r,I),Qs(m.g,y.g,I),Qs(m.b,y.b,I),Qs(m.a,y.a,I))}function gd(m,y,I){return m.map(function(U,J){return Qs(U,y[J],I)})}var Gu=Object.freeze({__proto__:null,number:Qs,color:Qh,array:gd}),Pc=.95047,vc=1,sv=1.08883,Lf=4/29,Uf=6/29,Iu=3*Uf*Uf,oh=Uf*Uf*Uf,tu=Math.PI/180,vf=180/Math.PI;function md(m){return m>oh?Math.pow(m,1/3):m/Iu+Lf}function sh(m){return m>Uf?m*m*m:Iu*(m-Lf)}function Fs(m){return 255*(m<=.0031308?12.92*m:1.055*Math.pow(m,1/2.4)-.055)}function _u(m){return m/=255,m<=.04045?m/12.92:Math.pow((m+.055)/1.055,2.4)}function xu(m){var y=_u(m.r),I=_u(m.g),U=_u(m.b),J=md((.4124564*y+.3575761*I+.1804375*U)/Pc),ne=md((.2126729*y+.7151522*I+.072175*U)/vc),fe=md((.0193339*y+.119192*I+.9503041*U)/sv);return{l:116*ne-16,a:500*(J-ne),b:200*(ne-fe),alpha:m.a}}function Lh(m){var y=(m.l+16)/116,I=isNaN(m.a)?y:y+m.a/500,U=isNaN(m.b)?y:y-m.b/200;return y=vc*sh(y),I=Pc*sh(I),U=sv*sh(U),new ss(Fs(3.2404542*I-1.5371385*y-.4985314*U),Fs(-.969266*I+1.8760108*y+.041556*U),Fs(.0556434*I-.2040259*y+1.0572252*U),m.alpha)}function Is(m,y,I){return{l:Qs(m.l,y.l,I),a:Qs(m.a,y.a,I),b:Qs(m.b,y.b,I),alpha:Qs(m.alpha,y.alpha,I)}}function Pf(m){var y=xu(m),I=y.l,U=y.a,J=y.b,ne=Math.atan2(J,U)*vf;return{h:ne<0?ne+360:ne,c:Math.sqrt(U*U+J*J),l:I,alpha:m.a}}function Ic(m){var y=m.h*tu,I=m.c,U=m.l;return Lh({l:U,a:Math.cos(y)*I,b:Math.sin(y)*I,alpha:m.alpha})}function ju(m,y,I){var U=y-m;return m+I*(U>180||U<-180?U-360*Math.round(U/360):U)}function Vf(m,y,I){return{h:ju(m.h,y.h,I),c:Qs(m.c,y.c,I),l:Qs(m.l,y.l,I),alpha:Qs(m.alpha,y.alpha,I)}}var pc={forward:xu,reverse:Lh,interpolate:Is},pf={forward:Pf,reverse:Ic,interpolate:Vf},Ph=Object.freeze({__proto__:null,lab:pc,hcl:pf}),Rl=function(y,I,U,J,ne){this.type=y,this.operator=I,this.interpolation=U,this.input=J,this.labels=[],this.outputs=[];for(var fe=0,Fe=ne;fe1}))return I.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);J={name:"cubic-bezier",controlPoints:Qe}}else return I.error("Unknown interpolation type "+String(J[0]),1,0);if(y.length-1<4)return I.error("Expected at least 4 arguments, but found only "+(y.length-1)+".");if((y.length-1)%2!==0)return I.error("Expected an even number of arguments.");if(ne=I.parse(ne,2,Zn),!ne)return null;var st=[],mt=null;U==="interpolate-hcl"||U==="interpolate-lab"?mt=Tl:I.expectedType&&I.expectedType.kind!=="value"&&(mt=I.expectedType);for(var Xt=0;Xt=ur)return I.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',Lr);var _i=I.parse(nr,Yr,mt);if(!_i)return null;mt=mt||_i.type,st.push([ur,_i])}return mt.kind!=="number"&&mt.kind!=="color"&&!(mt.kind==="array"&&mt.itemType.kind==="number"&&typeof mt.N=="number")?I.error("Type "+Ls(mt)+" is not interpolatable."):new Rl(mt,U,J,ne,st)},Rl.prototype.evaluate=function(y){var I=this.labels,U=this.outputs;if(I.length===1)return U[0].evaluate(y);var J=this.input.evaluate(y);if(J<=I[0])return U[0].evaluate(y);var ne=I.length;if(J>=I[ne-1])return U[ne-1].evaluate(y);var fe=ic(I,J),Fe=I[fe],Qe=I[fe+1],st=Rl.interpolationFactor(this.interpolation,J,Fe,Qe),mt=U[fe].evaluate(y),Xt=U[fe+1].evaluate(y);return this.operator==="interpolate"?Gu[this.type.kind.toLowerCase()](mt,Xt,st):this.operator==="interpolate-hcl"?pf.reverse(pf.interpolate(pf.forward(mt),pf.forward(Xt),st)):pc.reverse(pc.interpolate(pc.forward(mt),pc.forward(Xt),st))},Rl.prototype.eachChild=function(y){y(this.input);for(var I=0,U=this.outputs;I=U.length)throw new Ms("Array index out of bounds: "+I+" > "+(U.length-1)+".");if(I!==Math.floor(I))throw new Ms("Array index must be an integer, but found "+I+" instead.");return U[I]},gc.prototype.eachChild=function(y){y(this.index),y(this.input)},gc.prototype.outputDefined=function(){return!1},gc.prototype.serialize=function(){return["at",this.index.serialize(),this.input.serialize()]};var hl=function(y,I){this.type=Co,this.needle=y,this.haystack=I};hl.parse=function(y,I){if(y.length!==3)return I.error("Expected 2 arguments, but found "+(y.length-1)+" instead.");var U=I.parse(y[1],1,So),J=I.parse(y[2],2,So);return!U||!J?null:Of(U.type,[Co,ko,Zn,Ec,So])?new hl(U,J):I.error("Expected first argument to be of type boolean, string, number or null, but found "+Ls(U.type)+" instead")},hl.prototype.evaluate=function(y){var I=this.needle.evaluate(y),U=this.haystack.evaluate(y);if(!U)return!1;if(!Gc(I,["boolean","string","number","null"]))throw new Ms("Expected first argument to be of type boolean, string, number or null, but found "+Ls(ws(I))+" instead.");if(!Gc(U,["string","array"]))throw new Ms("Expected second argument to be of type array or string, but found "+Ls(ws(U))+" instead.");return U.indexOf(I)>=0},hl.prototype.eachChild=function(y){y(this.needle),y(this.haystack)},hl.prototype.outputDefined=function(){return!0},hl.prototype.serialize=function(){return["in",this.needle.serialize(),this.haystack.serialize()]};var ru=function(y,I,U){this.type=Zn,this.needle=y,this.haystack=I,this.fromIndex=U};ru.parse=function(y,I){if(y.length<=2||y.length>=5)return I.error("Expected 3 or 4 arguments, but found "+(y.length-1)+" instead.");var U=I.parse(y[1],1,So),J=I.parse(y[2],2,So);if(!U||!J)return null;if(!Of(U.type,[Co,ko,Zn,Ec,So]))return I.error("Expected first argument to be of type boolean, string, number or null, but found "+Ls(U.type)+" instead");if(y.length===4){var ne=I.parse(y[3],3,Zn);return ne?new ru(U,J,ne):null}else return new ru(U,J)},ru.prototype.evaluate=function(y){var I=this.needle.evaluate(y),U=this.haystack.evaluate(y);if(!Gc(I,["boolean","string","number","null"]))throw new Ms("Expected first argument to be of type boolean, string, number or null, but found "+Ls(ws(I))+" instead.");if(!Gc(U,["string","array"]))throw new Ms("Expected second argument to be of type array or string, but found "+Ls(ws(U))+" instead.");if(this.fromIndex){var J=this.fromIndex.evaluate(y);return U.indexOf(I,J)}return U.indexOf(I)},ru.prototype.eachChild=function(y){y(this.needle),y(this.haystack),this.fromIndex&&y(this.fromIndex)},ru.prototype.outputDefined=function(){return!1},ru.prototype.serialize=function(){if(this.fromIndex!=null&&this.fromIndex!==void 0){var y=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),y]}return["index-of",this.needle.serialize(),this.haystack.serialize()]};var mc=function(y,I,U,J,ne,fe){this.inputType=y,this.type=I,this.input=U,this.cases=J,this.outputs=ne,this.otherwise=fe};mc.parse=function(y,I){if(y.length<5)return I.error("Expected at least 4 arguments, but found only "+(y.length-1)+".");if(y.length%2!==1)return I.error("Expected an even number of arguments.");var U,J;I.expectedType&&I.expectedType.kind!=="value"&&(J=I.expectedType);for(var ne={},fe=[],Fe=2;FeNumber.MAX_SAFE_INTEGER)return mt.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if(typeof nr=="number"&&Math.floor(nr)!==nr)return mt.error("Numeric branch labels must be integer values.");if(!U)U=ws(nr);else if(mt.checkSubtype(U,ws(nr)))return null;if(typeof ne[String(nr)]!="undefined")return mt.error("Branch labels must be unique.");ne[String(nr)]=fe.length}var Lr=I.parse(st,Fe,J);if(!Lr)return null;J=J||Lr.type,fe.push(Lr)}var Yr=I.parse(y[1],1,So);if(!Yr)return null;var _i=I.parse(y[y.length-1],y.length-1,J);return!_i||Yr.type.kind!=="value"&&I.concat(1).checkSubtype(U,Yr.type)?null:new mc(U,J,Yr,ne,fe,_i)},mc.prototype.evaluate=function(y){var I=this.input.evaluate(y),U=ws(I)===this.inputType&&this.outputs[this.cases[I]]||this.otherwise;return U.evaluate(y)},mc.prototype.eachChild=function(y){y(this.input),this.outputs.forEach(y),y(this.otherwise)},mc.prototype.outputDefined=function(){return this.outputs.every(function(y){return y.outputDefined()})&&this.otherwise.outputDefined()},mc.prototype.serialize=function(){for(var y=this,I=["match",this.input.serialize()],U=Object.keys(this.cases).sort(),J=[],ne={},fe=0,Fe=U;fe=5)return I.error("Expected 3 or 4 arguments, but found "+(y.length-1)+" instead.");var U=I.parse(y[1],1,So),J=I.parse(y[2],2,Zn);if(!U||!J)return null;if(!Of(U.type,[Ql(So),ko,So]))return I.error("Expected first argument to be of type array or string, but found "+Ls(U.type)+" instead");if(y.length===4){var ne=I.parse(y[3],3,Zn);return ne?new nc(U.type,U,J,ne):null}else return new nc(U.type,U,J)},nc.prototype.evaluate=function(y){var I=this.input.evaluate(y),U=this.beginIndex.evaluate(y);if(!Gc(I,["string","array"]))throw new Ms("Expected first argument to be of type array or string, but found "+Ls(ws(I))+" instead.");if(this.endIndex){var J=this.endIndex.evaluate(y);return I.slice(U,J)}return I.slice(U)},nc.prototype.eachChild=function(y){y(this.input),y(this.beginIndex),this.endIndex&&y(this.endIndex)},nc.prototype.outputDefined=function(){return!1},nc.prototype.serialize=function(){if(this.endIndex!=null&&this.endIndex!==void 0){var y=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),y]}return["slice",this.input.serialize(),this.beginIndex.serialize()]};function gf(m,y){return m==="=="||m==="!="?y.kind==="boolean"||y.kind==="string"||y.kind==="number"||y.kind==="null"||y.kind==="value":y.kind==="string"||y.kind==="number"||y.kind==="value"}function gt(m,y,I){return y===I}function Bt(m,y,I){return y!==I}function wr(m,y,I){return yI}function Ur(m,y,I){return y<=I}function fi(m,y,I){return y>=I}function xi(m,y,I,U){return U.compare(y,I)===0}function Fi(m,y,I,U){return!xi(m,y,I,U)}function Xi(m,y,I,U){return U.compare(y,I)<0}function hn(m,y,I,U){return U.compare(y,I)>0}function Ti(m,y,I,U){return U.compare(y,I)<=0}function qi(m,y,I,U){return U.compare(y,I)>=0}function Ii(m,y,I){var U=m!=="=="&&m!=="!=";return function(){function J(ne,fe,Fe){this.type=Co,this.lhs=ne,this.rhs=fe,this.collator=Fe,this.hasUntypedArgument=ne.type.kind==="value"||fe.type.kind==="value"}return J.parse=function(fe,Fe){if(fe.length!==3&&fe.length!==4)return Fe.error("Expected two or three arguments.");var Qe=fe[0],st=Fe.parse(fe[1],1,So);if(!st)return null;if(!gf(Qe,st.type))return Fe.concat(1).error('"'+Qe+`" comparisons are not supported for type '`+Ls(st.type)+"'.");var mt=Fe.parse(fe[2],2,So);if(!mt)return null;if(!gf(Qe,mt.type))return Fe.concat(2).error('"'+Qe+`" comparisons are not supported for type '`+Ls(mt.type)+"'.");if(st.type.kind!==mt.type.kind&&st.type.kind!=="value"&&mt.type.kind!=="value")return Fe.error("Cannot compare types '"+Ls(st.type)+"' and '"+Ls(mt.type)+"'.");U&&(st.type.kind==="value"&&mt.type.kind!=="value"?st=new Sl(mt.type,[st]):st.type.kind!=="value"&&mt.type.kind==="value"&&(mt=new Sl(st.type,[mt])));var Xt=null;if(fe.length===4){if(st.type.kind!=="string"&&mt.type.kind!=="string"&&st.type.kind!=="value"&&mt.type.kind!=="value")return Fe.error("Cannot use collator to compare non-string types.");if(Xt=Fe.parse(fe[3],3,rh),!Xt)return null}return new J(st,mt,Xt)},J.prototype.evaluate=function(fe){var Fe=this.lhs.evaluate(fe),Qe=this.rhs.evaluate(fe);if(U&&this.hasUntypedArgument){var st=ws(Fe),mt=ws(Qe);if(st.kind!==mt.kind||!(st.kind==="string"||st.kind==="number"))throw new Ms('Expected arguments for "'+m+'" to be (string, string) or (number, number), but found ('+st.kind+", "+mt.kind+") instead.")}if(this.collator&&!U&&this.hasUntypedArgument){var Xt=ws(Fe),ur=ws(Qe);if(Xt.kind!=="string"||ur.kind!=="string")return y(fe,Fe,Qe)}return this.collator?I(fe,Fe,Qe,this.collator.evaluate(fe)):y(fe,Fe,Qe)},J.prototype.eachChild=function(fe){fe(this.lhs),fe(this.rhs),this.collator&&fe(this.collator)},J.prototype.outputDefined=function(){return!0},J.prototype.serialize=function(){var fe=[m];return this.eachChild(function(Fe){fe.push(Fe.serialize())}),fe},J}()}var mi=Ii("==",gt,xi),Pn=Ii("!=",Bt,Fi),Ma=Ii("<",wr,Xi),Ta=Ii(">",vr,hn),Ea=Ii("<=",Ur,Ti),qa=Ii(">=",fi,qi),Cn=function(y,I,U,J,ne){this.type=ko,this.number=y,this.locale=I,this.currency=U,this.minFractionDigits=J,this.maxFractionDigits=ne};Cn.parse=function(y,I){if(y.length!==3)return I.error("Expected two arguments.");var U=I.parse(y[1],1,Zn);if(!U)return null;var J=y[2];if(typeof J!="object"||Array.isArray(J))return I.error("NumberFormat options argument must be an object.");var ne=null;if(J.locale&&(ne=I.parse(J.locale,1,ko),!ne))return null;var fe=null;if(J.currency&&(fe=I.parse(J.currency,1,ko),!fe))return null;var Fe=null;if(J["min-fraction-digits"]&&(Fe=I.parse(J["min-fraction-digits"],1,Zn),!Fe))return null;var Qe=null;return J["max-fraction-digits"]&&(Qe=I.parse(J["max-fraction-digits"],1,Zn),!Qe)?null:new Cn(U,ne,fe,Fe,Qe)},Cn.prototype.evaluate=function(y){return new Intl.NumberFormat(this.locale?this.locale.evaluate(y):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(y):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(y):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(y):void 0}).format(this.number.evaluate(y))},Cn.prototype.eachChild=function(y){y(this.number),this.locale&&y(this.locale),this.currency&&y(this.currency),this.minFractionDigits&&y(this.minFractionDigits),this.maxFractionDigits&&y(this.maxFractionDigits)},Cn.prototype.outputDefined=function(){return!1},Cn.prototype.serialize=function(){var y={};return this.locale&&(y.locale=this.locale.serialize()),this.currency&&(y.currency=this.currency.serialize()),this.minFractionDigits&&(y["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(y["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),y]};var sn=function(y){this.type=Zn,this.input=y};sn.parse=function(y,I){if(y.length!==2)return I.error("Expected 1 argument, but found "+(y.length-1)+" instead.");var U=I.parse(y[1],1);return U?U.type.kind!=="array"&&U.type.kind!=="string"&&U.type.kind!=="value"?I.error("Expected argument of type string or array, but found "+Ls(U.type)+" instead."):new sn(U):null},sn.prototype.evaluate=function(y){var I=this.input.evaluate(y);if(typeof I=="string")return I.length;if(Array.isArray(I))return I.length;throw new Ms("Expected value to be of type string or array, but found "+Ls(ws(I))+" instead.")},sn.prototype.eachChild=function(y){y(this.input)},sn.prototype.outputDefined=function(){return!1},sn.prototype.serialize=function(){var y=["length"];return this.eachChild(function(I){y.push(I.serialize())}),y};var Ua={"==":mi,"!=":Pn,">":Ta,"<":Ma,">=":qa,"<=":Ea,array:Sl,at:gc,boolean:Sl,case:Yc,coalesce:Wu,collator:tc,format:ec,image:Ps,in:hl,"index-of":ru,interpolate:Rl,"interpolate-hcl":Rl,"interpolate-lab":Rl,length:sn,let:Rc,literal:hs,match:mc,number:Sl,"number-format":Cn,object:Sl,slice:nc,step:yu,string:Sl,"to-boolean":wo,"to-color":wo,"to-number":wo,"to-string":wo,var:Lc,within:Lu};function mo(m,y){var I=y[0],U=y[1],J=y[2],ne=y[3];I=I.evaluate(m),U=U.evaluate(m),J=J.evaluate(m);var fe=ne?ne.evaluate(m):1,Fe=hc(I,U,J,fe);if(Fe)throw new Ms(Fe);return new ss(I/255*fe,U/255*fe,J/255*fe,fe)}function Xo(m,y){return m in y}function Ts(m,y){var I=y[m];return typeof I=="undefined"?null:I}function Qo(m,y,I,U){for(;I<=U;){var J=I+U>>1;if(y[J]===m)return!0;y[J]>m?U=J-1:I=J+1}return!1}function ys(m){return{type:m}}Ja.register(Ua,{error:[cf,[ko],function(m,y){var I=y[0];throw new Ms(I.evaluate(m))}],typeof:[ko,[So],function(m,y){var I=y[0];return Ls(ws(I.evaluate(m)))}],"to-rgba":[Ql(Zn,4),[Tl],function(m,y){var I=y[0];return I.evaluate(m).toArray()}],rgb:[Tl,[Zn,Zn,Zn],mo],rgba:[Tl,[Zn,Zn,Zn,Zn],mo],has:{type:Co,overloads:[[[ko],function(m,y){var I=y[0];return Xo(I.evaluate(m),m.properties())}],[[ko,uf],function(m,y){var I=y[0],U=y[1];return Xo(I.evaluate(m),U.evaluate(m))}]]},get:{type:So,overloads:[[[ko],function(m,y){var I=y[0];return Ts(I.evaluate(m),m.properties())}],[[ko,uf],function(m,y){var I=y[0],U=y[1];return Ts(I.evaluate(m),U.evaluate(m))}]]},"feature-state":[So,[ko],function(m,y){var I=y[0];return Ts(I.evaluate(m),m.featureState||{})}],properties:[uf,[],function(m){return m.properties()}],"geometry-type":[ko,[],function(m){return m.geometryType()}],id:[So,[],function(m){return m.id()}],zoom:[Zn,[],function(m){return m.globals.zoom}],"heatmap-density":[Zn,[],function(m){return m.globals.heatmapDensity||0}],"line-progress":[Zn,[],function(m){return m.globals.lineProgress||0}],accumulated:[So,[],function(m){return m.globals.accumulated===void 0?null:m.globals.accumulated}],"+":[Zn,ys(Zn),function(m,y){for(var I=0,U=0,J=y;U":[Co,[ko,So],function(m,y){var I=y[0],U=y[1],J=m.properties()[I.value],ne=U.value;return typeof J==typeof ne&&J>ne}],"filter-id->":[Co,[So],function(m,y){var I=y[0],U=m.id(),J=I.value;return typeof U==typeof J&&U>J}],"filter-<=":[Co,[ko,So],function(m,y){var I=y[0],U=y[1],J=m.properties()[I.value],ne=U.value;return typeof J==typeof ne&&J<=ne}],"filter-id-<=":[Co,[So],function(m,y){var I=y[0],U=m.id(),J=I.value;return typeof U==typeof J&&U<=J}],"filter->=":[Co,[ko,So],function(m,y){var I=y[0],U=y[1],J=m.properties()[I.value],ne=U.value;return typeof J==typeof ne&&J>=ne}],"filter-id->=":[Co,[So],function(m,y){var I=y[0],U=m.id(),J=I.value;return typeof U==typeof J&&U>=J}],"filter-has":[Co,[So],function(m,y){var I=y[0];return I.value in m.properties()}],"filter-has-id":[Co,[],function(m){return m.id()!==null&&m.id()!==void 0}],"filter-type-in":[Co,[Ql(ko)],function(m,y){var I=y[0];return I.value.indexOf(m.geometryType())>=0}],"filter-id-in":[Co,[Ql(So)],function(m,y){var I=y[0];return I.value.indexOf(m.id())>=0}],"filter-in-small":[Co,[ko,Ql(So)],function(m,y){var I=y[0],U=y[1];return U.value.indexOf(m.properties()[I.value])>=0}],"filter-in-large":[Co,[ko,Ql(So)],function(m,y){var I=y[0],U=y[1];return Qo(m.properties()[I.value],U.value,0,U.value.length-1)}],all:{type:Co,overloads:[[[Co,Co],function(m,y){var I=y[0],U=y[1];return I.evaluate(m)&&U.evaluate(m)}],[ys(Co),function(m,y){for(var I=0,U=y;I-1}function ia(m){return!!m.expression&&m.expression.interpolated}function Ka(m){return m instanceof Number?"number":m instanceof String?"string":m instanceof Boolean?"boolean":Array.isArray(m)?"array":m===null?"null":typeof m}function vs(m){return typeof m=="object"&&m!==null&&!Array.isArray(m)}function Ko(m){return m}function iu(m,y){var I=y.type==="color",U=m.stops&&typeof m.stops[0][0]=="object",J=U||m.property!==void 0,ne=U||!J,fe=m.type||(ia(y)?"exponential":"interval");if(I&&(m=Il({},m),m.stops&&(m.stops=m.stops.map(function($n){return[$n[0],ss.parse($n[1])]})),m.default?m.default=ss.parse(m.default):m.default=ss.parse(y.default)),m.colorSpace&&m.colorSpace!=="rgb"&&!Ph[m.colorSpace])throw new Error("Unknown color space: "+m.colorSpace);var Fe,Qe,st;if(fe==="exponential")Fe=bu;else if(fe==="interval")Fe=mf;else if(fe==="categorical"){Fe=ac,Qe=Object.create(null);for(var mt=0,Xt=m.stops;mt=m.stops[U-1][0])return m.stops[U-1][1];var J=ic(m.stops.map(function(ne){return ne[0]}),I);return m.stops[J][1]}function bu(m,y,I){var U=m.base!==void 0?m.base:1;if(Ka(I)!=="number")return Ru(m.default,y.default);var J=m.stops.length;if(J===1||I<=m.stops[0][0])return m.stops[0][1];if(I>=m.stops[J-1][0])return m.stops[J-1][1];var ne=ic(m.stops.map(function(Xt){return Xt[0]}),I),fe=Du(I,U,m.stops[ne][0],m.stops[ne+1][0]),Fe=m.stops[ne][1],Qe=m.stops[ne+1][1],st=Gu[y.type]||Ko;if(m.colorSpace&&m.colorSpace!=="rgb"){var mt=Ph[m.colorSpace];st=function(Xt,ur){return mt.reverse(mt.interpolate(mt.forward(Xt),mt.forward(ur),fe))}}return typeof Fe.evaluate=="function"?{evaluate:function(){for(var ur=[],nr=arguments.length;nr--;)ur[nr]=arguments[nr];var Lr=Fe.evaluate.apply(void 0,ur),Yr=Qe.evaluate.apply(void 0,ur);if(!(Lr===void 0||Yr===void 0))return st(Lr,Yr,fe)}}:st(Fe,Qe,fe)}function Kc(m,y,I){return y.type==="color"?I=ss.parse(I):y.type==="formatted"?I=Ul.fromString(I.toString()):y.type==="resolvedImage"?I=Js.fromString(I.toString()):Ka(I)!==y.type&&(y.type!=="enum"||!y.values[I])&&(I=void 0),Ru(I,m.default,y.default)}function Du(m,y,I,U){var J=U-I,ne=m-I;return J===0?0:y===1?ne/J:(Math.pow(y,ne)-1)/(Math.pow(y,J)-1)}var Dc=function(y,I){this.expression=y,this._warningHistory={},this._evaluator=new $o,this._defaultValue=I?ee(I):null,this._enumValues=I&&I.type==="enum"?I.values:null};Dc.prototype.evaluateWithoutErrorHandling=function(y,I,U,J,ne,fe){return this._evaluator.globals=y,this._evaluator.feature=I,this._evaluator.featureState=U,this._evaluator.canonical=J,this._evaluator.availableImages=ne||null,this._evaluator.formattedSection=fe,this.expression.evaluate(this._evaluator)},Dc.prototype.evaluate=function(y,I,U,J,ne,fe){this._evaluator.globals=y,this._evaluator.feature=I||null,this._evaluator.featureState=U||null,this._evaluator.canonical=J,this._evaluator.availableImages=ne||null,this._evaluator.formattedSection=fe||null;try{var Fe=this.expression.evaluate(this._evaluator);if(Fe==null||typeof Fe=="number"&&Fe!==Fe)return this._defaultValue;if(this._enumValues&&!(Fe in this._enumValues))throw new Ms("Expected value to be one of "+Object.keys(this._enumValues).map(function(Qe){return JSON.stringify(Qe)}).join(", ")+", but found "+JSON.stringify(Fe)+" instead.");return Fe}catch(Qe){return this._warningHistory[Qe.message]||(this._warningHistory[Qe.message]=!0,typeof console!="undefined"&&console.warn(Qe.message)),this._defaultValue}};function Da(m){return Array.isArray(m)&&m.length>0&&typeof m[0]=="string"&&m[0]in Ua}function eo(m,y){var I=new fl(Ua,[],y?Q(y):void 0),U=I.parse(m,void 0,void 0,void 0,y&&y.type==="string"?{typeAnnotation:"coerce"}:void 0);return U?Bo(new Dc(U,y)):yl(I.errors)}var Jc=function(y,I){this.kind=y,this._styleExpression=I,this.isStateDependent=y!=="constant"&&!eu(I.expression)};Jc.prototype.evaluateWithoutErrorHandling=function(y,I,U,J,ne,fe){return this._styleExpression.evaluateWithoutErrorHandling(y,I,U,J,ne,fe)},Jc.prototype.evaluate=function(y,I,U,J,ne,fe){return this._styleExpression.evaluate(y,I,U,J,ne,fe)};var yc=function(y,I,U,J){this.kind=y,this.zoomStops=U,this._styleExpression=I,this.isStateDependent=y!=="camera"&&!eu(I.expression),this.interpolationType=J};yc.prototype.evaluateWithoutErrorHandling=function(y,I,U,J,ne,fe){return this._styleExpression.evaluateWithoutErrorHandling(y,I,U,J,ne,fe)},yc.prototype.evaluate=function(y,I,U,J,ne,fe){return this._styleExpression.evaluate(y,I,U,J,ne,fe)},yc.prototype.interpolationFactor=function(y,I,U){return this.interpolationType?Rl.interpolationFactor(this.interpolationType,y,I,U):0};function _c(m,y){if(m=eo(m,y),m.result==="error")return m;var I=m.value.expression,U=$h(I);if(!U&&!Gs(y))return yl([new Ks("","data expressions not supported")]);var J=Pu(I,["zoom"]);if(!J&&!Rs(y))return yl([new Ks("","zoom expressions not supported")]);var ne=B(I);if(!ne&&!J)return yl([new Ks("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')]);if(ne instanceof Ks)return yl([ne]);if(ne instanceof Rl&&!ia(y))return yl([new Ks("",'"interpolate" expressions cannot be used with this property')]);if(!ne)return Bo(U?new Jc("constant",m.value):new Jc("source",m.value));var fe=ne instanceof Rl?ne.interpolation:void 0;return Bo(U?new yc("camera",m.value,ne.labels,fe):new yc("composite",m.value,ne.labels,fe))}var le=function(y,I){this._parameters=y,this._specification=I,Il(this,iu(this._parameters,this._specification))};le.deserialize=function(y){return new le(y._parameters,y._specification)},le.serialize=function(y){return{_parameters:y._parameters,_specification:y._specification}};function w(m,y){if(vs(m))return new le(m,y);if(Da(m)){var I=_c(m,y);if(I.result==="error")throw new Error(I.value.map(function(J){return J.key+": "+J.message}).join(", "));return I.value}else{var U=m;return typeof m=="string"&&y.type==="color"&&(U=ss.parse(m)),{kind:"constant",evaluate:function(){return U}}}}function B(m){var y=null;if(m instanceof Rc)y=B(m.result);else if(m instanceof Wu)for(var I=0,U=m.args;IU.maximum?[new fa(y,I,I+" is greater than the maximum value "+U.maximum)]:[]}function it(m){var y=m.valueSpec,I=vo(m.value.type),U,J={},ne,fe,Fe=I!=="categorical"&&m.value.property===void 0,Qe=!Fe,st=Ka(m.value.stops)==="array"&&Ka(m.value.stops[0])==="array"&&Ka(m.value.stops[0][0])==="object",mt=se({key:m.key,value:m.value,valueSpec:m.styleSpec.function,style:m.style,styleSpec:m.styleSpec,objectElementValidators:{stops:Xt,default:Lr}});return I==="identity"&&Fe&&mt.push(new fa(m.key,m.value,'missing required property "property"')),I!=="identity"&&!m.value.stops&&mt.push(new fa(m.key,m.value,'missing required property "stops"')),I==="exponential"&&m.valueSpec.expression&&!ia(m.valueSpec)&&mt.push(new fa(m.key,m.value,"exponential functions not supported")),m.styleSpec.$version>=8&&(Qe&&!Gs(m.valueSpec)?mt.push(new fa(m.key,m.value,"property functions not supported")):Fe&&!Rs(m.valueSpec)&&mt.push(new fa(m.key,m.value,"zoom functions not supported"))),(I==="categorical"||st)&&m.value.property===void 0&&mt.push(new fa(m.key,m.value,'"property" property is required')),mt;function Xt(Yr){if(I==="identity")return[new fa(Yr.key,Yr.value,'identity function may not have a "stops" property')];var _i=[],si=Yr.value;return _i=_i.concat(qe({key:Yr.key,value:si,valueSpec:Yr.valueSpec,style:Yr.style,styleSpec:Yr.styleSpec,arrayElementValidator:ur})),Ka(si)==="array"&&si.length===0&&_i.push(new fa(Yr.key,si,"array must have at least one stop")),_i}function ur(Yr){var _i=[],si=Yr.value,Hi=Yr.key;if(Ka(si)!=="array")return[new fa(Hi,si,"array expected, "+Ka(si)+" found")];if(si.length!==2)return[new fa(Hi,si,"array length 2 expected, length "+si.length+" found")];if(st){if(Ka(si[0])!=="object")return[new fa(Hi,si,"object expected, "+Ka(si[0])+" found")];if(si[0].zoom===void 0)return[new fa(Hi,si,"object stop key must have zoom")];if(si[0].value===void 0)return[new fa(Hi,si,"object stop key must have value")];if(fe&&fe>vo(si[0].zoom))return[new fa(Hi,si[0].zoom,"stop zoom values must appear in ascending order")];vo(si[0].zoom)!==fe&&(fe=vo(si[0].zoom),ne=void 0,J={}),_i=_i.concat(se({key:Hi+"[0]",value:si[0],valueSpec:{zoom:{}},style:Yr.style,styleSpec:Yr.styleSpec,objectElementValidators:{zoom:je,value:nr}}))}else _i=_i.concat(nr({key:Hi+"[0]",value:si[0],valueSpec:{},style:Yr.style,styleSpec:Yr.styleSpec},si));return Da(Wl(si[1]))?_i.concat([new fa(Hi+"[1]",si[1],"expressions are not allowed in function stops.")]):_i.concat(Wa({key:Hi+"[1]",value:si[1],valueSpec:y,style:Yr.style,styleSpec:Yr.styleSpec}))}function nr(Yr,_i){var si=Ka(Yr.value),Hi=vo(Yr.value),Ei=Yr.value!==null?Yr.value:_i;if(!U)U=si;else if(si!==U)return[new fa(Yr.key,Ei,si+" stop domain type must match previous stop domain type "+U)];if(si!=="number"&&si!=="string"&&si!=="boolean")return[new fa(Yr.key,Ei,"stop domain value must be a number, string, or boolean")];if(si!=="number"&&I!=="categorical"){var Vi="number expected, "+si+" found";return Gs(y)&&I===void 0&&(Vi+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new fa(Yr.key,Ei,Vi)]}return I==="categorical"&&si==="number"&&(!isFinite(Hi)||Math.floor(Hi)!==Hi)?[new fa(Yr.key,Ei,"integer expected, found "+Hi)]:I!=="categorical"&&si==="number"&&ne!==void 0&&Hi=2&&m[1]!=="$id"&&m[1]!=="$type";case"in":return m.length>=3&&(typeof m[1]!="string"||Array.isArray(m[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return m.length!==3||Array.isArray(m[1])||Array.isArray(m[2]);case"any":case"all":for(var y=0,I=m.slice(1);yy?1:0}function Oe(m){if(!Array.isArray(m))return!1;if(m[0]==="within")return!0;for(var y=1;y"||y==="<="||y===">="?He(m[1],m[2],y):y==="any"?et(m.slice(1)):y==="all"?["all"].concat(m.slice(1).map(Je)):y==="none"?["all"].concat(m.slice(1).map(Je).map(Ut)):y==="in"?Mt(m[1],m.slice(2)):y==="!in"?Ut(Mt(m[1],m.slice(2))):y==="has"?Dt(m[1]):y==="!has"?Ut(Dt(m[1])):y==="within"?m:!0;return I}function He(m,y,I){switch(m){case"$type":return["filter-type-"+I,y];case"$id":return["filter-id-"+I,y];default:return["filter-"+I,m,y]}}function et(m){return["any"].concat(m.map(Je))}function Mt(m,y){if(y.length===0)return!1;switch(m){case"$type":return["filter-type-in",["literal",y]];case"$id":return["filter-id-in",["literal",y]];default:return y.length>200&&!y.some(function(I){return typeof I!=typeof y[0]})?["filter-in-large",m,["literal",y.sort(Pe)]]:["filter-in-small",m,["literal",y]]}}function Dt(m){switch(m){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",m]}}function Ut(m){return["!",m]}function tr(m){return Sr(Wl(m.value))?yt(Il({},m,{expressionContext:"filter",valueSpec:{value:"boolean"}})):mr(m)}function mr(m){var y=m.value,I=m.key;if(Ka(y)!=="array")return[new fa(I,y,"array expected, "+Ka(y)+" found")];var U=m.styleSpec,J,ne=[];if(y.length<1)return[new fa(I,y,"filter array must have at least 1 element")];switch(ne=ne.concat(hr({key:I+"[0]",value:y[0],valueSpec:U.filter_operator,style:m.style,styleSpec:m.styleSpec})),vo(y[0])){case"<":case"<=":case">":case">=":y.length>=2&&vo(y[1])==="$type"&&ne.push(new fa(I,y,'"$type" cannot be use with operator "'+y[0]+'"'));case"==":case"!=":y.length!==3&&ne.push(new fa(I,y,'filter array for operator "'+y[0]+'" must have 3 elements'));case"in":case"!in":y.length>=2&&(J=Ka(y[1]),J!=="string"&&ne.push(new fa(I+"[1]",y[1],"string expected, "+J+" found")));for(var fe=2;fe=mt[nr+0]&&U>=mt[nr+1])?(fe[ur]=!0,ne.push(st[ur])):fe[ur]=!1}}},nu.prototype._forEachCell=function(m,y,I,U,J,ne,fe,Fe){for(var Qe=this._convertToCellCoord(m),st=this._convertToCellCoord(y),mt=this._convertToCellCoord(I),Xt=this._convertToCellCoord(U),ur=Qe;ur<=mt;ur++)for(var nr=st;nr<=Xt;nr++){var Lr=this.d*nr+ur;if(!(Fe&&!Fe(this._convertFromCellCoord(ur),this._convertFromCellCoord(nr),this._convertFromCellCoord(ur+1),this._convertFromCellCoord(nr+1)))&&J.call(this,m,y,I,U,Lr,ne,fe,Fe))return}},nu.prototype._convertFromCellCoord=function(m){return(m-this.padding)/this.scale},nu.prototype._convertToCellCoord=function(m){return Math.max(0,Math.min(this.d-1,Math.floor(m*this.scale)+this.padding))},nu.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var m=this.cells,y=el+this.cells.length+1+1,I=0,U=0;U=0)){var Xt=m[mt];st[mt]=zl[Qe].shallow.indexOf(mt)>=0?Xt:Ue(Xt,y)}m instanceof Error&&(st.message=m.message)}if(st.$name)throw new Error("$name property is reserved for worker serialization logic.");return Qe!=="Object"&&(st.$name=Qe),st}throw new Error("can't serialize object of type "+typeof m)}function We(m){if(m==null||typeof m=="boolean"||typeof m=="number"||typeof m=="string"||m instanceof Boolean||m instanceof Number||m instanceof String||m instanceof Date||m instanceof RegExp||we(m)||Be(m)||ArrayBuffer.isView(m)||m instanceof zc)return m;if(Array.isArray(m))return m.map(We);if(typeof m=="object"){var y=m.$name||"Object",I=zl[y],U=I.klass;if(!U)throw new Error("can't deserialize unregistered class "+y);if(U.deserialize)return U.deserialize(m);for(var J=Object.create(U.prototype),ne=0,fe=Object.keys(m);ne=0?Qe:We(Qe)}}return J}throw new Error("can't deserialize object of type "+typeof m)}var wt=function(){this.first=!0};wt.prototype.update=function(y,I){var U=Math.floor(y);return this.first?(this.first=!1,this.lastIntegerZoom=U,this.lastIntegerZoomTime=0,this.lastZoom=y,this.lastFloorZoom=U,!0):(this.lastFloorZoom>U?(this.lastIntegerZoom=U+1,this.lastIntegerZoomTime=I):this.lastFloorZoom=128&&m<=255},Arabic:function(m){return m>=1536&&m<=1791},"Arabic Supplement":function(m){return m>=1872&&m<=1919},"Arabic Extended-A":function(m){return m>=2208&&m<=2303},"Hangul Jamo":function(m){return m>=4352&&m<=4607},"Unified Canadian Aboriginal Syllabics":function(m){return m>=5120&&m<=5759},Khmer:function(m){return m>=6016&&m<=6143},"Unified Canadian Aboriginal Syllabics Extended":function(m){return m>=6320&&m<=6399},"General Punctuation":function(m){return m>=8192&&m<=8303},"Letterlike Symbols":function(m){return m>=8448&&m<=8527},"Number Forms":function(m){return m>=8528&&m<=8591},"Miscellaneous Technical":function(m){return m>=8960&&m<=9215},"Control Pictures":function(m){return m>=9216&&m<=9279},"Optical Character Recognition":function(m){return m>=9280&&m<=9311},"Enclosed Alphanumerics":function(m){return m>=9312&&m<=9471},"Geometric Shapes":function(m){return m>=9632&&m<=9727},"Miscellaneous Symbols":function(m){return m>=9728&&m<=9983},"Miscellaneous Symbols and Arrows":function(m){return m>=11008&&m<=11263},"CJK Radicals Supplement":function(m){return m>=11904&&m<=12031},"Kangxi Radicals":function(m){return m>=12032&&m<=12255},"Ideographic Description Characters":function(m){return m>=12272&&m<=12287},"CJK Symbols and Punctuation":function(m){return m>=12288&&m<=12351},Hiragana:function(m){return m>=12352&&m<=12447},Katakana:function(m){return m>=12448&&m<=12543},Bopomofo:function(m){return m>=12544&&m<=12591},"Hangul Compatibility Jamo":function(m){return m>=12592&&m<=12687},Kanbun:function(m){return m>=12688&&m<=12703},"Bopomofo Extended":function(m){return m>=12704&&m<=12735},"CJK Strokes":function(m){return m>=12736&&m<=12783},"Katakana Phonetic Extensions":function(m){return m>=12784&&m<=12799},"Enclosed CJK Letters and Months":function(m){return m>=12800&&m<=13055},"CJK Compatibility":function(m){return m>=13056&&m<=13311},"CJK Unified Ideographs Extension A":function(m){return m>=13312&&m<=19903},"Yijing Hexagram Symbols":function(m){return m>=19904&&m<=19967},"CJK Unified Ideographs":function(m){return m>=19968&&m<=40959},"Yi Syllables":function(m){return m>=40960&&m<=42127},"Yi Radicals":function(m){return m>=42128&&m<=42191},"Hangul Jamo Extended-A":function(m){return m>=43360&&m<=43391},"Hangul Syllables":function(m){return m>=44032&&m<=55215},"Hangul Jamo Extended-B":function(m){return m>=55216&&m<=55295},"Private Use Area":function(m){return m>=57344&&m<=63743},"CJK Compatibility Ideographs":function(m){return m>=63744&&m<=64255},"Arabic Presentation Forms-A":function(m){return m>=64336&&m<=65023},"Vertical Forms":function(m){return m>=65040&&m<=65055},"CJK Compatibility Forms":function(m){return m>=65072&&m<=65103},"Small Form Variants":function(m){return m>=65104&&m<=65135},"Arabic Presentation Forms-B":function(m){return m>=65136&&m<=65279},"Halfwidth and Fullwidth Forms":function(m){return m>=65280&&m<=65519}};function zt(m){for(var y=0,I=m;y=65097&&m<=65103)||tt["CJK Compatibility Ideographs"](m)||tt["CJK Compatibility"](m)||tt["CJK Radicals Supplement"](m)||tt["CJK Strokes"](m)||tt["CJK Symbols and Punctuation"](m)&&!(m>=12296&&m<=12305)&&!(m>=12308&&m<=12319)&&m!==12336||tt["CJK Unified Ideographs Extension A"](m)||tt["CJK Unified Ideographs"](m)||tt["Enclosed CJK Letters and Months"](m)||tt["Hangul Compatibility Jamo"](m)||tt["Hangul Jamo Extended-A"](m)||tt["Hangul Jamo Extended-B"](m)||tt["Hangul Jamo"](m)||tt["Hangul Syllables"](m)||tt.Hiragana(m)||tt["Ideographic Description Characters"](m)||tt.Kanbun(m)||tt["Kangxi Radicals"](m)||tt["Katakana Phonetic Extensions"](m)||tt.Katakana(m)&&m!==12540||tt["Halfwidth and Fullwidth Forms"](m)&&m!==65288&&m!==65289&&m!==65293&&!(m>=65306&&m<=65310)&&m!==65339&&m!==65341&&m!==65343&&!(m>=65371&&m<=65503)&&m!==65507&&!(m>=65512&&m<=65519)||tt["Small Form Variants"](m)&&!(m>=65112&&m<=65118)&&!(m>=65123&&m<=65126)||tt["Unified Canadian Aboriginal Syllabics"](m)||tt["Unified Canadian Aboriginal Syllabics Extended"](m)||tt["Vertical Forms"](m)||tt["Yijing Hexagram Symbols"](m)||tt["Yi Syllables"](m)||tt["Yi Radicals"](m))}function oi(m){return!!(tt["Latin-1 Supplement"](m)&&(m===167||m===169||m===174||m===177||m===188||m===189||m===190||m===215||m===247)||tt["General Punctuation"](m)&&(m===8214||m===8224||m===8225||m===8240||m===8241||m===8251||m===8252||m===8258||m===8263||m===8264||m===8265||m===8273)||tt["Letterlike Symbols"](m)||tt["Number Forms"](m)||tt["Miscellaneous Technical"](m)&&(m>=8960&&m<=8967||m>=8972&&m<=8991||m>=8996&&m<=9e3||m===9003||m>=9085&&m<=9114||m>=9150&&m<=9165||m===9167||m>=9169&&m<=9179||m>=9186&&m<=9215)||tt["Control Pictures"](m)&&m!==9251||tt["Optical Character Recognition"](m)||tt["Enclosed Alphanumerics"](m)||tt["Geometric Shapes"](m)||tt["Miscellaneous Symbols"](m)&&!(m>=9754&&m<=9759)||tt["Miscellaneous Symbols and Arrows"](m)&&(m>=11026&&m<=11055||m>=11088&&m<=11097||m>=11192&&m<=11243)||tt["CJK Symbols and Punctuation"](m)||tt.Katakana(m)||tt["Private Use Area"](m)||tt["CJK Compatibility Forms"](m)||tt["Small Form Variants"](m)||tt["Halfwidth and Fullwidth Forms"](m)||m===8734||m===8756||m===8757||m>=9984&&m<=10087||m>=10102&&m<=10131||m===65532||m===65533)}function ui(m){return!(Ir(m)||oi(m))}function qr(m){return tt.Arabic(m)||tt["Arabic Supplement"](m)||tt["Arabic Extended-A"](m)||tt["Arabic Presentation Forms-A"](m)||tt["Arabic Presentation Forms-B"](m)}function Kr(m){return m>=1424&&m<=2303||tt["Arabic Presentation Forms-A"](m)||tt["Arabic Presentation Forms-B"](m)}function ii(m,y){return!(!y&&Kr(m)||m>=2304&&m<=3583||m>=3840&&m<=4255||tt.Khmer(m))}function vi(m){for(var y=0,I=m;y-1&&(dn=Jr.error),un&&un(m)};function ga(){ya.fire(new jo("pluginStateChange",{pluginStatus:dn,pluginURL:En}))}var ya=new Sn,so=function(){return dn},wa=function(m){return m({pluginStatus:dn,pluginURL:En}),ya.on("pluginStateChange",m),m},io=function(m,y,I){if(I===void 0&&(I=!1),dn===Jr.deferred||dn===Jr.loading||dn===Jr.loaded)throw new Error("setRTLTextPlugin cannot be called multiple times.");En=nt.resolveURL(m),dn=Jr.deferred,un=y,ga(),I||Ss()},Ss=function(){if(dn!==Jr.deferred||!En)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");dn=Jr.loading,ga(),En&&Zr({url:En},function(m){m?Nn(m):(dn=Jr.loaded,ga())})},_s={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return dn===Jr.loaded||_s.applyArabicShaping!=null},isLoading:function(){return dn===Jr.loading},setState:function(y){dn=y.pluginStatus,En=y.pluginURL},isParsed:function(){return _s.applyArabicShaping!=null&&_s.processBidirectionalText!=null&&_s.processStyledBidirectionalText!=null},getPluginURL:function(){return En}},Ns=function(){!_s.isLoading()&&!_s.isLoaded()&&so()==="deferred"&&Ss()},pn=function(y,I){this.zoom=y,I?(this.now=I.now,this.fadeDuration=I.fadeDuration,this.zoomHistory=I.zoomHistory,this.transition=I.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new wt,this.transition={})};pn.prototype.isSupportedScript=function(y){return ci(y,_s.isLoaded())},pn.prototype.crossFadingFactor=function(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)},pn.prototype.getCrossfadeParameters=function(){var y=this.zoom,I=y-Math.floor(y),U=this.crossFadingFactor();return y>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:I+(1-I)*U}:{fromScale:.5,toScale:1,t:1-(1-U)*I}};var za=function(y,I){this.property=y,this.value=I,this.expression=w(I===void 0?y.specification.default:I,y.specification)};za.prototype.isDataDriven=function(){return this.expression.kind==="source"||this.expression.kind==="composite"},za.prototype.possiblyEvaluate=function(y,I,U){return this.property.possiblyEvaluate(this,y,I,U)};var Lo=function(y){this.property=y,this.value=new za(y,void 0)};Lo.prototype.transitioned=function(y,I){return new js(this.property,this.value,I,_({},y.transition,this.transition),y.now)},Lo.prototype.untransitioned=function(){return new js(this.property,this.value,null,{},0)};var Fo=function(y){this._properties=y,this._values=Object.create(y.defaultTransitionablePropertyValues)};Fo.prototype.getValue=function(y){return G(this._values[y].value.value)},Fo.prototype.setValue=function(y,I){this._values.hasOwnProperty(y)||(this._values[y]=new Lo(this._values[y].property)),this._values[y].value=new za(this._values[y].property,I===null?void 0:G(I))},Fo.prototype.getTransition=function(y){return G(this._values[y].transition)},Fo.prototype.setTransition=function(y,I){this._values.hasOwnProperty(y)||(this._values[y]=new Lo(this._values[y].property)),this._values[y].transition=G(I)||void 0},Fo.prototype.serialize=function(){for(var y={},I=0,U=Object.keys(this._values);Ithis.end)return this.prior=null,ne;if(this.value.isDataDriven())return this.prior=null,ne;if(Jfe.zoomHistory.lastIntegerZoom?{from:U,to:J}:{from:ne,to:J}},y.prototype.interpolate=function(U){return U},y}(Er),wi=function(y){this.specification=y};wi.prototype.possiblyEvaluate=function(y,I,U,J){if(y.value!==void 0)if(y.expression.kind==="constant"){var ne=y.expression.evaluate(I,null,{},U,J);return this._calculate(ne,ne,ne,I)}else return this._calculate(y.expression.evaluate(new pn(Math.floor(I.zoom-1),I)),y.expression.evaluate(new pn(Math.floor(I.zoom),I)),y.expression.evaluate(new pn(Math.floor(I.zoom+1),I)),I)},wi.prototype._calculate=function(y,I,U,J){var ne=J.zoom;return ne>J.zoomHistory.lastIntegerZoom?{from:y,to:I}:{from:U,to:I}},wi.prototype.interpolate=function(y){return y};var Ui=function(y){this.specification=y};Ui.prototype.possiblyEvaluate=function(y,I,U,J){return!!y.expression.evaluate(I,null,{},U,J)},Ui.prototype.interpolate=function(){return!1};var Oi=function(y){this.properties=y,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(var I in y){var U=y[I];U.specification.overridable&&this.overridableProperties.push(I);var J=this.defaultPropertyValues[I]=new za(U,void 0),ne=this.defaultTransitionablePropertyValues[I]=new Lo(U);this.defaultTransitioningPropertyValues[I]=ne.untransitioned(),this.defaultPossiblyEvaluatedValues[I]=J.possiblyEvaluate({})}};Z("DataDrivenProperty",Er),Z("DataConstantProperty",At),Z("CrossFadedDataDrivenProperty",Wr),Z("CrossFadedProperty",wi),Z("ColorRampProperty",Ui);var Bi="-transition",cn=function(m){function y(I,U){if(m.call(this),this.id=I.id,this.type=I.type,this._featureFilter={filter:function(){return!0},needGeometry:!1},I.type!=="custom"&&(I=I,this.metadata=I.metadata,this.minzoom=I.minzoom,this.maxzoom=I.maxzoom,I.type!=="background"&&(this.source=I.source,this.sourceLayer=I["source-layer"],this.filter=I.filter),U.layout&&(this._unevaluatedLayout=new fu(U.layout)),U.paint)){this._transitionablePaint=new Fo(U.paint);for(var J in I.paint)this.setPaintProperty(J,I.paint[J],{validate:!1});for(var ne in I.layout)this.setLayoutProperty(ne,I.layout[ne],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new xc(U.paint)}}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype.getCrossfadeParameters=function(){return this._crossfadeParameters},y.prototype.getLayoutProperty=function(U){return U==="visibility"?this.visibility:this._unevaluatedLayout.getValue(U)},y.prototype.setLayoutProperty=function(U,J,ne){if(ne===void 0&&(ne={}),J!=null){var fe="layers."+this.id+".layout."+U;if(this._validate(Vl,fe,U,J,ne))return}if(U==="visibility"){this.visibility=J;return}this._unevaluatedLayout.setValue(U,J)},y.prototype.getPaintProperty=function(U){return V(U,Bi)?this._transitionablePaint.getTransition(U.slice(0,-Bi.length)):this._transitionablePaint.getValue(U)},y.prototype.setPaintProperty=function(U,J,ne){if(ne===void 0&&(ne={}),J!=null){var fe="layers."+this.id+".paint."+U;if(this._validate(_l,fe,U,J,ne))return!1}if(V(U,Bi))return this._transitionablePaint.setTransition(U.slice(0,-Bi.length),J||void 0),!1;var Fe=this._transitionablePaint._values[U],Qe=Fe.property.specification["property-type"]==="cross-faded-data-driven",st=Fe.value.isDataDriven(),mt=Fe.value;this._transitionablePaint.setValue(U,J),this._handleSpecialPaintPropertyUpdate(U);var Xt=this._transitionablePaint._values[U].value,ur=Xt.isDataDriven();return ur||st||Qe||this._handleOverridablePaintPropertyUpdate(U,mt,Xt)},y.prototype._handleSpecialPaintPropertyUpdate=function(U){},y.prototype._handleOverridablePaintPropertyUpdate=function(U,J,ne){return!1},y.prototype.isHidden=function(U){return this.minzoom&&U=this.maxzoom?!0:this.visibility==="none"},y.prototype.updateTransitions=function(U){this._transitioningPaint=this._transitionablePaint.transitioned(U,this._transitioningPaint)},y.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},y.prototype.recalculate=function(U,J){U.getCrossfadeParameters&&(this._crossfadeParameters=U.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(U,void 0,J)),this.paint=this._transitioningPaint.possiblyEvaluate(U,void 0,J)},y.prototype.serialize=function(){var U={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(U.layout=U.layout||{},U.layout.visibility=this.visibility),X(U,function(J,ne){return J!==void 0&&!(ne==="layout"&&!Object.keys(J).length)&&!(ne==="paint"&&!Object.keys(J).length)})},y.prototype._validate=function(U,J,ne,fe,Fe){return Fe===void 0&&(Fe={}),Fe&&Fe.validate===!1?!1:Zu(this,U.call(yo,{key:J,layerType:this.type,objectKey:ne,value:fe,styleSpec:on,style:{glyphs:!0,sprite:!0}}))},y.prototype.is3D=function(){return!1},y.prototype.isTileClipped=function(){return!1},y.prototype.hasOffscreenPass=function(){return!1},y.prototype.resize=function(){},y.prototype.isStateDependent=function(){for(var U in this.paint._values){var J=this.paint.get(U);if(!(!(J instanceof dl)||!Gs(J.property.specification))&&(J.value.kind==="source"||J.value.kind==="composite")&&J.value.isStateDependent)return!0}return!1},y}(Sn),On={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},Bn=function(y,I){this._structArray=y,this._pos1=I*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},yn=128,to=5,Rn=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};Rn.serialize=function(y,I){return y._trim(),I&&(y.isTransferred=!0,I.push(y.arrayBuffer)),{length:y.length,arrayBuffer:y.arrayBuffer}},Rn.deserialize=function(y){var I=Object.create(this.prototype);return I.arrayBuffer=y.arrayBuffer,I.length=y.length,I.capacity=y.arrayBuffer.byteLength/I.bytesPerElement,I._refreshViews(),I},Rn.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},Rn.prototype.clear=function(){this.length=0},Rn.prototype.resize=function(y){this.reserve(y),this.length=y},Rn.prototype.reserve=function(y){if(y>this.capacity){this.capacity=Math.max(y,Math.floor(this.capacity*to),yn),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var I=this.uint8;this._refreshViews(),I&&this.uint8.set(I)}},Rn.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};function Dn(m,y){y===void 0&&(y=1);var I=0,U=0,J=m.map(function(fe){var Fe=fn(fe.type),Qe=I=Ai(I,Math.max(y,Fe)),st=fe.components||1;return U=Math.max(U,Fe),I+=Fe*st,{name:fe.name,type:fe.type,components:st,offset:Qe}}),ne=Ai(I,Math.max(U,y));return{members:J,size:ne,alignment:y}}function fn(m){return On[m].BYTES_PER_ELEMENT}function Ai(m,y){return Math.ceil(m/y)*y}var ji=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J){var ne=this.length;return this.resize(ne+1),this.emplace(ne,U,J)},y.prototype.emplace=function(U,J,ne){var fe=U*2;return this.int16[fe+0]=J,this.int16[fe+1]=ne,U},y}(Rn);ji.prototype.bytesPerElement=4,Z("StructArrayLayout2i4",ji);var Ln=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne,fe){var Fe=this.length;return this.resize(Fe+1),this.emplace(Fe,U,J,ne,fe)},y.prototype.emplace=function(U,J,ne,fe,Fe){var Qe=U*4;return this.int16[Qe+0]=J,this.int16[Qe+1]=ne,this.int16[Qe+2]=fe,this.int16[Qe+3]=Fe,U},y}(Rn);Ln.prototype.bytesPerElement=8,Z("StructArrayLayout4i8",Ln);var Un=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne,fe,Fe,Qe){var st=this.length;return this.resize(st+1),this.emplace(st,U,J,ne,fe,Fe,Qe)},y.prototype.emplace=function(U,J,ne,fe,Fe,Qe,st){var mt=U*6;return this.int16[mt+0]=J,this.int16[mt+1]=ne,this.int16[mt+2]=fe,this.int16[mt+3]=Fe,this.int16[mt+4]=Qe,this.int16[mt+5]=st,U},y}(Rn);Un.prototype.bytesPerElement=12,Z("StructArrayLayout2i4i12",Un);var gn=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne,fe,Fe,Qe){var st=this.length;return this.resize(st+1),this.emplace(st,U,J,ne,fe,Fe,Qe)},y.prototype.emplace=function(U,J,ne,fe,Fe,Qe,st){var mt=U*4,Xt=U*8;return this.int16[mt+0]=J,this.int16[mt+1]=ne,this.uint8[Xt+4]=fe,this.uint8[Xt+5]=Fe,this.uint8[Xt+6]=Qe,this.uint8[Xt+7]=st,U},y}(Rn);gn.prototype.bytesPerElement=8,Z("StructArrayLayout2i4ub8",gn);var ca=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J){var ne=this.length;return this.resize(ne+1),this.emplace(ne,U,J)},y.prototype.emplace=function(U,J,ne){var fe=U*2;return this.float32[fe+0]=J,this.float32[fe+1]=ne,U},y}(Rn);ca.prototype.bytesPerElement=8,Z("StructArrayLayout2f8",ca);var Kn=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne,fe,Fe,Qe,st,mt,Xt,ur){var nr=this.length;return this.resize(nr+1),this.emplace(nr,U,J,ne,fe,Fe,Qe,st,mt,Xt,ur)},y.prototype.emplace=function(U,J,ne,fe,Fe,Qe,st,mt,Xt,ur,nr){var Lr=U*10;return this.uint16[Lr+0]=J,this.uint16[Lr+1]=ne,this.uint16[Lr+2]=fe,this.uint16[Lr+3]=Fe,this.uint16[Lr+4]=Qe,this.uint16[Lr+5]=st,this.uint16[Lr+6]=mt,this.uint16[Lr+7]=Xt,this.uint16[Lr+8]=ur,this.uint16[Lr+9]=nr,U},y}(Rn);Kn.prototype.bytesPerElement=20,Z("StructArrayLayout10ui20",Kn);var Za=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne,fe,Fe,Qe,st,mt,Xt,ur,nr,Lr){var Yr=this.length;return this.resize(Yr+1),this.emplace(Yr,U,J,ne,fe,Fe,Qe,st,mt,Xt,ur,nr,Lr)},y.prototype.emplace=function(U,J,ne,fe,Fe,Qe,st,mt,Xt,ur,nr,Lr,Yr){var _i=U*12;return this.int16[_i+0]=J,this.int16[_i+1]=ne,this.int16[_i+2]=fe,this.int16[_i+3]=Fe,this.uint16[_i+4]=Qe,this.uint16[_i+5]=st,this.uint16[_i+6]=mt,this.uint16[_i+7]=Xt,this.int16[_i+8]=ur,this.int16[_i+9]=nr,this.int16[_i+10]=Lr,this.int16[_i+11]=Yr,U},y}(Rn);Za.prototype.bytesPerElement=24,Z("StructArrayLayout4i4ui4i24",Za);var wn=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne){var fe=this.length;return this.resize(fe+1),this.emplace(fe,U,J,ne)},y.prototype.emplace=function(U,J,ne,fe){var Fe=U*3;return this.float32[Fe+0]=J,this.float32[Fe+1]=ne,this.float32[Fe+2]=fe,U},y}(Rn);wn.prototype.bytesPerElement=12,Z("StructArrayLayout3f12",wn);var vn=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U){var J=this.length;return this.resize(J+1),this.emplace(J,U)},y.prototype.emplace=function(U,J){var ne=U*1;return this.uint32[ne+0]=J,U},y}(Rn);vn.prototype.bytesPerElement=4,Z("StructArrayLayout1ul4",vn);var Aa=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne,fe,Fe,Qe,st,mt,Xt){var ur=this.length;return this.resize(ur+1),this.emplace(ur,U,J,ne,fe,Fe,Qe,st,mt,Xt)},y.prototype.emplace=function(U,J,ne,fe,Fe,Qe,st,mt,Xt,ur){var nr=U*10,Lr=U*5;return this.int16[nr+0]=J,this.int16[nr+1]=ne,this.int16[nr+2]=fe,this.int16[nr+3]=Fe,this.int16[nr+4]=Qe,this.int16[nr+5]=st,this.uint32[Lr+3]=mt,this.uint16[nr+8]=Xt,this.uint16[nr+9]=ur,U},y}(Rn);Aa.prototype.bytesPerElement=20,Z("StructArrayLayout6i1ul2ui20",Aa);var aa=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne,fe,Fe,Qe){var st=this.length;return this.resize(st+1),this.emplace(st,U,J,ne,fe,Fe,Qe)},y.prototype.emplace=function(U,J,ne,fe,Fe,Qe,st){var mt=U*6;return this.int16[mt+0]=J,this.int16[mt+1]=ne,this.int16[mt+2]=fe,this.int16[mt+3]=Fe,this.int16[mt+4]=Qe,this.int16[mt+5]=st,U},y}(Rn);aa.prototype.bytesPerElement=12,Z("StructArrayLayout2i2i2i12",aa);var Xn=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne,fe,Fe){var Qe=this.length;return this.resize(Qe+1),this.emplace(Qe,U,J,ne,fe,Fe)},y.prototype.emplace=function(U,J,ne,fe,Fe,Qe){var st=U*4,mt=U*8;return this.float32[st+0]=J,this.float32[st+1]=ne,this.float32[st+2]=fe,this.int16[mt+6]=Fe,this.int16[mt+7]=Qe,U},y}(Rn);Xn.prototype.bytesPerElement=16,Z("StructArrayLayout2f1f2i16",Xn);var Vn=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne,fe){var Fe=this.length;return this.resize(Fe+1),this.emplace(Fe,U,J,ne,fe)},y.prototype.emplace=function(U,J,ne,fe,Fe){var Qe=U*12,st=U*3;return this.uint8[Qe+0]=J,this.uint8[Qe+1]=ne,this.float32[st+1]=fe,this.float32[st+2]=Fe,U},y}(Rn);Vn.prototype.bytesPerElement=12,Z("StructArrayLayout2ub2f12",Vn);var ma=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne){var fe=this.length;return this.resize(fe+1),this.emplace(fe,U,J,ne)},y.prototype.emplace=function(U,J,ne,fe){var Fe=U*3;return this.uint16[Fe+0]=J,this.uint16[Fe+1]=ne,this.uint16[Fe+2]=fe,U},y}(Rn);ma.prototype.bytesPerElement=6,Z("StructArrayLayout3ui6",ma);var ro=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne,fe,Fe,Qe,st,mt,Xt,ur,nr,Lr,Yr,_i,si,Hi,Ei){var Vi=this.length;return this.resize(Vi+1),this.emplace(Vi,U,J,ne,fe,Fe,Qe,st,mt,Xt,ur,nr,Lr,Yr,_i,si,Hi,Ei)},y.prototype.emplace=function(U,J,ne,fe,Fe,Qe,st,mt,Xt,ur,nr,Lr,Yr,_i,si,Hi,Ei,Vi){var en=U*24,An=U*12,ra=U*48;return this.int16[en+0]=J,this.int16[en+1]=ne,this.uint16[en+2]=fe,this.uint16[en+3]=Fe,this.uint32[An+2]=Qe,this.uint32[An+3]=st,this.uint32[An+4]=mt,this.uint16[en+10]=Xt,this.uint16[en+11]=ur,this.uint16[en+12]=nr,this.float32[An+7]=Lr,this.float32[An+8]=Yr,this.uint8[ra+36]=_i,this.uint8[ra+37]=si,this.uint8[ra+38]=Hi,this.uint32[An+10]=Ei,this.int16[en+22]=Vi,U},y}(Rn);ro.prototype.bytesPerElement=48,Z("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",ro);var Ao=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne,fe,Fe,Qe,st,mt,Xt,ur,nr,Lr,Yr,_i,si,Hi,Ei,Vi,en,An,ra,$n,Ba,_a,Pa,qo,Na,ja){var us=this.length;return this.resize(us+1),this.emplace(us,U,J,ne,fe,Fe,Qe,st,mt,Xt,ur,nr,Lr,Yr,_i,si,Hi,Ei,Vi,en,An,ra,$n,Ba,_a,Pa,qo,Na,ja)},y.prototype.emplace=function(U,J,ne,fe,Fe,Qe,st,mt,Xt,ur,nr,Lr,Yr,_i,si,Hi,Ei,Vi,en,An,ra,$n,Ba,_a,Pa,qo,Na,ja,us){var zo=U*34,rl=U*17;return this.int16[zo+0]=J,this.int16[zo+1]=ne,this.int16[zo+2]=fe,this.int16[zo+3]=Fe,this.int16[zo+4]=Qe,this.int16[zo+5]=st,this.int16[zo+6]=mt,this.int16[zo+7]=Xt,this.uint16[zo+8]=ur,this.uint16[zo+9]=nr,this.uint16[zo+10]=Lr,this.uint16[zo+11]=Yr,this.uint16[zo+12]=_i,this.uint16[zo+13]=si,this.uint16[zo+14]=Hi,this.uint16[zo+15]=Ei,this.uint16[zo+16]=Vi,this.uint16[zo+17]=en,this.uint16[zo+18]=An,this.uint16[zo+19]=ra,this.uint16[zo+20]=$n,this.uint16[zo+21]=Ba,this.uint16[zo+22]=_a,this.uint32[rl+12]=Pa,this.float32[rl+13]=qo,this.float32[rl+14]=Na,this.float32[rl+15]=ja,this.float32[rl+16]=us,U},y}(Rn);Ao.prototype.bytesPerElement=68,Z("StructArrayLayout8i15ui1ul4f68",Ao);var Jn=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U){var J=this.length;return this.resize(J+1),this.emplace(J,U)},y.prototype.emplace=function(U,J){var ne=U*1;return this.float32[ne+0]=J,U},y}(Rn);Jn.prototype.bytesPerElement=4,Z("StructArrayLayout1f4",Jn);var Oa=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne){var fe=this.length;return this.resize(fe+1),this.emplace(fe,U,J,ne)},y.prototype.emplace=function(U,J,ne,fe){var Fe=U*3;return this.int16[Fe+0]=J,this.int16[Fe+1]=ne,this.int16[Fe+2]=fe,U},y}(Rn);Oa.prototype.bytesPerElement=6,Z("StructArrayLayout3i6",Oa);var _o=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne){var fe=this.length;return this.resize(fe+1),this.emplace(fe,U,J,ne)},y.prototype.emplace=function(U,J,ne,fe){var Fe=U*2,Qe=U*4;return this.uint32[Fe+0]=J,this.uint16[Qe+2]=ne,this.uint16[Qe+3]=fe,U},y}(Rn);_o.prototype.bytesPerElement=8,Z("StructArrayLayout1ul2ui8",_o);var Po=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J){var ne=this.length;return this.resize(ne+1),this.emplace(ne,U,J)},y.prototype.emplace=function(U,J,ne){var fe=U*2;return this.uint16[fe+0]=J,this.uint16[fe+1]=ne,U},y}(Rn);Po.prototype.bytesPerElement=4,Z("StructArrayLayout2ui4",Po);var Jo=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U){var J=this.length;return this.resize(J+1),this.emplace(J,U)},y.prototype.emplace=function(U,J){var ne=U*1;return this.uint16[ne+0]=J,U},y}(Rn);Jo.prototype.bytesPerElement=2,Z("StructArrayLayout1ui2",Jo);var Xl=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},y.prototype.emplaceBack=function(U,J,ne,fe){var Fe=this.length;return this.resize(Fe+1),this.emplace(Fe,U,J,ne,fe)},y.prototype.emplace=function(U,J,ne,fe,Fe){var Qe=U*4;return this.float32[Qe+0]=J,this.float32[Qe+1]=ne,this.float32[Qe+2]=fe,this.float32[Qe+3]=Fe,U},y}(Rn);Xl.prototype.bytesPerElement=16,Z("StructArrayLayout4f16",Xl);var $c=function(m){function y(){m.apply(this,arguments)}m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y;var I={anchorPointX:{configurable:!0},anchorPointY:{configurable:!0},x1:{configurable:!0},y1:{configurable:!0},x2:{configurable:!0},y2:{configurable:!0},featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0},anchorPoint:{configurable:!0}};return I.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},I.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},I.x1.get=function(){return this._structArray.int16[this._pos2+2]},I.y1.get=function(){return this._structArray.int16[this._pos2+3]},I.x2.get=function(){return this._structArray.int16[this._pos2+4]},I.y2.get=function(){return this._structArray.int16[this._pos2+5]},I.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},I.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},I.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]},I.anchorPoint.get=function(){return new u(this.anchorPointX,this.anchorPointY)},Object.defineProperties(y.prototype,I),y}(Bn);$c.prototype.size=20;var xs=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype.get=function(U){return new $c(this,U)},y}(Aa);Z("CollisionBoxArray",xs);var Qc=function(m){function y(){m.apply(this,arguments)}m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y;var I={anchorX:{configurable:!0},anchorY:{configurable:!0},glyphStartIndex:{configurable:!0},numGlyphs:{configurable:!0},vertexStartIndex:{configurable:!0},lineStartIndex:{configurable:!0},lineLength:{configurable:!0},segment:{configurable:!0},lowerSize:{configurable:!0},upperSize:{configurable:!0},lineOffsetX:{configurable:!0},lineOffsetY:{configurable:!0},writingMode:{configurable:!0},placedOrientation:{configurable:!0},hidden:{configurable:!0},crossTileID:{configurable:!0},associatedIconIndex:{configurable:!0}};return I.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},I.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},I.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},I.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},I.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},I.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},I.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},I.segment.get=function(){return this._structArray.uint16[this._pos2+10]},I.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},I.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},I.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},I.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},I.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},I.placedOrientation.get=function(){return this._structArray.uint8[this._pos1+37]},I.placedOrientation.set=function(U){this._structArray.uint8[this._pos1+37]=U},I.hidden.get=function(){return this._structArray.uint8[this._pos1+38]},I.hidden.set=function(U){this._structArray.uint8[this._pos1+38]=U},I.crossTileID.get=function(){return this._structArray.uint32[this._pos4+10]},I.crossTileID.set=function(U){this._structArray.uint32[this._pos4+10]=U},I.associatedIconIndex.get=function(){return this._structArray.int16[this._pos2+22]},Object.defineProperties(y.prototype,I),y}(Bn);Qc.prototype.size=48;var El=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype.get=function(U){return new Qc(this,U)},y}(ro);Z("PlacedSymbolArray",El);var bc=function(m){function y(){m.apply(this,arguments)}m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y;var I={anchorX:{configurable:!0},anchorY:{configurable:!0},rightJustifiedTextSymbolIndex:{configurable:!0},centerJustifiedTextSymbolIndex:{configurable:!0},leftJustifiedTextSymbolIndex:{configurable:!0},verticalPlacedTextSymbolIndex:{configurable:!0},placedIconSymbolIndex:{configurable:!0},verticalPlacedIconSymbolIndex:{configurable:!0},key:{configurable:!0},textBoxStartIndex:{configurable:!0},textBoxEndIndex:{configurable:!0},verticalTextBoxStartIndex:{configurable:!0},verticalTextBoxEndIndex:{configurable:!0},iconBoxStartIndex:{configurable:!0},iconBoxEndIndex:{configurable:!0},verticalIconBoxStartIndex:{configurable:!0},verticalIconBoxEndIndex:{configurable:!0},featureIndex:{configurable:!0},numHorizontalGlyphVertices:{configurable:!0},numVerticalGlyphVertices:{configurable:!0},numIconVertices:{configurable:!0},numVerticalIconVertices:{configurable:!0},useRuntimeCollisionCircles:{configurable:!0},crossTileID:{configurable:!0},textBoxScale:{configurable:!0},textOffset0:{configurable:!0},textOffset1:{configurable:!0},collisionCircleDiameter:{configurable:!0}};return I.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},I.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},I.rightJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+2]},I.centerJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+3]},I.leftJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+4]},I.verticalPlacedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+5]},I.placedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+6]},I.verticalPlacedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+7]},I.key.get=function(){return this._structArray.uint16[this._pos2+8]},I.textBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+9]},I.textBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+10]},I.verticalTextBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+11]},I.verticalTextBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+12]},I.iconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+13]},I.iconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+14]},I.verticalIconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+15]},I.verticalIconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+16]},I.featureIndex.get=function(){return this._structArray.uint16[this._pos2+17]},I.numHorizontalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+18]},I.numVerticalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+19]},I.numIconVertices.get=function(){return this._structArray.uint16[this._pos2+20]},I.numVerticalIconVertices.get=function(){return this._structArray.uint16[this._pos2+21]},I.useRuntimeCollisionCircles.get=function(){return this._structArray.uint16[this._pos2+22]},I.crossTileID.get=function(){return this._structArray.uint32[this._pos4+12]},I.crossTileID.set=function(U){this._structArray.uint32[this._pos4+12]=U},I.textBoxScale.get=function(){return this._structArray.float32[this._pos4+13]},I.textOffset0.get=function(){return this._structArray.float32[this._pos4+14]},I.textOffset1.get=function(){return this._structArray.float32[this._pos4+15]},I.collisionCircleDiameter.get=function(){return this._structArray.float32[this._pos4+16]},Object.defineProperties(y.prototype,I),y}(Bn);bc.prototype.size=68;var wc=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype.get=function(U){return new bc(this,U)},y}(Ao);Z("SymbolInstanceArray",wc);var yf=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype.getoffsetX=function(U){return this.float32[U*1+0]},y}(Jn);Z("GlyphOffsetArray",yf);var Hl=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype.getx=function(U){return this.int16[U*3+0]},y.prototype.gety=function(U){return this.int16[U*3+1]},y.prototype.gettileUnitDistanceFromAnchor=function(U){return this.int16[U*3+2]},y}(Oa);Z("SymbolLineVertexArray",Hl);var Fc=function(m){function y(){m.apply(this,arguments)}m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y;var I={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return I.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},I.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},I.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},Object.defineProperties(y.prototype,I),y}(Bn);Fc.prototype.size=8;var ef=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype.get=function(U){return new Fc(this,U)},y}(_o);Z("FeatureIndexArray",ef);var ls=Dn([{name:"a_pos",components:2,type:"Int16"}],4),_f=ls.members,ns=function(y){y===void 0&&(y=[]),this.segments=y};ns.prototype.prepareSegment=function(y,I,U,J){var ne=this.segments[this.segments.length-1];return y>ns.MAX_VERTEX_ARRAY_LENGTH&&re("Max vertices per segment is "+ns.MAX_VERTEX_ARRAY_LENGTH+": bucket requested "+y),(!ne||ne.vertexLength+y>ns.MAX_VERTEX_ARRAY_LENGTH||ne.sortKey!==J)&&(ne={vertexOffset:I.length,primitiveOffset:U.length,vertexLength:0,primitiveLength:0},J!==void 0&&(ne.sortKey=J),this.segments.push(ne)),ne},ns.prototype.get=function(){return this.segments},ns.prototype.destroy=function(){for(var y=0,I=this.segments;y>>16)*Qe&65535)<<16)&4294967295,mt=mt<<15|mt>>>17,mt=(mt&65535)*st+(((mt>>>16)*st&65535)<<16)&4294967295,fe^=mt,fe=fe<<13|fe>>>19,Fe=(fe&65535)*5+(((fe>>>16)*5&65535)<<16)&4294967295,fe=(Fe&65535)+27492+(((Fe>>>16)+58964&65535)<<16);switch(mt=0,J){case 3:mt^=(I.charCodeAt(Xt+2)&255)<<16;case 2:mt^=(I.charCodeAt(Xt+1)&255)<<8;case 1:mt^=I.charCodeAt(Xt)&255,mt=(mt&65535)*Qe+(((mt>>>16)*Qe&65535)<<16)&4294967295,mt=mt<<15|mt>>>17,mt=(mt&65535)*st+(((mt>>>16)*st&65535)<<16)&4294967295,fe^=mt}return fe^=I.length,fe^=fe>>>16,fe=(fe&65535)*2246822507+(((fe>>>16)*2246822507&65535)<<16)&4294967295,fe^=fe>>>13,fe=(fe&65535)*3266489909+(((fe>>>16)*3266489909&65535)<<16)&4294967295,fe^=fe>>>16,fe>>>0}m.exports=y}),O=a(function(m){function y(I,U){for(var J=I.length,ne=U^J,fe=0,Fe;J>=4;)Fe=I.charCodeAt(fe)&255|(I.charCodeAt(++fe)&255)<<8|(I.charCodeAt(++fe)&255)<<16|(I.charCodeAt(++fe)&255)<<24,Fe=(Fe&65535)*1540483477+(((Fe>>>16)*1540483477&65535)<<16),Fe^=Fe>>>24,Fe=(Fe&65535)*1540483477+(((Fe>>>16)*1540483477&65535)<<16),ne=(ne&65535)*1540483477+(((ne>>>16)*1540483477&65535)<<16)^Fe,J-=4,++fe;switch(J){case 3:ne^=(I.charCodeAt(fe+2)&255)<<16;case 2:ne^=(I.charCodeAt(fe+1)&255)<<8;case 1:ne^=I.charCodeAt(fe)&255,ne=(ne&65535)*1540483477+(((ne>>>16)*1540483477&65535)<<16)}return ne^=ne>>>13,ne=(ne&65535)*1540483477+(((ne>>>16)*1540483477&65535)<<16),ne^=ne>>>15,ne>>>0}m.exports=y}),$=K,pe=K,de=O;$.murmur3=pe,$.murmur2=de;var Ie=function(){this.ids=[],this.positions=[],this.indexed=!1};Ie.prototype.add=function(y,I,U,J){this.ids.push(pt(y)),this.positions.push(I,U,J)},Ie.prototype.getPositions=function(y){for(var I=pt(y),U=0,J=this.ids.length-1;U>1;this.ids[ne]>=I?J=ne:U=ne+1}for(var fe=[];this.ids[U]===I;){var Fe=this.positions[3*U],Qe=this.positions[3*U+1],st=this.positions[3*U+2];fe.push({index:Fe,start:Qe,end:st}),U++}return fe},Ie.serialize=function(y,I){var U=new Float64Array(y.ids),J=new Uint32Array(y.positions);return Kt(U,J,0,U.length-1),I&&I.push(U.buffer,J.buffer),{ids:U,positions:J}},Ie.deserialize=function(y){var I=new Ie;return I.ids=y.ids,I.positions=y.positions,I.indexed=!0,I};var $e=Math.pow(2,53)-1;function pt(m){var y=+m;return!isNaN(y)&&y<=$e?y:$(String(m))}function Kt(m,y,I,U){for(;I>1],ne=I-1,fe=U+1;;){do ne++;while(m[ne]J);if(ne>=fe)break;ir(m,ne,fe),ir(y,3*ne,3*fe),ir(y,3*ne+1,3*fe+1),ir(y,3*ne+2,3*fe+2)}fe-Ife.x+1||Qefe.y+1)&&re("Geometry exceeds allowed extent, reduce your vector tile buffer size")}return I}function No(m,y){return{type:m.type,id:m.id,properties:m.properties,geometry:y?da(m):[]}}function Do(m,y,I,U,J){m.emplaceBack(y*2+(U+1)/2,I*2+(J+1)/2)}var ps=function(y){this.zoom=y.zoom,this.overscaling=y.overscaling,this.layers=y.layers,this.layerIds=this.layers.map(function(I){return I.id}),this.index=y.index,this.hasPattern=!1,this.layoutVertexArray=new ji,this.indexArray=new ma,this.segments=new ns,this.programConfigurations=new Ri(y.layers,y.zoom),this.stateDependentLayerIds=this.layers.filter(function(I){return I.isStateDependent()}).map(function(I){return I.id})};ps.prototype.populate=function(y,I,U){var J=this.layers[0],ne=[],fe=null;J.type==="circle"&&(fe=J.layout.get("circle-sort-key"));for(var Fe=0,Qe=y;Fe=rn||ur<0||ur>=rn)){var nr=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,y.sortKey),Lr=nr.vertexLength;Do(this.layoutVertexArray,Xt,ur,-1,-1),Do(this.layoutVertexArray,Xt,ur,1,-1),Do(this.layoutVertexArray,Xt,ur,1,1),Do(this.layoutVertexArray,Xt,ur,-1,1),this.indexArray.emplaceBack(Lr,Lr+1,Lr+2),this.indexArray.emplaceBack(Lr,Lr+3,Lr+2),nr.vertexLength+=4,nr.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,y,U,{},J)},Z("CircleBucket",ps,{omit:["layers"]});function fo(m,y){for(var I=0;I=3){for(var ne=0;ne1){if(Ev(m,y))return!0;for(var U=0;U1?m.distSqr(I):m.distSqr(I.sub(y)._mult(J)._add(y))}function vp(m,y){for(var I=!1,U,J,ne,fe=0;fey.y!=ne.y>y.y&&y.x<(ne.x-J.x)*(y.y-J.y)/(ne.y-J.y)+J.x&&(I=!I)}return I}function _d(m,y){for(var I=!1,U=0,J=m.length-1;Uy.y!=fe.y>y.y&&y.x<(fe.x-ne.x)*(y.y-ne.y)/(fe.y-ne.y)+ne.x&&(I=!I)}return I}function pp(m,y,I,U,J){for(var ne=0,fe=m;ne=Fe.x&&J>=Fe.y)return!0}var Qe=[new u(y,I),new u(y,J),new u(U,J),new u(U,I)];if(m.length>2)for(var st=0,mt=Qe;stJ.x&&y.x>J.x||m.yJ.y&&y.y>J.y)return!1;var ne=ae(m,y,I[0]);return ne!==ae(m,y,I[1])||ne!==ae(m,y,I[2])||ne!==ae(m,y,I[3])}function xd(m,y,I){var U=y.paint.get(m).value;return U.kind==="constant"?U.value:I.programConfigurations.get(y.id).getMaxValue(m)}function kv(m){return Math.sqrt(m[0]*m[0]+m[1]*m[1])}function Kv(m,y,I,U,J){if(!y[0]&&!y[1])return m;var ne=u.convert(y)._mult(J);I==="viewport"&&ne._rotate(-U);for(var fe=[],Fe=0;Fe0&&(ne=1/Math.sqrt(ne)),m[0]=y[0]*ne,m[1]=y[1]*ne,m[2]=y[2]*ne,m}function L9(m,y){return m[0]*y[0]+m[1]*y[1]+m[2]*y[2]}function P9(m,y,I){var U=y[0],J=y[1],ne=y[2],fe=I[0],Fe=I[1],Qe=I[2];return m[0]=J*Qe-ne*Fe,m[1]=ne*fe-U*Qe,m[2]=U*Fe-J*fe,m}function I9(m,y,I){var U=y[0],J=y[1],ne=y[2];return m[0]=U*I[0]+J*I[3]+ne*I[6],m[1]=U*I[1]+J*I[4]+ne*I[7],m[2]=U*I[2]+J*I[5]+ne*I[8],m}var R9=om,pQ=function(){var m=am();return function(y,I,U,J,ne,fe){var Fe,Qe;for(I||(I=3),U||(U=0),J?Qe=Math.min(J*I+U,y.length):Qe=y.length,Fe=U;Fem.width||J.height>m.height||I.x>m.width-J.width||I.y>m.height-J.height)throw new RangeError("out of range source coordinates for image copy");if(J.width>y.width||J.height>y.height||U.x>y.width-J.width||U.y>y.height-J.height)throw new RangeError("out of range destination coordinates for image copy");for(var fe=m.data,Fe=y.data,Qe=0;Qe80*I){Fe=st=m[0],Qe=mt=m[1];for(var Lr=I;Lrst&&(st=Xt),ur>mt&&(mt=ur);nr=Math.max(st-Fe,mt-Qe),nr=nr!==0?1/nr:0}return Gx(ne,fe,I,Fe,Qe,nr),fe}function Iw(m,y,I,U,J){var ne,fe;if(J===cS(m,y,I,U)>0)for(ne=y;ne=y;ne-=U)fe=yC(ne,m[ne],m[ne+1],fe);return fe&&Wx(fe,fe.next)&&(Yx(fe),fe=fe.next),fe}function sm(m,y){if(!m)return m;y||(y=m);var I=m,U;do if(U=!1,!I.steiner&&(Wx(I,I.next)||tf(I.prev,I,I.next)===0)){if(Yx(I),I=y=I.prev,I===I.next)break;U=!0}else I=I.next;while(U||I!==y);return y}function Gx(m,y,I,U,J,ne,fe){if(m){!fe&&ne&&Rw(m,U,J,ne);for(var Fe=m,Qe,st;m.prev!==m.next;){if(Qe=m.prev,st=m.next,ne?pC(m,U,J,ne):vC(m)){y.push(Qe.i/I),y.push(m.i/I),y.push(st.i/I),Yx(m),m=st.next,Fe=st.next;continue}if(m=st,m===Fe){fe?fe===1?(m=jx(sm(m),y,I),Gx(m,y,I,U,J,ne,2)):fe===2&&v0(m,y,I,U,J,ne):Gx(sm(m),y,I,U,J,ne,1);break}}}}function vC(m){var y=m.prev,I=m,U=m.next;if(tf(y,I,U)>=0)return!1;for(var J=m.next.next;J!==m.prev;){if(um(y.x,y.y,I.x,I.y,U.x,U.y,J.x,J.y)&&tf(J.prev,J,J.next)>=0)return!1;J=J.next}return!0}function pC(m,y,I,U){var J=m.prev,ne=m,fe=m.next;if(tf(J,ne,fe)>=0)return!1;for(var Fe=J.xne.x?J.x>fe.x?J.x:fe.x:ne.x>fe.x?ne.x:fe.x,mt=J.y>ne.y?J.y>fe.y?J.y:fe.y:ne.y>fe.y?ne.y:fe.y,Xt=oS(Fe,Qe,y,I,U),ur=oS(st,mt,y,I,U),nr=m.prevZ,Lr=m.nextZ;nr&&nr.z>=Xt&&Lr&&Lr.z<=ur;){if(nr!==m.prev&&nr!==m.next&&um(J.x,J.y,ne.x,ne.y,fe.x,fe.y,nr.x,nr.y)&&tf(nr.prev,nr,nr.next)>=0||(nr=nr.prevZ,Lr!==m.prev&&Lr!==m.next&&um(J.x,J.y,ne.x,ne.y,fe.x,fe.y,Lr.x,Lr.y)&&tf(Lr.prev,Lr,Lr.next)>=0))return!1;Lr=Lr.nextZ}for(;nr&&nr.z>=Xt;){if(nr!==m.prev&&nr!==m.next&&um(J.x,J.y,ne.x,ne.y,fe.x,fe.y,nr.x,nr.y)&&tf(nr.prev,nr,nr.next)>=0)return!1;nr=nr.prevZ}for(;Lr&&Lr.z<=ur;){if(Lr!==m.prev&&Lr!==m.next&&um(J.x,J.y,ne.x,ne.y,fe.x,fe.y,Lr.x,Lr.y)&&tf(Lr.prev,Lr,Lr.next)>=0)return!1;Lr=Lr.nextZ}return!0}function jx(m,y,I){var U=m;do{var J=U.prev,ne=U.next.next;!Wx(J,ne)&&Dw(J,U,U.next,ne)&&Xx(J,ne)&&Xx(ne,J)&&(y.push(J.i/I),y.push(U.i/I),y.push(ne.i/I),Yx(U),Yx(U.next),U=m=ne),U=U.next}while(U!==m);return sm(U)}function v0(m,y,I,U,J,ne){var fe=m;do{for(var Fe=fe.next.next;Fe!==fe.prev;){if(fe.i!==Fe.i&&E1(fe,Fe)){var Qe=lS(fe,Fe);fe=sm(fe,fe.next),Qe=sm(Qe,Qe.next),Gx(fe,y,I,U,J,ne),Gx(Qe,y,I,U,J,ne);return}Fe=Fe.next}fe=fe.next}while(fe!==m)}function lm(m,y,I,U){var J=[],ne,fe,Fe,Qe,st;for(ne=0,fe=y.length;ne=I.next.y&&I.next.y!==I.y){var Fe=I.x+(J-I.y)*(I.next.x-I.x)/(I.next.y-I.y);if(Fe<=U&&Fe>ne){if(ne=Fe,Fe===U){if(J===I.y)return I;if(J===I.next.y)return I.next}fe=I.x=I.x&&I.x>=st&&U!==I.x&&um(Jfe.x||I.x===fe.x&&V9(fe,I)))&&(fe=I,Xt=ur)),I=I.next;while(I!==Qe);return fe}function V9(m,y){return tf(m.prev,m,y.prev)<0&&tf(y.next,m,m.next)<0}function Rw(m,y,I,U){var J=m;do J.z===null&&(J.z=oS(J.x,J.y,y,I,U)),J.prevZ=J.prev,J.nextZ=J.next,J=J.next;while(J!==m);J.prevZ.nextZ=null,J.prevZ=null,aS(J)}function aS(m){var y,I,U,J,ne,fe,Fe,Qe,st=1;do{for(I=m,m=null,ne=null,fe=0;I;){for(fe++,U=I,Fe=0,y=0;y0||Qe>0&&U;)Fe!==0&&(Qe===0||!U||I.z<=U.z)?(J=I,I=I.nextZ,Fe--):(J=U,U=U.nextZ,Qe--),ne?ne.nextZ=J:m=J,J.prevZ=ne,ne=J;I=U}ne.nextZ=null,st*=2}while(fe>1);return m}function oS(m,y,I,U,J){return m=32767*(m-I)*J,y=32767*(y-U)*J,m=(m|m<<8)&16711935,m=(m|m<<4)&252645135,m=(m|m<<2)&858993459,m=(m|m<<1)&1431655765,y=(y|y<<8)&16711935,y=(y|y<<4)&252645135,y=(y|y<<2)&858993459,y=(y|y<<1)&1431655765,m|y<<1}function sS(m){var y=m,I=m;do(y.x=0&&(m-fe)*(U-Fe)-(I-fe)*(y-Fe)>=0&&(I-fe)*(ne-Fe)-(J-fe)*(U-Fe)>=0}function E1(m,y){return m.next.i!==y.i&&m.prev.i!==y.i&&!mC(m,y)&&(Xx(m,y)&&Xx(y,m)&&H9(m,y)&&(tf(m.prev,m,y.prev)||tf(m,y.prev,y))||Wx(m,y)&&tf(m.prev,m,m.next)>0&&tf(y.prev,y,y.next)>0)}function tf(m,y,I){return(y.y-m.y)*(I.x-y.x)-(y.x-m.x)*(I.y-y.y)}function Wx(m,y){return m.x===y.x&&m.y===y.y}function Dw(m,y,I,U){var J=uy(tf(m,y,I)),ne=uy(tf(m,y,U)),fe=uy(tf(I,U,m)),Fe=uy(tf(I,U,y));return!!(J!==ne&&fe!==Fe||J===0&&Zx(m,I,y)||ne===0&&Zx(m,U,y)||fe===0&&Zx(I,m,U)||Fe===0&&Zx(I,y,U))}function Zx(m,y,I){return y.x<=Math.max(m.x,I.x)&&y.x>=Math.min(m.x,I.x)&&y.y<=Math.max(m.y,I.y)&&y.y>=Math.min(m.y,I.y)}function uy(m){return m>0?1:m<0?-1:0}function mC(m,y){var I=m;do{if(I.i!==m.i&&I.next.i!==m.i&&I.i!==y.i&&I.next.i!==y.i&&Dw(I,I.next,m,y))return!0;I=I.next}while(I!==m);return!1}function Xx(m,y){return tf(m.prev,m,m.next)<0?tf(m,y,m.next)>=0&&tf(m,m.prev,y)>=0:tf(m,y,m.prev)<0||tf(m,m.next,y)<0}function H9(m,y){var I=m,U=!1,J=(m.x+y.x)/2,ne=(m.y+y.y)/2;do I.y>ne!=I.next.y>ne&&I.next.y!==I.y&&J<(I.next.x-I.x)*(ne-I.y)/(I.next.y-I.y)+I.x&&(U=!U),I=I.next;while(I!==m);return U}function lS(m,y){var I=new uS(m.i,m.x,m.y),U=new uS(y.i,y.x,y.y),J=m.next,ne=y.prev;return m.next=y,y.prev=m,I.next=J,J.prev=I,U.next=I,I.prev=U,ne.next=U,U.prev=ne,U}function yC(m,y,I,U){var J=new uS(m,y,I);return U?(J.next=U.next,J.prev=U,U.next.prev=J,U.next=J):(J.prev=J,J.next=J),J}function Yx(m){m.next.prev=m.prev,m.prev.next=m.next,m.prevZ&&(m.prevZ.nextZ=m.nextZ),m.nextZ&&(m.nextZ.prevZ=m.prevZ)}function uS(m,y,I){this.i=m,this.x=y,this.y=I,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}M1.deviation=function(m,y,I,U){var J=y&&y.length,ne=J?y[0]*I:m.length,fe=Math.abs(cS(m,0,ne,I));if(J)for(var Fe=0,Qe=y.length;Fe0&&(U+=m[J-1].length,I.holes.push(U))}return I},Pw.default=dC;function fS(m,y,I,U,J){dg(m,y,I||0,U||m.length-1,J||_C)}function dg(m,y,I,U,J){for(;U>I;){if(U-I>600){var ne=U-I+1,fe=y-I+1,Fe=Math.log(ne),Qe=.5*Math.exp(2*Fe/3),st=.5*Math.sqrt(Fe*Qe*(ne-Qe)/ne)*(fe-ne/2<0?-1:1),mt=Math.max(I,Math.floor(y-fe*Qe/ne+st)),Xt=Math.min(U,Math.floor(y+(ne-fe)*Qe/ne+st));dg(m,y,mt,Xt,J)}var ur=m[y],nr=I,Lr=U;for(k1(m,I,y),J(m[U],ur)>0&&k1(m,I,U);nr0;)Lr--}J(m[I],ur)===0?k1(m,I,Lr):(Lr++,k1(m,Lr,U)),Lr<=y&&(I=Lr+1),y<=Lr&&(U=Lr-1)}}function k1(m,y,I){var U=m[y];m[y]=m[I],m[I]=U}function _C(m,y){return my?1:0}function zw(m,y){var I=m.length;if(I<=1)return[m];for(var U=[],J,ne,fe=0;fe1)for(var Qe=0;Qe>3}if(U--,I===1||I===2)J+=m.readSVarint(),ne+=m.readSVarint(),I===1&&(Fe&&fe.push(Fe),Fe=[]),Fe.push(new u(J,ne));else if(I===7)Fe&&Fe.push(Fe[0].clone());else throw new Error("unknown command "+I)}return Fe&&fe.push(Fe),fe},cy.prototype.bbox=function(){var m=this._pbf;m.pos=this._geometry;for(var y=m.readVarint()+m.pos,I=1,U=0,J=0,ne=0,fe=1/0,Fe=-1/0,Qe=1/0,st=-1/0;m.pos>3}if(U--,I===1||I===2)J+=m.readSVarint(),ne+=m.readSVarint(),JFe&&(Fe=J),nest&&(st=ne);else if(I!==7)throw new Error("unknown command "+I)}return[fe,Qe,Fe,st]},cy.prototype.toGeoJSON=function(m,y,I){var U=this.extent*Math.pow(2,I),J=this.extent*m,ne=this.extent*y,fe=this.loadGeometry(),Fe=cy.types[this.type],Qe,st;function mt(nr){for(var Lr=0;Lr>3;y=U===1?m.readString():U===2?m.readFloat():U===3?m.readDouble():U===4?m.readVarint64():U===5?m.readVarint():U===6?m.readSVarint():U===7?m.readBoolean():null}return y}vS.prototype.feature=function(m){if(m<0||m>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[m];var y=this._pbf.readVarint()+this._pbf.pos;return new dS(this._pbf,y,this.extent,this._keys,this._values)};var CC=j9;function j9(m,y){this.layers=m.readFields(W9,{},y)}function W9(m,y,I){if(m===3){var U=new vg(I,I.readVarint()+I.pos);U.length&&(y[U.name]=U)}}var LC=CC,C1=dS,PC=vg,pg={VectorTile:LC,VectorTileFeature:C1,VectorTileLayer:PC},IC=pg.VectorTileFeature.types,qw=500,L1=Math.pow(2,13);function cm(m,y,I,U,J,ne,fe,Fe){m.emplaceBack(y,I,Math.floor(U*L1)*2+fe,J*L1*2,ne*L1*2,Math.round(Fe))}var Hp=function(y){this.zoom=y.zoom,this.overscaling=y.overscaling,this.layers=y.layers,this.layerIds=this.layers.map(function(I){return I.id}),this.index=y.index,this.hasPattern=!1,this.layoutVertexArray=new Un,this.indexArray=new ma,this.programConfigurations=new Ri(y.layers,y.zoom),this.segments=new ns,this.stateDependentLayerIds=this.layers.filter(function(I){return I.isStateDependent()}).map(function(I){return I.id})};Hp.prototype.populate=function(y,I,U){this.features=[],this.hasPattern=Fw("fill-extrusion",this.layers,I);for(var J=0,ne=y;J=1){var Vi=_i[Hi-1];if(!Z9(Ei,Vi)){nr.vertexLength+4>ns.MAX_VERTEX_ARRAY_LENGTH&&(nr=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var en=Ei.sub(Vi)._perp()._unit(),An=Vi.dist(Ei);si+An>32768&&(si=0),cm(this.layoutVertexArray,Ei.x,Ei.y,en.x,en.y,0,0,si),cm(this.layoutVertexArray,Ei.x,Ei.y,en.x,en.y,0,1,si),si+=An,cm(this.layoutVertexArray,Vi.x,Vi.y,en.x,en.y,0,0,si),cm(this.layoutVertexArray,Vi.x,Vi.y,en.x,en.y,0,1,si);var ra=nr.vertexLength;this.indexArray.emplaceBack(ra,ra+2,ra+1),this.indexArray.emplaceBack(ra+1,ra+2,ra+3),nr.vertexLength+=4,nr.primitiveLength+=2}}}}if(nr.vertexLength+st>ns.MAX_VERTEX_ARRAY_LENGTH&&(nr=this.segments.prepareSegment(st,this.layoutVertexArray,this.indexArray)),IC[y.type]==="Polygon"){for(var $n=[],Ba=[],_a=nr.vertexLength,Pa=0,qo=Qe;Parn)||m.y===y.y&&(m.y<0||m.y>rn)}function X9(m){return m.every(function(y){return y.x<0})||m.every(function(y){return y.x>rn})||m.every(function(y){return y.y<0})||m.every(function(y){return y.y>rn})}var P1=new Oi({"fill-extrusion-opacity":new At(on["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new Er(on["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new At(on["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new At(on["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new Wr(on["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new Er(on["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new Er(on["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new At(on["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])}),ed={paint:P1},fm=function(m){function y(I){m.call(this,I,ed)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype.createBucket=function(U){return new Hp(U)},y.prototype.queryRadius=function(){return kv(this.paint.get("fill-extrusion-translate"))},y.prototype.is3D=function(){return!0},y.prototype.queryIntersectsFeature=function(U,J,ne,fe,Fe,Qe,st,mt){var Xt=Kv(U,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),Qe.angle,st),ur=this.paint.get("fill-extrusion-height").evaluate(J,ne),nr=this.paint.get("fill-extrusion-base").evaluate(J,ne),Lr=Y9(Xt,mt,Qe,0),Yr=gS(fe,nr,ur,mt),_i=Yr[0],si=Yr[1];return RC(_i,si,Lr)},y}(cn);function fy(m,y){return m.x*y.x+m.y*y.y}function pS(m,y){if(m.length===1){for(var I=0,U=y[I++],J;!J||U.equals(J);)if(J=y[I++],!J)return 1/0;for(;I=2&&y[st-1].equals(y[st-2]);)st--;for(var mt=0;mt0;if($n&&Hi>mt){var _a=nr.dist(Lr);if(_a>2*Xt){var Pa=nr.sub(nr.sub(Lr)._mult(Xt/_a)._round());this.updateDistance(Lr,Pa),this.addCurrentVertex(Pa,_i,0,0,ur),Lr=Pa}}var qo=Lr&&Yr,Na=qo?U:Qe?"butt":J;if(qo&&Na==="round"&&(Anne&&(Na="bevel"),Na==="bevel"&&(An>2&&(Na="flipbevel"),An100)Ei=si.mult(-1);else{var ja=An*_i.add(si).mag()/_i.sub(si).mag();Ei._perp()._mult(ja*(Ba?-1:1))}this.addCurrentVertex(nr,Ei,0,0,ur),this.addCurrentVertex(nr,Ei.mult(-1),0,0,ur)}else if(Na==="bevel"||Na==="fakeround"){var us=-Math.sqrt(An*An-1),zo=Ba?us:0,rl=Ba?0:us;if(Lr&&this.addCurrentVertex(nr,_i,zo,rl,ur),Na==="fakeround")for(var ou=Math.round(ra*180/Math.PI/yS),il=1;il2*Xt){var Zf=nr.add(Yr.sub(nr)._mult(Xt/qh)._round());this.updateDistance(nr,Zf),this.addCurrentVertex(Zf,si,0,0,ur),nr=Zf}}}}},Gf.prototype.addCurrentVertex=function(y,I,U,J,ne,fe){fe===void 0&&(fe=!1);var Fe=I.x+I.y*U,Qe=I.y-I.x*U,st=-I.x+I.y*J,mt=-I.y-I.x*J;this.addHalfVertex(y,Fe,Qe,fe,!1,U,ne),this.addHalfVertex(y,st,mt,fe,!0,-J,ne),this.distance>eb/2&&this.totalDistance===0&&(this.distance=0,this.addCurrentVertex(y,I,U,J,ne,fe))},Gf.prototype.addHalfVertex=function(y,I,U,J,ne,fe,Fe){var Qe=y.x,st=y.y,mt=this.lineClips?this.scaledDistance*(eb-1):this.scaledDistance,Xt=mt*Bw;if(this.layoutVertexArray.emplaceBack((Qe<<1)+(J?1:0),(st<<1)+(ne?1:0),Math.round(Ow*I)+128,Math.round(Ow*U)+128,(fe===0?0:fe<0?-1:1)+1|(Xt&63)<<2,Xt>>6),this.lineClips){var ur=this.scaledDistance-this.lineClips.start,nr=this.lineClips.end-this.lineClips.start,Lr=ur/nr;this.layoutVertexArray2.emplaceBack(Lr,this.lineClipsArray.length)}var Yr=Fe.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,Yr),Fe.primitiveLength++),ne?this.e2=Yr:this.e1=Yr},Gf.prototype.updateScaledDistance=function(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance},Gf.prototype.updateDistance=function(y,I){this.distance+=y.dist(I),this.updateScaledDistance()},Z("LineBucket",Gf,{omit:["layers","patternFeatures"]});var _S=new Oi({"line-cap":new At(on.layout_line["line-cap"]),"line-join":new Er(on.layout_line["line-join"]),"line-miter-limit":new At(on.layout_line["line-miter-limit"]),"line-round-limit":new At(on.layout_line["line-round-limit"]),"line-sort-key":new Er(on.layout_line["line-sort-key"])}),xS=new Oi({"line-opacity":new Er(on.paint_line["line-opacity"]),"line-color":new Er(on.paint_line["line-color"]),"line-translate":new At(on.paint_line["line-translate"]),"line-translate-anchor":new At(on.paint_line["line-translate-anchor"]),"line-width":new Er(on.paint_line["line-width"]),"line-gap-width":new Er(on.paint_line["line-gap-width"]),"line-offset":new Er(on.paint_line["line-offset"]),"line-blur":new Er(on.paint_line["line-blur"]),"line-dasharray":new wi(on.paint_line["line-dasharray"]),"line-pattern":new Wr(on.paint_line["line-pattern"]),"line-gradient":new Ui(on.paint_line["line-gradient"])}),Nw={paint:xS,layout:_S},J9=function(m){function y(){m.apply(this,arguments)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype.possiblyEvaluate=function(U,J){return J=new pn(Math.floor(J.zoom),{now:J.now,fadeDuration:J.fadeDuration,zoomHistory:J.zoomHistory,transition:J.transition}),m.prototype.possiblyEvaluate.call(this,U,J)},y.prototype.evaluate=function(U,J,ne,fe){return J=_({},J,{zoom:Math.floor(J.zoom)}),m.prototype.evaluate.call(this,U,J,ne,fe)},y}(Er),R=new J9(Nw.paint.properties["line-width"].specification);R.useIntegerZoom=!0;var S=function(m){function y(I){m.call(this,I,Nw),this.gradientVersion=0}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype._handleSpecialPaintPropertyUpdate=function(U){if(U==="line-gradient"){var J=this._transitionablePaint._values["line-gradient"].value.expression;this.stepInterpolant=J._styleExpression.expression instanceof yu,this.gradientVersion=(this.gradientVersion+1)%d}},y.prototype.gradientExpression=function(){return this._transitionablePaint._values["line-gradient"].value.expression},y.prototype.recalculate=function(U,J){m.prototype.recalculate.call(this,U,J),this.paint._values["line-floorwidth"]=R.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,U)},y.prototype.createBucket=function(U){return new Gf(U)},y.prototype.queryRadius=function(U){var J=U,ne=D(xd("line-width",this,J),xd("line-gap-width",this,J)),fe=xd("line-offset",this,J);return ne/2+Math.abs(fe)+kv(this.paint.get("line-translate"))},y.prototype.queryIntersectsFeature=function(U,J,ne,fe,Fe,Qe,st){var mt=Kv(U,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),Qe.angle,st),Xt=st/2*D(this.paint.get("line-width").evaluate(J,ne),this.paint.get("line-gap-width").evaluate(J,ne)),ur=this.paint.get("line-offset").evaluate(J,ne);return ur&&(fe=j(fe,ur*st)),zu(mt,fe,Xt)},y.prototype.isTileClipped=function(){return!0},y}(cn);function D(m,y){return y>0?y+2*m:m}function j(m,y){for(var I=[],U=new u(0,0),J=0;J":"\uFE40","?":"\uFE16","@":"\uFF20","[":"\uFE47","\\":"\uFF3C","]":"\uFE48","^":"\uFF3E",_:"\uFE33","`":"\uFF40","{":"\uFE37","|":"\u2015","}":"\uFE38","~":"\uFF5E","\xA2":"\uFFE0","\xA3":"\uFFE1","\xA5":"\uFFE5","\xA6":"\uFFE4","\xAC":"\uFFE2","\xAF":"\uFFE3","\u2013":"\uFE32","\u2014":"\uFE31","\u2018":"\uFE43","\u2019":"\uFE44","\u201C":"\uFE41","\u201D":"\uFE42","\u2026":"\uFE19","\u2027":"\u30FB","\u20A9":"\uFFE6","\u3001":"\uFE11","\u3002":"\uFE12","\u3008":"\uFE3F","\u3009":"\uFE40","\u300A":"\uFE3D","\u300B":"\uFE3E","\u300C":"\uFE41","\u300D":"\uFE42","\u300E":"\uFE43","\u300F":"\uFE44","\u3010":"\uFE3B","\u3011":"\uFE3C","\u3014":"\uFE39","\u3015":"\uFE3A","\u3016":"\uFE17","\u3017":"\uFE18","\uFF01":"\uFE15","\uFF08":"\uFE35","\uFF09":"\uFE36","\uFF0C":"\uFE10","\uFF0D":"\uFE32","\uFF0E":"\u30FB","\uFF1A":"\uFE13","\uFF1B":"\uFE14","\uFF1C":"\uFE3F","\uFF1E":"\uFE40","\uFF1F":"\uFE16","\uFF3B":"\uFE47","\uFF3D":"\uFE48","\uFF3F":"\uFE33","\uFF5B":"\uFE37","\uFF5C":"\u2015","\uFF5D":"\uFE38","\uFF5F":"\uFE35","\uFF60":"\uFE36","\uFF61":"\uFE12","\uFF62":"\uFE41","\uFF63":"\uFE42"};function ki(m){for(var y="",I=0;I>1,mt=-7,Xt=I?J-1:0,ur=I?-1:1,nr=m[y+Xt];for(Xt+=ur,ne=nr&(1<<-mt)-1,nr>>=-mt,mt+=Fe;mt>0;ne=ne*256+m[y+Xt],Xt+=ur,mt-=8);for(fe=ne&(1<<-mt)-1,ne>>=-mt,mt+=U;mt>0;fe=fe*256+m[y+Xt],Xt+=ur,mt-=8);if(ne===0)ne=1-st;else{if(ne===Qe)return fe?NaN:(nr?-1:1)*(1/0);fe=fe+Math.pow(2,U),ne=ne-st}return(nr?-1:1)*fe*Math.pow(2,ne-U)},Va=function(m,y,I,U,J,ne){var fe,Fe,Qe,st=ne*8-J-1,mt=(1<>1,ur=J===23?Math.pow(2,-24)-Math.pow(2,-77):0,nr=U?0:ne-1,Lr=U?1:-1,Yr=y<0||y===0&&1/y<0?1:0;for(y=Math.abs(y),isNaN(y)||y===1/0?(Fe=isNaN(y)?1:0,fe=mt):(fe=Math.floor(Math.log(y)/Math.LN2),y*(Qe=Math.pow(2,-fe))<1&&(fe--,Qe*=2),fe+Xt>=1?y+=ur/Qe:y+=ur*Math.pow(2,1-Xt),y*Qe>=2&&(fe++,Qe/=2),fe+Xt>=mt?(Fe=0,fe=mt):fe+Xt>=1?(Fe=(y*Qe-1)*Math.pow(2,J),fe=fe+Xt):(Fe=y*Math.pow(2,Xt-1)*Math.pow(2,J),fe=0));J>=8;m[I+nr]=Fe&255,nr+=Lr,Fe/=256,J-=8);for(fe=fe<0;m[I+nr]=fe&255,nr+=Lr,fe/=256,st-=8);m[I+nr-Lr]|=Yr*128},Io={read:ta,write:Va},La=Hn;function Hn(m){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(m)?m:new Uint8Array(m||0),this.pos=0,this.type=0,this.length=this.buf.length}Hn.Varint=0,Hn.Fixed64=1,Hn.Bytes=2,Hn.Fixed32=5;var lo=65536*65536,$a=1/lo,Xa=12,Tn=typeof TextDecoder=="undefined"?null:new TextDecoder("utf8");Hn.prototype={destroy:function(){this.buf=null},readFields:function(m,y,I){for(I=I||this.length;this.pos>3,ne=this.pos;this.type=U&7,m(J,y,this),this.pos===ne&&this.skip(U)}return y},readMessage:function(m,y){return this.readFields(m,y,this.readVarint()+this.pos)},readFixed32:function(){var m=Dh(this.buf,this.pos);return this.pos+=4,m},readSFixed32:function(){var m=Iv(this.buf,this.pos);return this.pos+=4,m},readFixed64:function(){var m=Dh(this.buf,this.pos)+Dh(this.buf,this.pos+4)*lo;return this.pos+=8,m},readSFixed64:function(){var m=Dh(this.buf,this.pos)+Iv(this.buf,this.pos+4)*lo;return this.pos+=8,m},readFloat:function(){var m=Io.read(this.buf,this.pos,!0,23,4);return this.pos+=4,m},readDouble:function(){var m=Io.read(this.buf,this.pos,!0,52,8);return this.pos+=8,m},readVarint:function(m){var y=this.buf,I,U;return U=y[this.pos++],I=U&127,U<128||(U=y[this.pos++],I|=(U&127)<<7,U<128)||(U=y[this.pos++],I|=(U&127)<<14,U<128)||(U=y[this.pos++],I|=(U&127)<<21,U<128)?I:(U=y[this.pos],I|=(U&15)<<28,bo(I,m,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var m=this.readVarint();return m%2===1?(m+1)/-2:m/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var m=this.readVarint()+this.pos,y=this.pos;return this.pos=m,m-y>=Xa&&Tn?Cl(this.buf,y,m):lv(this.buf,y,m)},readBytes:function(){var m=this.readVarint()+this.pos,y=this.buf.subarray(this.pos,m);return this.pos=m,y},readPackedVarint:function(m,y){if(this.type!==Hn.Bytes)return m.push(this.readVarint(y));var I=Ya(this);for(m=m||[];this.pos127;);else if(y===Hn.Bytes)this.pos=this.readVarint()+this.pos;else if(y===Hn.Fixed32)this.pos+=4;else if(y===Hn.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+y)},writeTag:function(m,y){this.writeVarint(m<<3|y)},realloc:function(m){for(var y=this.length||16;y268435455||m<0){wu(m,this);return}this.realloc(4),this.buf[this.pos++]=m&127|(m>127?128:0),!(m<=127)&&(this.buf[this.pos++]=(m>>>=7)&127|(m>127?128:0),!(m<=127)&&(this.buf[this.pos++]=(m>>>=7)&127|(m>127?128:0),!(m<=127)&&(this.buf[this.pos++]=m>>>7&127)))},writeSVarint:function(m){this.writeVarint(m<0?-m*2-1:m*2)},writeBoolean:function(m){this.writeVarint(!!m)},writeString:function(m){m=String(m),this.realloc(m.length*4),this.pos++;var y=this.pos;this.pos=qu(this.buf,m,this.pos);var I=this.pos-y;I>=128&&$v(y,I,this),this.pos=y-1,this.writeVarint(I),this.pos+=I},writeFloat:function(m){this.realloc(4),Io.write(this.buf,m,this.pos,!0,23,4),this.pos+=4},writeDouble:function(m){this.realloc(8),Io.write(this.buf,m,this.pos,!0,52,8),this.pos+=8},writeBytes:function(m){var y=m.length;this.writeVarint(y),this.realloc(y);for(var I=0;I=128&&$v(I,U,this),this.pos=I-1,this.writeVarint(U),this.pos+=U},writeMessage:function(m,y,I){this.writeTag(m,Hn.Bytes),this.writeRawMessage(y,I)},writePackedVarint:function(m,y){y.length&&this.writeMessage(m,td,y)},writePackedSVarint:function(m,y){y.length&&this.writeMessage(m,ch,y)},writePackedBoolean:function(m,y){y.length&&this.writeMessage(m,Hd,y)},writePackedFloat:function(m,y){y.length&&this.writeMessage(m,Ud,y)},writePackedDouble:function(m,y){y.length&&this.writeMessage(m,Vd,y)},writePackedFixed32:function(m,y){y.length&&this.writeMessage(m,rf,y)},writePackedSFixed32:function(m,y){y.length&&this.writeMessage(m,fh,y)},writePackedFixed64:function(m,y){y.length&&this.writeMessage(m,Td,y)},writePackedSFixed64:function(m,y){y.length&&this.writeMessage(m,rd,y)},writeBytesField:function(m,y){this.writeTag(m,Hn.Bytes),this.writeBytes(y)},writeFixed32Field:function(m,y){this.writeTag(m,Hn.Fixed32),this.writeFixed32(y)},writeSFixed32Field:function(m,y){this.writeTag(m,Hn.Fixed32),this.writeSFixed32(y)},writeFixed64Field:function(m,y){this.writeTag(m,Hn.Fixed64),this.writeFixed64(y)},writeSFixed64Field:function(m,y){this.writeTag(m,Hn.Fixed64),this.writeSFixed64(y)},writeVarintField:function(m,y){this.writeTag(m,Hn.Varint),this.writeVarint(y)},writeSVarintField:function(m,y){this.writeTag(m,Hn.Varint),this.writeSVarint(y)},writeStringField:function(m,y){this.writeTag(m,Hn.Bytes),this.writeString(y)},writeFloatField:function(m,y){this.writeTag(m,Hn.Fixed32),this.writeFloat(y)},writeDoubleField:function(m,y){this.writeTag(m,Hn.Fixed64),this.writeDouble(y)},writeBooleanField:function(m,y){this.writeVarintField(m,!!y)}};function bo(m,y,I){var U=I.buf,J,ne;if(ne=U[I.pos++],J=(ne&112)>>4,ne<128||(ne=U[I.pos++],J|=(ne&127)<<3,ne<128)||(ne=U[I.pos++],J|=(ne&127)<<10,ne<128)||(ne=U[I.pos++],J|=(ne&127)<<17,ne<128)||(ne=U[I.pos++],J|=(ne&127)<<24,ne<128)||(ne=U[I.pos++],J|=(ne&1)<<31,ne<128))return Uo(m,J,y);throw new Error("Expected varint not more than 10 bytes")}function Ya(m){return m.type===Hn.Bytes?m.readVarint()+m.pos:m.pos+1}function Uo(m,y,I){return I?y*4294967296+(m>>>0):(y>>>0)*4294967296+(m>>>0)}function wu(m,y){var I,U;if(m>=0?(I=m%4294967296|0,U=m/4294967296|0):(I=~(-m%4294967296),U=~(-m/4294967296),I^4294967295?I=I+1|0:(I=0,U=U+1|0)),m>=18446744073709552e3||m<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");y.realloc(10),hu(I,U,y),uh(U,y)}function hu(m,y,I){I.buf[I.pos++]=m&127|128,m>>>=7,I.buf[I.pos++]=m&127|128,m>>>=7,I.buf[I.pos++]=m&127|128,m>>>=7,I.buf[I.pos++]=m&127|128,m>>>=7,I.buf[I.pos]=m&127}function uh(m,y){var I=(m&7)<<4;y.buf[y.pos++]|=I|((m>>>=3)?128:0),m&&(y.buf[y.pos++]=m&127|((m>>>=7)?128:0),m&&(y.buf[y.pos++]=m&127|((m>>>=7)?128:0),m&&(y.buf[y.pos++]=m&127|((m>>>=7)?128:0),m&&(y.buf[y.pos++]=m&127|((m>>>=7)?128:0),m&&(y.buf[y.pos++]=m&127)))))}function $v(m,y,I){var U=y<=16383?1:y<=2097151?2:y<=268435455?3:Math.floor(Math.log(y)/(Math.LN2*7));I.realloc(U);for(var J=I.pos-1;J>=m;J--)I.buf[J+U]=I.buf[J]}function td(m,y){for(var I=0;I>>8,m[I+2]=y>>>16,m[I+3]=y>>>24}function Iv(m,y){return(m[y]|m[y+1]<<8|m[y+2]<<16)+(m[y+3]<<24)}function lv(m,y,I){for(var U="",J=y;J239?4:ne>223?3:ne>191?2:1;if(J+Fe>I)break;var Qe,st,mt;Fe===1?ne<128&&(fe=ne):Fe===2?(Qe=m[J+1],(Qe&192)===128&&(fe=(ne&31)<<6|Qe&63,fe<=127&&(fe=null))):Fe===3?(Qe=m[J+1],st=m[J+2],(Qe&192)===128&&(st&192)===128&&(fe=(ne&15)<<12|(Qe&63)<<6|st&63,(fe<=2047||fe>=55296&&fe<=57343)&&(fe=null))):Fe===4&&(Qe=m[J+1],st=m[J+2],mt=m[J+3],(Qe&192)===128&&(st&192)===128&&(mt&192)===128&&(fe=(ne&15)<<18|(Qe&63)<<12|(st&63)<<6|mt&63,(fe<=65535||fe>=1114112)&&(fe=null))),fe===null?(fe=65533,Fe=1):fe>65535&&(fe-=65536,U+=String.fromCharCode(fe>>>10&1023|55296),fe=56320|fe&1023),U+=String.fromCharCode(fe),J+=Fe}return U}function Cl(m,y,I){return Tn.decode(m.subarray(y,I))}function qu(m,y,I){for(var U=0,J,ne;U55295&&J<57344)if(ne)if(J<56320){m[I++]=239,m[I++]=191,m[I++]=189,ne=J;continue}else J=ne-55296<<10|J-56320|65536,ne=null;else{J>56319||U+1===y.length?(m[I++]=239,m[I++]=191,m[I++]=189):ne=J;continue}else ne&&(m[I++]=239,m[I++]=191,m[I++]=189,ne=null);J<128?m[I++]=J:(J<2048?m[I++]=J>>6|192:(J<65536?m[I++]=J>>12|224:(m[I++]=J>>18|240,m[I++]=J>>12&63|128),m[I++]=J>>6&63|128),m[I++]=J&63|128)}return I}var Tu=3;function Rv(m,y,I){m===1&&I.readMessage(qc,y)}function qc(m,y,I){if(m===3){var U=I.readMessage(I1,{}),J=U.id,ne=U.bitmap,fe=U.width,Fe=U.height,Qe=U.left,st=U.top,mt=U.advance;y.push({id:J,bitmap:new Pv({width:fe+2*Tu,height:Fe+2*Tu},ne),metrics:{width:fe,height:Fe,left:Qe,top:st,advance:mt}})}}function I1(m,y,I){m===1?y.id=I.readVarint():m===2?y.bitmap=I.readBytes():m===3?y.width=I.readVarint():m===4?y.height=I.readVarint():m===5?y.left=I.readSVarint():m===6?y.top=I.readSVarint():m===7&&(y.advance=I.readVarint())}function p0(m){return new La(m).readFields(Rv,[])}var Gp=Tu;function Qv(m){for(var y=0,I=0,U=0,J=m;U=0;nr--){var Lr=Fe[nr];if(!(ur.w>Lr.w||ur.h>Lr.h)){if(ur.x=Lr.x,ur.y=Lr.y,st=Math.max(st,ur.y+ur.h),Qe=Math.max(Qe,ur.x+ur.w),ur.w===Lr.w&&ur.h===Lr.h){var Yr=Fe.pop();nr=0&&J>=y&&m0[this.text.charCodeAt(J)];J--)U--;this.text=this.text.substring(y,U),this.sectionIndex=this.sectionIndex.slice(y,U)},zh.prototype.substring=function(y,I){var U=new zh;return U.text=this.text.substring(y,I),U.sectionIndex=this.sectionIndex.slice(y,I),U.sections=this.sections,U},zh.prototype.toString=function(){return this.text},zh.prototype.getMaxScale=function(){var y=this;return this.sectionIndex.reduce(function(I,U){return Math.max(I,y.sections[U].scale)},0)},zh.prototype.addTextSection=function(y,I){this.text+=y.text,this.sections.push(hy.forText(y.scale,y.fontStack||I));for(var U=this.sections.length-1,J=0;J=g0?null:++this.imageSectionID:(this.imageSectionID=Uw,this.imageSectionID)};function $9(m,y){for(var I=[],U=m.text,J=0,ne=0,fe=y;ne=0,mt=0,Xt=0;Xt0&&Zf>Ba&&(Ba=Zf)}else{var nl=I[Pa.fontStack],Ws=nl&&nl[Na];if(Ws&&Ws.rect)zo=Ws.rect,us=Ws.metrics;else{var Au=y[Pa.fontStack],Ou=Au&&Au[Na];if(!Ou)continue;us=Ou.metrics}ja=(en-Pa.scale)*Zi}il?(m.verticalizable=!0,$n.push({glyph:Na,imageName:rl,x:ur,y:nr+ja,vertical:il,scale:Pa.scale,fontStack:Pa.fontStack,sectionIndex:qo,metrics:us,rect:zo}),ur+=ou*Pa.scale+st):($n.push({glyph:Na,imageName:rl,x:ur,y:nr+ja,vertical:il,scale:Pa.scale,fontStack:Pa.fontStack,sectionIndex:qo,metrics:us,rect:zo}),ur+=us.advance*Pa.scale+st)}if($n.length!==0){var jd=ur-st;Lr=Math.max(jd,Lr),rq($n,0,$n.length-1,_i,Ba)}ur=0;var Wd=ne*en+Ba;ra.lineOffset=Math.max(Ba,An),nr+=Wd,Yr=Math.max(Wd,Yr),++si}var Oh=nr-R1,fv=wS(fe),hv=fv.horizontalAlign,hh=fv.verticalAlign;Ad(m.positionedLines,_i,hv,hh,Lr,Yr,ne,Oh,J.length),m.top+=-hh*Oh,m.bottom=m.top+Oh,m.left+=-hv*Lr,m.right=m.left+Lr}function rq(m,y,I,U,J){if(!(!U&&!J))for(var ne=m[I],fe=ne.metrics.advance*ne.scale,Fe=(m[I].x+fe)*U,Qe=y;Qe<=I;Qe++)m[Qe].x-=Fe,m[Qe].y+=J}function Ad(m,y,I,U,J,ne,fe,Fe,Qe){var st=(y-I)*J,mt=0;ne!==fe?mt=-Fe*U-R1:mt=(-U*Qe+.5)*fe;for(var Xt=0,ur=m;Xt-I/2;){if(fe--,fe<0)return!1;Fe-=m[fe].dist(ne),ne=m[fe]}Fe+=m[fe].dist(m[fe+1]),fe++;for(var Qe=[],st=0;FeU;)st-=Qe.shift().angleDelta;if(st>J)return!1;fe++,Fe+=Xt.dist(ur)}return!0}function xQ(m){for(var y=0,I=0;Ist){var Lr=(st-Qe)/nr,Yr=Qs(Xt.x,ur.x,Lr),_i=Qs(Xt.y,ur.y,Lr),si=new Gd(Yr,_i,ur.angleTo(Xt),mt);return si._round(),!fe||_Q(m,si,Fe,fe,y)?si:void 0}Qe+=nr}}function J$e(m,y,I,U,J,ne,fe,Fe,Qe){var st=bQ(U,ne,fe),mt=wQ(U,J),Xt=mt*fe,ur=m[0].x===0||m[0].x===Qe||m[0].y===0||m[0].y===Qe;y-Xt=0&&Vi=0&&en=0&&ur+st<=mt){var An=new Gd(Vi,en,Hi,Lr);An._round(),(!U||_Q(m,An,ne,U,J))&&nr.push(An)}}Xt+=si}return!Fe&&!nr.length&&!fe&&(nr=TQ(m,Xt/2,I,U,J,ne,fe,!0,Qe)),nr}function AQ(m,y,I,U,J){for(var ne=[],fe=0;fe=U&&Xt.x>=U)&&(mt.x>=U?mt=new u(U,mt.y+(Xt.y-mt.y)*((U-mt.x)/(Xt.x-mt.x)))._round():Xt.x>=U&&(Xt=new u(U,mt.y+(Xt.y-mt.y)*((U-mt.x)/(Xt.x-mt.x)))._round()),!(mt.y>=J&&Xt.y>=J)&&(mt.y>=J?mt=new u(mt.x+(Xt.x-mt.x)*((J-mt.y)/(Xt.y-mt.y)),J)._round():Xt.y>=J&&(Xt=new u(mt.x+(Xt.x-mt.x)*((J-mt.y)/(Xt.y-mt.y)),J)._round()),(!Qe||!mt.equals(Qe[Qe.length-1]))&&(Qe=[mt],ne.push(Qe)),Qe.push(Xt)))))}return ne}var Gw=oc;function SQ(m,y,I,U){var J=[],ne=m.image,fe=ne.pixelRatio,Fe=ne.paddedRect.w-2*Gw,Qe=ne.paddedRect.h-2*Gw,st=m.right-m.left,mt=m.bottom-m.top,Xt=ne.stretchX||[[0,Fe]],ur=ne.stretchY||[[0,Qe]],nr=function(nl,Ws){return nl+Ws[1]-Ws[0]},Lr=Xt.reduce(nr,0),Yr=ur.reduce(nr,0),_i=Fe-Lr,si=Qe-Yr,Hi=0,Ei=Lr,Vi=0,en=Yr,An=0,ra=_i,$n=0,Ba=si;if(ne.content&&U){var _a=ne.content;Hi=UC(Xt,0,_a[0]),Vi=UC(ur,0,_a[1]),Ei=UC(Xt,_a[0],_a[2]),en=UC(ur,_a[1],_a[3]),An=_a[0]-Hi,$n=_a[1]-Vi,ra=_a[2]-_a[0]-Ei,Ba=_a[3]-_a[1]-en}var Pa=function(nl,Ws,Au,Ou){var nf=VC(nl.stretch-Hi,Ei,st,m.left),bf=HC(nl.fixed-An,ra,nl.stretch,Lr),qh=VC(Ws.stretch-Vi,en,mt,m.top),Zf=HC(Ws.fixed-$n,Ba,Ws.stretch,Yr),jd=VC(Au.stretch-Hi,Ei,st,m.left),Wd=HC(Au.fixed-An,ra,Au.stretch,Lr),Oh=VC(Ou.stretch-Vi,en,mt,m.top),fv=HC(Ou.fixed-$n,Ba,Ou.stretch,Yr),hv=new u(nf,qh),hh=new u(jd,qh),dv=new u(jd,Oh),_p=new u(nf,Oh),py=new u(bf/fe,Zf/fe),F1=new u(Wd/fe,fv/fe),q1=y*Math.PI/180;if(q1){var O1=Math.sin(q1),$w=Math.cos(q1),y0=[$w,-O1,O1,$w];hv._matMult(y0),hh._matMult(y0),_p._matMult(y0),dv._matMult(y0)}var YC=nl.stretch+nl.fixed,cq=Au.stretch+Au.fixed,KC=Ws.stretch+Ws.fixed,fq=Ou.stretch+Ou.fixed,jp={x:ne.paddedRect.x+Gw+YC,y:ne.paddedRect.y+Gw+KC,w:cq-YC,h:fq-KC},Qw=ra/fe/st,JC=Ba/fe/mt;return{tl:hv,tr:hh,bl:_p,br:dv,tex:jp,writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:py,pixelOffsetBR:F1,minFontScaleX:Qw,minFontScaleY:JC,isSDF:I}};if(!U||!ne.stretchX&&!ne.stretchY)J.push(Pa({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:Fe+1},{fixed:0,stretch:Qe+1}));else for(var qo=MQ(Xt,_i,Lr),Na=MQ(ur,si,Yr),ja=0;ja0&&(Lr=Math.max(10,Lr),this.circleDiameter=Lr)}else{var Yr=fe.top*Fe-Qe,_i=fe.bottom*Fe+Qe,si=fe.left*Fe-Qe,Hi=fe.right*Fe+Qe,Ei=fe.collisionPadding;if(Ei&&(si-=Ei[0]*Fe,Yr-=Ei[1]*Fe,Hi+=Ei[2]*Fe,_i+=Ei[3]*Fe),mt){var Vi=new u(si,Yr),en=new u(Hi,Yr),An=new u(si,_i),ra=new u(Hi,_i),$n=mt*Math.PI/180;Vi._rotate($n),en._rotate($n),An._rotate($n),ra._rotate($n),si=Math.min(Vi.x,en.x,An.x,ra.x),Hi=Math.max(Vi.x,en.x,An.x,ra.x),Yr=Math.min(Vi.y,en.y,An.y,ra.y),_i=Math.max(Vi.y,en.y,An.y,ra.y)}y.emplaceBack(I.x,I.y,si,Yr,Hi,_i,U,J,ne)}this.boxEndIndex=y.length},jw=function(y,I){if(y===void 0&&(y=[]),I===void 0&&(I=Q$e),this.data=y,this.length=this.data.length,this.compare=I,this.length>0)for(var U=(this.length>>1)-1;U>=0;U--)this._down(U)};jw.prototype.push=function(y){this.data.push(y),this.length++,this._up(this.length-1)},jw.prototype.pop=function(){if(this.length!==0){var y=this.data[0],I=this.data.pop();return this.length--,this.length>0&&(this.data[0]=I,this._down(0)),y}},jw.prototype.peek=function(){return this.data[0]},jw.prototype._up=function(y){for(var I=this,U=I.data,J=I.compare,ne=U[y];y>0;){var fe=y-1>>1,Fe=U[fe];if(J(ne,Fe)>=0)break;U[y]=Fe,y=fe}U[y]=ne},jw.prototype._down=function(y){for(var I=this,U=I.data,J=I.compare,ne=this.length>>1,fe=U[y];y=0)break;U[y]=Qe,y=Fe}U[y]=fe};function Q$e(m,y){return my?1:0}function eQe(m,y,I){y===void 0&&(y=1),I===void 0&&(I=!1);for(var U=1/0,J=1/0,ne=-1/0,fe=-1/0,Fe=m[0],Qe=0;Qene)&&(ne=st.x),(!Qe||st.y>fe)&&(fe=st.y)}var mt=ne-U,Xt=fe-J,ur=Math.min(mt,Xt),nr=ur/2,Lr=new jw([],tQe);if(ur===0)return new u(U,J);for(var Yr=U;Yrsi.d||!si.d)&&(si=Ei,I&&console.log("found best %d after %d probes",Math.round(1e4*Ei.d)/1e4,Hi)),!(Ei.max-si.d<=y)&&(nr=Ei.h/2,Lr.push(new Ww(Ei.p.x-nr,Ei.p.y-nr,nr,m)),Lr.push(new Ww(Ei.p.x+nr,Ei.p.y-nr,nr,m)),Lr.push(new Ww(Ei.p.x-nr,Ei.p.y+nr,nr,m)),Lr.push(new Ww(Ei.p.x+nr,Ei.p.y+nr,nr,m)),Hi+=4)}return I&&(console.log("num probes: "+Hi),console.log("best distance: "+si.d)),si.p}function tQe(m,y){return y.max-m.max}function Ww(m,y,I,U){this.p=new u(m,y),this.h=I,this.d=rQe(this.p,U),this.max=this.d+this.h*Math.SQRT2}function rQe(m,y){for(var I=!1,U=1/0,J=0;Jm.y!=mt.y>m.y&&m.x<(mt.x-st.x)*(m.y-st.y)/(mt.y-st.y)+st.x&&(I=!I),U=Math.min(U,cg(m,st,mt))}return(I?1:-1)*Math.sqrt(U)}function iQe(m){for(var y=0,I=0,U=0,J=m[0],ne=0,fe=J.length,Fe=fe-1;ne=rn||y0.y<0||y0.y>=rn||oQe(m,y0,$w,I,U,J,Na,m.layers[0],m.collisionBoxArray,y.index,y.sourceLayerIndex,m.index,si,en,$n,Qe,Ei,An,Ba,nr,y,ne,st,mt,fe)};if(_a==="line")for(var us=0,zo=AQ(y.geometry,0,0,rn,rn);us1){var qh=K$e(bf,ra,I.vertical||Lr,U,Yr,Hi);qh&&ja(bf,qh)}}else if(y.type==="Polygon")for(var Zf=0,jd=zw(y.geometry,0);ZfD1&&re(m.layerIds[0]+': Value for "text-size" is >= '+TS+'. Reduce your "text-size".')):_i.kind==="composite"&&(si=[Sd*nr.compositeTextSizes[0].evaluate(fe,{},Lr),Sd*nr.compositeTextSizes[1].evaluate(fe,{},Lr)],(si[0]>D1||si[1]>D1)&&re(m.layerIds[0]+': Value for "text-size" is >= '+TS+'. Reduce your "text-size".')),m.addSymbols(m.text,Yr,si,Fe,ne,fe,st,y,Qe.lineStartIndex,Qe.lineLength,ur,Lr);for(var Hi=0,Ei=mt;HiD1&&re(m.layerIds[0]+': Value for "icon-size" is >= '+TS+'. Reduce your "icon-size".')):hv.kind==="composite"&&(hh=[Sd*en.compositeIconSizes[0].evaluate(Vi,{},ra),Sd*en.compositeIconSizes[1].evaluate(Vi,{},ra)],(hh[0]>D1||hh[1]>D1)&&re(m.layerIds[0]+': Value for "icon-size" is >= '+TS+'. Reduce your "icon-size".')),m.addSymbols(m.icon,Oh,hh,Ei,Hi,Vi,!1,y,_a.lineStartIndex,_a.lineLength,-1,ra),il=m.icon.placedSymbolArray.length-1,fv&&(zo=fv.length*4,m.addSymbols(m.icon,fv,hh,Ei,Hi,Vi,uv.vertical,y,_a.lineStartIndex,_a.lineLength,-1,ra),nl=m.icon.placedSymbolArray.length-1)}for(var dv in U.horizontal){var _p=U.horizontal[dv];if(!Pa){Au=$(_p.text);var py=Fe.layout.get("text-rotate").evaluate(Vi,{},ra);Pa=new GC(Qe,y,st,mt,Xt,_p,ur,nr,Lr,py)}var F1=_p.positionedLines.length===1;if(rl+=kQ(m,y,_p,ne,Fe,Lr,Vi,Yr,_a,U.vertical?uv.horizontal:uv.horizontalOnly,F1?Object.keys(U.horizontal):[dv],Ws,il,en,ra),F1)break}U.vertical&&(ou+=kQ(m,y,U.vertical,ne,Fe,Lr,Vi,Yr,_a,uv.vertical,["vertical"],Ws,nl,en,ra));var q1=Pa?Pa.boxStartIndex:m.collisionBoxArray.length,O1=Pa?Pa.boxEndIndex:m.collisionBoxArray.length,$w=Na?Na.boxStartIndex:m.collisionBoxArray.length,y0=Na?Na.boxEndIndex:m.collisionBoxArray.length,YC=qo?qo.boxStartIndex:m.collisionBoxArray.length,cq=qo?qo.boxEndIndex:m.collisionBoxArray.length,KC=ja?ja.boxStartIndex:m.collisionBoxArray.length,fq=ja?ja.boxEndIndex:m.collisionBoxArray.length,jp=-1,Qw=function(MS,jQ){return MS&&MS.circleDiameter?Math.max(MS.circleDiameter,jQ):jQ};jp=Qw(Pa,jp),jp=Qw(Na,jp),jp=Qw(qo,jp),jp=Qw(ja,jp);var JC=jp>-1?1:0;JC&&(jp*=$n/Zi),m.glyphOffsetArray.length>=au.MAX_GLYPHS&&re("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),Vi.sortKey!==void 0&&m.addToSortKeyRanges(m.symbolInstances.length,Vi.sortKey),m.symbolInstances.emplaceBack(y.x,y.y,Ws.right>=0?Ws.right:-1,Ws.center>=0?Ws.center:-1,Ws.left>=0?Ws.left:-1,Ws.vertical||-1,il,nl,Au,q1,O1,$w,y0,YC,cq,KC,fq,st,rl,ou,us,zo,JC,0,ur,Ou,nf,jp)}function sQe(m,y,I,U){var J=m.compareText;if(!(y in J))J[y]=[];else for(var ne=J[y],fe=ne.length-1;fe>=0;fe--)if(U.dist(ne[fe])0)&&(fe.value.kind!=="constant"||fe.value.value.length>0),mt=Qe.value.kind!=="constant"||!!Qe.value.value||Object.keys(Qe.parameters).length>0,Xt=ne.get("symbol-sort-key");if(this.features=[],!(!st&&!mt)){for(var ur=I.iconDependencies,nr=I.glyphDependencies,Lr=I.availableImages,Yr=new pn(this.zoom),_i=0,si=y;_i=0;for(var ou=0,il=Ba.sections;ou=0;Qe--)fe[Qe]={x:I[Qe].x,y:I[Qe].y,tileUnitDistanceFromAnchor:ne},Qe>0&&(ne+=I[Qe-1].dist(I[Qe]));for(var st=0;st0},au.prototype.hasIconData=function(){return this.icon.segments.get().length>0},au.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},au.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},au.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},au.prototype.addIndicesForPlacedSymbol=function(y,I){for(var U=y.placedSymbolArray.get(I),J=U.vertexStartIndex+U.numGlyphs*4,ne=U.vertexStartIndex;ne1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(y),this.sortedAngle=y,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var U=0,J=this.symbolInstanceIndexes;U=0&&st.indexOf(Fe)===Qe&&I.addIndicesForPlacedSymbol(I.text,Fe)}),fe.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,fe.verticalPlacedTextSymbolIndex),fe.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,fe.placedIconSymbolIndex),fe.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,fe.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},Z("SymbolBucket",au,{omit:["layers","collisionBoxArray","features","compareText"]}),au.MAX_GLYPHS=65535,au.addDynamicAttributes=aq;function fQe(m,y){return y.replace(/{([^{}]+)}/g,function(I,U){return U in m?String(m[U]):""})}var hQe=new Oi({"symbol-placement":new At(on.layout_symbol["symbol-placement"]),"symbol-spacing":new At(on.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new At(on.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Er(on.layout_symbol["symbol-sort-key"]),"symbol-z-order":new At(on.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new At(on.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new At(on.layout_symbol["icon-ignore-placement"]),"icon-optional":new At(on.layout_symbol["icon-optional"]),"icon-rotation-alignment":new At(on.layout_symbol["icon-rotation-alignment"]),"icon-size":new Er(on.layout_symbol["icon-size"]),"icon-text-fit":new At(on.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new At(on.layout_symbol["icon-text-fit-padding"]),"icon-image":new Er(on.layout_symbol["icon-image"]),"icon-rotate":new Er(on.layout_symbol["icon-rotate"]),"icon-padding":new At(on.layout_symbol["icon-padding"]),"icon-keep-upright":new At(on.layout_symbol["icon-keep-upright"]),"icon-offset":new Er(on.layout_symbol["icon-offset"]),"icon-anchor":new Er(on.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new At(on.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new At(on.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new At(on.layout_symbol["text-rotation-alignment"]),"text-field":new Er(on.layout_symbol["text-field"]),"text-font":new Er(on.layout_symbol["text-font"]),"text-size":new Er(on.layout_symbol["text-size"]),"text-max-width":new Er(on.layout_symbol["text-max-width"]),"text-line-height":new At(on.layout_symbol["text-line-height"]),"text-letter-spacing":new Er(on.layout_symbol["text-letter-spacing"]),"text-justify":new Er(on.layout_symbol["text-justify"]),"text-radial-offset":new Er(on.layout_symbol["text-radial-offset"]),"text-variable-anchor":new At(on.layout_symbol["text-variable-anchor"]),"text-anchor":new Er(on.layout_symbol["text-anchor"]),"text-max-angle":new At(on.layout_symbol["text-max-angle"]),"text-writing-mode":new At(on.layout_symbol["text-writing-mode"]),"text-rotate":new Er(on.layout_symbol["text-rotate"]),"text-padding":new At(on.layout_symbol["text-padding"]),"text-keep-upright":new At(on.layout_symbol["text-keep-upright"]),"text-transform":new Er(on.layout_symbol["text-transform"]),"text-offset":new Er(on.layout_symbol["text-offset"]),"text-allow-overlap":new At(on.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new At(on.layout_symbol["text-ignore-placement"]),"text-optional":new At(on.layout_symbol["text-optional"])}),dQe=new Oi({"icon-opacity":new Er(on.paint_symbol["icon-opacity"]),"icon-color":new Er(on.paint_symbol["icon-color"]),"icon-halo-color":new Er(on.paint_symbol["icon-halo-color"]),"icon-halo-width":new Er(on.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Er(on.paint_symbol["icon-halo-blur"]),"icon-translate":new At(on.paint_symbol["icon-translate"]),"icon-translate-anchor":new At(on.paint_symbol["icon-translate-anchor"]),"text-opacity":new Er(on.paint_symbol["text-opacity"]),"text-color":new Er(on.paint_symbol["text-color"],{runtimeType:Tl,getOverride:function(m){return m.textColor},hasOverride:function(m){return!!m.textColor}}),"text-halo-color":new Er(on.paint_symbol["text-halo-color"]),"text-halo-width":new Er(on.paint_symbol["text-halo-width"]),"text-halo-blur":new Er(on.paint_symbol["text-halo-blur"]),"text-translate":new At(on.paint_symbol["text-translate"]),"text-translate-anchor":new At(on.paint_symbol["text-translate-anchor"])}),oq={paint:dQe,layout:hQe},Yw=function(y){this.type=y.property.overrides?y.property.overrides.runtimeType:Ec,this.defaultValue=y};Yw.prototype.evaluate=function(y){if(y.formattedSection){var I=this.defaultValue.property.overrides;if(I&&I.hasOverride(y.formattedSection))return I.getOverride(y.formattedSection)}return y.feature&&y.featureState?this.defaultValue.evaluate(y.feature,y.featureState):this.defaultValue.property.specification.default},Yw.prototype.eachChild=function(y){if(!this.defaultValue.isConstant()){var I=this.defaultValue.value;y(I._styleExpression.expression)}},Yw.prototype.outputDefined=function(){return!1},Yw.prototype.serialize=function(){return null},Z("FormatSectionOverride",Yw,{omit:["defaultValue"]});var vQe=function(m){function y(I){m.call(this,I,oq)}return m&&(y.__proto__=m),y.prototype=Object.create(m&&m.prototype),y.prototype.constructor=y,y.prototype.recalculate=function(U,J){if(m.prototype.recalculate.call(this,U,J),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout.get("symbol-placement")!=="point"?this.layout._values["icon-rotation-alignment"]="map":this.layout._values["icon-rotation-alignment"]="viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout.get("symbol-placement")!=="point"?this.layout._values["text-rotation-alignment"]="map":this.layout._values["text-rotation-alignment"]="viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),this.layout.get("symbol-placement")==="point"){var ne=this.layout.get("text-writing-mode");if(ne){for(var fe=[],Fe=0,Qe=ne;Fe",targetMapId:J,sourceMapId:fe.mapId})}}},Kw.prototype.receive=function(y){var I=y.data,U=I.id;if(U&&!(I.targetMapId&&this.mapId!==I.targetMapId))if(I.type===""){delete this.tasks[U];var J=this.cancelCallbacks[U];delete this.cancelCallbacks[U],J&&J()}else ke()||I.mustQueue?(this.tasks[U]=I,this.taskQueue.push(U),this.invoker.trigger()):this.processTask(U,I)},Kw.prototype.process=function(){if(this.taskQueue.length){var y=this.taskQueue.shift(),I=this.tasks[y];delete this.tasks[y],this.taskQueue.length&&this.invoker.trigger(),I&&this.processTask(y,I)}},Kw.prototype.processTask=function(y,I){var U=this;if(I.type===""){var J=this.callbacks[y];delete this.callbacks[y],J&&(I.error?J(We(I.error)):J(null,We(I.data)))}else{var ne=!1,fe=Te(this.globalScope)?void 0:[],Fe=I.hasCallback?function(ur,nr){ne=!0,delete U.cancelCallbacks[y],U.target.postMessage({id:y,type:"",sourceMapId:U.mapId,error:ur?Ue(ur):null,data:Ue(nr,fe)},fe)}:function(ur){ne=!0},Qe=null,st=We(I.data);if(this.parent[I.type])Qe=this.parent[I.type](I.sourceMapId,st,Fe);else if(this.parent.getWorkerSource){var mt=I.type.split("."),Xt=this.parent.getWorkerSource(I.sourceMapId,mt[0],st.source);Qe=Xt[mt[1]](st,Fe)}else Fe(new Error("Could not find function "+I.type));!ne&&Qe&&Qe.cancel&&(this.cancelCallbacks[y]=Qe.cancel)}},Kw.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1)};function SQe(m,y,I){y=Math.pow(2,I)-y-1;var U=DQ(m*256,y*256,I),J=DQ((m+1)*256,(y+1)*256,I);return U[0]+","+U[1]+","+J[0]+","+J[1]}function DQ(m,y,I){var U=2*Math.PI*6378137/256/Math.pow(2,I),J=m*U-2*Math.PI*6378137/2,ne=y*U-2*Math.PI*6378137/2;return[J,ne]}var jf=function(y,I){y&&(I?this.setSouthWest(y).setNorthEast(I):y.length===4?this.setSouthWest([y[0],y[1]]).setNorthEast([y[2],y[3]]):this.setSouthWest(y[0]).setNorthEast(y[1]))};jf.prototype.setNorthEast=function(y){return this._ne=y instanceof sc?new sc(y.lng,y.lat):sc.convert(y),this},jf.prototype.setSouthWest=function(y){return this._sw=y instanceof sc?new sc(y.lng,y.lat):sc.convert(y),this},jf.prototype.extend=function(y){var I=this._sw,U=this._ne,J,ne;if(y instanceof sc)J=y,ne=y;else if(y instanceof jf){if(J=y._sw,ne=y._ne,!J||!ne)return this}else{if(Array.isArray(y))if(y.length===4||y.every(Array.isArray)){var fe=y;return this.extend(jf.convert(fe))}else{var Fe=y;return this.extend(sc.convert(Fe))}return this}return!I&&!U?(this._sw=new sc(J.lng,J.lat),this._ne=new sc(ne.lng,ne.lat)):(I.lng=Math.min(J.lng,I.lng),I.lat=Math.min(J.lat,I.lat),U.lng=Math.max(ne.lng,U.lng),U.lat=Math.max(ne.lat,U.lat)),this},jf.prototype.getCenter=function(){return new sc((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},jf.prototype.getSouthWest=function(){return this._sw},jf.prototype.getNorthEast=function(){return this._ne},jf.prototype.getNorthWest=function(){return new sc(this.getWest(),this.getNorth())},jf.prototype.getSouthEast=function(){return new sc(this.getEast(),this.getSouth())},jf.prototype.getWest=function(){return this._sw.lng},jf.prototype.getSouth=function(){return this._sw.lat},jf.prototype.getEast=function(){return this._ne.lng},jf.prototype.getNorth=function(){return this._ne.lat},jf.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},jf.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},jf.prototype.isEmpty=function(){return!(this._sw&&this._ne)},jf.prototype.contains=function(y){var I=sc.convert(y),U=I.lng,J=I.lat,ne=this._sw.lat<=J&&J<=this._ne.lat,fe=this._sw.lng<=U&&U<=this._ne.lng;return this._sw.lng>this._ne.lng&&(fe=this._sw.lng>=U&&U>=this._ne.lng),ne&&fe},jf.convert=function(y){return!y||y instanceof jf?y:new jf(y)};var zQ=63710088e-1,sc=function(y,I){if(isNaN(y)||isNaN(I))throw new Error("Invalid LngLat object: ("+y+", "+I+")");if(this.lng=+y,this.lat=+I,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};sc.prototype.wrap=function(){return new sc(E(this.lng,-180,180),this.lat)},sc.prototype.toArray=function(){return[this.lng,this.lat]},sc.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},sc.prototype.distanceTo=function(y){var I=Math.PI/180,U=this.lat*I,J=y.lat*I,ne=Math.sin(U)*Math.sin(J)+Math.cos(U)*Math.cos(J)*Math.cos((y.lng-this.lng)*I),fe=zQ*Math.acos(Math.min(ne,1));return fe},sc.prototype.toBounds=function(y){y===void 0&&(y=0);var I=40075017,U=360*y/I,J=U/Math.cos(Math.PI/180*this.lat);return new jf(new sc(this.lng-J,this.lat-U),new sc(this.lng+J,this.lat+U))},sc.convert=function(y){if(y instanceof sc)return y;if(Array.isArray(y)&&(y.length===2||y.length===3))return new sc(Number(y[0]),Number(y[1]));if(!Array.isArray(y)&&typeof y=="object"&&y!==null)return new sc(Number("lng"in y?y.lng:y.lon),Number(y.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")};var FQ=2*Math.PI*zQ;function qQ(m){return FQ*Math.cos(m*Math.PI/180)}function OQ(m){return(180+m)/360}function BQ(m){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+m*Math.PI/360)))/360}function NQ(m,y){return m/qQ(y)}function MQe(m){return m*360-180}function lq(m){var y=180-m*360;return 360/Math.PI*Math.atan(Math.exp(y*Math.PI/180))-90}function EQe(m,y){return m*qQ(lq(y))}function kQe(m){return 1/Math.cos(m*Math.PI/180)}var ib=function(y,I,U){U===void 0&&(U=0),this.x=+y,this.y=+I,this.z=+U};ib.fromLngLat=function(y,I){I===void 0&&(I=0);var U=sc.convert(y);return new ib(OQ(U.lng),BQ(U.lat),NQ(I,U.lat))},ib.prototype.toLngLat=function(){return new sc(MQe(this.x),lq(this.y))},ib.prototype.toAltitude=function(){return EQe(this.z,this.y)},ib.prototype.meterInMercatorCoordinateUnits=function(){return 1/FQ*kQe(lq(this.y))};var nb=function(y,I,U){this.z=y,this.x=I,this.y=U,this.key=SS(0,y,y,I,U)};nb.prototype.equals=function(y){return this.z===y.z&&this.x===y.x&&this.y===y.y},nb.prototype.url=function(y,I){var U=SQe(this.x,this.y,this.z),J=CQe(this.z,this.x,this.y);return y[(this.x+this.y)%y.length].replace("{prefix}",(this.x%16).toString(16)+(this.y%16).toString(16)).replace("{z}",String(this.z)).replace("{x}",String(this.x)).replace("{y}",String(I==="tms"?Math.pow(2,this.z)-this.y-1:this.y)).replace("{quadkey}",J).replace("{bbox-epsg-3857}",U)},nb.prototype.getTilePoint=function(y){var I=Math.pow(2,this.z);return new u((y.x*I-this.x)*rn,(y.y*I-this.y)*rn)},nb.prototype.toString=function(){return this.z+"/"+this.x+"/"+this.y};var UQ=function(y,I){this.wrap=y,this.canonical=I,this.key=SS(y,I.z,I.z,I.x,I.y)},Wf=function(y,I,U,J,ne){this.overscaledZ=y,this.wrap=I,this.canonical=new nb(U,+J,+ne),this.key=SS(I,y,U,J,ne)};Wf.prototype.equals=function(y){return this.overscaledZ===y.overscaledZ&&this.wrap===y.wrap&&this.canonical.equals(y.canonical)},Wf.prototype.scaledTo=function(y){var I=this.canonical.z-y;return y>this.canonical.z?new Wf(y,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Wf(y,this.wrap,y,this.canonical.x>>I,this.canonical.y>>I)},Wf.prototype.calculateScaledKey=function(y,I){var U=this.canonical.z-y;return y>this.canonical.z?SS(this.wrap*+I,y,this.canonical.z,this.canonical.x,this.canonical.y):SS(this.wrap*+I,y,y,this.canonical.x>>U,this.canonical.y>>U)},Wf.prototype.isChildOf=function(y){if(y.wrap!==this.wrap)return!1;var I=this.canonical.z-y.canonical.z;return y.overscaledZ===0||y.overscaledZ>I&&y.canonical.y===this.canonical.y>>I},Wf.prototype.children=function(y){if(this.overscaledZ>=y)return[new Wf(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var I=this.canonical.z+1,U=this.canonical.x*2,J=this.canonical.y*2;return[new Wf(I,this.wrap,I,U,J),new Wf(I,this.wrap,I,U+1,J),new Wf(I,this.wrap,I,U,J+1),new Wf(I,this.wrap,I,U+1,J+1)]},Wf.prototype.isLessThan=function(y){return this.wrapy.wrap?!1:this.overscaledZy.overscaledZ?!1:this.canonical.xy.canonical.x?!1:this.canonical.y0;ne--)J=1<=this.dim+1||I<-1||I>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(I+1)*this.stride+(y+1)},dy.prototype._unpackMapbox=function(y,I,U){return(y*256*256+I*256+U)/10-1e4},dy.prototype._unpackTerrarium=function(y,I,U){return y*256+I+U/256-32768},dy.prototype.getPixels=function(){return new lh({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},dy.prototype.backfillBorder=function(y,I,U){if(this.dim!==y.dim)throw new Error("dem dimension mismatch");var J=I*this.dim,ne=I*this.dim+this.dim,fe=U*this.dim,Fe=U*this.dim+this.dim;switch(I){case-1:J=ne-1;break;case 1:ne=J+1;break}switch(U){case-1:fe=Fe-1;break;case 1:Fe=fe+1;break}for(var Qe=-I*this.dim,st=-U*this.dim,mt=fe;mt=0&&Xt[3]>=0&&Qe.insert(Fe,Xt[0],Xt[1],Xt[2],Xt[3])}},vy.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new pg.VectorTile(new La(this.rawTileData)).layers,this.sourceLayerCoder=new ZC(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},vy.prototype.query=function(y,I,U,J){var ne=this;this.loadVTLayers();for(var fe=y.params||{},Fe=rn/y.tileSize/y.scale,Qe=be(fe.filter),st=y.queryGeometry,mt=y.queryPadding*Fe,Xt=HQ(st),ur=this.grid.query(Xt.minX-mt,Xt.minY-mt,Xt.maxX+mt,Xt.maxY+mt),nr=HQ(y.cameraQueryGeometry),Lr=this.grid3D.query(nr.minX-mt,nr.minY-mt,nr.maxX+mt,nr.maxY+mt,function(An,ra,$n,Ba){return pp(y.cameraQueryGeometry,An-mt,ra-mt,$n+mt,Ba+mt)}),Yr=0,_i=Lr;Yr<_i.length;Yr+=1){var si=_i[Yr];ur.push(si)}ur.sort(PQe);for(var Hi={},Ei,Vi=function(An){var ra=ur[An];if(ra!==Ei){Ei=ra;var $n=ne.featureIndexArray.get(ra),Ba=null;ne.loadMatchingFeature(Hi,$n.bucketIndex,$n.sourceLayerIndex,$n.featureIndex,Qe,fe.layers,fe.availableImages,I,U,J,function(_a,Pa,qo){return Ba||(Ba=da(_a)),Pa.queryIntersectsFeature(st,_a,qo,Ba,ne.z,y.transform,Fe,y.pixelPosMatrix)})}},en=0;enJ)ne=!1;else if(!I)ne=!0;else if(this.expirationTime=Ha.maxzoom)&&Ha.visibility!=="none"){h(Sn,this.zoom,Zt);var oo=Si[Ha.id]=Ha.createBucket({index:gi.bucketLayerIDs.length,layers:Sn,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:ka,sourceID:this.source});oo.populate(jn,Mi,this.tileID.canonical),gi.bucketLayerIDs.push(Sn.map(function(hi){return hi.id}))}}}}var xn,_t,br,Hr,ti=i.mapObject(Mi.glyphDependencies,function(hi){return Object.keys(hi).map(Number)});Object.keys(ti).length?yr.send("getGlyphs",{uid:this.uid,stacks:ti},function(hi,Ji){xn||(xn=hi,_t=Ji,an.call(Zr))}):_t={};var zi=Object.keys(Mi.iconDependencies);zi.length?yr.send("getImages",{icons:zi,source:this.source,tileID:this.tileID,type:"icons"},function(hi,Ji){xn||(xn=hi,br=Ji,an.call(Zr))}):br={};var Yi=Object.keys(Mi.patternDependencies);Yi.length?yr.send("getImages",{icons:Yi,source:this.source,tileID:this.tileID,type:"patterns"},function(hi,Ji){xn||(xn=hi,Hr=Ji,an.call(Zr))}):Hr={},an.call(this);function an(){if(xn)return Fr(xn);if(_t&&br&&Hr){var hi=new c(_t),Ji=new i.ImageAtlas(br,Hr);for(var ua in Si){var Fn=Si[ua];Fn instanceof i.SymbolBucket?(h(Fn.layers,this.zoom,Zt),i.performSymbolLayout(Fn,_t,hi.positions,br,Ji.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):Fn.hasPattern&&(Fn instanceof i.LineBucket||Fn instanceof i.FillBucket||Fn instanceof i.FillExtrusionBucket)&&(h(Fn.layers,this.zoom,Zt),Fn.addFeatures(Mi,this.tileID.canonical,Ji.patternPositions))}this.status="done",Fr(null,{buckets:i.values(Si).filter(function(Sa){return!Sa.isEmpty()}),featureIndex:gi,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:hi.image,imageAtlas:Ji,glyphMap:this.returnDependencies?_t:null,iconMap:this.returnDependencies?br:null,glyphPositions:this.returnDependencies?hi.positions:null})}}};function h(It,ft,jt){for(var Zt=new i.EvaluationParameters(ft),yr=0,Fr=It;yr=0!=!!ft&&It.reverse()}var L=i.vectorTile.VectorTileFeature.prototype.toGeoJSON,_=function(ft){this._feature=ft,this.extent=i.EXTENT,this.type=ft.type,this.properties=ft.tags,"id"in ft&&!isNaN(ft.id)&&(this.id=parseInt(ft.id,10))};_.prototype.loadGeometry=function(){if(this._feature.type===1){for(var ft=[],jt=0,Zt=this._feature.geometry;jt>31}function ke(It,ft){for(var jt=It.loadGeometry(),Zt=It.type,yr=0,Fr=0,Zr=jt.length,Vr=0;Vr>1;Te(It,ft,Zr,Zt,yr,Fr%2),ie(It,ft,jt,Zt,Zr-1,Fr+1),ie(It,ft,jt,Zr+1,yr,Fr+1)}}function Te(It,ft,jt,Zt,yr,Fr){for(;yr>Zt;){if(yr-Zt>600){var Zr=yr-Zt+1,Vr=jt-Zt+1,gi=Math.log(Zr),Si=.5*Math.exp(2*gi/3),Mi=.5*Math.sqrt(gi*Si*(Zr-Si)/Zr)*(Vr-Zr/2<0?-1:1),Pi=Math.max(Zt,Math.floor(jt-Vr*Si/Zr+Mi)),Gi=Math.min(yr,Math.floor(jt+(Zr-Vr)*Si/Zr+Mi));Te(It,ft,jt,Pi,Gi,Fr)}var Ki=ft[2*jt+Fr],ka=Zt,jn=yr;for(Ee(It,ft,Zt,jt),ft[2*yr+Fr]>Ki&&Ee(It,ft,Zt,yr);kaKi;)jn--}ft[2*Zt+Fr]===Ki?Ee(It,ft,Zt,jn):(jn++,Ee(It,ft,jn,yr)),jn<=jt&&(Zt=jn+1),jt<=jn&&(yr=jn-1)}}function Ee(It,ft,jt,Zt){Ae(It,jt,Zt),Ae(ft,2*jt,2*Zt),Ae(ft,2*jt+1,2*Zt+1)}function Ae(It,ft,jt){var Zt=It[ft];It[ft]=It[jt],It[jt]=Zt}function ze(It,ft,jt,Zt,yr,Fr,Zr){for(var Vr=[0,It.length-1,0],gi=[],Si,Mi;Vr.length;){var Pi=Vr.pop(),Gi=Vr.pop(),Ki=Vr.pop();if(Gi-Ki<=Zr){for(var ka=Ki;ka<=Gi;ka++)Si=ft[2*ka],Mi=ft[2*ka+1],Si>=jt&&Si<=yr&&Mi>=Zt&&Mi<=Fr&&gi.push(It[ka]);continue}var jn=Math.floor((Ki+Gi)/2);Si=ft[2*jn],Mi=ft[2*jn+1],Si>=jt&&Si<=yr&&Mi>=Zt&&Mi<=Fr&&gi.push(It[jn]);var la=(Pi+1)%2;(Pi===0?jt<=Si:Zt<=Mi)&&(Vr.push(Ki),Vr.push(jn-1),Vr.push(la)),(Pi===0?yr>=Si:Fr>=Mi)&&(Vr.push(jn+1),Vr.push(Gi),Vr.push(la))}return gi}function Ce(It,ft,jt,Zt,yr,Fr){for(var Zr=[0,It.length-1,0],Vr=[],gi=yr*yr;Zr.length;){var Si=Zr.pop(),Mi=Zr.pop(),Pi=Zr.pop();if(Mi-Pi<=Fr){for(var Gi=Pi;Gi<=Mi;Gi++)me(ft[2*Gi],ft[2*Gi+1],jt,Zt)<=gi&&Vr.push(It[Gi]);continue}var Ki=Math.floor((Pi+Mi)/2),ka=ft[2*Ki],jn=ft[2*Ki+1];me(ka,jn,jt,Zt)<=gi&&Vr.push(It[Ki]);var la=(Si+1)%2;(Si===0?jt-yr<=ka:Zt-yr<=jn)&&(Zr.push(Pi),Zr.push(Ki-1),Zr.push(la)),(Si===0?jt+yr>=ka:Zt+yr>=jn)&&(Zr.push(Ki+1),Zr.push(Mi),Zr.push(la))}return Vr}function me(It,ft,jt,Zt){var yr=It-jt,Fr=ft-Zt;return yr*yr+Fr*Fr}var Re=function(It){return It[0]},ce=function(It){return It[1]},Ge=function(ft,jt,Zt,yr,Fr){jt===void 0&&(jt=Re),Zt===void 0&&(Zt=ce),yr===void 0&&(yr=64),Fr===void 0&&(Fr=Float64Array),this.nodeSize=yr,this.points=ft;for(var Zr=ft.length<65536?Uint16Array:Uint32Array,Vr=this.ids=new Zr(ft.length),gi=this.coords=new Fr(ft.length*2),Si=0;Si=yr;Mi--){var Pi=+Date.now();gi=this._cluster(gi,Mi),this.trees[Mi]=new Ge(gi,Ke,xt,Zr,Float32Array),Zt&&console.log("z%d: %d clusters in %dms",Mi,gi.length,+Date.now()-Pi)}return Zt&&console.timeEnd("total time"),this},ct.prototype.getClusters=function(ft,jt){var Zt=((ft[0]+180)%360+360)%360-180,yr=Math.max(-90,Math.min(90,ft[1])),Fr=ft[2]===180?180:((ft[2]+180)%360+360)%360-180,Zr=Math.max(-90,Math.min(90,ft[3]));if(ft[2]-ft[0]>=360)Zt=-180,Fr=180;else if(Zt>Fr){var Vr=this.getClusters([Zt,yr,180,Zr],jt),gi=this.getClusters([-180,yr,Fr,Zr],jt);return Vr.concat(gi)}for(var Si=this.trees[this._limitZoom(jt)],Mi=Si.range(kt(Zt),Ct(Zr),kt(Fr),Ct(yr)),Pi=[],Gi=0,Ki=Mi;Gijt&&(jn+=jo.numPoints||1)}if(jn>=gi){for(var oa=Pi.x*ka,Sn=Pi.y*ka,Ha=Vr&&ka>1?this._map(Pi,!0):null,oo=(Mi<<5)+(jt+1)+this.points.length,xn=0,_t=Ki;xn<_t.length;xn+=1){var br=_t[xn],Hr=Gi.points[br];if(!(Hr.zoom<=jt)){Hr.zoom=jt;var ti=Hr.numPoints||1;oa+=Hr.x*ti,Sn+=Hr.y*ti,Hr.parentId=oo,Vr&&(Ha||(Ha=this._map(Pi,!0)),Vr(Ha,this._map(Hr)))}}Pi.parentId=oo,Zt.push(qt(oa/jn,Sn/jn,oo,jn,Ha))}else if(Zt.push(Pi),jn>1)for(var zi=0,Yi=Ki;zi>5},ct.prototype._getOriginZoom=function(ft){return(ft-this.points.length)%32},ct.prototype._map=function(ft,jt){if(ft.numPoints)return jt?er({},ft.properties):ft.properties;var Zt=this.points[ft.index].properties,yr=this.options.map(Zt);return jt&&yr===Zt?er({},yr):yr};function qt(It,ft,jt,Zt,yr){return{x:It,y:ft,zoom:1/0,id:jt,parentId:-1,numPoints:Zt,properties:yr}}function rt(It,ft){var jt=It.geometry.coordinates,Zt=jt[0],yr=jt[1];return{x:kt(Zt),y:Ct(yr),zoom:1/0,index:ft,parentId:-1}}function ot(It){return{type:"Feature",id:It.id,properties:Rt(It),geometry:{type:"Point",coordinates:[Yt(It.x),xr(It.y)]}}}function Rt(It){var ft=It.numPoints,jt=ft>=1e4?Math.round(ft/1e3)+"k":ft>=1e3?Math.round(ft/100)/10+"k":ft;return er(er({},It.properties),{cluster:!0,cluster_id:It.id,point_count:ft,point_count_abbreviated:jt})}function kt(It){return It/360+.5}function Ct(It){var ft=Math.sin(It*Math.PI/180),jt=.5-.25*Math.log((1+ft)/(1-ft))/Math.PI;return jt<0?0:jt>1?1:jt}function Yt(It){return(It-.5)*360}function xr(It){var ft=(180-It*360)*Math.PI/180;return 360*Math.atan(Math.exp(ft))/Math.PI-90}function er(It,ft){for(var jt in ft)It[jt]=ft[jt];return It}function Ke(It){return It.x}function xt(It){return It.y}function bt(It,ft,jt,Zt){for(var yr=Zt,Fr=jt-ft>>1,Zr=jt-ft,Vr,gi=It[ft],Si=It[ft+1],Mi=It[jt],Pi=It[jt+1],Gi=ft+3;Giyr)Vr=Gi,yr=Ki;else if(Ki===yr){var ka=Math.abs(Gi-Fr);kaZt&&(Vr-ft>3&&bt(It,ft,Vr,Zt),It[Vr+2]=yr,jt-Vr>3&&bt(It,Vr,jt,Zt))}function Lt(It,ft,jt,Zt,yr,Fr){var Zr=yr-jt,Vr=Fr-Zt;if(Zr!==0||Vr!==0){var gi=((It-jt)*Zr+(ft-Zt)*Vr)/(Zr*Zr+Vr*Vr);gi>1?(jt=yr,Zt=Fr):gi>0&&(jt+=Zr*gi,Zt+=Vr*gi)}return Zr=It-jt,Vr=ft-Zt,Zr*Zr+Vr*Vr}function St(It,ft,jt,Zt){var yr={id:typeof It=="undefined"?null:It,type:ft,geometry:jt,tags:Zt,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return Et(yr),yr}function Et(It){var ft=It.geometry,jt=It.type;if(jt==="Point"||jt==="MultiPoint"||jt==="LineString")dt(It,ft);else if(jt==="Polygon"||jt==="MultiLineString")for(var Zt=0;Zt0&&(Zt?Zr+=(yr*Si-gi*Fr)/2:Zr+=Math.sqrt(Math.pow(gi-yr,2)+Math.pow(Si-Fr,2))),yr=gi,Fr=Si}var Mi=ft.length-3;ft[2]=1,bt(ft,0,Mi,jt),ft[Mi+2]=1,ft.size=Math.abs(Zr),ft.start=0,ft.end=ft.size}function Br(It,ft,jt,Zt){for(var yr=0;yr1?1:jt}function ut(It,ft,jt,Zt,yr,Fr,Zr,Vr){if(jt/=ft,Zt/=ft,Fr>=jt&&Zr=Zt)return null;for(var gi=[],Si=0;Si=jt&&ka=Zt)continue;var jn=[];if(Gi==="Point"||Gi==="MultiPoint")Ne(Pi,jn,jt,Zt,yr);else if(Gi==="LineString")Ye(Pi,jn,jt,Zt,yr,!1,Vr.lineMetrics);else if(Gi==="MultiLineString")Xe(Pi,jn,jt,Zt,yr,!1);else if(Gi==="Polygon")Xe(Pi,jn,jt,Zt,yr,!0);else if(Gi==="MultiPolygon")for(var la=0;la=jt&&Zr<=Zt&&(ft.push(It[Fr]),ft.push(It[Fr+1]),ft.push(It[Fr+2]))}}function Ye(It,ft,jt,Zt,yr,Fr,Zr){for(var Vr=Ve(It),gi=yr===0?Le:xe,Si=It.start,Mi,Pi,Gi=0;Gijt&&(Pi=gi(Vr,Ki,ka,la,Fa,jt),Zr&&(Vr.start=Si+Mi*Pi)):Ra>Zt?jo=jt&&(Pi=gi(Vr,Ki,ka,la,Fa,jt),oa=!0),jo>Zt&&Ra<=Zt&&(Pi=gi(Vr,Ki,ka,la,Fa,Zt),oa=!0),!Fr&&oa&&(Zr&&(Vr.end=Si+Mi*Pi),ft.push(Vr),Vr=Ve(It)),Zr&&(Si+=Mi)}var Sn=It.length-3;Ki=It[Sn],ka=It[Sn+1],jn=It[Sn+2],Ra=yr===0?Ki:ka,Ra>=jt&&Ra<=Zt&&ht(Vr,Ki,ka,jn),Sn=Vr.length-3,Fr&&Sn>=3&&(Vr[Sn]!==Vr[0]||Vr[Sn+1]!==Vr[1])&&ht(Vr,Vr[0],Vr[1],Vr[2]),Vr.length&&ft.push(Vr)}function Ve(It){var ft=[];return ft.size=It.size,ft.start=It.start,ft.end=It.end,ft}function Xe(It,ft,jt,Zt,yr,Fr){for(var Zr=0;ZrZr.maxX&&(Zr.maxX=Mi),Pi>Zr.maxY&&(Zr.maxY=Pi)}return Zr}function ai(It,ft,jt,Zt){var yr=ft.geometry,Fr=ft.type,Zr=[];if(Fr==="Point"||Fr==="MultiPoint")for(var Vr=0;Vr0&&ft.size<(yr?Zr:Zt)){jt.numPoints+=ft.length/3;return}for(var Vr=[],gi=0;giZr)&&(jt.numSimplified++,Vr.push(ft[gi]),Vr.push(ft[gi+1])),jt.numPoints++;yr&&ri(Vr,Fr),It.push(Vr)}function ri(It,ft){for(var jt=0,Zt=0,yr=It.length,Fr=yr-2;Zt0===ft)for(Zt=0,yr=It.length;Zt24)throw new Error("maxZoom should be in the 0-24 range");if(ft.promoteId&&ft.generateId)throw new Error("promoteId and generateId cannot be used together.");var Zt=Ht(It,ft);this.tiles={},this.tileCoords=[],jt&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",ft.indexMaxZoom,ft.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),Zt=Se(Zt,ft),Zt.length&&this.splitTile(Zt,0,0,0),jt&&(Zt.length&&console.log("features: %d, points: %d",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd("generate tiles"),console.log("tiles generated:",this.total,JSON.stringify(this.stats)))}nn.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},nn.prototype.splitTile=function(It,ft,jt,Zt,yr,Fr,Zr){for(var Vr=[It,ft,jt,Zt],gi=this.options,Si=gi.debug;Vr.length;){Zt=Vr.pop(),jt=Vr.pop(),ft=Vr.pop(),It=Vr.pop();var Mi=1<1&&console.time("creation"),Gi=this.tiles[Pi]=Qr(It,ft,jt,Zt,gi),this.tileCoords.push({z:ft,x:jt,y:Zt}),Si)){Si>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",ft,jt,Zt,Gi.numFeatures,Gi.numPoints,Gi.numSimplified),console.timeEnd("creation"));var Ki="z"+ft;this.stats[Ki]=(this.stats[Ki]||0)+1,this.total++}if(Gi.source=It,yr){if(ft===gi.maxZoom||ft===yr)continue;var ka=1<1&&console.time("clipping");var jn=.5*gi.buffer/gi.extent,la=.5-jn,Fa=.5+jn,Ra=1+jn,jo,oa,Sn,Ha,oo,xn;jo=oa=Sn=Ha=null,oo=ut(It,Mi,jt-jn,jt+Fa,0,Gi.minX,Gi.maxX,gi),xn=ut(It,Mi,jt+la,jt+Ra,0,Gi.minX,Gi.maxX,gi),It=null,oo&&(jo=ut(oo,Mi,Zt-jn,Zt+Fa,1,Gi.minY,Gi.maxY,gi),oa=ut(oo,Mi,Zt+la,Zt+Ra,1,Gi.minY,Gi.maxY,gi),oo=null),xn&&(Sn=ut(xn,Mi,Zt-jn,Zt+Fa,1,Gi.minY,Gi.maxY,gi),Ha=ut(xn,Mi,Zt+la,Zt+Ra,1,Gi.minY,Gi.maxY,gi),xn=null),Si>1&&console.timeEnd("clipping"),Vr.push(jo||[],ft+1,jt*2,Zt*2),Vr.push(oa||[],ft+1,jt*2,Zt*2+1),Vr.push(Sn||[],ft+1,jt*2+1,Zt*2),Vr.push(Ha||[],ft+1,jt*2+1,Zt*2+1)}}},nn.prototype.getTile=function(It,ft,jt){var Zt=this.options,yr=Zt.extent,Fr=Zt.debug;if(It<0||It>24)return null;var Zr=1<1&&console.log("drilling down to z%d-%d-%d",It,ft,jt);for(var gi=It,Si=ft,Mi=jt,Pi;!Pi&&gi>0;)gi--,Si=Math.floor(Si/2),Mi=Math.floor(Mi/2),Pi=this.tiles[Wi(gi,Si,Mi)];return!Pi||!Pi.source?null:(Fr>1&&console.log("found parent tile z%d-%d-%d",gi,Si,Mi),Fr>1&&console.time("drilling down"),this.splitTile(Pi.source,gi,Si,Mi,It,ft,jt),Fr>1&&console.timeEnd("drilling down"),this.tiles[Vr]?Vt(this.tiles[Vr],yr):null)};function Wi(It,ft,jt){return((1<=0?0:Y.button},o.remove=function(Y){Y.parentNode&&Y.parentNode.removeChild(Y)};function x(Y,z,K){var O,$,pe,de=i.browser.devicePixelRatio>1?"@2x":"",Ie=i.getJSON(z.transformRequest(z.normalizeSpriteURL(Y,de,".json"),i.ResourceType.SpriteJSON),function(Kt,ir){Ie=null,pe||(pe=Kt,O=ir,pt())}),$e=i.getImage(z.transformRequest(z.normalizeSpriteURL(Y,de,".png"),i.ResourceType.SpriteImage),function(Kt,ir){$e=null,pe||(pe=Kt,$=ir,pt())});function pt(){if(pe)K(pe);else if(O&&$){var Kt=i.browser.getImageData($),ir={};for(var Jt in O){var vt=O[Jt],Pt=vt.width,Wt=vt.height,rr=vt.x,dr=vt.y,pr=vt.sdf,kr=vt.pixelRatio,Ar=vt.stretchX,gr=vt.stretchY,Cr=vt.content,cr=new i.RGBAImage({width:Pt,height:Wt});i.RGBAImage.copy(Kt,cr,{x:rr,y:dr},{x:0,y:0},{width:Pt,height:Wt}),ir[Jt]={data:cr,pixelRatio:kr,sdf:pr,stretchX:Ar,stretchY:gr,content:Cr}}K(null,ir)}}return{cancel:function(){Ie&&(Ie.cancel(),Ie=null),$e&&($e.cancel(),$e=null)}}}function b(Y){var z=Y.userImage;if(z&&z.render){var K=z.render();if(K)return Y.data.replace(new Uint8Array(z.data.buffer)),!0}return!1}var g=1,E=function(Y){function z(){Y.call(this),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new i.RGBAImage({width:1,height:1}),this.dirty=!0}return Y&&(z.__proto__=Y),z.prototype=Object.create(Y&&Y.prototype),z.prototype.constructor=z,z.prototype.isLoaded=function(){return this.loaded},z.prototype.setLoaded=function(O){if(this.loaded!==O&&(this.loaded=O,O)){for(var $=0,pe=this.requestors;$=0?1.2:1))}C.prototype.draw=function(Y){this.ctx.clearRect(0,0,this.size,this.size),this.ctx.fillText(Y,this.buffer,this.middle);for(var z=this.ctx.getImageData(0,0,this.size,this.size),K=new Uint8ClampedArray(this.size*this.size),O=0;O65535){Kt(new Error("glyphs > 65535 not supported"));return}if(vt.ranges[Wt]){Kt(null,{stack:ir,id:Jt,glyph:Pt});return}var rr=vt.requests[Wt];rr||(rr=vt.requests[Wt]=[],P.loadGlyphRange(ir,Wt,O.url,O.requestManager,function(dr,pr){if(pr){for(var kr in pr)O._doesCharSupportLocalGlyph(+kr)||(vt.glyphs[+kr]=pr[+kr]);vt.ranges[Wt]=!0}for(var Ar=0,gr=rr;Ar1&&(pt=z[++$e]);var ir=Math.abs(Kt-pt.left),Jt=Math.abs(Kt-pt.right),vt=Math.min(ir,Jt),Pt=void 0,Wt=pe/O*($+1);if(pt.isDash){var rr=$-Math.abs(Wt);Pt=Math.sqrt(vt*vt+rr*rr)}else Pt=$-Math.sqrt(vt*vt+Wt*Wt);this.data[Ie+Kt]=Math.max(0,Math.min(255,Pt+128))}},H.prototype.addRegularDash=function(z){for(var K=z.length-1;K>=0;--K){var O=z[K],$=z[K+1];O.zeroLength?z.splice(K,1):$&&$.isDash===O.isDash&&($.left=O.left,z.splice(K,1))}var pe=z[0],de=z[z.length-1];pe.isDash===de.isDash&&(pe.left=de.left-this.width,de.right=pe.right+this.width);for(var Ie=this.width*this.nextRow,$e=0,pt=z[$e],Kt=0;Kt1&&(pt=z[++$e]);var ir=Math.abs(Kt-pt.left),Jt=Math.abs(Kt-pt.right),vt=Math.min(ir,Jt),Pt=pt.isDash?vt:-vt;this.data[Ie+Kt]=Math.max(0,Math.min(255,Pt+128))}},H.prototype.addDash=function(z,K){var O=K?7:0,$=2*O+1;if(this.nextRow+$>this.height)return i.warnOnce("LineAtlas out of space"),null;for(var pe=0,de=0;de=O.minX&&z.x=O.minY&&z.y0&&(Kt[new i.OverscaledTileID(O.overscaledZ,Ie,$.z,de,$.y-1).key]={backfilled:!1},Kt[new i.OverscaledTileID(O.overscaledZ,O.wrap,$.z,$.x,$.y-1).key]={backfilled:!1},Kt[new i.OverscaledTileID(O.overscaledZ,pt,$.z,$e,$.y-1).key]={backfilled:!1}),$.y+10&&(pe.resourceTiming=O._resourceTiming,O._resourceTiming=[]),O.fire(new i.Event("data",pe))})},z.prototype.onAdd=function(O){this.map=O,this.load()},z.prototype.setData=function(O){var $=this;return this._data=O,this.fire(new i.Event("dataloading",{dataType:"source"})),this._updateWorkerData(function(pe){if(pe){$.fire(new i.ErrorEvent(pe));return}var de={dataType:"source",sourceDataType:"content"};$._collectResourceTiming&&$._resourceTiming&&$._resourceTiming.length>0&&(de.resourceTiming=$._resourceTiming,$._resourceTiming=[]),$.fire(new i.Event("data",de))}),this},z.prototype.getClusterExpansionZoom=function(O,$){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:O,source:this.id},$),this},z.prototype.getClusterChildren=function(O,$){return this.actor.send("geojson.getClusterChildren",{clusterId:O,source:this.id},$),this},z.prototype.getClusterLeaves=function(O,$,pe,de){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:O,limit:$,offset:pe},de),this},z.prototype._updateWorkerData=function(O){var $=this;this._loaded=!1;var pe=i.extend({},this.workerOptions),de=this._data;typeof de=="string"?(pe.request=this.map._requestManager.transformRequest(i.browser.resolveURL(de),i.ResourceType.Source),pe.request.collectResourceTiming=this._collectResourceTiming):pe.data=JSON.stringify(de),this.actor.send(this.type+".loadData",pe,function(Ie,$e){$._removed||$e&&$e.abandoned||($._loaded=!0,$e&&$e.resourceTiming&&$e.resourceTiming[$.id]&&($._resourceTiming=$e.resourceTiming[$.id].slice(0)),$.actor.send($.type+".coalesce",{source:pe.source},null),O(Ie))})},z.prototype.loaded=function(){return this._loaded},z.prototype.loadTile=function(O,$){var pe=this,de=O.actor?"reloadTile":"loadTile";O.actor=this.actor;var Ie={type:this.type,uid:O.uid,tileID:O.tileID,zoom:O.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:i.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};O.request=this.actor.send(de,Ie,function($e,pt){return delete O.request,O.unloadVectorData(),O.aborted?$(null):$e?$($e):(O.loadVectorData(pt,pe.map.painter,de==="reloadTile"),$(null))})},z.prototype.abortTile=function(O){O.request&&(O.request.cancel(),delete O.request),O.aborted=!0},z.prototype.unloadTile=function(O){O.unloadVectorData(),this.actor.send("removeTile",{uid:O.uid,type:this.type,source:this.id})},z.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id})},z.prototype.serialize=function(){return i.extend({},this._options,{type:this.type,data:this._data})},z.prototype.hasTransition=function(){return!1},z}(i.Evented),Me=i.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),ke=function(Y){function z(K,O,$,pe){Y.call(this),this.id=K,this.dispatcher=$,this.coordinates=O.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(pe),this.options=O}return Y&&(z.__proto__=Y),z.prototype=Object.create(Y&&Y.prototype),z.prototype.constructor=z,z.prototype.load=function(O,$){var pe=this;this._loaded=!1,this.fire(new i.Event("dataloading",{dataType:"source"})),this.url=this.options.url,i.getImage(this.map._requestManager.transformRequest(this.url,i.ResourceType.Image),function(de,Ie){pe._loaded=!0,de?pe.fire(new i.ErrorEvent(de)):Ie&&(pe.image=Ie,O&&(pe.coordinates=O),$&&$(),pe._finishLoading())})},z.prototype.loaded=function(){return this._loaded},z.prototype.updateImage=function(O){var $=this;return!this.image||!O.url?this:(this.options.url=O.url,this.load(O.coordinates,function(){$.texture=null}),this)},z.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"metadata"})))},z.prototype.onAdd=function(O){this.map=O,this.load()},z.prototype.setCoordinates=function(O){var $=this;this.coordinates=O;var pe=O.map(i.MercatorCoordinate.fromLngLat);this.tileID=ge(pe),this.minzoom=this.maxzoom=this.tileID.z;var de=pe.map(function(Ie){return $.tileID.getTilePoint(Ie)._round()});return this._boundsArray=new i.StructArrayLayout4i8,this._boundsArray.emplaceBack(de[0].x,de[0].y,0,0),this._boundsArray.emplaceBack(de[1].x,de[1].y,i.EXTENT,0),this._boundsArray.emplaceBack(de[3].x,de[3].y,0,i.EXTENT),this._boundsArray.emplaceBack(de[2].x,de[2].y,i.EXTENT,i.EXTENT),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new i.Event("data",{dataType:"source",sourceDataType:"content"})),this},z.prototype.prepare=function(){if(!(Object.keys(this.tiles).length===0||!this.image)){var O=this.map.painter.context,$=O.gl;this.boundsBuffer||(this.boundsBuffer=O.createVertexBuffer(this._boundsArray,Me.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.texture||(this.texture=new i.Texture(O,this.image,$.RGBA),this.texture.bind($.LINEAR,$.CLAMP_TO_EDGE));for(var pe in this.tiles){var de=this.tiles[pe];de.state!=="loaded"&&(de.state="loaded",de.texture=this.texture)}}},z.prototype.loadTile=function(O,$){this.tileID&&this.tileID.equals(O.tileID.canonical)?(this.tiles[String(O.tileID.wrap)]=O,O.buckets={},$(null)):(O.state="errored",$(null))},z.prototype.serialize=function(){return{type:"image",url:this.options.url,coordinates:this.coordinates}},z.prototype.hasTransition=function(){return!1},z}(i.Evented);function ge(Y){for(var z=1/0,K=1/0,O=-1/0,$=-1/0,pe=0,de=Y;pe$.end(0)?this.fire(new i.ErrorEvent(new i.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+$.start(0)+" and "+$.end(0)+"-second mark."))):this.video.currentTime=O}},z.prototype.getVideo=function(){return this.video},z.prototype.onAdd=function(O){this.map||(this.map=O,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},z.prototype.prepare=function(){if(!(Object.keys(this.tiles).length===0||this.video.readyState<2)){var O=this.map.painter.context,$=O.gl;this.boundsBuffer||(this.boundsBuffer=O.createVertexBuffer(this._boundsArray,Me.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind($.LINEAR,$.CLAMP_TO_EDGE),$.texSubImage2D($.TEXTURE_2D,0,0,0,$.RGBA,$.UNSIGNED_BYTE,this.video)):(this.texture=new i.Texture(O,this.video,$.RGBA),this.texture.bind($.LINEAR,$.CLAMP_TO_EDGE));for(var pe in this.tiles){var de=this.tiles[pe];de.state!=="loaded"&&(de.state="loaded",de.texture=this.texture)}}},z.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},z.prototype.hasTransition=function(){return this.video&&!this.video.paused},z}(ke),Te=function(Y){function z(K,O,$,pe){Y.call(this,K,O,$,pe),O.coordinates?(!Array.isArray(O.coordinates)||O.coordinates.length!==4||O.coordinates.some(function(de){return!Array.isArray(de)||de.length!==2||de.some(function(Ie){return typeof Ie!="number"})}))&&this.fire(new i.ErrorEvent(new i.ValidationError("sources."+K,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new i.ErrorEvent(new i.ValidationError("sources."+K,null,'missing required property "coordinates"'))),O.animate&&typeof O.animate!="boolean"&&this.fire(new i.ErrorEvent(new i.ValidationError("sources."+K,null,'optional "animate" property must be a boolean value'))),O.canvas?typeof O.canvas!="string"&&!(O.canvas instanceof i.window.HTMLCanvasElement)&&this.fire(new i.ErrorEvent(new i.ValidationError("sources."+K,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new i.ErrorEvent(new i.ValidationError("sources."+K,null,'missing required property "canvas"'))),this.options=O,this.animate=O.animate!==void 0?O.animate:!0}return Y&&(z.__proto__=Y),z.prototype=Object.create(Y&&Y.prototype),z.prototype.constructor=z,z.prototype.load=function(){if(this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof i.window.HTMLCanvasElement?this.options.canvas:i.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()){this.fire(new i.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero.")));return}this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading()},z.prototype.getCanvas=function(){return this.canvas},z.prototype.onAdd=function(O){this.map=O,this.load(),this.canvas&&this.animate&&this.play()},z.prototype.onRemove=function(){this.pause()},z.prototype.prepare=function(){var O=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,O=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,O=!0),!this._hasInvalidDimensions()&&Object.keys(this.tiles).length!==0){var $=this.map.painter.context,pe=$.gl;this.boundsBuffer||(this.boundsBuffer=$.createVertexBuffer(this._boundsArray,Me.members)),this.boundsSegments||(this.boundsSegments=i.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(O||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new i.Texture($,this.canvas,pe.RGBA,{premultiply:!0});for(var de in this.tiles){var Ie=this.tiles[de];Ie.state!=="loaded"&&(Ie.state="loaded",Ie.texture=this.texture)}}},z.prototype.serialize=function(){return{type:"canvas",coordinates:this.coordinates}},z.prototype.hasTransition=function(){return this._playing},z.prototype._hasInvalidDimensions=function(){for(var O=0,$=[this.canvas.width,this.canvas.height];O<$.length;O+=1){var pe=$[O];if(isNaN(pe)||pe<=0)return!0}return!1},z}(ke),Ee={vector:W,raster:re,"raster-dem":ae,geojson:_e,video:ie,image:ke,canvas:Te},Ae=function(Y,z,K,O){var $=new Ee[z.type](Y,z,K,O);if($.id!==Y)throw new Error("Expected Source id to be "+Y+" instead of "+$.id);return i.bindAll(["load","abort","unload","serialize","prepare"],$),$},ze=function(Y){return Ee[Y]},Ce=function(Y,z){Ee[Y]=z};function me(Y,z){var K=i.identity([]);return i.translate(K,K,[1,1,0]),i.scale(K,K,[Y.width*.5,Y.height*.5,1]),i.multiply(K,K,Y.calculatePosMatrix(z.toUnwrapped()))}function Re(Y,z,K){if(Y)for(var O=0,$=Y;O<$.length;O+=1){var pe=$[O],de=z[pe];if(de&&de.source===K&&de.type==="fill-extrusion")return!0}else for(var Ie in z){var $e=z[Ie];if($e.source===K&&$e.type==="fill-extrusion")return!0}return!1}function ce(Y,z,K,O,$,pe){var de=Re($&&$.layers,z,Y.id),Ie=pe.maxPitchScaleFactor(),$e=Y.tilesIn(O,Ie,de);$e.sort(ct);for(var pt=[],Kt=0,ir=$e;Ktthis.max){var Ie=this._getAndRemoveByKey(this.order[0]);Ie&&this.onRemove(Ie)}return this},rt.prototype.has=function(z){return z.wrapped().key in this.data},rt.prototype.getAndRemove=function(z){return this.has(z)?this._getAndRemoveByKey(z.wrapped().key):null},rt.prototype._getAndRemoveByKey=function(z){var K=this.data[z].shift();return K.timeout&&clearTimeout(K.timeout),this.data[z].length===0&&delete this.data[z],this.order.splice(this.order.indexOf(z),1),K.value},rt.prototype.getByKey=function(z){var K=this.data[z];return K?K[0].value:null},rt.prototype.get=function(z){if(!this.has(z))return null;var K=this.data[z.wrapped().key][0];return K.value},rt.prototype.remove=function(z,K){if(!this.has(z))return this;var O=z.wrapped().key,$=K===void 0?0:this.data[O].indexOf(K),pe=this.data[O][$];return this.data[O].splice($,1),pe.timeout&&clearTimeout(pe.timeout),this.data[O].length===0&&delete this.data[O],this.onRemove(pe.value),this.order.splice(this.order.indexOf(O),1),this},rt.prototype.setMaxSize=function(z){for(this.max=z;this.order.length>this.max;){var K=this._getAndRemoveByKey(this.order[0]);K&&this.onRemove(K)}return this},rt.prototype.filter=function(z){var K=[];for(var O in this.data)for(var $=0,pe=this.data[O];$1||(Math.abs(ir)>1&&(Math.abs(ir+vt)===1?ir+=vt:Math.abs(ir-vt)===1&&(ir-=vt)),!(!Kt.dem||!pt.dem)&&(pt.dem.backfillBorder(Kt.dem,ir,Jt),pt.neighboringTiles&&pt.neighboringTiles[Pt]&&(pt.neighboringTiles[Pt].backfilled=!0)))}},z.prototype.getTile=function(O){return this.getTileByID(O.key)},z.prototype.getTileByID=function(O){return this._tiles[O]},z.prototype._retainLoadedChildren=function(O,$,pe,de){for(var Ie in this._tiles){var $e=this._tiles[Ie];if(!(de[Ie]||!$e.hasData()||$e.tileID.overscaledZ<=$||$e.tileID.overscaledZ>pe)){for(var pt=$e.tileID;$e&&$e.tileID.overscaledZ>$+1;){var Kt=$e.tileID.scaledTo($e.tileID.overscaledZ-1);$e=this._tiles[Kt.key],$e&&$e.hasData()&&(pt=Kt)}for(var ir=pt;ir.overscaledZ>$;)if(ir=ir.scaledTo(ir.overscaledZ-1),O[ir.key]){de[pt.key]=pt;break}}}},z.prototype.findLoadedParent=function(O,$){if(O.key in this._loadedParentTiles){var pe=this._loadedParentTiles[O.key];return pe&&pe.tileID.overscaledZ>=$?pe:null}for(var de=O.overscaledZ-1;de>=$;de--){var Ie=O.scaledTo(de),$e=this._getLoadedTile(Ie);if($e)return $e}},z.prototype._getLoadedTile=function(O){var $=this._tiles[O.key];if($&&$.hasData())return $;var pe=this._cache.getByKey(O.wrapped().key);return pe},z.prototype.updateCacheSize=function(O){var $=Math.ceil(O.width/this._source.tileSize)+1,pe=Math.ceil(O.height/this._source.tileSize)+1,de=$*pe,Ie=5,$e=Math.floor(de*Ie),pt=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,$e):$e;this._cache.setMaxSize(pt)},z.prototype.handleWrapJump=function(O){var $=this._prevLng===void 0?O:this._prevLng,pe=O-$,de=pe/360,Ie=Math.round(de);if(this._prevLng=O,Ie){var $e={};for(var pt in this._tiles){var Kt=this._tiles[pt];Kt.tileID=Kt.tileID.unwrapTo(Kt.tileID.wrap+Ie),$e[Kt.tileID.key]=Kt}this._tiles=$e;for(var ir in this._timers)clearTimeout(this._timers[ir]),delete this._timers[ir];for(var Jt in this._tiles){var vt=this._tiles[Jt];this._setTileReloadTimer(Jt,vt)}}},z.prototype.update=function(O){var $=this;if(this.transform=O,!(!this._sourceLoaded||this._paused)){this.updateCacheSize(O),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={};var pe;this.used?this._source.tileID?pe=O.getVisibleUnwrappedCoordinates(this._source.tileID).map(function(yi){return new i.OverscaledTileID(yi.canonical.z,yi.wrap,yi.canonical.z,yi.canonical.x,yi.canonical.y)}):(pe=O.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(pe=pe.filter(function(yi){return $._source.hasTile(yi)}))):pe=[];var de=O.coveringZoomLevel(this._source),Ie=Math.max(de-z.maxOverzooming,this._source.minzoom),$e=Math.max(de+z.maxUnderzooming,this._source.minzoom),pt=this._updateRetainedTiles(pe,de);if(gi(this._source.type)){for(var Kt={},ir={},Jt=Object.keys(pt),vt=0,Pt=Jt;vtthis._source.maxzoom){var pr=rr.children(this._source.maxzoom)[0],kr=this.getTile(pr);if(kr&&kr.hasData()){pe[pr.key]=pr;continue}}else{var Ar=rr.children(this._source.maxzoom);if(pe[Ar[0].key]&&pe[Ar[1].key]&&pe[Ar[2].key]&&pe[Ar[3].key])continue}for(var gr=dr.wasRequested(),Cr=rr.overscaledZ-1;Cr>=Ie;--Cr){var cr=rr.scaledTo(Cr);if(de[cr.key]||(de[cr.key]=!0,dr=this.getTile(cr),!dr&&gr&&(dr=this._addTile(cr)),dr&&(pe[cr.key]=cr,gr=dr.wasRequested(),dr.hasData())))break}}}return pe},z.prototype._updateLoadedParentTileCache=function(){this._loadedParentTiles={};for(var O in this._tiles){for(var $=[],pe=void 0,de=this._tiles[O].tileID;de.overscaledZ>0;){if(de.key in this._loadedParentTiles){pe=this._loadedParentTiles[de.key];break}$.push(de.key);var Ie=de.scaledTo(de.overscaledZ-1);if(pe=this._getLoadedTile(Ie),pe)break;de=Ie}for(var $e=0,pt=$;$e0)&&($.hasData()&&$.state!=="reloading"?this._cache.add($.tileID,$,$.getExpiryTimeout()):($.aborted=!0,this._abortTile($),this._unloadTile($))))},z.prototype.clearTiles=function(){this._shouldReloadOnResume=!1,this._paused=!1;for(var O in this._tiles)this._removeTile(O);this._cache.reset()},z.prototype.tilesIn=function(O,$,pe){var de=this,Ie=[],$e=this.transform;if(!$e)return Ie;for(var pt=pe?$e.getCameraQueryGeometry(O):O,Kt=O.map(function(Cr){return $e.pointCoordinate(Cr)}),ir=pt.map(function(Cr){return $e.pointCoordinate(Cr)}),Jt=this.getIds(),vt=1/0,Pt=1/0,Wt=-1/0,rr=-1/0,dr=0,pr=ir;dr=0&&tn[1].y+yi>=0){var Ri=Kt.map(function(Qn){return Gr.getTilePoint(Qn)}),ln=ir.map(function(Qn){return Gr.getTilePoint(Qn)});Ie.push({tile:cr,tileID:Gr,queryGeometry:Ri,cameraQueryGeometry:ln,scale:ei})}}},gr=0;gr=i.browser.now())return!0}return!1},z.prototype.setFeatureState=function(O,$,pe){O=O||"_geojsonTileLayer",this._state.updateState(O,$,pe)},z.prototype.removeFeatureState=function(O,$,pe){O=O||"_geojsonTileLayer",this._state.removeFeatureState(O,$,pe)},z.prototype.getFeatureState=function(O,$){return O=O||"_geojsonTileLayer",this._state.getState(O,$)},z.prototype.setDependencies=function(O,$,pe){var de=this._tiles[O];de&&de.setDependencies($,pe)},z.prototype.reloadTilesForDependencies=function(O,$){for(var pe in this._tiles){var de=this._tiles[pe];de.hasDependency(O,$)&&this._reloadTile(pe,"reloading")}this._cache.filter(function(Ie){return!Ie.hasDependency(O,$)})},z}(i.Evented);Zr.maxOverzooming=10,Zr.maxUnderzooming=3;function Vr(Y,z){var K=Math.abs(Y.wrap*2)-+(Y.wrap<0),O=Math.abs(z.wrap*2)-+(z.wrap<0);return Y.overscaledZ-z.overscaledZ||O-K||z.canonical.y-Y.canonical.y||z.canonical.x-Y.canonical.x}function gi(Y){return Y==="raster"||Y==="image"||Y==="video"}function Si(){return new i.window.Worker(ns.workerUrl)}var Mi="mapboxgl_preloaded_worker_pool",Pi=function(){this.active={}};Pi.prototype.acquire=function(z){if(!this.workers)for(this.workers=[];this.workers.length0?($-de)/Ie:0;return this.points[pe].mult(1-$e).add(this.points[K].mult($e))};var hi=function(z,K,O){var $=this.boxCells=[],pe=this.circleCells=[];this.xCellCount=Math.ceil(z/O),this.yCellCount=Math.ceil(K/O);for(var de=0;dethis.width||$<0||K>this.height)return pe?!1:[];var Ie=[];if(z<=0&&K<=0&&this.width<=O&&this.height<=$){if(pe)return!0;for(var $e=0;$e0:Ie}},hi.prototype._queryCircle=function(z,K,O,$,pe){var de=z-O,Ie=z+O,$e=K-O,pt=K+O;if(Ie<0||de>this.width||pt<0||$e>this.height)return $?!1:[];var Kt=[],ir={hitTest:$,circle:{x:z,y:K,radius:O},seenUids:{box:{},circle:{}}};return this._forEachCell(de,$e,Ie,pt,this._queryCellCircle,Kt,ir,pe),$?Kt.length>0:Kt},hi.prototype.query=function(z,K,O,$,pe){return this._query(z,K,O,$,!1,pe)},hi.prototype.hitTest=function(z,K,O,$,pe){return this._query(z,K,O,$,!0,pe)},hi.prototype.hitTestCircle=function(z,K,O,$){return this._queryCircle(z,K,O,!0,$)},hi.prototype._queryCell=function(z,K,O,$,pe,de,Ie,$e){var pt=Ie.seenUids,Kt=this.boxCells[pe];if(Kt!==null)for(var ir=this.bboxes,Jt=0,vt=Kt;Jt=ir[Wt+0]&&$>=ir[Wt+1]&&(!$e||$e(this.boxKeys[Pt]))){if(Ie.hitTest)return de.push(!0),!0;de.push({key:this.boxKeys[Pt],x1:ir[Wt],y1:ir[Wt+1],x2:ir[Wt+2],y2:ir[Wt+3]})}}}var rr=this.circleCells[pe];if(rr!==null)for(var dr=this.circles,pr=0,kr=rr;prIe*Ie+$e*$e},hi.prototype._circleAndRectCollide=function(z,K,O,$,pe,de,Ie){var $e=(de-$)/2,pt=Math.abs(z-($+$e));if(pt>$e+O)return!1;var Kt=(Ie-pe)/2,ir=Math.abs(K-(pe+Kt));if(ir>Kt+O)return!1;if(pt<=$e||ir<=Kt)return!0;var Jt=pt-$e,vt=ir-Kt;return Jt*Jt+vt*vt<=O*O};function Ji(Y,z,K,O,$){var pe=i.create();return z?(i.scale(pe,pe,[1/$,1/$,1]),K||i.rotateZ(pe,pe,O.angle)):i.multiply(pe,O.labelPlaneMatrix,Y),pe}function ua(Y,z,K,O,$){if(z){var pe=i.clone(Y);return i.scale(pe,pe,[$,$,1]),K||i.rotateZ(pe,pe,-O.angle),pe}else return O.glCoordMatrix}function Fn(Y,z){var K=[Y.x,Y.y,0,1];wl(K,K,z);var O=K[3];return{point:new i.Point(K[0]/O,K[1]/O),signedDistanceFromCamera:O}}function Sa(Y,z){return .5+.5*(Y/z)}function go(Y,z){var K=Y[0]/Y[3],O=Y[1]/Y[3],$=K>=-z[0]&&K<=z[0]&&O>=-z[1]&&O<=z[1];return $}function Oo(Y,z,K,O,$,pe,de,Ie){var $e=O?Y.textSizeData:Y.iconSizeData,pt=i.evaluateSizeForZoom($e,K.transform.zoom),Kt=[256/K.width*2+1,256/K.height*2+1],ir=O?Y.text.dynamicLayoutVertexArray:Y.icon.dynamicLayoutVertexArray;ir.clear();for(var Jt=Y.lineVertexArray,vt=O?Y.text.placedSymbolArray:Y.icon.placedSymbolArray,Pt=K.transform.width/K.transform.height,Wt=!1,rr=0;rrpe)return{useVertical:!0}}return(Y===i.WritingMode.vertical?z.yK.x)?{needsFlipping:!0}:null}function xo(Y,z,K,O,$,pe,de,Ie,$e,pt,Kt,ir,Jt,vt){var Pt=z/24,Wt=Y.lineOffsetX*Pt,rr=Y.lineOffsetY*Pt,dr;if(Y.numGlyphs>1){var pr=Y.glyphStartIndex+Y.numGlyphs,kr=Y.lineStartIndex,Ar=Y.lineStartIndex+Y.lineLength,gr=ho(Pt,Ie,Wt,rr,K,Kt,ir,Y,$e,pe,Jt);if(!gr)return{notEnoughRoom:!0};var Cr=Fn(gr.first.point,de).point,cr=Fn(gr.last.point,de).point;if(O&&!K){var Gr=Mo(Y.writingMode,Cr,cr,vt);if(Gr)return Gr}dr=[gr.first];for(var ei=Y.glyphStartIndex+1;ei0?ln.point:zs(ir,Ri,yi,1,$),qn=Mo(Y.writingMode,yi,Qn,vt);if(qn)return qn}var rn=ks(Pt*Ie.getoffsetX(Y.glyphStartIndex),Wt,rr,K,Kt,ir,Y.segment,Y.lineStartIndex,Y.lineStartIndex+Y.lineLength,$e,pe,Jt);if(!rn)return{notEnoughRoom:!0};dr=[rn]}for(var bn=0,mn=dr;bn0?1:-1,Pt=0;O&&(vt*=-1,Pt=Math.PI),vt<0&&(Pt+=Math.PI);for(var Wt=vt>0?Ie+de:Ie+de+1,rr=$,dr=$,pr=0,kr=0,Ar=Math.abs(Jt),gr=[];pr+kr<=Ar;){if(Wt+=vt,Wt=$e)return null;if(dr=rr,gr.push(rr),rr=ir[Wt],rr===void 0){var Cr=new i.Point(pt.getx(Wt),pt.gety(Wt)),cr=Fn(Cr,Kt);if(cr.signedDistanceFromCamera>0)rr=ir[Wt]=cr.point;else{var Gr=Wt-vt,ei=pr===0?pe:new i.Point(pt.getx(Gr),pt.gety(Gr));rr=zs(ei,Cr,dr,Ar-pr+1,Kt)}}pr+=kr,kr=dr.dist(rr)}var yi=(Ar-pr)/kr,tn=rr.sub(dr),Ri=tn.mult(yi)._add(dr);Ri._add(tn._unit()._perp()._mult(K*vt));var ln=Pt+Math.atan2(rr.y-dr.y,rr.x-dr.x);return gr.push(Ri),{point:Ri,angle:ln,path:gr}}var Zs=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function Xs(Y,z){for(var K=0;K=1;Gn--)mn.push(rn.path[Gn]);for(var da=1;da0){for(var fo=mn[0].clone(),as=mn[0].clone(),tl=1;tl=ln.x&&as.x<=Qn.x&&fo.y>=ln.y&&as.y<=Qn.y?ps=[mn]:as.xQn.x||as.yQn.y?ps=[]:ps=i.clipLine([mn],ln.x,ln.y,Qn.x,Qn.y)}for(var zu=0,Mv=ps;zu=this.screenRightBoundary||$this.screenBottomBoundary},cl.prototype.isInsideGrid=function(z,K,O,$){return O>=0&&z=0&&K0){var Ar;return this.prevPlacement&&this.prevPlacement.variableOffsets[Jt.crossTileID]&&this.prevPlacement.placements[Jt.crossTileID]&&this.prevPlacement.placements[Jt.crossTileID].text&&(Ar=this.prevPlacement.variableOffsets[Jt.crossTileID].anchor),this.variableOffsets[Jt.crossTileID]={textOffset:rr,width:O,height:$,anchor:z,textBoxScale:pe,prevAnchor:Ar},this.markUsedJustification(vt,z,Jt,Pt),vt.allowVerticalPlacement&&(this.markUsedOrientation(vt,Pt,Jt),this.placedOrientations[Jt.crossTileID]=Pt),{shift:dr,placedGlyphBoxes:pr}}},ms.prototype.placeLayerBucketPart=function(z,K,O){var $=this,pe=z.parameters,de=pe.bucket,Ie=pe.layout,$e=pe.posMatrix,pt=pe.textLabelPlaneMatrix,Kt=pe.labelToScreenMatrix,ir=pe.textPixelRatio,Jt=pe.holdingForFade,vt=pe.collisionBoxArray,Pt=pe.partiallyEvaluatedTextSize,Wt=pe.collisionGroup,rr=Ie.get("text-optional"),dr=Ie.get("icon-optional"),pr=Ie.get("text-allow-overlap"),kr=Ie.get("icon-allow-overlap"),Ar=Ie.get("text-rotation-alignment")==="map",gr=Ie.get("text-pitch-alignment")==="map",Cr=Ie.get("icon-text-fit")!=="none",cr=Ie.get("symbol-z-order")==="viewport-y",Gr=pr&&(kr||!de.hasIconData()||dr),ei=kr&&(pr||!de.hasTextData()||rr);!de.collisionArrays&&vt&&de.deserializeCollisionBoxes(vt);var yi=function(rn,bn){if(!K[rn.crossTileID]){if(Jt){$.placements[rn.crossTileID]=new Hs(!1,!1,!1);return}var mn=!1,Gn=!1,da=!0,No=null,Do={box:null,offscreen:null},ps={box:null,offscreen:null},fo=null,as=null,tl=null,zu=0,Mv=0,Ev=0;bn.textFeatureIndex?zu=bn.textFeatureIndex:rn.useRuntimeCollisionCircles&&(zu=rn.featureIndex),bn.verticalTextFeatureIndex&&(Mv=bn.verticalTextFeatureIndex);var yd=bn.textBox;if(yd){var Yv=function(Fu){var kl=i.WritingMode.horizontal;if(de.allowVerticalPlacement&&!Fu&&$.prevPlacement){var bd=$.prevPlacement.placedOrientations[rn.crossTileID];bd&&($.placedOrientations[rn.crossTileID]=bd,kl=bd,$.markUsedOrientation(de,kl,rn))}return kl},cg=function(Fu,kl){if(de.allowVerticalPlacement&&rn.numVerticalGlyphVertices>0&&bn.verticalTextBox)for(var bd=0,sy=de.writingModes;bd0&&(Nd=Nd.filter(function(Fu){return Fu!==xd.anchor}),Nd.unshift(xd.anchor))}var kv=function(Fu,kl,bd){for(var sy=Fu.x2-Fu.x1,A1=Fu.y2-Fu.y1,Yl=rn.textBoxScale,Bx=Cr&&!kr?kl:null,am={box:[],offscreen:!1},Mw=pr?Nd.length*2:Nd.length,Lv=0;Lv=Nd.length,Nx=$.attemptAnchorPlacement(om,Fu,sy,A1,Yl,Ar,gr,ir,$e,Wt,Ew,rn,de,bd,Bx);if(Nx&&(am=Nx.placedGlyphBoxes,am&&am.box&&am.box.length)){mn=!0,No=Nx.shift;break}}return am},Kv=function(){return kv(yd,bn.iconBox,i.WritingMode.horizontal)},Cv=function(){var Fu=bn.verticalTextBox,kl=Do&&Do.box&&Do.box.length;return de.allowVerticalPlacement&&!kl&&rn.numVerticalGlyphVertices>0&&Fu?kv(Fu,bn.verticalIconBox,i.WritingMode.vertical):{box:null,offscreen:null}};cg(Kv,Cv),Do&&(mn=Do.box,da=Do.offscreen);var ny=Yv(Do&&Do.box);if(!mn&&$.prevPlacement){var fg=$.prevPlacement.variableOffsets[rn.crossTileID];fg&&($.variableOffsets[rn.crossTileID]=fg,$.markUsedJustification(de,fg.anchor,rn,ny))}}else{var vp=function(Fu,kl){var bd=$.collisionIndex.placeCollisionBox(Fu,pr,ir,$e,Wt.predicate);return bd&&bd.box&&bd.box.length&&($.markUsedOrientation(de,kl,rn),$.placedOrientations[rn.crossTileID]=kl),bd},_d=function(){return vp(yd,i.WritingMode.horizontal)},pp=function(){var Fu=bn.verticalTextBox;return de.allowVerticalPlacement&&rn.numVerticalGlyphVertices>0&&Fu?vp(Fu,i.WritingMode.vertical):{box:null,offscreen:null}};cg(_d,pp),Yv(Do&&Do.box&&Do.box.length)}}if(fo=Do,mn=fo&&fo.box&&fo.box.length>0,da=fo&&fo.offscreen,rn.useRuntimeCollisionCircles){var Hf=de.text.placedSymbolArray.get(rn.centerJustifiedTextSymbolIndex),hg=i.evaluateSizeForFeature(de.textSizeData,Pt,Hf),ay=Ie.get("text-padding"),Rh=rn.collisionCircleDiameter;as=$.collisionIndex.placeCollisionCircles(pr,Hf,de.lineVertexArray,de.glyphOffsetArray,hg,$e,pt,Kt,O,gr,Wt.predicate,Rh,ay),mn=pr||as.circles.length>0&&!as.collisionDetected,da=da&&as.offscreen}if(bn.iconFeatureIndex&&(Ev=bn.iconFeatureIndex),bn.iconBox){var rm=function(Fu){var kl=Cr&&No?fc(Fu,No.x,No.y,Ar,gr,$.transform.angle):Fu;return $.collisionIndex.placeCollisionBox(kl,kr,ir,$e,Wt.predicate)};ps&&ps.box&&ps.box.length&&bn.verticalIconBox?(tl=rm(bn.verticalIconBox),Gn=tl.box.length>0):(tl=rm(bn.iconBox),Gn=tl.box.length>0),da=da&&tl.offscreen}var w1=rr||rn.numHorizontalGlyphVertices===0&&rn.numVerticalGlyphVertices===0,T1=dr||rn.numIconVertices===0;if(!w1&&!T1?Gn=mn=Gn&&mn:T1?w1||(Gn=Gn&&mn):mn=Gn&&mn,mn&&fo&&fo.box&&(ps&&ps.box&&Mv?$.collisionIndex.insertCollisionBox(fo.box,Ie.get("text-ignore-placement"),de.bucketInstanceId,Mv,Wt.ID):$.collisionIndex.insertCollisionBox(fo.box,Ie.get("text-ignore-placement"),de.bucketInstanceId,zu,Wt.ID)),Gn&&tl&&$.collisionIndex.insertCollisionBox(tl.box,Ie.get("icon-ignore-placement"),de.bucketInstanceId,Ev,Wt.ID),as&&(mn&&$.collisionIndex.insertCollisionCircles(as.circles,Ie.get("text-ignore-placement"),de.bucketInstanceId,zu,Wt.ID),O)){var oy=de.bucketInstanceId,im=$.collisionCircleArrays[oy];im===void 0&&(im=$.collisionCircleArrays[oy]=new Eo);for(var nm=0;nm=0;--Ri){var ln=tn[Ri];yi(de.symbolInstances.get(ln),de.collisionArrays[ln])}else for(var Qn=z.symbolInstanceStart;Qn=0&&(de>=0&&Kt!==de?z.text.placedSymbolArray.get(Kt).crossTileID=0:z.text.placedSymbolArray.get(Kt).crossTileID=O.crossTileID)}},ms.prototype.markUsedOrientation=function(z,K,O){for(var $=K===i.WritingMode.horizontal||K===i.WritingMode.horizontalOnly?K:0,pe=K===i.WritingMode.vertical?K:0,de=[O.leftJustifiedTextSymbolIndex,O.centerJustifiedTextSymbolIndex,O.rightJustifiedTextSymbolIndex],Ie=0,$e=de;Ie<$e.length;Ie+=1){var pt=$e[Ie];z.text.placedSymbolArray.get(pt).placedOrientation=$}O.verticalPlacedTextSymbolIndex&&(z.text.placedSymbolArray.get(O.verticalPlacedTextSymbolIndex).placedOrientation=pe)},ms.prototype.commit=function(z){this.commitTime=z,this.zoomAtLastRecencyCheck=this.transform.zoom;var K=this.prevPlacement,O=!1;this.prevZoomAdjustment=K?K.zoomAdjustment(this.transform.zoom):0;var $=K?K.symbolFadeChange(z):1,pe=K?K.opacities:{},de=K?K.variableOffsets:{},Ie=K?K.placedOrientations:{};for(var $e in this.placements){var pt=this.placements[$e],Kt=pe[$e];Kt?(this.opacities[$e]=new Ys(Kt,$,pt.text,pt.icon),O=O||pt.text!==Kt.text.placed||pt.icon!==Kt.icon.placed):(this.opacities[$e]=new Ys(null,$,pt.text,pt.icon,pt.skipFade),O=O||pt.text||pt.icon)}for(var ir in pe){var Jt=pe[ir];if(!this.opacities[ir]){var vt=new Ys(Jt,$,!1,!1);vt.isHidden()||(this.opacities[ir]=vt,O=O||Jt.text.placed||Jt.icon.placed)}}for(var Pt in de)!this.variableOffsets[Pt]&&this.opacities[Pt]&&!this.opacities[Pt].isHidden()&&(this.variableOffsets[Pt]=de[Pt]);for(var Wt in Ie)!this.placedOrientations[Wt]&&this.opacities[Wt]&&!this.opacities[Wt].isHidden()&&(this.placedOrientations[Wt]=Ie[Wt]);O?this.lastPlacementChangeTime=z:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=K?K.lastPlacementChangeTime:z)},ms.prototype.updateLayerOpacities=function(z,K){for(var O={},$=0,pe=K;$0||gr>0,yi=kr.numIconVertices>0,tn=$.placedOrientations[kr.crossTileID],Ri=tn===i.WritingMode.vertical,ln=tn===i.WritingMode.horizontal||tn===i.WritingMode.horizontalOnly;if(ei){var Qn=Ec(Gr.text),qn=Ri?Zn:Qn;Pt(z.text,Ar,qn);var rn=ln?Zn:Qn;Pt(z.text,gr,rn);var bn=Gr.text.isHidden();[kr.rightJustifiedTextSymbolIndex,kr.centerJustifiedTextSymbolIndex,kr.leftJustifiedTextSymbolIndex].forEach(function(Ev){Ev>=0&&(z.text.placedSymbolArray.get(Ev).hidden=bn||Ri?1:0)}),kr.verticalPlacedTextSymbolIndex>=0&&(z.text.placedSymbolArray.get(kr.verticalPlacedTextSymbolIndex).hidden=bn||ln?1:0);var mn=$.variableOffsets[kr.crossTileID];mn&&$.markUsedJustification(z,mn.anchor,kr,tn);var Gn=$.placedOrientations[kr.crossTileID];Gn&&($.markUsedJustification(z,"left",kr,Gn),$.markUsedOrientation(z,Gn,kr))}if(yi){var da=Ec(Gr.icon),No=!(Jt&&kr.verticalPlacedIconSymbolIndex&&Ri);if(kr.placedIconSymbolIndex>=0){var Do=No?da:Zn;Pt(z.icon,kr.numIconVertices,Do),z.icon.placedSymbolArray.get(kr.placedIconSymbolIndex).hidden=Gr.icon.isHidden()}if(kr.verticalPlacedIconSymbolIndex>=0){var ps=No?Zn:da;Pt(z.icon,kr.numVerticalIconVertices,ps),z.icon.placedSymbolArray.get(kr.verticalPlacedIconSymbolIndex).hidden=Gr.icon.isHidden()}}if(z.hasIconCollisionBoxData()||z.hasTextCollisionBoxData()){var fo=z.collisionArrays[pr];if(fo){var as=new i.Point(0,0);if(fo.textBox||fo.verticalTextBox){var tl=!0;if(pt){var zu=$.variableOffsets[Cr];zu?(as=Hu(zu.anchor,zu.width,zu.height,zu.textOffset,zu.textBoxScale),Kt&&as._rotate(ir?$.transform.angle:-$.transform.angle)):tl=!1}fo.textBox&&on(z.textCollisionBox.collisionVertexArray,Gr.text.placed,!tl||Ri,as.x,as.y),fo.verticalTextBox&&on(z.textCollisionBox.collisionVertexArray,Gr.text.placed,!tl||ln,as.x,as.y)}var Mv=!!(!ln&&fo.verticalIconBox);fo.iconBox&&on(z.iconCollisionBox.collisionVertexArray,Gr.icon.placed,Mv,Jt?as.x:0,Jt?as.y:0),fo.verticalIconBox&&on(z.iconCollisionBox.collisionVertexArray,Gr.icon.placed,!Mv,Jt?as.x:0,Jt?as.y:0)}}},rr=0;rrz},ms.prototype.setStale=function(){this.stale=!0};function on(Y,z,K,O,$){Y.emplaceBack(z?1:0,K?1:0,O||0,$||0),Y.emplaceBack(z?1:0,K?1:0,O||0,$||0),Y.emplaceBack(z?1:0,K?1:0,O||0,$||0),Y.emplaceBack(z?1:0,K?1:0,O||0,$||0)}var fa=Math.pow(2,25),Qu=Math.pow(2,24),Il=Math.pow(2,17),vo=Math.pow(2,16),Wl=Math.pow(2,9),Ks=Math.pow(2,8),Zl=Math.pow(2,1);function Ec(Y){if(Y.opacity===0&&!Y.placed)return 0;if(Y.opacity===1&&Y.placed)return 4294967295;var z=Y.placed?1:0,K=Math.floor(Y.opacity*127);return K*fa+z*Qu+K*Il+z*vo+K*Wl+z*Ks+K*Zl+z}var Zn=0,ko=function(z){this._sortAcrossTiles=z.layout.get("symbol-z-order")!=="viewport-y"&&z.layout.get("symbol-sort-key").constantOr(1)!==void 0,this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]};ko.prototype.continuePlacement=function(z,K,O,$,pe){for(var de=this._bucketParts;this._currentTileIndex2};this._currentPlacementIndex>=0;){var Ie=z[this._currentPlacementIndex],$e=K[Ie],pt=this.placement.collisionIndex.transform.zoom;if($e.type==="symbol"&&(!$e.minzoom||$e.minzoom<=pt)&&(!$e.maxzoom||$e.maxzoom>pt)){this._inProgressLayer||(this._inProgressLayer=new ko($e));var Kt=this._inProgressLayer.continuePlacement(O[$e.source],this.placement,this._showCollisionBoxes,$e,de);if(Kt)return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0},Co.prototype.commit=function(z){return this.placement.commit(z),this.placement};var Tl=512/i.EXTENT/2,uf=function(z,K,O){this.tileID=z,this.indexedSymbolInstances={},this.bucketInstanceId=O;for(var $=0;$z.overscaledZ)for(var pt in $e){var Kt=$e[pt];Kt.tileID.isChildOf(z)&&Kt.findMatches(K.symbolInstances,z,de)}else{var ir=z.scaledTo(Number(Ie)),Jt=$e[ir.key];Jt&&Jt.findMatches(K.symbolInstances,z,de)}}for(var vt=0;vt0)throw new Error("Unimplemented: "+de.map(function(Ie){return Ie.command}).join(", ")+".");return pe.forEach(function(Ie){Ie.command!=="setTransition"&&$[Ie.command].apply($,Ie.args)}),this.stylesheet=O,!0},z.prototype.addImage=function(O,$){if(this.getImage(O))return this.fire(new i.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(O,$),this._afterImageUpdated(O)},z.prototype.updateImage=function(O,$){this.imageManager.updateImage(O,$)},z.prototype.getImage=function(O){return this.imageManager.getImage(O)},z.prototype.removeImage=function(O){if(!this.getImage(O))return this.fire(new i.ErrorEvent(new Error("No image with this name exists.")));this.imageManager.removeImage(O),this._afterImageUpdated(O)},z.prototype._afterImageUpdated=function(O){this._availableImages=this.imageManager.listImages(),this._changedImages[O]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new i.Event("data",{dataType:"style"}))},z.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},z.prototype.addSource=function(O,$,pe){var de=this;if(pe===void 0&&(pe={}),this._checkLoaded(),this.sourceCaches[O]!==void 0)throw new Error("There is already a source with this ID");if(!$.type)throw new Error("The type property must be defined, but only the following properties were given: "+Object.keys($).join(", ")+".");var Ie=["vector","raster","geojson","video","image"],$e=Ie.indexOf($.type)>=0;if(!($e&&this._validate(i.validateStyle.source,"sources."+O,$,null,pe))){this.map&&this.map._collectResourceTiming&&($.collectResourceTiming=!0);var pt=this.sourceCaches[O]=new Zr(O,$,this.dispatcher);pt.style=this,pt.setEventedParent(this,function(){return{isSourceLoaded:de.loaded(),source:pt.serialize(),sourceId:O}}),pt.onAdd(this.map),this._changed=!0}},z.prototype.removeSource=function(O){if(this._checkLoaded(),this.sourceCaches[O]===void 0)throw new Error("There is no source with this ID");for(var $ in this._layers)if(this._layers[$].source===O)return this.fire(new i.ErrorEvent(new Error('Source "'+O+'" cannot be removed while layer "'+$+'" is using it.')));var pe=this.sourceCaches[O];delete this.sourceCaches[O],delete this._updatedSources[O],pe.fire(new i.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:O})),pe.setEventedParent(null),pe.clearTiles(),pe.onRemove&&pe.onRemove(this.map),this._changed=!0},z.prototype.setGeoJSONSourceData=function(O,$){this._checkLoaded();var pe=this.sourceCaches[O].getSource();pe.setData($),this._changed=!0},z.prototype.getSource=function(O){return this.sourceCaches[O]&&this.sourceCaches[O].getSource()},z.prototype.addLayer=function(O,$,pe){pe===void 0&&(pe={}),this._checkLoaded();var de=O.id;if(this.getLayer(de)){this.fire(new i.ErrorEvent(new Error('Layer with id "'+de+'" already exists on this map')));return}var Ie;if(O.type==="custom"){if(Al(this,i.validateCustomStyleLayer(O)))return;Ie=i.createStyleLayer(O)}else{if(typeof O.source=="object"&&(this.addSource(de,O.source),O=i.clone$1(O),O=i.extend(O,{source:de})),this._validate(i.validateStyle.layer,"layers."+de,O,{arrayIndex:-1},pe))return;Ie=i.createStyleLayer(O),this._validateLayer(Ie),Ie.setEventedParent(this,{layer:{id:de}}),this._serializedLayers[Ie.id]=Ie.serialize()}var $e=$?this._order.indexOf($):this._order.length;if($&&$e===-1){this.fire(new i.ErrorEvent(new Error('Layer with id "'+$+'" does not exist on this map.')));return}if(this._order.splice($e,0,de),this._layerOrderChanged=!0,this._layers[de]=Ie,this._removedLayers[de]&&Ie.source&&Ie.type!=="custom"){var pt=this._removedLayers[de];delete this._removedLayers[de],pt.type!==Ie.type?this._updatedSources[Ie.source]="clear":(this._updatedSources[Ie.source]="reload",this.sourceCaches[Ie.source].pause())}this._updateLayer(Ie),Ie.onAdd&&Ie.onAdd(this.map)},z.prototype.moveLayer=function(O,$){this._checkLoaded(),this._changed=!0;var pe=this._layers[O];if(!pe){this.fire(new i.ErrorEvent(new Error("The layer '"+O+"' does not exist in the map's style and cannot be moved.")));return}if(O!==$){var de=this._order.indexOf(O);this._order.splice(de,1);var Ie=$?this._order.indexOf($):this._order.length;if($&&Ie===-1){this.fire(new i.ErrorEvent(new Error('Layer with id "'+$+'" does not exist on this map.')));return}this._order.splice(Ie,0,O),this._layerOrderChanged=!0}},z.prototype.removeLayer=function(O){this._checkLoaded();var $=this._layers[O];if(!$){this.fire(new i.ErrorEvent(new Error("The layer '"+O+"' does not exist in the map's style and cannot be removed.")));return}$.setEventedParent(null);var pe=this._order.indexOf(O);this._order.splice(pe,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[O]=$,delete this._layers[O],delete this._serializedLayers[O],delete this._updatedLayers[O],delete this._updatedPaintProps[O],$.onRemove&&$.onRemove(this.map)},z.prototype.getLayer=function(O){return this._layers[O]},z.prototype.hasLayer=function(O){return O in this._layers},z.prototype.setLayerZoomRange=function(O,$,pe){this._checkLoaded();var de=this.getLayer(O);if(!de){this.fire(new i.ErrorEvent(new Error("The layer '"+O+"' does not exist in the map's style and cannot have zoom extent.")));return}de.minzoom===$&&de.maxzoom===pe||($!=null&&(de.minzoom=$),pe!=null&&(de.maxzoom=pe),this._updateLayer(de))},z.prototype.setFilter=function(O,$,pe){pe===void 0&&(pe={}),this._checkLoaded();var de=this.getLayer(O);if(!de){this.fire(new i.ErrorEvent(new Error("The layer '"+O+"' does not exist in the map's style and cannot be filtered.")));return}if(!i.deepEqual(de.filter,$)){if($==null){de.filter=void 0,this._updateLayer(de);return}this._validate(i.validateStyle.filter,"layers."+de.id+".filter",$,null,pe)||(de.filter=i.clone$1($),this._updateLayer(de))}},z.prototype.getFilter=function(O){return i.clone$1(this.getLayer(O).filter)},z.prototype.setLayoutProperty=function(O,$,pe,de){de===void 0&&(de={}),this._checkLoaded();var Ie=this.getLayer(O);if(!Ie){this.fire(new i.ErrorEvent(new Error("The layer '"+O+"' does not exist in the map's style and cannot be styled.")));return}i.deepEqual(Ie.getLayoutProperty($),pe)||(Ie.setLayoutProperty($,pe,de),this._updateLayer(Ie))},z.prototype.getLayoutProperty=function(O,$){var pe=this.getLayer(O);if(!pe){this.fire(new i.ErrorEvent(new Error("The layer '"+O+"' does not exist in the map's style.")));return}return pe.getLayoutProperty($)},z.prototype.setPaintProperty=function(O,$,pe,de){de===void 0&&(de={}),this._checkLoaded();var Ie=this.getLayer(O);if(!Ie){this.fire(new i.ErrorEvent(new Error("The layer '"+O+"' does not exist in the map's style and cannot be styled.")));return}if(!i.deepEqual(Ie.getPaintProperty($),pe)){var $e=Ie.setPaintProperty($,pe,de);$e&&this._updateLayer(Ie),this._changed=!0,this._updatedPaintProps[O]=!0}},z.prototype.getPaintProperty=function(O,$){return this.getLayer(O).getPaintProperty($)},z.prototype.setFeatureState=function(O,$){this._checkLoaded();var pe=O.source,de=O.sourceLayer,Ie=this.sourceCaches[pe];if(Ie===void 0){this.fire(new i.ErrorEvent(new Error("The source '"+pe+"' does not exist in the map's style.")));return}var $e=Ie.getSource().type;if($e==="geojson"&&de){this.fire(new i.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter.")));return}if($e==="vector"&&!de){this.fire(new i.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));return}O.id===void 0&&this.fire(new i.ErrorEvent(new Error("The feature id parameter must be provided."))),Ie.setFeatureState(de,O.id,$)},z.prototype.removeFeatureState=function(O,$){this._checkLoaded();var pe=O.source,de=this.sourceCaches[pe];if(de===void 0){this.fire(new i.ErrorEvent(new Error("The source '"+pe+"' does not exist in the map's style.")));return}var Ie=de.getSource().type,$e=Ie==="vector"?O.sourceLayer:void 0;if(Ie==="vector"&&!$e){this.fire(new i.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));return}if($&&typeof O.id!="string"&&typeof O.id!="number"){this.fire(new i.ErrorEvent(new Error("A feature id is required to remove its specific state property.")));return}de.removeFeatureState($e,O.id,$)},z.prototype.getFeatureState=function(O){this._checkLoaded();var $=O.source,pe=O.sourceLayer,de=this.sourceCaches[$];if(de===void 0){this.fire(new i.ErrorEvent(new Error("The source '"+$+"' does not exist in the map's style.")));return}var Ie=de.getSource().type;if(Ie==="vector"&&!pe){this.fire(new i.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")));return}return O.id===void 0&&this.fire(new i.ErrorEvent(new Error("The feature id parameter must be provided."))),de.getFeatureState(pe,O.id)},z.prototype.getTransition=function(){return i.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},z.prototype.serialize=function(){return i.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:i.mapObject(this.sourceCaches,function(O){return O.serialize()}),layers:this._serializeLayers(this._order)},function(O){return O!==void 0})},z.prototype._updateLayer=function(O){this._updatedLayers[O.id]=!0,O.source&&!this._updatedSources[O.source]&&this.sourceCaches[O.source].getSource().type!=="raster"&&(this._updatedSources[O.source]="reload",this.sourceCaches[O.source].pause()),this._changed=!0},z.prototype._flattenAndSortRenderedFeatures=function(O){for(var $=this,pe=function(ln){return $._layers[ln].type==="fill-extrusion"},de={},Ie=[],$e=this._order.length-1;$e>=0;$e--){var pt=this._order[$e];if(pe(pt)){de[pt]=$e;for(var Kt=0,ir=O;Kt=0;pr--){var kr=this._order[pr];if(pe(kr))for(var Ar=Ie.length-1;Ar>=0;Ar--){var gr=Ie[Ar].feature;if(de[gr.layer.id] 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`,Ml=`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,Yh=`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0 +? a_pos +: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`,Eh=`#ifdef GL_ES +precision highp float; +#endif +uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,nh="uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}",hf=`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent; +#define PI 3.141592653589793 +void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,kh="uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}",Kh=`uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,rc=` +#define scale 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}`,ah=`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,Wc=` +#define scale 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}`,df=`uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,Cu=` +#define scale 0.015873016 +#define LINE_DISTANCE_SCALE 2.0 +attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`,Nf=`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,Zc=` +#define scale 0.015873016 +#define LINE_DISTANCE_SCALE 2.0 +attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`,ds=`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,Ch="uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}",Bd=`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,Jh=`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}`,Cf=`#define SDF_PX 8.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,pd=`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`,Lu=`#define SDF_PX 8.0 +#define SDF 1.0 +#define ICON 0.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,$h=`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`,eu=Is(Of,Gc),Pu=Is(vd,Bf),Lc=Is(ss,ff),fl=Is(ih,Ul),Xc=Is(Js,hc),ic=Is(Cc,ws),yu=Is($s,hs),Qs=Is(Ms,dc),Qh=Is(Sl,ec),gd=Is(Ps,ov),Gu=Is(wo,Od),Pc=Is($o,Ja),vc=Is(Ef,tc),sv=Is(uu,Mh),Lf=Is(jc,kf),Uf=Is(Ml,Yh),Iu=Is(Eh,nh),oh=Is(hf,kh),tu=Is(Kh,rc),vf=Is(ah,Wc),md=Is(df,Cu),sh=Is(Nf,Zc),Fs=Is(ds,Ch),_u=Is(Bd,Jh),xu=Is(Cf,pd),Lh=Is(Lu,$h);function Is(Y,z){var K=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,O=z.match(/attribute ([\w]+) ([\w]+)/g),$=Y.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),pe=z.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),de=pe?pe.concat($):$,Ie={};return Y=Y.replace(K,function($e,pt,Kt,ir,Jt){return Ie[Jt]=!0,pt==="define"?` +#ifndef HAS_UNIFORM_u_`+Jt+` +varying `+Kt+" "+ir+" "+Jt+`; +#else +uniform `+Kt+" "+ir+" u_"+Jt+`; +#endif +`:` +#ifdef HAS_UNIFORM_u_`+Jt+` + `+Kt+" "+ir+" "+Jt+" = u_"+Jt+`; +#endif +`}),z=z.replace(K,function($e,pt,Kt,ir,Jt){var vt=ir==="float"?"vec2":"vec4",Pt=Jt.match(/color/)?"color":vt;return Ie[Jt]?pt==="define"?` +#ifndef HAS_UNIFORM_u_`+Jt+` +uniform lowp float u_`+Jt+`_t; +attribute `+Kt+" "+vt+" a_"+Jt+`; +varying `+Kt+" "+ir+" "+Jt+`; +#else +uniform `+Kt+" "+ir+" u_"+Jt+`; +#endif +`:Pt==="vec4"?` +#ifndef HAS_UNIFORM_u_`+Jt+` + `+Jt+" = a_"+Jt+`; +#else + `+Kt+" "+ir+" "+Jt+" = u_"+Jt+`; +#endif +`:` +#ifndef HAS_UNIFORM_u_`+Jt+` + `+Jt+" = unpack_mix_"+Pt+"(a_"+Jt+", u_"+Jt+`_t); +#else + `+Kt+" "+ir+" "+Jt+" = u_"+Jt+`; +#endif +`:pt==="define"?` +#ifndef HAS_UNIFORM_u_`+Jt+` +uniform lowp float u_`+Jt+`_t; +attribute `+Kt+" "+vt+" a_"+Jt+`; +#else +uniform `+Kt+" "+ir+" u_"+Jt+`; +#endif +`:Pt==="vec4"?` +#ifndef HAS_UNIFORM_u_`+Jt+` + `+Kt+" "+ir+" "+Jt+" = a_"+Jt+`; +#else + `+Kt+" "+ir+" "+Jt+" = u_"+Jt+`; +#endif +`:` +#ifndef HAS_UNIFORM_u_`+Jt+` + `+Kt+" "+ir+" "+Jt+" = unpack_mix_"+Pt+"(a_"+Jt+", u_"+Jt+`_t); +#else + `+Kt+" "+ir+" "+Jt+" = u_"+Jt+`; +#endif +`}),{fragmentSource:Y,vertexSource:z,staticAttributes:O,staticUniforms:de}}var Pf=Object.freeze({__proto__:null,prelude:eu,background:Pu,backgroundPattern:Lc,circle:fl,clippingMask:Xc,heatmap:ic,heatmapTexture:yu,collisionBox:Qs,collisionCircle:Qh,debug:gd,fill:Gu,fillOutline:Pc,fillOutlinePattern:vc,fillPattern:sv,fillExtrusion:Lf,fillExtrusionPattern:Uf,hillshadePrepare:Iu,hillshade:oh,line:tu,lineGradient:vf,linePattern:md,lineSDF:sh,raster:Fs,symbolIcon:_u,symbolSDF:xu,symbolTextAndIcon:Lh}),Ic=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};Ic.prototype.bind=function(z,K,O,$,pe,de,Ie,$e){this.context=z;for(var pt=this.boundPaintVertexBuffers.length!==$.length,Kt=0;!pt&&Kt<$.length;Kt++)this.boundPaintVertexBuffers[Kt]!==$[Kt]&&(pt=!0);var ir=!this.vao||this.boundProgram!==K||this.boundLayoutVertexBuffer!==O||pt||this.boundIndexBuffer!==pe||this.boundVertexOffset!==de||this.boundDynamicVertexBuffer!==Ie||this.boundDynamicVertexBuffer2!==$e;!z.extVertexArrayObject||ir?this.freshBind(K,O,$,pe,de,Ie,$e):(z.bindVertexArrayOES.set(this.vao),Ie&&Ie.bind(),pe&&pe.dynamicDraw&&pe.bind(),$e&&$e.bind())},Ic.prototype.freshBind=function(z,K,O,$,pe,de,Ie){var $e,pt=z.numAttributes,Kt=this.context,ir=Kt.gl;if(Kt.extVertexArrayObject)this.vao&&this.destroy(),this.vao=Kt.extVertexArrayObject.createVertexArrayOES(),Kt.bindVertexArrayOES.set(this.vao),$e=0,this.boundProgram=z,this.boundLayoutVertexBuffer=K,this.boundPaintVertexBuffers=O,this.boundIndexBuffer=$,this.boundVertexOffset=pe,this.boundDynamicVertexBuffer=de,this.boundDynamicVertexBuffer2=Ie;else{$e=Kt.currentNumAttributes||0;for(var Jt=pt;Jt<$e;Jt++)ir.disableVertexAttribArray(Jt)}K.enableAttributes(ir,z);for(var vt=0,Pt=O;vt>16,Ie>>16],u_pixel_coord_lower:[de&65535,Ie&65535]}}function pf(Y,z,K,O){var $=K.imageManager.getPattern(Y.from.toString()),pe=K.imageManager.getPattern(Y.to.toString()),de=K.imageManager.getPixelSize(),Ie=de.width,$e=de.height,pt=Math.pow(2,O.tileID.overscaledZ),Kt=O.tileSize*Math.pow(2,K.transform.tileZoom)/pt,ir=Kt*(O.tileID.canonical.x+O.tileID.wrap*pt),Jt=Kt*O.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:$.tl,u_pattern_br_a:$.br,u_pattern_tl_b:pe.tl,u_pattern_br_b:pe.br,u_texsize:[Ie,$e],u_mix:z.t,u_pattern_size_a:$.displaySize,u_pattern_size_b:pe.displaySize,u_scale_a:z.fromScale,u_scale_b:z.toScale,u_tile_units_to_pixels:1/Cs(O,1,K.transform.tileZoom),u_pixel_coord_upper:[ir>>16,Jt>>16],u_pixel_coord_lower:[ir&65535,Jt&65535]}}var Ph=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_lightpos:new i.Uniform3f(Y,z.u_lightpos),u_lightintensity:new i.Uniform1f(Y,z.u_lightintensity),u_lightcolor:new i.Uniform3f(Y,z.u_lightcolor),u_vertical_gradient:new i.Uniform1f(Y,z.u_vertical_gradient),u_opacity:new i.Uniform1f(Y,z.u_opacity)}},Rl=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_lightpos:new i.Uniform3f(Y,z.u_lightpos),u_lightintensity:new i.Uniform1f(Y,z.u_lightintensity),u_lightcolor:new i.Uniform3f(Y,z.u_lightcolor),u_vertical_gradient:new i.Uniform1f(Y,z.u_vertical_gradient),u_height_factor:new i.Uniform1f(Y,z.u_height_factor),u_image:new i.Uniform1i(Y,z.u_image),u_texsize:new i.Uniform2f(Y,z.u_texsize),u_pixel_coord_upper:new i.Uniform2f(Y,z.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(Y,z.u_pixel_coord_lower),u_scale:new i.Uniform3f(Y,z.u_scale),u_fade:new i.Uniform1f(Y,z.u_fade),u_opacity:new i.Uniform1f(Y,z.u_opacity)}},Ih=function(Y,z,K,O){var $=z.style.light,pe=$.properties.get("position"),de=[pe.x,pe.y,pe.z],Ie=i.create$1();$.properties.get("anchor")==="viewport"&&i.fromRotation(Ie,-z.transform.angle),i.transformMat3(de,de,Ie);var $e=$.properties.get("color");return{u_matrix:Y,u_lightpos:de,u_lightintensity:$.properties.get("intensity"),u_lightcolor:[$e.r,$e.g,$e.b],u_vertical_gradient:+K,u_opacity:O}},Wu=function(Y,z,K,O,$,pe,de){return i.extend(Ih(Y,z,K,O),pc(pe,z,de),{u_height_factor:-Math.pow(2,$.overscaledZ)/de.tileSize/8})},Rc=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix)}},gc=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_image:new i.Uniform1i(Y,z.u_image),u_texsize:new i.Uniform2f(Y,z.u_texsize),u_pixel_coord_upper:new i.Uniform2f(Y,z.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(Y,z.u_pixel_coord_lower),u_scale:new i.Uniform3f(Y,z.u_scale),u_fade:new i.Uniform1f(Y,z.u_fade)}},hl=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_world:new i.Uniform2f(Y,z.u_world)}},ru=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_world:new i.Uniform2f(Y,z.u_world),u_image:new i.Uniform1i(Y,z.u_image),u_texsize:new i.Uniform2f(Y,z.u_texsize),u_pixel_coord_upper:new i.Uniform2f(Y,z.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(Y,z.u_pixel_coord_lower),u_scale:new i.Uniform3f(Y,z.u_scale),u_fade:new i.Uniform1f(Y,z.u_fade)}},mc=function(Y){return{u_matrix:Y}},Yc=function(Y,z,K,O){return i.extend(mc(Y),pc(K,z,O))},nc=function(Y,z){return{u_matrix:Y,u_world:z}},gf=function(Y,z,K,O,$){return i.extend(Yc(Y,z,K,O),{u_world:$})},gt=function(Y,z){return{u_camera_to_center_distance:new i.Uniform1f(Y,z.u_camera_to_center_distance),u_scale_with_map:new i.Uniform1i(Y,z.u_scale_with_map),u_pitch_with_map:new i.Uniform1i(Y,z.u_pitch_with_map),u_extrude_scale:new i.Uniform2f(Y,z.u_extrude_scale),u_device_pixel_ratio:new i.Uniform1f(Y,z.u_device_pixel_ratio),u_matrix:new i.UniformMatrix4f(Y,z.u_matrix)}},Bt=function(Y,z,K,O){var $=Y.transform,pe,de;if(O.paint.get("circle-pitch-alignment")==="map"){var Ie=Cs(K,1,$.zoom);pe=!0,de=[Ie,Ie]}else pe=!1,de=$.pixelsToGLUnits;return{u_camera_to_center_distance:$.cameraToCenterDistance,u_scale_with_map:+(O.paint.get("circle-pitch-scale")==="map"),u_matrix:Y.translatePosMatrix(z.posMatrix,K,O.paint.get("circle-translate"),O.paint.get("circle-translate-anchor")),u_pitch_with_map:+pe,u_device_pixel_ratio:i.browser.devicePixelRatio,u_extrude_scale:de}},wr=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_camera_to_center_distance:new i.Uniform1f(Y,z.u_camera_to_center_distance),u_pixels_to_tile_units:new i.Uniform1f(Y,z.u_pixels_to_tile_units),u_extrude_scale:new i.Uniform2f(Y,z.u_extrude_scale),u_overscale_factor:new i.Uniform1f(Y,z.u_overscale_factor)}},vr=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_inv_matrix:new i.UniformMatrix4f(Y,z.u_inv_matrix),u_camera_to_center_distance:new i.Uniform1f(Y,z.u_camera_to_center_distance),u_viewport_size:new i.Uniform2f(Y,z.u_viewport_size)}},Ur=function(Y,z,K){var O=Cs(K,1,z.zoom),$=Math.pow(2,z.zoom-K.tileID.overscaledZ),pe=K.tileID.overscaleFactor();return{u_matrix:Y,u_camera_to_center_distance:z.cameraToCenterDistance,u_pixels_to_tile_units:O,u_extrude_scale:[z.pixelsToGLUnits[0]/(O*$),z.pixelsToGLUnits[1]/(O*$)],u_overscale_factor:pe}},fi=function(Y,z,K){return{u_matrix:Y,u_inv_matrix:z,u_camera_to_center_distance:K.cameraToCenterDistance,u_viewport_size:[K.width,K.height]}},xi=function(Y,z){return{u_color:new i.UniformColor(Y,z.u_color),u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_overlay:new i.Uniform1i(Y,z.u_overlay),u_overlay_scale:new i.Uniform1f(Y,z.u_overlay_scale)}},Fi=function(Y,z,K){return K===void 0&&(K=1),{u_matrix:Y,u_color:z,u_overlay:0,u_overlay_scale:K}},Xi=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix)}},hn=function(Y){return{u_matrix:Y}},Ti=function(Y,z){return{u_extrude_scale:new i.Uniform1f(Y,z.u_extrude_scale),u_intensity:new i.Uniform1f(Y,z.u_intensity),u_matrix:new i.UniformMatrix4f(Y,z.u_matrix)}},qi=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_world:new i.Uniform2f(Y,z.u_world),u_image:new i.Uniform1i(Y,z.u_image),u_color_ramp:new i.Uniform1i(Y,z.u_color_ramp),u_opacity:new i.Uniform1f(Y,z.u_opacity)}},Ii=function(Y,z,K,O){return{u_matrix:Y,u_extrude_scale:Cs(z,1,K),u_intensity:O}},mi=function(Y,z,K,O){var $=i.create();i.ortho($,0,Y.width,Y.height,0,0,1);var pe=Y.context.gl;return{u_matrix:$,u_world:[pe.drawingBufferWidth,pe.drawingBufferHeight],u_image:K,u_color_ramp:O,u_opacity:z.paint.get("heatmap-opacity")}},Pn=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_image:new i.Uniform1i(Y,z.u_image),u_latrange:new i.Uniform2f(Y,z.u_latrange),u_light:new i.Uniform2f(Y,z.u_light),u_shadow:new i.UniformColor(Y,z.u_shadow),u_highlight:new i.UniformColor(Y,z.u_highlight),u_accent:new i.UniformColor(Y,z.u_accent)}},Ma=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_image:new i.Uniform1i(Y,z.u_image),u_dimension:new i.Uniform2f(Y,z.u_dimension),u_zoom:new i.Uniform1f(Y,z.u_zoom),u_unpack:new i.Uniform4f(Y,z.u_unpack)}},Ta=function(Y,z,K){var O=K.paint.get("hillshade-shadow-color"),$=K.paint.get("hillshade-highlight-color"),pe=K.paint.get("hillshade-accent-color"),de=K.paint.get("hillshade-illumination-direction")*(Math.PI/180);K.paint.get("hillshade-illumination-anchor")==="viewport"&&(de-=Y.transform.angle);var Ie=!Y.options.moving;return{u_matrix:Y.transform.calculatePosMatrix(z.tileID.toUnwrapped(),Ie),u_image:0,u_latrange:qa(Y,z.tileID),u_light:[K.paint.get("hillshade-exaggeration"),de],u_shadow:O,u_highlight:$,u_accent:pe}},Ea=function(Y,z){var K=z.stride,O=i.create();return i.ortho(O,0,i.EXTENT,-i.EXTENT,0,0,1),i.translate(O,O,[0,-i.EXTENT,0]),{u_matrix:O,u_image:1,u_dimension:[K,K],u_zoom:Y.overscaledZ,u_unpack:z.getUnpackVector()}};function qa(Y,z){var K=Math.pow(2,z.canonical.z),O=z.canonical.y;return[new i.MercatorCoordinate(0,O/K).toLngLat().lat,new i.MercatorCoordinate(0,(O+1)/K).toLngLat().lat]}var Cn=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_ratio:new i.Uniform1f(Y,z.u_ratio),u_device_pixel_ratio:new i.Uniform1f(Y,z.u_device_pixel_ratio),u_units_to_pixels:new i.Uniform2f(Y,z.u_units_to_pixels)}},sn=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_ratio:new i.Uniform1f(Y,z.u_ratio),u_device_pixel_ratio:new i.Uniform1f(Y,z.u_device_pixel_ratio),u_units_to_pixels:new i.Uniform2f(Y,z.u_units_to_pixels),u_image:new i.Uniform1i(Y,z.u_image),u_image_height:new i.Uniform1f(Y,z.u_image_height)}},Ua=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_texsize:new i.Uniform2f(Y,z.u_texsize),u_ratio:new i.Uniform1f(Y,z.u_ratio),u_device_pixel_ratio:new i.Uniform1f(Y,z.u_device_pixel_ratio),u_image:new i.Uniform1i(Y,z.u_image),u_units_to_pixels:new i.Uniform2f(Y,z.u_units_to_pixels),u_scale:new i.Uniform3f(Y,z.u_scale),u_fade:new i.Uniform1f(Y,z.u_fade)}},mo=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_ratio:new i.Uniform1f(Y,z.u_ratio),u_device_pixel_ratio:new i.Uniform1f(Y,z.u_device_pixel_ratio),u_units_to_pixels:new i.Uniform2f(Y,z.u_units_to_pixels),u_patternscale_a:new i.Uniform2f(Y,z.u_patternscale_a),u_patternscale_b:new i.Uniform2f(Y,z.u_patternscale_b),u_sdfgamma:new i.Uniform1f(Y,z.u_sdfgamma),u_image:new i.Uniform1i(Y,z.u_image),u_tex_y_a:new i.Uniform1f(Y,z.u_tex_y_a),u_tex_y_b:new i.Uniform1f(Y,z.u_tex_y_b),u_mix:new i.Uniform1f(Y,z.u_mix)}},Xo=function(Y,z,K){var O=Y.transform;return{u_matrix:yl(Y,z,K),u_ratio:1/Cs(z,1,O.zoom),u_device_pixel_ratio:i.browser.devicePixelRatio,u_units_to_pixels:[1/O.pixelsToGLUnits[0],1/O.pixelsToGLUnits[1]]}},Ts=function(Y,z,K,O){return i.extend(Xo(Y,z,K),{u_image:0,u_image_height:O})},Qo=function(Y,z,K,O){var $=Y.transform,pe=Bo(z,$);return{u_matrix:yl(Y,z,K),u_texsize:z.imageAtlasTexture.size,u_ratio:1/Cs(z,1,$.zoom),u_device_pixel_ratio:i.browser.devicePixelRatio,u_image:0,u_scale:[pe,O.fromScale,O.toScale],u_fade:O.t,u_units_to_pixels:[1/$.pixelsToGLUnits[0],1/$.pixelsToGLUnits[1]]}},ys=function(Y,z,K,O,$){var pe=Y.transform,de=Y.lineAtlas,Ie=Bo(z,pe),$e=K.layout.get("line-cap")==="round",pt=de.getDash(O.from,$e),Kt=de.getDash(O.to,$e),ir=pt.width*$.fromScale,Jt=Kt.width*$.toScale;return i.extend(Xo(Y,z,K),{u_patternscale_a:[Ie/ir,-pt.height/2],u_patternscale_b:[Ie/Jt,-Kt.height/2],u_sdfgamma:de.width/(Math.min(ir,Jt)*256*i.browser.devicePixelRatio)/2,u_image:0,u_tex_y_a:pt.y,u_tex_y_b:Kt.y,u_mix:$.t})};function Bo(Y,z){return 1/Cs(Y,1,z.tileZoom)}function yl(Y,z,K){return Y.translatePosMatrix(z.tileID.posMatrix,z,K.paint.get("line-translate"),K.paint.get("line-translate-anchor"))}var Gs=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_tl_parent:new i.Uniform2f(Y,z.u_tl_parent),u_scale_parent:new i.Uniform1f(Y,z.u_scale_parent),u_buffer_scale:new i.Uniform1f(Y,z.u_buffer_scale),u_fade_t:new i.Uniform1f(Y,z.u_fade_t),u_opacity:new i.Uniform1f(Y,z.u_opacity),u_image0:new i.Uniform1i(Y,z.u_image0),u_image1:new i.Uniform1i(Y,z.u_image1),u_brightness_low:new i.Uniform1f(Y,z.u_brightness_low),u_brightness_high:new i.Uniform1f(Y,z.u_brightness_high),u_saturation_factor:new i.Uniform1f(Y,z.u_saturation_factor),u_contrast_factor:new i.Uniform1f(Y,z.u_contrast_factor),u_spin_weights:new i.Uniform3f(Y,z.u_spin_weights)}},Rs=function(Y,z,K,O,$){return{u_matrix:Y,u_tl_parent:z,u_scale_parent:K,u_buffer_scale:1,u_fade_t:O.mix,u_opacity:O.opacity*$.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:$.paint.get("raster-brightness-min"),u_brightness_high:$.paint.get("raster-brightness-max"),u_saturation_factor:vs($.paint.get("raster-saturation")),u_contrast_factor:Ka($.paint.get("raster-contrast")),u_spin_weights:ia($.paint.get("raster-hue-rotate"))}};function ia(Y){Y*=Math.PI/180;var z=Math.sin(Y),K=Math.cos(Y);return[(2*K+1)/3,(-Math.sqrt(3)*z-K+1)/3,(Math.sqrt(3)*z-K+1)/3]}function Ka(Y){return Y>0?1/(1-Y):1+Y}function vs(Y){return Y>0?1-1/(1.001-Y):-Y}var Ko=function(Y,z){return{u_is_size_zoom_constant:new i.Uniform1i(Y,z.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(Y,z.u_is_size_feature_constant),u_size_t:new i.Uniform1f(Y,z.u_size_t),u_size:new i.Uniform1f(Y,z.u_size),u_camera_to_center_distance:new i.Uniform1f(Y,z.u_camera_to_center_distance),u_pitch:new i.Uniform1f(Y,z.u_pitch),u_rotate_symbol:new i.Uniform1i(Y,z.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(Y,z.u_aspect_ratio),u_fade_change:new i.Uniform1f(Y,z.u_fade_change),u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(Y,z.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(Y,z.u_coord_matrix),u_is_text:new i.Uniform1i(Y,z.u_is_text),u_pitch_with_map:new i.Uniform1i(Y,z.u_pitch_with_map),u_texsize:new i.Uniform2f(Y,z.u_texsize),u_texture:new i.Uniform1i(Y,z.u_texture)}},iu=function(Y,z){return{u_is_size_zoom_constant:new i.Uniform1i(Y,z.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(Y,z.u_is_size_feature_constant),u_size_t:new i.Uniform1f(Y,z.u_size_t),u_size:new i.Uniform1f(Y,z.u_size),u_camera_to_center_distance:new i.Uniform1f(Y,z.u_camera_to_center_distance),u_pitch:new i.Uniform1f(Y,z.u_pitch),u_rotate_symbol:new i.Uniform1i(Y,z.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(Y,z.u_aspect_ratio),u_fade_change:new i.Uniform1f(Y,z.u_fade_change),u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(Y,z.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(Y,z.u_coord_matrix),u_is_text:new i.Uniform1i(Y,z.u_is_text),u_pitch_with_map:new i.Uniform1i(Y,z.u_pitch_with_map),u_texsize:new i.Uniform2f(Y,z.u_texsize),u_texture:new i.Uniform1i(Y,z.u_texture),u_gamma_scale:new i.Uniform1f(Y,z.u_gamma_scale),u_device_pixel_ratio:new i.Uniform1f(Y,z.u_device_pixel_ratio),u_is_halo:new i.Uniform1i(Y,z.u_is_halo)}},Ru=function(Y,z){return{u_is_size_zoom_constant:new i.Uniform1i(Y,z.u_is_size_zoom_constant),u_is_size_feature_constant:new i.Uniform1i(Y,z.u_is_size_feature_constant),u_size_t:new i.Uniform1f(Y,z.u_size_t),u_size:new i.Uniform1f(Y,z.u_size),u_camera_to_center_distance:new i.Uniform1f(Y,z.u_camera_to_center_distance),u_pitch:new i.Uniform1f(Y,z.u_pitch),u_rotate_symbol:new i.Uniform1i(Y,z.u_rotate_symbol),u_aspect_ratio:new i.Uniform1f(Y,z.u_aspect_ratio),u_fade_change:new i.Uniform1f(Y,z.u_fade_change),u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_label_plane_matrix:new i.UniformMatrix4f(Y,z.u_label_plane_matrix),u_coord_matrix:new i.UniformMatrix4f(Y,z.u_coord_matrix),u_is_text:new i.Uniform1i(Y,z.u_is_text),u_pitch_with_map:new i.Uniform1i(Y,z.u_pitch_with_map),u_texsize:new i.Uniform2f(Y,z.u_texsize),u_texsize_icon:new i.Uniform2f(Y,z.u_texsize_icon),u_texture:new i.Uniform1i(Y,z.u_texture),u_texture_icon:new i.Uniform1i(Y,z.u_texture_icon),u_gamma_scale:new i.Uniform1f(Y,z.u_gamma_scale),u_device_pixel_ratio:new i.Uniform1f(Y,z.u_device_pixel_ratio),u_is_halo:new i.Uniform1i(Y,z.u_is_halo)}},ac=function(Y,z,K,O,$,pe,de,Ie,$e,pt){var Kt=$.transform;return{u_is_size_zoom_constant:+(Y==="constant"||Y==="source"),u_is_size_feature_constant:+(Y==="constant"||Y==="camera"),u_size_t:z?z.uSizeT:0,u_size:z?z.uSize:0,u_camera_to_center_distance:Kt.cameraToCenterDistance,u_pitch:Kt.pitch/360*2*Math.PI,u_rotate_symbol:+K,u_aspect_ratio:Kt.width/Kt.height,u_fade_change:$.options.fadeDuration?$.symbolFadeChange:1,u_matrix:pe,u_label_plane_matrix:de,u_coord_matrix:Ie,u_is_text:+$e,u_pitch_with_map:+O,u_texsize:pt,u_texture:0}},mf=function(Y,z,K,O,$,pe,de,Ie,$e,pt,Kt){var ir=$.transform;return i.extend(ac(Y,z,K,O,$,pe,de,Ie,$e,pt),{u_gamma_scale:O?Math.cos(ir._pitch)*ir.cameraToCenterDistance:1,u_device_pixel_ratio:i.browser.devicePixelRatio,u_is_halo:+Kt})},bu=function(Y,z,K,O,$,pe,de,Ie,$e,pt){return i.extend(mf(Y,z,K,O,$,pe,de,Ie,!0,$e,!0),{u_texsize_icon:pt,u_texture_icon:1})},Kc=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_opacity:new i.Uniform1f(Y,z.u_opacity),u_color:new i.UniformColor(Y,z.u_color)}},Du=function(Y,z){return{u_matrix:new i.UniformMatrix4f(Y,z.u_matrix),u_opacity:new i.Uniform1f(Y,z.u_opacity),u_image:new i.Uniform1i(Y,z.u_image),u_pattern_tl_a:new i.Uniform2f(Y,z.u_pattern_tl_a),u_pattern_br_a:new i.Uniform2f(Y,z.u_pattern_br_a),u_pattern_tl_b:new i.Uniform2f(Y,z.u_pattern_tl_b),u_pattern_br_b:new i.Uniform2f(Y,z.u_pattern_br_b),u_texsize:new i.Uniform2f(Y,z.u_texsize),u_mix:new i.Uniform1f(Y,z.u_mix),u_pattern_size_a:new i.Uniform2f(Y,z.u_pattern_size_a),u_pattern_size_b:new i.Uniform2f(Y,z.u_pattern_size_b),u_scale_a:new i.Uniform1f(Y,z.u_scale_a),u_scale_b:new i.Uniform1f(Y,z.u_scale_b),u_pixel_coord_upper:new i.Uniform2f(Y,z.u_pixel_coord_upper),u_pixel_coord_lower:new i.Uniform2f(Y,z.u_pixel_coord_lower),u_tile_units_to_pixels:new i.Uniform1f(Y,z.u_tile_units_to_pixels)}},Dc=function(Y,z,K){return{u_matrix:Y,u_opacity:z,u_color:K}},Da=function(Y,z,K,O,$,pe){return i.extend(pf(O,pe,K,$),{u_matrix:Y,u_opacity:z})},eo={fillExtrusion:Ph,fillExtrusionPattern:Rl,fill:Rc,fillPattern:gc,fillOutline:hl,fillOutlinePattern:ru,circle:gt,collisionBox:wr,collisionCircle:vr,debug:xi,clippingMask:Xi,heatmap:Ti,heatmapTexture:qi,hillshade:Pn,hillshadePrepare:Ma,line:Cn,lineGradient:sn,linePattern:Ua,lineSDF:mo,raster:Gs,symbolIcon:Ko,symbolSDF:iu,symbolTextAndIcon:Ru,background:Kc,backgroundPattern:Du},Jc;function yc(Y,z,K,O,$,pe,de){for(var Ie=Y.context,$e=Ie.gl,pt=Y.useProgram("collisionBox"),Kt=[],ir=0,Jt=0,vt=0;vt0){var Ar=i.create(),gr=dr;i.mul(Ar,rr.placementInvProjMatrix,Y.transform.glCoordMatrix),i.mul(Ar,Ar,rr.placementViewportMatrix),Kt.push({circleArray:kr,circleOffset:Jt,transform:gr,invTransform:Ar}),ir+=kr.length/4,Jt=ir}pr&&pt.draw(Ie,$e.LINES,Wi.disabled,$i.disabled,Y.colorModeForRenderPass(),yr.disabled,Ur(dr,Y.transform,Wt),K.id,pr.layoutVertexBuffer,pr.indexBuffer,pr.segments,null,Y.transform.zoom,null,null,pr.collisionVertexBuffer)}}if(!(!de||!Kt.length)){var Cr=Y.useProgram("collisionCircle"),cr=new i.StructArrayLayout2f1f2i16;cr.resize(ir*4),cr._trim();for(var Gr=0,ei=0,yi=Kt;ei=0&&(Pt[rr.associatedIconIndex]={shiftedAnchor:ln,angle:Qn})}}if(Kt){vt.clear();for(var rn=Y.icon.placedSymbolArray,bn=0;bn0){var de=i.browser.now(),Ie=(de-Y.timeAdded)/pe,$e=z?(de-z.timeAdded)/pe:-1,pt=K.getSource(),Kt=$.coveringZoomLevel({tileSize:pt.tileSize,roundZoom:pt.roundZoom}),ir=!z||Math.abs(z.tileID.overscaledZ-Kt)>Math.abs(Y.tileID.overscaledZ-Kt),Jt=ir&&Y.refreshedUponExpiration?1:i.clamp(ir?Ie:1-$e,0,1);return Y.refreshedUponExpiration&&Ie>=1&&(Y.refreshedUponExpiration=!1),z?{opacity:1,mix:1-Jt}:{opacity:Jt,mix:0}}else return{opacity:1,mix:0}}function Ut(Y,z,K){var O=K.paint.get("background-color"),$=K.paint.get("background-opacity");if($!==0){var pe=Y.context,de=pe.gl,Ie=Y.transform,$e=Ie.tileSize,pt=K.paint.get("background-pattern");if(!Y.isPatternMissing(pt)){var Kt=!pt&&O.a===1&&$===1&&Y.opaquePassEnabledForLayer()?"opaque":"translucent";if(Y.renderPass===Kt){var ir=$i.disabled,Jt=Y.depthModeForSublayer(0,Kt==="opaque"?Wi.ReadWrite:Wi.ReadOnly),vt=Y.colorModeForRenderPass(),Pt=Y.useProgram(pt?"backgroundPattern":"background"),Wt=Ie.coveringTiles({tileSize:$e});pt&&(pe.activeTexture.set(de.TEXTURE0),Y.imageManager.bind(Y.context));for(var rr=K.getCrossfadeParameters(),dr=0,pr=Wt;dr "+K.overscaledZ);var dr=rr+" "+vt+"kb";Ga(Y,dr),de.draw(O,$.TRIANGLES,Ie,$e,ft.alphaBlended,yr.disabled,Fi(pe,i.Color.transparent,Wt),Kt,Y.debugBuffer,Y.quadTriangleIndexBuffer,Y.debugSegments)}function Ga(Y,z){Y.initDebugOverlayCanvas();var K=Y.debugOverlayCanvas,O=Y.context.gl,$=Y.debugOverlayCanvas.getContext("2d");$.clearRect(0,0,K.width,K.height),$.shadowColor="white",$.shadowBlur=2,$.lineWidth=1.5,$.strokeStyle="white",$.textBaseline="top",$.font="bold 36px Open Sans, sans-serif",$.fillText(z,5,5),$.strokeText(z,5,5),Y.debugOverlayTexture.update(K),Y.debugOverlayTexture.bind(O.LINEAR,O.CLAMP_TO_EDGE)}function To(Y,z,K){var O=Y.context,$=K.implementation;if(Y.renderPass==="offscreen"){var pe=$.prerender;pe&&(Y.setCustomLayerDefaults(),O.setColorMode(Y.colorModeForRenderPass()),pe.call($,O.gl,Y.transform.customLayerMatrix()),O.setDirty(),Y.setBaseState())}else if(Y.renderPass==="translucent"){Y.setCustomLayerDefaults(),O.setColorMode(Y.colorModeForRenderPass()),O.setStencilMode($i.disabled);var de=$.renderingMode==="3d"?new Wi(Y.context.gl.LEQUAL,Wi.ReadWrite,Y.depthRangeFor3D):Y.depthModeForSublayer(0,Wi.ReadOnly);O.setDepthMode(de),$.render(O.gl,Y.transform.customLayerMatrix()),O.setDirty(),Y.setBaseState(),O.bindFramebuffer.set(null)}}var Wa={symbol:w,circle:it,heatmap:yt,line:Sr,fill:he,"fill-extrusion":Pe,hillshade:Je,raster:Mt,background:Ut,debug:pa,custom:To},co=function(z,K){this.context=new Fr(z),this.transform=K,this._tileTextures={},this.setup(),this.numSublayers=Zr.maxUnderzooming+Zr.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new rh,this.gpuTimers={}};co.prototype.resize=function(z,K){if(this.width=z*i.browser.devicePixelRatio,this.height=K*i.browser.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(var O=0,$=this.style._order;O<$.length;O+=1){var pe=$[O];this.style._layers[pe].resize()}},co.prototype.setup=function(){var z=this.context,K=new i.StructArrayLayout2i4;K.emplaceBack(0,0),K.emplaceBack(i.EXTENT,0),K.emplaceBack(0,i.EXTENT),K.emplaceBack(i.EXTENT,i.EXTENT),this.tileExtentBuffer=z.createVertexBuffer(K,kc.members),this.tileExtentSegments=i.SegmentVector.simpleSegment(0,0,4,2);var O=new i.StructArrayLayout2i4;O.emplaceBack(0,0),O.emplaceBack(i.EXTENT,0),O.emplaceBack(0,i.EXTENT),O.emplaceBack(i.EXTENT,i.EXTENT),this.debugBuffer=z.createVertexBuffer(O,kc.members),this.debugSegments=i.SegmentVector.simpleSegment(0,0,4,5);var $=new i.StructArrayLayout4i8;$.emplaceBack(0,0,0,0),$.emplaceBack(i.EXTENT,0,i.EXTENT,0),$.emplaceBack(0,i.EXTENT,0,i.EXTENT),$.emplaceBack(i.EXTENT,i.EXTENT,i.EXTENT,i.EXTENT),this.rasterBoundsBuffer=z.createVertexBuffer($,Me.members),this.rasterBoundsSegments=i.SegmentVector.simpleSegment(0,0,4,2);var pe=new i.StructArrayLayout2i4;pe.emplaceBack(0,0),pe.emplaceBack(1,0),pe.emplaceBack(0,1),pe.emplaceBack(1,1),this.viewportBuffer=z.createVertexBuffer(pe,kc.members),this.viewportSegments=i.SegmentVector.simpleSegment(0,0,4,2);var de=new i.StructArrayLayout1ui2;de.emplaceBack(0),de.emplaceBack(1),de.emplaceBack(3),de.emplaceBack(2),de.emplaceBack(0),this.tileBorderIndexBuffer=z.createIndexBuffer(de);var Ie=new i.StructArrayLayout3ui6;Ie.emplaceBack(0,1,2),Ie.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=z.createIndexBuffer(Ie),this.emptyTexture=new i.Texture(z,{width:1,height:1,data:new Uint8Array([0,0,0,0])},z.gl.RGBA);var $e=this.context.gl;this.stencilClearMode=new $i({func:$e.ALWAYS,mask:0},0,255,$e.ZERO,$e.ZERO,$e.ZERO)},co.prototype.clearStencil=function(){var z=this.context,K=z.gl;this.nextStencilID=1,this.currentStencilSource=void 0;var O=i.create();i.ortho(O,0,this.width,this.height,0,0,1),i.scale(O,O,[K.drawingBufferWidth,K.drawingBufferHeight,0]),this.useProgram("clippingMask").draw(z,K.TRIANGLES,Wi.disabled,this.stencilClearMode,ft.disabled,yr.disabled,hn(O),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)},co.prototype._renderTileClippingMasks=function(z,K){if(!(this.currentStencilSource===z.source||!z.isTileClipped()||!K||!K.length)){this.currentStencilSource=z.source;var O=this.context,$=O.gl;this.nextStencilID+K.length>256&&this.clearStencil(),O.setColorMode(ft.disabled),O.setDepthMode(Wi.disabled);var pe=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var de=0,Ie=K;de256&&this.clearStencil();var z=this.nextStencilID++,K=this.context.gl;return new $i({func:K.NOTEQUAL,mask:255},z,255,K.KEEP,K.KEEP,K.REPLACE)},co.prototype.stencilModeForClipping=function(z){var K=this.context.gl;return new $i({func:K.EQUAL,mask:255},this._tileClippingMaskIDs[z.key],0,K.KEEP,K.KEEP,K.REPLACE)},co.prototype.stencilConfigForOverlap=function(z){var K,O=this.context.gl,$=z.sort(function(pt,Kt){return Kt.overscaledZ-pt.overscaledZ}),pe=$[$.length-1].overscaledZ,de=$[0].overscaledZ-pe+1;if(de>1){this.currentStencilSource=void 0,this.nextStencilID+de>256&&this.clearStencil();for(var Ie={},$e=0;$e=0;this.currentLayer--){var Ar=this.style._layers[$[this.currentLayer]],gr=pe[Ar.source],Cr=$e[Ar.source];this._renderTileClippingMasks(Ar,Cr),this.renderLayer(this,gr,Ar,Cr)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer<$.length;this.currentLayer++){var cr=this.style._layers[$[this.currentLayer]],Gr=pe[cr.source],ei=(cr.type==="symbol"?Kt:pt)[cr.source];this._renderTileClippingMasks(cr,$e[cr.source]),this.renderLayer(this,Gr,cr,ei)}if(this.options.showTileBoundaries){var yi,tn,Ri=i.values(this.style._layers);Ri.forEach(function(ln){ln.source&&!ln.isHidden(O.transform.zoom)&&(ln.source!==(tn&&tn.id)&&(tn=O.style.sourceCaches[ln.source]),(!yi||yi.getSource().maxzoom0?K.pop():null},co.prototype.isPatternMissing=function(z){if(!z)return!1;if(!z.from||!z.to)return!0;var K=this.imageManager.getPattern(z.from.toString()),O=this.imageManager.getPattern(z.to.toString());return!K||!O},co.prototype.useProgram=function(z,K){this.cache=this.cache||{};var O=""+z+(K?K.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[O]||(this.cache[O]=new Vf(this.context,z,Pf[z],K,eo[z],this._showOverdrawInspector)),this.cache[O]},co.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()},co.prototype.setBaseState=function(){var z=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(z.FUNC_ADD)},co.prototype.initDebugOverlayCanvas=function(){if(this.debugOverlayCanvas==null){this.debugOverlayCanvas=i.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512;var z=this.context.gl;this.debugOverlayTexture=new i.Texture(this.context,this.debugOverlayCanvas,z.RGBA)}},co.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()};var Ro=function(z,K){this.points=z,this.planes=K};Ro.fromInvProjectionMatrix=function(z,K,O){var $=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]],pe=Math.pow(2,O),de=$.map(function(pt){return i.transformMat4([],pt,z)}).map(function(pt){return i.scale$1([],pt,1/pt[3]/K*pe)}),Ie=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]],$e=Ie.map(function(pt){var Kt=i.sub([],de[pt[0]],de[pt[1]]),ir=i.sub([],de[pt[2]],de[pt[1]]),Jt=i.normalize([],i.cross([],Kt,ir)),vt=-i.dot(Jt,de[pt[1]]);return Jt.concat(vt)});return new Ro(de,$e)};var Ds=function(z,K){this.min=z,this.max=K,this.center=i.scale$2([],i.add([],this.min,this.max),.5)};Ds.prototype.quadrant=function(z){for(var K=[z%2===0,z<2],O=i.clone$2(this.min),$=i.clone$2(this.max),pe=0;pe=0;if(de===0)return 0;de!==K.length&&(O=!1)}if(O)return 2;for(var $e=0;$e<3;$e++){for(var pt=Number.MAX_VALUE,Kt=-Number.MAX_VALUE,ir=0;irthis.max[$e]-this.min[$e])return 0}return 1};var As=function(z,K,O,$){if(z===void 0&&(z=0),K===void 0&&(K=0),O===void 0&&(O=0),$===void 0&&($=0),isNaN(z)||z<0||isNaN(K)||K<0||isNaN(O)||O<0||isNaN($)||$<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=z,this.bottom=K,this.left=O,this.right=$};As.prototype.interpolate=function(z,K,O){return K.top!=null&&z.top!=null&&(this.top=i.number(z.top,K.top,O)),K.bottom!=null&&z.bottom!=null&&(this.bottom=i.number(z.bottom,K.bottom,O)),K.left!=null&&z.left!=null&&(this.left=i.number(z.left,K.left,O)),K.right!=null&&z.right!=null&&(this.right=i.number(z.right,K.right,O)),this},As.prototype.getCenter=function(z,K){var O=i.clamp((this.left+z-this.right)/2,0,z),$=i.clamp((this.top+K-this.bottom)/2,0,K);return new i.Point(O,$)},As.prototype.equals=function(z){return this.top===z.top&&this.bottom===z.bottom&&this.left===z.left&&this.right===z.right},As.prototype.clone=function(){return new As(this.top,this.bottom,this.left,this.right)},As.prototype.toJSON=function(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var yo=function(z,K,O,$,pe){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=pe===void 0?!0:pe,this._minZoom=z||0,this._maxZoom=K||22,this._minPitch=O==null?0:O,this._maxPitch=$==null?60:$,this.setMaxBounds(),this.width=0,this.height=0,this._center=new i.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new As,this._posMatrixCache={},this._alignedPosMatrixCache={}},po={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerOffset:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},padding:{configurable:!0},centerPoint:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};yo.prototype.clone=function(){var z=new yo(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return z.tileSize=this.tileSize,z.latRange=this.latRange,z.width=this.width,z.height=this.height,z._center=this._center,z.zoom=this.zoom,z.angle=this.angle,z._fov=this._fov,z._pitch=this._pitch,z._unmodified=this._unmodified,z._edgeInsets=this._edgeInsets.clone(),z._calcMatrices(),z},po.minZoom.get=function(){return this._minZoom},po.minZoom.set=function(Y){this._minZoom!==Y&&(this._minZoom=Y,this.zoom=Math.max(this.zoom,Y))},po.maxZoom.get=function(){return this._maxZoom},po.maxZoom.set=function(Y){this._maxZoom!==Y&&(this._maxZoom=Y,this.zoom=Math.min(this.zoom,Y))},po.minPitch.get=function(){return this._minPitch},po.minPitch.set=function(Y){this._minPitch!==Y&&(this._minPitch=Y,this.pitch=Math.max(this.pitch,Y))},po.maxPitch.get=function(){return this._maxPitch},po.maxPitch.set=function(Y){this._maxPitch!==Y&&(this._maxPitch=Y,this.pitch=Math.min(this.pitch,Y))},po.renderWorldCopies.get=function(){return this._renderWorldCopies},po.renderWorldCopies.set=function(Y){Y===void 0?Y=!0:Y===null&&(Y=!1),this._renderWorldCopies=Y},po.worldSize.get=function(){return this.tileSize*this.scale},po.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},po.size.get=function(){return new i.Point(this.width,this.height)},po.bearing.get=function(){return-this.angle/Math.PI*180},po.bearing.set=function(Y){var z=-i.wrap(Y,-180,180)*Math.PI/180;this.angle!==z&&(this._unmodified=!1,this.angle=z,this._calcMatrices(),this.rotationMatrix=i.create$2(),i.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},po.pitch.get=function(){return this._pitch/Math.PI*180},po.pitch.set=function(Y){var z=i.clamp(Y,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==z&&(this._unmodified=!1,this._pitch=z,this._calcMatrices())},po.fov.get=function(){return this._fov/Math.PI*180},po.fov.set=function(Y){Y=Math.max(.01,Math.min(60,Y)),this._fov!==Y&&(this._unmodified=!1,this._fov=Y/180*Math.PI,this._calcMatrices())},po.zoom.get=function(){return this._zoom},po.zoom.set=function(Y){var z=Math.min(Math.max(Y,this.minZoom),this.maxZoom);this._zoom!==z&&(this._unmodified=!1,this._zoom=z,this.scale=this.zoomScale(z),this.tileZoom=Math.floor(z),this.zoomFraction=z-this.tileZoom,this._constrain(),this._calcMatrices())},po.center.get=function(){return this._center},po.center.set=function(Y){Y.lat===this._center.lat&&Y.lng===this._center.lng||(this._unmodified=!1,this._center=Y,this._constrain(),this._calcMatrices())},po.padding.get=function(){return this._edgeInsets.toJSON()},po.padding.set=function(Y){this._edgeInsets.equals(Y)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,Y,1),this._calcMatrices())},po.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},yo.prototype.isPaddingEqual=function(z){return this._edgeInsets.equals(z)},yo.prototype.interpolatePadding=function(z,K,O){this._unmodified=!1,this._edgeInsets.interpolate(z,K,O),this._constrain(),this._calcMatrices()},yo.prototype.coveringZoomLevel=function(z){var K=(z.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/z.tileSize));return Math.max(0,K)},yo.prototype.getVisibleUnwrappedCoordinates=function(z){var K=[new i.UnwrappedTileID(0,z)];if(this._renderWorldCopies)for(var O=this.pointCoordinate(new i.Point(0,0)),$=this.pointCoordinate(new i.Point(this.width,0)),pe=this.pointCoordinate(new i.Point(this.width,this.height)),de=this.pointCoordinate(new i.Point(0,this.height)),Ie=Math.floor(Math.min(O.x,$.x,pe.x,de.x)),$e=Math.floor(Math.max(O.x,$.x,pe.x,de.x)),pt=1,Kt=Ie-pt;Kt<=$e+pt;Kt++)Kt!==0&&K.push(new i.UnwrappedTileID(Kt,z));return K},yo.prototype.coveringTiles=function(z){var K=this.coveringZoomLevel(z),O=K;if(z.minzoom!==void 0&&Kz.maxzoom&&(K=z.maxzoom);var $=i.MercatorCoordinate.fromLngLat(this.center),pe=Math.pow(2,K),de=[pe*$.x,pe*$.y,0],Ie=Ro.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,K),$e=z.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&($e=K);var pt=3,Kt=function(Ri){return{aabb:new Ds([Ri*pe,0,0],[(Ri+1)*pe,pe,0]),zoom:0,x:0,y:0,wrap:Ri,fullyVisible:!1}},ir=[],Jt=[],vt=K,Pt=z.reparseOverscaled?O:K;if(this._renderWorldCopies)for(var Wt=1;Wt<=3;Wt++)ir.push(Kt(-Wt)),ir.push(Kt(Wt));for(ir.push(Kt(0));ir.length>0;){var rr=ir.pop(),dr=rr.x,pr=rr.y,kr=rr.fullyVisible;if(!kr){var Ar=rr.aabb.intersects(Ie);if(Ar===0)continue;kr=Ar===2}var gr=rr.aabb.distanceX(de),Cr=rr.aabb.distanceY(de),cr=Math.max(Math.abs(gr),Math.abs(Cr)),Gr=pt+(1<Gr&&rr.zoom>=$e){Jt.push({tileID:new i.OverscaledTileID(rr.zoom===vt?Pt:rr.zoom,rr.wrap,rr.zoom,dr,pr),distanceSq:i.sqrLen([de[0]-.5-dr,de[1]-.5-pr])});continue}for(var ei=0;ei<4;ei++){var yi=(dr<<1)+ei%2,tn=(pr<<1)+(ei>>1);ir.push({aabb:rr.aabb.quadrant(ei),zoom:rr.zoom+1,x:yi,y:tn,wrap:rr.wrap,fullyVisible:kr})}}return Jt.sort(function(Ri,ln){return Ri.distanceSq-ln.distanceSq}).map(function(Ri){return Ri.tileID})},yo.prototype.resize=function(z,K){this.width=z,this.height=K,this.pixelsToGLUnits=[2/z,-2/K],this._constrain(),this._calcMatrices()},po.unmodified.get=function(){return this._unmodified},yo.prototype.zoomScale=function(z){return Math.pow(2,z)},yo.prototype.scaleZoom=function(z){return Math.log(z)/Math.LN2},yo.prototype.project=function(z){var K=i.clamp(z.lat,-this.maxValidLatitude,this.maxValidLatitude);return new i.Point(i.mercatorXfromLng(z.lng)*this.worldSize,i.mercatorYfromLat(K)*this.worldSize)},yo.prototype.unproject=function(z){return new i.MercatorCoordinate(z.x/this.worldSize,z.y/this.worldSize).toLngLat()},po.point.get=function(){return this.project(this.center)},yo.prototype.setLocationAtPoint=function(z,K){var O=this.pointCoordinate(K),$=this.pointCoordinate(this.centerPoint),pe=this.locationCoordinate(z),de=new i.MercatorCoordinate(pe.x-(O.x-$.x),pe.y-(O.y-$.y));this.center=this.coordinateLocation(de),this._renderWorldCopies&&(this.center=this.center.wrap())},yo.prototype.locationPoint=function(z){return this.coordinatePoint(this.locationCoordinate(z))},yo.prototype.pointLocation=function(z){return this.coordinateLocation(this.pointCoordinate(z))},yo.prototype.locationCoordinate=function(z){return i.MercatorCoordinate.fromLngLat(z)},yo.prototype.coordinateLocation=function(z){return z.toLngLat()},yo.prototype.pointCoordinate=function(z){var K=0,O=[z.x,z.y,0,1],$=[z.x,z.y,1,1];i.transformMat4(O,O,this.pixelMatrixInverse),i.transformMat4($,$,this.pixelMatrixInverse);var pe=O[3],de=$[3],Ie=O[0]/pe,$e=$[0]/de,pt=O[1]/pe,Kt=$[1]/de,ir=O[2]/pe,Jt=$[2]/de,vt=ir===Jt?0:(K-ir)/(Jt-ir);return new i.MercatorCoordinate(i.number(Ie,$e,vt)/this.worldSize,i.number(pt,Kt,vt)/this.worldSize)},yo.prototype.coordinatePoint=function(z){var K=[z.x*this.worldSize,z.y*this.worldSize,0,1];return i.transformMat4(K,K,this.pixelMatrix),new i.Point(K[0]/K[3],K[1]/K[3])},yo.prototype.getBounds=function(){return new i.LngLatBounds().extend(this.pointLocation(new i.Point(0,0))).extend(this.pointLocation(new i.Point(this.width,0))).extend(this.pointLocation(new i.Point(this.width,this.height))).extend(this.pointLocation(new i.Point(0,this.height)))},yo.prototype.getMaxBounds=function(){return!this.latRange||this.latRange.length!==2||!this.lngRange||this.lngRange.length!==2?null:new i.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]])},yo.prototype.setMaxBounds=function(z){z?(this.lngRange=[z.getWest(),z.getEast()],this.latRange=[z.getSouth(),z.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])},yo.prototype.calculatePosMatrix=function(z,K){K===void 0&&(K=!1);var O=z.key,$=K?this._alignedPosMatrixCache:this._posMatrixCache;if($[O])return $[O];var pe=z.canonical,de=this.worldSize/this.zoomScale(pe.z),Ie=pe.x+Math.pow(2,pe.z)*z.wrap,$e=i.identity(new Float64Array(16));return i.translate($e,$e,[Ie*de,pe.y*de,0]),i.scale($e,$e,[de/i.EXTENT,de/i.EXTENT,1]),i.multiply($e,K?this.alignedProjMatrix:this.projMatrix,$e),$[O]=new Float32Array($e),$[O]},yo.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},yo.prototype._constrain=function(){if(!(!this.center||!this.width||!this.height||this._constraining)){this._constraining=!0;var z=-90,K=90,O=-180,$=180,pe,de,Ie,$e,pt=this.size,Kt=this._unmodified;if(this.latRange){var ir=this.latRange;z=i.mercatorYfromLat(ir[1])*this.worldSize,K=i.mercatorYfromLat(ir[0])*this.worldSize,pe=K-zK&&($e=K-rr)}if(this.lngRange){var dr=vt.x,pr=pt.x/2;dr-pr$&&(Ie=$-pr)}(Ie!==void 0||$e!==void 0)&&(this.center=this.unproject(new i.Point(Ie!==void 0?Ie:vt.x,$e!==void 0?$e:vt.y))),this._unmodified=Kt,this._constraining=!1}},yo.prototype._calcMatrices=function(){if(this.height){var z=this._fov/2,K=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(z)*this.height;var O=Math.PI/2+this._pitch,$=this._fov*(.5+K.y/this.height),pe=Math.sin($)*this.cameraToCenterDistance/Math.sin(i.clamp(Math.PI-O-$,.01,Math.PI-.01)),de=this.point,Ie=de.x,$e=de.y,pt=Math.cos(Math.PI/2-this._pitch)*pe+this.cameraToCenterDistance,Kt=pt*1.01,ir=this.height/50,Jt=new Float64Array(16);i.perspective(Jt,this._fov,this.width/this.height,ir,Kt),Jt[8]=-K.x*2/this.width,Jt[9]=K.y*2/this.height,i.scale(Jt,Jt,[1,-1,1]),i.translate(Jt,Jt,[0,0,-this.cameraToCenterDistance]),i.rotateX(Jt,Jt,this._pitch),i.rotateZ(Jt,Jt,this.angle),i.translate(Jt,Jt,[-Ie,-$e,0]),this.mercatorMatrix=i.scale([],Jt,[this.worldSize,this.worldSize,this.worldSize]),i.scale(Jt,Jt,[1,1,i.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=Jt,this.invProjMatrix=i.invert([],this.projMatrix);var vt=this.width%2/2,Pt=this.height%2/2,Wt=Math.cos(this.angle),rr=Math.sin(this.angle),dr=Ie-Math.round(Ie)+Wt*vt+rr*Pt,pr=$e-Math.round($e)+Wt*Pt+rr*vt,kr=new Float64Array(Jt);if(i.translate(kr,kr,[dr>.5?dr-1:dr,pr>.5?pr-1:pr,0]),this.alignedProjMatrix=kr,Jt=i.create(),i.scale(Jt,Jt,[this.width/2,-this.height/2,1]),i.translate(Jt,Jt,[1,-1,0]),this.labelPlaneMatrix=Jt,Jt=i.create(),i.scale(Jt,Jt,[1,-1,1]),i.translate(Jt,Jt,[-1,-1,0]),i.scale(Jt,Jt,[2/this.width,2/this.height,1]),this.glCoordMatrix=Jt,this.pixelMatrix=i.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),Jt=i.invert(new Float64Array(16),this.pixelMatrix),!Jt)throw new Error("failed to invert matrix");this.pixelMatrixInverse=Jt,this._posMatrixCache={},this._alignedPosMatrixCache={}}},yo.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var z=this.pointCoordinate(new i.Point(0,0)),K=[z.x*this.worldSize,z.y*this.worldSize,0,1],O=i.transformMat4(K,K,this.pixelMatrix);return O[3]/this.cameraToCenterDistance},yo.prototype.getCameraPoint=function(){var z=this._pitch,K=Math.tan(z)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new i.Point(0,K))},yo.prototype.getCameraQueryGeometry=function(z){var K=this.getCameraPoint();if(z.length===1)return[z[0],K];for(var O=K.x,$=K.y,pe=K.x,de=K.y,Ie=0,$e=z;Ie<$e.length;Ie+=1){var pt=$e[Ie];O=Math.min(O,pt.x),$=Math.min($,pt.y),pe=Math.max(pe,pt.x),de=Math.max(de,pt.y)}return[new i.Point(O,$),new i.Point(pe,$),new i.Point(pe,de),new i.Point(O,de),new i.Point(O,$)]},Object.defineProperties(yo.prototype,po);function _l(Y,z){var K=!1,O=null,$=function(){O=null,K&&(Y(),O=setTimeout($,z),K=!1)};return function(){return K=!0,O||$(),O}}var Vl=function(z){this._hashName=z&&encodeURIComponent(z),i.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=_l(this._updateHashUnthrottled.bind(this),30*1e3/100)};Vl.prototype.addTo=function(z){return this._map=z,i.window.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},Vl.prototype.remove=function(){return i.window.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this},Vl.prototype.getHashString=function(z){var K=this._map.getCenter(),O=Math.round(this._map.getZoom()*100)/100,$=Math.ceil((O*Math.LN2+Math.log(512/360/.5))/Math.LN10),pe=Math.pow(10,$),de=Math.round(K.lng*pe)/pe,Ie=Math.round(K.lat*pe)/pe,$e=this._map.getBearing(),pt=this._map.getPitch(),Kt="";if(z?Kt+="/"+de+"/"+Ie+"/"+O:Kt+=O+"/"+Ie+"/"+de,($e||pt)&&(Kt+="/"+Math.round($e*10)/10),pt&&(Kt+="/"+Math.round(pt)),this._hashName){var ir=this._hashName,Jt=!1,vt=i.window.location.hash.slice(1).split("&").map(function(Pt){var Wt=Pt.split("=")[0];return Wt===ir?(Jt=!0,Wt+"="+Kt):Pt}).filter(function(Pt){return Pt});return Jt||vt.push(ir+"="+Kt),"#"+vt.join("&")}return"#"+Kt},Vl.prototype._getCurrentHash=function(){var z=this,K=i.window.location.hash.replace("#","");if(this._hashName){var O;return K.split("&").map(function($){return $.split("=")}).forEach(function($){$[0]===z._hashName&&(O=$)}),(O&&O[1]||"").split("/")}return K.split("/")},Vl.prototype._onHashChange=function(){var z=this._getCurrentHash();if(z.length>=3&&!z.some(function(O){return isNaN(O)})){var K=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(z[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+z[2],+z[1]],zoom:+z[0],bearing:K,pitch:+(z[4]||0)}),!0}return!1},Vl.prototype._updateHashUnthrottled=function(){var z=i.window.location.href.replace(/(#.+)?$/,this.getHashString());try{i.window.history.replaceState(i.window.history.state,null,z)}catch(K){}};var Zu={linearity:.3,easing:i.bezier(0,0,.3,1)},cu=i.extend({deceleration:2500,maxSpeed:1400},Zu),el=i.extend({deceleration:20,maxSpeed:1400},Zu),nu=i.extend({deceleration:1e3,maxSpeed:360},Zu),zc=i.extend({deceleration:1e3,maxSpeed:90},Zu),Dl=function(z){this._map=z,this.clear()};Dl.prototype.clear=function(){this._inertiaBuffer=[]},Dl.prototype.record=function(z){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:i.browser.now(),settings:z})},Dl.prototype._drainInertiaBuffer=function(){for(var z=this._inertiaBuffer,K=i.browser.now(),O=160;z.length>0&&K-z[0].time>O;)z.shift()},Dl.prototype._onMoveEnd=function(z){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var K={zoom:0,bearing:0,pitch:0,pan:new i.Point(0,0),pinchAround:void 0,around:void 0},O=0,$=this._inertiaBuffer;O<$.length;O+=1){var pe=$[O],de=pe.settings;K.zoom+=de.zoomDelta||0,K.bearing+=de.bearingDelta||0,K.pitch+=de.pitchDelta||0,de.panDelta&&K.pan._add(de.panDelta),de.around&&(K.around=de.around),de.pinchAround&&(K.pinchAround=de.pinchAround)}var Ie=this._inertiaBuffer[this._inertiaBuffer.length-1],$e=Ie.time-this._inertiaBuffer[0].time,pt={};if(K.pan.mag()){var Kt=Z(K.pan.mag(),$e,i.extend({},cu,z||{}));pt.offset=K.pan.mult(Kt.amount/K.pan.mag()),pt.center=this._map.transform.center,zl(pt,Kt)}if(K.zoom){var ir=Z(K.zoom,$e,el);pt.zoom=this._map.transform.zoom+ir.amount,zl(pt,ir)}if(K.bearing){var Jt=Z(K.bearing,$e,nu);pt.bearing=this._map.transform.bearing+i.clamp(Jt.amount,-179,179),zl(pt,Jt)}if(K.pitch){var vt=Z(K.pitch,$e,zc);pt.pitch=this._map.transform.pitch+vt.amount,zl(pt,vt)}if(pt.zoom||pt.bearing){var Pt=K.pinchAround===void 0?K.around:K.pinchAround;pt.around=Pt?this._map.unproject(Pt):this._map.getCenter()}return this.clear(),i.extend(pt,{noMoveStart:!0})}};function zl(Y,z){(!Y.duration||Y.duration=this._clickTolerance||this._map.fire(new oe(z.type,this._map,z))},Ue.prototype.dblclick=function(z){return this._firePreventable(new oe(z.type,this._map,z))},Ue.prototype.mouseover=function(z){this._map.fire(new oe(z.type,this._map,z))},Ue.prototype.mouseout=function(z){this._map.fire(new oe(z.type,this._map,z))},Ue.prototype.touchstart=function(z){return this._firePreventable(new we(z.type,this._map,z))},Ue.prototype.touchmove=function(z){this._map.fire(new we(z.type,this._map,z))},Ue.prototype.touchend=function(z){this._map.fire(new we(z.type,this._map,z))},Ue.prototype.touchcancel=function(z){this._map.fire(new we(z.type,this._map,z))},Ue.prototype._firePreventable=function(z){if(this._map.fire(z),z.defaultPrevented)return{}},Ue.prototype.isEnabled=function(){return!0},Ue.prototype.isActive=function(){return!1},Ue.prototype.enable=function(){},Ue.prototype.disable=function(){};var We=function(z){this._map=z};We.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent},We.prototype.mousemove=function(z){this._map.fire(new oe(z.type,this._map,z))},We.prototype.mousedown=function(){this._delayContextMenu=!0},We.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new oe("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)},We.prototype.contextmenu=function(z){this._delayContextMenu?this._contextMenuEvent=z:this._map.fire(new oe(z.type,this._map,z)),this._map.listens("contextmenu")&&z.preventDefault()},We.prototype.isEnabled=function(){return!0},We.prototype.isActive=function(){return!1},We.prototype.enable=function(){},We.prototype.disable=function(){};var wt=function(z,K){this._map=z,this._el=z.getCanvasContainer(),this._container=z.getContainer(),this._clickTolerance=K.clickTolerance||1};wt.prototype.isEnabled=function(){return!!this._enabled},wt.prototype.isActive=function(){return!!this._active},wt.prototype.enable=function(){this.isEnabled()||(this._enabled=!0)},wt.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},wt.prototype.mousedown=function(z,K){this.isEnabled()&&z.shiftKey&&z.button===0&&(o.disableDrag(),this._startPos=this._lastPos=K,this._active=!0)},wt.prototype.mousemoveWindow=function(z,K){if(this._active){var O=K;if(!(this._lastPos.equals(O)||!this._box&&O.dist(this._startPos)this.numTouches)&&(this.aborted=!0),!this.aborted&&(this.startTime===void 0&&(this.startTime=z.timeStamp),O.length===this.numTouches&&(this.centroid=zt(K),this.touches=tt(O,K)))},Ir.prototype.touchmove=function(z,K,O){if(!(this.aborted||!this.centroid)){var $=tt(O,K);for(var pe in this.touches){var de=this.touches[pe],Ie=$[pe];(!Ie||Ie.dist(de)>Dr)&&(this.aborted=!0)}}},Ir.prototype.touchend=function(z,K,O){if((!this.centroid||z.timeStamp-this.startTime>lr)&&(this.aborted=!0),O.length===0){var $=!this.aborted&&this.centroid;if(this.reset(),$)return $}};var oi=function(z){this.singleTap=new Ir(z),this.numTaps=z.numTaps,this.reset()};oi.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()},oi.prototype.touchstart=function(z,K,O){this.singleTap.touchstart(z,K,O)},oi.prototype.touchmove=function(z,K,O){this.singleTap.touchmove(z,K,O)},oi.prototype.touchend=function(z,K,O){var $=this.singleTap.touchend(z,K,O);if($){var pe=z.timeStamp-this.lastTime0&&(this._active=!0);var $=tt(O,K),pe=new i.Point(0,0),de=new i.Point(0,0),Ie=0;for(var $e in $){var pt=$[$e],Kt=this._touches[$e];Kt&&(pe._add(pt),de._add(pt.sub(Kt)),Ie++,$[$e]=pt)}if(this._touches=$,!(IeMath.abs(Y.x)}var pn=100,za=function(Y){function z(){Y.apply(this,arguments)}return Y&&(z.__proto__=Y),z.prototype=Object.create(Y&&Y.prototype),z.prototype.constructor=z,z.prototype.reset=function(){Y.prototype.reset.call(this),this._valid=void 0,delete this._firstMove,delete this._lastPoints},z.prototype._start=function(O){this._lastPoints=O,Ns(O[0].sub(O[1]))&&(this._valid=!1)},z.prototype._move=function(O,$,pe){var de=O[0].sub(this._lastPoints[0]),Ie=O[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(de,Ie,pe.timeStamp),!!this._valid){this._lastPoints=O,this._active=!0;var $e=(de.y+Ie.y)/2,pt=-.5;return{pitchDelta:$e*pt}}},z.prototype.gestureBeginsVertically=function(O,$,pe){if(this._valid!==void 0)return this._valid;var de=2,Ie=O.mag()>=de,$e=$.mag()>=de;if(!(!Ie&&!$e)){if(!Ie||!$e)return this._firstMove===void 0&&(this._firstMove=pe),pe-this._firstMove0==$.y>0;return Ns(O)&&Ns($)&&pt}},z}(Nn),Lo={panStep:100,bearingStep:15,pitchStep:10},Fo=function(){var z=Lo;this._panStep=z.panStep,this._bearingStep=z.bearingStep,this._pitchStep=z.pitchStep,this._rotationDisabled=!1};Fo.prototype.reset=function(){this._active=!1},Fo.prototype.keydown=function(z){var K=this;if(!(z.altKey||z.ctrlKey||z.metaKey)){var O=0,$=0,pe=0,de=0,Ie=0;switch(z.keyCode){case 61:case 107:case 171:case 187:O=1;break;case 189:case 109:case 173:O=-1;break;case 37:z.shiftKey?$=-1:(z.preventDefault(),de=-1);break;case 39:z.shiftKey?$=1:(z.preventDefault(),de=1);break;case 38:z.shiftKey?pe=1:(z.preventDefault(),Ie=-1);break;case 40:z.shiftKey?pe=-1:(z.preventDefault(),Ie=1);break;default:return}return this._rotationDisabled&&($=0,pe=0),{cameraAnimation:function($e){var pt=$e.getZoom();$e.easeTo({duration:300,easeId:"keyboardHandler",easing:js,zoom:O?Math.round(pt)+O*(z.shiftKey?2:1):pt,bearing:$e.getBearing()+$*K._bearingStep,pitch:$e.getPitch()+pe*K._pitchStep,offset:[-de*K._panStep,-Ie*K._panStep],center:$e.getCenter()},{originalEvent:z})}}}},Fo.prototype.enable=function(){this._enabled=!0},Fo.prototype.disable=function(){this._enabled=!1,this.reset()},Fo.prototype.isEnabled=function(){return this._enabled},Fo.prototype.isActive=function(){return this._active},Fo.prototype.disableRotation=function(){this._rotationDisabled=!0},Fo.prototype.enableRotation=function(){this._rotationDisabled=!1};function js(Y){return Y*(2-Y)}var xl=4.000244140625,fu=1/100,dl=1/450,xc=2,At=function(z,K){this._map=z,this._el=z.getCanvasContainer(),this._handler=K,this._delta=0,this._defaultZoomRate=fu,this._wheelZoomRate=dl,i.bindAll(["_onTimeout"],this)};At.prototype.setZoomRate=function(z){this._defaultZoomRate=z},At.prototype.setWheelZoomRate=function(z){this._wheelZoomRate=z},At.prototype.isEnabled=function(){return!!this._enabled},At.prototype.isActive=function(){return!!this._active||this._finishTimeout!==void 0},At.prototype.isZooming=function(){return!!this._zooming},At.prototype.enable=function(z){this.isEnabled()||(this._enabled=!0,this._aroundCenter=z&&z.around==="center")},At.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},At.prototype.wheel=function(z){if(this.isEnabled()){var K=z.deltaMode===i.window.WheelEvent.DOM_DELTA_LINE?z.deltaY*40:z.deltaY,O=i.browser.now(),$=O-(this._lastWheelEventTime||0);this._lastWheelEventTime=O,K!==0&&K%xl===0?this._type="wheel":K!==0&&Math.abs(K)<4?this._type="trackpad":$>400?(this._type=null,this._lastValue=K,this._timeout=setTimeout(this._onTimeout,40,z)):this._type||(this._type=Math.abs($*K)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,K+=this._lastValue)),z.shiftKey&&K&&(K=K/4),this._type&&(this._lastWheelEvent=z,this._delta-=K,this._active||this._start(z)),z.preventDefault()}},At.prototype._onTimeout=function(z){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(z)},At.prototype._start=function(z){if(this._delta){this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);var K=o.mousePos(this._el,z);this._around=i.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(K)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}},At.prototype.renderFrame=function(){var z=this;if(this._frameId&&(this._frameId=null,!!this.isActive())){var K=this._map.transform;if(this._delta!==0){var O=this._type==="wheel"&&Math.abs(this._delta)>xl?this._wheelZoomRate:this._defaultZoomRate,$=xc/(1+Math.exp(-Math.abs(this._delta*O)));this._delta<0&&$!==0&&($=1/$);var pe=typeof this._targetZoom=="number"?K.zoomScale(this._targetZoom):K.scale;this._targetZoom=Math.min(K.maxZoom,Math.max(K.minZoom,K.scaleZoom(pe*$))),this._type==="wheel"&&(this._startZoom=K.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var de=typeof this._targetZoom=="number"?this._targetZoom:K.zoom,Ie=this._startZoom,$e=this._easing,pt=!1,Kt;if(this._type==="wheel"&&Ie&&$e){var ir=Math.min((i.browser.now()-this._lastWheelEventTime)/200,1),Jt=$e(ir);Kt=i.number(Ie,de,Jt),ir<1?this._frameId||(this._frameId=!0):pt=!0}else Kt=de,pt=!0;return this._active=!0,pt&&(this._active=!1,this._finishTimeout=setTimeout(function(){z._zooming=!1,z._handler._triggerRenderFrame(),delete z._targetZoom,delete z._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!pt,zoomDelta:Kt-K.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},At.prototype._smoothOutEasing=function(z){var K=i.ease;if(this._prevEase){var O=this._prevEase,$=(i.browser.now()-O.start)/O.duration,pe=O.easing($+.01)-O.easing($),de=.27/Math.sqrt(pe*pe+1e-4)*.01,Ie=Math.sqrt(.27*.27-de*de);K=i.bezier(de,Ie,.25,1)}return this._prevEase={start:i.browser.now(),duration:z,easing:K},K},At.prototype.reset=function(){this._active=!1};var Er=function(z,K){this._clickZoom=z,this._tapZoom=K};Er.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable()},Er.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable()},Er.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},Er.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var Wr=function(){this.reset()};Wr.prototype.reset=function(){this._active=!1},Wr.prototype.dblclick=function(z,K){return z.preventDefault(),{cameraAnimation:function(O){O.easeTo({duration:300,zoom:O.getZoom()+(z.shiftKey?-1:1),around:O.unproject(K)},{originalEvent:z})}}},Wr.prototype.enable=function(){this._enabled=!0},Wr.prototype.disable=function(){this._enabled=!1,this.reset()},Wr.prototype.isEnabled=function(){return this._enabled},Wr.prototype.isActive=function(){return this._active};var wi=function(){this._tap=new oi({numTouches:1,numTaps:1}),this.reset()};wi.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()},wi.prototype.touchstart=function(z,K,O){this._swipePoint||(this._tapTime&&z.timeStamp-this._tapTime>or&&this.reset(),this._tapTime?O.length>0&&(this._swipePoint=K[0],this._swipeTouch=O[0].identifier):this._tap.touchstart(z,K,O))},wi.prototype.touchmove=function(z,K,O){if(!this._tapTime)this._tap.touchmove(z,K,O);else if(this._swipePoint){if(O[0].identifier!==this._swipeTouch)return;var $=K[0],pe=$.y-this._swipePoint.y;return this._swipePoint=$,z.preventDefault(),this._active=!0,{zoomDelta:pe/128}}},wi.prototype.touchend=function(z,K,O){if(this._tapTime)this._swipePoint&&O.length===0&&this.reset();else{var $=this._tap.touchend(z,K,O);$&&(this._tapTime=z.timeStamp)}},wi.prototype.touchcancel=function(){this.reset()},wi.prototype.enable=function(){this._enabled=!0},wi.prototype.disable=function(){this._enabled=!1,this.reset()},wi.prototype.isEnabled=function(){return this._enabled},wi.prototype.isActive=function(){return this._active};var Ui=function(z,K,O){this._el=z,this._mousePan=K,this._touchPan=O};Ui.prototype.enable=function(z){this._inertiaOptions=z||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")},Ui.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")},Ui.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},Ui.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var Oi=function(z,K,O){this._pitchWithRotate=z.pitchWithRotate,this._mouseRotate=K,this._mousePitch=O};Oi.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()},Oi.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable()},Oi.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},Oi.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var Bi=function(z,K,O,$){this._el=z,this._touchZoom=K,this._touchRotate=O,this._tapDragZoom=$,this._rotationDisabled=!1,this._enabled=!0};Bi.prototype.enable=function(z){this._touchZoom.enable(z),this._rotationDisabled||this._touchRotate.enable(z),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")},Bi.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")},Bi.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},Bi.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},Bi.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable()},Bi.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()};var cn=function(Y){return Y.zoom||Y.drag||Y.pitch||Y.rotate},On=function(Y){function z(){Y.apply(this,arguments)}return Y&&(z.__proto__=Y),z.prototype=Object.create(Y&&Y.prototype),z.prototype.constructor=z,z}(i.Event);function Bn(Y){return Y.panDelta&&Y.panDelta.mag()||Y.zoomDelta||Y.bearingDelta||Y.pitchDelta}var yn=function(z,K){this._map=z,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Dl(z),this._bearingSnap=K.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(K),i.bindAll(["handleEvent","handleWindowEvent"],this);var O=this._el;this._listeners=[[O,"touchstart",{passive:!0}],[O,"touchmove",{passive:!1}],[O,"touchend",void 0],[O,"touchcancel",void 0],[O,"mousedown",void 0],[O,"mousemove",void 0],[O,"mouseup",void 0],[i.window.document,"mousemove",{capture:!0}],[i.window.document,"mouseup",void 0],[O,"mouseover",void 0],[O,"mouseout",void 0],[O,"dblclick",void 0],[O,"click",void 0],[O,"keydown",{capture:!1}],[O,"keyup",void 0],[O,"wheel",{passive:!1}],[O,"contextmenu",void 0],[i.window,"blur",void 0]];for(var $=0,pe=this._listeners;$Ie?Math.min(2,gr):Math.max(.5,gr),Ri=Math.pow(tn,1-ei),ln=de.unproject(kr.add(Ar.mult(ei*Ri)).mult(yi));de.setLocationAtPoint(de.renderWorldCopies?ln.wrap():ln,rr)}pe._fireMoveEvents($)},function(ei){pe._afterEase($,ei)},O),this},z.prototype._prepareEase=function(O,$,pe){pe===void 0&&(pe={}),this._moving=!0,!$&&!pe.moving&&this.fire(new i.Event("movestart",O)),this._zooming&&!pe.zooming&&this.fire(new i.Event("zoomstart",O)),this._rotating&&!pe.rotating&&this.fire(new i.Event("rotatestart",O)),this._pitching&&!pe.pitching&&this.fire(new i.Event("pitchstart",O))},z.prototype._fireMoveEvents=function(O){this.fire(new i.Event("move",O)),this._zooming&&this.fire(new i.Event("zoom",O)),this._rotating&&this.fire(new i.Event("rotate",O)),this._pitching&&this.fire(new i.Event("pitch",O))},z.prototype._afterEase=function(O,$){if(!(this._easeId&&$&&this._easeId===$)){delete this._easeId;var pe=this._zooming,de=this._rotating,Ie=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,pe&&this.fire(new i.Event("zoomend",O)),de&&this.fire(new i.Event("rotateend",O)),Ie&&this.fire(new i.Event("pitchend",O)),this.fire(new i.Event("moveend",O))}},z.prototype.flyTo=function(O,$){var pe=this;if(!O.essential&&i.browser.prefersReducedMotion){var de=i.pick(O,["center","zoom","bearing","pitch","around"]);return this.jumpTo(de,$)}this.stop(),O=i.extend({offset:[0,0],speed:1.2,curve:1.42,easing:i.ease},O);var Ie=this.transform,$e=this.getZoom(),pt=this.getBearing(),Kt=this.getPitch(),ir=this.getPadding(),Jt="zoom"in O?i.clamp(+O.zoom,Ie.minZoom,Ie.maxZoom):$e,vt="bearing"in O?this._normalizeBearing(O.bearing,pt):pt,Pt="pitch"in O?+O.pitch:Kt,Wt="padding"in O?O.padding:Ie.padding,rr=Ie.zoomScale(Jt-$e),dr=i.Point.convert(O.offset),pr=Ie.centerPoint.add(dr),kr=Ie.pointLocation(pr),Ar=i.LngLat.convert(O.center||kr);this._normalizeCenter(Ar);var gr=Ie.project(kr),Cr=Ie.project(Ar).sub(gr),cr=O.curve,Gr=Math.max(Ie.width,Ie.height),ei=Gr/rr,yi=Cr.mag();if("minZoom"in O){var tn=i.clamp(Math.min(O.minZoom,$e,Jt),Ie.minZoom,Ie.maxZoom),Ri=Gr/Ie.zoomScale(tn-$e);cr=Math.sqrt(Ri/yi*2)}var ln=cr*cr;function Qn(fo){var as=(ei*ei-Gr*Gr+(fo?-1:1)*ln*ln*yi*yi)/(2*(fo?ei:Gr)*ln*yi);return Math.log(Math.sqrt(as*as+1)-as)}function qn(fo){return(Math.exp(fo)-Math.exp(-fo))/2}function rn(fo){return(Math.exp(fo)+Math.exp(-fo))/2}function bn(fo){return qn(fo)/rn(fo)}var mn=Qn(0),Gn=function(fo){return rn(mn)/rn(mn+cr*fo)},da=function(fo){return Gr*((rn(mn)*bn(mn+cr*fo)-qn(mn))/ln)/yi},No=(Qn(1)-mn)/cr;if(Math.abs(yi)<1e-6||!isFinite(No)){if(Math.abs(Gr-ei)<1e-6)return this.easeTo(O,$);var Do=eiO.maxDuration&&(O.duration=0),this._zooming=!0,this._rotating=pt!==vt,this._pitching=Pt!==Kt,this._padding=!Ie.isPaddingEqual(Wt),this._prepareEase($,!1),this._ease(function(fo){var as=fo*No,tl=1/Gn(as);Ie.zoom=fo===1?Jt:$e+Ie.scaleZoom(tl),pe._rotating&&(Ie.bearing=i.number(pt,vt,fo)),pe._pitching&&(Ie.pitch=i.number(Kt,Pt,fo)),pe._padding&&(Ie.interpolatePadding(ir,Wt,fo),pr=Ie.centerPoint.add(dr));var zu=fo===1?Ar:Ie.unproject(gr.add(Cr.mult(da(as))).mult(tl));Ie.setLocationAtPoint(Ie.renderWorldCopies?zu.wrap():zu,pr),pe._fireMoveEvents($)},function(){return pe._afterEase($)},O),this},z.prototype.isEasing=function(){return!!this._easeFrameId},z.prototype.stop=function(){return this._stop()},z.prototype._stop=function(O,$){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var pe=this._onEaseEnd;delete this._onEaseEnd,pe.call(this,$)}if(!O){var de=this.handlers;de&&de.stop(!1)}return this},z.prototype._ease=function(O,$,pe){pe.animate===!1||pe.duration===0?(O(1),$()):(this._easeStart=i.browser.now(),this._easeOptions=pe,this._onEaseFrame=O,this._onEaseEnd=$,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},z.prototype._renderFrameCallback=function(){var O=Math.min((i.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(O)),O<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},z.prototype._normalizeBearing=function(O,$){O=i.wrap(O,-180,180);var pe=Math.abs(O-$);return Math.abs(O-360-$)180?-360:pe<-180?360:0}},z}(i.Evented),Rn=function(z){z===void 0&&(z={}),this.options=z,i.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this)};Rn.prototype.getDefaultPosition=function(){return"bottom-right"},Rn.prototype.onAdd=function(z){var K=this.options&&this.options.compact;return this._map=z,this._container=o.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=o.create("button","mapboxgl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=o.create("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),K&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),K===void 0&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},Rn.prototype.onRemove=function(){o.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0},Rn.prototype._setElementTitle=function(z,K){var O=this._map._getUIString("AttributionControl."+K);z.title=O,z.setAttribute("aria-label",O)},Rn.prototype._toggleAttribution=function(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-pressed","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-pressed","true"))},Rn.prototype._updateEditLink=function(){var z=this._editLink;z||(z=this._editLink=this._container.querySelector(".mapbox-improve-map"));var K=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||i.config.ACCESS_TOKEN}];if(z){var O=K.reduce(function($,pe,de){return pe.value&&($+=pe.key+"="+pe.value+(de=0)return!1;return!0});var Ie=z.join(" | ");Ie!==this._attribHTML&&(this._attribHTML=Ie,z.length?(this._innerContainer.innerHTML=Ie,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}},Rn.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show")};var Dn=function(){i.bindAll(["_updateLogo"],this),i.bindAll(["_updateCompact"],this)};Dn.prototype.onAdd=function(z){this._map=z,this._container=o.create("div","mapboxgl-ctrl");var K=o.create("a","mapboxgl-ctrl-logo");return K.target="_blank",K.rel="noopener nofollow",K.href="https://www.mapbox.com/",K.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),K.setAttribute("rel","noopener nofollow"),this._container.appendChild(K),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container},Dn.prototype.onRemove=function(){o.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)},Dn.prototype.getDefaultPosition=function(){return"bottom-left"},Dn.prototype._updateLogo=function(z){(!z||z.sourceDataType==="metadata")&&(this._container.style.display=this._logoRequired()?"block":"none")},Dn.prototype._logoRequired=function(){if(this._map.style){var z=this._map.style.sourceCaches;for(var K in z){var O=z[K].getSource();if(O.mapbox_logo)return!0}return!1}},Dn.prototype._updateCompact=function(){var z=this._container.children;if(z.length){var K=z[0];this._map.getCanvasContainer().offsetWidth<250?K.classList.add("mapboxgl-compact"):K.classList.remove("mapboxgl-compact")}};var fn=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};fn.prototype.add=function(z){var K=++this._id,O=this._queue;return O.push({callback:z,id:K,cancelled:!1}),K},fn.prototype.remove=function(z){for(var K=this._currentlyRunning,O=K?this._queue.concat(K):this._queue,$=0,pe=O;$O.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(O.minPitch!=null&&O.maxPitch!=null&&O.minPitch>O.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(O.minPitch!=null&&O.minPitchZa)throw new Error("maxPitch must be less than or equal to "+Za);var pe=new yo(O.minZoom,O.maxZoom,O.minPitch,O.maxPitch,O.renderWorldCopies);if(Y.call(this,pe,O),this._interactive=O.interactive,this._maxTileCacheSize=O.maxTileCacheSize,this._failIfMajorPerformanceCaveat=O.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=O.preserveDrawingBuffer,this._antialias=O.antialias,this._trackResize=O.trackResize,this._bearingSnap=O.bearingSnap,this._refreshExpiredTiles=O.refreshExpiredTiles,this._fadeDuration=O.fadeDuration,this._crossSourceCollisions=O.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=O.collectResourceTiming,this._renderTaskQueue=new fn,this._controls=[],this._mapId=i.uniqueId(),this._locale=i.extend({},Ai,O.locale),this._clickTolerance=O.clickTolerance,this._requestManager=new i.RequestManager(O.transformRequest,O.accessToken),typeof O.container=="string"){if(this._container=i.window.document.getElementById(O.container),!this._container)throw new Error("Container '"+O.container+"' not found.")}else if(O.container instanceof Ln)this._container=O.container;else throw new Error("Invalid type: 'container' must be a String or HTMLElement.");if(O.maxBounds&&this.setMaxBounds(O.maxBounds),i.bindAll(["_onWindowOnline","_onWindowResize","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),this.painter===void 0)throw new Error("Failed to initialize WebGL.");this.on("move",function(){return $._update(!1)}),this.on("moveend",function(){return $._update(!1)}),this.on("zoom",function(){return $._update(!0)}),typeof i.window!="undefined"&&(i.window.addEventListener("online",this._onWindowOnline,!1),i.window.addEventListener("resize",this._onWindowResize,!1),i.window.addEventListener("orientationchange",this._onWindowResize,!1)),this.handlers=new yn(this,O);var de=typeof O.hash=="string"&&O.hash||void 0;this._hash=O.hash&&new Vl(de).addTo(this),(!this._hash||!this._hash._onHashChange())&&(this.jumpTo({center:O.center,zoom:O.zoom,bearing:O.bearing,pitch:O.pitch}),O.bounds&&(this.resize(),this.fitBounds(O.bounds,i.extend({},O.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=O.localIdeographFontFamily,O.style&&this.setStyle(O.style,{localIdeographFontFamily:O.localIdeographFontFamily}),O.attributionControl&&this.addControl(new Rn({customAttribution:O.customAttribution})),this.addControl(new Dn,O.logoPosition),this.on("style.load",function(){$.transform.unmodified&&$.jumpTo($.style.stylesheet)}),this.on("data",function(Ie){$._update(Ie.dataType==="style"),$.fire(new i.Event(Ie.dataType+"data",Ie))}),this.on("dataloading",function(Ie){$.fire(new i.Event(Ie.dataType+"dataloading",Ie))})}Y&&(z.__proto__=Y),z.prototype=Object.create(Y&&Y.prototype),z.prototype.constructor=z;var K={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return z.prototype._getMapId=function(){return this._mapId},z.prototype.addControl=function($,pe){if(pe===void 0&&($.getDefaultPosition?pe=$.getDefaultPosition():pe="top-right"),!$||!$.onAdd)return this.fire(new i.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));var de=$.onAdd(this);this._controls.push($);var Ie=this._controlPositions[pe];return pe.indexOf("bottom")!==-1?Ie.insertBefore(de,Ie.firstChild):Ie.appendChild(de),this},z.prototype.removeControl=function($){if(!$||!$.onRemove)return this.fire(new i.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));var pe=this._controls.indexOf($);return pe>-1&&this._controls.splice(pe,1),$.onRemove(this),this},z.prototype.hasControl=function($){return this._controls.indexOf($)>-1},z.prototype.resize=function($){var pe=this._containerDimensions(),de=pe[0],Ie=pe[1];this._resizeCanvas(de,Ie),this.transform.resize(de,Ie),this.painter.resize(de,Ie);var $e=!this._moving;return $e&&(this.stop(),this.fire(new i.Event("movestart",$)).fire(new i.Event("move",$))),this.fire(new i.Event("resize",$)),$e&&this.fire(new i.Event("moveend",$)),this},z.prototype.getBounds=function(){return this.transform.getBounds()},z.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},z.prototype.setMaxBounds=function($){return this.transform.setMaxBounds(i.LngLatBounds.convert($)),this._update()},z.prototype.setMinZoom=function($){if($=$==null?gn:$,$>=gn&&$<=this.transform.maxZoom)return this.transform.minZoom=$,this._update(),this.getZoom()<$&&this.setZoom($),this;throw new Error("minZoom must be between "+gn+" and the current maxZoom, inclusive")},z.prototype.getMinZoom=function(){return this.transform.minZoom},z.prototype.setMaxZoom=function($){if($=$==null?ca:$,$>=this.transform.minZoom)return this.transform.maxZoom=$,this._update(),this.getZoom()>$&&this.setZoom($),this;throw new Error("maxZoom must be greater than the current minZoom")},z.prototype.getMaxZoom=function(){return this.transform.maxZoom},z.prototype.setMinPitch=function($){if($=$==null?Kn:$,$=Kn&&$<=this.transform.maxPitch)return this.transform.minPitch=$,this._update(),this.getPitch()<$&&this.setPitch($),this;throw new Error("minPitch must be between "+Kn+" and the current maxPitch, inclusive")},z.prototype.getMinPitch=function(){return this.transform.minPitch},z.prototype.setMaxPitch=function($){if($=$==null?Za:$,$>Za)throw new Error("maxPitch must be less than or equal to "+Za);if($>=this.transform.minPitch)return this.transform.maxPitch=$,this._update(),this.getPitch()>$&&this.setPitch($),this;throw new Error("maxPitch must be greater than the current minPitch")},z.prototype.getMaxPitch=function(){return this.transform.maxPitch},z.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},z.prototype.setRenderWorldCopies=function($){return this.transform.renderWorldCopies=$,this._update()},z.prototype.project=function($){return this.transform.locationPoint(i.LngLat.convert($))},z.prototype.unproject=function($){return this.transform.pointLocation(i.Point.convert($))},z.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},z.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},z.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},z.prototype._createDelegatedListener=function($,pe,de){var Ie=this,$e;if($==="mouseenter"||$==="mouseover"){var pt=!1,Kt=function(rr){var dr=Ie.getLayer(pe)?Ie.queryRenderedFeatures(rr.point,{layers:[pe]}):[];dr.length?pt||(pt=!0,de.call(Ie,new oe($,Ie,rr.originalEvent,{features:dr}))):pt=!1},ir=function(){pt=!1};return{layer:pe,listener:de,delegates:{mousemove:Kt,mouseout:ir}}}else if($==="mouseleave"||$==="mouseout"){var Jt=!1,vt=function(rr){var dr=Ie.getLayer(pe)?Ie.queryRenderedFeatures(rr.point,{layers:[pe]}):[];dr.length?Jt=!0:Jt&&(Jt=!1,de.call(Ie,new oe($,Ie,rr.originalEvent)))},Pt=function(rr){Jt&&(Jt=!1,de.call(Ie,new oe($,Ie,rr.originalEvent)))};return{layer:pe,listener:de,delegates:{mousemove:vt,mouseout:Pt}}}else{var Wt=function(rr){var dr=Ie.getLayer(pe)?Ie.queryRenderedFeatures(rr.point,{layers:[pe]}):[];dr.length&&(rr.features=dr,de.call(Ie,rr),delete rr.features)};return{layer:pe,listener:de,delegates:($e={},$e[$]=Wt,$e)}}},z.prototype.on=function($,pe,de){if(de===void 0)return Y.prototype.on.call(this,$,pe);var Ie=this._createDelegatedListener($,pe,de);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[$]=this._delegatedListeners[$]||[],this._delegatedListeners[$].push(Ie);for(var $e in Ie.delegates)this.on($e,Ie.delegates[$e]);return this},z.prototype.once=function($,pe,de){if(de===void 0)return Y.prototype.once.call(this,$,pe);var Ie=this._createDelegatedListener($,pe,de);for(var $e in Ie.delegates)this.once($e,Ie.delegates[$e]);return this},z.prototype.off=function($,pe,de){var Ie=this;if(de===void 0)return Y.prototype.off.call(this,$,pe);var $e=function(pt){for(var Kt=pt[$],ir=0;ir180;){var de=K.locationPoint(Y);if(de.x>=0&&de.y>=0&&de.x<=K.width&&de.y<=K.height)break;Y.lng>K.center.lng?Y.lng-=360:Y.lng+=360}return Y}var ro={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};function Ao(Y,z,K){var O=Y.classList;for(var $ in ro)O.remove("mapboxgl-"+K+"-anchor-"+$);O.add("mapboxgl-"+K+"-anchor-"+z)}var Jn=function(Y){function z(K,O){if(Y.call(this),(K instanceof i.window.HTMLElement||O)&&(K=i.extend({element:K},O)),i.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress"],this),this._anchor=K&&K.anchor||"center",this._color=K&&K.color||"#3FB1CE",this._scale=K&&K.scale||1,this._draggable=K&&K.draggable||!1,this._clickTolerance=K&&K.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=K&&K.rotation||0,this._rotationAlignment=K&&K.rotationAlignment||"auto",this._pitchAlignment=K&&K.pitchAlignment&&K.pitchAlignment!=="auto"?K.pitchAlignment:this._rotationAlignment,!K||!K.element){this._defaultMarker=!0,this._element=o.create("div"),this._element.setAttribute("aria-label","Map marker");var $=o.createNS("http://www.w3.org/2000/svg","svg"),pe=41,de=27;$.setAttributeNS(null,"display","block"),$.setAttributeNS(null,"height",pe+"px"),$.setAttributeNS(null,"width",de+"px"),$.setAttributeNS(null,"viewBox","0 0 "+de+" "+pe);var Ie=o.createNS("http://www.w3.org/2000/svg","g");Ie.setAttributeNS(null,"stroke","none"),Ie.setAttributeNS(null,"stroke-width","1"),Ie.setAttributeNS(null,"fill","none"),Ie.setAttributeNS(null,"fill-rule","evenodd");var $e=o.createNS("http://www.w3.org/2000/svg","g");$e.setAttributeNS(null,"fill-rule","nonzero");var pt=o.createNS("http://www.w3.org/2000/svg","g");pt.setAttributeNS(null,"transform","translate(3.0, 29.0)"),pt.setAttributeNS(null,"fill","#000000");for(var Kt=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}],ir=0,Jt=Kt;ir=$}this._isDragging&&(this._pos=O.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none",this._state==="pending"&&(this._state="active",this.fire(new i.Event("dragstart"))),this.fire(new i.Event("drag")))},z.prototype._onUp=function(){this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),this._state==="active"&&this.fire(new i.Event("dragend")),this._state="inactive"},z.prototype._addDragHandler=function(O){this._element.contains(O.originalEvent.target)&&(O.preventDefault(),this._positionDelta=O.point.sub(this._pos).add(this._offset),this._pointerdownPos=O.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},z.prototype.setDraggable=function(O){return this._draggable=!!O,this._map&&(O?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this},z.prototype.isDraggable=function(){return this._draggable},z.prototype.setRotation=function(O){return this._rotation=O||0,this._update(),this},z.prototype.getRotation=function(){return this._rotation},z.prototype.setRotationAlignment=function(O){return this._rotationAlignment=O||"auto",this._update(),this},z.prototype.getRotationAlignment=function(){return this._rotationAlignment},z.prototype.setPitchAlignment=function(O){return this._pitchAlignment=O&&O!=="auto"?O:this._rotationAlignment,this._update(),this},z.prototype.getPitchAlignment=function(){return this._pitchAlignment},z}(i.Evented),Oa={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},_o;function Po(Y){_o!==void 0?Y(_o):i.window.navigator.permissions!==void 0?i.window.navigator.permissions.query({name:"geolocation"}).then(function(z){_o=z.state!=="denied",Y(_o)}):(_o=!!i.window.navigator.geolocation,Y(_o))}var Jo=0,Xl=!1,$c=function(Y){function z(K){Y.call(this),this.options=i.extend({},Oa,K),i.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker"],this)}return Y&&(z.__proto__=Y),z.prototype=Object.create(Y&&Y.prototype),z.prototype.constructor=z,z.prototype.onAdd=function(O){return this._map=O,this._container=o.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),Po(this._setupUI),this._container},z.prototype.onRemove=function(){this._geolocationWatchID!==void 0&&(i.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),o.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,Jo=0,Xl=!1},z.prototype._isOutOfMapMaxBounds=function(O){var $=this._map.getMaxBounds(),pe=O.coords;return $&&(pe.longitude<$.getWest()||pe.longitude>$.getEast()||pe.latitude<$.getSouth()||pe.latitude>$.getNorth())},z.prototype._setErrorState=function(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break}},z.prototype._onSuccess=function(O){if(this._map){if(this._isOutOfMapMaxBounds(O)){this._setErrorState(),this.fire(new i.Event("outofmaxbounds",O)),this._updateMarker(),this._finish();return}if(this.options.trackUserLocation)switch(this._lastKnownPosition=O,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(O),(!this.options.trackUserLocation||this._watchState==="ACTIVE_LOCK")&&this._updateCamera(O),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new i.Event("geolocate",O)),this._finish()}},z.prototype._updateCamera=function(O){var $=new i.LngLat(O.coords.longitude,O.coords.latitude),pe=O.coords.accuracy,de=this._map.getBearing(),Ie=i.extend({bearing:de},this.options.fitBoundsOptions);this._map.fitBounds($.toBounds(pe),Ie,{geolocateSource:!0})},z.prototype._updateMarker=function(O){if(O){var $=new i.LngLat(O.coords.longitude,O.coords.latitude);this._accuracyCircleMarker.setLngLat($).addTo(this._map),this._userLocationDotMarker.setLngLat($).addTo(this._map),this._accuracy=O.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},z.prototype._updateCircleRadius=function(){var O=this._map._container.clientHeight/2,$=this._map.unproject([0,O]),pe=this._map.unproject([1,O]),de=$.distanceTo(pe),Ie=Math.ceil(2*this._accuracy/de);this._circleElement.style.width=Ie+"px",this._circleElement.style.height=Ie+"px"},z.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},z.prototype._onError=function(O){if(this._map){if(this.options.trackUserLocation)if(O.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;var $=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=$,this._geolocateButton.setAttribute("aria-label",$),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(O.code===3&&Xl)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new i.Event("error",O)),this._finish()}},z.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},z.prototype._setupUI=function(O){var $=this;if(this._container.addEventListener("contextmenu",function(Ie){return Ie.preventDefault()}),this._geolocateButton=o.create("button","mapboxgl-ctrl-geolocate",this._container),o.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",O===!1){i.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");var pe=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=pe,this._geolocateButton.setAttribute("aria-label",pe)}else{var de=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=de,this._geolocateButton.setAttribute("aria-label",de)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=o.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new Jn(this._dotElement),this._circleElement=o.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Jn({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",function(Ie){var $e=Ie.originalEvent&&Ie.originalEvent.type==="resize";!Ie.geolocateSource&&$._watchState==="ACTIVE_LOCK"&&!$e&&($._watchState="BACKGROUND",$._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),$._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),$.fire(new i.Event("trackuserlocationend")))})},z.prototype.trigger=function(){if(!this._setup)return i.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new i.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":Jo--,Xl=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new i.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new i.Event("trackuserlocationstart"));break}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error");break}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),Jo++;var O;Jo>1?(O={maximumAge:6e5,timeout:0},Xl=!0):(O=this.options.positionOptions,Xl=!1),this._geolocationWatchID=i.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,O)}}else i.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},z.prototype._clearWatch=function(){i.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)},z}(i.Evented),xs={maxWidth:100,unit:"metric"},Qc=function(z){this.options=i.extend({},xs,z),i.bindAll(["_onMove","setUnit"],this)};Qc.prototype.getDefaultPosition=function(){return"bottom-left"},Qc.prototype._onMove=function(){El(this._map,this._container,this.options)},Qc.prototype.onAdd=function(z){return this._map=z,this._container=o.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",z.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},Qc.prototype.onRemove=function(){o.remove(this._container),this._map.off("move",this._onMove),this._map=void 0},Qc.prototype.setUnit=function(z){this.options.unit=z,El(this._map,this._container,this.options)};function El(Y,z,K){var O=K&&K.maxWidth||100,$=Y._container.clientHeight/2,pe=Y.unproject([0,$]),de=Y.unproject([O,$]),Ie=pe.distanceTo(de);if(K&&K.unit==="imperial"){var $e=3.2808*Ie;if($e>5280){var pt=$e/5280;bc(z,O,pt,Y._getUIString("ScaleControl.Miles"))}else bc(z,O,$e,Y._getUIString("ScaleControl.Feet"))}else if(K&&K.unit==="nautical"){var Kt=Ie/1852;bc(z,O,Kt,Y._getUIString("ScaleControl.NauticalMiles"))}else Ie>=1e3?bc(z,O,Ie/1e3,Y._getUIString("ScaleControl.Kilometers")):bc(z,O,Ie,Y._getUIString("ScaleControl.Meters"))}function bc(Y,z,K,O){var $=yf(K),pe=$/K;Y.style.width=z*pe+"px",Y.innerHTML=$+" "+O}function wc(Y){var z=Math.pow(10,Math.ceil(-Math.log(Y)/Math.LN10));return Math.round(Y*z)/z}function yf(Y){var z=Math.pow(10,(""+Math.floor(Y)).length-1),K=Y/z;return K=K>=10?10:K>=5?5:K>=3?3:K>=2?2:K>=1?1:wc(K),z*K}var Hl=function(z){this._fullscreen=!1,z&&z.container&&(z.container instanceof i.window.HTMLElement?this._container=z.container:i.warnOnce("Full screen control 'container' must be a DOM element.")),i.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in i.window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in i.window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in i.window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in i.window.document&&(this._fullscreenchange="MSFullscreenChange")};Hl.prototype.onAdd=function(z){return this._map=z,this._container||(this._container=this._map.getContainer()),this._controlContainer=o.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",i.warnOnce("This device does not support fullscreen mode.")),this._controlContainer},Hl.prototype.onRemove=function(){o.remove(this._controlContainer),this._map=null,i.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},Hl.prototype._checkFullscreenSupport=function(){return!!(i.window.document.fullscreenEnabled||i.window.document.mozFullScreenEnabled||i.window.document.msFullscreenEnabled||i.window.document.webkitFullscreenEnabled)},Hl.prototype._setupUI=function(){var z=this._fullscreenButton=o.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);o.create("span","mapboxgl-ctrl-icon",z).setAttribute("aria-hidden",!0),z.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),i.window.document.addEventListener(this._fullscreenchange,this._changeIcon)},Hl.prototype._updateTitle=function(){var z=this._getTitle();this._fullscreenButton.setAttribute("aria-label",z),this._fullscreenButton.title=z},Hl.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},Hl.prototype._isFullscreen=function(){return this._fullscreen},Hl.prototype._changeIcon=function(){var z=i.window.document.fullscreenElement||i.window.document.mozFullScreenElement||i.window.document.webkitFullscreenElement||i.window.document.msFullscreenElement;z===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())},Hl.prototype._onClickFullscreen=function(){this._isFullscreen()?i.window.document.exitFullscreen?i.window.document.exitFullscreen():i.window.document.mozCancelFullScreen?i.window.document.mozCancelFullScreen():i.window.document.msExitFullscreen?i.window.document.msExitFullscreen():i.window.document.webkitCancelFullScreen&&i.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()};var Fc={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px"},ef=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", "),ls=function(Y){function z(K){Y.call(this),this.options=i.extend(Object.create(Fc),K),i.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this)}return Y&&(z.__proto__=Y),z.prototype=Object.create(Y&&Y.prototype),z.prototype.constructor=z,z.prototype.addTo=function(O){return this._map&&this.remove(),this._map=O,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new i.Event("open")),this},z.prototype.isOpen=function(){return!!this._map},z.prototype.remove=function(){return this._content&&o.remove(this._content),this._container&&(o.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new i.Event("close")),this},z.prototype.getLngLat=function(){return this._lngLat},z.prototype.setLngLat=function(O){return this._lngLat=i.LngLat.convert(O),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this},z.prototype.trackPointer=function(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this},z.prototype.getElement=function(){return this._container},z.prototype.setText=function(O){return this.setDOMContent(i.window.document.createTextNode(O))},z.prototype.setHTML=function(O){var $=i.window.document.createDocumentFragment(),pe=i.window.document.createElement("body"),de;for(pe.innerHTML=O;de=pe.firstChild,!!de;)$.appendChild(de);return this.setDOMContent($)},z.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},z.prototype.setMaxWidth=function(O){return this.options.maxWidth=O,this._update(),this},z.prototype.setDOMContent=function(O){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=o.create("div","mapboxgl-popup-content",this._container);return this._content.appendChild(O),this._createCloseButton(),this._update(),this._focusFirstElement(),this},z.prototype.addClassName=function(O){this._container&&this._container.classList.add(O)},z.prototype.removeClassName=function(O){this._container&&this._container.classList.remove(O)},z.prototype.setOffset=function(O){return this.options.offset=O,this._update(),this},z.prototype.toggleClassName=function(O){if(this._container)return this._container.classList.toggle(O)},z.prototype._createCloseButton=function(){this.options.closeButton&&(this._closeButton=o.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))},z.prototype._onMouseUp=function(O){this._update(O.point)},z.prototype._onMouseMove=function(O){this._update(O.point)},z.prototype._onDrag=function(O){this._update(O.point)},z.prototype._update=function(O){var $=this,pe=this._lngLat||this._trackPointer;if(!(!this._map||!pe||!this._content)&&(this._container||(this._container=o.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=o.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach(function(vt){return $._container.classList.add(vt)}),this._trackPointer&&this._container.classList.add("mapboxgl-popup-track-pointer")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=ma(this._lngLat,this._pos,this._map.transform)),!(this._trackPointer&&!O))){var de=this._pos=this._trackPointer&&O?O:this._map.project(this._lngLat),Ie=this.options.anchor,$e=_f(this.options.offset);if(!Ie){var pt=this._container.offsetWidth,Kt=this._container.offsetHeight,ir;de.y+$e.bottom.ythis._map.transform.height-Kt?ir=["bottom"]:ir=[],de.xthis._map.transform.width-pt/2&&ir.push("right"),ir.length===0?Ie="bottom":Ie=ir.join("-")}var Jt=de.add($e[Ie]).round();o.setTransform(this._container,ro[Ie]+" translate("+Jt.x+"px,"+Jt.y+"px)"),Ao(this._container,Ie,"popup")}},z.prototype._focusFirstElement=function(){if(!(!this.options.focusAfterOpen||!this._container)){var O=this._container.querySelector(ef);O&&O.focus()}},z.prototype._onClose=function(){this.remove()},z}(i.Evented);function _f(Y){if(Y)if(typeof Y=="number"){var z=Math.round(Math.sqrt(.5*Math.pow(Y,2)));return{center:new i.Point(0,0),top:new i.Point(0,Y),"top-left":new i.Point(z,z),"top-right":new i.Point(-z,z),bottom:new i.Point(0,-Y),"bottom-left":new i.Point(z,-z),"bottom-right":new i.Point(-z,-z),left:new i.Point(Y,0),right:new i.Point(-Y,0)}}else if(Y instanceof i.Point||Array.isArray(Y)){var K=i.Point.convert(Y);return{center:K,top:K,"top-left":K,"top-right":K,bottom:K,"bottom-left":K,"bottom-right":K,left:K,right:K}}else return{center:i.Point.convert(Y.center||[0,0]),top:i.Point.convert(Y.top||[0,0]),"top-left":i.Point.convert(Y["top-left"]||[0,0]),"top-right":i.Point.convert(Y["top-right"]||[0,0]),bottom:i.Point.convert(Y.bottom||[0,0]),"bottom-left":i.Point.convert(Y["bottom-left"]||[0,0]),"bottom-right":i.Point.convert(Y["bottom-right"]||[0,0]),left:i.Point.convert(Y.left||[0,0]),right:i.Point.convert(Y.right||[0,0])};else return _f(new i.Point(0,0))}var ns={version:i.version,supported:a,setRTLTextPlugin:i.setRTLTextPlugin,getRTLTextPluginStatus:i.getRTLTextPluginStatus,Map:vn,NavigationControl:Xn,GeolocateControl:$c,AttributionControl:Rn,ScaleControl:Qc,FullscreenControl:Hl,Popup:ls,Marker:Jn,Style:mu,LngLat:i.LngLat,LngLatBounds:i.LngLatBounds,Point:i.Point,MercatorCoordinate:i.MercatorCoordinate,Evented:i.Evented,config:i.config,prewarm:jn,clearPrewarmedResources:la,get accessToken(){return i.config.ACCESS_TOKEN},set accessToken(Y){i.config.ACCESS_TOKEN=Y},get baseApiUrl(){return i.config.API_URL},set baseApiUrl(Y){i.config.API_URL=Y},get workerCount(){return Pi.workerCount},set workerCount(Y){Pi.workerCount=Y},get maxParallelImageRequests(){return i.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(Y){i.config.MAX_PARALLEL_IMAGE_REQUESTS=Y},clearStorage:function(z){i.clearTileCache(z)},workerUrl:""};return ns}),r})});var HUe=ye((Syr,VUe)=>{"use strict";var tw=Mr(),xHt=Ll().sanitizeHTML,bHt=UK(),BUe=c1();function NUe(e,t){this.subplot=e,this.uid=e.uid+"-"+t,this.index=t,this.idSource="source-"+this.uid,this.idLayer=BUe.layoutLayerPrefix+this.uid,this.sourceType=null,this.source=null,this.layerType=null,this.below=null,this.visible=!1}var ig=NUe.prototype;ig.update=function(t){this.visible?this.needsNewImage(t)?this.updateImage(t):this.needsNewSource(t)?(this.removeLayer(),this.updateSource(t),this.updateLayer(t)):this.needsNewLayer(t)?this.updateLayer(t):this.updateStyle(t):(this.updateSource(t),this.updateLayer(t)),this.visible=jF(t)};ig.needsNewImage=function(e){var t=this.subplot.map;return t.getSource(this.idSource)&&this.sourceType==="image"&&e.sourcetype==="image"&&(this.source!==e.source||JSON.stringify(this.coordinates)!==JSON.stringify(e.coordinates))};ig.needsNewSource=function(e){return this.sourceType!==e.sourcetype||JSON.stringify(this.source)!==JSON.stringify(e.source)||this.layerType!==e.type};ig.needsNewLayer=function(e){return this.layerType!==e.type||this.below!==this.subplot.belowLookup["layout-"+this.index]};ig.lookupBelow=function(){return this.subplot.belowLookup["layout-"+this.index]};ig.updateImage=function(e){var t=this.subplot.map;t.getSource(this.idSource).updateImage({url:e.source,coordinates:e.coordinates});var r=this.findFollowingMapboxLayerId(this.lookupBelow());r!==null&&this.subplot.map.moveLayer(this.idLayer,r)};ig.updateSource=function(e){var t=this.subplot.map;if(t.getSource(this.idSource)&&t.removeSource(this.idSource),this.sourceType=e.sourcetype,this.source=e.source,!!jF(e)){var r=wHt(e);t.addSource(this.idSource,r)}};ig.findFollowingMapboxLayerId=function(e){if(e==="traces")for(var t=this.subplot.getMapLayers(),r=0;r0){for(var r=0;r0}function UUe(e){var t={},r={};switch(e.type){case"circle":tw.extendFlat(r,{"circle-radius":e.circle.radius,"circle-color":e.color,"circle-opacity":e.opacity});break;case"line":tw.extendFlat(r,{"line-width":e.line.width,"line-color":e.color,"line-opacity":e.opacity,"line-dasharray":e.line.dash});break;case"fill":tw.extendFlat(r,{"fill-color":e.color,"fill-outline-color":e.fill.outlinecolor,"fill-opacity":e.opacity});break;case"symbol":var n=e.symbol,i=bHt(n.textposition,n.iconsize);tw.extendFlat(t,{"icon-image":n.icon+"-15","icon-size":n.iconsize/10,"text-field":n.text,"text-size":n.textfont.size,"text-anchor":i.anchor,"text-offset":i.offset,"symbol-placement":n.placement}),tw.extendFlat(r,{"icon-color":e.color,"text-color":n.textfont.color,"text-opacity":e.opacity});break;case"raster":tw.extendFlat(r,{"raster-fade-duration":0,"raster-opacity":e.opacity});break}return{layout:t,paint:r}}function wHt(e){var t=e.sourcetype,r=e.source,n={type:t},i;return t==="geojson"?i="data":t==="vector"?i=typeof r=="string"?"url":"tiles":t==="raster"?(i="tiles",n.tileSize=256):t==="image"&&(i="url",n.coordinates=e.coordinates),n[i]=r,e.sourceattribution&&(n.attribution=xHt(e.sourceattribution)),n}VUe.exports=function(t,r,n){var i=new NUe(t,r);return i.update(n),i}});var $Ue=ye((Myr,JUe)=>{"use strict";var XK=ZK(),YK=Mr(),ZUe=ix(),GUe=ba(),THt=Qa(),AHt=gv(),WF=Nc(),XUe=Sg(),SHt=XUe.drawMode,MHt=XUe.selectMode,EHt=wf().prepSelect,kHt=wf().clearOutline,CHt=wf().clearSelectionsCache,LHt=wf().selectOnClick,yx=c1(),PHt=HUe();function YUe(e,t){this.id=t,this.gd=e;var r=e._fullLayout,n=e._context;this.container=r._glcontainer.node(),this.isStatic=n.staticPlot,this.uid=r._uid+"-"+this.id,this.div=null,this.xaxis=null,this.yaxis=null,this.createFramework(r),this.map=null,this.accessToken=null,this.styleObj=null,this.traceHash={},this.layerList=[],this.belowLookup={},this.dragging=!1,this.wheeling=!1}var Ah=YUe.prototype;Ah.plot=function(e,t,r){var n=this,i=t[n.id];n.map&&i.accesstoken!==n.accessToken&&(n.map.remove(),n.map=null,n.styleObj=null,n.traceHash={},n.layerList=[]);var a;n.map?a=new Promise(function(o,s){n.updateMap(e,t,o,s)}):a=new Promise(function(o,s){n.createMap(e,t,o,s)}),r.push(a)};Ah.createMap=function(e,t,r,n){var i=this,a=t[i.id],o=i.styleObj=KUe(a.style,t);i.accessToken=a.accesstoken;var s=a.bounds,l=s?[[s.west,s.south],[s.east,s.north]]:null,u=i.map=new XK.Map({container:i.div,style:o.style,center:KK(a.center),zoom:a.zoom,bearing:a.bearing,pitch:a.pitch,maxBounds:l,interactive:!i.isStatic,preserveDrawingBuffer:i.isStatic,doubleClickZoom:!1,boxZoom:!1,attributionControl:!1}).addControl(new XK.AttributionControl({compact:!0}));u._canvas.style.left="0px",u._canvas.style.top="0px",i.rejectOnError(n),i.isStatic||i.initFx(e,t);var c=[];c.push(new Promise(function(f){u.once("load",f)})),c=c.concat(ZUe.fetchTraceGeoData(e)),Promise.all(c).then(function(){i.fillBelowLookup(e,t),i.updateData(e),i.updateLayout(t),i.resolveOnRender(r)}).catch(n)};Ah.updateMap=function(e,t,r,n){var i=this,a=i.map,o=t[this.id];i.rejectOnError(n);var s=[],l=KUe(o.style,t);JSON.stringify(i.styleObj)!==JSON.stringify(l)&&(i.styleObj=l,a.setStyle(l.style),i.traceHash={},s.push(new Promise(function(u){a.once("styledata",u)}))),s=s.concat(ZUe.fetchTraceGeoData(e)),Promise.all(s).then(function(){i.fillBelowLookup(e,t),i.updateData(e),i.updateLayout(t),i.resolveOnRender(r)}).catch(n)};Ah.fillBelowLookup=function(e,t){var r=t[this.id],n=r.layers,i,a,o=this.belowLookup={},s=!1;for(i=0;i1)for(i=0;i-1&&LHt(l.originalEvent,n,[r.xaxis],[r.yaxis],r.id,s),u.indexOf("event")>-1&&WF.click(n,l.originalEvent)}}};Ah.updateFx=function(e){var t=this,r=t.map,n=t.gd;if(t.isStatic)return;function i(l){var u=t.map.unproject(l);return[u.lng,u.lat]}var a=e.dragmode,o;o=function(l,u){if(u.isRect){var c=l.range={};c[t.id]=[i([u.xmin,u.ymin]),i([u.xmax,u.ymax])]}else{var f=l.lassoPoints={};f[t.id]=u.map(i)}};var s=t.dragOptions;t.dragOptions=YK.extendDeep(s||{},{dragmode:e.dragmode,element:t.div,gd:n,plotinfo:{id:t.id,domain:e[t.id].domain,xaxis:t.xaxis,yaxis:t.yaxis,fillRangeItems:o},xaxes:[t.xaxis],yaxes:[t.yaxis],subplot:t.id}),r.off("click",t.onClickInPanHandler),MHt(a)||SHt(a)?(r.dragPan.disable(),r.on("zoomstart",t.clearOutline),t.dragOptions.prepFn=function(l,u,c){EHt(l,u,c,t.dragOptions,a)},AHt.init(t.dragOptions)):(r.dragPan.enable(),r.off("zoomstart",t.clearOutline),t.div.onmousedown=null,t.div.ontouchstart=null,t.div.removeEventListener("touchstart",t.div._ontouchstart),t.onClickInPanHandler=t.onClickInPanFn(t.dragOptions),r.on("click",t.onClickInPanHandler))};Ah.updateFramework=function(e){var t=e[this.id].domain,r=e._size,n=this.div.style;n.width=r.w*(t.x[1]-t.x[0])+"px",n.height=r.h*(t.y[1]-t.y[0])+"px",n.left=r.l+t.x[0]*r.w+"px",n.top=r.t+(1-t.y[1])*r.h+"px",this.xaxis._offset=r.l+t.x[0]*r.w,this.xaxis._length=r.w*(t.x[1]-t.x[0]),this.yaxis._offset=r.t+(1-t.y[1])*r.h,this.yaxis._length=r.h*(t.y[1]-t.y[0])};Ah.updateLayers=function(e){var t=e[this.id],r=t.layers,n=this.layerList,i;if(r.length!==n.length){for(i=0;i{"use strict";var JK=Mr(),IHt=k_(),RHt=Zd(),QUe=Pk();eVe.exports=function(t,r,n){IHt(t,r,n,{type:"mapbox",attributes:QUe,handleDefaults:DHt,partition:"y",accessToken:r._mapboxAccessToken})};function DHt(e,t,r,n){r("accesstoken",n.accessToken),r("style"),r("center.lon"),r("center.lat"),r("zoom"),r("bearing"),r("pitch");var i=r("bounds.west"),a=r("bounds.east"),o=r("bounds.south"),s=r("bounds.north");(i===void 0||a===void 0||o===void 0||s===void 0)&&delete t.bounds,RHt(e,t,{name:"layers",handleItemDefaults:zHt}),t._input=e}function zHt(e,t){function r(l,u){return JK.coerce(e,t,QUe.layers,l,u)}var n=r("visible");if(n){var i=r("sourcetype"),a=i==="raster"||i==="image";r("source"),r("sourceattribution"),i==="vector"&&r("sourcelayer"),i==="image"&&r("coordinates");var o;a&&(o="raster");var s=r("type",o);a&&s!=="raster"&&(s=t.type="raster",JK.log("Source types *raster* and *image* must drawn *raster* layer type.")),r("below"),r("color"),r("opacity"),r("minzoom"),r("maxzoom"),s==="circle"&&r("circle.radius"),s==="line"&&(r("line.width"),r("line.dash")),s==="fill"&&r("fill.outlinecolor"),s==="symbol"&&(r("symbol.icon"),r("symbol.iconsize"),r("symbol.text"),JK.coerceFont(r,"symbol.textfont",void 0,{noFontVariant:!0,noFontShadow:!0,noFontLineposition:!0,noFontTextcase:!0}),r("symbol.textposition"),r("symbol.placement"))}}});var ZF=ye(Np=>{"use strict";var rVe=ZK(),tm=Mr(),$K=tm.strTranslate,FHt=tm.strScale,qHt=kd().getSubplotCalcData,OHt=Zp(),BHt=xa(),iVe=ao(),NHt=Ll(),UHt=$Ue(),_x="mapbox",Qm=Np.constants=c1();Np.name=_x;Np.attr="subplot";Np.idRoot=_x;Np.idRegex=Np.attrRegex=tm.counterRegex(_x);var VHt=["mapbox subplots and traces are deprecated!","Please consider switching to `map` subplots and traces.","Learn more at: https://plotly.com/python/maplibre-migration/","as well as https://plotly.com/javascript/maplibre-migration/"].join(" ");Np.attributes={subplot:{valType:"subplotid",dflt:"mapbox",editType:"calc"}};Np.layoutAttributes=Pk();Np.supplyLayoutDefaults=tVe();var nVe=!0;Np.plot=function(t){nVe&&(nVe=!1,tm.warn(VHt));var r=t._fullLayout,n=t.calcdata,i=r._subplots[_x];if(rVe.version!==Qm.requiredVersion)throw new Error(Qm.wrongVersionErrorMsg);var a=HHt(t,i);rVe.accessToken=a;for(var o=0;og/2){var E=d.split("|").join("
");x.text(E).attr("data-unformatted",E).call(NHt.convertToTspans,e),b=iVe.bBox(x.node())}x.attr("transform",$K(-3,-b.height+8)),v.insert("rect",".static-attribution").attr({x:-b.width-6,y:-b.height-3,width:b.width+6,height:b.height+3,fill:"rgba(255, 255, 255, 0.75)"});var k=1;b.width+6>g&&(k=g/(b.width+6));var A=[n.l+n.w*o.x[1],n.t+n.h*(1-o.y[0])];v.attr("transform",$K(A[0],A[1])+FHt(k))}};function HHt(e,t){var r=e._fullLayout,n=e._context;if(n.mapboxAccessToken==="")return"";for(var i=[],a=[],o=!1,s=!1,l=0;l1&&tm.warn(Qm.multipleTokensErrorMsg),i[0]):(a.length&&tm.log(["Listed mapbox access token(s)",a.join(","),"but did not use a Mapbox map style, ignoring token(s)."].join(" ")),"")}function aVe(e){return typeof e=="string"&&(Qm.styleValuesMapbox.indexOf(e)!==-1||e.indexOf("mapbox://")===0||e.indexOf("stamen")===0)}Np.updateFx=function(e){for(var t=e._fullLayout,r=t._subplots[_x],n=0;n{"use strict";var Cyr=["*scattermapbox* trace is deprecated!","Please consider switching to the *scattermap* trace type and `map` subplots.","Learn more at: https://plotly.com/python/maplibre-migration/","as well as https://plotly.com/javascript/maplibre-migration/"].join(" ");oVe.exports={attributes:BF(),supplyDefaults:yUe(),colorbar:Kd(),formatLabels:NK(),calc:lz(),plot:IUe(),hoverPoints:GF().hoverPoints,eventData:FUe(),selectPoints:OUe(),styleOnSelect:function(e,t){if(t){var r=t[0].trace;r._glTrace.update(t)}},moduleType:"trace",name:"scattermapbox",basePlotModule:ZF(),categories:["mapbox","gl","symbols","showLegend","scatter-like"],meta:{}}});var uVe=ye((Pyr,lVe)=>{"use strict";lVe.exports=sVe()});var QK=ye((Iyr,cVe)=>{"use strict";var f1=J5(),GHt=Kl(),jHt=Wo().hovertemplateAttrs,WHt=vl(),xx=no().extendFlat;cVe.exports=xx({locations:{valType:"data_array",editType:"calc"},z:{valType:"data_array",editType:"calc"},geojson:{valType:"any",editType:"calc"},featureidkey:xx({},f1.featureidkey,{}),below:{valType:"string",editType:"plot"},text:f1.text,hovertext:f1.hovertext,marker:{line:{color:xx({},f1.marker.line.color,{editType:"plot"}),width:xx({},f1.marker.line.width,{editType:"plot"}),editType:"calc"},opacity:xx({},f1.marker.opacity,{editType:"plot"}),editType:"calc"},selected:{marker:{opacity:xx({},f1.selected.marker.opacity,{editType:"plot"}),editType:"plot"},editType:"plot"},unselected:{marker:{opacity:xx({},f1.unselected.marker.opacity,{editType:"plot"}),editType:"plot"},editType:"plot"},hoverinfo:f1.hoverinfo,hovertemplate:jHt({},{keys:["properties"]}),showlegend:xx({},WHt.showlegend,{dflt:!1})},GHt("",{cLetter:"z",editTypeOverride:"calc"}))});var hVe=ye((Ryr,fVe)=>{"use strict";var zk=Mr(),ZHt=Uh(),XHt=QK();fVe.exports=function(t,r,n,i){function a(c,f){return zk.coerce(t,r,XHt,c,f)}var o=a("locations"),s=a("z"),l=a("geojson");if(!zk.isArrayOrTypedArray(o)||!o.length||!zk.isArrayOrTypedArray(s)||!s.length||!(typeof l=="string"&&l!==""||zk.isPlainObject(l))){r.visible=!1;return}a("featureidkey"),r._length=Math.min(o.length,s.length),a("below"),a("text"),a("hovertext"),a("hovertemplate");var u=a("marker.line.width");u&&a("marker.line.color"),a("marker.opacity"),ZHt(t,r,i,a,{prefix:"",cLetter:"z"}),zk.coerceSelectionMarkerOpacity(r,a)}});var eJ=ye((Dyr,pVe)=>{"use strict";var YHt=uo(),h1=Mr(),KHt=Mu(),JHt=ao(),$Ht=tx().makeBlank,dVe=ix();function QHt(e){var t=e[0].trace,r=t.visible===!0&&t._length!==0,n={layout:{visibility:"none"},paint:{}},i={layout:{visibility:"none"},paint:{}},a=t._opts={fill:n,line:i,geojson:$Ht()};if(!r)return a;var o=dVe.extractTraceFeature(e);if(!o)return a;var s=KHt.makeColorScaleFuncFromTrace(t),l=t.marker,u=l.line||{},c;h1.isArrayOrTypedArray(l.opacity)&&(c=function(E){var k=E.mo;return YHt(k)?+h1.constrain(k,0,1):0});var f;h1.isArrayOrTypedArray(u.color)&&(f=function(E){return E.mlc});var h;h1.isArrayOrTypedArray(u.width)&&(h=function(E){return E.mlw});for(var d=0;d{"use strict";var mVe=eJ().convert,eGt=eJ().convertOnSelect,gVe=c1().traceLayerPrefix;function yVe(e,t){this.type="choroplethmapbox",this.subplot=e,this.uid=t,this.sourceId="source-"+t,this.layerList=[["fill",gVe+t+"-fill"],["line",gVe+t+"-line"]],this.below=null}var TA=yVe.prototype;TA.update=function(e){this._update(mVe(e)),e[0].trace._glTrace=this};TA.updateOnSelect=function(e){this._update(eGt(e))};TA._update=function(e){var t=this.subplot,r=this.layerList,n=t.belowLookup["trace-"+this.uid];t.map.getSource(this.sourceId).setData(e.geojson),n!==this.below&&(this._removeLayers(),this._addLayers(e,n),this.below=n);for(var i=0;i=0;r--)e.removeLayer(t[r][1])};TA.dispose=function(){var e=this.subplot.map;this._removeLayers(),e.removeSource(this.sourceId)};_Ve.exports=function(t,r){var n=r[0].trace,i=new yVe(t,n.uid),a=i.sourceId,o=mVe(r),s=i.below=t.belowLookup["trace-"+n.uid];return t.map.addSource(a,{type:"geojson",data:o.geojson}),i._addLayers(o,s),r[0].trace._glTrace=i,i}});var wVe=ye((qyr,bVe)=>{"use strict";var Fyr=["*choroplethmapbox* trace is deprecated!","Please consider switching to the *choroplethmap* trace type and `map` subplots.","Learn more at: https://plotly.com/python/maplibre-migration/","as well as https://plotly.com/javascript/maplibre-migration/"].join(" ");bVe.exports={attributes:QK(),supplyDefaults:hVe(),colorbar:S_(),calc:Lz(),plot:xVe(),hoverPoints:Iz(),eventData:Rz(),selectPoints:Dz(),styleOnSelect:function(e,t){if(t){var r=t[0].trace;r._glTrace.updateOnSelect(t)}},getBelow:function(e,t){for(var r=t.getMapLayers(),n=r.length-2;n>=0;n--){var i=r[n].id;if(typeof i=="string"&&i.indexOf("water")===0){for(var a=n+1;a{"use strict";TVe.exports=wVe()});var rJ=ye((Byr,MVe)=>{"use strict";var tGt=Kl(),rGt=Wo().hovertemplateAttrs,SVe=vl(),XF=BF(),tJ=no().extendFlat;MVe.exports=tJ({lon:XF.lon,lat:XF.lat,z:{valType:"data_array",editType:"calc"},radius:{valType:"number",editType:"plot",arrayOk:!0,min:1,dflt:30},below:{valType:"string",editType:"plot"},text:XF.text,hovertext:XF.hovertext,hoverinfo:tJ({},SVe.hoverinfo,{flags:["lon","lat","z","text","name"]}),hovertemplate:rGt(),showlegend:tJ({},SVe.showlegend,{dflt:!1})},tGt("",{cLetter:"z",editTypeOverride:"calc"}))});var kVe=ye((Nyr,EVe)=>{"use strict";var iGt=Mr(),nGt=Uh(),aGt=rJ();EVe.exports=function(t,r,n,i){function a(u,c){return iGt.coerce(t,r,aGt,u,c)}var o=a("lon")||[],s=a("lat")||[],l=Math.min(o.length,s.length);if(!l){r.visible=!1;return}r._length=l,a("z"),a("radius"),a("below"),a("text"),a("hovertext"),a("hovertemplate"),nGt(t,r,i,a,{prefix:"",cLetter:"z"})}});var PVe=ye((Uyr,LVe)=>{"use strict";var iJ=uo(),oGt=Mr().isArrayOrTypedArray,nJ=es().BADNUM,sGt=zv(),CVe=Mr()._;LVe.exports=function(t,r){for(var n=r._length,i=new Array(n),a=r.z,o=oGt(a)&&a.length,s=0;s{"use strict";var lGt=uo(),aJ=Mr(),IVe=va(),RVe=Mu(),DVe=es().BADNUM,uGt=tx().makeBlank;zVe.exports=function(t){var r=t[0].trace,n=r.visible===!0&&r._length!==0,i={layout:{visibility:"none"},paint:{}},a=r._opts={heatmap:i,geojson:uGt()};if(!n)return a;var o=[],s,l=r.z,u=r.radius,c=aJ.isArrayOrTypedArray(l)&&l.length,f=aJ.isArrayOrTypedArray(u);for(s=0;s0?+u[s]:0),o.push({type:"Feature",geometry:{type:"Point",coordinates:d},properties:v})}}var b=RVe.extractOpts(r),g=b.reversescale?RVe.flipScale(b.colorscale):b.colorscale,E=g[0][1],k=IVe.opacity(E)<1?E:IVe.addOpacity(E,0),A=["interpolate",["linear"],["heatmap-density"],0,k];for(s=1;s{"use strict";var qVe=FVe(),cGt=c1().traceLayerPrefix;function OVe(e,t){this.type="densitymapbox",this.subplot=e,this.uid=t,this.sourceId="source-"+t,this.layerList=[["heatmap",cGt+t+"-heatmap"]],this.below=null}var YF=OVe.prototype;YF.update=function(e){var t=this.subplot,r=this.layerList,n=qVe(e),i=t.belowLookup["trace-"+this.uid];t.map.getSource(this.sourceId).setData(n.geojson),i!==this.below&&(this._removeLayers(),this._addLayers(n,i),this.below=i);for(var a=0;a=0;r--)e.removeLayer(t[r][1])};YF.dispose=function(){var e=this.subplot.map;this._removeLayers(),e.removeSource(this.sourceId)};BVe.exports=function(t,r){var n=r[0].trace,i=new OVe(t,n.uid),a=i.sourceId,o=qVe(r),s=i.below=t.belowLookup["trace-"+n.uid];return t.map.addSource(a,{type:"geojson",data:o.geojson}),i._addLayers(o,s),i}});var VVe=ye((Gyr,UVe)=>{"use strict";var fGt=Qa(),hGt=GF().hoverPoints,dGt=GF().getExtraText;UVe.exports=function(t,r,n){var i=hGt(t,r,n);if(i){var a=i[0],o=a.cd,s=o[0].trace,l=o[a.index];if(delete a.color,"z"in l){var u=a.subplot.mockAxis;a.z=l.z,a.zLabel=fGt.tickText(u,u.c2l(l.z),"hover").text}return a.extraText=dGt(s,l,o[0].t.labels),[a]}}});var GVe=ye((jyr,HVe)=>{"use strict";HVe.exports=function(t,r){return t.lon=r.lon,t.lat=r.lat,t.z=r.z,t}});var WVe=ye((Zyr,jVe)=>{"use strict";var Wyr=["*densitymapbox* trace is deprecated!","Please consider switching to the *densitymap* trace type and `map` subplots.","Learn more at: https://plotly.com/python/maplibre-migration/","as well as https://plotly.com/javascript/maplibre-migration/"].join(" ");jVe.exports={attributes:rJ(),supplyDefaults:kVe(),colorbar:S_(),formatLabels:NK(),calc:PVe(),plot:NVe(),hoverPoints:VVe(),eventData:GVe(),getBelow:function(e,t){for(var r=t.getMapLayers(),n=0;n{"use strict";ZVe.exports=WVe()});var KVe=ye((Yyr,YVe)=>{YVe.exports={version:8,name:"orto",metadata:{"maputnik:renderer":"mlgljs"},center:[1.537786,41.837539],zoom:12,bearing:0,pitch:0,light:{anchor:"viewport",color:"white",intensity:.4,position:[1.15,45,30]},sources:{ortoEsri:{type:"raster",tiles:["https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}"],tileSize:256,maxzoom:18,attribution:"ESRI © ESRI"},ortoInstaMaps:{type:"raster",tiles:["https://tilemaps.icgc.cat/mapfactory/wmts/orto_8_12/CAT3857/{z}/{x}/{y}.png"],tileSize:256,maxzoom:13},ortoICGC:{type:"raster",tiles:["https://geoserveis.icgc.cat/icc_mapesmultibase/noutm/wmts/orto/GRID3857/{z}/{x}/{y}.jpeg"],tileSize:256,minzoom:13.1,maxzoom:20},openmaptiles:{type:"vector",url:"https://geoserveis.icgc.cat/contextmaps/basemap.json"}},sprite:"https://geoserveis.icgc.cat/contextmaps/sprites/sprite@1",glyphs:"https://geoserveis.icgc.cat/contextmaps/glyphs/{fontstack}/{range}.pbf",layers:[{id:"background",type:"background",paint:{"background-color":"#F4F9F4"}},{id:"ortoEsri",type:"raster",source:"ortoEsri",maxzoom:16,layout:{visibility:"visible"}},{id:"ortoICGC",type:"raster",source:"ortoICGC",minzoom:13.1,maxzoom:19,layout:{visibility:"visible"}},{id:"ortoInstaMaps",type:"raster",source:"ortoInstaMaps",maxzoom:13,layout:{visibility:"visible"}},{id:"waterway_tunnel",type:"line",source:"openmaptiles","source-layer":"waterway",minzoom:14,filter:["all",["in","class","river","stream","canal"],["==","brunnel","tunnel"]],layout:{"line-cap":"round"},paint:{"line-color":"#a0c8f0","line-width":{base:1.3,stops:[[13,.5],[20,6]]},"line-dasharray":[2,4]}},{id:"waterway-other",type:"line",metadata:{"mapbox:group":"1444849382550.77"},source:"openmaptiles","source-layer":"waterway",filter:["!in","class","canal","river","stream"],layout:{"line-cap":"round"},paint:{"line-color":"#a0c8f0","line-width":{base:1.3,stops:[[13,.5],[20,2]]}}},{id:"waterway-stream-canal",type:"line",metadata:{"mapbox:group":"1444849382550.77"},source:"openmaptiles","source-layer":"waterway",filter:["all",["in","class","canal","stream"],["!=","brunnel","tunnel"]],layout:{"line-cap":"round"},paint:{"line-color":"#a0c8f0","line-width":{base:1.3,stops:[[13,.5],[20,6]]}}},{id:"waterway-river",type:"line",metadata:{"mapbox:group":"1444849382550.77"},source:"openmaptiles","source-layer":"waterway",filter:["all",["==","class","river"],["!=","brunnel","tunnel"]],layout:{"line-cap":"round"},paint:{"line-color":"#a0c8f0","line-width":{base:1.2,stops:[[10,.8],[20,4]]},"line-opacity":.5}},{id:"water-offset",type:"fill",metadata:{"mapbox:group":"1444849382550.77"},source:"openmaptiles","source-layer":"water",maxzoom:8,filter:["==","$type","Polygon"],layout:{visibility:"visible"},paint:{"fill-opacity":0,"fill-color":"#a0c8f0","fill-translate":{base:1,stops:[[6,[2,0]],[8,[0,0]]]}}},{id:"water",type:"fill",metadata:{"mapbox:group":"1444849382550.77"},source:"openmaptiles","source-layer":"water",layout:{visibility:"visible"},paint:{"fill-color":"hsl(210, 67%, 85%)","fill-opacity":0}},{id:"water-pattern",type:"fill",metadata:{"mapbox:group":"1444849382550.77"},source:"openmaptiles","source-layer":"water",layout:{visibility:"visible"},paint:{"fill-translate":[0,2.5],"fill-pattern":"wave","fill-opacity":1}},{id:"landcover-ice-shelf",type:"fill",metadata:{"mapbox:group":"1444849382550.77"},source:"openmaptiles","source-layer":"landcover",filter:["==","subclass","ice_shelf"],layout:{visibility:"visible"},paint:{"fill-color":"#fff","fill-opacity":{base:1,stops:[[0,.9],[10,.3]]}}},{id:"tunnel-service-track-casing",type:"line",metadata:{"mapbox:group":"1444849354174.1904"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","tunnel"],["in","class","service","track"]],layout:{"line-join":"round"},paint:{"line-color":"#cfcdca","line-dasharray":[.5,.25],"line-width":{base:1.2,stops:[[15,1],[16,4],[20,11]]}}},{id:"tunnel-minor-casing",type:"line",metadata:{"mapbox:group":"1444849354174.1904"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","tunnel"],["==","class","minor"]],layout:{"line-join":"round"},paint:{"line-color":"#cfcdca","line-opacity":{stops:[[12,0],[12.5,1]]},"line-width":{base:1.2,stops:[[12,.5],[13,1],[14,4],[20,15]]}}},{id:"tunnel-secondary-tertiary-casing",type:"line",metadata:{"mapbox:group":"1444849354174.1904"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","tunnel"],["in","class","secondary","tertiary"]],layout:{"line-join":"round"},paint:{"line-color":"#e9ac77","line-opacity":1,"line-width":{base:1.2,stops:[[8,1.5],[20,17]]}}},{id:"tunnel-trunk-primary-casing",type:"line",metadata:{"mapbox:group":"1444849354174.1904"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","tunnel"],["in","class","primary","trunk"]],layout:{"line-join":"round"},paint:{"line-color":"#e9ac77","line-width":{base:1.2,stops:[[5,.4],[6,.6],[7,1.5],[20,22]]},"line-opacity":.7}},{id:"tunnel-motorway-casing",type:"line",metadata:{"mapbox:group":"1444849354174.1904"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","tunnel"],["==","class","motorway"]],layout:{"line-join":"round",visibility:"visible"},paint:{"line-color":"#e9ac77","line-dasharray":[.5,.25],"line-width":{base:1.2,stops:[[5,.4],[6,.6],[7,1.5],[20,22]]},"line-opacity":.5}},{id:"tunnel-path",type:"line",metadata:{"mapbox:group":"1444849354174.1904"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["==","brunnel","tunnel"],["==","class","path"]]],paint:{"line-color":"#cba","line-dasharray":[1.5,.75],"line-width":{base:1.2,stops:[[15,1.2],[20,4]]}}},{id:"tunnel-service-track",type:"line",metadata:{"mapbox:group":"1444849354174.1904"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","tunnel"],["in","class","service","track"]],layout:{"line-join":"round"},paint:{"line-color":"#fff","line-width":{base:1.2,stops:[[15.5,0],[16,2],[20,7.5]]}}},{id:"tunnel-minor",type:"line",metadata:{"mapbox:group":"1444849354174.1904"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","tunnel"],["==","class","minor_road"]],layout:{"line-join":"round"},paint:{"line-color":"#fff","line-opacity":1,"line-width":{base:1.2,stops:[[13.5,0],[14,2.5],[20,11.5]]}}},{id:"tunnel-secondary-tertiary",type:"line",metadata:{"mapbox:group":"1444849354174.1904"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","tunnel"],["in","class","secondary","tertiary"]],layout:{"line-join":"round"},paint:{"line-color":"#fff4c6","line-width":{base:1.2,stops:[[6.5,0],[7,.5],[20,10]]}}},{id:"tunnel-trunk-primary",type:"line",metadata:{"mapbox:group":"1444849354174.1904"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","tunnel"],["in","class","primary","trunk"]],layout:{"line-join":"round"},paint:{"line-color":"#fff4c6","line-width":{base:1.2,stops:[[6.5,0],[7,.5],[20,18]]},"line-opacity":.5}},{id:"tunnel-motorway",type:"line",metadata:{"mapbox:group":"1444849354174.1904"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","tunnel"],["==","class","motorway"]],layout:{"line-join":"round",visibility:"visible"},paint:{"line-color":"#ffdaa6","line-width":{base:1.2,stops:[[6.5,0],[7,.5],[20,18]]},"line-opacity":.5}},{id:"tunnel-railway",type:"line",metadata:{"mapbox:group":"1444849354174.1904"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","tunnel"],["==","class","rail"]],paint:{"line-color":"#bbb","line-width":{base:1.4,stops:[[14,.4],[15,.75],[20,2]]},"line-dasharray":[2,2]}},{id:"ferry",type:"line",source:"openmaptiles","source-layer":"transportation",filter:["all",["in","class","ferry"]],layout:{"line-join":"round",visibility:"visible"},paint:{"line-color":"rgba(108, 159, 182, 1)","line-width":1.1,"line-dasharray":[2,2]}},{id:"aeroway-taxiway-casing",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"aeroway",minzoom:12,filter:["all",["in","class","taxiway"]],layout:{"line-cap":"round","line-join":"round",visibility:"visible"},paint:{"line-color":"rgba(153, 153, 153, 1)","line-width":{base:1.5,stops:[[11,2],[17,12]]},"line-opacity":1}},{id:"aeroway-runway-casing",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"aeroway",minzoom:12,filter:["all",["in","class","runway"]],layout:{"line-cap":"round","line-join":"round",visibility:"visible"},paint:{"line-color":"rgba(153, 153, 153, 1)","line-width":{base:1.5,stops:[[11,5],[17,55]]},"line-opacity":1}},{id:"aeroway-taxiway",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"aeroway",minzoom:4,filter:["all",["in","class","taxiway"],["==","$type","LineString"]],layout:{"line-cap":"round","line-join":"round",visibility:"visible"},paint:{"line-color":"rgba(255, 255, 255, 1)","line-width":{base:1.5,stops:[[11,1],[17,10]]},"line-opacity":{base:1,stops:[[11,0],[12,1]]}}},{id:"aeroway-runway",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"aeroway",minzoom:4,filter:["all",["in","class","runway"],["==","$type","LineString"]],layout:{"line-cap":"round","line-join":"round",visibility:"visible"},paint:{"line-color":"rgba(255, 255, 255, 1)","line-width":{base:1.5,stops:[[11,4],[17,50]]},"line-opacity":{base:1,stops:[[11,0],[12,1]]}}},{id:"highway-motorway-link-casing",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",minzoom:12,filter:["all",["!in","brunnel","bridge","tunnel"],["==","class","motorway_link"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#e9ac77","line-opacity":1,"line-width":{base:1.2,stops:[[12,1],[13,3],[14,4],[20,15]]}}},{id:"highway-link-casing",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",minzoom:13,filter:["all",["!in","brunnel","bridge","tunnel"],["in","class","primary_link","secondary_link","tertiary_link","trunk_link"]],layout:{"line-cap":"round","line-join":"round",visibility:"visible"},paint:{"line-color":"#e9ac77","line-opacity":1,"line-width":{base:1.2,stops:[[12,1],[13,3],[14,4],[20,15]]}}},{id:"highway-minor-casing",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["!=","brunnel","tunnel"],["in","class","minor","service","track"]]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#cfcdca","line-opacity":{stops:[[12,0],[12.5,0]]},"line-width":{base:1.2,stops:[[12,.5],[13,1],[14,4],[20,15]]}}},{id:"highway-secondary-tertiary-casing",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",filter:["all",["!in","brunnel","bridge","tunnel"],["in","class","secondary","tertiary"]],layout:{"line-cap":"butt","line-join":"round",visibility:"visible"},paint:{"line-color":"#e9ac77","line-opacity":.5,"line-width":{base:1.2,stops:[[8,1.5],[20,17]]}}},{id:"highway-primary-casing",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",minzoom:5,filter:["all",["!in","brunnel","bridge","tunnel"],["in","class","primary"]],layout:{"line-cap":"butt","line-join":"round",visibility:"visible"},paint:{"line-color":"#e9ac77","line-opacity":{stops:[[7,0],[8,.6]]},"line-width":{base:1.2,stops:[[7,0],[8,.6],[9,1.5],[20,22]]}}},{id:"highway-trunk-casing",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",minzoom:5,filter:["all",["!in","brunnel","bridge","tunnel"],["in","class","trunk"]],layout:{"line-cap":"butt","line-join":"round",visibility:"visible"},paint:{"line-color":"#e9ac77","line-opacity":{stops:[[5,0],[6,.5]]},"line-width":{base:1.2,stops:[[5,0],[6,.6],[7,1.5],[20,22]]}}},{id:"highway-motorway-casing",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",minzoom:4,filter:["all",["!in","brunnel","bridge","tunnel"],["==","class","motorway"]],layout:{"line-cap":"butt","line-join":"round",visibility:"visible"},paint:{"line-color":"#e9ac77","line-width":{base:1.2,stops:[[4,0],[5,.4],[6,.6],[7,1.5],[20,22]]},"line-opacity":{stops:[[4,0],[5,.5]]}}},{id:"highway-path",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["!in","brunnel","bridge","tunnel"],["==","class","path"]]],paint:{"line-color":"#cba","line-dasharray":[1.5,.75],"line-width":{base:1.2,stops:[[15,1.2],[20,4]]}}},{id:"highway-motorway-link",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",minzoom:12,filter:["all",["!in","brunnel","bridge","tunnel"],["==","class","motorway_link"]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fc8","line-width":{base:1.2,stops:[[12.5,0],[13,1.5],[14,2.5],[20,11.5]]}}},{id:"highway-link",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",minzoom:13,filter:["all",["!in","brunnel","bridge","tunnel"],["in","class","primary_link","secondary_link","tertiary_link","trunk_link"]],layout:{"line-cap":"round","line-join":"round",visibility:"visible"},paint:{"line-color":"#fea","line-width":{base:1.2,stops:[[12.5,0],[13,1.5],[14,2.5],[20,11.5]]}}},{id:"highway-minor",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["!=","brunnel","tunnel"],["in","class","minor","service","track"]]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"#fff","line-opacity":.5,"line-width":{base:1.2,stops:[[13.5,0],[14,2.5],[20,11.5]]}}},{id:"highway-secondary-tertiary",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",filter:["all",["!in","brunnel","bridge","tunnel"],["in","class","secondary","tertiary"]],layout:{"line-cap":"round","line-join":"round",visibility:"visible"},paint:{"line-color":"#fea","line-width":{base:1.2,stops:[[6.5,0],[8,.5],[20,13]]},"line-opacity":.5}},{id:"highway-primary",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["!in","brunnel","bridge","tunnel"],["in","class","primary"]]],layout:{"line-cap":"round","line-join":"round",visibility:"visible"},paint:{"line-color":"#fea","line-width":{base:1.2,stops:[[8.5,0],[9,.5],[20,18]]},"line-opacity":0}},{id:"highway-trunk",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["!in","brunnel","bridge","tunnel"],["in","class","trunk"]]],layout:{"line-cap":"round","line-join":"round",visibility:"visible"},paint:{"line-color":"#fea","line-width":{base:1.2,stops:[[6.5,0],[7,.5],[20,18]]},"line-opacity":.5}},{id:"highway-motorway",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",minzoom:5,filter:["all",["==","$type","LineString"],["all",["!in","brunnel","bridge","tunnel"],["==","class","motorway"]]],layout:{"line-cap":"round","line-join":"round",visibility:"visible"},paint:{"line-color":"#fc8","line-width":{base:1.2,stops:[[6.5,0],[7,.5],[20,18]]},"line-opacity":.5}},{id:"railway-transit",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["==","class","transit"],["!in","brunnel","tunnel"]]],layout:{visibility:"visible"},paint:{"line-color":"hsla(0, 0%, 73%, 0.77)","line-width":{base:1.4,stops:[[14,.4],[20,1]]}}},{id:"railway-transit-hatching",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["==","class","transit"],["!in","brunnel","tunnel"]]],layout:{visibility:"visible"},paint:{"line-color":"hsla(0, 0%, 73%, 0.68)","line-dasharray":[.2,8],"line-width":{base:1.4,stops:[[14.5,0],[15,2],[20,6]]}}},{id:"railway-service",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["==","class","rail"],["has","service"]]],paint:{"line-color":"hsla(0, 0%, 73%, 0.77)","line-width":{base:1.4,stops:[[14,.4],[20,1]]}}},{id:"railway-service-hatching",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["==","class","rail"],["has","service"]]],layout:{visibility:"visible"},paint:{"line-color":"hsla(0, 0%, 73%, 0.68)","line-dasharray":[.2,8],"line-width":{base:1.4,stops:[[14.5,0],[15,2],[20,6]]}}},{id:"railway",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["!has","service"],["!in","brunnel","bridge","tunnel"],["==","class","rail"]]],paint:{"line-color":"#bbb","line-width":{base:1.4,stops:[[14,.4],[15,.75],[20,2]]}}},{id:"railway-hatching",type:"line",metadata:{"mapbox:group":"1444849345966.4436"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["!has","service"],["!in","brunnel","bridge","tunnel"],["==","class","rail"]]],paint:{"line-color":"#bbb","line-dasharray":[.2,8],"line-width":{base:1.4,stops:[[14.5,0],[15,3],[20,8]]}}},{id:"bridge-motorway-link-casing",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","bridge"],["==","class","motorway_link"]],layout:{"line-join":"round"},paint:{"line-color":"#e9ac77","line-opacity":1,"line-width":{base:1.2,stops:[[12,1],[13,3],[14,4],[20,15]]}}},{id:"bridge-link-casing",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","bridge"],["in","class","primary_link","secondary_link","tertiary_link","trunk_link"]],layout:{"line-join":"round"},paint:{"line-color":"#e9ac77","line-opacity":1,"line-width":{base:1.2,stops:[[12,1],[13,3],[14,4],[20,15]]}}},{id:"bridge-secondary-tertiary-casing",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","bridge"],["in","class","secondary","tertiary"]],layout:{"line-join":"round"},paint:{"line-color":"#e9ac77","line-opacity":1,"line-width":{base:1.2,stops:[[8,1.5],[20,28]]}}},{id:"bridge-trunk-primary-casing",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","bridge"],["in","class","primary","trunk"]],layout:{"line-join":"round"},paint:{"line-color":"hsl(28, 76%, 67%)","line-width":{base:1.2,stops:[[5,.4],[6,.6],[7,1.5],[20,26]]}}},{id:"bridge-motorway-casing",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","bridge"],["==","class","motorway"]],layout:{"line-join":"round"},paint:{"line-color":"#e9ac77","line-width":{base:1.2,stops:[[5,.4],[6,.6],[7,1.5],[20,22]]},"line-opacity":.5}},{id:"bridge-path-casing",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["==","brunnel","bridge"],["==","class","path"]]],paint:{"line-color":"#f8f4f0","line-width":{base:1.2,stops:[[15,1.2],[20,18]]}}},{id:"bridge-path",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","$type","LineString"],["all",["==","brunnel","bridge"],["==","class","path"]]],paint:{"line-color":"#cba","line-width":{base:1.2,stops:[[15,1.2],[20,4]]},"line-dasharray":[1.5,.75]}},{id:"bridge-motorway-link",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","bridge"],["==","class","motorway_link"]],layout:{"line-join":"round"},paint:{"line-color":"#fc8","line-width":{base:1.2,stops:[[12.5,0],[13,1.5],[14,2.5],[20,11.5]]}}},{id:"bridge-link",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","bridge"],["in","class","primary_link","secondary_link","tertiary_link","trunk_link"]],layout:{"line-join":"round"},paint:{"line-color":"#fea","line-width":{base:1.2,stops:[[12.5,0],[13,1.5],[14,2.5],[20,11.5]]}}},{id:"bridge-secondary-tertiary",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","bridge"],["in","class","secondary","tertiary"]],layout:{"line-join":"round"},paint:{"line-color":"#fea","line-width":{base:1.2,stops:[[6.5,0],[7,.5],[20,20]]}}},{id:"bridge-trunk-primary",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","bridge"],["in","class","primary","trunk"]],layout:{"line-join":"round"},paint:{"line-color":"#fea","line-width":{base:1.2,stops:[[6.5,0],[7,.5],[20,18]]}}},{id:"bridge-motorway",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","bridge"],["==","class","motorway"]],layout:{"line-join":"round"},paint:{"line-color":"#fc8","line-width":{base:1.2,stops:[[6.5,0],[7,.5],[20,18]]},"line-opacity":.5}},{id:"bridge-railway",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","bridge"],["==","class","rail"]],paint:{"line-color":"#bbb","line-width":{base:1.4,stops:[[14,.4],[15,.75],[20,2]]}}},{id:"bridge-railway-hatching",type:"line",metadata:{"mapbox:group":"1444849334699.1902"},source:"openmaptiles","source-layer":"transportation",filter:["all",["==","brunnel","bridge"],["==","class","rail"]],paint:{"line-color":"#bbb","line-dasharray":[.2,8],"line-width":{base:1.4,stops:[[14.5,0],[15,3],[20,8]]}}},{id:"cablecar",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:13,filter:["==","class","cable_car"],layout:{visibility:"visible","line-cap":"round"},paint:{"line-color":"hsl(0, 0%, 70%)","line-width":{base:1,stops:[[11,1],[19,2.5]]}}},{id:"cablecar-dash",type:"line",source:"openmaptiles","source-layer":"transportation",minzoom:13,filter:["==","class","cable_car"],layout:{visibility:"visible","line-cap":"round"},paint:{"line-color":"hsl(0, 0%, 70%)","line-width":{base:1,stops:[[11,3],[19,5.5]]},"line-dasharray":[2,3]}},{id:"boundary-land-level-4",type:"line",source:"openmaptiles","source-layer":"boundary",filter:["all",[">=","admin_level",4],["<=","admin_level",8],["!=","maritime",1]],layout:{"line-join":"round"},paint:{"line-color":"#9e9cab","line-dasharray":[3,1,1,1],"line-width":{base:1.4,stops:[[4,.4],[5,1],[12,3]]},"line-opacity":.6}},{id:"boundary-land-level-2",type:"line",source:"openmaptiles","source-layer":"boundary",filter:["all",["==","admin_level",2],["!=","maritime",1],["!=","disputed",1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(248, 7%, 66%)","line-width":{base:1,stops:[[0,.6],[4,1.4],[5,2],[12,2]]}}},{id:"boundary-land-disputed",type:"line",source:"openmaptiles","source-layer":"boundary",filter:["all",["!=","maritime",1],["==","disputed",1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"hsl(248, 7%, 70%)","line-dasharray":[1,3],"line-width":{base:1,stops:[[0,.6],[4,1.4],[5,2],[12,8]]}}},{id:"boundary-water",type:"line",source:"openmaptiles","source-layer":"boundary",filter:["all",["in","admin_level",2,4],["==","maritime",1]],layout:{"line-cap":"round","line-join":"round"},paint:{"line-color":"rgba(154, 189, 214, 1)","line-width":{base:1,stops:[[0,.6],[4,1],[5,1],[12,1]]},"line-opacity":{stops:[[6,0],[10,0]]}}},{id:"waterway-name",type:"symbol",source:"openmaptiles","source-layer":"waterway",minzoom:13,filter:["all",["==","$type","LineString"],["has","name"]],layout:{"text-font":["Noto Sans Italic"],"text-size":14,"text-field":"{name:latin} {name:nonlatin}","text-max-width":5,"text-rotation-alignment":"map","symbol-placement":"line","text-letter-spacing":.2,"symbol-spacing":350},paint:{"text-color":"#74aee9","text-halo-width":1.5,"text-halo-color":"rgba(255,255,255,0.7)"}},{id:"water-name-lakeline",type:"symbol",source:"openmaptiles","source-layer":"water_name",filter:["==","$type","LineString"],layout:{"text-font":["Noto Sans Italic"],"text-size":14,"text-field":`{name:latin} +{name:nonlatin}`,"text-max-width":5,"text-rotation-alignment":"map","symbol-placement":"line","symbol-spacing":350,"text-letter-spacing":.2},paint:{"text-color":"#74aee9","text-halo-width":1.5,"text-halo-color":"rgba(255,255,255,0.7)"}},{id:"water-name-ocean",type:"symbol",source:"openmaptiles","source-layer":"water_name",filter:["all",["==","$type","Point"],["==","class","ocean"]],layout:{"text-font":["Noto Sans Italic"],"text-size":14,"text-field":"{name:latin}","text-max-width":5,"text-rotation-alignment":"map","symbol-placement":"point","symbol-spacing":350,"text-letter-spacing":.2},paint:{"text-color":"#74aee9","text-halo-width":1.5,"text-halo-color":"rgba(255,255,255,0.7)"}},{id:"water-name-other",type:"symbol",source:"openmaptiles","source-layer":"water_name",filter:["all",["==","$type","Point"],["!in","class","ocean"]],layout:{"text-font":["Noto Sans Italic"],"text-size":{stops:[[0,10],[6,14]]},"text-field":`{name:latin} +{name:nonlatin}`,"text-max-width":5,"text-rotation-alignment":"map","symbol-placement":"point","symbol-spacing":350,"text-letter-spacing":.2,visibility:"visible"},paint:{"text-color":"#74aee9","text-halo-width":1.5,"text-halo-color":"rgba(255,255,255,0.7)"}},{id:"poi-level-3",type:"symbol",source:"openmaptiles","source-layer":"poi",minzoom:16,filter:["all",["==","$type","Point"],[">=","rank",25]],layout:{"text-padding":2,"text-font":["Noto Sans Regular"],"text-anchor":"top","icon-image":"{class}_11","text-field":`{name:latin} +{name:nonlatin}`,"text-offset":[0,.6],"text-size":12,"text-max-width":9},paint:{"text-halo-blur":.5,"text-color":"#666","text-halo-width":1,"text-halo-color":"#ffffff"}},{id:"poi-level-2",type:"symbol",source:"openmaptiles","source-layer":"poi",minzoom:15,filter:["all",["==","$type","Point"],["<=","rank",24],[">=","rank",15]],layout:{"text-padding":2,"text-font":["Noto Sans Regular"],"text-anchor":"top","icon-image":"{class}_11","text-field":`{name:latin} +{name:nonlatin}`,"text-offset":[0,.6],"text-size":12,"text-max-width":9},paint:{"text-halo-blur":.5,"text-color":"#666","text-halo-width":1,"text-halo-color":"#ffffff"}},{id:"poi-level-1",type:"symbol",source:"openmaptiles","source-layer":"poi",minzoom:14,filter:["all",["==","$type","Point"],["<=","rank",14],["has","name"]],layout:{"text-padding":2,"text-font":["Noto Sans Regular"],"text-anchor":"top","icon-image":"{class}_11","text-field":`{name:latin} +{name:nonlatin}`,"text-offset":[0,.6],"text-size":11,"text-max-width":9},paint:{"text-halo-blur":.5,"text-color":"rgba(191, 228, 172, 1)","text-halo-width":1,"text-halo-color":"rgba(30, 29, 29, 1)"}},{id:"poi-railway",type:"symbol",source:"openmaptiles","source-layer":"poi",minzoom:13,filter:["all",["==","$type","Point"],["has","name"],["==","class","railway"],["==","subclass","station"]],layout:{"text-padding":2,"text-font":["Noto Sans Regular"],"text-anchor":"top","icon-image":"{class}_11","text-field":`{name:latin} +{name:nonlatin}`,"text-offset":[0,.6],"text-size":12,"text-max-width":9,"icon-optional":!1,"icon-ignore-placement":!1,"icon-allow-overlap":!1,"text-ignore-placement":!1,"text-allow-overlap":!1,"text-optional":!0},paint:{"text-halo-blur":.5,"text-color":"#666","text-halo-width":1,"text-halo-color":"#ffffff"}},{id:"road_oneway",type:"symbol",source:"openmaptiles","source-layer":"transportation",minzoom:15,filter:["all",["==","oneway",1],["in","class","motorway","trunk","primary","secondary","tertiary","minor","service"]],layout:{"symbol-placement":"line","icon-image":"oneway","symbol-spacing":75,"icon-padding":2,"icon-rotation-alignment":"map","icon-rotate":90,"icon-size":{stops:[[15,.5],[19,1]]}},paint:{"icon-opacity":.5}},{id:"road_oneway_opposite",type:"symbol",source:"openmaptiles","source-layer":"transportation",minzoom:15,filter:["all",["==","oneway",-1],["in","class","motorway","trunk","primary","secondary","tertiary","minor","service"]],layout:{"symbol-placement":"line","icon-image":"oneway","symbol-spacing":75,"icon-padding":2,"icon-rotation-alignment":"map","icon-rotate":-90,"icon-size":{stops:[[15,.5],[19,1]]}},paint:{"icon-opacity":.5}},{id:"highway-name-path",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:15.5,filter:["==","class","path"],layout:{"text-size":{base:1,stops:[[13,12],[14,13]]},"text-font":["Noto Sans Regular"],"text-field":"{name:latin} {name:nonlatin}","symbol-placement":"line","text-rotation-alignment":"map"},paint:{"text-halo-color":"#f8f4f0","text-color":"hsl(30, 23%, 62%)","text-halo-width":.5}},{id:"highway-name-minor",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:15,filter:["all",["==","$type","LineString"],["in","class","minor","service","track"]],layout:{"text-size":{base:1,stops:[[13,12],[14,13]]},"text-font":["Noto Sans Regular"],"text-field":"{name:latin} {name:nonlatin}","symbol-placement":"line","text-rotation-alignment":"map"},paint:{"text-halo-blur":.5,"text-color":"#765","text-halo-width":1}},{id:"highway-name-major",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:12.2,filter:["in","class","primary","secondary","tertiary","trunk"],layout:{"text-size":{base:1,stops:[[13,12],[14,13]]},"text-font":["Noto Sans Regular"],"text-field":"{name:latin} {name:nonlatin}","symbol-placement":"line","text-rotation-alignment":"map"},paint:{"text-halo-blur":.5,"text-color":"#765","text-halo-width":1}},{id:"highway-shield",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:8,filter:["all",["<=","ref_length",6],["==","$type","LineString"],["!in","network","us-interstate","us-highway","us-state"]],layout:{"text-size":10,"icon-image":"road_{ref_length}","icon-rotation-alignment":"viewport","symbol-spacing":200,"text-font":["Noto Sans Regular"],"symbol-placement":{base:1,stops:[[10,"point"],[11,"line"]]},"text-rotation-alignment":"viewport","icon-size":1,"text-field":"{ref}"},paint:{"text-opacity":1,"text-color":"rgba(20, 19, 19, 1)","text-halo-color":"rgba(230, 221, 221, 0)","text-halo-width":2,"icon-color":"rgba(183, 18, 18, 1)","icon-opacity":.3,"icon-halo-color":"rgba(183, 55, 55, 0)"}},{id:"highway-shield-us-interstate",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:7,filter:["all",["<=","ref_length",6],["==","$type","LineString"],["in","network","us-interstate"]],layout:{"text-size":10,"icon-image":"{network}_{ref_length}","icon-rotation-alignment":"viewport","symbol-spacing":200,"text-font":["Noto Sans Regular"],"symbol-placement":{base:1,stops:[[7,"point"],[7,"line"],[8,"line"]]},"text-rotation-alignment":"viewport","icon-size":1,"text-field":"{ref}"},paint:{"text-color":"rgba(0, 0, 0, 1)"}},{id:"highway-shield-us-other",type:"symbol",source:"openmaptiles","source-layer":"transportation_name",minzoom:9,filter:["all",["<=","ref_length",6],["==","$type","LineString"],["in","network","us-highway","us-state"]],layout:{"text-size":10,"icon-image":"{network}_{ref_length}","icon-rotation-alignment":"viewport","symbol-spacing":200,"text-font":["Noto Sans Regular"],"symbol-placement":{base:1,stops:[[10,"point"],[11,"line"]]},"text-rotation-alignment":"viewport","icon-size":1,"text-field":"{ref}"},paint:{"text-color":"rgba(0, 0, 0, 1)"}},{id:"place-other",type:"symbol",metadata:{"mapbox:group":"1444849242106.713"},source:"openmaptiles","source-layer":"place",minzoom:12,filter:["!in","class","city","town","village","country","continent"],layout:{"text-letter-spacing":.1,"text-size":{base:1.2,stops:[[12,10],[15,14]]},"text-font":["Noto Sans Bold"],"text-field":`{name:latin} +{name:nonlatin}`,"text-transform":"uppercase","text-max-width":9,visibility:"visible"},paint:{"text-color":"rgba(255,255,255,1)","text-halo-width":1.2,"text-halo-color":"rgba(57, 28, 28, 1)"}},{id:"place-village",type:"symbol",metadata:{"mapbox:group":"1444849242106.713"},source:"openmaptiles","source-layer":"place",minzoom:10,filter:["==","class","village"],layout:{"text-font":["Noto Sans Regular"],"text-size":{base:1.2,stops:[[10,12],[15,16]]},"text-field":`{name:latin} +{name:nonlatin}`,"text-max-width":8,visibility:"visible"},paint:{"text-color":"rgba(255, 255, 255, 1)","text-halo-width":1.2,"text-halo-color":"rgba(10, 9, 9, 0.8)"}},{id:"place-town",type:"symbol",metadata:{"mapbox:group":"1444849242106.713"},source:"openmaptiles","source-layer":"place",filter:["==","class","town"],layout:{"text-font":["Noto Sans Regular"],"text-size":{base:1.2,stops:[[10,14],[15,24]]},"text-field":`{name:latin} +{name:nonlatin}`,"text-max-width":8,visibility:"visible"},paint:{"text-color":"rgba(255, 255, 255, 1)","text-halo-width":1.2,"text-halo-color":"rgba(22, 22, 22, 0.8)"}},{id:"place-city",type:"symbol",metadata:{"mapbox:group":"1444849242106.713"},source:"openmaptiles","source-layer":"place",filter:["all",["!=","capital",2],["==","class","city"]],layout:{"text-font":["Noto Sans Regular"],"text-size":{base:1.2,stops:[[7,14],[11,24]]},"text-field":`{name:latin} +{name:nonlatin}`,"text-max-width":8,visibility:"visible"},paint:{"text-color":"rgba(0, 0, 0, 1)","text-halo-width":1.2,"text-halo-color":"rgba(255,255,255,0.8)"}},{id:"place-city-capital",type:"symbol",metadata:{"mapbox:group":"1444849242106.713"},source:"openmaptiles","source-layer":"place",filter:["all",["==","capital",2],["==","class","city"]],layout:{"text-font":["Noto Sans Regular"],"text-size":{base:1.2,stops:[[7,14],[11,24]]},"text-field":`{name:latin} +{name:nonlatin}`,"text-max-width":8,"icon-image":"star_11","text-offset":[.4,0],"icon-size":.8,"text-anchor":"left",visibility:"visible"},paint:{"text-color":"#333","text-halo-width":1.2,"text-halo-color":"rgba(255,255,255,0.8)"}},{id:"place-country-other",type:"symbol",metadata:{"mapbox:group":"1444849242106.713"},source:"openmaptiles","source-layer":"place",filter:["all",["==","class","country"],[">=","rank",3],["!has","iso_a2"]],layout:{"text-font":["Noto Sans Italic"],"text-field":"{name:latin}","text-size":{stops:[[3,11],[7,17]]},"text-transform":"uppercase","text-max-width":6.25,visibility:"visible"},paint:{"text-halo-blur":1,"text-color":"#334","text-halo-width":2,"text-halo-color":"rgba(255,255,255,0.8)"}},{id:"place-country-3",type:"symbol",metadata:{"mapbox:group":"1444849242106.713"},source:"openmaptiles","source-layer":"place",filter:["all",["==","class","country"],[">=","rank",3],["has","iso_a2"]],layout:{"text-font":["Noto Sans Bold"],"text-field":"{name:latin}","text-size":{stops:[[3,11],[7,17]]},"text-transform":"uppercase","text-max-width":6.25,visibility:"visible"},paint:{"text-halo-blur":1,"text-color":"#334","text-halo-width":2,"text-halo-color":"rgba(255,255,255,0.8)"}},{id:"place-country-2",type:"symbol",metadata:{"mapbox:group":"1444849242106.713"},source:"openmaptiles","source-layer":"place",filter:["all",["==","class","country"],["==","rank",2],["has","iso_a2"]],layout:{"text-font":["Noto Sans Bold"],"text-field":"{name:latin}","text-size":{stops:[[2,11],[5,17]]},"text-transform":"uppercase","text-max-width":6.25,visibility:"visible"},paint:{"text-halo-blur":1,"text-color":"#334","text-halo-width":2,"text-halo-color":"rgba(255,255,255,0.8)"}},{id:"place-country-1",type:"symbol",metadata:{"mapbox:group":"1444849242106.713"},source:"openmaptiles","source-layer":"place",filter:["all",["==","class","country"],["==","rank",1],["has","iso_a2"]],layout:{"text-font":["Noto Sans Bold"],"text-field":"{name:latin}","text-size":{stops:[[1,11],[4,17]]},"text-transform":"uppercase","text-max-width":6.25,visibility:"visible"},paint:{"text-halo-blur":1,"text-color":"#334","text-halo-width":2,"text-halo-color":"rgba(255,255,255,0.8)"}},{id:"place-continent",type:"symbol",metadata:{"mapbox:group":"1444849242106.713"},source:"openmaptiles","source-layer":"place",maxzoom:1,filter:["==","class","continent"],layout:{"text-font":["Noto Sans Bold"],"text-field":"{name:latin}","text-size":14,"text-max-width":6.25,"text-transform":"uppercase",visibility:"visible"},paint:{"text-halo-blur":1,"text-color":"#334","text-halo-width":2,"text-halo-color":"rgba(255,255,255,0.8)"}}],id:"qebnlkra6"}});var $Ve=ye((Kyr,JVe)=>{JVe.exports={version:8,name:"orto",metadata:{},center:[1.537786,41.837539],zoom:12,bearing:0,pitch:0,light:{anchor:"viewport",color:"white",intensity:.4,position:[1.15,45,30]},sources:{ortoEsri:{type:"raster",tiles:["https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}"],tileSize:256,maxzoom:18,attribution:"ESRI © ESRI"},ortoInstaMaps:{type:"raster",tiles:["https://tilemaps.icgc.cat/mapfactory/wmts/orto_8_12/CAT3857/{z}/{x}/{y}.png"],tileSize:256,maxzoom:13},ortoICGC:{type:"raster",tiles:["https://geoserveis.icgc.cat/icc_mapesmultibase/noutm/wmts/orto/GRID3857/{z}/{x}/{y}.jpeg"],tileSize:256,minzoom:13.1,maxzoom:20},openmaptiles:{type:"vector",url:"https://geoserveis.icgc.cat/contextmaps/basemap.json"}},sprite:"https://geoserveis.icgc.cat/contextmaps/sprites/sprite@1",glyphs:"https://geoserveis.icgc.cat/contextmaps/glyphs/{fontstack}/{range}.pbf",layers:[{id:"background",type:"background",paint:{"background-color":"#F4F9F4"}},{id:"ortoEsri",type:"raster",source:"ortoEsri",maxzoom:16,layout:{visibility:"visible"}},{id:"ortoICGC",type:"raster",source:"ortoICGC",minzoom:13.1,maxzoom:19,layout:{visibility:"visible"}},{id:"ortoInstaMaps",type:"raster",source:"ortoInstaMaps",maxzoom:13,layout:{visibility:"visible"}}]}});var bx=ye((Jyr,iHe)=>{"use strict";var vGt=X1(),pGt=KVe(),gGt=$Ve(),mGt='\xA9 OpenStreetMap contributors',QVe="https://basemaps.cartocdn.com/gl/positron-gl-style/style.json",eHe="https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json",KF="https://basemaps.cartocdn.com/gl/voyager-gl-style/style.json",yGt="https://basemaps.cartocdn.com/gl/positron-nolabels-gl-style/style.json",_Gt="https://basemaps.cartocdn.com/gl/dark-matter-nolabels-gl-style/style.json",xGt="https://basemaps.cartocdn.com/gl/voyager-nolabels-gl-style/style.json",rHe={basic:KF,streets:KF,outdoors:KF,light:QVe,dark:eHe,satellite:gGt,"satellite-streets":pGt,"open-street-map":{id:"osm",version:8,sources:{"plotly-osm-tiles":{type:"raster",attribution:mGt,tiles:["https://tile.openstreetmap.org/{z}/{x}/{y}.png"],tileSize:256}},layers:[{id:"plotly-osm-tiles",type:"raster",source:"plotly-osm-tiles",minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf"},"white-bg":{id:"white-bg",version:8,sources:{},layers:[{id:"white-bg",type:"background",paint:{"background-color":"#FFFFFF"},minzoom:0,maxzoom:22}],glyphs:"https://fonts.openmaptiles.org/{fontstack}/{range}.pbf"},"carto-positron":QVe,"carto-darkmatter":eHe,"carto-voyager":KF,"carto-positron-nolabels":yGt,"carto-darkmatter-nolabels":_Gt,"carto-voyager-nolabels":xGt},tHe=vGt(rHe);iHe.exports={styleValueDflt:"basic",stylesMap:rHe,styleValuesMap:tHe,traceLayerPrefix:"plotly-trace-layer-",layoutLayerPrefix:"plotly-layout-layer-",missingStyleErrorMsg:["No valid maplibre style found, please set `map.style` to one of:",tHe.join(", "),"or use a tile service."].join(` +`),mapOnErrorMsg:"Map error."}});var Fk=ye(($yr,lHe)=>{"use strict";var nHe=Mr(),aHe=va().defaultLine,bGt=Ju().attributes,wGt=Su(),TGt=Uc().textposition,AGt=Bu().overrideAll,SGt=Vs().templatedArray,oHe=bx(),sHe=wGt({noFontVariant:!0,noFontShadow:!0,noFontLineposition:!0,noFontTextcase:!0});sHe.family.dflt="Open Sans Regular, Arial Unicode MS Regular";var MGt=lHe.exports=AGt({_arrayAttrRegexps:[nHe.counterRegex("map",".layers",!0)],domain:bGt({name:"map"}),style:{valType:"any",values:oHe.styleValuesMap,dflt:oHe.styleValueDflt},center:{lon:{valType:"number",dflt:0},lat:{valType:"number",dflt:0}},zoom:{valType:"number",dflt:1},bearing:{valType:"number",dflt:0},pitch:{valType:"number",dflt:0},bounds:{west:{valType:"number"},east:{valType:"number"},south:{valType:"number"},north:{valType:"number"}},layers:SGt("layer",{visible:{valType:"boolean",dflt:!0},sourcetype:{valType:"enumerated",values:["geojson","vector","raster","image"],dflt:"geojson"},source:{valType:"any"},sourcelayer:{valType:"string",dflt:""},sourceattribution:{valType:"string"},type:{valType:"enumerated",values:["circle","line","fill","symbol","raster"],dflt:"circle"},coordinates:{valType:"any"},below:{valType:"string"},color:{valType:"color",dflt:aHe},opacity:{valType:"number",min:0,max:1,dflt:1},minzoom:{valType:"number",min:0,max:24,dflt:0},maxzoom:{valType:"number",min:0,max:24,dflt:24},circle:{radius:{valType:"number",dflt:15}},line:{width:{valType:"number",dflt:2},dash:{valType:"data_array"}},fill:{outlinecolor:{valType:"color",dflt:aHe}},symbol:{icon:{valType:"string",dflt:"marker"},iconsize:{valType:"number",dflt:10},text:{valType:"string",dflt:""},placement:{valType:"enumerated",values:["point","line","line-center"],dflt:"point"},textfont:sHe,textposition:nHe.extendFlat({},TGt,{arrayOk:!1})}})},"plot","from-root");MGt.uirevision={valType:"any",editType:"none"}});var JF=ye((Qyr,fHe)=>{"use strict";var EGt=Wo().hovertemplateAttrs,kGt=Wo().texttemplateAttrs,CGt=Eg(),qk=H2(),AA=Uc(),uHe=Fk(),LGt=vl(),PGt=Kl(),rw=no().extendFlat,IGt=Bu().overrideAll,RGt=Fk(),cHe=qk.line,SA=qk.marker;fHe.exports=IGt({lon:qk.lon,lat:qk.lat,cluster:{enabled:{valType:"boolean"},maxzoom:rw({},RGt.layers.maxzoom,{}),step:{valType:"number",arrayOk:!0,dflt:-1,min:-1},size:{valType:"number",arrayOk:!0,dflt:20,min:0},color:{valType:"color",arrayOk:!0},opacity:rw({},SA.opacity,{dflt:1})},mode:rw({},AA.mode,{dflt:"markers"}),text:rw({},AA.text,{}),texttemplate:kGt({editType:"plot"},{keys:["lat","lon","text"]}),hovertext:rw({},AA.hovertext,{}),line:{color:cHe.color,width:cHe.width},connectgaps:AA.connectgaps,marker:rw({symbol:{valType:"string",dflt:"circle",arrayOk:!0},angle:{valType:"number",dflt:"auto",arrayOk:!0},allowoverlap:{valType:"boolean",dflt:!1},opacity:SA.opacity,size:SA.size,sizeref:SA.sizeref,sizemin:SA.sizemin,sizemode:SA.sizemode},PGt("marker")),fill:qk.fill,fillcolor:CGt(),textfont:uHe.layers.symbol.textfont,textposition:uHe.layers.symbol.textposition,below:{valType:"string"},selected:{marker:AA.selected.marker},unselected:{marker:AA.unselected.marker},hoverinfo:rw({},LGt.hoverinfo,{flags:["lon","lat","text","name"]}),hovertemplate:EGt()},"calc","nested")});var oJ=ye((e1r,hHe)=>{"use strict";var DGt=["Metropolis Black Italic","Metropolis Black","Metropolis Bold Italic","Metropolis Bold","Metropolis Extra Bold Italic","Metropolis Extra Bold","Metropolis Extra Light Italic","Metropolis Extra Light","Metropolis Light Italic","Metropolis Light","Metropolis Medium Italic","Metropolis Medium","Metropolis Regular Italic","Metropolis Regular","Metropolis Semi Bold Italic","Metropolis Semi Bold","Metropolis Thin Italic","Metropolis Thin","Open Sans Bold Italic","Open Sans Bold","Open Sans Extrabold Italic","Open Sans Extrabold","Open Sans Italic","Open Sans Light Italic","Open Sans Light","Open Sans Regular","Open Sans Semibold Italic","Open Sans Semibold","Klokantech Noto Sans Bold","Klokantech Noto Sans CJK Bold","Klokantech Noto Sans CJK Regular","Klokantech Noto Sans Italic","Klokantech Noto Sans Regular"];hHe.exports={isSupportedFont:function(e){return DGt.indexOf(e)!==-1}}});var pHe=ye((t1r,vHe)=>{"use strict";var Ok=Mr(),sJ=lu(),zGt=$p(),FGt=R0(),qGt=D0(),OGt=Ig(),dHe=JF(),BGt=oJ().isSupportedFont;vHe.exports=function(t,r,n,i){function a(g,E){return Ok.coerce(t,r,dHe,g,E)}function o(g,E){return Ok.coerce2(t,r,dHe,g,E)}var s=NGt(t,r,a);if(!s){r.visible=!1;return}if(a("text"),a("texttemplate"),a("hovertext"),a("hovertemplate"),a("mode"),a("below"),sJ.hasMarkers(r)){zGt(t,r,n,i,a,{noLine:!0,noAngle:!0}),a("marker.allowoverlap"),a("marker.angle");var l=r.marker;l.symbol!=="circle"&&(Ok.isArrayOrTypedArray(l.size)&&(l.size=l.size[0]),Ok.isArrayOrTypedArray(l.color)&&(l.color=l.color[0]))}sJ.hasLines(r)&&(FGt(t,r,n,i,a,{noDash:!0}),a("connectgaps"));var u=o("cluster.maxzoom"),c=o("cluster.step"),f=o("cluster.color",r.marker&&r.marker.color||n),h=o("cluster.size"),d=o("cluster.opacity"),v=u!==!1||c!==!1||f!==!1||h!==!1||d!==!1,x=a("cluster.enabled",v);if(x||sJ.hasText(r)){var b=i.font.family;qGt(t,r,i,a,{noSelect:!0,noFontVariant:!0,noFontShadow:!0,noFontLineposition:!0,noFontTextcase:!0,font:{family:BGt(b)?b:"Open Sans Regular",weight:i.font.weight,style:i.font.style,size:i.font.size,color:i.font.color}})}a("fill"),r.fill!=="none"&&OGt(t,r,n,a),Ok.coerceSelectionMarkerOpacity(r,a)};function NGt(e,t,r){var n=r("lon")||[],i=r("lat")||[],a=Math.min(n.length,i.length);return t._length=a,a}});var lJ=ye((r1r,mHe)=>{"use strict";var gHe=Qa();mHe.exports=function(t,r,n){var i={},a=n[r.subplot]._subplot,o=a.mockAxis,s=t.lonlat;return i.lonLabel=gHe.tickText(o,o.c2l(s[0]),!0).text,i.latLabel=gHe.tickText(o,o.c2l(s[1]),!0).text,i}});var uJ=ye((i1r,_He)=>{"use strict";var yHe=Mr();_He.exports=function(t,r){var n=t.split(" "),i=n[0],a=n[1],o=yHe.isArrayOrTypedArray(r)?yHe.mean(r):r,s=.5+o/100,l=1.5+o/100,u=["",""],c=[0,0];switch(i){case"top":u[0]="top",c[1]=-l;break;case"bottom":u[0]="bottom",c[1]=l;break}switch(a){case"left":u[1]="right",c[0]=-s;break;case"right":u[1]="left",c[0]=s;break}var f;return u[0]&&u[1]?f=u.join("-"):u[0]?f=u[0]:u[1]?f=u[1]:f="center",{anchor:f,offset:c}}});var SHe=ye((n1r,AHe)=>{"use strict";var wHe=uo(),nv=Mr(),UGt=es().BADNUM,QF=tx(),xHe=Mu(),VGt=ao(),HGt=S3(),e7=lu(),GGt=oJ().isSupportedFont,jGt=uJ(),WGt=rp().appendArrayPointValue,ZGt=Ll().NEWLINES,XGt=Ll().BR_TAG_ALL;AHe.exports=function(t,r){var n=r[0].trace,i=n.visible===!0&&n._length!==0,a=n.fill!=="none",o=e7.hasLines(n),s=e7.hasMarkers(n),l=e7.hasText(n),u=s&&n.marker.symbol==="circle",c=s&&n.marker.symbol!=="circle",f=n.cluster&&n.cluster.enabled,h=$F("fill"),d=$F("line"),v=$F("circle"),x=$F("symbol"),b={fill:h,line:d,circle:v,symbol:x};if(!i)return b;var g;if((a||o)&&(g=QF.calcTraceToLineCoords(r)),a&&(h.geojson=QF.makePolygon(g),h.layout.visibility="visible",nv.extendFlat(h.paint,{"fill-color":n.fillcolor})),o&&(d.geojson=QF.makeLine(g),d.layout.visibility="visible",nv.extendFlat(d.paint,{"line-width":n.line.width,"line-color":n.line.color,"line-opacity":n.opacity})),u){var E=YGt(r);v.geojson=E.geojson,v.layout.visibility="visible",f&&(v.filter=["!",["has","point_count"]],b.cluster={type:"circle",filter:["has","point_count"],layout:{visibility:"visible"},paint:{"circle-color":fJ(n.cluster.color,n.cluster.step),"circle-radius":fJ(n.cluster.size,n.cluster.step),"circle-opacity":fJ(n.cluster.opacity,n.cluster.step)}},b.clusterCount={type:"symbol",filter:["has","point_count"],paint:{},layout:{"text-field":"{point_count_abbreviated}","text-font":bHe(n),"text-size":12}}),nv.extendFlat(v.paint,{"circle-color":E.mcc,"circle-radius":E.mrc,"circle-opacity":E.mo})}if(u&&f&&(v.filter=["!",["has","point_count"]]),(c||l)&&(x.geojson=KGt(r,t),nv.extendFlat(x.layout,{visibility:"visible","icon-image":"{symbol}-15","text-field":"{text}"}),c&&(nv.extendFlat(x.layout,{"icon-size":n.marker.size/10}),"angle"in n.marker&&n.marker.angle!=="auto"&&nv.extendFlat(x.layout,{"icon-rotate":{type:"identity",property:"angle"},"icon-rotation-alignment":"map"}),x.layout["icon-allow-overlap"]=n.marker.allowoverlap,nv.extendFlat(x.paint,{"icon-opacity":n.opacity*n.marker.opacity,"icon-color":n.marker.color})),l)){var k=(n.marker||{}).size,A=jGt(n.textposition,k);nv.extendFlat(x.layout,{"text-size":n.textfont.size,"text-anchor":A.anchor,"text-offset":A.offset,"text-font":bHe(n)}),nv.extendFlat(x.paint,{"text-color":n.textfont.color,"text-opacity":n.opacity})}return b};function $F(e){return{type:e,geojson:QF.makeBlank(),layout:{visibility:"none"},filter:null,paint:{}}}function YGt(e){var t=e[0].trace,r=t.marker,n=t.selectedpoints,i=nv.isArrayOrTypedArray(r.color),a=nv.isArrayOrTypedArray(r.size),o=nv.isArrayOrTypedArray(r.opacity),s;function l(k){return t.opacity*k}function u(k){return k/2}var c;i&&(xHe.hasColorscale(t,"marker")?c=xHe.makeColorScaleFuncFromTrace(r):c=nv.identity);var f;a&&(f=HGt(t));var h;o&&(h=function(k){var A=wHe(k)?+nv.constrain(k,0,1):0;return l(A)});var d=[];for(s=0;s850?s+=" Black":i>750?s+=" Extra Bold":i>650?s+=" Bold":i>550?s+=" Semi Bold":i>450?s+=" Medium":i>350?s+=" Regular":i>250?s+=" Light":i>150?s+=" Extra Light":s+=" Thin"):a.slice(0,2).join(" ")==="Open Sans"?(s="Open Sans",i>750?s+=" Extrabold":i>650?s+=" Bold":i>550?s+=" Semibold":i>350?s+=" Regular":s+=" Light"):a.slice(0,3).join(" ")==="Klokantech Noto Sans"&&(s="Klokantech Noto Sans",a[3]==="CJK"&&(s+=" CJK"),s+=i>500?" Bold":" Regular")),o&&(s+=" Italic"),s==="Open Sans Regular Italic"?s="Open Sans Italic":s==="Open Sans Regular Bold"?s="Open Sans Bold":s==="Open Sans Regular Bold Italic"?s="Open Sans Bold Italic":s==="Klokantech Noto Sans Regular Italic"&&(s="Klokantech Noto Sans Italic"),GGt(s)||(s=r);var l=s.split(", ");return l}});var CHe=ye((a1r,kHe)=>{"use strict";var JGt=Mr(),MHe=SHe(),MA=bx().traceLayerPrefix,ng={cluster:["cluster","clusterCount","circle"],nonCluster:["fill","line","circle","symbol"]};function EHe(e,t,r,n){this.type="scattermap",this.subplot=e,this.uid=t,this.clusterEnabled=r,this.isHidden=n,this.sourceIds={fill:"source-"+t+"-fill",line:"source-"+t+"-line",circle:"source-"+t+"-circle",symbol:"source-"+t+"-symbol",cluster:"source-"+t+"-circle",clusterCount:"source-"+t+"-circle"},this.layerIds={fill:MA+t+"-fill",line:MA+t+"-line",circle:MA+t+"-circle",symbol:MA+t+"-symbol",cluster:MA+t+"-cluster",clusterCount:MA+t+"-cluster-count"},this.below=null}var Bk=EHe.prototype;Bk.addSource=function(e,t,r){var n={type:"geojson",data:t.geojson};r&&r.enabled&&JGt.extendFlat(n,{cluster:!0,clusterMaxZoom:r.maxzoom});var i=this.subplot.map.getSource(this.sourceIds[e]);i?i.setData(t.geojson):this.subplot.map.addSource(this.sourceIds[e],n)};Bk.setSourceData=function(e,t){this.subplot.map.getSource(this.sourceIds[e]).setData(t.geojson)};Bk.addLayer=function(e,t,r){var n={type:t.type,id:this.layerIds[e],source:this.sourceIds[e],layout:t.layout,paint:t.paint};t.filter&&(n.filter=t.filter);for(var i=this.layerIds[e],a,o=this.subplot.getMapLayers(),s=0;s=0;L--){var _=A[L];i.removeLayer(u.layerIds[_])}k||i.removeSource(u.sourceIds.circle)}function h(k){for(var A=ng.nonCluster,L=0;L=0;L--){var _=A[L];i.removeLayer(u.layerIds[_]),k||i.removeSource(u.sourceIds[_])}}function v(k){l?f(k):d(k)}function x(k){s?c(k):h(k)}function b(){for(var k=s?ng.cluster:ng.nonCluster,A=0;A=0;n--){var i=r[n];t.removeLayer(this.layerIds[i]),t.removeSource(this.sourceIds[i])}};kHe.exports=function(t,r){var n=r[0].trace,i=n.cluster&&n.cluster.enabled,a=n.visible!==!0,o=new EHe(t,n.uid,i,a),s=MHe(t.gd,r),l=o.below=t.belowLookup["trace-"+n.uid],u,c,f;if(i)for(o.addSource("circle",s.circle,n.cluster),u=0;u{"use strict";var $Gt=Nc(),hJ=Mr(),QGt=oT(),ejt=hJ.fillText,tjt=es().BADNUM,rjt=bx().traceLayerPrefix;function ijt(e,t,r){var n=e.cd,i=n[0].trace,a=e.xa,o=e.ya,s=e.subplot,l=[],u=rjt+i.uid+"-circle",c=i.cluster&&i.cluster.enabled;if(c){var f=s.map.queryRenderedFeatures(null,{layers:[u]});l=f.map(function(M){return M.id})}var h=t>=0?Math.floor((t+180)/360):Math.ceil((t-180)/360),d=h*360,v=t-d;function x(M){var p=M.lonlat;if(p[0]===tjt||c&&l.indexOf(M.i+1)===-1)return 1/0;var P=hJ.modHalf(p[0],360),T=p[1],F=s.project([P,T]),q=F.x-a.c2p([v,T]),V=F.y-o.c2p([P,r]),H=Math.max(3,M.mrc||0);return Math.max(Math.sqrt(q*q+V*V)-H,1-3/H)}if($Gt.getClosest(n,x,e),e.index!==!1){var b=n[e.index],g=b.lonlat,E=[hJ.modHalf(g[0],360)+d,g[1]],k=a.c2p(E),A=o.c2p(E),L=b.mrc||1;e.x0=k-L,e.x1=k+L,e.y0=A-L,e.y1=A+L;var _={};_[i.subplot]={_subplot:s};var C=i._module.formatLabels(b,i,_);return e.lonLabel=C.lonLabel,e.latLabel=C.latLabel,e.color=QGt(i,b),e.extraText=LHe(i,b,n[0].t.labels),e.hovertemplate=i.hovertemplate,[e]}}function LHe(e,t,r){if(e.hovertemplate)return;var n=t.hi||e.hoverinfo,i=n.split("+"),a=i.indexOf("all")!==-1,o=i.indexOf("lon")!==-1,s=i.indexOf("lat")!==-1,l=t.lonlat,u=[];function c(f){return f+"\xB0"}return a||o&&s?u.push("("+c(l[1])+", "+c(l[0])+")"):o?u.push(r.lon+c(l[0])):s&&u.push(r.lat+c(l[1])),(a||i.indexOf("text")!==-1)&&ejt(t,e,u),u.join("
")}PHe.exports={hoverPoints:ijt,getExtraText:LHe}});var RHe=ye((s1r,IHe)=>{"use strict";IHe.exports=function(t,r){return t.lon=r.lon,t.lat=r.lat,t}});var zHe=ye((l1r,DHe)=>{"use strict";var njt=Mr(),ajt=lu(),ojt=es().BADNUM;DHe.exports=function(t,r){var n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s=n[0].trace,l;if(!ajt.hasMarkers(s))return[];if(r===!1)for(l=0;l{(function(e,t){typeof dJ=="object"&&typeof vJ!="undefined"?vJ.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis!="undefined"?globalThis:e||self,e.maplibregl=t())})(dJ,function(){"use strict";var e={},t={};function r(i,a,o){if(t[i]=o,i==="index"){var s="var sharedModule = {}; ("+t.shared+")(sharedModule); ("+t.worker+")(sharedModule);",l={};return t.shared(l),t.index(e,l),typeof window!="undefined"&&e.setWorkerUrl(window.URL.createObjectURL(new Blob([s],{type:"text/javascript"}))),e}}r("shared",["exports"],function(i){"use strict";function a(R,S,D,j){return new(D||(D=Promise))(function(te,ue){function ve(at){try{Ze(j.next(at))}catch(Tt){ue(Tt)}}function De(at){try{Ze(j.throw(at))}catch(Tt){ue(Tt)}}function Ze(at){var Tt;at.done?te(at.value):(Tt=at.value,Tt instanceof D?Tt:new D(function(Ft){Ft(Tt)})).then(ve,De)}Ze((j=j.apply(R,S||[])).next())})}function o(R){return R&&R.__esModule&&Object.prototype.hasOwnProperty.call(R,"default")?R.default:R}typeof SuppressedError=="function"&&SuppressedError;var s=l;function l(R,S){this.x=R,this.y=S}l.prototype={clone:function(){return new l(this.x,this.y)},add:function(R){return this.clone()._add(R)},sub:function(R){return this.clone()._sub(R)},multByPoint:function(R){return this.clone()._multByPoint(R)},divByPoint:function(R){return this.clone()._divByPoint(R)},mult:function(R){return this.clone()._mult(R)},div:function(R){return this.clone()._div(R)},rotate:function(R){return this.clone()._rotate(R)},rotateAround:function(R,S){return this.clone()._rotateAround(R,S)},matMult:function(R){return this.clone()._matMult(R)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(R){return this.x===R.x&&this.y===R.y},dist:function(R){return Math.sqrt(this.distSqr(R))},distSqr:function(R){var S=R.x-this.x,D=R.y-this.y;return S*S+D*D},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(R){return Math.atan2(this.y-R.y,this.x-R.x)},angleWith:function(R){return this.angleWithSep(R.x,R.y)},angleWithSep:function(R,S){return Math.atan2(this.x*S-this.y*R,this.x*R+this.y*S)},_matMult:function(R){var S=R[2]*this.x+R[3]*this.y;return this.x=R[0]*this.x+R[1]*this.y,this.y=S,this},_add:function(R){return this.x+=R.x,this.y+=R.y,this},_sub:function(R){return this.x-=R.x,this.y-=R.y,this},_mult:function(R){return this.x*=R,this.y*=R,this},_div:function(R){return this.x/=R,this.y/=R,this},_multByPoint:function(R){return this.x*=R.x,this.y*=R.y,this},_divByPoint:function(R){return this.x/=R.x,this.y/=R.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var R=this.y;return this.y=this.x,this.x=-R,this},_rotate:function(R){var S=Math.cos(R),D=Math.sin(R),j=D*this.x+S*this.y;return this.x=S*this.x-D*this.y,this.y=j,this},_rotateAround:function(R,S){var D=Math.cos(R),j=Math.sin(R),te=S.y+j*(this.x-S.x)+D*(this.y-S.y);return this.x=S.x+D*(this.x-S.x)-j*(this.y-S.y),this.y=te,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},l.convert=function(R){return R instanceof l?R:Array.isArray(R)?new l(R[0],R[1]):R};var u=o(s),c=f;function f(R,S,D,j){this.cx=3*R,this.bx=3*(D-R)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*S,this.by=3*(j-S)-this.cy,this.ay=1-this.cy-this.by,this.p1x=R,this.p1y=S,this.p2x=D,this.p2y=j}f.prototype={sampleCurveX:function(R){return((this.ax*R+this.bx)*R+this.cx)*R},sampleCurveY:function(R){return((this.ay*R+this.by)*R+this.cy)*R},sampleCurveDerivativeX:function(R){return(3*this.ax*R+2*this.bx)*R+this.cx},solveCurveX:function(R,S){if(S===void 0&&(S=1e-6),R<0)return 0;if(R>1)return 1;for(var D=R,j=0;j<8;j++){var te=this.sampleCurveX(D)-R;if(Math.abs(te)te?ve=D:De=D,D=.5*(De-ve)+ve;return D},solve:function(R,S){return this.sampleCurveY(this.solveCurveX(R,S))}};var h=o(c);let d,v;function x(){return d==null&&(d=typeof OffscreenCanvas!="undefined"&&new OffscreenCanvas(1,1).getContext("2d")&&typeof createImageBitmap=="function"),d}function b(){if(v==null&&(v=!1,x())){let S=new OffscreenCanvas(5,5).getContext("2d",{willReadFrequently:!0});if(S){for(let j=0;j<5*5;j++){let te=4*j;S.fillStyle=`rgb(${te},${te+1},${te+2})`,S.fillRect(j%5,Math.floor(j/5),1,1)}let D=S.getImageData(0,0,5,5).data;for(let j=0;j<5*5*4;j++)if(j%4!=3&&D[j]!==j){v=!0;break}}}return v||!1}function g(R,S,D,j){let te=new h(R,S,D,j);return ue=>te.solve(ue)}let E=g(.25,.1,.25,1);function k(R,S,D){return Math.min(D,Math.max(S,R))}function A(R,S,D){let j=D-S,te=((R-S)%j+j)%j+S;return te===S?D:te}function L(R,...S){for(let D of S)for(let j in D)R[j]=D[j];return R}let _=1;function C(R,S,D){let j={};for(let te in R)j[te]=S.call(this,R[te],te,R);return j}function M(R,S,D){let j={};for(let te in R)S.call(this,R[te],te,R)&&(j[te]=R[te]);return j}function p(R){return Array.isArray(R)?R.map(p):typeof R=="object"&&R?C(R,p):R}let P={};function T(R){P[R]||(typeof console!="undefined"&&console.warn(R),P[R]=!0)}function F(R,S,D){return(D.y-R.y)*(S.x-R.x)>(S.y-R.y)*(D.x-R.x)}function q(R){return typeof WorkerGlobalScope!="undefined"&&R!==void 0&&R instanceof WorkerGlobalScope}let V=null;function H(R){return typeof ImageBitmap!="undefined"&&R instanceof ImageBitmap}let X="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";function G(R,S,D,j,te){return a(this,void 0,void 0,function*(){if(typeof VideoFrame=="undefined")throw new Error("VideoFrame not supported");let ue=new VideoFrame(R,{timestamp:0});try{let ve=ue==null?void 0:ue.format;if(!ve||!ve.startsWith("BGR")&&!ve.startsWith("RGB"))throw new Error(`Unrecognized format ${ve}`);let De=ve.startsWith("BGR"),Ze=new Uint8ClampedArray(j*te*4);if(yield ue.copyTo(Ze,function(at,Tt,Ft,Qt,sr){let Tr=4*Math.max(-Tt,0),Pr=(Math.max(0,Ft)-Ft)*Qt*4+Tr,$r=4*Qt,ni=Math.max(0,Tt),Di=Math.max(0,Ft);return{rect:{x:ni,y:Di,width:Math.min(at.width,Tt+Qt)-ni,height:Math.min(at.height,Ft+sr)-Di},layout:[{offset:Pr,stride:$r}]}}(R,S,D,j,te)),De)for(let at=0;atq(self)?self.worker&&self.worker.referrer:(window.location.protocol==="blob:"?window.parent:window).location.href,Te=function(R,S){if(/:\/\//.test(R.url)&&!/^https?:|^file:/.test(R.url)){let j=Me(R.url);if(j)return j(R,S);if(q(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:R,targetMapId:ke},S)}if(!(/^file:/.test(D=R.url)||/^file:/.test(ie())&&!/^\w+:/.test(D))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return function(j,te){return a(this,void 0,void 0,function*(){let ue=new Request(j.url,{method:j.method||"GET",body:j.body,credentials:j.credentials,headers:j.headers,cache:j.cache,referrer:ie(),signal:te.signal});j.type!=="json"||ue.headers.has("Accept")||ue.headers.set("Accept","application/json");let ve=yield fetch(ue);if(!ve.ok){let at=yield ve.blob();throw new ge(ve.status,ve.statusText,j.url,at)}let De;De=j.type==="arrayBuffer"||j.type==="image"?ve.arrayBuffer():j.type==="json"?ve.json():ve.text();let Ze=yield De;if(te.signal.aborted)throw ae();return{data:Ze,cacheControl:ve.headers.get("Cache-Control"),expires:ve.headers.get("Expires")}})}(R,S);if(q(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:R,mustQueue:!0,targetMapId:ke},S)}var D;return function(j,te){return new Promise((ue,ve)=>{var De;let Ze=new XMLHttpRequest;Ze.open(j.method||"GET",j.url,!0),j.type!=="arrayBuffer"&&j.type!=="image"||(Ze.responseType="arraybuffer");for(let at in j.headers)Ze.setRequestHeader(at,j.headers[at]);j.type==="json"&&(Ze.responseType="text",!((De=j.headers)===null||De===void 0)&&De.Accept||Ze.setRequestHeader("Accept","application/json")),Ze.withCredentials=j.credentials==="include",Ze.onerror=()=>{ve(new Error(Ze.statusText))},Ze.onload=()=>{if(!te.signal.aborted)if((Ze.status>=200&&Ze.status<300||Ze.status===0)&&Ze.response!==null){let at=Ze.response;if(j.type==="json")try{at=JSON.parse(Ze.response)}catch(Tt){return void ve(Tt)}ue({data:at,cacheControl:Ze.getResponseHeader("Cache-Control"),expires:Ze.getResponseHeader("Expires")})}else{let at=new Blob([Ze.response],{type:Ze.getResponseHeader("Content-Type")});ve(new ge(Ze.status,Ze.statusText,j.url,at))}},te.signal.addEventListener("abort",()=>{Ze.abort(),ve(ae())}),Ze.send(j.body)})}(R,S)};function Ee(R){if(!R||R.indexOf("://")<=0||R.indexOf("data:image/")===0||R.indexOf("blob:")===0)return!0;let S=new URL(R),D=window.location;return S.protocol===D.protocol&&S.host===D.host}function Ae(R,S,D){D[R]&&D[R].indexOf(S)!==-1||(D[R]=D[R]||[],D[R].push(S))}function ze(R,S,D){if(D&&D[R]){let j=D[R].indexOf(S);j!==-1&&D[R].splice(j,1)}}class Ce{constructor(S,D={}){L(this,D),this.type=S}}class me extends Ce{constructor(S,D={}){super("error",L({error:S},D))}}class Re{on(S,D){return this._listeners=this._listeners||{},Ae(S,D,this._listeners),this}off(S,D){return ze(S,D,this._listeners),ze(S,D,this._oneTimeListeners),this}once(S,D){return D?(this._oneTimeListeners=this._oneTimeListeners||{},Ae(S,D,this._oneTimeListeners),this):new Promise(j=>this.once(S,j))}fire(S,D){typeof S=="string"&&(S=new Ce(S,D||{}));let j=S.type;if(this.listens(j)){S.target=this;let te=this._listeners&&this._listeners[j]?this._listeners[j].slice():[];for(let De of te)De.call(this,S);let ue=this._oneTimeListeners&&this._oneTimeListeners[j]?this._oneTimeListeners[j].slice():[];for(let De of ue)ze(j,De,this._oneTimeListeners),De.call(this,S);let ve=this._eventedParent;ve&&(L(S,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),ve.fire(S))}else S instanceof me&&console.error(S.error);return this}listens(S){return this._listeners&&this._listeners[S]&&this._listeners[S].length>0||this._oneTimeListeners&&this._oneTimeListeners[S]&&this._oneTimeListeners[S].length>0||this._eventedParent&&this._eventedParent.listens(S)}setEventedParent(S,D){return this._eventedParent=S,this._eventedParentData=D,this}}var ce={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sky:{type:"sky"},projection:{type:"projection"},terrain:{type:"terrain"},sources:{required:!0,type:"sources"},sprite:{type:"sprite"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{},custom:{}},default:"mapbox"},redFactor:{type:"number",default:1},blueFactor:{type:"number",default:1},greenFactor:{type:"number",default:1},baseShift:{type:"number",default:0},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{required:!0,type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image",{"!":"icon-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"padding",default:[2],units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-variable-anchor-offset":{type:"variableAnchorOffsetCollection",requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field",{"!":"text-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},sky:{"sky-color":{type:"color","property-type":"data-constant",default:"#88C6FC",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-color":{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"fog-ground-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-fog-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"sky-horizon-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"atmosphere-blend":{type:"number","property-type":"data-constant",default:.8,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},terrain:{source:{type:"string",required:!0},exaggeration:{type:"number",minimum:0,default:1}},projection:{type:{type:"enum",default:"mercator",values:{mercator:{},globe:{}}}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}};let Ge=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function nt(R,S){let D={};for(let j in R)j!=="ref"&&(D[j]=R[j]);return Ge.forEach(j=>{j in S&&(D[j]=S[j])}),D}function ct(R,S){if(Array.isArray(R)){if(!Array.isArray(S)||R.length!==S.length)return!1;for(let D=0;D`:R.itemType.kind==="value"?"array":`array<${S}>`}return R.kind}let Ve=[Lt,St,Et,dt,Ht,Br,$t,Ne(fr),Or,Nr,ut];function Xe(R,S){if(S.kind==="error")return null;if(R.kind==="array"){if(S.kind==="array"&&(S.N===0&&S.itemType.kind==="value"||!Xe(R.itemType,S.itemType))&&(typeof R.N!="number"||R.N===S.N))return null}else{if(R.kind===S.kind)return null;if(R.kind==="value"){for(let D of Ve)if(!Xe(D,S))return null}}return`Expected ${Ye(R)} but found ${Ye(S)} instead.`}function ht(R,S){return S.some(D=>D.kind===R.kind)}function Le(R,S){return S.some(D=>D==="null"?R===null:D==="array"?Array.isArray(R):D==="object"?R&&!Array.isArray(R)&&typeof R=="object":D===typeof R)}function xe(R,S){return R.kind==="array"&&S.kind==="array"?R.itemType.kind===S.itemType.kind&&typeof R.N=="number":R.kind===S.kind}let Se=.96422,lt=.82521,Gt=4/29,Vt=6/29,ar=3*Vt*Vt,Qr=Vt*Vt*Vt,ai=Math.PI/180,jr=180/Math.PI;function ri(R){return(R%=360)<0&&(R+=360),R}function bi([R,S,D,j]){let te,ue,ve=Wi((.2225045*(R=nn(R))+.7168786*(S=nn(S))+.0606169*(D=nn(D)))/1);R===S&&S===D?te=ue=ve:(te=Wi((.4360747*R+.3850649*S+.1430804*D)/Se),ue=Wi((.0139322*R+.0971045*S+.7141733*D)/lt));let De=116*ve-16;return[De<0?0:De,500*(te-ve),200*(ve-ue),j]}function nn(R){return R<=.04045?R/12.92:Math.pow((R+.055)/1.055,2.4)}function Wi(R){return R>Qr?Math.pow(R,1/3):R/ar+Gt}function Ni([R,S,D,j]){let te=(R+16)/116,ue=isNaN(S)?te:te+S/500,ve=isNaN(D)?te:te-D/200;return te=1*$i(te),ue=Se*$i(ue),ve=lt*$i(ve),[_n(3.1338561*ue-1.6168667*te-.4906146*ve),_n(-.9787684*ue+1.9161415*te+.033454*ve),_n(.0719453*ue-.2289914*te+1.4052427*ve),j]}function _n(R){return(R=R<=.00304?12.92*R:1.055*Math.pow(R,1/2.4)-.055)<0?0:R>1?1:R}function $i(R){return R>Vt?R*R*R:ar*(R-Gt)}function zn(R){return parseInt(R.padEnd(2,R),16)/255}function Wn(R,S){return It(S?R/100:R,0,1)}function It(R,S,D){return Math.min(Math.max(S,R),D)}function ft(R){return!R.some(Number.isNaN)}let jt={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};class Zt{constructor(S,D,j,te=1,ue=!0){this.r=S,this.g=D,this.b=j,this.a=te,ue||(this.r*=te,this.g*=te,this.b*=te,te||this.overwriteGetter("rgb",[S,D,j,te]))}static parse(S){if(S instanceof Zt)return S;if(typeof S!="string")return;let D=function(j){if((j=j.toLowerCase().trim())==="transparent")return[0,0,0,0];let te=jt[j];if(te){let[ve,De,Ze]=te;return[ve/255,De/255,Ze/255,1]}if(j.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(j)){let ve=j.length<6?1:2,De=1;return[zn(j.slice(De,De+=ve)),zn(j.slice(De,De+=ve)),zn(j.slice(De,De+=ve)),zn(j.slice(De,De+ve)||"ff")]}if(j.startsWith("rgb")){let ve=j.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(ve){let[De,Ze,at,Tt,Ft,Qt,sr,Tr,Pr,$r,ni,Di]=ve,pi=[Tt||" ",sr||" ",$r].join("");if(pi===" "||pi===" /"||pi===",,"||pi===",,,"){let ki=[at,Qt,Pr].join(""),Zi=ki==="%%%"?100:ki===""?255:0;if(Zi){let ta=[It(+Ze/Zi,0,1),It(+Ft/Zi,0,1),It(+Tr/Zi,0,1),ni?Wn(+ni,Di):1];if(ft(ta))return ta}}return}}let ue=j.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(ue){let[ve,De,Ze,at,Tt,Ft,Qt,sr,Tr]=ue,Pr=[Ze||" ",Tt||" ",Qt].join("");if(Pr===" "||Pr===" /"||Pr===",,"||Pr===",,,"){let $r=[+De,It(+at,0,100),It(+Ft,0,100),sr?Wn(+sr,Tr):1];if(ft($r))return function([ni,Di,pi,ki]){function Zi(ta){let Va=(ta+ni/30)%12,Io=Di*Math.min(pi,1-pi);return pi-Io*Math.max(-1,Math.min(Va-3,9-Va,1))}return ni=ri(ni),Di/=100,pi/=100,[Zi(0),Zi(8),Zi(4),ki]}($r)}}}(S);return D?new Zt(...D,!1):void 0}get rgb(){let{r:S,g:D,b:j,a:te}=this,ue=te||1/0;return this.overwriteGetter("rgb",[S/ue,D/ue,j/ue,te])}get hcl(){return this.overwriteGetter("hcl",function(S){let[D,j,te,ue]=bi(S),ve=Math.sqrt(j*j+te*te);return[Math.round(1e4*ve)?ri(Math.atan2(te,j)*jr):NaN,ve,D,ue]}(this.rgb))}get lab(){return this.overwriteGetter("lab",bi(this.rgb))}overwriteGetter(S,D){return Object.defineProperty(this,S,{value:D}),D}toString(){let[S,D,j,te]=this.rgb;return`rgba(${[S,D,j].map(ue=>Math.round(255*ue)).join(",")},${te})`}}Zt.black=new Zt(0,0,0,1),Zt.white=new Zt(1,1,1,1),Zt.transparent=new Zt(0,0,0,0),Zt.red=new Zt(1,0,0,1);class yr{constructor(S,D,j){this.sensitivity=S?D?"variant":"case":D?"accent":"base",this.locale=j,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(S,D){return this.collator.compare(S,D)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Fr{constructor(S,D,j,te,ue){this.text=S,this.image=D,this.scale=j,this.fontStack=te,this.textColor=ue}}class Zr{constructor(S){this.sections=S}static fromString(S){return new Zr([new Fr(S,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(S=>S.text.length!==0||S.image&&S.image.name.length!==0)}static factory(S){return S instanceof Zr?S:Zr.fromString(S)}toString(){return this.sections.length===0?"":this.sections.map(S=>S.text).join("")}}class Vr{constructor(S){this.values=S.slice()}static parse(S){if(S instanceof Vr)return S;if(typeof S=="number")return new Vr([S,S,S,S]);if(Array.isArray(S)&&!(S.length<1||S.length>4)){for(let D of S)if(typeof D!="number")return;switch(S.length){case 1:S=[S[0],S[0],S[0],S[0]];break;case 2:S=[S[0],S[1],S[0],S[1]];break;case 3:S=[S[0],S[1],S[2],S[1]]}return new Vr(S)}}toString(){return JSON.stringify(this.values)}}let gi=new Set(["center","left","right","top","bottom","top-left","top-right","bottom-left","bottom-right"]);class Si{constructor(S){this.values=S.slice()}static parse(S){if(S instanceof Si)return S;if(Array.isArray(S)&&!(S.length<1)&&S.length%2==0){for(let D=0;D=0&&R<=255&&typeof S=="number"&&S>=0&&S<=255&&typeof D=="number"&&D>=0&&D<=255?j===void 0||typeof j=="number"&&j>=0&&j<=1?null:`Invalid rgba value [${[R,S,D,j].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof j=="number"?[R,S,D,j]:[R,S,D]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Gi(R){if(R===null||typeof R=="string"||typeof R=="boolean"||typeof R=="number"||R instanceof Zt||R instanceof yr||R instanceof Zr||R instanceof Vr||R instanceof Si||R instanceof Mi)return!0;if(Array.isArray(R)){for(let S of R)if(!Gi(S))return!1;return!0}if(typeof R=="object"){for(let S in R)if(!Gi(R[S]))return!1;return!0}return!1}function Ki(R){if(R===null)return Lt;if(typeof R=="string")return Et;if(typeof R=="boolean")return dt;if(typeof R=="number")return St;if(R instanceof Zt)return Ht;if(R instanceof yr)return _r;if(R instanceof Zr)return Br;if(R instanceof Vr)return Or;if(R instanceof Si)return ut;if(R instanceof Mi)return Nr;if(Array.isArray(R)){let S=R.length,D;for(let j of R){let te=Ki(j);if(D){if(D===te)continue;D=fr;break}D=te}return Ne(D||fr,S)}return $t}function ka(R){let S=typeof R;return R===null?"":S==="string"||S==="number"||S==="boolean"?String(R):R instanceof Zt||R instanceof Zr||R instanceof Vr||R instanceof Si||R instanceof Mi?R.toString():JSON.stringify(R)}class jn{constructor(S,D){this.type=S,this.value=D}static parse(S,D){if(S.length!==2)return D.error(`'literal' expression requires exactly one argument, but found ${S.length-1} instead.`);if(!Gi(S[1]))return D.error("invalid value");let j=S[1],te=Ki(j),ue=D.expectedType;return te.kind!=="array"||te.N!==0||!ue||ue.kind!=="array"||typeof ue.N=="number"&&ue.N!==0||(te=ue),new jn(te,j)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}class la{constructor(S){this.name="ExpressionEvaluationError",this.message=S}toJSON(){return this.message}}let Fa={string:Et,number:St,boolean:dt,object:$t};class Ra{constructor(S,D){this.type=S,this.args=D}static parse(S,D){if(S.length<2)return D.error("Expected at least one argument.");let j,te=1,ue=S[0];if(ue==="array"){let De,Ze;if(S.length>2){let at=S[1];if(typeof at!="string"||!(at in Fa)||at==="object")return D.error('The item type argument of "array" must be one of string, number, boolean',1);De=Fa[at],te++}else De=fr;if(S.length>3){if(S[2]!==null&&(typeof S[2]!="number"||S[2]<0||S[2]!==Math.floor(S[2])))return D.error('The length argument to "array" must be a positive integer literal',2);Ze=S[2],te++}j=Ne(De,Ze)}else{if(!Fa[ue])throw new Error(`Types doesn't contain name = ${ue}`);j=Fa[ue]}let ve=[];for(;teS.outputDefined())}}let jo={"to-boolean":dt,"to-color":Ht,"to-number":St,"to-string":Et};class oa{constructor(S,D){this.type=S,this.args=D}static parse(S,D){if(S.length<2)return D.error("Expected at least one argument.");let j=S[0];if(!jo[j])throw new Error(`Can't parse ${j} as it is not part of the known types`);if((j==="to-boolean"||j==="to-string")&&S.length!==2)return D.error("Expected one argument.");let te=jo[j],ue=[];for(let ve=1;ve4?`Invalid rbga value ${JSON.stringify(D)}: expected an array containing either three or four numeric values.`:Pi(D[0],D[1],D[2],D[3]),!j))return new Zt(D[0]/255,D[1]/255,D[2]/255,D[3])}throw new la(j||`Could not parse color from value '${typeof D=="string"?D:JSON.stringify(D)}'`)}case"padding":{let D;for(let j of this.args){D=j.evaluate(S);let te=Vr.parse(D);if(te)return te}throw new la(`Could not parse padding from value '${typeof D=="string"?D:JSON.stringify(D)}'`)}case"variableAnchorOffsetCollection":{let D;for(let j of this.args){D=j.evaluate(S);let te=Si.parse(D);if(te)return te}throw new la(`Could not parse variableAnchorOffsetCollection from value '${typeof D=="string"?D:JSON.stringify(D)}'`)}case"number":{let D=null;for(let j of this.args){if(D=j.evaluate(S),D===null)return 0;let te=Number(D);if(!isNaN(te))return te}throw new la(`Could not convert ${JSON.stringify(D)} to number.`)}case"formatted":return Zr.fromString(ka(this.args[0].evaluate(S)));case"resolvedImage":return Mi.fromString(ka(this.args[0].evaluate(S)));default:return ka(this.args[0].evaluate(S))}}eachChild(S){this.args.forEach(S)}outputDefined(){return this.args.every(S=>S.outputDefined())}}let Sn=["Unknown","Point","LineString","Polygon"];class Ha{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?Sn[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}parseColor(S){let D=this._parseColorCache[S];return D||(D=this._parseColorCache[S]=Zt.parse(S)),D}}class oo{constructor(S,D,j=[],te,ue=new bt,ve=[]){this.registry=S,this.path=j,this.key=j.map(De=>`[${De}]`).join(""),this.scope=ue,this.errors=ve,this.expectedType=te,this._isConstant=D}parse(S,D,j,te,ue={}){return D?this.concat(D,j,te)._parse(S,ue):this._parse(S,ue)}_parse(S,D){function j(te,ue,ve){return ve==="assert"?new Ra(ue,[te]):ve==="coerce"?new oa(ue,[te]):te}if(S!==null&&typeof S!="string"&&typeof S!="boolean"&&typeof S!="number"||(S=["literal",S]),Array.isArray(S)){if(S.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');let te=S[0];if(typeof te!="string")return this.error(`Expression name must be a string, but found ${typeof te} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;let ue=this.registry[te];if(ue){let ve=ue.parse(S,this);if(!ve)return null;if(this.expectedType){let De=this.expectedType,Ze=ve.type;if(De.kind!=="string"&&De.kind!=="number"&&De.kind!=="boolean"&&De.kind!=="object"&&De.kind!=="array"||Ze.kind!=="value")if(De.kind!=="color"&&De.kind!=="formatted"&&De.kind!=="resolvedImage"||Ze.kind!=="value"&&Ze.kind!=="string")if(De.kind!=="padding"||Ze.kind!=="value"&&Ze.kind!=="number"&&Ze.kind!=="array")if(De.kind!=="variableAnchorOffsetCollection"||Ze.kind!=="value"&&Ze.kind!=="array"){if(this.checkSubtype(De,Ze))return null}else ve=j(ve,De,D.typeAnnotation||"coerce");else ve=j(ve,De,D.typeAnnotation||"coerce");else ve=j(ve,De,D.typeAnnotation||"coerce");else ve=j(ve,De,D.typeAnnotation||"assert")}if(!(ve instanceof jn)&&ve.type.kind!=="resolvedImage"&&this._isConstant(ve)){let De=new Ha;try{ve=new jn(ve.type,ve.evaluate(De))}catch(Ze){return this.error(Ze.message),null}}return ve}return this.error(`Unknown expression "${te}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(S===void 0?"'undefined' value invalid. Use null instead.":typeof S=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof S} instead.`)}concat(S,D,j){let te=typeof S=="number"?this.path.concat(S):this.path,ue=j?this.scope.concat(j):this.scope;return new oo(this.registry,this._isConstant,te,D||null,ue,this.errors)}error(S,...D){let j=`${this.key}${D.map(te=>`[${te}]`).join("")}`;this.errors.push(new xt(j,S))}checkSubtype(S,D){let j=Xe(S,D);return j&&this.error(j),j}}class xn{constructor(S,D){this.type=D.type,this.bindings=[].concat(S),this.result=D}evaluate(S){return this.result.evaluate(S)}eachChild(S){for(let D of this.bindings)S(D[1]);S(this.result)}static parse(S,D){if(S.length<4)return D.error(`Expected at least 3 arguments, but found ${S.length-1} instead.`);let j=[];for(let ue=1;ue=j.length)throw new la(`Array index out of bounds: ${D} > ${j.length-1}.`);if(D!==Math.floor(D))throw new la(`Array index must be an integer, but found ${D} instead.`);return j[D]}eachChild(S){S(this.index),S(this.input)}outputDefined(){return!1}}class Hr{constructor(S,D){this.type=dt,this.needle=S,this.haystack=D}static parse(S,D){if(S.length!==3)return D.error(`Expected 2 arguments, but found ${S.length-1} instead.`);let j=D.parse(S[1],1,fr),te=D.parse(S[2],2,fr);return j&&te?ht(j.type,[dt,Et,St,Lt,fr])?new Hr(j,te):D.error(`Expected first argument to be of type boolean, string, number or null, but found ${Ye(j.type)} instead`):null}evaluate(S){let D=this.needle.evaluate(S),j=this.haystack.evaluate(S);if(!j)return!1;if(!Le(D,["boolean","string","number","null"]))throw new la(`Expected first argument to be of type boolean, string, number or null, but found ${Ye(Ki(D))} instead.`);if(!Le(j,["string","array"]))throw new la(`Expected second argument to be of type array or string, but found ${Ye(Ki(j))} instead.`);return j.indexOf(D)>=0}eachChild(S){S(this.needle),S(this.haystack)}outputDefined(){return!0}}class ti{constructor(S,D,j){this.type=St,this.needle=S,this.haystack=D,this.fromIndex=j}static parse(S,D){if(S.length<=2||S.length>=5)return D.error(`Expected 3 or 4 arguments, but found ${S.length-1} instead.`);let j=D.parse(S[1],1,fr),te=D.parse(S[2],2,fr);if(!j||!te)return null;if(!ht(j.type,[dt,Et,St,Lt,fr]))return D.error(`Expected first argument to be of type boolean, string, number or null, but found ${Ye(j.type)} instead`);if(S.length===4){let ue=D.parse(S[3],3,St);return ue?new ti(j,te,ue):null}return new ti(j,te)}evaluate(S){let D=this.needle.evaluate(S),j=this.haystack.evaluate(S);if(!Le(D,["boolean","string","number","null"]))throw new la(`Expected first argument to be of type boolean, string, number or null, but found ${Ye(Ki(D))} instead.`);let te;if(this.fromIndex&&(te=this.fromIndex.evaluate(S)),Le(j,["string"])){let ue=j.indexOf(D,te);return ue===-1?-1:[...j.slice(0,ue)].length}if(Le(j,["array"]))return j.indexOf(D,te);throw new la(`Expected second argument to be of type array or string, but found ${Ye(Ki(j))} instead.`)}eachChild(S){S(this.needle),S(this.haystack),this.fromIndex&&S(this.fromIndex)}outputDefined(){return!1}}class zi{constructor(S,D,j,te,ue,ve){this.inputType=S,this.type=D,this.input=j,this.cases=te,this.outputs=ue,this.otherwise=ve}static parse(S,D){if(S.length<5)return D.error(`Expected at least 4 arguments, but found only ${S.length-1}.`);if(S.length%2!=1)return D.error("Expected an even number of arguments.");let j,te;D.expectedType&&D.expectedType.kind!=="value"&&(te=D.expectedType);let ue={},ve=[];for(let at=2;atNumber.MAX_SAFE_INTEGER)return Qt.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof Tr=="number"&&Math.floor(Tr)!==Tr)return Qt.error("Numeric branch labels must be integer values.");if(j){if(Qt.checkSubtype(j,Ki(Tr)))return null}else j=Ki(Tr);if(ue[String(Tr)]!==void 0)return Qt.error("Branch labels must be unique.");ue[String(Tr)]=ve.length}let sr=D.parse(Ft,at,te);if(!sr)return null;te=te||sr.type,ve.push(sr)}let De=D.parse(S[1],1,fr);if(!De)return null;let Ze=D.parse(S[S.length-1],S.length-1,te);return Ze?De.type.kind!=="value"&&D.concat(1).checkSubtype(j,De.type)?null:new zi(j,te,De,ue,ve,Ze):null}evaluate(S){let D=this.input.evaluate(S);return(Ki(D)===this.inputType&&this.outputs[this.cases[D]]||this.otherwise).evaluate(S)}eachChild(S){S(this.input),this.outputs.forEach(S),S(this.otherwise)}outputDefined(){return this.outputs.every(S=>S.outputDefined())&&this.otherwise.outputDefined()}}class Yi{constructor(S,D,j){this.type=S,this.branches=D,this.otherwise=j}static parse(S,D){if(S.length<4)return D.error(`Expected at least 3 arguments, but found only ${S.length-1}.`);if(S.length%2!=0)return D.error("Expected an odd number of arguments.");let j;D.expectedType&&D.expectedType.kind!=="value"&&(j=D.expectedType);let te=[];for(let ve=1;veD.outputDefined())&&this.otherwise.outputDefined()}}class an{constructor(S,D,j,te){this.type=S,this.input=D,this.beginIndex=j,this.endIndex=te}static parse(S,D){if(S.length<=2||S.length>=5)return D.error(`Expected 3 or 4 arguments, but found ${S.length-1} instead.`);let j=D.parse(S[1],1,fr),te=D.parse(S[2],2,St);if(!j||!te)return null;if(!ht(j.type,[Ne(fr),Et,fr]))return D.error(`Expected first argument to be of type array or string, but found ${Ye(j.type)} instead`);if(S.length===4){let ue=D.parse(S[3],3,St);return ue?new an(j.type,j,te,ue):null}return new an(j.type,j,te)}evaluate(S){let D=this.input.evaluate(S),j=this.beginIndex.evaluate(S),te;if(this.endIndex&&(te=this.endIndex.evaluate(S)),Le(D,["string"]))return[...D].slice(j,te).join("");if(Le(D,["array"]))return D.slice(j,te);throw new la(`Expected first argument to be of type array or string, but found ${Ye(Ki(D))} instead.`)}eachChild(S){S(this.input),S(this.beginIndex),this.endIndex&&S(this.endIndex)}outputDefined(){return!1}}function hi(R,S){let D=R.length-1,j,te,ue=0,ve=D,De=0;for(;ue<=ve;)if(De=Math.floor((ue+ve)/2),j=R[De],te=R[De+1],j<=S){if(De===D||SS))throw new la("Input is not a number.");ve=De-1}return 0}class Ji{constructor(S,D,j){this.type=S,this.input=D,this.labels=[],this.outputs=[];for(let[te,ue]of j)this.labels.push(te),this.outputs.push(ue)}static parse(S,D){if(S.length-1<4)return D.error(`Expected at least 4 arguments, but found only ${S.length-1}.`);if((S.length-1)%2!=0)return D.error("Expected an even number of arguments.");let j=D.parse(S[1],1,St);if(!j)return null;let te=[],ue=null;D.expectedType&&D.expectedType.kind!=="value"&&(ue=D.expectedType);for(let ve=1;ve=De)return D.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',at);let Ft=D.parse(Ze,Tt,ue);if(!Ft)return null;ue=ue||Ft.type,te.push([De,Ft])}return new Ji(ue,j,te)}evaluate(S){let D=this.labels,j=this.outputs;if(D.length===1)return j[0].evaluate(S);let te=this.input.evaluate(S);if(te<=D[0])return j[0].evaluate(S);let ue=D.length;return te>=D[ue-1]?j[ue-1].evaluate(S):j[hi(D,te)].evaluate(S)}eachChild(S){S(this.input);for(let D of this.outputs)S(D)}outputDefined(){return this.outputs.every(S=>S.outputDefined())}}function ua(R){return R&&R.__esModule&&Object.prototype.hasOwnProperty.call(R,"default")?R.default:R}var Fn=Sa;function Sa(R,S,D,j){this.cx=3*R,this.bx=3*(D-R)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*S,this.by=3*(j-S)-this.cy,this.ay=1-this.cy-this.by,this.p1x=R,this.p1y=S,this.p2x=D,this.p2y=j}Sa.prototype={sampleCurveX:function(R){return((this.ax*R+this.bx)*R+this.cx)*R},sampleCurveY:function(R){return((this.ay*R+this.by)*R+this.cy)*R},sampleCurveDerivativeX:function(R){return(3*this.ax*R+2*this.bx)*R+this.cx},solveCurveX:function(R,S){if(S===void 0&&(S=1e-6),R<0)return 0;if(R>1)return 1;for(var D=R,j=0;j<8;j++){var te=this.sampleCurveX(D)-R;if(Math.abs(te)te?ve=D:De=D,D=.5*(De-ve)+ve;return D},solve:function(R,S){return this.sampleCurveY(this.solveCurveX(R,S))}};var go=ua(Fn);function Oo(R,S,D){return R+D*(S-R)}function ho(R,S,D){return R.map((j,te)=>Oo(j,S[te],D))}let Mo={number:Oo,color:function(R,S,D,j="rgb"){switch(j){case"rgb":{let[te,ue,ve,De]=ho(R.rgb,S.rgb,D);return new Zt(te,ue,ve,De,!1)}case"hcl":{let[te,ue,ve,De]=R.hcl,[Ze,at,Tt,Ft]=S.hcl,Qt,sr;if(isNaN(te)||isNaN(Ze))isNaN(te)?isNaN(Ze)?Qt=NaN:(Qt=Ze,ve!==1&&ve!==0||(sr=at)):(Qt=te,Tt!==1&&Tt!==0||(sr=ue));else{let Di=Ze-te;Ze>te&&Di>180?Di-=360:Ze180&&(Di+=360),Qt=te+D*Di}let[Tr,Pr,$r,ni]=function([Di,pi,ki,Zi]){return Di=isNaN(Di)?0:Di*ai,Ni([ki,Math.cos(Di)*pi,Math.sin(Di)*pi,Zi])}([Qt,sr!=null?sr:Oo(ue,at,D),Oo(ve,Tt,D),Oo(De,Ft,D)]);return new Zt(Tr,Pr,$r,ni,!1)}case"lab":{let[te,ue,ve,De]=Ni(ho(R.lab,S.lab,D));return new Zt(te,ue,ve,De,!1)}}},array:ho,padding:function(R,S,D){return new Vr(ho(R.values,S.values,D))},variableAnchorOffsetCollection:function(R,S,D){let j=R.values,te=S.values;if(j.length!==te.length)throw new la(`Cannot interpolate values of different length. from: ${R.toString()}, to: ${S.toString()}`);let ue=[];for(let ve=0;vetypeof Tt!="number"||Tt<0||Tt>1))return D.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);te={name:"cubic-bezier",controlPoints:at}}}if(S.length-1<4)return D.error(`Expected at least 4 arguments, but found only ${S.length-1}.`);if((S.length-1)%2!=0)return D.error("Expected an even number of arguments.");if(ue=D.parse(ue,2,St),!ue)return null;let De=[],Ze=null;j==="interpolate-hcl"||j==="interpolate-lab"?Ze=Ht:D.expectedType&&D.expectedType.kind!=="value"&&(Ze=D.expectedType);for(let at=0;at=Tt)return D.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',Qt);let Tr=D.parse(Ft,sr,Ze);if(!Tr)return null;Ze=Ze||Tr.type,De.push([Tt,Tr])}return xe(Ze,St)||xe(Ze,Ht)||xe(Ze,Or)||xe(Ze,ut)||xe(Ze,Ne(St))?new xo(Ze,j,te,ue,De):D.error(`Type ${Ye(Ze)} is not interpolatable.`)}evaluate(S){let D=this.labels,j=this.outputs;if(D.length===1)return j[0].evaluate(S);let te=this.input.evaluate(S);if(te<=D[0])return j[0].evaluate(S);let ue=D.length;if(te>=D[ue-1])return j[ue-1].evaluate(S);let ve=hi(D,te),De=xo.interpolationFactor(this.interpolation,te,D[ve],D[ve+1]),Ze=j[ve].evaluate(S),at=j[ve+1].evaluate(S);switch(this.operator){case"interpolate":return Mo[this.type.kind](Ze,at,De);case"interpolate-hcl":return Mo.color(Ze,at,De,"hcl");case"interpolate-lab":return Mo.color(Ze,at,De,"lab")}}eachChild(S){S(this.input);for(let D of this.outputs)S(D)}outputDefined(){return this.outputs.every(S=>S.outputDefined())}}function zs(R,S,D,j){let te=j-D,ue=R-D;return te===0?0:S===1?ue/te:(Math.pow(S,ue)-1)/(Math.pow(S,te)-1)}class ks{constructor(S,D){this.type=S,this.args=D}static parse(S,D){if(S.length<2)return D.error("Expectected at least one argument.");let j=null,te=D.expectedType;te&&te.kind!=="value"&&(j=te);let ue=[];for(let De of S.slice(1)){let Ze=D.parse(De,1+ue.length,j,void 0,{typeAnnotation:"omit"});if(!Ze)return null;j=j||Ze.type,ue.push(Ze)}if(!j)throw new Error("No output type");let ve=te&&ue.some(De=>Xe(te,De.type));return new ks(ve?fr:j,ue)}evaluate(S){let D,j=null,te=0;for(let ue of this.args)if(te++,j=ue.evaluate(S),j&&j instanceof Mi&&!j.available&&(D||(D=j.name),j=null,te===this.args.length&&(j=D)),j!==null)break;return j}eachChild(S){this.args.forEach(S)}outputDefined(){return this.args.every(S=>S.outputDefined())}}function Zs(R,S){return R==="=="||R==="!="?S.kind==="boolean"||S.kind==="string"||S.kind==="number"||S.kind==="null"||S.kind==="value":S.kind==="string"||S.kind==="number"||S.kind==="value"}function Xs(R,S,D,j){return j.compare(S,D)===0}function wl(R,S,D){let j=R!=="=="&&R!=="!=";return class FHe{constructor(ue,ve,De){this.type=dt,this.lhs=ue,this.rhs=ve,this.collator=De,this.hasUntypedArgument=ue.type.kind==="value"||ve.type.kind==="value"}static parse(ue,ve){if(ue.length!==3&&ue.length!==4)return ve.error("Expected two or three arguments.");let De=ue[0],Ze=ve.parse(ue[1],1,fr);if(!Ze)return null;if(!Zs(De,Ze.type))return ve.concat(1).error(`"${De}" comparisons are not supported for type '${Ye(Ze.type)}'.`);let at=ve.parse(ue[2],2,fr);if(!at)return null;if(!Zs(De,at.type))return ve.concat(2).error(`"${De}" comparisons are not supported for type '${Ye(at.type)}'.`);if(Ze.type.kind!==at.type.kind&&Ze.type.kind!=="value"&&at.type.kind!=="value")return ve.error(`Cannot compare types '${Ye(Ze.type)}' and '${Ye(at.type)}'.`);j&&(Ze.type.kind==="value"&&at.type.kind!=="value"?Ze=new Ra(at.type,[Ze]):Ze.type.kind!=="value"&&at.type.kind==="value"&&(at=new Ra(Ze.type,[at])));let Tt=null;if(ue.length===4){if(Ze.type.kind!=="string"&&at.type.kind!=="string"&&Ze.type.kind!=="value"&&at.type.kind!=="value")return ve.error("Cannot use collator to compare non-string types.");if(Tt=ve.parse(ue[3],3,_r),!Tt)return null}return new FHe(Ze,at,Tt)}evaluate(ue){let ve=this.lhs.evaluate(ue),De=this.rhs.evaluate(ue);if(j&&this.hasUntypedArgument){let Ze=Ki(ve),at=Ki(De);if(Ze.kind!==at.kind||Ze.kind!=="string"&&Ze.kind!=="number")throw new la(`Expected arguments for "${R}" to be (string, string) or (number, number), but found (${Ze.kind}, ${at.kind}) instead.`)}if(this.collator&&!j&&this.hasUntypedArgument){let Ze=Ki(ve),at=Ki(De);if(Ze.kind!=="string"||at.kind!=="string")return S(ue,ve,De)}return this.collator?D(ue,ve,De,this.collator.evaluate(ue)):S(ue,ve,De)}eachChild(ue){ue(this.lhs),ue(this.rhs),this.collator&&ue(this.collator)}outputDefined(){return!0}}}let os=wl("==",function(R,S,D){return S===D},Xs),cl=wl("!=",function(R,S,D){return S!==D},function(R,S,D,j){return!Xs(0,S,D,j)}),Cs=wl("<",function(R,S,D){return S",function(R,S,D){return S>D},function(R,S,D,j){return j.compare(S,D)>0}),Ys=wl("<=",function(R,S,D){return S<=D},function(R,S,D,j){return j.compare(S,D)<=0}),Hs=wl(">=",function(R,S,D){return S>=D},function(R,S,D,j){return j.compare(S,D)>=0});class Eo{constructor(S,D,j){this.type=_r,this.locale=j,this.caseSensitive=S,this.diacriticSensitive=D}static parse(S,D){if(S.length!==2)return D.error("Expected one argument.");let j=S[1];if(typeof j!="object"||Array.isArray(j))return D.error("Collator options argument must be an object.");let te=D.parse(j["case-sensitive"]!==void 0&&j["case-sensitive"],1,dt);if(!te)return null;let ue=D.parse(j["diacritic-sensitive"]!==void 0&&j["diacritic-sensitive"],1,dt);if(!ue)return null;let ve=null;return j.locale&&(ve=D.parse(j.locale,1,Et),!ve)?null:new Eo(te,ue,ve)}evaluate(S){return new yr(this.caseSensitive.evaluate(S),this.diacriticSensitive.evaluate(S),this.locale?this.locale.evaluate(S):null)}eachChild(S){S(this.caseSensitive),S(this.diacriticSensitive),this.locale&&S(this.locale)}outputDefined(){return!1}}class fs{constructor(S,D,j,te,ue){this.type=Et,this.number=S,this.locale=D,this.currency=j,this.minFractionDigits=te,this.maxFractionDigits=ue}static parse(S,D){if(S.length!==3)return D.error("Expected two arguments.");let j=D.parse(S[1],1,St);if(!j)return null;let te=S[2];if(typeof te!="object"||Array.isArray(te))return D.error("NumberFormat options argument must be an object.");let ue=null;if(te.locale&&(ue=D.parse(te.locale,1,Et),!ue))return null;let ve=null;if(te.currency&&(ve=D.parse(te.currency,1,Et),!ve))return null;let De=null;if(te["min-fraction-digits"]&&(De=D.parse(te["min-fraction-digits"],1,St),!De))return null;let Ze=null;return te["max-fraction-digits"]&&(Ze=D.parse(te["max-fraction-digits"],1,St),!Ze)?null:new fs(j,ue,ve,De,Ze)}evaluate(S){return new Intl.NumberFormat(this.locale?this.locale.evaluate(S):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(S):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(S):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(S):void 0}).format(this.number.evaluate(S))}eachChild(S){S(this.number),this.locale&&S(this.locale),this.currency&&S(this.currency),this.minFractionDigits&&S(this.minFractionDigits),this.maxFractionDigits&&S(this.maxFractionDigits)}outputDefined(){return!1}}class $l{constructor(S){this.type=Br,this.sections=S}static parse(S,D){if(S.length<2)return D.error("Expected at least one argument.");let j=S[1];if(!Array.isArray(j)&&typeof j=="object")return D.error("First argument must be an image or text section.");let te=[],ue=!1;for(let ve=1;ve<=S.length-1;++ve){let De=S[ve];if(ue&&typeof De=="object"&&!Array.isArray(De)){ue=!1;let Ze=null;if(De["font-scale"]&&(Ze=D.parse(De["font-scale"],1,St),!Ze))return null;let at=null;if(De["text-font"]&&(at=D.parse(De["text-font"],1,Ne(Et)),!at))return null;let Tt=null;if(De["text-color"]&&(Tt=D.parse(De["text-color"],1,Ht),!Tt))return null;let Ft=te[te.length-1];Ft.scale=Ze,Ft.font=at,Ft.textColor=Tt}else{let Ze=D.parse(S[ve],1,fr);if(!Ze)return null;let at=Ze.type.kind;if(at!=="string"&&at!=="value"&&at!=="null"&&at!=="resolvedImage")return D.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");ue=!0,te.push({content:Ze,scale:null,font:null,textColor:null})}}return new $l(te)}evaluate(S){return new Zr(this.sections.map(D=>{let j=D.content.evaluate(S);return Ki(j)===Nr?new Fr("",j,null,null,null):new Fr(ka(j),null,D.scale?D.scale.evaluate(S):null,D.font?D.font.evaluate(S).join(","):null,D.textColor?D.textColor.evaluate(S):null)}))}eachChild(S){for(let D of this.sections)S(D.content),D.scale&&S(D.scale),D.font&&S(D.font),D.textColor&&S(D.textColor)}outputDefined(){return!1}}class Hu{constructor(S){this.type=Nr,this.input=S}static parse(S,D){if(S.length!==2)return D.error("Expected two arguments.");let j=D.parse(S[1],1,Et);return j?new Hu(j):D.error("No image name provided.")}evaluate(S){let D=this.input.evaluate(S),j=Mi.fromString(D);return j&&S.availableImages&&(j.available=S.availableImages.indexOf(D)>-1),j}eachChild(S){S(this.input)}outputDefined(){return!1}}class fc{constructor(S){this.type=St,this.input=S}static parse(S,D){if(S.length!==2)return D.error(`Expected 1 argument, but found ${S.length-1} instead.`);let j=D.parse(S[1],1);return j?j.type.kind!=="array"&&j.type.kind!=="string"&&j.type.kind!=="value"?D.error(`Expected argument of type string or array, but found ${Ye(j.type)} instead.`):new fc(j):null}evaluate(S){let D=this.input.evaluate(S);if(typeof D=="string")return[...D].length;if(Array.isArray(D))return D.length;throw new la(`Expected value to be of type string or array, but found ${Ye(Ki(D))} instead.`)}eachChild(S){S(this.input)}outputDefined(){return!1}}let ms=8192;function on(R,S){let D=(180+R[0])/360,j=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+R[1]*Math.PI/360)))/360,te=Math.pow(2,S.z);return[Math.round(D*te*ms),Math.round(j*te*ms)]}function fa(R,S){let D=Math.pow(2,S.z);return[(te=(R[0]/ms+S.x)/D,360*te-180),(j=(R[1]/ms+S.y)/D,360/Math.PI*Math.atan(Math.exp((180-360*j)*Math.PI/180))-90)];var j,te}function Qu(R,S){R[0]=Math.min(R[0],S[0]),R[1]=Math.min(R[1],S[1]),R[2]=Math.max(R[2],S[0]),R[3]=Math.max(R[3],S[1])}function Il(R,S){return!(R[0]<=S[0]||R[2]>=S[2]||R[1]<=S[1]||R[3]>=S[3])}function vo(R,S,D){let j=R[0]-S[0],te=R[1]-S[1],ue=R[0]-D[0],ve=R[1]-D[1];return j*ve-ue*te==0&&j*ue<=0&&te*ve<=0}function Wl(R,S,D,j){return(te=[j[0]-D[0],j[1]-D[1]])[0]*(ue=[S[0]-R[0],S[1]-R[1]])[1]-te[1]*ue[0]!=0&&!(!Co(R,S,D,j)||!Co(D,j,R,S));var te,ue}function Ks(R,S,D){for(let j of D)for(let te=0;te(te=R)[1]!=(ve=De[Ze+1])[1]>te[1]&&te[0]<(ve[0]-ue[0])*(te[1]-ue[1])/(ve[1]-ue[1])+ue[0]&&(j=!j)}var te,ue,ve;return j}function Ec(R,S){for(let D of S)if(Zl(R,D))return!0;return!1}function Zn(R,S){for(let D of R)if(!Zl(D,S))return!1;for(let D=0;D0&&De<0||ve<0&&De>0}function Tl(R,S,D){let j=[];for(let te=0;teD[2]){let te=.5*j,ue=R[0]-D[0]>te?-j:D[0]-R[0]>te?j:0;ue===0&&(ue=R[0]-D[2]>te?-j:D[2]-R[0]>te?j:0),R[0]+=ue}Qu(S,R)}function cf(R,S,D,j){let te=Math.pow(2,j.z)*ms,ue=[j.x*ms,j.y*ms],ve=[];for(let De of R)for(let Ze of De){let at=[Ze.x+ue[0],Ze.y+ue[1]];So(at,S,D,te),ve.push(at)}return ve}function rh(R,S,D,j){let te=Math.pow(2,j.z)*ms,ue=[j.x*ms,j.y*ms],ve=[];for(let Ze of R){let at=[];for(let Tt of Ze){let Ft=[Tt.x+ue[0],Tt.y+ue[1]];Qu(S,Ft),at.push(Ft)}ve.push(at)}if(S[2]-S[0]<=te/2){(De=S)[0]=De[1]=1/0,De[2]=De[3]=-1/0;for(let Ze of ve)for(let at of Ze)So(at,S,D,te)}var De;return ve}class Al{constructor(S,D){this.type=dt,this.geojson=S,this.geometries=D}static parse(S,D){if(S.length!==2)return D.error(`'within' expression requires exactly one argument, but found ${S.length-1} instead.`);if(Gi(S[1])){let j=S[1];if(j.type==="FeatureCollection"){let te=[];for(let ue of j.features){let{type:ve,coordinates:De}=ue.geometry;ve==="Polygon"&&te.push(De),ve==="MultiPolygon"&&te.push(...De)}if(te.length)return new Al(j,{type:"MultiPolygon",coordinates:te})}else if(j.type==="Feature"){let te=j.geometry.type;if(te==="Polygon"||te==="MultiPolygon")return new Al(j,j.geometry)}else if(j.type==="Polygon"||j.type==="MultiPolygon")return new Al(j,j)}return D.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(S){if(S.geometry()!=null&&S.canonicalID()!=null){if(S.geometryType()==="Point")return function(D,j){let te=[1/0,1/0,-1/0,-1/0],ue=[1/0,1/0,-1/0,-1/0],ve=D.canonicalID();if(j.type==="Polygon"){let De=Tl(j.coordinates,ue,ve),Ze=cf(D.geometry(),te,ue,ve);if(!Il(te,ue))return!1;for(let at of Ze)if(!Zl(at,De))return!1}if(j.type==="MultiPolygon"){let De=uf(j.coordinates,ue,ve),Ze=cf(D.geometry(),te,ue,ve);if(!Il(te,ue))return!1;for(let at of Ze)if(!Ec(at,De))return!1}return!0}(S,this.geometries);if(S.geometryType()==="LineString")return function(D,j){let te=[1/0,1/0,-1/0,-1/0],ue=[1/0,1/0,-1/0,-1/0],ve=D.canonicalID();if(j.type==="Polygon"){let De=Tl(j.coordinates,ue,ve),Ze=rh(D.geometry(),te,ue,ve);if(!Il(te,ue))return!1;for(let at of Ze)if(!Zn(at,De))return!1}if(j.type==="MultiPolygon"){let De=uf(j.coordinates,ue,ve),Ze=rh(D.geometry(),te,ue,ve);if(!Il(te,ue))return!1;for(let at of Ze)if(!ko(at,De))return!1}return!0}(S,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}}let Hc=class{constructor(R=[],S=(D,j)=>Dj?1:0){if(this.data=R,this.length=this.data.length,this.compare=S,this.length>0)for(let D=(this.length>>1)-1;D>=0;D--)this._down(D)}push(R){this.data.push(R),this._up(this.length++)}pop(){if(this.length===0)return;let R=this.data[0],S=this.data.pop();return--this.length>0&&(this.data[0]=S,this._down(0)),R}peek(){return this.data[0]}_up(R){let{data:S,compare:D}=this,j=S[R];for(;R>0;){let te=R-1>>1,ue=S[te];if(D(j,ue)>=0)break;S[R]=ue,R=te}S[R]=j}_down(R){let{data:S,compare:D}=this,j=this.length>>1,te=S[R];for(;R=0)break;S[R]=S[ue],R=ue}S[R]=te}};function Ql(R,S,D,j,te){Ls(R,S,D,j||R.length-1,te||kc)}function Ls(R,S,D,j,te){for(;j>D;){if(j-D>600){var ue=j-D+1,ve=S-D+1,De=Math.log(ue),Ze=.5*Math.exp(2*De/3),at=.5*Math.sqrt(De*Ze*(ue-Ze)/ue)*(ve-ue/2<0?-1:1);Ls(R,S,Math.max(D,Math.floor(S-ve*Ze/ue+at)),Math.min(j,Math.floor(S+(ue-ve)*Ze/ue+at)),te)}var Tt=R[S],Ft=D,Qt=j;for(mu(R,D,S),te(R[j],Tt)>0&&mu(R,D,j);Ft0;)Qt--}te(R[D],Tt)===0?mu(R,D,Qt):mu(R,++Qt,j),Qt<=S&&(D=Qt+1),S<=Qt&&(j=Qt-1)}}function mu(R,S,D){var j=R[S];R[S]=R[D],R[D]=j}function kc(R,S){return RS?1:0}function Of(R,S){if(R.length<=1)return[R];let D=[],j,te;for(let ue of R){let ve=vd(ue);ve!==0&&(ue.area=Math.abs(ve),te===void 0&&(te=ve<0),te===ve<0?(j&&D.push(j),j=[ue]):j.push(ue))}if(j&&D.push(j),S>1)for(let ue=0;ue1?(at=S[Ze+1][0],Tt=S[Ze+1][1]):sr>0&&(at+=Ft/this.kx*sr,Tt+=Qt/this.ky*sr)),Ft=this.wrap(D[0]-at)*this.kx,Qt=(D[1]-Tt)*this.ky;let Tr=Ft*Ft+Qt*Qt;Tr180;)S-=360;return S}}function Ul(R,S){return S[0]-R[0]}function Js(R){return R[1]-R[0]+1}function hc(R,S){return R[1]>=R[0]&&R[1]R[1])return[null,null];let D=Js(R);if(S){if(D===2)return[R,null];let te=Math.floor(D/2);return[[R[0],R[0]+te],[R[0]+te,R[1]]]}if(D===1)return[R,null];let j=Math.floor(D/2)-1;return[[R[0],R[0]+j],[R[0]+j+1,R[1]]]}function ws(R,S){if(!hc(S,R.length))return[1/0,1/0,-1/0,-1/0];let D=[1/0,1/0,-1/0,-1/0];for(let j=S[0];j<=S[1];++j)Qu(D,R[j]);return D}function $s(R){let S=[1/0,1/0,-1/0,-1/0];for(let D of R)for(let j of D)Qu(S,j);return S}function hs(R){return R[0]!==-1/0&&R[1]!==-1/0&&R[2]!==1/0&&R[3]!==1/0}function Ms(R,S,D){if(!hs(R)||!hs(S))return NaN;let j=0,te=0;return R[2]S[2]&&(j=R[0]-S[2]),R[1]>S[3]&&(te=R[1]-S[3]),R[3]=j)return j;if(Il(te,ue)){if(Od(R,S))return 0}else if(Od(S,R))return 0;let ve=1/0;for(let De of R)for(let Ze=0,at=De.length,Tt=at-1;Ze0;){let Ze=ve.pop();if(Ze[0]>=ue)continue;let at=Ze[1],Tt=S?50:100;if(Js(at)<=Tt){if(!hc(at,R.length))return NaN;if(S){let Ft=wo(R,at,D,j);if(isNaN(Ft)||Ft===0)return Ft;ue=Math.min(ue,Ft)}else for(let Ft=at[0];Ft<=at[1];++Ft){let Qt=ov(R[Ft],D,j);if(ue=Math.min(ue,Qt),ue===0)return 0}}else{let Ft=Cc(at,S);Ja(ve,ue,j,R,De,Ft[0]),Ja(ve,ue,j,R,De,Ft[1])}}return ue}function uu(R,S,D,j,te,ue=1/0){let ve=Math.min(ue,te.distance(R[0],D[0]));if(ve===0)return ve;let De=new Hc([[0,[0,R.length-1],[0,D.length-1]]],Ul);for(;De.length>0;){let Ze=De.pop();if(Ze[0]>=ve)continue;let at=Ze[1],Tt=Ze[2],Ft=S?50:100,Qt=j?50:100;if(Js(at)<=Ft&&Js(Tt)<=Qt){if(!hc(at,R.length)&&hc(Tt,D.length))return NaN;let sr;if(S&&j)sr=ec(R,at,D,Tt,te),ve=Math.min(ve,sr);else if(S&&!j){let Tr=R.slice(at[0],at[1]+1);for(let Pr=Tt[0];Pr<=Tt[1];++Pr)if(sr=dc(D[Pr],Tr,te),ve=Math.min(ve,sr),ve===0)return ve}else if(!S&&j){let Tr=D.slice(Tt[0],Tt[1]+1);for(let Pr=at[0];Pr<=at[1];++Pr)if(sr=dc(R[Pr],Tr,te),ve=Math.min(ve,sr),ve===0)return ve}else sr=Ps(R,at,D,Tt,te),ve=Math.min(ve,sr)}else{let sr=Cc(at,S),Tr=Cc(Tt,j);Ef(De,ve,te,R,D,sr[0],Tr[0]),Ef(De,ve,te,R,D,sr[0],Tr[1]),Ef(De,ve,te,R,D,sr[1],Tr[0]),Ef(De,ve,te,R,D,sr[1],Tr[1])}}return ve}function Mh(R){return R.type==="MultiPolygon"?R.coordinates.map(S=>({type:"Polygon",coordinates:S})):R.type==="MultiLineString"?R.coordinates.map(S=>({type:"LineString",coordinates:S})):R.type==="MultiPoint"?R.coordinates.map(S=>({type:"Point",coordinates:S})):[R]}class jc{constructor(S,D){this.type=St,this.geojson=S,this.geometries=D}static parse(S,D){if(S.length!==2)return D.error(`'distance' expression requires exactly one argument, but found ${S.length-1} instead.`);if(Gi(S[1])){let j=S[1];if(j.type==="FeatureCollection")return new jc(j,j.features.map(te=>Mh(te.geometry)).flat());if(j.type==="Feature")return new jc(j,Mh(j.geometry));if("type"in j&&"coordinates"in j)return new jc(j,Mh(j))}return D.error("'distance' expression requires valid geojson object that contains polygon geometry type.")}evaluate(S){if(S.geometry()!=null&&S.canonicalID()!=null){if(S.geometryType()==="Point")return function(D,j){let te=D.geometry(),ue=te.flat().map(Ze=>fa([Ze.x,Ze.y],D.canonical));if(te.length===0)return NaN;let ve=new ih(ue[0][1]),De=1/0;for(let Ze of j){switch(Ze.type){case"Point":De=Math.min(De,uu(ue,!1,[Ze.coordinates],!1,ve,De));break;case"LineString":De=Math.min(De,uu(ue,!1,Ze.coordinates,!0,ve,De));break;case"Polygon":De=Math.min(De,tc(ue,!1,Ze.coordinates,ve,De))}if(De===0)return De}return De}(S,this.geometries);if(S.geometryType()==="LineString")return function(D,j){let te=D.geometry(),ue=te.flat().map(Ze=>fa([Ze.x,Ze.y],D.canonical));if(te.length===0)return NaN;let ve=new ih(ue[0][1]),De=1/0;for(let Ze of j){switch(Ze.type){case"Point":De=Math.min(De,uu(ue,!0,[Ze.coordinates],!1,ve,De));break;case"LineString":De=Math.min(De,uu(ue,!0,Ze.coordinates,!0,ve,De));break;case"Polygon":De=Math.min(De,tc(ue,!0,Ze.coordinates,ve,De))}if(De===0)return De}return De}(S,this.geometries);if(S.geometryType()==="Polygon")return function(D,j){let te=D.geometry();if(te.length===0||te[0].length===0)return NaN;let ue=Of(te,0).map(Ze=>Ze.map(at=>at.map(Tt=>fa([Tt.x,Tt.y],D.canonical)))),ve=new ih(ue[0][0][0][1]),De=1/0;for(let Ze of j)for(let at of ue){switch(Ze.type){case"Point":De=Math.min(De,tc([Ze.coordinates],!1,at,ve,De));break;case"LineString":De=Math.min(De,tc(Ze.coordinates,!0,at,ve,De));break;case"Polygon":De=Math.min(De,$o(at,Ze.coordinates,ve,De))}if(De===0)return De}return De}(S,this.geometries)}return NaN}eachChild(){}outputDefined(){return!0}}let kf={"==":os,"!=":cl,">":ml,"<":Cs,">=":Hs,"<=":Ys,array:Ra,at:br,boolean:Ra,case:Yi,coalesce:ks,collator:Eo,format:$l,image:Hu,in:Hr,"index-of":ti,interpolate:xo,"interpolate-hcl":xo,"interpolate-lab":xo,length:fc,let:xn,literal:jn,match:zi,number:Ra,"number-format":fs,object:Ra,slice:an,step:Ji,string:Ra,"to-boolean":oa,"to-color":oa,"to-number":oa,"to-string":oa,var:_t,within:Al,distance:jc};class Ml{constructor(S,D,j,te){this.name=S,this.type=D,this._evaluate=j,this.args=te}evaluate(S){return this._evaluate(S,this.args)}eachChild(S){this.args.forEach(S)}outputDefined(){return!1}static parse(S,D){let j=S[0],te=Ml.definitions[j];if(!te)return D.error(`Unknown expression "${j}". If you wanted a literal array, use ["literal", [...]].`,0);let ue=Array.isArray(te)?te[0]:te.type,ve=Array.isArray(te)?[[te[1],te[2]]]:te.overloads,De=ve.filter(([at])=>!Array.isArray(at)||at.length===S.length-1),Ze=null;for(let[at,Tt]of De){Ze=new oo(D.registry,kh,D.path,null,D.scope);let Ft=[],Qt=!1;for(let sr=1;sr{return Qt=Ft,Array.isArray(Qt)?`(${Qt.map(Ye).join(", ")})`:`(${Ye(Qt.type)}...)`;var Qt}).join(" | "),Tt=[];for(let Ft=1;Ft{D=S?D&&kh(j):D&&j instanceof jn}),!!D&&Kh(R)&&ah(R,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}function Kh(R){if(R instanceof Ml&&(R.name==="get"&&R.args.length===1||R.name==="feature-state"||R.name==="has"&&R.args.length===1||R.name==="properties"||R.name==="geometry-type"||R.name==="id"||/^filter-/.test(R.name))||R instanceof Al||R instanceof jc)return!1;let S=!0;return R.eachChild(D=>{S&&!Kh(D)&&(S=!1)}),S}function rc(R){if(R instanceof Ml&&R.name==="feature-state")return!1;let S=!0;return R.eachChild(D=>{S&&!rc(D)&&(S=!1)}),S}function ah(R,S){if(R instanceof Ml&&S.indexOf(R.name)>=0)return!1;let D=!0;return R.eachChild(j=>{D&&!ah(j,S)&&(D=!1)}),D}function Wc(R){return{result:"success",value:R}}function df(R){return{result:"error",value:R}}function Cu(R){return R["property-type"]==="data-driven"||R["property-type"]==="cross-faded-data-driven"}function Nf(R){return!!R.expression&&R.expression.parameters.indexOf("zoom")>-1}function Zc(R){return!!R.expression&&R.expression.interpolated}function ds(R){return R instanceof Number?"number":R instanceof String?"string":R instanceof Boolean?"boolean":Array.isArray(R)?"array":R===null?"null":typeof R}function Ch(R){return typeof R=="object"&&R!==null&&!Array.isArray(R)}function Bd(R){return R}function Jh(R,S){let D=S.type==="color",j=R.stops&&typeof R.stops[0][0]=="object",te=j||!(j||R.property!==void 0),ue=R.type||(Zc(S)?"exponential":"interval");if(D||S.type==="padding"){let Tt=D?Zt.parse:Vr.parse;(R=Ke({},R)).stops&&(R.stops=R.stops.map(Ft=>[Ft[0],Tt(Ft[1])])),R.default=Tt(R.default?R.default:S.default)}if(R.colorSpace&&(ve=R.colorSpace)!=="rgb"&&ve!=="hcl"&&ve!=="lab")throw new Error(`Unknown color space: "${R.colorSpace}"`);var ve;let De,Ze,at;if(ue==="exponential")De=$h;else if(ue==="interval")De=Lu;else if(ue==="categorical"){De=pd,Ze=Object.create(null);for(let Tt of R.stops)Ze[Tt[0]]=Tt[1];at=typeof R.stops[0][0]}else{if(ue!=="identity")throw new Error(`Unknown function type "${ue}"`);De=eu}if(j){let Tt={},Ft=[];for(let Tr=0;TrTr[0]),evaluate:({zoom:Tr},Pr)=>$h({stops:Qt,base:R.base},S,Tr).evaluate(Tr,Pr)}}if(te){let Tt=ue==="exponential"?{name:"exponential",base:R.base!==void 0?R.base:1}:null;return{kind:"camera",interpolationType:Tt,interpolationFactor:xo.interpolationFactor.bind(void 0,Tt),zoomStops:R.stops.map(Ft=>Ft[0]),evaluate:({zoom:Ft})=>De(R,S,Ft,Ze,at)}}return{kind:"source",evaluate(Tt,Ft){let Qt=Ft&&Ft.properties?Ft.properties[R.property]:void 0;return Qt===void 0?Cf(R.default,S.default):De(R,S,Qt,Ze,at)}}}function Cf(R,S,D){return R!==void 0?R:S!==void 0?S:D!==void 0?D:void 0}function pd(R,S,D,j,te){return Cf(typeof D===te?j[D]:void 0,R.default,S.default)}function Lu(R,S,D){if(ds(D)!=="number")return Cf(R.default,S.default);let j=R.stops.length;if(j===1||D<=R.stops[0][0])return R.stops[0][1];if(D>=R.stops[j-1][0])return R.stops[j-1][1];let te=hi(R.stops.map(ue=>ue[0]),D);return R.stops[te][1]}function $h(R,S,D){let j=R.base!==void 0?R.base:1;if(ds(D)!=="number")return Cf(R.default,S.default);let te=R.stops.length;if(te===1||D<=R.stops[0][0])return R.stops[0][1];if(D>=R.stops[te-1][0])return R.stops[te-1][1];let ue=hi(R.stops.map(Tt=>Tt[0]),D),ve=function(Tt,Ft,Qt,sr){let Tr=sr-Qt,Pr=Tt-Qt;return Tr===0?0:Ft===1?Pr/Tr:(Math.pow(Ft,Pr)-1)/(Math.pow(Ft,Tr)-1)}(D,j,R.stops[ue][0],R.stops[ue+1][0]),De=R.stops[ue][1],Ze=R.stops[ue+1][1],at=Mo[S.type]||Bd;return typeof De.evaluate=="function"?{evaluate(...Tt){let Ft=De.evaluate.apply(void 0,Tt),Qt=Ze.evaluate.apply(void 0,Tt);if(Ft!==void 0&&Qt!==void 0)return at(Ft,Qt,ve,R.colorSpace)}}:at(De,Ze,ve,R.colorSpace)}function eu(R,S,D){switch(S.type){case"color":D=Zt.parse(D);break;case"formatted":D=Zr.fromString(D.toString());break;case"resolvedImage":D=Mi.fromString(D.toString());break;case"padding":D=Vr.parse(D);break;default:ds(D)===S.type||S.type==="enum"&&S.values[D]||(D=void 0)}return Cf(D,R.default,S.default)}Ml.register(kf,{error:[{kind:"error"},[Et],(R,[S])=>{throw new la(S.evaluate(R))}],typeof:[Et,[fr],(R,[S])=>Ye(Ki(S.evaluate(R)))],"to-rgba":[Ne(St,4),[Ht],(R,[S])=>{let[D,j,te,ue]=S.evaluate(R).rgb;return[255*D,255*j,255*te,ue]}],rgb:[Ht,[St,St,St],Yh],rgba:[Ht,[St,St,St,St],Yh],has:{type:dt,overloads:[[[Et],(R,[S])=>Eh(S.evaluate(R),R.properties())],[[Et,$t],(R,[S,D])=>Eh(S.evaluate(R),D.evaluate(R))]]},get:{type:fr,overloads:[[[Et],(R,[S])=>nh(S.evaluate(R),R.properties())],[[Et,$t],(R,[S,D])=>nh(S.evaluate(R),D.evaluate(R))]]},"feature-state":[fr,[Et],(R,[S])=>nh(S.evaluate(R),R.featureState||{})],properties:[$t,[],R=>R.properties()],"geometry-type":[Et,[],R=>R.geometryType()],id:[fr,[],R=>R.id()],zoom:[St,[],R=>R.globals.zoom],"heatmap-density":[St,[],R=>R.globals.heatmapDensity||0],"line-progress":[St,[],R=>R.globals.lineProgress||0],accumulated:[fr,[],R=>R.globals.accumulated===void 0?null:R.globals.accumulated],"+":[St,hf(St),(R,S)=>{let D=0;for(let j of S)D+=j.evaluate(R);return D}],"*":[St,hf(St),(R,S)=>{let D=1;for(let j of S)D*=j.evaluate(R);return D}],"-":{type:St,overloads:[[[St,St],(R,[S,D])=>S.evaluate(R)-D.evaluate(R)],[[St],(R,[S])=>-S.evaluate(R)]]},"/":[St,[St,St],(R,[S,D])=>S.evaluate(R)/D.evaluate(R)],"%":[St,[St,St],(R,[S,D])=>S.evaluate(R)%D.evaluate(R)],ln2:[St,[],()=>Math.LN2],pi:[St,[],()=>Math.PI],e:[St,[],()=>Math.E],"^":[St,[St,St],(R,[S,D])=>Math.pow(S.evaluate(R),D.evaluate(R))],sqrt:[St,[St],(R,[S])=>Math.sqrt(S.evaluate(R))],log10:[St,[St],(R,[S])=>Math.log(S.evaluate(R))/Math.LN10],ln:[St,[St],(R,[S])=>Math.log(S.evaluate(R))],log2:[St,[St],(R,[S])=>Math.log(S.evaluate(R))/Math.LN2],sin:[St,[St],(R,[S])=>Math.sin(S.evaluate(R))],cos:[St,[St],(R,[S])=>Math.cos(S.evaluate(R))],tan:[St,[St],(R,[S])=>Math.tan(S.evaluate(R))],asin:[St,[St],(R,[S])=>Math.asin(S.evaluate(R))],acos:[St,[St],(R,[S])=>Math.acos(S.evaluate(R))],atan:[St,[St],(R,[S])=>Math.atan(S.evaluate(R))],min:[St,hf(St),(R,S)=>Math.min(...S.map(D=>D.evaluate(R)))],max:[St,hf(St),(R,S)=>Math.max(...S.map(D=>D.evaluate(R)))],abs:[St,[St],(R,[S])=>Math.abs(S.evaluate(R))],round:[St,[St],(R,[S])=>{let D=S.evaluate(R);return D<0?-Math.round(-D):Math.round(D)}],floor:[St,[St],(R,[S])=>Math.floor(S.evaluate(R))],ceil:[St,[St],(R,[S])=>Math.ceil(S.evaluate(R))],"filter-==":[dt,[Et,fr],(R,[S,D])=>R.properties()[S.value]===D.value],"filter-id-==":[dt,[fr],(R,[S])=>R.id()===S.value],"filter-type-==":[dt,[Et],(R,[S])=>R.geometryType()===S.value],"filter-<":[dt,[Et,fr],(R,[S,D])=>{let j=R.properties()[S.value],te=D.value;return typeof j==typeof te&&j{let D=R.id(),j=S.value;return typeof D==typeof j&&D":[dt,[Et,fr],(R,[S,D])=>{let j=R.properties()[S.value],te=D.value;return typeof j==typeof te&&j>te}],"filter-id->":[dt,[fr],(R,[S])=>{let D=R.id(),j=S.value;return typeof D==typeof j&&D>j}],"filter-<=":[dt,[Et,fr],(R,[S,D])=>{let j=R.properties()[S.value],te=D.value;return typeof j==typeof te&&j<=te}],"filter-id-<=":[dt,[fr],(R,[S])=>{let D=R.id(),j=S.value;return typeof D==typeof j&&D<=j}],"filter->=":[dt,[Et,fr],(R,[S,D])=>{let j=R.properties()[S.value],te=D.value;return typeof j==typeof te&&j>=te}],"filter-id->=":[dt,[fr],(R,[S])=>{let D=R.id(),j=S.value;return typeof D==typeof j&&D>=j}],"filter-has":[dt,[fr],(R,[S])=>S.value in R.properties()],"filter-has-id":[dt,[],R=>R.id()!==null&&R.id()!==void 0],"filter-type-in":[dt,[Ne(Et)],(R,[S])=>S.value.indexOf(R.geometryType())>=0],"filter-id-in":[dt,[Ne(fr)],(R,[S])=>S.value.indexOf(R.id())>=0],"filter-in-small":[dt,[Et,Ne(fr)],(R,[S,D])=>D.value.indexOf(R.properties()[S.value])>=0],"filter-in-large":[dt,[Et,Ne(fr)],(R,[S,D])=>function(j,te,ue,ve){for(;ue<=ve;){let De=ue+ve>>1;if(te[De]===j)return!0;te[De]>j?ve=De-1:ue=De+1}return!1}(R.properties()[S.value],D.value,0,D.value.length-1)],all:{type:dt,overloads:[[[dt,dt],(R,[S,D])=>S.evaluate(R)&&D.evaluate(R)],[hf(dt),(R,S)=>{for(let D of S)if(!D.evaluate(R))return!1;return!0}]]},any:{type:dt,overloads:[[[dt,dt],(R,[S,D])=>S.evaluate(R)||D.evaluate(R)],[hf(dt),(R,S)=>{for(let D of S)if(D.evaluate(R))return!0;return!1}]]},"!":[dt,[dt],(R,[S])=>!S.evaluate(R)],"is-supported-script":[dt,[Et],(R,[S])=>{let D=R.globals&&R.globals.isSupportedScript;return!D||D(S.evaluate(R))}],upcase:[Et,[Et],(R,[S])=>S.evaluate(R).toUpperCase()],downcase:[Et,[Et],(R,[S])=>S.evaluate(R).toLowerCase()],concat:[Et,hf(fr),(R,S)=>S.map(D=>ka(D.evaluate(R))).join("")],"resolved-locale":[Et,[_r],(R,[S])=>S.evaluate(R).resolvedLocale()]});class Pu{constructor(S,D){var j;this.expression=S,this._warningHistory={},this._evaluator=new Ha,this._defaultValue=D?(j=D).type==="color"&&Ch(j.default)?new Zt(0,0,0,0):j.type==="color"?Zt.parse(j.default)||null:j.type==="padding"?Vr.parse(j.default)||null:j.type==="variableAnchorOffsetCollection"?Si.parse(j.default)||null:j.default===void 0?null:j.default:null,this._enumValues=D&&D.type==="enum"?D.values:null}evaluateWithoutErrorHandling(S,D,j,te,ue,ve){return this._evaluator.globals=S,this._evaluator.feature=D,this._evaluator.featureState=j,this._evaluator.canonical=te,this._evaluator.availableImages=ue||null,this._evaluator.formattedSection=ve,this.expression.evaluate(this._evaluator)}evaluate(S,D,j,te,ue,ve){this._evaluator.globals=S,this._evaluator.feature=D||null,this._evaluator.featureState=j||null,this._evaluator.canonical=te,this._evaluator.availableImages=ue||null,this._evaluator.formattedSection=ve||null;try{let De=this.expression.evaluate(this._evaluator);if(De==null||typeof De=="number"&&De!=De)return this._defaultValue;if(this._enumValues&&!(De in this._enumValues))throw new la(`Expected value to be one of ${Object.keys(this._enumValues).map(Ze=>JSON.stringify(Ze)).join(", ")}, but found ${JSON.stringify(De)} instead.`);return De}catch(De){return this._warningHistory[De.message]||(this._warningHistory[De.message]=!0,typeof console!="undefined"&&console.warn(De.message)),this._defaultValue}}}function Lc(R){return Array.isArray(R)&&R.length>0&&typeof R[0]=="string"&&R[0]in kf}function fl(R,S){let D=new oo(kf,kh,[],S?function(te){let ue={color:Ht,string:Et,number:St,enum:Et,boolean:dt,formatted:Br,padding:Or,resolvedImage:Nr,variableAnchorOffsetCollection:ut};return te.type==="array"?Ne(ue[te.value]||fr,te.length):ue[te.type]}(S):void 0),j=D.parse(R,void 0,void 0,void 0,S&&S.type==="string"?{typeAnnotation:"coerce"}:void 0);return j?Wc(new Pu(j,S)):df(D.errors)}class Xc{constructor(S,D){this.kind=S,this._styleExpression=D,this.isStateDependent=S!=="constant"&&!rc(D.expression)}evaluateWithoutErrorHandling(S,D,j,te,ue,ve){return this._styleExpression.evaluateWithoutErrorHandling(S,D,j,te,ue,ve)}evaluate(S,D,j,te,ue,ve){return this._styleExpression.evaluate(S,D,j,te,ue,ve)}}class ic{constructor(S,D,j,te){this.kind=S,this.zoomStops=j,this._styleExpression=D,this.isStateDependent=S!=="camera"&&!rc(D.expression),this.interpolationType=te}evaluateWithoutErrorHandling(S,D,j,te,ue,ve){return this._styleExpression.evaluateWithoutErrorHandling(S,D,j,te,ue,ve)}evaluate(S,D,j,te,ue,ve){return this._styleExpression.evaluate(S,D,j,te,ue,ve)}interpolationFactor(S,D,j){return this.interpolationType?xo.interpolationFactor(this.interpolationType,S,D,j):0}}function yu(R,S){let D=fl(R,S);if(D.result==="error")return D;let j=D.value.expression,te=Kh(j);if(!te&&!Cu(S))return df([new xt("","data expressions not supported")]);let ue=ah(j,["zoom"]);if(!ue&&!Nf(S))return df([new xt("","zoom expressions not supported")]);let ve=Qh(j);return ve||ue?ve instanceof xt?df([ve]):ve instanceof xo&&!Zc(S)?df([new xt("",'"interpolate" expressions cannot be used with this property')]):Wc(ve?new ic(te?"camera":"composite",D.value,ve.labels,ve instanceof xo?ve.interpolation:void 0):new Xc(te?"constant":"source",D.value)):df([new xt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class Qs{constructor(S,D){this._parameters=S,this._specification=D,Ke(this,Jh(this._parameters,this._specification))}static deserialize(S){return new Qs(S._parameters,S._specification)}static serialize(S){return{_parameters:S._parameters,_specification:S._specification}}}function Qh(R){let S=null;if(R instanceof xn)S=Qh(R.result);else if(R instanceof ks){for(let D of R.args)if(S=Qh(D),S)break}else(R instanceof Ji||R instanceof xo)&&R.input instanceof Ml&&R.input.name==="zoom"&&(S=R);return S instanceof xt||R.eachChild(D=>{let j=Qh(D);j instanceof xt?S=j:!S&&j?S=new xt("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):S&&j&&S!==j&&(S=new xt("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),S}function gd(R){if(R===!0||R===!1)return!0;if(!Array.isArray(R)||R.length===0)return!1;switch(R[0]){case"has":return R.length>=2&&R[1]!=="$id"&&R[1]!=="$type";case"in":return R.length>=3&&(typeof R[1]!="string"||Array.isArray(R[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return R.length!==3||Array.isArray(R[1])||Array.isArray(R[2]);case"any":case"all":for(let S of R.slice(1))if(!gd(S)&&typeof S!="boolean")return!1;return!0;default:return!0}}let Gu={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function Pc(R){if(R==null)return{filter:()=>!0,needGeometry:!1};gd(R)||(R=Lf(R));let S=fl(R,Gu);if(S.result==="error")throw new Error(S.value.map(D=>`${D.key}: ${D.message}`).join(", "));return{filter:(D,j,te)=>S.value.evaluate(D,j,{},te),needGeometry:sv(R)}}function vc(R,S){return RS?1:0}function sv(R){if(!Array.isArray(R))return!1;if(R[0]==="within"||R[0]==="distance")return!0;for(let S=1;S"||S==="<="||S===">="?Uf(R[1],R[2],S):S==="any"?(D=R.slice(1),["any"].concat(D.map(Lf))):S==="all"?["all"].concat(R.slice(1).map(Lf)):S==="none"?["all"].concat(R.slice(1).map(Lf).map(tu)):S==="in"?Iu(R[1],R.slice(2)):S==="!in"?tu(Iu(R[1],R.slice(2))):S==="has"?oh(R[1]):S!=="!has"||tu(oh(R[1]));var D}function Uf(R,S,D){switch(R){case"$type":return[`filter-type-${D}`,S];case"$id":return[`filter-id-${D}`,S];default:return[`filter-${D}`,R,S]}}function Iu(R,S){if(S.length===0)return!1;switch(R){case"$type":return["filter-type-in",["literal",S]];case"$id":return["filter-id-in",["literal",S]];default:return S.length>200&&!S.some(D=>typeof D!=typeof S[0])?["filter-in-large",R,["literal",S.sort(vc)]]:["filter-in-small",R,["literal",S]]}}function oh(R){switch(R){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",R]}}function tu(R){return["!",R]}function vf(R){let S=typeof R;if(S==="number"||S==="boolean"||S==="string"||R==null)return JSON.stringify(R);if(Array.isArray(R)){let te="[";for(let ue of R)te+=`${vf(ue)},`;return`${te}]`}let D=Object.keys(R).sort(),j="{";for(let te=0;tej.maximum?[new er(S,D,`${D} is greater than the maximum value ${j.maximum}`)]:[]}function Pf(R){let S=R.valueSpec,D=Fs(R.value.type),j,te,ue,ve={},De=D!=="categorical"&&R.value.property===void 0,Ze=!De,at=ds(R.value.stops)==="array"&&ds(R.value.stops[0])==="array"&&ds(R.value.stops[0][0])==="object",Tt=xu({key:R.key,value:R.value,valueSpec:R.styleSpec.function,validateSpec:R.validateSpec,style:R.style,styleSpec:R.styleSpec,objectElementValidators:{stops:function(sr){if(D==="identity")return[new er(sr.key,sr.value,'identity function may not have a "stops" property')];let Tr=[],Pr=sr.value;return Tr=Tr.concat(Lh({key:sr.key,value:Pr,valueSpec:sr.valueSpec,validateSpec:sr.validateSpec,style:sr.style,styleSpec:sr.styleSpec,arrayElementValidator:Ft})),ds(Pr)==="array"&&Pr.length===0&&Tr.push(new er(sr.key,Pr,"array must have at least one stop")),Tr},default:function(sr){return sr.validateSpec({key:sr.key,value:sr.value,valueSpec:S,validateSpec:sr.validateSpec,style:sr.style,styleSpec:sr.styleSpec})}}});return D==="identity"&&De&&Tt.push(new er(R.key,R.value,'missing required property "property"')),D==="identity"||R.value.stops||Tt.push(new er(R.key,R.value,'missing required property "stops"')),D==="exponential"&&R.valueSpec.expression&&!Zc(R.valueSpec)&&Tt.push(new er(R.key,R.value,"exponential functions not supported")),R.styleSpec.$version>=8&&(Ze&&!Cu(R.valueSpec)?Tt.push(new er(R.key,R.value,"property functions not supported")):De&&!Nf(R.valueSpec)&&Tt.push(new er(R.key,R.value,"zoom functions not supported"))),D!=="categorical"&&!at||R.value.property!==void 0||Tt.push(new er(R.key,R.value,'"property" property is required')),Tt;function Ft(sr){let Tr=[],Pr=sr.value,$r=sr.key;if(ds(Pr)!=="array")return[new er($r,Pr,`array expected, ${ds(Pr)} found`)];if(Pr.length!==2)return[new er($r,Pr,`array length 2 expected, length ${Pr.length} found`)];if(at){if(ds(Pr[0])!=="object")return[new er($r,Pr,`object expected, ${ds(Pr[0])} found`)];if(Pr[0].zoom===void 0)return[new er($r,Pr,"object stop key must have zoom")];if(Pr[0].value===void 0)return[new er($r,Pr,"object stop key must have value")];if(ue&&ue>Fs(Pr[0].zoom))return[new er($r,Pr[0].zoom,"stop zoom values must appear in ascending order")];Fs(Pr[0].zoom)!==ue&&(ue=Fs(Pr[0].zoom),te=void 0,ve={}),Tr=Tr.concat(xu({key:`${$r}[0]`,value:Pr[0],valueSpec:{zoom:{}},validateSpec:sr.validateSpec,style:sr.style,styleSpec:sr.styleSpec,objectElementValidators:{zoom:Is,value:Qt}}))}else Tr=Tr.concat(Qt({key:`${$r}[0]`,value:Pr[0],valueSpec:{},validateSpec:sr.validateSpec,style:sr.style,styleSpec:sr.styleSpec},Pr));return Lc(_u(Pr[1]))?Tr.concat([new er(`${$r}[1]`,Pr[1],"expressions are not allowed in function stops.")]):Tr.concat(sr.validateSpec({key:`${$r}[1]`,value:Pr[1],valueSpec:S,validateSpec:sr.validateSpec,style:sr.style,styleSpec:sr.styleSpec}))}function Qt(sr,Tr){let Pr=ds(sr.value),$r=Fs(sr.value),ni=sr.value!==null?sr.value:Tr;if(j){if(Pr!==j)return[new er(sr.key,ni,`${Pr} stop domain type must match previous stop domain type ${j}`)]}else j=Pr;if(Pr!=="number"&&Pr!=="string"&&Pr!=="boolean")return[new er(sr.key,ni,"stop domain value must be a number, string, or boolean")];if(Pr!=="number"&&D!=="categorical"){let Di=`number expected, ${Pr} found`;return Cu(S)&&D===void 0&&(Di+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new er(sr.key,ni,Di)]}return D!=="categorical"||Pr!=="number"||isFinite($r)&&Math.floor($r)===$r?D!=="categorical"&&Pr==="number"&&te!==void 0&&$rnew er(`${R.key}${j.key}`,R.value,j.message));let D=S.value.expression||S.value._styleExpression.expression;if(R.expressionContext==="property"&&R.propertyKey==="text-font"&&!D.outputDefined())return[new er(R.key,R.value,`Invalid data expression for "${R.propertyKey}". Output values must be contained as literals within the expression.`)];if(R.expressionContext==="property"&&R.propertyType==="layout"&&!rc(D))return[new er(R.key,R.value,'"feature-state" data expressions are not supported with layout properties.')];if(R.expressionContext==="filter"&&!rc(D))return[new er(R.key,R.value,'"feature-state" data expressions are not supported with filters.')];if(R.expressionContext&&R.expressionContext.indexOf("cluster")===0){if(!ah(D,["zoom","feature-state"]))return[new er(R.key,R.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(R.expressionContext==="cluster-initial"&&!Kh(D))return[new er(R.key,R.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function ju(R){let S=R.key,D=R.value,j=R.valueSpec,te=[];return Array.isArray(j.values)?j.values.indexOf(Fs(D))===-1&&te.push(new er(S,D,`expected one of [${j.values.join(", ")}], ${JSON.stringify(D)} found`)):Object.keys(j.values).indexOf(Fs(D))===-1&&te.push(new er(S,D,`expected one of [${Object.keys(j.values).join(", ")}], ${JSON.stringify(D)} found`)),te}function Vf(R){return gd(_u(R.value))?Ic(Ke({},R,{expressionContext:"filter",valueSpec:{value:"boolean"}})):pc(R)}function pc(R){let S=R.value,D=R.key;if(ds(S)!=="array")return[new er(D,S,`array expected, ${ds(S)} found`)];let j=R.styleSpec,te,ue=[];if(S.length<1)return[new er(D,S,"filter array must have at least 1 element")];switch(ue=ue.concat(ju({key:`${D}[0]`,value:S[0],valueSpec:j.filter_operator,style:R.style,styleSpec:R.styleSpec})),Fs(S[0])){case"<":case"<=":case">":case">=":S.length>=2&&Fs(S[1])==="$type"&&ue.push(new er(D,S,`"$type" cannot be use with operator "${S[0]}"`));case"==":case"!=":S.length!==3&&ue.push(new er(D,S,`filter array for operator "${S[0]}" must have 3 elements`));case"in":case"!in":S.length>=2&&(te=ds(S[1]),te!=="string"&&ue.push(new er(`${D}[1]`,S[1],`string expected, ${te} found`)));for(let ve=2;ve{at in D&&S.push(new er(j,D[at],`"${at}" is prohibited for ref layers`))}),te.layers.forEach(at=>{Fs(at.id)===De&&(Ze=at)}),Ze?Ze.ref?S.push(new er(j,D.ref,"ref cannot reference another ref layer")):ve=Fs(Ze.type):S.push(new er(j,D.ref,`ref layer "${De}" not found`))}else if(ve!=="background")if(D.source){let Ze=te.sources&&te.sources[D.source],at=Ze&&Fs(Ze.type);Ze?at==="vector"&&ve==="raster"?S.push(new er(j,D.source,`layer "${D.id}" requires a raster source`)):at!=="raster-dem"&&ve==="hillshade"?S.push(new er(j,D.source,`layer "${D.id}" requires a raster-dem source`)):at==="raster"&&ve!=="raster"?S.push(new er(j,D.source,`layer "${D.id}" requires a vector source`)):at!=="vector"||D["source-layer"]?at==="raster-dem"&&ve!=="hillshade"?S.push(new er(j,D.source,"raster-dem source can only be used with layer type 'hillshade'.")):ve!=="line"||!D.paint||!D.paint["line-gradient"]||at==="geojson"&&Ze.lineMetrics||S.push(new er(j,D,`layer "${D.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):S.push(new er(j,D,`layer "${D.id}" must specify a "source-layer"`)):S.push(new er(j,D.source,`source "${D.source}" not found`))}else S.push(new er(j,D,'missing required property "source"'));return S=S.concat(xu({key:j,value:D,valueSpec:ue.layer,style:R.style,styleSpec:R.styleSpec,validateSpec:R.validateSpec,objectElementValidators:{"*":()=>[],type:()=>R.validateSpec({key:`${j}.type`,value:D.type,valueSpec:ue.layer.type,style:R.style,styleSpec:R.styleSpec,validateSpec:R.validateSpec,object:D,objectKey:"type"}),filter:Vf,layout:Ze=>xu({layer:D,key:Ze.key,value:Ze.value,style:Ze.style,styleSpec:Ze.styleSpec,validateSpec:Ze.validateSpec,objectElementValidators:{"*":at=>Rl(Ke({layerType:ve},at))}}),paint:Ze=>xu({layer:D,key:Ze.key,value:Ze.value,style:Ze.style,styleSpec:Ze.styleSpec,validateSpec:Ze.validateSpec,objectElementValidators:{"*":at=>Ph(Ke({layerType:ve},at))}})}})),S}function Wu(R){let S=R.value,D=R.key,j=ds(S);return j!=="string"?[new er(D,S,`string expected, ${j} found`)]:[]}let Rc={promoteId:function({key:R,value:S}){if(ds(S)==="string")return Wu({key:R,value:S});{let D=[];for(let j in S)D.push(...Wu({key:`${R}.${j}`,value:S[j]}));return D}}};function gc(R){let S=R.value,D=R.key,j=R.styleSpec,te=R.style,ue=R.validateSpec;if(!S.type)return[new er(D,S,'"type" is required')];let ve=Fs(S.type),De;switch(ve){case"vector":case"raster":return De=xu({key:D,value:S,valueSpec:j[`source_${ve.replace("-","_")}`],style:R.style,styleSpec:j,objectElementValidators:Rc,validateSpec:ue}),De;case"raster-dem":return De=function(Ze){var at;let Tt=(at=Ze.sourceName)!==null&&at!==void 0?at:"",Ft=Ze.value,Qt=Ze.styleSpec,sr=Qt.source_raster_dem,Tr=Ze.style,Pr=[],$r=ds(Ft);if(Ft===void 0)return Pr;if($r!=="object")return Pr.push(new er("source_raster_dem",Ft,`object expected, ${$r} found`)),Pr;let ni=Fs(Ft.encoding)==="custom",Di=["redFactor","greenFactor","blueFactor","baseShift"],pi=Ze.value.encoding?`"${Ze.value.encoding}"`:"Default";for(let ki in Ft)!ni&&Di.includes(ki)?Pr.push(new er(ki,Ft[ki],`In "${Tt}": "${ki}" is only valid when "encoding" is set to "custom". ${pi} encoding found`)):sr[ki]?Pr=Pr.concat(Ze.validateSpec({key:ki,value:Ft[ki],valueSpec:sr[ki],validateSpec:Ze.validateSpec,style:Tr,styleSpec:Qt})):Pr.push(new er(ki,Ft[ki],`unknown property "${ki}"`));return Pr}({sourceName:D,value:S,style:R.style,styleSpec:j,validateSpec:ue}),De;case"geojson":if(De=xu({key:D,value:S,valueSpec:j.source_geojson,style:te,styleSpec:j,validateSpec:ue,objectElementValidators:Rc}),S.cluster)for(let Ze in S.clusterProperties){let[at,Tt]=S.clusterProperties[Ze],Ft=typeof at=="string"?[at,["accumulated"],["get",Ze]]:at;De.push(...Ic({key:`${D}.${Ze}.map`,value:Tt,validateSpec:ue,expressionContext:"cluster-map"})),De.push(...Ic({key:`${D}.${Ze}.reduce`,value:Ft,validateSpec:ue,expressionContext:"cluster-reduce"}))}return De;case"video":return xu({key:D,value:S,valueSpec:j.source_video,style:te,validateSpec:ue,styleSpec:j});case"image":return xu({key:D,value:S,valueSpec:j.source_image,style:te,validateSpec:ue,styleSpec:j});case"canvas":return[new er(D,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return ju({key:`${D}.type`,value:S.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:te,validateSpec:ue,styleSpec:j})}}function hl(R){let S=R.value,D=R.styleSpec,j=D.light,te=R.style,ue=[],ve=ds(S);if(S===void 0)return ue;if(ve!=="object")return ue=ue.concat([new er("light",S,`object expected, ${ve} found`)]),ue;for(let De in S){let Ze=De.match(/^(.*)-transition$/);ue=ue.concat(Ze&&j[Ze[1]]&&j[Ze[1]].transition?R.validateSpec({key:De,value:S[De],valueSpec:D.transition,validateSpec:R.validateSpec,style:te,styleSpec:D}):j[De]?R.validateSpec({key:De,value:S[De],valueSpec:j[De],validateSpec:R.validateSpec,style:te,styleSpec:D}):[new er(De,S[De],`unknown property "${De}"`)])}return ue}function ru(R){let S=R.value,D=R.styleSpec,j=D.sky,te=R.style,ue=ds(S);if(S===void 0)return[];if(ue!=="object")return[new er("sky",S,`object expected, ${ue} found`)];let ve=[];for(let De in S)ve=ve.concat(j[De]?R.validateSpec({key:De,value:S[De],valueSpec:j[De],style:te,styleSpec:D}):[new er(De,S[De],`unknown property "${De}"`)]);return ve}function mc(R){let S=R.value,D=R.styleSpec,j=D.terrain,te=R.style,ue=[],ve=ds(S);if(S===void 0)return ue;if(ve!=="object")return ue=ue.concat([new er("terrain",S,`object expected, ${ve} found`)]),ue;for(let De in S)ue=ue.concat(j[De]?R.validateSpec({key:De,value:S[De],valueSpec:j[De],validateSpec:R.validateSpec,style:te,styleSpec:D}):[new er(De,S[De],`unknown property "${De}"`)]);return ue}function Yc(R){let S=[],D=R.value,j=R.key;if(Array.isArray(D)){let te=[],ue=[];for(let ve in D)D[ve].id&&te.includes(D[ve].id)&&S.push(new er(j,D,`all the sprites' ids must be unique, but ${D[ve].id} is duplicated`)),te.push(D[ve].id),D[ve].url&&ue.includes(D[ve].url)&&S.push(new er(j,D,`all the sprites' URLs must be unique, but ${D[ve].url} is duplicated`)),ue.push(D[ve].url),S=S.concat(xu({key:`${j}[${ve}]`,value:D[ve],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:R.validateSpec}));return S}return Wu({key:j,value:D})}let nc={"*":()=>[],array:Lh,boolean:function(R){let S=R.value,D=R.key,j=ds(S);return j!=="boolean"?[new er(D,S,`boolean expected, ${j} found`)]:[]},number:Is,color:function(R){let S=R.key,D=R.value,j=ds(D);return j!=="string"?[new er(S,D,`color expected, ${j} found`)]:Zt.parse(String(D))?[]:[new er(S,D,`color expected, "${D}" found`)]},constants:sh,enum:ju,filter:Vf,function:Pf,layer:Ih,object:xu,source:gc,light:hl,sky:ru,terrain:mc,projection:function(R){let S=R.value,D=R.styleSpec,j=D.projection,te=R.style,ue=ds(S);if(S===void 0)return[];if(ue!=="object")return[new er("projection",S,`object expected, ${ue} found`)];let ve=[];for(let De in S)ve=ve.concat(j[De]?R.validateSpec({key:De,value:S[De],valueSpec:j[De],style:te,styleSpec:D}):[new er(De,S[De],`unknown property "${De}"`)]);return ve},string:Wu,formatted:function(R){return Wu(R).length===0?[]:Ic(R)},resolvedImage:function(R){return Wu(R).length===0?[]:Ic(R)},padding:function(R){let S=R.key,D=R.value;if(ds(D)==="array"){if(D.length<1||D.length>4)return[new er(S,D,`padding requires 1 to 4 values; ${D.length} values found`)];let j={type:"number"},te=[];for(let ue=0;ue[]}})),R.constants&&(D=D.concat(sh({key:"constants",value:R.constants,style:R,styleSpec:S,validateSpec:gf}))),vr(D)}function wr(R){return function(S){return R(KQ(YQ({},S),{validateSpec:gf}))}}function vr(R){return[].concat(R).sort((S,D)=>S.line-D.line)}function Ur(R){return function(...S){return vr(R.apply(this,S))}}Bt.source=Ur(wr(gc)),Bt.sprite=Ur(wr(Yc)),Bt.glyphs=Ur(wr(gt)),Bt.light=Ur(wr(hl)),Bt.sky=Ur(wr(ru)),Bt.terrain=Ur(wr(mc)),Bt.layer=Ur(wr(Ih)),Bt.filter=Ur(wr(Vf)),Bt.paintProperty=Ur(wr(Ph)),Bt.layoutProperty=Ur(wr(Rl));let fi=Bt,xi=fi.light,Fi=fi.sky,Xi=fi.paintProperty,hn=fi.layoutProperty;function Ti(R,S){let D=!1;if(S&&S.length)for(let j of S)R.fire(new me(new Error(j.message))),D=!0;return D}class qi{constructor(S,D,j){let te=this.cells=[];if(S instanceof ArrayBuffer){this.arrayBuffer=S;let ve=new Int32Array(this.arrayBuffer);S=ve[0],this.d=(D=ve[1])+2*(j=ve[2]);for(let Ze=0;Ze=Ft[Tr+0]&&te>=Ft[Tr+1])?(De[sr]=!0,ve.push(Tt[sr])):De[sr]=!1}}}}_forEachCell(S,D,j,te,ue,ve,De,Ze){let at=this._convertToCellCoord(S),Tt=this._convertToCellCoord(D),Ft=this._convertToCellCoord(j),Qt=this._convertToCellCoord(te);for(let sr=at;sr<=Ft;sr++)for(let Tr=Tt;Tr<=Qt;Tr++){let Pr=this.d*Tr+sr;if((!Ze||Ze(this._convertFromCellCoord(sr),this._convertFromCellCoord(Tr),this._convertFromCellCoord(sr+1),this._convertFromCellCoord(Tr+1)))&&ue.call(this,S,D,j,te,Pr,ve,De,Ze))return}}_convertFromCellCoord(S){return(S-this.padding)/this.scale}_convertToCellCoord(S){return Math.max(0,Math.min(this.d-1,Math.floor(S*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;let S=this.cells,D=3+this.cells.length+1+1,j=0;for(let ve=0;ve=0)continue;let ve=R[ue];te[ue]=Ii[D].shallow.indexOf(ue)>=0?ve:Ea(ve,S)}R instanceof Error&&(te.message=R.message)}if(te.$name)throw new Error("$name property is reserved for worker serialization logic.");return D!=="Object"&&(te.$name=D),te}function qa(R){if(Ta(R))return R;if(Array.isArray(R))return R.map(qa);if(typeof R!="object")throw new Error("can't deserialize object of type "+typeof R);let S=Ma(R)||"Object";if(!Ii[S])throw new Error(`can't deserialize unregistered class ${S}`);let{klass:D}=Ii[S];if(!D)throw new Error(`can't deserialize unregistered class ${S}`);if(D.deserialize)return D.deserialize(R);let j=Object.create(D.prototype);for(let te of Object.keys(R)){if(te==="$name")continue;let ue=R[te];j[te]=Ii[S].shallow.indexOf(te)>=0?ue:qa(ue)}return j}class Cn{constructor(){this.first=!0}update(S,D){let j=Math.floor(S);return this.first?(this.first=!1,this.lastIntegerZoom=j,this.lastIntegerZoomTime=0,this.lastZoom=S,this.lastFloorZoom=j,!0):(this.lastFloorZoom>j?(this.lastIntegerZoom=j+1,this.lastIntegerZoomTime=D):this.lastFloorZoomR>=128&&R<=255,"Hangul Jamo":R=>R>=4352&&R<=4607,Khmer:R=>R>=6016&&R<=6143,"General Punctuation":R=>R>=8192&&R<=8303,"Letterlike Symbols":R=>R>=8448&&R<=8527,"Number Forms":R=>R>=8528&&R<=8591,"Miscellaneous Technical":R=>R>=8960&&R<=9215,"Control Pictures":R=>R>=9216&&R<=9279,"Optical Character Recognition":R=>R>=9280&&R<=9311,"Enclosed Alphanumerics":R=>R>=9312&&R<=9471,"Geometric Shapes":R=>R>=9632&&R<=9727,"Miscellaneous Symbols":R=>R>=9728&&R<=9983,"Miscellaneous Symbols and Arrows":R=>R>=11008&&R<=11263,"Ideographic Description Characters":R=>R>=12272&&R<=12287,"CJK Symbols and Punctuation":R=>R>=12288&&R<=12351,Katakana:R=>R>=12448&&R<=12543,Kanbun:R=>R>=12688&&R<=12703,"CJK Strokes":R=>R>=12736&&R<=12783,"Enclosed CJK Letters and Months":R=>R>=12800&&R<=13055,"CJK Compatibility":R=>R>=13056&&R<=13311,"Yijing Hexagram Symbols":R=>R>=19904&&R<=19967,"Private Use Area":R=>R>=57344&&R<=63743,"Vertical Forms":R=>R>=65040&&R<=65055,"CJK Compatibility Forms":R=>R>=65072&&R<=65103,"Small Form Variants":R=>R>=65104&&R<=65135,"Halfwidth and Fullwidth Forms":R=>R>=65280&&R<=65519};function Ua(R){for(let S of R)if(Bo(S.charCodeAt(0)))return!0;return!1}function mo(R){for(let S of R)if(!Qo(S.charCodeAt(0)))return!1;return!0}function Xo(R){let S=R.map(D=>{try{return new RegExp(`\\p{sc=${D}}`,"u").source}catch(j){return null}}).filter(D=>D);return new RegExp(S.join("|"),"u")}let Ts=Xo(["Arab","Dupl","Mong","Ougr","Syrc"]);function Qo(R){return!Ts.test(String.fromCodePoint(R))}let ys=Xo(["Bopo","Hani","Hira","Kana","Kits","Nshu","Tang","Yiii"]);function Bo(R){return!(R!==746&&R!==747&&(R<4352||!(sn["CJK Compatibility Forms"](R)&&!(R>=65097&&R<=65103)||sn["CJK Compatibility"](R)||sn["CJK Strokes"](R)||!(!sn["CJK Symbols and Punctuation"](R)||R>=12296&&R<=12305||R>=12308&&R<=12319||R===12336)||sn["Enclosed CJK Letters and Months"](R)||sn["Ideographic Description Characters"](R)||sn.Kanbun(R)||sn.Katakana(R)&&R!==12540||!(!sn["Halfwidth and Fullwidth Forms"](R)||R===65288||R===65289||R===65293||R>=65306&&R<=65310||R===65339||R===65341||R===65343||R>=65371&&R<=65503||R===65507||R>=65512&&R<=65519)||!(!sn["Small Form Variants"](R)||R>=65112&&R<=65118||R>=65123&&R<=65126)||sn["Vertical Forms"](R)||sn["Yijing Hexagram Symbols"](R)||new RegExp("\\p{sc=Cans}","u").test(String.fromCodePoint(R))||new RegExp("\\p{sc=Hang}","u").test(String.fromCodePoint(R))||ys.test(String.fromCodePoint(R)))))}function yl(R){return!(Bo(R)||function(S){return!!(sn["Latin-1 Supplement"](S)&&(S===167||S===169||S===174||S===177||S===188||S===189||S===190||S===215||S===247)||sn["General Punctuation"](S)&&(S===8214||S===8224||S===8225||S===8240||S===8241||S===8251||S===8252||S===8258||S===8263||S===8264||S===8265||S===8273)||sn["Letterlike Symbols"](S)||sn["Number Forms"](S)||sn["Miscellaneous Technical"](S)&&(S>=8960&&S<=8967||S>=8972&&S<=8991||S>=8996&&S<=9e3||S===9003||S>=9085&&S<=9114||S>=9150&&S<=9165||S===9167||S>=9169&&S<=9179||S>=9186&&S<=9215)||sn["Control Pictures"](S)&&S!==9251||sn["Optical Character Recognition"](S)||sn["Enclosed Alphanumerics"](S)||sn["Geometric Shapes"](S)||sn["Miscellaneous Symbols"](S)&&!(S>=9754&&S<=9759)||sn["Miscellaneous Symbols and Arrows"](S)&&(S>=11026&&S<=11055||S>=11088&&S<=11097||S>=11192&&S<=11243)||sn["CJK Symbols and Punctuation"](S)||sn.Katakana(S)||sn["Private Use Area"](S)||sn["CJK Compatibility Forms"](S)||sn["Small Form Variants"](S)||sn["Halfwidth and Fullwidth Forms"](S)||S===8734||S===8756||S===8757||S>=9984&&S<=10087||S>=10102&&S<=10131||S===65532||S===65533)}(R))}let Gs=Xo(["Adlm","Arab","Armi","Avst","Chrs","Cprt","Egyp","Elym","Gara","Hatr","Hebr","Hung","Khar","Lydi","Mand","Mani","Mend","Merc","Mero","Narb","Nbat","Nkoo","Orkh","Palm","Phli","Phlp","Phnx","Prti","Rohg","Samr","Sarb","Sogo","Syrc","Thaa","Todr","Yezi"]);function Rs(R){return Gs.test(String.fromCodePoint(R))}function ia(R,S){return!(!S&&Rs(R)||R>=2304&&R<=3583||R>=3840&&R<=4255||sn.Khmer(R))}function Ka(R){for(let S of R)if(Rs(S.charCodeAt(0)))return!0;return!1}let vs=new class{constructor(){this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus="unavailable",this.pluginURL=null}setState(R){this.pluginStatus=R.pluginStatus,this.pluginURL=R.pluginURL}getState(){return{pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(R){this.applyArabicShaping=R.applyArabicShaping,this.processBidirectionalText=R.processBidirectionalText,this.processStyledBidirectionalText=R.processStyledBidirectionalText}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getPluginURL(){return this.pluginURL}getRTLTextPluginStatus(){return this.pluginStatus}};class Ko{constructor(S,D){this.zoom=S,D?(this.now=D.now,this.fadeDuration=D.fadeDuration,this.zoomHistory=D.zoomHistory,this.transition=D.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Cn,this.transition={})}isSupportedScript(S){return function(D,j){for(let te of D)if(!ia(te.charCodeAt(0),j))return!1;return!0}(S,vs.getRTLTextPluginStatus()==="loaded")}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){let S=this.zoom,D=S-Math.floor(S),j=this.crossFadingFactor();return S>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:D+(1-D)*j}:{fromScale:.5,toScale:1,t:1-(1-j)*D}}}class iu{constructor(S,D){this.property=S,this.value=D,this.expression=function(j,te){if(Ch(j))return new Qs(j,te);if(Lc(j)){let ue=yu(j,te);if(ue.result==="error")throw new Error(ue.value.map(ve=>`${ve.key}: ${ve.message}`).join(", "));return ue.value}{let ue=j;return te.type==="color"&&typeof j=="string"?ue=Zt.parse(j):te.type!=="padding"||typeof j!="number"&&!Array.isArray(j)?te.type==="variableAnchorOffsetCollection"&&Array.isArray(j)&&(ue=Si.parse(j)):ue=Vr.parse(j),{kind:"constant",evaluate:()=>ue}}}(D===void 0?S.specification.default:D,S.specification)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}possiblyEvaluate(S,D,j){return this.property.possiblyEvaluate(this,S,D,j)}}class Ru{constructor(S){this.property=S,this.value=new iu(S,void 0)}transitioned(S,D){return new mf(this.property,this.value,D,L({},S.transition,this.transition),S.now)}untransitioned(){return new mf(this.property,this.value,null,{},0)}}class ac{constructor(S){this._properties=S,this._values=Object.create(S.defaultTransitionablePropertyValues)}getValue(S){return p(this._values[S].value.value)}setValue(S,D){Object.prototype.hasOwnProperty.call(this._values,S)||(this._values[S]=new Ru(this._values[S].property)),this._values[S].value=new iu(this._values[S].property,D===null?void 0:p(D))}getTransition(S){return p(this._values[S].transition)}setTransition(S,D){Object.prototype.hasOwnProperty.call(this._values,S)||(this._values[S]=new Ru(this._values[S].property)),this._values[S].transition=p(D)||void 0}serialize(){let S={};for(let D of Object.keys(this._values)){let j=this.getValue(D);j!==void 0&&(S[D]=j);let te=this.getTransition(D);te!==void 0&&(S[`${D}-transition`]=te)}return S}transitioned(S,D){let j=new bu(this._properties);for(let te of Object.keys(this._values))j._values[te]=this._values[te].transitioned(S,D._values[te]);return j}untransitioned(){let S=new bu(this._properties);for(let D of Object.keys(this._values))S._values[D]=this._values[D].untransitioned();return S}}class mf{constructor(S,D,j,te,ue){this.property=S,this.value=D,this.begin=ue+te.delay||0,this.end=this.begin+te.duration||0,S.specification.transition&&(te.delay||te.duration)&&(this.prior=j)}possiblyEvaluate(S,D,j){let te=S.now||0,ue=this.value.possiblyEvaluate(S,D,j),ve=this.prior;if(ve){if(te>this.end)return this.prior=null,ue;if(this.value.isDataDriven())return this.prior=null,ue;if(te=1)return 1;let at=Ze*Ze,Tt=at*Ze;return 4*(Ze<.5?Tt:3*(Ze-at)+Tt-.75)}(De))}}return ue}}class bu{constructor(S){this._properties=S,this._values=Object.create(S.defaultTransitioningPropertyValues)}possiblyEvaluate(S,D,j){let te=new Dc(this._properties);for(let ue of Object.keys(this._values))te._values[ue]=this._values[ue].possiblyEvaluate(S,D,j);return te}hasTransition(){for(let S of Object.keys(this._values))if(this._values[S].prior)return!0;return!1}}class Kc{constructor(S){this._properties=S,this._values=Object.create(S.defaultPropertyValues)}hasValue(S){return this._values[S].value!==void 0}getValue(S){return p(this._values[S].value)}setValue(S,D){this._values[S]=new iu(this._values[S].property,D===null?void 0:p(D))}serialize(){let S={};for(let D of Object.keys(this._values)){let j=this.getValue(D);j!==void 0&&(S[D]=j)}return S}possiblyEvaluate(S,D,j){let te=new Dc(this._properties);for(let ue of Object.keys(this._values))te._values[ue]=this._values[ue].possiblyEvaluate(S,D,j);return te}}class Du{constructor(S,D,j){this.property=S,this.value=D,this.parameters=j}isConstant(){return this.value.kind==="constant"}constantOr(S){return this.value.kind==="constant"?this.value.value:S}evaluate(S,D,j,te){return this.property.evaluate(this.value,this.parameters,S,D,j,te)}}class Dc{constructor(S){this._properties=S,this._values=Object.create(S.defaultPossiblyEvaluatedValues)}get(S){return this._values[S]}}class Da{constructor(S){this.specification=S}possiblyEvaluate(S,D){if(S.isDataDriven())throw new Error("Value should not be data driven");return S.expression.evaluate(D)}interpolate(S,D,j){let te=Mo[this.specification.type];return te?te(S,D,j):S}}class eo{constructor(S,D){this.specification=S,this.overrides=D}possiblyEvaluate(S,D,j,te){return new Du(this,S.expression.kind==="constant"||S.expression.kind==="camera"?{kind:"constant",value:S.expression.evaluate(D,null,{},j,te)}:S.expression,D)}interpolate(S,D,j){if(S.value.kind!=="constant"||D.value.kind!=="constant")return S;if(S.value.value===void 0||D.value.value===void 0)return new Du(this,{kind:"constant",value:void 0},S.parameters);let te=Mo[this.specification.type];if(te){let ue=te(S.value.value,D.value.value,j);return new Du(this,{kind:"constant",value:ue},S.parameters)}return S}evaluate(S,D,j,te,ue,ve){return S.kind==="constant"?S.value:S.evaluate(D,j,te,ue,ve)}}class Jc extends eo{possiblyEvaluate(S,D,j,te){if(S.value===void 0)return new Du(this,{kind:"constant",value:void 0},D);if(S.expression.kind==="constant"){let ue=S.expression.evaluate(D,null,{},j,te),ve=S.property.specification.type==="resolvedImage"&&typeof ue!="string"?ue.name:ue,De=this._calculate(ve,ve,ve,D);return new Du(this,{kind:"constant",value:De},D)}if(S.expression.kind==="camera"){let ue=this._calculate(S.expression.evaluate({zoom:D.zoom-1}),S.expression.evaluate({zoom:D.zoom}),S.expression.evaluate({zoom:D.zoom+1}),D);return new Du(this,{kind:"constant",value:ue},D)}return new Du(this,S.expression,D)}evaluate(S,D,j,te,ue,ve){if(S.kind==="source"){let De=S.evaluate(D,j,te,ue,ve);return this._calculate(De,De,De,D)}return S.kind==="composite"?this._calculate(S.evaluate({zoom:Math.floor(D.zoom)-1},j,te),S.evaluate({zoom:Math.floor(D.zoom)},j,te),S.evaluate({zoom:Math.floor(D.zoom)+1},j,te),D):S.value}_calculate(S,D,j,te){return te.zoom>te.zoomHistory.lastIntegerZoom?{from:S,to:D}:{from:j,to:D}}interpolate(S){return S}}class yc{constructor(S){this.specification=S}possiblyEvaluate(S,D,j,te){if(S.value!==void 0){if(S.expression.kind==="constant"){let ue=S.expression.evaluate(D,null,{},j,te);return this._calculate(ue,ue,ue,D)}return this._calculate(S.expression.evaluate(new Ko(Math.floor(D.zoom-1),D)),S.expression.evaluate(new Ko(Math.floor(D.zoom),D)),S.expression.evaluate(new Ko(Math.floor(D.zoom+1),D)),D)}}_calculate(S,D,j,te){return te.zoom>te.zoomHistory.lastIntegerZoom?{from:S,to:D}:{from:j,to:D}}interpolate(S){return S}}class _c{constructor(S){this.specification=S}possiblyEvaluate(S,D,j,te){return!!S.expression.evaluate(D,null,{},j,te)}interpolate(){return!1}}class le{constructor(S){this.properties=S,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(let D in S){let j=S[D];j.specification.overridable&&this.overridableProperties.push(D);let te=this.defaultPropertyValues[D]=new iu(j,void 0),ue=this.defaultTransitionablePropertyValues[D]=new Ru(j);this.defaultTransitioningPropertyValues[D]=ue.untransitioned(),this.defaultPossiblyEvaluatedValues[D]=te.possiblyEvaluate({})}}}mi("DataDrivenProperty",eo),mi("DataConstantProperty",Da),mi("CrossFadedDataDrivenProperty",Jc),mi("CrossFadedProperty",yc),mi("ColorRampProperty",_c);let w="-transition";class B extends Re{constructor(S,D){if(super(),this.id=S.id,this.type=S.type,this._featureFilter={filter:()=>!0,needGeometry:!1},S.type!=="custom"&&(this.metadata=S.metadata,this.minzoom=S.minzoom,this.maxzoom=S.maxzoom,S.type!=="background"&&(this.source=S.source,this.sourceLayer=S["source-layer"],this.filter=S.filter),D.layout&&(this._unevaluatedLayout=new Kc(D.layout)),D.paint)){this._transitionablePaint=new ac(D.paint);for(let j in S.paint)this.setPaintProperty(j,S.paint[j],{validate:!1});for(let j in S.layout)this.setLayoutProperty(j,S.layout[j],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new Dc(D.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(S){return S==="visibility"?this.visibility:this._unevaluatedLayout.getValue(S)}setLayoutProperty(S,D,j={}){D!=null&&this._validate(hn,`layers.${this.id}.layout.${S}`,S,D,j)||(S!=="visibility"?this._unevaluatedLayout.setValue(S,D):this.visibility=D)}getPaintProperty(S){return S.endsWith(w)?this._transitionablePaint.getTransition(S.slice(0,-11)):this._transitionablePaint.getValue(S)}setPaintProperty(S,D,j={}){if(D!=null&&this._validate(Xi,`layers.${this.id}.paint.${S}`,S,D,j))return!1;if(S.endsWith(w))return this._transitionablePaint.setTransition(S.slice(0,-11),D||void 0),!1;{let te=this._transitionablePaint._values[S],ue=te.property.specification["property-type"]==="cross-faded-data-driven",ve=te.value.isDataDriven(),De=te.value;this._transitionablePaint.setValue(S,D),this._handleSpecialPaintPropertyUpdate(S);let Ze=this._transitionablePaint._values[S].value;return Ze.isDataDriven()||ve||ue||this._handleOverridablePaintPropertyUpdate(S,De,Ze)}}_handleSpecialPaintPropertyUpdate(S){}_handleOverridablePaintPropertyUpdate(S,D,j){return!1}isHidden(S){return!!(this.minzoom&&S=this.maxzoom)||this.visibility==="none"}updateTransitions(S){this._transitioningPaint=this._transitionablePaint.transitioned(S,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(S,D){S.getCrossfadeParameters&&(this._crossfadeParameters=S.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(S,void 0,D)),this.paint=this._transitioningPaint.possiblyEvaluate(S,void 0,D)}serialize(){let S={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(S.layout=S.layout||{},S.layout.visibility=this.visibility),M(S,(D,j)=>!(D===void 0||j==="layout"&&!Object.keys(D).length||j==="paint"&&!Object.keys(D).length))}_validate(S,D,j,te,ue={}){return(!ue||ue.validate!==!1)&&Ti(this,S.call(fi,{key:D,layerType:this.type,objectKey:j,value:te,styleSpec:ce,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(let S in this.paint._values){let D=this.paint.get(S);if(D instanceof Du&&Cu(D.property.specification)&&(D.value.kind==="source"||D.value.kind==="composite")&&D.value.isStateDependent)return!0}return!1}}let Q={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class ee{constructor(S,D){this._structArray=S,this._pos1=D*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class se{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(S,D){return S._trim(),D&&(S.isTransferred=!0,D.push(S.arrayBuffer)),{length:S.length,arrayBuffer:S.arrayBuffer}}static deserialize(S){let D=Object.create(this.prototype);return D.arrayBuffer=S.arrayBuffer,D.length=S.length,D.capacity=S.arrayBuffer.byteLength/D.bytesPerElement,D._refreshViews(),D}_trim(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())}clear(){this.length=0}resize(S){this.reserve(S),this.length=S}reserve(S){if(S>this.capacity){this.capacity=Math.max(S,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);let D=this.uint8;this._refreshViews(),D&&this.uint8.set(D)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function qe(R,S=1){let D=0,j=0;return{members:R.map(te=>{let ue=Q[te.type].BYTES_PER_ELEMENT,ve=D=je(D,Math.max(S,ue)),De=te.components||1;return j=Math.max(j,ue),D+=ue*De,{name:te.name,type:te.type,components:De,offset:ve}}),size:je(D,Math.max(j,S)),alignment:S}}function je(R,S){return Math.ceil(R/S)*S}class it extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(S,D){let j=this.length;return this.resize(j+1),this.emplace(j,S,D)}emplace(S,D,j){let te=2*S;return this.int16[te+0]=D,this.int16[te+1]=j,S}}it.prototype.bytesPerElement=4,mi("StructArrayLayout2i4",it);class yt extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(S,D,j){let te=this.length;return this.resize(te+1),this.emplace(te,S,D,j)}emplace(S,D,j,te){let ue=3*S;return this.int16[ue+0]=D,this.int16[ue+1]=j,this.int16[ue+2]=te,S}}yt.prototype.bytesPerElement=6,mi("StructArrayLayout3i6",yt);class Ot extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(S,D,j,te){let ue=this.length;return this.resize(ue+1),this.emplace(ue,S,D,j,te)}emplace(S,D,j,te,ue){let ve=4*S;return this.int16[ve+0]=D,this.int16[ve+1]=j,this.int16[ve+2]=te,this.int16[ve+3]=ue,S}}Ot.prototype.bytesPerElement=8,mi("StructArrayLayout4i8",Ot);class Nt extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(S,D,j,te,ue,ve){let De=this.length;return this.resize(De+1),this.emplace(De,S,D,j,te,ue,ve)}emplace(S,D,j,te,ue,ve,De){let Ze=6*S;return this.int16[Ze+0]=D,this.int16[Ze+1]=j,this.int16[Ze+2]=te,this.int16[Ze+3]=ue,this.int16[Ze+4]=ve,this.int16[Ze+5]=De,S}}Nt.prototype.bytesPerElement=12,mi("StructArrayLayout2i4i12",Nt);class hr extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(S,D,j,te,ue,ve){let De=this.length;return this.resize(De+1),this.emplace(De,S,D,j,te,ue,ve)}emplace(S,D,j,te,ue,ve,De){let Ze=4*S,at=8*S;return this.int16[Ze+0]=D,this.int16[Ze+1]=j,this.uint8[at+4]=te,this.uint8[at+5]=ue,this.uint8[at+6]=ve,this.uint8[at+7]=De,S}}hr.prototype.bytesPerElement=8,mi("StructArrayLayout2i4ub8",hr);class Sr extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(S,D){let j=this.length;return this.resize(j+1),this.emplace(j,S,D)}emplace(S,D,j){let te=2*S;return this.float32[te+0]=D,this.float32[te+1]=j,S}}Sr.prototype.bytesPerElement=8,mi("StructArrayLayout2f8",Sr);class he extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(S,D,j,te,ue,ve,De,Ze,at,Tt){let Ft=this.length;return this.resize(Ft+1),this.emplace(Ft,S,D,j,te,ue,ve,De,Ze,at,Tt)}emplace(S,D,j,te,ue,ve,De,Ze,at,Tt,Ft){let Qt=10*S;return this.uint16[Qt+0]=D,this.uint16[Qt+1]=j,this.uint16[Qt+2]=te,this.uint16[Qt+3]=ue,this.uint16[Qt+4]=ve,this.uint16[Qt+5]=De,this.uint16[Qt+6]=Ze,this.uint16[Qt+7]=at,this.uint16[Qt+8]=Tt,this.uint16[Qt+9]=Ft,S}}he.prototype.bytesPerElement=20,mi("StructArrayLayout10ui20",he);class be extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(S,D,j,te,ue,ve,De,Ze,at,Tt,Ft,Qt){let sr=this.length;return this.resize(sr+1),this.emplace(sr,S,D,j,te,ue,ve,De,Ze,at,Tt,Ft,Qt)}emplace(S,D,j,te,ue,ve,De,Ze,at,Tt,Ft,Qt,sr){let Tr=12*S;return this.int16[Tr+0]=D,this.int16[Tr+1]=j,this.int16[Tr+2]=te,this.int16[Tr+3]=ue,this.uint16[Tr+4]=ve,this.uint16[Tr+5]=De,this.uint16[Tr+6]=Ze,this.uint16[Tr+7]=at,this.int16[Tr+8]=Tt,this.int16[Tr+9]=Ft,this.int16[Tr+10]=Qt,this.int16[Tr+11]=sr,S}}be.prototype.bytesPerElement=24,mi("StructArrayLayout4i4ui4i24",be);class Pe extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(S,D,j){let te=this.length;return this.resize(te+1),this.emplace(te,S,D,j)}emplace(S,D,j,te){let ue=3*S;return this.float32[ue+0]=D,this.float32[ue+1]=j,this.float32[ue+2]=te,S}}Pe.prototype.bytesPerElement=12,mi("StructArrayLayout3f12",Pe);class Oe extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(S){let D=this.length;return this.resize(D+1),this.emplace(D,S)}emplace(S,D){return this.uint32[1*S+0]=D,S}}Oe.prototype.bytesPerElement=4,mi("StructArrayLayout1ul4",Oe);class Je extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(S,D,j,te,ue,ve,De,Ze,at){let Tt=this.length;return this.resize(Tt+1),this.emplace(Tt,S,D,j,te,ue,ve,De,Ze,at)}emplace(S,D,j,te,ue,ve,De,Ze,at,Tt){let Ft=10*S,Qt=5*S;return this.int16[Ft+0]=D,this.int16[Ft+1]=j,this.int16[Ft+2]=te,this.int16[Ft+3]=ue,this.int16[Ft+4]=ve,this.int16[Ft+5]=De,this.uint32[Qt+3]=Ze,this.uint16[Ft+8]=at,this.uint16[Ft+9]=Tt,S}}Je.prototype.bytesPerElement=20,mi("StructArrayLayout6i1ul2ui20",Je);class He extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(S,D,j,te,ue,ve){let De=this.length;return this.resize(De+1),this.emplace(De,S,D,j,te,ue,ve)}emplace(S,D,j,te,ue,ve,De){let Ze=6*S;return this.int16[Ze+0]=D,this.int16[Ze+1]=j,this.int16[Ze+2]=te,this.int16[Ze+3]=ue,this.int16[Ze+4]=ve,this.int16[Ze+5]=De,S}}He.prototype.bytesPerElement=12,mi("StructArrayLayout2i2i2i12",He);class et extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(S,D,j,te,ue){let ve=this.length;return this.resize(ve+1),this.emplace(ve,S,D,j,te,ue)}emplace(S,D,j,te,ue,ve){let De=4*S,Ze=8*S;return this.float32[De+0]=D,this.float32[De+1]=j,this.float32[De+2]=te,this.int16[Ze+6]=ue,this.int16[Ze+7]=ve,S}}et.prototype.bytesPerElement=16,mi("StructArrayLayout2f1f2i16",et);class Mt extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(S,D,j,te,ue,ve){let De=this.length;return this.resize(De+1),this.emplace(De,S,D,j,te,ue,ve)}emplace(S,D,j,te,ue,ve,De){let Ze=16*S,at=4*S,Tt=8*S;return this.uint8[Ze+0]=D,this.uint8[Ze+1]=j,this.float32[at+1]=te,this.float32[at+2]=ue,this.int16[Tt+6]=ve,this.int16[Tt+7]=De,S}}Mt.prototype.bytesPerElement=16,mi("StructArrayLayout2ub2f2i16",Mt);class Dt extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(S,D,j){let te=this.length;return this.resize(te+1),this.emplace(te,S,D,j)}emplace(S,D,j,te){let ue=3*S;return this.uint16[ue+0]=D,this.uint16[ue+1]=j,this.uint16[ue+2]=te,S}}Dt.prototype.bytesPerElement=6,mi("StructArrayLayout3ui6",Dt);class Ut extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(S,D,j,te,ue,ve,De,Ze,at,Tt,Ft,Qt,sr,Tr,Pr,$r,ni){let Di=this.length;return this.resize(Di+1),this.emplace(Di,S,D,j,te,ue,ve,De,Ze,at,Tt,Ft,Qt,sr,Tr,Pr,$r,ni)}emplace(S,D,j,te,ue,ve,De,Ze,at,Tt,Ft,Qt,sr,Tr,Pr,$r,ni,Di){let pi=24*S,ki=12*S,Zi=48*S;return this.int16[pi+0]=D,this.int16[pi+1]=j,this.uint16[pi+2]=te,this.uint16[pi+3]=ue,this.uint32[ki+2]=ve,this.uint32[ki+3]=De,this.uint32[ki+4]=Ze,this.uint16[pi+10]=at,this.uint16[pi+11]=Tt,this.uint16[pi+12]=Ft,this.float32[ki+7]=Qt,this.float32[ki+8]=sr,this.uint8[Zi+36]=Tr,this.uint8[Zi+37]=Pr,this.uint8[Zi+38]=$r,this.uint32[ki+10]=ni,this.int16[pi+22]=Di,S}}Ut.prototype.bytesPerElement=48,mi("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",Ut);class tr extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(S,D,j,te,ue,ve,De,Ze,at,Tt,Ft,Qt,sr,Tr,Pr,$r,ni,Di,pi,ki,Zi,ta,Va,Io,La,Hn,lo,$a){let Xa=this.length;return this.resize(Xa+1),this.emplace(Xa,S,D,j,te,ue,ve,De,Ze,at,Tt,Ft,Qt,sr,Tr,Pr,$r,ni,Di,pi,ki,Zi,ta,Va,Io,La,Hn,lo,$a)}emplace(S,D,j,te,ue,ve,De,Ze,at,Tt,Ft,Qt,sr,Tr,Pr,$r,ni,Di,pi,ki,Zi,ta,Va,Io,La,Hn,lo,$a,Xa){let Tn=32*S,bo=16*S;return this.int16[Tn+0]=D,this.int16[Tn+1]=j,this.int16[Tn+2]=te,this.int16[Tn+3]=ue,this.int16[Tn+4]=ve,this.int16[Tn+5]=De,this.int16[Tn+6]=Ze,this.int16[Tn+7]=at,this.uint16[Tn+8]=Tt,this.uint16[Tn+9]=Ft,this.uint16[Tn+10]=Qt,this.uint16[Tn+11]=sr,this.uint16[Tn+12]=Tr,this.uint16[Tn+13]=Pr,this.uint16[Tn+14]=$r,this.uint16[Tn+15]=ni,this.uint16[Tn+16]=Di,this.uint16[Tn+17]=pi,this.uint16[Tn+18]=ki,this.uint16[Tn+19]=Zi,this.uint16[Tn+20]=ta,this.uint16[Tn+21]=Va,this.uint16[Tn+22]=Io,this.uint32[bo+12]=La,this.float32[bo+13]=Hn,this.float32[bo+14]=lo,this.uint16[Tn+30]=$a,this.uint16[Tn+31]=Xa,S}}tr.prototype.bytesPerElement=64,mi("StructArrayLayout8i15ui1ul2f2ui64",tr);class mr extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(S){let D=this.length;return this.resize(D+1),this.emplace(D,S)}emplace(S,D){return this.float32[1*S+0]=D,S}}mr.prototype.bytesPerElement=4,mi("StructArrayLayout1f4",mr);class Rr extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(S,D,j){let te=this.length;return this.resize(te+1),this.emplace(te,S,D,j)}emplace(S,D,j,te){let ue=3*S;return this.uint16[6*S+0]=D,this.float32[ue+1]=j,this.float32[ue+2]=te,S}}Rr.prototype.bytesPerElement=12,mi("StructArrayLayout1ui2f12",Rr);class zr extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(S,D,j){let te=this.length;return this.resize(te+1),this.emplace(te,S,D,j)}emplace(S,D,j,te){let ue=4*S;return this.uint32[2*S+0]=D,this.uint16[ue+2]=j,this.uint16[ue+3]=te,S}}zr.prototype.bytesPerElement=8,mi("StructArrayLayout1ul2ui8",zr);class Xr extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(S,D){let j=this.length;return this.resize(j+1),this.emplace(j,S,D)}emplace(S,D,j){let te=2*S;return this.uint16[te+0]=D,this.uint16[te+1]=j,S}}Xr.prototype.bytesPerElement=4,mi("StructArrayLayout2ui4",Xr);class di extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(S){let D=this.length;return this.resize(D+1),this.emplace(D,S)}emplace(S,D){return this.uint16[1*S+0]=D,S}}di.prototype.bytesPerElement=2,mi("StructArrayLayout1ui2",di);class Li extends se{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(S,D,j,te){let ue=this.length;return this.resize(ue+1),this.emplace(ue,S,D,j,te)}emplace(S,D,j,te,ue){let ve=4*S;return this.float32[ve+0]=D,this.float32[ve+1]=j,this.float32[ve+2]=te,this.float32[ve+3]=ue,S}}Li.prototype.bytesPerElement=16,mi("StructArrayLayout4f16",Li);class Ci extends ee{get anchorPointX(){return this._structArray.int16[this._pos2+0]}get anchorPointY(){return this._structArray.int16[this._pos2+1]}get x1(){return this._structArray.int16[this._pos2+2]}get y1(){return this._structArray.int16[this._pos2+3]}get x2(){return this._structArray.int16[this._pos2+4]}get y2(){return this._structArray.int16[this._pos2+5]}get featureIndex(){return this._structArray.uint32[this._pos4+3]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+8]}get bucketIndex(){return this._structArray.uint16[this._pos2+9]}get anchorPoint(){return new u(this.anchorPointX,this.anchorPointY)}}Ci.prototype.size=20;class Qi extends Je{get(S){return new Ci(this,S)}}mi("CollisionBoxArray",Qi);class Mn extends ee{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get glyphStartIndex(){return this._structArray.uint16[this._pos2+2]}get numGlyphs(){return this._structArray.uint16[this._pos2+3]}get vertexStartIndex(){return this._structArray.uint32[this._pos4+2]}get lineStartIndex(){return this._structArray.uint32[this._pos4+3]}get lineLength(){return this._structArray.uint32[this._pos4+4]}get segment(){return this._structArray.uint16[this._pos2+10]}get lowerSize(){return this._structArray.uint16[this._pos2+11]}get upperSize(){return this._structArray.uint16[this._pos2+12]}get lineOffsetX(){return this._structArray.float32[this._pos4+7]}get lineOffsetY(){return this._structArray.float32[this._pos4+8]}get writingMode(){return this._structArray.uint8[this._pos1+36]}get placedOrientation(){return this._structArray.uint8[this._pos1+37]}set placedOrientation(S){this._structArray.uint8[this._pos1+37]=S}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(S){this._structArray.uint8[this._pos1+38]=S}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(S){this._structArray.uint32[this._pos4+10]=S}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}Mn.prototype.size=48;class pa extends Ut{get(S){return new Mn(this,S)}}mi("PlacedSymbolArray",pa);class ea extends ee{get anchorX(){return this._structArray.int16[this._pos2+0]}get anchorY(){return this._structArray.int16[this._pos2+1]}get rightJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+2]}get centerJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+3]}get leftJustifiedTextSymbolIndex(){return this._structArray.int16[this._pos2+4]}get verticalPlacedTextSymbolIndex(){return this._structArray.int16[this._pos2+5]}get placedIconSymbolIndex(){return this._structArray.int16[this._pos2+6]}get verticalPlacedIconSymbolIndex(){return this._structArray.int16[this._pos2+7]}get key(){return this._structArray.uint16[this._pos2+8]}get textBoxStartIndex(){return this._structArray.uint16[this._pos2+9]}get textBoxEndIndex(){return this._structArray.uint16[this._pos2+10]}get verticalTextBoxStartIndex(){return this._structArray.uint16[this._pos2+11]}get verticalTextBoxEndIndex(){return this._structArray.uint16[this._pos2+12]}get iconBoxStartIndex(){return this._structArray.uint16[this._pos2+13]}get iconBoxEndIndex(){return this._structArray.uint16[this._pos2+14]}get verticalIconBoxStartIndex(){return this._structArray.uint16[this._pos2+15]}get verticalIconBoxEndIndex(){return this._structArray.uint16[this._pos2+16]}get featureIndex(){return this._structArray.uint16[this._pos2+17]}get numHorizontalGlyphVertices(){return this._structArray.uint16[this._pos2+18]}get numVerticalGlyphVertices(){return this._structArray.uint16[this._pos2+19]}get numIconVertices(){return this._structArray.uint16[this._pos2+20]}get numVerticalIconVertices(){return this._structArray.uint16[this._pos2+21]}get useRuntimeCollisionCircles(){return this._structArray.uint16[this._pos2+22]}get crossTileID(){return this._structArray.uint32[this._pos4+12]}set crossTileID(S){this._structArray.uint32[this._pos4+12]=S}get textBoxScale(){return this._structArray.float32[this._pos4+13]}get collisionCircleDiameter(){return this._structArray.float32[this._pos4+14]}get textAnchorOffsetStartIndex(){return this._structArray.uint16[this._pos2+30]}get textAnchorOffsetEndIndex(){return this._structArray.uint16[this._pos2+31]}}ea.prototype.size=64;class Ga extends tr{get(S){return new ea(this,S)}}mi("SymbolInstanceArray",Ga);class To extends mr{getoffsetX(S){return this.float32[1*S+0]}}mi("GlyphOffsetArray",To);class Wa extends yt{getx(S){return this.int16[3*S+0]}gety(S){return this.int16[3*S+1]}gettileUnitDistanceFromAnchor(S){return this.int16[3*S+2]}}mi("SymbolLineVertexArray",Wa);class co extends ee{get textAnchor(){return this._structArray.uint16[this._pos2+0]}get textOffset0(){return this._structArray.float32[this._pos4+1]}get textOffset1(){return this._structArray.float32[this._pos4+2]}}co.prototype.size=12;class Ro extends Rr{get(S){return new co(this,S)}}mi("TextAnchorOffsetArray",Ro);class Ds extends ee{get featureIndex(){return this._structArray.uint32[this._pos4+0]}get sourceLayerIndex(){return this._structArray.uint16[this._pos2+2]}get bucketIndex(){return this._structArray.uint16[this._pos2+3]}}Ds.prototype.size=8;class As extends zr{get(S){return new Ds(this,S)}}mi("FeatureIndexArray",As);class yo extends it{}class po extends it{}class _l extends it{}class Vl extends Nt{}class Zu extends hr{}class cu extends Sr{}class el extends he{}class nu extends be{}class zc extends Pe{}class Dl extends Oe{}class zl extends He{}class Z extends Mt{}class oe extends Dt{}class we extends Xr{}let Be=qe([{name:"a_pos",components:2,type:"Int16"}],4),{members:Ue}=Be;class We{constructor(S=[]){this.segments=S}prepareSegment(S,D,j,te){let ue=this.segments[this.segments.length-1];return S>We.MAX_VERTEX_ARRAY_LENGTH&&T(`Max vertices per segment is ${We.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${S}`),(!ue||ue.vertexLength+S>We.MAX_VERTEX_ARRAY_LENGTH||ue.sortKey!==te)&&(ue={vertexOffset:D.length,primitiveOffset:j.length,vertexLength:0,primitiveLength:0},te!==void 0&&(ue.sortKey=te),this.segments.push(ue)),ue}get(){return this.segments}destroy(){for(let S of this.segments)for(let D in S.vaos)S.vaos[D].destroy()}static simpleSegment(S,D,j,te){return new We([{vertexOffset:S,primitiveOffset:D,vertexLength:j,primitiveLength:te,vaos:{},sortKey:0}])}}function wt(R,S){return 256*(R=k(Math.floor(R),0,255))+k(Math.floor(S),0,255)}We.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,mi("SegmentVector",We);let tt=qe([{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"}]);var zt={exports:{}},or={exports:{}};or.exports=function(R,S){var D,j,te,ue,ve,De,Ze,at;for(j=R.length-(D=3&R.length),te=S,ve=3432918353,De=461845907,at=0;at>>16)*ve&65535)<<16)&4294967295)<<15|Ze>>>17))*De+(((Ze>>>16)*De&65535)<<16)&4294967295)<<13|te>>>19))+((5*(te>>>16)&65535)<<16)&4294967295))+((58964+(ue>>>16)&65535)<<16);switch(Ze=0,D){case 3:Ze^=(255&R.charCodeAt(at+2))<<16;case 2:Ze^=(255&R.charCodeAt(at+1))<<8;case 1:te^=Ze=(65535&(Ze=(Ze=(65535&(Ze^=255&R.charCodeAt(at)))*ve+(((Ze>>>16)*ve&65535)<<16)&4294967295)<<15|Ze>>>17))*De+(((Ze>>>16)*De&65535)<<16)&4294967295}return te^=R.length,te=2246822507*(65535&(te^=te>>>16))+((2246822507*(te>>>16)&65535)<<16)&4294967295,te=3266489909*(65535&(te^=te>>>13))+((3266489909*(te>>>16)&65535)<<16)&4294967295,(te^=te>>>16)>>>0};var lr=or.exports,Dr={exports:{}};Dr.exports=function(R,S){for(var D,j=R.length,te=S^j,ue=0;j>=4;)D=1540483477*(65535&(D=255&R.charCodeAt(ue)|(255&R.charCodeAt(++ue))<<8|(255&R.charCodeAt(++ue))<<16|(255&R.charCodeAt(++ue))<<24))+((1540483477*(D>>>16)&65535)<<16),te=1540483477*(65535&te)+((1540483477*(te>>>16)&65535)<<16)^(D=1540483477*(65535&(D^=D>>>24))+((1540483477*(D>>>16)&65535)<<16)),j-=4,++ue;switch(j){case 3:te^=(255&R.charCodeAt(ue+2))<<16;case 2:te^=(255&R.charCodeAt(ue+1))<<8;case 1:te=1540483477*(65535&(te^=255&R.charCodeAt(ue)))+((1540483477*(te>>>16)&65535)<<16)}return te=1540483477*(65535&(te^=te>>>13))+((1540483477*(te>>>16)&65535)<<16),(te^=te>>>15)>>>0};var Ir=lr,oi=Dr.exports;zt.exports=Ir,zt.exports.murmur3=Ir,zt.exports.murmur2=oi;var ui=o(zt.exports);class qr{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(S,D,j,te){this.ids.push(Kr(S)),this.positions.push(D,j,te)}getPositions(S){if(!this.indexed)throw new Error("Trying to get index, but feature positions are not indexed");let D=Kr(S),j=0,te=this.ids.length-1;for(;j>1;this.ids[ve]>=D?te=ve:j=ve+1}let ue=[];for(;this.ids[j]===D;)ue.push({index:this.positions[3*j],start:this.positions[3*j+1],end:this.positions[3*j+2]}),j++;return ue}static serialize(S,D){let j=new Float64Array(S.ids),te=new Uint32Array(S.positions);return ii(j,te,0,j.length-1),D&&D.push(j.buffer,te.buffer),{ids:j,positions:te}}static deserialize(S){let D=new qr;return D.ids=S.ids,D.positions=S.positions,D.indexed=!0,D}}function Kr(R){let S=+R;return!isNaN(S)&&S<=Number.MAX_SAFE_INTEGER?S:ui(String(R))}function ii(R,S,D,j){for(;D>1],ue=D-1,ve=j+1;for(;;){do ue++;while(R[ue]te);if(ue>=ve)break;vi(R,ue,ve),vi(S,3*ue,3*ve),vi(S,3*ue+1,3*ve+1),vi(S,3*ue+2,3*ve+2)}ve-D`u_${te}`),this.type=j}setUniform(S,D,j){S.set(j.constantOr(this.value))}getBinding(S,D,j){return this.type==="color"?new dn(S,D):new Jr(S,D)}}class ya{constructor(S,D){this.uniformNames=D.map(j=>`u_${j}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(S,D){this.pixelRatioFrom=D.pixelRatio,this.pixelRatioTo=S.pixelRatio,this.patternFrom=D.tlbr,this.patternTo=S.tlbr}setUniform(S,D,j,te){let ue=te==="u_pattern_to"?this.patternTo:te==="u_pattern_from"?this.patternFrom:te==="u_pixel_ratio_to"?this.pixelRatioTo:te==="u_pixel_ratio_from"?this.pixelRatioFrom:null;ue&&S.set(ue)}getBinding(S,D,j){return j.substr(0,9)==="u_pattern"?new un(S,D):new Jr(S,D)}}class so{constructor(S,D,j,te){this.expression=S,this.type=j,this.maxValue=0,this.paintVertexAttributes=D.map(ue=>({name:`a_${ue}`,type:"Float32",components:j==="color"?2:1,offset:0})),this.paintVertexArray=new te}populatePaintArray(S,D,j,te,ue){let ve=this.paintVertexArray.length,De=this.expression.evaluate(new Ko(0),D,{},te,[],ue);this.paintVertexArray.resize(S),this._setPaintValue(ve,S,De)}updatePaintArray(S,D,j,te){let ue=this.expression.evaluate({zoom:0},j,te);this._setPaintValue(S,D,ue)}_setPaintValue(S,D,j){if(this.type==="color"){let te=Nn(j);for(let ue=S;ue`u_${De}_t`),this.type=j,this.useIntegerZoom=te,this.zoom=ue,this.maxValue=0,this.paintVertexAttributes=D.map(De=>({name:`a_${De}`,type:"Float32",components:j==="color"?4:2,offset:0})),this.paintVertexArray=new ve}populatePaintArray(S,D,j,te,ue){let ve=this.expression.evaluate(new Ko(this.zoom),D,{},te,[],ue),De=this.expression.evaluate(new Ko(this.zoom+1),D,{},te,[],ue),Ze=this.paintVertexArray.length;this.paintVertexArray.resize(S),this._setPaintValue(Ze,S,ve,De)}updatePaintArray(S,D,j,te){let ue=this.expression.evaluate({zoom:this.zoom},j,te),ve=this.expression.evaluate({zoom:this.zoom+1},j,te);this._setPaintValue(S,D,ue,ve)}_setPaintValue(S,D,j,te){if(this.type==="color"){let ue=Nn(j),ve=Nn(te);for(let De=S;De`#define HAS_UNIFORM_${te}`))}return S}getBinderAttributes(){let S=[];for(let D in this.binders){let j=this.binders[D];if(j instanceof so||j instanceof wa)for(let te=0;te!0){this.programConfigurations={};for(let te of S)this.programConfigurations[te.id]=new Ss(te,D,j);this.needsUpload=!1,this._featureMap=new qr,this._bufferOffset=0}populatePaintArrays(S,D,j,te,ue,ve){for(let De in this.programConfigurations)this.programConfigurations[De].populatePaintArrays(S,D,te,ue,ve);D.id!==void 0&&this._featureMap.add(D.id,j,this._bufferOffset,S),this._bufferOffset=S,this.needsUpload=!0}updatePaintArrays(S,D,j,te){for(let ue of j)this.needsUpload=this.programConfigurations[ue.id].updatePaintArrays(S,this._featureMap,D,ue,te)||this.needsUpload}get(S){return this.programConfigurations[S]}upload(S){if(this.needsUpload){for(let D in this.programConfigurations)this.programConfigurations[D].upload(S);this.needsUpload=!1}}destroy(){for(let S in this.programConfigurations)this.programConfigurations[S].destroy()}}function Ns(R,S){return{"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"]}[R]||[R.replace(`${S}-`,"").replace(/-/g,"_")]}function pn(R,S,D){let j={color:{source:Sr,composite:Li},number:{source:mr,composite:Sr}},te=function(ue){return{"line-pattern":{source:el,composite:el},"fill-pattern":{source:el,composite:el},"fill-extrusion-pattern":{source:el,composite:el}}[ue]}(R);return te&&te[D]||j[S][D]}mi("ConstantBinder",ga),mi("CrossFadedConstantBinder",ya),mi("SourceExpressionBinder",so),mi("CrossFadedCompositeBinder",io),mi("CompositeExpressionBinder",wa),mi("ProgramConfiguration",Ss,{omit:["_buffers"]}),mi("ProgramConfigurationSet",_s);let za=8192,Lo=Math.pow(2,14)-1,Fo=-Lo-1;function js(R){let S=za/R.extent,D=R.loadGeometry();for(let j=0;jve.x+1||Zeve.y+1)&&T("Geometry exceeds allowed extent, reduce your vector tile buffer size")}}return D}function xl(R,S){return{type:R.type,id:R.id,properties:R.properties,geometry:S?js(R):[]}}function fu(R,S,D,j,te){R.emplaceBack(2*S+(j+1)/2,2*D+(te+1)/2)}class dl{constructor(S){this.zoom=S.zoom,this.overscaling=S.overscaling,this.layers=S.layers,this.layerIds=this.layers.map(D=>D.id),this.index=S.index,this.hasPattern=!1,this.layoutVertexArray=new po,this.indexArray=new oe,this.segments=new We,this.programConfigurations=new _s(S.layers,S.zoom),this.stateDependentLayerIds=this.layers.filter(D=>D.isStateDependent()).map(D=>D.id)}populate(S,D,j){let te=this.layers[0],ue=[],ve=null,De=!1;te.type==="circle"&&(ve=te.layout.get("circle-sort-key"),De=!ve.isConstant());for(let{feature:Ze,id:at,index:Tt,sourceLayerIndex:Ft}of S){let Qt=this.layers[0]._featureFilter.needGeometry,sr=xl(Ze,Qt);if(!this.layers[0]._featureFilter.filter(new Ko(this.zoom),sr,j))continue;let Tr=De?ve.evaluate(sr,{},j):void 0,Pr={id:at,properties:Ze.properties,type:Ze.type,sourceLayerIndex:Ft,index:Tt,geometry:Qt?sr.geometry:js(Ze),patterns:{},sortKey:Tr};ue.push(Pr)}De&&ue.sort((Ze,at)=>Ze.sortKey-at.sortKey);for(let Ze of ue){let{geometry:at,index:Tt,sourceLayerIndex:Ft}=Ze,Qt=S[Tt].feature;this.addFeature(Ze,at,Tt,j),D.featureIndex.insert(Qt,at,Tt,Ft,this.index)}}update(S,D,j){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(S,D,this.stateDependentLayers,j)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(S){this.uploaded||(this.layoutVertexBuffer=S.createVertexBuffer(this.layoutVertexArray,Ue),this.indexBuffer=S.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(S),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(S,D,j,te){for(let ue of D)for(let ve of ue){let De=ve.x,Ze=ve.y;if(De<0||De>=za||Ze<0||Ze>=za)continue;let at=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,S.sortKey),Tt=at.vertexLength;fu(this.layoutVertexArray,De,Ze,-1,-1),fu(this.layoutVertexArray,De,Ze,1,-1),fu(this.layoutVertexArray,De,Ze,1,1),fu(this.layoutVertexArray,De,Ze,-1,1),this.indexArray.emplaceBack(Tt,Tt+1,Tt+2),this.indexArray.emplaceBack(Tt,Tt+3,Tt+2),at.vertexLength+=4,at.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,S,j,{},te)}}function xc(R,S){for(let D=0;D1){if(wi(R,S))return!0;for(let j=0;j1?D:D.sub(S)._mult(te)._add(S))}function cn(R,S){let D,j,te,ue=!1;for(let ve=0;veS.y!=te.y>S.y&&S.x<(te.x-j.x)*(S.y-j.y)/(te.y-j.y)+j.x&&(ue=!ue)}return ue}function On(R,S){let D=!1;for(let j=0,te=R.length-1;jS.y!=ve.y>S.y&&S.x<(ve.x-ue.x)*(S.y-ue.y)/(ve.y-ue.y)+ue.x&&(D=!D)}return D}function Bn(R,S,D){let j=D[0],te=D[2];if(R.xte.x&&S.x>te.x||R.yte.y&&S.y>te.y)return!1;let ue=F(R,S,D[0]);return ue!==F(R,S,D[1])||ue!==F(R,S,D[2])||ue!==F(R,S,D[3])}function yn(R,S,D){let j=S.paint.get(R).value;return j.kind==="constant"?j.value:D.programConfigurations.get(S.id).getMaxValue(R)}function to(R){return Math.sqrt(R[0]*R[0]+R[1]*R[1])}function Rn(R,S,D,j,te){if(!S[0]&&!S[1])return R;let ue=u.convert(S)._mult(te);D==="viewport"&&ue._rotate(-j);let ve=[];for(let De=0;Devn($r,Pr))}(at,Ze),sr=Ft?Tt*De:Tt;for(let Tr of te)for(let Pr of Tr){let $r=Ft?Pr:vn(Pr,Ze),ni=sr,Di=Za([],[Pr.x,Pr.y,0,1],Ze);if(this.paint.get("circle-pitch-scale")==="viewport"&&this.paint.get("circle-pitch-alignment")==="map"?ni*=Di[3]/ve.cameraToCenterDistance:this.paint.get("circle-pitch-scale")==="map"&&this.paint.get("circle-pitch-alignment")==="viewport"&&(ni*=ve.cameraToCenterDistance/Di[3]),At(Qt,$r,ni))return!0}return!1}}function vn(R,S){let D=Za([],[R.x,R.y,0,1],S);return new u(D[0]/D[3],D[1]/D[3])}class Aa extends dl{}let aa;mi("HeatmapBucket",Aa,{omit:["layers"]});var Xn={get paint(){return aa=aa||new le({"heatmap-radius":new eo(ce.paint_heatmap["heatmap-radius"]),"heatmap-weight":new eo(ce.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new Da(ce.paint_heatmap["heatmap-intensity"]),"heatmap-color":new _c(ce.paint_heatmap["heatmap-color"]),"heatmap-opacity":new Da(ce.paint_heatmap["heatmap-opacity"])})}};function Vn(R,{width:S,height:D},j,te){if(te){if(te instanceof Uint8ClampedArray)te=new Uint8Array(te.buffer);else if(te.length!==S*D*j)throw new RangeError(`mismatched image size. expected: ${te.length} but got: ${S*D*j}`)}else te=new Uint8Array(S*D*j);return R.width=S,R.height=D,R.data=te,R}function ma(R,{width:S,height:D},j){if(S===R.width&&D===R.height)return;let te=Vn({},{width:S,height:D},j);ro(R,te,{x:0,y:0},{x:0,y:0},{width:Math.min(R.width,S),height:Math.min(R.height,D)},j),R.width=S,R.height=D,R.data=te.data}function ro(R,S,D,j,te,ue){if(te.width===0||te.height===0)return S;if(te.width>R.width||te.height>R.height||D.x>R.width-te.width||D.y>R.height-te.height)throw new RangeError("out of range source coordinates for image copy");if(te.width>S.width||te.height>S.height||j.x>S.width-te.width||j.y>S.height-te.height)throw new RangeError("out of range destination coordinates for image copy");let ve=R.data,De=S.data;if(ve===De)throw new Error("srcData equals dstData, so image is already copied");for(let Ze=0;Ze{S[R.evaluationKey]=Ze;let at=R.expression.evaluate(S);te.data[ve+De+0]=Math.floor(255*at.r/at.a),te.data[ve+De+1]=Math.floor(255*at.g/at.a),te.data[ve+De+2]=Math.floor(255*at.b/at.a),te.data[ve+De+3]=Math.floor(255*at.a)};if(R.clips)for(let ve=0,De=0;ve80*D){De=1/0,Ze=1/0;let Tt=-1/0,Ft=-1/0;for(let Qt=D;QtTt&&(Tt=sr),Tr>Ft&&(Ft=Tr)}at=Math.max(Tt-De,Ft-Ze),at=at!==0?32767/at:0}return yf(ue,ve,D,De,Ze,at,0),ve}function bc(R,S,D,j,te){let ue;if(te===function(ve,De,Ze,at){let Tt=0;for(let Ft=De,Qt=Ze-at;Ft0)for(let ve=S;ve=S;ve-=j)ue=Jt(ve/j|0,R[ve],R[ve+1],ue);return ue&&de(ue,ue.next)&&(vt(ue),ue=ue.next),ue}function wc(R,S){if(!R)return R;S||(S=R);let D,j=R;do if(D=!1,j.steiner||!de(j,j.next)&&pe(j.prev,j,j.next)!==0)j=j.next;else{if(vt(j),j=S=j.prev,j===j.next)break;D=!0}while(D||j!==S);return S}function yf(R,S,D,j,te,ue,ve){if(!R)return;!ve&&ue&&function(Ze,at,Tt,Ft){let Qt=Ze;do Qt.z===0&&(Qt.z=z(Qt.x,Qt.y,at,Tt,Ft)),Qt.prevZ=Qt.prev,Qt.nextZ=Qt.next,Qt=Qt.next;while(Qt!==Ze);Qt.prevZ.nextZ=null,Qt.prevZ=null,function(sr){let Tr,Pr=1;do{let $r,ni=sr;sr=null;let Di=null;for(Tr=0;ni;){Tr++;let pi=ni,ki=0;for(let ta=0;ta0||Zi>0&π)ki!==0&&(Zi===0||!pi||ni.z<=pi.z)?($r=ni,ni=ni.nextZ,ki--):($r=pi,pi=pi.nextZ,Zi--),Di?Di.nextZ=$r:sr=$r,$r.prevZ=Di,Di=$r;ni=pi}Di.nextZ=null,Pr*=2}while(Tr>1)}(Qt)}(R,j,te,ue);let De=R;for(;R.prev!==R.next;){let Ze=R.prev,at=R.next;if(ue?Fc(R,j,te,ue):Hl(R))S.push(Ze.i,R.i,at.i),vt(R),R=at.next,De=at.next;else if((R=at)===De){ve?ve===1?yf(R=ef(wc(R),S),S,D,j,te,ue,2):ve===2&&ls(R,S,D,j,te,ue):yf(wc(R),S,D,j,te,ue,1);break}}}function Hl(R){let S=R.prev,D=R,j=R.next;if(pe(S,D,j)>=0)return!1;let te=S.x,ue=D.x,ve=j.x,De=S.y,Ze=D.y,at=j.y,Tt=teue?te>ve?te:ve:ue>ve?ue:ve,sr=De>Ze?De>at?De:at:Ze>at?Ze:at,Tr=j.next;for(;Tr!==S;){if(Tr.x>=Tt&&Tr.x<=Qt&&Tr.y>=Ft&&Tr.y<=sr&&O(te,De,ue,Ze,ve,at,Tr.x,Tr.y)&&pe(Tr.prev,Tr,Tr.next)>=0)return!1;Tr=Tr.next}return!0}function Fc(R,S,D,j){let te=R.prev,ue=R,ve=R.next;if(pe(te,ue,ve)>=0)return!1;let De=te.x,Ze=ue.x,at=ve.x,Tt=te.y,Ft=ue.y,Qt=ve.y,sr=DeZe?De>at?De:at:Ze>at?Ze:at,$r=Tt>Ft?Tt>Qt?Tt:Qt:Ft>Qt?Ft:Qt,ni=z(sr,Tr,S,D,j),Di=z(Pr,$r,S,D,j),pi=R.prevZ,ki=R.nextZ;for(;pi&&pi.z>=ni&&ki&&ki.z<=Di;){if(pi.x>=sr&&pi.x<=Pr&&pi.y>=Tr&&pi.y<=$r&&pi!==te&&pi!==ve&&O(De,Tt,Ze,Ft,at,Qt,pi.x,pi.y)&&pe(pi.prev,pi,pi.next)>=0||(pi=pi.prevZ,ki.x>=sr&&ki.x<=Pr&&ki.y>=Tr&&ki.y<=$r&&ki!==te&&ki!==ve&&O(De,Tt,Ze,Ft,at,Qt,ki.x,ki.y)&&pe(ki.prev,ki,ki.next)>=0))return!1;ki=ki.nextZ}for(;pi&&pi.z>=ni;){if(pi.x>=sr&&pi.x<=Pr&&pi.y>=Tr&&pi.y<=$r&&pi!==te&&pi!==ve&&O(De,Tt,Ze,Ft,at,Qt,pi.x,pi.y)&&pe(pi.prev,pi,pi.next)>=0)return!1;pi=pi.prevZ}for(;ki&&ki.z<=Di;){if(ki.x>=sr&&ki.x<=Pr&&ki.y>=Tr&&ki.y<=$r&&ki!==te&&ki!==ve&&O(De,Tt,Ze,Ft,at,Qt,ki.x,ki.y)&&pe(ki.prev,ki,ki.next)>=0)return!1;ki=ki.nextZ}return!0}function ef(R,S){let D=R;do{let j=D.prev,te=D.next.next;!de(j,te)&&Ie(j,D,D.next,te)&&Kt(j,te)&&Kt(te,j)&&(S.push(j.i,D.i,te.i),vt(D),vt(D.next),D=R=te),D=D.next}while(D!==R);return wc(D)}function ls(R,S,D,j,te,ue){let ve=R;do{let De=ve.next.next;for(;De!==ve.prev;){if(ve.i!==De.i&&$(ve,De)){let Ze=ir(ve,De);return ve=wc(ve,ve.next),Ze=wc(Ze,Ze.next),yf(ve,S,D,j,te,ue,0),void yf(Ze,S,D,j,te,ue,0)}De=De.next}ve=ve.next}while(ve!==R)}function _f(R,S){return R.x-S.x}function ns(R,S){let D=function(te,ue){let ve=ue,De=te.x,Ze=te.y,at,Tt=-1/0;do{if(Ze<=ve.y&&Ze>=ve.next.y&&ve.next.y!==ve.y){let Pr=ve.x+(Ze-ve.y)*(ve.next.x-ve.x)/(ve.next.y-ve.y);if(Pr<=De&&Pr>Tt&&(Tt=Pr,at=ve.x=ve.x&&ve.x>=Qt&&De!==ve.x&&O(Zeat.x||ve.x===at.x&&Y(at,ve)))&&(at=ve,Tr=Pr)}ve=ve.next}while(ve!==Ft);return at}(R,S);if(!D)return S;let j=ir(D,R);return wc(j,j.next),wc(D,D.next)}function Y(R,S){return pe(R.prev,R,S.prev)<0&&pe(S.next,R,R.next)<0}function z(R,S,D,j,te){return(R=1431655765&((R=858993459&((R=252645135&((R=16711935&((R=(R-D)*te|0)|R<<8))|R<<4))|R<<2))|R<<1))|(S=1431655765&((S=858993459&((S=252645135&((S=16711935&((S=(S-j)*te|0)|S<<8))|S<<4))|S<<2))|S<<1))<<1}function K(R){let S=R,D=R;do(S.x=(R-ve)*(ue-De)&&(R-ve)*(j-De)>=(D-ve)*(S-De)&&(D-ve)*(ue-De)>=(te-ve)*(j-De)}function $(R,S){return R.next.i!==S.i&&R.prev.i!==S.i&&!function(D,j){let te=D;do{if(te.i!==D.i&&te.next.i!==D.i&&te.i!==j.i&&te.next.i!==j.i&&Ie(te,te.next,D,j))return!0;te=te.next}while(te!==D);return!1}(R,S)&&(Kt(R,S)&&Kt(S,R)&&function(D,j){let te=D,ue=!1,ve=(D.x+j.x)/2,De=(D.y+j.y)/2;do te.y>De!=te.next.y>De&&te.next.y!==te.y&&ve<(te.next.x-te.x)*(De-te.y)/(te.next.y-te.y)+te.x&&(ue=!ue),te=te.next;while(te!==D);return ue}(R,S)&&(pe(R.prev,R,S.prev)||pe(R,S.prev,S))||de(R,S)&&pe(R.prev,R,R.next)>0&&pe(S.prev,S,S.next)>0)}function pe(R,S,D){return(S.y-R.y)*(D.x-S.x)-(S.x-R.x)*(D.y-S.y)}function de(R,S){return R.x===S.x&&R.y===S.y}function Ie(R,S,D,j){let te=pt(pe(R,S,D)),ue=pt(pe(R,S,j)),ve=pt(pe(D,j,R)),De=pt(pe(D,j,S));return te!==ue&&ve!==De||!(te!==0||!$e(R,D,S))||!(ue!==0||!$e(R,j,S))||!(ve!==0||!$e(D,R,j))||!(De!==0||!$e(D,S,j))}function $e(R,S,D){return S.x<=Math.max(R.x,D.x)&&S.x>=Math.min(R.x,D.x)&&S.y<=Math.max(R.y,D.y)&&S.y>=Math.min(R.y,D.y)}function pt(R){return R>0?1:R<0?-1:0}function Kt(R,S){return pe(R.prev,R,R.next)<0?pe(R,S,R.next)>=0&&pe(R,R.prev,S)>=0:pe(R,S,R.prev)<0||pe(R,R.next,S)<0}function ir(R,S){let D=Pt(R.i,R.x,R.y),j=Pt(S.i,S.x,S.y),te=R.next,ue=S.prev;return R.next=S,S.prev=R,D.next=te,te.prev=D,j.next=D,D.prev=j,ue.next=j,j.prev=ue,j}function Jt(R,S,D,j){let te=Pt(R,S,D);return j?(te.next=j.next,te.prev=j,j.next.prev=te,j.next=te):(te.prev=te,te.next=te),te}function vt(R){R.next.prev=R.prev,R.prev.next=R.next,R.prevZ&&(R.prevZ.nextZ=R.nextZ),R.nextZ&&(R.nextZ.prevZ=R.prevZ)}function Pt(R,S,D){return{i:R,x:S,y:D,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function Wt(R,S,D){let j=D.patternDependencies,te=!1;for(let ue of S){let ve=ue.paint.get(`${R}-pattern`);ve.isConstant()||(te=!0);let De=ve.constantOr(null);De&&(te=!0,j[De.to]=!0,j[De.from]=!0)}return te}function rr(R,S,D,j,te){let ue=te.patternDependencies;for(let ve of S){let De=ve.paint.get(`${R}-pattern`).value;if(De.kind!=="constant"){let Ze=De.evaluate({zoom:j-1},D,{},te.availableImages),at=De.evaluate({zoom:j},D,{},te.availableImages),Tt=De.evaluate({zoom:j+1},D,{},te.availableImages);Ze=Ze&&Ze.name?Ze.name:Ze,at=at&&at.name?at.name:at,Tt=Tt&&Tt.name?Tt.name:Tt,ue[Ze]=!0,ue[at]=!0,ue[Tt]=!0,D.patterns[ve.id]={min:Ze,mid:at,max:Tt}}}return D}class dr{constructor(S){this.zoom=S.zoom,this.overscaling=S.overscaling,this.layers=S.layers,this.layerIds=this.layers.map(D=>D.id),this.index=S.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new _l,this.indexArray=new oe,this.indexArray2=new we,this.programConfigurations=new _s(S.layers,S.zoom),this.segments=new We,this.segments2=new We,this.stateDependentLayerIds=this.layers.filter(D=>D.isStateDependent()).map(D=>D.id)}populate(S,D,j){this.hasPattern=Wt("fill",this.layers,D);let te=this.layers[0].layout.get("fill-sort-key"),ue=!te.isConstant(),ve=[];for(let{feature:De,id:Ze,index:at,sourceLayerIndex:Tt}of S){let Ft=this.layers[0]._featureFilter.needGeometry,Qt=xl(De,Ft);if(!this.layers[0]._featureFilter.filter(new Ko(this.zoom),Qt,j))continue;let sr=ue?te.evaluate(Qt,{},j,D.availableImages):void 0,Tr={id:Ze,properties:De.properties,type:De.type,sourceLayerIndex:Tt,index:at,geometry:Ft?Qt.geometry:js(De),patterns:{},sortKey:sr};ve.push(Tr)}ue&&ve.sort((De,Ze)=>De.sortKey-Ze.sortKey);for(let De of ve){let{geometry:Ze,index:at,sourceLayerIndex:Tt}=De;if(this.hasPattern){let Ft=rr("fill",this.layers,De,this.zoom,D);this.patternFeatures.push(Ft)}else this.addFeature(De,Ze,at,j,{});D.featureIndex.insert(S[at].feature,Ze,at,Tt,this.index)}}update(S,D,j){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(S,D,this.stateDependentLayers,j)}addFeatures(S,D,j){for(let te of this.patternFeatures)this.addFeature(te,te.geometry,te.index,D,j)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(S){this.uploaded||(this.layoutVertexBuffer=S.createVertexBuffer(this.layoutVertexArray,Qc),this.indexBuffer=S.createIndexBuffer(this.indexArray),this.indexBuffer2=S.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(S),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())}addFeature(S,D,j,te,ue){for(let ve of Of(D,500)){let De=0;for(let sr of ve)De+=sr.length;let Ze=this.segments.prepareSegment(De,this.layoutVertexArray,this.indexArray),at=Ze.vertexLength,Tt=[],Ft=[];for(let sr of ve){if(sr.length===0)continue;sr!==ve[0]&&Ft.push(Tt.length/2);let Tr=this.segments2.prepareSegment(sr.length,this.layoutVertexArray,this.indexArray2),Pr=Tr.vertexLength;this.layoutVertexArray.emplaceBack(sr[0].x,sr[0].y),this.indexArray2.emplaceBack(Pr+sr.length-1,Pr),Tt.push(sr[0].x),Tt.push(sr[0].y);for(let $r=1;$r>3}if(te--,j===1||j===2)ue+=R.readSVarint(),ve+=R.readSVarint(),j===1&&(S&&De.push(S),S=[]),S.push(new yi(ue,ve));else{if(j!==7)throw new Error("unknown command "+j);S&&S.push(S[0].clone())}}return S&&De.push(S),De},Ri.prototype.bbox=function(){var R=this._pbf;R.pos=this._geometry;for(var S=R.readVarint()+R.pos,D=1,j=0,te=0,ue=0,ve=1/0,De=-1/0,Ze=1/0,at=-1/0;R.pos>3}if(j--,D===1||D===2)(te+=R.readSVarint())De&&(De=te),(ue+=R.readSVarint())at&&(at=ue);else if(D!==7)throw new Error("unknown command "+D)}return[ve,Ze,De,at]},Ri.prototype.toGeoJSON=function(R,S,D){var j,te,ue=this.extent*Math.pow(2,D),ve=this.extent*R,De=this.extent*S,Ze=this.loadGeometry(),at=Ri.types[this.type];function Tt(sr){for(var Tr=0;Tr>3;te=ve===1?j.readString():ve===2?j.readFloat():ve===3?j.readDouble():ve===4?j.readVarint64():ve===5?j.readVarint():ve===6?j.readSVarint():ve===7?j.readBoolean():null}return te}(D))}bn.prototype.feature=function(R){if(R<0||R>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[R];var S=this._pbf.readVarint()+this._pbf.pos;return new qn(this._pbf,S,this.extent,this._keys,this._values)};var Gn=rn;function da(R,S,D){if(R===3){var j=new Gn(D,D.readVarint()+D.pos);j.length&&(S[j.name]=j)}}ei.VectorTile=function(R,S){this.layers=R.readFields(da,{},S)},ei.VectorTileFeature=tn,ei.VectorTileLayer=rn;let No=ei.VectorTileFeature.types,Do=Math.pow(2,13);function ps(R,S,D,j,te,ue,ve,De){R.emplaceBack(S,D,2*Math.floor(j*Do)+ve,te*Do*2,ue*Do*2,Math.round(De))}class fo{constructor(S){this.zoom=S.zoom,this.overscaling=S.overscaling,this.layers=S.layers,this.layerIds=this.layers.map(D=>D.id),this.index=S.index,this.hasPattern=!1,this.layoutVertexArray=new Vl,this.centroidVertexArray=new yo,this.indexArray=new oe,this.programConfigurations=new _s(S.layers,S.zoom),this.segments=new We,this.stateDependentLayerIds=this.layers.filter(D=>D.isStateDependent()).map(D=>D.id)}populate(S,D,j){this.features=[],this.hasPattern=Wt("fill-extrusion",this.layers,D);for(let{feature:te,id:ue,index:ve,sourceLayerIndex:De}of S){let Ze=this.layers[0]._featureFilter.needGeometry,at=xl(te,Ze);if(!this.layers[0]._featureFilter.filter(new Ko(this.zoom),at,j))continue;let Tt={id:ue,sourceLayerIndex:De,index:ve,geometry:Ze?at.geometry:js(te),properties:te.properties,type:te.type,patterns:{}};this.hasPattern?this.features.push(rr("fill-extrusion",this.layers,Tt,this.zoom,D)):this.addFeature(Tt,Tt.geometry,ve,j,{}),D.featureIndex.insert(te,Tt.geometry,ve,De,this.index,!0)}}addFeatures(S,D,j){for(let te of this.features){let{geometry:ue}=te;this.addFeature(te,ue,te.index,D,j)}}update(S,D,j){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(S,D,this.stateDependentLayers,j)}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(S){this.uploaded||(this.layoutVertexBuffer=S.createVertexBuffer(this.layoutVertexArray,Gr),this.centroidVertexBuffer=S.createVertexBuffer(this.centroidVertexArray,cr.members,!0),this.indexBuffer=S.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(S),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(S,D,j,te,ue){for(let ve of Of(D,500)){let De={x:0,y:0,vertexCount:0},Ze=0;for(let Tr of ve)Ze+=Tr.length;let at=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray);for(let Tr of ve){if(Tr.length===0||tl(Tr))continue;let Pr=0;for(let $r=0;$r=1){let Di=Tr[$r-1];if(!as(ni,Di)){at.vertexLength+4>We.MAX_VERTEX_ARRAY_LENGTH&&(at=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));let pi=ni.sub(Di)._perp()._unit(),ki=Di.dist(ni);Pr+ki>32768&&(Pr=0),ps(this.layoutVertexArray,ni.x,ni.y,pi.x,pi.y,0,0,Pr),ps(this.layoutVertexArray,ni.x,ni.y,pi.x,pi.y,0,1,Pr),De.x+=2*ni.x,De.y+=2*ni.y,De.vertexCount+=2,Pr+=ki,ps(this.layoutVertexArray,Di.x,Di.y,pi.x,pi.y,0,0,Pr),ps(this.layoutVertexArray,Di.x,Di.y,pi.x,pi.y,0,1,Pr),De.x+=2*Di.x,De.y+=2*Di.y,De.vertexCount+=2;let Zi=at.vertexLength;this.indexArray.emplaceBack(Zi,Zi+2,Zi+1),this.indexArray.emplaceBack(Zi+1,Zi+2,Zi+3),at.vertexLength+=4,at.primitiveLength+=2}}}}if(at.vertexLength+Ze>We.MAX_VERTEX_ARRAY_LENGTH&&(at=this.segments.prepareSegment(Ze,this.layoutVertexArray,this.indexArray)),No[S.type]!=="Polygon")continue;let Tt=[],Ft=[],Qt=at.vertexLength;for(let Tr of ve)if(Tr.length!==0){Tr!==ve[0]&&Ft.push(Tt.length/2);for(let Pr=0;Prza)||R.y===S.y&&(R.y<0||R.y>za)}function tl(R){return R.every(S=>S.x<0)||R.every(S=>S.x>za)||R.every(S=>S.y<0)||R.every(S=>S.y>za)}let zu;mi("FillExtrusionBucket",fo,{omit:["layers","features"]});var Mv={get paint(){return zu=zu||new le({"fill-extrusion-opacity":new Da(ce["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new eo(ce["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new Da(ce["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new Da(ce["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new Jc(ce["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new eo(ce["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new eo(ce["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new Da(ce["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})}};class Ev extends B{constructor(S){super(S,Mv)}createBucket(S){return new fo(S)}queryRadius(){return to(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}queryIntersectsFeature(S,D,j,te,ue,ve,De,Ze){let at=Rn(S,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),ve.angle,De),Tt=this.paint.get("fill-extrusion-height").evaluate(D,j),Ft=this.paint.get("fill-extrusion-base").evaluate(D,j),Qt=function(Tr,Pr,$r,ni){let Di=[];for(let pi of Tr){let ki=[pi.x,pi.y,0,1];Za(ki,ki,Pr),Di.push(new u(ki[0]/ki[3],ki[1]/ki[3]))}return Di}(at,Ze),sr=function(Tr,Pr,$r,ni){let Di=[],pi=[],ki=ni[8]*Pr,Zi=ni[9]*Pr,ta=ni[10]*Pr,Va=ni[11]*Pr,Io=ni[8]*$r,La=ni[9]*$r,Hn=ni[10]*$r,lo=ni[11]*$r;for(let $a of Tr){let Xa=[],Tn=[];for(let bo of $a){let Ya=bo.x,Uo=bo.y,wu=ni[0]*Ya+ni[4]*Uo+ni[12],hu=ni[1]*Ya+ni[5]*Uo+ni[13],uh=ni[2]*Ya+ni[6]*Uo+ni[14],$v=ni[3]*Ya+ni[7]*Uo+ni[15],td=uh+ta,ch=$v+Va,Ud=wu+Io,Vd=hu+La,Hd=uh+Hn,rf=$v+lo,fh=new u((wu+ki)/ch,(hu+Zi)/ch);fh.z=td/ch,Xa.push(fh);let Td=new u(Ud/rf,Vd/rf);Td.z=Hd/rf,Tn.push(Td)}Di.push(Xa),pi.push(Tn)}return[Di,pi]}(te,Ft,Tt,Ze);return function(Tr,Pr,$r){let ni=1/0;Er($r,Pr)&&(ni=Yv($r,Pr[0]));for(let Di=0;DiD.id),this.index=S.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(D=>{this.gradients[D.id]={}}),this.layoutVertexArray=new Zu,this.layoutVertexArray2=new cu,this.indexArray=new oe,this.programConfigurations=new _s(S.layers,S.zoom),this.segments=new We,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(D=>D.isStateDependent()).map(D=>D.id)}populate(S,D,j){this.hasPattern=Wt("line",this.layers,D);let te=this.layers[0].layout.get("line-sort-key"),ue=!te.isConstant(),ve=[];for(let{feature:De,id:Ze,index:at,sourceLayerIndex:Tt}of S){let Ft=this.layers[0]._featureFilter.needGeometry,Qt=xl(De,Ft);if(!this.layers[0]._featureFilter.filter(new Ko(this.zoom),Qt,j))continue;let sr=ue?te.evaluate(Qt,{},j):void 0,Tr={id:Ze,properties:De.properties,type:De.type,sourceLayerIndex:Tt,index:at,geometry:Ft?Qt.geometry:js(De),patterns:{},sortKey:sr};ve.push(Tr)}ue&&ve.sort((De,Ze)=>De.sortKey-Ze.sortKey);for(let De of ve){let{geometry:Ze,index:at,sourceLayerIndex:Tt}=De;if(this.hasPattern){let Ft=rr("line",this.layers,De,this.zoom,D);this.patternFeatures.push(Ft)}else this.addFeature(De,Ze,at,j,{});D.featureIndex.insert(S[at].feature,Ze,at,Tt,this.index)}}update(S,D,j){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(S,D,this.stateDependentLayers,j)}addFeatures(S,D,j){for(let te of this.patternFeatures)this.addFeature(te,te.geometry,te.index,D,j)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(S){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=S.createVertexBuffer(this.layoutVertexArray2,pp)),this.layoutVertexBuffer=S.createVertexBuffer(this.layoutVertexArray,vp),this.indexBuffer=S.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(S),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(S){if(S.properties&&Object.prototype.hasOwnProperty.call(S.properties,"mapbox_clip_start")&&Object.prototype.hasOwnProperty.call(S.properties,"mapbox_clip_end"))return{start:+S.properties.mapbox_clip_start,end:+S.properties.mapbox_clip_end}}addFeature(S,D,j,te,ue){let ve=this.layers[0].layout,De=ve.get("line-join").evaluate(S,{}),Ze=ve.get("line-cap"),at=ve.get("line-miter-limit"),Tt=ve.get("line-round-limit");this.lineClips=this.lineFeatureClips(S);for(let Ft of D)this.addLine(Ft,S,De,Ze,at,Tt);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,S,j,ue,te)}addLine(S,D,j,te,ue,ve){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let ni=0;ni=2&&S[Ze-1].equals(S[Ze-2]);)Ze--;let at=0;for(;at0;if(Va&&ni>at){let lo=Qt.dist(sr);if(lo>2*Tt){let $a=Qt.sub(Qt.sub(sr)._mult(Tt/lo)._round());this.updateDistance(sr,$a),this.addCurrentVertex($a,Pr,0,0,Ft),sr=$a}}let La=sr&&Tr,Hn=La?j:De?"butt":te;if(La&&Hn==="round"&&(Ziue&&(Hn="bevel"),Hn==="bevel"&&(Zi>2&&(Hn="flipbevel"),Zi100)Di=$r.mult(-1);else{let lo=Zi*Pr.add($r).mag()/Pr.sub($r).mag();Di._perp()._mult(lo*(Io?-1:1))}this.addCurrentVertex(Qt,Di,0,0,Ft),this.addCurrentVertex(Qt,Di.mult(-1),0,0,Ft)}else if(Hn==="bevel"||Hn==="fakeround"){let lo=-Math.sqrt(Zi*Zi-1),$a=Io?lo:0,Xa=Io?0:lo;if(sr&&this.addCurrentVertex(Qt,Pr,$a,Xa,Ft),Hn==="fakeround"){let Tn=Math.round(180*ta/Math.PI/20);for(let bo=1;bo2*Tt){let $a=Qt.add(Tr.sub(Qt)._mult(Tt/lo)._round());this.updateDistance(Qt,$a),this.addCurrentVertex($a,$r,0,0,Ft),Qt=$a}}}}addCurrentVertex(S,D,j,te,ue,ve=!1){let De=D.y*te-D.x,Ze=-D.y-D.x*te;this.addHalfVertex(S,D.x+D.y*j,D.y-D.x*j,ve,!1,j,ue),this.addHalfVertex(S,De,Ze,ve,!0,-te,ue),this.distance>kv/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(S,D,j,te,ue,ve))}addHalfVertex({x:S,y:D},j,te,ue,ve,De,Ze){let at=.5*(this.lineClips?this.scaledDistance*(kv-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((S<<1)+(ue?1:0),(D<<1)+(ve?1:0),Math.round(63*j)+128,Math.round(63*te)+128,1+(De===0?0:De<0?-1:1)|(63&at)<<2,at>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);let Tt=Ze.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,Tt),Ze.primitiveLength++),ve?this.e2=Tt:this.e1=Tt}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(S,D){this.distance+=S.dist(D),this.updateScaledDistance()}}let Cv,ny;mi("LineBucket",Kv,{omit:["layers","patternFeatures"]});var fg={get paint(){return ny=ny||new le({"line-opacity":new eo(ce.paint_line["line-opacity"]),"line-color":new eo(ce.paint_line["line-color"]),"line-translate":new Da(ce.paint_line["line-translate"]),"line-translate-anchor":new Da(ce.paint_line["line-translate-anchor"]),"line-width":new eo(ce.paint_line["line-width"]),"line-gap-width":new eo(ce.paint_line["line-gap-width"]),"line-offset":new eo(ce.paint_line["line-offset"]),"line-blur":new eo(ce.paint_line["line-blur"]),"line-dasharray":new yc(ce.paint_line["line-dasharray"]),"line-pattern":new Jc(ce.paint_line["line-pattern"]),"line-gradient":new _c(ce.paint_line["line-gradient"])})},get layout(){return Cv=Cv||new le({"line-cap":new Da(ce.layout_line["line-cap"]),"line-join":new eo(ce.layout_line["line-join"]),"line-miter-limit":new Da(ce.layout_line["line-miter-limit"]),"line-round-limit":new Da(ce.layout_line["line-round-limit"]),"line-sort-key":new eo(ce.layout_line["line-sort-key"])})}};class Hf extends eo{possiblyEvaluate(S,D){return D=new Ko(Math.floor(D.zoom),{now:D.now,fadeDuration:D.fadeDuration,zoomHistory:D.zoomHistory,transition:D.transition}),super.possiblyEvaluate(S,D)}evaluate(S,D,j,te){return D=L({},D,{zoom:Math.floor(D.zoom)}),super.evaluate(S,D,j,te)}}let hg;class ay extends B{constructor(S){super(S,fg),this.gradientVersion=0,hg||(hg=new Hf(fg.paint.properties["line-width"].specification),hg.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(S){if(S==="line-gradient"){let D=this.gradientExpression();this.stepInterpolant=!!function(j){return j._styleExpression!==void 0}(D)&&D._styleExpression.expression instanceof Ji,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}recalculate(S,D){super.recalculate(S,D),this.paint._values["line-floorwidth"]=hg.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,S)}createBucket(S){return new Kv(S)}queryRadius(S){let D=S,j=Rh(yn("line-width",this,D),yn("line-gap-width",this,D)),te=yn("line-offset",this,D);return j/2+Math.abs(te)+to(this.paint.get("line-translate"))}queryIntersectsFeature(S,D,j,te,ue,ve,De){let Ze=Rn(S,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),ve.angle,De),at=De/2*Rh(this.paint.get("line-width").evaluate(D,j),this.paint.get("line-gap-width").evaluate(D,j)),Tt=this.paint.get("line-offset").evaluate(D,j);return Tt&&(te=function(Ft,Qt){let sr=[];for(let Tr=0;Tr=3){for(let $r=0;$r0?S+2*R:R}let rm=qe([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),w1=qe([{name:"a_projected_pos",components:3,type:"Float32"}],4);qe([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);let T1=qe([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"},{name:"a_box_real",components:2,type:"Int16"}]);qe([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);let oy=qe([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),im=qe([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function nm(R,S,D){return R.sections.forEach(j=>{j.text=function(te,ue,ve){let De=ue.layout.get("text-transform").evaluate(ve,{});return De==="uppercase"?te=te.toLocaleUpperCase():De==="lowercase"&&(te=te.toLocaleLowerCase()),vs.applyArabicShaping&&(te=vs.applyArabicShaping(te)),te}(j.text,S,D)}),R}qe([{name:"triangle",components:3,type:"Uint16"}]),qe([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),qe([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",name:"collisionCircleDiameter"},{type:"Uint16",name:"textAnchorOffsetStartIndex"},{type:"Uint16",name:"textAnchorOffsetEndIndex"}]),qe([{type:"Float32",name:"offsetX"}]),qe([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]),qe([{type:"Uint16",name:"textAnchor"},{type:"Float32",components:2,name:"textOffset"}]);let Fu={"!":"\uFE15","#":"\uFF03",$:"\uFF04","%":"\uFF05","&":"\uFF06","(":"\uFE35",")":"\uFE36","*":"\uFF0A","+":"\uFF0B",",":"\uFE10","-":"\uFE32",".":"\u30FB","/":"\uFF0F",":":"\uFE13",";":"\uFE14","<":"\uFE3F","=":"\uFF1D",">":"\uFE40","?":"\uFE16","@":"\uFF20","[":"\uFE47","\\":"\uFF3C","]":"\uFE48","^":"\uFF3E",_:"\uFE33","`":"\uFF40","{":"\uFE37","|":"\u2015","}":"\uFE38","~":"\uFF5E","\xA2":"\uFFE0","\xA3":"\uFFE1","\xA5":"\uFFE5","\xA6":"\uFFE4","\xAC":"\uFFE2","\xAF":"\uFFE3","\u2013":"\uFE32","\u2014":"\uFE31","\u2018":"\uFE43","\u2019":"\uFE44","\u201C":"\uFE41","\u201D":"\uFE42","\u2026":"\uFE19","\u2027":"\u30FB","\u20A9":"\uFFE6","\u3001":"\uFE11","\u3002":"\uFE12","\u3008":"\uFE3F","\u3009":"\uFE40","\u300A":"\uFE3D","\u300B":"\uFE3E","\u300C":"\uFE41","\u300D":"\uFE42","\u300E":"\uFE43","\u300F":"\uFE44","\u3010":"\uFE3B","\u3011":"\uFE3C","\u3014":"\uFE39","\u3015":"\uFE3A","\u3016":"\uFE17","\u3017":"\uFE18","\uFF01":"\uFE15","\uFF08":"\uFE35","\uFF09":"\uFE36","\uFF0C":"\uFE10","\uFF0D":"\uFE32","\uFF0E":"\u30FB","\uFF1A":"\uFE13","\uFF1B":"\uFE14","\uFF1C":"\uFE3F","\uFF1E":"\uFE40","\uFF1F":"\uFE16","\uFF3B":"\uFE47","\uFF3D":"\uFE48","\uFF3F":"\uFE33","\uFF5B":"\uFE37","\uFF5C":"\u2015","\uFF5D":"\uFE38","\uFF5F":"\uFE35","\uFF60":"\uFE36","\uFF61":"\uFE12","\uFF62":"\uFE41","\uFF63":"\uFE42"};var kl=24,bd=Yl,sy=function(R,S,D,j,te){var ue,ve,De=8*te-j-1,Ze=(1<>1,Tt=-7,Ft=D?te-1:0,Qt=D?-1:1,sr=R[S+Ft];for(Ft+=Qt,ue=sr&(1<<-Tt)-1,sr>>=-Tt,Tt+=De;Tt>0;ue=256*ue+R[S+Ft],Ft+=Qt,Tt-=8);for(ve=ue&(1<<-Tt)-1,ue>>=-Tt,Tt+=j;Tt>0;ve=256*ve+R[S+Ft],Ft+=Qt,Tt-=8);if(ue===0)ue=1-at;else{if(ue===Ze)return ve?NaN:1/0*(sr?-1:1);ve+=Math.pow(2,j),ue-=at}return(sr?-1:1)*ve*Math.pow(2,ue-j)},A1=function(R,S,D,j,te,ue){var ve,De,Ze,at=8*ue-te-1,Tt=(1<>1,Qt=te===23?Math.pow(2,-24)-Math.pow(2,-77):0,sr=j?0:ue-1,Tr=j?1:-1,Pr=S<0||S===0&&1/S<0?1:0;for(S=Math.abs(S),isNaN(S)||S===1/0?(De=isNaN(S)?1:0,ve=Tt):(ve=Math.floor(Math.log(S)/Math.LN2),S*(Ze=Math.pow(2,-ve))<1&&(ve--,Ze*=2),(S+=ve+Ft>=1?Qt/Ze:Qt*Math.pow(2,1-Ft))*Ze>=2&&(ve++,Ze/=2),ve+Ft>=Tt?(De=0,ve=Tt):ve+Ft>=1?(De=(S*Ze-1)*Math.pow(2,te),ve+=Ft):(De=S*Math.pow(2,Ft-1)*Math.pow(2,te),ve=0));te>=8;R[D+sr]=255&De,sr+=Tr,De/=256,te-=8);for(ve=ve<0;R[D+sr]=255&ve,sr+=Tr,ve/=256,at-=8);R[D+sr-Tr]|=128*Pr};function Yl(R){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(R)?R:new Uint8Array(R||0),this.pos=0,this.type=0,this.length=this.buf.length}Yl.Varint=0,Yl.Fixed64=1,Yl.Bytes=2,Yl.Fixed32=5;var Bx=4294967296,am=1/Bx,Mw=typeof TextDecoder=="undefined"?null:new TextDecoder("utf-8");function Lv(R){return R.type===Yl.Bytes?R.readVarint()+R.pos:R.pos+1}function om(R,S,D){return D?4294967296*S+(R>>>0):4294967296*(S>>>0)+(R>>>0)}function Ew(R,S,D){var j=S<=16383?1:S<=2097151?2:S<=268435455?3:Math.floor(Math.log(S)/(7*Math.LN2));D.realloc(j);for(var te=D.pos-1;te>=R;te--)D.buf[te+j]=D.buf[te]}function Nx(R,S){for(var D=0;D>>8,R[D+2]=S>>>16,R[D+3]=S>>>24}function lC(R,S){return(R[S]|R[S+1]<<8|R[S+2]<<16)+(R[S+3]<<24)}Yl.prototype={destroy:function(){this.buf=null},readFields:function(R,S,D){for(D=D||this.length;this.pos>3,ue=this.pos;this.type=7&j,R(te,S,this),this.pos===ue&&this.skip(j)}return S},readMessage:function(R,S){return this.readFields(R,S,this.readVarint()+this.pos)},readFixed32:function(){var R=ly(this.buf,this.pos);return this.pos+=4,R},readSFixed32:function(){var R=lC(this.buf,this.pos);return this.pos+=4,R},readFixed64:function(){var R=ly(this.buf,this.pos)+ly(this.buf,this.pos+4)*Bx;return this.pos+=8,R},readSFixed64:function(){var R=ly(this.buf,this.pos)+lC(this.buf,this.pos+4)*Bx;return this.pos+=8,R},readFloat:function(){var R=sy(this.buf,this.pos,!0,23,4);return this.pos+=4,R},readDouble:function(){var R=sy(this.buf,this.pos,!0,52,8);return this.pos+=8,R},readVarint:function(R){var S,D,j=this.buf;return S=127&(D=j[this.pos++]),D<128?S:(S|=(127&(D=j[this.pos++]))<<7,D<128?S:(S|=(127&(D=j[this.pos++]))<<14,D<128?S:(S|=(127&(D=j[this.pos++]))<<21,D<128?S:function(te,ue,ve){var De,Ze,at=ve.buf;if(De=(112&(Ze=at[ve.pos++]))>>4,Ze<128||(De|=(127&(Ze=at[ve.pos++]))<<3,Ze<128)||(De|=(127&(Ze=at[ve.pos++]))<<10,Ze<128)||(De|=(127&(Ze=at[ve.pos++]))<<17,Ze<128)||(De|=(127&(Ze=at[ve.pos++]))<<24,Ze<128)||(De|=(1&(Ze=at[ve.pos++]))<<31,Ze<128))return om(te,De,ue);throw new Error("Expected varint not more than 10 bytes")}(S|=(15&(D=j[this.pos]))<<28,R,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var R=this.readVarint();return R%2==1?(R+1)/-2:R/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var R=this.readVarint()+this.pos,S=this.pos;return this.pos=R,R-S>=12&&Mw?function(D,j,te){return Mw.decode(D.subarray(j,te))}(this.buf,S,R):function(D,j,te){for(var ue="",ve=j;ve239?4:Tt>223?3:Tt>191?2:1;if(ve+Qt>te)break;Qt===1?Tt<128&&(Ft=Tt):Qt===2?(192&(De=D[ve+1]))==128&&(Ft=(31&Tt)<<6|63&De)<=127&&(Ft=null):Qt===3?(Ze=D[ve+2],(192&(De=D[ve+1]))==128&&(192&Ze)==128&&((Ft=(15&Tt)<<12|(63&De)<<6|63&Ze)<=2047||Ft>=55296&&Ft<=57343)&&(Ft=null)):Qt===4&&(Ze=D[ve+2],at=D[ve+3],(192&(De=D[ve+1]))==128&&(192&Ze)==128&&(192&at)==128&&((Ft=(15&Tt)<<18|(63&De)<<12|(63&Ze)<<6|63&at)<=65535||Ft>=1114112)&&(Ft=null)),Ft===null?(Ft=65533,Qt=1):Ft>65535&&(Ft-=65536,ue+=String.fromCharCode(Ft>>>10&1023|55296),Ft=56320|1023&Ft),ue+=String.fromCharCode(Ft),ve+=Qt}return ue}(this.buf,S,R)},readBytes:function(){var R=this.readVarint()+this.pos,S=this.buf.subarray(this.pos,R);return this.pos=R,S},readPackedVarint:function(R,S){if(this.type!==Yl.Bytes)return R.push(this.readVarint(S));var D=Lv(this);for(R=R||[];this.pos127;);else if(S===Yl.Bytes)this.pos=this.readVarint()+this.pos;else if(S===Yl.Fixed32)this.pos+=4;else{if(S!==Yl.Fixed64)throw new Error("Unimplemented type: "+S);this.pos+=8}},writeTag:function(R,S){this.writeVarint(R<<3|S)},realloc:function(R){for(var S=this.length||16;S268435455||R<0?function(S,D){var j,te;if(S>=0?(j=S%4294967296|0,te=S/4294967296|0):(te=~(-S/4294967296),4294967295^(j=~(-S%4294967296))?j=j+1|0:(j=0,te=te+1|0)),S>=18446744073709552e3||S<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");D.realloc(10),function(ue,ve,De){De.buf[De.pos++]=127&ue|128,ue>>>=7,De.buf[De.pos++]=127&ue|128,ue>>>=7,De.buf[De.pos++]=127&ue|128,ue>>>=7,De.buf[De.pos++]=127&ue|128,De.buf[De.pos]=127&(ue>>>=7)}(j,0,D),function(ue,ve){var De=(7&ue)<<4;ve.buf[ve.pos++]|=De|((ue>>>=3)?128:0),ue&&(ve.buf[ve.pos++]=127&ue|((ue>>>=7)?128:0),ue&&(ve.buf[ve.pos++]=127&ue|((ue>>>=7)?128:0),ue&&(ve.buf[ve.pos++]=127&ue|((ue>>>=7)?128:0),ue&&(ve.buf[ve.pos++]=127&ue|((ue>>>=7)?128:0),ue&&(ve.buf[ve.pos++]=127&ue)))))}(te,D)}(R,this):(this.realloc(4),this.buf[this.pos++]=127&R|(R>127?128:0),R<=127||(this.buf[this.pos++]=127&(R>>>=7)|(R>127?128:0),R<=127||(this.buf[this.pos++]=127&(R>>>=7)|(R>127?128:0),R<=127||(this.buf[this.pos++]=R>>>7&127))))},writeSVarint:function(R){this.writeVarint(R<0?2*-R-1:2*R)},writeBoolean:function(R){this.writeVarint(!!R)},writeString:function(R){R=String(R),this.realloc(4*R.length),this.pos++;var S=this.pos;this.pos=function(j,te,ue){for(var ve,De,Ze=0;Ze55295&&ve<57344){if(!De){ve>56319||Ze+1===te.length?(j[ue++]=239,j[ue++]=191,j[ue++]=189):De=ve;continue}if(ve<56320){j[ue++]=239,j[ue++]=191,j[ue++]=189,De=ve;continue}ve=De-55296<<10|ve-56320|65536,De=null}else De&&(j[ue++]=239,j[ue++]=191,j[ue++]=189,De=null);ve<128?j[ue++]=ve:(ve<2048?j[ue++]=ve>>6|192:(ve<65536?j[ue++]=ve>>12|224:(j[ue++]=ve>>18|240,j[ue++]=ve>>12&63|128),j[ue++]=ve>>6&63|128),j[ue++]=63&ve|128)}return ue}(this.buf,R,this.pos);var D=this.pos-S;D>=128&&Ew(S,D,this),this.pos=S-1,this.writeVarint(D),this.pos+=D},writeFloat:function(R){this.realloc(4),A1(this.buf,R,this.pos,!0,23,4),this.pos+=4},writeDouble:function(R){this.realloc(8),A1(this.buf,R,this.pos,!0,52,8),this.pos+=8},writeBytes:function(R){var S=R.length;this.writeVarint(S),this.realloc(S);for(var D=0;D=128&&Ew(D,j,this),this.pos=D-1,this.writeVarint(j),this.pos+=j},writeMessage:function(R,S,D){this.writeTag(R,Yl.Bytes),this.writeRawMessage(S,D)},writePackedVarint:function(R,S){S.length&&this.writeMessage(R,Nx,S)},writePackedSVarint:function(R,S){S.length&&this.writeMessage(R,L9,S)},writePackedBoolean:function(R,S){S.length&&this.writeMessage(R,R9,S)},writePackedFloat:function(R,S){S.length&&this.writeMessage(R,P9,S)},writePackedDouble:function(R,S){S.length&&this.writeMessage(R,I9,S)},writePackedFixed32:function(R,S){S.length&&this.writeMessage(R,pQ,S)},writePackedSFixed32:function(R,S){S.length&&this.writeMessage(R,D9,S)},writePackedFixed64:function(R,S){S.length&&this.writeMessage(R,z9,S)},writePackedSFixed64:function(R,S){S.length&&this.writeMessage(R,F9,S)},writeBytesField:function(R,S){this.writeTag(R,Yl.Bytes),this.writeBytes(S)},writeFixed32Field:function(R,S){this.writeTag(R,Yl.Fixed32),this.writeFixed32(S)},writeSFixed32Field:function(R,S){this.writeTag(R,Yl.Fixed32),this.writeSFixed32(S)},writeFixed64Field:function(R,S){this.writeTag(R,Yl.Fixed64),this.writeFixed64(S)},writeSFixed64Field:function(R,S){this.writeTag(R,Yl.Fixed64),this.writeSFixed64(S)},writeVarintField:function(R,S){this.writeTag(R,Yl.Varint),this.writeVarint(S)},writeSVarintField:function(R,S){this.writeTag(R,Yl.Varint),this.writeSVarint(S)},writeStringField:function(R,S){this.writeTag(R,Yl.Bytes),this.writeString(S)},writeFloatField:function(R,S){this.writeTag(R,Yl.Fixed32),this.writeFloat(S)},writeDoubleField:function(R,S){this.writeTag(R,Yl.Fixed64),this.writeDouble(S)},writeBooleanField:function(R,S){this.writeVarintField(R,!!S)}};var tS=o(bd);let rS=3;function gQ(R,S,D){R===1&&D.readMessage(q9,S)}function q9(R,S,D){if(R===3){let{id:j,bitmap:te,width:ue,height:ve,left:De,top:Ze,advance:at}=D.readMessage(uC,{});S.push({id:j,bitmap:new Ao({width:ue+2*rS,height:ve+2*rS},te),metrics:{width:ue,height:ve,left:De,top:Ze,advance:at}})}}function uC(R,S,D){R===1?S.id=D.readVarint():R===2?S.bitmap=D.readBytes():R===3?S.width=D.readVarint():R===4?S.height=D.readVarint():R===5?S.left=D.readSVarint():R===6?S.top=D.readSVarint():R===7&&(S.advance=D.readVarint())}let cC=rS;function iS(R){let S=0,D=0;for(let ve of R)S+=ve.w*ve.h,D=Math.max(D,ve.w);R.sort((ve,De)=>De.h-ve.h);let j=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(S/.95)),D),h:1/0}],te=0,ue=0;for(let ve of R)for(let De=j.length-1;De>=0;De--){let Ze=j[De];if(!(ve.w>Ze.w||ve.h>Ze.h)){if(ve.x=Ze.x,ve.y=Ze.y,ue=Math.max(ue,ve.y+ve.h),te=Math.max(te,ve.x+ve.w),ve.w===Ze.w&&ve.h===Ze.h){let at=j.pop();De=0&&j>=S&&Lw[this.text.charCodeAt(j)];j--)D--;this.text=this.text.substring(S,D),this.sectionIndex=this.sectionIndex.slice(S,D)}substring(S,D){let j=new S1;return j.text=this.text.substring(S,D),j.sectionIndex=this.sectionIndex.slice(S,D),j.sections=this.sections,j}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((S,D)=>Math.max(S,this.sections[D].scale),0)}addTextSection(S,D){this.text+=S.text,this.sections.push(Vx.forText(S.scale,S.fontStack||D));let j=this.sections.length-1;for(let te=0;te=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function Hx(R,S,D,j,te,ue,ve,De,Ze,at,Tt,Ft,Qt,sr,Tr){let Pr=S1.fromFeature(R,te),$r;Ft===i.ah.vertical&&Pr.verticalizePunctuation();let{processBidirectionalText:ni,processStyledBidirectionalText:Di}=vs;if(ni&&Pr.sections.length===1){$r=[];let Zi=ni(Pr.toString(),M1(Pr,at,ue,S,j,sr));for(let ta of Zi){let Va=new S1;Va.text=ta,Va.sections=Pr.sections;for(let Io=0;Io0&&ep>xf&&(xf=ep)}else{let oc=Va[Cl.fontStack],If=oc&&oc[Tu];if(If&&If.rect)I1=If.rect,qc=If.metrics;else{let ep=ta[Cl.fontStack],gg=ep&&ep[Tu];if(!gg)continue;qc=gg.metrics}Rv=(fh-Cl.scale)*kl}Qv?(Zi.verticalizable=!0,Dh.push({glyph:Tu,imageName:p0,x:Uo,y:wu+Rv,vertical:Qv,scale:Cl.scale,fontStack:Cl.fontStack,sectionIndex:qu,metrics:qc,rect:I1}),Uo+=Gp*Cl.scale+Tn):(Dh.push({glyph:Tu,imageName:p0,x:Uo,y:wu+Rv,vertical:Qv,scale:Cl.scale,fontStack:Cl.fontStack,sectionIndex:qu,metrics:qc,rect:I1}),Uo+=qc.advance*Cl.scale+Tn)}Dh.length!==0&&(hu=Math.max(Uo-Tn,hu),sm(Dh,0,Dh.length-1,$v,xf)),Uo=0;let Iv=Hn*fh+xf;rd.lineOffset=Math.max(xf,Td),wu+=Iv,uh=Math.max(Iv,uh),++td}var ch;let Ud=wu-lh,{horizontalAlign:Vd,verticalAlign:Hd}=Iw(lo);(function(rf,fh,Td,rd,Dh,xf,Iv,lv,Cl){let qu=(fh-Td)*Dh,Tu=0;Tu=xf!==Iv?-lv*rd-lh:(-rd*Cl+.5)*Iv;for(let Rv of rf)for(let qc of Rv.positionedGlyphs)qc.x+=qu,qc.y+=Tu})(Zi.positionedLines,$v,Vd,Hd,hu,uh,Hn,Ud,La.length),Zi.top+=-Hd*Ud,Zi.bottom=Zi.top+Ud,Zi.left+=-Vd*hu,Zi.right=Zi.left+hu}(ki,S,D,j,$r,ve,De,Ze,Ft,at,Qt,Tr),!function(Zi){for(let ta of Zi)if(ta.positionedGlyphs.length!==0)return!1;return!0}(pi)&&ki}let Lw={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},O9={10:!0,32:!0,38:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0},B9={40:!0};function fC(R,S,D,j,te,ue){if(S.imageName){let ve=j[S.imageName];return ve?ve.displaySize[0]*S.scale*kl/ue+te:0}{let ve=D[S.fontStack],De=ve&&ve[R];return De?De.metrics.advance*S.scale+te:0}}function hC(R,S,D,j){let te=Math.pow(R-S,2);return j?R=0,at=0;for(let Ft=0;Ftat){let Tt=Math.ceil(ue/at);te*=Tt/ve,ve=Tt}return{x1:j,y1:te,x2:j+ue,y2:te+ve}}function pC(R,S,D,j,te,ue){let ve=R.image,De;if(ve.content){let $r=ve.content,ni=ve.pixelRatio||1;De=[$r[0]/ni,$r[1]/ni,ve.displaySize[0]-$r[2]/ni,ve.displaySize[1]-$r[3]/ni]}let Ze=S.left*ue,at=S.right*ue,Tt,Ft,Qt,sr;D==="width"||D==="both"?(sr=te[0]+Ze-j[3],Ft=te[0]+at+j[1]):(sr=te[0]+(Ze+at-ve.displaySize[0])/2,Ft=sr+ve.displaySize[0]);let Tr=S.top*ue,Pr=S.bottom*ue;return D==="height"||D==="both"?(Tt=te[1]+Tr-j[0],Qt=te[1]+Pr+j[2]):(Tt=te[1]+(Tr+Pr-ve.displaySize[1])/2,Qt=Tt+ve.displaySize[1]),{image:ve,top:Tt,right:Ft,bottom:Qt,left:sr,collisionPadding:De}}let jx=255,v0=128,lm=jx*v0;function gC(R,S){let{expression:D}=S;if(D.kind==="constant")return{kind:"constant",layoutSize:D.evaluate(new Ko(R+1))};if(D.kind==="source")return{kind:"source"};{let{zoomStops:j,interpolationType:te}=D,ue=0;for(;ueve.id),this.index=S.index,this.pixelRatio=S.pixelRatio,this.sourceLayerIndex=S.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=Un([]),this.placementViewportMatrix=Un([]);let D=this.layers[0]._unevaluatedLayout._values;this.textSizeData=gC(this.zoom,D["text-size"]),this.iconSizeData=gC(this.zoom,D["icon-size"]);let j=this.layers[0].layout,te=j.get("symbol-sort-key"),ue=j.get("symbol-z-order");this.canOverlap=nS(j,"text-overlap","text-allow-overlap")!=="never"||nS(j,"icon-overlap","icon-allow-overlap")!=="never"||j.get("text-ignore-placement")||j.get("icon-ignore-placement"),this.sortFeaturesByKey=ue!=="viewport-y"&&!te.isConstant(),this.sortFeaturesByY=(ue==="viewport-y"||ue==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,j.get("symbol-placement")==="point"&&(this.writingModes=j.get("text-writing-mode").map(ve=>i.ah[ve])),this.stateDependentLayerIds=this.layers.filter(ve=>ve.isStateDependent()).map(ve=>ve.id),this.sourceID=S.sourceID}createArrays(){this.text=new sS(new _s(this.layers,this.zoom,S=>/^text/.test(S))),this.icon=new sS(new _s(this.layers,this.zoom,S=>/^icon/.test(S))),this.glyphOffsetArray=new To,this.lineVertexArray=new Wa,this.symbolInstances=new Ga,this.textAnchorOffsets=new Ro}calculateGlyphDependencies(S,D,j,te,ue){for(let ve=0;ve0)&&(ve.value.kind!=="constant"||ve.value.value.length>0),Tt=Ze.value.kind!=="constant"||!!Ze.value.value||Object.keys(Ze.parameters).length>0,Ft=ue.get("symbol-sort-key");if(this.features=[],!at&&!Tt)return;let Qt=D.iconDependencies,sr=D.glyphDependencies,Tr=D.availableImages,Pr=new Ko(this.zoom);for(let{feature:$r,id:ni,index:Di,sourceLayerIndex:pi}of S){let ki=te._featureFilter.needGeometry,Zi=xl($r,ki);if(!te._featureFilter.filter(Pr,Zi,j))continue;let ta,Va;if(ki||(Zi.geometry=js($r)),at){let La=te.getValueAndResolveTokens("text-field",Zi,j,Tr),Hn=Zr.factory(La),lo=this.hasRTLText=this.hasRTLText||oS(Hn);(!lo||vs.getRTLTextPluginStatus()==="unavailable"||lo&&vs.isParsed())&&(ta=nm(Hn,te,Zi))}if(Tt){let La=te.getValueAndResolveTokens("icon-image",Zi,j,Tr);Va=La instanceof Mi?La:Mi.fromString(La)}if(!ta&&!Va)continue;let Io=this.sortFeaturesByKey?Ft.evaluate(Zi,{},j):void 0;if(this.features.push({id:ni,text:ta,icon:Va,index:Di,sourceLayerIndex:pi,geometry:Zi.geometry,properties:$r.properties,type:U9[$r.type],sortKey:Io}),Va&&(Qt[Va.name]=!0),ta){let La=ve.evaluate(Zi,{},j).join(","),Hn=ue.get("text-rotation-alignment")!=="viewport"&&ue.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(i.ah.vertical)>=0;for(let lo of ta.sections)if(lo.image)Qt[lo.image.name]=!0;else{let $a=Ua(ta.toString()),Xa=lo.fontStack||La,Tn=sr[Xa]=sr[Xa]||{};this.calculateGlyphDependencies(lo.text,Tn,Hn,this.allowVerticalPlacement,$a)}}}ue.get("symbol-placement")==="line"&&(this.features=function($r){let ni={},Di={},pi=[],ki=0;function Zi(La){pi.push($r[La]),ki++}function ta(La,Hn,lo){let $a=Di[La];return delete Di[La],Di[Hn]=$a,pi[$a].geometry[0].pop(),pi[$a].geometry[0]=pi[$a].geometry[0].concat(lo[0]),$a}function Va(La,Hn,lo){let $a=ni[Hn];return delete ni[Hn],ni[La]=$a,pi[$a].geometry[0].shift(),pi[$a].geometry[0]=lo[0].concat(pi[$a].geometry[0]),$a}function Io(La,Hn,lo){let $a=lo?Hn[0][Hn[0].length-1]:Hn[0][0];return`${La}:${$a.x}:${$a.y}`}for(let La=0;La<$r.length;La++){let Hn=$r[La],lo=Hn.geometry,$a=Hn.text?Hn.text.toString():null;if(!$a){Zi(La);continue}let Xa=Io($a,lo),Tn=Io($a,lo,!0);if(Xa in Di&&Tn in ni&&Di[Xa]!==ni[Tn]){let bo=Va(Xa,Tn,lo),Ya=ta(Xa,Tn,pi[bo].geometry);delete ni[Xa],delete Di[Tn],Di[Io($a,pi[Ya].geometry,!0)]=Ya,pi[bo].geometry=null}else Xa in Di?ta(Xa,Tn,lo):Tn in ni?Va(Xa,Tn,lo):(Zi(La),ni[Xa]=ki-1,Di[Tn]=ki-1)}return pi.filter(La=>La.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort(($r,ni)=>$r.sortKey-ni.sortKey)}update(S,D,j){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(S,D,this.layers,j),this.icon.programConfigurations.updatePaintArrays(S,D,this.layers,j))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(S){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(S),this.iconCollisionBox.upload(S)),this.text.upload(S,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(S,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0}destroyDebugData(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()}destroy(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()}addToLineVertexArray(S,D){let j=this.lineVertexArray.length;if(S.segment!==void 0){let te=S.dist(D[S.segment+1]),ue=S.dist(D[S.segment]),ve={};for(let De=S.segment+1;De=0;De--)ve[De]={x:D[De].x,y:D[De].y,tileUnitDistanceFromAnchor:ue},De>0&&(ue+=D[De-1].dist(D[De]));for(let De=0;De0}hasIconData(){return this.icon.segments.get().length>0}hasDebugData(){return this.textCollisionBox&&this.iconCollisionBox}hasTextCollisionBoxData(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0}hasIconCollisionBoxData(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0}addIndicesForPlacedSymbol(S,D){let j=S.placedSymbolArray.get(D),te=j.vertexStartIndex+4*j.numGlyphs;for(let ue=j.vertexStartIndex;uete[De]-te[Ze]||ue[Ze]-ue[De]),ve}addToSortKeyRanges(S,D){let j=this.sortKeyRanges[this.sortKeyRanges.length-1];j&&j.sortKey===D?j.symbolInstanceEnd=S+1:this.sortKeyRanges.push({sortKey:D,symbolInstanceStart:S,symbolInstanceEnd:S+1})}sortFeatures(S){if(this.sortFeaturesByY&&this.sortedAngle!==S&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(S),this.sortedAngle=S,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(let D of this.symbolInstanceIndexes){let j=this.symbolInstances.get(D);this.featureSortOrder.push(j.featureIndex),[j.rightJustifiedTextSymbolIndex,j.centerJustifiedTextSymbolIndex,j.leftJustifiedTextSymbolIndex].forEach((te,ue,ve)=>{te>=0&&ve.indexOf(te)===ue&&this.addIndicesForPlacedSymbol(this.text,te)}),j.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,j.verticalPlacedTextSymbolIndex),j.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,j.placedIconSymbolIndex),j.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,j.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let tf,Wx;mi("SymbolBucket",E1,{omit:["layers","collisionBoxArray","features","compareText"]}),E1.MAX_GLYPHS=65535,E1.addDynamicAttributes=aS;var Dw={get paint(){return Wx=Wx||new le({"icon-opacity":new eo(ce.paint_symbol["icon-opacity"]),"icon-color":new eo(ce.paint_symbol["icon-color"]),"icon-halo-color":new eo(ce.paint_symbol["icon-halo-color"]),"icon-halo-width":new eo(ce.paint_symbol["icon-halo-width"]),"icon-halo-blur":new eo(ce.paint_symbol["icon-halo-blur"]),"icon-translate":new Da(ce.paint_symbol["icon-translate"]),"icon-translate-anchor":new Da(ce.paint_symbol["icon-translate-anchor"]),"text-opacity":new eo(ce.paint_symbol["text-opacity"]),"text-color":new eo(ce.paint_symbol["text-color"],{runtimeType:Ht,getOverride:R=>R.textColor,hasOverride:R=>!!R.textColor}),"text-halo-color":new eo(ce.paint_symbol["text-halo-color"]),"text-halo-width":new eo(ce.paint_symbol["text-halo-width"]),"text-halo-blur":new eo(ce.paint_symbol["text-halo-blur"]),"text-translate":new Da(ce.paint_symbol["text-translate"]),"text-translate-anchor":new Da(ce.paint_symbol["text-translate-anchor"])})},get layout(){return tf=tf||new le({"symbol-placement":new Da(ce.layout_symbol["symbol-placement"]),"symbol-spacing":new Da(ce.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new Da(ce.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new eo(ce.layout_symbol["symbol-sort-key"]),"symbol-z-order":new Da(ce.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new Da(ce.layout_symbol["icon-allow-overlap"]),"icon-overlap":new Da(ce.layout_symbol["icon-overlap"]),"icon-ignore-placement":new Da(ce.layout_symbol["icon-ignore-placement"]),"icon-optional":new Da(ce.layout_symbol["icon-optional"]),"icon-rotation-alignment":new Da(ce.layout_symbol["icon-rotation-alignment"]),"icon-size":new eo(ce.layout_symbol["icon-size"]),"icon-text-fit":new Da(ce.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new Da(ce.layout_symbol["icon-text-fit-padding"]),"icon-image":new eo(ce.layout_symbol["icon-image"]),"icon-rotate":new eo(ce.layout_symbol["icon-rotate"]),"icon-padding":new eo(ce.layout_symbol["icon-padding"]),"icon-keep-upright":new Da(ce.layout_symbol["icon-keep-upright"]),"icon-offset":new eo(ce.layout_symbol["icon-offset"]),"icon-anchor":new eo(ce.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new Da(ce.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new Da(ce.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new Da(ce.layout_symbol["text-rotation-alignment"]),"text-field":new eo(ce.layout_symbol["text-field"]),"text-font":new eo(ce.layout_symbol["text-font"]),"text-size":new eo(ce.layout_symbol["text-size"]),"text-max-width":new eo(ce.layout_symbol["text-max-width"]),"text-line-height":new Da(ce.layout_symbol["text-line-height"]),"text-letter-spacing":new eo(ce.layout_symbol["text-letter-spacing"]),"text-justify":new eo(ce.layout_symbol["text-justify"]),"text-radial-offset":new eo(ce.layout_symbol["text-radial-offset"]),"text-variable-anchor":new Da(ce.layout_symbol["text-variable-anchor"]),"text-variable-anchor-offset":new eo(ce.layout_symbol["text-variable-anchor-offset"]),"text-anchor":new eo(ce.layout_symbol["text-anchor"]),"text-max-angle":new Da(ce.layout_symbol["text-max-angle"]),"text-writing-mode":new Da(ce.layout_symbol["text-writing-mode"]),"text-rotate":new eo(ce.layout_symbol["text-rotate"]),"text-padding":new Da(ce.layout_symbol["text-padding"]),"text-keep-upright":new Da(ce.layout_symbol["text-keep-upright"]),"text-transform":new eo(ce.layout_symbol["text-transform"]),"text-offset":new eo(ce.layout_symbol["text-offset"]),"text-allow-overlap":new Da(ce.layout_symbol["text-allow-overlap"]),"text-overlap":new Da(ce.layout_symbol["text-overlap"]),"text-ignore-placement":new Da(ce.layout_symbol["text-ignore-placement"]),"text-optional":new Da(ce.layout_symbol["text-optional"])})}};class Zx{constructor(S){if(S.property.overrides===void 0)throw new Error("overrides must be provided to instantiate FormatSectionOverride class");this.type=S.property.overrides?S.property.overrides.runtimeType:Lt,this.defaultValue=S}evaluate(S){if(S.formattedSection){let D=this.defaultValue.property.overrides;if(D&&D.hasOverride(S.formattedSection))return D.getOverride(S.formattedSection)}return S.feature&&S.featureState?this.defaultValue.evaluate(S.feature,S.featureState):this.defaultValue.property.specification.default}eachChild(S){this.defaultValue.isConstant()||S(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}mi("FormatSectionOverride",Zx,{omit:["defaultValue"]});class uy extends B{constructor(S){super(S,Dw)}recalculate(S,D){if(super.recalculate(S,D),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")==="map"?"map":"viewport"),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),this.layout.get("symbol-placement")==="point"){let j=this.layout.get("text-writing-mode");if(j){let te=[];for(let ue of j)te.indexOf(ue)<0&&te.push(ue);this.layout._values["text-writing-mode"]=te}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()}getValueAndResolveTokens(S,D,j,te){let ue=this.layout.get(S).evaluate(D,{},j,te),ve=this._unevaluatedLayout._values[S];return ve.isDataDriven()||Lc(ve.value)||!ue?ue:function(De,Ze){return Ze.replace(/{([^{}]+)}/g,(at,Tt)=>De&&Tt in De?String(De[Tt]):"")}(D.properties,ue)}createBucket(S){return new E1(S)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error("Should take a different path in FeatureIndex")}_setPaintOverrides(){for(let S of Dw.paint.overridableProperties){if(!uy.hasPaintOverride(this.layout,S))continue;let D=this.paint.get(S),j=new Zx(D),te=new Pu(j,D.property.specification),ue=null;ue=D.value.kind==="constant"||D.value.kind==="source"?new Xc("source",te):new ic("composite",te,D.value.zoomStops),this.paint._values[S]=new Du(D.property,ue,D.parameters)}}_handleOverridablePaintPropertyUpdate(S,D,j){return!(!this.layout||D.isDataDriven()||j.isDataDriven())&&uy.hasPaintOverride(this.layout,S)}static hasPaintOverride(S,D){let j=S.get("text-field"),te=Dw.paint.properties[D],ue=!1,ve=De=>{for(let Ze of De)if(te.overrides&&te.overrides.hasOverride(Ze))return void(ue=!0)};if(j.value.kind==="constant"&&j.value.value instanceof Zr)ve(j.value.value.sections);else if(j.value.kind==="source"){let De=at=>{ue||(at instanceof jn&&Ki(at.value)===Br?ve(at.value.sections):at instanceof $l?ve(at.sections):at.eachChild(De))},Ze=j.value;Ze._styleExpression&&De(Ze._styleExpression.expression)}return ue}}let mC;var Xx={get paint(){return mC=mC||new le({"background-color":new Da(ce.paint_background["background-color"]),"background-pattern":new yc(ce.paint_background["background-pattern"]),"background-opacity":new Da(ce.paint_background["background-opacity"])})}};class H9 extends B{constructor(S){super(S,Xx)}}let lS;var yC={get paint(){return lS=lS||new le({"raster-opacity":new Da(ce.paint_raster["raster-opacity"]),"raster-hue-rotate":new Da(ce.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new Da(ce.paint_raster["raster-brightness-min"]),"raster-brightness-max":new Da(ce.paint_raster["raster-brightness-max"]),"raster-saturation":new Da(ce.paint_raster["raster-saturation"]),"raster-contrast":new Da(ce.paint_raster["raster-contrast"]),"raster-resampling":new Da(ce.paint_raster["raster-resampling"]),"raster-fade-duration":new Da(ce.paint_raster["raster-fade-duration"])})}};class Yx extends B{constructor(S){super(S,yC)}}class uS extends B{constructor(S){super(S,{}),this.onAdd=D=>{this.implementation.onAdd&&this.implementation.onAdd(D,D.painter.context.gl)},this.onRemove=D=>{this.implementation.onRemove&&this.implementation.onRemove(D,D.painter.context.gl)},this.implementation=S}is3D(){return this.implementation.renderingMode==="3d"}hasOffscreenPass(){return this.implementation.prerender!==void 0}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){throw new Error("Custom layers cannot be serialized")}}class cS{constructor(S){this._methodToThrottle=S,this._triggered=!1,typeof MessageChannel!="undefined"&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._methodToThrottle()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._methodToThrottle()},0))}remove(){delete this._channel,this._methodToThrottle=()=>{}}}let fS=63710088e-1;class dg{constructor(S,D){if(isNaN(S)||isNaN(D))throw new Error(`Invalid LngLat object: (${S}, ${D})`);if(this.lng=+S,this.lat=+D,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new dg(A(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(S){let D=Math.PI/180,j=this.lat*D,te=S.lat*D,ue=Math.sin(j)*Math.sin(te)+Math.cos(j)*Math.cos(te)*Math.cos((S.lng-this.lng)*D);return fS*Math.acos(Math.min(ue,1))}static convert(S){if(S instanceof dg)return S;if(Array.isArray(S)&&(S.length===2||S.length===3))return new dg(Number(S[0]),Number(S[1]));if(!Array.isArray(S)&&typeof S=="object"&&S!==null)return new dg(Number("lng"in S?S.lng:S.lon),Number(S.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}let k1=2*Math.PI*fS;function _C(R){return k1*Math.cos(R*Math.PI/180)}function zw(R){return(180+R)/360}function xC(R){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+R*Math.PI/360)))/360}function Fw(R,S){return R/_C(S)}function Kx(R){return 360/Math.PI*Math.atan(Math.exp((180-360*R)*Math.PI/180))-90}class Jx{constructor(S,D,j=0){this.x=+S,this.y=+D,this.z=+j}static fromLngLat(S,D=0){let j=dg.convert(S);return new Jx(zw(j.lng),xC(j.lat),Fw(D,j.lat))}toLngLat(){return new dg(360*this.x-180,Kx(this.y))}toAltitude(){return this.z*_C(Kx(this.y))}meterInMercatorCoordinateUnits(){return 1/k1*(S=Kx(this.y),1/Math.cos(S*Math.PI/180));var S}}function gp(R,S,D){var j=2*Math.PI*6378137/256/Math.pow(2,D);return[R*j-2*Math.PI*6378137/2,S*j-2*Math.PI*6378137/2]}class hS{constructor(S,D,j){if(!function(te,ue,ve){return!(te<0||te>25||ve<0||ve>=Math.pow(2,te)||ue<0||ue>=Math.pow(2,te))}(S,D,j))throw new Error(`x=${D}, y=${j}, z=${S} outside of bounds. 0<=x<${Math.pow(2,S)}, 0<=y<${Math.pow(2,S)} 0<=z<=25 `);this.z=S,this.x=D,this.y=j,this.key=$x(0,S,S,D,j)}equals(S){return this.z===S.z&&this.x===S.x&&this.y===S.y}url(S,D,j){let te=(ve=this.y,De=this.z,Ze=gp(256*(ue=this.x),256*(ve=Math.pow(2,De)-ve-1),De),at=gp(256*(ue+1),256*(ve+1),De),Ze[0]+","+Ze[1]+","+at[0]+","+at[1]);var ue,ve,De,Ze,at;let Tt=function(Ft,Qt,sr){let Tr,Pr="";for(let $r=Ft;$r>0;$r--)Tr=1<<$r-1,Pr+=(Qt&Tr?1:0)+(sr&Tr?2:0);return Pr}(this.z,this.x,this.y);return S[(this.x+this.y)%S.length].replace(/{prefix}/g,(this.x%16).toString(16)+(this.y%16).toString(16)).replace(/{z}/g,String(this.z)).replace(/{x}/g,String(this.x)).replace(/{y}/g,String(j==="tms"?Math.pow(2,this.z)-this.y-1:this.y)).replace(/{ratio}/g,D>1?"@2x":"").replace(/{quadkey}/g,Tt).replace(/{bbox-epsg-3857}/g,te)}isChildOf(S){let D=this.z-S.z;return D>0&&S.x===this.x>>D&&S.y===this.y>>D}getTilePoint(S){let D=Math.pow(2,this.z);return new u((S.x*D-this.x)*za,(S.y*D-this.y)*za)}toString(){return`${this.z}/${this.x}/${this.y}`}}class bC{constructor(S,D){this.wrap=S,this.canonical=D,this.key=$x(S,D.z,D.z,D.x,D.y)}}class Jv{constructor(S,D,j,te,ue){if(S= z; overscaledZ = ${S}; z = ${j}`);this.overscaledZ=S,this.wrap=D,this.canonical=new hS(j,+te,+ue),this.key=$x(D,S,j,te,ue)}clone(){return new Jv(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(S){return this.overscaledZ===S.overscaledZ&&this.wrap===S.wrap&&this.canonical.equals(S.canonical)}scaledTo(S){if(S>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${S}; overscaledZ = ${this.overscaledZ}`);let D=this.canonical.z-S;return S>this.canonical.z?new Jv(S,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Jv(S,this.wrap,S,this.canonical.x>>D,this.canonical.y>>D)}calculateScaledKey(S,D){if(S>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${S}; overscaledZ = ${this.overscaledZ}`);let j=this.canonical.z-S;return S>this.canonical.z?$x(this.wrap*+D,S,this.canonical.z,this.canonical.x,this.canonical.y):$x(this.wrap*+D,S,S,this.canonical.x>>j,this.canonical.y>>j)}isChildOf(S){if(S.wrap!==this.wrap)return!1;let D=this.canonical.z-S.canonical.z;return S.overscaledZ===0||S.overscaledZ>D&&S.canonical.y===this.canonical.y>>D}children(S){if(this.overscaledZ>=S)return[new Jv(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];let D=this.canonical.z+1,j=2*this.canonical.x,te=2*this.canonical.y;return[new Jv(D,this.wrap,D,j,te),new Jv(D,this.wrap,D,j+1,te),new Jv(D,this.wrap,D,j,te+1),new Jv(D,this.wrap,D,j+1,te+1)]}isLessThan(S){return this.wrapS.wrap)&&(this.overscaledZS.overscaledZ)&&(this.canonical.xS.canonical.x)&&this.canonical.ythis.max&&(this.max=Ft),Ft=this.dim+1||D<-1||D>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(D+1)*this.stride+(S+1)}unpack(S,D,j){return S*this.redFactor+D*this.greenFactor+j*this.blueFactor-this.baseShift}getPixels(){return new Jn({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(S,D,j){if(this.dim!==S.dim)throw new Error("dem dimension mismatch");let te=D*this.dim,ue=D*this.dim+this.dim,ve=j*this.dim,De=j*this.dim+this.dim;switch(D){case-1:te=ue-1;break;case 1:ue=te+1}switch(j){case-1:ve=De-1;break;case 1:De=ve+1}let Ze=-D*this.dim,at=-j*this.dim;for(let Tt=ve;Tt=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${S} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[S]}}class dS{constructor(S,D,j,te,ue){this.type="Feature",this._vectorTileFeature=S,S._z=D,S._x=j,S._y=te,this.properties=S.properties,this.id=ue}get geometry(){return this._geometry===void 0&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}set geometry(S){this._geometry=S}toJSON(){let S={geometry:this.geometry};for(let D in this)D!=="_geometry"&&D!=="_vectorTileFeature"&&(S[D]=this[D]);return S}}class cy{constructor(S,D){this.tileID=S,this.x=S.canonical.x,this.y=S.canonical.y,this.z=S.canonical.z,this.grid=new qi(za,16,0),this.grid3D=new qi(za,16,0),this.featureIndexArray=new As,this.promoteId=D}insert(S,D,j,te,ue,ve){let De=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(j,te,ue);let Ze=ve?this.grid3D:this.grid;for(let at=0;at=0&&Ft[3]>=0&&Ze.insert(De,Ft[0],Ft[1],Ft[2],Ft[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new ei.VectorTile(new tS(this.rawTileData)).layers,this.sourceLayerCoder=new TC(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers}query(S,D,j,te){this.loadVTLayers();let ue=S.params||{},ve=za/S.tileSize/S.scale,De=Pc(ue.filter),Ze=S.queryGeometry,at=S.queryPadding*ve,Tt=SC(Ze),Ft=this.grid.query(Tt.minX-at,Tt.minY-at,Tt.maxX+at,Tt.maxY+at),Qt=SC(S.cameraQueryGeometry),sr=this.grid3D.query(Qt.minX-at,Qt.minY-at,Qt.maxX+at,Qt.maxY+at,($r,ni,Di,pi)=>function(ki,Zi,ta,Va,Io){for(let Hn of ki)if(Zi<=Hn.x&&ta<=Hn.y&&Va>=Hn.x&&Io>=Hn.y)return!0;let La=[new u(Zi,ta),new u(Zi,Io),new u(Va,Io),new u(Va,ta)];if(ki.length>2){for(let Hn of La)if(On(ki,Hn))return!0}for(let Hn=0;Hn(pi||(pi=js(ki)),Zi.queryIntersectsFeature(Ze,ki,ta,pi,this.z,S.transform,ve,S.pixelPosMatrix)))}return Tr}loadMatchingFeature(S,D,j,te,ue,ve,De,Ze,at,Tt,Ft){let Qt=this.bucketLayerIDs[D];if(ve&&!function($r,ni){for(let Di=0;Di<$r.length;Di++)if(ni.indexOf($r[Di])>=0)return!0;return!1}(ve,Qt))return;let sr=this.sourceLayerCoder.decode(j),Tr=this.vtLayers[sr].feature(te);if(ue.needGeometry){let $r=xl(Tr,!0);if(!ue.filter(new Ko(this.tileID.overscaledZ),$r,this.tileID.canonical))return}else if(!ue.filter(new Ko(this.tileID.overscaledZ),Tr))return;let Pr=this.getId(Tr,sr);for(let $r=0;$r{let De=S instanceof Dc?S.get(ve):null;return De&&De.evaluate?De.evaluate(D,j,te):De})}function SC(R){let S=1/0,D=1/0,j=-1/0,te=-1/0;for(let ue of R)S=Math.min(S,ue.x),D=Math.min(D,ue.y),j=Math.max(j,ue.x),te=Math.max(te,ue.y);return{minX:S,minY:D,maxX:j,maxY:te}}function G9(R,S){return S-R}function MC(R,S,D,j,te){let ue=[];for(let ve=0;ve=j&&Ft.x>=j||(Tt.x>=j?Tt=new u(j,Tt.y+(j-Tt.x)/(Ft.x-Tt.x)*(Ft.y-Tt.y))._round():Ft.x>=j&&(Ft=new u(j,Tt.y+(j-Tt.x)/(Ft.x-Tt.x)*(Ft.y-Tt.y))._round()),Tt.y>=te&&Ft.y>=te||(Tt.y>=te?Tt=new u(Tt.x+(te-Tt.y)/(Ft.y-Tt.y)*(Ft.x-Tt.x),te)._round():Ft.y>=te&&(Ft=new u(Tt.x+(te-Tt.y)/(Ft.y-Tt.y)*(Ft.x-Tt.x),te)._round()),Ze&&Tt.equals(Ze[Ze.length-1])||(Ze=[Tt],ue.push(Ze)),Ze.push(Ft)))))}}return ue}mi("FeatureIndex",cy,{omit:["rawTileData","sourceLayerCoder"]});class vg extends u{constructor(S,D,j,te){super(S,D),this.angle=j,te!==void 0&&(this.segment=te)}clone(){return new vg(this.x,this.y,this.angle,this.segment)}}function vS(R,S,D,j,te){if(S.segment===void 0||D===0)return!0;let ue=S,ve=S.segment+1,De=0;for(;De>-D/2;){if(ve--,ve<0)return!1;De-=R[ve].dist(ue),ue=R[ve]}De+=R[ve].dist(R[ve+1]),ve++;let Ze=[],at=0;for(;Dej;)at-=Ze.shift().angleDelta;if(at>te)return!1;ve++,De+=Tt.dist(Ft)}return!0}function EC(R){let S=0;for(let D=0;Dat){let Tr=(at-Ze)/sr,Pr=Mo.number(Ft.x,Qt.x,Tr),$r=Mo.number(Ft.y,Qt.y,Tr),ni=new vg(Pr,$r,Qt.angleTo(Ft),Tt);return ni._round(),!ve||vS(R,ni,De,ve,S)?ni:void 0}Ze+=sr}}function W9(R,S,D,j,te,ue,ve,De,Ze){let at=kC(j,ue,ve),Tt=CC(j,te),Ft=Tt*ve,Qt=R[0].x===0||R[0].x===Ze||R[0].y===0||R[0].y===Ze;return S-Ft=0&&ki=0&&Zi=0&&Qt+at<=Tt){let ta=new vg(ki,Zi,Di,Tr);ta._round(),j&&!vS(R,ta,ue,j,te)||sr.push(ta)}}Ft+=ni}return De||sr.length||ve||(sr=LC(R,Ft/2,D,j,te,ue,ve,!0,Ze)),sr}mi("Anchor",vg);let C1=wd;function PC(R,S,D,j){let te=[],ue=R.image,ve=ue.pixelRatio,De=ue.paddedRect.w-2*C1,Ze=ue.paddedRect.h-2*C1,at={x1:R.left,y1:R.top,x2:R.right,y2:R.bottom},Tt=ue.stretchX||[[0,De]],Ft=ue.stretchY||[[0,Ze]],Qt=(Tn,bo)=>Tn+bo[1]-bo[0],sr=Tt.reduce(Qt,0),Tr=Ft.reduce(Qt,0),Pr=De-sr,$r=Ze-Tr,ni=0,Di=sr,pi=0,ki=Tr,Zi=0,ta=Pr,Va=0,Io=$r;if(ue.content&&j){let Tn=ue.content,bo=Tn[2]-Tn[0],Ya=Tn[3]-Tn[1];(ue.textFitWidth||ue.textFitHeight)&&(at=vC(R)),ni=pg(Tt,0,Tn[0]),pi=pg(Ft,0,Tn[1]),Di=pg(Tt,Tn[0],Tn[2]),ki=pg(Ft,Tn[1],Tn[3]),Zi=Tn[0]-ni,Va=Tn[1]-pi,ta=bo-Di,Io=Ya-ki}let La=at.x1,Hn=at.y1,lo=at.x2-La,$a=at.y2-Hn,Xa=(Tn,bo,Ya,Uo)=>{let wu=qw(Tn.stretch-ni,Di,lo,La),hu=L1(Tn.fixed-Zi,ta,Tn.stretch,sr),uh=qw(bo.stretch-pi,ki,$a,Hn),$v=L1(bo.fixed-Va,Io,bo.stretch,Tr),td=qw(Ya.stretch-ni,Di,lo,La),ch=L1(Ya.fixed-Zi,ta,Ya.stretch,sr),Ud=qw(Uo.stretch-pi,ki,$a,Hn),Vd=L1(Uo.fixed-Va,Io,Uo.stretch,Tr),Hd=new u(wu,uh),rf=new u(td,uh),fh=new u(td,Ud),Td=new u(wu,Ud),rd=new u(hu/ve,$v/ve),Dh=new u(ch/ve,Vd/ve),xf=S*Math.PI/180;if(xf){let Cl=Math.sin(xf),qu=Math.cos(xf),Tu=[qu,-Cl,Cl,qu];Hd._matMult(Tu),rf._matMult(Tu),Td._matMult(Tu),fh._matMult(Tu)}let Iv=Tn.stretch+Tn.fixed,lv=bo.stretch+bo.fixed;return{tl:Hd,tr:rf,bl:Td,br:fh,tex:{x:ue.paddedRect.x+C1+Iv,y:ue.paddedRect.y+C1+lv,w:Ya.stretch+Ya.fixed-Iv,h:Uo.stretch+Uo.fixed-lv},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:rd,pixelOffsetBR:Dh,minFontScaleX:ta/ve/lo,minFontScaleY:Io/ve/$a,isSDF:D}};if(j&&(ue.stretchX||ue.stretchY)){let Tn=IC(Tt,Pr,sr),bo=IC(Ft,$r,Tr);for(let Ya=0;Ya0&&(Pr=Math.max(10,Pr),this.circleDiameter=Pr)}else{let Qt=!((Ft=ve.image)===null||Ft===void 0)&&Ft.content&&(ve.image.textFitWidth||ve.image.textFitHeight)?vC(ve):{x1:ve.left,y1:ve.top,x2:ve.right,y2:ve.bottom};Qt.y1=Qt.y1*De-Ze[0],Qt.y2=Qt.y2*De+Ze[2],Qt.x1=Qt.x1*De-Ze[3],Qt.x2=Qt.x2*De+Ze[1];let sr=ve.collisionPadding;if(sr&&(Qt.x1-=sr[0]*De,Qt.y1-=sr[1]*De,Qt.x2+=sr[2]*De,Qt.y2+=sr[3]*De),Tt){let Tr=new u(Qt.x1,Qt.y1),Pr=new u(Qt.x2,Qt.y1),$r=new u(Qt.x1,Qt.y2),ni=new u(Qt.x2,Qt.y2),Di=Tt*Math.PI/180;Tr._rotate(Di),Pr._rotate(Di),$r._rotate(Di),ni._rotate(Di),Qt.x1=Math.min(Tr.x,Pr.x,$r.x,ni.x),Qt.x2=Math.max(Tr.x,Pr.x,$r.x,ni.x),Qt.y1=Math.min(Tr.y,Pr.y,$r.y,ni.y),Qt.y2=Math.max(Tr.y,Pr.y,$r.y,ni.y)}S.emplaceBack(D.x,D.y,Qt.x1,Qt.y1,Qt.x2,Qt.y2,j,te,ue)}this.boxEndIndex=S.length}}class Hp{constructor(S=[],D=(j,te)=>jte?1:0){if(this.data=S,this.length=this.data.length,this.compare=D,this.length>0)for(let j=(this.length>>1)-1;j>=0;j--)this._down(j)}push(S){this.data.push(S),this._up(this.length++)}pop(){if(this.length===0)return;let S=this.data[0],D=this.data.pop();return--this.length>0&&(this.data[0]=D,this._down(0)),S}peek(){return this.data[0]}_up(S){let{data:D,compare:j}=this,te=D[S];for(;S>0;){let ue=S-1>>1,ve=D[ue];if(j(te,ve)>=0)break;D[S]=ve,S=ue}D[S]=te}_down(S){let{data:D,compare:j}=this,te=this.length>>1,ue=D[S];for(;S=0)break;D[S]=D[ve],S=ve}D[S]=ue}}function Z9(R,S=1,D=!1){let j=1/0,te=1/0,ue=-1/0,ve=-1/0,De=R[0];for(let sr=0;srue)&&(ue=Tr.x),(!sr||Tr.y>ve)&&(ve=Tr.y)}let Ze=Math.min(ue-j,ve-te),at=Ze/2,Tt=new Hp([],X9);if(Ze===0)return new u(j,te);for(let sr=j;srFt.d||!Ft.d)&&(Ft=sr,D&&console.log("found best %d after %d probes",Math.round(1e4*sr.d)/1e4,Qt)),sr.max-Ft.d<=S||(at=sr.h/2,Tt.push(new P1(sr.p.x-at,sr.p.y-at,at,R)),Tt.push(new P1(sr.p.x+at,sr.p.y-at,at,R)),Tt.push(new P1(sr.p.x-at,sr.p.y+at,at,R)),Tt.push(new P1(sr.p.x+at,sr.p.y+at,at,R)),Qt+=4)}return D&&(console.log(`num probes: ${Qt}`),console.log(`best distance: ${Ft.d}`)),Ft.p}function X9(R,S){return S.max-R.max}function P1(R,S,D,j){this.p=new u(R,S),this.h=D,this.d=function(te,ue){let ve=!1,De=1/0;for(let Ze=0;Zete.y!=Tr.y>te.y&&te.x<(Tr.x-sr.x)*(te.y-sr.y)/(Tr.y-sr.y)+sr.x&&(ve=!ve),De=Math.min(De,Bi(te,sr,Tr))}}return(ve?1:-1)*Math.sqrt(De)}(this.p,j),this.max=this.d+this.h*Math.SQRT2}var ed;i.aq=void 0,(ed=i.aq||(i.aq={}))[ed.center=1]="center",ed[ed.left=2]="left",ed[ed.right=3]="right",ed[ed.top=4]="top",ed[ed.bottom=5]="bottom",ed[ed["top-left"]=6]="top-left",ed[ed["top-right"]=7]="top-right",ed[ed["bottom-left"]=8]="bottom-left",ed[ed["bottom-right"]=9]="bottom-right";let fm=7,fy=Number.POSITIVE_INFINITY;function pS(R,S){return S[1]!==fy?function(D,j,te){let ue=0,ve=0;switch(j=Math.abs(j),te=Math.abs(te),D){case"top-right":case"top-left":case"top":ve=te-fm;break;case"bottom-right":case"bottom-left":case"bottom":ve=-te+fm}switch(D){case"top-right":case"bottom-right":case"right":ue=-j;break;case"top-left":case"bottom-left":case"left":ue=j}return[ue,ve]}(R,S[0],S[1]):function(D,j){let te=0,ue=0;j<0&&(j=0);let ve=j/Math.SQRT2;switch(D){case"top-right":case"top-left":ue=ve-fm;break;case"bottom-right":case"bottom-left":ue=-ve+fm;break;case"bottom":ue=-j+fm;break;case"top":ue=j-fm}switch(D){case"top-right":case"bottom-right":te=-ve;break;case"top-left":case"bottom-left":te=ve;break;case"left":te=j;break;case"right":te=-j}return[te,ue]}(R,S[0])}function RC(R,S,D){var j;let te=R.layout,ue=(j=te.get("text-variable-anchor-offset"))===null||j===void 0?void 0:j.evaluate(S,{},D);if(ue){let De=ue.values,Ze=[];for(let at=0;atQt*kl);Tt.startsWith("top")?Ft[1]-=fm:Tt.startsWith("bottom")&&(Ft[1]+=fm),Ze[at+1]=Ft}return new Si(Ze)}let ve=te.get("text-variable-anchor");if(ve){let De;De=R._unevaluatedLayout.getValue("text-radial-offset")!==void 0?[te.get("text-radial-offset").evaluate(S,{},D)*kl,fy]:te.get("text-offset").evaluate(S,{},D).map(at=>at*kl);let Ze=[];for(let at of ve)Ze.push(at,pS(at,De));return new Si(Ze)}return null}function gS(R){switch(R){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function Y9(R,S,D,j,te,ue,ve,De,Ze,at,Tt){let Ft=ue.textMaxSize.evaluate(S,{});Ft===void 0&&(Ft=ve);let Qt=R.layers[0].layout,sr=Qt.get("icon-offset").evaluate(S,{},Tt),Tr=zC(D.horizontal),Pr=ve/24,$r=R.tilePixelRatio*Pr,ni=R.tilePixelRatio*Ft/24,Di=R.tilePixelRatio*De,pi=R.tilePixelRatio*Qt.get("symbol-spacing"),ki=Qt.get("text-padding")*R.tilePixelRatio,Zi=function(Tn,bo,Ya,Uo=1){let wu=Tn.get("icon-padding").evaluate(bo,{},Ya),hu=wu&&wu.values;return[hu[0]*Uo,hu[1]*Uo,hu[2]*Uo,hu[3]*Uo]}(Qt,S,Tt,R.tilePixelRatio),ta=Qt.get("text-max-angle")/180*Math.PI,Va=Qt.get("text-rotation-alignment")!=="viewport"&&Qt.get("symbol-placement")!=="point",Io=Qt.get("icon-rotation-alignment")==="map"&&Qt.get("symbol-placement")!=="point",La=Qt.get("symbol-placement"),Hn=pi/2,lo=Qt.get("icon-text-fit"),$a;j&&lo!=="none"&&(R.allowVerticalPlacement&&D.vertical&&($a=pC(j,D.vertical,lo,Qt.get("icon-text-fit-padding"),sr,Pr)),Tr&&(j=pC(j,Tr,lo,Qt.get("icon-text-fit-padding"),sr,Pr)));let Xa=(Tn,bo)=>{bo.x<0||bo.x>=za||bo.y<0||bo.y>=za||function(Ya,Uo,wu,hu,uh,$v,td,ch,Ud,Vd,Hd,rf,fh,Td,rd,Dh,xf,Iv,lv,Cl,qu,Tu,Rv,qc,I1){let p0=Ya.addToLineVertexArray(Uo,wu),Gp,Qv,oc,If,ep=0,gg=0,uv=0,R1=0,bS=-1,Uw=-1,g0={},hy=ui("");if(Ya.allowVerticalPlacement&&hu.vertical){let Ad=ch.layout.get("text-rotate").evaluate(qu,{},qc)+90;oc=new cm(Ud,Uo,Vd,Hd,rf,hu.vertical,fh,Td,rd,Ad),td&&(If=new cm(Ud,Uo,Vd,Hd,rf,td,xf,Iv,rd,Ad))}if(uh){let Ad=ch.layout.get("icon-rotate").evaluate(qu,{}),tp=ch.layout.get("icon-text-fit")!=="none",hm=PC(uh,Ad,Rv,tp),Gd=td?PC(td,Ad,Rv,tp):void 0;Qv=new cm(Ud,Uo,Vd,Hd,rf,uh,xf,Iv,!1,Ad),ep=4*hm.length;let Sd=Ya.iconSizeData,yp=null;Sd.kind==="source"?(yp=[v0*ch.layout.get("icon-size").evaluate(qu,{})],yp[0]>lm&&T(`${Ya.layerIds[0]}: Value for "icon-size" is >= ${jx}. Reduce your "icon-size".`)):Sd.kind==="composite"&&(yp=[v0*Tu.compositeIconSizes[0].evaluate(qu,{},qc),v0*Tu.compositeIconSizes[1].evaluate(qu,{},qc)],(yp[0]>lm||yp[1]>lm)&&T(`${Ya.layerIds[0]}: Value for "icon-size" is >= ${jx}. Reduce your "icon-size".`)),Ya.addSymbols(Ya.icon,hm,yp,Cl,lv,qu,i.ah.none,Uo,p0.lineStartIndex,p0.lineLength,-1,qc),bS=Ya.icon.placedSymbolArray.length-1,Gd&&(gg=4*Gd.length,Ya.addSymbols(Ya.icon,Gd,yp,Cl,lv,qu,i.ah.vertical,Uo,p0.lineStartIndex,p0.lineLength,-1,qc),Uw=Ya.icon.placedSymbolArray.length-1)}let zh=Object.keys(hu.horizontal);for(let Ad of zh){let tp=hu.horizontal[Ad];if(!Gp){hy=ui(tp.text);let Gd=ch.layout.get("text-rotate").evaluate(qu,{},qc);Gp=new cm(Ud,Uo,Vd,Hd,rf,tp,fh,Td,rd,Gd)}let hm=tp.positionedLines.length===1;if(uv+=DC(Ya,Uo,tp,$v,ch,rd,qu,Dh,p0,hu.vertical?i.ah.horizontal:i.ah.horizontalOnly,hm?zh:[Ad],g0,bS,Tu,qc),hm)break}hu.vertical&&(R1+=DC(Ya,Uo,hu.vertical,$v,ch,rd,qu,Dh,p0,i.ah.vertical,["vertical"],g0,Uw,Tu,qc));let $9=Gp?Gp.boxStartIndex:Ya.collisionBoxArray.length,Vw=Gp?Gp.boxEndIndex:Ya.collisionBoxArray.length,m0=oc?oc.boxStartIndex:Ya.collisionBoxArray.length,cv=oc?oc.boxEndIndex:Ya.collisionBoxArray.length,BC=Qv?Qv.boxStartIndex:Ya.collisionBoxArray.length,Q9=Qv?Qv.boxEndIndex:Ya.collisionBoxArray.length,NC=If?If.boxStartIndex:Ya.collisionBoxArray.length,eq=If?If.boxEndIndex:Ya.collisionBoxArray.length,mp=-1,tb=(Ad,tp)=>Ad&&Ad.circleDiameter?Math.max(Ad.circleDiameter,tp):tp;mp=tb(Gp,mp),mp=tb(oc,mp),mp=tb(Qv,mp),mp=tb(If,mp);let Hw=mp>-1?1:0;Hw&&(mp*=I1/kl),Ya.glyphOffsetArray.length>=E1.MAX_GLYPHS&&T("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),qu.sortKey!==void 0&&Ya.addToSortKeyRanges(Ya.symbolInstances.length,qu.sortKey);let wS=RC(ch,qu,qc),[tq,rq]=function(Ad,tp){let hm=Ad.length,Gd=tp==null?void 0:tp.values;if((Gd==null?void 0:Gd.length)>0)for(let Sd=0;Sd=0?g0.right:-1,g0.center>=0?g0.center:-1,g0.left>=0?g0.left:-1,g0.vertical||-1,bS,Uw,hy,$9,Vw,m0,cv,BC,Q9,NC,eq,Vd,uv,R1,ep,gg,Hw,0,fh,mp,tq,rq)}(R,bo,Tn,D,j,te,$a,R.layers[0],R.collisionBoxArray,S.index,S.sourceLayerIndex,R.index,$r,[ki,ki,ki,ki],Va,Ze,Di,Zi,Io,sr,S,ue,at,Tt,ve)};if(La==="line")for(let Tn of MC(S.geometry,0,0,za,za)){let bo=W9(Tn,pi,ta,D.vertical||Tr,j,24,ni,R.overscaling,za);for(let Ya of bo)Tr&&K9(R,Tr.text,Hn,Ya)||Xa(Tn,Ya)}else if(La==="line-center"){for(let Tn of S.geometry)if(Tn.length>1){let bo=j9(Tn,ta,D.vertical||Tr,j,24,ni);bo&&Xa(Tn,bo)}}else if(S.type==="Polygon")for(let Tn of Of(S.geometry,0)){let bo=Z9(Tn,16);Xa(Tn[0],new vg(bo.x,bo.y,0))}else if(S.type==="LineString")for(let Tn of S.geometry)Xa(Tn,new vg(Tn[0].x,Tn[0].y,0));else if(S.type==="Point")for(let Tn of S.geometry)for(let bo of Tn)Xa([bo],new vg(bo.x,bo.y,0))}function DC(R,S,D,j,te,ue,ve,De,Ze,at,Tt,Ft,Qt,sr,Tr){let Pr=function(Di,pi,ki,Zi,ta,Va,Io,La){let Hn=Zi.layout.get("text-rotate").evaluate(Va,{})*Math.PI/180,lo=[];for(let $a of pi.positionedLines)for(let Xa of $a.positionedGlyphs){if(!Xa.rect)continue;let Tn=Xa.rect||{},bo=cC+1,Ya=!0,Uo=1,wu=0,hu=(ta||La)&&Xa.vertical,uh=Xa.metrics.advance*Xa.scale/2;if(La&&pi.verticalizable&&(wu=$a.lineOffset/2-(Xa.imageName?-(kl-Xa.metrics.width*Xa.scale)/2:(Xa.scale-1)*kl)),Xa.imageName){let Cl=Io[Xa.imageName];Ya=Cl.sdf,Uo=Cl.pixelRatio,bo=wd/Uo}let $v=ta?[Xa.x+uh,Xa.y]:[0,0],td=ta?[0,0]:[Xa.x+uh+ki[0],Xa.y+ki[1]-wu],ch=[0,0];hu&&(ch=td,td=[0,0]);let Ud=Xa.metrics.isDoubleResolution?2:1,Vd=(Xa.metrics.left-bo)*Xa.scale-uh+td[0],Hd=(-Xa.metrics.top-bo)*Xa.scale+td[1],rf=Vd+Tn.w/Ud*Xa.scale/Uo,fh=Hd+Tn.h/Ud*Xa.scale/Uo,Td=new u(Vd,Hd),rd=new u(rf,Hd),Dh=new u(Vd,fh),xf=new u(rf,fh);if(hu){let Cl=new u(-uh,uh-lh),qu=-Math.PI/2,Tu=kl/2-uh,Rv=new u(5-lh-Tu,-(Xa.imageName?Tu:0)),qc=new u(...ch);Td._rotateAround(qu,Cl)._add(Rv)._add(qc),rd._rotateAround(qu,Cl)._add(Rv)._add(qc),Dh._rotateAround(qu,Cl)._add(Rv)._add(qc),xf._rotateAround(qu,Cl)._add(Rv)._add(qc)}if(Hn){let Cl=Math.sin(Hn),qu=Math.cos(Hn),Tu=[qu,-Cl,Cl,qu];Td._matMult(Tu),rd._matMult(Tu),Dh._matMult(Tu),xf._matMult(Tu)}let Iv=new u(0,0),lv=new u(0,0);lo.push({tl:Td,tr:rd,bl:Dh,br:xf,tex:Tn,writingMode:pi.writingMode,glyphOffset:$v,sectionIndex:Xa.sectionIndex,isSDF:Ya,pixelOffsetTL:Iv,pixelOffsetBR:lv,minFontScaleX:0,minFontScaleY:0})}return lo}(0,D,De,te,ue,ve,j,R.allowVerticalPlacement),$r=R.textSizeData,ni=null;$r.kind==="source"?(ni=[v0*te.layout.get("text-size").evaluate(ve,{})],ni[0]>lm&&T(`${R.layerIds[0]}: Value for "text-size" is >= ${jx}. Reduce your "text-size".`)):$r.kind==="composite"&&(ni=[v0*sr.compositeTextSizes[0].evaluate(ve,{},Tr),v0*sr.compositeTextSizes[1].evaluate(ve,{},Tr)],(ni[0]>lm||ni[1]>lm)&&T(`${R.layerIds[0]}: Value for "text-size" is >= ${jx}. Reduce your "text-size".`)),R.addSymbols(R.text,Pr,ni,De,ue,ve,at,S,Ze.lineStartIndex,Ze.lineLength,Qt,Tr);for(let Di of Tt)Ft[Di]=R.text.placedSymbolArray.length-1;return 4*Pr.length}function zC(R){for(let S in R)return R[S];return null}function K9(R,S,D,j){let te=R.compareText;if(S in te){let ue=te[S];for(let ve=ue.length-1;ve>=0;ve--)if(j.dist(ue[ve])>4;if(te!==1)throw new Error(`Got v${te} data when expected v1.`);let ue=FC[15&j];if(!ue)throw new Error("Unrecognized array type.");let[ve]=new Uint16Array(S,2,1),[De]=new Uint32Array(S,4,1);return new mS(De,ve,ue,S)}constructor(S,D=64,j=Float64Array,te){if(isNaN(S)||S<0)throw new Error(`Unpexpected numItems value: ${S}.`);this.numItems=+S,this.nodeSize=Math.min(Math.max(+D,2),65535),this.ArrayType=j,this.IndexArrayType=S<65536?Uint16Array:Uint32Array;let ue=FC.indexOf(this.ArrayType),ve=2*S*this.ArrayType.BYTES_PER_ELEMENT,De=S*this.IndexArrayType.BYTES_PER_ELEMENT,Ze=(8-De%8)%8;if(ue<0)throw new Error(`Unexpected typed array class: ${j}.`);te&&te instanceof ArrayBuffer?(this.data=te,this.ids=new this.IndexArrayType(this.data,8,S),this.coords=new this.ArrayType(this.data,8+De+Ze,2*S),this._pos=2*S,this._finished=!0):(this.data=new ArrayBuffer(8+ve+De+Ze),this.ids=new this.IndexArrayType(this.data,8,S),this.coords=new this.ArrayType(this.data,8+De+Ze,2*S),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+ue]),new Uint16Array(this.data,2,1)[0]=D,new Uint32Array(this.data,4,1)[0]=S)}add(S,D){let j=this._pos>>1;return this.ids[j]=j,this.coords[this._pos++]=S,this.coords[this._pos++]=D,j}finish(){let S=this._pos>>1;if(S!==this.numItems)throw new Error(`Added ${S} items when expected ${this.numItems}.`);return Ow(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(S,D,j,te){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:ue,coords:ve,nodeSize:De}=this,Ze=[0,ue.length-1,0],at=[];for(;Ze.length;){let Tt=Ze.pop()||0,Ft=Ze.pop()||0,Qt=Ze.pop()||0;if(Ft-Qt<=De){for(let $r=Qt;$r<=Ft;$r++){let ni=ve[2*$r],Di=ve[2*$r+1];ni>=S&&ni<=j&&Di>=D&&Di<=te&&at.push(ue[$r])}continue}let sr=Qt+Ft>>1,Tr=ve[2*sr],Pr=ve[2*sr+1];Tr>=S&&Tr<=j&&Pr>=D&&Pr<=te&&at.push(ue[sr]),(Tt===0?S<=Tr:D<=Pr)&&(Ze.push(Qt),Ze.push(sr-1),Ze.push(1-Tt)),(Tt===0?j>=Tr:te>=Pr)&&(Ze.push(sr+1),Ze.push(Ft),Ze.push(1-Tt))}return at}within(S,D,j){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:te,coords:ue,nodeSize:ve}=this,De=[0,te.length-1,0],Ze=[],at=j*j;for(;De.length;){let Tt=De.pop()||0,Ft=De.pop()||0,Qt=De.pop()||0;if(Ft-Qt<=ve){for(let $r=Qt;$r<=Ft;$r++)OC(ue[2*$r],ue[2*$r+1],S,D)<=at&&Ze.push(te[$r]);continue}let sr=Qt+Ft>>1,Tr=ue[2*sr],Pr=ue[2*sr+1];OC(Tr,Pr,S,D)<=at&&Ze.push(te[sr]),(Tt===0?S-j<=Tr:D-j<=Pr)&&(De.push(Qt),De.push(sr-1),De.push(1-Tt)),(Tt===0?S+j>=Tr:D+j>=Pr)&&(De.push(sr+1),De.push(Ft),De.push(1-Tt))}return Ze}}function Ow(R,S,D,j,te,ue){if(te-j<=D)return;let ve=j+te>>1;qC(R,S,ve,j,te,ue),Ow(R,S,D,j,ve-1,1-ue),Ow(R,S,D,ve+1,te,1-ue)}function qC(R,S,D,j,te,ue){for(;te>j;){if(te-j>600){let at=te-j+1,Tt=D-j+1,Ft=Math.log(at),Qt=.5*Math.exp(2*Ft/3),sr=.5*Math.sqrt(Ft*Qt*(at-Qt)/at)*(Tt-at/2<0?-1:1);qC(R,S,D,Math.max(j,Math.floor(D-Tt*Qt/at+sr)),Math.min(te,Math.floor(D+(at-Tt)*Qt/at+sr)),ue)}let ve=S[2*D+ue],De=j,Ze=te;for(Qx(R,S,j,D),S[2*te+ue]>ve&&Qx(R,S,j,te);Deve;)Ze--}S[2*j+ue]===ve?Qx(R,S,j,Ze):(Ze++,Qx(R,S,Ze,te)),Ze<=D&&(j=Ze+1),D<=Ze&&(te=Ze-1)}}function Qx(R,S,D,j){yS(R,D,j),yS(S,2*D,2*j),yS(S,2*D+1,2*j+1)}function yS(R,S,D){let j=R[S];R[S]=R[D],R[D]=j}function OC(R,S,D,j){let te=R-D,ue=S-j;return te*te+ue*ue}var Bw;i.bg=void 0,(Bw=i.bg||(i.bg={})).create="create",Bw.load="load",Bw.fullLoad="fullLoad";let eb=null,Gf=[],_S=1e3/60,xS="loadTime",Nw="fullLoadTime",J9={mark(R){performance.mark(R)},frame(R){let S=R;eb!=null&&Gf.push(S-eb),eb=S},clearMetrics(){eb=null,Gf=[],performance.clearMeasures(xS),performance.clearMeasures(Nw);for(let R in i.bg)performance.clearMarks(i.bg[R])},getPerformanceMetrics(){performance.measure(xS,i.bg.create,i.bg.load),performance.measure(Nw,i.bg.create,i.bg.fullLoad);let R=performance.getEntriesByName(xS)[0].duration,S=performance.getEntriesByName(Nw)[0].duration,D=Gf.length,j=1/(Gf.reduce((ue,ve)=>ue+ve,0)/D/1e3),te=Gf.filter(ue=>ue>_S).reduce((ue,ve)=>ue+(ve-_S)/_S,0);return{loadTime:R,fullLoadTime:S,fps:j,percentDroppedFrames:te/(D+te)*100,totalFrames:D}}};i.$=class extends Ot{},i.A=Ln,i.B=Fi,i.C=function(R){if(V==null){let S=R.navigator?R.navigator.userAgent:null;V=!!R.safari||!(!S||!(/\b(iPad|iPhone|iPod)\b/.test(S)||S.match("Safari")&&!S.match("Chrome")))}return V},i.D=Da,i.E=Re,i.F=class{constructor(R,S){this.target=R,this.mapId=S,this.resolveRejects={},this.tasks={},this.taskQueue=[],this.abortControllers={},this.messageHandlers={},this.invoker=new cS(()=>this.process()),this.subscription=function(D,j,te,ue){return D.addEventListener(j,te,!1),{unsubscribe:()=>{D.removeEventListener(j,te,!1)}}}(this.target,"message",D=>this.receive(D)),this.globalScope=q(self)?R:window}registerMessageHandler(R,S){this.messageHandlers[R]=S}sendAsync(R,S){return new Promise((D,j)=>{let te=Math.round(1e18*Math.random()).toString(36).substring(0,10);this.resolveRejects[te]={resolve:D,reject:j},S&&S.signal.addEventListener("abort",()=>{delete this.resolveRejects[te];let De={id:te,type:"",origin:location.origin,targetMapId:R.targetMapId,sourceMapId:this.mapId};this.target.postMessage(De)},{once:!0});let ue=[],ve=Object.assign(Object.assign({},R),{id:te,sourceMapId:this.mapId,origin:location.origin,data:Ea(R.data,ue)});this.target.postMessage(ve,{transfer:ue})})}receive(R){let S=R.data,D=S.id;if(!(S.origin!=="file://"&&location.origin!=="file://"&&S.origin!=="resource://android"&&location.origin!=="resource://android"&&S.origin!==location.origin||S.targetMapId&&this.mapId!==S.targetMapId)){if(S.type===""){delete this.tasks[D];let j=this.abortControllers[D];return delete this.abortControllers[D],void(j&&j.abort())}if(q(self)||S.mustQueue)return this.tasks[D]=S,this.taskQueue.push(D),void this.invoker.trigger();this.processTask(D,S)}}process(){if(this.taskQueue.length===0)return;let R=this.taskQueue.shift(),S=this.tasks[R];delete this.tasks[R],this.taskQueue.length>0&&this.invoker.trigger(),S&&this.processTask(R,S)}processTask(R,S){return a(this,void 0,void 0,function*(){if(S.type===""){let te=this.resolveRejects[R];return delete this.resolveRejects[R],te?void(S.error?te.reject(qa(S.error)):te.resolve(qa(S.data))):void 0}if(!this.messageHandlers[S.type])return void this.completeTask(R,new Error(`Could not find a registered handler for ${S.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(", ")}`));let D=qa(S.data),j=new AbortController;this.abortControllers[R]=j;try{let te=yield this.messageHandlers[S.type](S.sourceMapId,D,j);this.completeTask(R,null,te)}catch(te){this.completeTask(R,te)}})}completeTask(R,S,D){let j=[];delete this.abortControllers[R];let te={id:R,type:"",sourceMapId:this.mapId,origin:location.origin,error:S?Ea(S):null,data:Ea(D,j)};this.target.postMessage(te,{transfer:j})}remove(){this.invoker.remove(),this.subscription.unsubscribe()}},i.G=ke,i.H=function(){var R=new Ln(16);return Ln!=Float32Array&&(R[1]=0,R[2]=0,R[3]=0,R[4]=0,R[6]=0,R[7]=0,R[8]=0,R[9]=0,R[11]=0,R[12]=0,R[13]=0,R[14]=0),R[0]=1,R[5]=1,R[10]=1,R[15]=1,R},i.I=kw,i.J=function(R,S,D){var j,te,ue,ve,De,Ze,at,Tt,Ft,Qt,sr,Tr,Pr=D[0],$r=D[1],ni=D[2];return S===R?(R[12]=S[0]*Pr+S[4]*$r+S[8]*ni+S[12],R[13]=S[1]*Pr+S[5]*$r+S[9]*ni+S[13],R[14]=S[2]*Pr+S[6]*$r+S[10]*ni+S[14],R[15]=S[3]*Pr+S[7]*$r+S[11]*ni+S[15]):(te=S[1],ue=S[2],ve=S[3],De=S[4],Ze=S[5],at=S[6],Tt=S[7],Ft=S[8],Qt=S[9],sr=S[10],Tr=S[11],R[0]=j=S[0],R[1]=te,R[2]=ue,R[3]=ve,R[4]=De,R[5]=Ze,R[6]=at,R[7]=Tt,R[8]=Ft,R[9]=Qt,R[10]=sr,R[11]=Tr,R[12]=j*Pr+De*$r+Ft*ni+S[12],R[13]=te*Pr+Ze*$r+Qt*ni+S[13],R[14]=ue*Pr+at*$r+sr*ni+S[14],R[15]=ve*Pr+Tt*$r+Tr*ni+S[15]),R},i.K=function(R,S,D){var j=D[0],te=D[1],ue=D[2];return R[0]=S[0]*j,R[1]=S[1]*j,R[2]=S[2]*j,R[3]=S[3]*j,R[4]=S[4]*te,R[5]=S[5]*te,R[6]=S[6]*te,R[7]=S[7]*te,R[8]=S[8]*ue,R[9]=S[9]*ue,R[10]=S[10]*ue,R[11]=S[11]*ue,R[12]=S[12],R[13]=S[13],R[14]=S[14],R[15]=S[15],R},i.L=gn,i.M=function(R,S){let D={};for(let j=0;j{let S=window.document.createElement("video");return S.muted=!0,new Promise(D=>{S.onloadstart=()=>{D(S)};for(let j of R){let te=window.document.createElement("source");Ee(j)||(S.crossOrigin="Anonymous"),te.src=j,S.appendChild(te)}})},i.a4=function(){return _++},i.a5=Qi,i.a6=E1,i.a7=Pc,i.a8=xl,i.a9=dS,i.aA=function(R){if(R.type==="custom")return new uS(R);switch(R.type){case"background":return new H9(R);case"circle":return new wn(R);case"fill":return new gr(R);case"fill-extrusion":return new Ev(R);case"heatmap":return new Po(R);case"hillshade":return new $c(R);case"line":return new ay(R);case"raster":return new Yx(R);case"symbol":return new uy(R)}},i.aB=p,i.aC=function(R,S){if(!R)return[{command:"setStyle",args:[S]}];let D=[];try{if(!ct(R.version,S.version))return[{command:"setStyle",args:[S]}];ct(R.center,S.center)||D.push({command:"setCenter",args:[S.center]}),ct(R.zoom,S.zoom)||D.push({command:"setZoom",args:[S.zoom]}),ct(R.bearing,S.bearing)||D.push({command:"setBearing",args:[S.bearing]}),ct(R.pitch,S.pitch)||D.push({command:"setPitch",args:[S.pitch]}),ct(R.sprite,S.sprite)||D.push({command:"setSprite",args:[S.sprite]}),ct(R.glyphs,S.glyphs)||D.push({command:"setGlyphs",args:[S.glyphs]}),ct(R.transition,S.transition)||D.push({command:"setTransition",args:[S.transition]}),ct(R.light,S.light)||D.push({command:"setLight",args:[S.light]}),ct(R.terrain,S.terrain)||D.push({command:"setTerrain",args:[S.terrain]}),ct(R.sky,S.sky)||D.push({command:"setSky",args:[S.sky]}),ct(R.projection,S.projection)||D.push({command:"setProjection",args:[S.projection]});let j={},te=[];(function(ve,De,Ze,at){let Tt;for(Tt in De=De||{},ve=ve||{})Object.prototype.hasOwnProperty.call(ve,Tt)&&(Object.prototype.hasOwnProperty.call(De,Tt)||ot(Tt,Ze,at));for(Tt in De)Object.prototype.hasOwnProperty.call(De,Tt)&&(Object.prototype.hasOwnProperty.call(ve,Tt)?ct(ve[Tt],De[Tt])||(ve[Tt].type==="geojson"&&De[Tt].type==="geojson"&&kt(ve,De,Tt)?qt(Ze,{command:"setGeoJSONSourceData",args:[Tt,De[Tt].data]}):Rt(Tt,De,Ze,at)):rt(Tt,De,Ze))})(R.sources,S.sources,te,j);let ue=[];R.layers&&R.layers.forEach(ve=>{"source"in ve&&j[ve.source]?D.push({command:"removeLayer",args:[ve.id]}):ue.push(ve)}),D=D.concat(te),function(ve,De,Ze){De=De||[];let at=(ve=ve||[]).map(Yt),Tt=De.map(Yt),Ft=ve.reduce(xr,{}),Qt=De.reduce(xr,{}),sr=at.slice(),Tr=Object.create(null),Pr,$r,ni,Di,pi;for(let ki=0,Zi=0;ki@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(D,j,te,ue)=>{let ve=te||ue;return S[j]=!ve||ve.toLowerCase(),""}),S["max-age"]){let D=parseInt(S["max-age"],10);isNaN(D)?delete S["max-age"]:S["max-age"]=D}return S},i.ab=function(R,S){let D=[];for(let j in R)j in S||D.push(j);return D},i.ac=k,i.ad=function(R,S,D){var j=Math.sin(D),te=Math.cos(D),ue=S[0],ve=S[1],De=S[2],Ze=S[3],at=S[4],Tt=S[5],Ft=S[6],Qt=S[7];return S!==R&&(R[8]=S[8],R[9]=S[9],R[10]=S[10],R[11]=S[11],R[12]=S[12],R[13]=S[13],R[14]=S[14],R[15]=S[15]),R[0]=ue*te+at*j,R[1]=ve*te+Tt*j,R[2]=De*te+Ft*j,R[3]=Ze*te+Qt*j,R[4]=at*te-ue*j,R[5]=Tt*te-ve*j,R[6]=Ft*te-De*j,R[7]=Qt*te-Ze*j,R},i.ae=function(R){var S=new Ln(16);return S[0]=R[0],S[1]=R[1],S[2]=R[2],S[3]=R[3],S[4]=R[4],S[5]=R[5],S[6]=R[6],S[7]=R[7],S[8]=R[8],S[9]=R[9],S[10]=R[10],S[11]=R[11],S[12]=R[12],S[13]=R[13],S[14]=R[14],S[15]=R[15],S},i.af=Za,i.ag=function(R,S){let D=0,j=0;if(R.kind==="constant")j=R.layoutSize;else if(R.kind!=="source"){let{interpolationType:te,minZoom:ue,maxZoom:ve}=R,De=te?k(xo.interpolationFactor(te,S,ue,ve),0,1):0;R.kind==="camera"?j=Mo.number(R.minSize,R.maxSize,De):D=De}return{uSizeT:D,uSize:j}},i.ai=function(R,{uSize:S,uSizeT:D},{lowerSize:j,upperSize:te}){return R.kind==="source"?j/v0:R.kind==="composite"?Mo.number(j/v0,te/v0,D):S},i.aj=aS,i.ak=function(R,S,D,j){let te=S.y-R.y,ue=S.x-R.x,ve=j.y-D.y,De=j.x-D.x,Ze=ve*ue-De*te;if(Ze===0)return null;let at=(De*(R.y-D.y)-ve*(R.x-D.x))/Ze;return new u(R.x+at*ue,R.y+at*te)},i.al=MC,i.am=xc,i.an=Un,i.ao=function(R){let S=1/0,D=1/0,j=-1/0,te=-1/0;for(let ue of R)S=Math.min(S,ue.x),D=Math.min(D,ue.y),j=Math.max(j,ue.x),te=Math.max(te,ue.y);return[S,D,j,te]},i.ap=kl,i.ar=nS,i.as=function(R,S){var D=S[0],j=S[1],te=S[2],ue=S[3],ve=S[4],De=S[5],Ze=S[6],at=S[7],Tt=S[8],Ft=S[9],Qt=S[10],sr=S[11],Tr=S[12],Pr=S[13],$r=S[14],ni=S[15],Di=D*De-j*ve,pi=D*Ze-te*ve,ki=D*at-ue*ve,Zi=j*Ze-te*De,ta=j*at-ue*De,Va=te*at-ue*Ze,Io=Tt*Pr-Ft*Tr,La=Tt*$r-Qt*Tr,Hn=Tt*ni-sr*Tr,lo=Ft*$r-Qt*Pr,$a=Ft*ni-sr*Pr,Xa=Qt*ni-sr*$r,Tn=Di*Xa-pi*$a+ki*lo+Zi*Hn-ta*La+Va*Io;return Tn?(R[0]=(De*Xa-Ze*$a+at*lo)*(Tn=1/Tn),R[1]=(te*$a-j*Xa-ue*lo)*Tn,R[2]=(Pr*Va-$r*ta+ni*Zi)*Tn,R[3]=(Qt*ta-Ft*Va-sr*Zi)*Tn,R[4]=(Ze*Hn-ve*Xa-at*La)*Tn,R[5]=(D*Xa-te*Hn+ue*La)*Tn,R[6]=($r*ki-Tr*Va-ni*pi)*Tn,R[7]=(Tt*Va-Qt*ki+sr*pi)*Tn,R[8]=(ve*$a-De*Hn+at*Io)*Tn,R[9]=(j*Hn-D*$a-ue*Io)*Tn,R[10]=(Tr*ta-Pr*ki+ni*Di)*Tn,R[11]=(Ft*ki-Tt*ta-sr*Di)*Tn,R[12]=(De*La-ve*lo-Ze*Io)*Tn,R[13]=(D*lo-j*La+te*Io)*Tn,R[14]=(Pr*pi-Tr*Zi-$r*Di)*Tn,R[15]=(Tt*Zi-Ft*pi+Qt*Di)*Tn,R):null},i.at=gS,i.au=Iw,i.av=mS,i.aw=function(){let R={},S=ce.$version;for(let D in ce.$root){let j=ce.$root[D];if(j.required){let te=null;te=D==="version"?S:j.type==="array"?[]:{},te!=null&&(R[D]=te)}}return R},i.ax=Cn,i.ay=ie,i.az=function(R){R=R.slice();let S=Object.create(null);for(let D=0;D25||j<0||j>=1||D<0||D>=1)},i.bc=function(R,S){return R[0]=S[0],R[1]=0,R[2]=0,R[3]=0,R[4]=0,R[5]=S[1],R[6]=0,R[7]=0,R[8]=0,R[9]=0,R[10]=S[2],R[11]=0,R[12]=0,R[13]=0,R[14]=0,R[15]=1,R},i.bd=class extends yt{},i.be=fS,i.bf=J9,i.bh=ge,i.bi=function(R,S){_e.REGISTERED_PROTOCOLS[R]=S},i.bj=function(R){delete _e.REGISTERED_PROTOCOLS[R]},i.bk=function(R,S){let D={};for(let te=0;teXa*kl)}let La=ve?"center":D.get("text-justify").evaluate(at,{},R.canonical),Hn=D.get("symbol-placement")==="point"?D.get("text-max-width").evaluate(at,{},R.canonical)*kl:1/0,lo=()=>{R.bucket.allowVerticalPlacement&&Ua(ki)&&(Tr.vertical=Hx(Pr,R.glyphMap,R.glyphPositions,R.imagePositions,Tt,Hn,ue,Va,"left",ta,ni,i.ah.vertical,!0,Qt,Ft))};if(!ve&&Io){let $a=new Set;if(La==="auto")for(let Tn=0;Tna(void 0,void 0,void 0,function*(){if(R.byteLength===0)return createImageBitmap(new ImageData(1,1));let S=new Blob([new Uint8Array(R)],{type:"image/png"});try{return createImageBitmap(S)}catch(D){throw new Error(`Could not load image because of ${D.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}}),i.e=L,i.f=R=>new Promise((S,D)=>{let j=new Image;j.onload=()=>{S(j),URL.revokeObjectURL(j.src),j.onload=null,window.requestAnimationFrame(()=>{j.src=X})},j.onerror=()=>D(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));let te=new Blob([new Uint8Array(R)],{type:"image/png"});j.src=R.byteLength?URL.createObjectURL(te):X}),i.g=Me,i.h=(R,S)=>Te(L(R,{type:"json"}),S),i.i=q,i.j=me,i.k=Ce,i.l=(R,S)=>Te(L(R,{type:"arrayBuffer"}),S),i.m=Te,i.n=function(R){return new tS(R).readFields(gQ,[])},i.o=Ao,i.p=iS,i.q=le,i.r=xi,i.s=Ee,i.t=Ti,i.u=fi,i.v=ce,i.w=T,i.x=function([R,S,D]){return S+=90,S*=Math.PI/180,D*=Math.PI/180,{x:R*Math.cos(S)*Math.sin(D),y:R*Math.sin(S)*Math.sin(D),z:R*Math.cos(D)}},i.y=Mo,i.z=Ko}),r("worker",["./shared"],function(i){"use strict";class a{constructor(Ne){this.keyCache={},Ne&&this.replace(Ne)}replace(Ne){this._layerConfigs={},this._layers={},this.update(Ne,[])}update(Ne,Ye){for(let Xe of Ne){this._layerConfigs[Xe.id]=Xe;let ht=this._layers[Xe.id]=i.aA(Xe);ht._featureFilter=i.a7(ht.filter),this.keyCache[Xe.id]&&delete this.keyCache[Xe.id]}for(let Xe of Ye)delete this.keyCache[Xe],delete this._layerConfigs[Xe],delete this._layers[Xe];this.familiesBySource={};let Ve=i.bk(Object.values(this._layerConfigs),this.keyCache);for(let Xe of Ve){let ht=Xe.map(Vt=>this._layers[Vt.id]),Le=ht[0];if(Le.visibility==="none")continue;let xe=Le.source||"",Se=this.familiesBySource[xe];Se||(Se=this.familiesBySource[xe]={});let lt=Le.sourceLayer||"_geojsonTileLayer",Gt=Se[lt];Gt||(Gt=Se[lt]=[]),Gt.push(ht)}}}class o{constructor(Ne){let Ye={},Ve=[];for(let xe in Ne){let Se=Ne[xe],lt=Ye[xe]={};for(let Gt in Se){let Vt=Se[+Gt];if(!Vt||Vt.bitmap.width===0||Vt.bitmap.height===0)continue;let ar={x:0,y:0,w:Vt.bitmap.width+2,h:Vt.bitmap.height+2};Ve.push(ar),lt[Gt]={rect:ar,metrics:Vt.metrics}}}let{w:Xe,h:ht}=i.p(Ve),Le=new i.o({width:Xe||1,height:ht||1});for(let xe in Ne){let Se=Ne[xe];for(let lt in Se){let Gt=Se[+lt];if(!Gt||Gt.bitmap.width===0||Gt.bitmap.height===0)continue;let Vt=Ye[xe][lt].rect;i.o.copy(Gt.bitmap,Le,{x:0,y:0},{x:Vt.x+1,y:Vt.y+1},Gt.bitmap)}}this.image=Le,this.positions=Ye}}i.bl("GlyphAtlas",o);class s{constructor(Ne){this.tileID=new i.S(Ne.tileID.overscaledZ,Ne.tileID.wrap,Ne.tileID.canonical.z,Ne.tileID.canonical.x,Ne.tileID.canonical.y),this.uid=Ne.uid,this.zoom=Ne.zoom,this.pixelRatio=Ne.pixelRatio,this.tileSize=Ne.tileSize,this.source=Ne.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=Ne.showCollisionBoxes,this.collectResourceTiming=!!Ne.collectResourceTiming,this.returnDependencies=!!Ne.returnDependencies,this.promoteId=Ne.promoteId,this.inFlightDependencies=[]}parse(Ne,Ye,Ve,Xe){return i._(this,void 0,void 0,function*(){this.status="parsing",this.data=Ne,this.collisionBoxArray=new i.a5;let ht=new i.bm(Object.keys(Ne.layers).sort()),Le=new i.bn(this.tileID,this.promoteId);Le.bucketLayerIDs=[];let xe={},Se={featureIndex:Le,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:Ve},lt=Ye.familiesBySource[this.source];for(let _n in lt){let $i=Ne.layers[_n];if(!$i)continue;$i.version===1&&i.w(`Vector tile source "${this.source}" layer "${_n}" does not use vector tile spec v2 and therefore may have some rendering errors.`);let zn=ht.encode(_n),Wn=[];for(let It=0;It<$i.length;It++){let ft=$i.feature(It),jt=Le.getId(ft,_n);Wn.push({feature:ft,id:jt,index:It,sourceLayerIndex:zn})}for(let It of lt[_n]){let ft=It[0];ft.source!==this.source&&i.w(`layer.source = ${ft.source} does not equal this.source = ${this.source}`),ft.minzoom&&this.zoom=ft.maxzoom||ft.visibility!=="none"&&(l(It,this.zoom,Ve),(xe[ft.id]=ft.createBucket({index:Le.bucketLayerIDs.length,layers:It,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:zn,sourceID:this.source})).populate(Wn,Se,this.tileID.canonical),Le.bucketLayerIDs.push(It.map(jt=>jt.id)))}}let Gt=i.aF(Se.glyphDependencies,_n=>Object.keys(_n).map(Number));this.inFlightDependencies.forEach(_n=>_n==null?void 0:_n.abort()),this.inFlightDependencies=[];let Vt=Promise.resolve({});if(Object.keys(Gt).length){let _n=new AbortController;this.inFlightDependencies.push(_n),Vt=Xe.sendAsync({type:"GG",data:{stacks:Gt,source:this.source,tileID:this.tileID,type:"glyphs"}},_n)}let ar=Object.keys(Se.iconDependencies),Qr=Promise.resolve({});if(ar.length){let _n=new AbortController;this.inFlightDependencies.push(_n),Qr=Xe.sendAsync({type:"GI",data:{icons:ar,source:this.source,tileID:this.tileID,type:"icons"}},_n)}let ai=Object.keys(Se.patternDependencies),jr=Promise.resolve({});if(ai.length){let _n=new AbortController;this.inFlightDependencies.push(_n),jr=Xe.sendAsync({type:"GI",data:{icons:ai,source:this.source,tileID:this.tileID,type:"patterns"}},_n)}let[ri,bi,nn]=yield Promise.all([Vt,Qr,jr]),Wi=new o(ri),Ni=new i.bo(bi,nn);for(let _n in xe){let $i=xe[_n];$i instanceof i.a6?(l($i.layers,this.zoom,Ve),i.bp({bucket:$i,glyphMap:ri,glyphPositions:Wi.positions,imageMap:bi,imagePositions:Ni.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical})):$i.hasPattern&&($i instanceof i.bq||$i instanceof i.br||$i instanceof i.bs)&&(l($i.layers,this.zoom,Ve),$i.addFeatures(Se,this.tileID.canonical,Ni.patternPositions))}return this.status="done",{buckets:Object.values(xe).filter(_n=>!_n.isEmpty()),featureIndex:Le,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:Wi.image,imageAtlas:Ni,glyphMap:this.returnDependencies?ri:null,iconMap:this.returnDependencies?bi:null,glyphPositions:this.returnDependencies?Wi.positions:null}})}}function l(ut,Ne,Ye){let Ve=new i.z(Ne);for(let Xe of ut)Xe.recalculate(Ve,Ye)}class u{constructor(Ne,Ye,Ve){this.actor=Ne,this.layerIndex=Ye,this.availableImages=Ve,this.fetching={},this.loading={},this.loaded={}}loadVectorTile(Ne,Ye){return i._(this,void 0,void 0,function*(){let Ve=yield i.l(Ne.request,Ye);try{return{vectorTile:new i.bt.VectorTile(new i.bu(Ve.data)),rawData:Ve.data,cacheControl:Ve.cacheControl,expires:Ve.expires}}catch(Xe){let ht=new Uint8Array(Ve.data),Le=`Unable to parse the tile at ${Ne.request.url}, `;throw Le+=ht[0]===31&&ht[1]===139?"please make sure the data is not gzipped and that you have configured the relevant header in the server":`got error: ${Xe.message}`,new Error(Le)}})}loadTile(Ne){return i._(this,void 0,void 0,function*(){let Ye=Ne.uid,Ve=!!(Ne&&Ne.request&&Ne.request.collectResourceTiming)&&new i.bv(Ne.request),Xe=new s(Ne);this.loading[Ye]=Xe;let ht=new AbortController;Xe.abort=ht;try{let Le=yield this.loadVectorTile(Ne,ht);if(delete this.loading[Ye],!Le)return null;let xe=Le.rawData,Se={};Le.expires&&(Se.expires=Le.expires),Le.cacheControl&&(Se.cacheControl=Le.cacheControl);let lt={};if(Ve){let Vt=Ve.finish();Vt&&(lt.resourceTiming=JSON.parse(JSON.stringify(Vt)))}Xe.vectorTile=Le.vectorTile;let Gt=Xe.parse(Le.vectorTile,this.layerIndex,this.availableImages,this.actor);this.loaded[Ye]=Xe,this.fetching[Ye]={rawTileData:xe,cacheControl:Se,resourceTiming:lt};try{let Vt=yield Gt;return i.e({rawTileData:xe.slice(0)},Vt,Se,lt)}finally{delete this.fetching[Ye]}}catch(Le){throw delete this.loading[Ye],Xe.status="done",this.loaded[Ye]=Xe,Le}})}reloadTile(Ne){return i._(this,void 0,void 0,function*(){let Ye=Ne.uid;if(!this.loaded||!this.loaded[Ye])throw new Error("Should not be trying to reload a tile that was never loaded or has been removed");let Ve=this.loaded[Ye];if(Ve.showCollisionBoxes=Ne.showCollisionBoxes,Ve.status==="parsing"){let Xe=yield Ve.parse(Ve.vectorTile,this.layerIndex,this.availableImages,this.actor),ht;if(this.fetching[Ye]){let{rawTileData:Le,cacheControl:xe,resourceTiming:Se}=this.fetching[Ye];delete this.fetching[Ye],ht=i.e({rawTileData:Le.slice(0)},Xe,xe,Se)}else ht=Xe;return ht}if(Ve.status==="done"&&Ve.vectorTile)return Ve.parse(Ve.vectorTile,this.layerIndex,this.availableImages,this.actor)})}abortTile(Ne){return i._(this,void 0,void 0,function*(){let Ye=this.loading,Ve=Ne.uid;Ye&&Ye[Ve]&&Ye[Ve].abort&&(Ye[Ve].abort.abort(),delete Ye[Ve])})}removeTile(Ne){return i._(this,void 0,void 0,function*(){this.loaded&&this.loaded[Ne.uid]&&delete this.loaded[Ne.uid]})}}class c{constructor(){this.loaded={}}loadTile(Ne){return i._(this,void 0,void 0,function*(){let{uid:Ye,encoding:Ve,rawImageData:Xe,redFactor:ht,greenFactor:Le,blueFactor:xe,baseShift:Se}=Ne,lt=Xe.width+2,Gt=Xe.height+2,Vt=i.b(Xe)?new i.R({width:lt,height:Gt},yield i.bw(Xe,-1,-1,lt,Gt)):Xe,ar=new i.bx(Ye,Vt,Ve,ht,Le,xe,Se);return this.loaded=this.loaded||{},this.loaded[Ye]=ar,ar})}removeTile(Ne){let Ye=this.loaded,Ve=Ne.uid;Ye&&Ye[Ve]&&delete Ye[Ve]}}function f(ut,Ne){if(ut.length!==0){h(ut[0],Ne);for(var Ye=1;Ye=Math.abs(xe)?Ye-Se+xe:xe-Se+Ye,Ye=Se}Ye+Ve>=0!=!!Ne&&ut.reverse()}var d=i.by(function ut(Ne,Ye){var Ve,Xe=Ne&&Ne.type;if(Xe==="FeatureCollection")for(Ve=0;Ve>31}function q(ut,Ne){for(var Ye=ut.loadGeometry(),Ve=ut.type,Xe=0,ht=0,Le=Ye.length,xe=0;xeut},G=Math.fround||(N=new Float32Array(1),ut=>(N[0]=+ut,N[0]));var N;let W=3,re=5,ae=6;class _e{constructor(Ne){this.options=Object.assign(Object.create(X),Ne),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(Ne){let{log:Ye,minZoom:Ve,maxZoom:Xe}=this.options;Ye&&console.time("total time");let ht=`prepare ${Ne.length} points`;Ye&&console.time(ht),this.points=Ne;let Le=[];for(let Se=0;Se=Ve;Se--){let lt=+Date.now();xe=this.trees[Se]=this._createTree(this._cluster(xe,Se)),Ye&&console.log("z%d: %d clusters in %dms",Se,xe.numItems,+Date.now()-lt)}return Ye&&console.timeEnd("total time"),this}getClusters(Ne,Ye){let Ve=((Ne[0]+180)%360+360)%360-180,Xe=Math.max(-90,Math.min(90,Ne[1])),ht=Ne[2]===180?180:((Ne[2]+180)%360+360)%360-180,Le=Math.max(-90,Math.min(90,Ne[3]));if(Ne[2]-Ne[0]>=360)Ve=-180,ht=180;else if(Ve>ht){let Vt=this.getClusters([Ve,Xe,180,Le],Ye),ar=this.getClusters([-180,Xe,ht,Le],Ye);return Vt.concat(ar)}let xe=this.trees[this._limitZoom(Ye)],Se=xe.range(ge(Ve),ie(Le),ge(ht),ie(Xe)),lt=xe.data,Gt=[];for(let Vt of Se){let ar=this.stride*Vt;Gt.push(lt[ar+re]>1?Me(lt,ar,this.clusterProps):this.points[lt[ar+W]])}return Gt}getChildren(Ne){let Ye=this._getOriginId(Ne),Ve=this._getOriginZoom(Ne),Xe="No cluster with the specified id.",ht=this.trees[Ve];if(!ht)throw new Error(Xe);let Le=ht.data;if(Ye*this.stride>=Le.length)throw new Error(Xe);let xe=this.options.radius/(this.options.extent*Math.pow(2,Ve-1)),Se=ht.within(Le[Ye*this.stride],Le[Ye*this.stride+1],xe),lt=[];for(let Gt of Se){let Vt=Gt*this.stride;Le[Vt+4]===Ne&<.push(Le[Vt+re]>1?Me(Le,Vt,this.clusterProps):this.points[Le[Vt+W]])}if(lt.length===0)throw new Error(Xe);return lt}getLeaves(Ne,Ye,Ve){let Xe=[];return this._appendLeaves(Xe,Ne,Ye=Ye||10,Ve=Ve||0,0),Xe}getTile(Ne,Ye,Ve){let Xe=this.trees[this._limitZoom(Ne)],ht=Math.pow(2,Ne),{extent:Le,radius:xe}=this.options,Se=xe/Le,lt=(Ve-Se)/ht,Gt=(Ve+1+Se)/ht,Vt={features:[]};return this._addTileFeatures(Xe.range((Ye-Se)/ht,lt,(Ye+1+Se)/ht,Gt),Xe.data,Ye,Ve,ht,Vt),Ye===0&&this._addTileFeatures(Xe.range(1-Se/ht,lt,1,Gt),Xe.data,ht,Ve,ht,Vt),Ye===ht-1&&this._addTileFeatures(Xe.range(0,lt,Se/ht,Gt),Xe.data,-1,Ve,ht,Vt),Vt.features.length?Vt:null}getClusterExpansionZoom(Ne){let Ye=this._getOriginZoom(Ne)-1;for(;Ye<=this.options.maxZoom;){let Ve=this.getChildren(Ne);if(Ye++,Ve.length!==1)break;Ne=Ve[0].properties.cluster_id}return Ye}_appendLeaves(Ne,Ye,Ve,Xe,ht){let Le=this.getChildren(Ye);for(let xe of Le){let Se=xe.properties;if(Se&&Se.cluster?ht+Se.point_count<=Xe?ht+=Se.point_count:ht=this._appendLeaves(Ne,Se.cluster_id,Ve,Xe,ht):ht1,Gt,Vt,ar;if(lt)Gt=ke(Ye,Se,this.clusterProps),Vt=Ye[Se],ar=Ye[Se+1];else{let jr=this.points[Ye[Se+W]];Gt=jr.properties;let[ri,bi]=jr.geometry.coordinates;Vt=ge(ri),ar=ie(bi)}let Qr={type:1,geometry:[[Math.round(this.options.extent*(Vt*ht-Ve)),Math.round(this.options.extent*(ar*ht-Xe))]],tags:Gt},ai;ai=lt||this.options.generateId?Ye[Se+W]:this.points[Ye[Se+W]].id,ai!==void 0&&(Qr.id=ai),Le.features.push(Qr)}}_limitZoom(Ne){return Math.max(this.options.minZoom,Math.min(Math.floor(+Ne),this.options.maxZoom+1))}_cluster(Ne,Ye){let{radius:Ve,extent:Xe,reduce:ht,minPoints:Le}=this.options,xe=Ve/(Xe*Math.pow(2,Ye)),Se=Ne.data,lt=[],Gt=this.stride;for(let Vt=0;VtYe&&(ri+=Se[nn+re])}if(ri>jr&&ri>=Le){let bi,nn=ar*jr,Wi=Qr*jr,Ni=-1,_n=((Vt/Gt|0)<<5)+(Ye+1)+this.points.length;for(let $i of ai){let zn=$i*Gt;if(Se[zn+2]<=Ye)continue;Se[zn+2]=Ye;let Wn=Se[zn+re];nn+=Se[zn]*Wn,Wi+=Se[zn+1]*Wn,Se[zn+4]=_n,ht&&(bi||(bi=this._map(Se,Vt,!0),Ni=this.clusterProps.length,this.clusterProps.push(bi)),ht(bi,this._map(Se,zn)))}Se[Vt+4]=_n,lt.push(nn/ri,Wi/ri,1/0,_n,-1,ri),ht&<.push(Ni)}else{for(let bi=0;bi1)for(let bi of ai){let nn=bi*Gt;if(!(Se[nn+2]<=Ye)){Se[nn+2]=Ye;for(let Wi=0;Wi>5}_getOriginZoom(Ne){return(Ne-this.points.length)%32}_map(Ne,Ye,Ve){if(Ne[Ye+re]>1){let Le=this.clusterProps[Ne[Ye+ae]];return Ve?Object.assign({},Le):Le}let Xe=this.points[Ne[Ye+W]].properties,ht=this.options.map(Xe);return Ve&&ht===Xe?Object.assign({},ht):ht}}function Me(ut,Ne,Ye){return{type:"Feature",id:ut[Ne+W],properties:ke(ut,Ne,Ye),geometry:{type:"Point",coordinates:[(Ve=ut[Ne],360*(Ve-.5)),Te(ut[Ne+1])]}};var Ve}function ke(ut,Ne,Ye){let Ve=ut[Ne+re],Xe=Ve>=1e4?`${Math.round(Ve/1e3)}k`:Ve>=1e3?Math.round(Ve/100)/10+"k":Ve,ht=ut[Ne+ae],Le=ht===-1?{}:Object.assign({},Ye[ht]);return Object.assign(Le,{cluster:!0,cluster_id:ut[Ne+W],point_count:Ve,point_count_abbreviated:Xe})}function ge(ut){return ut/360+.5}function ie(ut){let Ne=Math.sin(ut*Math.PI/180),Ye=.5-.25*Math.log((1+Ne)/(1-Ne))/Math.PI;return Ye<0?0:Ye>1?1:Ye}function Te(ut){let Ne=(180-360*ut)*Math.PI/180;return 360*Math.atan(Math.exp(Ne))/Math.PI-90}function Ee(ut,Ne,Ye,Ve){let Xe=Ve,ht=Ne+(Ye-Ne>>1),Le,xe=Ye-Ne,Se=ut[Ne],lt=ut[Ne+1],Gt=ut[Ye],Vt=ut[Ye+1];for(let ar=Ne+3;arXe)Le=ar,Xe=Qr;else if(Qr===Xe){let ai=Math.abs(ar-ht);aiVe&&(Le-Ne>3&&Ee(ut,Ne,Le,Ve),ut[Le+2]=Xe,Ye-Le>3&&Ee(ut,Le,Ye,Ve))}function Ae(ut,Ne,Ye,Ve,Xe,ht){let Le=Xe-Ye,xe=ht-Ve;if(Le!==0||xe!==0){let Se=((ut-Ye)*Le+(Ne-Ve)*xe)/(Le*Le+xe*xe);Se>1?(Ye=Xe,Ve=ht):Se>0&&(Ye+=Le*Se,Ve+=xe*Se)}return Le=ut-Ye,xe=Ne-Ve,Le*Le+xe*xe}function ze(ut,Ne,Ye,Ve){let Xe={id:ut==null?null:ut,type:Ne,geometry:Ye,tags:Ve,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};if(Ne==="Point"||Ne==="MultiPoint"||Ne==="LineString")Ce(Xe,Ye);else if(Ne==="Polygon")Ce(Xe,Ye[0]);else if(Ne==="MultiLineString")for(let ht of Ye)Ce(Xe,ht);else if(Ne==="MultiPolygon")for(let ht of Ye)Ce(Xe,ht[0]);return Xe}function Ce(ut,Ne){for(let Ye=0;Ye0&&(Le+=Ve?(Xe*Gt-lt*ht)/2:Math.sqrt(Math.pow(lt-Xe,2)+Math.pow(Gt-ht,2))),Xe=lt,ht=Gt}let xe=Ne.length-3;Ne[2]=1,Ee(Ne,0,xe,Ye),Ne[xe+2]=1,Ne.size=Math.abs(Le),Ne.start=0,Ne.end=Ne.size}function Ge(ut,Ne,Ye,Ve){for(let Xe=0;Xe1?1:Ye}function qt(ut,Ne,Ye,Ve,Xe,ht,Le,xe){if(Ve/=Ne,ht>=(Ye/=Ne)&&Le=Ve)return null;let Se=[];for(let lt of ut){let Gt=lt.geometry,Vt=lt.type,ar=Xe===0?lt.minX:lt.minY,Qr=Xe===0?lt.maxX:lt.maxY;if(ar>=Ye&&Qr=Ve)continue;let ai=[];if(Vt==="Point"||Vt==="MultiPoint")rt(Gt,ai,Ye,Ve,Xe);else if(Vt==="LineString")ot(Gt,ai,Ye,Ve,Xe,!1,xe.lineMetrics);else if(Vt==="MultiLineString")kt(Gt,ai,Ye,Ve,Xe,!1);else if(Vt==="Polygon")kt(Gt,ai,Ye,Ve,Xe,!0);else if(Vt==="MultiPolygon")for(let jr of Gt){let ri=[];kt(jr,ri,Ye,Ve,Xe,!0),ri.length&&ai.push(ri)}if(ai.length){if(xe.lineMetrics&&Vt==="LineString"){for(let jr of ai)Se.push(ze(lt.id,Vt,jr,lt.tags));continue}Vt!=="LineString"&&Vt!=="MultiLineString"||(ai.length===1?(Vt="LineString",ai=ai[0]):Vt="MultiLineString"),Vt!=="Point"&&Vt!=="MultiPoint"||(Vt=ai.length===3?"Point":"MultiPoint"),Se.push(ze(lt.id,Vt,ai,lt.tags))}}return Se.length?Se:null}function rt(ut,Ne,Ye,Ve,Xe){for(let ht=0;ht=Ye&&Le<=Ve&&Ct(Ne,ut[ht],ut[ht+1],ut[ht+2])}}function ot(ut,Ne,Ye,Ve,Xe,ht,Le){let xe=Rt(ut),Se=Xe===0?Yt:xr,lt,Gt,Vt=ut.start;for(let ri=0;riYe&&(Gt=Se(xe,bi,nn,Ni,_n,Ye),Le&&(xe.start=Vt+lt*Gt)):$i>Ve?zn=Ye&&(Gt=Se(xe,bi,nn,Ni,_n,Ye),Wn=!0),zn>Ve&&$i<=Ve&&(Gt=Se(xe,bi,nn,Ni,_n,Ve),Wn=!0),!ht&&Wn&&(Le&&(xe.end=Vt+lt*Gt),Ne.push(xe),xe=Rt(ut)),Le&&(Vt+=lt)}let ar=ut.length-3,Qr=ut[ar],ai=ut[ar+1],jr=Xe===0?Qr:ai;jr>=Ye&&jr<=Ve&&Ct(xe,Qr,ai,ut[ar+2]),ar=xe.length-3,ht&&ar>=3&&(xe[ar]!==xe[0]||xe[ar+1]!==xe[1])&&Ct(xe,xe[0],xe[1],xe[2]),xe.length&&Ne.push(xe)}function Rt(ut){let Ne=[];return Ne.size=ut.size,Ne.start=ut.start,Ne.end=ut.end,Ne}function kt(ut,Ne,Ye,Ve,Xe,ht){for(let Le of ut)ot(Le,Ne,Ye,Ve,Xe,ht,!1)}function Ct(ut,Ne,Ye,Ve){ut.push(Ne,Ye,Ve)}function Yt(ut,Ne,Ye,Ve,Xe,ht){let Le=(ht-Ne)/(Ve-Ne);return Ct(ut,ht,Ye+(Xe-Ye)*Le,1),Le}function xr(ut,Ne,Ye,Ve,Xe,ht){let Le=(ht-Ye)/(Xe-Ye);return Ct(ut,Ne+(Ve-Ne)*Le,ht,1),Le}function er(ut,Ne){let Ye=[];for(let Ve=0;Ve0&&Ne.size<(Xe?Le:Ve))return void(Ye.numPoints+=Ne.length/3);let xe=[];for(let Se=0;SeLe)&&(Ye.numSimplified++,xe.push(Ne[Se],Ne[Se+1])),Ye.numPoints++;Xe&&function(Se,lt){let Gt=0;for(let Vt=0,ar=Se.length,Qr=ar-2;Vt0===lt)for(let Vt=0,ar=Se.length;Vt24)throw new Error("maxZoom should be in the 0-24 range");if(Ye.promoteId&&Ye.generateId)throw new Error("promoteId and generateId cannot be used together.");let Xe=function(ht,Le){let xe=[];if(ht.type==="FeatureCollection")for(let Se=0;Se1&&console.time("creation"),Qr=this.tiles[ar]=Lt(Ne,Ye,Ve,Xe,lt),this.tileCoords.push({z:Ye,x:Ve,y:Xe}),Gt)){Gt>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",Ye,Ve,Xe,Qr.numFeatures,Qr.numPoints,Qr.numSimplified),console.timeEnd("creation"));let Wn=`z${Ye}`;this.stats[Wn]=(this.stats[Wn]||0)+1,this.total++}if(Qr.source=Ne,ht==null){if(Ye===lt.indexMaxZoom||Qr.numPoints<=lt.indexMaxPoints)continue}else{if(Ye===lt.maxZoom||Ye===ht)continue;if(ht!=null){let Wn=ht-Ye;if(Ve!==Le>>Wn||Xe!==xe>>Wn)continue}}if(Qr.source=null,Ne.length===0)continue;Gt>1&&console.time("clipping");let ai=.5*lt.buffer/lt.extent,jr=.5-ai,ri=.5+ai,bi=1+ai,nn=null,Wi=null,Ni=null,_n=null,$i=qt(Ne,Vt,Ve-ai,Ve+ri,0,Qr.minX,Qr.maxX,lt),zn=qt(Ne,Vt,Ve+jr,Ve+bi,0,Qr.minX,Qr.maxX,lt);Ne=null,$i&&(nn=qt($i,Vt,Xe-ai,Xe+ri,1,Qr.minY,Qr.maxY,lt),Wi=qt($i,Vt,Xe+jr,Xe+bi,1,Qr.minY,Qr.maxY,lt),$i=null),zn&&(Ni=qt(zn,Vt,Xe-ai,Xe+ri,1,Qr.minY,Qr.maxY,lt),_n=qt(zn,Vt,Xe+jr,Xe+bi,1,Qr.minY,Qr.maxY,lt),zn=null),Gt>1&&console.timeEnd("clipping"),Se.push(nn||[],Ye+1,2*Ve,2*Xe),Se.push(Wi||[],Ye+1,2*Ve,2*Xe+1),Se.push(Ni||[],Ye+1,2*Ve+1,2*Xe),Se.push(_n||[],Ye+1,2*Ve+1,2*Xe+1)}}getTile(Ne,Ye,Ve){Ne=+Ne,Ye=+Ye,Ve=+Ve;let Xe=this.options,{extent:ht,debug:Le}=Xe;if(Ne<0||Ne>24)return null;let xe=1<1&&console.log("drilling down to z%d-%d-%d",Ne,Ye,Ve);let lt,Gt=Ne,Vt=Ye,ar=Ve;for(;!lt&&Gt>0;)Gt--,Vt>>=1,ar>>=1,lt=this.tiles[$t(Gt,Vt,ar)];return lt&<.source?(Le>1&&(console.log("found parent tile z%d-%d-%d",Gt,Vt,ar),console.time("drilling down")),this.splitTile(lt.source,Gt,Vt,ar,Ne,Ye,Ve),Le>1&&console.timeEnd("drilling down"),this.tiles[Se]?xt(this.tiles[Se],ht):null):null}}function $t(ut,Ne,Ye){return 32*((1<{Vt.properties=Qr;let ai={};for(let jr of ar)ai[jr]=Se[jr].evaluate(Gt,Vt);return ai},Le.reduce=(Qr,ai)=>{Vt.properties=ai;for(let jr of ar)Gt.accumulated=Qr[jr],Qr[jr]=lt[jr].evaluate(Gt,Vt)},Le}(Ne)).load((yield this._pendingData).features):(Xe=yield this._pendingData,new Ht(Xe,Ne.geojsonVtOptions)),this.loaded={};let ht={};if(Ve){let Le=Ve.finish();Le&&(ht.resourceTiming={},ht.resourceTiming[Ne.source]=JSON.parse(JSON.stringify(Le)))}return ht}catch(ht){if(delete this._pendingRequest,i.bB(ht))return{abandoned:!0};throw ht}var Xe})}getData(){return i._(this,void 0,void 0,function*(){return this._pendingData})}reloadTile(Ne){let Ye=this.loaded;return Ye&&Ye[Ne.uid]?super.reloadTile(Ne):this.loadTile(Ne)}loadAndProcessGeoJSON(Ne,Ye){return i._(this,void 0,void 0,function*(){let Ve=yield this.loadGeoJSON(Ne,Ye);if(delete this._pendingRequest,typeof Ve!="object")throw new Error(`Input data given to '${Ne.source}' is not a valid GeoJSON object.`);if(d(Ve,!0),Ne.filter){let Xe=i.bC(Ne.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(Xe.result==="error")throw new Error(Xe.value.map(Le=>`${Le.key}: ${Le.message}`).join(", "));Ve={type:"FeatureCollection",features:Ve.features.filter(Le=>Xe.value.evaluate({zoom:0},Le))}}return Ve})}loadGeoJSON(Ne,Ye){return i._(this,void 0,void 0,function*(){let{promoteId:Ve}=Ne;if(Ne.request){let Xe=yield i.h(Ne.request,Ye);return this._dataUpdateable=_r(Xe.data,Ve)?Br(Xe.data,Ve):void 0,Xe.data}if(typeof Ne.data=="string")try{let Xe=JSON.parse(Ne.data);return this._dataUpdateable=_r(Xe,Ve)?Br(Xe,Ve):void 0,Xe}catch(Xe){throw new Error(`Input data given to '${Ne.source}' is not a valid GeoJSON object.`)}if(!Ne.dataDiff)throw new Error(`Input data given to '${Ne.source}' is not a valid GeoJSON object.`);if(!this._dataUpdateable)throw new Error(`Cannot update existing geojson data in ${Ne.source}`);return function(Xe,ht,Le){var xe,Se,lt,Gt;if(ht.removeAll&&Xe.clear(),ht.remove)for(let Vt of ht.remove)Xe.delete(Vt);if(ht.add)for(let Vt of ht.add){let ar=fr(Vt,Le);ar!=null&&Xe.set(ar,Vt)}if(ht.update)for(let Vt of ht.update){let ar=Xe.get(Vt.id);if(ar==null)continue;let Qr=!Vt.removeAllProperties&&(((xe=Vt.removeProperties)===null||xe===void 0?void 0:xe.length)>0||((Se=Vt.addOrUpdateProperties)===null||Se===void 0?void 0:Se.length)>0);if((Vt.newGeometry||Vt.removeAllProperties||Qr)&&(ar=Object.assign({},ar),Xe.set(Vt.id,ar),Qr&&(ar.properties=Object.assign({},ar.properties))),Vt.newGeometry&&(ar.geometry=Vt.newGeometry),Vt.removeAllProperties)ar.properties={};else if(((lt=Vt.removeProperties)===null||lt===void 0?void 0:lt.length)>0)for(let ai of Vt.removeProperties)Object.prototype.hasOwnProperty.call(ar.properties,ai)&&delete ar.properties[ai];if(((Gt=Vt.addOrUpdateProperties)===null||Gt===void 0?void 0:Gt.length)>0)for(let{key:ai,value:jr}of Vt.addOrUpdateProperties)ar.properties[ai]=jr}}(this._dataUpdateable,Ne.dataDiff,Ve),{type:"FeatureCollection",features:Array.from(this._dataUpdateable.values())}})}removeSource(Ne){return i._(this,void 0,void 0,function*(){this._pendingRequest&&this._pendingRequest.abort()})}getClusterExpansionZoom(Ne){return this._geoJSONIndex.getClusterExpansionZoom(Ne.clusterId)}getClusterChildren(Ne){return this._geoJSONIndex.getChildren(Ne.clusterId)}getClusterLeaves(Ne){return this._geoJSONIndex.getLeaves(Ne.clusterId,Ne.limit,Ne.offset)}}class Nr{constructor(Ne){this.self=Ne,this.actor=new i.F(Ne),this.layerIndexes={},this.availableImages={},this.workerSources={},this.demWorkerSources={},this.externalWorkerSourceTypes={},this.self.registerWorkerSource=(Ye,Ve)=>{if(this.externalWorkerSourceTypes[Ye])throw new Error(`Worker source with name "${Ye}" already registered.`);this.externalWorkerSourceTypes[Ye]=Ve},this.self.addProtocol=i.bi,this.self.removeProtocol=i.bj,this.self.registerRTLTextPlugin=Ye=>{if(i.bD.isParsed())throw new Error("RTL text plugin already registered.");i.bD.setMethods(Ye)},this.actor.registerMessageHandler("LDT",(Ye,Ve)=>this._getDEMWorkerSource(Ye,Ve.source).loadTile(Ve)),this.actor.registerMessageHandler("RDT",(Ye,Ve)=>i._(this,void 0,void 0,function*(){this._getDEMWorkerSource(Ye,Ve.source).removeTile(Ve)})),this.actor.registerMessageHandler("GCEZ",(Ye,Ve)=>i._(this,void 0,void 0,function*(){return this._getWorkerSource(Ye,Ve.type,Ve.source).getClusterExpansionZoom(Ve)})),this.actor.registerMessageHandler("GCC",(Ye,Ve)=>i._(this,void 0,void 0,function*(){return this._getWorkerSource(Ye,Ve.type,Ve.source).getClusterChildren(Ve)})),this.actor.registerMessageHandler("GCL",(Ye,Ve)=>i._(this,void 0,void 0,function*(){return this._getWorkerSource(Ye,Ve.type,Ve.source).getClusterLeaves(Ve)})),this.actor.registerMessageHandler("LD",(Ye,Ve)=>this._getWorkerSource(Ye,Ve.type,Ve.source).loadData(Ve)),this.actor.registerMessageHandler("GD",(Ye,Ve)=>this._getWorkerSource(Ye,Ve.type,Ve.source).getData()),this.actor.registerMessageHandler("LT",(Ye,Ve)=>this._getWorkerSource(Ye,Ve.type,Ve.source).loadTile(Ve)),this.actor.registerMessageHandler("RT",(Ye,Ve)=>this._getWorkerSource(Ye,Ve.type,Ve.source).reloadTile(Ve)),this.actor.registerMessageHandler("AT",(Ye,Ve)=>this._getWorkerSource(Ye,Ve.type,Ve.source).abortTile(Ve)),this.actor.registerMessageHandler("RMT",(Ye,Ve)=>this._getWorkerSource(Ye,Ve.type,Ve.source).removeTile(Ve)),this.actor.registerMessageHandler("RS",(Ye,Ve)=>i._(this,void 0,void 0,function*(){if(!this.workerSources[Ye]||!this.workerSources[Ye][Ve.type]||!this.workerSources[Ye][Ve.type][Ve.source])return;let Xe=this.workerSources[Ye][Ve.type][Ve.source];delete this.workerSources[Ye][Ve.type][Ve.source],Xe.removeSource!==void 0&&Xe.removeSource(Ve)})),this.actor.registerMessageHandler("RM",Ye=>i._(this,void 0,void 0,function*(){delete this.layerIndexes[Ye],delete this.availableImages[Ye],delete this.workerSources[Ye],delete this.demWorkerSources[Ye]})),this.actor.registerMessageHandler("SR",(Ye,Ve)=>i._(this,void 0,void 0,function*(){this.referrer=Ve})),this.actor.registerMessageHandler("SRPS",(Ye,Ve)=>this._syncRTLPluginState(Ye,Ve)),this.actor.registerMessageHandler("IS",(Ye,Ve)=>i._(this,void 0,void 0,function*(){this.self.importScripts(Ve)})),this.actor.registerMessageHandler("SI",(Ye,Ve)=>this._setImages(Ye,Ve)),this.actor.registerMessageHandler("UL",(Ye,Ve)=>i._(this,void 0,void 0,function*(){this._getLayerIndex(Ye).update(Ve.layers,Ve.removedIds)})),this.actor.registerMessageHandler("SL",(Ye,Ve)=>i._(this,void 0,void 0,function*(){this._getLayerIndex(Ye).replace(Ve)}))}_setImages(Ne,Ye){return i._(this,void 0,void 0,function*(){this.availableImages[Ne]=Ye;for(let Ve in this.workerSources[Ne]){let Xe=this.workerSources[Ne][Ve];for(let ht in Xe)Xe[ht].availableImages=Ye}})}_syncRTLPluginState(Ne,Ye){return i._(this,void 0,void 0,function*(){if(i.bD.isParsed())return i.bD.getState();if(Ye.pluginStatus!=="loading")return i.bD.setState(Ye),Ye;let Ve=Ye.pluginURL;if(this.self.importScripts(Ve),i.bD.isParsed()){let Xe={pluginStatus:"loaded",pluginURL:Ve};return i.bD.setState(Xe),Xe}throw i.bD.setState({pluginStatus:"error",pluginURL:""}),new Error(`RTL Text Plugin failed to import scripts from ${Ve}`)})}_getAvailableImages(Ne){let Ye=this.availableImages[Ne];return Ye||(Ye=[]),Ye}_getLayerIndex(Ne){let Ye=this.layerIndexes[Ne];return Ye||(Ye=this.layerIndexes[Ne]=new a),Ye}_getWorkerSource(Ne,Ye,Ve){if(this.workerSources[Ne]||(this.workerSources[Ne]={}),this.workerSources[Ne][Ye]||(this.workerSources[Ne][Ye]={}),!this.workerSources[Ne][Ye][Ve]){let Xe={sendAsync:(ht,Le)=>(ht.targetMapId=Ne,this.actor.sendAsync(ht,Le))};switch(Ye){case"vector":this.workerSources[Ne][Ye][Ve]=new u(Xe,this._getLayerIndex(Ne),this._getAvailableImages(Ne));break;case"geojson":this.workerSources[Ne][Ye][Ve]=new Or(Xe,this._getLayerIndex(Ne),this._getAvailableImages(Ne));break;default:this.workerSources[Ne][Ye][Ve]=new this.externalWorkerSourceTypes[Ye](Xe,this._getLayerIndex(Ne),this._getAvailableImages(Ne))}}return this.workerSources[Ne][Ye][Ve]}_getDEMWorkerSource(Ne,Ye){return this.demWorkerSources[Ne]||(this.demWorkerSources[Ne]={}),this.demWorkerSources[Ne][Ye]||(this.demWorkerSources[Ne][Ye]=new c),this.demWorkerSources[Ne][Ye]}}return i.i(self)&&(self.worker=new Nr(self)),Nr}),r("index",["exports","./shared"],function(i,a){"use strict";var o="4.7.1";let s,l,u={now:typeof performance!="undefined"&&performance&&performance.now?performance.now.bind(performance):Date.now.bind(Date),frameAsync:le=>new Promise((w,B)=>{let Q=requestAnimationFrame(w);le.signal.addEventListener("abort",()=>{cancelAnimationFrame(Q),B(a.c())})}),getImageData(le,w=0){return this.getImageCanvasContext(le).getImageData(-w,-w,le.width+2*w,le.height+2*w)},getImageCanvasContext(le){let w=window.document.createElement("canvas"),B=w.getContext("2d",{willReadFrequently:!0});if(!B)throw new Error("failed to create canvas 2d context");return w.width=le.width,w.height=le.height,B.drawImage(le,0,0,le.width,le.height),B},resolveURL:le=>(s||(s=document.createElement("a")),s.href=le,s.href),hardwareConcurrency:typeof navigator!="undefined"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(l==null&&(l=matchMedia("(prefers-reduced-motion: reduce)")),l.matches)}};class c{static testProp(w){if(!c.docStyle)return w[0];for(let B=0;B{window.removeEventListener("click",c.suppressClickInternal,!0)},0)}static getScale(w){let B=w.getBoundingClientRect();return{x:B.width/w.offsetWidth||1,y:B.height/w.offsetHeight||1,boundingClientRect:B}}static getPoint(w,B,Q){let ee=B.boundingClientRect;return new a.P((Q.clientX-ee.left)/B.x-w.clientLeft,(Q.clientY-ee.top)/B.y-w.clientTop)}static mousePos(w,B){let Q=c.getScale(w);return c.getPoint(w,Q,B)}static touchPos(w,B){let Q=[],ee=c.getScale(w);for(let se=0;se{h&&b(h),h=null,x=!0},d.onerror=()=>{v=!0,h=null},d.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA="),function(le){let w,B,Q,ee;le.resetRequestQueue=()=>{w=[],B=0,Q=0,ee={}},le.addThrottleControl=it=>{let yt=Q++;return ee[yt]=it,yt},le.removeThrottleControl=it=>{delete ee[it],qe()},le.getImage=(it,yt,Ot=!0)=>new Promise((Nt,hr)=>{f.supported&&(it.headers||(it.headers={}),it.headers.accept="image/webp,*/*"),a.e(it,{type:"image"}),w.push({abortController:yt,requestParameters:it,supportImageRefresh:Ot,state:"queued",onError:Sr=>{hr(Sr)},onSuccess:Sr=>{Nt(Sr)}}),qe()});let se=it=>a._(this,void 0,void 0,function*(){it.state="running";let{requestParameters:yt,supportImageRefresh:Ot,onError:Nt,onSuccess:hr,abortController:Sr}=it,he=Ot===!1&&!a.i(self)&&!a.g(yt.url)&&(!yt.headers||Object.keys(yt.headers).reduce((Oe,Je)=>Oe&&Je==="accept",!0));B++;let be=he?je(yt,Sr):a.m(yt,Sr);try{let Oe=yield be;delete it.abortController,it.state="completed",Oe.data instanceof HTMLImageElement||a.b(Oe.data)?hr(Oe):Oe.data&&hr({data:yield(Pe=Oe.data,typeof createImageBitmap=="function"?a.d(Pe):a.f(Pe)),cacheControl:Oe.cacheControl,expires:Oe.expires})}catch(Oe){delete it.abortController,Nt(Oe)}finally{B--,qe()}var Pe}),qe=()=>{let it=(()=>{for(let yt of Object.keys(ee))if(ee[yt]())return!0;return!1})()?a.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:a.a.MAX_PARALLEL_IMAGE_REQUESTS;for(let yt=B;yt0;yt++){let Ot=w.shift();Ot.abortController.signal.aborted?yt--:se(Ot)}},je=(it,yt)=>new Promise((Ot,Nt)=>{let hr=new Image,Sr=it.url,he=it.credentials;he&&he==="include"?hr.crossOrigin="use-credentials":(he&&he==="same-origin"||!a.s(Sr))&&(hr.crossOrigin="anonymous"),yt.signal.addEventListener("abort",()=>{hr.src="",Nt(a.c())}),hr.fetchPriority="high",hr.onload=()=>{hr.onerror=hr.onload=null,Ot({data:hr})},hr.onerror=()=>{hr.onerror=hr.onload=null,yt.signal.aborted||Nt(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))},hr.src=Sr})}(g||(g={})),g.resetRequestQueue();class E{constructor(w){this._transformRequestFn=w}transformRequest(w,B){return this._transformRequestFn&&this._transformRequestFn(w,B)||{url:w}}setTransformRequest(w){this._transformRequestFn=w}}function k(le){var w=new a.A(3);return w[0]=le[0],w[1]=le[1],w[2]=le[2],w}var A,L=function(le,w,B){return le[0]=w[0]-B[0],le[1]=w[1]-B[1],le[2]=w[2]-B[2],le};A=new a.A(3),a.A!=Float32Array&&(A[0]=0,A[1]=0,A[2]=0);var _=function(le){var w=le[0],B=le[1];return w*w+B*B};function C(le){let w=[];if(typeof le=="string")w.push({id:"default",url:le});else if(le&&le.length>0){let B=[];for(let{id:Q,url:ee}of le){let se=`${Q}${ee}`;B.indexOf(se)===-1&&(B.push(se),w.push({id:Q,url:ee}))}}return w}function M(le,w,B){let Q=le.split("?");return Q[0]+=`${w}${B}`,Q.join("?")}(function(){var le=new a.A(2);a.A!=Float32Array&&(le[0]=0,le[1]=0)})();class p{constructor(w,B,Q,ee){this.context=w,this.format=Q,this.texture=w.gl.createTexture(),this.update(B,ee)}update(w,B,Q){let{width:ee,height:se}=w,qe=!(this.size&&this.size[0]===ee&&this.size[1]===se||Q),{context:je}=this,{gl:it}=je;if(this.useMipmap=!!(B&&B.useMipmap),it.bindTexture(it.TEXTURE_2D,this.texture),je.pixelStoreUnpackFlipY.set(!1),je.pixelStoreUnpack.set(1),je.pixelStoreUnpackPremultiplyAlpha.set(this.format===it.RGBA&&(!B||B.premultiply!==!1)),qe)this.size=[ee,se],w instanceof HTMLImageElement||w instanceof HTMLCanvasElement||w instanceof HTMLVideoElement||w instanceof ImageData||a.b(w)?it.texImage2D(it.TEXTURE_2D,0,this.format,this.format,it.UNSIGNED_BYTE,w):it.texImage2D(it.TEXTURE_2D,0,this.format,ee,se,0,this.format,it.UNSIGNED_BYTE,w.data);else{let{x:yt,y:Ot}=Q||{x:0,y:0};w instanceof HTMLImageElement||w instanceof HTMLCanvasElement||w instanceof HTMLVideoElement||w instanceof ImageData||a.b(w)?it.texSubImage2D(it.TEXTURE_2D,0,yt,Ot,it.RGBA,it.UNSIGNED_BYTE,w):it.texSubImage2D(it.TEXTURE_2D,0,yt,Ot,ee,se,it.RGBA,it.UNSIGNED_BYTE,w.data)}this.useMipmap&&this.isSizePowerOfTwo()&&it.generateMipmap(it.TEXTURE_2D)}bind(w,B,Q){let{context:ee}=this,{gl:se}=ee;se.bindTexture(se.TEXTURE_2D,this.texture),Q!==se.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(Q=se.LINEAR),w!==this.filter&&(se.texParameteri(se.TEXTURE_2D,se.TEXTURE_MAG_FILTER,w),se.texParameteri(se.TEXTURE_2D,se.TEXTURE_MIN_FILTER,Q||w),this.filter=w),B!==this.wrap&&(se.texParameteri(se.TEXTURE_2D,se.TEXTURE_WRAP_S,B),se.texParameteri(se.TEXTURE_2D,se.TEXTURE_WRAP_T,B),this.wrap=B)}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){let{gl:w}=this.context;w.deleteTexture(this.texture),this.texture=null}}function P(le){let{userImage:w}=le;return!!(w&&w.render&&w.render())&&(le.data.replace(new Uint8Array(w.data.buffer)),!0)}class T extends a.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new a.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(w){if(this.loaded!==w&&(this.loaded=w,w)){for(let{ids:B,promiseResolve:Q}of this.requestors)Q(this._getImagesForIds(B));this.requestors=[]}}getImage(w){let B=this.images[w];if(B&&!B.data&&B.spriteData){let Q=B.spriteData;B.data=new a.R({width:Q.width,height:Q.height},Q.context.getImageData(Q.x,Q.y,Q.width,Q.height).data),B.spriteData=null}return B}addImage(w,B){if(this.images[w])throw new Error(`Image id ${w} already exist, use updateImage instead`);this._validate(w,B)&&(this.images[w]=B)}_validate(w,B){let Q=!0,ee=B.data||B.spriteData;return this._validateStretch(B.stretchX,ee&&ee.width)||(this.fire(new a.j(new Error(`Image "${w}" has invalid "stretchX" value`))),Q=!1),this._validateStretch(B.stretchY,ee&&ee.height)||(this.fire(new a.j(new Error(`Image "${w}" has invalid "stretchY" value`))),Q=!1),this._validateContent(B.content,B)||(this.fire(new a.j(new Error(`Image "${w}" has invalid "content" value`))),Q=!1),Q}_validateStretch(w,B){if(!w)return!0;let Q=0;for(let ee of w){if(ee[0]{let ee=!0;if(!this.isLoaded())for(let se of w)this.images[se]||(ee=!1);this.isLoaded()||ee?B(this._getImagesForIds(w)):this.requestors.push({ids:w,promiseResolve:B})})}_getImagesForIds(w){let B={};for(let Q of w){let ee=this.getImage(Q);ee||(this.fire(new a.k("styleimagemissing",{id:Q})),ee=this.getImage(Q)),ee?B[Q]={data:ee.data.clone(),pixelRatio:ee.pixelRatio,sdf:ee.sdf,version:ee.version,stretchX:ee.stretchX,stretchY:ee.stretchY,content:ee.content,textFitWidth:ee.textFitWidth,textFitHeight:ee.textFitHeight,hasRenderCallback:!!(ee.userImage&&ee.userImage.render)}:a.w(`Image "${Q}" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.`)}return B}getPixelSize(){let{width:w,height:B}=this.atlasImage;return{width:w,height:B}}getPattern(w){let B=this.patterns[w],Q=this.getImage(w);if(!Q)return null;if(B&&B.position.version===Q.version)return B.position;if(B)B.position.version=Q.version;else{let ee={w:Q.data.width+2,h:Q.data.height+2,x:0,y:0},se=new a.I(ee,Q);this.patterns[w]={bin:ee,position:se}}return this._updatePatternAtlas(),this.patterns[w].position}bind(w){let B=w.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new p(w,this.atlasImage,B.RGBA),this.atlasTexture.bind(B.LINEAR,B.CLAMP_TO_EDGE)}_updatePatternAtlas(){let w=[];for(let se in this.patterns)w.push(this.patterns[se].bin);let{w:B,h:Q}=a.p(w),ee=this.atlasImage;ee.resize({width:B||1,height:Q||1});for(let se in this.patterns){let{bin:qe}=this.patterns[se],je=qe.x+1,it=qe.y+1,yt=this.getImage(se).data,Ot=yt.width,Nt=yt.height;a.R.copy(yt,ee,{x:0,y:0},{x:je,y:it},{width:Ot,height:Nt}),a.R.copy(yt,ee,{x:0,y:Nt-1},{x:je,y:it-1},{width:Ot,height:1}),a.R.copy(yt,ee,{x:0,y:0},{x:je,y:it+Nt},{width:Ot,height:1}),a.R.copy(yt,ee,{x:Ot-1,y:0},{x:je-1,y:it},{width:1,height:Nt}),a.R.copy(yt,ee,{x:0,y:0},{x:je+Ot,y:it},{width:1,height:Nt})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}dispatchRenderCallbacks(w){for(let B of w){if(this.callbackDispatchedThisFrame[B])continue;this.callbackDispatchedThisFrame[B]=!0;let Q=this.getImage(B);Q||a.w(`Image with ID: "${B}" was not found`),P(Q)&&this.updateImage(B,Q)}}}let F=1e20;function q(le,w,B,Q,ee,se,qe,je,it){for(let yt=w;yt-1);it++,se[it]=je,qe[it]=yt,qe[it+1]=F}for(let je=0,it=0;je65535)throw new Error("glyphs > 65535 not supported");if(Q.ranges[se])return{stack:w,id:B,glyph:ee};if(!this.url)throw new Error("glyphsUrl is not set");if(!Q.requests[se]){let je=H.loadGlyphRange(w,se,this.url,this.requestManager);Q.requests[se]=je}let qe=yield Q.requests[se];for(let je in qe)this._doesCharSupportLocalGlyph(+je)||(Q.glyphs[+je]=qe[+je]);return Q.ranges[se]=!0,{stack:w,id:B,glyph:qe[B]||null}})}_doesCharSupportLocalGlyph(w){return!!this.localIdeographFontFamily&&new RegExp("\\p{Ideo}|\\p{sc=Hang}|\\p{sc=Hira}|\\p{sc=Kana}","u").test(String.fromCodePoint(w))}_tinySDF(w,B,Q){let ee=this.localIdeographFontFamily;if(!ee||!this._doesCharSupportLocalGlyph(Q))return;let se=w.tinySDF;if(!se){let je="400";/bold/i.test(B)?je="900":/medium/i.test(B)?je="500":/light/i.test(B)&&(je="200"),se=w.tinySDF=new H.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:ee,fontWeight:je})}let qe=se.draw(String.fromCharCode(Q));return{id:Q,bitmap:new a.o({width:qe.width||60,height:qe.height||60},qe.data),metrics:{width:qe.glyphWidth/2||24,height:qe.glyphHeight/2||24,left:qe.glyphLeft/2+.5||0,top:qe.glyphTop/2-27.5||-8,advance:qe.glyphAdvance/2||24,isDoubleResolution:!0}}}}H.loadGlyphRange=function(le,w,B,Q){return a._(this,void 0,void 0,function*(){let ee=256*w,se=ee+255,qe=Q.transformRequest(B.replace("{fontstack}",le).replace("{range}",`${ee}-${se}`),"Glyphs"),je=yield a.l(qe,new AbortController);if(!je||!je.data)throw new Error(`Could not load glyph range. range: ${w}, ${ee}-${se}`);let it={};for(let yt of a.n(je.data))it[yt.id]=yt;return it})},H.TinySDF=class{constructor({fontSize:le=24,buffer:w=3,radius:B=8,cutoff:Q=.25,fontFamily:ee="sans-serif",fontWeight:se="normal",fontStyle:qe="normal"}={}){this.buffer=w,this.cutoff=Q,this.radius=B;let je=this.size=le+4*w,it=this._createCanvas(je),yt=this.ctx=it.getContext("2d",{willReadFrequently:!0});yt.font=`${qe} ${se} ${le}px ${ee}`,yt.textBaseline="alphabetic",yt.textAlign="left",yt.fillStyle="black",this.gridOuter=new Float64Array(je*je),this.gridInner=new Float64Array(je*je),this.f=new Float64Array(je),this.z=new Float64Array(je+1),this.v=new Uint16Array(je)}_createCanvas(le){let w=document.createElement("canvas");return w.width=w.height=le,w}draw(le){let{width:w,actualBoundingBoxAscent:B,actualBoundingBoxDescent:Q,actualBoundingBoxLeft:ee,actualBoundingBoxRight:se}=this.ctx.measureText(le),qe=Math.ceil(B),je=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(se-ee))),it=Math.min(this.size-this.buffer,qe+Math.ceil(Q)),yt=je+2*this.buffer,Ot=it+2*this.buffer,Nt=Math.max(yt*Ot,0),hr=new Uint8ClampedArray(Nt),Sr={data:hr,width:yt,height:Ot,glyphWidth:je,glyphHeight:it,glyphTop:qe,glyphLeft:0,glyphAdvance:w};if(je===0||it===0)return Sr;let{ctx:he,buffer:be,gridInner:Pe,gridOuter:Oe}=this;he.clearRect(be,be,je,it),he.fillText(le,be,be+qe);let Je=he.getImageData(be,be,je,it);Oe.fill(F,0,Nt),Pe.fill(0,0,Nt);for(let He=0;He0?Ut*Ut:0,Pe[Dt]=Ut<0?Ut*Ut:0}}q(Oe,0,0,yt,Ot,yt,this.f,this.v,this.z),q(Pe,be,be,je,it,yt,this.f,this.v,this.z);for(let He=0;He1&&(it=w[++je]);let Ot=Math.abs(yt-it.left),Nt=Math.abs(yt-it.right),hr=Math.min(Ot,Nt),Sr,he=se/Q*(ee+1);if(it.isDash){let be=ee-Math.abs(he);Sr=Math.sqrt(hr*hr+be*be)}else Sr=ee-Math.sqrt(hr*hr+he*he);this.data[qe+yt]=Math.max(0,Math.min(255,Sr+128))}}}addRegularDash(w){for(let je=w.length-1;je>=0;--je){let it=w[je],yt=w[je+1];it.zeroLength?w.splice(je,1):yt&&yt.isDash===it.isDash&&(yt.left=it.left,w.splice(je,1))}let B=w[0],Q=w[w.length-1];B.isDash===Q.isDash&&(B.left=Q.left-this.width,Q.right=B.right+this.width);let ee=this.width*this.nextRow,se=0,qe=w[se];for(let je=0;je1&&(qe=w[++se]);let it=Math.abs(je-qe.left),yt=Math.abs(je-qe.right),Ot=Math.min(it,yt);this.data[ee+je]=Math.max(0,Math.min(255,(qe.isDash?Ot:-Ot)+128))}}addDash(w,B){let Q=B?7:0,ee=2*Q+1;if(this.nextRow+ee>this.height)return a.w("LineAtlas out of space"),null;let se=0;for(let je=0;je{B.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[_e]}numActive(){return Object.keys(this.active).length}}let ke=Math.floor(u.hardwareConcurrency/2),ge,ie;function Te(){return ge||(ge=new Me),ge}Me.workerCount=a.C(globalThis)?Math.max(Math.min(ke,3),1):1;class Ee{constructor(w,B){this.workerPool=w,this.actors=[],this.currentActor=0,this.id=B;let Q=this.workerPool.acquire(B);for(let ee=0;ee{B.remove()}),this.actors=[],w&&this.workerPool.release(this.id)}registerMessageHandler(w,B){for(let Q of this.actors)Q.registerMessageHandler(w,B)}}function Ae(){return ie||(ie=new Ee(Te(),a.G),ie.registerMessageHandler("GR",(le,w,B)=>a.m(w,B))),ie}function ze(le,w){let B=a.H();return a.J(B,B,[1,1,0]),a.K(B,B,[.5*le.width,.5*le.height,1]),a.L(B,B,le.calculatePosMatrix(w.toUnwrapped()))}function Ce(le,w,B,Q,ee,se){let qe=function(Nt,hr,Sr){if(Nt)for(let he of Nt){let be=hr[he];if(be&&be.source===Sr&&be.type==="fill-extrusion")return!0}else for(let he in hr){let be=hr[he];if(be.source===Sr&&be.type==="fill-extrusion")return!0}return!1}(ee&&ee.layers,w,le.id),je=se.maxPitchScaleFactor(),it=le.tilesIn(Q,je,qe);it.sort(me);let yt=[];for(let Nt of it)yt.push({wrappedTileID:Nt.tileID.wrapped().key,queryResults:Nt.tile.queryRenderedFeatures(w,B,le._state,Nt.queryGeometry,Nt.cameraQueryGeometry,Nt.scale,ee,se,je,ze(le.transform,Nt.tileID))});let Ot=function(Nt){let hr={},Sr={};for(let he of Nt){let be=he.queryResults,Pe=he.wrappedTileID,Oe=Sr[Pe]=Sr[Pe]||{};for(let Je in be){let He=be[Je],et=Oe[Je]=Oe[Je]||{},Mt=hr[Je]=hr[Je]||[];for(let Dt of He)et[Dt.featureIndex]||(et[Dt.featureIndex]=!0,Mt.push(Dt))}}return hr}(yt);for(let Nt in Ot)Ot[Nt].forEach(hr=>{let Sr=hr.feature,he=le.getFeatureState(Sr.layer["source-layer"],Sr.id);Sr.source=Sr.layer.source,Sr.layer["source-layer"]&&(Sr.sourceLayer=Sr.layer["source-layer"]),Sr.state=he});return Ot}function me(le,w){let B=le.tileID,Q=w.tileID;return B.overscaledZ-Q.overscaledZ||B.canonical.y-Q.canonical.y||B.wrap-Q.wrap||B.canonical.x-Q.canonical.x}function Re(le,w,B){return a._(this,void 0,void 0,function*(){let Q=le;if(le.url?Q=(yield a.h(w.transformRequest(le.url,"Source"),B)).data:yield u.frameAsync(B),!Q)return null;let ee=a.M(a.e(Q,le),["tiles","minzoom","maxzoom","attribution","bounds","scheme","tileSize","encoding"]);return"vector_layers"in Q&&Q.vector_layers&&(ee.vectorLayerIds=Q.vector_layers.map(se=>se.id)),ee})}class ce{constructor(w,B){w&&(B?this.setSouthWest(w).setNorthEast(B):Array.isArray(w)&&(w.length===4?this.setSouthWest([w[0],w[1]]).setNorthEast([w[2],w[3]]):this.setSouthWest(w[0]).setNorthEast(w[1])))}setNorthEast(w){return this._ne=w instanceof a.N?new a.N(w.lng,w.lat):a.N.convert(w),this}setSouthWest(w){return this._sw=w instanceof a.N?new a.N(w.lng,w.lat):a.N.convert(w),this}extend(w){let B=this._sw,Q=this._ne,ee,se;if(w instanceof a.N)ee=w,se=w;else{if(!(w instanceof ce))return Array.isArray(w)?w.length===4||w.every(Array.isArray)?this.extend(ce.convert(w)):this.extend(a.N.convert(w)):w&&("lng"in w||"lon"in w)&&"lat"in w?this.extend(a.N.convert(w)):this;if(ee=w._sw,se=w._ne,!ee||!se)return this}return B||Q?(B.lng=Math.min(ee.lng,B.lng),B.lat=Math.min(ee.lat,B.lat),Q.lng=Math.max(se.lng,Q.lng),Q.lat=Math.max(se.lat,Q.lat)):(this._sw=new a.N(ee.lng,ee.lat),this._ne=new a.N(se.lng,se.lat)),this}getCenter(){return new a.N((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)}getSouthWest(){return this._sw}getNorthEast(){return this._ne}getNorthWest(){return new a.N(this.getWest(),this.getNorth())}getSouthEast(){return new a.N(this.getEast(),this.getSouth())}getWest(){return this._sw.lng}getSouth(){return this._sw.lat}getEast(){return this._ne.lng}getNorth(){return this._ne.lat}toArray(){return[this._sw.toArray(),this._ne.toArray()]}toString(){return`LngLatBounds(${this._sw.toString()}, ${this._ne.toString()})`}isEmpty(){return!(this._sw&&this._ne)}contains(w){let{lng:B,lat:Q}=a.N.convert(w),ee=this._sw.lng<=B&&B<=this._ne.lng;return this._sw.lng>this._ne.lng&&(ee=this._sw.lng>=B&&B>=this._ne.lng),this._sw.lat<=Q&&Q<=this._ne.lat&&ee}static convert(w){return w instanceof ce?w:w&&new ce(w)}static fromLngLat(w,B=0){let Q=360*B/40075017,ee=Q/Math.cos(Math.PI/180*w.lat);return new ce(new a.N(w.lng-ee,w.lat-Q),new a.N(w.lng+ee,w.lat+Q))}adjustAntiMeridian(){let w=new a.N(this._sw.lng,this._sw.lat),B=new a.N(this._ne.lng,this._ne.lat);return new ce(w,w.lng>B.lng?new a.N(B.lng+360,B.lat):B)}}class Ge{constructor(w,B,Q){this.bounds=ce.convert(this.validateBounds(w)),this.minzoom=B||0,this.maxzoom=Q||24}validateBounds(w){return Array.isArray(w)&&w.length===4?[Math.max(-180,w[0]),Math.max(-90,w[1]),Math.min(180,w[2]),Math.min(90,w[3])]:[-180,-90,180,90]}contains(w){let B=Math.pow(2,w.z),Q=Math.floor(a.O(this.bounds.getWest())*B),ee=Math.floor(a.Q(this.bounds.getNorth())*B),se=Math.ceil(a.O(this.bounds.getEast())*B),qe=Math.ceil(a.Q(this.bounds.getSouth())*B);return w.x>=Q&&w.x=ee&&w.y{this._options.tiles=w}),this}setUrl(w){return this.setSourceProperty(()=>{this.url=w,this._options.url=w}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}serialize(){return a.e({},this._options)}loadTile(w){return a._(this,void 0,void 0,function*(){let B=w.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),Q={request:this.map._requestManager.transformRequest(B,"Tile"),uid:w.uid,tileID:w.tileID,zoom:w.tileID.overscaledZ,tileSize:this.tileSize*w.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};Q.request.collectResourceTiming=this._collectResourceTiming;let ee="RT";if(w.actor&&w.state!=="expired"){if(w.state==="loading")return new Promise((se,qe)=>{w.reloadPromise={resolve:se,reject:qe}})}else w.actor=this.dispatcher.getActor(),ee="LT";w.abortController=new AbortController;try{let se=yield w.actor.sendAsync({type:ee,data:Q},w.abortController);if(delete w.abortController,w.aborted)return;this._afterTileLoadWorkerResponse(w,se)}catch(se){if(delete w.abortController,w.aborted)return;if(se&&se.status!==404)throw se;this._afterTileLoadWorkerResponse(w,null)}})}_afterTileLoadWorkerResponse(w,B){if(B&&B.resourceTiming&&(w.resourceTiming=B.resourceTiming),B&&this.map._refreshExpiredTiles&&w.setExpiryData(B),w.loadVectorData(B,this.map.painter),w.reloadPromise){let Q=w.reloadPromise;w.reloadPromise=null,this.loadTile(w).then(Q.resolve).catch(Q.reject)}}abortTile(w){return a._(this,void 0,void 0,function*(){w.abortController&&(w.abortController.abort(),delete w.abortController),w.actor&&(yield w.actor.sendAsync({type:"AT",data:{uid:w.uid,type:this.type,source:this.id}}))})}unloadTile(w){return a._(this,void 0,void 0,function*(){w.unloadVectorData(),w.actor&&(yield w.actor.sendAsync({type:"RMT",data:{uid:w.uid,type:this.type,source:this.id}}))})}hasTransition(){return!1}}class ct extends a.E{constructor(w,B,Q,ee){super(),this.id=w,this.dispatcher=Q,this.setEventedParent(ee),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=a.e({type:"raster"},B),a.e(this,a.M(B,["url","scheme","tileSize"]))}load(){return a._(this,void 0,void 0,function*(){this._loaded=!1,this.fire(new a.k("dataloading",{dataType:"source"})),this._tileJSONRequest=new AbortController;try{let w=yield Re(this._options,this.map._requestManager,this._tileJSONRequest);this._tileJSONRequest=null,this._loaded=!0,w&&(a.e(this,w),w.bounds&&(this.tileBounds=new Ge(w.bounds,this.minzoom,this.maxzoom)),this.fire(new a.k("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new a.k("data",{dataType:"source",sourceDataType:"content"})))}catch(w){this._tileJSONRequest=null,this.fire(new a.j(w))}})}loaded(){return this._loaded}onAdd(w){this.map=w,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}setSourceProperty(w){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null),w(),this.load()}setTiles(w){return this.setSourceProperty(()=>{this._options.tiles=w}),this}setUrl(w){return this.setSourceProperty(()=>{this.url=w,this._options.url=w}),this}serialize(){return a.e({},this._options)}hasTile(w){return!this.tileBounds||this.tileBounds.contains(w.canonical)}loadTile(w){return a._(this,void 0,void 0,function*(){let B=w.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);w.abortController=new AbortController;try{let Q=yield g.getImage(this.map._requestManager.transformRequest(B,"Tile"),w.abortController,this.map._refreshExpiredTiles);if(delete w.abortController,w.aborted)return void(w.state="unloaded");if(Q&&Q.data){this.map._refreshExpiredTiles&&Q.cacheControl&&Q.expires&&w.setExpiryData({cacheControl:Q.cacheControl,expires:Q.expires});let ee=this.map.painter.context,se=ee.gl,qe=Q.data;w.texture=this.map.painter.getTileTexture(qe.width),w.texture?w.texture.update(qe,{useMipmap:!0}):(w.texture=new p(ee,qe,se.RGBA,{useMipmap:!0}),w.texture.bind(se.LINEAR,se.CLAMP_TO_EDGE,se.LINEAR_MIPMAP_NEAREST)),w.state="loaded"}}catch(Q){if(delete w.abortController,w.aborted)w.state="unloaded";else if(Q)throw w.state="errored",Q}})}abortTile(w){return a._(this,void 0,void 0,function*(){w.abortController&&(w.abortController.abort(),delete w.abortController)})}unloadTile(w){return a._(this,void 0,void 0,function*(){w.texture&&this.map.painter.saveTileTexture(w.texture)})}hasTransition(){return!1}}class qt extends ct{constructor(w,B,Q,ee){super(w,B,Q,ee),this.type="raster-dem",this.maxzoom=22,this._options=a.e({type:"raster-dem"},B),this.encoding=B.encoding||"mapbox",this.redFactor=B.redFactor,this.greenFactor=B.greenFactor,this.blueFactor=B.blueFactor,this.baseShift=B.baseShift}loadTile(w){return a._(this,void 0,void 0,function*(){let B=w.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),Q=this.map._requestManager.transformRequest(B,"Tile");w.neighboringTiles=this._getNeighboringTiles(w.tileID),w.abortController=new AbortController;try{let ee=yield g.getImage(Q,w.abortController,this.map._refreshExpiredTiles);if(delete w.abortController,w.aborted)return void(w.state="unloaded");if(ee&&ee.data){let se=ee.data;this.map._refreshExpiredTiles&&ee.cacheControl&&ee.expires&&w.setExpiryData({cacheControl:ee.cacheControl,expires:ee.expires});let qe=a.b(se)&&a.U()?se:yield this.readImageNow(se),je={type:this.type,uid:w.uid,source:this.id,rawImageData:qe,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};if(!w.actor||w.state==="expired"){w.actor=this.dispatcher.getActor();let it=yield w.actor.sendAsync({type:"LDT",data:je});w.dem=it,w.needsHillshadePrepare=!0,w.needsTerrainPrepare=!0,w.state="loaded"}}}catch(ee){if(delete w.abortController,w.aborted)w.state="unloaded";else if(ee)throw w.state="errored",ee}})}readImageNow(w){return a._(this,void 0,void 0,function*(){if(typeof VideoFrame!="undefined"&&a.V()){let B=w.width+2,Q=w.height+2;try{return new a.R({width:B,height:Q},yield a.W(w,-1,-1,B,Q))}catch(ee){}}return u.getImageData(w,1)})}_getNeighboringTiles(w){let B=w.canonical,Q=Math.pow(2,B.z),ee=(B.x-1+Q)%Q,se=B.x===0?w.wrap-1:w.wrap,qe=(B.x+1+Q)%Q,je=B.x+1===Q?w.wrap+1:w.wrap,it={};return it[new a.S(w.overscaledZ,se,B.z,ee,B.y).key]={backfilled:!1},it[new a.S(w.overscaledZ,je,B.z,qe,B.y).key]={backfilled:!1},B.y>0&&(it[new a.S(w.overscaledZ,se,B.z,ee,B.y-1).key]={backfilled:!1},it[new a.S(w.overscaledZ,w.wrap,B.z,B.x,B.y-1).key]={backfilled:!1},it[new a.S(w.overscaledZ,je,B.z,qe,B.y-1).key]={backfilled:!1}),B.y+10&&a.e(se,{resourceTiming:ee}),this.fire(new a.k("data",Object.assign(Object.assign({},se),{sourceDataType:"metadata"}))),this.fire(new a.k("data",Object.assign(Object.assign({},se),{sourceDataType:"content"})))}catch(Q){if(this._pendingLoads--,this._removed)return void this.fire(new a.k("dataabort",{dataType:"source"}));this.fire(new a.j(Q))}})}loaded(){return this._pendingLoads===0}loadTile(w){return a._(this,void 0,void 0,function*(){let B=w.actor?"RT":"LT";w.actor=this.actor;let Q={type:this.type,uid:w.uid,tileID:w.tileID,zoom:w.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};w.abortController=new AbortController;let ee=yield this.actor.sendAsync({type:B,data:Q},w.abortController);delete w.abortController,w.unloadVectorData(),w.aborted||w.loadVectorData(ee,this.map.painter,B==="RT")})}abortTile(w){return a._(this,void 0,void 0,function*(){w.abortController&&(w.abortController.abort(),delete w.abortController),w.aborted=!0})}unloadTile(w){return a._(this,void 0,void 0,function*(){w.unloadVectorData(),yield this.actor.sendAsync({type:"RMT",data:{uid:w.uid,type:this.type,source:this.id}})})}onRemove(){this._removed=!0,this.actor.sendAsync({type:"RS",data:{type:this.type,source:this.id}})}serialize(){return a.e({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}}var ot=a.Y([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);class Rt extends a.E{constructor(w,B,Q,ee){super(),this.id=w,this.dispatcher=Q,this.coordinates=B.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(ee),this.options=B}load(w){return a._(this,void 0,void 0,function*(){this._loaded=!1,this.fire(new a.k("dataloading",{dataType:"source"})),this.url=this.options.url,this._request=new AbortController;try{let B=yield g.getImage(this.map._requestManager.transformRequest(this.url,"Image"),this._request);this._request=null,this._loaded=!0,B&&B.data&&(this.image=B.data,w&&(this.coordinates=w),this._finishLoading())}catch(B){this._request=null,this._loaded=!0,this.fire(new a.j(B))}})}loaded(){return this._loaded}updateImage(w){return w.url?(this._request&&(this._request.abort(),this._request=null),this.options.url=w.url,this.load(w.coordinates).finally(()=>{this.texture=null}),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new a.k("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(w){this.map=w,this.load()}onRemove(){this._request&&(this._request.abort(),this._request=null)}setCoordinates(w){this.coordinates=w;let B=w.map(a.Z.fromLngLat);this.tileID=function(ee){let se=1/0,qe=1/0,je=-1/0,it=-1/0;for(let hr of ee)se=Math.min(se,hr.x),qe=Math.min(qe,hr.y),je=Math.max(je,hr.x),it=Math.max(it,hr.y);let yt=Math.max(je-se,it-qe),Ot=Math.max(0,Math.floor(-Math.log(yt)/Math.LN2)),Nt=Math.pow(2,Ot);return new a.a1(Ot,Math.floor((se+je)/2*Nt),Math.floor((qe+it)/2*Nt))}(B),this.minzoom=this.maxzoom=this.tileID.z;let Q=B.map(ee=>this.tileID.getTilePoint(ee)._round());return this._boundsArray=new a.$,this._boundsArray.emplaceBack(Q[0].x,Q[0].y,0,0),this._boundsArray.emplaceBack(Q[1].x,Q[1].y,a.X,0),this._boundsArray.emplaceBack(Q[3].x,Q[3].y,0,a.X),this._boundsArray.emplaceBack(Q[2].x,Q[2].y,a.X,a.X),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new a.k("data",{dataType:"source",sourceDataType:"content"})),this}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;let w=this.map.painter.context,B=w.gl;this.boundsBuffer||(this.boundsBuffer=w.createVertexBuffer(this._boundsArray,ot.members)),this.boundsSegments||(this.boundsSegments=a.a0.simpleSegment(0,0,4,2)),this.texture||(this.texture=new p(w,this.image,B.RGBA),this.texture.bind(B.LINEAR,B.CLAMP_TO_EDGE));let Q=!1;for(let ee in this.tiles){let se=this.tiles[ee];se.state!=="loaded"&&(se.state="loaded",se.texture=this.texture,Q=!0)}Q&&this.fire(new a.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}loadTile(w){return a._(this,void 0,void 0,function*(){this.tileID&&this.tileID.equals(w.tileID.canonical)?(this.tiles[String(w.tileID.wrap)]=w,w.buckets={}):w.state="errored"})}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}class kt extends Rt{constructor(w,B,Q,ee){super(w,B,Q,ee),this.roundZoom=!0,this.type="video",this.options=B}load(){return a._(this,void 0,void 0,function*(){this._loaded=!1;let w=this.options;this.urls=[];for(let B of w.urls)this.urls.push(this.map._requestManager.transformRequest(B,"Source").url);try{let B=yield a.a3(this.urls);if(this._loaded=!0,!B)return;this.video=B,this.video.loop=!0,this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading()}catch(B){this.fire(new a.j(B))}})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(w){if(this.video){let B=this.video.seekable;wB.end(0)?this.fire(new a.j(new a.a2(`sources.${this.id}`,null,`Playback for this video can be set only between the ${B.start(0)} and ${B.end(0)}-second mark.`))):this.video.currentTime=w}}getVideo(){return this.video}onAdd(w){this.map||(this.map=w,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;let w=this.map.painter.context,B=w.gl;this.boundsBuffer||(this.boundsBuffer=w.createVertexBuffer(this._boundsArray,ot.members)),this.boundsSegments||(this.boundsSegments=a.a0.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(B.LINEAR,B.CLAMP_TO_EDGE),B.texSubImage2D(B.TEXTURE_2D,0,0,0,B.RGBA,B.UNSIGNED_BYTE,this.video)):(this.texture=new p(w,this.video,B.RGBA),this.texture.bind(B.LINEAR,B.CLAMP_TO_EDGE));let Q=!1;for(let ee in this.tiles){let se=this.tiles[ee];se.state!=="loaded"&&(se.state="loaded",se.texture=this.texture,Q=!0)}Q&&this.fire(new a.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}}class Ct extends Rt{constructor(w,B,Q,ee){super(w,B,Q,ee),B.coordinates?Array.isArray(B.coordinates)&&B.coordinates.length===4&&!B.coordinates.some(se=>!Array.isArray(se)||se.length!==2||se.some(qe=>typeof qe!="number"))||this.fire(new a.j(new a.a2(`sources.${w}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new a.j(new a.a2(`sources.${w}`,null,'missing required property "coordinates"'))),B.animate&&typeof B.animate!="boolean"&&this.fire(new a.j(new a.a2(`sources.${w}`,null,'optional "animate" property must be a boolean value'))),B.canvas?typeof B.canvas=="string"||B.canvas instanceof HTMLCanvasElement||this.fire(new a.j(new a.a2(`sources.${w}`,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new a.j(new a.a2(`sources.${w}`,null,'missing required property "canvas"'))),this.options=B,this.animate=B.animate===void 0||B.animate}load(){return a._(this,void 0,void 0,function*(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new a.j(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())})}getCanvas(){return this.canvas}onAdd(w){this.map=w,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let w=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,w=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,w=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;let B=this.map.painter.context,Q=B.gl;this.boundsBuffer||(this.boundsBuffer=B.createVertexBuffer(this._boundsArray,ot.members)),this.boundsSegments||(this.boundsSegments=a.a0.simpleSegment(0,0,4,2)),this.texture?(w||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new p(B,this.canvas,Q.RGBA,{premultiply:!0});let ee=!1;for(let se in this.tiles){let qe=this.tiles[se];qe.state!=="loaded"&&(qe.state="loaded",qe.texture=this.texture,ee=!0)}ee&&this.fire(new a.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(let w of[this.canvas.width,this.canvas.height])if(isNaN(w)||w<=0)return!0;return!1}}let Yt={},xr=le=>{switch(le){case"geojson":return rt;case"image":return Rt;case"raster":return ct;case"raster-dem":return qt;case"vector":return nt;case"video":return kt;case"canvas":return Ct}return Yt[le]},er="RTLPluginLoaded";class Ke extends a.E{constructor(){super(...arguments),this.status="unavailable",this.url=null,this.dispatcher=Ae()}_syncState(w){return this.status=w,this.dispatcher.broadcast("SRPS",{pluginStatus:w,pluginURL:this.url}).catch(B=>{throw this.status="error",B})}getRTLTextPluginStatus(){return this.status}clearRTLTextPlugin(){this.status="unavailable",this.url=null}setRTLTextPlugin(w){return a._(this,arguments,void 0,function*(B,Q=!1){if(this.url)throw new Error("setRTLTextPlugin cannot be called multiple times.");if(this.url=u.resolveURL(B),!this.url)throw new Error(`requested url ${B} is invalid`);if(this.status==="unavailable"){if(!Q)return this._requestImport();this.status="deferred",this._syncState(this.status)}else if(this.status==="requested")return this._requestImport()})}_requestImport(){return a._(this,void 0,void 0,function*(){yield this._syncState("loading"),this.status="loaded",this.fire(new a.k(er))})}lazyLoad(){this.status==="unavailable"?this.status="requested":this.status==="deferred"&&this._requestImport()}}let xt=null;function bt(){return xt||(xt=new Ke),xt}class Lt{constructor(w,B){this.timeAdded=0,this.fadeEndTime=0,this.tileID=w,this.uid=a.a4(),this.uses=0,this.tileSize=B,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttCoords={},this.expiredRequestCount=0,this.state="loading"}registerFadeDuration(w){let B=w+this.timeAdded;Bse.getLayer(yt)).filter(Boolean);if(it.length!==0){je.layers=it,je.stateDependentLayerIds&&(je.stateDependentLayers=je.stateDependentLayerIds.map(yt=>it.filter(Ot=>Ot.id===yt)[0]));for(let yt of it)qe[yt.id]=je}}return qe}(w.buckets,B.style),this.hasSymbolBuckets=!1;for(let ee in this.buckets){let se=this.buckets[ee];if(se instanceof a.a6){if(this.hasSymbolBuckets=!0,!Q)break;se.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(let ee in this.buckets){let se=this.buckets[ee];if(se instanceof a.a6&&se.hasRTLText){this.hasRTLText=!0,bt().lazyLoad();break}}this.queryPadding=0;for(let ee in this.buckets){let se=this.buckets[ee];this.queryPadding=Math.max(this.queryPadding,B.style.getLayer(ee).queryRadius(se))}w.imageAtlas&&(this.imageAtlas=w.imageAtlas),w.glyphAtlasImage&&(this.glyphAtlasImage=w.glyphAtlasImage)}else this.collisionBoxArray=new a.a5}unloadVectorData(){for(let w in this.buckets)this.buckets[w].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state="unloaded"}getBucket(w){return this.buckets[w.id]}upload(w){for(let Q in this.buckets){let ee=this.buckets[Q];ee.uploadPending()&&ee.upload(w)}let B=w.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new p(w,this.imageAtlas.image,B.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new p(w,this.glyphAtlasImage,B.ALPHA),this.glyphAtlasImage=null)}prepare(w){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(w,this.imageAtlasTexture)}queryRenderedFeatures(w,B,Q,ee,se,qe,je,it,yt,Ot){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:ee,cameraQueryGeometry:se,scale:qe,tileSize:this.tileSize,pixelPosMatrix:Ot,transform:it,params:je,queryPadding:this.queryPadding*yt},w,B,Q):{}}querySourceFeatures(w,B){let Q=this.latestFeatureIndex;if(!Q||!Q.rawTileData)return;let ee=Q.loadVTLayers(),se=B&&B.sourceLayer?B.sourceLayer:"",qe=ee._geojsonTileLayer||ee[se];if(!qe)return;let je=a.a7(B&&B.filter),{z:it,x:yt,y:Ot}=this.tileID.canonical,Nt={z:it,x:yt,y:Ot};for(let hr=0;hrQ)ee=!1;else if(B)if(this.expirationTime{this.remove(w,se)},Q)),this.data[ee].push(se),this.order.push(ee),this.order.length>this.max){let qe=this._getAndRemoveByKey(this.order[0]);qe&&this.onRemove(qe)}return this}has(w){return w.wrapped().key in this.data}getAndRemove(w){return this.has(w)?this._getAndRemoveByKey(w.wrapped().key):null}_getAndRemoveByKey(w){let B=this.data[w].shift();return B.timeout&&clearTimeout(B.timeout),this.data[w].length===0&&delete this.data[w],this.order.splice(this.order.indexOf(w),1),B.value}getByKey(w){let B=this.data[w];return B?B[0].value:null}get(w){return this.has(w)?this.data[w.wrapped().key][0].value:null}remove(w,B){if(!this.has(w))return this;let Q=w.wrapped().key,ee=B===void 0?0:this.data[Q].indexOf(B),se=this.data[Q][ee];return this.data[Q].splice(ee,1),se.timeout&&clearTimeout(se.timeout),this.data[Q].length===0&&delete this.data[Q],this.onRemove(se.value),this.order.splice(this.order.indexOf(Q),1),this}setMaxSize(w){for(this.max=w;this.order.length>this.max;){let B=this._getAndRemoveByKey(this.order[0]);B&&this.onRemove(B)}return this}filter(w){let B=[];for(let Q in this.data)for(let ee of this.data[Q])w(ee.value)||B.push(ee);for(let Q of B)this.remove(Q.value.tileID,Q)}}class Et{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(w,B,Q){let ee=String(B);if(this.stateChanges[w]=this.stateChanges[w]||{},this.stateChanges[w][ee]=this.stateChanges[w][ee]||{},a.e(this.stateChanges[w][ee],Q),this.deletedStates[w]===null){this.deletedStates[w]={};for(let se in this.state[w])se!==ee&&(this.deletedStates[w][se]=null)}else if(this.deletedStates[w]&&this.deletedStates[w][ee]===null){this.deletedStates[w][ee]={};for(let se in this.state[w][ee])Q[se]||(this.deletedStates[w][ee][se]=null)}else for(let se in Q)this.deletedStates[w]&&this.deletedStates[w][ee]&&this.deletedStates[w][ee][se]===null&&delete this.deletedStates[w][ee][se]}removeFeatureState(w,B,Q){if(this.deletedStates[w]===null)return;let ee=String(B);if(this.deletedStates[w]=this.deletedStates[w]||{},Q&&B!==void 0)this.deletedStates[w][ee]!==null&&(this.deletedStates[w][ee]=this.deletedStates[w][ee]||{},this.deletedStates[w][ee][Q]=null);else if(B!==void 0)if(this.stateChanges[w]&&this.stateChanges[w][ee])for(Q in this.deletedStates[w][ee]={},this.stateChanges[w][ee])this.deletedStates[w][ee][Q]=null;else this.deletedStates[w][ee]=null;else this.deletedStates[w]=null}getState(w,B){let Q=String(B),ee=a.e({},(this.state[w]||{})[Q],(this.stateChanges[w]||{})[Q]);if(this.deletedStates[w]===null)return{};if(this.deletedStates[w]){let se=this.deletedStates[w][B];if(se===null)return{};for(let qe in se)delete ee[qe]}return ee}initializeTileState(w,B){w.setFeatureState(this.state,B)}coalesceChanges(w,B){let Q={};for(let ee in this.stateChanges){this.state[ee]=this.state[ee]||{};let se={};for(let qe in this.stateChanges[ee])this.state[ee][qe]||(this.state[ee][qe]={}),a.e(this.state[ee][qe],this.stateChanges[ee][qe]),se[qe]=this.state[ee][qe];Q[ee]=se}for(let ee in this.deletedStates){this.state[ee]=this.state[ee]||{};let se={};if(this.deletedStates[ee]===null)for(let qe in this.state[ee])se[qe]={},this.state[ee][qe]={};else for(let qe in this.deletedStates[ee]){if(this.deletedStates[ee][qe]===null)this.state[ee][qe]={};else for(let je of Object.keys(this.deletedStates[ee][qe]))delete this.state[ee][qe][je];se[qe]=this.state[ee][qe]}Q[ee]=Q[ee]||{},a.e(Q[ee],se)}if(this.stateChanges={},this.deletedStates={},Object.keys(Q).length!==0)for(let ee in w)w[ee].setFeatureState(Q,B)}}class dt extends a.E{constructor(w,B,Q){super(),this.id=w,this.dispatcher=Q,this.on("data",ee=>this._dataHandler(ee)),this.on("dataloading",()=>{this._sourceErrored=!1}),this.on("error",()=>{this._sourceErrored=this._source.loaded()}),this._source=((ee,se,qe,je)=>{let it=new(xr(se.type))(ee,se,qe,je);if(it.id!==ee)throw new Error(`Expected Source id to be ${ee} instead of ${it.id}`);return it})(w,B,Q,this),this._tiles={},this._cache=new St(0,ee=>this._unloadTile(ee)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new Et,this._didEmitContent=!1,this._updated=!1}onAdd(w){this.map=w,this._maxTileCacheSize=w?w._maxTileCacheSize:null,this._maxTileCacheZoomLevels=w?w._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(w)}onRemove(w){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(w)}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;if(!(this.used===void 0&&this.usedForTerrain===void 0||this.used||this.usedForTerrain))return!0;if(!this._updated)return!1;for(let w in this._tiles){let B=this._tiles[w];if(B.state!=="loaded"&&B.state!=="errored")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;let w=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,w&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(w,B,Q){return a._(this,void 0,void 0,function*(){try{yield this._source.loadTile(w),this._tileLoaded(w,B,Q)}catch(ee){w.state="errored",ee.status!==404?this._source.fire(new a.j(ee,{tile:w})):this.update(this.transform,this.terrain)}})}_unloadTile(w){this._source.unloadTile&&this._source.unloadTile(w)}_abortTile(w){this._source.abortTile&&this._source.abortTile(w),this._source.fire(new a.k("dataabort",{tile:w,coord:w.tileID,dataType:"source"}))}serialize(){return this._source.serialize()}prepare(w){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(let B in this._tiles){let Q=this._tiles[B];Q.upload(w),Q.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map(w=>w.tileID).sort(Ht).map(w=>w.key)}getRenderableIds(w){let B=[];for(let Q in this._tiles)this._isIdRenderable(Q,w)&&B.push(this._tiles[Q]);return w?B.sort((Q,ee)=>{let se=Q.tileID,qe=ee.tileID,je=new a.P(se.canonical.x,se.canonical.y)._rotate(this.transform.angle),it=new a.P(qe.canonical.x,qe.canonical.y)._rotate(this.transform.angle);return se.overscaledZ-qe.overscaledZ||it.y-je.y||it.x-je.x}).map(Q=>Q.tileID.key):B.map(Q=>Q.tileID).sort(Ht).map(Q=>Q.key)}hasRenderableParent(w){let B=this.findLoadedParent(w,0);return!!B&&this._isIdRenderable(B.tileID.key)}_isIdRenderable(w,B){return this._tiles[w]&&this._tiles[w].hasData()&&!this._coveredTiles[w]&&(B||!this._tiles[w].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(let w in this._tiles)this._tiles[w].state!=="errored"&&this._reloadTile(w,"reloading")}}_reloadTile(w,B){return a._(this,void 0,void 0,function*(){let Q=this._tiles[w];Q&&(Q.state!=="loading"&&(Q.state=B),yield this._loadTile(Q,w,B))})}_tileLoaded(w,B,Q){w.timeAdded=u.now(),Q==="expired"&&(w.refreshedUponExpiration=!0),this._setTileReloadTimer(B,w),this.getSource().type==="raster-dem"&&w.dem&&this._backfillDEM(w),this._state.initializeTileState(w,this.map?this.map.painter:null),w.aborted||this._source.fire(new a.k("data",{dataType:"source",tile:w,coord:w.tileID}))}_backfillDEM(w){let B=this.getRenderableIds();for(let ee=0;ee1||(Math.abs(qe)>1&&(Math.abs(qe+it)===1?qe+=it:Math.abs(qe-it)===1&&(qe-=it)),se.dem&&ee.dem&&(ee.dem.backfillBorder(se.dem,qe,je),ee.neighboringTiles&&ee.neighboringTiles[yt]&&(ee.neighboringTiles[yt].backfilled=!0)))}}getTile(w){return this.getTileByID(w.key)}getTileByID(w){return this._tiles[w]}_retainLoadedChildren(w,B,Q,ee){for(let se in this._tiles){let qe=this._tiles[se];if(ee[se]||!qe.hasData()||qe.tileID.overscaledZ<=B||qe.tileID.overscaledZ>Q)continue;let je=qe.tileID;for(;qe&&qe.tileID.overscaledZ>B+1;){let yt=qe.tileID.scaledTo(qe.tileID.overscaledZ-1);qe=this._tiles[yt.key],qe&&qe.hasData()&&(je=yt)}let it=je;for(;it.overscaledZ>B;)if(it=it.scaledTo(it.overscaledZ-1),w[it.key]){ee[je.key]=je;break}}}findLoadedParent(w,B){if(w.key in this._loadedParentTiles){let Q=this._loadedParentTiles[w.key];return Q&&Q.tileID.overscaledZ>=B?Q:null}for(let Q=w.overscaledZ-1;Q>=B;Q--){let ee=w.scaledTo(Q),se=this._getLoadedTile(ee);if(se)return se}}findLoadedSibling(w){return this._getLoadedTile(w)}_getLoadedTile(w){let B=this._tiles[w.key];return B&&B.hasData()?B:this._cache.getByKey(w.wrapped().key)}updateCacheSize(w){let B=Math.ceil(w.width/this._source.tileSize)+1,Q=Math.ceil(w.height/this._source.tileSize)+1,ee=Math.floor(B*Q*(this._maxTileCacheZoomLevels===null?a.a.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),se=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,ee):ee;this._cache.setMaxSize(se)}handleWrapJump(w){let B=Math.round((w-(this._prevLng===void 0?w:this._prevLng))/360);if(this._prevLng=w,B){let Q={};for(let ee in this._tiles){let se=this._tiles[ee];se.tileID=se.tileID.unwrapTo(se.tileID.wrap+B),Q[se.tileID.key]=se}this._tiles=Q;for(let ee in this._timers)clearTimeout(this._timers[ee]),delete this._timers[ee];for(let ee in this._tiles)this._setTileReloadTimer(ee,this._tiles[ee])}}_updateCoveredAndRetainedTiles(w,B,Q,ee,se,qe){let je={},it={},yt=Object.keys(w),Ot=u.now();for(let Nt of yt){let hr=w[Nt],Sr=this._tiles[Nt];if(!Sr||Sr.fadeEndTime!==0&&Sr.fadeEndTime<=Ot)continue;let he=this.findLoadedParent(hr,B),be=this.findLoadedSibling(hr),Pe=he||be||null;Pe&&(this._addTile(Pe.tileID),je[Pe.tileID.key]=Pe.tileID),it[Nt]=hr}this._retainLoadedChildren(it,ee,Q,w);for(let Nt in je)w[Nt]||(this._coveredTiles[Nt]=!0,w[Nt]=je[Nt]);if(qe){let Nt={},hr={};for(let Sr of se)this._tiles[Sr.key].hasData()?Nt[Sr.key]=Sr:hr[Sr.key]=Sr;for(let Sr in hr){let he=hr[Sr].children(this._source.maxzoom);this._tiles[he[0].key]&&this._tiles[he[1].key]&&this._tiles[he[2].key]&&this._tiles[he[3].key]&&(Nt[he[0].key]=w[he[0].key]=he[0],Nt[he[1].key]=w[he[1].key]=he[1],Nt[he[2].key]=w[he[2].key]=he[2],Nt[he[3].key]=w[he[3].key]=he[3],delete hr[Sr])}for(let Sr in hr){let he=hr[Sr],be=this.findLoadedParent(he,this._source.minzoom),Pe=this.findLoadedSibling(he),Oe=be||Pe||null;if(Oe){Nt[Oe.tileID.key]=w[Oe.tileID.key]=Oe.tileID;for(let Je in Nt)Nt[Je].isChildOf(Oe.tileID)&&delete Nt[Je]}}for(let Sr in this._tiles)Nt[Sr]||(this._coveredTiles[Sr]=!0)}}update(w,B){if(!this._sourceLoaded||this._paused)return;let Q;this.transform=w,this.terrain=B,this.updateCacheSize(w),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?Q=w.getVisibleUnwrappedCoordinates(this._source.tileID).map(Ot=>new a.S(Ot.canonical.z,Ot.wrap,Ot.canonical.z,Ot.canonical.x,Ot.canonical.y)):(Q=w.coveringTiles({tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:B}),this._source.hasTile&&(Q=Q.filter(Ot=>this._source.hasTile(Ot)))):Q=[];let ee=w.coveringZoomLevel(this._source),se=Math.max(ee-dt.maxOverzooming,this._source.minzoom),qe=Math.max(ee+dt.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){let Ot={};for(let Nt of Q)if(Nt.canonical.z>this._source.minzoom){let hr=Nt.scaledTo(Nt.canonical.z-1);Ot[hr.key]=hr;let Sr=Nt.scaledTo(Math.max(this._source.minzoom,Math.min(Nt.canonical.z,5)));Ot[Sr.key]=Sr}Q=Q.concat(Object.values(Ot))}let je=Q.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,je&&this.fire(new a.k("data",{sourceDataType:"idle",dataType:"source",sourceId:this.id}));let it=this._updateRetainedTiles(Q,ee);$t(this._source.type)&&this._updateCoveredAndRetainedTiles(it,se,qe,ee,Q,B);for(let Ot in it)this._tiles[Ot].clearFadeHold();let yt=a.ab(this._tiles,it);for(let Ot of yt){let Nt=this._tiles[Ot];Nt.hasSymbolBuckets&&!Nt.holdingForFade()?Nt.setHoldDuration(this.map._fadeDuration):Nt.hasSymbolBuckets&&!Nt.symbolFadeFinished()||this._removeTile(Ot)}this._updateLoadedParentTileCache(),this._updateLoadedSiblingTileCache()}releaseSymbolFadeTiles(){for(let w in this._tiles)this._tiles[w].holdingForFade()&&this._removeTile(w)}_updateRetainedTiles(w,B){var Q;let ee={},se={},qe=Math.max(B-dt.maxOverzooming,this._source.minzoom),je=Math.max(B+dt.maxUnderzooming,this._source.minzoom),it={};for(let yt of w){let Ot=this._addTile(yt);ee[yt.key]=yt,Ot.hasData()||Bthis._source.maxzoom){let hr=yt.children(this._source.maxzoom)[0],Sr=this.getTile(hr);if(Sr&&Sr.hasData()){ee[hr.key]=hr;continue}}else{let hr=yt.children(this._source.maxzoom);if(ee[hr[0].key]&&ee[hr[1].key]&&ee[hr[2].key]&&ee[hr[3].key])continue}let Nt=Ot.wasRequested();for(let hr=yt.overscaledZ-1;hr>=qe;--hr){let Sr=yt.scaledTo(hr);if(se[Sr.key])break;if(se[Sr.key]=!0,Ot=this.getTile(Sr),!Ot&&Nt&&(Ot=this._addTile(Sr)),Ot){let he=Ot.hasData();if((he||!(!((Q=this.map)===null||Q===void 0)&&Q.cancelPendingTileRequestsWhileZooming)||Nt)&&(ee[Sr.key]=Sr),Nt=Ot.wasRequested(),he)break}}}return ee}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(let w in this._tiles){let B=[],Q,ee=this._tiles[w].tileID;for(;ee.overscaledZ>0;){if(ee.key in this._loadedParentTiles){Q=this._loadedParentTiles[ee.key];break}B.push(ee.key);let se=ee.scaledTo(ee.overscaledZ-1);if(Q=this._getLoadedTile(se),Q)break;ee=se}for(let se of B)this._loadedParentTiles[se]=Q}}_updateLoadedSiblingTileCache(){this._loadedSiblingTiles={};for(let w in this._tiles){let B=this._tiles[w].tileID,Q=this._getLoadedTile(B);this._loadedSiblingTiles[B.key]=Q}}_addTile(w){let B=this._tiles[w.key];if(B)return B;B=this._cache.getAndRemove(w),B&&(this._setTileReloadTimer(w.key,B),B.tileID=w,this._state.initializeTileState(B,this.map?this.map.painter:null),this._cacheTimers[w.key]&&(clearTimeout(this._cacheTimers[w.key]),delete this._cacheTimers[w.key],this._setTileReloadTimer(w.key,B)));let Q=B;return B||(B=new Lt(w,this._source.tileSize*w.overscaleFactor()),this._loadTile(B,w.key,B.state)),B.uses++,this._tiles[w.key]=B,Q||this._source.fire(new a.k("dataloading",{tile:B,coord:B.tileID,dataType:"source"})),B}_setTileReloadTimer(w,B){w in this._timers&&(clearTimeout(this._timers[w]),delete this._timers[w]);let Q=B.getExpiryTimeout();Q&&(this._timers[w]=setTimeout(()=>{this._reloadTile(w,"expired"),delete this._timers[w]},Q))}_removeTile(w){let B=this._tiles[w];B&&(B.uses--,delete this._tiles[w],this._timers[w]&&(clearTimeout(this._timers[w]),delete this._timers[w]),B.uses>0||(B.hasData()&&B.state!=="reloading"?this._cache.add(B.tileID,B,B.getExpiryTimeout()):(B.aborted=!0,this._abortTile(B),this._unloadTile(B))))}_dataHandler(w){let B=w.sourceDataType;w.dataType==="source"&&B==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&w.dataType==="source"&&B==="content"&&(this.reload(),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(let w in this._tiles)this._removeTile(w);this._cache.reset()}tilesIn(w,B,Q){let ee=[],se=this.transform;if(!se)return ee;let qe=Q?se.getCameraQueryGeometry(w):w,je=w.map(he=>se.pointCoordinate(he,this.terrain)),it=qe.map(he=>se.pointCoordinate(he,this.terrain)),yt=this.getIds(),Ot=1/0,Nt=1/0,hr=-1/0,Sr=-1/0;for(let he of it)Ot=Math.min(Ot,he.x),Nt=Math.min(Nt,he.y),hr=Math.max(hr,he.x),Sr=Math.max(Sr,he.y);for(let he=0;he=0&&He[1].y+Je>=0){let et=je.map(Dt=>Pe.getTilePoint(Dt)),Mt=it.map(Dt=>Pe.getTilePoint(Dt));ee.push({tile:be,tileID:Pe,queryGeometry:et,cameraQueryGeometry:Mt,scale:Oe})}}return ee}getVisibleCoordinates(w){let B=this.getRenderableIds(w).map(Q=>this._tiles[Q].tileID);for(let Q of B)Q.posMatrix=this.transform.calculatePosMatrix(Q.toUnwrapped());return B}hasTransition(){if(this._source.hasTransition())return!0;if($t(this._source.type)){let w=u.now();for(let B in this._tiles)if(this._tiles[B].fadeEndTime>=w)return!0}return!1}setFeatureState(w,B,Q){this._state.updateState(w=w||"_geojsonTileLayer",B,Q)}removeFeatureState(w,B,Q){this._state.removeFeatureState(w=w||"_geojsonTileLayer",B,Q)}getFeatureState(w,B){return this._state.getState(w=w||"_geojsonTileLayer",B)}setDependencies(w,B,Q){let ee=this._tiles[w];ee&&ee.setDependencies(B,Q)}reloadTilesForDependencies(w,B){for(let Q in this._tiles)this._tiles[Q].hasDependency(w,B)&&this._reloadTile(Q,"reloading");this._cache.filter(Q=>!Q.hasDependency(w,B))}}function Ht(le,w){let B=Math.abs(2*le.wrap)-+(le.wrap<0),Q=Math.abs(2*w.wrap)-+(w.wrap<0);return le.overscaledZ-w.overscaledZ||Q-B||w.canonical.y-le.canonical.y||w.canonical.x-le.canonical.x}function $t(le){return le==="raster"||le==="image"||le==="video"}dt.maxOverzooming=10,dt.maxUnderzooming=3;class fr{constructor(w,B){this.reset(w,B)}reset(w,B){this.points=w||[],this._distances=[0];for(let Q=1;Q0?(ee-qe)/je:0;return this.points[se].mult(1-it).add(this.points[B].mult(it))}}function _r(le,w){let B=!0;return le==="always"||le!=="never"&&w!=="never"||(B=!1),B}class Br{constructor(w,B,Q){let ee=this.boxCells=[],se=this.circleCells=[];this.xCellCount=Math.ceil(w/Q),this.yCellCount=Math.ceil(B/Q);for(let qe=0;qethis.width||ee<0||B>this.height)return[];let it=[];if(w<=0&&B<=0&&this.width<=Q&&this.height<=ee){if(se)return[{key:null,x1:w,y1:B,x2:Q,y2:ee}];for(let yt=0;yt0}hitTestCircle(w,B,Q,ee,se){let qe=w-Q,je=w+Q,it=B-Q,yt=B+Q;if(je<0||qe>this.width||yt<0||it>this.height)return!1;let Ot=[];return this._forEachCell(qe,it,je,yt,this._queryCellCircle,Ot,{hitTest:!0,overlapMode:ee,circle:{x:w,y:B,radius:Q},seenUids:{box:{},circle:{}}},se),Ot.length>0}_queryCell(w,B,Q,ee,se,qe,je,it){let{seenUids:yt,hitTest:Ot,overlapMode:Nt}=je,hr=this.boxCells[se];if(hr!==null){let he=this.bboxes;for(let be of hr)if(!yt.box[be]){yt.box[be]=!0;let Pe=4*be,Oe=this.boxKeys[be];if(w<=he[Pe+2]&&B<=he[Pe+3]&&Q>=he[Pe+0]&&ee>=he[Pe+1]&&(!it||it(Oe))&&(!Ot||!_r(Nt,Oe.overlapMode))&&(qe.push({key:Oe,x1:he[Pe],y1:he[Pe+1],x2:he[Pe+2],y2:he[Pe+3]}),Ot))return!0}}let Sr=this.circleCells[se];if(Sr!==null){let he=this.circles;for(let be of Sr)if(!yt.circle[be]){yt.circle[be]=!0;let Pe=3*be,Oe=this.circleKeys[be];if(this._circleAndRectCollide(he[Pe],he[Pe+1],he[Pe+2],w,B,Q,ee)&&(!it||it(Oe))&&(!Ot||!_r(Nt,Oe.overlapMode))){let Je=he[Pe],He=he[Pe+1],et=he[Pe+2];if(qe.push({key:Oe,x1:Je-et,y1:He-et,x2:Je+et,y2:He+et}),Ot)return!0}}}return!1}_queryCellCircle(w,B,Q,ee,se,qe,je,it){let{circle:yt,seenUids:Ot,overlapMode:Nt}=je,hr=this.boxCells[se];if(hr!==null){let he=this.bboxes;for(let be of hr)if(!Ot.box[be]){Ot.box[be]=!0;let Pe=4*be,Oe=this.boxKeys[be];if(this._circleAndRectCollide(yt.x,yt.y,yt.radius,he[Pe+0],he[Pe+1],he[Pe+2],he[Pe+3])&&(!it||it(Oe))&&!_r(Nt,Oe.overlapMode))return qe.push(!0),!0}}let Sr=this.circleCells[se];if(Sr!==null){let he=this.circles;for(let be of Sr)if(!Ot.circle[be]){Ot.circle[be]=!0;let Pe=3*be,Oe=this.circleKeys[be];if(this._circlesCollide(he[Pe],he[Pe+1],he[Pe+2],yt.x,yt.y,yt.radius)&&(!it||it(Oe))&&!_r(Nt,Oe.overlapMode))return qe.push(!0),!0}}}_forEachCell(w,B,Q,ee,se,qe,je,it){let yt=this._convertToXCellCoord(w),Ot=this._convertToYCellCoord(B),Nt=this._convertToXCellCoord(Q),hr=this._convertToYCellCoord(ee);for(let Sr=yt;Sr<=Nt;Sr++)for(let he=Ot;he<=hr;he++)if(se.call(this,w,B,Q,ee,this.xCellCount*he+Sr,qe,je,it))return}_convertToXCellCoord(w){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(w*this.xScale)))}_convertToYCellCoord(w){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(w*this.yScale)))}_circlesCollide(w,B,Q,ee,se,qe){let je=ee-w,it=se-B,yt=Q+qe;return yt*yt>je*je+it*it}_circleAndRectCollide(w,B,Q,ee,se,qe,je){let it=(qe-ee)/2,yt=Math.abs(w-(ee+it));if(yt>it+Q)return!1;let Ot=(je-se)/2,Nt=Math.abs(B-(se+Ot));if(Nt>Ot+Q)return!1;if(yt<=it||Nt<=Ot)return!0;let hr=yt-it,Sr=Nt-Ot;return hr*hr+Sr*Sr<=Q*Q}}function Or(le,w,B,Q,ee){let se=a.H();return w?(a.K(se,se,[1/ee,1/ee,1]),B||a.ad(se,se,Q.angle)):a.L(se,Q.labelPlaneMatrix,le),se}function Nr(le,w,B,Q,ee){if(w){let se=a.ae(le);return a.K(se,se,[ee,ee,1]),B||a.ad(se,se,-Q.angle),se}return Q.glCoordMatrix}function ut(le,w,B,Q){let ee;Q?(ee=[le,w,Q(le,w),1],a.af(ee,ee,B)):(ee=[le,w,0,1],jr(ee,ee,B));let se=ee[3];return{point:new a.P(ee[0]/se,ee[1]/se),signedDistanceFromCamera:se,isOccluded:!1}}function Ne(le,w){return .5+le/w*.5}function Ye(le,w){return le.x>=-w[0]&&le.x<=w[0]&&le.y>=-w[1]&&le.y<=w[1]}function Ve(le,w,B,Q,ee,se,qe,je,it,yt,Ot,Nt,hr,Sr,he){let be=Q?le.textSizeData:le.iconSizeData,Pe=a.ag(be,B.transform.zoom),Oe=[256/B.width*2+1,256/B.height*2+1],Je=Q?le.text.dynamicLayoutVertexArray:le.icon.dynamicLayoutVertexArray;Je.clear();let He=le.lineVertexArray,et=Q?le.text.placedSymbolArray:le.icon.placedSymbolArray,Mt=B.transform.width/B.transform.height,Dt=!1;for(let Ut=0;UtMath.abs(B.x-w.x)*Q?{useVertical:!0}:(le===a.ah.vertical?w.yB.x)?{needsFlipping:!0}:null}function Le(le,w,B,Q,ee,se,qe,je,it,yt,Ot){let Nt=B/24,hr=w.lineOffsetX*Nt,Sr=w.lineOffsetY*Nt,he;if(w.numGlyphs>1){let be=w.glyphStartIndex+w.numGlyphs,Pe=w.lineStartIndex,Oe=w.lineStartIndex+w.lineLength,Je=Xe(Nt,je,hr,Sr,Q,w,Ot,le);if(!Je)return{notEnoughRoom:!0};let He=ut(Je.first.point.x,Je.first.point.y,qe,le.getElevation).point,et=ut(Je.last.point.x,Je.last.point.y,qe,le.getElevation).point;if(ee&&!Q){let Mt=ht(w.writingMode,He,et,yt);if(Mt)return Mt}he=[Je.first];for(let Mt=w.glyphStartIndex+1;Mt0?He.point:function(Dt,Ut,tr,mr,Rr,zr){return xe(Dt,Ut,tr,1,Rr,zr)}(le.tileAnchorPoint,Je,Pe,0,se,le),Mt=ht(w.writingMode,Pe,et,yt);if(Mt)return Mt}let be=ar(Nt*je.getoffsetX(w.glyphStartIndex),hr,Sr,Q,w.segment,w.lineStartIndex,w.lineStartIndex+w.lineLength,le,Ot);if(!be||le.projectionCache.anyProjectionOccluded)return{notEnoughRoom:!0};he=[be]}for(let be of he)a.aj(it,be.point,be.angle);return{}}function xe(le,w,B,Q,ee,se){let qe=le.add(le.sub(w)._unit()),je=ee!==void 0?ut(qe.x,qe.y,ee,se.getElevation).point:lt(qe.x,qe.y,se).point,it=B.sub(je);return B.add(it._mult(Q/it.mag()))}function Se(le,w,B){let Q=w.projectionCache;if(Q.projections[le])return Q.projections[le];let ee=new a.P(w.lineVertexArray.getx(le),w.lineVertexArray.gety(le)),se=lt(ee.x,ee.y,w);if(se.signedDistanceFromCamera>0)return Q.projections[le]=se.point,Q.anyProjectionOccluded=Q.anyProjectionOccluded||se.isOccluded,se.point;let qe=le-B.direction;return function(je,it,yt,Ot,Nt){return xe(je,it,yt,Ot,void 0,Nt)}(B.distanceFromAnchor===0?w.tileAnchorPoint:new a.P(w.lineVertexArray.getx(qe),w.lineVertexArray.gety(qe)),ee,B.previousVertex,B.absOffsetX-B.distanceFromAnchor+1,w)}function lt(le,w,B){let Q=le+B.translation[0],ee=w+B.translation[1],se;return!B.pitchWithMap&&B.projection.useSpecialProjectionForSymbols?(se=B.projection.projectTileCoordinates(Q,ee,B.unwrappedTileID,B.getElevation),se.point.x=(.5*se.point.x+.5)*B.width,se.point.y=(.5*-se.point.y+.5)*B.height):(se=ut(Q,ee,B.labelPlaneMatrix,B.getElevation),se.isOccluded=!1),se}function Gt(le,w,B){return le._unit()._perp()._mult(w*B)}function Vt(le,w,B,Q,ee,se,qe,je,it){if(je.projectionCache.offsets[le])return je.projectionCache.offsets[le];let yt=B.add(w);if(le+it.direction=ee)return je.projectionCache.offsets[le]=yt,yt;let Ot=Se(le+it.direction,je,it),Nt=Gt(Ot.sub(B),qe,it.direction),hr=B.add(Nt),Sr=Ot.add(Nt);return je.projectionCache.offsets[le]=a.ak(se,yt,hr,Sr)||yt,je.projectionCache.offsets[le]}function ar(le,w,B,Q,ee,se,qe,je,it){let yt=Q?le-w:le+w,Ot=yt>0?1:-1,Nt=0;Q&&(Ot*=-1,Nt=Math.PI),Ot<0&&(Nt+=Math.PI);let hr,Sr=Ot>0?se+ee:se+ee+1;je.projectionCache.cachedAnchorPoint?hr=je.projectionCache.cachedAnchorPoint:(hr=lt(je.tileAnchorPoint.x,je.tileAnchorPoint.y,je).point,je.projectionCache.cachedAnchorPoint=hr);let he,be,Pe=hr,Oe=hr,Je=0,He=0,et=Math.abs(yt),Mt=[],Dt;for(;Je+He<=et;){if(Sr+=Ot,Sr=qe)return null;Je+=He,Oe=Pe,be=he;let mr={absOffsetX:et,direction:Ot,distanceFromAnchor:Je,previousVertex:Oe};if(Pe=Se(Sr,je,mr),B===0)Mt.push(Oe),Dt=Pe.sub(Oe);else{let Rr,zr=Pe.sub(Oe);Rr=zr.mag()===0?Gt(Se(Sr+Ot,je,mr).sub(Pe),B,Ot):Gt(zr,B,Ot),be||(be=Oe.add(Rr)),he=Vt(Sr,Rr,Pe,se,qe,be,B,je,mr),Mt.push(be),Dt=he.sub(be)}He=Dt.mag()}let Ut=Dt._mult((et-Je)/He)._add(be||Oe),tr=Nt+Math.atan2(Pe.y-Oe.y,Pe.x-Oe.x);return Mt.push(Ut),{point:Ut,angle:it?tr:0,path:Mt}}let Qr=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function ai(le,w){for(let B=0;B=1;ea--)Qi.push(Li.path[ea]);for(let ea=1;eaGa.signedDistanceFromCamera<=0)?[]:ea.map(Ga=>Ga.point)}let pa=[];if(Qi.length>0){let ea=Qi[0].clone(),Ga=Qi[0].clone();for(let To=1;To=zr.x&&Ga.x<=Xr.x&&ea.y>=zr.y&&Ga.y<=Xr.y?[Qi]:Ga.xXr.x||Ga.yXr.y?[]:a.al([Qi],zr.x,zr.y,Xr.x,Xr.y)}for(let ea of pa){di.reset(ea,.25*Rr);let Ga=0;Ga=di.length<=.5*Rr?1:Math.ceil(di.paddedLength/Mn)+1;for(let To=0;Tout(ee.x,ee.y,Q,B.getElevation))}queryRenderedSymbols(w){if(w.length===0||this.grid.keysLength()===0&&this.ignoredGrid.keysLength()===0)return{};let B=[],Q=1/0,ee=1/0,se=-1/0,qe=-1/0;for(let Ot of w){let Nt=new a.P(Ot.x+ri,Ot.y+ri);Q=Math.min(Q,Nt.x),ee=Math.min(ee,Nt.y),se=Math.max(se,Nt.x),qe=Math.max(qe,Nt.y),B.push(Nt)}let je=this.grid.query(Q,ee,se,qe).concat(this.ignoredGrid.query(Q,ee,se,qe)),it={},yt={};for(let Ot of je){let Nt=Ot.key;if(it[Nt.bucketInstanceId]===void 0&&(it[Nt.bucketInstanceId]={}),it[Nt.bucketInstanceId][Nt.featureIndex])continue;let hr=[new a.P(Ot.x1,Ot.y1),new a.P(Ot.x2,Ot.y1),new a.P(Ot.x2,Ot.y2),new a.P(Ot.x1,Ot.y2)];a.am(B,hr)&&(it[Nt.bucketInstanceId][Nt.featureIndex]=!0,yt[Nt.bucketInstanceId]===void 0&&(yt[Nt.bucketInstanceId]=[]),yt[Nt.bucketInstanceId].push(Nt.featureIndex))}return yt}insertCollisionBox(w,B,Q,ee,se,qe){(Q?this.ignoredGrid:this.grid).insert({bucketInstanceId:ee,featureIndex:se,collisionGroupID:qe,overlapMode:B},w[0],w[1],w[2],w[3])}insertCollisionCircles(w,B,Q,ee,se,qe){let je=Q?this.ignoredGrid:this.grid,it={bucketInstanceId:ee,featureIndex:se,collisionGroupID:qe,overlapMode:B};for(let yt=0;yt=this.screenRightBoundary||eethis.screenBottomBoundary}isInsideGrid(w,B,Q,ee){return Q>=0&&w=0&&Bthis.projectAndGetPerspectiveRatio(Q,Rr.x,Rr.y,ee,yt));tr=mr.some(Rr=>!Rr.isOccluded),Ut=mr.map(Rr=>Rr.point)}else tr=!0;return{box:a.ao(Ut),allPointsOccluded:!tr}}}function nn(le,w,B){return w*(a.X/(le.tileSize*Math.pow(2,B-le.tileID.overscaledZ)))}class Wi{constructor(w,B,Q,ee){this.opacity=w?Math.max(0,Math.min(1,w.opacity+(w.placed?B:-B))):ee&&Q?1:0,this.placed=Q}isHidden(){return this.opacity===0&&!this.placed}}class Ni{constructor(w,B,Q,ee,se){this.text=new Wi(w?w.text:null,B,Q,se),this.icon=new Wi(w?w.icon:null,B,ee,se)}isHidden(){return this.text.isHidden()&&this.icon.isHidden()}}class _n{constructor(w,B,Q){this.text=w,this.icon=B,this.skipFade=Q}}class $i{constructor(){this.invProjMatrix=a.H(),this.viewportMatrix=a.H(),this.circles=[]}}class zn{constructor(w,B,Q,ee,se){this.bucketInstanceId=w,this.featureIndex=B,this.sourceLayerIndex=Q,this.bucketIndex=ee,this.tileID=se}}class Wn{constructor(w){this.crossSourceCollisions=w,this.maxGroupID=0,this.collisionGroups={}}get(w){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[w]){let B=++this.maxGroupID;this.collisionGroups[w]={ID:B,predicate:Q=>Q.collisionGroupID===B}}return this.collisionGroups[w]}}function It(le,w,B,Q,ee){let{horizontalAlign:se,verticalAlign:qe}=a.au(le);return new a.P(-(se-.5)*w+Q[0]*ee,-(qe-.5)*B+Q[1]*ee)}class ft{constructor(w,B,Q,ee,se,qe){this.transform=w.clone(),this.terrain=Q,this.collisionIndex=new bi(this.transform,B),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=ee,this.retainedQueryData={},this.collisionGroups=new Wn(se),this.collisionCircleArrays={},this.collisionBoxArrays=new Map,this.prevPlacement=qe,qe&&(qe.prevPlacement=void 0),this.placedOrientations={}}_getTerrainElevationFunc(w){let B=this.terrain;return B?(Q,ee)=>B.getElevation(w,Q,ee):null}getBucketParts(w,B,Q,ee){let se=Q.getBucket(B),qe=Q.latestFeatureIndex;if(!se||!qe||B.id!==se.layerIds[0])return;let je=Q.collisionBoxArray,it=se.layers[0].layout,yt=se.layers[0].paint,Ot=Math.pow(2,this.transform.zoom-Q.tileID.overscaledZ),Nt=Q.tileSize/a.X,hr=Q.tileID.toUnwrapped(),Sr=this.transform.calculatePosMatrix(hr),he=it.get("text-pitch-alignment")==="map",be=it.get("text-rotation-alignment")==="map",Pe=nn(Q,1,this.transform.zoom),Oe=this.collisionIndex.mapProjection.translatePosition(this.transform,Q,yt.get("text-translate"),yt.get("text-translate-anchor")),Je=this.collisionIndex.mapProjection.translatePosition(this.transform,Q,yt.get("icon-translate"),yt.get("icon-translate-anchor")),He=Or(Sr,he,be,this.transform,Pe),et=null;if(he){let Dt=Nr(Sr,he,be,this.transform,Pe);et=a.L([],this.transform.labelPlaneMatrix,Dt)}this.retainedQueryData[se.bucketInstanceId]=new zn(se.bucketInstanceId,qe,se.sourceLayerIndex,se.index,Q.tileID);let Mt={bucket:se,layout:it,translationText:Oe,translationIcon:Je,posMatrix:Sr,unwrappedTileID:hr,textLabelPlaneMatrix:He,labelToScreenMatrix:et,scale:Ot,textPixelRatio:Nt,holdingForFade:Q.holdingForFade(),collisionBoxArray:je,partiallyEvaluatedTextSize:a.ag(se.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(se.sourceID)};if(ee)for(let Dt of se.sortKeyRanges){let{sortKey:Ut,symbolInstanceStart:tr,symbolInstanceEnd:mr}=Dt;w.push({sortKey:Ut,symbolInstanceStart:tr,symbolInstanceEnd:mr,parameters:Mt})}else w.push({symbolInstanceStart:0,symbolInstanceEnd:se.symbolInstances.length,parameters:Mt})}attemptAnchorPlacement(w,B,Q,ee,se,qe,je,it,yt,Ot,Nt,hr,Sr,he,be,Pe,Oe,Je,He){let et=a.aq[w.textAnchor],Mt=[w.textOffset0,w.textOffset1],Dt=It(et,Q,ee,Mt,se),Ut=this.collisionIndex.placeCollisionBox(B,hr,it,yt,Ot,je,qe,Pe,Nt.predicate,He,Dt);if((!Je||this.collisionIndex.placeCollisionBox(Je,hr,it,yt,Ot,je,qe,Oe,Nt.predicate,He,Dt).placeable)&&Ut.placeable){let tr;if(this.prevPlacement&&this.prevPlacement.variableOffsets[Sr.crossTileID]&&this.prevPlacement.placements[Sr.crossTileID]&&this.prevPlacement.placements[Sr.crossTileID].text&&(tr=this.prevPlacement.variableOffsets[Sr.crossTileID].anchor),Sr.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");return this.variableOffsets[Sr.crossTileID]={textOffset:Mt,width:Q,height:ee,anchor:et,textBoxScale:se,prevAnchor:tr},this.markUsedJustification(he,et,Sr,be),he.allowVerticalPlacement&&(this.markUsedOrientation(he,be,Sr),this.placedOrientations[Sr.crossTileID]=be),{shift:Dt,placedGlyphBoxes:Ut}}}placeLayerBucketPart(w,B,Q){let{bucket:ee,layout:se,translationText:qe,translationIcon:je,posMatrix:it,unwrappedTileID:yt,textLabelPlaneMatrix:Ot,labelToScreenMatrix:Nt,textPixelRatio:hr,holdingForFade:Sr,collisionBoxArray:he,partiallyEvaluatedTextSize:be,collisionGroup:Pe}=w.parameters,Oe=se.get("text-optional"),Je=se.get("icon-optional"),He=a.ar(se,"text-overlap","text-allow-overlap"),et=He==="always",Mt=a.ar(se,"icon-overlap","icon-allow-overlap"),Dt=Mt==="always",Ut=se.get("text-rotation-alignment")==="map",tr=se.get("text-pitch-alignment")==="map",mr=se.get("icon-text-fit")!=="none",Rr=se.get("symbol-z-order")==="viewport-y",zr=et&&(Dt||!ee.hasIconData()||Je),Xr=Dt&&(et||!ee.hasTextData()||Oe);!ee.collisionArrays&&he&&ee.deserializeCollisionBoxes(he);let di=this._getTerrainElevationFunc(this.retainedQueryData[ee.bucketInstanceId].tileID),Li=(Ci,Qi,Mn)=>{var pa,ea;if(B[Ci.crossTileID])return;if(Sr)return void(this.placements[Ci.crossTileID]=new _n(!1,!1,!1));let Ga=!1,To=!1,Wa=!0,co=null,Ro={box:null,placeable:!1,offscreen:null},Ds={box:null,placeable:!1,offscreen:null},As=null,yo=null,po=null,_l=0,Vl=0,Zu=0;Qi.textFeatureIndex?_l=Qi.textFeatureIndex:Ci.useRuntimeCollisionCircles&&(_l=Ci.featureIndex),Qi.verticalTextFeatureIndex&&(Vl=Qi.verticalTextFeatureIndex);let cu=Qi.textBox;if(cu){let Dl=we=>{let Be=a.ah.horizontal;if(ee.allowVerticalPlacement&&!we&&this.prevPlacement){let Ue=this.prevPlacement.placedOrientations[Ci.crossTileID];Ue&&(this.placedOrientations[Ci.crossTileID]=Ue,Be=Ue,this.markUsedOrientation(ee,Be,Ci))}return Be},zl=(we,Be)=>{if(ee.allowVerticalPlacement&&Ci.numVerticalGlyphVertices>0&&Qi.verticalTextBox){for(let Ue of ee.writingModes)if(Ue===a.ah.vertical?(Ro=Be(),Ds=Ro):Ro=we(),Ro&&Ro.placeable)break}else Ro=we()},Z=Ci.textAnchorOffsetStartIndex,oe=Ci.textAnchorOffsetEndIndex;if(oe===Z){let we=(Be,Ue)=>{let We=this.collisionIndex.placeCollisionBox(Be,He,hr,it,yt,tr,Ut,qe,Pe.predicate,di);return We&&We.placeable&&(this.markUsedOrientation(ee,Ue,Ci),this.placedOrientations[Ci.crossTileID]=Ue),We};zl(()=>we(cu,a.ah.horizontal),()=>{let Be=Qi.verticalTextBox;return ee.allowVerticalPlacement&&Ci.numVerticalGlyphVertices>0&&Be?we(Be,a.ah.vertical):{box:null,offscreen:null}}),Dl(Ro&&Ro.placeable)}else{let we=a.aq[(ea=(pa=this.prevPlacement)===null||pa===void 0?void 0:pa.variableOffsets[Ci.crossTileID])===null||ea===void 0?void 0:ea.anchor],Be=(We,wt,tt)=>{let zt=We.x2-We.x1,or=We.y2-We.y1,lr=Ci.textBoxScale,Dr=mr&&Mt==="never"?wt:null,Ir=null,oi=He==="never"?1:2,ui="never";we&&oi++;for(let qr=0;qrBe(cu,Qi.iconBox,a.ah.horizontal),()=>{let We=Qi.verticalTextBox;return ee.allowVerticalPlacement&&(!Ro||!Ro.placeable)&&Ci.numVerticalGlyphVertices>0&&We?Be(We,Qi.verticalIconBox,a.ah.vertical):{box:null,occluded:!0,offscreen:null}}),Ro&&(Ga=Ro.placeable,Wa=Ro.offscreen);let Ue=Dl(Ro&&Ro.placeable);if(!Ga&&this.prevPlacement){let We=this.prevPlacement.variableOffsets[Ci.crossTileID];We&&(this.variableOffsets[Ci.crossTileID]=We,this.markUsedJustification(ee,We.anchor,Ci,Ue))}}}if(As=Ro,Ga=As&&As.placeable,Wa=As&&As.offscreen,Ci.useRuntimeCollisionCircles){let Dl=ee.text.placedSymbolArray.get(Ci.centerJustifiedTextSymbolIndex),zl=a.ai(ee.textSizeData,be,Dl),Z=se.get("text-padding");yo=this.collisionIndex.placeCollisionCircles(He,Dl,ee.lineVertexArray,ee.glyphOffsetArray,zl,it,yt,Ot,Nt,Q,tr,Pe.predicate,Ci.collisionCircleDiameter,Z,qe,di),yo.circles.length&&yo.collisionDetected&&!Q&&a.w("Collisions detected, but collision boxes are not shown"),Ga=et||yo.circles.length>0&&!yo.collisionDetected,Wa=Wa&&yo.offscreen}if(Qi.iconFeatureIndex&&(Zu=Qi.iconFeatureIndex),Qi.iconBox){let Dl=zl=>this.collisionIndex.placeCollisionBox(zl,Mt,hr,it,yt,tr,Ut,je,Pe.predicate,di,mr&&co?co:void 0);Ds&&Ds.placeable&&Qi.verticalIconBox?(po=Dl(Qi.verticalIconBox),To=po.placeable):(po=Dl(Qi.iconBox),To=po.placeable),Wa=Wa&&po.offscreen}let el=Oe||Ci.numHorizontalGlyphVertices===0&&Ci.numVerticalGlyphVertices===0,nu=Je||Ci.numIconVertices===0;el||nu?nu?el||(To=To&&Ga):Ga=To&&Ga:To=Ga=To&&Ga;let zc=To&&po.placeable;if(Ga&&As.placeable&&this.collisionIndex.insertCollisionBox(As.box,He,se.get("text-ignore-placement"),ee.bucketInstanceId,Ds&&Ds.placeable&&Vl?Vl:_l,Pe.ID),zc&&this.collisionIndex.insertCollisionBox(po.box,Mt,se.get("icon-ignore-placement"),ee.bucketInstanceId,Zu,Pe.ID),yo&&Ga&&this.collisionIndex.insertCollisionCircles(yo.circles,He,se.get("text-ignore-placement"),ee.bucketInstanceId,_l,Pe.ID),Q&&this.storeCollisionData(ee.bucketInstanceId,Mn,Qi,As,po,yo),Ci.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");if(ee.bucketInstanceId===0)throw new Error("bucket.bucketInstanceId can't be 0");this.placements[Ci.crossTileID]=new _n(Ga||zr,To||Xr,Wa||ee.justReloaded),B[Ci.crossTileID]=!0};if(Rr){if(w.symbolInstanceStart!==0)throw new Error("bucket.bucketInstanceId should be 0");let Ci=ee.getSortedSymbolIndexes(this.transform.angle);for(let Qi=Ci.length-1;Qi>=0;--Qi){let Mn=Ci[Qi];Li(ee.symbolInstances.get(Mn),ee.collisionArrays[Mn],Mn)}}else for(let Ci=w.symbolInstanceStart;Ci=0&&(w.text.placedSymbolArray.get(je).crossTileID=se>=0&&je!==se?0:Q.crossTileID)}markUsedOrientation(w,B,Q){let ee=B===a.ah.horizontal||B===a.ah.horizontalOnly?B:0,se=B===a.ah.vertical?B:0,qe=[Q.leftJustifiedTextSymbolIndex,Q.centerJustifiedTextSymbolIndex,Q.rightJustifiedTextSymbolIndex];for(let je of qe)w.text.placedSymbolArray.get(je).placedOrientation=ee;Q.verticalPlacedTextSymbolIndex&&(w.text.placedSymbolArray.get(Q.verticalPlacedTextSymbolIndex).placedOrientation=se)}commit(w){this.commitTime=w,this.zoomAtLastRecencyCheck=this.transform.zoom;let B=this.prevPlacement,Q=!1;this.prevZoomAdjustment=B?B.zoomAdjustment(this.transform.zoom):0;let ee=B?B.symbolFadeChange(w):1,se=B?B.opacities:{},qe=B?B.variableOffsets:{},je=B?B.placedOrientations:{};for(let it in this.placements){let yt=this.placements[it],Ot=se[it];Ot?(this.opacities[it]=new Ni(Ot,ee,yt.text,yt.icon),Q=Q||yt.text!==Ot.text.placed||yt.icon!==Ot.icon.placed):(this.opacities[it]=new Ni(null,ee,yt.text,yt.icon,yt.skipFade),Q=Q||yt.text||yt.icon)}for(let it in se){let yt=se[it];if(!this.opacities[it]){let Ot=new Ni(yt,ee,!1,!1);Ot.isHidden()||(this.opacities[it]=Ot,Q=Q||yt.text.placed||yt.icon.placed)}}for(let it in qe)this.variableOffsets[it]||!this.opacities[it]||this.opacities[it].isHidden()||(this.variableOffsets[it]=qe[it]);for(let it in je)this.placedOrientations[it]||!this.opacities[it]||this.opacities[it].isHidden()||(this.placedOrientations[it]=je[it]);if(B&&B.lastPlacementChangeTime===void 0)throw new Error("Last placement time for previous placement is not defined");Q?this.lastPlacementChangeTime=w:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=B?B.lastPlacementChangeTime:w)}updateLayerOpacities(w,B){let Q={};for(let ee of B){let se=ee.getBucket(w);se&&ee.latestFeatureIndex&&w.id===se.layerIds[0]&&this.updateBucketOpacities(se,ee.tileID,Q,ee.collisionBoxArray)}}updateBucketOpacities(w,B,Q,ee){w.hasTextData()&&(w.text.opacityVertexArray.clear(),w.text.hasVisibleVertices=!1),w.hasIconData()&&(w.icon.opacityVertexArray.clear(),w.icon.hasVisibleVertices=!1),w.hasIconCollisionBoxData()&&w.iconCollisionBox.collisionVertexArray.clear(),w.hasTextCollisionBoxData()&&w.textCollisionBox.collisionVertexArray.clear();let se=w.layers[0],qe=se.layout,je=new Ni(null,0,!1,!1,!0),it=qe.get("text-allow-overlap"),yt=qe.get("icon-allow-overlap"),Ot=se._unevaluatedLayout.hasValue("text-variable-anchor")||se._unevaluatedLayout.hasValue("text-variable-anchor-offset"),Nt=qe.get("text-rotation-alignment")==="map",hr=qe.get("text-pitch-alignment")==="map",Sr=qe.get("icon-text-fit")!=="none",he=new Ni(null,0,it&&(yt||!w.hasIconData()||qe.get("icon-optional")),yt&&(it||!w.hasTextData()||qe.get("text-optional")),!0);!w.collisionArrays&&ee&&(w.hasIconCollisionBoxData()||w.hasTextCollisionBoxData())&&w.deserializeCollisionBoxes(ee);let be=(Oe,Je,He)=>{for(let et=0;et0,tr=this.placedOrientations[Je.crossTileID],mr=tr===a.ah.vertical,Rr=tr===a.ah.horizontal||tr===a.ah.horizontalOnly;if(He>0||et>0){let Xr=Mi(Dt.text);be(w.text,He,mr?Pi:Xr),be(w.text,et,Rr?Pi:Xr);let di=Dt.text.isHidden();[Je.rightJustifiedTextSymbolIndex,Je.centerJustifiedTextSymbolIndex,Je.leftJustifiedTextSymbolIndex].forEach(Qi=>{Qi>=0&&(w.text.placedSymbolArray.get(Qi).hidden=di||mr?1:0)}),Je.verticalPlacedTextSymbolIndex>=0&&(w.text.placedSymbolArray.get(Je.verticalPlacedTextSymbolIndex).hidden=di||Rr?1:0);let Li=this.variableOffsets[Je.crossTileID];Li&&this.markUsedJustification(w,Li.anchor,Je,tr);let Ci=this.placedOrientations[Je.crossTileID];Ci&&(this.markUsedJustification(w,"left",Je,Ci),this.markUsedOrientation(w,Ci,Je))}if(Ut){let Xr=Mi(Dt.icon),di=!(Sr&&Je.verticalPlacedIconSymbolIndex&&mr);Je.placedIconSymbolIndex>=0&&(be(w.icon,Je.numIconVertices,di?Xr:Pi),w.icon.placedSymbolArray.get(Je.placedIconSymbolIndex).hidden=Dt.icon.isHidden()),Je.verticalPlacedIconSymbolIndex>=0&&(be(w.icon,Je.numVerticalIconVertices,di?Pi:Xr),w.icon.placedSymbolArray.get(Je.verticalPlacedIconSymbolIndex).hidden=Dt.icon.isHidden())}let zr=Pe&&Pe.has(Oe)?Pe.get(Oe):{text:null,icon:null};if(w.hasIconCollisionBoxData()||w.hasTextCollisionBoxData()){let Xr=w.collisionArrays[Oe];if(Xr){let di=new a.P(0,0);if(Xr.textBox||Xr.verticalTextBox){let Li=!0;if(Ot){let Ci=this.variableOffsets[Mt];Ci?(di=It(Ci.anchor,Ci.width,Ci.height,Ci.textOffset,Ci.textBoxScale),Nt&&di._rotate(hr?this.transform.angle:-this.transform.angle)):Li=!1}if(Xr.textBox||Xr.verticalTextBox){let Ci;Xr.textBox&&(Ci=mr),Xr.verticalTextBox&&(Ci=Rr),jt(w.textCollisionBox.collisionVertexArray,Dt.text.placed,!Li||Ci,zr.text,di.x,di.y)}}if(Xr.iconBox||Xr.verticalIconBox){let Li=!!(!Rr&&Xr.verticalIconBox),Ci;Xr.iconBox&&(Ci=Li),Xr.verticalIconBox&&(Ci=!Li),jt(w.iconCollisionBox.collisionVertexArray,Dt.icon.placed,Ci,zr.icon,Sr?di.x:0,Sr?di.y:0)}}}}if(w.sortFeatures(this.transform.angle),this.retainedQueryData[w.bucketInstanceId]&&(this.retainedQueryData[w.bucketInstanceId].featureSortOrder=w.featureSortOrder),w.hasTextData()&&w.text.opacityVertexBuffer&&w.text.opacityVertexBuffer.updateData(w.text.opacityVertexArray),w.hasIconData()&&w.icon.opacityVertexBuffer&&w.icon.opacityVertexBuffer.updateData(w.icon.opacityVertexArray),w.hasIconCollisionBoxData()&&w.iconCollisionBox.collisionVertexBuffer&&w.iconCollisionBox.collisionVertexBuffer.updateData(w.iconCollisionBox.collisionVertexArray),w.hasTextCollisionBoxData()&&w.textCollisionBox.collisionVertexBuffer&&w.textCollisionBox.collisionVertexBuffer.updateData(w.textCollisionBox.collisionVertexArray),w.text.opacityVertexArray.length!==w.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${w.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${w.text.layoutVertexArray.length}) / 4`);if(w.icon.opacityVertexArray.length!==w.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${w.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${w.icon.layoutVertexArray.length}) / 4`);if(w.bucketInstanceId in this.collisionCircleArrays){let Oe=this.collisionCircleArrays[w.bucketInstanceId];w.placementInvProjMatrix=Oe.invProjMatrix,w.placementViewportMatrix=Oe.viewportMatrix,w.collisionCircleArray=Oe.circles,delete this.collisionCircleArrays[w.bucketInstanceId]}}symbolFadeChange(w){return this.fadeDuration===0?1:(w-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(w){return Math.max(0,(this.transform.zoom-w)/1.5)}hasTransitions(w){return this.stale||w-this.lastPlacementChangeTimew}setStale(){this.stale=!0}}function jt(le,w,B,Q,ee,se){Q&&Q.length!==0||(Q=[0,0,0,0]);let qe=Q[0]-ri,je=Q[1]-ri,it=Q[2]-ri,yt=Q[3]-ri;le.emplaceBack(w?1:0,B?1:0,ee||0,se||0,qe,je),le.emplaceBack(w?1:0,B?1:0,ee||0,se||0,it,je),le.emplaceBack(w?1:0,B?1:0,ee||0,se||0,it,yt),le.emplaceBack(w?1:0,B?1:0,ee||0,se||0,qe,yt)}let Zt=Math.pow(2,25),yr=Math.pow(2,24),Fr=Math.pow(2,17),Zr=Math.pow(2,16),Vr=Math.pow(2,9),gi=Math.pow(2,8),Si=Math.pow(2,1);function Mi(le){if(le.opacity===0&&!le.placed)return 0;if(le.opacity===1&&le.placed)return 4294967295;let w=le.placed?1:0,B=Math.floor(127*le.opacity);return B*Zt+w*yr+B*Fr+w*Zr+B*Vr+w*gi+B*Si+w}let Pi=0;function Gi(){return{isOccluded:(le,w,B)=>!1,getPitchedTextCorrection:(le,w,B)=>1,get useSpecialProjectionForSymbols(){return!1},projectTileCoordinates(le,w,B,Q){throw new Error("Not implemented.")},translatePosition:(le,w,B,Q)=>function(ee,se,qe,je,it=!1){if(!qe[0]&&!qe[1])return[0,0];let yt=it?je==="map"?ee.angle:0:je==="viewport"?-ee.angle:0;if(yt){let Ot=Math.sin(yt),Nt=Math.cos(yt);qe=[qe[0]*Nt-qe[1]*Ot,qe[0]*Ot+qe[1]*Nt]}return[it?qe[0]:nn(se,qe[0],ee.zoom),it?qe[1]:nn(se,qe[1],ee.zoom)]}(le,w,B,Q),getCircleRadiusCorrection:le=>1}}class Ki{constructor(w){this._sortAcrossTiles=w.layout.get("symbol-z-order")!=="viewport-y"&&!w.layout.get("symbol-sort-key").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(w,B,Q,ee,se){let qe=this._bucketParts;for(;this._currentTileIndexje.sortKey-it.sortKey));this._currentPartIndex!this._forceFullPlacement&&u.now()-ee>2;for(;this._currentPlacementIndex>=0;){let qe=B[w[this._currentPlacementIndex]],je=this.placement.collisionIndex.transform.zoom;if(qe.type==="symbol"&&(!qe.minzoom||qe.minzoom<=je)&&(!qe.maxzoom||qe.maxzoom>je)){if(this._inProgressLayer||(this._inProgressLayer=new Ki(qe)),this._inProgressLayer.continuePlacement(Q[qe.source],this.placement,this._showCollisionBoxes,qe,se))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(w){return this.placement.commit(w),this.placement}}let jn=512/a.X/2;class la{constructor(w,B,Q){this.tileID=w,this.bucketInstanceId=Q,this._symbolsByKey={};let ee=new Map;for(let se=0;se({x:Math.floor(it.anchorX*jn),y:Math.floor(it.anchorY*jn)})),crossTileIDs:qe.map(it=>it.crossTileID)};if(je.positions.length>128){let it=new a.av(je.positions.length,16,Uint16Array);for(let{x:yt,y:Ot}of je.positions)it.add(yt,Ot);it.finish(),delete je.positions,je.index=it}this._symbolsByKey[se]=je}}getScaledCoordinates(w,B){let{x:Q,y:ee,z:se}=this.tileID.canonical,{x:qe,y:je,z:it}=B.canonical,yt=jn/Math.pow(2,it-se),Ot=(je*a.X+w.anchorY)*yt,Nt=ee*a.X*jn;return{x:Math.floor((qe*a.X+w.anchorX)*yt-Q*a.X*jn),y:Math.floor(Ot-Nt)}}findMatches(w,B,Q){let ee=this.tileID.canonical.zw)}}class Fa{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class Ra{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(w){let B=Math.round((w-this.lng)/360);if(B!==0)for(let Q in this.indexes){let ee=this.indexes[Q],se={};for(let qe in ee){let je=ee[qe];je.tileID=je.tileID.unwrapTo(je.tileID.wrap+B),se[je.tileID.key]=je}this.indexes[Q]=se}this.lng=w}addBucket(w,B,Q){if(this.indexes[w.overscaledZ]&&this.indexes[w.overscaledZ][w.key]){if(this.indexes[w.overscaledZ][w.key].bucketInstanceId===B.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(w.overscaledZ,this.indexes[w.overscaledZ][w.key])}for(let se=0;sew.overscaledZ)for(let je in qe){let it=qe[je];it.tileID.isChildOf(w)&&it.findMatches(B.symbolInstances,w,ee)}else{let je=qe[w.scaledTo(Number(se)).key];je&&je.findMatches(B.symbolInstances,w,ee)}}for(let se=0;se{B[Q]=!0});for(let Q in this.layerIndexes)B[Q]||delete this.layerIndexes[Q]}}let oa=(le,w)=>a.t(le,w&&w.filter(B=>B.identifier!=="source.canvas")),Sn=a.aw();class Ha extends a.E{constructor(w,B={}){super(),this._rtlPluginLoaded=()=>{for(let Q in this.sourceCaches){let ee=this.sourceCaches[Q].getSource().type;ee!=="vector"&&ee!=="geojson"||this.sourceCaches[Q].reload()}},this.map=w,this.dispatcher=new Ee(Te(),w._getMapId()),this.dispatcher.registerMessageHandler("GG",(Q,ee)=>this.getGlyphs(Q,ee)),this.dispatcher.registerMessageHandler("GI",(Q,ee)=>this.getImages(Q,ee)),this.imageManager=new T,this.imageManager.setEventedParent(this),this.glyphManager=new H(w._requestManager,B.localIdeographFontFamily),this.lineAtlas=new ae(256,512),this.crossTileSymbolIndex=new jo,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new a.ax,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast("SR",a.ay()),bt().on(er,this._rtlPluginLoaded),this.on("data",Q=>{if(Q.dataType!=="source"||Q.sourceDataType!=="metadata")return;let ee=this.sourceCaches[Q.sourceId];if(!ee)return;let se=ee.getSource();if(se&&se.vectorLayerIds)for(let qe in this._layers){let je=this._layers[qe];je.source===se.id&&this._validateLayer(je)}})}loadURL(w,B={},Q){this.fire(new a.k("dataloading",{dataType:"style"})),B.validate=typeof B.validate!="boolean"||B.validate;let ee=this.map._requestManager.transformRequest(w,"Style");this._loadStyleRequest=new AbortController;let se=this._loadStyleRequest;a.h(ee,this._loadStyleRequest).then(qe=>{this._loadStyleRequest=null,this._load(qe.data,B,Q)}).catch(qe=>{this._loadStyleRequest=null,qe&&!se.signal.aborted&&this.fire(new a.j(qe))})}loadJSON(w,B={},Q){this.fire(new a.k("dataloading",{dataType:"style"})),this._frameRequest=new AbortController,u.frameAsync(this._frameRequest).then(()=>{this._frameRequest=null,B.validate=B.validate!==!1,this._load(w,B,Q)}).catch(()=>{})}loadEmpty(){this.fire(new a.k("dataloading",{dataType:"style"})),this._load(Sn,{validate:!1})}_load(w,B,Q){var ee;let se=B.transformStyle?B.transformStyle(Q,w):w;if(!B.validate||!oa(this,a.u(se))){this._loaded=!0,this.stylesheet=se;for(let qe in se.sources)this.addSource(qe,se.sources[qe],{validate:!1});se.sprite?this._loadSprite(se.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(se.glyphs),this._createLayers(),this.light=new N(this.stylesheet.light),this.sky=new re(this.stylesheet.sky),this.map.setTerrain((ee=this.stylesheet.terrain)!==null&&ee!==void 0?ee:null),this.fire(new a.k("data",{dataType:"style"})),this.fire(new a.k("style.load"))}}_createLayers(){let w=a.az(this.stylesheet.layers);this.dispatcher.broadcast("SL",w),this._order=w.map(B=>B.id),this._layers={},this._serializedLayers=null;for(let B of w){let Q=a.aA(B);Q.setEventedParent(this,{layer:{id:B.id}}),this._layers[B.id]=Q}}_loadSprite(w,B=!1,Q=void 0){let ee;this.imageManager.setLoaded(!1),this._spriteRequest=new AbortController,function(se,qe,je,it){return a._(this,void 0,void 0,function*(){let yt=C(se),Ot=je>1?"@2x":"",Nt={},hr={};for(let{id:Sr,url:he}of yt){let be=qe.transformRequest(M(he,Ot,".json"),"SpriteJSON");Nt[Sr]=a.h(be,it);let Pe=qe.transformRequest(M(he,Ot,".png"),"SpriteImage");hr[Sr]=g.getImage(Pe,it)}return yield Promise.all([...Object.values(Nt),...Object.values(hr)]),function(Sr,he){return a._(this,void 0,void 0,function*(){let be={};for(let Pe in Sr){be[Pe]={};let Oe=u.getImageCanvasContext((yield he[Pe]).data),Je=(yield Sr[Pe]).data;for(let He in Je){let{width:et,height:Mt,x:Dt,y:Ut,sdf:tr,pixelRatio:mr,stretchX:Rr,stretchY:zr,content:Xr,textFitWidth:di,textFitHeight:Li}=Je[He];be[Pe][He]={data:null,pixelRatio:mr,sdf:tr,stretchX:Rr,stretchY:zr,content:Xr,textFitWidth:di,textFitHeight:Li,spriteData:{width:et,height:Mt,x:Dt,y:Ut,context:Oe}}}}return be})}(Nt,hr)})}(w,this.map._requestManager,this.map.getPixelRatio(),this._spriteRequest).then(se=>{if(this._spriteRequest=null,se)for(let qe in se){this._spritesImagesIds[qe]=[];let je=this._spritesImagesIds[qe]?this._spritesImagesIds[qe].filter(it=>!(it in se)):[];for(let it of je)this.imageManager.removeImage(it),this._changedImages[it]=!0;for(let it in se[qe]){let yt=qe==="default"?it:`${qe}:${it}`;this._spritesImagesIds[qe].push(yt),yt in this.imageManager.images?this.imageManager.updateImage(yt,se[qe][it],!1):this.imageManager.addImage(yt,se[qe][it]),B&&(this._changedImages[yt]=!0)}}}).catch(se=>{this._spriteRequest=null,ee=se,this.fire(new a.j(ee))}).finally(()=>{this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),B&&(this._changed=!0),this.dispatcher.broadcast("SI",this._availableImages),this.fire(new a.k("data",{dataType:"style"})),Q&&Q(ee)})}_unloadSprite(){for(let w of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(w),this._changedImages[w]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new a.k("data",{dataType:"style"}))}_validateLayer(w){let B=this.sourceCaches[w.source];if(!B)return;let Q=w.sourceLayer;if(!Q)return;let ee=B.getSource();(ee.type==="geojson"||ee.vectorLayerIds&&ee.vectorLayerIds.indexOf(Q)===-1)&&this.fire(new a.j(new Error(`Source layer "${Q}" does not exist on source "${ee.id}" as specified by style layer "${w.id}".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(let w in this.sourceCaches)if(!this.sourceCaches[w].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(w,B=!1){let Q=this._serializedAllLayers();if(!w||w.length===0)return Object.values(B?a.aB(Q):Q);let ee=[];for(let se of w)if(Q[se]){let qe=B?a.aB(Q[se]):Q[se];ee.push(qe)}return ee}_serializedAllLayers(){let w=this._serializedLayers;if(w)return w;w=this._serializedLayers={};let B=Object.keys(this._layers);for(let Q of B){let ee=this._layers[Q];ee.type!=="custom"&&(w[Q]=ee.serialize())}return w}hasTransitions(){if(this.light&&this.light.hasTransition()||this.sky&&this.sky.hasTransition())return!0;for(let w in this.sourceCaches)if(this.sourceCaches[w].hasTransition())return!0;for(let w in this._layers)if(this._layers[w].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading.")}update(w){if(!this._loaded)return;let B=this._changed;if(B){let ee=Object.keys(this._updatedLayers),se=Object.keys(this._removedLayers);(ee.length||se.length)&&this._updateWorkerLayers(ee,se);for(let qe in this._updatedSources){let je=this._updatedSources[qe];if(je==="reload")this._reloadSource(qe);else{if(je!=="clear")throw new Error(`Invalid action ${je}`);this._clearSource(qe)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(let qe in this._updatedPaintProps)this._layers[qe].updateTransitions(w);this.light.updateTransitions(w),this.sky.updateTransitions(w),this._resetUpdates()}let Q={};for(let ee in this.sourceCaches){let se=this.sourceCaches[ee];Q[ee]=se.used,se.used=!1}for(let ee of this._order){let se=this._layers[ee];se.recalculate(w,this._availableImages),!se.isHidden(w.zoom)&&se.source&&(this.sourceCaches[se.source].used=!0)}for(let ee in Q){let se=this.sourceCaches[ee];!!Q[ee]!=!!se.used&&se.fire(new a.k("data",{sourceDataType:"visibility",dataType:"source",sourceId:ee}))}this.light.recalculate(w),this.sky.recalculate(w),this.z=w.zoom,B&&this.fire(new a.k("data",{dataType:"style"}))}_updateTilesForChangedImages(){let w=Object.keys(this._changedImages);if(w.length){for(let B in this.sourceCaches)this.sourceCaches[B].reloadTilesForDependencies(["icons","patterns"],w);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(let w in this.sourceCaches)this.sourceCaches[w].reloadTilesForDependencies(["glyphs"],[""]);this._glyphsDidChange=!1}}_updateWorkerLayers(w,B){this.dispatcher.broadcast("UL",{layers:this._serializeByIds(w,!1),removedIds:B})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(w,B={}){var Q;this._checkLoaded();let ee=this.serialize();if(w=B.transformStyle?B.transformStyle(ee,w):w,((Q=B.validate)===null||Q===void 0||Q)&&oa(this,a.u(w)))return!1;(w=a.aB(w)).layers=a.az(w.layers);let se=a.aC(ee,w),qe=this._getOperationsToPerform(se);if(qe.unimplemented.length>0)throw new Error(`Unimplemented: ${qe.unimplemented.join(", ")}.`);if(qe.operations.length===0)return!1;for(let je of qe.operations)je();return this.stylesheet=w,this._serializedLayers=null,!0}_getOperationsToPerform(w){let B=[],Q=[];for(let ee of w)switch(ee.command){case"setCenter":case"setZoom":case"setBearing":case"setPitch":continue;case"addLayer":B.push(()=>this.addLayer.apply(this,ee.args));break;case"removeLayer":B.push(()=>this.removeLayer.apply(this,ee.args));break;case"setPaintProperty":B.push(()=>this.setPaintProperty.apply(this,ee.args));break;case"setLayoutProperty":B.push(()=>this.setLayoutProperty.apply(this,ee.args));break;case"setFilter":B.push(()=>this.setFilter.apply(this,ee.args));break;case"addSource":B.push(()=>this.addSource.apply(this,ee.args));break;case"removeSource":B.push(()=>this.removeSource.apply(this,ee.args));break;case"setLayerZoomRange":B.push(()=>this.setLayerZoomRange.apply(this,ee.args));break;case"setLight":B.push(()=>this.setLight.apply(this,ee.args));break;case"setGeoJSONSourceData":B.push(()=>this.setGeoJSONSourceData.apply(this,ee.args));break;case"setGlyphs":B.push(()=>this.setGlyphs.apply(this,ee.args));break;case"setSprite":B.push(()=>this.setSprite.apply(this,ee.args));break;case"setSky":B.push(()=>this.setSky.apply(this,ee.args));break;case"setTerrain":B.push(()=>this.map.setTerrain.apply(this,ee.args));break;case"setTransition":B.push(()=>{});break;default:Q.push(ee.command)}return{operations:B,unimplemented:Q}}addImage(w,B){if(this.getImage(w))return this.fire(new a.j(new Error(`An image named "${w}" already exists.`)));this.imageManager.addImage(w,B),this._afterImageUpdated(w)}updateImage(w,B){this.imageManager.updateImage(w,B)}getImage(w){return this.imageManager.getImage(w)}removeImage(w){if(!this.getImage(w))return this.fire(new a.j(new Error(`An image named "${w}" does not exist.`)));this.imageManager.removeImage(w),this._afterImageUpdated(w)}_afterImageUpdated(w){this._availableImages=this.imageManager.listImages(),this._changedImages[w]=!0,this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new a.k("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(w,B,Q={}){if(this._checkLoaded(),this.sourceCaches[w]!==void 0)throw new Error(`Source "${w}" already exists.`);if(!B.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(B).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(B.type)>=0&&this._validate(a.u.source,`sources.${w}`,B,null,Q))return;this.map&&this.map._collectResourceTiming&&(B.collectResourceTiming=!0);let ee=this.sourceCaches[w]=new dt(w,B,this.dispatcher);ee.style=this,ee.setEventedParent(this,()=>({isSourceLoaded:ee.loaded(),source:ee.serialize(),sourceId:w})),ee.onAdd(this.map),this._changed=!0}removeSource(w){if(this._checkLoaded(),this.sourceCaches[w]===void 0)throw new Error("There is no source with this ID");for(let Q in this._layers)if(this._layers[Q].source===w)return this.fire(new a.j(new Error(`Source "${w}" cannot be removed while layer "${Q}" is using it.`)));let B=this.sourceCaches[w];delete this.sourceCaches[w],delete this._updatedSources[w],B.fire(new a.k("data",{sourceDataType:"metadata",dataType:"source",sourceId:w})),B.setEventedParent(null),B.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(w,B){if(this._checkLoaded(),this.sourceCaches[w]===void 0)throw new Error(`There is no source with this ID=${w}`);let Q=this.sourceCaches[w].getSource();if(Q.type!=="geojson")throw new Error(`geojsonSource.type is ${Q.type}, which is !== 'geojson`);Q.setData(B),this._changed=!0}getSource(w){return this.sourceCaches[w]&&this.sourceCaches[w].getSource()}addLayer(w,B,Q={}){this._checkLoaded();let ee=w.id;if(this.getLayer(ee))return void this.fire(new a.j(new Error(`Layer "${ee}" already exists on this map.`)));let se;if(w.type==="custom"){if(oa(this,a.aD(w)))return;se=a.aA(w)}else{if("source"in w&&typeof w.source=="object"&&(this.addSource(ee,w.source),w=a.aB(w),w=a.e(w,{source:ee})),this._validate(a.u.layer,`layers.${ee}`,w,{arrayIndex:-1},Q))return;se=a.aA(w),this._validateLayer(se),se.setEventedParent(this,{layer:{id:ee}})}let qe=B?this._order.indexOf(B):this._order.length;if(B&&qe===-1)this.fire(new a.j(new Error(`Cannot add layer "${ee}" before non-existing layer "${B}".`)));else{if(this._order.splice(qe,0,ee),this._layerOrderChanged=!0,this._layers[ee]=se,this._removedLayers[ee]&&se.source&&se.type!=="custom"){let je=this._removedLayers[ee];delete this._removedLayers[ee],je.type!==se.type?this._updatedSources[se.source]="clear":(this._updatedSources[se.source]="reload",this.sourceCaches[se.source].pause())}this._updateLayer(se),se.onAdd&&se.onAdd(this.map)}}moveLayer(w,B){if(this._checkLoaded(),this._changed=!0,!this._layers[w])return void this.fire(new a.j(new Error(`The layer '${w}' does not exist in the map's style and cannot be moved.`)));if(w===B)return;let Q=this._order.indexOf(w);this._order.splice(Q,1);let ee=B?this._order.indexOf(B):this._order.length;B&&ee===-1?this.fire(new a.j(new Error(`Cannot move layer "${w}" before non-existing layer "${B}".`))):(this._order.splice(ee,0,w),this._layerOrderChanged=!0)}removeLayer(w){this._checkLoaded();let B=this._layers[w];if(!B)return void this.fire(new a.j(new Error(`Cannot remove non-existing layer "${w}".`)));B.setEventedParent(null);let Q=this._order.indexOf(w);this._order.splice(Q,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[w]=B,delete this._layers[w],this._serializedLayers&&delete this._serializedLayers[w],delete this._updatedLayers[w],delete this._updatedPaintProps[w],B.onRemove&&B.onRemove(this.map)}getLayer(w){return this._layers[w]}getLayersOrder(){return[...this._order]}hasLayer(w){return w in this._layers}setLayerZoomRange(w,B,Q){this._checkLoaded();let ee=this.getLayer(w);ee?ee.minzoom===B&&ee.maxzoom===Q||(B!=null&&(ee.minzoom=B),Q!=null&&(ee.maxzoom=Q),this._updateLayer(ee)):this.fire(new a.j(new Error(`Cannot set the zoom range of non-existing layer "${w}".`)))}setFilter(w,B,Q={}){this._checkLoaded();let ee=this.getLayer(w);if(ee){if(!a.aE(ee.filter,B))return B==null?(ee.filter=void 0,void this._updateLayer(ee)):void(this._validate(a.u.filter,`layers.${ee.id}.filter`,B,null,Q)||(ee.filter=a.aB(B),this._updateLayer(ee)))}else this.fire(new a.j(new Error(`Cannot filter non-existing layer "${w}".`)))}getFilter(w){return a.aB(this.getLayer(w).filter)}setLayoutProperty(w,B,Q,ee={}){this._checkLoaded();let se=this.getLayer(w);se?a.aE(se.getLayoutProperty(B),Q)||(se.setLayoutProperty(B,Q,ee),this._updateLayer(se)):this.fire(new a.j(new Error(`Cannot style non-existing layer "${w}".`)))}getLayoutProperty(w,B){let Q=this.getLayer(w);if(Q)return Q.getLayoutProperty(B);this.fire(new a.j(new Error(`Cannot get style of non-existing layer "${w}".`)))}setPaintProperty(w,B,Q,ee={}){this._checkLoaded();let se=this.getLayer(w);se?a.aE(se.getPaintProperty(B),Q)||(se.setPaintProperty(B,Q,ee)&&this._updateLayer(se),this._changed=!0,this._updatedPaintProps[w]=!0,this._serializedLayers=null):this.fire(new a.j(new Error(`Cannot style non-existing layer "${w}".`)))}getPaintProperty(w,B){return this.getLayer(w).getPaintProperty(B)}setFeatureState(w,B){this._checkLoaded();let Q=w.source,ee=w.sourceLayer,se=this.sourceCaches[Q];if(se===void 0)return void this.fire(new a.j(new Error(`The source '${Q}' does not exist in the map's style.`)));let qe=se.getSource().type;qe==="geojson"&&ee?this.fire(new a.j(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):qe!=="vector"||ee?(w.id===void 0&&this.fire(new a.j(new Error("The feature id parameter must be provided."))),se.setFeatureState(ee,w.id,B)):this.fire(new a.j(new Error("The sourceLayer parameter must be provided for vector source types.")))}removeFeatureState(w,B){this._checkLoaded();let Q=w.source,ee=this.sourceCaches[Q];if(ee===void 0)return void this.fire(new a.j(new Error(`The source '${Q}' does not exist in the map's style.`)));let se=ee.getSource().type,qe=se==="vector"?w.sourceLayer:void 0;se!=="vector"||qe?B&&typeof w.id!="string"&&typeof w.id!="number"?this.fire(new a.j(new Error("A feature id is required to remove its specific state property."))):ee.removeFeatureState(qe,w.id,B):this.fire(new a.j(new Error("The sourceLayer parameter must be provided for vector source types.")))}getFeatureState(w){this._checkLoaded();let B=w.source,Q=w.sourceLayer,ee=this.sourceCaches[B];if(ee!==void 0)return ee.getSource().type!=="vector"||Q?(w.id===void 0&&this.fire(new a.j(new Error("The feature id parameter must be provided."))),ee.getFeatureState(Q,w.id)):void this.fire(new a.j(new Error("The sourceLayer parameter must be provided for vector source types.")));this.fire(new a.j(new Error(`The source '${B}' does not exist in the map's style.`)))}getTransition(){return a.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;let w=a.aF(this.sourceCaches,se=>se.serialize()),B=this._serializeByIds(this._order,!0),Q=this.map.getTerrain()||void 0,ee=this.stylesheet;return a.aG({version:ee.version,name:ee.name,metadata:ee.metadata,light:ee.light,sky:ee.sky,center:ee.center,zoom:ee.zoom,bearing:ee.bearing,pitch:ee.pitch,sprite:ee.sprite,glyphs:ee.glyphs,transition:ee.transition,sources:w,layers:B,terrain:Q},se=>se!==void 0)}_updateLayer(w){this._updatedLayers[w.id]=!0,w.source&&!this._updatedSources[w.source]&&this.sourceCaches[w.source].getSource().type!=="raster"&&(this._updatedSources[w.source]="reload",this.sourceCaches[w.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(w){let B=qe=>this._layers[qe].type==="fill-extrusion",Q={},ee=[];for(let qe=this._order.length-1;qe>=0;qe--){let je=this._order[qe];if(B(je)){Q[je]=qe;for(let it of w){let yt=it[je];if(yt)for(let Ot of yt)ee.push(Ot)}}}ee.sort((qe,je)=>je.intersectionZ-qe.intersectionZ);let se=[];for(let qe=this._order.length-1;qe>=0;qe--){let je=this._order[qe];if(B(je))for(let it=ee.length-1;it>=0;it--){let yt=ee[it].feature;if(Q[yt.layer.id]{let tr=Oe.featureSortOrder;if(tr){let mr=tr.indexOf(Dt.featureIndex);return tr.indexOf(Ut.featureIndex)-mr}return Ut.featureIndex-Dt.featureIndex});for(let Dt of Mt)et.push(Dt)}}for(let Oe in he)he[Oe].forEach(Je=>{let He=Je.feature,et=yt[je[Oe].source].getFeatureState(He.layer["source-layer"],He.id);He.source=He.layer.source,He.layer["source-layer"]&&(He.sourceLayer=He.layer["source-layer"]),He.state=et});return he}(this._layers,qe,this.sourceCaches,w,B,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(se)}querySourceFeatures(w,B){B&&B.filter&&this._validate(a.u.filter,"querySourceFeatures.filter",B.filter,null,B);let Q=this.sourceCaches[w];return Q?function(ee,se){let qe=ee.getRenderableIds().map(yt=>ee.getTileByID(yt)),je=[],it={};for(let yt=0;ythr.getTileByID(Sr)).sort((Sr,he)=>he.tileID.overscaledZ-Sr.tileID.overscaledZ||(Sr.tileID.isLessThan(he.tileID)?-1:1))}let Nt=this.crossTileSymbolIndex.addLayer(Ot,it[Ot.source],w.center.lng);qe=qe||Nt}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((se=se||this._layerOrderChanged||Q===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(u.now(),w.zoom))&&(this.pauseablePlacement=new ka(w,this.map.terrain,this._order,se,B,Q,ee,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,it),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(u.now()),je=!0),qe&&this.pauseablePlacement.placement.setStale()),je||qe)for(let yt of this._order){let Ot=this._layers[yt];Ot.type==="symbol"&&this.placement.updateLayerOpacities(Ot,it[Ot.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(u.now())}_releaseSymbolFadeTiles(){for(let w in this.sourceCaches)this.sourceCaches[w].releaseSymbolFadeTiles()}getImages(w,B){return a._(this,void 0,void 0,function*(){let Q=yield this.imageManager.getImages(B.icons);this._updateTilesForChangedImages();let ee=this.sourceCaches[B.source];return ee&&ee.setDependencies(B.tileID.key,B.type,B.icons),Q})}getGlyphs(w,B){return a._(this,void 0,void 0,function*(){let Q=yield this.glyphManager.getGlyphs(B.stacks),ee=this.sourceCaches[B.source];return ee&&ee.setDependencies(B.tileID.key,B.type,[""]),Q})}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(w,B={}){this._checkLoaded(),w&&this._validate(a.u.glyphs,"glyphs",w,null,B)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=w,this.glyphManager.entries={},this.glyphManager.setURL(w))}addSprite(w,B,Q={},ee){this._checkLoaded();let se=[{id:w,url:B}],qe=[...C(this.stylesheet.sprite),...se];this._validate(a.u.sprite,"sprite",qe,null,Q)||(this.stylesheet.sprite=qe,this._loadSprite(se,!0,ee))}removeSprite(w){this._checkLoaded();let B=C(this.stylesheet.sprite);if(B.find(Q=>Q.id===w)){if(this._spritesImagesIds[w])for(let Q of this._spritesImagesIds[w])this.imageManager.removeImage(Q),this._changedImages[Q]=!0;B.splice(B.findIndex(Q=>Q.id===w),1),this.stylesheet.sprite=B.length>0?B:void 0,delete this._spritesImagesIds[w],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new a.k("data",{dataType:"style"}))}else this.fire(new a.j(new Error(`Sprite "${w}" doesn't exists on this map.`)))}getSprite(){return C(this.stylesheet.sprite)}setSprite(w,B={},Q){this._checkLoaded(),w&&this._validate(a.u.sprite,"sprite",w,null,B)||(this.stylesheet.sprite=w,w?this._loadSprite(w,!0,Q):(this._unloadSprite(),Q&&Q(null)))}}var oo=a.Y([{name:"a_pos",type:"Int16",components:2}]);let xn={prelude:_t(`#ifdef GL_ES +precision mediump float; +#else +#if !defined(lowp) +#define lowp +#endif +#if !defined(mediump) +#define mediump +#endif +#if !defined(highp) +#define highp +#endif +#endif +`,`#ifdef GL_ES +precision highp float; +#else +#if !defined(lowp) +#define lowp +#endif +#if !defined(mediump) +#define mediump +#endif +#if !defined(highp) +#define highp +#endif +#endif +vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0 +);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;} +#ifdef TERRAIN3D +uniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth; +#endif +const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitShifts=vec4(1.)/bitSh;highp float unpack(highp vec4 color) {return dot(color,bitShifts);}highp float depthOpacity(vec3 frag) { +#ifdef TERRAIN3D +highp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0)); +#else +return 1.0; +#endif +}float calculate_visibility(vec4 pos) { +#ifdef TERRAIN3D +vec3 frag=pos.xyz/pos.w;highp float d=depthOpacity(frag);if (d > 0.95) return 1.0;return (d+depthOpacity(frag+vec3(0.0,0.01,0.0)))/2.0; +#else +return 1.0; +#endif +}float ele(vec2 pos) { +#ifdef TERRAIN3D +vec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a; +#else +return 0.0; +#endif +}float get_elevation(vec2 pos) { +#ifdef TERRAIN3D +vec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration; +#else +return 0.0; +#endif +}`),background:_t(`uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),backgroundPattern:_t(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"),circle:_t(`varying vec3 v_data;varying float v_visibility; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define mediump float radius +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define highp vec4 stroke_color +#pragma mapbox: define mediump float stroke_width +#pragma mapbox: define lowp float stroke_opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize mediump float radius +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize highp vec4 stroke_color +#pragma mapbox: initialize mediump float stroke_width +#pragma mapbox: initialize lowp float stroke_opacity +vec2 extrude=v_data.xy;float extrude_length=length(extrude);float antialiased_blur=v_data.z;float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define mediump float radius +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define highp vec4 stroke_color +#pragma mapbox: define mediump float stroke_width +#pragma mapbox: define lowp float stroke_opacity +void main(void) { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize mediump float radius +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize highp vec4 stroke_color +#pragma mapbox: initialize mediump float stroke_width +#pragma mapbox: initialize lowp float stroke_opacity +vec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}float antialiasblur=-max(1.0/u_device_pixel_ratio/(radius+stroke_width),blur);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`),clippingMask:_t("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:_t(`uniform highp float u_intensity;varying vec2 v_extrude; +#pragma mapbox: define highp float weight +#define GAUSS_COEF 0.3989422804014327 +void main() { +#pragma mapbox: initialize highp float weight +float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude; +#pragma mapbox: define highp float weight +#pragma mapbox: define mediump float radius +const highp float ZERO=1.0/255.0/16.0; +#define GAUSS_COEF 0.3989422804014327 +void main(void) { +#pragma mapbox: initialize highp float weight +#pragma mapbox: initialize mediump float radius +vec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,get_elevation(floor(a_pos*0.5)),1);gl_Position=u_matrix*pos;}`),heatmapTexture:_t(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(0.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"),collisionBox:_t("varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_anchor_pos;attribute vec2 a_placed;attribute vec2 a_box_real;uniform mat4 u_matrix;uniform vec2 u_pixel_extrude_scale;varying float v_placed;varying float v_notUsed;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);}void main() {gl_Position=projectTileWithElevation(a_anchor_pos,get_elevation(a_anchor_pos));gl_Position.xy=((a_box_real+0.5)*u_pixel_extrude_scale*2.0-1.0)*vec2(1.0,-1.0)*gl_Position.w;if (gl_Position.z/gl_Position.w < 1.1) {gl_Position.z=0.5;}v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:_t("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),debug:_t("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}"),fill:_t(`#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +gl_FragColor=color*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1);}`),fillOutline:_t(`varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillOutlinePattern:_t(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillPattern:_t(`#ifdef GL_ES +precision highp float; +#endif +uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:_t(`varying vec4 v_color;void main() {gl_FragColor=v_color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed; +#ifdef TERRAIN3D +attribute vec2 a_centroid; +#endif +varying vec4 v_color; +#pragma mapbox: define highp float base +#pragma mapbox: define highp float height +#pragma mapbox: define highp vec4 color +void main() { +#pragma mapbox: initialize highp float base +#pragma mapbox: initialize highp float height +#pragma mapbox: initialize highp vec4 color +vec3 normal=a_normal_ed.xyz; +#ifdef TERRAIN3D +float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0); +#else +float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0; +#endif +base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),fillExtrusionPattern:_t(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed; +#ifdef TERRAIN3D +attribute vec2 a_centroid; +#endif +varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to; +#ifdef TERRAIN3D +float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0); +#else +float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0; +#endif +base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0 +? a_pos +: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),hillshadePrepare:_t(`#ifdef GL_ES +precision highp float; +#endif +uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:_t(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent; +#define PI 3.141592653589793 +void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),line:_t(`uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude; +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_width2=vec2(outset,inset);}`),lineGradient:_t(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude; +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_width2=vec2(outset,inset);}`),linePattern:_t(`#ifdef GL_ES +precision highp float; +#endif +uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +#define LINE_DISTANCE_SCALE 2.0 +attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude; +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:_t(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +#define LINE_DISTANCE_SCALE 2.0 +attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude; +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`),raster:_t(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),symbolIcon:_t(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;varying vec2 v_tex;varying float v_fade_opacity;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);} +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}gl_Position=finalPos;v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}`),symbolSDF:_t(`#define SDF_PX 8.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_translation;uniform float u_pitched_scale;varying vec2 v_data0;varying vec3 v_data1;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);} +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`),symbolTextAndIcon:_t(`#define SDF_PX 8.0 +#define SDF 1.0 +#define ICON 0.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;uniform bool u_is_along_line;uniform bool u_is_variable_anchor;uniform vec2 u_translation;uniform float u_pitched_scale;varying vec4 v_data0;varying vec4 v_data1;vec4 projectTileWithElevation(vec2 posInTile,float elevation) {return u_matrix*vec4(posInTile,elevation,1.0);} +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec2 translated_a_pos=a_pos+u_translation;vec4 projectedPoint=projectTileWithElevation(translated_a_pos,ele);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=projectTileWithElevation(translated_a_pos+vec2(1,0),ele);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos;if (u_is_along_line || u_is_variable_anchor) {projected_pos=vec4(a_projected_pos.xy,ele,1.0);} else if (u_pitch_with_map) {projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy+u_translation,ele,1.0);} else {projected_pos=u_label_plane_matrix*projectTileWithElevation(a_projected_pos.xy+u_translation,ele);}float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;float projectionScaling=1.0;vec4 finalPos=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale)*projectionScaling,z,1.0);if(u_pitch_with_map) {finalPos=projectTileWithElevation(finalPos.xy,finalPos.z);}float gamma_scale=finalPos.w;gl_Position=finalPos;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`),terrain:_t("uniform sampler2D u_texture;uniform vec4 u_fog_color;uniform vec4 u_horizon_color;uniform float u_fog_ground_blend;uniform float u_fog_ground_blend_opacity;uniform float u_horizon_fog_blend;varying vec2 v_texture_pos;varying float v_fog_depth;const float gamma=2.2;vec4 gammaToLinear(vec4 color) {return pow(color,vec4(gamma));}vec4 linearToGamma(vec4 color) {return pow(color,vec4(1.0/gamma));}void main() {vec4 surface_color=texture2D(u_texture,v_texture_pos);if (v_fog_depth > u_fog_ground_blend) {vec4 surface_color_linear=gammaToLinear(surface_color);float blend_color=smoothstep(0.0,1.0,max((v_fog_depth-u_horizon_fog_blend)/(1.0-u_horizon_fog_blend),0.0));vec4 fog_horizon_color_linear=mix(gammaToLinear(u_fog_color),gammaToLinear(u_horizon_color),blend_color);float factor_fog=max(v_fog_depth-u_fog_ground_blend,0.0)/(1.0-u_fog_ground_blend);gl_FragColor=linearToGamma(mix(surface_color_linear,fog_horizon_color_linear,pow(factor_fog,2.0)*u_fog_ground_blend_opacity));} else {gl_FragColor=surface_color;}}","attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform mat4 u_fog_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_fog_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=u_matrix*vec4(a_pos3d.xy,ele-ele_delta,1.0);vec4 pos=u_fog_matrix*vec4(a_pos3d.xy,ele,1.0);v_fog_depth=pos.z/pos.w*0.5+0.5;}"),terrainDepth:_t("varying float v_depth;const highp vec4 bitSh=vec4(256.*256.*256.,256.*256.,256.,1.);const highp vec4 bitMsk=vec4(0.,vec3(1./256.0));highp vec4 pack(highp float value) {highp vec4 comp=fract(value*bitSh);comp-=comp.xxyz*bitMsk;return comp;}void main() {gl_FragColor=pack(v_depth);}","attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying float v_depth;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;gl_Position=u_matrix*vec4(a_pos3d.xy,ele-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}"),terrainCoords:_t("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}","attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;void main() {float ele=get_elevation(a_pos3d.xy);float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/8192.0;gl_Position=u_matrix*vec4(a_pos3d.xy,ele-ele_delta,1.0);}"),sky:_t("uniform vec4 u_sky_color;uniform vec4 u_horizon_color;uniform float u_horizon;uniform float u_sky_horizon_blend;void main() {float y=gl_FragCoord.y;if (y > u_horizon) {float blend=y-u_horizon;if (blend < u_sky_horizon_blend) {gl_FragColor=mix(u_sky_color,u_horizon_color,pow(1.0-blend/u_sky_horizon_blend,2.0));} else {gl_FragColor=u_sky_color;}}}","attribute vec2 a_pos;void main() {gl_Position=vec4(a_pos,1.0,1.0);}")};function _t(le,w){let B=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,Q=w.match(/attribute ([\w]+) ([\w]+)/g),ee=le.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),se=w.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),qe=se?se.concat(ee):ee,je={};return{fragmentSource:le=le.replace(B,(it,yt,Ot,Nt,hr)=>(je[hr]=!0,yt==="define"?` +#ifndef HAS_UNIFORM_u_${hr} +varying ${Ot} ${Nt} ${hr}; +#else +uniform ${Ot} ${Nt} u_${hr}; +#endif +`:` +#ifdef HAS_UNIFORM_u_${hr} + ${Ot} ${Nt} ${hr} = u_${hr}; +#endif +`)),vertexSource:w=w.replace(B,(it,yt,Ot,Nt,hr)=>{let Sr=Nt==="float"?"vec2":"vec4",he=hr.match(/color/)?"color":Sr;return je[hr]?yt==="define"?` +#ifndef HAS_UNIFORM_u_${hr} +uniform lowp float u_${hr}_t; +attribute ${Ot} ${Sr} a_${hr}; +varying ${Ot} ${Nt} ${hr}; +#else +uniform ${Ot} ${Nt} u_${hr}; +#endif +`:he==="vec4"?` +#ifndef HAS_UNIFORM_u_${hr} + ${hr} = a_${hr}; +#else + ${Ot} ${Nt} ${hr} = u_${hr}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${hr} + ${hr} = unpack_mix_${he}(a_${hr}, u_${hr}_t); +#else + ${Ot} ${Nt} ${hr} = u_${hr}; +#endif +`:yt==="define"?` +#ifndef HAS_UNIFORM_u_${hr} +uniform lowp float u_${hr}_t; +attribute ${Ot} ${Sr} a_${hr}; +#else +uniform ${Ot} ${Nt} u_${hr}; +#endif +`:he==="vec4"?` +#ifndef HAS_UNIFORM_u_${hr} + ${Ot} ${Nt} ${hr} = a_${hr}; +#else + ${Ot} ${Nt} ${hr} = u_${hr}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${hr} + ${Ot} ${Nt} ${hr} = unpack_mix_${he}(a_${hr}, u_${hr}_t); +#else + ${Ot} ${Nt} ${hr} = u_${hr}; +#endif +`}),staticAttributes:Q,staticUniforms:qe}}class br{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(w,B,Q,ee,se,qe,je,it,yt){this.context=w;let Ot=this.boundPaintVertexBuffers.length!==ee.length;for(let Nt=0;!Ot&&Nt({u_matrix:le,u_texture:0,u_ele_delta:w,u_fog_matrix:B,u_fog_color:Q?Q.properties.get("fog-color"):a.aM.white,u_fog_ground_blend:Q?Q.properties.get("fog-ground-blend"):1,u_fog_ground_blend_opacity:Q?Q.calculateFogBlendOpacity(ee):0,u_horizon_color:Q?Q.properties.get("horizon-color"):a.aM.white,u_horizon_fog_blend:Q?Q.properties.get("horizon-fog-blend"):1});function ti(le){let w=[];for(let B=0;B({u_depth:new a.aH(Dt,Ut.u_depth),u_terrain:new a.aH(Dt,Ut.u_terrain),u_terrain_dim:new a.aI(Dt,Ut.u_terrain_dim),u_terrain_matrix:new a.aJ(Dt,Ut.u_terrain_matrix),u_terrain_unpack:new a.aK(Dt,Ut.u_terrain_unpack),u_terrain_exaggeration:new a.aI(Dt,Ut.u_terrain_exaggeration)}))(w,Mt),this.binderUniforms=Q?Q.getUniforms(w,Mt):[]}draw(w,B,Q,ee,se,qe,je,it,yt,Ot,Nt,hr,Sr,he,be,Pe,Oe,Je){let He=w.gl;if(this.failedToCreate)return;if(w.program.set(this.program),w.setDepthMode(Q),w.setStencilMode(ee),w.setColorMode(se),w.setCullFace(qe),it){w.activeTexture.set(He.TEXTURE2),He.bindTexture(He.TEXTURE_2D,it.depthTexture),w.activeTexture.set(He.TEXTURE3),He.bindTexture(He.TEXTURE_2D,it.texture);for(let Mt in this.terrainUniforms)this.terrainUniforms[Mt].set(it[Mt])}for(let Mt in this.fixedUniforms)this.fixedUniforms[Mt].set(je[Mt]);be&&be.setUniforms(w,this.binderUniforms,Sr,{zoom:he});let et=0;switch(B){case He.LINES:et=2;break;case He.TRIANGLES:et=3;break;case He.LINE_STRIP:et=1}for(let Mt of hr.get()){let Dt=Mt.vaos||(Mt.vaos={});(Dt[yt]||(Dt[yt]=new br)).bind(w,this,Ot,be?be.getPaintVertexBuffers():[],Nt,Mt.vertexOffset,Pe,Oe,Je),He.drawElements(B,Mt.primitiveLength*et,He.UNSIGNED_SHORT,Mt.primitiveOffset*et*2)}}}function Yi(le,w,B){let Q=1/nn(B,1,w.transform.tileZoom),ee=Math.pow(2,B.tileID.overscaledZ),se=B.tileSize*Math.pow(2,w.transform.tileZoom)/ee,qe=se*(B.tileID.canonical.x+B.tileID.wrap*ee),je=se*B.tileID.canonical.y;return{u_image:0,u_texsize:B.imageAtlasTexture.size,u_scale:[Q,le.fromScale,le.toScale],u_fade:le.t,u_pixel_coord_upper:[qe>>16,je>>16],u_pixel_coord_lower:[65535&qe,65535&je]}}let an=(le,w,B,Q)=>{let ee=w.style.light,se=ee.properties.get("position"),qe=[se.x,se.y,se.z],je=function(){var yt=new a.A(9);return a.A!=Float32Array&&(yt[1]=0,yt[2]=0,yt[3]=0,yt[5]=0,yt[6]=0,yt[7]=0),yt[0]=1,yt[4]=1,yt[8]=1,yt}();ee.properties.get("anchor")==="viewport"&&function(yt,Ot){var Nt=Math.sin(Ot),hr=Math.cos(Ot);yt[0]=hr,yt[1]=Nt,yt[2]=0,yt[3]=-Nt,yt[4]=hr,yt[5]=0,yt[6]=0,yt[7]=0,yt[8]=1}(je,-w.transform.angle),function(yt,Ot,Nt){var hr=Ot[0],Sr=Ot[1],he=Ot[2];yt[0]=hr*Nt[0]+Sr*Nt[3]+he*Nt[6],yt[1]=hr*Nt[1]+Sr*Nt[4]+he*Nt[7],yt[2]=hr*Nt[2]+Sr*Nt[5]+he*Nt[8]}(qe,qe,je);let it=ee.properties.get("color");return{u_matrix:le,u_lightpos:qe,u_lightintensity:ee.properties.get("intensity"),u_lightcolor:[it.r,it.g,it.b],u_vertical_gradient:+B,u_opacity:Q}},hi=(le,w,B,Q,ee,se,qe)=>a.e(an(le,w,B,Q),Yi(se,w,qe),{u_height_factor:-Math.pow(2,ee.overscaledZ)/qe.tileSize/8}),Ji=le=>({u_matrix:le}),ua=(le,w,B,Q)=>a.e(Ji(le),Yi(B,w,Q)),Fn=(le,w)=>({u_matrix:le,u_world:w}),Sa=(le,w,B,Q,ee)=>a.e(ua(le,w,B,Q),{u_world:ee}),go=(le,w,B,Q)=>{let ee=le.transform,se,qe;if(Q.paint.get("circle-pitch-alignment")==="map"){let je=nn(B,1,ee.zoom);se=!0,qe=[je,je]}else se=!1,qe=ee.pixelsToGLUnits;return{u_camera_to_center_distance:ee.cameraToCenterDistance,u_scale_with_map:+(Q.paint.get("circle-pitch-scale")==="map"),u_matrix:le.translatePosMatrix(w.posMatrix,B,Q.paint.get("circle-translate"),Q.paint.get("circle-translate-anchor")),u_pitch_with_map:+se,u_device_pixel_ratio:le.pixelRatio,u_extrude_scale:qe}},Oo=(le,w,B)=>({u_matrix:le,u_inv_matrix:w,u_camera_to_center_distance:B.cameraToCenterDistance,u_viewport_size:[B.width,B.height]}),ho=(le,w,B=1)=>({u_matrix:le,u_color:w,u_overlay:0,u_overlay_scale:B}),Mo=le=>({u_matrix:le}),xo=(le,w,B,Q)=>({u_matrix:le,u_extrude_scale:nn(w,1,B),u_intensity:Q}),zs=(le,w,B,Q)=>{let ee=a.H();a.aP(ee,0,le.width,le.height,0,0,1);let se=le.context.gl;return{u_matrix:ee,u_world:[se.drawingBufferWidth,se.drawingBufferHeight],u_image:B,u_color_ramp:Q,u_opacity:w.paint.get("heatmap-opacity")}};function ks(le,w){let B=Math.pow(2,w.canonical.z),Q=w.canonical.y;return[new a.Z(0,Q/B).toLngLat().lat,new a.Z(0,(Q+1)/B).toLngLat().lat]}let Zs=(le,w,B,Q)=>{let ee=le.transform;return{u_matrix:Cs(le,w,B,Q),u_ratio:1/nn(w,1,ee.zoom),u_device_pixel_ratio:le.pixelRatio,u_units_to_pixels:[1/ee.pixelsToGLUnits[0],1/ee.pixelsToGLUnits[1]]}},Xs=(le,w,B,Q,ee)=>a.e(Zs(le,w,B,ee),{u_image:0,u_image_height:Q}),wl=(le,w,B,Q,ee)=>{let se=le.transform,qe=cl(w,se);return{u_matrix:Cs(le,w,B,ee),u_texsize:w.imageAtlasTexture.size,u_ratio:1/nn(w,1,se.zoom),u_device_pixel_ratio:le.pixelRatio,u_image:0,u_scale:[qe,Q.fromScale,Q.toScale],u_fade:Q.t,u_units_to_pixels:[1/se.pixelsToGLUnits[0],1/se.pixelsToGLUnits[1]]}},os=(le,w,B,Q,ee,se)=>{let qe=le.lineAtlas,je=cl(w,le.transform),it=B.layout.get("line-cap")==="round",yt=qe.getDash(Q.from,it),Ot=qe.getDash(Q.to,it),Nt=yt.width*ee.fromScale,hr=Ot.width*ee.toScale;return a.e(Zs(le,w,B,se),{u_patternscale_a:[je/Nt,-yt.height/2],u_patternscale_b:[je/hr,-Ot.height/2],u_sdfgamma:qe.width/(256*Math.min(Nt,hr)*le.pixelRatio)/2,u_image:0,u_tex_y_a:yt.y,u_tex_y_b:Ot.y,u_mix:ee.t})};function cl(le,w){return 1/nn(le,1,w.tileZoom)}function Cs(le,w,B,Q){return le.translatePosMatrix(Q?Q.posMatrix:w.tileID.posMatrix,w,B.paint.get("line-translate"),B.paint.get("line-translate-anchor"))}let ml=(le,w,B,Q,ee)=>{return{u_matrix:le,u_tl_parent:w,u_scale_parent:B,u_buffer_scale:1,u_fade_t:Q.mix,u_opacity:Q.opacity*ee.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:ee.paint.get("raster-brightness-min"),u_brightness_high:ee.paint.get("raster-brightness-max"),u_saturation_factor:(qe=ee.paint.get("raster-saturation"),qe>0?1-1/(1.001-qe):-qe),u_contrast_factor:(se=ee.paint.get("raster-contrast"),se>0?1/(1-se):1+se),u_spin_weights:Ys(ee.paint.get("raster-hue-rotate"))};var se,qe};function Ys(le){le*=Math.PI/180;let w=Math.sin(le),B=Math.cos(le);return[(2*B+1)/3,(-Math.sqrt(3)*w-B+1)/3,(Math.sqrt(3)*w-B+1)/3]}let Hs=(le,w,B,Q,ee,se,qe,je,it,yt,Ot,Nt,hr,Sr)=>{let he=qe.transform;return{u_is_size_zoom_constant:+(le==="constant"||le==="source"),u_is_size_feature_constant:+(le==="constant"||le==="camera"),u_size_t:w?w.uSizeT:0,u_size:w?w.uSize:0,u_camera_to_center_distance:he.cameraToCenterDistance,u_pitch:he.pitch/360*2*Math.PI,u_rotate_symbol:+B,u_aspect_ratio:he.width/he.height,u_fade_change:qe.options.fadeDuration?qe.symbolFadeChange:1,u_matrix:je,u_label_plane_matrix:it,u_coord_matrix:yt,u_is_text:+Nt,u_pitch_with_map:+Q,u_is_along_line:ee,u_is_variable_anchor:se,u_texsize:hr,u_texture:0,u_translation:Ot,u_pitched_scale:Sr}},Eo=(le,w,B,Q,ee,se,qe,je,it,yt,Ot,Nt,hr,Sr,he)=>{let be=qe.transform;return a.e(Hs(le,w,B,Q,ee,se,qe,je,it,yt,Ot,Nt,hr,he),{u_gamma_scale:Q?Math.cos(be._pitch)*be.cameraToCenterDistance:1,u_device_pixel_ratio:qe.pixelRatio,u_is_halo:+Sr})},fs=(le,w,B,Q,ee,se,qe,je,it,yt,Ot,Nt,hr,Sr)=>a.e(Eo(le,w,B,Q,ee,se,qe,je,it,yt,Ot,!0,Nt,!0,Sr),{u_texsize_icon:hr,u_texture_icon:1}),$l=(le,w,B)=>({u_matrix:le,u_opacity:w,u_color:B}),Hu=(le,w,B,Q,ee,se)=>a.e(function(qe,je,it,yt){let Ot=it.imageManager.getPattern(qe.from.toString()),Nt=it.imageManager.getPattern(qe.to.toString()),{width:hr,height:Sr}=it.imageManager.getPixelSize(),he=Math.pow(2,yt.tileID.overscaledZ),be=yt.tileSize*Math.pow(2,it.transform.tileZoom)/he,Pe=be*(yt.tileID.canonical.x+yt.tileID.wrap*he),Oe=be*yt.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:Ot.tl,u_pattern_br_a:Ot.br,u_pattern_tl_b:Nt.tl,u_pattern_br_b:Nt.br,u_texsize:[hr,Sr],u_mix:je.t,u_pattern_size_a:Ot.displaySize,u_pattern_size_b:Nt.displaySize,u_scale_a:je.fromScale,u_scale_b:je.toScale,u_tile_units_to_pixels:1/nn(yt,1,it.transform.tileZoom),u_pixel_coord_upper:[Pe>>16,Oe>>16],u_pixel_coord_lower:[65535&Pe,65535&Oe]}}(Q,se,B,ee),{u_matrix:le,u_opacity:w}),fc={fillExtrusion:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_lightpos:new a.aN(le,w.u_lightpos),u_lightintensity:new a.aI(le,w.u_lightintensity),u_lightcolor:new a.aN(le,w.u_lightcolor),u_vertical_gradient:new a.aI(le,w.u_vertical_gradient),u_opacity:new a.aI(le,w.u_opacity)}),fillExtrusionPattern:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_lightpos:new a.aN(le,w.u_lightpos),u_lightintensity:new a.aI(le,w.u_lightintensity),u_lightcolor:new a.aN(le,w.u_lightcolor),u_vertical_gradient:new a.aI(le,w.u_vertical_gradient),u_height_factor:new a.aI(le,w.u_height_factor),u_image:new a.aH(le,w.u_image),u_texsize:new a.aO(le,w.u_texsize),u_pixel_coord_upper:new a.aO(le,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(le,w.u_pixel_coord_lower),u_scale:new a.aN(le,w.u_scale),u_fade:new a.aI(le,w.u_fade),u_opacity:new a.aI(le,w.u_opacity)}),fill:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix)}),fillPattern:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_image:new a.aH(le,w.u_image),u_texsize:new a.aO(le,w.u_texsize),u_pixel_coord_upper:new a.aO(le,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(le,w.u_pixel_coord_lower),u_scale:new a.aN(le,w.u_scale),u_fade:new a.aI(le,w.u_fade)}),fillOutline:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_world:new a.aO(le,w.u_world)}),fillOutlinePattern:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_world:new a.aO(le,w.u_world),u_image:new a.aH(le,w.u_image),u_texsize:new a.aO(le,w.u_texsize),u_pixel_coord_upper:new a.aO(le,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(le,w.u_pixel_coord_lower),u_scale:new a.aN(le,w.u_scale),u_fade:new a.aI(le,w.u_fade)}),circle:(le,w)=>({u_camera_to_center_distance:new a.aI(le,w.u_camera_to_center_distance),u_scale_with_map:new a.aH(le,w.u_scale_with_map),u_pitch_with_map:new a.aH(le,w.u_pitch_with_map),u_extrude_scale:new a.aO(le,w.u_extrude_scale),u_device_pixel_ratio:new a.aI(le,w.u_device_pixel_ratio),u_matrix:new a.aJ(le,w.u_matrix)}),collisionBox:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_pixel_extrude_scale:new a.aO(le,w.u_pixel_extrude_scale)}),collisionCircle:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_inv_matrix:new a.aJ(le,w.u_inv_matrix),u_camera_to_center_distance:new a.aI(le,w.u_camera_to_center_distance),u_viewport_size:new a.aO(le,w.u_viewport_size)}),debug:(le,w)=>({u_color:new a.aL(le,w.u_color),u_matrix:new a.aJ(le,w.u_matrix),u_overlay:new a.aH(le,w.u_overlay),u_overlay_scale:new a.aI(le,w.u_overlay_scale)}),clippingMask:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix)}),heatmap:(le,w)=>({u_extrude_scale:new a.aI(le,w.u_extrude_scale),u_intensity:new a.aI(le,w.u_intensity),u_matrix:new a.aJ(le,w.u_matrix)}),heatmapTexture:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_world:new a.aO(le,w.u_world),u_image:new a.aH(le,w.u_image),u_color_ramp:new a.aH(le,w.u_color_ramp),u_opacity:new a.aI(le,w.u_opacity)}),hillshade:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_image:new a.aH(le,w.u_image),u_latrange:new a.aO(le,w.u_latrange),u_light:new a.aO(le,w.u_light),u_shadow:new a.aL(le,w.u_shadow),u_highlight:new a.aL(le,w.u_highlight),u_accent:new a.aL(le,w.u_accent)}),hillshadePrepare:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_image:new a.aH(le,w.u_image),u_dimension:new a.aO(le,w.u_dimension),u_zoom:new a.aI(le,w.u_zoom),u_unpack:new a.aK(le,w.u_unpack)}),line:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_ratio:new a.aI(le,w.u_ratio),u_device_pixel_ratio:new a.aI(le,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(le,w.u_units_to_pixels)}),lineGradient:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_ratio:new a.aI(le,w.u_ratio),u_device_pixel_ratio:new a.aI(le,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(le,w.u_units_to_pixels),u_image:new a.aH(le,w.u_image),u_image_height:new a.aI(le,w.u_image_height)}),linePattern:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_texsize:new a.aO(le,w.u_texsize),u_ratio:new a.aI(le,w.u_ratio),u_device_pixel_ratio:new a.aI(le,w.u_device_pixel_ratio),u_image:new a.aH(le,w.u_image),u_units_to_pixels:new a.aO(le,w.u_units_to_pixels),u_scale:new a.aN(le,w.u_scale),u_fade:new a.aI(le,w.u_fade)}),lineSDF:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_ratio:new a.aI(le,w.u_ratio),u_device_pixel_ratio:new a.aI(le,w.u_device_pixel_ratio),u_units_to_pixels:new a.aO(le,w.u_units_to_pixels),u_patternscale_a:new a.aO(le,w.u_patternscale_a),u_patternscale_b:new a.aO(le,w.u_patternscale_b),u_sdfgamma:new a.aI(le,w.u_sdfgamma),u_image:new a.aH(le,w.u_image),u_tex_y_a:new a.aI(le,w.u_tex_y_a),u_tex_y_b:new a.aI(le,w.u_tex_y_b),u_mix:new a.aI(le,w.u_mix)}),raster:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_tl_parent:new a.aO(le,w.u_tl_parent),u_scale_parent:new a.aI(le,w.u_scale_parent),u_buffer_scale:new a.aI(le,w.u_buffer_scale),u_fade_t:new a.aI(le,w.u_fade_t),u_opacity:new a.aI(le,w.u_opacity),u_image0:new a.aH(le,w.u_image0),u_image1:new a.aH(le,w.u_image1),u_brightness_low:new a.aI(le,w.u_brightness_low),u_brightness_high:new a.aI(le,w.u_brightness_high),u_saturation_factor:new a.aI(le,w.u_saturation_factor),u_contrast_factor:new a.aI(le,w.u_contrast_factor),u_spin_weights:new a.aN(le,w.u_spin_weights)}),symbolIcon:(le,w)=>({u_is_size_zoom_constant:new a.aH(le,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(le,w.u_is_size_feature_constant),u_size_t:new a.aI(le,w.u_size_t),u_size:new a.aI(le,w.u_size),u_camera_to_center_distance:new a.aI(le,w.u_camera_to_center_distance),u_pitch:new a.aI(le,w.u_pitch),u_rotate_symbol:new a.aH(le,w.u_rotate_symbol),u_aspect_ratio:new a.aI(le,w.u_aspect_ratio),u_fade_change:new a.aI(le,w.u_fade_change),u_matrix:new a.aJ(le,w.u_matrix),u_label_plane_matrix:new a.aJ(le,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(le,w.u_coord_matrix),u_is_text:new a.aH(le,w.u_is_text),u_pitch_with_map:new a.aH(le,w.u_pitch_with_map),u_is_along_line:new a.aH(le,w.u_is_along_line),u_is_variable_anchor:new a.aH(le,w.u_is_variable_anchor),u_texsize:new a.aO(le,w.u_texsize),u_texture:new a.aH(le,w.u_texture),u_translation:new a.aO(le,w.u_translation),u_pitched_scale:new a.aI(le,w.u_pitched_scale)}),symbolSDF:(le,w)=>({u_is_size_zoom_constant:new a.aH(le,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(le,w.u_is_size_feature_constant),u_size_t:new a.aI(le,w.u_size_t),u_size:new a.aI(le,w.u_size),u_camera_to_center_distance:new a.aI(le,w.u_camera_to_center_distance),u_pitch:new a.aI(le,w.u_pitch),u_rotate_symbol:new a.aH(le,w.u_rotate_symbol),u_aspect_ratio:new a.aI(le,w.u_aspect_ratio),u_fade_change:new a.aI(le,w.u_fade_change),u_matrix:new a.aJ(le,w.u_matrix),u_label_plane_matrix:new a.aJ(le,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(le,w.u_coord_matrix),u_is_text:new a.aH(le,w.u_is_text),u_pitch_with_map:new a.aH(le,w.u_pitch_with_map),u_is_along_line:new a.aH(le,w.u_is_along_line),u_is_variable_anchor:new a.aH(le,w.u_is_variable_anchor),u_texsize:new a.aO(le,w.u_texsize),u_texture:new a.aH(le,w.u_texture),u_gamma_scale:new a.aI(le,w.u_gamma_scale),u_device_pixel_ratio:new a.aI(le,w.u_device_pixel_ratio),u_is_halo:new a.aH(le,w.u_is_halo),u_translation:new a.aO(le,w.u_translation),u_pitched_scale:new a.aI(le,w.u_pitched_scale)}),symbolTextAndIcon:(le,w)=>({u_is_size_zoom_constant:new a.aH(le,w.u_is_size_zoom_constant),u_is_size_feature_constant:new a.aH(le,w.u_is_size_feature_constant),u_size_t:new a.aI(le,w.u_size_t),u_size:new a.aI(le,w.u_size),u_camera_to_center_distance:new a.aI(le,w.u_camera_to_center_distance),u_pitch:new a.aI(le,w.u_pitch),u_rotate_symbol:new a.aH(le,w.u_rotate_symbol),u_aspect_ratio:new a.aI(le,w.u_aspect_ratio),u_fade_change:new a.aI(le,w.u_fade_change),u_matrix:new a.aJ(le,w.u_matrix),u_label_plane_matrix:new a.aJ(le,w.u_label_plane_matrix),u_coord_matrix:new a.aJ(le,w.u_coord_matrix),u_is_text:new a.aH(le,w.u_is_text),u_pitch_with_map:new a.aH(le,w.u_pitch_with_map),u_is_along_line:new a.aH(le,w.u_is_along_line),u_is_variable_anchor:new a.aH(le,w.u_is_variable_anchor),u_texsize:new a.aO(le,w.u_texsize),u_texsize_icon:new a.aO(le,w.u_texsize_icon),u_texture:new a.aH(le,w.u_texture),u_texture_icon:new a.aH(le,w.u_texture_icon),u_gamma_scale:new a.aI(le,w.u_gamma_scale),u_device_pixel_ratio:new a.aI(le,w.u_device_pixel_ratio),u_is_halo:new a.aH(le,w.u_is_halo),u_translation:new a.aO(le,w.u_translation),u_pitched_scale:new a.aI(le,w.u_pitched_scale)}),background:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_opacity:new a.aI(le,w.u_opacity),u_color:new a.aL(le,w.u_color)}),backgroundPattern:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_opacity:new a.aI(le,w.u_opacity),u_image:new a.aH(le,w.u_image),u_pattern_tl_a:new a.aO(le,w.u_pattern_tl_a),u_pattern_br_a:new a.aO(le,w.u_pattern_br_a),u_pattern_tl_b:new a.aO(le,w.u_pattern_tl_b),u_pattern_br_b:new a.aO(le,w.u_pattern_br_b),u_texsize:new a.aO(le,w.u_texsize),u_mix:new a.aI(le,w.u_mix),u_pattern_size_a:new a.aO(le,w.u_pattern_size_a),u_pattern_size_b:new a.aO(le,w.u_pattern_size_b),u_scale_a:new a.aI(le,w.u_scale_a),u_scale_b:new a.aI(le,w.u_scale_b),u_pixel_coord_upper:new a.aO(le,w.u_pixel_coord_upper),u_pixel_coord_lower:new a.aO(le,w.u_pixel_coord_lower),u_tile_units_to_pixels:new a.aI(le,w.u_tile_units_to_pixels)}),terrain:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_texture:new a.aH(le,w.u_texture),u_ele_delta:new a.aI(le,w.u_ele_delta),u_fog_matrix:new a.aJ(le,w.u_fog_matrix),u_fog_color:new a.aL(le,w.u_fog_color),u_fog_ground_blend:new a.aI(le,w.u_fog_ground_blend),u_fog_ground_blend_opacity:new a.aI(le,w.u_fog_ground_blend_opacity),u_horizon_color:new a.aL(le,w.u_horizon_color),u_horizon_fog_blend:new a.aI(le,w.u_horizon_fog_blend)}),terrainDepth:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_ele_delta:new a.aI(le,w.u_ele_delta)}),terrainCoords:(le,w)=>({u_matrix:new a.aJ(le,w.u_matrix),u_texture:new a.aH(le,w.u_texture),u_terrain_coords_id:new a.aI(le,w.u_terrain_coords_id),u_ele_delta:new a.aI(le,w.u_ele_delta)}),sky:(le,w)=>({u_sky_color:new a.aL(le,w.u_sky_color),u_horizon_color:new a.aL(le,w.u_horizon_color),u_horizon:new a.aI(le,w.u_horizon),u_sky_horizon_blend:new a.aI(le,w.u_sky_horizon_blend)})};class ms{constructor(w,B,Q){this.context=w;let ee=w.gl;this.buffer=ee.createBuffer(),this.dynamicDraw=!!Q,this.context.unbindVAO(),w.bindElementBuffer.set(this.buffer),ee.bufferData(ee.ELEMENT_ARRAY_BUFFER,B.arrayBuffer,this.dynamicDraw?ee.DYNAMIC_DRAW:ee.STATIC_DRAW),this.dynamicDraw||delete B.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(w){let B=this.context.gl;if(!this.dynamicDraw)throw new Error("Attempted to update data while not in dynamic mode.");this.context.unbindVAO(),this.bind(),B.bufferSubData(B.ELEMENT_ARRAY_BUFFER,0,w.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}let on={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class fa{constructor(w,B,Q,ee){this.length=B.length,this.attributes=Q,this.itemSize=B.bytesPerElement,this.dynamicDraw=ee,this.context=w;let se=w.gl;this.buffer=se.createBuffer(),w.bindVertexBuffer.set(this.buffer),se.bufferData(se.ARRAY_BUFFER,B.arrayBuffer,this.dynamicDraw?se.DYNAMIC_DRAW:se.STATIC_DRAW),this.dynamicDraw||delete B.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(w){if(w.length!==this.length)throw new Error(`Length of new data is ${w.length}, which doesn't match current length of ${this.length}`);let B=this.context.gl;this.bind(),B.bufferSubData(B.ARRAY_BUFFER,0,w.arrayBuffer)}enableAttributes(w,B){for(let Q=0;Q0){let Dt=a.H();a.aQ(Dt,He.placementInvProjMatrix,le.transform.glCoordMatrix),a.aQ(Dt,Dt,He.placementViewportMatrix),it.push({circleArray:Mt,circleOffset:Ot,transform:Je.posMatrix,invTransform:Dt,coord:Je}),yt+=Mt.length/4,Ot=yt}et&&je.draw(se,qe.LINES,wo.disabled,$o.disabled,le.colorModeForRenderPass(),Ja.disabled,{u_matrix:Je.posMatrix,u_pixel_extrude_scale:[1/(Nt=le.transform).width,1/Nt.height]},le.style.map.terrain&&le.style.map.terrain.getTerrainData(Je),B.id,et.layoutVertexBuffer,et.indexBuffer,et.segments,null,le.transform.zoom,null,null,et.collisionVertexBuffer)}var Nt;if(!ee||!it.length)return;let hr=le.useProgram("collisionCircle"),Sr=new a.aR;Sr.resize(4*yt),Sr._trim();let he=0;for(let Oe of it)for(let Je=0;Je=0&&(Oe[He.associatedIconIndex]={shiftedAnchor:Mn,angle:pa})}else ai(He.numGlyphs,be)}if(yt){Pe.clear();let Je=le.icon.placedSymbolArray;for(let He=0;Hele.style.map.terrain.getElevation(zr,tt,zt):null,wt=B.layout.get("text-rotation-alignment")==="map";Ve(di,zr.posMatrix,le,ee,Vl,cu,Oe,yt,wt,be,zr.toUnwrapped(),he.width,he.height,el,We)}let Dl=zr.posMatrix,zl=ee&&tr||zc,Z=Je||zl?uu:Vl,oe=Zu,we=Qi&&B.paint.get(ee?"text-halo-width":"icon-halo-width").constantOr(1)!==0,Be;Be=Qi?di.iconsInText?fs(Mn.kind,Ga,He,Oe,Je,zl,le,Dl,Z,oe,el,Wa,As,Rr):Eo(Mn.kind,Ga,He,Oe,Je,zl,le,Dl,Z,oe,el,ee,Wa,!0,Rr):Hs(Mn.kind,Ga,He,Oe,Je,zl,le,Dl,Z,oe,el,ee,Wa,Rr);let Ue={program:ea,buffers:Li,uniformValues:Be,atlasTexture:co,atlasTextureIcon:yo,atlasInterpolation:Ro,atlasInterpolationIcon:Ds,isSDF:Qi,hasHalo:we};if(Mt&&di.canOverlap){Dt=!0;let We=Li.segments.get();for(let wt of We)mr.push({segments:new a.a0([wt]),sortKey:wt.sortKey,state:Ue,terrainData:To})}else mr.push({segments:Li.segments,sortKey:0,state:Ue,terrainData:To})}Dt&&mr.sort((zr,Xr)=>zr.sortKey-Xr.sortKey);for(let zr of mr){let Xr=zr.state;if(hr.activeTexture.set(Sr.TEXTURE0),Xr.atlasTexture.bind(Xr.atlasInterpolation,Sr.CLAMP_TO_EDGE),Xr.atlasTextureIcon&&(hr.activeTexture.set(Sr.TEXTURE1),Xr.atlasTextureIcon&&Xr.atlasTextureIcon.bind(Xr.atlasInterpolationIcon,Sr.CLAMP_TO_EDGE)),Xr.isSDF){let di=Xr.uniformValues;Xr.hasHalo&&(di.u_is_halo=1,Eh(Xr.buffers,zr.segments,B,le,Xr.program,Ut,Ot,Nt,di,zr.terrainData)),di.u_is_halo=0}Eh(Xr.buffers,zr.segments,B,le,Xr.program,Ut,Ot,Nt,Xr.uniformValues,zr.terrainData)}}function Eh(le,w,B,Q,ee,se,qe,je,it,yt){let Ot=Q.context;ee.draw(Ot,Ot.gl.TRIANGLES,se,qe,je,Ja.disabled,it,yt,B.id,le.layoutVertexBuffer,le.indexBuffer,w,B.paint,Q.transform.zoom,le.programConfigurations.get(B.id),le.dynamicLayoutVertexBuffer,le.opacityVertexBuffer)}function nh(le,w,B,Q){let ee=le.context,se=ee.gl,qe=$o.disabled,je=new Ps([se.ONE,se.ONE],a.aM.transparent,[!0,!0,!0,!0]),it=w.getBucket(B);if(!it)return;let yt=Q.key,Ot=B.heatmapFbos.get(yt);Ot||(Ot=kh(ee,w.tileSize,w.tileSize),B.heatmapFbos.set(yt,Ot)),ee.bindFramebuffer.set(Ot.framebuffer),ee.viewport.set([0,0,w.tileSize,w.tileSize]),ee.clear({color:a.aM.transparent});let Nt=it.programConfigurations.get(B.id),hr=le.useProgram("heatmap",Nt),Sr=le.style.map.terrain.getTerrainData(Q);hr.draw(ee,se.TRIANGLES,wo.disabled,qe,je,Ja.disabled,xo(Q.posMatrix,w,le.transform.zoom,B.paint.get("heatmap-intensity")),Sr,B.id,it.layoutVertexBuffer,it.indexBuffer,it.segments,B.paint,le.transform.zoom,Nt)}function hf(le,w,B){let Q=le.context,ee=Q.gl;Q.setColorMode(le.colorModeForRenderPass());let se=Kh(Q,w),qe=B.key,je=w.heatmapFbos.get(qe);je&&(Q.activeTexture.set(ee.TEXTURE0),ee.bindTexture(ee.TEXTURE_2D,je.colorAttachment.get()),Q.activeTexture.set(ee.TEXTURE1),se.bind(ee.LINEAR,ee.CLAMP_TO_EDGE),le.useProgram("heatmapTexture").draw(Q,ee.TRIANGLES,wo.disabled,$o.disabled,le.colorModeForRenderPass(),Ja.disabled,zs(le,w,0,1),null,w.id,le.rasterBoundsBuffer,le.quadTriangleIndexBuffer,le.rasterBoundsSegments,w.paint,le.transform.zoom),je.destroy(),w.heatmapFbos.delete(qe))}function kh(le,w,B){var Q,ee;let se=le.gl,qe=se.createTexture();se.bindTexture(se.TEXTURE_2D,qe),se.texParameteri(se.TEXTURE_2D,se.TEXTURE_WRAP_S,se.CLAMP_TO_EDGE),se.texParameteri(se.TEXTURE_2D,se.TEXTURE_WRAP_T,se.CLAMP_TO_EDGE),se.texParameteri(se.TEXTURE_2D,se.TEXTURE_MIN_FILTER,se.LINEAR),se.texParameteri(se.TEXTURE_2D,se.TEXTURE_MAG_FILTER,se.LINEAR);let je=(Q=le.HALF_FLOAT)!==null&&Q!==void 0?Q:se.UNSIGNED_BYTE,it=(ee=le.RGBA16F)!==null&&ee!==void 0?ee:se.RGBA;se.texImage2D(se.TEXTURE_2D,0,it,w,B,0,se.RGBA,je,null);let yt=le.createFramebuffer(w,B,!1,!1);return yt.colorAttachment.set(qe),yt}function Kh(le,w){return w.colorRampTexture||(w.colorRampTexture=new p(le,w.colorRamp,le.gl.RGBA)),w.colorRampTexture}function rc(le,w,B,Q,ee){if(!B||!Q||!Q.imageAtlas)return;let se=Q.imageAtlas.patternPositions,qe=se[B.to.toString()],je=se[B.from.toString()];if(!qe&&je&&(qe=je),!je&&qe&&(je=qe),!qe||!je){let it=ee.getPaintProperty(w);qe=se[it],je=se[it]}qe&&je&&le.setConstantPatternPositions(qe,je)}function ah(le,w,B,Q,ee,se,qe){let je=le.context.gl,it="fill-pattern",yt=B.paint.get(it),Ot=yt&&yt.constantOr(1),Nt=B.getCrossfadeParameters(),hr,Sr,he,be,Pe;qe?(Sr=Ot&&!B.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",hr=je.LINES):(Sr=Ot?"fillPattern":"fill",hr=je.TRIANGLES);let Oe=yt.constantOr(null);for(let Je of Q){let He=w.getTile(Je);if(Ot&&!He.patternsLoaded())continue;let et=He.getBucket(B);if(!et)continue;let Mt=et.programConfigurations.get(B.id),Dt=le.useProgram(Sr,Mt),Ut=le.style.map.terrain&&le.style.map.terrain.getTerrainData(Je);Ot&&(le.context.activeTexture.set(je.TEXTURE0),He.imageAtlasTexture.bind(je.LINEAR,je.CLAMP_TO_EDGE),Mt.updatePaintBuffers(Nt)),rc(Mt,it,Oe,He,B);let tr=Ut?Je:null,mr=le.translatePosMatrix(tr?tr.posMatrix:Je.posMatrix,He,B.paint.get("fill-translate"),B.paint.get("fill-translate-anchor"));if(qe){be=et.indexBuffer2,Pe=et.segments2;let Rr=[je.drawingBufferWidth,je.drawingBufferHeight];he=Sr==="fillOutlinePattern"&&Ot?Sa(mr,le,Nt,He,Rr):Fn(mr,Rr)}else be=et.indexBuffer,Pe=et.segments,he=Ot?ua(mr,le,Nt,He):Ji(mr);Dt.draw(le.context,hr,ee,le.stencilModeForClipping(Je),se,Ja.disabled,he,Ut,B.id,et.layoutVertexBuffer,be,Pe,B.paint,le.transform.zoom,Mt)}}function Wc(le,w,B,Q,ee,se,qe){let je=le.context,it=je.gl,yt="fill-extrusion-pattern",Ot=B.paint.get(yt),Nt=Ot.constantOr(1),hr=B.getCrossfadeParameters(),Sr=B.paint.get("fill-extrusion-opacity"),he=Ot.constantOr(null);for(let be of Q){let Pe=w.getTile(be),Oe=Pe.getBucket(B);if(!Oe)continue;let Je=le.style.map.terrain&&le.style.map.terrain.getTerrainData(be),He=Oe.programConfigurations.get(B.id),et=le.useProgram(Nt?"fillExtrusionPattern":"fillExtrusion",He);Nt&&(le.context.activeTexture.set(it.TEXTURE0),Pe.imageAtlasTexture.bind(it.LINEAR,it.CLAMP_TO_EDGE),He.updatePaintBuffers(hr)),rc(He,yt,he,Pe,B);let Mt=le.translatePosMatrix(be.posMatrix,Pe,B.paint.get("fill-extrusion-translate"),B.paint.get("fill-extrusion-translate-anchor")),Dt=B.paint.get("fill-extrusion-vertical-gradient"),Ut=Nt?hi(Mt,le,Dt,Sr,be,hr,Pe):an(Mt,le,Dt,Sr);et.draw(je,je.gl.TRIANGLES,ee,se,qe,Ja.backCCW,Ut,Je,B.id,Oe.layoutVertexBuffer,Oe.indexBuffer,Oe.segments,B.paint,le.transform.zoom,He,le.style.map.terrain&&Oe.centroidVertexBuffer)}}function df(le,w,B,Q,ee,se,qe){let je=le.context,it=je.gl,yt=B.fbo;if(!yt)return;let Ot=le.useProgram("hillshade"),Nt=le.style.map.terrain&&le.style.map.terrain.getTerrainData(w);je.activeTexture.set(it.TEXTURE0),it.bindTexture(it.TEXTURE_2D,yt.colorAttachment.get()),Ot.draw(je,it.TRIANGLES,ee,se,qe,Ja.disabled,((hr,Sr,he,be)=>{let Pe=he.paint.get("hillshade-shadow-color"),Oe=he.paint.get("hillshade-highlight-color"),Je=he.paint.get("hillshade-accent-color"),He=he.paint.get("hillshade-illumination-direction")*(Math.PI/180);he.paint.get("hillshade-illumination-anchor")==="viewport"&&(He-=hr.transform.angle);let et=!hr.options.moving;return{u_matrix:be?be.posMatrix:hr.transform.calculatePosMatrix(Sr.tileID.toUnwrapped(),et),u_image:0,u_latrange:ks(0,Sr.tileID),u_light:[he.paint.get("hillshade-exaggeration"),He],u_shadow:Pe,u_highlight:Oe,u_accent:Je}})(le,B,Q,Nt?w:null),Nt,Q.id,le.rasterBoundsBuffer,le.quadTriangleIndexBuffer,le.rasterBoundsSegments)}function Cu(le,w,B,Q,ee,se){let qe=le.context,je=qe.gl,it=w.dem;if(it&&it.data){let yt=it.dim,Ot=it.stride,Nt=it.getPixels();if(qe.activeTexture.set(je.TEXTURE1),qe.pixelStoreUnpackPremultiplyAlpha.set(!1),w.demTexture=w.demTexture||le.getTileTexture(Ot),w.demTexture){let Sr=w.demTexture;Sr.update(Nt,{premultiply:!1}),Sr.bind(je.NEAREST,je.CLAMP_TO_EDGE)}else w.demTexture=new p(qe,Nt,je.RGBA,{premultiply:!1}),w.demTexture.bind(je.NEAREST,je.CLAMP_TO_EDGE);qe.activeTexture.set(je.TEXTURE0);let hr=w.fbo;if(!hr){let Sr=new p(qe,{width:yt,height:yt,data:null},je.RGBA);Sr.bind(je.LINEAR,je.CLAMP_TO_EDGE),hr=w.fbo=qe.createFramebuffer(yt,yt,!0,!1),hr.colorAttachment.set(Sr.texture)}qe.bindFramebuffer.set(hr.framebuffer),qe.viewport.set([0,0,yt,yt]),le.useProgram("hillshadePrepare").draw(qe,je.TRIANGLES,Q,ee,se,Ja.disabled,((Sr,he)=>{let be=he.stride,Pe=a.H();return a.aP(Pe,0,a.X,-a.X,0,0,1),a.J(Pe,Pe,[0,-a.X,0]),{u_matrix:Pe,u_image:1,u_dimension:[be,be],u_zoom:Sr.overscaledZ,u_unpack:he.getUnpackVector()}})(w.tileID,it),null,B.id,le.rasterBoundsBuffer,le.quadTriangleIndexBuffer,le.rasterBoundsSegments),w.needsHillshadePrepare=!1}}function Nf(le,w,B,Q,ee,se){let qe=Q.paint.get("raster-fade-duration");if(!se&&qe>0){let je=u.now(),it=(je-le.timeAdded)/qe,yt=w?(je-w.timeAdded)/qe:-1,Ot=B.getSource(),Nt=ee.coveringZoomLevel({tileSize:Ot.tileSize,roundZoom:Ot.roundZoom}),hr=!w||Math.abs(w.tileID.overscaledZ-Nt)>Math.abs(le.tileID.overscaledZ-Nt),Sr=hr&&le.refreshedUponExpiration?1:a.ac(hr?it:1-yt,0,1);return le.refreshedUponExpiration&&it>=1&&(le.refreshedUponExpiration=!1),w?{opacity:1,mix:1-Sr}:{opacity:Sr,mix:0}}return{opacity:1,mix:0}}let Zc=new a.aM(1,0,0,1),ds=new a.aM(0,1,0,1),Ch=new a.aM(0,0,1,1),Bd=new a.aM(1,0,1,1),Jh=new a.aM(0,1,1,1);function Cf(le,w,B,Q){Lu(le,0,w+B/2,le.transform.width,B,Q)}function pd(le,w,B,Q){Lu(le,w-B/2,0,B,le.transform.height,Q)}function Lu(le,w,B,Q,ee,se){let qe=le.context,je=qe.gl;je.enable(je.SCISSOR_TEST),je.scissor(w*le.pixelRatio,B*le.pixelRatio,Q*le.pixelRatio,ee*le.pixelRatio),qe.clear({color:se}),je.disable(je.SCISSOR_TEST)}function $h(le,w,B){let Q=le.context,ee=Q.gl,se=B.posMatrix,qe=le.useProgram("debug"),je=wo.disabled,it=$o.disabled,yt=le.colorModeForRenderPass(),Ot="$debug",Nt=le.style.map.terrain&&le.style.map.terrain.getTerrainData(B);Q.activeTexture.set(ee.TEXTURE0);let hr=w.getTileByID(B.key).latestRawTileData,Sr=Math.floor((hr&&hr.byteLength||0)/1024),he=w.getTile(B).tileSize,be=512/Math.min(he,512)*(B.overscaledZ/le.transform.zoom)*.5,Pe=B.canonical.toString();B.overscaledZ!==B.canonical.z&&(Pe+=` => ${B.overscaledZ}`),function(Oe,Je){Oe.initDebugOverlayCanvas();let He=Oe.debugOverlayCanvas,et=Oe.context.gl,Mt=Oe.debugOverlayCanvas.getContext("2d");Mt.clearRect(0,0,He.width,He.height),Mt.shadowColor="white",Mt.shadowBlur=2,Mt.lineWidth=1.5,Mt.strokeStyle="white",Mt.textBaseline="top",Mt.font="bold 36px Open Sans, sans-serif",Mt.fillText(Je,5,5),Mt.strokeText(Je,5,5),Oe.debugOverlayTexture.update(He),Oe.debugOverlayTexture.bind(et.LINEAR,et.CLAMP_TO_EDGE)}(le,`${Pe} ${Sr}kB`),qe.draw(Q,ee.TRIANGLES,je,it,Ps.alphaBlended,Ja.disabled,ho(se,a.aM.transparent,be),null,Ot,le.debugBuffer,le.quadTriangleIndexBuffer,le.debugSegments),qe.draw(Q,ee.LINE_STRIP,je,it,yt,Ja.disabled,ho(se,a.aM.red),Nt,Ot,le.debugBuffer,le.tileBorderIndexBuffer,le.debugSegments)}function eu(le,w,B){let Q=le.context,ee=Q.gl,se=le.colorModeForRenderPass(),qe=new wo(ee.LEQUAL,wo.ReadWrite,le.depthRangeFor3D),je=le.useProgram("terrain"),it=w.getTerrainMesh();Q.bindFramebuffer.set(null),Q.viewport.set([0,0,le.width,le.height]);for(let yt of B){let Ot=le.renderToTexture.getTexture(yt),Nt=w.getTerrainData(yt.tileID);Q.activeTexture.set(ee.TEXTURE0),ee.bindTexture(ee.TEXTURE_2D,Ot.texture);let hr=le.transform.calculatePosMatrix(yt.tileID.toUnwrapped()),Sr=w.getMeshFrameDelta(le.transform.zoom),he=le.transform.calculateFogMatrix(yt.tileID.toUnwrapped()),be=Hr(hr,Sr,he,le.style.sky,le.transform.pitch);je.draw(Q,ee.TRIANGLES,qe,$o.disabled,se,Ja.backCCW,be,Nt,"terrain",it.vertexBuffer,it.indexBuffer,it.segments)}}class Pu{constructor(w,B,Q){this.vertexBuffer=w,this.indexBuffer=B,this.segments=Q}destroy(){this.vertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.vertexBuffer=null,this.indexBuffer=null,this.segments=null}}class Lc{constructor(w,B){this.context=new ov(w),this.transform=B,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:a.an(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=dt.maxUnderzooming+dt.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new jo}resize(w,B,Q){if(this.width=Math.floor(w*Q),this.height=Math.floor(B*Q),this.pixelRatio=Q,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(let ee of this.style._order)this.style._layers[ee].resize()}setup(){let w=this.context,B=new a.aX;B.emplaceBack(0,0),B.emplaceBack(a.X,0),B.emplaceBack(0,a.X),B.emplaceBack(a.X,a.X),this.tileExtentBuffer=w.createVertexBuffer(B,oo.members),this.tileExtentSegments=a.a0.simpleSegment(0,0,4,2);let Q=new a.aX;Q.emplaceBack(0,0),Q.emplaceBack(a.X,0),Q.emplaceBack(0,a.X),Q.emplaceBack(a.X,a.X),this.debugBuffer=w.createVertexBuffer(Q,oo.members),this.debugSegments=a.a0.simpleSegment(0,0,4,5);let ee=new a.$;ee.emplaceBack(0,0,0,0),ee.emplaceBack(a.X,0,a.X,0),ee.emplaceBack(0,a.X,0,a.X),ee.emplaceBack(a.X,a.X,a.X,a.X),this.rasterBoundsBuffer=w.createVertexBuffer(ee,ot.members),this.rasterBoundsSegments=a.a0.simpleSegment(0,0,4,2);let se=new a.aX;se.emplaceBack(0,0),se.emplaceBack(1,0),se.emplaceBack(0,1),se.emplaceBack(1,1),this.viewportBuffer=w.createVertexBuffer(se,oo.members),this.viewportSegments=a.a0.simpleSegment(0,0,4,2);let qe=new a.aZ;qe.emplaceBack(0),qe.emplaceBack(1),qe.emplaceBack(3),qe.emplaceBack(2),qe.emplaceBack(0),this.tileBorderIndexBuffer=w.createIndexBuffer(qe);let je=new a.aY;je.emplaceBack(0,1,2),je.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=w.createIndexBuffer(je);let it=this.context.gl;this.stencilClearMode=new $o({func:it.ALWAYS,mask:0},0,255,it.ZERO,it.ZERO,it.ZERO)}clearStencil(){let w=this.context,B=w.gl;this.nextStencilID=1,this.currentStencilSource=void 0;let Q=a.H();a.aP(Q,0,this.width,this.height,0,0,1),a.K(Q,Q,[B.drawingBufferWidth,B.drawingBufferHeight,0]),this.useProgram("clippingMask").draw(w,B.TRIANGLES,wo.disabled,this.stencilClearMode,Ps.disabled,Ja.disabled,Mo(Q),null,"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(w,B){if(this.currentStencilSource===w.source||!w.isTileClipped()||!B||!B.length)return;this.currentStencilSource=w.source;let Q=this.context,ee=Q.gl;this.nextStencilID+B.length>256&&this.clearStencil(),Q.setColorMode(Ps.disabled),Q.setDepthMode(wo.disabled);let se=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(let qe of B){let je=this._tileClippingMaskIDs[qe.key]=this.nextStencilID++,it=this.style.map.terrain&&this.style.map.terrain.getTerrainData(qe);se.draw(Q,ee.TRIANGLES,wo.disabled,new $o({func:ee.ALWAYS,mask:0},je,255,ee.KEEP,ee.KEEP,ee.REPLACE),Ps.disabled,Ja.disabled,Mo(qe.posMatrix),it,"$clipping",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();let w=this.nextStencilID++,B=this.context.gl;return new $o({func:B.NOTEQUAL,mask:255},w,255,B.KEEP,B.KEEP,B.REPLACE)}stencilModeForClipping(w){let B=this.context.gl;return new $o({func:B.EQUAL,mask:255},this._tileClippingMaskIDs[w.key],0,B.KEEP,B.KEEP,B.REPLACE)}stencilConfigForOverlap(w){let B=this.context.gl,Q=w.sort((qe,je)=>je.overscaledZ-qe.overscaledZ),ee=Q[Q.length-1].overscaledZ,se=Q[0].overscaledZ-ee+1;if(se>1){this.currentStencilSource=void 0,this.nextStencilID+se>256&&this.clearStencil();let qe={};for(let je=0;je({u_sky_color:Oe.properties.get("sky-color"),u_horizon_color:Oe.properties.get("horizon-color"),u_horizon:(Je.height/2+Je.getHorizon())*He,u_sky_horizon_blend:Oe.properties.get("sky-horizon-blend")*Je.height/2*He}))(yt,it.style.map.transform,it.pixelRatio),Sr=new wo(Nt.LEQUAL,wo.ReadWrite,[0,1]),he=$o.disabled,be=it.colorModeForRenderPass(),Pe=it.useProgram("sky");if(!yt.mesh){let Oe=new a.aX;Oe.emplaceBack(-1,-1),Oe.emplaceBack(1,-1),Oe.emplaceBack(1,1),Oe.emplaceBack(-1,1);let Je=new a.aY;Je.emplaceBack(0,1,2),Je.emplaceBack(0,2,3),yt.mesh=new Pu(Ot.createVertexBuffer(Oe,oo.members),Ot.createIndexBuffer(Je),a.a0.simpleSegment(0,0,Oe.length,Je.length))}Pe.draw(Ot,Nt.TRIANGLES,Sr,he,be,Ja.disabled,hr,void 0,"sky",yt.mesh.vertexBuffer,yt.mesh.indexBuffer,yt.mesh.segments)}(this,this.style.sky),this._showOverdrawInspector=B.showOverdrawInspector,this.depthRangeFor3D=[0,1-(w._order.length+2)*this.numSublayers*this.depthEpsilon],!this.renderToTexture)for(this.renderPass="opaque",this.currentLayer=Q.length-1;this.currentLayer>=0;this.currentLayer--){let it=this.style._layers[Q[this.currentLayer]],yt=ee[it.source],Ot=se[it.source];this._renderTileClippingMasks(it,Ot),this.renderLayer(this,yt,it,Ot)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayerPe.source&&!Pe.isHidden(Ot)?[yt.sourceCaches[Pe.source]]:[]),Sr=hr.filter(Pe=>Pe.getSource().type==="vector"),he=hr.filter(Pe=>Pe.getSource().type!=="vector"),be=Pe=>{(!Nt||Nt.getSource().maxzoombe(Pe)),Nt||he.forEach(Pe=>be(Pe)),Nt}(this.style,this.transform.zoom);it&&function(yt,Ot,Nt){for(let hr=0;hr0),ee&&(a.b0(B,Q),this.terrainFacilitator.renderTime=Date.now(),this.terrainFacilitator.dirty=!1,function(se,qe){let je=se.context,it=je.gl,yt=Ps.unblended,Ot=new wo(it.LEQUAL,wo.ReadWrite,[0,1]),Nt=qe.getTerrainMesh(),hr=qe.sourceCache.getRenderableTiles(),Sr=se.useProgram("terrainDepth");je.bindFramebuffer.set(qe.getFramebuffer("depth").framebuffer),je.viewport.set([0,0,se.width/devicePixelRatio,se.height/devicePixelRatio]),je.clear({color:a.aM.transparent,depth:1});for(let he of hr){let be=qe.getTerrainData(he.tileID),Pe={u_matrix:se.transform.calculatePosMatrix(he.tileID.toUnwrapped()),u_ele_delta:qe.getMeshFrameDelta(se.transform.zoom)};Sr.draw(je,it.TRIANGLES,Ot,$o.disabled,yt,Ja.backCCW,Pe,be,"terrain",Nt.vertexBuffer,Nt.indexBuffer,Nt.segments)}je.bindFramebuffer.set(null),je.viewport.set([0,0,se.width,se.height])}(this,this.style.map.terrain),function(se,qe){let je=se.context,it=je.gl,yt=Ps.unblended,Ot=new wo(it.LEQUAL,wo.ReadWrite,[0,1]),Nt=qe.getTerrainMesh(),hr=qe.getCoordsTexture(),Sr=qe.sourceCache.getRenderableTiles(),he=se.useProgram("terrainCoords");je.bindFramebuffer.set(qe.getFramebuffer("coords").framebuffer),je.viewport.set([0,0,se.width/devicePixelRatio,se.height/devicePixelRatio]),je.clear({color:a.aM.transparent,depth:1}),qe.coordsIndex=[];for(let be of Sr){let Pe=qe.getTerrainData(be.tileID);je.activeTexture.set(it.TEXTURE0),it.bindTexture(it.TEXTURE_2D,hr.texture);let Oe={u_matrix:se.transform.calculatePosMatrix(be.tileID.toUnwrapped()),u_terrain_coords_id:(255-qe.coordsIndex.length)/255,u_texture:0,u_ele_delta:qe.getMeshFrameDelta(se.transform.zoom)};he.draw(je,it.TRIANGLES,Ot,$o.disabled,yt,Ja.backCCW,Oe,Pe,"terrain",Nt.vertexBuffer,Nt.indexBuffer,Nt.segments),qe.coordsIndex.push(be.tileID.key)}je.bindFramebuffer.set(null),je.viewport.set([0,0,se.width,se.height])}(this,this.style.map.terrain))}renderLayer(w,B,Q,ee){if(!Q.isHidden(this.transform.zoom)&&(Q.type==="background"||Q.type==="custom"||(ee||[]).length))switch(this.id=Q.id,Q.type){case"symbol":(function(se,qe,je,it,yt){if(se.renderPass!=="translucent")return;let Ot=$o.disabled,Nt=se.colorModeForRenderPass();(je._unevaluatedLayout.hasValue("text-variable-anchor")||je._unevaluatedLayout.hasValue("text-variable-anchor-offset"))&&function(hr,Sr,he,be,Pe,Oe,Je,He,et){let Mt=Sr.transform,Dt=Gi(),Ut=Pe==="map",tr=Oe==="map";for(let mr of hr){let Rr=be.getTile(mr),zr=Rr.getBucket(he);if(!zr||!zr.text||!zr.text.segments.get().length)continue;let Xr=a.ag(zr.textSizeData,Mt.zoom),di=nn(Rr,1,Sr.transform.zoom),Li=Or(mr.posMatrix,tr,Ut,Sr.transform,di),Ci=he.layout.get("icon-text-fit")!=="none"&&zr.hasIconData();if(Xr){let Qi=Math.pow(2,Mt.zoom-Rr.tileID.overscaledZ),Mn=Sr.style.map.terrain?(ea,Ga)=>Sr.style.map.terrain.getElevation(mr,ea,Ga):null,pa=Dt.translatePosition(Mt,Rr,Je,He);kf(zr,Ut,tr,et,Mt,Li,mr.posMatrix,Qi,Xr,Ci,Dt,pa,mr.toUnwrapped(),Mn)}}}(it,se,je,qe,je.layout.get("text-rotation-alignment"),je.layout.get("text-pitch-alignment"),je.paint.get("text-translate"),je.paint.get("text-translate-anchor"),yt),je.paint.get("icon-opacity").constantOr(1)!==0&&Yh(se,qe,je,it,!1,je.paint.get("icon-translate"),je.paint.get("icon-translate-anchor"),je.layout.get("icon-rotation-alignment"),je.layout.get("icon-pitch-alignment"),je.layout.get("icon-keep-upright"),Ot,Nt),je.paint.get("text-opacity").constantOr(1)!==0&&Yh(se,qe,je,it,!0,je.paint.get("text-translate"),je.paint.get("text-translate-anchor"),je.layout.get("text-rotation-alignment"),je.layout.get("text-pitch-alignment"),je.layout.get("text-keep-upright"),Ot,Nt),qe.map.showCollisionBoxes&&(tc(se,qe,je,it,!0),tc(se,qe,je,it,!1))})(w,B,Q,ee,this.style.placement.variableOffsets);break;case"circle":(function(se,qe,je,it){if(se.renderPass!=="translucent")return;let yt=je.paint.get("circle-opacity"),Ot=je.paint.get("circle-stroke-width"),Nt=je.paint.get("circle-stroke-opacity"),hr=!je.layout.get("circle-sort-key").isConstant();if(yt.constantOr(1)===0&&(Ot.constantOr(1)===0||Nt.constantOr(1)===0))return;let Sr=se.context,he=Sr.gl,be=se.depthModeForSublayer(0,wo.ReadOnly),Pe=$o.disabled,Oe=se.colorModeForRenderPass(),Je=[];for(let He=0;HeHe.sortKey-et.sortKey);for(let He of Je){let{programConfiguration:et,program:Mt,layoutVertexBuffer:Dt,indexBuffer:Ut,uniformValues:tr,terrainData:mr}=He.state;Mt.draw(Sr,he.TRIANGLES,be,Pe,Oe,Ja.disabled,tr,mr,je.id,Dt,Ut,He.segments,je.paint,se.transform.zoom,et)}})(w,B,Q,ee);break;case"heatmap":(function(se,qe,je,it){if(je.paint.get("heatmap-opacity")===0)return;let yt=se.context;if(se.style.map.terrain){for(let Ot of it){let Nt=qe.getTile(Ot);qe.hasRenderableParent(Ot)||(se.renderPass==="offscreen"?nh(se,Nt,je,Ot):se.renderPass==="translucent"&&hf(se,je,Ot))}yt.viewport.set([0,0,se.width,se.height])}else se.renderPass==="offscreen"?function(Ot,Nt,hr,Sr){let he=Ot.context,be=he.gl,Pe=$o.disabled,Oe=new Ps([be.ONE,be.ONE],a.aM.transparent,[!0,!0,!0,!0]);(function(Je,He,et){let Mt=Je.gl;Je.activeTexture.set(Mt.TEXTURE1),Je.viewport.set([0,0,He.width/4,He.height/4]);let Dt=et.heatmapFbos.get(a.aU);Dt?(Mt.bindTexture(Mt.TEXTURE_2D,Dt.colorAttachment.get()),Je.bindFramebuffer.set(Dt.framebuffer)):(Dt=kh(Je,He.width/4,He.height/4),et.heatmapFbos.set(a.aU,Dt))})(he,Ot,hr),he.clear({color:a.aM.transparent});for(let Je=0;Je20&&Ot.texParameterf(Ot.TEXTURE_2D,yt.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,yt.extTextureFilterAnisotropicMax);let zr=se.style.map.terrain&&se.style.map.terrain.getTerrainData(Je),Xr=zr?Je:null,di=Xr?Xr.posMatrix:se.transform.calculatePosMatrix(Je.toUnwrapped(),Oe),Li=ml(di,mr||[0,0],tr||1,Ut,je);Nt instanceof Rt?hr.draw(yt,Ot.TRIANGLES,He,$o.disabled,Sr,Ja.disabled,Li,zr,je.id,Nt.boundsBuffer,se.quadTriangleIndexBuffer,Nt.boundsSegments):hr.draw(yt,Ot.TRIANGLES,He,he[Je.overscaledZ],Sr,Ja.disabled,Li,zr,je.id,se.rasterBoundsBuffer,se.quadTriangleIndexBuffer,se.rasterBoundsSegments)}})(w,B,Q,ee);break;case"background":(function(se,qe,je,it){let yt=je.paint.get("background-color"),Ot=je.paint.get("background-opacity");if(Ot===0)return;let Nt=se.context,hr=Nt.gl,Sr=se.transform,he=Sr.tileSize,be=je.paint.get("background-pattern");if(se.isPatternMissing(be))return;let Pe=!be&&yt.a===1&&Ot===1&&se.opaquePassEnabledForLayer()?"opaque":"translucent";if(se.renderPass!==Pe)return;let Oe=$o.disabled,Je=se.depthModeForSublayer(0,Pe==="opaque"?wo.ReadWrite:wo.ReadOnly),He=se.colorModeForRenderPass(),et=se.useProgram(be?"backgroundPattern":"background"),Mt=it||Sr.coveringTiles({tileSize:he,terrain:se.style.map.terrain});be&&(Nt.activeTexture.set(hr.TEXTURE0),se.imageManager.bind(se.context));let Dt=je.getCrossfadeParameters();for(let Ut of Mt){let tr=it?Ut.posMatrix:se.transform.calculatePosMatrix(Ut.toUnwrapped()),mr=be?Hu(tr,Ot,se,be,{tileID:Ut,tileSize:he},Dt):$l(tr,Ot,yt),Rr=se.style.map.terrain&&se.style.map.terrain.getTerrainData(Ut);et.draw(Nt,hr.TRIANGLES,Je,Oe,He,Ja.disabled,mr,Rr,je.id,se.tileExtentBuffer,se.quadTriangleIndexBuffer,se.tileExtentSegments)}})(w,0,Q,ee);break;case"custom":(function(se,qe,je){let it=se.context,yt=je.implementation;if(se.renderPass==="offscreen"){let Ot=yt.prerender;Ot&&(se.setCustomLayerDefaults(),it.setColorMode(se.colorModeForRenderPass()),Ot.call(yt,it.gl,se.transform.customLayerMatrix()),it.setDirty(),se.setBaseState())}else if(se.renderPass==="translucent"){se.setCustomLayerDefaults(),it.setColorMode(se.colorModeForRenderPass()),it.setStencilMode($o.disabled);let Ot=yt.renderingMode==="3d"?new wo(se.context.gl.LEQUAL,wo.ReadWrite,se.depthRangeFor3D):se.depthModeForSublayer(0,wo.ReadOnly);it.setDepthMode(Ot),yt.render(it.gl,se.transform.customLayerMatrix(),{farZ:se.transform.farZ,nearZ:se.transform.nearZ,fov:se.transform._fov,modelViewProjectionMatrix:se.transform.modelViewProjectionMatrix,projectionMatrix:se.transform.projectionMatrix}),it.setDirty(),se.setBaseState(),it.bindFramebuffer.set(null)}})(w,0,Q)}}translatePosMatrix(w,B,Q,ee,se){if(!Q[0]&&!Q[1])return w;let qe=se?ee==="map"?this.transform.angle:0:ee==="viewport"?-this.transform.angle:0;if(qe){let yt=Math.sin(qe),Ot=Math.cos(qe);Q=[Q[0]*Ot-Q[1]*yt,Q[0]*yt+Q[1]*Ot]}let je=[se?Q[0]:nn(B,Q[0],this.transform.zoom),se?Q[1]:nn(B,Q[1],this.transform.zoom),0],it=new Float32Array(16);return a.J(it,w,je),it}saveTileTexture(w){let B=this._tileTextures[w.size[0]];B?B.push(w):this._tileTextures[w.size[0]]=[w]}getTileTexture(w){let B=this._tileTextures[w];return B&&B.length>0?B.pop():null}isPatternMissing(w){if(!w)return!1;if(!w.from||!w.to)return!0;let B=this.imageManager.getPattern(w.from.toString()),Q=this.imageManager.getPattern(w.to.toString());return!B||!Q}useProgram(w,B){this.cache=this.cache||{};let Q=w+(B?B.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"")+(this.style.map.terrain?"/terrain":"");return this.cache[Q]||(this.cache[Q]=new zi(this.context,xn[w],B,fc[w],this._showOverdrawInspector,this.style.map.terrain)),this.cache[Q]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){let w=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(w.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new p(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}overLimit(){let{drawingBufferWidth:w,drawingBufferHeight:B}=this.context.gl;return this.width!==w||this.height!==B}}class fl{constructor(w,B){this.points=w,this.planes=B}static fromInvProjectionMatrix(w,B,Q){let ee=Math.pow(2,Q),se=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(je=>{let it=1/(je=a.af([],je,w))[3]/B*ee;return a.b1(je,je,[it,it,1/je[3],it])}),qe=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(je=>{let it=function(hr,Sr){var he=Sr[0],be=Sr[1],Pe=Sr[2],Oe=he*he+be*be+Pe*Pe;return Oe>0&&(Oe=1/Math.sqrt(Oe)),hr[0]=Sr[0]*Oe,hr[1]=Sr[1]*Oe,hr[2]=Sr[2]*Oe,hr}([],function(hr,Sr,he){var be=Sr[0],Pe=Sr[1],Oe=Sr[2],Je=he[0],He=he[1],et=he[2];return hr[0]=Pe*et-Oe*He,hr[1]=Oe*Je-be*et,hr[2]=be*He-Pe*Je,hr}([],L([],se[je[0]],se[je[1]]),L([],se[je[2]],se[je[1]]))),yt=-((Ot=it)[0]*(Nt=se[je[1]])[0]+Ot[1]*Nt[1]+Ot[2]*Nt[2]);var Ot,Nt;return it.concat(yt)});return new fl(se,qe)}}class Xc{constructor(w,B){this.min=w,this.max=B,this.center=function(Q,ee,se){return Q[0]=.5*ee[0],Q[1]=.5*ee[1],Q[2]=.5*ee[2],Q}([],function(Q,ee,se){return Q[0]=ee[0]+se[0],Q[1]=ee[1]+se[1],Q[2]=ee[2]+se[2],Q}([],this.min,this.max))}quadrant(w){let B=[w%2==0,w<2],Q=k(this.min),ee=k(this.max);for(let se=0;se=0&&qe++;if(qe===0)return 0;qe!==B.length&&(Q=!1)}if(Q)return 2;for(let ee=0;ee<3;ee++){let se=Number.MAX_VALUE,qe=-Number.MAX_VALUE;for(let je=0;jethis.max[ee]-this.min[ee])return 0}return 1}}class ic{constructor(w=0,B=0,Q=0,ee=0){if(isNaN(w)||w<0||isNaN(B)||B<0||isNaN(Q)||Q<0||isNaN(ee)||ee<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=w,this.bottom=B,this.left=Q,this.right=ee}interpolate(w,B,Q){return B.top!=null&&w.top!=null&&(this.top=a.y.number(w.top,B.top,Q)),B.bottom!=null&&w.bottom!=null&&(this.bottom=a.y.number(w.bottom,B.bottom,Q)),B.left!=null&&w.left!=null&&(this.left=a.y.number(w.left,B.left,Q)),B.right!=null&&w.right!=null&&(this.right=a.y.number(w.right,B.right,Q)),this}getCenter(w,B){let Q=a.ac((this.left+w-this.right)/2,0,w),ee=a.ac((this.top+B-this.bottom)/2,0,B);return new a.P(Q,ee)}equals(w){return this.top===w.top&&this.bottom===w.bottom&&this.left===w.left&&this.right===w.right}clone(){return new ic(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}let yu=85.051129;class Qs{constructor(w,B,Q,ee,se){this.tileSize=512,this._renderWorldCopies=se===void 0||!!se,this._minZoom=w||0,this._maxZoom=B||22,this._minPitch=Q==null?0:Q,this._maxPitch=ee==null?60:ee,this.setMaxBounds(),this.width=0,this.height=0,this._center=new a.N(0,0),this._elevation=0,this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new ic,this._posMatrixCache={},this._alignedPosMatrixCache={},this._fogMatrixCache={},this.minElevationForCurrentTile=0}clone(){let w=new Qs(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return w.apply(this),w}apply(w){this.tileSize=w.tileSize,this.latRange=w.latRange,this.lngRange=w.lngRange,this.width=w.width,this.height=w.height,this._center=w._center,this._elevation=w._elevation,this.minElevationForCurrentTile=w.minElevationForCurrentTile,this.zoom=w.zoom,this.angle=w.angle,this._fov=w._fov,this._pitch=w._pitch,this._unmodified=w._unmodified,this._edgeInsets=w._edgeInsets.clone(),this._calcMatrices()}get minZoom(){return this._minZoom}set minZoom(w){this._minZoom!==w&&(this._minZoom=w,this.zoom=Math.max(this.zoom,w))}get maxZoom(){return this._maxZoom}set maxZoom(w){this._maxZoom!==w&&(this._maxZoom=w,this.zoom=Math.min(this.zoom,w))}get minPitch(){return this._minPitch}set minPitch(w){this._minPitch!==w&&(this._minPitch=w,this.pitch=Math.max(this.pitch,w))}get maxPitch(){return this._maxPitch}set maxPitch(w){this._maxPitch!==w&&(this._maxPitch=w,this.pitch=Math.min(this.pitch,w))}get renderWorldCopies(){return this._renderWorldCopies}set renderWorldCopies(w){w===void 0?w=!0:w===null&&(w=!1),this._renderWorldCopies=w}get worldSize(){return this.tileSize*this.scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new a.P(this.width,this.height)}get bearing(){return-this.angle/Math.PI*180}set bearing(w){let B=-a.b3(w,-180,180)*Math.PI/180;this.angle!==B&&(this._unmodified=!1,this.angle=B,this._calcMatrices(),this.rotationMatrix=function(){var Q=new a.A(4);return a.A!=Float32Array&&(Q[1]=0,Q[2]=0),Q[0]=1,Q[3]=1,Q}(),function(Q,ee,se){var qe=ee[0],je=ee[1],it=ee[2],yt=ee[3],Ot=Math.sin(se),Nt=Math.cos(se);Q[0]=qe*Nt+it*Ot,Q[1]=je*Nt+yt*Ot,Q[2]=qe*-Ot+it*Nt,Q[3]=je*-Ot+yt*Nt}(this.rotationMatrix,this.rotationMatrix,this.angle))}get pitch(){return this._pitch/Math.PI*180}set pitch(w){let B=a.ac(w,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==B&&(this._unmodified=!1,this._pitch=B,this._calcMatrices())}get fov(){return this._fov/Math.PI*180}set fov(w){w=Math.max(.01,Math.min(60,w)),this._fov!==w&&(this._unmodified=!1,this._fov=w/180*Math.PI,this._calcMatrices())}get zoom(){return this._zoom}set zoom(w){let B=Math.min(Math.max(w,this.minZoom),this.maxZoom);this._zoom!==B&&(this._unmodified=!1,this._zoom=B,this.tileZoom=Math.max(0,Math.floor(B)),this.scale=this.zoomScale(B),this._constrain(),this._calcMatrices())}get center(){return this._center}set center(w){w.lat===this._center.lat&&w.lng===this._center.lng||(this._unmodified=!1,this._center=w,this._constrain(),this._calcMatrices())}get elevation(){return this._elevation}set elevation(w){w!==this._elevation&&(this._elevation=w,this._constrain(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}set padding(w){this._edgeInsets.equals(w)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,w,1),this._calcMatrices())}get centerPoint(){return this._edgeInsets.getCenter(this.width,this.height)}isPaddingEqual(w){return this._edgeInsets.equals(w)}interpolatePadding(w,B,Q){this._unmodified=!1,this._edgeInsets.interpolate(w,B,Q),this._constrain(),this._calcMatrices()}coveringZoomLevel(w){let B=(w.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/w.tileSize));return Math.max(0,B)}getVisibleUnwrappedCoordinates(w){let B=[new a.b4(0,w)];if(this._renderWorldCopies){let Q=this.pointCoordinate(new a.P(0,0)),ee=this.pointCoordinate(new a.P(this.width,0)),se=this.pointCoordinate(new a.P(this.width,this.height)),qe=this.pointCoordinate(new a.P(0,this.height)),je=Math.floor(Math.min(Q.x,ee.x,se.x,qe.x)),it=Math.floor(Math.max(Q.x,ee.x,se.x,qe.x)),yt=1;for(let Ot=je-yt;Ot<=it+yt;Ot++)Ot!==0&&B.push(new a.b4(Ot,w))}return B}coveringTiles(w){var B,Q;let ee=this.coveringZoomLevel(w),se=ee;if(w.minzoom!==void 0&&eew.maxzoom&&(ee=w.maxzoom);let qe=this.pointCoordinate(this.getCameraPoint()),je=a.Z.fromLngLat(this.center),it=Math.pow(2,ee),yt=[it*qe.x,it*qe.y,0],Ot=[it*je.x,it*je.y,0],Nt=fl.fromInvProjectionMatrix(this.invModelViewProjectionMatrix,this.worldSize,ee),hr=w.minzoom||0;!w.terrain&&this.pitch<=60&&this._edgeInsets.top<.1&&(hr=ee);let Sr=w.terrain?2/Math.min(this.tileSize,w.tileSize)*this.tileSize:3,he=He=>({aabb:new Xc([He*it,0,0],[(He+1)*it,it,0]),zoom:0,x:0,y:0,wrap:He,fullyVisible:!1}),be=[],Pe=[],Oe=ee,Je=w.reparseOverscaled?se:ee;if(this._renderWorldCopies)for(let He=1;He<=3;He++)be.push(he(-He)),be.push(he(He));for(be.push(he(0));be.length>0;){let He=be.pop(),et=He.x,Mt=He.y,Dt=He.fullyVisible;if(!Dt){let zr=He.aabb.intersects(Nt);if(zr===0)continue;Dt=zr===2}let Ut=w.terrain?yt:Ot,tr=He.aabb.distanceX(Ut),mr=He.aabb.distanceY(Ut),Rr=Math.max(Math.abs(tr),Math.abs(mr));if(He.zoom===Oe||Rr>Sr+(1<=hr){let zr=Oe-He.zoom,Xr=yt[0]-.5-(et<>1),Li=He.zoom+1,Ci=He.aabb.quadrant(zr);if(w.terrain){let Qi=new a.S(Li,He.wrap,Li,Xr,di),Mn=w.terrain.getMinMaxElevation(Qi),pa=(B=Mn.minElevation)!==null&&B!==void 0?B:this.elevation,ea=(Q=Mn.maxElevation)!==null&&Q!==void 0?Q:this.elevation;Ci=new Xc([Ci.min[0],Ci.min[1],pa],[Ci.max[0],Ci.max[1],ea])}be.push({aabb:Ci,zoom:Li,x:Xr,y:di,wrap:He.wrap,fullyVisible:Dt})}}return Pe.sort((He,et)=>He.distanceSq-et.distanceSq).map(He=>He.tileID)}resize(w,B){this.width=w,this.height=B,this.pixelsToGLUnits=[2/w,-2/B],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(w){return Math.pow(2,w)}scaleZoom(w){return Math.log(w)/Math.LN2}project(w){let B=a.ac(w.lat,-85.051129,yu);return new a.P(a.O(w.lng)*this.worldSize,a.Q(B)*this.worldSize)}unproject(w){return new a.Z(w.x/this.worldSize,w.y/this.worldSize).toLngLat()}get point(){return this.project(this.center)}getCameraPosition(){return{lngLat:this.pointLocation(this.getCameraPoint()),altitude:Math.cos(this._pitch)*this.cameraToCenterDistance/this._pixelPerMeter+this.elevation}}recalculateZoom(w){let B=this.elevation,Q=Math.cos(this._pitch)*this.cameraToCenterDistance/this._pixelPerMeter,ee=this.pointLocation(this.centerPoint,w),se=w.getElevationForLngLatZoom(ee,this.tileZoom);if(!(this.elevation-se))return;let qe=Q+B-se,je=Math.cos(this._pitch)*this.cameraToCenterDistance/qe/a.b5(1,ee.lat),it=this.scaleZoom(je/this.tileSize);this._elevation=se,this._center=ee,this.zoom=it}setLocationAtPoint(w,B){let Q=this.pointCoordinate(B),ee=this.pointCoordinate(this.centerPoint),se=this.locationCoordinate(w),qe=new a.Z(se.x-(Q.x-ee.x),se.y-(Q.y-ee.y));this.center=this.coordinateLocation(qe),this._renderWorldCopies&&(this.center=this.center.wrap())}locationPoint(w,B){return B?this.coordinatePoint(this.locationCoordinate(w),B.getElevationForLngLatZoom(w,this.tileZoom),this.pixelMatrix3D):this.coordinatePoint(this.locationCoordinate(w))}pointLocation(w,B){return this.coordinateLocation(this.pointCoordinate(w,B))}locationCoordinate(w){return a.Z.fromLngLat(w)}coordinateLocation(w){return w&&w.toLngLat()}pointCoordinate(w,B){if(B){let hr=B.pointCoordinate(w);if(hr!=null)return hr}let Q=[w.x,w.y,0,1],ee=[w.x,w.y,1,1];a.af(Q,Q,this.pixelMatrixInverse),a.af(ee,ee,this.pixelMatrixInverse);let se=Q[3],qe=ee[3],je=Q[1]/se,it=ee[1]/qe,yt=Q[2]/se,Ot=ee[2]/qe,Nt=yt===Ot?0:(0-yt)/(Ot-yt);return new a.Z(a.y.number(Q[0]/se,ee[0]/qe,Nt)/this.worldSize,a.y.number(je,it,Nt)/this.worldSize)}coordinatePoint(w,B=0,Q=this.pixelMatrix){let ee=[w.x*this.worldSize,w.y*this.worldSize,B,1];return a.af(ee,ee,Q),new a.P(ee[0]/ee[3],ee[1]/ee[3])}getBounds(){let w=Math.max(0,this.height/2-this.getHorizon());return new ce().extend(this.pointLocation(new a.P(0,w))).extend(this.pointLocation(new a.P(this.width,w))).extend(this.pointLocation(new a.P(this.width,this.height))).extend(this.pointLocation(new a.P(0,this.height)))}getMaxBounds(){return this.latRange&&this.latRange.length===2&&this.lngRange&&this.lngRange.length===2?new ce([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null}getHorizon(){return Math.tan(Math.PI/2-this._pitch)*this.cameraToCenterDistance*.85}setMaxBounds(w){w?(this.lngRange=[w.getWest(),w.getEast()],this.latRange=[w.getSouth(),w.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-85.051129,yu])}calculateTileMatrix(w){let B=w.canonical,Q=this.worldSize/this.zoomScale(B.z),ee=B.x+Math.pow(2,B.z)*w.wrap,se=a.an(new Float64Array(16));return a.J(se,se,[ee*Q,B.y*Q,0]),a.K(se,se,[Q/a.X,Q/a.X,1]),se}calculatePosMatrix(w,B=!1){let Q=w.key,ee=B?this._alignedPosMatrixCache:this._posMatrixCache;if(ee[Q])return ee[Q];let se=this.calculateTileMatrix(w);return a.L(se,B?this.alignedModelViewProjectionMatrix:this.modelViewProjectionMatrix,se),ee[Q]=new Float32Array(se),ee[Q]}calculateFogMatrix(w){let B=w.key,Q=this._fogMatrixCache;if(Q[B])return Q[B];let ee=this.calculateTileMatrix(w);return a.L(ee,this.fogMatrix,ee),Q[B]=new Float32Array(ee),Q[B]}customLayerMatrix(){return this.mercatorMatrix.slice()}getConstrained(w,B){B=a.ac(+B,this.minZoom,this.maxZoom);let Q={center:new a.N(w.lng,w.lat),zoom:B},ee=this.lngRange;if(!this._renderWorldCopies&&ee===null){let He=179.9999999999;ee=[-He,He]}let se=this.tileSize*this.zoomScale(Q.zoom),qe=0,je=se,it=0,yt=se,Ot=0,Nt=0,{x:hr,y:Sr}=this.size;if(this.latRange){let He=this.latRange;qe=a.Q(He[1])*se,je=a.Q(He[0])*se,je-qeje&&(Oe=je-He)}if(ee){let He=(it+yt)/2,et=he;this._renderWorldCopies&&(et=a.b3(he,He-se/2,He+se/2));let Mt=hr/2;et-Mtyt&&(Pe=yt-Mt)}if(Pe!==void 0||Oe!==void 0){let He=new a.P(Pe!=null?Pe:he,Oe!=null?Oe:be);Q.center=this.unproject.call({worldSize:se},He).wrap()}return Q}_constrain(){if(!this.center||!this.width||!this.height||this._constraining)return;this._constraining=!0;let w=this._unmodified,{center:B,zoom:Q}=this.getConstrained(this.center,this.zoom);this.center=B,this.zoom=Q,this._unmodified=w,this._constraining=!1}_calcMatrices(){if(!this.height)return;let w=this.centerOffset,B=this.point.x,Q=this.point.y;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height,this._pixelPerMeter=a.b5(1,this.center.lat)*this.worldSize;let ee=a.an(new Float64Array(16));a.K(ee,ee,[this.width/2,-this.height/2,1]),a.J(ee,ee,[1,-1,0]),this.labelPlaneMatrix=ee,ee=a.an(new Float64Array(16)),a.K(ee,ee,[1,-1,1]),a.J(ee,ee,[-1,-1,0]),a.K(ee,ee,[2/this.width,2/this.height,1]),this.glCoordMatrix=ee;let se=this.cameraToCenterDistance+this._elevation*this._pixelPerMeter/Math.cos(this._pitch),qe=Math.min(this.elevation,this.minElevationForCurrentTile),je=se-qe*this._pixelPerMeter/Math.cos(this._pitch),it=qe<0?je:se,yt=Math.PI/2+this._pitch,Ot=this._fov*(.5+w.y/this.height),Nt=Math.sin(Ot)*it/Math.sin(a.ac(Math.PI-yt-Ot,.01,Math.PI-.01)),hr=this.getHorizon(),Sr=2*Math.atan(hr/this.cameraToCenterDistance)*(.5+w.y/(2*hr)),he=Math.sin(Sr)*it/Math.sin(a.ac(Math.PI-yt-Sr,.01,Math.PI-.01)),be=Math.min(Nt,he);this.farZ=1.01*(Math.cos(Math.PI/2-this._pitch)*be+it),this.nearZ=this.height/50,ee=new Float64Array(16),a.b6(ee,this._fov,this.width/this.height,this.nearZ,this.farZ),ee[8]=2*-w.x/this.width,ee[9]=2*w.y/this.height,this.projectionMatrix=a.ae(ee),a.K(ee,ee,[1,-1,1]),a.J(ee,ee,[0,0,-this.cameraToCenterDistance]),a.b7(ee,ee,this._pitch),a.ad(ee,ee,this.angle),a.J(ee,ee,[-B,-Q,0]),this.mercatorMatrix=a.K([],ee,[this.worldSize,this.worldSize,this.worldSize]),a.K(ee,ee,[1,1,this._pixelPerMeter]),this.pixelMatrix=a.L(new Float64Array(16),this.labelPlaneMatrix,ee),a.J(ee,ee,[0,0,-this.elevation]),this.modelViewProjectionMatrix=ee,this.invModelViewProjectionMatrix=a.as([],ee),this.fogMatrix=new Float64Array(16),a.b6(this.fogMatrix,this._fov,this.width/this.height,se,this.farZ),this.fogMatrix[8]=2*-w.x/this.width,this.fogMatrix[9]=2*w.y/this.height,a.K(this.fogMatrix,this.fogMatrix,[1,-1,1]),a.J(this.fogMatrix,this.fogMatrix,[0,0,-this.cameraToCenterDistance]),a.b7(this.fogMatrix,this.fogMatrix,this._pitch),a.ad(this.fogMatrix,this.fogMatrix,this.angle),a.J(this.fogMatrix,this.fogMatrix,[-B,-Q,0]),a.K(this.fogMatrix,this.fogMatrix,[1,1,this._pixelPerMeter]),a.J(this.fogMatrix,this.fogMatrix,[0,0,-this.elevation]),this.pixelMatrix3D=a.L(new Float64Array(16),this.labelPlaneMatrix,ee);let Pe=this.width%2/2,Oe=this.height%2/2,Je=Math.cos(this.angle),He=Math.sin(this.angle),et=B-Math.round(B)+Je*Pe+He*Oe,Mt=Q-Math.round(Q)+Je*Oe+He*Pe,Dt=new Float64Array(ee);if(a.J(Dt,Dt,[et>.5?et-1:et,Mt>.5?Mt-1:Mt,0]),this.alignedModelViewProjectionMatrix=Dt,ee=a.as(new Float64Array(16),this.pixelMatrix),!ee)throw new Error("failed to invert matrix");this.pixelMatrixInverse=ee,this._posMatrixCache={},this._alignedPosMatrixCache={},this._fogMatrixCache={}}maxPitchScaleFactor(){if(!this.pixelMatrixInverse)return 1;let w=this.pointCoordinate(new a.P(0,0)),B=[w.x*this.worldSize,w.y*this.worldSize,0,1];return a.af(B,B,this.pixelMatrix)[3]/this.cameraToCenterDistance}getCameraPoint(){let w=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new a.P(0,w))}getCameraQueryGeometry(w){let B=this.getCameraPoint();if(w.length===1)return[w[0],B];{let Q=B.x,ee=B.y,se=B.x,qe=B.y;for(let je of w)Q=Math.min(Q,je.x),ee=Math.min(ee,je.y),se=Math.max(se,je.x),qe=Math.max(qe,je.y);return[new a.P(Q,ee),new a.P(se,ee),new a.P(se,qe),new a.P(Q,qe),new a.P(Q,ee)]}}lngLatToCameraDepth(w,B){let Q=this.locationCoordinate(w),ee=[Q.x*this.worldSize,Q.y*this.worldSize,B,1];return a.af(ee,ee,this.modelViewProjectionMatrix),ee[2]/ee[3]}}function Qh(le,w){let B,Q=!1,ee=null,se=null,qe=()=>{ee=null,Q&&(le.apply(se,B),ee=setTimeout(qe,w),Q=!1)};return(...je)=>(Q=!0,se=this,B=je,ee||qe(),ee)}class gd{constructor(w){this._getCurrentHash=()=>{let B=window.location.hash.replace("#","");if(this._hashName){let Q;return B.split("&").map(ee=>ee.split("=")).forEach(ee=>{ee[0]===this._hashName&&(Q=ee)}),(Q&&Q[1]||"").split("/")}return B.split("/")},this._onHashChange=()=>{let B=this._getCurrentHash();if(B.length>=3&&!B.some(Q=>isNaN(Q))){let Q=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(B[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+B[2],+B[1]],zoom:+B[0],bearing:Q,pitch:+(B[4]||0)}),!0}return!1},this._updateHashUnthrottled=()=>{let B=window.location.href.replace(/(#.*)?$/,this.getHashString());window.history.replaceState(window.history.state,null,B)},this._removeHash=()=>{let B=this._getCurrentHash();if(B.length===0)return;let Q=B.join("/"),ee=Q;ee.split("&").length>0&&(ee=ee.split("&")[0]),this._hashName&&(ee=`${this._hashName}=${Q}`);let se=window.location.hash.replace(ee,"");se.startsWith("#&")?se=se.slice(0,1)+se.slice(2):se==="#"&&(se="");let qe=window.location.href.replace(/(#.+)?$/,se);qe=qe.replace("&&","&"),window.history.replaceState(window.history.state,null,qe)},this._updateHash=Qh(this._updateHashUnthrottled,300),this._hashName=w&&encodeURIComponent(w)}addTo(w){return this._map=w,addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this}remove(){return removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),this._removeHash(),delete this._map,this}getHashString(w){let B=this._map.getCenter(),Q=Math.round(100*this._map.getZoom())/100,ee=Math.ceil((Q*Math.LN2+Math.log(512/360/.5))/Math.LN10),se=Math.pow(10,ee),qe=Math.round(B.lng*se)/se,je=Math.round(B.lat*se)/se,it=this._map.getBearing(),yt=this._map.getPitch(),Ot="";if(Ot+=w?`/${qe}/${je}/${Q}`:`${Q}/${je}/${qe}`,(it||yt)&&(Ot+="/"+Math.round(10*it)/10),yt&&(Ot+=`/${Math.round(yt)}`),this._hashName){let Nt=this._hashName,hr=!1,Sr=window.location.hash.slice(1).split("&").map(he=>{let be=he.split("=")[0];return be===Nt?(hr=!0,`${be}=${Ot}`):he}).filter(he=>he);return hr||Sr.push(`${Nt}=${Ot}`),`#${Sr.join("&")}`}return`#${Ot}`}}let Gu={linearity:.3,easing:a.b8(0,0,.3,1)},Pc=a.e({deceleration:2500,maxSpeed:1400},Gu),vc=a.e({deceleration:20,maxSpeed:1400},Gu),sv=a.e({deceleration:1e3,maxSpeed:360},Gu),Lf=a.e({deceleration:1e3,maxSpeed:90},Gu);class Uf{constructor(w){this._map=w,this.clear()}clear(){this._inertiaBuffer=[]}record(w){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:u.now(),settings:w})}_drainInertiaBuffer(){let w=this._inertiaBuffer,B=u.now();for(;w.length>0&&B-w[0].time>160;)w.shift()}_onMoveEnd(w){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;let B={zoom:0,bearing:0,pitch:0,pan:new a.P(0,0),pinchAround:void 0,around:void 0};for(let{settings:se}of this._inertiaBuffer)B.zoom+=se.zoomDelta||0,B.bearing+=se.bearingDelta||0,B.pitch+=se.pitchDelta||0,se.panDelta&&B.pan._add(se.panDelta),se.around&&(B.around=se.around),se.pinchAround&&(B.pinchAround=se.pinchAround);let Q=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,ee={};if(B.pan.mag()){let se=oh(B.pan.mag(),Q,a.e({},Pc,w||{}));ee.offset=B.pan.mult(se.amount/B.pan.mag()),ee.center=this._map.transform.center,Iu(ee,se)}if(B.zoom){let se=oh(B.zoom,Q,vc);ee.zoom=this._map.transform.zoom+se.amount,Iu(ee,se)}if(B.bearing){let se=oh(B.bearing,Q,sv);ee.bearing=this._map.transform.bearing+a.ac(se.amount,-179,179),Iu(ee,se)}if(B.pitch){let se=oh(B.pitch,Q,Lf);ee.pitch=this._map.transform.pitch+se.amount,Iu(ee,se)}if(ee.zoom||ee.bearing){let se=B.pinchAround===void 0?B.around:B.pinchAround;ee.around=se?this._map.unproject(se):this._map.getCenter()}return this.clear(),a.e(ee,{noMoveStart:!0})}}function Iu(le,w){(!le.duration||le.durationB.unproject(it)),je=se.reduce((it,yt,Ot,Nt)=>it.add(yt.div(Nt.length)),new a.P(0,0));super(w,{points:se,point:je,lngLats:qe,lngLat:B.unproject(je),originalEvent:Q}),this._defaultPrevented=!1}}class md extends a.k{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(w,B,Q){super(w,{originalEvent:Q}),this._defaultPrevented=!1}}class sh{constructor(w,B){this._map=w,this._clickTolerance=B.clickTolerance}reset(){delete this._mousedownPos}wheel(w){return this._firePreventable(new md(w.type,this._map,w))}mousedown(w,B){return this._mousedownPos=B,this._firePreventable(new tu(w.type,this._map,w))}mouseup(w){this._map.fire(new tu(w.type,this._map,w))}click(w,B){this._mousedownPos&&this._mousedownPos.dist(B)>=this._clickTolerance||this._map.fire(new tu(w.type,this._map,w))}dblclick(w){return this._firePreventable(new tu(w.type,this._map,w))}mouseover(w){this._map.fire(new tu(w.type,this._map,w))}mouseout(w){this._map.fire(new tu(w.type,this._map,w))}touchstart(w){return this._firePreventable(new vf(w.type,this._map,w))}touchmove(w){this._map.fire(new vf(w.type,this._map,w))}touchend(w){this._map.fire(new vf(w.type,this._map,w))}touchcancel(w){this._map.fire(new vf(w.type,this._map,w))}_firePreventable(w){if(this._map.fire(w),w.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Fs{constructor(w){this._map=w}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(w){this._map.fire(new tu(w.type,this._map,w))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new tu("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(w){this._delayContextMenu?this._contextMenuEvent=w:this._ignoreContextMenu||this._map.fire(new tu(w.type,this._map,w)),this._map.listens("contextmenu")&&w.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class _u{constructor(w){this._map=w}get transform(){return this._map._requestedCameraState||this._map.transform}get center(){return{lng:this.transform.center.lng,lat:this.transform.center.lat}}get zoom(){return this.transform.zoom}get pitch(){return this.transform.pitch}get bearing(){return this.transform.bearing}unproject(w){return this.transform.pointLocation(a.P.convert(w),this._map.terrain)}}class xu{constructor(w,B){this._map=w,this._tr=new _u(w),this._el=w.getCanvasContainer(),this._container=w.getContainer(),this._clickTolerance=B.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(w,B){this.isEnabled()&&w.shiftKey&&w.button===0&&(c.disableDrag(),this._startPos=this._lastPos=B,this._active=!0)}mousemoveWindow(w,B){if(!this._active)return;let Q=B;if(this._lastPos.equals(Q)||!this._box&&Q.dist(this._startPos)se.fitScreenCoordinates(Q,ee,this._tr.bearing,{linear:!0})};this._fireEvent("boxzoomcancel",w)}keydown(w){this._active&&w.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",w))}reset(){this._active=!1,this._container.classList.remove("maplibregl-crosshair"),this._box&&(c.remove(this._box),this._box=null),c.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(w,B){return this._map.fire(new a.k(w,{originalEvent:B}))}}function Lh(le,w){if(le.length!==w.length)throw new Error(`The number of touches and points are not equal - touches ${le.length}, points ${w.length}`);let B={};for(let Q=0;Qthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=w.timeStamp),Q.length===this.numTouches&&(this.centroid=function(ee){let se=new a.P(0,0);for(let qe of ee)se._add(qe);return se.div(ee.length)}(B),this.touches=Lh(Q,B)))}touchmove(w,B,Q){if(this.aborted||!this.centroid)return;let ee=Lh(Q,B);for(let se in this.touches){let qe=ee[se];(!qe||qe.dist(this.touches[se])>30)&&(this.aborted=!0)}}touchend(w,B,Q){if((!this.centroid||w.timeStamp-this.startTime>500)&&(this.aborted=!0),Q.length===0){let ee=!this.aborted&&this.centroid;if(this.reset(),ee)return ee}}}class Pf{constructor(w){this.singleTap=new Is(w),this.numTaps=w.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(w,B,Q){this.singleTap.touchstart(w,B,Q)}touchmove(w,B,Q){this.singleTap.touchmove(w,B,Q)}touchend(w,B,Q){let ee=this.singleTap.touchend(w,B,Q);if(ee){let se=w.timeStamp-this.lastTime<500,qe=!this.lastTap||this.lastTap.dist(ee)<30;if(se&&qe||this.reset(),this.count++,this.lastTime=w.timeStamp,this.lastTap=ee,this.count===this.numTaps)return this.reset(),ee}}}class Ic{constructor(w){this._tr=new _u(w),this._zoomIn=new Pf({numTouches:1,numTaps:2}),this._zoomOut=new Pf({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(w,B,Q){this._zoomIn.touchstart(w,B,Q),this._zoomOut.touchstart(w,B,Q)}touchmove(w,B,Q){this._zoomIn.touchmove(w,B,Q),this._zoomOut.touchmove(w,B,Q)}touchend(w,B,Q){let ee=this._zoomIn.touchend(w,B,Q),se=this._zoomOut.touchend(w,B,Q),qe=this._tr;return ee?(this._active=!0,w.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:je=>je.easeTo({duration:300,zoom:qe.zoom+1,around:qe.unproject(ee)},{originalEvent:w})}):se?(this._active=!0,w.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:je=>je.easeTo({duration:300,zoom:qe.zoom-1,around:qe.unproject(se)},{originalEvent:w})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class ju{constructor(w){this._enabled=!!w.enable,this._moveStateManager=w.moveStateManager,this._clickTolerance=w.clickTolerance||1,this._moveFunction=w.move,this._activateOnStart=!!w.activateOnStart,w.assignEvents(this),this.reset()}reset(w){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(w)}_move(...w){let B=this._moveFunction(...w);if(B.bearingDelta||B.pitchDelta||B.around||B.panDelta)return this._active=!0,B}dragStart(w,B){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(w)&&(this._moveStateManager.startMove(w),this._lastPoint=B.length?B[0]:B,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(w,B){if(!this.isEnabled())return;let Q=this._lastPoint;if(!Q)return;if(w.preventDefault(),!this._moveStateManager.isValidMoveEvent(w))return void this.reset(w);let ee=B.length?B[0]:B;return!this._moved&&ee.dist(Q){le.mousedown=le.dragStart,le.mousemoveWindow=le.dragMove,le.mouseup=le.dragEnd,le.contextmenu=w=>{w.preventDefault()}},Rl=({enable:le,clickTolerance:w,bearingDegreesPerPixelMoved:B=.8})=>{let Q=new pc({checkCorrectEvent:ee=>c.mouseButton(ee)===0&&ee.ctrlKey||c.mouseButton(ee)===2});return new ju({clickTolerance:w,move:(ee,se)=>({bearingDelta:(se.x-ee.x)*B}),moveStateManager:Q,enable:le,assignEvents:Ph})},Ih=({enable:le,clickTolerance:w,pitchDegreesPerPixelMoved:B=-.5})=>{let Q=new pc({checkCorrectEvent:ee=>c.mouseButton(ee)===0&&ee.ctrlKey||c.mouseButton(ee)===2});return new ju({clickTolerance:w,move:(ee,se)=>({pitchDelta:(se.y-ee.y)*B}),moveStateManager:Q,enable:le,assignEvents:Ph})};class Wu{constructor(w,B){this._clickTolerance=w.clickTolerance||1,this._map=B,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new a.P(0,0)}_shouldBePrevented(w){return w<(this._map.cooperativeGestures.isEnabled()?2:1)}touchstart(w,B,Q){return this._calculateTransform(w,B,Q)}touchmove(w,B,Q){if(this._active){if(!this._shouldBePrevented(Q.length))return w.preventDefault(),this._calculateTransform(w,B,Q);this._map.cooperativeGestures.notifyGestureBlocked("touch_pan",w)}}touchend(w,B,Q){this._calculateTransform(w,B,Q),this._active&&this._shouldBePrevented(Q.length)&&this.reset()}touchcancel(){this.reset()}_calculateTransform(w,B,Q){Q.length>0&&(this._active=!0);let ee=Lh(Q,B),se=new a.P(0,0),qe=new a.P(0,0),je=0;for(let yt in ee){let Ot=ee[yt],Nt=this._touches[yt];Nt&&(se._add(Ot),qe._add(Ot.sub(Nt)),je++,ee[yt]=Ot)}if(this._touches=ee,this._shouldBePrevented(je)||!qe.mag())return;let it=qe.div(je);return this._sum._add(it),this._sum.mag()Math.abs(le.x)}class gf extends Rc{constructor(w){super(),this._currentTouchCount=0,this._map=w}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(w,B,Q){super.touchstart(w,B,Q),this._currentTouchCount=Q.length}_start(w){this._lastPoints=w,nc(w[0].sub(w[1]))&&(this._valid=!1)}_move(w,B,Q){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;let ee=w[0].sub(this._lastPoints[0]),se=w[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(ee,se,Q.timeStamp),this._valid?(this._lastPoints=w,this._active=!0,{pitchDelta:(ee.y+se.y)/2*-.5}):void 0}gestureBeginsVertically(w,B,Q){if(this._valid!==void 0)return this._valid;let ee=w.mag()>=2,se=B.mag()>=2;if(!ee&&!se)return;if(!ee||!se)return this._firstMove===void 0&&(this._firstMove=Q),Q-this._firstMove<100&&void 0;let qe=w.y>0==B.y>0;return nc(w)&&nc(B)&&qe}}let gt={panStep:100,bearingStep:15,pitchStep:10};class Bt{constructor(w){this._tr=new _u(w);let B=gt;this._panStep=B.panStep,this._bearingStep=B.bearingStep,this._pitchStep=B.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(w){if(w.altKey||w.ctrlKey||w.metaKey)return;let B=0,Q=0,ee=0,se=0,qe=0;switch(w.keyCode){case 61:case 107:case 171:case 187:B=1;break;case 189:case 109:case 173:B=-1;break;case 37:w.shiftKey?Q=-1:(w.preventDefault(),se=-1);break;case 39:w.shiftKey?Q=1:(w.preventDefault(),se=1);break;case 38:w.shiftKey?ee=1:(w.preventDefault(),qe=-1);break;case 40:w.shiftKey?ee=-1:(w.preventDefault(),qe=1);break;default:return}return this._rotationDisabled&&(Q=0,ee=0),{cameraAnimation:je=>{let it=this._tr;je.easeTo({duration:300,easeId:"keyboardHandler",easing:wr,zoom:B?Math.round(it.zoom)+B*(w.shiftKey?2:1):it.zoom,bearing:it.bearing+Q*this._bearingStep,pitch:it.pitch+ee*this._pitchStep,offset:[-se*this._panStep,-qe*this._panStep],center:it.center},{originalEvent:w})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}disableRotation(){this._rotationDisabled=!0}enableRotation(){this._rotationDisabled=!1}}function wr(le){return le*(2-le)}let vr=4.000244140625;class Ur{constructor(w,B){this._onTimeout=Q=>{this._type="wheel",this._delta-=this._lastValue,this._active||this._start(Q)},this._map=w,this._tr=new _u(w),this._triggerRenderFrame=B,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222}setZoomRate(w){this._defaultZoomRate=w}setWheelZoomRate(w){this._wheelZoomRate=w}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(w){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!w&&w.around==="center")}disable(){this.isEnabled()&&(this._enabled=!1)}_shouldBePrevented(w){return!!this._map.cooperativeGestures.isEnabled()&&!(w.ctrlKey||this._map.cooperativeGestures.isBypassed(w))}wheel(w){if(!this.isEnabled())return;if(this._shouldBePrevented(w))return void this._map.cooperativeGestures.notifyGestureBlocked("wheel_zoom",w);let B=w.deltaMode===WheelEvent.DOM_DELTA_LINE?40*w.deltaY:w.deltaY,Q=u.now(),ee=Q-(this._lastWheelEventTime||0);this._lastWheelEventTime=Q,B!==0&&B%vr==0?this._type="wheel":B!==0&&Math.abs(B)<4?this._type="trackpad":ee>400?(this._type=null,this._lastValue=B,this._timeout=setTimeout(this._onTimeout,40,w)):this._type||(this._type=Math.abs(ee*B)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,B+=this._lastValue)),w.shiftKey&&B&&(B/=4),this._type&&(this._lastWheelEvent=w,this._delta-=B,this._active||this._start(w)),w.preventDefault()}_start(w){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);let B=c.mousePos(this._map.getCanvas(),w),Q=this._tr;this._around=B.y>Q.transform.height/2-Q.transform.getHorizon()?a.N.convert(this._aroundCenter?Q.center:Q.unproject(B)):a.N.convert(Q.center),this._aroundPoint=Q.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;let w=this._tr.transform;if(this._delta!==0){let it=this._type==="wheel"&&Math.abs(this._delta)>vr?this._wheelZoomRate:this._defaultZoomRate,yt=2/(1+Math.exp(-Math.abs(this._delta*it)));this._delta<0&&yt!==0&&(yt=1/yt);let Ot=typeof this._targetZoom=="number"?w.zoomScale(this._targetZoom):w.scale;this._targetZoom=Math.min(w.maxZoom,Math.max(w.minZoom,w.scaleZoom(Ot*yt))),this._type==="wheel"&&(this._startZoom=w.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}let B=typeof this._targetZoom=="number"?this._targetZoom:w.zoom,Q=this._startZoom,ee=this._easing,se,qe=!1,je=u.now()-this._lastWheelEventTime;if(this._type==="wheel"&&Q&&ee&&je){let it=Math.min(je/200,1),yt=ee(it);se=a.y.number(Q,B,yt),it<1?this._frameId||(this._frameId=!0):qe=!0}else se=B,qe=!0;return this._active=!0,qe&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!qe,zoomDelta:se-w.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(w){let B=a.b9;if(this._prevEase){let Q=this._prevEase,ee=(u.now()-Q.start)/Q.duration,se=Q.easing(ee+.01)-Q.easing(ee),qe=.27/Math.sqrt(se*se+1e-4)*.01,je=Math.sqrt(.0729-qe*qe);B=a.b8(qe,je,.25,1)}return this._prevEase={start:u.now(),duration:w,easing:B},B}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class fi{constructor(w,B){this._clickZoom=w,this._tapZoom=B}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class xi{constructor(w){this._tr=new _u(w),this.reset()}reset(){this._active=!1}dblclick(w,B){return w.preventDefault(),{cameraAnimation:Q=>{Q.easeTo({duration:300,zoom:this._tr.zoom+(w.shiftKey?-1:1),around:this._tr.unproject(B)},{originalEvent:w})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Fi{constructor(){this._tap=new Pf({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset()}touchstart(w,B,Q){if(!this._swipePoint)if(this._tapTime){let ee=B[0],se=w.timeStamp-this._tapTime<500,qe=this._tapPoint.dist(ee)<30;se&&qe?Q.length>0&&(this._swipePoint=ee,this._swipeTouch=Q[0].identifier):this.reset()}else this._tap.touchstart(w,B,Q)}touchmove(w,B,Q){if(this._tapTime){if(this._swipePoint){if(Q[0].identifier!==this._swipeTouch)return;let ee=B[0],se=ee.y-this._swipePoint.y;return this._swipePoint=ee,w.preventDefault(),this._active=!0,{zoomDelta:se/128}}}else this._tap.touchmove(w,B,Q)}touchend(w,B,Q){if(this._tapTime)this._swipePoint&&Q.length===0&&this.reset();else{let ee=this._tap.touchend(w,B,Q);ee&&(this._tapTime=w.timeStamp,this._tapPoint=ee)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Xi{constructor(w,B,Q){this._el=w,this._mousePan=B,this._touchPan=Q}enable(w){this._inertiaOptions=w||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("maplibregl-touch-drag-pan")}disable(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("maplibregl-touch-drag-pan")}isEnabled(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()}isActive(){return this._mousePan.isActive()||this._touchPan.isActive()}}class hn{constructor(w,B,Q){this._pitchWithRotate=w.pitchWithRotate,this._mouseRotate=B,this._mousePitch=Q}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class Ti{constructor(w,B,Q,ee){this._el=w,this._touchZoom=B,this._touchRotate=Q,this._tapDragZoom=ee,this._rotationDisabled=!1,this._enabled=!0}enable(w){this._touchZoom.enable(w),this._rotationDisabled||this._touchRotate.enable(w),this._tapDragZoom.enable(),this._el.classList.add("maplibregl-touch-zoom-rotate")}disable(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("maplibregl-touch-zoom-rotate")}isEnabled(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()}isActive(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}class qi{constructor(w,B){this._bypassKey=navigator.userAgent.indexOf("Mac")!==-1?"metaKey":"ctrlKey",this._map=w,this._options=B,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;let w=this._map.getCanvasContainer();w.classList.add("maplibregl-cooperative-gestures"),this._container=c.create("div","maplibregl-cooperative-gesture-screen",w);let B=this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText");this._bypassKey==="metaKey"&&(B=this._map._getUIString("CooperativeGesturesHandler.MacHelpText"));let Q=this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"),ee=document.createElement("div");ee.className="maplibregl-desktop-message",ee.textContent=B,this._container.appendChild(ee);let se=document.createElement("div");se.className="maplibregl-mobile-message",se.textContent=Q,this._container.appendChild(se),this._container.setAttribute("aria-hidden","true")}_destroyUI(){this._container&&(c.remove(this._container),this._map.getCanvasContainer().classList.remove("maplibregl-cooperative-gestures")),delete this._container}enable(){this._setupUI(),this._enabled=!0}disable(){this._enabled=!1,this._destroyUI()}isEnabled(){return this._enabled}isBypassed(w){return w[this._bypassKey]}notifyGestureBlocked(w,B){this._enabled&&(this._map.fire(new a.k("cooperativegestureprevented",{gestureType:w,originalEvent:B})),this._container.classList.add("maplibregl-show"),setTimeout(()=>{this._container.classList.remove("maplibregl-show")},100))}}let Ii=le=>le.zoom||le.drag||le.pitch||le.rotate;class mi extends a.k{}function Pn(le){return le.panDelta&&le.panDelta.mag()||le.zoomDelta||le.bearingDelta||le.pitchDelta}class Ma{constructor(w,B){this.handleWindowEvent=ee=>{this.handleEvent(ee,`${ee.type}Window`)},this.handleEvent=(ee,se)=>{if(ee.type==="blur")return void this.stop(!0);this._updatingCamera=!0;let qe=ee.type==="renderFrame"?void 0:ee,je={needsRenderFrame:!1},it={},yt={},Ot=ee.touches,Nt=Ot?this._getMapTouches(Ot):void 0,hr=Nt?c.touchPos(this._map.getCanvas(),Nt):c.mousePos(this._map.getCanvas(),ee);for(let{handlerName:be,handler:Pe,allowed:Oe}of this._handlers){if(!Pe.isEnabled())continue;let Je;this._blockedByActive(yt,Oe,be)?Pe.reset():Pe[se||ee.type]&&(Je=Pe[se||ee.type](ee,hr,Nt),this.mergeHandlerResult(je,it,Je,be,qe),Je&&Je.needsRenderFrame&&this._triggerRenderFrame()),(Je||Pe.isActive())&&(yt[be]=Pe)}let Sr={};for(let be in this._previousActiveHandlers)yt[be]||(Sr[be]=qe);this._previousActiveHandlers=yt,(Object.keys(Sr).length||Pn(je))&&(this._changes.push([je,it,Sr]),this._triggerRenderFrame()),(Object.keys(yt).length||Pn(je))&&this._map._stop(!0),this._updatingCamera=!1;let{cameraAnimation:he}=je;he&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],he(this._map))},this._map=w,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Uf(w),this._bearingSnap=B.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(B);let Q=this._el;this._listeners=[[Q,"touchstart",{passive:!0}],[Q,"touchmove",{passive:!1}],[Q,"touchend",void 0],[Q,"touchcancel",void 0],[Q,"mousedown",void 0],[Q,"mousemove",void 0],[Q,"mouseup",void 0],[document,"mousemove",{capture:!0}],[document,"mouseup",void 0],[Q,"mouseover",void 0],[Q,"mouseout",void 0],[Q,"dblclick",void 0],[Q,"click",void 0],[Q,"keydown",{capture:!1}],[Q,"keyup",void 0],[Q,"wheel",{passive:!1}],[Q,"contextmenu",void 0],[window,"blur",void 0]];for(let[ee,se,qe]of this._listeners)c.addEventListener(ee,se,ee===document?this.handleWindowEvent:this.handleEvent,qe)}destroy(){for(let[w,B,Q]of this._listeners)c.removeEventListener(w,B,w===document?this.handleWindowEvent:this.handleEvent,Q)}_addDefaultHandlers(w){let B=this._map,Q=B.getCanvasContainer();this._add("mapEvent",new sh(B,w));let ee=B.boxZoom=new xu(B,w);this._add("boxZoom",ee),w.interactive&&w.boxZoom&&ee.enable();let se=B.cooperativeGestures=new qi(B,w.cooperativeGestures);this._add("cooperativeGestures",se),w.cooperativeGestures&&se.enable();let qe=new Ic(B),je=new xi(B);B.doubleClickZoom=new fi(je,qe),this._add("tapZoom",qe),this._add("clickZoom",je),w.interactive&&w.doubleClickZoom&&B.doubleClickZoom.enable();let it=new Fi;this._add("tapDragZoom",it);let yt=B.touchPitch=new gf(B);this._add("touchPitch",yt),w.interactive&&w.touchPitch&&B.touchPitch.enable(w.touchPitch);let Ot=Rl(w),Nt=Ih(w);B.dragRotate=new hn(w,Ot,Nt),this._add("mouseRotate",Ot,["mousePitch"]),this._add("mousePitch",Nt,["mouseRotate"]),w.interactive&&w.dragRotate&&B.dragRotate.enable();let hr=(({enable:Je,clickTolerance:He})=>{let et=new pc({checkCorrectEvent:Mt=>c.mouseButton(Mt)===0&&!Mt.ctrlKey});return new ju({clickTolerance:He,move:(Mt,Dt)=>({around:Dt,panDelta:Dt.sub(Mt)}),activateOnStart:!0,moveStateManager:et,enable:Je,assignEvents:Ph})})(w),Sr=new Wu(w,B);B.dragPan=new Xi(Q,hr,Sr),this._add("mousePan",hr),this._add("touchPan",Sr,["touchZoom","touchRotate"]),w.interactive&&w.dragPan&&B.dragPan.enable(w.dragPan);let he=new Yc,be=new ru;B.touchZoomRotate=new Ti(Q,be,he,it),this._add("touchRotate",he,["touchPan","touchZoom"]),this._add("touchZoom",be,["touchPan","touchRotate"]),w.interactive&&w.touchZoomRotate&&B.touchZoomRotate.enable(w.touchZoomRotate);let Pe=B.scrollZoom=new Ur(B,()=>this._triggerRenderFrame());this._add("scrollZoom",Pe,["mousePan"]),w.interactive&&w.scrollZoom&&B.scrollZoom.enable(w.scrollZoom);let Oe=B.keyboard=new Bt(B);this._add("keyboard",Oe),w.interactive&&w.keyboard&&B.keyboard.enable(),this._add("blockableMapEvent",new Fs(B))}_add(w,B,Q){this._handlers.push({handlerName:w,handler:B,allowed:Q}),this._handlersById[w]=B}stop(w){if(!this._updatingCamera){for(let{handler:B}of this._handlers)B.reset();this._inertia.clear(),this._fireEvents({},{},w),this._changes=[]}}isActive(){for(let{handler:w}of this._handlers)if(w.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!Ii(this._eventsInProgress)||this.isZooming()}_blockedByActive(w,B,Q){for(let ee in w)if(ee!==Q&&(!B||B.indexOf(ee)<0))return!0;return!1}_getMapTouches(w){let B=[];for(let Q of w)this._el.contains(Q.target)&&B.push(Q);return B}mergeHandlerResult(w,B,Q,ee,se){if(!Q)return;a.e(w,Q);let qe={handlerName:ee,originalEvent:Q.originalEvent||se};Q.zoomDelta!==void 0&&(B.zoom=qe),Q.panDelta!==void 0&&(B.drag=qe),Q.pitchDelta!==void 0&&(B.pitch=qe),Q.bearingDelta!==void 0&&(B.rotate=qe)}_applyChanges(){let w={},B={},Q={};for(let[ee,se,qe]of this._changes)ee.panDelta&&(w.panDelta=(w.panDelta||new a.P(0,0))._add(ee.panDelta)),ee.zoomDelta&&(w.zoomDelta=(w.zoomDelta||0)+ee.zoomDelta),ee.bearingDelta&&(w.bearingDelta=(w.bearingDelta||0)+ee.bearingDelta),ee.pitchDelta&&(w.pitchDelta=(w.pitchDelta||0)+ee.pitchDelta),ee.around!==void 0&&(w.around=ee.around),ee.pinchAround!==void 0&&(w.pinchAround=ee.pinchAround),ee.noInertia&&(w.noInertia=ee.noInertia),a.e(B,se),a.e(Q,qe);this._updateMapTransform(w,B,Q),this._changes=[]}_updateMapTransform(w,B,Q){let ee=this._map,se=ee._getTransformForUpdate(),qe=ee.terrain;if(!(Pn(w)||qe&&this._terrainMovement))return this._fireEvents(B,Q,!0);let{panDelta:je,zoomDelta:it,bearingDelta:yt,pitchDelta:Ot,around:Nt,pinchAround:hr}=w;hr!==void 0&&(Nt=hr),ee._stop(!0),Nt=Nt||ee.transform.centerPoint;let Sr=se.pointLocation(je?Nt.sub(je):Nt);yt&&(se.bearing+=yt),Ot&&(se.pitch+=Ot),it&&(se.zoom+=it),qe?this._terrainMovement||!B.drag&&!B.zoom?B.drag&&this._terrainMovement?se.center=se.pointLocation(se.centerPoint.sub(je)):se.setLocationAtPoint(Sr,Nt):(this._terrainMovement=!0,this._map._elevationFreeze=!0,se.setLocationAtPoint(Sr,Nt)):se.setLocationAtPoint(Sr,Nt),ee._applyUpdatedTransform(se),this._map._update(),w.noInertia||this._inertia.record(w),this._fireEvents(B,Q,!0)}_fireEvents(w,B,Q){let ee=Ii(this._eventsInProgress),se=Ii(w),qe={};for(let Nt in w){let{originalEvent:hr}=w[Nt];this._eventsInProgress[Nt]||(qe[`${Nt}start`]=hr),this._eventsInProgress[Nt]=w[Nt]}!ee&&se&&this._fireEvent("movestart",se.originalEvent);for(let Nt in qe)this._fireEvent(Nt,qe[Nt]);se&&this._fireEvent("move",se.originalEvent);for(let Nt in w){let{originalEvent:hr}=w[Nt];this._fireEvent(Nt,hr)}let je={},it;for(let Nt in this._eventsInProgress){let{handlerName:hr,originalEvent:Sr}=this._eventsInProgress[Nt];this._handlersById[hr].isActive()||(delete this._eventsInProgress[Nt],it=B[hr]||Sr,je[`${Nt}end`]=it)}for(let Nt in je)this._fireEvent(Nt,je[Nt]);let yt=Ii(this._eventsInProgress),Ot=(ee||se)&&!yt;if(Ot&&this._terrainMovement){this._map._elevationFreeze=!1,this._terrainMovement=!1;let Nt=this._map._getTransformForUpdate();Nt.recalculateZoom(this._map.terrain),this._map._applyUpdatedTransform(Nt)}if(Q&&Ot){this._updatingCamera=!0;let Nt=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),hr=Sr=>Sr!==0&&-this._bearingSnap{delete this._frameId,this.handleEvent(new mi("renderFrame",{timeStamp:w})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class Ta extends a.E{constructor(w,B){super(),this._renderFrameCallback=()=>{let Q=Math.min((u.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(Q)),Q<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this._moving=!1,this._zooming=!1,this.transform=w,this._bearingSnap=B.bearingSnap,this.on("moveend",()=>{delete this._requestedCameraState})}getCenter(){return new a.N(this.transform.center.lng,this.transform.center.lat)}setCenter(w,B){return this.jumpTo({center:w},B)}panBy(w,B,Q){return w=a.P.convert(w).mult(-1),this.panTo(this.transform.center,a.e({offset:w},B),Q)}panTo(w,B,Q){return this.easeTo(a.e({center:w},B),Q)}getZoom(){return this.transform.zoom}setZoom(w,B){return this.jumpTo({zoom:w},B),this}zoomTo(w,B,Q){return this.easeTo(a.e({zoom:w},B),Q)}zoomIn(w,B){return this.zoomTo(this.getZoom()+1,w,B),this}zoomOut(w,B){return this.zoomTo(this.getZoom()-1,w,B),this}getBearing(){return this.transform.bearing}setBearing(w,B){return this.jumpTo({bearing:w},B),this}getPadding(){return this.transform.padding}setPadding(w,B){return this.jumpTo({padding:w},B),this}rotateTo(w,B,Q){return this.easeTo(a.e({bearing:w},B),Q)}resetNorth(w,B){return this.rotateTo(0,a.e({duration:1e3},w),B),this}resetNorthPitch(w,B){return this.easeTo(a.e({bearing:0,pitch:0,duration:1e3},w),B),this}snapToNorth(w,B){return Math.abs(this.getBearing()){if(this._zooming&&(ee.zoom=a.y.number(se,Pe,Ut)),this._rotating&&(ee.bearing=a.y.number(qe,yt,Ut)),this._pitching&&(ee.pitch=a.y.number(je,Ot,Ut)),this._padding&&(ee.interpolatePadding(it,Nt,Ut),Sr=ee.centerPoint.add(hr)),this.terrain&&!w.freezeElevation&&this._updateElevation(Ut),et)ee.setLocationAtPoint(et,Mt);else{let tr=ee.zoomScale(ee.zoom-se),mr=Pe>se?Math.min(2,He):Math.max(.5,He),Rr=Math.pow(mr,1-Ut),zr=ee.unproject(Oe.add(Je.mult(Ut*Rr)).mult(tr));ee.setLocationAtPoint(ee.renderWorldCopies?zr.wrap():zr,Sr)}this._applyUpdatedTransform(ee),this._fireMoveEvents(B)},Ut=>{this.terrain&&w.freezeElevation&&this._finalizeElevation(),this._afterEase(B,Ut)},w),this}_prepareEase(w,B,Q={}){this._moving=!0,B||Q.moving||this.fire(new a.k("movestart",w)),this._zooming&&!Q.zooming&&this.fire(new a.k("zoomstart",w)),this._rotating&&!Q.rotating&&this.fire(new a.k("rotatestart",w)),this._pitching&&!Q.pitching&&this.fire(new a.k("pitchstart",w))}_prepareElevation(w){this._elevationCenter=w,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(w,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(w){this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);let B=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(w<1&&B!==this._elevationTarget){let Q=this._elevationTarget-this._elevationStart;this._elevationStart+=w*(Q-(B-(Q*w+this._elevationStart))/(1-w)),this._elevationTarget=B}this.transform.elevation=a.y.number(this._elevationStart,this._elevationTarget,w)}_finalizeElevation(){this._elevationFreeze=!1,this.transform.recalculateZoom(this.terrain)}_getTransformForUpdate(){return this.transformCameraUpdate||this.terrain?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_elevateCameraIfInsideTerrain(w){let B=w.getCameraPosition(),Q=this.terrain.getElevationForLngLatZoom(B.lngLat,w.zoom);if(B.altitudethis._elevateCameraIfInsideTerrain(ee)),this.transformCameraUpdate&&B.push(ee=>this.transformCameraUpdate(ee)),!B.length)return;let Q=w.clone();for(let ee of B){let se=Q.clone(),{center:qe,zoom:je,pitch:it,bearing:yt,elevation:Ot}=ee(se);qe&&(se.center=qe),je!==void 0&&(se.zoom=je),it!==void 0&&(se.pitch=it),yt!==void 0&&(se.bearing=yt),Ot!==void 0&&(se.elevation=Ot),Q.apply(se)}this.transform.apply(Q)}_fireMoveEvents(w){this.fire(new a.k("move",w)),this._zooming&&this.fire(new a.k("zoom",w)),this._rotating&&this.fire(new a.k("rotate",w)),this._pitching&&this.fire(new a.k("pitch",w))}_afterEase(w,B){if(this._easeId&&B&&this._easeId===B)return;delete this._easeId;let Q=this._zooming,ee=this._rotating,se=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,Q&&this.fire(new a.k("zoomend",w)),ee&&this.fire(new a.k("rotateend",w)),se&&this.fire(new a.k("pitchend",w)),this.fire(new a.k("moveend",w))}flyTo(w,B){var Q;if(!w.essential&&u.prefersReducedMotion){let Qi=a.M(w,["center","zoom","bearing","pitch","around"]);return this.jumpTo(Qi,B)}this.stop(),w=a.e({offset:[0,0],speed:1.2,curve:1.42,easing:a.b9},w);let ee=this._getTransformForUpdate(),se=ee.zoom,qe=ee.bearing,je=ee.pitch,it=ee.padding,yt="bearing"in w?this._normalizeBearing(w.bearing,qe):qe,Ot="pitch"in w?+w.pitch:je,Nt="padding"in w?w.padding:ee.padding,hr=a.P.convert(w.offset),Sr=ee.centerPoint.add(hr),he=ee.pointLocation(Sr),{center:be,zoom:Pe}=ee.getConstrained(a.N.convert(w.center||he),(Q=w.zoom)!==null&&Q!==void 0?Q:se);this._normalizeCenter(be,ee);let Oe=ee.zoomScale(Pe-se),Je=ee.project(he),He=ee.project(be).sub(Je),et=w.curve,Mt=Math.max(ee.width,ee.height),Dt=Mt/Oe,Ut=He.mag();if("minZoom"in w){let Qi=a.ac(Math.min(w.minZoom,se,Pe),ee.minZoom,ee.maxZoom),Mn=Mt/ee.zoomScale(Qi-se);et=Math.sqrt(Mn/Ut*2)}let tr=et*et;function mr(Qi){let Mn=(Dt*Dt-Mt*Mt+(Qi?-1:1)*tr*tr*Ut*Ut)/(2*(Qi?Dt:Mt)*tr*Ut);return Math.log(Math.sqrt(Mn*Mn+1)-Mn)}function Rr(Qi){return(Math.exp(Qi)-Math.exp(-Qi))/2}function zr(Qi){return(Math.exp(Qi)+Math.exp(-Qi))/2}let Xr=mr(!1),di=function(Qi){return zr(Xr)/zr(Xr+et*Qi)},Li=function(Qi){return Mt*((zr(Xr)*(Rr(Mn=Xr+et*Qi)/zr(Mn))-Rr(Xr))/tr)/Ut;var Mn},Ci=(mr(!0)-Xr)/et;if(Math.abs(Ut)<1e-6||!isFinite(Ci)){if(Math.abs(Mt-Dt)<1e-6)return this.easeTo(w,B);let Qi=Dt0,di=Mn=>Math.exp(Qi*et*Mn)}return w.duration="duration"in w?+w.duration:1e3*Ci/("screenSpeed"in w?+w.screenSpeed/et:+w.speed),w.maxDuration&&w.duration>w.maxDuration&&(w.duration=0),this._zooming=!0,this._rotating=qe!==yt,this._pitching=Ot!==je,this._padding=!ee.isPaddingEqual(Nt),this._prepareEase(B,!1),this.terrain&&this._prepareElevation(be),this._ease(Qi=>{let Mn=Qi*Ci,pa=1/di(Mn);ee.zoom=Qi===1?Pe:se+ee.scaleZoom(pa),this._rotating&&(ee.bearing=a.y.number(qe,yt,Qi)),this._pitching&&(ee.pitch=a.y.number(je,Ot,Qi)),this._padding&&(ee.interpolatePadding(it,Nt,Qi),Sr=ee.centerPoint.add(hr)),this.terrain&&!w.freezeElevation&&this._updateElevation(Qi);let ea=Qi===1?be:ee.unproject(Je.add(He.mult(Li(Mn))).mult(pa));ee.setLocationAtPoint(ee.renderWorldCopies?ea.wrap():ea,Sr),this._applyUpdatedTransform(ee),this._fireMoveEvents(B)},()=>{this.terrain&&w.freezeElevation&&this._finalizeElevation(),this._afterEase(B)},w),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(w,B){var Q;if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){let ee=this._onEaseEnd;delete this._onEaseEnd,ee.call(this,B)}return w||(Q=this.handlers)===null||Q===void 0||Q.stop(!1),this}_ease(w,B,Q){Q.animate===!1||Q.duration===0?(w(1),B()):(this._easeStart=u.now(),this._easeOptions=Q,this._onEaseFrame=w,this._onEaseEnd=B,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(w,B){w=a.b3(w,-180,180);let Q=Math.abs(w-B);return Math.abs(w-360-B)180?-360:Q<-180?360:0}queryTerrainElevation(w){return this.terrain?this.terrain.getElevationForLngLatZoom(a.N.convert(w),this.transform.tileZoom)-this.transform.elevation:null}}let Ea={compact:!0,customAttribution:'MapLibre'};class qa{constructor(w=Ea){this._toggleAttribution=()=>{this._container.classList.contains("maplibregl-compact")&&(this._container.classList.contains("maplibregl-compact-show")?(this._container.setAttribute("open",""),this._container.classList.remove("maplibregl-compact-show")):(this._container.classList.add("maplibregl-compact-show"),this._container.removeAttribute("open")))},this._updateData=B=>{!B||B.sourceDataType!=="metadata"&&B.sourceDataType!=="visibility"&&B.dataType!=="style"&&B.type!=="terrain"||this._updateAttributions()},this._updateCompact=()=>{this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact===!1?this._container.setAttribute("open",""):this._container.classList.contains("maplibregl-compact")||this._container.classList.contains("maplibregl-attrib-empty")||(this._container.setAttribute("open",""),this._container.classList.add("maplibregl-compact","maplibregl-compact-show")):(this._container.setAttribute("open",""),this._container.classList.contains("maplibregl-compact")&&this._container.classList.remove("maplibregl-compact","maplibregl-compact-show"))},this._updateCompactMinimize=()=>{this._container.classList.contains("maplibregl-compact")&&this._container.classList.contains("maplibregl-compact-show")&&this._container.classList.remove("maplibregl-compact-show")},this.options=w}getDefaultPosition(){return"bottom-right"}onAdd(w){return this._map=w,this._compact=this.options.compact,this._container=c.create("details","maplibregl-ctrl maplibregl-ctrl-attrib"),this._compactButton=c.create("summary","maplibregl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=c.create("div","maplibregl-ctrl-attrib-inner",this._container),this._updateAttributions(),this._updateCompact(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("terrain",this._updateData),this._map.on("resize",this._updateCompact),this._map.on("drag",this._updateCompactMinimize),this._container}onRemove(){c.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("terrain",this._updateData),this._map.off("resize",this._updateCompact),this._map.off("drag",this._updateCompactMinimize),this._map=void 0,this._compact=void 0,this._attribHTML=void 0}_setElementTitle(w,B){let Q=this._map._getUIString(`AttributionControl.${B}`);w.title=Q,w.setAttribute("aria-label",Q)}_updateAttributions(){if(!this._map.style)return;let w=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?w=w.concat(this.options.customAttribution.map(ee=>typeof ee!="string"?"":ee)):typeof this.options.customAttribution=="string"&&w.push(this.options.customAttribution)),this._map.style.stylesheet){let ee=this._map.style.stylesheet;this.styleOwner=ee.owner,this.styleId=ee.id}let B=this._map.style.sourceCaches;for(let ee in B){let se=B[ee];if(se.used||se.usedForTerrain){let qe=se.getSource();qe.attribution&&w.indexOf(qe.attribution)<0&&w.push(qe.attribution)}}w=w.filter(ee=>String(ee).trim()),w.sort((ee,se)=>ee.length-se.length),w=w.filter((ee,se)=>{for(let qe=se+1;qe=0)return!1;return!0});let Q=w.join(" | ");Q!==this._attribHTML&&(this._attribHTML=Q,w.length?(this._innerContainer.innerHTML=Q,this._container.classList.remove("maplibregl-attrib-empty")):this._container.classList.add("maplibregl-attrib-empty"),this._updateCompact(),this._editLink=null)}}class Cn{constructor(w={}){this._updateCompact=()=>{let B=this._container.children;if(B.length){let Q=B[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&Q.classList.add("maplibregl-compact"):Q.classList.remove("maplibregl-compact")}},this.options=w}getDefaultPosition(){return"bottom-left"}onAdd(w){this._map=w,this._compact=this.options&&this.options.compact,this._container=c.create("div","maplibregl-ctrl");let B=c.create("a","maplibregl-ctrl-logo");return B.target="_blank",B.rel="noopener nofollow",B.href="https://maplibre.org/",B.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),B.setAttribute("rel","noopener nofollow"),this._container.appendChild(B),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){c.remove(this._container),this._map.off("resize",this._updateCompact),this._map=void 0,this._compact=void 0}}class sn{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(w){let B=++this._id;return this._queue.push({callback:w,id:B,cancelled:!1}),B}remove(w){let B=this._currentlyRunning,Q=B?this._queue.concat(B):this._queue;for(let ee of Q)if(ee.id===w)return void(ee.cancelled=!0)}run(w=0){if(this._currentlyRunning)throw new Error("Attempting to run(), but is already running.");let B=this._currentlyRunning=this._queue;this._queue=[];for(let Q of B)if(!Q.cancelled&&(Q.callback(w),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}var Ua=a.Y([{name:"a_pos3d",type:"Int16",components:3}]);class mo extends a.E{constructor(w){super(),this.sourceCache=w,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.deltaZoom=1,w.usedForTerrain=!0,w.tileSize=this.tileSize*2**this.deltaZoom}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null}update(w,B){this.sourceCache.update(w,B),this._renderableTilesKeys=[];let Q={};for(let ee of w.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:B}))Q[ee.key]=!0,this._renderableTilesKeys.push(ee.key),this._tiles[ee.key]||(ee.posMatrix=new Float64Array(16),a.aP(ee.posMatrix,0,a.X,0,a.X,0,1),this._tiles[ee.key]=new Lt(ee,this.tileSize));for(let ee in this._tiles)Q[ee]||delete this._tiles[ee]}freeRtt(w){for(let B in this._tiles){let Q=this._tiles[B];(!w||Q.tileID.equals(w)||Q.tileID.isChildOf(w)||w.isChildOf(Q.tileID))&&(Q.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map(w=>this.getTileByID(w))}getTileByID(w){return this._tiles[w]}getTerrainCoords(w){let B={};for(let Q of this._renderableTilesKeys){let ee=this._tiles[Q].tileID;if(ee.canonical.equals(w.canonical)){let se=w.clone();se.posMatrix=new Float64Array(16),a.aP(se.posMatrix,0,a.X,0,a.X,0,1),B[Q]=se}else if(ee.canonical.isChildOf(w.canonical)){let se=w.clone();se.posMatrix=new Float64Array(16);let qe=ee.canonical.z-w.canonical.z,je=ee.canonical.x-(ee.canonical.x>>qe<>qe<>qe;a.aP(se.posMatrix,0,yt,0,yt,0,1),a.J(se.posMatrix,se.posMatrix,[-je*yt,-it*yt,0]),B[Q]=se}else if(w.canonical.isChildOf(ee.canonical)){let se=w.clone();se.posMatrix=new Float64Array(16);let qe=w.canonical.z-ee.canonical.z,je=w.canonical.x-(w.canonical.x>>qe<>qe<>qe;a.aP(se.posMatrix,0,a.X,0,a.X,0,1),a.J(se.posMatrix,se.posMatrix,[je*yt,it*yt,0]),a.K(se.posMatrix,se.posMatrix,[1/2**qe,1/2**qe,0]),B[Q]=se}}return B}getSourceTile(w,B){let Q=this.sourceCache._source,ee=w.overscaledZ-this.deltaZoom;if(ee>Q.maxzoom&&(ee=Q.maxzoom),ee=Q.minzoom&&(!se||!se.dem);)se=this.sourceCache.getTileByID(w.scaledTo(ee--).key);return se}tilesAfterTime(w=Date.now()){return Object.values(this._tiles).filter(B=>B.timeAdded>=w)}}class Xo{constructor(w,B,Q){this.painter=w,this.sourceCache=new mo(B),this.options=Q,this.exaggeration=typeof Q.exaggeration=="number"?Q.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(w,B,Q,ee=a.X){var se;if(!(B>=0&&B=0&&Qw.canonical.z&&(w.canonical.z>=ee?se=w.canonical.z-ee:a.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));let qe=w.canonical.x-(w.canonical.x>>se<>se<>8<<4|se>>8,B[qe+3]=0;let Q=new a.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(B.buffer)),ee=new p(w,Q,w.gl.RGBA,{premultiply:!1});return ee.bind(w.gl.NEAREST,w.gl.CLAMP_TO_EDGE),this._coordsTexture=ee,ee}pointCoordinate(w){this.painter.maybeDrawDepthAndCoords(!0);let B=new Uint8Array(4),Q=this.painter.context,ee=Q.gl,se=Math.round(w.x*this.painter.pixelRatio/devicePixelRatio),qe=Math.round(w.y*this.painter.pixelRatio/devicePixelRatio),je=Math.round(this.painter.height/devicePixelRatio);Q.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer),ee.readPixels(se,je-qe-1,1,1,ee.RGBA,ee.UNSIGNED_BYTE,B),Q.bindFramebuffer.set(null);let it=B[0]+(B[2]>>4<<8),yt=B[1]+((15&B[2])<<8),Ot=this.coordsIndex[255-B[3]],Nt=Ot&&this.sourceCache.getTileByID(Ot);if(!Nt)return null;let hr=this._coordsTextureSize,Sr=(1<w.id!==B),this._recentlyUsed.push(w.id)}stampObject(w){w.stamp=++this._stamp}getOrCreateFreeObject(){for(let B of this._recentlyUsed)if(!this._objects[B].inUse)return this._objects[B];if(this._objects.length>=this._size)throw new Error("No free RenderPool available, call freeAllObjects() required!");let w=this._createObject(this._objects.length);return this._objects.push(w),w}freeObject(w){w.inUse=!1}freeAllObjects(){for(let w of this._objects)this.freeObject(w)}isFull(){return!(this._objects.length!w.inUse)===!1}}let Qo={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class ys{constructor(w,B){this.painter=w,this.terrain=B,this.pool=new Ts(w.context,30,B.sourceCache.tileSize*B.qualityFactor)}destruct(){this.pool.destruct()}getTexture(w){return this.pool.getObjectForId(w.rtt[this._stacks.length-1].id).texture}prepareForRender(w,B){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=w._order.filter(Q=>!w._layers[Q].isHidden(B)),this._coordsDescendingInv={};for(let Q in w.sourceCaches){this._coordsDescendingInv[Q]={};let ee=w.sourceCaches[Q].getVisibleCoordinates();for(let se of ee){let qe=this.terrain.sourceCache.getTerrainCoords(se);for(let je in qe)this._coordsDescendingInv[Q][je]||(this._coordsDescendingInv[Q][je]=[]),this._coordsDescendingInv[Q][je].push(qe[je])}}this._coordsDescendingInvStr={};for(let Q of w._order){let ee=w._layers[Q],se=ee.source;if(Qo[ee.type]&&!this._coordsDescendingInvStr[se]){this._coordsDescendingInvStr[se]={};for(let qe in this._coordsDescendingInv[se])this._coordsDescendingInvStr[se][qe]=this._coordsDescendingInv[se][qe].map(je=>je.key).sort().join()}}for(let Q of this._renderableTiles)for(let ee in this._coordsDescendingInvStr){let se=this._coordsDescendingInvStr[ee][Q.tileID.key];se&&se!==Q.rttCoords[ee]&&(Q.rtt=[])}}renderLayer(w){if(w.isHidden(this.painter.transform.zoom))return!1;let B=w.type,Q=this.painter,ee=this._renderableLayerIds[this._renderableLayerIds.length-1]===w.id;if(Qo[B]&&(this._prevType&&Qo[this._prevType]||this._stacks.push([]),this._prevType=B,this._stacks[this._stacks.length-1].push(w.id),!ee))return!0;if(Qo[this._prevType]||Qo[B]&&ee){this._prevType=B;let se=this._stacks.length-1,qe=this._stacks[se]||[];for(let je of this._renderableTiles){if(this.pool.isFull()&&(eu(this.painter,this.terrain,this._rttTiles),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(je),je.rtt[se]){let yt=this.pool.getObjectForId(je.rtt[se].id);if(yt.stamp===je.rtt[se].stamp){this.pool.useObject(yt);continue}}let it=this.pool.getOrCreateFreeObject();this.pool.useObject(it),this.pool.stampObject(it),je.rtt[se]={id:it.id,stamp:it.stamp},Q.context.bindFramebuffer.set(it.fbo.framebuffer),Q.context.clear({color:a.aM.transparent,stencil:0}),Q.currentStencilSource=void 0;for(let yt=0;yt{le.touchstart=le.dragStart,le.touchmoveWindow=le.dragMove,le.touchend=le.dragEnd},ia={showCompass:!0,showZoom:!0,visualizePitch:!1};class Ka{constructor(w,B,Q=!1){this.mousedown=qe=>{this.startMouse(a.e({},qe,{ctrlKey:!0,preventDefault:()=>qe.preventDefault()}),c.mousePos(this.element,qe)),c.addEventListener(window,"mousemove",this.mousemove),c.addEventListener(window,"mouseup",this.mouseup)},this.mousemove=qe=>{this.moveMouse(qe,c.mousePos(this.element,qe))},this.mouseup=qe=>{this.mouseRotate.dragEnd(qe),this.mousePitch&&this.mousePitch.dragEnd(qe),this.offTemp()},this.touchstart=qe=>{qe.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=c.touchPos(this.element,qe.targetTouches)[0],this.startTouch(qe,this._startPos),c.addEventListener(window,"touchmove",this.touchmove,{passive:!1}),c.addEventListener(window,"touchend",this.touchend))},this.touchmove=qe=>{qe.targetTouches.length!==1?this.reset():(this._lastPos=c.touchPos(this.element,qe.targetTouches)[0],this.moveTouch(qe,this._lastPos))},this.touchend=qe=>{qe.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),this.touchRotate.reset(),this.touchPitch&&this.touchPitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10;let ee=w.dragRotate._mouseRotate.getClickTolerance(),se=w.dragRotate._mousePitch.getClickTolerance();this.element=B,this.mouseRotate=Rl({clickTolerance:ee,enable:!0}),this.touchRotate=(({enable:qe,clickTolerance:je,bearingDegreesPerPixelMoved:it=.8})=>{let yt=new pf;return new ju({clickTolerance:je,move:(Ot,Nt)=>({bearingDelta:(Nt.x-Ot.x)*it}),moveStateManager:yt,enable:qe,assignEvents:Rs})})({clickTolerance:ee,enable:!0}),this.map=w,Q&&(this.mousePitch=Ih({clickTolerance:se,enable:!0}),this.touchPitch=(({enable:qe,clickTolerance:je,pitchDegreesPerPixelMoved:it=-.5})=>{let yt=new pf;return new ju({clickTolerance:je,move:(Ot,Nt)=>({pitchDelta:(Nt.y-Ot.y)*it}),moveStateManager:yt,enable:qe,assignEvents:Rs})})({clickTolerance:se,enable:!0})),c.addEventListener(B,"mousedown",this.mousedown),c.addEventListener(B,"touchstart",this.touchstart,{passive:!1}),c.addEventListener(B,"touchcancel",this.reset)}startMouse(w,B){this.mouseRotate.dragStart(w,B),this.mousePitch&&this.mousePitch.dragStart(w,B),c.disableDrag()}startTouch(w,B){this.touchRotate.dragStart(w,B),this.touchPitch&&this.touchPitch.dragStart(w,B),c.disableDrag()}moveMouse(w,B){let Q=this.map,{bearingDelta:ee}=this.mouseRotate.dragMove(w,B)||{};if(ee&&Q.setBearing(Q.getBearing()+ee),this.mousePitch){let{pitchDelta:se}=this.mousePitch.dragMove(w,B)||{};se&&Q.setPitch(Q.getPitch()+se)}}moveTouch(w,B){let Q=this.map,{bearingDelta:ee}=this.touchRotate.dragMove(w,B)||{};if(ee&&Q.setBearing(Q.getBearing()+ee),this.touchPitch){let{pitchDelta:se}=this.touchPitch.dragMove(w,B)||{};se&&Q.setPitch(Q.getPitch()+se)}}off(){let w=this.element;c.removeEventListener(w,"mousedown",this.mousedown),c.removeEventListener(w,"touchstart",this.touchstart,{passive:!1}),c.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),c.removeEventListener(window,"touchend",this.touchend),c.removeEventListener(w,"touchcancel",this.reset),this.offTemp()}offTemp(){c.enableDrag(),c.removeEventListener(window,"mousemove",this.mousemove),c.removeEventListener(window,"mouseup",this.mouseup),c.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),c.removeEventListener(window,"touchend",this.touchend)}}let vs;function Ko(le,w,B){let Q=new a.N(le.lng,le.lat);if(le=new a.N(le.lng,le.lat),w){let ee=new a.N(le.lng-360,le.lat),se=new a.N(le.lng+360,le.lat),qe=B.locationPoint(le).distSqr(w);B.locationPoint(ee).distSqr(w)180;){let ee=B.locationPoint(le);if(ee.x>=0&&ee.y>=0&&ee.x<=B.width&&ee.y<=B.height)break;le.lng>B.center.lng?le.lng-=360:le.lng+=360}return le.lng!==Q.lng&&B.locationPoint(le).y>B.height/2-B.getHorizon()?le:Q}let iu={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};function Ru(le,w,B){let Q=le.classList;for(let ee in iu)Q.remove(`maplibregl-${B}-anchor-${ee}`);Q.add(`maplibregl-${B}-anchor-${w}`)}class ac extends a.E{constructor(w){if(super(),this._onKeyPress=B=>{let Q=B.code,ee=B.charCode||B.keyCode;Q!=="Space"&&Q!=="Enter"&&ee!==32&&ee!==13||this.togglePopup()},this._onMapClick=B=>{let Q=B.originalEvent.target,ee=this._element;this._popup&&(Q===ee||ee.contains(Q))&&this.togglePopup()},this._update=B=>{var Q;if(!this._map)return;let ee=this._map.loaded()&&!this._map.isMoving();((B==null?void 0:B.type)==="terrain"||(B==null?void 0:B.type)==="render"&&!ee)&&this._map.once("render",this._update),this._lngLat=this._map.transform.renderWorldCopies?Ko(this._lngLat,this._flatPos,this._map.transform):(Q=this._lngLat)===null||Q===void 0?void 0:Q.wrap(),this._flatPos=this._pos=this._map.project(this._lngLat)._add(this._offset),this._map.terrain&&(this._flatPos=this._map.transform.locationPoint(this._lngLat)._add(this._offset));let se="";this._rotationAlignment==="viewport"||this._rotationAlignment==="auto"?se=`rotateZ(${this._rotation}deg)`:this._rotationAlignment==="map"&&(se=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let qe="";this._pitchAlignment==="viewport"||this._pitchAlignment==="auto"?qe="rotateX(0deg)":this._pitchAlignment==="map"&&(qe=`rotateX(${this._map.getPitch()}deg)`),this._subpixelPositioning||B&&B.type!=="moveend"||(this._pos=this._pos.round()),c.setTransform(this._element,`${iu[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${qe} ${se}`),u.frameAsync(new AbortController).then(()=>{this._updateOpacity(B&&B.type==="moveend")}).catch(()=>{})},this._onMove=B=>{if(!this._isDragging){let Q=this._clickTolerance||this._map._clickTolerance;this._isDragging=B.point.dist(this._pointerdownPos)>=Q}this._isDragging&&(this._pos=B.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none",this._state==="pending"&&(this._state="active",this.fire(new a.k("dragstart"))),this.fire(new a.k("drag")))},this._onUp=()=>{this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),this._state==="active"&&this.fire(new a.k("dragend")),this._state="inactive"},this._addDragHandler=B=>{this._element.contains(B.originalEvent.target)&&(B.preventDefault(),this._positionDelta=B.point.sub(this._pos).add(this._offset),this._pointerdownPos=B.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},this._anchor=w&&w.anchor||"center",this._color=w&&w.color||"#3FB1CE",this._scale=w&&w.scale||1,this._draggable=w&&w.draggable||!1,this._clickTolerance=w&&w.clickTolerance||0,this._subpixelPositioning=w&&w.subpixelPositioning||!1,this._isDragging=!1,this._state="inactive",this._rotation=w&&w.rotation||0,this._rotationAlignment=w&&w.rotationAlignment||"auto",this._pitchAlignment=w&&w.pitchAlignment&&w.pitchAlignment!=="auto"?w.pitchAlignment:this._rotationAlignment,this.setOpacity(),this.setOpacity(w==null?void 0:w.opacity,w==null?void 0:w.opacityWhenCovered),w&&w.element)this._element=w.element,this._offset=a.P.convert(w&&w.offset||[0,0]);else{this._defaultMarker=!0,this._element=c.create("div");let B=c.createNS("http://www.w3.org/2000/svg","svg"),Q=41,ee=27;B.setAttributeNS(null,"display","block"),B.setAttributeNS(null,"height",`${Q}px`),B.setAttributeNS(null,"width",`${ee}px`),B.setAttributeNS(null,"viewBox",`0 0 ${ee} ${Q}`);let se=c.createNS("http://www.w3.org/2000/svg","g");se.setAttributeNS(null,"stroke","none"),se.setAttributeNS(null,"stroke-width","1"),se.setAttributeNS(null,"fill","none"),se.setAttributeNS(null,"fill-rule","evenodd");let qe=c.createNS("http://www.w3.org/2000/svg","g");qe.setAttributeNS(null,"fill-rule","nonzero");let je=c.createNS("http://www.w3.org/2000/svg","g");je.setAttributeNS(null,"transform","translate(3.0, 29.0)"),je.setAttributeNS(null,"fill","#000000");let it=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];for(let Oe of it){let Je=c.createNS("http://www.w3.org/2000/svg","ellipse");Je.setAttributeNS(null,"opacity","0.04"),Je.setAttributeNS(null,"cx","10.5"),Je.setAttributeNS(null,"cy","5.80029008"),Je.setAttributeNS(null,"rx",Oe.rx),Je.setAttributeNS(null,"ry",Oe.ry),je.appendChild(Je)}let yt=c.createNS("http://www.w3.org/2000/svg","g");yt.setAttributeNS(null,"fill",this._color);let Ot=c.createNS("http://www.w3.org/2000/svg","path");Ot.setAttributeNS(null,"d","M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"),yt.appendChild(Ot);let Nt=c.createNS("http://www.w3.org/2000/svg","g");Nt.setAttributeNS(null,"opacity","0.25"),Nt.setAttributeNS(null,"fill","#000000");let hr=c.createNS("http://www.w3.org/2000/svg","path");hr.setAttributeNS(null,"d","M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"),Nt.appendChild(hr);let Sr=c.createNS("http://www.w3.org/2000/svg","g");Sr.setAttributeNS(null,"transform","translate(6.0, 7.0)"),Sr.setAttributeNS(null,"fill","#FFFFFF");let he=c.createNS("http://www.w3.org/2000/svg","g");he.setAttributeNS(null,"transform","translate(8.0, 8.0)");let be=c.createNS("http://www.w3.org/2000/svg","circle");be.setAttributeNS(null,"fill","#000000"),be.setAttributeNS(null,"opacity","0.25"),be.setAttributeNS(null,"cx","5.5"),be.setAttributeNS(null,"cy","5.5"),be.setAttributeNS(null,"r","5.4999962");let Pe=c.createNS("http://www.w3.org/2000/svg","circle");Pe.setAttributeNS(null,"fill","#FFFFFF"),Pe.setAttributeNS(null,"cx","5.5"),Pe.setAttributeNS(null,"cy","5.5"),Pe.setAttributeNS(null,"r","5.4999962"),he.appendChild(be),he.appendChild(Pe),qe.appendChild(je),qe.appendChild(yt),qe.appendChild(Nt),qe.appendChild(Sr),qe.appendChild(he),B.appendChild(qe),B.setAttributeNS(null,"height",Q*this._scale+"px"),B.setAttributeNS(null,"width",ee*this._scale+"px"),this._element.appendChild(B),this._offset=a.P.convert(w&&w.offset||[0,-14])}if(this._element.classList.add("maplibregl-marker"),this._element.addEventListener("dragstart",B=>{B.preventDefault()}),this._element.addEventListener("mousedown",B=>{B.preventDefault()}),Ru(this._element,this._anchor,"marker"),w&&w.className)for(let B of w.className.split(" "))this._element.classList.add(B);this._popup=null}addTo(w){return this.remove(),this._map=w,this._element.setAttribute("aria-label",w._getUIString("Marker.Title")),w.getCanvasContainer().appendChild(this._element),w.on("move",this._update),w.on("moveend",this._update),w.on("terrain",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map.off("terrain",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),delete this._map),c.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(w){return this._lngLat=a.N.convert(w),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(w){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),w){if(!("offset"in w.options)){let ee=Math.abs(13.5)/Math.SQRT2;w.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[ee,-1*(38.1-13.5+ee)],"bottom-right":[-ee,-1*(38.1-13.5+ee)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=w,this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this}setSubpixelPositioning(w){return this._subpixelPositioning=w,this}getPopup(){return this._popup}togglePopup(){let w=this._popup;return this._element.style.opacity===this._opacityWhenCovered?this:w?(w.isOpen()?w.remove():(w.setLngLat(this._lngLat),w.addTo(this._map)),this):this}_updateOpacity(w=!1){var B,Q;if(!(!((B=this._map)===null||B===void 0)&&B.terrain))return void(this._element.style.opacity!==this._opacity&&(this._element.style.opacity=this._opacity));if(w)this._opacityTimeout=null;else{if(this._opacityTimeout)return;this._opacityTimeout=setTimeout(()=>{this._opacityTimeout=null},100)}let ee=this._map,se=ee.terrain.depthAtPoint(this._pos),qe=ee.terrain.getElevationForLngLatZoom(this._lngLat,ee.transform.tileZoom);if(ee.transform.lngLatToCameraDepth(this._lngLat,qe)-se<.006)return void(this._element.style.opacity=this._opacity);let je=-this._offset.y/ee.transform._pixelPerMeter,it=Math.sin(ee.getPitch()*Math.PI/180)*je,yt=ee.terrain.depthAtPoint(new a.P(this._pos.x,this._pos.y-this._offset.y)),Ot=ee.transform.lngLatToCameraDepth(this._lngLat,qe+it)-yt>.006;!((Q=this._popup)===null||Q===void 0)&&Q.isOpen()&&Ot&&this._popup.remove(),this._element.style.opacity=Ot?this._opacityWhenCovered:this._opacity}getOffset(){return this._offset}setOffset(w){return this._offset=a.P.convert(w),this._update(),this}addClassName(w){this._element.classList.add(w)}removeClassName(w){this._element.classList.remove(w)}toggleClassName(w){return this._element.classList.toggle(w)}setDraggable(w){return this._draggable=!!w,this._map&&(w?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this}isDraggable(){return this._draggable}setRotation(w){return this._rotation=w||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(w){return this._rotationAlignment=w||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(w){return this._pitchAlignment=w&&w!=="auto"?w:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(w,B){return w===void 0&&B===void 0&&(this._opacity="1",this._opacityWhenCovered="0.2"),w!==void 0&&(this._opacity=w),B!==void 0&&(this._opacityWhenCovered=B),this._map&&this._updateOpacity(!0),this}}let mf={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},bu=0,Kc=!1,Du={maxWidth:100,unit:"metric"};function Dc(le,w,B){let Q=B&&B.maxWidth||100,ee=le._container.clientHeight/2,se=le.unproject([0,ee]),qe=le.unproject([Q,ee]),je=se.distanceTo(qe);if(B&&B.unit==="imperial"){let it=3.2808*je;it>5280?Da(w,Q,it/5280,le._getUIString("ScaleControl.Miles")):Da(w,Q,it,le._getUIString("ScaleControl.Feet"))}else B&&B.unit==="nautical"?Da(w,Q,je/1852,le._getUIString("ScaleControl.NauticalMiles")):je>=1e3?Da(w,Q,je/1e3,le._getUIString("ScaleControl.Kilometers")):Da(w,Q,je,le._getUIString("ScaleControl.Meters"))}function Da(le,w,B,Q){let ee=function(se){let qe=Math.pow(10,`${Math.floor(se)}`.length-1),je=se/qe;return je=je>=10?10:je>=5?5:je>=3?3:je>=2?2:je>=1?1:function(it){let yt=Math.pow(10,Math.ceil(-Math.log(it)/Math.LN10));return Math.round(it*yt)/yt}(je),qe*je}(B);le.style.width=w*(ee/B)+"px",le.innerHTML=`${ee} ${Q}`}let eo={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px",subpixelPositioning:!1},Jc=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function yc(le){if(le){if(typeof le=="number"){let w=Math.round(Math.abs(le)/Math.SQRT2);return{center:new a.P(0,0),top:new a.P(0,le),"top-left":new a.P(w,w),"top-right":new a.P(-w,w),bottom:new a.P(0,-le),"bottom-left":new a.P(w,-w),"bottom-right":new a.P(-w,-w),left:new a.P(le,0),right:new a.P(-le,0)}}if(le instanceof a.P||Array.isArray(le)){let w=a.P.convert(le);return{center:w,top:w,"top-left":w,"top-right":w,bottom:w,"bottom-left":w,"bottom-right":w,left:w,right:w}}return{center:a.P.convert(le.center||[0,0]),top:a.P.convert(le.top||[0,0]),"top-left":a.P.convert(le["top-left"]||[0,0]),"top-right":a.P.convert(le["top-right"]||[0,0]),bottom:a.P.convert(le.bottom||[0,0]),"bottom-left":a.P.convert(le["bottom-left"]||[0,0]),"bottom-right":a.P.convert(le["bottom-right"]||[0,0]),left:a.P.convert(le.left||[0,0]),right:a.P.convert(le.right||[0,0])}}return yc(new a.P(0,0))}let _c=o;i.AJAXError=a.bh,i.Evented=a.E,i.LngLat=a.N,i.MercatorCoordinate=a.Z,i.Point=a.P,i.addProtocol=a.bi,i.config=a.a,i.removeProtocol=a.bj,i.AttributionControl=qa,i.BoxZoomHandler=xu,i.CanvasSource=Ct,i.CooperativeGesturesHandler=qi,i.DoubleClickZoomHandler=fi,i.DragPanHandler=Xi,i.DragRotateHandler=hn,i.EdgeInsets=ic,i.FullscreenControl=class extends a.E{constructor(le={}){super(),this._onFullscreenChange=()=>{var w;let B=window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement;for(;!((w=B==null?void 0:B.shadowRoot)===null||w===void 0)&&w.fullscreenElement;)B=B.shadowRoot.fullscreenElement;B===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,le&&le.container&&(le.container instanceof HTMLElement?this._container=le.container:a.w("Full screen control 'container' must be a DOM element.")),"onfullscreenchange"in document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in document&&(this._fullscreenchange="MSFullscreenChange")}onAdd(le){return this._map=le,this._container||(this._container=this._map.getContainer()),this._controlContainer=c.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),this._controlContainer}onRemove(){c.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){let le=this._fullscreenButton=c.create("button","maplibregl-ctrl-fullscreen",this._controlContainer);c.create("span","maplibregl-ctrl-icon",le).setAttribute("aria-hidden","true"),le.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){let le=this._getTitle();this._fullscreenButton.setAttribute("aria-label",le),this._fullscreenButton.title=le}_getTitle(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")}_isFullscreen(){return this._fullscreen}_handleFullscreenChange(){this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("maplibregl-ctrl-shrink"),this._fullscreenButton.classList.toggle("maplibregl-ctrl-fullscreen"),this._updateTitle(),this._fullscreen?(this.fire(new a.k("fullscreenstart")),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new a.k("fullscreenend")),this._prevCooperativeGesturesEnabled&&this._map.cooperativeGestures.enable())}_exitFullscreen(){window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle("maplibregl-pseudo-fullscreen"),this._handleFullscreenChange(),this._map.resize()}},i.GeoJSONSource=rt,i.GeolocateControl=class extends a.E{constructor(le){super(),this._onSuccess=w=>{if(this._map){if(this._isOutOfMapMaxBounds(w))return this._setErrorState(),this.fire(new a.k("outofmaxbounds",w)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=w,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background");break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(w),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(w),this.options.showUserLocation&&this._dotElement.classList.remove("maplibregl-user-location-dot-stale"),this.fire(new a.k("geolocate",w)),this._finish()}},this._updateCamera=w=>{let B=new a.N(w.coords.longitude,w.coords.latitude),Q=w.coords.accuracy,ee=this._map.getBearing(),se=a.e({bearing:ee},this.options.fitBoundsOptions),qe=ce.fromLngLat(B,Q);this._map.fitBounds(qe,se,{geolocateSource:!0})},this._updateMarker=w=>{if(w){let B=new a.N(w.coords.longitude,w.coords.latitude);this._accuracyCircleMarker.setLngLat(B).addTo(this._map),this._userLocationDotMarker.setLngLat(B).addTo(this._map),this._accuracy=w.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onZoom=()=>{this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},this._onError=w=>{if(this._map){if(this.options.trackUserLocation)if(w.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;let B=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=B,this._geolocateButton.setAttribute("aria-label",B),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(w.code===3&&Kc)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("maplibregl-user-location-dot-stale"),this.fire(new a.k("error",w)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=()=>{this._map&&(this._container.addEventListener("contextmenu",w=>w.preventDefault()),this._geolocateButton=c.create("button","maplibregl-ctrl-geolocate",this._container),c.create("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",this._geolocateButton.disabled=!0)},this._finishSetupUI=w=>{if(this._map){if(w===!1){a.w("Geolocation support is not available so the GeolocateControl will be disabled.");let B=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=B,this._geolocateButton.setAttribute("aria-label",B)}else{let B=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.disabled=!1,this._geolocateButton.title=B,this._geolocateButton.setAttribute("aria-label",B)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=c.create("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new ac({element:this._dotElement}),this._circleElement=c.create("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new ac({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",()=>this.trigger()),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",B=>{B.geolocateSource||this._watchState!=="ACTIVE_LOCK"||B.originalEvent&&B.originalEvent.type==="resize"||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new a.k("trackuserlocationend")),this.fire(new a.k("userlocationlostfocus")))})}},this.options=a.e({},mf,le)}onAdd(le){return this._map=le,this._container=c.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),function(){return a._(this,arguments,void 0,function*(w=!1){if(vs!==void 0&&!w)return vs;if(window.navigator.permissions===void 0)return vs=!!window.navigator.geolocation,vs;try{vs=(yield window.navigator.permissions.query({name:"geolocation"})).state!=="denied"}catch(B){vs=!!window.navigator.geolocation}return vs})}().then(w=>this._finishSetupUI(w)),this._container}onRemove(){this._geolocationWatchID!==void 0&&(window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),c.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,bu=0,Kc=!1}_isOutOfMapMaxBounds(le){let w=this._map.getMaxBounds(),B=le.coords;return w&&(B.longitudew.getEast()||B.latitudew.getNorth())}_setErrorState(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting");break;case"ACTIVE_ERROR":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadius(){let le=this._map.getBounds(),w=le.getSouthEast(),B=le.getNorthEast(),Q=w.distanceTo(B),ee=Math.ceil(this._accuracy/(Q/this._map._container.clientHeight)*2);this._circleElement.style.width=`${ee}px`,this._circleElement.style.height=`${ee}px`}trigger(){if(!this._setup)return a.w("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new a.k("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":bu--,Kc=!1,this._watchState="OFF",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background-error"),this.fire(new a.k("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new a.k("trackuserlocationstart")),this.fire(new a.k("userlocationfocus"));break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-active");break;case"OFF":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let le;this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),bu++,bu>1?(le={maximumAge:6e5,timeout:0},Kc=!0):(le=this.options.positionOptions,Kc=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,le)}}else window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0}_clearWatch(){window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)}},i.Hash=gd,i.ImageSource=Rt,i.KeyboardHandler=Bt,i.LngLatBounds=ce,i.LogoControl=Cn,i.Map=class extends Ta{constructor(le){a.bf.mark(a.bg.create);let w=Object.assign(Object.assign({},Gs),le);if(w.minZoom!=null&&w.maxZoom!=null&&w.minZoom>w.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(w.minPitch!=null&&w.maxPitch!=null&&w.minPitch>w.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(w.minPitch!=null&&w.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(w.maxPitch!=null&&w.maxPitch>85)throw new Error("maxPitch must be less than or equal to 85");if(super(new Qs(w.minZoom,w.maxZoom,w.minPitch,w.maxPitch,w.renderWorldCopies),{bearingSnap:w.bearingSnap}),this._idleTriggered=!1,this._crossFadingFactor=1,this._renderTaskQueue=new sn,this._controls=[],this._mapId=a.a4(),this._contextLost=B=>{B.preventDefault(),this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this.fire(new a.k("webglcontextlost",{originalEvent:B}))},this._contextRestored=B=>{this._setupPainter(),this.resize(),this._update(),this.fire(new a.k("webglcontextrestored",{originalEvent:B}))},this._onMapScroll=B=>{if(B.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=w.interactive,this._maxTileCacheSize=w.maxTileCacheSize,this._maxTileCacheZoomLevels=w.maxTileCacheZoomLevels,this._failIfMajorPerformanceCaveat=w.failIfMajorPerformanceCaveat===!0,this._preserveDrawingBuffer=w.preserveDrawingBuffer===!0,this._antialias=w.antialias===!0,this._trackResize=w.trackResize===!0,this._bearingSnap=w.bearingSnap,this._refreshExpiredTiles=w.refreshExpiredTiles===!0,this._fadeDuration=w.fadeDuration,this._crossSourceCollisions=w.crossSourceCollisions===!0,this._collectResourceTiming=w.collectResourceTiming===!0,this._locale=Object.assign(Object.assign({},Bo),w.locale),this._clickTolerance=w.clickTolerance,this._overridePixelRatio=w.pixelRatio,this._maxCanvasSize=w.maxCanvasSize,this.transformCameraUpdate=w.transformCameraUpdate,this.cancelPendingTileRequestsWhileZooming=w.cancelPendingTileRequestsWhileZooming===!0,this._imageQueueHandle=g.addThrottleControl(()=>this.isMoving()),this._requestManager=new E(w.transformRequest),typeof w.container=="string"){if(this._container=document.getElementById(w.container),!this._container)throw new Error(`Container '${w.container}' not found.`)}else{if(!(w.container instanceof HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=w.container}if(w.maxBounds&&this.setMaxBounds(w.maxBounds),this._setupContainer(),this._setupPainter(),this.on("move",()=>this._update(!1)).on("moveend",()=>this._update(!1)).on("zoom",()=>this._update(!0)).on("terrain",()=>{this.painter.terrainFacilitator.dirty=!0,this._update(!0)}).once("idle",()=>{this._idleTriggered=!0}),typeof window!="undefined"){addEventListener("online",this._onWindowOnline,!1);let B=!1,Q=Qh(ee=>{this._trackResize&&!this._removed&&(this.resize(ee),this.redraw())},50);this._resizeObserver=new ResizeObserver(ee=>{B?Q(ee):B=!0}),this._resizeObserver.observe(this._container)}this.handlers=new Ma(this,w),this._hash=w.hash&&new gd(typeof w.hash=="string"&&w.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:w.center,zoom:w.zoom,bearing:w.bearing,pitch:w.pitch}),w.bounds&&(this.resize(),this.fitBounds(w.bounds,a.e({},w.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=w.localIdeographFontFamily,this._validateStyle=w.validateStyle,w.style&&this.setStyle(w.style,{localIdeographFontFamily:w.localIdeographFontFamily}),w.attributionControl&&this.addControl(new qa(typeof w.attributionControl=="boolean"?void 0:w.attributionControl)),w.maplibreLogo&&this.addControl(new Cn,w.logoPosition),this.on("style.load",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on("data",B=>{this._update(B.dataType==="style"),this.fire(new a.k(`${B.dataType}data`,B))}),this.on("dataloading",B=>{this.fire(new a.k(`${B.dataType}dataloading`,B))}),this.on("dataabort",B=>{this.fire(new a.k("sourcedataabort",B))})}_getMapId(){return this._mapId}addControl(le,w){if(w===void 0&&(w=le.getDefaultPosition?le.getDefaultPosition():"top-right"),!le||!le.onAdd)return this.fire(new a.j(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));let B=le.onAdd(this);this._controls.push(le);let Q=this._controlPositions[w];return w.indexOf("bottom")!==-1?Q.insertBefore(B,Q.firstChild):Q.appendChild(B),this}removeControl(le){if(!le||!le.onRemove)return this.fire(new a.j(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));let w=this._controls.indexOf(le);return w>-1&&this._controls.splice(w,1),le.onRemove(this),this}hasControl(le){return this._controls.indexOf(le)>-1}calculateCameraOptionsFromTo(le,w,B,Q){return Q==null&&this.terrain&&(Q=this.terrain.getElevationForLngLatZoom(B,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(le,w,B,Q)}resize(le){var w;let B=this._containerDimensions(),Q=B[0],ee=B[1],se=this._getClampedPixelRatio(Q,ee);if(this._resizeCanvas(Q,ee,se),this.painter.resize(Q,ee,se),this.painter.overLimit()){let je=this.painter.context.gl;this._maxCanvasSize=[je.drawingBufferWidth,je.drawingBufferHeight];let it=this._getClampedPixelRatio(Q,ee);this._resizeCanvas(Q,ee,it),this.painter.resize(Q,ee,it)}this.transform.resize(Q,ee),(w=this._requestedCameraState)===null||w===void 0||w.resize(Q,ee);let qe=!this._moving;return qe&&(this.stop(),this.fire(new a.k("movestart",le)).fire(new a.k("move",le))),this.fire(new a.k("resize",le)),qe&&this.fire(new a.k("moveend",le)),this}_getClampedPixelRatio(le,w){let{0:B,1:Q}=this._maxCanvasSize,ee=this.getPixelRatio(),se=le*ee,qe=w*ee;return Math.min(se>B?B/se:1,qe>Q?Q/qe:1)*ee}getPixelRatio(){var le;return(le=this._overridePixelRatio)!==null&&le!==void 0?le:devicePixelRatio}setPixelRatio(le){this._overridePixelRatio=le,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(le){return this.transform.setMaxBounds(ce.convert(le)),this._update()}setMinZoom(le){if((le=le==null?-2:le)>=-2&&le<=this.transform.maxZoom)return this.transform.minZoom=le,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=le,this._update(),this.getZoom()>le&&this.setZoom(le),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(le){if((le=le==null?0:le)<0)throw new Error("minPitch must be greater than or equal to 0");if(le>=0&&le<=this.transform.maxPitch)return this.transform.minPitch=le,this._update(),this.getPitch()85)throw new Error("maxPitch must be less than or equal to 85");if(le>=this.transform.minPitch)return this.transform.maxPitch=le,this._update(),this.getPitch()>le&&this.setPitch(le),this;throw new Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(le){return this.transform.renderWorldCopies=le,this._update()}project(le){return this.transform.locationPoint(a.N.convert(le),this.style&&this.terrain)}unproject(le){return this.transform.pointLocation(a.P.convert(le),this.terrain)}isMoving(){var le;return this._moving||((le=this.handlers)===null||le===void 0?void 0:le.isMoving())}isZooming(){var le;return this._zooming||((le=this.handlers)===null||le===void 0?void 0:le.isZooming())}isRotating(){var le;return this._rotating||((le=this.handlers)===null||le===void 0?void 0:le.isRotating())}_createDelegatedListener(le,w,B){if(le==="mouseenter"||le==="mouseover"){let Q=!1;return{layers:w,listener:B,delegates:{mousemove:se=>{let qe=w.filter(it=>this.getLayer(it)),je=qe.length!==0?this.queryRenderedFeatures(se.point,{layers:qe}):[];je.length?Q||(Q=!0,B.call(this,new tu(le,this,se.originalEvent,{features:je}))):Q=!1},mouseout:()=>{Q=!1}}}}if(le==="mouseleave"||le==="mouseout"){let Q=!1;return{layers:w,listener:B,delegates:{mousemove:qe=>{let je=w.filter(it=>this.getLayer(it));(je.length!==0?this.queryRenderedFeatures(qe.point,{layers:je}):[]).length?Q=!0:Q&&(Q=!1,B.call(this,new tu(le,this,qe.originalEvent)))},mouseout:qe=>{Q&&(Q=!1,B.call(this,new tu(le,this,qe.originalEvent)))}}}}{let Q=ee=>{let se=w.filter(je=>this.getLayer(je)),qe=se.length!==0?this.queryRenderedFeatures(ee.point,{layers:se}):[];qe.length&&(ee.features=qe,B.call(this,ee),delete ee.features)};return{layers:w,listener:B,delegates:{[le]:Q}}}}_saveDelegatedListener(le,w){this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[le]=this._delegatedListeners[le]||[],this._delegatedListeners[le].push(w)}_removeDelegatedListener(le,w,B){if(!this._delegatedListeners||!this._delegatedListeners[le])return;let Q=this._delegatedListeners[le];for(let ee=0;eew.includes(qe))){for(let qe in se.delegates)this.off(qe,se.delegates[qe]);return void Q.splice(ee,1)}}}on(le,w,B){if(B===void 0)return super.on(le,w);let Q=this._createDelegatedListener(le,typeof w=="string"?[w]:w,B);this._saveDelegatedListener(le,Q);for(let ee in Q.delegates)this.on(ee,Q.delegates[ee]);return this}once(le,w,B){if(B===void 0)return super.once(le,w);let Q=typeof w=="string"?[w]:w,ee=this._createDelegatedListener(le,Q,B);for(let se in ee.delegates){let qe=ee.delegates[se];ee.delegates[se]=(...je)=>{this._removeDelegatedListener(le,Q,B),qe(...je)}}this._saveDelegatedListener(le,ee);for(let se in ee.delegates)this.once(se,ee.delegates[se]);return this}off(le,w,B){return B===void 0?super.off(le,w):(this._removeDelegatedListener(le,typeof w=="string"?[w]:w,B),this)}queryRenderedFeatures(le,w){if(!this.style)return[];let B,Q=le instanceof a.P||Array.isArray(le),ee=Q?le:[[0,0],[this.transform.width,this.transform.height]];if(w=w||(Q?{}:le)||{},ee instanceof a.P||typeof ee[0]=="number")B=[a.P.convert(ee)];else{let se=a.P.convert(ee[0]),qe=a.P.convert(ee[1]);B=[se,new a.P(qe.x,se.y),qe,new a.P(se.x,qe.y),se]}return this.style.queryRenderedFeatures(B,w,this.transform)}querySourceFeatures(le,w){return this.style.querySourceFeatures(le,w)}setStyle(le,w){return(w=a.e({},{localIdeographFontFamily:this._localIdeographFontFamily,validate:this._validateStyle},w)).diff!==!1&&w.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&le?(this._diffStyle(le,w),this):(this._localIdeographFontFamily=w.localIdeographFontFamily,this._updateStyle(le,w))}setTransformRequest(le){return this._requestManager.setTransformRequest(le),this}_getUIString(le){let w=this._locale[le];if(w==null)throw new Error(`Missing UI string '${le}'`);return w}_updateStyle(le,w){if(w.transformStyle&&this.style&&!this.style._loaded)return void this.style.once("style.load",()=>this._updateStyle(le,w));let B=this.style&&w.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!le)),le?(this.style=new Ha(this,w||{}),this.style.setEventedParent(this,{style:this.style}),typeof le=="string"?this.style.loadURL(le,w,B):this.style.loadJSON(le,w,B),this):(delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new Ha(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(le,w){if(typeof le=="string"){let B=this._requestManager.transformRequest(le,"Style");a.h(B,new AbortController).then(Q=>{this._updateDiff(Q.data,w)}).catch(Q=>{Q&&this.fire(new a.j(Q))})}else typeof le=="object"&&this._updateDiff(le,w)}_updateDiff(le,w){try{this.style.setState(le,w)&&this._update(!0)}catch(B){a.w(`Unable to perform style diff: ${B.message||B.error||B}. Rebuilding the style from scratch.`),this._updateStyle(le,w)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():a.w("There is no style added to the map.")}addSource(le,w){return this._lazyInitEmptyStyle(),this.style.addSource(le,w),this._update(!0)}isSourceLoaded(le){let w=this.style&&this.style.sourceCaches[le];if(w!==void 0)return w.loaded();this.fire(new a.j(new Error(`There is no source with ID '${le}'`)))}setTerrain(le){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off("data",this._terrainDataCallback),le){let w=this.style.sourceCaches[le.source];if(!w)throw new Error(`cannot load terrain, because there exists no source with ID: ${le.source}`);this.terrain===null&&w.reload();for(let B in this.style._layers){let Q=this.style._layers[B];Q.type==="hillshade"&&Q.source===le.source&&a.w("You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.")}this.terrain=new Xo(this.painter,w,le),this.painter.renderToTexture=new ys(this.painter,this.terrain),this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._terrainDataCallback=B=>{B.dataType==="style"?this.terrain.sourceCache.freeRtt():B.dataType==="source"&&B.tile&&(B.sourceId!==le.source||this._elevationFreeze||(this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.terrain.sourceCache.freeRtt(B.tile.tileID))},this.style.on("data",this._terrainDataCallback)}else this.terrain&&this.terrain.sourceCache.destruct(),this.terrain=null,this.painter.renderToTexture&&this.painter.renderToTexture.destruct(),this.painter.renderToTexture=null,this.transform.minElevationForCurrentTile=0,this.transform.elevation=0;return this.fire(new a.k("terrain",{terrain:le})),this}getTerrain(){var le,w;return(w=(le=this.terrain)===null||le===void 0?void 0:le.options)!==null&&w!==void 0?w:null}areTilesLoaded(){let le=this.style&&this.style.sourceCaches;for(let w in le){let B=le[w]._tiles;for(let Q in B){let ee=B[Q];if(ee.state!=="loaded"&&ee.state!=="errored")return!1}}return!0}removeSource(le){return this.style.removeSource(le),this._update(!0)}getSource(le){return this.style.getSource(le)}addImage(le,w,B={}){let{pixelRatio:Q=1,sdf:ee=!1,stretchX:se,stretchY:qe,content:je,textFitWidth:it,textFitHeight:yt}=B;if(this._lazyInitEmptyStyle(),!(w instanceof HTMLImageElement||a.b(w))){if(w.width===void 0||w.height===void 0)return this.fire(new a.j(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));{let{width:Ot,height:Nt,data:hr}=w,Sr=w;return this.style.addImage(le,{data:new a.R({width:Ot,height:Nt},new Uint8Array(hr)),pixelRatio:Q,stretchX:se,stretchY:qe,content:je,textFitWidth:it,textFitHeight:yt,sdf:ee,version:0,userImage:Sr}),Sr.onAdd&&Sr.onAdd(this,le),this}}{let{width:Ot,height:Nt,data:hr}=u.getImageData(w);this.style.addImage(le,{data:new a.R({width:Ot,height:Nt},hr),pixelRatio:Q,stretchX:se,stretchY:qe,content:je,textFitWidth:it,textFitHeight:yt,sdf:ee,version:0})}}updateImage(le,w){let B=this.style.getImage(le);if(!B)return this.fire(new a.j(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));let Q=w instanceof HTMLImageElement||a.b(w)?u.getImageData(w):w,{width:ee,height:se,data:qe}=Q;if(ee===void 0||se===void 0)return this.fire(new a.j(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));if(ee!==B.data.width||se!==B.data.height)return this.fire(new a.j(new Error("The width and height of the updated image must be that same as the previous version of the image")));let je=!(w instanceof HTMLImageElement||a.b(w));return B.data.replace(qe,je),this.style.updateImage(le,B),this}getImage(le){return this.style.getImage(le)}hasImage(le){return le?!!this.style.getImage(le):(this.fire(new a.j(new Error("Missing required image id"))),!1)}removeImage(le){this.style.removeImage(le)}loadImage(le){return g.getImage(this._requestManager.transformRequest(le,"Image"),new AbortController)}listImages(){return this.style.listImages()}addLayer(le,w){return this._lazyInitEmptyStyle(),this.style.addLayer(le,w),this._update(!0)}moveLayer(le,w){return this.style.moveLayer(le,w),this._update(!0)}removeLayer(le){return this.style.removeLayer(le),this._update(!0)}getLayer(le){return this.style.getLayer(le)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(le,w,B){return this.style.setLayerZoomRange(le,w,B),this._update(!0)}setFilter(le,w,B={}){return this.style.setFilter(le,w,B),this._update(!0)}getFilter(le){return this.style.getFilter(le)}setPaintProperty(le,w,B,Q={}){return this.style.setPaintProperty(le,w,B,Q),this._update(!0)}getPaintProperty(le,w){return this.style.getPaintProperty(le,w)}setLayoutProperty(le,w,B,Q={}){return this.style.setLayoutProperty(le,w,B,Q),this._update(!0)}getLayoutProperty(le,w){return this.style.getLayoutProperty(le,w)}setGlyphs(le,w={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(le,w),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(le,w,B={}){return this._lazyInitEmptyStyle(),this.style.addSprite(le,w,B,Q=>{Q||this._update(!0)}),this}removeSprite(le){return this._lazyInitEmptyStyle(),this.style.removeSprite(le),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(le,w={}){return this._lazyInitEmptyStyle(),this.style.setSprite(le,w,B=>{B||this._update(!0)}),this}setLight(le,w={}){return this._lazyInitEmptyStyle(),this.style.setLight(le,w),this._update(!0)}getLight(){return this.style.getLight()}setSky(le){return this._lazyInitEmptyStyle(),this.style.setSky(le),this._update(!0)}getSky(){return this.style.getSky()}setFeatureState(le,w){return this.style.setFeatureState(le,w),this._update()}removeFeatureState(le,w){return this.style.removeFeatureState(le,w),this._update()}getFeatureState(le){return this.style.getFeatureState(le)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let le=0,w=0;return this._container&&(le=this._container.clientWidth||400,w=this._container.clientHeight||300),[le,w]}_setupContainer(){let le=this._container;le.classList.add("maplibregl-map");let w=this._canvasContainer=c.create("div","maplibregl-canvas-container",le);this._interactive&&w.classList.add("maplibregl-interactive"),this._canvas=c.create("canvas","maplibregl-canvas",w),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex",this._interactive?"0":"-1"),this._canvas.setAttribute("aria-label",this._getUIString("Map.Title")),this._canvas.setAttribute("role","region");let B=this._containerDimensions(),Q=this._getClampedPixelRatio(B[0],B[1]);this._resizeCanvas(B[0],B[1],Q);let ee=this._controlContainer=c.create("div","maplibregl-control-container",le),se=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(qe=>{se[qe]=c.create("div",`maplibregl-ctrl-${qe} `,ee)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(le,w,B){this._canvas.width=Math.floor(B*le),this._canvas.height=Math.floor(B*w),this._canvas.style.width=`${le}px`,this._canvas.style.height=`${w}px`}_setupPainter(){let le={alpha:!0,stencil:!0,depth:!0,failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1},w=null;this._canvas.addEventListener("webglcontextcreationerror",Q=>{w={requestedAttributes:le},Q&&(w.statusMessage=Q.statusMessage,w.type=Q.type)},{once:!0});let B=this._canvas.getContext("webgl2",le)||this._canvas.getContext("webgl",le);if(!B){let Q="Failed to initialize WebGL";throw w?(w.message=Q,new Error(JSON.stringify(w))):new Error(Q)}this.painter=new Lc(B,this.transform),f.testSupport(B)}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(le){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||le,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(le){return this._update(),this._renderTaskQueue.add(le)}_cancelRenderFrame(le){this._renderTaskQueue.remove(le)}_render(le){let w=this._idleTriggered?this._fadeDuration:0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(le),this._removed)return;let B=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;let ee=this.transform.zoom,se=u.now();this.style.zoomHistory.update(ee,se);let qe=new a.z(ee,{now:se,fadeDuration:w,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),je=qe.crossFadingFactor();je===1&&je===this._crossFadingFactor||(B=!0,this._crossFadingFactor=je),this.style.update(qe)}this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._elevationFreeze||(this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform.minElevationForCurrentTile=0,this.transform.elevation=0),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,w,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:w,showPadding:this.showPadding}),this.fire(new a.k("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,a.bf.mark(a.bg.load),this.fire(new a.k("load"))),this.style&&(this.style.hasTransitions()||B)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();let Q=this._sourcesDirty||this._styleDirty||this._placementDirty;return Q||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new a.k("idle")),!this._loaded||this._fullyLoaded||Q||(this._fullyLoaded=!0,a.bf.mark(a.bg.fullLoad)),this}redraw(){return this.style&&(this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._render(0)),this}remove(){var le;this._hash&&this._hash.remove();for(let B of this._controls)B.onRemove(this);this._controls=[],this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),typeof window!="undefined"&&removeEventListener("online",this._onWindowOnline,!1),g.removeThrottleControl(this._imageQueueHandle),(le=this._resizeObserver)===null||le===void 0||le.disconnect();let w=this.painter.context.gl.getExtension("WEBGL_lose_context");w!=null&&w.loseContext&&w.loseContext(),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),c.remove(this._canvasContainer),c.remove(this._controlContainer),this._container.classList.remove("maplibregl-map"),a.bf.clearMetrics(),this._removed=!0,this.fire(new a.k("remove"))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,u.frameAsync(this._frameRequest).then(le=>{a.bf.frame(le),this._frameRequest=null,this._render(le)}).catch(()=>{}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(le){this._showTileBoundaries!==le&&(this._showTileBoundaries=le,this._update())}get showPadding(){return!!this._showPadding}set showPadding(le){this._showPadding!==le&&(this._showPadding=le,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(le){this._showCollisionBoxes!==le&&(this._showCollisionBoxes=le,le?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(le){this._showOverdrawInspector!==le&&(this._showOverdrawInspector=le,this._update())}get repaint(){return!!this._repaint}set repaint(le){this._repaint!==le&&(this._repaint=le,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(le){this._vertices=le,this._update()}get version(){return yl}getCameraTargetElevation(){return this.transform.elevation}},i.MapMouseEvent=tu,i.MapTouchEvent=vf,i.MapWheelEvent=md,i.Marker=ac,i.NavigationControl=class{constructor(le){this._updateZoomButtons=()=>{let w=this._map.getZoom(),B=w===this._map.getMaxZoom(),Q=w===this._map.getMinZoom();this._zoomInButton.disabled=B,this._zoomOutButton.disabled=Q,this._zoomInButton.setAttribute("aria-disabled",B.toString()),this._zoomOutButton.setAttribute("aria-disabled",Q.toString())},this._rotateCompassArrow=()=>{let w=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${this._map.transform.angle*(180/Math.PI)}deg)`:`rotate(${this._map.transform.angle*(180/Math.PI)}deg)`;this._compassIcon.style.transform=w},this._setButtonTitle=(w,B)=>{let Q=this._map._getUIString(`NavigationControl.${B}`);w.title=Q,w.setAttribute("aria-label",Q)},this.options=a.e({},ia,le),this._container=c.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._container.addEventListener("contextmenu",w=>w.preventDefault()),this.options.showZoom&&(this._zoomInButton=this._createButton("maplibregl-ctrl-zoom-in",w=>this._map.zoomIn({},{originalEvent:w})),c.create("span","maplibregl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("maplibregl-ctrl-zoom-out",w=>this._map.zoomOut({},{originalEvent:w})),c.create("span","maplibregl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(this._compass=this._createButton("maplibregl-ctrl-compass",w=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:w}):this._map.resetNorth({},{originalEvent:w})}),this._compassIcon=c.create("span","maplibregl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}onAdd(le){return this._map=le,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new Ka(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){c.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(le,w){let B=c.create("button",le,this._container);return B.type="button",B.addEventListener("click",w),B}},i.Popup=class extends a.E{constructor(le){super(),this.remove=()=>(this._content&&c.remove(this._content),this._container&&(c.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),this._map._canvasContainer.classList.remove("maplibregl-track-pointer"),delete this._map,this.fire(new a.k("close"))),this),this._onMouseUp=w=>{this._update(w.point)},this._onMouseMove=w=>{this._update(w.point)},this._onDrag=w=>{this._update(w.point)},this._update=w=>{var B;if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=c.create("div","maplibregl-popup",this._map.getContainer()),this._tip=c.create("div","maplibregl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className)for(let je of this.options.className.split(" "))this._container.classList.add(je);this._closeButton&&this._closeButton.setAttribute("aria-label",this._map._getUIString("Popup.Close")),this._trackPointer&&this._container.classList.add("maplibregl-popup-track-pointer")}if(this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._lngLat=this._map.transform.renderWorldCopies&&!this._trackPointer?Ko(this._lngLat,this._flatPos,this._map.transform):(B=this._lngLat)===null||B===void 0?void 0:B.wrap(),this._trackPointer&&!w)return;let Q=this._flatPos=this._pos=this._trackPointer&&w?w:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&w?w:this._map.transform.locationPoint(this._lngLat));let ee=this.options.anchor,se=yc(this.options.offset);if(!ee){let je=this._container.offsetWidth,it=this._container.offsetHeight,yt;yt=Q.y+se.bottom.ythis._map.transform.height-it?["bottom"]:[],Q.xthis._map.transform.width-je/2&&yt.push("right"),ee=yt.length===0?"bottom":yt.join("-")}let qe=Q.add(se[ee]);this.options.subpixelPositioning||(qe=qe.round()),c.setTransform(this._container,`${iu[ee]} translate(${qe.x}px,${qe.y}px)`),Ru(this._container,ee,"popup")},this._onClose=()=>{this.remove()},this.options=a.e(Object.create(eo),le)}addTo(le){return this._map&&this.remove(),this._map=le,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")):this._map.on("move",this._update),this.fire(new a.k("open")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(le){return this._lngLat=a.N.convert(le),this._pos=null,this._flatPos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.remove("maplibregl-track-pointer")),this}trackPointer(){return this._trackPointer=!0,this._pos=null,this._flatPos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")),this}getElement(){return this._container}setText(le){return this.setDOMContent(document.createTextNode(le))}setHTML(le){let w=document.createDocumentFragment(),B=document.createElement("body"),Q;for(B.innerHTML=le;Q=B.firstChild,Q;)w.appendChild(Q);return this.setDOMContent(w)}getMaxWidth(){var le;return(le=this._container)===null||le===void 0?void 0:le.style.maxWidth}setMaxWidth(le){return this.options.maxWidth=le,this._update(),this}setDOMContent(le){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=c.create("div","maplibregl-popup-content",this._container);return this._content.appendChild(le),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(le){return this._container&&this._container.classList.add(le),this}removeClassName(le){return this._container&&this._container.classList.remove(le),this}setOffset(le){return this.options.offset=le,this._update(),this}toggleClassName(le){if(this._container)return this._container.classList.toggle(le)}setSubpixelPositioning(le){this.options.subpixelPositioning=le}_createCloseButton(){this.options.closeButton&&(this._closeButton=c.create("button","maplibregl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;let le=this._container.querySelector(Jc);le&&le.focus()}},i.RasterDEMTileSource=qt,i.RasterTileSource=ct,i.ScaleControl=class{constructor(le){this._onMove=()=>{Dc(this._map,this._container,this.options)},this.setUnit=w=>{this.options.unit=w,Dc(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},Du),le)}getDefaultPosition(){return"bottom-left"}onAdd(le){return this._map=le,this._container=c.create("div","maplibregl-ctrl maplibregl-ctrl-scale",le.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){c.remove(this._container),this._map.off("move",this._onMove),this._map=void 0}},i.ScrollZoomHandler=Ur,i.Style=Ha,i.TerrainControl=class{constructor(le){this._toggleTerrain=()=>{this._map.getTerrain()?this._map.setTerrain(null):this._map.setTerrain(this.options),this._updateTerrainIcon()},this._updateTerrainIcon=()=>{this._terrainButton.classList.remove("maplibregl-ctrl-terrain"),this._terrainButton.classList.remove("maplibregl-ctrl-terrain-enabled"),this._map.terrain?(this._terrainButton.classList.add("maplibregl-ctrl-terrain-enabled"),this._terrainButton.title=this._map._getUIString("TerrainControl.Disable")):(this._terrainButton.classList.add("maplibregl-ctrl-terrain"),this._terrainButton.title=this._map._getUIString("TerrainControl.Enable"))},this.options=le}onAdd(le){return this._map=le,this._container=c.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=c.create("button","maplibregl-ctrl-terrain",this._container),c.create("span","maplibregl-ctrl-icon",this._terrainButton).setAttribute("aria-hidden","true"),this._terrainButton.type="button",this._terrainButton.addEventListener("click",this._toggleTerrain),this._updateTerrainIcon(),this._map.on("terrain",this._updateTerrainIcon),this._container}onRemove(){c.remove(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}},i.TwoFingersTouchPitchHandler=gf,i.TwoFingersTouchRotateHandler=Yc,i.TwoFingersTouchZoomHandler=ru,i.TwoFingersTouchZoomRotateHandler=Ti,i.VectorTileSource=nt,i.VideoSource=kt,i.addSourceType=(le,w)=>a._(void 0,void 0,void 0,function*(){if(xr(le))throw new Error(`A source type called "${le}" already exists.`);((B,Q)=>{Yt[B]=Q})(le,w)}),i.clearPrewarmedResources=function(){let le=ge;le&&(le.isPreloaded()&&le.numActive()===1?(le.release(_e),ge=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},i.getMaxParallelImageRequests=function(){return a.a.MAX_PARALLEL_IMAGE_REQUESTS},i.getRTLTextPluginStatus=function(){return bt().getRTLTextPluginStatus()},i.getVersion=function(){return _c},i.getWorkerCount=function(){return Me.workerCount},i.getWorkerUrl=function(){return a.a.WORKER_URL},i.importScriptInWorkers=function(le){return Ae().broadcast("IS",le)},i.prewarm=function(){Te().acquire(_e)},i.setMaxParallelImageRequests=function(le){a.a.MAX_PARALLEL_IMAGE_REQUESTS=le},i.setRTLTextPlugin=function(le,w){return bt().setRTLTextPlugin(le,w)},i.setWorkerCount=function(le){Me.workerCount=le},i.setWorkerUrl=function(le){a.a.WORKER_URL=le}});var n=e;return n})});var VHe=ye((R1r,UHe)=>{"use strict";var iw=Mr(),sjt=Ll().sanitizeHTML,ljt=uJ(),OHe=bx();function BHe(e,t){this.subplot=e,this.uid=e.uid+"-"+t,this.index=t,this.idSource="source-"+this.uid,this.idLayer=OHe.layoutLayerPrefix+this.uid,this.sourceType=null,this.source=null,this.layerType=null,this.below=null,this.visible=!1}var ag=BHe.prototype;ag.update=function(t){this.visible?this.needsNewImage(t)?this.updateImage(t):this.needsNewSource(t)?(this.removeLayer(),this.updateSource(t),this.updateLayer(t)):this.needsNewLayer(t)?this.updateLayer(t):this.updateStyle(t):(this.updateSource(t),this.updateLayer(t)),this.visible=i7(t)};ag.needsNewImage=function(e){var t=this.subplot.map;return t.getSource(this.idSource)&&this.sourceType==="image"&&e.sourcetype==="image"&&(this.source!==e.source||JSON.stringify(this.coordinates)!==JSON.stringify(e.coordinates))};ag.needsNewSource=function(e){return this.sourceType!==e.sourcetype||JSON.stringify(this.source)!==JSON.stringify(e.source)||this.layerType!==e.type};ag.needsNewLayer=function(e){return this.layerType!==e.type||this.below!==this.subplot.belowLookup["layout-"+this.index]};ag.lookupBelow=function(){return this.subplot.belowLookup["layout-"+this.index]};ag.updateImage=function(e){var t=this.subplot.map;t.getSource(this.idSource).updateImage({url:e.source,coordinates:e.coordinates});var r=this.findFollowingMapLayerId(this.lookupBelow());r!==null&&this.subplot.map.moveLayer(this.idLayer,r)};ag.updateSource=function(e){var t=this.subplot.map;if(t.getSource(this.idSource)&&t.removeSource(this.idSource),this.sourceType=e.sourcetype,this.source=e.source,!!i7(e)){var r=ujt(e);t.addSource(this.idSource,r)}};ag.findFollowingMapLayerId=function(e){if(e==="traces")for(var t=this.subplot.getMapLayers(),r=0;r0){for(var r=0;r0}function NHe(e){var t={},r={};switch(e.type){case"circle":iw.extendFlat(r,{"circle-radius":e.circle.radius,"circle-color":e.color,"circle-opacity":e.opacity});break;case"line":iw.extendFlat(r,{"line-width":e.line.width,"line-color":e.color,"line-opacity":e.opacity,"line-dasharray":e.line.dash});break;case"fill":iw.extendFlat(r,{"fill-color":e.color,"fill-outline-color":e.fill.outlinecolor,"fill-opacity":e.opacity});break;case"symbol":var n=e.symbol,i=ljt(n.textposition,n.iconsize);iw.extendFlat(t,{"icon-image":n.icon+"-15","icon-size":n.iconsize/10,"text-field":n.text,"text-size":n.textfont.size,"text-anchor":i.anchor,"text-offset":i.offset,"symbol-placement":n.placement}),iw.extendFlat(r,{"icon-color":e.color,"text-color":n.textfont.color,"text-opacity":e.opacity});break;case"raster":iw.extendFlat(r,{"raster-fade-duration":0,"raster-opacity":e.opacity});break}return{layout:t,paint:r}}function ujt(e){var t=e.sourcetype,r=e.source,n={type:t},i;return t==="geojson"?i="data":t==="vector"?i=typeof r=="string"?"url":"tiles":t==="raster"?(i="tiles",n.tileSize=256):t==="image"&&(i="url",n.coordinates=e.coordinates),n[i]=r,e.sourceattribution&&(n.attribution=sjt(e.sourceattribution)),n}UHe.exports=function(t,r,n){var i=new BHe(t,r);return i.update(n),i}});var KHe=ye((D1r,YHe)=>{"use strict";var pJ=qHe(),gJ=Mr(),jHe=ix(),HHe=ba(),cjt=Qa(),fjt=gv(),n7=Nc(),WHe=Sg(),hjt=WHe.drawMode,djt=WHe.selectMode,vjt=wf().prepSelect,pjt=wf().clearOutline,gjt=wf().clearSelectionsCache,mjt=wf().selectOnClick,nw=bx(),yjt=VHe();function ZHe(e,t){this.id=t,this.gd=e;var r=e._fullLayout,n=e._context;this.container=r._glcontainer.node(),this.isStatic=n.staticPlot,this.uid=r._uid+"-"+this.id,this.div=null,this.xaxis=null,this.yaxis=null,this.createFramework(r),this.map=null,this.styleObj=null,this.traceHash={},this.layerList=[],this.belowLookup={},this.dragging=!1,this.wheeling=!1}var Sh=ZHe.prototype;Sh.plot=function(e,t,r){var n=this,i;n.map?i=new Promise(function(a,o){n.updateMap(e,t,a,o)}):i=new Promise(function(a,o){n.createMap(e,t,a,o)}),r.push(i)};Sh.createMap=function(e,t,r,n){var i=this,a=t[i.id],o=i.styleObj=XHe(a.style),s=a.bounds,l=s?[[s.west,s.south],[s.east,s.north]]:null,u=i.map=new pJ.Map({container:i.div,style:o.style,center:mJ(a.center),zoom:a.zoom,bearing:a.bearing,pitch:a.pitch,maxBounds:l,interactive:!i.isStatic,preserveDrawingBuffer:i.isStatic,doubleClickZoom:!1,boxZoom:!1,attributionControl:!1}).addControl(new pJ.AttributionControl({compact:!0})),c={};u.on("styleimagemissing",function(h){var d=h.id;if(!c[d]&&d.includes("-15")){c[d]=!0;var v=new Image(15,15);v.onload=function(){u.addImage(d,v)},v.crossOrigin="Anonymous",v.src="https://unpkg.com/maki@2.1.0/icons/"+d+".svg"}}),u.setTransformRequest(function(h){return h=h.replace("https://fonts.openmaptiles.org/Open Sans Extrabold","https://fonts.openmaptiles.org/Open Sans Extra Bold"),h=h.replace("https://tiles.basemaps.cartocdn.com/fonts/Open Sans Extrabold","https://fonts.openmaptiles.org/Open Sans Extra Bold"),h=h.replace("https://fonts.openmaptiles.org/Open Sans Regular,Arial Unicode MS Regular","https://fonts.openmaptiles.org/Klokantech Noto Sans Regular"),{url:h}}),u._canvas.style.left="0px",u._canvas.style.top="0px",i.rejectOnError(n),i.isStatic||i.initFx(e,t);var f=[];f.push(new Promise(function(h){u.once("load",h)})),f=f.concat(jHe.fetchTraceGeoData(e)),Promise.all(f).then(function(){i.fillBelowLookup(e,t),i.updateData(e),i.updateLayout(t),i.resolveOnRender(r)}).catch(n)};Sh.updateMap=function(e,t,r,n){var i=this,a=i.map,o=t[this.id];i.rejectOnError(n);var s=[],l=XHe(o.style);JSON.stringify(i.styleObj)!==JSON.stringify(l)&&(i.styleObj=l,a.setStyle(l.style),i.traceHash={},s.push(new Promise(function(u){a.once("styledata",u)}))),s=s.concat(jHe.fetchTraceGeoData(e)),Promise.all(s).then(function(){i.fillBelowLookup(e,t),i.updateData(e),i.updateLayout(t),i.resolveOnRender(r)}).catch(n)};Sh.fillBelowLookup=function(e,t){var r=t[this.id],n=r.layers,i,a,o=this.belowLookup={},s=!1;for(i=0;i1)for(i=0;i-1&&mjt(l.originalEvent,n,[r.xaxis],[r.yaxis],r.id,s),u.indexOf("event")>-1&&n7.click(n,l.originalEvent)}}};Sh.updateFx=function(e){var t=this,r=t.map,n=t.gd;if(t.isStatic)return;function i(l){var u=t.map.unproject(l);return[u.lng,u.lat]}var a=e.dragmode,o;o=function(l,u){if(u.isRect){var c=l.range={};c[t.id]=[i([u.xmin,u.ymin]),i([u.xmax,u.ymax])]}else{var f=l.lassoPoints={};f[t.id]=u.map(i)}};var s=t.dragOptions;t.dragOptions=gJ.extendDeep(s||{},{dragmode:e.dragmode,element:t.div,gd:n,plotinfo:{id:t.id,domain:e[t.id].domain,xaxis:t.xaxis,yaxis:t.yaxis,fillRangeItems:o},xaxes:[t.xaxis],yaxes:[t.yaxis],subplot:t.id}),r.off("click",t.onClickInPanHandler),djt(a)||hjt(a)?(r.dragPan.disable(),r.on("zoomstart",t.clearOutline),t.dragOptions.prepFn=function(l,u,c){vjt(l,u,c,t.dragOptions,a)},fjt.init(t.dragOptions)):(r.dragPan.enable(),r.off("zoomstart",t.clearOutline),t.div.onmousedown=null,t.div.ontouchstart=null,t.div.removeEventListener("touchstart",t.div._ontouchstart),t.onClickInPanHandler=t.onClickInPanFn(t.dragOptions),r.on("click",t.onClickInPanHandler))};Sh.updateFramework=function(e){var t=e[this.id].domain,r=e._size,n=this.div.style;n.width=r.w*(t.x[1]-t.x[0])+"px",n.height=r.h*(t.y[1]-t.y[0])+"px",n.left=r.l+t.x[0]*r.w+"px",n.top=r.t+(1-t.y[1])*r.h+"px",this.xaxis._offset=r.l+t.x[0]*r.w,this.xaxis._length=r.w*(t.x[1]-t.x[0]),this.yaxis._offset=r.t+(1-t.y[1])*r.h,this.yaxis._length=r.h*(t.y[1]-t.y[0])};Sh.updateLayers=function(e){var t=e[this.id],r=t.layers,n=this.layerList,i;if(r.length!==n.length){for(i=0;i{"use strict";var yJ=Mr(),xjt=k_(),bjt=Zd(),JHe=Fk();$He.exports=function(t,r,n){xjt(t,r,n,{type:"map",attributes:JHe,handleDefaults:wjt,partition:"y"})};function wjt(e,t,r){r("style"),r("center.lon"),r("center.lat"),r("zoom"),r("bearing"),r("pitch");var n=r("bounds.west"),i=r("bounds.east"),a=r("bounds.south"),o=r("bounds.north");(n===void 0||i===void 0||a===void 0||o===void 0)&&delete t.bounds,bjt(e,t,{name:"layers",handleItemDefaults:Tjt}),t._input=e}function Tjt(e,t){function r(l,u){return yJ.coerce(e,t,JHe.layers,l,u)}var n=r("visible");if(n){var i=r("sourcetype"),a=i==="raster"||i==="image";r("source"),r("sourceattribution"),i==="vector"&&r("sourcelayer"),i==="image"&&r("coordinates");var o;a&&(o="raster");var s=r("type",o);a&&s!=="raster"&&(s=t.type="raster",yJ.log("Source types *raster* and *image* must drawn *raster* layer type.")),r("below"),r("color"),r("opacity"),r("minzoom"),r("maxzoom"),s==="circle"&&r("circle.radius"),s==="line"&&(r("line.width"),r("line.dash")),s==="fill"&&r("fill.outlinecolor"),s==="symbol"&&(r("symbol.icon"),r("symbol.iconsize"),r("symbol.text"),yJ.coerceFont(r,"symbol.textfont",void 0,{noFontVariant:!0,noFontShadow:!0,noFontLineposition:!0,noFontTextcase:!0}),r("symbol.textposition"),r("symbol.placement"))}}});var o7=ye(l0=>{"use strict";var a7=Mr(),eGe=a7.strTranslate,Ajt=a7.strScale,Sjt=kd().getSubplotCalcData,Mjt=Zp(),Ejt=xa(),tGe=ao(),kjt=Ll(),Cjt=KHe(),wx="map";l0.name=wx;l0.attr="subplot";l0.idRoot=wx;l0.idRegex=l0.attrRegex=a7.counterRegex(wx);l0.attributes={subplot:{valType:"subplotid",dflt:"map",editType:"calc"}};l0.layoutAttributes=Fk();l0.supplyLayoutDefaults=QHe();l0.plot=function(t){for(var r=t._fullLayout,n=t.calcdata,i=r._subplots[wx],a=0;ax/2){var b=f.split("|").join("
");d.text(b).attr("data-unformatted",b).call(kjt.convertToTspans,e),v=tGe.bBox(d.node())}d.attr("transform",eGe(-3,-v.height+8)),h.insert("rect",".static-attribution").attr({x:-v.width-6,y:-v.height-3,width:v.width+6,height:v.height+3,fill:"rgba(255, 255, 255, 0.75)"});var g=1;v.width+6>x&&(g=x/(v.width+6));var E=[n.l+n.w*o.x[1],n.t+n.h*(1-o.y[0])];h.attr("transform",eGe(E[0],E[1])+Ajt(g))}};l0.updateFx=function(e){for(var t=e._fullLayout,r=t._subplots[wx],n=0;n{"use strict";rGe.exports={attributes:JF(),supplyDefaults:pHe(),colorbar:Kd(),formatLabels:lJ(),calc:lz(),plot:CHe(),hoverPoints:r7().hoverPoints,eventData:RHe(),selectPoints:zHe(),styleOnSelect:function(e,t){if(t){var r=t[0].trace;r._glTrace.update(t)}},moduleType:"trace",name:"scattermap",basePlotModule:o7(),categories:["map","gl","symbols","showLegend","scatter-like"],meta:{}}});var aGe=ye((O1r,nGe)=>{"use strict";nGe.exports=iGe()});var _J=ye((B1r,oGe)=>{"use strict";var d1=J5(),Ljt=Kl(),Pjt=Wo().hovertemplateAttrs,Ijt=vl(),Tx=no().extendFlat;oGe.exports=Tx({locations:{valType:"data_array",editType:"calc"},z:{valType:"data_array",editType:"calc"},geojson:{valType:"any",editType:"calc"},featureidkey:Tx({},d1.featureidkey,{}),below:{valType:"string",editType:"plot"},text:d1.text,hovertext:d1.hovertext,marker:{line:{color:Tx({},d1.marker.line.color,{editType:"plot"}),width:Tx({},d1.marker.line.width,{editType:"plot"}),editType:"calc"},opacity:Tx({},d1.marker.opacity,{editType:"plot"}),editType:"calc"},selected:{marker:{opacity:Tx({},d1.selected.marker.opacity,{editType:"plot"}),editType:"plot"},editType:"plot"},unselected:{marker:{opacity:Tx({},d1.unselected.marker.opacity,{editType:"plot"}),editType:"plot"},editType:"plot"},hoverinfo:d1.hoverinfo,hovertemplate:Pjt({},{keys:["properties"]}),showlegend:Tx({},Ijt.showlegend,{dflt:!1})},Ljt("",{cLetter:"z",editTypeOverride:"calc"}))});var lGe=ye((N1r,sGe)=>{"use strict";var Nk=Mr(),Rjt=Uh(),Djt=_J();sGe.exports=function(t,r,n,i){function a(c,f){return Nk.coerce(t,r,Djt,c,f)}var o=a("locations"),s=a("z"),l=a("geojson");if(!Nk.isArrayOrTypedArray(o)||!o.length||!Nk.isArrayOrTypedArray(s)||!s.length||!(typeof l=="string"&&l!==""||Nk.isPlainObject(l))){r.visible=!1;return}a("featureidkey"),r._length=Math.min(o.length,s.length),a("below"),a("text"),a("hovertext"),a("hovertemplate");var u=a("marker.line.width");u&&a("marker.line.color"),a("marker.opacity"),Rjt(t,r,i,a,{prefix:"",cLetter:"z"}),Nk.coerceSelectionMarkerOpacity(r,a)}});var xJ=ye((U1r,fGe)=>{"use strict";var zjt=uo(),v1=Mr(),Fjt=Mu(),qjt=ao(),Ojt=tx().makeBlank,uGe=ix();function Bjt(e){var t=e[0].trace,r=t.visible===!0&&t._length!==0,n={layout:{visibility:"none"},paint:{}},i={layout:{visibility:"none"},paint:{}},a=t._opts={fill:n,line:i,geojson:Ojt()};if(!r)return a;var o=uGe.extractTraceFeature(e);if(!o)return a;var s=Fjt.makeColorScaleFuncFromTrace(t),l=t.marker,u=l.line||{},c;v1.isArrayOrTypedArray(l.opacity)&&(c=function(E){var k=E.mo;return zjt(k)?+v1.constrain(k,0,1):0});var f;v1.isArrayOrTypedArray(u.color)&&(f=function(E){return E.mlc});var h;v1.isArrayOrTypedArray(u.width)&&(h=function(E){return E.mlw});for(var d=0;d{"use strict";var dGe=xJ().convert,Njt=xJ().convertOnSelect,hGe=bx().traceLayerPrefix;function vGe(e,t){this.type="choroplethmap",this.subplot=e,this.uid=t,this.sourceId="source-"+t,this.layerList=[["fill",hGe+t+"-fill"],["line",hGe+t+"-line"]],this.below=null}var EA=vGe.prototype;EA.update=function(e){this._update(dGe(e)),e[0].trace._glTrace=this};EA.updateOnSelect=function(e){this._update(Njt(e))};EA._update=function(e){var t=this.subplot,r=this.layerList,n=t.belowLookup["trace-"+this.uid];t.map.getSource(this.sourceId).setData(e.geojson),n!==this.below&&(this._removeLayers(),this._addLayers(e,n),this.below=n);for(var i=0;i=0;r--)e.removeLayer(t[r][1])};EA.dispose=function(){var e=this.subplot.map;this._removeLayers(),e.removeSource(this.sourceId)};pGe.exports=function(t,r){var n=r[0].trace,i=new vGe(t,n.uid),a=i.sourceId,o=dGe(r),s=i.below=t.belowLookup["trace-"+n.uid];return t.map.addSource(a,{type:"geojson",data:o.geojson}),i._addLayers(o,s),r[0].trace._glTrace=i,i}});var yGe=ye((H1r,mGe)=>{"use strict";mGe.exports={attributes:_J(),supplyDefaults:lGe(),colorbar:S_(),calc:Lz(),plot:gGe(),hoverPoints:Iz(),eventData:Rz(),selectPoints:Dz(),styleOnSelect:function(e,t){if(t){var r=t[0].trace;r._glTrace.updateOnSelect(t)}},getBelow:function(e,t){for(var r=t.getMapLayers(),n=r.length-2;n>=0;n--){var i=r[n].id;if(typeof i=="string"&&i.indexOf("water")===0){for(var a=n+1;a{"use strict";_Ge.exports=yGe()});var wJ=ye((j1r,wGe)=>{"use strict";var Ujt=Kl(),Vjt=Wo().hovertemplateAttrs,bGe=vl(),s7=JF(),bJ=no().extendFlat;wGe.exports=bJ({lon:s7.lon,lat:s7.lat,z:{valType:"data_array",editType:"calc"},radius:{valType:"number",editType:"plot",arrayOk:!0,min:1,dflt:30},below:{valType:"string",editType:"plot"},text:s7.text,hovertext:s7.hovertext,hoverinfo:bJ({},bGe.hoverinfo,{flags:["lon","lat","z","text","name"]}),hovertemplate:Vjt(),showlegend:bJ({},bGe.showlegend,{dflt:!1})},Ujt("",{cLetter:"z",editTypeOverride:"calc"}))});var AGe=ye((W1r,TGe)=>{"use strict";var Hjt=Mr(),Gjt=Uh(),jjt=wJ();TGe.exports=function(t,r,n,i){function a(u,c){return Hjt.coerce(t,r,jjt,u,c)}var o=a("lon")||[],s=a("lat")||[],l=Math.min(o.length,s.length);if(!l){r.visible=!1;return}r._length=l,a("z"),a("radius"),a("below"),a("text"),a("hovertext"),a("hovertemplate"),Gjt(t,r,i,a,{prefix:"",cLetter:"z"})}});var EGe=ye((Z1r,MGe)=>{"use strict";var TJ=uo(),Wjt=Mr().isArrayOrTypedArray,AJ=es().BADNUM,Zjt=zv(),SGe=Mr()._;MGe.exports=function(t,r){for(var n=r._length,i=new Array(n),a=r.z,o=Wjt(a)&&a.length,s=0;s{"use strict";var Xjt=uo(),SJ=Mr(),kGe=va(),CGe=Mu(),LGe=es().BADNUM,Yjt=tx().makeBlank;PGe.exports=function(t){var r=t[0].trace,n=r.visible===!0&&r._length!==0,i={layout:{visibility:"none"},paint:{}},a=r._opts={heatmap:i,geojson:Yjt()};if(!n)return a;var o=[],s,l=r.z,u=r.radius,c=SJ.isArrayOrTypedArray(l)&&l.length,f=SJ.isArrayOrTypedArray(u);for(s=0;s0?+u[s]:0),o.push({type:"Feature",geometry:{type:"Point",coordinates:d},properties:v})}}var b=CGe.extractOpts(r),g=b.reversescale?CGe.flipScale(b.colorscale):b.colorscale,E=g[0][1],k=kGe.opacity(E)<1?E:kGe.addOpacity(E,0),A=["interpolate",["linear"],["heatmap-density"],0,k];for(s=1;s{"use strict";var RGe=IGe(),Kjt=bx().traceLayerPrefix;function DGe(e,t){this.type="densitymap",this.subplot=e,this.uid=t,this.sourceId="source-"+t,this.layerList=[["heatmap",Kjt+t+"-heatmap"]],this.below=null}var l7=DGe.prototype;l7.update=function(e){var t=this.subplot,r=this.layerList,n=RGe(e),i=t.belowLookup["trace-"+this.uid];t.map.getSource(this.sourceId).setData(n.geojson),i!==this.below&&(this._removeLayers(),this._addLayers(n,i),this.below=i);for(var a=0;a=0;r--)e.removeLayer(t[r][1])};l7.dispose=function(){var e=this.subplot.map;this._removeLayers(),e.removeSource(this.sourceId)};zGe.exports=function(t,r){var n=r[0].trace,i=new DGe(t,n.uid),a=i.sourceId,o=RGe(r),s=i.below=t.belowLookup["trace-"+n.uid];return t.map.addSource(a,{type:"geojson",data:o.geojson}),i._addLayers(o,s),i}});var OGe=ye((K1r,qGe)=>{"use strict";var Jjt=Qa(),$jt=r7().hoverPoints,Qjt=r7().getExtraText;qGe.exports=function(t,r,n){var i=$jt(t,r,n);if(i){var a=i[0],o=a.cd,s=o[0].trace,l=o[a.index];if(delete a.color,"z"in l){var u=a.subplot.mockAxis;a.z=l.z,a.zLabel=Jjt.tickText(u,u.c2l(l.z),"hover").text}return a.extraText=Qjt(s,l,o[0].t.labels),[a]}}});var NGe=ye((J1r,BGe)=>{"use strict";BGe.exports=function(t,r){return t.lon=r.lon,t.lat=r.lat,t.z=r.z,t}});var VGe=ye(($1r,UGe)=>{"use strict";UGe.exports={attributes:wJ(),supplyDefaults:AGe(),colorbar:S_(),formatLabels:lJ(),calc:EGe(),plot:FGe(),hoverPoints:OGe(),eventData:NGe(),getBelow:function(e,t){for(var r=t.getMapLayers(),n=0;n{"use strict";HGe.exports=VGe()});var EJ=ye((t_r,XGe)=>{"use strict";var eWt=Su(),tWt=vl(),jGe=dh(),MJ=i3(),rWt=Ju().attributes,WGe=Wo().hovertemplateAttrs,iWt=Kl(),nWt=Vs().templatedArray,aWt=Oc().descriptionOnlyNumbers,ZGe=no().extendFlat,oWt=Bu().overrideAll,e_r=XGe.exports=oWt({hoverinfo:ZGe({},tWt.hoverinfo,{flags:[],arrayOk:!1}),hoverlabel:MJ.hoverlabel,domain:rWt({name:"sankey",trace:!0}),orientation:{valType:"enumerated",values:["v","h"],dflt:"h"},valueformat:{valType:"string",dflt:".3s",description:aWt("value")},valuesuffix:{valType:"string",dflt:""},arrangement:{valType:"enumerated",values:["snap","perpendicular","freeform","fixed"],dflt:"snap"},textfont:eWt({autoShadowDflt:!0}),customdata:void 0,node:{label:{valType:"data_array",dflt:[]},groups:{valType:"info_array",impliedEdits:{x:[],y:[]},dimensions:2,freeLength:!0,dflt:[],items:{valType:"number",editType:"calc"}},x:{valType:"data_array",dflt:[]},y:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:jGe.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:.5,arrayOk:!0}},pad:{valType:"number",arrayOk:!1,min:0,dflt:20},thickness:{valType:"number",arrayOk:!1,min:1,dflt:20},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:MJ.hoverlabel,hovertemplate:WGe({},{keys:["value","label"]}),align:{valType:"enumerated",values:["justify","left","right","center"],dflt:"justify"}},link:{arrowlen:{valType:"number",min:0,dflt:0},label:{valType:"data_array",dflt:[]},color:{valType:"color",arrayOk:!0},hovercolor:{valType:"color",arrayOk:!0},customdata:{valType:"data_array",editType:"calc"},line:{color:{valType:"color",dflt:jGe.defaultLine,arrayOk:!0},width:{valType:"number",min:0,dflt:0,arrayOk:!0}},source:{valType:"data_array",dflt:[]},target:{valType:"data_array",dflt:[]},value:{valType:"data_array",dflt:[]},hoverinfo:{valType:"enumerated",values:["all","none","skip"],dflt:"all"},hoverlabel:MJ.hoverlabel,hovertemplate:WGe({},{keys:["value","label"]}),colorscales:nWt("concentrationscales",{editType:"calc",label:{valType:"string",editType:"calc",dflt:""},cmax:{valType:"number",editType:"calc",dflt:1},cmin:{valType:"number",editType:"calc",dflt:0},colorscale:ZGe(iWt().colorscale,{dflt:[[0,"white"],[1,"black"]]})})}},"calc","nested")});var QGe=ye((r_r,$Ge)=>{"use strict";var kA=Mr(),u7=EJ(),sWt=va(),YGe=id(),lWt=Ju().defaults,KGe=oM(),JGe=Vs(),uWt=Zd();$Ge.exports=function(t,r,n,i){function a(A,L){return kA.coerce(t,r,u7,A,L)}var o=kA.extendDeep(i.hoverlabel,t.hoverlabel),s=t.node,l=JGe.newContainer(r,"node");function u(A,L){return kA.coerce(s,l,u7.node,A,L)}u("label"),u("groups"),u("x"),u("y"),u("pad"),u("thickness"),u("line.color"),u("line.width"),u("hoverinfo",t.hoverinfo),KGe(s,l,u,o),u("hovertemplate"),u("align");var c=i.colorway,f=function(A){return c[A%c.length]};u("color",l.label.map(function(A,L){return sWt.addOpacity(f(L),.8)})),u("customdata");var h=t.link||{},d=JGe.newContainer(r,"link");function v(A,L){return kA.coerce(h,d,u7.link,A,L)}v("label"),v("arrowlen"),v("source"),v("target"),v("value"),v("line.color"),v("line.width"),v("hoverinfo",t.hoverinfo),KGe(h,d,v,o),v("hovertemplate");var x=YGe(i.paper_bgcolor).getLuminance()<.333,b=x?"rgba(255, 255, 255, 0.6)":"rgba(0, 0, 0, 0.2)",g=v("color",b);function E(A){var L=YGe(A);if(!L.isValid())return A;var _=L.getAlpha();return _<=.8?L.setAlpha(_+.2):L=x?L.brighten():L.darken(),L.toRgbString()}v("hovercolor",Array.isArray(g)?g.map(E):E(g)),v("customdata"),uWt(h,d,{name:"colorscales",handleItemDefaults:cWt}),lWt(r,i,a),a("orientation"),a("valueformat"),a("valuesuffix");var k;l.x.length&&l.y.length&&(k="freeform"),a("arrangement",k),kA.coerceFont(a,"textfont",i.font,{autoShadowDflt:!0}),r._length=null};function cWt(e,t){function r(n,i){return kA.coerce(e,t,u7.link.colorscales,n,i)}r("label"),r("cmin"),r("cmax"),r("colorscale")}});var kJ=ye((i_r,eje)=>{"use strict";eje.exports=fWt;function fWt(e){for(var t=e.length,r=new Array(t),n=new Array(t),i=new Array(t),a=new Array(t),o=new Array(t),s=new Array(t),l=0;l0;){b=E[E.length-1];var k=e[b];if(a[b]=0&&s[b].push(o[L])}a[b]=A}else{if(n[b]===r[b]){for(var _=[],C=[],M=0,A=g.length-1;A>=0;--A){var p=g[A];if(i[p]=!1,_.push(p),C.push(s[p]),M+=s[p].length,o[p]=c.length,p===b){g.length=A;break}}c.push(_);for(var P=new Array(M),A=0;A{"use strict";var hWt=kJ(),CA=Mr(),dWt=Km().wrap,Uk=CA.isArrayOrTypedArray,tje=CA.isIndex,rje=Mu();function vWt(e){var t=e.node,r=e.link,n=[],i=Uk(r.color),a=Uk(r.hovercolor),o=Uk(r.customdata),s={},l={},u=r.colorscales.length,c;for(c=0;cv&&(v=r.source[c]),r.target[c]>v&&(v=r.target[c]);var x=v+1;e.node._count=x;var b,g=e.node.groups,E={};for(c=0;c0&&tje(M,x)&&tje(p,x)&&!(E.hasOwnProperty(M)&&E.hasOwnProperty(p)&&E[M]===E[p])){E.hasOwnProperty(p)&&(p=E[p]),E.hasOwnProperty(M)&&(M=E[M]),M=+M,p=+p,s[M]=s[p]=!0;var P="";r.label&&r.label[c]&&(P=r.label[c]);var T=null;P&&l.hasOwnProperty(P)&&(T=l[P]),n.push({pointNumber:c,label:P,color:i?r.color[c]:r.color,hovercolor:a?r.hovercolor[c]:r.hovercolor,customdata:o?r.customdata[c]:r.customdata,concentrationscale:T,source:M,target:p,value:+C}),_.source.push(M),_.target.push(p)}}var F=x+g.length,q=Uk(t.color),V=Uk(t.customdata),H=[];for(c=0;cx-1,childrenNodes:[],pointNumber:c,label:X,color:q?t.color[c]:t.color,customdata:V?t.customdata[c]:t.customdata})}var G=!1;return pWt(F,_.source,_.target)&&(G=!0),{circular:G,links:n,nodes:H,groups:g,groupLookup:E}}function pWt(e,t,r){for(var n=CA.init2dArray(e,0),i=0;i1})}ije.exports=function(t,r){var n=vWt(r);return dWt({circular:n.circular,_nodes:n.nodes,_links:n.links,_groups:n.groups,_groupLookup:n.groupLookup})}});var oje=ye((c7,aje)=>{(function(e,t){typeof c7=="object"&&typeof aje!="undefined"?t(c7):typeof define=="function"&&define.amd?define(["exports"],t):(e=e||self,t(e.d3=e.d3||{}))})(c7,function(e){"use strict";function t(C){var M=+this._x.call(null,C),p=+this._y.call(null,C);return r(this.cover(M,p),M,p,C)}function r(C,M,p,P){if(isNaN(M)||isNaN(p))return C;var T,F=C._root,q={data:P},V=C._x0,H=C._y0,X=C._x1,G=C._y1,N,W,re,ae,_e,Me,ke,ge;if(!F)return C._root=q,C;for(;F.length;)if((_e=M>=(N=(V+X)/2))?V=N:X=N,(Me=p>=(W=(H+G)/2))?H=W:G=W,T=F,!(F=F[ke=Me<<1|_e]))return T[ke]=q,C;if(re=+C._x.call(null,F.data),ae=+C._y.call(null,F.data),M===re&&p===ae)return q.next=F,T?T[ke]=q:C._root=q,C;do T=T?T[ke]=new Array(4):C._root=new Array(4),(_e=M>=(N=(V+X)/2))?V=N:X=N,(Me=p>=(W=(H+G)/2))?H=W:G=W;while((ke=Me<<1|_e)===(ge=(ae>=W)<<1|re>=N));return T[ge]=F,T[ke]=q,C}function n(C){var M,p,P=C.length,T,F,q=new Array(P),V=new Array(P),H=1/0,X=1/0,G=-1/0,N=-1/0;for(p=0;pG&&(G=T),FN&&(N=F));if(H>G||X>N)return this;for(this.cover(H,X).cover(G,N),p=0;pC||C>=T||P>M||M>=F;)switch(X=(MG||(V=ae.y0)>N||(H=ae.x1)=ke)<<1|C>=Me)&&(ae=W[W.length-1],W[W.length-1]=W[W.length-1-_e],W[W.length-1-_e]=ae)}else{var ge=C-+this._x.call(null,re.data),ie=M-+this._y.call(null,re.data),Te=ge*ge+ie*ie;if(Te=(W=(q+H)/2))?q=W:H=W,(_e=N>=(re=(V+X)/2))?V=re:X=re,M=p,!(p=p[Me=_e<<1|ae]))return this;if(!p.length)break;(M[Me+1&3]||M[Me+2&3]||M[Me+3&3])&&(P=M,ke=Me)}for(;p.data!==C;)if(T=p,!(p=p.next))return this;return(F=p.next)&&delete p.next,T?(F?T.next=F:delete T.next,this):M?(F?M[Me]=F:delete M[Me],(p=M[0]||M[1]||M[2]||M[3])&&p===(M[3]||M[2]||M[1]||M[0])&&!p.length&&(P?P[ke]=p:this._root=p),this):(this._root=F,this)}function c(C){for(var M=0,p=C.length;M{(function(e,t){typeof f7=="object"&&typeof sje!="undefined"?t(f7):typeof define=="function"&&define.amd?define(["exports"],t):t(e.d3=e.d3||{})})(f7,function(e){"use strict";var t="$";function r(){}r.prototype=n.prototype={constructor:r,has:function(x){return t+x in this},get:function(x){return this[t+x]},set:function(x,b){return this[t+x]=b,this},remove:function(x){var b=t+x;return b in this&&delete this[b]},clear:function(){for(var x in this)x[0]===t&&delete this[x]},keys:function(){var x=[];for(var b in this)b[0]===t&&x.push(b.slice(1));return x},values:function(){var x=[];for(var b in this)b[0]===t&&x.push(this[b]);return x},entries:function(){var x=[];for(var b in this)b[0]===t&&x.push({key:b.slice(1),value:this[b]});return x},size:function(){var x=0;for(var b in this)b[0]===t&&++x;return x},empty:function(){for(var x in this)if(x[0]===t)return!1;return!0},each:function(x){for(var b in this)b[0]===t&&x(this[b],b.slice(1),this)}};function n(x,b){var g=new r;if(x instanceof r)x.each(function(_,C){g.set(C,_)});else if(Array.isArray(x)){var E=-1,k=x.length,A;if(b==null)for(;++E=x.length)return g!=null&&_.sort(g),E!=null?E(_):_;for(var P=-1,T=_.length,F=x[C++],q,V,H=n(),X,G=M();++Px.length)return _;var M,p=b[C-1];return E!=null&&C>=x.length?M=_.entries():(M=[],_.each(function(P,T){M.push({key:T,values:L(P,C)})})),p!=null?M.sort(function(P,T){return p(P.key,T.key)}):M}return k={object:function(_){return A(_,0,a,o)},map:function(_){return A(_,0,s,l)},entries:function(_){return L(A(_,0,s,l),0)},key:function(_){return x.push(_),k},sortKeys:function(_){return b[x.length-1]=_,k},sortValues:function(_){return g=_,k},rollup:function(_){return E=_,k}}}function a(){return{}}function o(x,b,g){x[b]=g}function s(){return n()}function l(x,b,g){x.set(b,g)}function u(){}var c=n.prototype;u.prototype=f.prototype={constructor:u,has:c.has,add:function(x){return x+="",this[t+x]=x,this},remove:c.remove,clear:c.clear,values:c.keys,size:c.size,empty:c.empty,each:c.each};function f(x,b){var g=new u;if(x instanceof u)x.each(function(A){g.add(A)});else if(x){var E=-1,k=x.length;if(b==null)for(;++E{(function(e,t){typeof d7=="object"&&typeof lje!="undefined"?t(d7):typeof define=="function"&&define.amd?define(["exports"],t):(e=e||self,t(e.d3=e.d3||{}))})(d7,function(e){"use strict";var t={value:function(){}};function r(){for(var s=0,l=arguments.length,u={},c;s=0&&(c=u.slice(f+1),u=u.slice(0,f)),u&&!l.hasOwnProperty(u))throw new Error("unknown type: "+u);return{type:u,name:c}})}n.prototype=r.prototype={constructor:n,on:function(s,l){var u=this._,c=i(s+"",u),f,h=-1,d=c.length;if(arguments.length<2){for(;++h0)for(var u=new Array(f),c=0,f,h;c{(function(e,t){typeof v7=="object"&&typeof cje!="undefined"?t(v7):typeof define=="function"&&define.amd?define(["exports"],t):(e=e||self,t(e.d3=e.d3||{}))})(v7,function(e){"use strict";var t=0,r=0,n=0,i=1e3,a,o,s=0,l=0,u=0,c=typeof performance=="object"&&performance.now?performance:Date,f=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(C){setTimeout(C,17)};function h(){return l||(f(d),l=c.now()+u)}function d(){l=0}function v(){this._call=this._time=this._next=null}v.prototype=x.prototype={constructor:v,restart:function(C,M,p){if(typeof C!="function")throw new TypeError("callback is not a function");p=(p==null?h():+p)+(M==null?0:+M),!this._next&&o!==this&&(o?o._next=this:a=this,o=this),this._call=C,this._time=p,A()},stop:function(){this._call&&(this._call=null,this._time=1/0,A())}};function x(C,M,p){var P=new v;return P.restart(C,M,p),P}function b(){h(),++t;for(var C=a,M;C;)(M=l-C._time)>=0&&C._call.call(null,M),C=C._next;--t}function g(){l=(s=c.now())+u,t=r=0;try{b()}finally{t=0,k(),l=0}}function E(){var C=c.now(),M=C-s;M>i&&(u-=M,s=C)}function k(){for(var C,M=a,p,P=1/0;M;)M._call?(P>M._time&&(P=M._time),C=M,M=M._next):(p=M._next,M._next=null,M=C?C._next=p:a=p);o=C,A(P)}function A(C){if(!t){r&&(r=clearTimeout(r));var M=C-l;M>24?(C<1/0&&(r=setTimeout(g,C-c.now()-u)),n&&(n=clearInterval(n))):(n||(s=c.now(),n=setInterval(E,i)),t=1,f(g))}}function L(C,M,p){var P=new v;return M=M==null?0:+M,P.restart(function(T){P.stop(),C(T+M)},M,p),P}function _(C,M,p){var P=new v,T=M;return M==null?(P.restart(C,M,p),P):(M=+M,p=p==null?h():+p,P.restart(function F(q){q+=T,P.restart(F,T+=M,p),C(q)},M,p),P)}e.interval=_,e.now=h,e.timeout=L,e.timer=x,e.timerFlush=b,Object.defineProperty(e,"__esModule",{value:!0})})});var dje=ye((p7,hje)=>{(function(e,t){typeof p7=="object"&&typeof hje!="undefined"?t(p7,oje(),h7(),uje(),fje()):typeof define=="function"&&define.amd?define(["exports","d3-quadtree","d3-collection","d3-dispatch","d3-timer"],t):t(e.d3=e.d3||{},e.d3,e.d3,e.d3,e.d3)})(p7,function(e,t,r,n,i){"use strict";function a(C,M){var p;C==null&&(C=0),M==null&&(M=0);function P(){var T,F=p.length,q,V=0,H=0;for(T=0;TN.index){var Re=W-ze.x-ze.vx,ce=re-ze.y-ze.vy,Ge=Re*Re+ce*ce;GeW+me||Eere+me||AeH.r&&(H.r=H[X].r)}function V(){if(M){var H,X=M.length,G;for(p=new Array(X),H=0;H1?(_e==null?V.remove(ae):V.set(ae,re(_e)),M):V.get(ae)},find:function(ae,_e,Me){var ke=0,ge=C.length,ie,Te,Ee,Ae,ze;for(Me==null?Me=1/0:Me*=Me,ke=0;ke1?(X.on(ae,_e),M):X.on(ae)}}}function k(){var C,M,p,P=o(-30),T,F=1,q=1/0,V=.81;function H(W){var re,ae=C.length,_e=t.quadtree(C,v,x).visitAfter(G);for(p=W,re=0;re=q)return;(W.data!==M||W.next)&&(Me===0&&(Me=s(),ie+=Me*Me),ke===0&&(ke=s(),ie+=ke*ke),ie{(function(e,t){typeof g7=="object"&&typeof vje!="undefined"?t(g7):typeof define=="function"&&define.amd?define(["exports"],t):(e=e||self,t(e.d3=e.d3||{}))})(g7,function(e){"use strict";var t=Math.PI,r=2*t,n=1e-6,i=r-n;function a(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function o(){return new a}a.prototype=o.prototype={constructor:a,moveTo:function(s,l){this._+="M"+(this._x0=this._x1=+s)+","+(this._y0=this._y1=+l)},closePath:function(){this._x1!==null&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(s,l){this._+="L"+(this._x1=+s)+","+(this._y1=+l)},quadraticCurveTo:function(s,l,u,c){this._+="Q"+ +s+","+ +l+","+(this._x1=+u)+","+(this._y1=+c)},bezierCurveTo:function(s,l,u,c,f,h){this._+="C"+ +s+","+ +l+","+ +u+","+ +c+","+(this._x1=+f)+","+(this._y1=+h)},arcTo:function(s,l,u,c,f){s=+s,l=+l,u=+u,c=+c,f=+f;var h=this._x1,d=this._y1,v=u-s,x=c-l,b=h-s,g=d-l,E=b*b+g*g;if(f<0)throw new Error("negative radius: "+f);if(this._x1===null)this._+="M"+(this._x1=s)+","+(this._y1=l);else if(E>n)if(!(Math.abs(g*v-x*b)>n)||!f)this._+="L"+(this._x1=s)+","+(this._y1=l);else{var k=u-h,A=c-d,L=v*v+x*x,_=k*k+A*A,C=Math.sqrt(L),M=Math.sqrt(E),p=f*Math.tan((t-Math.acos((L+E-_)/(2*C*M)))/2),P=p/M,T=p/C;Math.abs(P-1)>n&&(this._+="L"+(s+P*b)+","+(l+P*g)),this._+="A"+f+","+f+",0,0,"+ +(g*k>b*A)+","+(this._x1=s+T*v)+","+(this._y1=l+T*x)}},arc:function(s,l,u,c,f,h){s=+s,l=+l,u=+u,h=!!h;var d=u*Math.cos(c),v=u*Math.sin(c),x=s+d,b=l+v,g=1^h,E=h?c-f:f-c;if(u<0)throw new Error("negative radius: "+u);this._x1===null?this._+="M"+x+","+b:(Math.abs(this._x1-x)>n||Math.abs(this._y1-b)>n)&&(this._+="L"+x+","+b),u&&(E<0&&(E=E%r+r),E>i?this._+="A"+u+","+u+",0,1,"+g+","+(s-d)+","+(l-v)+"A"+u+","+u+",0,1,"+g+","+(this._x1=x)+","+(this._y1=b):E>n&&(this._+="A"+u+","+u+",0,"+ +(E>=t)+","+g+","+(this._x1=s+u*Math.cos(f))+","+(this._y1=l+u*Math.sin(f))))},rect:function(s,l,u,c){this._+="M"+(this._x0=this._x1=+s)+","+(this._y0=this._y1=+l)+"h"+ +u+"v"+ +c+"h"+-u+"Z"},toString:function(){return this._}},e.path=o,Object.defineProperty(e,"__esModule",{value:!0})})});var CJ=ye((m7,gje)=>{(function(e,t){typeof m7=="object"&&typeof gje!="undefined"?t(m7,pje()):typeof define=="function"&&define.amd?define(["exports","d3-path"],t):(e=e||self,t(e.d3=e.d3||{},e.d3))})(m7,function(e,t){"use strict";function r(_t){return function(){return _t}}var n=Math.abs,i=Math.atan2,a=Math.cos,o=Math.max,s=Math.min,l=Math.sin,u=Math.sqrt,c=1e-12,f=Math.PI,h=f/2,d=2*f;function v(_t){return _t>1?0:_t<-1?f:Math.acos(_t)}function x(_t){return _t>=1?h:_t<=-1?-h:Math.asin(_t)}function b(_t){return _t.innerRadius}function g(_t){return _t.outerRadius}function E(_t){return _t.startAngle}function k(_t){return _t.endAngle}function A(_t){return _t&&_t.padAngle}function L(_t,br,Hr,ti,zi,Yi,an,hi){var Ji=Hr-_t,ua=ti-br,Fn=an-zi,Sa=hi-Yi,go=Sa*Ji-Fn*ua;if(!(go*go$l*$l+Hu*Hu&&(Cs=Ys,ml=Hs),{cx:Cs,cy:ml,x01:-Fn,y01:-Sa,x11:Cs*(zi/wl-1),y11:ml*(zi/wl-1)}}function C(){var _t=b,br=g,Hr=r(0),ti=null,zi=E,Yi=k,an=A,hi=null;function Ji(){var ua,Fn,Sa=+_t.apply(this,arguments),go=+br.apply(this,arguments),Oo=zi.apply(this,arguments)-h,ho=Yi.apply(this,arguments)-h,Mo=n(ho-Oo),xo=ho>Oo;if(hi||(hi=ua=t.path()),goc))hi.moveTo(0,0);else if(Mo>d-c)hi.moveTo(go*a(Oo),go*l(Oo)),hi.arc(0,0,go,Oo,ho,!xo),Sa>c&&(hi.moveTo(Sa*a(ho),Sa*l(ho)),hi.arc(0,0,Sa,ho,Oo,xo));else{var zs=Oo,ks=ho,Zs=Oo,Xs=ho,wl=Mo,os=Mo,cl=an.apply(this,arguments)/2,Cs=cl>c&&(ti?+ti.apply(this,arguments):u(Sa*Sa+go*go)),ml=s(n(go-Sa)/2,+Hr.apply(this,arguments)),Ys=ml,Hs=ml,Eo,fs;if(Cs>c){var $l=x(Cs/Sa*l(cl)),Hu=x(Cs/go*l(cl));(wl-=$l*2)>c?($l*=xo?1:-1,Zs+=$l,Xs-=$l):(wl=0,Zs=Xs=(Oo+ho)/2),(os-=Hu*2)>c?(Hu*=xo?1:-1,zs+=Hu,ks-=Hu):(os=0,zs=ks=(Oo+ho)/2)}var fc=go*a(zs),ms=go*l(zs),on=Sa*a(Xs),fa=Sa*l(Xs);if(ml>c){var Qu=go*a(ks),Il=go*l(ks),vo=Sa*a(Zs),Wl=Sa*l(Zs),Ks;if(Moc?Hs>c?(Eo=_(vo,Wl,fc,ms,go,Hs,xo),fs=_(Qu,Il,on,fa,go,Hs,xo),hi.moveTo(Eo.cx+Eo.x01,Eo.cy+Eo.y01),Hsc)||!(wl>c)?hi.lineTo(on,fa):Ys>c?(Eo=_(on,fa,Qu,Il,Sa,-Ys,xo),fs=_(fc,ms,vo,Wl,Sa,-Ys,xo),hi.lineTo(Eo.cx+Eo.x01,Eo.cy+Eo.y01),Ys=go;--Oo)hi.point(ks[Oo],Zs[Oo]);hi.lineEnd(),hi.areaEnd()}xo&&(ks[Sa]=+_t(Mo,Sa,Fn),Zs[Sa]=+Hr(Mo,Sa,Fn),hi.point(br?+br(Mo,Sa,Fn):ks[Sa],ti?+ti(Mo,Sa,Fn):Zs[Sa]))}if(zs)return hi=null,zs+""||null}function ua(){return F().defined(zi).curve(an).context(Yi)}return Ji.x=function(Fn){return arguments.length?(_t=typeof Fn=="function"?Fn:r(+Fn),br=null,Ji):_t},Ji.x0=function(Fn){return arguments.length?(_t=typeof Fn=="function"?Fn:r(+Fn),Ji):_t},Ji.x1=function(Fn){return arguments.length?(br=Fn==null?null:typeof Fn=="function"?Fn:r(+Fn),Ji):br},Ji.y=function(Fn){return arguments.length?(Hr=typeof Fn=="function"?Fn:r(+Fn),ti=null,Ji):Hr},Ji.y0=function(Fn){return arguments.length?(Hr=typeof Fn=="function"?Fn:r(+Fn),Ji):Hr},Ji.y1=function(Fn){return arguments.length?(ti=Fn==null?null:typeof Fn=="function"?Fn:r(+Fn),Ji):ti},Ji.lineX0=Ji.lineY0=function(){return ua().x(_t).y(Hr)},Ji.lineY1=function(){return ua().x(_t).y(ti)},Ji.lineX1=function(){return ua().x(br).y(Hr)},Ji.defined=function(Fn){return arguments.length?(zi=typeof Fn=="function"?Fn:r(!!Fn),Ji):zi},Ji.curve=function(Fn){return arguments.length?(an=Fn,Yi!=null&&(hi=an(Yi)),Ji):an},Ji.context=function(Fn){return arguments.length?(Fn==null?Yi=hi=null:hi=an(Yi=Fn),Ji):Yi},Ji}function V(_t,br){return br<_t?-1:br>_t?1:br>=_t?0:NaN}function H(_t){return _t}function X(){var _t=H,br=V,Hr=null,ti=r(0),zi=r(d),Yi=r(0);function an(hi){var Ji,ua=hi.length,Fn,Sa,go=0,Oo=new Array(ua),ho=new Array(ua),Mo=+ti.apply(this,arguments),xo=Math.min(d,Math.max(-d,zi.apply(this,arguments)-Mo)),zs,ks=Math.min(Math.abs(xo)/ua,Yi.apply(this,arguments)),Zs=ks*(xo<0?-1:1),Xs;for(Ji=0;Ji0&&(go+=Xs);for(br!=null?Oo.sort(function(wl,os){return br(ho[wl],ho[os])}):Hr!=null&&Oo.sort(function(wl,os){return Hr(hi[wl],hi[os])}),Ji=0,Sa=go?(xo-ua*Zs)/go:0;Ji0?Xs*Sa:0)+Zs,ho[Fn]={data:hi[Fn],index:Ji,value:Xs,startAngle:Mo,endAngle:zs,padAngle:ks};return ho}return an.value=function(hi){return arguments.length?(_t=typeof hi=="function"?hi:r(+hi),an):_t},an.sortValues=function(hi){return arguments.length?(br=hi,Hr=null,an):br},an.sort=function(hi){return arguments.length?(Hr=hi,br=null,an):Hr},an.startAngle=function(hi){return arguments.length?(ti=typeof hi=="function"?hi:r(+hi),an):ti},an.endAngle=function(hi){return arguments.length?(zi=typeof hi=="function"?hi:r(+hi),an):zi},an.padAngle=function(hi){return arguments.length?(Yi=typeof hi=="function"?hi:r(+hi),an):Yi},an}var G=W(p);function N(_t){this._curve=_t}N.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(_t,br){this._curve.point(br*Math.sin(_t),br*-Math.cos(_t))}};function W(_t){function br(Hr){return new N(_t(Hr))}return br._curve=_t,br}function re(_t){var br=_t.curve;return _t.angle=_t.x,delete _t.x,_t.radius=_t.y,delete _t.y,_t.curve=function(Hr){return arguments.length?br(W(Hr)):br()._curve},_t}function ae(){return re(F().curve(G))}function _e(){var _t=q().curve(G),br=_t.curve,Hr=_t.lineX0,ti=_t.lineX1,zi=_t.lineY0,Yi=_t.lineY1;return _t.angle=_t.x,delete _t.x,_t.startAngle=_t.x0,delete _t.x0,_t.endAngle=_t.x1,delete _t.x1,_t.radius=_t.y,delete _t.y,_t.innerRadius=_t.y0,delete _t.y0,_t.outerRadius=_t.y1,delete _t.y1,_t.lineStartAngle=function(){return re(Hr())},delete _t.lineX0,_t.lineEndAngle=function(){return re(ti())},delete _t.lineX1,_t.lineInnerRadius=function(){return re(zi())},delete _t.lineY0,_t.lineOuterRadius=function(){return re(Yi())},delete _t.lineY1,_t.curve=function(an){return arguments.length?br(W(an)):br()._curve},_t}function Me(_t,br){return[(br=+br)*Math.cos(_t-=Math.PI/2),br*Math.sin(_t)]}var ke=Array.prototype.slice;function ge(_t){return _t.source}function ie(_t){return _t.target}function Te(_t){var br=ge,Hr=ie,ti=P,zi=T,Yi=null;function an(){var hi,Ji=ke.call(arguments),ua=br.apply(this,Ji),Fn=Hr.apply(this,Ji);if(Yi||(Yi=hi=t.path()),_t(Yi,+ti.apply(this,(Ji[0]=ua,Ji)),+zi.apply(this,Ji),+ti.apply(this,(Ji[0]=Fn,Ji)),+zi.apply(this,Ji)),hi)return Yi=null,hi+""||null}return an.source=function(hi){return arguments.length?(br=hi,an):br},an.target=function(hi){return arguments.length?(Hr=hi,an):Hr},an.x=function(hi){return arguments.length?(ti=typeof hi=="function"?hi:r(+hi),an):ti},an.y=function(hi){return arguments.length?(zi=typeof hi=="function"?hi:r(+hi),an):zi},an.context=function(hi){return arguments.length?(Yi=hi==null?null:hi,an):Yi},an}function Ee(_t,br,Hr,ti,zi){_t.moveTo(br,Hr),_t.bezierCurveTo(br=(br+ti)/2,Hr,br,zi,ti,zi)}function Ae(_t,br,Hr,ti,zi){_t.moveTo(br,Hr),_t.bezierCurveTo(br,Hr=(Hr+zi)/2,ti,Hr,ti,zi)}function ze(_t,br,Hr,ti,zi){var Yi=Me(br,Hr),an=Me(br,Hr=(Hr+zi)/2),hi=Me(ti,Hr),Ji=Me(ti,zi);_t.moveTo(Yi[0],Yi[1]),_t.bezierCurveTo(an[0],an[1],hi[0],hi[1],Ji[0],Ji[1])}function Ce(){return Te(Ee)}function me(){return Te(Ae)}function Re(){var _t=Te(ze);return _t.angle=_t.x,delete _t.x,_t.radius=_t.y,delete _t.y,_t}var ce={draw:function(_t,br){var Hr=Math.sqrt(br/f);_t.moveTo(Hr,0),_t.arc(0,0,Hr,0,d)}},Ge={draw:function(_t,br){var Hr=Math.sqrt(br/5)/2;_t.moveTo(-3*Hr,-Hr),_t.lineTo(-Hr,-Hr),_t.lineTo(-Hr,-3*Hr),_t.lineTo(Hr,-3*Hr),_t.lineTo(Hr,-Hr),_t.lineTo(3*Hr,-Hr),_t.lineTo(3*Hr,Hr),_t.lineTo(Hr,Hr),_t.lineTo(Hr,3*Hr),_t.lineTo(-Hr,3*Hr),_t.lineTo(-Hr,Hr),_t.lineTo(-3*Hr,Hr),_t.closePath()}},nt=Math.sqrt(1/3),ct=nt*2,qt={draw:function(_t,br){var Hr=Math.sqrt(br/ct),ti=Hr*nt;_t.moveTo(0,-Hr),_t.lineTo(ti,0),_t.lineTo(0,Hr),_t.lineTo(-ti,0),_t.closePath()}},rt=.8908130915292852,ot=Math.sin(f/10)/Math.sin(7*f/10),Rt=Math.sin(d/10)*ot,kt=-Math.cos(d/10)*ot,Ct={draw:function(_t,br){var Hr=Math.sqrt(br*rt),ti=Rt*Hr,zi=kt*Hr;_t.moveTo(0,-Hr),_t.lineTo(ti,zi);for(var Yi=1;Yi<5;++Yi){var an=d*Yi/5,hi=Math.cos(an),Ji=Math.sin(an);_t.lineTo(Ji*Hr,-hi*Hr),_t.lineTo(hi*ti-Ji*zi,Ji*ti+hi*zi)}_t.closePath()}},Yt={draw:function(_t,br){var Hr=Math.sqrt(br),ti=-Hr/2;_t.rect(ti,ti,Hr,Hr)}},xr=Math.sqrt(3),er={draw:function(_t,br){var Hr=-Math.sqrt(br/(xr*3));_t.moveTo(0,Hr*2),_t.lineTo(-xr*Hr,-Hr),_t.lineTo(xr*Hr,-Hr),_t.closePath()}},Ke=-.5,xt=Math.sqrt(3)/2,bt=1/Math.sqrt(12),Lt=(bt/2+1)*3,St={draw:function(_t,br){var Hr=Math.sqrt(br/Lt),ti=Hr/2,zi=Hr*bt,Yi=ti,an=Hr*bt+Hr,hi=-Yi,Ji=an;_t.moveTo(ti,zi),_t.lineTo(Yi,an),_t.lineTo(hi,Ji),_t.lineTo(Ke*ti-xt*zi,xt*ti+Ke*zi),_t.lineTo(Ke*Yi-xt*an,xt*Yi+Ke*an),_t.lineTo(Ke*hi-xt*Ji,xt*hi+Ke*Ji),_t.lineTo(Ke*ti+xt*zi,Ke*zi-xt*ti),_t.lineTo(Ke*Yi+xt*an,Ke*an-xt*Yi),_t.lineTo(Ke*hi+xt*Ji,Ke*Ji-xt*hi),_t.closePath()}},Et=[ce,Ge,qt,Yt,Ct,er,St];function dt(){var _t=r(ce),br=r(64),Hr=null;function ti(){var zi;if(Hr||(Hr=zi=t.path()),_t.apply(this,arguments).draw(Hr,+br.apply(this,arguments)),zi)return Hr=null,zi+""||null}return ti.type=function(zi){return arguments.length?(_t=typeof zi=="function"?zi:r(zi),ti):_t},ti.size=function(zi){return arguments.length?(br=typeof zi=="function"?zi:r(+zi),ti):br},ti.context=function(zi){return arguments.length?(Hr=zi==null?null:zi,ti):Hr},ti}function Ht(){}function $t(_t,br,Hr){_t._context.bezierCurveTo((2*_t._x0+_t._x1)/3,(2*_t._y0+_t._y1)/3,(_t._x0+2*_t._x1)/3,(_t._y0+2*_t._y1)/3,(_t._x0+4*_t._x1+br)/6,(_t._y0+4*_t._y1+Hr)/6)}function fr(_t){this._context=_t}fr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:$t(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(_t,br){switch(_t=+_t,br=+br,this._point){case 0:this._point=1,this._line?this._context.lineTo(_t,br):this._context.moveTo(_t,br);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:$t(this,_t,br);break}this._x0=this._x1,this._x1=_t,this._y0=this._y1,this._y1=br}};function _r(_t){return new fr(_t)}function Br(_t){this._context=_t}Br.prototype={areaStart:Ht,areaEnd:Ht,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x2,this._y2),this._context.closePath();break}case 2:{this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break}case 3:{this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4);break}}},point:function(_t,br){switch(_t=+_t,br=+br,this._point){case 0:this._point=1,this._x2=_t,this._y2=br;break;case 1:this._point=2,this._x3=_t,this._y3=br;break;case 2:this._point=3,this._x4=_t,this._y4=br,this._context.moveTo((this._x0+4*this._x1+_t)/6,(this._y0+4*this._y1+br)/6);break;default:$t(this,_t,br);break}this._x0=this._x1,this._x1=_t,this._y0=this._y1,this._y1=br}};function Or(_t){return new Br(_t)}function Nr(_t){this._context=_t}Nr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(_t,br){switch(_t=+_t,br=+br,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var Hr=(this._x0+4*this._x1+_t)/6,ti=(this._y0+4*this._y1+br)/6;this._line?this._context.lineTo(Hr,ti):this._context.moveTo(Hr,ti);break;case 3:this._point=4;default:$t(this,_t,br);break}this._x0=this._x1,this._x1=_t,this._y0=this._y1,this._y1=br}};function ut(_t){return new Nr(_t)}function Ne(_t,br){this._basis=new fr(_t),this._beta=br}Ne.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var _t=this._x,br=this._y,Hr=_t.length-1;if(Hr>0)for(var ti=_t[0],zi=br[0],Yi=_t[Hr]-ti,an=br[Hr]-zi,hi=-1,Ji;++hi<=Hr;)Ji=hi/Hr,this._basis.point(this._beta*_t[hi]+(1-this._beta)*(ti+Ji*Yi),this._beta*br[hi]+(1-this._beta)*(zi+Ji*an));this._x=this._y=null,this._basis.lineEnd()},point:function(_t,br){this._x.push(+_t),this._y.push(+br)}};var Ye=function _t(br){function Hr(ti){return br===1?new fr(ti):new Ne(ti,br)}return Hr.beta=function(ti){return _t(+ti)},Hr}(.85);function Ve(_t,br,Hr){_t._context.bezierCurveTo(_t._x1+_t._k*(_t._x2-_t._x0),_t._y1+_t._k*(_t._y2-_t._y0),_t._x2+_t._k*(_t._x1-br),_t._y2+_t._k*(_t._y1-Hr),_t._x2,_t._y2)}function Xe(_t,br){this._context=_t,this._k=(1-br)/6}Xe.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Ve(this,this._x1,this._y1);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(_t,br){switch(_t=+_t,br=+br,this._point){case 0:this._point=1,this._line?this._context.lineTo(_t,br):this._context.moveTo(_t,br);break;case 1:this._point=2,this._x1=_t,this._y1=br;break;case 2:this._point=3;default:Ve(this,_t,br);break}this._x0=this._x1,this._x1=this._x2,this._x2=_t,this._y0=this._y1,this._y1=this._y2,this._y2=br}};var ht=function _t(br){function Hr(ti){return new Xe(ti,br)}return Hr.tension=function(ti){return _t(+ti)},Hr}(0);function Le(_t,br){this._context=_t,this._k=(1-br)/6}Le.prototype={areaStart:Ht,areaEnd:Ht,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(_t,br){switch(_t=+_t,br=+br,this._point){case 0:this._point=1,this._x3=_t,this._y3=br;break;case 1:this._point=2,this._context.moveTo(this._x4=_t,this._y4=br);break;case 2:this._point=3,this._x5=_t,this._y5=br;break;default:Ve(this,_t,br);break}this._x0=this._x1,this._x1=this._x2,this._x2=_t,this._y0=this._y1,this._y1=this._y2,this._y2=br}};var xe=function _t(br){function Hr(ti){return new Le(ti,br)}return Hr.tension=function(ti){return _t(+ti)},Hr}(0);function Se(_t,br){this._context=_t,this._k=(1-br)/6}Se.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(_t,br){switch(_t=+_t,br=+br,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Ve(this,_t,br);break}this._x0=this._x1,this._x1=this._x2,this._x2=_t,this._y0=this._y1,this._y1=this._y2,this._y2=br}};var lt=function _t(br){function Hr(ti){return new Se(ti,br)}return Hr.tension=function(ti){return _t(+ti)},Hr}(0);function Gt(_t,br,Hr){var ti=_t._x1,zi=_t._y1,Yi=_t._x2,an=_t._y2;if(_t._l01_a>c){var hi=2*_t._l01_2a+3*_t._l01_a*_t._l12_a+_t._l12_2a,Ji=3*_t._l01_a*(_t._l01_a+_t._l12_a);ti=(ti*hi-_t._x0*_t._l12_2a+_t._x2*_t._l01_2a)/Ji,zi=(zi*hi-_t._y0*_t._l12_2a+_t._y2*_t._l01_2a)/Ji}if(_t._l23_a>c){var ua=2*_t._l23_2a+3*_t._l23_a*_t._l12_a+_t._l12_2a,Fn=3*_t._l23_a*(_t._l23_a+_t._l12_a);Yi=(Yi*ua+_t._x1*_t._l23_2a-br*_t._l12_2a)/Fn,an=(an*ua+_t._y1*_t._l23_2a-Hr*_t._l12_2a)/Fn}_t._context.bezierCurveTo(ti,zi,Yi,an,_t._x2,_t._y2)}function Vt(_t,br){this._context=_t,this._alpha=br}Vt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2);break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(_t,br){if(_t=+_t,br=+br,this._point){var Hr=this._x2-_t,ti=this._y2-br;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Hr*Hr+ti*ti,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(_t,br):this._context.moveTo(_t,br);break;case 1:this._point=2;break;case 2:this._point=3;default:Gt(this,_t,br);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=_t,this._y0=this._y1,this._y1=this._y2,this._y2=br}};var ar=function _t(br){function Hr(ti){return br?new Vt(ti,br):new Xe(ti,0)}return Hr.alpha=function(ti){return _t(+ti)},Hr}(.5);function Qr(_t,br){this._context=_t,this._alpha=br}Qr.prototype={areaStart:Ht,areaEnd:Ht,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:{this._context.moveTo(this._x3,this._y3),this._context.closePath();break}case 2:{this._context.lineTo(this._x3,this._y3),this._context.closePath();break}case 3:{this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5);break}}},point:function(_t,br){if(_t=+_t,br=+br,this._point){var Hr=this._x2-_t,ti=this._y2-br;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Hr*Hr+ti*ti,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=_t,this._y3=br;break;case 1:this._point=2,this._context.moveTo(this._x4=_t,this._y4=br);break;case 2:this._point=3,this._x5=_t,this._y5=br;break;default:Gt(this,_t,br);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=_t,this._y0=this._y1,this._y1=this._y2,this._y2=br}};var ai=function _t(br){function Hr(ti){return br?new Qr(ti,br):new Le(ti,0)}return Hr.alpha=function(ti){return _t(+ti)},Hr}(.5);function jr(_t,br){this._context=_t,this._alpha=br}jr.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||this._line!==0&&this._point===3)&&this._context.closePath(),this._line=1-this._line},point:function(_t,br){if(_t=+_t,br=+br,this._point){var Hr=this._x2-_t,ti=this._y2-br;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(Hr*Hr+ti*ti,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Gt(this,_t,br);break}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=_t,this._y0=this._y1,this._y1=this._y2,this._y2=br}};var ri=function _t(br){function Hr(ti){return br?new jr(ti,br):new Se(ti,0)}return Hr.alpha=function(ti){return _t(+ti)},Hr}(.5);function bi(_t){this._context=_t}bi.prototype={areaStart:Ht,areaEnd:Ht,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(_t,br){_t=+_t,br=+br,this._point?this._context.lineTo(_t,br):(this._point=1,this._context.moveTo(_t,br))}};function nn(_t){return new bi(_t)}function Wi(_t){return _t<0?-1:1}function Ni(_t,br,Hr){var ti=_t._x1-_t._x0,zi=br-_t._x1,Yi=(_t._y1-_t._y0)/(ti||zi<0&&-0),an=(Hr-_t._y1)/(zi||ti<0&&-0),hi=(Yi*zi+an*ti)/(ti+zi);return(Wi(Yi)+Wi(an))*Math.min(Math.abs(Yi),Math.abs(an),.5*Math.abs(hi))||0}function _n(_t,br){var Hr=_t._x1-_t._x0;return Hr?(3*(_t._y1-_t._y0)/Hr-br)/2:br}function $i(_t,br,Hr){var ti=_t._x0,zi=_t._y0,Yi=_t._x1,an=_t._y1,hi=(Yi-ti)/3;_t._context.bezierCurveTo(ti+hi,zi+hi*br,Yi-hi,an-hi*Hr,Yi,an)}function zn(_t){this._context=_t}zn.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:$i(this,this._t0,_n(this,this._t0));break}(this._line||this._line!==0&&this._point===1)&&this._context.closePath(),this._line=1-this._line},point:function(_t,br){var Hr=NaN;if(_t=+_t,br=+br,!(_t===this._x1&&br===this._y1)){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(_t,br):this._context.moveTo(_t,br);break;case 1:this._point=2;break;case 2:this._point=3,$i(this,_n(this,Hr=Ni(this,_t,br)),Hr);break;default:$i(this,this._t0,Hr=Ni(this,_t,br));break}this._x0=this._x1,this._x1=_t,this._y0=this._y1,this._y1=br,this._t0=Hr}}};function Wn(_t){this._context=new It(_t)}(Wn.prototype=Object.create(zn.prototype)).point=function(_t,br){zn.prototype.point.call(this,br,_t)};function It(_t){this._context=_t}It.prototype={moveTo:function(_t,br){this._context.moveTo(br,_t)},closePath:function(){this._context.closePath()},lineTo:function(_t,br){this._context.lineTo(br,_t)},bezierCurveTo:function(_t,br,Hr,ti,zi,Yi){this._context.bezierCurveTo(br,_t,ti,Hr,Yi,zi)}};function ft(_t){return new zn(_t)}function jt(_t){return new Wn(_t)}function Zt(_t){this._context=_t}Zt.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var _t=this._x,br=this._y,Hr=_t.length;if(Hr)if(this._line?this._context.lineTo(_t[0],br[0]):this._context.moveTo(_t[0],br[0]),Hr===2)this._context.lineTo(_t[1],br[1]);else for(var ti=yr(_t),zi=yr(br),Yi=0,an=1;an=0;--br)zi[br]=(an[br]-zi[br+1])/Yi[br];for(Yi[Hr-1]=(_t[Hr]+zi[Hr-1])/2,br=0;br=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(_t,br){switch(_t=+_t,br=+br,this._point){case 0:this._point=1,this._line?this._context.lineTo(_t,br):this._context.moveTo(_t,br);break;case 1:this._point=2;default:{if(this._t<=0)this._context.lineTo(this._x,br),this._context.lineTo(_t,br);else{var Hr=this._x*(1-this._t)+_t*this._t;this._context.lineTo(Hr,this._y),this._context.lineTo(Hr,br)}break}}this._x=_t,this._y=br}};function Vr(_t){return new Zr(_t,.5)}function gi(_t){return new Zr(_t,0)}function Si(_t){return new Zr(_t,1)}function Mi(_t,br){if((an=_t.length)>1)for(var Hr=1,ti,zi,Yi=_t[br[0]],an,hi=Yi.length;Hr=0;)Hr[br]=br;return Hr}function Gi(_t,br){return _t[br]}function Ki(){var _t=r([]),br=Pi,Hr=Mi,ti=Gi;function zi(Yi){var an=_t.apply(this,arguments),hi,Ji=Yi.length,ua=an.length,Fn=new Array(ua),Sa;for(hi=0;hi0){for(var Hr,ti,zi=0,Yi=_t[0].length,an;zi0)for(var Hr,ti=0,zi,Yi,an,hi,Ji,ua=_t[br[0]].length;ti0?(zi[0]=an,zi[1]=an+=Yi):Yi<0?(zi[1]=hi,zi[0]=hi+=Yi):(zi[0]=0,zi[1]=Yi)}function la(_t,br){if((zi=_t.length)>0){for(var Hr=0,ti=_t[br[0]],zi,Yi=ti.length;Hr0)||!((Yi=(zi=_t[br[0]]).length)>0))){for(var Hr=0,ti=1,zi,Yi,an;tiYi&&(Yi=zi,Hr=br);return Hr}function oa(_t){var br=_t.map(Sn);return Pi(_t).sort(function(Hr,ti){return br[Hr]-br[ti]})}function Sn(_t){for(var br=0,Hr=-1,ti=_t.length,zi;++Hr{(function(e,t){typeof y7=="object"&&typeof mje!="undefined"?t(y7,JE(),h7(),CJ()):typeof define=="function"&&define.amd?define(["exports","d3-array","d3-collection","d3-shape"],t):t(e.d3=e.d3||{},e.d3,e.d3,e.d3)})(y7,function(e,t,r,n){"use strict";function i(p){return p.target.depth}function a(p){return p.depth}function o(p,P){return P-1-p.height}function s(p,P){return p.sourceLinks.length?p.depth:P-1}function l(p){return p.targetLinks.length?p.depth:p.sourceLinks.length?t.min(p.sourceLinks,i)-1:0}function u(p){return function(){return p}}function c(p,P){return h(p.source,P.source)||p.index-P.index}function f(p,P){return h(p.target,P.target)||p.index-P.index}function h(p,P){return p.y0-P.y0}function d(p){return p.value}function v(p){return(p.y0+p.y1)/2}function x(p){return v(p.source)*p.value}function b(p){return v(p.target)*p.value}function g(p){return p.index}function E(p){return p.nodes}function k(p){return p.links}function A(p,P){var T=p.get(P);if(!T)throw new Error("missing: "+P);return T}var L=function(){var p=0,P=0,T=1,F=1,q=24,V=8,H=g,X=s,G=E,N=k,W=32,re=2/3;function ae(){var Te={nodes:G.apply(null,arguments),links:N.apply(null,arguments)};return _e(Te),Me(Te),ke(Te),ge(Te,W),ie(Te),Te}ae.update=function(Te){return ie(Te),Te},ae.nodeId=function(Te){return arguments.length?(H=typeof Te=="function"?Te:u(Te),ae):H},ae.nodeAlign=function(Te){return arguments.length?(X=typeof Te=="function"?Te:u(Te),ae):X},ae.nodeWidth=function(Te){return arguments.length?(q=+Te,ae):q},ae.nodePadding=function(Te){return arguments.length?(V=+Te,ae):V},ae.nodes=function(Te){return arguments.length?(G=typeof Te=="function"?Te:u(Te),ae):G},ae.links=function(Te){return arguments.length?(N=typeof Te=="function"?Te:u(Te),ae):N},ae.size=function(Te){return arguments.length?(p=P=0,T=+Te[0],F=+Te[1],ae):[T-p,F-P]},ae.extent=function(Te){return arguments.length?(p=+Te[0][0],T=+Te[1][0],P=+Te[0][1],F=+Te[1][1],ae):[[p,P],[T,F]]},ae.iterations=function(Te){return arguments.length?(W=+Te,ae):W};function _e(Te){Te.nodes.forEach(function(Ae,ze){Ae.index=ze,Ae.sourceLinks=[],Ae.targetLinks=[]});var Ee=r.map(Te.nodes,H);Te.links.forEach(function(Ae,ze){Ae.index=ze;var Ce=Ae.source,me=Ae.target;typeof Ce!="object"&&(Ce=Ae.source=A(Ee,Ce)),typeof me!="object"&&(me=Ae.target=A(Ee,me)),Ce.sourceLinks.push(Ae),me.targetLinks.push(Ae)})}function Me(Te){Te.nodes.forEach(function(Ee){Ee.value=Math.max(t.sum(Ee.sourceLinks,d),t.sum(Ee.targetLinks,d))})}function ke(Te){var Ee,Ae,ze;for(Ee=Te.nodes,Ae=[],ze=0;Ee.length;++ze,Ee=Ae,Ae=[])Ee.forEach(function(me){me.depth=ze,me.sourceLinks.forEach(function(Re){Ae.indexOf(Re.target)<0&&Ae.push(Re.target)})});for(Ee=Te.nodes,Ae=[],ze=0;Ee.length;++ze,Ee=Ae,Ae=[])Ee.forEach(function(me){me.height=ze,me.targetLinks.forEach(function(Re){Ae.indexOf(Re.source)<0&&Ae.push(Re.source)})});var Ce=(T-p-q)/(ze-1);Te.nodes.forEach(function(me){me.x1=(me.x0=p+Math.max(0,Math.min(ze-1,Math.floor(X.call(null,me,ze))))*Ce)+q})}function ge(Te){var Ee=r.nest().key(function(Ge){return Ge.x0}).sortKeys(t.ascending).entries(Te.nodes).map(function(Ge){return Ge.values});Ce(),ce();for(var Ae=1,ze=W;ze>0;--ze)Re(Ae*=.99),ce(),me(Ae),ce();function Ce(){var Ge=t.max(Ee,function(qt){return qt.length}),nt=re*(F-P)/(Ge-1);V>nt&&(V=nt);var ct=t.min(Ee,function(qt){return(F-P-(qt.length-1)*V)/t.sum(qt,d)});Ee.forEach(function(qt){qt.forEach(function(rt,ot){rt.y1=(rt.y0=ot)+rt.value*ct})}),Te.links.forEach(function(qt){qt.width=qt.value*ct})}function me(Ge){Ee.forEach(function(nt){nt.forEach(function(ct){if(ct.targetLinks.length){var qt=(t.sum(ct.targetLinks,x)/t.sum(ct.targetLinks,d)-v(ct))*Ge;ct.y0+=qt,ct.y1+=qt}})})}function Re(Ge){Ee.slice().reverse().forEach(function(nt){nt.forEach(function(ct){if(ct.sourceLinks.length){var qt=(t.sum(ct.sourceLinks,b)/t.sum(ct.sourceLinks,d)-v(ct))*Ge;ct.y0+=qt,ct.y1+=qt}})})}function ce(){Ee.forEach(function(Ge){var nt,ct,qt=P,rt=Ge.length,ot;for(Ge.sort(h),ot=0;ot0&&(nt.y0+=ct,nt.y1+=ct),qt=nt.y1+V;if(ct=qt-V-F,ct>0)for(qt=nt.y0-=ct,nt.y1-=ct,ot=rt-2;ot>=0;--ot)nt=Ge[ot],ct=nt.y1+V-qt,ct>0&&(nt.y0-=ct,nt.y1-=ct),qt=nt.y0})}}function ie(Te){Te.nodes.forEach(function(Ee){Ee.sourceLinks.sort(f),Ee.targetLinks.sort(c)}),Te.nodes.forEach(function(Ee){var Ae=Ee.y0,ze=Ae;Ee.sourceLinks.forEach(function(Ce){Ce.y0=Ae+Ce.width/2,Ae+=Ce.width}),Ee.targetLinks.forEach(function(Ce){Ce.y1=ze+Ce.width/2,ze+=Ce.width})})}return ae};function _(p){return[p.source.x1,p.y0]}function C(p){return[p.target.x0,p.y1]}var M=function(){return n.linkHorizontal().source(_).target(C)};e.sankey=L,e.sankeyCenter=l,e.sankeyLeft=a,e.sankeyRight=o,e.sankeyJustify=s,e.sankeyLinkHorizontal=M,Object.defineProperty(e,"__esModule",{value:!0})})});var xje=ye((a_r,_je)=>{var gWt=kJ();_je.exports=function(t,r){var n=[],i=[],a=[],o={},s=[],l;function u(k){a[k]=!1,o.hasOwnProperty(k)&&Object.keys(o[k]).forEach(function(A){delete o[k][A],a[A]&&u(A)})}function c(k){var A=!1;i.push(k),a[k]=!0;var L,_;for(L=0;L=k})}function d(k){h(k);for(var A=t,L=gWt(A),_=L.components.filter(function(q){return q.length>1}),C=1/0,M,p=0;p<_.length;p++)for(var P=0;P<_[p].length;P++)_[p][P]{(function(e,t){typeof _7=="object"&&typeof bje!="undefined"?t(_7,JE(),h7(),CJ(),xje()):typeof define=="function"&&define.amd?define(["exports","d3-array","d3-collection","d3-shape","elementary-circuits-directed-graph"],t):t(e.d3=e.d3||{},e.d3,e.d3,e.d3,null)})(_7,function(e,t,r,n,i){"use strict";i=i&&i.hasOwnProperty("default")?i.default:i;function a(rt){return rt.target.depth}function o(rt){return rt.depth}function s(rt,ot){return ot-1-rt.height}function l(rt,ot){return rt.sourceLinks.length?rt.depth:ot-1}function u(rt){return rt.targetLinks.length?rt.depth:rt.sourceLinks.length?t.min(rt.sourceLinks,a)-1:0}function c(rt){return function(){return rt}}var f=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(rt){return typeof rt}:function(rt){return rt&&typeof Symbol=="function"&&rt.constructor===Symbol&&rt!==Symbol.prototype?"symbol":typeof rt};function h(rt,ot){return v(rt.source,ot.source)||rt.index-ot.index}function d(rt,ot){return v(rt.target,ot.target)||rt.index-ot.index}function v(rt,ot){return rt.partOfCycle===ot.partOfCycle?rt.y0-ot.y0:rt.circularLinkType==="top"||ot.circularLinkType==="bottom"?-1:1}function x(rt){return rt.value}function b(rt){return(rt.y0+rt.y1)/2}function g(rt){return b(rt.source)}function E(rt){return b(rt.target)}function k(rt){return rt.index}function A(rt){return rt.nodes}function L(rt){return rt.links}function _(rt,ot){var Rt=rt.get(ot);if(!Rt)throw new Error("missing: "+ot);return Rt}function C(rt,ot){return ot(rt)}var M=25,p=10,P=.3;function T(){var rt=0,ot=0,Rt=1,kt=1,Ct=24,Yt,xr=k,er=l,Ke=A,xt=L,bt=32,Lt=2,St,Et=null;function dt(){var ut={nodes:Ke.apply(null,arguments),links:xt.apply(null,arguments)};Ht(ut),F(ut,xr,Et),$t(ut),Br(ut),q(ut,xr),Or(ut,bt,xr),Nr(ut);for(var Ne=4,Ye=0;Ye0?Ne+M+p:Ne,Ye=Ye>0?Ye+M+p:Ye,Ve=Ve>0?Ve+M+p:Ve,Xe=Xe>0?Xe+M+p:Xe,{top:Ne,bottom:Ye,left:Xe,right:Ve}}function _r(ut,Ne){var Ye=t.max(ut.nodes,function(lt){return lt.column}),Ve=Rt-rt,Xe=kt-ot,ht=Ve+Ne.right+Ne.left,Le=Xe+Ne.top+Ne.bottom,xe=Ve/ht,Se=Xe/Le;return rt=rt*xe+Ne.left,Rt=Ne.right==0?Rt:Rt*xe,ot=ot*Se+Ne.top,kt=kt*Se,ut.nodes.forEach(function(lt){lt.x0=rt+lt.column*((Rt-rt-Ct)/Ye),lt.x1=lt.x0+Ct}),Se}function Br(ut){var Ne,Ye,Ve;for(Ne=ut.nodes,Ye=[],Ve=0;Ne.length;++Ve,Ne=Ye,Ye=[])Ne.forEach(function(Xe){Xe.depth=Ve,Xe.sourceLinks.forEach(function(ht){Ye.indexOf(ht.target)<0&&!ht.circular&&Ye.push(ht.target)})});for(Ne=ut.nodes,Ye=[],Ve=0;Ne.length;++Ve,Ne=Ye,Ye=[])Ne.forEach(function(Xe){Xe.height=Ve,Xe.targetLinks.forEach(function(ht){Ye.indexOf(ht.source)<0&&!ht.circular&&Ye.push(ht.source)})});ut.nodes.forEach(function(Xe){Xe.column=Math.floor(er.call(null,Xe,Ve))})}function Or(ut,Ne,Ye){var Ve=r.nest().key(function(lt){return lt.column}).sortKeys(t.ascending).entries(ut.nodes).map(function(lt){return lt.values});Le(Ye),Se();for(var Xe=1,ht=Ne;ht>0;--ht)xe(Xe*=.99,Ye),Se();function Le(lt){if(St){var Gt=1/0;Ve.forEach(function(ai){var jr=kt*St/(ai.length+1);Gt=jr0))if(ai==0&&Qr==1)ri=jr.y1-jr.y0,jr.y0=kt/2-ri/2,jr.y1=kt/2+ri/2;else if(ai==Vt-1&&Qr==1)ri=jr.y1-jr.y0,jr.y0=kt/2-ri/2,jr.y1=kt/2+ri/2;else{var bi=0,nn=t.mean(jr.sourceLinks,E),Wi=t.mean(jr.targetLinks,g);nn&&Wi?bi=(nn+Wi)/2:bi=nn||Wi;var Ni=(bi-b(jr))*lt;jr.y0+=Ni,jr.y1+=Ni}})})}function Se(){Ve.forEach(function(lt){var Gt,Vt,ar=ot,Qr=lt.length,ai;for(lt.sort(v),ai=0;ai0&&(Gt.y0+=Vt,Gt.y1+=Vt),ar=Gt.y1+Yt;if(Vt=ar-Yt-kt,Vt>0)for(ar=Gt.y0-=Vt,Gt.y1-=Vt,ai=Qr-2;ai>=0;--ai)Gt=lt[ai],Vt=Gt.y1+Yt-ar,Vt>0&&(Gt.y0-=Vt,Gt.y1-=Vt),ar=Gt.y0})}}function Nr(ut){ut.nodes.forEach(function(Ne){Ne.sourceLinks.sort(d),Ne.targetLinks.sort(h)}),ut.nodes.forEach(function(Ne){var Ye=Ne.y0,Ve=Ye,Xe=Ne.y1,ht=Xe;Ne.sourceLinks.forEach(function(Le){Le.circular?(Le.y0=Xe-Le.width/2,Xe=Xe-Le.width):(Le.y0=Ye+Le.width/2,Ye+=Le.width)}),Ne.targetLinks.forEach(function(Le){Le.circular?(Le.y1=ht-Le.width/2,ht=ht-Le.width):(Le.y1=Ve+Le.width/2,Ve+=Le.width)})})}return dt}function F(rt,ot,Rt){var kt=0;if(Rt===null){for(var Ct=[],Yt=0;Ytot.source.column)}function X(rt,ot){var Rt=0;rt.sourceLinks.forEach(function(Ct){Rt=Ct.circular&&!ct(Ct,ot)?Rt+1:Rt});var kt=0;return rt.targetLinks.forEach(function(Ct){kt=Ct.circular&&!ct(Ct,ot)?kt+1:kt}),Rt+kt}function G(rt){var ot=rt.source.sourceLinks,Rt=0;ot.forEach(function(Yt){Rt=Yt.circular?Rt+1:Rt});var kt=rt.target.targetLinks,Ct=0;return kt.forEach(function(Yt){Ct=Yt.circular?Ct+1:Ct}),!(Rt>1||Ct>1)}function N(rt,ot,Rt){return rt.sort(ae),rt.forEach(function(kt,Ct){var Yt=0;if(ct(kt,Rt)&&G(kt))kt.circularPathData.verticalBuffer=Yt+kt.width/2;else{var xr=0;for(xr;xrYt?er:Yt}kt.circularPathData.verticalBuffer=Yt+kt.width/2}}),rt}function W(rt,ot,Rt,kt){var Ct=5,Yt=t.min(rt.links,function(Ke){return Ke.source.y0});rt.links.forEach(function(Ke){Ke.circular&&(Ke.circularPathData={})});var xr=rt.links.filter(function(Ke){return Ke.circularLinkType=="top"});N(xr,ot,kt);var er=rt.links.filter(function(Ke){return Ke.circularLinkType=="bottom"});N(er,ot,kt),rt.links.forEach(function(Ke){if(Ke.circular){if(Ke.circularPathData.arcRadius=Ke.width+p,Ke.circularPathData.leftNodeBuffer=Ct,Ke.circularPathData.rightNodeBuffer=Ct,Ke.circularPathData.sourceWidth=Ke.source.x1-Ke.source.x0,Ke.circularPathData.sourceX=Ke.source.x0+Ke.circularPathData.sourceWidth,Ke.circularPathData.targetX=Ke.target.x0,Ke.circularPathData.sourceY=Ke.y0,Ke.circularPathData.targetY=Ke.y1,ct(Ke,kt)&&G(Ke))Ke.circularPathData.leftSmallArcRadius=p+Ke.width/2,Ke.circularPathData.leftLargeArcRadius=p+Ke.width/2,Ke.circularPathData.rightSmallArcRadius=p+Ke.width/2,Ke.circularPathData.rightLargeArcRadius=p+Ke.width/2,Ke.circularLinkType=="bottom"?(Ke.circularPathData.verticalFullExtent=Ke.source.y1+M+Ke.circularPathData.verticalBuffer,Ke.circularPathData.verticalLeftInnerExtent=Ke.circularPathData.verticalFullExtent-Ke.circularPathData.leftLargeArcRadius,Ke.circularPathData.verticalRightInnerExtent=Ke.circularPathData.verticalFullExtent-Ke.circularPathData.rightLargeArcRadius):(Ke.circularPathData.verticalFullExtent=Ke.source.y0-M-Ke.circularPathData.verticalBuffer,Ke.circularPathData.verticalLeftInnerExtent=Ke.circularPathData.verticalFullExtent+Ke.circularPathData.leftLargeArcRadius,Ke.circularPathData.verticalRightInnerExtent=Ke.circularPathData.verticalFullExtent+Ke.circularPathData.rightLargeArcRadius);else{var xt=Ke.source.column,bt=Ke.circularLinkType,Lt=rt.links.filter(function(dt){return dt.source.column==xt&&dt.circularLinkType==bt});Ke.circularLinkType=="bottom"?Lt.sort(Me):Lt.sort(_e);var St=0;Lt.forEach(function(dt,Ht){dt.circularLinkID==Ke.circularLinkID&&(Ke.circularPathData.leftSmallArcRadius=p+Ke.width/2+St,Ke.circularPathData.leftLargeArcRadius=p+Ke.width/2+Ht*ot+St),St=St+dt.width}),xt=Ke.target.column,Lt=rt.links.filter(function(dt){return dt.target.column==xt&&dt.circularLinkType==bt}),Ke.circularLinkType=="bottom"?Lt.sort(ge):Lt.sort(ke),St=0,Lt.forEach(function(dt,Ht){dt.circularLinkID==Ke.circularLinkID&&(Ke.circularPathData.rightSmallArcRadius=p+Ke.width/2+St,Ke.circularPathData.rightLargeArcRadius=p+Ke.width/2+Ht*ot+St),St=St+dt.width}),Ke.circularLinkType=="bottom"?(Ke.circularPathData.verticalFullExtent=Math.max(Rt,Ke.source.y1,Ke.target.y1)+M+Ke.circularPathData.verticalBuffer,Ke.circularPathData.verticalLeftInnerExtent=Ke.circularPathData.verticalFullExtent-Ke.circularPathData.leftLargeArcRadius,Ke.circularPathData.verticalRightInnerExtent=Ke.circularPathData.verticalFullExtent-Ke.circularPathData.rightLargeArcRadius):(Ke.circularPathData.verticalFullExtent=Yt-M-Ke.circularPathData.verticalBuffer,Ke.circularPathData.verticalLeftInnerExtent=Ke.circularPathData.verticalFullExtent+Ke.circularPathData.leftLargeArcRadius,Ke.circularPathData.verticalRightInnerExtent=Ke.circularPathData.verticalFullExtent+Ke.circularPathData.rightLargeArcRadius)}Ke.circularPathData.leftInnerExtent=Ke.circularPathData.sourceX+Ke.circularPathData.leftNodeBuffer,Ke.circularPathData.rightInnerExtent=Ke.circularPathData.targetX-Ke.circularPathData.rightNodeBuffer,Ke.circularPathData.leftFullExtent=Ke.circularPathData.sourceX+Ke.circularPathData.leftLargeArcRadius+Ke.circularPathData.leftNodeBuffer,Ke.circularPathData.rightFullExtent=Ke.circularPathData.targetX-Ke.circularPathData.rightLargeArcRadius-Ke.circularPathData.rightNodeBuffer}if(Ke.circular)Ke.path=re(Ke);else{var Et=n.linkHorizontal().source(function(dt){var Ht=dt.source.x0+(dt.source.x1-dt.source.x0),$t=dt.y0;return[Ht,$t]}).target(function(dt){var Ht=dt.target.x0,$t=dt.y1;return[Ht,$t]});Ke.path=Et(Ke)}})}function re(rt){var ot="";return rt.circularLinkType=="top"?ot="M"+rt.circularPathData.sourceX+" "+rt.circularPathData.sourceY+" L"+rt.circularPathData.leftInnerExtent+" "+rt.circularPathData.sourceY+" A"+rt.circularPathData.leftLargeArcRadius+" "+rt.circularPathData.leftSmallArcRadius+" 0 0 0 "+rt.circularPathData.leftFullExtent+" "+(rt.circularPathData.sourceY-rt.circularPathData.leftSmallArcRadius)+" L"+rt.circularPathData.leftFullExtent+" "+rt.circularPathData.verticalLeftInnerExtent+" A"+rt.circularPathData.leftLargeArcRadius+" "+rt.circularPathData.leftLargeArcRadius+" 0 0 0 "+rt.circularPathData.leftInnerExtent+" "+rt.circularPathData.verticalFullExtent+" L"+rt.circularPathData.rightInnerExtent+" "+rt.circularPathData.verticalFullExtent+" A"+rt.circularPathData.rightLargeArcRadius+" "+rt.circularPathData.rightLargeArcRadius+" 0 0 0 "+rt.circularPathData.rightFullExtent+" "+rt.circularPathData.verticalRightInnerExtent+" L"+rt.circularPathData.rightFullExtent+" "+(rt.circularPathData.targetY-rt.circularPathData.rightSmallArcRadius)+" A"+rt.circularPathData.rightLargeArcRadius+" "+rt.circularPathData.rightSmallArcRadius+" 0 0 0 "+rt.circularPathData.rightInnerExtent+" "+rt.circularPathData.targetY+" L"+rt.circularPathData.targetX+" "+rt.circularPathData.targetY:ot="M"+rt.circularPathData.sourceX+" "+rt.circularPathData.sourceY+" L"+rt.circularPathData.leftInnerExtent+" "+rt.circularPathData.sourceY+" A"+rt.circularPathData.leftLargeArcRadius+" "+rt.circularPathData.leftSmallArcRadius+" 0 0 1 "+rt.circularPathData.leftFullExtent+" "+(rt.circularPathData.sourceY+rt.circularPathData.leftSmallArcRadius)+" L"+rt.circularPathData.leftFullExtent+" "+rt.circularPathData.verticalLeftInnerExtent+" A"+rt.circularPathData.leftLargeArcRadius+" "+rt.circularPathData.leftLargeArcRadius+" 0 0 1 "+rt.circularPathData.leftInnerExtent+" "+rt.circularPathData.verticalFullExtent+" L"+rt.circularPathData.rightInnerExtent+" "+rt.circularPathData.verticalFullExtent+" A"+rt.circularPathData.rightLargeArcRadius+" "+rt.circularPathData.rightLargeArcRadius+" 0 0 1 "+rt.circularPathData.rightFullExtent+" "+rt.circularPathData.verticalRightInnerExtent+" L"+rt.circularPathData.rightFullExtent+" "+(rt.circularPathData.targetY+rt.circularPathData.rightSmallArcRadius)+" A"+rt.circularPathData.rightLargeArcRadius+" "+rt.circularPathData.rightSmallArcRadius+" 0 0 1 "+rt.circularPathData.rightInnerExtent+" "+rt.circularPathData.targetY+" L"+rt.circularPathData.targetX+" "+rt.circularPathData.targetY,ot}function ae(rt,ot){return ie(rt)==ie(ot)?rt.circularLinkType=="bottom"?Me(rt,ot):_e(rt,ot):ie(ot)-ie(rt)}function _e(rt,ot){return rt.y0-ot.y0}function Me(rt,ot){return ot.y0-rt.y0}function ke(rt,ot){return rt.y1-ot.y1}function ge(rt,ot){return ot.y1-rt.y1}function ie(rt){return rt.target.column-rt.source.column}function Te(rt){return rt.target.x0-rt.source.x1}function Ee(rt,ot){var Rt=V(rt),kt=Te(ot)/Math.tan(Rt),Ct=nt(rt)=="up"?rt.y1+kt:rt.y1-kt;return Ct}function Ae(rt,ot){var Rt=V(rt),kt=Te(ot)/Math.tan(Rt),Ct=nt(rt)=="up"?rt.y1-kt:rt.y1+kt;return Ct}function ze(rt,ot,Rt,kt){rt.links.forEach(function(Ct){if(!Ct.circular&&Ct.target.column-Ct.source.column>1){var Yt=Ct.source.column+1,xr=Ct.target.column-1,er=1,Ke=xr-Yt+1;for(er=1;Yt<=xr;Yt++,er++)rt.nodes.forEach(function(xt){if(xt.column==Yt){var bt=er/(Ke+1),Lt=Math.pow(1-bt,3),St=3*bt*Math.pow(1-bt,2),Et=3*Math.pow(bt,2)*(1-bt),dt=Math.pow(bt,3),Ht=Lt*Ct.y0+St*Ct.y0+Et*Ct.y1+dt*Ct.y1,$t=Ht-Ct.width/2,fr=Ht+Ct.width/2,_r;$t>xt.y0&&$txt.y0&&frxt.y1&&me(Br,_r,ot,Rt)})):$txt.y1&&(_r=fr-xt.y0+10,xt=me(xt,_r,ot,Rt),rt.nodes.forEach(function(Br){C(Br,kt)==C(xt,kt)||Br.column!=xt.column||Br.y0xt.y1&&me(Br,_r,ot,Rt)}))}})}})}function Ce(rt,ot){return rt.y0>ot.y0&&rt.y0ot.y0&&rt.y1ot.y1}function me(rt,ot,Rt,kt){return rt.y0+ot>=Rt&&rt.y1+ot<=kt&&(rt.y0=rt.y0+ot,rt.y1=rt.y1+ot,rt.targetLinks.forEach(function(Ct){Ct.y1=Ct.y1+ot}),rt.sourceLinks.forEach(function(Ct){Ct.y0=Ct.y0+ot})),rt}function Re(rt,ot,Rt,kt){rt.nodes.forEach(function(Ct){kt&&Ct.y+(Ct.y1-Ct.y0)>ot&&(Ct.y=Ct.y-(Ct.y+(Ct.y1-Ct.y0)-ot));var Yt=rt.links.filter(function(Ke){return C(Ke.source,Rt)==C(Ct,Rt)}),xr=Yt.length;xr>1&&Yt.sort(function(Ke,xt){if(!Ke.circular&&!xt.circular){if(Ke.target.column==xt.target.column)return Ke.y1-xt.y1;if(Ge(Ke,xt)){if(Ke.target.column>xt.target.column){var bt=Ae(xt,Ke);return Ke.y1-bt}if(xt.target.column>Ke.target.column){var Lt=Ae(Ke,xt);return Lt-xt.y1}}else return Ke.y1-xt.y1}if(Ke.circular&&!xt.circular)return Ke.circularLinkType=="top"?-1:1;if(xt.circular&&!Ke.circular)return xt.circularLinkType=="top"?1:-1;if(Ke.circular&&xt.circular)return Ke.circularLinkType===xt.circularLinkType&&Ke.circularLinkType=="top"?Ke.target.column===xt.target.column?Ke.target.y1-xt.target.y1:xt.target.column-Ke.target.column:Ke.circularLinkType===xt.circularLinkType&&Ke.circularLinkType=="bottom"?Ke.target.column===xt.target.column?xt.target.y1-Ke.target.y1:Ke.target.column-xt.target.column:Ke.circularLinkType=="top"?-1:1});var er=Ct.y0;Yt.forEach(function(Ke){Ke.y0=er+Ke.width/2,er=er+Ke.width}),Yt.forEach(function(Ke,xt){if(Ke.circularLinkType=="bottom"){var bt=xt+1,Lt=0;for(bt;bt1&&Ct.sort(function(er,Ke){if(!er.circular&&!Ke.circular){if(er.source.column==Ke.source.column)return er.y0-Ke.y0;if(Ge(er,Ke)){if(Ke.source.column0?"up":"down"}function ct(rt,ot){return C(rt.source,ot)==C(rt.target,ot)}function qt(rt,ot,Rt){var kt=rt.nodes,Ct=rt.links,Yt=!1,xr=!1;if(Ct.forEach(function(St){St.circularLinkType=="top"?Yt=!0:St.circularLinkType=="bottom"&&(xr=!0)}),Yt==!1||xr==!1){var er=t.min(kt,function(St){return St.y0}),Ke=t.max(kt,function(St){return St.y1}),xt=Ke-er,bt=Rt-ot,Lt=bt/xt;kt.forEach(function(St){var Et=(St.y1-St.y0)*Lt;St.y0=(St.y0-er)*Lt,St.y1=St.y0+Et}),Ct.forEach(function(St){St.y0=(St.y0-er)*Lt,St.y1=(St.y1-er)*Lt,St.width=St.width*Lt})}}e.sankeyCircular=T,e.sankeyCenter=u,e.sankeyLeft=o,e.sankeyRight=s,e.sankeyJustify=l,Object.defineProperty(e,"__esModule",{value:!0})})});var LJ=ye((o_r,Tje)=>{"use strict";Tje.exports={nodeTextOffsetHorizontal:4,nodeTextOffsetVertical:3,nodePadAcross:10,sankeyIterations:50,forceIterations:5,forceTicksPerFrame:10,duration:500,ease:"linear",cn:{sankey:"sankey",sankeyLinks:"sankey-links",sankeyLink:"sankey-link",sankeyNodeSet:"sankey-node-set",sankeyNode:"sankey-node",nodeRect:"node-rect",nodeLabel:"node-label"}}});var Fje=ye((s_r,zje)=>{"use strict";var Aje=dje(),mWt=(R2(),ab(I2)).interpolateNumber,LA=xa(),Vk=yje(),yWt=wje(),pu=LJ(),PA=id(),aw=va(),_Wt=ao(),p1=Mr(),RJ=p1.strTranslate,xWt=p1.strRotate,DJ=Km(),Hk=DJ.keyFun,x7=DJ.repeat,Lje=DJ.unwrap,Sje=Ll(),bWt=ba(),Pje=Nh(),wWt=Pje.CAP_SHIFT,TWt=Pje.LINE_SPACING,AWt=3;function SWt(e,t,r){var n=Lje(t),i=n.trace,a=i.domain,o=i.orientation==="h",s=i.node.pad,l=i.node.thickness,u={justify:Vk.sankeyJustify,left:Vk.sankeyLeft,right:Vk.sankeyRight,center:Vk.sankeyCenter}[i.node.align],c=e.width*(a.x[1]-a.x[0]),f=e.height*(a.y[1]-a.y[0]),h=n._nodes,d=n._links,v=n.circular,x;v?x=yWt.sankeyCircular().circularLinkGap(0):x=Vk.sankey(),x.iterations(pu.sankeyIterations).size(o?[c,f]:[f,c]).nodeWidth(l).nodePadding(s).nodeId(function(V){return V.pointNumber}).nodeAlign(u).nodes(h).links(d);var b=x();x.nodePadding()=N||(G=N-X.y0,G>1e-6&&(X.y0+=G,X.y1+=G)),N=X.y1+s})}function P(V){var H=V.map(function(_e,Me){return{x0:_e.x0,index:Me}}).sort(function(_e,Me){return _e.x0-Me.x0}),X=[],G=-1,N,W=-1/0,re;for(g=0;gW+l&&(G+=1,N=ae.x0),W=ae.x0,X[G]||(X[G]=[]),X[G].push(ae),re=N-ae.x0,ae.x0+=re,ae.x1+=re}return X}if(i.node.x.length&&i.node.y.length){for(g=0;g0?" L "+i.targetX+" "+i.targetY:"")+"Z"):(r="M "+(i.targetX-t)+" "+(i.targetY-n)+" L "+(i.rightInnerExtent-t)+" "+(i.targetY-n)+" A "+(i.rightLargeArcRadius+n)+" "+(i.rightSmallArcRadius+n)+" 0 0 0 "+(i.rightFullExtent-n-t)+" "+(i.targetY+i.rightSmallArcRadius)+" L "+(i.rightFullExtent-n-t)+" "+i.verticalRightInnerExtent,a&&o?r+=" A "+(i.rightLargeArcRadius+n)+" "+(i.rightLargeArcRadius+n)+" 0 0 0 "+(i.rightInnerExtent-n-t)+" "+(i.verticalFullExtent+n)+" L "+(i.rightFullExtent+n-t-(i.rightLargeArcRadius-n))+" "+(i.verticalFullExtent+n)+" A "+(i.rightLargeArcRadius+n)+" "+(i.rightLargeArcRadius+n)+" 0 0 0 "+(i.leftFullExtent+n)+" "+i.verticalLeftInnerExtent:a?r+=" A "+(i.rightLargeArcRadius-n)+" "+(i.rightSmallArcRadius-n)+" 0 0 1 "+(i.rightFullExtent-t-n-(i.rightLargeArcRadius-n))+" "+(i.verticalFullExtent-n)+" L "+(i.leftFullExtent+n+(i.rightLargeArcRadius-n))+" "+(i.verticalFullExtent-n)+" A "+(i.rightLargeArcRadius-n)+" "+(i.rightSmallArcRadius-n)+" 0 0 1 "+(i.leftFullExtent+n)+" "+i.verticalLeftInnerExtent:r+=" A "+(i.rightLargeArcRadius+n)+" "+(i.rightLargeArcRadius+n)+" 0 0 0 "+(i.rightInnerExtent-t)+" "+(i.verticalFullExtent+n)+" L "+i.leftInnerExtent+" "+(i.verticalFullExtent+n)+" A "+(i.leftLargeArcRadius+n)+" "+(i.leftLargeArcRadius+n)+" 0 0 0 "+(i.leftFullExtent+n)+" "+i.verticalLeftInnerExtent,r+=" L "+(i.leftFullExtent+n)+" "+(i.sourceY+i.leftSmallArcRadius)+" A "+(i.leftLargeArcRadius+n)+" "+(i.leftSmallArcRadius+n)+" 0 0 0 "+i.leftInnerExtent+" "+(i.sourceY-n)+" L "+i.sourceX+" "+(i.sourceY-n)+" L "+i.sourceX+" "+(i.sourceY+n)+" L "+i.leftInnerExtent+" "+(i.sourceY+n)+" A "+(i.leftLargeArcRadius-n)+" "+(i.leftSmallArcRadius-n)+" 0 0 1 "+(i.leftFullExtent-n)+" "+(i.sourceY+i.leftSmallArcRadius)+" L "+(i.leftFullExtent-n)+" "+i.verticalLeftInnerExtent,a&&o?r+=" A "+(i.rightLargeArcRadius-n)+" "+(i.rightSmallArcRadius-n)+" 0 0 1 "+(i.leftFullExtent-n-(i.rightLargeArcRadius-n))+" "+(i.verticalFullExtent-n)+" L "+(i.rightFullExtent+n-t+(i.rightLargeArcRadius-n))+" "+(i.verticalFullExtent-n)+" A "+(i.rightLargeArcRadius-n)+" "+(i.rightSmallArcRadius-n)+" 0 0 1 "+(i.rightFullExtent+n-t)+" "+i.verticalRightInnerExtent:a?r+=" A "+(i.rightLargeArcRadius+n)+" "+(i.rightLargeArcRadius+n)+" 0 0 0 "+(i.leftFullExtent+n)+" "+(i.verticalFullExtent+n)+" L "+(i.rightFullExtent-t-n)+" "+(i.verticalFullExtent+n)+" A "+(i.rightLargeArcRadius+n)+" "+(i.rightLargeArcRadius+n)+" 0 0 0 "+(i.rightFullExtent+n-t)+" "+i.verticalRightInnerExtent:r+=" A "+(i.leftLargeArcRadius-n)+" "+(i.leftLargeArcRadius-n)+" 0 0 1 "+i.leftInnerExtent+" "+(i.verticalFullExtent-n)+" L "+(i.rightInnerExtent-t)+" "+(i.verticalFullExtent-n)+" A "+(i.rightLargeArcRadius-n)+" "+(i.rightLargeArcRadius-n)+" 0 0 1 "+(i.rightFullExtent+n-t)+" "+i.verticalRightInnerExtent,r+=" L "+(i.rightFullExtent+n-t)+" "+(i.targetY+i.rightSmallArcRadius)+" A "+(i.rightLargeArcRadius-n)+" "+(i.rightSmallArcRadius-n)+" 0 0 1 "+(i.rightInnerExtent-t)+" "+(i.targetY+n)+" L "+(i.targetX-t)+" "+(i.targetY+n)+(t>0?" L "+i.targetX+" "+i.targetY:"")+"Z"),r}function zJ(){var e=.5;function t(r){var n=r.linkArrowLength;if(r.link.circular)return EWt(r.link,n);var i=Math.abs((r.link.target.x0-r.link.source.x1)/2);n>i&&(n=i);var a=r.link.source.x1,o=r.link.target.x0-n,s=mWt(a,o),l=s(e),u=s(1-e),c=r.link.y0-r.link.width/2,f=r.link.y0+r.link.width/2,h=r.link.y1-r.link.width/2,d=r.link.y1+r.link.width/2,v="M"+a+","+c,x="C"+l+","+c+" "+u+","+h+" "+o+","+h,b="C"+u+","+d+" "+l+","+f+" "+a+","+f,g=n>0?"L"+(o+n)+","+(h+r.link.width/2):"";return g+="L"+o+","+d,v+x+g+b+"Z"}return t}function kWt(e,t){var r=PA(t.color),n=pu.nodePadAcross,i=e.nodePad/2;t.dx=t.x1-t.x0,t.dy=t.y1-t.y0;var a=t.dx,o=Math.max(.5,t.dy),s="node_"+t.pointNumber;return t.group&&(s=p1.randstr()),t.trace=e.trace,t.curveNumber=e.trace.index,{index:t.pointNumber,key:s,partOfGroup:t.partOfGroup||!1,group:t.group,traceId:e.key,trace:e.trace,node:t,nodePad:e.nodePad,nodeLineColor:e.nodeLineColor,nodeLineWidth:e.nodeLineWidth,textFont:e.textFont,size:e.horizontal?e.height:e.width,visibleWidth:Math.ceil(a),visibleHeight:o,zoneX:-n,zoneY:-i,zoneWidth:a+2*n,zoneHeight:o+2*i,labelY:e.horizontal?t.dy/2+1:t.dx/2+1,left:t.originalLayer===1,sizeAcross:e.width,forceLayouts:e.forceLayouts,horizontal:e.horizontal,darkBackground:r.getBrightness()<=128,tinyColorHue:aw.tinyRGB(r),tinyColorAlpha:r.getAlpha(),valueFormat:e.valueFormat,valueSuffix:e.valueSuffix,sankey:e.sankey,graph:e.graph,arrangement:e.arrangement,uniqueNodeLabelPathId:[e.guid,e.key,s].join("_"),interactionState:e.interactionState,figure:e}}function IJ(e){e.attr("transform",function(t){return RJ(t.node.x0.toFixed(3),t.node.y0.toFixed(3))})}function CWt(e){e.call(IJ)}function Ije(e,t){e.call(CWt),t.attr("d",zJ())}function Mje(e){e.attr("width",function(t){return t.node.x1-t.node.x0}).attr("height",function(t){return t.visibleHeight})}function PJ(e){return e.link.width>1||e.linkLineWidth>0}function Eje(e){var t=RJ(e.translateX,e.translateY);return t+(e.horizontal?"matrix(1 0 0 1 0 0)":"matrix(0 1 1 0 0 0)")}function kje(e,t,r){e.on(".basic",null).on("mouseover.basic",function(n){!n.interactionState.dragInProgress&&!n.partOfGroup&&(r.hover(this,n,t),n.interactionState.hovered=[this,n])}).on("mousemove.basic",function(n){!n.interactionState.dragInProgress&&!n.partOfGroup&&(r.follow(this,n),n.interactionState.hovered=[this,n])}).on("mouseout.basic",function(n){!n.interactionState.dragInProgress&&!n.partOfGroup&&(r.unhover(this,n,t),n.interactionState.hovered=!1)}).on("click.basic",function(n){n.interactionState.hovered&&(r.unhover(this,n,t),n.interactionState.hovered=!1),!n.interactionState.dragInProgress&&!n.partOfGroup&&r.select(this,n,t)})}function LWt(e,t,r,n){var i=LA.behavior.drag().origin(function(a){return{x:a.node.x0+a.visibleWidth/2,y:a.node.y0+a.visibleHeight/2}}).on("dragstart",function(a){if(a.arrangement!=="fixed"&&(p1.ensureSingle(n._fullLayout._infolayer,"g","dragcover",function(s){n._fullLayout._dragCover=s}),p1.raiseToTop(this),a.interactionState.dragInProgress=a.node,Cje(a.node),a.interactionState.hovered&&(r.nodeEvents.unhover.apply(0,a.interactionState.hovered),a.interactionState.hovered=!1),a.arrangement==="snap")){var o=a.traceId+"|"+a.key;a.forceLayouts[o]?a.forceLayouts[o].alpha(1):PWt(e,o,a,n),IWt(e,t,a,o,n)}}).on("drag",function(a){if(a.arrangement!=="fixed"){var o=LA.event.x,s=LA.event.y;a.arrangement==="snap"?(a.node.x0=o-a.visibleWidth/2,a.node.x1=o+a.visibleWidth/2,a.node.y0=s-a.visibleHeight/2,a.node.y1=s+a.visibleHeight/2):(a.arrangement==="freeform"&&(a.node.x0=o-a.visibleWidth/2,a.node.x1=o+a.visibleWidth/2),s=Math.max(0,Math.min(a.size-a.visibleHeight/2,s)),a.node.y0=s-a.visibleHeight/2,a.node.y1=s+a.visibleHeight/2),Cje(a.node),a.arrangement!=="snap"&&(a.sankey.update(a.graph),Ije(e.filter(Dje(a)),t))}}).on("dragend",function(a){if(a.arrangement!=="fixed"){a.interactionState.dragInProgress=!1;for(var o=0;o0)window.requestAnimationFrame(a);else{var l=r.node.originalX;r.node.x0=l-r.visibleWidth/2,r.node.x1=l+r.visibleWidth/2,Rje(r,i)}})}function RWt(e,t,r,n){return function(){for(var a=0,o=0;o0&&n.forceLayouts[t].alpha(0)}}function Rje(e,t){for(var r=[],n=[],i=0;i{"use strict";var Zv=xa(),qJ=Mr(),b7=qJ.numberFormat,qWt=Fje(),IA=Nc(),OWt=va(),Ax=LJ().cn,Gk=qJ._;function qje(e){return e!==""}function RA(e,t){return e.filter(function(r){return r.key===t.traceId})}function Oje(e,t){Zv.select(e).select("path").style("fill-opacity",t),Zv.select(e).select("rect").style("fill-opacity",t)}function Bje(e){Zv.select(e).select("text.name").style("fill","black")}function Nje(e){return function(t){return e.node.sourceLinks.indexOf(t.link)!==-1||e.node.targetLinks.indexOf(t.link)!==-1}}function Uje(e){return function(t){return t.node.sourceLinks.indexOf(e.link)!==-1||t.node.targetLinks.indexOf(e.link)!==-1}}function Vje(e,t,r){t&&r&&RA(r,t).selectAll("."+Ax.sankeyLink).filter(Nje(t)).call(Hje.bind(0,t,r,!1))}function FJ(e,t,r){t&&r&&RA(r,t).selectAll("."+Ax.sankeyLink).filter(Nje(t)).call(Gje.bind(0,t,r,!1))}function Hje(e,t,r,n){n.style("fill",function(i){if(!i.link.concentrationscale)return i.tinyColorHoverHue}).style("fill-opacity",function(i){if(!i.link.concentrationscale)return i.tinyColorHoverAlpha}),n.each(function(i){var a=i.link.label;a!==""&&RA(t,e).selectAll("."+Ax.sankeyLink).filter(function(o){return o.link.label===a}).style("fill",function(o){if(!o.link.concentrationscale)return o.tinyColorHoverHue}).style("fill-opacity",function(o){if(!o.link.concentrationscale)return o.tinyColorHoverAlpha})}),r&&RA(t,e).selectAll("."+Ax.sankeyNode).filter(Uje(e)).call(Vje)}function Gje(e,t,r,n){n.style("fill",function(i){return i.tinyColorHue}).style("fill-opacity",function(i){return i.tinyColorAlpha}),n.each(function(i){var a=i.link.label;a!==""&&RA(t,e).selectAll("."+Ax.sankeyLink).filter(function(o){return o.link.label===a}).style("fill",function(o){return o.tinyColorHue}).style("fill-opacity",function(o){return o.tinyColorAlpha})}),r&&RA(t,e).selectAll(Ax.sankeyNode).filter(Uje(e)).call(FJ)}function lf(e,t){var r=e.hoverlabel||{},n=qJ.nestedProperty(r,t).get();return Array.isArray(n)?!1:n}jje.exports=function(t,r){for(var n=t._fullLayout,i=n._paper,a=n._size,o=0;o"),color:lf(C,"bgcolor")||OWt.addOpacity(F.color,1),borderColor:lf(C,"bordercolor"),fontFamily:lf(C,"font.family"),fontSize:lf(C,"font.size"),fontColor:lf(C,"font.color"),fontWeight:lf(C,"font.weight"),fontStyle:lf(C,"font.style"),fontVariant:lf(C,"font.variant"),fontTextcase:lf(C,"font.textcase"),fontLineposition:lf(C,"font.lineposition"),fontShadow:lf(C,"font.shadow"),nameLength:lf(C,"namelength"),textAlign:lf(C,"align"),idealAlign:Zv.event.x"),color:lf(C,"bgcolor")||_.tinyColorHue,borderColor:lf(C,"bordercolor"),fontFamily:lf(C,"font.family"),fontSize:lf(C,"font.size"),fontColor:lf(C,"font.color"),fontWeight:lf(C,"font.weight"),fontStyle:lf(C,"font.style"),fontVariant:lf(C,"font.variant"),fontTextcase:lf(C,"font.textcase"),fontLineposition:lf(C,"font.lineposition"),fontShadow:lf(C,"font.shadow"),nameLength:lf(C,"namelength"),textAlign:lf(C,"align"),idealAlign:"left",hovertemplate:C.hovertemplate,hovertemplateLabels:V,eventData:[_.node]},{container:n._hoverlayer.node(),outerContainer:n._paper.node(),gd:t});Oje(G,.85),Bje(G)}}},A=function(L,_,C){t._fullLayout.hovermode!==!1&&(Zv.select(L).call(FJ,_,C),_.node.trace.node.hoverinfo!=="skip"&&(_.node.fullData=_.node.trace,t.emit("plotly_unhover",{event:Zv.event,points:[_.node]})),IA.loneUnhover(n._hoverlayer.node()))};qWt(t,i,r,{width:a.w,height:a.h,margin:{t:a.t,r:a.r,b:a.b,l:a.l}},{linkEvents:{hover:u,follow:x,unhover:b,select:l},nodeEvents:{hover:E,follow:k,unhover:A,select:g}})}});var Wje=ye(ow=>{"use strict";var BWt=Bu().overrideAll,NWt=kd().getModuleCalcData,UWt=OJ(),VWt=B1(),HWt=Tg(),GWt=gv(),jWt=wf().prepSelect,BJ=Mr(),WWt=ba(),w7="sankey";ow.name=w7;ow.baseLayoutAttrOverrides=BWt({hoverlabel:VWt.hoverlabel},"plot","nested");ow.plot=function(e){var t=NWt(e.calcdata,w7)[0];UWt(e,t),ow.updateFx(e)};ow.clean=function(e,t,r,n){var i=n._has&&n._has(w7),a=t._has&&t._has(w7);i&&!a&&(n._paperdiv.selectAll(".sankey").remove(),n._paperdiv.selectAll(".bgsankey").remove())};ow.updateFx=function(e){for(var t=0;t{"use strict";Zje.exports=function(t,r){for(var n=t.cd,i=[],a=n[0].trace,o=a._sankey.graph.nodes,s=0;s{"use strict";Yje.exports={attributes:EJ(),supplyDefaults:QGe(),calc:nje(),plot:OJ(),moduleType:"trace",name:"sankey",basePlotModule:Wje(),selectPoints:Xje(),categories:["noOpacity"],meta:{}}});var $je=ye((h_r,Jje)=>{"use strict";Jje.exports=Kje()});var eWe=ye(DA=>{"use strict";var Qje=Xu();DA.name="indicator";DA.plot=function(e,t,r,n){Qje.plotBasePlot(DA.name,e,t,r,n)};DA.clean=function(e,t,r,n){Qje.cleanBasePlot(DA.name,e,t,r,n)}});var UJ=ye((v_r,oWe)=>{"use strict";var Sx=no().extendFlat,rWe=no().extendDeep,XWt=Bu().overrideAll,iWe=Su(),nWe=dh(),YWt=Ju().attributes,Sf=Cd(),KWt=Vs().templatedArray,T7=HT(),tWe=Oc().descriptionOnlyNumbers,NJ=iWe({editType:"plot",colorEditType:"plot"}),jk={color:{valType:"color",editType:"plot"},line:{color:{valType:"color",dflt:nWe.defaultLine,editType:"plot"},width:{valType:"number",min:0,dflt:0,editType:"plot"},editType:"calc"},thickness:{valType:"number",min:0,max:1,dflt:1,editType:"plot"},editType:"calc"},aWe={valType:"info_array",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],editType:"plot"},JWt=KWt("step",rWe({},jk,{range:aWe}));oWe.exports={mode:{valType:"flaglist",editType:"calc",flags:["number","delta","gauge"],dflt:"number"},value:{valType:"number",editType:"calc",anim:!0},align:{valType:"enumerated",values:["left","center","right"],editType:"plot"},domain:YWt({name:"indicator",trace:!0,editType:"calc"}),title:{text:{valType:"string",editType:"plot"},align:{valType:"enumerated",values:["left","center","right"],editType:"plot"},font:Sx({},NJ,{}),editType:"plot"},number:{valueformat:{valType:"string",dflt:"",editType:"plot",description:tWe("value")},font:Sx({},NJ,{}),prefix:{valType:"string",dflt:"",editType:"plot"},suffix:{valType:"string",dflt:"",editType:"plot"},editType:"plot"},delta:{reference:{valType:"number",editType:"calc"},position:{valType:"enumerated",values:["top","bottom","left","right"],dflt:"bottom",editType:"plot"},relative:{valType:"boolean",editType:"plot",dflt:!1},valueformat:{valType:"string",editType:"plot",description:tWe("value")},increasing:{symbol:{valType:"string",dflt:T7.INCREASING.SYMBOL,editType:"plot"},color:{valType:"color",dflt:T7.INCREASING.COLOR,editType:"plot"},editType:"plot"},decreasing:{symbol:{valType:"string",dflt:T7.DECREASING.SYMBOL,editType:"plot"},color:{valType:"color",dflt:T7.DECREASING.COLOR,editType:"plot"},editType:"plot"},font:Sx({},NJ,{}),prefix:{valType:"string",dflt:"",editType:"plot"},suffix:{valType:"string",dflt:"",editType:"plot"},editType:"calc"},gauge:{shape:{valType:"enumerated",editType:"plot",dflt:"angular",values:["angular","bullet"]},bar:rWe({},jk,{color:{dflt:"green"}}),bgcolor:{valType:"color",editType:"plot"},bordercolor:{valType:"color",dflt:nWe.defaultLine,editType:"plot"},borderwidth:{valType:"number",min:0,dflt:1,editType:"plot"},axis:XWt({range:aWe,visible:Sx({},Sf.visible,{dflt:!0}),tickmode:Sf.minor.tickmode,nticks:Sf.nticks,tick0:Sf.tick0,dtick:Sf.dtick,tickvals:Sf.tickvals,ticktext:Sf.ticktext,ticks:Sx({},Sf.ticks,{dflt:"outside"}),ticklen:Sf.ticklen,tickwidth:Sf.tickwidth,tickcolor:Sf.tickcolor,ticklabelstep:Sf.ticklabelstep,showticklabels:Sf.showticklabels,labelalias:Sf.labelalias,tickfont:iWe({}),tickangle:Sf.tickangle,tickformat:Sf.tickformat,tickformatstops:Sf.tickformatstops,tickprefix:Sf.tickprefix,showtickprefix:Sf.showtickprefix,ticksuffix:Sf.ticksuffix,showticksuffix:Sf.showticksuffix,separatethousands:Sf.separatethousands,exponentformat:Sf.exponentformat,minexponent:Sf.minexponent,showexponent:Sf.showexponent,editType:"plot"},"plot"),steps:JWt,threshold:{line:{color:Sx({},jk.line.color,{}),width:Sx({},jk.line.width,{dflt:1}),editType:"plot"},thickness:Sx({},jk.thickness,{dflt:.85}),value:{valType:"number",editType:"calc",dflt:!1},editType:"plot"},editType:"plot"}}});var VJ=ye((p_r,sWe)=>{"use strict";sWe.exports={defaultNumberFontSize:80,bulletNumberDomainSize:.25,bulletPadding:.025,innerRadius:.75,valueThickness:.5,titlePadding:5,horizontalPadding:10}});var cWe=ye((g_r,uWe)=>{"use strict";var ey=Mr(),S7=UJ(),$Wt=Ju().defaults,lWe=Vs(),QWt=Zd(),A7=VJ(),eZt=xb(),tZt=T3(),rZt=e_(),iZt=t_();function nZt(e,t,r,n){function i(_,C){return ey.coerce(e,t,S7,_,C)}$Wt(t,n,i),i("mode"),t._hasNumber=t.mode.indexOf("number")!==-1,t._hasDelta=t.mode.indexOf("delta")!==-1,t._hasGauge=t.mode.indexOf("gauge")!==-1;var a=i("value");t._range=[0,typeof a=="number"?1.5*a:1];var o=new Array(2),s;if(t._hasNumber){i("number.valueformat");var l=ey.extendFlat({},n.font);l.size=void 0,ey.coerceFont(i,"number.font",l),t.number.font.size===void 0&&(t.number.font.size=A7.defaultNumberFontSize,o[0]=!0),i("number.prefix"),i("number.suffix"),s=t.number.font.size}var u;if(t._hasDelta){var c=ey.extendFlat({},n.font);c.size=void 0,ey.coerceFont(i,"delta.font",c),t.delta.font.size===void 0&&(t.delta.font.size=(t._hasNumber?.5:1)*(s||A7.defaultNumberFontSize),o[1]=!0),i("delta.reference",t.value),i("delta.relative"),i("delta.valueformat",t.delta.relative?"2%":""),i("delta.increasing.symbol"),i("delta.increasing.color"),i("delta.decreasing.symbol"),i("delta.decreasing.color"),i("delta.position"),i("delta.prefix"),i("delta.suffix"),u=t.delta.font.size}t._scaleNumbers=(!t._hasNumber||o[0])&&(!t._hasDelta||o[1])||!1;var f=ey.extendFlat({},n.font);f.size=.25*(s||u||A7.defaultNumberFontSize),ey.coerceFont(i,"title.font",f),i("title.text");var h,d,v,x;function b(_,C){return ey.coerce(h,d,S7.gauge,_,C)}function g(_,C){return ey.coerce(v,x,S7.gauge.axis,_,C)}if(t._hasGauge){h=e.gauge,h||(h={}),d=lWe.newContainer(t,"gauge"),b("shape");var E=t._isBullet=t.gauge.shape==="bullet";E||i("title.align","center");var k=t._isAngular=t.gauge.shape==="angular";k||i("align","center"),b("bgcolor",n.paper_bgcolor),b("borderwidth"),b("bordercolor"),b("bar.color"),b("bar.line.color"),b("bar.line.width");var A=A7.valueThickness*(t.gauge.shape==="bullet"?.5:1);b("bar.thickness",A),QWt(h,d,{name:"steps",handleItemDefaults:aZt}),b("threshold.value"),b("threshold.thickness"),b("threshold.line.width"),b("threshold.line.color"),v={},h&&(v=h.axis||{}),x=lWe.newContainer(d,"axis"),g("visible"),t._range=g("range",t._range);var L={font:n.font,noAutotickangles:!0,outerTicks:!0,noTicklabelshift:!0,noTicklabelstandoff:!0};eZt(v,x,g,"linear"),iZt(v,x,g,"linear",L),rZt(v,x,g,"linear",L),tZt(v,x,g,L)}else i("title.align","center"),i("align","center"),t._isAngular=t._isBullet=!1;t._length=null}function aZt(e,t){function r(n,i){return ey.coerce(e,t,S7.gauge.steps,n,i)}r("color"),r("line.color"),r("line.width"),r("range"),r("thickness")}uWe.exports={supplyDefaults:nZt}});var hWe=ye((m_r,fWe)=>{"use strict";function oZt(e,t){var r=[],n=t.value;typeof t._lastValue!="number"&&(t._lastValue=t.value);var i=t._lastValue,a=i;return t._hasDelta&&typeof t.delta.reference=="number"&&(a=t.delta.reference),r[0]={y:n,lastY:i,delta:n-a,relativeDelta:(n-a)/a},r}fWe.exports={calc:oZt}});var yWe=ye((y_r,mWe)=>{"use strict";var fw=xa(),sZt=(R2(),ab(I2)).interpolate,dWe=(R2(),ab(I2)).interpolateNumber,Mx=Mr(),lZt=Mx.strScale,Zk=Mx.strTranslate,uZt=Mx.rad2deg,cZt=Nh().MID_SHIFT,cw=ao(),sw=VJ(),E7=Ll(),av=Qa(),fZt=JM(),hZt=rI(),dZt=Cd(),zA=va(),HJ={left:"start",center:"middle",right:"end"},lw={left:0,center:.5,right:1},vWe=/[yzafpnµmkMGTPEZY]/;function Xk(e){return e&&e.duration>0}mWe.exports=function(t,r,n,i){var a=t._fullLayout,o;Xk(n)&&i&&(o=i()),Mx.makeTraceGroups(a._indicatorlayer,r,"trace").each(function(s){var l=s[0],u=l.trace,c=fw.select(this),f=u._hasGauge,h=u._isAngular,d=u._isBullet,v=u.domain,x={w:a._size.w*(v.x[1]-v.x[0]),h:a._size.h*(v.y[1]-v.y[0]),l:a._size.l+a._size.w*v.x[0],r:a._size.r+a._size.w*(1-v.x[1]),t:a._size.t+a._size.h*(1-v.y[1]),b:a._size.b+a._size.h*v.y[0]},b=x.l+x.w/2,g=x.t+x.h/2,E=Math.min(x.w/2,x.h),k=sw.innerRadius*E,A,L,_,C=u.align||"center";if(L=g,!f)A=x.l+lw[C]*x.w,_=function(G){return pWe(G,x.w,x.h)};else if(h&&(A=b,L=g+E/2,_=function(G){return yZt(G,.9*k)}),d){var M=sw.bulletPadding,p=1-sw.bulletNumberDomainSize+M;A=x.l+(p+(1-p)*lw[C])*x.w,_=function(G){return pWe(G,(sw.bulletNumberDomainSize-M)*x.w,x.h)}}gZt(t,c,s,{numbersX:A,numbersY:L,numbersScaler:_,transitionOpts:n,onComplete:o});var P,T;f&&(P={range:u.gauge.axis.range,color:u.gauge.bgcolor,line:{color:u.gauge.bordercolor,width:0},thickness:1},T={range:u.gauge.axis.range,color:"rgba(0, 0, 0, 0)",line:{color:u.gauge.bordercolor,width:u.gauge.borderwidth},thickness:1});var F=c.selectAll("g.angular").data(h?s:[]);F.exit().remove();var q=c.selectAll("g.angularaxis").data(h?s:[]);q.exit().remove(),h&&pZt(t,c,s,{radius:E,innerRadius:k,gauge:F,layer:q,size:x,gaugeBg:P,gaugeOutline:T,transitionOpts:n,onComplete:o});var V=c.selectAll("g.bullet").data(d?s:[]);V.exit().remove();var H=c.selectAll("g.bulletaxis").data(d?s:[]);H.exit().remove(),d&&vZt(t,c,s,{gauge:V,layer:H,size:x,gaugeBg:P,gaugeOutline:T,transitionOpts:n,onComplete:o});var X=c.selectAll("text.title").data(s);X.exit().remove(),X.enter().append("text").classed("title",!0),X.attr("text-anchor",function(){return d?HJ.right:HJ[u.title.align]}).text(u.title.text).call(cw.font,u.title.font).call(E7.convertToTspans,t),X.attr("transform",function(){var G=x.l+x.w*lw[u.title.align],N,W=sw.titlePadding,re=cw.bBox(X.node());if(f){if(h)if(u.gauge.axis.visible){var ae=cw.bBox(q.node());N=ae.top-W-re.bottom}else N=x.t+x.h/2-E/2-re.bottom-W;d&&(N=L-(re.top+re.bottom)/2,G=x.l-sw.bulletPadding*x.w)}else N=u._numbersTop-W-re.bottom;return Zk(G,N)})})};function vZt(e,t,r,n){var i=r[0].trace,a=n.gauge,o=n.layer,s=n.gaugeBg,l=n.gaugeOutline,u=n.size,c=i.domain,f=n.transitionOpts,h=n.onComplete,d,v,x,b,g;a.enter().append("g").classed("bullet",!0),a.attr("transform",Zk(u.l,u.t)),o.enter().append("g").classed("bulletaxis",!0).classed("crisp",!0),o.selectAll("g.xbulletaxistick,path,text").remove();var E=u.h,k=i.gauge.bar.thickness*E,A=c.x[0],L=c.x[0]+(c.x[1]-c.x[0])*(i._hasNumber||i._hasDelta?1-sw.bulletNumberDomainSize:1);d=Wk(e,i.gauge.axis),d._id="xbulletaxis",d.domain=[A,L],d.setScale(),v=av.calcTicks(d),x=av.makeTransTickFn(d),b=av.getTickSigns(d)[2],g=u.t+u.h,d.visible&&(av.drawTicks(e,d,{vals:d.ticks==="inside"?av.clipEnds(d,v):v,layer:o,path:av.makeTickPath(d,g,b),transFn:x}),av.drawLabels(e,d,{vals:v,layer:o,transFn:x,labelFns:av.makeLabelFns(d,g)}));function _(q){q.attr("width",function(V){return Math.max(0,d.c2p(V.range[1])-d.c2p(V.range[0]))}).attr("x",function(V){return d.c2p(V.range[0])}).attr("y",function(V){return .5*(1-V.thickness)*E}).attr("height",function(V){return V.thickness*E})}var C=[s].concat(i.gauge.steps),M=a.selectAll("g.bg-bullet").data(C);M.enter().append("g").classed("bg-bullet",!0).append("rect"),M.select("rect").call(_).call(uw),M.exit().remove();var p=a.selectAll("g.value-bullet").data([i.gauge.bar]);p.enter().append("g").classed("value-bullet",!0).append("rect"),p.select("rect").attr("height",k).attr("y",(E-k)/2).call(uw),Xk(f)?p.select("rect").transition().duration(f.duration).ease(f.easing).each("end",function(){h&&h()}).each("interrupt",function(){h&&h()}).attr("width",Math.max(0,d.c2p(Math.min(i.gauge.axis.range[1],r[0].y)))):p.select("rect").attr("width",typeof r[0].y=="number"?Math.max(0,d.c2p(Math.min(i.gauge.axis.range[1],r[0].y))):0),p.exit().remove();var P=r.filter(function(){return i.gauge.threshold.value||i.gauge.threshold.value===0}),T=a.selectAll("g.threshold-bullet").data(P);T.enter().append("g").classed("threshold-bullet",!0).append("line"),T.select("line").attr("x1",d.c2p(i.gauge.threshold.value)).attr("x2",d.c2p(i.gauge.threshold.value)).attr("y1",(1-i.gauge.threshold.thickness)/2*E).attr("y2",(1-(1-i.gauge.threshold.thickness)/2)*E).call(zA.stroke,i.gauge.threshold.line.color).style("stroke-width",i.gauge.threshold.line.width),T.exit().remove();var F=a.selectAll("g.gauge-outline").data([l]);F.enter().append("g").classed("gauge-outline",!0).append("rect"),F.select("rect").call(_).call(uw),F.exit().remove()}function pZt(e,t,r,n){var i=r[0].trace,a=n.size,o=n.radius,s=n.innerRadius,l=n.gaugeBg,u=n.gaugeOutline,c=[a.l+a.w/2,a.t+a.h/2+o/2],f=n.gauge,h=n.layer,d=n.transitionOpts,v=n.onComplete,x=Math.PI/2;function b(_e){var Me=i.gauge.axis.range[0],ke=i.gauge.axis.range[1],ge=(_e-Me)/(ke-Me)*Math.PI-x;return ge<-x?-x:ge>x?x:ge}function g(_e){return fw.svg.arc().innerRadius((s+o)/2-_e/2*(o-s)).outerRadius((s+o)/2+_e/2*(o-s)).startAngle(-x)}function E(_e){_e.attr("d",function(Me){return g(Me.thickness).startAngle(b(Me.range[0])).endAngle(b(Me.range[1]))()})}var k,A,L,_;f.enter().append("g").classed("angular",!0),f.attr("transform",Zk(c[0],c[1])),h.enter().append("g").classed("angularaxis",!0).classed("crisp",!0),h.selectAll("g.xangularaxistick,path,text").remove(),k=Wk(e,i.gauge.axis),k.type="linear",k.range=i.gauge.axis.range,k._id="xangularaxis",k.ticklabeloverflow="allow",k.setScale();var C=function(_e){return(k.range[0]-_e.x)/(k.range[1]-k.range[0])*Math.PI+Math.PI},M={},p=av.makeLabelFns(k,0),P=p.labelStandoff;M.xFn=function(_e){var Me=C(_e);return Math.cos(Me)*P},M.yFn=function(_e){var Me=C(_e),ke=Math.sin(Me)>0?.2:1;return-Math.sin(Me)*(P+_e.fontSize*ke)+Math.abs(Math.cos(Me))*(_e.fontSize*cZt)},M.anchorFn=function(_e){var Me=C(_e),ke=Math.cos(Me);return Math.abs(ke)<.1?"middle":ke>0?"start":"end"},M.heightFn=function(_e,Me,ke){var ge=C(_e);return-.5*(1+Math.sin(ge))*ke};var T=function(_e){return Zk(c[0]+o*Math.cos(_e),c[1]-o*Math.sin(_e))};L=function(_e){return T(C(_e))};var F=function(_e){var Me=C(_e);return T(Me)+"rotate("+-uZt(Me)+")"};if(A=av.calcTicks(k),_=av.getTickSigns(k)[2],k.visible){_=k.ticks==="inside"?-1:1;var q=(k.linewidth||1)/2;av.drawTicks(e,k,{vals:A,layer:h,path:"M"+_*q+",0h"+_*k.ticklen,transFn:F}),av.drawLabels(e,k,{vals:A,layer:h,transFn:L,labelFns:M})}var V=[l].concat(i.gauge.steps),H=f.selectAll("g.bg-arc").data(V);H.enter().append("g").classed("bg-arc",!0).append("path"),H.select("path").call(E).call(uw),H.exit().remove();var X=g(i.gauge.bar.thickness),G=f.selectAll("g.value-arc").data([i.gauge.bar]);G.enter().append("g").classed("value-arc",!0).append("path");var N=G.select("path");Xk(d)?(N.transition().duration(d.duration).ease(d.easing).each("end",function(){v&&v()}).each("interrupt",function(){v&&v()}).attrTween("d",mZt(X,b(r[0].lastY),b(r[0].y))),i._lastValue=r[0].y):N.attr("d",typeof r[0].y=="number"?X.endAngle(b(r[0].y)):"M0,0Z"),N.call(uw),G.exit().remove(),V=[];var W=i.gauge.threshold.value;(W||W===0)&&V.push({range:[W,W],color:i.gauge.threshold.color,line:{color:i.gauge.threshold.line.color,width:i.gauge.threshold.line.width},thickness:i.gauge.threshold.thickness});var re=f.selectAll("g.threshold-arc").data(V);re.enter().append("g").classed("threshold-arc",!0).append("path"),re.select("path").call(E).call(uw),re.exit().remove();var ae=f.selectAll("g.gauge-outline").data([u]);ae.enter().append("g").classed("gauge-outline",!0).append("path"),ae.select("path").call(E).call(uw),ae.exit().remove()}function gZt(e,t,r,n){var i=r[0].trace,a=n.numbersX,o=n.numbersY,s=i.align||"center",l=HJ[s],u=n.transitionOpts,c=n.onComplete,f=Mx.ensureSingle(t,"g","numbers"),h,d,v,x=[];i._hasNumber&&x.push("number"),i._hasDelta&&(x.push("delta"),i.delta.position==="left"&&x.reverse());var b=f.selectAll("text").data(x);b.enter().append("text"),b.attr("text-anchor",function(){return l}).attr("class",function(T){return T}).attr("x",null).attr("y",null).attr("dx",null).attr("dy",null),b.exit().remove();function g(T,F,q,V){if(T.match("s")&&q>=0!=V>=0&&!F(q).slice(-1).match(vWe)&&!F(V).slice(-1).match(vWe)){var H=T.slice().replace("s","f").replace(/\d+/,function(G){return parseInt(G)-1}),X=Wk(e,{tickformat:H});return function(G){return Math.abs(G)<1?av.tickText(X,G).text:F(G)}}else return F}function E(){var T=Wk(e,{tickformat:i.number.valueformat},i._range);T.setScale(),av.prepTicks(T);var F=function(G){return av.tickText(T,G).text},q=i.number.suffix,V=i.number.prefix,H=f.select("text.number");function X(){var G=typeof r[0].y=="number"?V+F(r[0].y)+q:"-";H.text(G).call(cw.font,i.number.font).call(E7.convertToTspans,e)}return Xk(u)?H.transition().duration(u.duration).ease(u.easing).each("end",function(){X(),c&&c()}).each("interrupt",function(){X(),c&&c()}).attrTween("text",function(){var G=fw.select(this),N=dWe(r[0].lastY,r[0].y);i._lastValue=r[0].y;var W=g(i.number.valueformat,F,r[0].lastY,r[0].y);return function(re){G.text(V+W(N(re))+q)}}):X(),h=gWe(V+F(r[0].y)+q,i.number.font,l,e),H}function k(){var T=Wk(e,{tickformat:i.delta.valueformat},i._range);T.setScale(),av.prepTicks(T);var F=function(re){return av.tickText(T,re).text},q=i.delta.suffix,V=i.delta.prefix,H=function(re){var ae=i.delta.relative?re.relativeDelta:re.delta;return ae},X=function(re,ae){return re===0||typeof re!="number"||isNaN(re)?"-":(re>0?i.delta.increasing.symbol:i.delta.decreasing.symbol)+V+ae(re)+q},G=function(re){return re.delta>=0?i.delta.increasing.color:i.delta.decreasing.color};i._deltaLastValue===void 0&&(i._deltaLastValue=H(r[0]));var N=f.select("text.delta");N.call(cw.font,i.delta.font).call(zA.fill,G({delta:i._deltaLastValue}));function W(){N.text(X(H(r[0]),F)).call(zA.fill,G(r[0])).call(E7.convertToTspans,e)}return Xk(u)?N.transition().duration(u.duration).ease(u.easing).tween("text",function(){var re=fw.select(this),ae=H(r[0]),_e=i._deltaLastValue,Me=g(i.delta.valueformat,F,_e,ae),ke=dWe(_e,ae);return i._deltaLastValue=ae,function(ge){re.text(X(ke(ge),Me)),re.call(zA.fill,G({delta:ke(ge)}))}}).each("end",function(){W(),c&&c()}).each("interrupt",function(){W(),c&&c()}):W(),d=gWe(X(H(r[0]),F),i.delta.font,l,e),N}var A=i.mode+i.align,L;if(i._hasDelta&&(L=k(),A+=i.delta.position+i.delta.font.size+i.delta.font.family+i.delta.valueformat,A+=i.delta.increasing.symbol+i.delta.decreasing.symbol,v=d),i._hasNumber&&(E(),A+=i.number.font.size+i.number.font.family+i.number.valueformat+i.number.suffix+i.number.prefix,v=h),i._hasDelta&&i._hasNumber){var _=[(h.left+h.right)/2,(h.top+h.bottom)/2],C=[(d.left+d.right)/2,(d.top+d.bottom)/2],M,p,P=.75*i.delta.font.size;i.delta.position==="left"&&(M=M7(i,"deltaPos",0,-1*(h.width*lw[i.align]+d.width*(1-lw[i.align])+P),A,Math.min),p=_[1]-C[1],v={width:h.width+d.width+P,height:Math.max(h.height,d.height),left:d.left+M,right:h.right,top:Math.min(h.top,d.top+p),bottom:Math.max(h.bottom,d.bottom+p)}),i.delta.position==="right"&&(M=M7(i,"deltaPos",0,h.width*(1-lw[i.align])+d.width*lw[i.align]+P,A,Math.max),p=_[1]-C[1],v={width:h.width+d.width+P,height:Math.max(h.height,d.height),left:h.left,right:d.right+M,top:Math.min(h.top,d.top+p),bottom:Math.max(h.bottom,d.bottom+p)}),i.delta.position==="bottom"&&(M=null,p=d.height,v={width:Math.max(h.width,d.width),height:h.height+d.height,left:Math.min(h.left,d.left),right:Math.max(h.right,d.right),top:h.bottom-h.height,bottom:h.bottom+d.height}),i.delta.position==="top"&&(M=null,p=h.top,v={width:Math.max(h.width,d.width),height:h.height+d.height,left:Math.min(h.left,d.left),right:Math.max(h.right,d.right),top:h.bottom-h.height-d.height,bottom:h.bottom}),L.attr({dx:M,dy:p})}(i._hasNumber||i._hasDelta)&&f.attr("transform",function(){var T=n.numbersScaler(v);A+=T[2];var F=M7(i,"numbersScale",1,T[0],A,Math.min),q;i._scaleNumbers||(F=1),i._isAngular?q=o-F*v.bottom:q=o-F*(v.top+v.bottom)/2,i._numbersTop=F*v.top+q;var V=v[s];s==="center"&&(V=(v.left+v.right)/2);var H=a-F*V;return H=M7(i,"numbersTranslate",0,H,A,Math.max),Zk(H,q)+lZt(F)})}function uw(e){e.each(function(t){zA.stroke(fw.select(this),t.line.color)}).each(function(t){zA.fill(fw.select(this),t.color)}).style("stroke-width",function(t){return t.line.width})}function mZt(e,t,r){return function(){var n=sZt(t,r);return function(i){return e.endAngle(n(i))()}}}function Wk(e,t,r){var n=e._fullLayout,i=Mx.extendFlat({type:"linear",ticks:"outside",range:r,showline:!0},t),a={type:"linear",_id:"x"+t._id},o={letter:"x",font:n.font,noAutotickangles:!0,noHover:!0,noTickson:!0};function s(l,u){return Mx.coerce(i,a,dZt,l,u)}return fZt(i,a,s,o,n),hZt(i,a,s,o),a}function pWe(e,t,r){var n=Math.min(t/e.width,r/e.height);return[n,e,t+"x"+r]}function yZt(e,t){var r=Math.sqrt(e.width/2*(e.width/2)+e.height*e.height),n=t/r;return[n,e,t]}function gWe(e,t,r,n){var i=document.createElementNS("http://www.w3.org/2000/svg","text"),a=fw.select(i);return a.text(e).attr("x",0).attr("y",0).attr("text-anchor",r).attr("data-unformatted",e).call(E7.convertToTspans,n).call(cw.font,t),cw.bBox(a.node())}function M7(e,t,r,n,i,a){var o="_cache"+t;e[o]&&e[o].key===i||(e[o]={key:i,value:r});var s=Mx.aggNums(a,null,[e[o].value,n],2);return e[o].value=s,s}});var xWe=ye((__r,_We)=>{"use strict";_We.exports={moduleType:"trace",name:"indicator",basePlotModule:eWe(),categories:["svg","noOpacity","noHover"],animatable:!0,attributes:UJ(),supplyDefaults:cWe().supplyDefaults,calc:hWe().calc,plot:yWe(),meta:{}}});var wWe=ye((x_r,bWe)=>{"use strict";bWe.exports=xWe()});var GJ=ye((w_r,MWe)=>{"use strict";var TWe=Nb(),k7=no().extendFlat,_Zt=Bu().overrideAll,AWe=Su(),xZt=Ju().attributes,SWe=Oc().descriptionOnlyNumbers,b_r=MWe.exports=_Zt({domain:xZt({name:"table",trace:!0}),columnwidth:{valType:"number",arrayOk:!0,dflt:null},columnorder:{valType:"data_array"},header:{values:{valType:"data_array",dflt:[]},format:{valType:"data_array",dflt:[],description:SWe("cell value")},prefix:{valType:"string",arrayOk:!0,dflt:null},suffix:{valType:"string",arrayOk:!0,dflt:null},height:{valType:"number",dflt:28},align:k7({},TWe.align,{arrayOk:!0}),line:{width:{valType:"number",arrayOk:!0,dflt:1},color:{valType:"color",arrayOk:!0,dflt:"grey"}},fill:{color:{valType:"color",arrayOk:!0,dflt:"white"}},font:k7({},AWe({arrayOk:!0}))},cells:{values:{valType:"data_array",dflt:[]},format:{valType:"data_array",dflt:[],description:SWe("cell value")},prefix:{valType:"string",arrayOk:!0,dflt:null},suffix:{valType:"string",arrayOk:!0,dflt:null},height:{valType:"number",dflt:20},align:k7({},TWe.align,{arrayOk:!0}),line:{width:{valType:"number",arrayOk:!0,dflt:1},color:{valType:"color",arrayOk:!0,dflt:"grey"}},fill:{color:{valType:"color",arrayOk:!0,dflt:"white"}},font:k7({},AWe({arrayOk:!0}))}},"calc","from-root")});var kWe=ye((T_r,EWe)=>{"use strict";var jJ=Mr(),bZt=GJ(),wZt=Ju().defaults;function TZt(e,t){for(var r=e.columnorder||[],n=e.header.values.length,i=r.slice(0,n),a=i.slice().sort(function(l,u){return l-u}),o=i.map(function(l){return a.indexOf(l)}),s=o.length;s{"use strict";var AZt=Km().wrap;CWe.exports=function(){return AZt({})}});var WJ=ye((S_r,PWe)=>{"use strict";PWe.exports={cellPad:8,columnExtentOffset:10,columnTitleOffset:28,emptyHeaderHeight:16,latexCheck:/^\$.*\$$/,goldenRatio:1.618,lineBreaker:"
",maxDimensionCount:60,overdrag:45,releaseTransitionDuration:120,releaseTransitionEase:"cubic-out",scrollbarCaptureWidth:18,scrollbarHideDelay:1e3,scrollbarHideDuration:1e3,scrollbarOffset:5,scrollbarWidth:8,transitionDuration:100,transitionEase:"cubic-out",uplift:5,wrapSpacer:" ",wrapSplitCharacter:" ",cn:{table:"table",tableControlView:"table-control-view",scrollBackground:"scroll-background",yColumn:"y-column",columnBlock:"column-block",scrollAreaClip:"scroll-area-clip",scrollAreaClipRect:"scroll-area-clip-rect",columnBoundary:"column-boundary",columnBoundaryClippath:"column-boundary-clippath",columnBoundaryRect:"column-boundary-rect",columnCells:"column-cells",columnCell:"column-cell",cellRect:"cell-rect",cellText:"cell-text",cellTextHolder:"cell-text-holder",scrollbarKit:"scrollbar-kit",scrollbar:"scrollbar",scrollbarSlider:"scrollbar-slider",scrollbarGlyph:"scrollbar-glyph",scrollbarCaptureZone:"scrollbar-capture-zone"}}});var NWe=ye((M_r,BWe)=>{"use strict";var IWe=WJ(),XJ=no().extendFlat,SZt=uo(),MZt=vv().isTypedArray,C7=vv().isArrayOrTypedArray;BWe.exports=function(t,r){var n=ZJ(r.cells.values),i=function(p){return p.slice(r.header.values.length,p.length)},a=ZJ(r.header.values);a.length&&!a[0].length&&(a[0]=[""],a=ZJ(a));var o=a.concat(i(n).map(function(){return OWe((a[0]||[""]).length)})),s=r.domain,l=Math.floor(t._fullLayout._size.w*(s.x[1]-s.x[0])),u=Math.floor(t._fullLayout._size.h*(s.y[1]-s.y[0])),c=r.header.values.length?o[0].map(function(){return r.header.height}):[IWe.emptyHeaderHeight],f=n.length?n[0].map(function(){return r.cells.height}):[],h=c.reduce(RWe,0),d=u-h,v=d+IWe.uplift,x=FWe(f,v),b=FWe(c,h),g=zWe(b,[]),E=zWe(x,g),k={},A=r._fullInput.columnorder;C7(A)&&(A=Array.from(A)),A=A.concat(i(n.map(function(p,P){return P})));var L=o.map(function(p,P){var T=C7(r.columnwidth)?r.columnwidth[Math.min(P,r.columnwidth.length-1)]:r.columnwidth;return SZt(T)?Number(T):1}),_=L.reduce(RWe,0);L=L.map(function(p){return p/_*l});var C=Math.max(YJ(r.header.line.width),YJ(r.cells.line.width)),M={key:r.uid+t._context.staticPlot,translateX:s.x[0]*t._fullLayout._size.w,translateY:t._fullLayout._size.h*(1-s.y[1]),size:t._fullLayout._size,width:l,maxLineWidth:C,height:u,columnOrder:A,groupHeight:u,rowBlocks:E,headerRowBlocks:g,scrollY:0,cells:XJ({},r.cells,{values:n}),headerCells:XJ({},r.header,{values:o}),gdColumns:o.map(function(p){return p[0]}),gdColumnsOriginalOrder:o.map(function(p){return p[0]}),prevPages:[0,0],scrollbarState:{scrollbarScrollInProgress:!1},columns:o.map(function(p,P){var T=k[p];k[p]=(T||0)+1;var F=p+"__"+k[p];return{key:F,label:p,specIndex:P,xIndex:A[P],xScale:DWe,x:void 0,calcdata:void 0,columnWidth:L[P]}})};return M.columns.forEach(function(p){p.calcdata=M,p.x=DWe(p)}),M};function YJ(e){if(C7(e)){for(var t=0,r=0;r=t||u===e.length-1)&&(r[i]=o,o.key=l++,o.firstRowIndex=s,o.lastRowIndex=u,o=qWe(),i+=a,s=u+1,a=0);return r}function qWe(){return{firstRowIndex:null,lastRowIndex:null,rows:[]}}});var UWe=ye(KJ=>{"use strict";var L7=no().extendFlat;KJ.splitToPanels=function(e){var t=[0,0],r=L7({},e,{key:"header",type:"header",page:0,prevPages:t,currentRepaint:[null,null],dragHandle:!0,values:e.calcdata.headerCells.values[e.specIndex],rowBlocks:e.calcdata.headerRowBlocks,calcdata:L7({},e.calcdata,{cells:e.calcdata.headerCells})}),n=L7({},e,{key:"cells1",type:"cells",page:0,prevPages:t,currentRepaint:[null,null],dragHandle:!1,values:e.calcdata.cells.values[e.specIndex],rowBlocks:e.calcdata.rowBlocks}),i=L7({},e,{key:"cells2",type:"cells",page:1,prevPages:t,currentRepaint:[null,null],dragHandle:!1,values:e.calcdata.cells.values[e.specIndex],rowBlocks:e.calcdata.rowBlocks});return[n,i,r]};KJ.splitToCells=function(e){var t=EZt(e);return(e.values||[]).slice(t[0],t[1]).map(function(r,n){var i=typeof r=="string"&&r.match(/[<$&> ]/)?"_keybuster_"+Math.random():"";return{keyWithinBlock:n+i,key:t[0]+n,column:e,calcdata:e.calcdata,page:e.page,rowBlocks:e.rowBlocks,value:r}})};function EZt(e){var t=e.rowBlocks[e.page],r=t?t.rows[0].rowIndex:0,n=t?r+t.rows.length:0;return[r,n]}});var o$=ye((k_r,$We)=>{"use strict";var Ia=WJ(),Mc=xa(),JJ=Mr(),kZt=JJ.numberFormat,gu=Km(),$J=ao(),CZt=Ll(),LZt=Mr().raiseToTop,og=Mr().strTranslate,PZt=Mr().cancelTransition,IZt=NWe(),XWe=UWe(),VWe=va();$We.exports=function(t,r){var n=!t._context.staticPlot,i=t._fullLayout._paper.selectAll("."+Ia.cn.table).data(r.map(function(E){var k=gu.unwrap(E),A=k.trace;return IZt(t,A)}),gu.keyFun);i.exit().remove(),i.enter().append("g").classed(Ia.cn.table,!0).attr("overflow","visible").style("box-sizing","content-box").style("position","absolute").style("left",0).style("overflow","visible").style("shape-rendering","crispEdges").style("pointer-events","all"),i.attr("width",function(E){return E.width+E.size.l+E.size.r}).attr("height",function(E){return E.height+E.size.t+E.size.b}).attr("transform",function(E){return og(E.translateX,E.translateY)});var a=i.selectAll("."+Ia.cn.tableControlView).data(gu.repeat,gu.keyFun),o=a.enter().append("g").classed(Ia.cn.tableControlView,!0).style("box-sizing","content-box");if(n){var s="onwheel"in document?"wheel":"mousewheel";o.on("mousemove",function(E){a.filter(function(k){return E===k}).call(Yk,t)}).on(s,function(E){if(!E.scrollbarState.wheeling){E.scrollbarState.wheeling=!0;var k=E.scrollY+Mc.event.deltaY,A=I7(t,a,null,k)(E);A||(Mc.event.stopPropagation(),Mc.event.preventDefault()),E.scrollbarState.wheeling=!1}}).call(Yk,t,!0)}a.attr("transform",function(E){return og(E.size.l,E.size.t)});var l=a.selectAll("."+Ia.cn.scrollBackground).data(gu.repeat,gu.keyFun);l.enter().append("rect").classed(Ia.cn.scrollBackground,!0).attr("fill","none"),l.attr("width",function(E){return E.width}).attr("height",function(E){return E.height}),a.each(function(E){$J.setClipUrl(Mc.select(this),HWe(t,E),t)});var u=a.selectAll("."+Ia.cn.yColumn).data(function(E){return E.columns},gu.keyFun);u.enter().append("g").classed(Ia.cn.yColumn,!0),u.exit().remove(),u.attr("transform",function(E){return og(E.x,0)}),n&&u.call(Mc.behavior.drag().origin(function(E){var k=Mc.select(this);return WWe(k,E,-Ia.uplift),LZt(this),E.calcdata.columnDragInProgress=!0,Yk(a.filter(function(A){return E.calcdata.key===A.key}),t),E}).on("drag",function(E){var k=Mc.select(this),A=function(C){return(E===C?Mc.event.x:C.x)+C.columnWidth/2};E.x=Math.max(-Ia.overdrag,Math.min(E.calcdata.width+Ia.overdrag-E.columnWidth,Mc.event.x));var L=YWe(u).filter(function(C){return C.calcdata.key===E.calcdata.key}),_=L.sort(function(C,M){return A(C)-A(M)});_.forEach(function(C,M){C.xIndex=M,C.x=E===C?C.x:C.xScale(C)}),u.filter(function(C){return E!==C}).transition().ease(Ia.transitionEase).duration(Ia.transitionDuration).attr("transform",function(C){return og(C.x,0)}),k.call(PZt).attr("transform",og(E.x,-Ia.uplift))}).on("dragend",function(E){var k=Mc.select(this),A=E.calcdata;E.x=E.xScale(E),E.calcdata.columnDragInProgress=!1,WWe(k,E,0),VZt(t,A,A.columns.map(function(L){return L.xIndex}))})),u.each(function(E){$J.setClipUrl(Mc.select(this),GWe(t,E),t)});var c=u.selectAll("."+Ia.cn.columnBlock).data(XWe.splitToPanels,gu.keyFun);c.enter().append("g").classed(Ia.cn.columnBlock,!0).attr("id",function(E){return E.key}),c.style("cursor",function(E){return E.dragHandle?"ew-resize":E.calcdata.scrollbarState.barWiggleRoom?"ns-resize":"default"});var f=c.filter(HZt),h=c.filter(i$);n&&h.call(Mc.behavior.drag().origin(function(E){return Mc.event.stopPropagation(),E}).on("drag",I7(t,a,-1)).on("dragend",function(){})),QJ(t,a,f,c),QJ(t,a,h,c);var d=a.selectAll("."+Ia.cn.scrollAreaClip).data(gu.repeat,gu.keyFun);d.enter().append("clipPath").classed(Ia.cn.scrollAreaClip,!0).attr("id",function(E){return HWe(t,E)});var v=d.selectAll("."+Ia.cn.scrollAreaClipRect).data(gu.repeat,gu.keyFun);v.enter().append("rect").classed(Ia.cn.scrollAreaClipRect,!0).attr("x",-Ia.overdrag).attr("y",-Ia.uplift).attr("fill","none"),v.attr("width",function(E){return E.width+2*Ia.overdrag}).attr("height",function(E){return E.height+Ia.uplift});var x=u.selectAll("."+Ia.cn.columnBoundary).data(gu.repeat,gu.keyFun);x.enter().append("g").classed(Ia.cn.columnBoundary,!0);var b=u.selectAll("."+Ia.cn.columnBoundaryClippath).data(gu.repeat,gu.keyFun);b.enter().append("clipPath").classed(Ia.cn.columnBoundaryClippath,!0),b.attr("id",function(E){return GWe(t,E)});var g=b.selectAll("."+Ia.cn.columnBoundaryRect).data(gu.repeat,gu.keyFun);g.enter().append("rect").classed(Ia.cn.columnBoundaryRect,!0).attr("fill","none"),g.attr("width",function(E){return E.columnWidth+2*P7(E)}).attr("height",function(E){return E.calcdata.height+2*P7(E)+Ia.uplift}).attr("x",function(E){return-P7(E)}).attr("y",function(E){return-P7(E)}),n$(null,h,a)};function P7(e){return Math.ceil(e.calcdata.maxLineWidth/2)}function HWe(e,t){return"clip"+e._fullLayout._uid+"_scrollAreaBottomClip_"+t.key}function GWe(e,t){return"clip"+e._fullLayout._uid+"_columnBoundaryClippath_"+t.calcdata.key+"_"+t.specIndex}function YWe(e){return[].concat.apply([],e.map(function(t){return t})).map(function(t){return t.__data__})}function Yk(e,t,r){function n(u){var c=u.rowBlocks;return t$(c,c.length-1)+(c.length?R7(c[c.length-1],1/0):1)}var i=e.selectAll("."+Ia.cn.scrollbarKit).data(gu.repeat,gu.keyFun);i.enter().append("g").classed(Ia.cn.scrollbarKit,!0).style("shape-rendering","geometricPrecision"),i.each(function(u){var c=u.scrollbarState;c.totalHeight=n(u),c.scrollableAreaHeight=u.groupHeight-e$(u),c.currentlyVisibleHeight=Math.min(c.totalHeight,c.scrollableAreaHeight),c.ratio=c.currentlyVisibleHeight/c.totalHeight,c.barLength=Math.max(c.ratio*c.currentlyVisibleHeight,Ia.goldenRatio*Ia.scrollbarWidth),c.barWiggleRoom=c.currentlyVisibleHeight-c.barLength,c.wiggleRoom=Math.max(0,c.totalHeight-c.scrollableAreaHeight),c.topY=c.barWiggleRoom===0?0:u.scrollY/c.wiggleRoom*c.barWiggleRoom,c.bottomY=c.topY+c.barLength,c.dragMultiplier=c.wiggleRoom/c.barWiggleRoom}).attr("transform",function(u){var c=u.width+Ia.scrollbarWidth/2+Ia.scrollbarOffset;return og(c,e$(u))});var a=i.selectAll("."+Ia.cn.scrollbar).data(gu.repeat,gu.keyFun);a.enter().append("g").classed(Ia.cn.scrollbar,!0);var o=a.selectAll("."+Ia.cn.scrollbarSlider).data(gu.repeat,gu.keyFun);o.enter().append("g").classed(Ia.cn.scrollbarSlider,!0),o.attr("transform",function(u){return og(0,u.scrollbarState.topY||0)});var s=o.selectAll("."+Ia.cn.scrollbarGlyph).data(gu.repeat,gu.keyFun);s.enter().append("line").classed(Ia.cn.scrollbarGlyph,!0).attr("stroke","black").attr("stroke-width",Ia.scrollbarWidth).attr("stroke-linecap","round").attr("y1",Ia.scrollbarWidth/2),s.attr("y2",function(u){return u.scrollbarState.barLength-Ia.scrollbarWidth/2}).attr("stroke-opacity",function(u){return u.columnDragInProgress||!u.scrollbarState.barWiggleRoom||r?0:.4}),s.transition().delay(0).duration(0),s.transition().delay(Ia.scrollbarHideDelay).duration(Ia.scrollbarHideDuration).attr("stroke-opacity",0);var l=a.selectAll("."+Ia.cn.scrollbarCaptureZone).data(gu.repeat,gu.keyFun);l.enter().append("line").classed(Ia.cn.scrollbarCaptureZone,!0).attr("stroke","white").attr("stroke-opacity",.01).attr("stroke-width",Ia.scrollbarCaptureWidth).attr("stroke-linecap","butt").attr("y1",0).on("mousedown",function(u){var c=Mc.event.y,f=this.getBoundingClientRect(),h=u.scrollbarState,d=c-f.top,v=Mc.scale.linear().domain([0,h.scrollableAreaHeight]).range([0,h.totalHeight]).clamp(!0);h.topY<=d&&d<=h.bottomY||I7(t,e,null,v(d-h.barLength/2))(u)}).call(Mc.behavior.drag().origin(function(u){return Mc.event.stopPropagation(),u.scrollbarState.scrollbarScrollInProgress=!0,u}).on("drag",I7(t,e)).on("dragend",function(){})),l.attr("y2",function(u){return u.scrollbarState.scrollableAreaHeight}),t._context.staticPlot&&(s.remove(),l.remove())}function QJ(e,t,r,n){var i=RZt(r),a=DZt(i);OZt(a);var o=zZt(a);NZt(o);var s=qZt(a),l=FZt(s);BZt(l),KWe(l,t,n,e),a$(a)}function RZt(e){var t=e.selectAll("."+Ia.cn.columnCells).data(gu.repeat,gu.keyFun);return t.enter().append("g").classed(Ia.cn.columnCells,!0),t.exit().remove(),t}function DZt(e){var t=e.selectAll("."+Ia.cn.columnCell).data(XWe.splitToCells,function(r){return r.keyWithinBlock});return t.enter().append("g").classed(Ia.cn.columnCell,!0),t.exit().remove(),t}function zZt(e){var t=e.selectAll("."+Ia.cn.cellRect).data(gu.repeat,function(r){return r.keyWithinBlock});return t.enter().append("rect").classed(Ia.cn.cellRect,!0),t}function FZt(e){var t=e.selectAll("."+Ia.cn.cellText).data(gu.repeat,function(r){return r.keyWithinBlock});return t.enter().append("text").classed(Ia.cn.cellText,!0).style("cursor",function(){return"auto"}).on("mousedown",function(){Mc.event.stopPropagation()}),t}function qZt(e){var t=e.selectAll("."+Ia.cn.cellTextHolder).data(gu.repeat,function(r){return r.keyWithinBlock});return t.enter().append("g").classed(Ia.cn.cellTextHolder,!0).style("shape-rendering","geometricPrecision"),t}function OZt(e){e.each(function(t,r){var n=t.calcdata.cells.font,i=t.column.specIndex,a={size:Xv(n.size,i,r),color:Xv(n.color,i,r),family:Xv(n.family,i,r),weight:Xv(n.weight,i,r),style:Xv(n.style,i,r),variant:Xv(n.variant,i,r),textcase:Xv(n.textcase,i,r),lineposition:Xv(n.lineposition,i,r),shadow:Xv(n.shadow,i,r)};t.rowNumber=t.key,t.align=Xv(t.calcdata.cells.align,i,r),t.cellBorderWidth=Xv(t.calcdata.cells.line.width,i,r),t.font=a})}function BZt(e){e.each(function(t){$J.font(Mc.select(this),t.font)})}function NZt(e){e.attr("width",function(t){return t.column.columnWidth}).attr("stroke-width",function(t){return t.cellBorderWidth}).each(function(t){var r=Mc.select(this);VWe.stroke(r,Xv(t.calcdata.cells.line.color,t.column.specIndex,t.rowNumber)),VWe.fill(r,Xv(t.calcdata.cells.fill.color,t.column.specIndex,t.rowNumber))})}function KWe(e,t,r,n){e.text(function(i){var a=i.column.specIndex,o=i.rowNumber,s=i.value,l=typeof s=="string",u=l&&s.match(/
/i),c=!l||u;i.mayHaveMarkup=l&&s.match(/[<&>]/);var f=UZt(s);i.latex=f;var h=f?"":Xv(i.calcdata.cells.prefix,a,o)||"",d=f?"":Xv(i.calcdata.cells.suffix,a,o)||"",v=f?null:Xv(i.calcdata.cells.format,a,o)||null,x=h+(v?kZt(v)(i.value):i.value)+d,b;i.wrappingNeeded=!i.wrapped&&!c&&!f&&(b=jWe(x)),i.cellHeightMayIncrease=u||f||i.mayHaveMarkup||(b===void 0?jWe(x):b),i.needsConvertToTspans=i.mayHaveMarkup||i.wrappingNeeded||i.latex;var g;if(i.wrappingNeeded){var E=Ia.wrapSplitCharacter===" "?x.replace(/i&&n.push(a),i+=l}return n}function n$(e,t,r){var n=YWe(t)[0];if(n!==void 0){var i=n.rowBlocks,a=n.calcdata,o=t$(i,i.length),s=n.calcdata.groupHeight-e$(n),l=a.scrollY=Math.max(0,Math.min(o-s,a.scrollY)),u=GZt(i,l,s);u.length===1&&(u[0]===i.length-1?u.unshift(u[0]-1):u.push(u[0]+1)),u[0]%2&&u.reverse(),t.each(function(c,f){c.page=u[f],c.scrollY=l}),t.attr("transform",function(c){var f=t$(c.rowBlocks,c.page)-c.scrollY;return og(0,f)}),e&&(ZWe(e,r,t,u,n.prevPages,n,0),ZWe(e,r,t,u,n.prevPages,n,1),Yk(r,e))}}function I7(e,t,r,n){return function(a){var o=a.calcdata?a.calcdata:a,s=t.filter(function(f){return o.key===f.key}),l=r||o.scrollbarState.dragMultiplier,u=o.scrollY;o.scrollY=n===void 0?o.scrollY+l*Mc.event.dy:n;var c=s.selectAll("."+Ia.cn.yColumn).selectAll("."+Ia.cn.columnBlock).filter(i$);return n$(e,c,s),o.scrollY===u}}function ZWe(e,t,r,n,i,a,o){var s=n[o]!==i[o];s&&(clearTimeout(a.currentRepaint[o]),a.currentRepaint[o]=setTimeout(function(){var l=r.filter(function(u,c){return c===o&&n[c]!==i[c]});QJ(e,t,l,r),i[o]=n[o]}))}function jZt(e,t,r,n){return function(){var a=Mc.select(t.parentNode);a.each(function(o){var s=o.fragments;a.selectAll("tspan.line").each(function(x,b){s[b].width=this.getComputedTextLength()});var l=s[s.length-1].width,u=s.slice(0,-1),c=[],f,h,d=0,v=o.column.columnWidth-2*Ia.cellPad;for(o.value="";u.length;)f=u.shift(),h=f.width+l,d+h>v&&(o.value+=c.join(Ia.wrapSpacer)+Ia.lineBreaker,c=[],d=0),c.push(f.text),d+=h;d&&(o.value+=c.join(Ia.wrapSpacer)),o.wrapped=!0}),a.selectAll("tspan.line").remove(),KWe(a.select("."+Ia.cn.cellText),r,e,n),Mc.select(t.parentNode.parentNode).call(a$)}}function WZt(e,t,r,n,i){return function(){if(!i.settledY){var o=Mc.select(t.parentNode),s=r$(i),l=i.key-s.firstRowIndex,u=s.rows[l].rowHeight,c=i.cellHeightMayIncrease?t.parentNode.getBoundingClientRect().height+2*Ia.cellPad:u,f=Math.max(c,u),h=f-s.rows[l].rowHeight;h&&(s.rows[l].rowHeight=f,e.selectAll("."+Ia.cn.columnCell).call(a$),n$(null,e.filter(i$),0),Yk(r,n,!0)),o.attr("transform",function(){var d=this,v=d.parentNode,x=v.getBoundingClientRect(),b=Mc.select(d.parentNode).select("."+Ia.cn.cellRect).node().getBoundingClientRect(),g=d.transform.baseVal.consolidate(),E=b.top-x.top+(g?g.matrix.f:Ia.cellPad);return og(JWe(i,Mc.select(d.parentNode).select("."+Ia.cn.cellTextHolder).node().getBoundingClientRect().width),E)}),i.settledY=!0}}}function JWe(e,t){switch(e.align){case"left":return Ia.cellPad;case"right":return e.column.columnWidth-(t||0)-Ia.cellPad;case"center":return(e.column.columnWidth-(t||0))/2;default:return Ia.cellPad}}function a$(e){e.attr("transform",function(t){var r=t.rowBlocks[0].auxiliaryBlocks.reduce(function(o,s){return o+R7(s,1/0)},0),n=r$(t),i=R7(n,t.key),a=i+r;return og(0,a)}).selectAll("."+Ia.cn.cellRect).attr("height",function(t){return XZt(r$(t),t.key).rowHeight})}function t$(e,t){for(var r=0,n=t-1;n>=0;n--)r+=ZZt(e[n]);return r}function R7(e,t){for(var r=0,n=0;n{"use strict";var YZt=kd().getModuleCalcData,KZt=o$(),D7="table";z7.name=D7;z7.plot=function(e){var t=YZt(e.calcdata,D7)[0];t.length&&KZt(e,t)};z7.clean=function(e,t,r,n){var i=n._has&&n._has(D7),a=t._has&&t._has(D7);i&&!a&&n._paperdiv.selectAll(".table").remove()}});var tZe=ye((L_r,eZe)=>{"use strict";eZe.exports={attributes:GJ(),supplyDefaults:kWe(),calc:LWe(),plot:o$(),moduleType:"trace",name:"table",basePlotModule:QWe(),categories:["noOpacity"],meta:{}}});var iZe=ye((P_r,rZe)=>{"use strict";rZe.exports=tZe()});var lZe=ye((I_r,sZe)=>{"use strict";var nZe=Su(),aZe=dh(),s$=Cd(),JZt=Oc().descriptionWithDates,$Zt=Bu().overrideAll,oZe=Ed().dash,l$=no().extendFlat;sZe.exports={color:{valType:"color",editType:"calc"},smoothing:{valType:"number",dflt:1,min:0,max:1.3,editType:"calc"},title:{text:{valType:"string",dflt:"",editType:"calc"},font:nZe({editType:"calc"}),offset:{valType:"number",dflt:10,editType:"calc"},editType:"calc"},type:{valType:"enumerated",values:["-","linear","date","category"],dflt:"-",editType:"calc"},autotypenumbers:s$.autotypenumbers,autorange:{valType:"enumerated",values:[!0,!1,"reversed"],dflt:!0,editType:"calc"},rangemode:{valType:"enumerated",values:["normal","tozero","nonnegative"],dflt:"normal",editType:"calc"},range:{valType:"info_array",editType:"calc",items:[{valType:"any",editType:"calc"},{valType:"any",editType:"calc"}]},fixedrange:{valType:"boolean",dflt:!1,editType:"calc"},cheatertype:{valType:"enumerated",values:["index","value"],dflt:"value",editType:"calc"},tickmode:{valType:"enumerated",values:["linear","array"],dflt:"array",editType:"calc"},nticks:{valType:"integer",min:0,dflt:0,editType:"calc"},tickvals:{valType:"data_array",editType:"calc"},ticktext:{valType:"data_array",editType:"calc"},showticklabels:{valType:"enumerated",values:["start","end","both","none"],dflt:"start",editType:"calc"},labelalias:l$({},s$.labelalias,{editType:"calc"}),tickfont:nZe({editType:"calc"}),tickangle:{valType:"angle",dflt:"auto",editType:"calc"},tickprefix:{valType:"string",dflt:"",editType:"calc"},showtickprefix:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"calc"},ticksuffix:{valType:"string",dflt:"",editType:"calc"},showticksuffix:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"calc"},showexponent:{valType:"enumerated",values:["all","first","last","none"],dflt:"all",editType:"calc"},exponentformat:{valType:"enumerated",values:["none","e","E","power","SI","B"],dflt:"B",editType:"calc"},minexponent:{valType:"number",dflt:3,min:0,editType:"calc"},separatethousands:{valType:"boolean",dflt:!1,editType:"calc"},tickformat:{valType:"string",dflt:"",editType:"calc",description:JZt("tick label")},tickformatstops:$Zt(s$.tickformatstops,"calc","from-root"),categoryorder:{valType:"enumerated",values:["trace","category ascending","category descending","array"],dflt:"trace",editType:"calc"},categoryarray:{valType:"data_array",editType:"calc"},labelpadding:{valType:"integer",dflt:10,editType:"calc"},labelprefix:{valType:"string",editType:"calc"},labelsuffix:{valType:"string",dflt:"",editType:"calc"},showline:{valType:"boolean",dflt:!1,editType:"calc"},linecolor:{valType:"color",dflt:aZe.defaultLine,editType:"calc"},linewidth:{valType:"number",min:0,dflt:1,editType:"calc"},gridcolor:{valType:"color",editType:"calc"},gridwidth:{valType:"number",min:0,dflt:1,editType:"calc"},griddash:l$({},oZe,{editType:"calc"}),showgrid:{valType:"boolean",dflt:!0,editType:"calc"},minorgridcount:{valType:"integer",min:0,dflt:0,editType:"calc"},minorgridwidth:{valType:"number",min:0,dflt:1,editType:"calc"},minorgriddash:l$({},oZe,{editType:"calc"}),minorgridcolor:{valType:"color",dflt:aZe.lightLine,editType:"calc"},startline:{valType:"boolean",editType:"calc"},startlinecolor:{valType:"color",editType:"calc"},startlinewidth:{valType:"number",dflt:1,editType:"calc"},endline:{valType:"boolean",editType:"calc"},endlinewidth:{valType:"number",dflt:1,editType:"calc"},endlinecolor:{valType:"color",editType:"calc"},tick0:{valType:"number",min:0,dflt:0,editType:"calc"},dtick:{valType:"number",min:0,dflt:1,editType:"calc"},arraytick0:{valType:"integer",min:0,dflt:0,editType:"calc"},arraydtick:{valType:"integer",min:1,dflt:1,editType:"calc"},editType:"calc"}});var q7=ye((R_r,fZe)=>{"use strict";var QZt=Su(),uZe=lZe(),cZe=dh(),F7=QZt({editType:"calc"}),eXt=Uc().zorder;F7.family.dflt='"Open Sans", verdana, arial, sans-serif';F7.size.dflt=12;F7.color.dflt=cZe.defaultLine;fZe.exports={carpet:{valType:"string",editType:"calc"},x:{valType:"data_array",editType:"calc+clearAxisTypes"},y:{valType:"data_array",editType:"calc+clearAxisTypes"},a:{valType:"data_array",editType:"calc"},a0:{valType:"number",dflt:0,editType:"calc"},da:{valType:"number",dflt:1,editType:"calc"},b:{valType:"data_array",editType:"calc"},b0:{valType:"number",dflt:0,editType:"calc"},db:{valType:"number",dflt:1,editType:"calc"},cheaterslope:{valType:"number",dflt:1,editType:"calc"},aaxis:uZe,baxis:uZe,font:F7,color:{valType:"color",dflt:cZe.defaultLine,editType:"plot"},zorder:eXt}});var vZe=ye((D_r,dZe)=>{"use strict";var hZe=Mr().isArray1D;dZe.exports=function(t,r,n){var i=n("x"),a=i&&i.length,o=n("y"),s=o&&o.length;if(!a&&!s)return!1;if(r._cheater=!i,(!a||hZe(i))&&(!s||hZe(o))){var l=a?i.length:1/0;s&&(l=Math.min(l,o.length)),r.a&&r.a.length&&(l=Math.min(l,r.a.length)),r.b&&r.b.length&&(l=Math.min(l,r.b.length)),r._length=l}else r._length=null;return!0}});var mZe=ye((z_r,gZe)=>{"use strict";var tXt=q7(),pZe=va().addOpacity,rXt=ba(),Kk=Mr(),iXt=xb(),nXt=e_(),aXt=t_(),oXt=QP(),sXt=ym(),lXt=L3();gZe.exports=function(t,r,n){var i=n.letter,a=n.font||{},o=tXt[i+"axis"];function s(p,P){return Kk.coerce(t,r,o,p,P)}function l(p,P){return Kk.coerce2(t,r,o,p,P)}n.name&&(r._name=n.name,r._id=n.name),s("autotypenumbers",n.autotypenumbersDflt);var u=s("type");if(u==="-"&&(n.data&&uXt(r,n.data),r.type==="-"?r.type="linear":u=t.type=r.type),s("smoothing"),s("cheatertype"),s("showticklabels"),s("labelprefix",i+" = "),s("labelsuffix"),s("showtickprefix"),s("showticksuffix"),s("separatethousands"),s("tickformat"),s("exponentformat"),s("minexponent"),s("showexponent"),s("categoryorder"),s("tickmode"),s("tickvals"),s("ticktext"),s("tick0"),s("dtick"),r.tickmode==="array"&&(s("arraytick0"),s("arraydtick")),s("labelpadding"),r._hovertitle=i,u==="date"){var c=rXt.getComponentMethod("calendars","handleDefaults");c(t,r,"calendar",n.calendar)}sXt(r,n.fullLayout),r.c2p=Kk.identity;var f=s("color",n.dfltColor),h=f===t.color?f:a.color,d=s("title.text");d&&(Kk.coerceFont(s,"title.font",a,{overrideDflt:{size:Kk.bigFont(a.size),color:h}}),s("title.offset")),s("tickangle");var v=s("autorange",!r.isValidRange(t.range));v&&s("rangemode"),s("range"),r.cleanRange(),s("fixedrange"),iXt(t,r,s,u),aXt(t,r,s,u,n),nXt(t,r,s,u,n),oXt(t,r,s,{data:n.data,dataAttr:i});var x=l("gridcolor",pZe(f,.3)),b=l("gridwidth"),g=l("griddash"),E=s("showgrid");E||(delete r.gridcolor,delete r.gridwidth,delete r.griddash);var k=l("startlinecolor",f),A=l("startlinewidth",b),L=s("startline",r.showgrid||!!k||!!A);L||(delete r.startlinecolor,delete r.startlinewidth);var _=l("endlinecolor",f),C=l("endlinewidth",b),M=s("endline",r.showgrid||!!_||!!C);return M||(delete r.endlinecolor,delete r.endlinewidth),E?(s("minorgridcount"),s("minorgridwidth",b),s("minorgriddash",g),s("minorgridcolor",pZe(x,.06)),r.minorgridcount||(delete r.minorgridwidth,delete r.minorgriddash,delete r.minorgridcolor)):(delete r.gridcolor,delete r.gridwidth,delete r.griddash),r.showticklabels==="none"&&(delete r.tickfont,delete r.tickangle,delete r.showexponent,delete r.exponentformat,delete r.minexponent,delete r.tickformat,delete r.showticksuffix,delete r.showtickprefix),r.showticksuffix||delete r.ticksuffix,r.showtickprefix||delete r.tickprefix,s("tickmode"),r};function uXt(e,t){if(e.type==="-"){var r=e._id,n=r.charAt(0),i=n+"calendar",a=e[i];e.type=lXt(t,a,{autotypenumbers:e.autotypenumbers})}}});var _Ze=ye((F_r,yZe)=>{"use strict";var cXt=mZe(),fXt=Vs();yZe.exports=function(t,r,n,i,a){var o=i("a");o||(i("da"),i("a0"));var s=i("b");s||(i("db"),i("b0")),hXt(t,r,n,a)};function hXt(e,t,r,n){var i=["aaxis","baxis"];i.forEach(function(a){var o=a.charAt(0),s=e[a]||{},l=fXt.newContainer(t,a),u={noAutotickangles:!0,noTicklabelshift:!0,noTicklabelstandoff:!0,noTicklabelstep:!0,tickfont:"x",id:o+"axis",letter:o,font:t.font,name:a,data:e[o],calendar:t.calendar,dfltColor:n,bgColor:r.paper_bgcolor,autotypenumbersDflt:r.autotypenumbers,fullLayout:r};cXt(s,l,u),l._categories=l._categories||[],!e[a]&&s.type!=="-"&&(e[a]={type:s.type})})}});var wZe=ye((q_r,bZe)=>{"use strict";var xZe=Mr(),dXt=vZe(),vXt=_Ze(),pXt=q7(),gXt=dh();bZe.exports=function(t,r,n,i){function a(l,u){return xZe.coerce(t,r,pXt,l,u)}r._clipPathId="clip"+r.uid+"carpet";var o=a("color",gXt.defaultLine);if(xZe.coerceFont(a,"font",i.font),a("carpet"),vXt(t,r,i,a,o),!r.a||!r.b){r.visible=!1;return}r.a.length<3&&(r.aaxis.smoothing=0),r.b.length<3&&(r.baxis.smoothing=0);var s=dXt(t,r,a);s||(r.visible=!1),r._cheater&&a("cheaterslope"),a("zorder")}});var u$=ye((O_r,TZe)=>{"use strict";var mXt=Mr().isArrayOrTypedArray;TZe.exports=function(t,r,n){var i;for(mXt(t)?t.length>r.length&&(t=t.slice(0,r.length)):t=[],i=0;i{"use strict";AZe.exports=function(t,r,n){if(t.length===0)return"";var i,a=[],o=n?3:1;for(i=0;i{"use strict";SZe.exports=function(t,r,n,i,a,o){var s=a[0]*t.dpdx(r),l=a[1]*t.dpdy(n),u=1,c=1;if(o){var f=Math.sqrt(a[0]*a[0]+a[1]*a[1]),h=Math.sqrt(o[0]*o[0]+o[1]*o[1]),d=(a[0]*o[0]+a[1]*o[1])/f/h;c=Math.max(0,d)}var v=Math.atan2(l,s)*180/Math.PI;return v<-90?(v+=180,u=-u):v>90&&(v-=180,u=-u),{angle:v,flip:u,p:t.c2p(i,r,n),offsetMultplier:c}}});var DZe=ye((U_r,RZe)=>{"use strict";var U7=xa(),O7=ao(),B7=u$(),CZe=c$(),Jk=MZe(),f$=Ll(),Up=Mr(),LZe=Up.strRotate,N7=Up.strTranslate,PZe=Nh();RZe.exports=function(t,r,n,i){var a=t._context.staticPlot,o=r.xaxis,s=r.yaxis,l=t._fullLayout,u=l._clips;Up.makeTraceGroups(i,n,"trace").each(function(c){var f=U7.select(this),h=c[0],d=h.trace,v=d.aaxis,x=d.baxis,b=Up.ensureSingle(f,"g","minorlayer"),g=Up.ensureSingle(f,"g","majorlayer"),E=Up.ensureSingle(f,"g","boundarylayer"),k=Up.ensureSingle(f,"g","labellayer");f.style("opacity",d.opacity),FA(o,s,g,v,"a",v._gridlines,!0,a),FA(o,s,g,x,"b",x._gridlines,!0,a),FA(o,s,b,v,"a",v._minorgridlines,!0,a),FA(o,s,b,x,"b",x._minorgridlines,!0,a),FA(o,s,E,v,"a-boundary",v._boundarylines,a),FA(o,s,E,x,"b-boundary",x._boundarylines,a);var A=EZe(t,o,s,d,h,k,v._labels,"a-label"),L=EZe(t,o,s,d,h,k,x._labels,"b-label");_Xt(t,k,d,h,o,s,A,L),yXt(d,h,u,o,s)})};function yXt(e,t,r,n,i){var a,o,s,l,u=r.select("#"+e._clipPathId);u.size()||(u=r.append("clipPath").classed("carpetclip",!0));var c=Up.ensureSingle(u,"path","carpetboundary"),f=t.clipsegments,h=[];for(l=0;l0?"start":"end","data-notex":1}).call(O7.font,f.font).text(f.text).call(f$.convertToTspans,e),g=O7.bBox(this);b.attr("transform",N7(d.p[0],d.p[1])+LZe(d.angle)+N7(f.axis.labelpadding*x,g.height*.3)),u=Math.max(u,g.width+f.axis.labelpadding)}),l.exit().remove(),c.maxExtent=u,c}function _Xt(e,t,r,n,i,a,o,s){var l,u,c,f,h=Up.aggNums(Math.min,null,r.a),d=Up.aggNums(Math.max,null,r.a),v=Up.aggNums(Math.min,null,r.b),x=Up.aggNums(Math.max,null,r.b);l=.5*(h+d),u=v,c=r.ab2xy(l,u,!0),f=r.dxyda_rough(l,u),o.angle===void 0&&Up.extendFlat(o,Jk(r,i,a,c,r.dxydb_rough(l,u))),kZe(e,t,r,n,c,f,r.aaxis,i,a,o,"a-title"),l=h,u=.5*(v+x),c=r.ab2xy(l,u,!0),f=r.dxydb_rough(l,u),s.angle===void 0&&Up.extendFlat(s,Jk(r,i,a,c,r.dxyda_rough(l,u))),kZe(e,t,r,n,c,f,r.baxis,i,a,s,"b-title")}var IZe=PZe.LINE_SPACING,xXt=(1-PZe.MID_SHIFT)/IZe+1;function kZe(e,t,r,n,i,a,o,s,l,u,c){var f=[];o.title.text&&f.push(o.title.text);var h=t.selectAll("text."+c).data(f),d=u.maxExtent;h.enter().append("text").classed(c,!0),h.each(function(){var v=Jk(r,s,l,i,a);["start","both"].indexOf(o.showticklabels)===-1&&(d=0);var x=o.title.font.size;d+=x+o.title.offset;var b=u.angle+(u.flip<0?180:0),g=(b-v.angle+450)%360,E=g>90&&g<270,k=U7.select(this);k.text(o.title.text).call(f$.convertToTspans,e),E&&(d=(-f$.lineCount(k)+xXt)*IZe*x-d),k.attr("transform",N7(v.p[0],v.p[1])+LZe(v.angle)+N7(0,d)).attr("text-anchor","middle").call(O7.font,o.title.font)}),h.exit().remove()}});var FZe=ye((V_r,zZe)=>{"use strict";var V7=Mr().isArrayOrTypedArray;zZe.exports=function(e,t,r){var n,i,a,o,s,l,u=[],c=V7(e)?e.length:e,f=V7(t)?t.length:t,h=V7(e)?e:null,d=V7(t)?t:null;h&&(a=(h.length-1)/(h[h.length-1]-h[0])/(c-1)),d&&(o=(d.length-1)/(d[d.length-1]-d[0])/(f-1));var v,x=1/0,b=-1/0;for(i=0;i{"use strict";var qZe=Mr().isArrayOrTypedArray;BZe.exports=function(e){return OZe(e,0)};function OZe(e,t){if(!qZe(e)||t>=10)return null;for(var r=1/0,n=-1/0,i=e.length,a=0;a{"use strict";var bXt=Qa(),Ex=no().extendFlat;UZe.exports=function(t,r,n){var i,a,o,s,l,u,c,f,h,d,v,x,b,g,E=t["_"+r],k=t[r+"axis"],A=k._gridlines=[],L=k._minorgridlines=[],_=k._boundarylines=[],C=t["_"+n],M=t[n+"axis"];k.tickmode==="array"&&(k.tickvals=E.slice());var p=t._xctrl,P=t._yctrl,T=p[0].length,F=p.length,q=t._a.length,V=t._b.length;bXt.prepTicks(k),k.tickmode==="array"&&delete k.tickvals;var H=k.smoothing?3:1;function X(N){var W,re,ae,_e,Me,ke,ge,ie,Te,Ee,Ae,ze,Ce=[],me=[],Re={};if(r==="b")for(re=t.b2j(N),ae=Math.floor(Math.max(0,Math.min(V-2,re))),_e=re-ae,Re.length=V,Re.crossLength=q,Re.xy=function(ce){return t.evalxy([],ce,re)},Re.dxy=function(ce,Ge){return t.dxydi([],ce,ae,Ge,_e)},W=0;W0&&(Te=t.dxydi([],W-1,ae,0,_e),Ce.push(Me[0]+Te[0]/3),me.push(Me[1]+Te[1]/3),Ee=t.dxydi([],W-1,ae,1,_e),Ce.push(ie[0]-Ee[0]/3),me.push(ie[1]-Ee[1]/3)),Ce.push(ie[0]),me.push(ie[1]),Me=ie;else for(W=t.a2i(N),ke=Math.floor(Math.max(0,Math.min(q-2,W))),ge=W-ke,Re.length=q,Re.crossLength=V,Re.xy=function(ce){return t.evalxy([],W,ce)},Re.dxy=function(ce,Ge){return t.dxydj([],ke,ce,ge,Ge)},re=0;re0&&(Ae=t.dxydj([],ke,re-1,ge,0),Ce.push(Me[0]+Ae[0]/3),me.push(Me[1]+Ae[1]/3),ze=t.dxydj([],ke,re-1,ge,1),Ce.push(ie[0]-ze[0]/3),me.push(ie[1]-ze[1]/3)),Ce.push(ie[0]),me.push(ie[1]),Me=ie;return Re.axisLetter=r,Re.axis=k,Re.crossAxis=M,Re.value=N,Re.constvar=n,Re.index=f,Re.x=Ce,Re.y=me,Re.smoothing=M.smoothing,Re}function G(N){var W,re,ae,_e,Me,ke=[],ge=[],ie={};if(ie.length=E.length,ie.crossLength=C.length,r==="b")for(ae=Math.max(0,Math.min(V-2,N)),Me=Math.min(1,Math.max(0,N-ae)),ie.xy=function(Te){return t.evalxy([],Te,N)},ie.dxy=function(Te,Ee){return t.dxydi([],Te,ae,Ee,Me)},W=0;WE.length-1)&&A.push(Ex(G(a),{color:k.gridcolor,width:k.gridwidth,dash:k.griddash}));for(f=u;fE.length-1)&&!(v<0||v>E.length-1))for(x=E[o],b=E[v],i=0;iE[E.length-1])&&L.push(Ex(X(d),{color:k.minorgridcolor,width:k.minorgridwidth,dash:k.minorgriddash})));k.startline&&_.push(Ex(G(0),{color:k.startlinecolor,width:k.startlinewidth})),k.endline&&_.push(Ex(G(E.length-1),{color:k.endlinecolor,width:k.endlinewidth}))}else{for(s=5e-15,l=[Math.floor((E[E.length-1]-k.tick0)/k.dtick*(1+s)),Math.ceil((E[0]-k.tick0)/k.dtick/(1+s))].sort(function(N,W){return N-W}),u=l[0],c=l[1],f=u;f<=c;f++)h=k.tick0+k.dtick*f,A.push(Ex(X(h),{color:k.gridcolor,width:k.gridwidth,dash:k.griddash}));for(f=u-1;fE[E.length-1])&&L.push(Ex(X(d),{color:k.minorgridcolor,width:k.minorgridwidth,dash:k.minorgriddash}));k.startline&&_.push(Ex(X(E[0]),{color:k.startlinecolor,width:k.startlinewidth})),k.endline&&_.push(Ex(X(E[E.length-1]),{color:k.endlinecolor,width:k.endlinewidth}))}}});var WZe=ye((j_r,jZe)=>{"use strict";var HZe=Qa(),GZe=no().extendFlat;jZe.exports=function(t,r){var n,i,a,o,s,l=r._labels=[],u=r._gridlines;for(n=0;n{"use strict";ZZe.exports=function(t,r,n,i){var a,o,s,l=[],u=!!n.smoothing,c=!!i.smoothing,f=t[0].length-1,h=t.length-1;for(a=0,o=[],s=[];a<=f;a++)o[a]=t[0][a],s[a]=r[0][a];for(l.push({x:o,y:s,bicubic:u}),a=0,o=[],s=[];a<=h;a++)o[a]=t[a][f],s[a]=r[a][f];for(l.push({x:o,y:s,bicubic:c}),a=f,o=[],s=[];a>=0;a--)o[f-a]=t[h][a],s[f-a]=r[h][a];for(l.push({x:o,y:s,bicubic:u}),a=h,o=[],s=[];a>=0;a--)o[h-a]=t[a][0],s[h-a]=r[a][0];return l.push({x:o,y:s,bicubic:c}),l}});var KZe=ye((Z_r,YZe)=>{"use strict";var wXt=Mr();YZe.exports=function(t,r,n){var i,a,o,s=[],l=[],u=t[0].length,c=t.length;function f(ae,_e){var Me=0,ke,ge=0;return ae>0&&(ke=t[_e][ae-1])!==void 0&&(ge++,Me+=ke),ae0&&(ke=t[_e-1][ae])!==void 0&&(ge++,Me+=ke),_e0&&a0&&iM);return wXt.log("Smoother converged to",p,"after",T,"iterations"),t}});var $Ze=ye((X_r,JZe)=>{"use strict";JZe.exports={RELATIVE_CULL_TOLERANCE:1e-6}});var tXe=ye((Y_r,eXe)=>{"use strict";var QZe=.5;eXe.exports=function(t,r,n,i){var a=t[0]-r[0],o=t[1]-r[1],s=n[0]-r[0],l=n[1]-r[1],u=Math.pow(a*a+o*o,QZe/2),c=Math.pow(s*s+l*l,QZe/2),f=(c*c*a-u*u*s)*i,h=(c*c*o-u*u*l)*i,d=c*(u+c)*3,v=u*(u+c)*3;return[[r[0]+(d&&f/d),r[1]+(d&&h/d)],[r[0]-(v&&f/v),r[1]-(v&&h/v)]]}});var iXe=ye((K_r,rXe)=>{"use strict";var h$=tXe(),H7=Mr().ensureArray;function qA(e,t,r){var n=-.5*r[0]+1.5*t[0],i=-.5*r[1]+1.5*t[1];return[(2*n+e[0])/3,(2*i+e[1])/3]}rXe.exports=function(t,r,n,i,a,o){var s,l,u,c,f,h,d,v,x,b,g=n[0].length,E=n.length,k=a?3*g-2:g,A=o?3*E-2:E;for(t=H7(t,A),r=H7(r,A),u=0;u{"use strict";nXe.exports=function(e,t,r,n,i){var a=t-2,o=r-2;return n&&i?function(s,l,u){s||(s=[]);var c,f,h,d,v,x,b=Math.max(0,Math.min(Math.floor(l),a)),g=Math.max(0,Math.min(Math.floor(u),o)),E=Math.max(0,Math.min(1,l-b)),k=Math.max(0,Math.min(1,u-g));b*=3,g*=3;var A=E*E,L=A*E,_=1-E,C=_*_,M=C*_,p=k*k,P=p*k,T=1-k,F=T*T,q=F*T;for(x=0;x{"use strict";oXe.exports=function(e,t,r){return t&&r?function(n,i,a,o,s){n||(n=[]);var l,u,c,f,h,d;i*=3,a*=3;var v=o*o,x=1-o,b=x*x,g=x*o*2,E=-3*b,k=3*(b-g),A=3*(g-v),L=3*v,_=s*s,C=_*s,M=1-s,p=M*M,P=p*M;for(d=0;d{"use strict";lXe.exports=function(e,t,r){return t&&r?function(n,i,a,o,s){n||(n=[]);var l,u,c,f,h,d;i*=3,a*=3;var v=o*o,x=v*o,b=1-o,g=b*b,E=g*b,k=s*s,A=1-s,L=A*A,_=A*s*2,C=-3*L,M=3*(L-_),p=3*(_-k),P=3*k;for(d=0;d{"use strict";var cXe=$Ze(),fXe=E6().findBin,TXt=iXe(),AXt=aXe(),SXt=sXe(),MXt=uXe();hXe.exports=function(t){var r=t._a,n=t._b,i=r.length,a=n.length,o=t.aaxis,s=t.baxis,l=r[0],u=r[i-1],c=n[0],f=n[a-1],h=r[r.length-1]-r[0],d=n[n.length-1]-n[0],v=h*cXe.RELATIVE_CULL_TOLERANCE,x=d*cXe.RELATIVE_CULL_TOLERANCE;l-=v,u+=v,c-=x,f+=x,t.isVisible=function(b,g){return b>l&&bc&&gu||gf},t.setScale=function(){var b=t._x,g=t._y,E=TXt(t._xctrl,t._yctrl,b,g,o.smoothing,s.smoothing);t._xctrl=E[0],t._yctrl=E[1],t.evalxy=AXt([t._xctrl,t._yctrl],i,a,o.smoothing,s.smoothing),t.dxydi=SXt([t._xctrl,t._yctrl],o.smoothing,s.smoothing),t.dxydj=MXt([t._xctrl,t._yctrl],o.smoothing,s.smoothing)},t.i2a=function(b){var g=Math.max(0,Math.floor(b[0]),i-2),E=b[0]-g;return(1-E)*r[g]+E*r[g+1]},t.j2b=function(b){var g=Math.max(0,Math.floor(b[1]),i-2),E=b[1]-g;return(1-E)*n[g]+E*n[g+1]},t.ij2ab=function(b){return[t.i2a(b[0]),t.j2b(b[1])]},t.a2i=function(b){var g=Math.max(0,Math.min(fXe(b,r),i-2)),E=r[g],k=r[g+1];return Math.max(0,Math.min(i-1,g+(b-E)/(k-E)))},t.b2j=function(b){var g=Math.max(0,Math.min(fXe(b,n),a-2)),E=n[g],k=n[g+1];return Math.max(0,Math.min(a-1,g+(b-E)/(k-E)))},t.ab2ij=function(b){return[t.a2i(b[0]),t.b2j(b[1])]},t.i2c=function(b,g){return t.evalxy([],b,g)},t.ab2xy=function(b,g,E){if(!E&&(br[i-1]|gn[a-1]))return[!1,!1];var k=t.a2i(b),A=t.b2j(g),L=t.evalxy([],k,A);if(E){var _=0,C=0,M=[],p,P,T,F;br[i-1]?(p=i-2,P=1,_=(b-r[i-1])/(r[i-1]-r[i-2])):(p=Math.max(0,Math.min(i-2,Math.floor(k))),P=k-p),gn[a-1]?(T=a-2,F=1,C=(g-n[a-1])/(n[a-1]-n[a-2])):(T=Math.max(0,Math.min(a-2,Math.floor(A))),F=A-T),_&&(t.dxydi(M,p,T,P,F),L[0]+=M[0]*_,L[1]+=M[1]*_),C&&(t.dxydj(M,p,T,P,F),L[0]+=M[0]*C,L[1]+=M[1]*C)}return L},t.c2p=function(b,g,E){return[g.c2p(b[0]),E.c2p(b[1])]},t.p2x=function(b,g,E){return[g.p2c(b[0]),E.p2c(b[1])]},t.dadi=function(b){var g=Math.max(0,Math.min(r.length-2,b));return r[g+1]-r[g]},t.dbdj=function(b){var g=Math.max(0,Math.min(n.length-2,b));return n[g+1]-n[g]},t.dxyda=function(b,g,E,k){var A=t.dxydi(null,b,g,E,k),L=t.dadi(b,E);return[A[0]/L,A[1]/L]},t.dxydb=function(b,g,E,k){var A=t.dxydj(null,b,g,E,k),L=t.dbdj(g,k);return[A[0]/L,A[1]/L]},t.dxyda_rough=function(b,g,E){var k=h*(E||.1),A=t.ab2xy(b+k,g,!0),L=t.ab2xy(b-k,g,!0);return[(A[0]-L[0])*.5/k,(A[1]-L[1])*.5/k]},t.dxydb_rough=function(b,g,E){var k=d*(E||.1),A=t.ab2xy(b,g+k,!0),L=t.ab2xy(b,g-k,!0);return[(A[0]-L[0])*.5/k,(A[1]-L[1])*.5/k]},t.dpdx=function(b){return b._m},t.dpdy=function(b){return b._m}}});var bXe=ye((txr,xXe)=>{"use strict";var G7=Qa(),vXe=Mr().isArray1D,EXt=FZe(),pXe=NZe(),gXe=VZe(),mXe=WZe(),kXt=XZe(),yXe=$I(),_Xe=KZe(),CXt=KI(),LXt=dXe();xXe.exports=function(t,r){var n=G7.getFromId(t,r.xaxis),i=G7.getFromId(t,r.yaxis),a=r.aaxis,o=r.baxis,s=r.x,l=r.y,u=[];s&&vXe(s)&&u.push("x"),l&&vXe(l)&&u.push("y"),u.length&&CXt(r,a,o,"a","b",u);var c=r._a=r._a||r.a,f=r._b=r._b||r.b;s=r._x||r.x,l=r._y||r.y;var h={};if(r._cheater){var d=a.cheatertype==="index"?c.length:c,v=o.cheatertype==="index"?f.length:f;s=EXt(d,v,r.cheaterslope)}r._x=s=yXe(s),r._y=l=yXe(l),_Xe(s,c,f),_Xe(l,c,f),LXt(r),r.setScale();var x=pXe(s),b=pXe(l),g=.5*(x[1]-x[0]),E=.5*(x[1]+x[0]),k=.5*(b[1]-b[0]),A=.5*(b[1]+b[0]),L=1.3;return x=[E-g*L,E+g*L],b=[A-k*L,A+k*L],r._extremes[n._id]=G7.findExtremes(n,x,{padded:!0}),r._extremes[i._id]=G7.findExtremes(i,b,{padded:!0}),gXe(r,"a","b"),gXe(r,"b","a"),mXe(r,a),mXe(r,o),h.clipsegments=kXt(r._xctrl,r._yctrl,a,o),h.x=s,h.y=l,h.a=c,h.b=f,[h]}});var TXe=ye((rxr,wXe)=>{"use strict";wXe.exports={attributes:q7(),supplyDefaults:wZe(),plot:DZe(),calc:bXe(),animatable:!0,isContainer:!0,moduleType:"trace",name:"carpet",basePlotModule:Jf(),categories:["cartesian","svg","carpet","carpetAxis","notLegendIsolatable","noMultiCategory","noHover","noSortingByValue"],meta:{}}});var SXe=ye((ixr,AXe)=>{"use strict";AXe.exports=TXe()});var d$=ye((nxr,EXe)=>{"use strict";var PXt=Eg(),u0=Uc(),IXt=vl(),RXt=Wo().hovertemplateAttrs,DXt=Wo().texttemplateAttrs,MXe=Kl(),kx=no().extendFlat,sg=u0.marker,OA=u0.line,zXt=sg.line;EXe.exports={carpet:{valType:"string",editType:"calc"},a:{valType:"data_array",editType:"calc"},b:{valType:"data_array",editType:"calc"},mode:kx({},u0.mode,{dflt:"markers"}),text:kx({},u0.text,{}),texttemplate:DXt({editType:"plot"},{keys:["a","b","text"]}),hovertext:kx({},u0.hovertext,{}),line:{color:OA.color,width:OA.width,dash:OA.dash,backoff:OA.backoff,shape:kx({},OA.shape,{values:["linear","spline"]}),smoothing:OA.smoothing,editType:"calc"},connectgaps:u0.connectgaps,fill:kx({},u0.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:PXt(),marker:kx({symbol:sg.symbol,opacity:sg.opacity,maxdisplayed:sg.maxdisplayed,angle:sg.angle,angleref:sg.angleref,standoff:sg.standoff,size:sg.size,sizeref:sg.sizeref,sizemin:sg.sizemin,sizemode:sg.sizemode,line:kx({width:zXt.width,editType:"calc"},MXe("marker.line")),gradient:sg.gradient,editType:"calc"},MXe("marker")),textfont:u0.textfont,textposition:u0.textposition,selected:u0.selected,unselected:u0.unselected,hoverinfo:kx({},IXt.hoverinfo,{flags:["a","b","text","name"]}),hoveron:u0.hoveron,hovertemplate:RXt(),zorder:u0.zorder}});var PXe=ye((axr,LXe)=>{"use strict";var kXe=Mr(),FXt=Sm(),BA=lu(),qXt=$p(),OXt=R0(),CXe=J3(),BXt=D0(),NXt=Ig(),UXt=d$();LXe.exports=function(t,r,n,i){function a(h,d){return kXe.coerce(t,r,UXt,h,d)}a("carpet"),r.xaxis="x",r.yaxis="y";var o=a("a"),s=a("b"),l=Math.min(o.length,s.length);if(!l){r.visible=!1;return}r._length=l,a("text"),a("texttemplate"),a("hovertext");var u=l{"use strict";IXe.exports=function(t,r){var n={},i=r._carpet,a=i.ab2ij([t.a,t.b]),o=Math.floor(a[0]),s=a[0]-o,l=Math.floor(a[1]),u=a[1]-l,c=i.evalxy([],o,l,s,u);return n.yLabel=c[1].toFixed(3),n}});var j7=ye((sxr,DXe)=>{"use strict";DXe.exports=function(e,t){for(var r=e._fullData.length,n,i=0;i{"use strict";var zXe=uo(),VXt=z0(),HXt=km(),GXt=F0(),jXt=q0().calcMarkerSize,WXt=j7();FXe.exports=function(t,r){var n=r._carpetTrace=WXt(t,r);if(!(!n||!n.visible||n.visible==="legendonly")){var i;r.xaxis=n.xaxis,r.yaxis=n.yaxis;var a=r._length,o=new Array(a),s,l,u=!1;for(i=0;i{"use strict";var ZXt=iT(),OXe=Qa(),XXt=ao();BXe.exports=function(t,r,n,i){var a,o,s,l=n[0][0].carpet,u=OXe.getFromId(t,l.xaxis||"x"),c=OXe.getFromId(t,l.yaxis||"y"),f={xaxis:u,yaxis:c,plot:r.plot};for(a=0;a{"use strict";var YXt=sT(),KXt=Mr().fillText;UXe.exports=function(t,r,n,i){var a=YXt(t,r,n,i);if(!a||a[0].index===!1)return;var o=a[0];if(o.index===void 0){var s=1-o.y0/t.ya._length,l=t.xa._length,u=l*s/2,c=l-u;return o.x0=Math.max(Math.min(o.x0,c),u),o.x1=Math.max(Math.min(o.x1,c),u),a}var f=o.cd[o.index];o.a=f.a,o.b=f.b,o.xLabelVal=void 0,o.yLabelVal=void 0;var h=o.trace,d=h._carpet,v=h._module.formatLabels(f,h);o.yLabel=v.yLabel,delete o.text;var x=[];function b(k,A){var L;k.labelprefix&&k.labelprefix.length>0?L=k.labelprefix.replace(/ = $/,""):L=k._hovertitle,x.push(L+": "+A.toFixed(3)+k.labelsuffix)}if(!h.hovertemplate){var g=f.hi||h.hoverinfo,E=g.split("+");E.indexOf("all")!==-1&&(E=["a","b","text"]),E.indexOf("a")!==-1&&b(d.aaxis,f.a),E.indexOf("b")!==-1&&b(d.baxis,f.b),x.push("y: "+o.yLabel),E.indexOf("text")!==-1&&KXt(f,h,x),o.extraText=x.join("
")}return a}});var GXe=ye((fxr,HXe)=>{"use strict";HXe.exports=function(t,r,n,i,a){var o=i[a];return t.a=o.a,t.b=o.b,t.y=o.y,t}});var WXe=ye((hxr,jXe)=>{"use strict";jXe.exports={attributes:d$(),supplyDefaults:PXe(),colorbar:Kd(),formatLabels:RXe(),calc:qXe(),plot:NXe(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:VXe(),selectPoints:lT(),eventData:GXe(),moduleType:"trace",name:"scattercarpet",basePlotModule:Jf(),categories:["svg","carpet","symbols","showLegend","carpetDependent","zoomScale"],meta:{}}});var XXe=ye((dxr,ZXe)=>{"use strict";ZXe.exports=WXe()});var v$=ye((vxr,YXe)=>{"use strict";var lg=ET(),g1=T4(),JXt=Kl(),$Xt=no().extendFlat,ty=g1.contours;YXe.exports=$Xt({carpet:{valType:"string",editType:"calc"},z:lg.z,a:lg.x,a0:lg.x0,da:lg.dx,b:lg.y,b0:lg.y0,db:lg.dy,text:lg.text,hovertext:lg.hovertext,transpose:lg.transpose,atype:lg.xtype,btype:lg.ytype,fillcolor:g1.fillcolor,autocontour:g1.autocontour,ncontours:g1.ncontours,contours:{type:ty.type,start:ty.start,end:ty.end,size:ty.size,coloring:{valType:"enumerated",values:["fill","lines","none"],dflt:"fill",editType:"calc"},showlines:ty.showlines,showlabels:ty.showlabels,labelfont:ty.labelfont,labelformat:ty.labelformat,operation:ty.operation,value:ty.value,editType:"calc",impliedEdits:{autocontour:!1}},line:{color:g1.line.color,width:g1.line.width,dash:g1.line.dash,smoothing:g1.line.smoothing,editType:"plot"},zorder:g1.zorder},JXt("",{cLetter:"z",autoColorDflt:!1}))});var p$=ye((pxr,$Xe)=>{"use strict";var KXe=Mr(),QXt=ZI(),JXe=v$(),eYt=yH(),tYt=m8(),rYt=y8();$Xe.exports=function(t,r,n,i){function a(u,c){return KXe.coerce(t,r,JXe,u,c)}function o(u){return KXe.coerce2(t,r,JXe,u)}if(a("carpet"),t.a&&t.b){var s=QXt(t,r,a,i,"a","b");if(!s){r.visible=!1;return}a("text");var l=a("contours.type")==="constraint";l?eYt(t,r,a,i,n,{hasHover:!1}):(tYt(t,r,a,o),rYt(t,r,a,i,{hasHover:!1}))}else r._defaultColor=n,r._length=null;a("zorder")}});var rYe=ye((gxr,tYe)=>{"use strict";var iYt=zv(),QXe=Mr(),nYt=KI(),aYt=$I(),oYt=QI(),sYt=e8(),eYe=VV(),lYt=p$(),uYt=j7(),cYt=oH();tYe.exports=function(t,r){var n=r._carpetTrace=uYt(t,r);if(!(!n||!n.visible||n.visible==="legendonly")){if(!r.a||!r.b){var i=t.data[n.index],a=t.data[r.index];a.a||(a.a=i.a),a.b||(a.b=i.b),lYt(a,r,r._defaultColor,t._fullLayout)}var o=fYt(t,r);return cYt(r,r._z),o}};function fYt(e,t){var r=t._carpetTrace,n=r.aaxis,i=r.baxis,a,o,s,l,u,c,f;n._minDtick=0,i._minDtick=0,QXe.isArray1D(t.z)&&nYt(t,n,i,"a","b",["z"]),a=t._a=t._a||t.a,l=t._b=t._b||t.b,a=a?n.makeCalcdata(t,"_a"):[],l=l?i.makeCalcdata(t,"_b"):[],o=t.a0||0,s=t.da||1,u=t.b0||0,c=t.db||1,f=t._z=aYt(t._z||t.z,t.transpose),t._emptypoints=sYt(f),oYt(f,t._emptypoints);var h=QXe.maxRowLength(f),d=t.xtype==="scaled"?"":a,v=eYe(t,d,o,s,h,n),x=t.ytype==="scaled"?"":l,b=eYe(t,x,u,c,f.length,i),g={a:v,b,z:f};return t.contours.type==="levels"&&t.contours.coloring!=="none"&&iYt(e,t,{vals:f,containerStr:"",cLetter:"z"}),[g]}});var nYe=ye((mxr,iYe)=>{"use strict";var hYt=Mr().isArrayOrTypedArray;iYe.exports=function(e,t,r,n){var i,a,o,s,l,u,c,f,h,d,v,x,b,g=hYt(r)?"a":"b",E=g==="a"?e.aaxis:e.baxis,k=E.smoothing,A=g==="a"?e.a2i:e.b2j,L=g==="a"?r:n,_=g==="a"?n:r,C=g==="a"?t.a.length:t.b.length,M=g==="a"?t.b.length:t.a.length,p=Math.floor(g==="a"?e.b2j(_):e.a2i(_)),P=g==="a"?function(_e){return e.evalxy([],_e,p)}:function(_e){return e.evalxy([],p,_e)};k&&(o=Math.max(0,Math.min(M-2,p)),s=p-o,a=g==="a"?function(_e,Me){return e.dxydi([],_e,o,Me,s)}:function(_e,Me){return e.dxydj([],o,_e,s,Me)});var T=A(L[0]),F=A(L[1]),q=T0?Math.floor:Math.ceil,X=q>0?Math.ceil:Math.floor,G=q>0?Math.min:Math.max,N=q>0?Math.max:Math.min,W=H(T+V),re=X(F-V);c=P(T);var ae=[[c]];for(i=W;i*q{"use strict";var Z7=xa(),X7=u$(),uYe=c$(),$k=ao(),m1=Mr(),dYt=lH(),vYt=uH(),hw=b8(),W7=S4(),pYt=dH(),gYt=hH(),mYt=vH(),yYt=j7(),aYe=nYe();cYe.exports=function(t,r,n,i){var a=r.xaxis,o=r.yaxis;m1.makeTraceGroups(i,n,"contour").each(function(s){var l=Z7.select(this),u=s[0],c=u.trace,f=c._carpetTrace=yYt(t,c),h=t.calcdata[f.index][0];if(!f.visible||f.visible==="legendonly")return;var d=u.a,v=u.b,x=c.contours,b=gYt(x,r,u),g=x.type==="constraint",E=x._operation,k=g?E==="="?"lines":"fill":x.coloring;function A(H){var X=f.ab2xy(H[0],H[1],!0);return[a.c2p(X[0]),o.c2p(X[1])]}var L=[[d[0],v[v.length-1]],[d[d.length-1],v[v.length-1]],[d[d.length-1],v[0]],[d[0],v[0]]];dYt(b);var _=(d[d.length-1]-d[0])*1e-8,C=(v[v.length-1]-v[0])*1e-8;vYt(b,_,C);var M=b;x.type==="constraint"&&(M=pYt(b,E)),_Yt(b,A);var p,P,T,F,q=[];for(F=h.clipsegments.length-1;F>=0;F--)p=h.clipsegments[F],P=X7([],p.x,a.c2p),T=X7([],p.y,o.c2p),P.reverse(),T.reverse(),q.push(uYe(P,T,p.bicubic));var V="M"+q.join("L")+"Z";wYt(l,h.clipsegments,a,o,g,k),TYt(c,l,a,o,M,L,A,f,h,k,V),xYt(l,b,t,u,x,r,f),$k.setClipUrl(l,f._clipPathId,t)})};function _Yt(e,t){var r,n,i,a,o,s,l,u,c;for(r=0;rb&&(n.max=b),n.len=n.max-n.min}function oYe(e,t,r){var n=e.getPointAtLength(t),i=e.getPointAtLength(r),a=i.x-n.x,o=i.y-n.y,s=Math.sqrt(a*a+o*o);return[a/s,o/s]}function sYe(e){var t=Math.sqrt(e[0]*e[0]+e[1]*e[1]);return[e[0]/t,e[1]/t]}function lYe(e,t){var r=Math.abs(e[0]*t[0]+e[1]*t[1]),n=Math.sqrt(1-r*r);return n/r}function wYt(e,t,r,n,i,a){var o,s,l,u,c=m1.ensureSingle(e,"g","contourbg"),f=c.selectAll("path").data(a==="fill"&&!i?[0]:[]);f.enter().append("path"),f.exit().remove();var h=[];for(u=0;u=0&&(d=P,x=b):Math.abs(h[1]-d[1])=0&&(d=P,x=b):m1.log("endpt to newendpt is not vert. or horz.",h,d,P)}if(x>=0)break;u+=M(h,d),h=d}if(x===t.edgepaths.length){m1.log("unclosed perimeter path");break}l=x,f=c.indexOf(l)===-1,f&&(l=c[0],u+=M(h,d)+"Z",h=null)}for(l=0;l{"use strict";hYe.exports={attributes:v$(),supplyDefaults:p$(),colorbar:A8(),calc:rYe(),plot:fYe(),style:T8(),moduleType:"trace",name:"contourcarpet",basePlotModule:Jf(),categories:["cartesian","svg","carpet","contour","symbols","showLegend","hasLines","carpetDependent","noHover","noSortingByValue"],meta:{}}});var pYe=ye((xxr,vYe)=>{"use strict";vYe.exports=dYe()});var K7=ye((bxr,xYe)=>{"use strict";var Y7=Mr().extendFlat,Qk=Uc(),gYe=Oc().axisHoverFormat,yYe=Ed().dash,SYt=i3(),_Ye=HT(),MYt=_Ye.INCREASING.COLOR,EYt=_Ye.DECREASING.COLOR,g$=Qk.line;function mYe(e){return{line:{color:Y7({},g$.color,{dflt:e}),width:g$.width,dash:yYe,editType:"style"},editType:"style"}}xYe.exports={xperiod:Qk.xperiod,xperiod0:Qk.xperiod0,xperiodalignment:Qk.xperiodalignment,xhoverformat:gYe("x"),yhoverformat:gYe("y"),x:{valType:"data_array",editType:"calc+clearAxisTypes"},open:{valType:"data_array",editType:"calc"},high:{valType:"data_array",editType:"calc"},low:{valType:"data_array",editType:"calc"},close:{valType:"data_array",editType:"calc"},line:{width:Y7({},g$.width,{}),dash:Y7({},yYe,{}),editType:"style"},increasing:mYe(MYt),decreasing:mYe(EYt),text:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},hovertext:{valType:"string",dflt:"",arrayOk:!0,editType:"calc"},tickwidth:{valType:"number",min:0,max:.5,dflt:.3,editType:"calc"},hoverlabel:Y7({},SYt.hoverlabel,{split:{valType:"boolean",dflt:!1,editType:"style"}}),zorder:Qk.zorder}});var m$=ye((wxr,bYe)=>{"use strict";var kYt=ba(),CYt=Mr();bYe.exports=function(t,r,n,i){var a=n("x"),o=n("open"),s=n("high"),l=n("low"),u=n("close");n("hoverlabel.split");var c=kYt.getComponentMethod("calendars","handleTraceDefaults");if(c(t,r,["x"],i),!!(o&&s&&l&&u)){var f=Math.min(o.length,s.length,l.length,u.length);return a&&(f=Math.min(f,CYt.minRowLength(a))),r._length=f,f}}});var AYe=ye((Txr,TYe)=>{"use strict";var LYt=Mr(),PYt=m$(),IYt=Pg(),RYt=K7();TYe.exports=function(t,r,n,i){function a(s,l){return LYt.coerce(t,r,RYt,s,l)}var o=PYt(t,r,a,i);if(!o){r.visible=!1;return}IYt(t,r,i,a,{x:!0}),a("xhoverformat"),a("yhoverformat"),a("line.width"),a("line.dash"),wYe(t,r,a,"increasing"),wYe(t,r,a,"decreasing"),a("text"),a("hovertext"),a("tickwidth"),i._requestRangeslider[r.xaxis]=!0,a("zorder")};function wYe(e,t,r,n){r(n+".line.color"),r(n+".line.width",t.line.width),r(n+".line.dash",t.line.dash)}});var y$=ye((Axr,MYe)=>{"use strict";var NA=Mr(),J7=NA._,$7=Qa(),DYt=Rg(),eC=es().BADNUM;function zYt(e,t){var r=$7.getFromId(e,t.xaxis),n=$7.getFromId(e,t.yaxis),i=qYt(e,r,t),a=t._minDiff;t._minDiff=null;var o=t._origX;t._origX=null;var s=t._xcalc;t._xcalc=null;var l=SYe(e,t,o,s,n,FYt);return t._extremes[r._id]=$7.findExtremes(r,s,{vpad:a/2}),l.length?(NA.extendFlat(l[0].t,{wHover:a/2,tickLen:i}),l):[{t:{empty:!0}}]}function FYt(e,t,r,n){return{o:e,h:t,l:r,c:n}}function SYe(e,t,r,n,i,a){for(var o=i.makeCalcdata(t,"open"),s=i.makeCalcdata(t,"high"),l=i.makeCalcdata(t,"low"),u=i.makeCalcdata(t,"close"),c=NA.isArrayOrTypedArray(t.text),f=NA.isArrayOrTypedArray(t.hovertext),h=!0,d=null,v=!!t.xperiodalignment,x=[],b=0;bd):h=L>E,d=L;var _=a(E,k,A,L);_.pos=g,_.yc=(E+L)/2,_.i=b,_.dir=h?"increasing":"decreasing",_.x=_.pos,_.y=[A,k],v&&(_.orig_p=r[b]),c&&(_.tx=t.text[b]),f&&(_.htx=t.hovertext[b]),x.push(_)}else x.push({pos:g,empty:!0})}return t._extremes[i._id]=$7.findExtremes(i,NA.concat(l,s),{padded:!0}),x.length&&(x[0].t={labels:{open:J7(e,"open:")+" ",high:J7(e,"high:")+" ",low:J7(e,"low:")+" ",close:J7(e,"close:")+" "}}),x}function qYt(e,t,r){var n=r._minDiff;if(!n){var i=e._fullData,a=[];n=1/0;var o;for(o=0;o{"use strict";var OYt=xa(),EYe=Mr();kYe.exports=function(t,r,n,i){var a=r.yaxis,o=r.xaxis,s=!!o.rangebreaks;EYe.makeTraceGroups(i,n,"trace ohlc").each(function(l){var u=OYt.select(this),c=l[0],f=c.t,h=c.trace;if(h.visible!==!0||f.empty){u.remove();return}var d=f.tickLen,v=u.selectAll("path").data(EYe.identity);v.enter().append("path"),v.exit().remove(),v.attr("d",function(x){if(x.empty)return"M0,0Z";var b=o.c2p(x.pos-d,!0),g=o.c2p(x.pos+d,!0),E=s?(b+g)/2:o.c2p(x.pos,!0),k=a.c2p(x.o,!0),A=a.c2p(x.h,!0),L=a.c2p(x.l,!0),_=a.c2p(x.c,!0);return"M"+b+","+k+"H"+E+"M"+E+","+A+"V"+L+"M"+g+","+_+"H"+E})})}});var PYe=ye((Mxr,LYe)=>{"use strict";var _$=xa(),BYt=ao(),NYt=va();LYe.exports=function(t,r,n){var i=n||_$.select(t).selectAll("g.ohlclayer").selectAll("g.trace");i.style("opacity",function(a){return a[0].trace.opacity}),i.each(function(a){var o=a[0].trace;_$.select(this).selectAll("path").each(function(s){if(!s.empty){var l=o[s.dir].line;_$.select(this).style("fill","none").call(NYt.stroke,l.color).call(BYt.dashLine,l.dash,l.width).style("opacity",o.selectedpoints&&!s.selected?.3:1)}})})}});var b$=ye((Exr,FYe)=>{"use strict";var x$=Qa(),UYt=Mr(),Q7=Nc(),VYt=va(),HYt=Mr().fillText,IYe=HT(),GYt={increasing:IYe.INCREASING.SYMBOL,decreasing:IYe.DECREASING.SYMBOL};function jYt(e,t,r,n){var i=e.cd,a=i[0].trace;return a.hoverlabel.split?DYe(e,t,r,n):zYe(e,t,r,n)}function RYe(e,t,r,n){var i=e.cd,a=e.xa,o=i[0].trace,s=i[0].t,l=o.type,u=l==="ohlc"?"l":"min",c=l==="ohlc"?"h":"max",f,h,d=s.bPos||0,v=function(P){return P.pos+d-t},x=s.bdPos||s.tickLen,b=s.wHover,g=Math.min(1,x/Math.abs(a.r2c(a.range[1])-a.r2c(a.range[0])));f=e.maxHoverDistance-g,h=e.maxSpikeDistance-g;function E(P){var T=v(P);return Q7.inbox(T-b,T+b,f)}function k(P){var T=P[u],F=P[c];return T===F||Q7.inbox(T-r,F-r,f)}function A(P){return(E(P)+k(P))/2}var L=Q7.getDistanceFunction(n,E,k,A);if(Q7.getClosest(i,L,e),e.index===!1)return null;var _=i[e.index];if(_.empty)return null;var C=_.dir,M=o[C],p=M.line.color;return VYt.opacity(p)&&M.line.width?e.color=p:e.color=M.fillcolor,e.x0=a.c2p(_.pos+d-x,!0),e.x1=a.c2p(_.pos+d+x,!0),e.xLabelVal=_.orig_p!==void 0?_.orig_p:_.pos,e.spikeDistance=A(_)*h/f,e.xSpike=a.c2p(_.pos,!0),e}function DYe(e,t,r,n){var i=e.cd,a=e.ya,o=i[0].trace,s=i[0].t,l=[],u=RYe(e,t,r,n);if(!u)return[];var c=u.index,f=i[c],h=f.hi||o.hoverinfo,d=h.split("+"),v=h==="all",x=v||d.indexOf("y")!==-1;if(!x)return[];for(var b=["high","open","close","low"],g={},E=0;E"+s.labels[k]+x$.hoverLabelText(a,A,o.yhoverformat)):(_=UYt.extendFlat({},u),_.y0=_.y1=L,_.yLabelVal=A,_.yLabel=s.labels[k]+x$.hoverLabelText(a,A,o.yhoverformat),_.name="",l.push(_),g[A]=_)}return l}function zYe(e,t,r,n){var i=e.cd,a=e.ya,o=i[0].trace,s=i[0].t,l=RYe(e,t,r,n);if(!l)return[];var u=l.index,c=i[u],f=l.index=c.i,h=c.dir;function d(A){return s.labels[A]+x$.hoverLabelText(a,o[A][f],o.yhoverformat)}var v=c.hi||o.hoverinfo,x=v.split("+"),b=v==="all",g=b||x.indexOf("y")!==-1,E=b||x.indexOf("text")!==-1,k=g?[d("open"),d("high"),d("low"),d("close")+" "+GYt[h]]:[];return E&&HYt(c,o,k),l.extraText=k.join("
"),l.y0=l.y1=a.c2p(c.yc,!0),[l]}FYe.exports={hoverPoints:jYt,hoverSplit:DYe,hoverOnPoints:zYe}});var w$=ye((kxr,qYe)=>{"use strict";qYe.exports=function(t,r){var n=t.cd,i=t.xaxis,a=t.yaxis,o=[],s,l=n[0].t.bPos||0;if(r===!1)for(s=0;s{"use strict";OYe.exports={moduleType:"trace",name:"ohlc",basePlotModule:Jf(),categories:["cartesian","svg","showLegend"],meta:{},attributes:K7(),supplyDefaults:AYe(),calc:y$().calc,plot:CYe(),style:PYe(),hoverPoints:b$().hoverPoints,selectPoints:w$()}});var UYe=ye((Lxr,NYe)=>{"use strict";NYe.exports=BYe()});var A$=ye((Pxr,GYe)=>{"use strict";var T$=Mr().extendFlat,VYe=Oc().axisHoverFormat,c0=K7(),UA=v4();function HYe(e){return{line:{color:T$({},UA.line.color,{dflt:e}),width:UA.line.width,editType:"style"},fillcolor:UA.fillcolor,editType:"style"}}GYe.exports={xperiod:c0.xperiod,xperiod0:c0.xperiod0,xperiodalignment:c0.xperiodalignment,xhoverformat:VYe("x"),yhoverformat:VYe("y"),x:c0.x,open:c0.open,high:c0.high,low:c0.low,close:c0.close,line:{width:T$({},UA.line.width,{}),editType:"style"},increasing:HYe(c0.increasing.line.color.dflt),decreasing:HYe(c0.decreasing.line.color.dflt),text:c0.text,hovertext:c0.hovertext,whiskerwidth:T$({},UA.whiskerwidth,{dflt:0}),hoverlabel:c0.hoverlabel,zorder:UA.zorder}});var ZYe=ye((Ixr,WYe)=>{"use strict";var WYt=Mr(),ZYt=va(),XYt=m$(),YYt=Pg(),KYt=A$();WYe.exports=function(t,r,n,i){function a(s,l){return WYt.coerce(t,r,KYt,s,l)}var o=XYt(t,r,a,i);if(!o){r.visible=!1;return}YYt(t,r,i,a,{x:!0}),a("xhoverformat"),a("yhoverformat"),a("line.width"),jYe(t,r,a,"increasing"),jYe(t,r,a,"decreasing"),a("text"),a("hovertext"),a("whiskerwidth"),i._requestRangeslider[r.xaxis]=!0,a("zorder")};function jYe(e,t,r,n){var i=r(n+".line.color");r(n+".line.width",t.line.width),r(n+".fillcolor",ZYt.addOpacity(i,.5))}});var JYe=ye((Rxr,KYe)=>{"use strict";var XYe=Mr(),YYe=Qa(),JYt=Rg(),$Yt=y$().calcCommon;KYe.exports=function(e,t){var r=e._fullLayout,n=YYe.getFromId(e,t.xaxis),i=YYe.getFromId(e,t.yaxis),a=n.makeCalcdata(t,"x"),o=JYt(t,n,"x",a).vals,s=$Yt(e,t,a,o,i,QYt);return s.length?(XYe.extendFlat(s[0].t,{num:r._numBoxes,dPos:XYe.distinctVals(o).minDiff/2,posLetter:"x",valLetter:"y"}),r._numBoxes++,s):[{t:{empty:!0}}]};function QYt(e,t,r,n){return{min:r,q1:Math.min(e,n),med:n,q3:Math.max(e,n),max:t}}});var QYe=ye((Dxr,$Ye)=>{"use strict";$Ye.exports={moduleType:"trace",name:"candlestick",basePlotModule:Jf(),categories:["cartesian","svg","showLegend","candlestick","boxLayout"],meta:{},attributes:A$(),layoutAttributes:p4(),supplyLayoutDefaults:UI().supplyLayoutDefaults,crossTraceCalc:HI().crossTraceCalc,supplyDefaults:ZYe(),calc:JYe(),plot:GI().plot,layerName:"boxlayer",style:jI().style,hoverPoints:b$().hoverPoints,selectPoints:w$()}});var tKe=ye((zxr,eKe)=>{"use strict";eKe.exports=QYe()});var M$=ye((Fxr,rKe)=>{"use strict";var t9=Mr(),eKt=ym(),e9=t9.deg2rad,S$=t9.rad2deg;rKe.exports=function(t,r,n){switch(eKt(t,n),t._id){case"x":case"radialaxis":tKt(t,r);break;case"angularaxis":nKt(t,r);break}};function tKt(e,t){var r=t._subplot;e.setGeometry=function(){var n=e._rl[0],i=e._rl[1],a=r.innerRadius,o=(r.radius-a)/(i-n),s=a/o,l=n>i?function(u){return u<=0}:function(u){return u>=0};e.c2g=function(u){var c=e.c2l(u)-n;return(l(c)?c:0)+s},e.g2c=function(u){return e.l2c(u+n-s)},e.g2p=function(u){return u*o},e.c2p=function(u){return e.g2p(e.c2g(u))}}}function rKt(e,t){return t==="degrees"?e9(e):e}function iKt(e,t){return t==="degrees"?S$(e):e}function nKt(e,t){var r=e.type;if(r==="linear"){var n=e.d2c,i=e.c2d;e.d2c=function(a,o){return rKt(n(a),o)},e.c2d=function(a,o){return i(iKt(a,o))}}e.makeCalcdata=function(a,o){var s=a[o],l=a._length,u,c,f=function(b){return e.d2c(b,a.thetaunit)};if(s)for(u=new Array(l),c=0;c{"use strict";iKe.exports={attr:"subplot",name:"polar",axisNames:["angularaxis","radialaxis"],axisName2dataArray:{angularaxis:"theta",radialaxis:"r"},layerNames:["draglayer","plotbg","backplot","angular-grid","radial-grid","frontplot","angular-line","radial-line","angular-axis","radial-axis"],radialDragBoxSize:50,angularDragBoxSize:30,cornerLen:25,cornerHalfWidth:2,MINDRAG:8,MINZOOM:20,OFFEDGE:20}});var n9=ye((Oxr,lKe)=>{"use strict";var dw=Mr(),nKe=wM().tester,E$=dw.findIndexOfMin,oKe=dw.isAngleInsideSector,aKt=dw.angleDelta,aKe=dw.angleDist;function oKt(e,t,r,n,i){if(!oKe(t,n))return!1;var a,o;r[0]0?o:1/0},n=E$(t,r),i=dw.mod(n+1,t.length);return[t[n],t[i]]}function i9(e){return Math.abs(e)>1e-10?e:0}function k$(e,t,r){t=t||0,r=r||0;for(var n=e.length,i=new Array(n),a=0;a{"use strict";function uKe(e){return e<0?-1:e>0?1:0}function HA(e){var t=e[0],r=e[1];if(!isFinite(t)||!isFinite(r))return[1,0];var n=(t+1)*(t+1)+r*r;return[(t*t+r*r-1)/n,2*r/n]}function GA(e,t){var r=t[0],n=t[1];return[r*e.radius+e.cx,-n*e.radius+e.cy]}function cKe(e,t){return t*e.radius}function vKt(e,t,r,n){var i=GA(e,HA([r,t])),a=i[0],o=i[1],s=GA(e,HA([n,t])),l=s[0],u=s[1];if(t===0)return["M"+a+","+o,"L"+l+","+u].join(" ");var c=cKe(e,1/Math.abs(t));return["M"+a+","+o,"A"+c+","+c+" 0 0,"+(t<0?1:0)+" "+l+","+u].join(" ")}function pKt(e,t,r,n){var i=cKe(e,1/(t+1)),a=GA(e,HA([t,r])),o=a[0],s=a[1],l=GA(e,HA([t,n])),u=l[0],c=l[1];if(uKe(r)!==uKe(n)){var f=GA(e,HA([t,0])),h=f[0],d=f[1];return["M"+o+","+s,"A"+i+","+i+" 0 0,"+(0{"use strict";var vw=xa(),gKt=id(),gw=ba(),cc=Mr(),ry=cc.strRotate,dd=cc.strTranslate,L$=va(),tC=ao(),mKt=Xu(),dp=Qa(),yKt=ym(),_Kt=M$(),xKt=wg().doAutoRange,y1=DN(),s9=gv(),hKe=Nc(),bKt=Mb(),wKt=wf().prepSelect,TKt=wf().selectOnClick,P$=wf().clearOutline,dKe=Tg(),vKe=lM(),pKe=gM().redrawReglTraces,AKt=Nh().MID_SHIFT,Cx=r9(),_1=n9(),l9=C$(),a9=l9.smith,SKt=l9.reactanceArc,MKt=l9.resistanceArc,o9=l9.smithTransform,EKt=cc._,gKe=cc.mod,Lx=cc.deg2rad,pw=cc.rad2deg;function mKe(e,t,r){this.isSmith=r||!1,this.id=t,this.gd=e,this._hasClipOnAxisFalse=null,this.vangles=null,this.radialAxisAngle=null,this.traceHash={},this.layers={},this.clipPaths={},this.clipIds={},this.viewInitial={};var n=e._fullLayout,i="clip"+n._uid+t;this.clipIds.forTraces=i+"-for-traces",this.clipPaths.forTraces=n._clips.append("clipPath").attr("id",this.clipIds.forTraces),this.clipPaths.forTraces.append("path"),this.framework=n["_"+(r?"smith":"polar")+"layer"].append("g").attr("class",t),this.getHole=function(a){return this.isSmith?0:a.hole},this.getSector=function(a){return this.isSmith?[0,360]:a.sector},this.getRadial=function(a){return this.isSmith?a.realaxis:a.radialaxis},this.getAngular=function(a){return this.isSmith?a.imaginaryaxis:a.angularaxis},r||(this.radialTickLayout=null,this.angularTickLayout=null)}var Fd=mKe.prototype;xKe.exports=function(t,r,n){return new mKe(t,r,n)};Fd.plot=function(e,t){for(var r=this,n=t[r.id],i=!1,a=0;ab?(g=u,E=u*b,L=(c-E)/i.h/2,k=[s[0],s[1]],A=[l[0]+L,l[1]-L]):(g=c/b,E=c,L=(u-g)/i.w/2,k=[s[0]+L,s[1]-L],A=[l[0],l[1]]),r.xLength2=g,r.yLength2=E,r.xDomain2=k,r.yDomain2=A;var _=r.xOffset2=i.l+i.w*k[0],C=r.yOffset2=i.t+i.h*(1-A[1]),M=r.radius=g/d,p=r.innerRadius=r.getHole(t)*M,P=r.cx=_-M*h[0],T=r.cy=C+M*h[3],F=r.cxx=P-_,q=r.cyy=T-C,V=a.side,H;V==="counterclockwise"?(H=V,V="top"):V==="clockwise"&&(H=V,V="bottom"),r.radialAxis=r.mockAxis(e,t,a,{_id:"x",side:V,_trueSide:H,domain:[p/i.w,M/i.w]}),r.angularAxis=r.mockAxis(e,t,o,{side:"right",domain:[0,Math.PI],autorange:!1}),r.doAutoRange(e,t),r.updateAngularAxis(e,t),r.updateRadialAxis(e,t),r.updateRadialAxisTitle(e,t),r.xaxis=r.mockCartesianAxis(e,t,{_id:"x",domain:k}),r.yaxis=r.mockCartesianAxis(e,t,{_id:"y",domain:A});var X=r.pathSubplot();r.clipPaths.forTraces.select("path").attr("d",X).attr("transform",dd(F,q)),n.frontplot.attr("transform",dd(_,C)).call(tC.setClipUrl,r._hasClipOnAxisFalse?null:r.clipIds.forTraces,r.gd),n.bg.attr("d",X).attr("transform",dd(P,T)).call(L$.fill,t.bgcolor)};Fd.mockAxis=function(e,t,r,n){var i=cc.extendFlat({},r,n);return _Kt(i,t,e),i};Fd.mockCartesianAxis=function(e,t,r){var n=this,i=n.isSmith,a=r._id,o=cc.extendFlat({type:"linear"},r);yKt(o,e);var s={x:[0,2],y:[1,3]};return o.setRange=function(){var l=n.sectorBBox,u=s[a],c=n.radialAxis._rl,f=(c[1]-c[0])/(1-n.getHole(t));o.range=[l[u[0]]*f,l[u[1]]*f]},o.isPtWithinRange=a==="x"&&!i?function(l){return n.isPtInside(l)}:function(){return!0},o.setRange(),o.setScale(),o};Fd.doAutoRange=function(e,t){var r=this,n=r.gd,i=r.radialAxis,a=r.getRadial(t);xKt(n,i);var o=i.range;if(a.range=o.slice(),a._input.range=o.slice(),i._rl=[i.r2l(o[0],null,"gregorian"),i.r2l(o[1],null,"gregorian")],i.minallowed!==void 0){var s=i.r2l(i.minallowed);i._rl[0]>i._rl[1]?i._rl[1]=Math.max(i._rl[1],s):i._rl[0]=Math.max(i._rl[0],s)}if(i.maxallowed!==void 0){var l=i.r2l(i.maxallowed);i._rl[0]90&&c<=270&&(f.tickangle=180);var v=d?function(M){var p=o9(r,a9([M.x,0]));return dd(p[0]-s,p[1]-l)}:function(M){return dd(f.l2p(M.x)+o,0)},x=d?function(M){return MKt(r,M.x,-1/0,1/0)}:function(M){return r.pathArc(f.r2p(M.x)+o)},b=yKe(u);if(r.radialTickLayout!==b&&(i["radial-axis"].selectAll(".xtick").remove(),r.radialTickLayout=b),h){f.setScale();var g=0,E=d?(f.tickvals||[]).filter(function(M){return M>=0}).map(function(M){return dp.tickText(f,M,!0,!1)}):dp.calcTicks(f),k=d?E:dp.clipEnds(f,E),A=dp.getTickSigns(f)[2];d&&((f.ticks==="top"&&f.side==="bottom"||f.ticks==="bottom"&&f.side==="top")&&(A=-A),f.ticks==="top"&&f.side==="top"&&(g=-f.ticklen),f.ticks==="bottom"&&f.side==="bottom"&&(g=f.ticklen)),dp.drawTicks(n,f,{vals:E,layer:i["radial-axis"],path:dp.makeTickPath(f,0,A),transFn:v,crisp:!1}),dp.drawGrid(n,f,{vals:k,layer:i["radial-grid"],path:x,transFn:cc.noop,crisp:!1}),dp.drawLabels(n,f,{vals:E,layer:i["radial-axis"],transFn:v,labelFns:dp.makeLabelFns(f,g)})}var L=r.radialAxisAngle=r.vangles?pw(_Ke(Lx(u.angle),r.vangles)):u.angle,_=dd(s,l),C=_+ry(-L);rC(i["radial-axis"],h&&(u.showticklabels||u.ticks),{transform:C}),rC(i["radial-grid"],h&&u.showgrid,{transform:d?"":_}),rC(i["radial-line"].select("line"),h&&u.showline,{x1:d?-a:o,y1:0,x2:a,y2:0,transform:C}).attr("stroke-width",u.linewidth).call(L$.stroke,u.linecolor)};Fd.updateRadialAxisTitle=function(e,t,r){if(!this.isSmith){var n=this,i=n.gd,a=n.radius,o=n.cx,s=n.cy,l=n.getRadial(t),u=n.id+"title",c=0;if(l.title){var f=tC.bBox(n.layers["radial-axis"].node()).height,h=l.title.font.size,d=l.side;c=d==="top"?h:d==="counterclockwise"?-(f+h*.4):f+h*.8}var v=r!==void 0?r:n.radialAxisAngle,x=Lx(v),b=Math.cos(x),g=Math.sin(x),E=o+a/2*b+c*g,k=s-a/2*g+c*b;n.layers["radial-axis-title"]=bKt.draw(i,u,{propContainer:l,propName:n.id+".radialaxis.title",placeholder:EKt(i,"Click to enter radial axis title"),attributes:{x:E,y:k,"text-anchor":"middle"},transform:{rotate:-v}})}};Fd.updateAngularAxis=function(e,t){var r=this,n=r.gd,i=r.layers,a=r.radius,o=r.innerRadius,s=r.cx,l=r.cy,u=r.getAngular(t),c=r.angularAxis,f=r.isSmith;f||(r.fillViewInitialKey("angularaxis.rotation",u.rotation),c.setGeometry(),c.setScale());var h=f?function(p){var P=o9(r,a9([0,p.x]));return Math.atan2(P[0]-s,P[1]-l)-Math.PI/2}:function(p){return c.t2g(p.x)};c.type==="linear"&&c.thetaunit==="radians"&&(c.tick0=pw(c.tick0),c.dtick=pw(c.dtick));var d=function(p){return dd(s+a*Math.cos(p),l-a*Math.sin(p))},v=f?function(p){var P=o9(r,a9([0,p.x]));return dd(P[0],P[1])}:function(p){return d(h(p))},x=f?function(p){var P=o9(r,a9([0,p.x])),T=Math.atan2(P[0]-s,P[1]-l)-Math.PI/2;return dd(P[0],P[1])+ry(-pw(T))}:function(p){var P=h(p);return d(P)+ry(-pw(P))},b=f?function(p){return SKt(r,p.x,0,1/0)}:function(p){var P=h(p),T=Math.cos(P),F=Math.sin(P);return"M"+[s+o*T,l-o*F]+"L"+[s+a*T,l-a*F]},g=dp.makeLabelFns(c,0),E=g.labelStandoff,k={};k.xFn=function(p){var P=h(p);return Math.cos(P)*E},k.yFn=function(p){var P=h(p),T=Math.sin(P)>0?.2:1;return-Math.sin(P)*(E+p.fontSize*T)+Math.abs(Math.cos(P))*(p.fontSize*AKt)},k.anchorFn=function(p){var P=h(p),T=Math.cos(P);return Math.abs(T)<.1?"middle":T>0?"start":"end"},k.heightFn=function(p,P,T){var F=h(p);return-.5*(1+Math.sin(F))*T};var A=yKe(u);r.angularTickLayout!==A&&(i["angular-axis"].selectAll("."+c._id+"tick").remove(),r.angularTickLayout=A);var L=f?[1/0].concat(c.tickvals||[]).map(function(p){return dp.tickText(c,p,!0,!1)}):dp.calcTicks(c);f&&(L[0].text="\u221E",L[0].fontSize*=1.75);var _;if(t.gridshape==="linear"?(_=L.map(h),cc.angleDelta(_[0],_[1])<0&&(_=_.slice().reverse())):_=null,r.vangles=_,c.type==="category"&&(L=L.filter(function(p){return cc.isAngleInsideSector(h(p),r.sectorInRad)})),c.visible){var C=c.ticks==="inside"?-1:1,M=(c.linewidth||1)/2;dp.drawTicks(n,c,{vals:L,layer:i["angular-axis"],path:"M"+C*M+",0h"+C*c.ticklen,transFn:x,crisp:!1}),dp.drawGrid(n,c,{vals:L,layer:i["angular-grid"],path:b,transFn:cc.noop,crisp:!1}),dp.drawLabels(n,c,{vals:L,layer:i["angular-axis"],repositionOnUpdate:!0,transFn:v,labelFns:k})}rC(i["angular-line"].select("path"),u.showline,{d:r.pathSubplot(),transform:dd(s,l)}).attr("stroke-width",u.linewidth).call(L$.stroke,u.linecolor)};Fd.updateFx=function(e,t){if(!this.gd._context.staticPlot){var r=!this.isSmith;r&&(this.updateAngularDrag(e),this.updateRadialDrag(e,t,0),this.updateRadialDrag(e,t,1)),this.updateHoverAndMainDrag(e)}};Fd.updateHoverAndMainDrag=function(e){var t=this,r=t.isSmith,n=t.gd,i=t.layers,a=e._zoomlayer,o=Cx.MINZOOM,s=Cx.OFFEDGE,l=t.radius,u=t.innerRadius,c=t.cx,f=t.cy,h=t.cxx,d=t.cyy,v=t.sectorInRad,x=t.vangles,b=t.radialAxis,g=_1.clampTiny,E=_1.findXYatLength,k=_1.findEnclosingVertexAngles,A=Cx.cornerHalfWidth,L=Cx.cornerLen/2,_,C,M=y1.makeDragger(i,"path","maindrag",e.dragmode===!1?"none":"crosshair");vw.select(M).attr("d",t.pathSubplot()).attr("transform",dd(c,f)),M.onmousemove=function(ce){hKe.hover(n,ce,t.id),n._fullLayout._lasthover=M,n._fullLayout._hoversubplot=t.id},M.onmouseout=function(ce){n._dragging||s9.unhover(n,ce)};var p={element:M,gd:n,subplot:t.id,plotinfo:{id:t.id,xaxis:t.xaxis,yaxis:t.yaxis},xaxes:[t.xaxis],yaxes:[t.yaxis]},P,T,F,q,V,H,X,G,N;function W(ce,Ge){return Math.sqrt(ce*ce+Ge*Ge)}function re(ce,Ge){return W(ce-h,Ge-d)}function ae(ce,Ge){return Math.atan2(d-Ge,ce-h)}function _e(ce,Ge){return[ce*Math.cos(Ge),ce*Math.sin(-Ge)]}function Me(ce,Ge){if(ce===0)return t.pathSector(2*A);var nt=L/ce,ct=Ge-nt,qt=Ge+nt,rt=Math.max(0,Math.min(ce,l)),ot=rt-A,Rt=rt+A;return"M"+_e(ot,ct)+"A"+[ot,ot]+" 0,0,0 "+_e(ot,qt)+"L"+_e(Rt,qt)+"A"+[Rt,Rt]+" 0,0,1 "+_e(Rt,ct)+"Z"}function ke(ce,Ge,nt){if(ce===0)return t.pathSector(2*A);var ct=_e(ce,Ge),qt=_e(ce,nt),rt=g((ct[0]+qt[0])/2),ot=g((ct[1]+qt[1])/2),Rt,kt;if(rt&&ot){var Ct=ot/rt,Yt=-1/Ct,xr=E(A,Ct,rt,ot);Rt=E(L,Yt,xr[0][0],xr[0][1]),kt=E(L,Yt,xr[1][0],xr[1][1])}else{var er,Ke;ot?(er=L,Ke=A):(er=A,Ke=L),Rt=[[rt-er,ot-Ke],[rt+er,ot-Ke]],kt=[[rt-er,ot+Ke],[rt+er,ot+Ke]]}return"M"+Rt.join("L")+"L"+kt.reverse().join("L")+"Z"}function ge(){F=null,q=null,V=t.pathSubplot(),H=!1;var ce=n._fullLayout[t.id];X=gKt(ce.bgcolor).getLuminance(),G=y1.makeZoombox(a,X,c,f,V),G.attr("fill-rule","evenodd"),N=y1.makeCorners(a,c,f),P$(n)}function ie(ce,Ge){return Ge=Math.max(Math.min(Ge,l),u),ceo?(ce-1&&ce===1&&TKt(Ge,n,[t.xaxis],[t.yaxis],t.id,p),nt.indexOf("event")>-1&&hKe.click(n,Ge,t.id)}p.prepFn=function(ce,Ge,nt){var ct=n._fullLayout.dragmode,qt=M.getBoundingClientRect();n._fullLayout._calcInverseTransform(n);var rt=n._fullLayout._invTransform;_=n._fullLayout._invScaleX,C=n._fullLayout._invScaleY;var ot=cc.apply3DTransform(rt)(Ge-qt.left,nt-qt.top);if(P=ot[0],T=ot[1],x){var Rt=_1.findPolygonOffset(l,v[0],v[1],x);P+=h+Rt[0],T+=d+Rt[1]}switch(ct){case"zoom":p.clickFn=Re,r||(x?p.moveFn=ze:p.moveFn=Ee,p.doneFn=Ce,ge(ce,Ge,nt));break;case"select":case"lasso":wKt(ce,Ge,nt,p,ct);break}},s9.init(p)};Fd.updateRadialDrag=function(e,t,r){var n=this,i=n.gd,a=n.layers,o=n.radius,s=n.innerRadius,l=n.cx,u=n.cy,c=n.radialAxis,f=Cx.radialDragBoxSize,h=f/2;if(!c.visible)return;var d=Lx(n.radialAxisAngle),v=c._rl,x=v[0],b=v[1],g=v[r],E=.75*(v[1]-v[0])/(1-n.getHole(t))/o,k,A,L;r?(k=l+(o+h)*Math.cos(d),A=u-(o+h)*Math.sin(d),L="radialdrag"):(k=l+(s-h)*Math.cos(d),A=u-(s-h)*Math.sin(d),L="radialdrag-inner");var _=y1.makeRectDragger(a,L,"crosshair",-h,-h,f,f),C={element:_,gd:i};e.dragmode===!1&&(C.dragmode=!1),rC(vw.select(_),c.visible&&s0!=(r?P>x:P=90||i>90&&a>=450?d=1:s<=0&&u<=0?d=0:d=Math.max(s,u),i<=180&&a>=180||i>180&&a>=540?c=-1:o>=0&&l>=0?c=0:c=Math.min(o,l),i<=270&&a>=270||i>270&&a>=630?f=-1:s>=0&&u>=0?f=0:f=Math.min(s,u),a>=360?h=1:o<=0&&l<=0?h=0:h=Math.max(o,l),[c,f,h,d]}function _Ke(e,t){var r=function(i){return cc.angleDist(e,i)},n=cc.findIndexOfMin(t,r);return t[n]}function rC(e,t,r){return t?(e.attr("display",null),e.attr(r)):e&&e.attr("display","none"),e}});var R$=ye((Uxr,MKe)=>{"use strict";var CKt=dh(),Yo=Cd(),LKt=Ju().attributes,f0=Mr().extendFlat,bKe=Bu().overrideAll,wKe=bKe({color:Yo.color,showline:f0({},Yo.showline,{dflt:!0}),linecolor:Yo.linecolor,linewidth:Yo.linewidth,showgrid:f0({},Yo.showgrid,{dflt:!0}),gridcolor:Yo.gridcolor,gridwidth:Yo.gridwidth,griddash:Yo.griddash},"plot","from-root"),TKe=bKe({tickmode:Yo.minor.tickmode,nticks:Yo.nticks,tick0:Yo.tick0,dtick:Yo.dtick,tickvals:Yo.tickvals,ticktext:Yo.ticktext,ticks:Yo.ticks,ticklen:Yo.ticklen,tickwidth:Yo.tickwidth,tickcolor:Yo.tickcolor,ticklabelstep:Yo.ticklabelstep,showticklabels:Yo.showticklabels,labelalias:Yo.labelalias,showtickprefix:Yo.showtickprefix,tickprefix:Yo.tickprefix,showticksuffix:Yo.showticksuffix,ticksuffix:Yo.ticksuffix,showexponent:Yo.showexponent,exponentformat:Yo.exponentformat,minexponent:Yo.minexponent,separatethousands:Yo.separatethousands,tickfont:Yo.tickfont,tickangle:Yo.tickangle,tickformat:Yo.tickformat,tickformatstops:Yo.tickformatstops,layer:Yo.layer},"plot","from-root"),AKe={visible:f0({},Yo.visible,{dflt:!0}),type:f0({},Yo.type,{values:["-","linear","log","date","category"]}),autotypenumbers:Yo.autotypenumbers,autorangeoptions:{minallowed:Yo.autorangeoptions.minallowed,maxallowed:Yo.autorangeoptions.maxallowed,clipmin:Yo.autorangeoptions.clipmin,clipmax:Yo.autorangeoptions.clipmax,include:Yo.autorangeoptions.include,editType:"plot"},autorange:f0({},Yo.autorange,{editType:"plot"}),rangemode:{valType:"enumerated",values:["tozero","nonnegative","normal"],dflt:"tozero",editType:"calc"},minallowed:f0({},Yo.minallowed,{editType:"plot"}),maxallowed:f0({},Yo.maxallowed,{editType:"plot"}),range:f0({},Yo.range,{items:[{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1}},{valType:"any",editType:"plot",impliedEdits:{"^autorange":!1}}],editType:"plot"}),categoryorder:Yo.categoryorder,categoryarray:Yo.categoryarray,angle:{valType:"angle",editType:"plot"},autotickangles:Yo.autotickangles,side:{valType:"enumerated",values:["clockwise","counterclockwise"],dflt:"clockwise",editType:"plot"},title:{text:f0({},Yo.title.text,{editType:"plot",dflt:""}),font:f0({},Yo.title.font,{editType:"plot"}),editType:"plot"},hoverformat:Yo.hoverformat,uirevision:{valType:"any",editType:"none"},editType:"calc"};f0(AKe,wKe,TKe);var SKe={visible:f0({},Yo.visible,{dflt:!0}),type:{valType:"enumerated",values:["-","linear","category"],dflt:"-",editType:"calc",_noTemplating:!0},autotypenumbers:Yo.autotypenumbers,categoryorder:Yo.categoryorder,categoryarray:Yo.categoryarray,thetaunit:{valType:"enumerated",values:["radians","degrees"],dflt:"degrees",editType:"calc"},period:{valType:"number",editType:"calc",min:0},direction:{valType:"enumerated",values:["counterclockwise","clockwise"],dflt:"counterclockwise",editType:"calc"},rotation:{valType:"angle",editType:"calc"},hoverformat:Yo.hoverformat,uirevision:{valType:"any",editType:"none"},editType:"calc"};f0(SKe,wKe,TKe);MKe.exports={domain:LKt({name:"polar",editType:"plot"}),sector:{valType:"info_array",items:[{valType:"number",editType:"plot"},{valType:"number",editType:"plot"}],dflt:[0,360],editType:"plot"},hole:{valType:"number",min:0,max:1,dflt:0,editType:"plot"},bgcolor:{valType:"color",editType:"plot",dflt:CKt.background},radialaxis:AKe,angularaxis:SKe,gridshape:{valType:"enumerated",values:["circular","linear"],dflt:"circular",editType:"plot"},uirevision:{valType:"any",editType:"none"},editType:"calc"}});var LKe=ye((Vxr,CKe)=>{"use strict";var u9=Mr(),PKt=va(),IKt=Vs(),RKt=k_(),DKt=kd().getSubplotData,zKt=xb(),FKt=T3(),qKt=e_(),OKt=t_(),BKt=QP(),NKt=YM(),UKt=fB(),VKt=L3(),kKe=R$(),HKt=M$(),c9=r9(),EKe=c9.axisNames;function GKt(e,t,r,n){var i=r("bgcolor");n.bgColor=PKt.combine(i,n.paper_bgcolor);var a=r("sector");r("hole");var o=DKt(n.fullData,c9.name,n.id),s=n.layoutOut,l;function u(G,N){return r(l+"."+G,N)}for(var c=0;c{"use strict";var WKt=kd().getSubplotCalcData,ZKt=Mr().counterRegex,XKt=I$(),IKe=r9(),RKe=IKe.attr,mw=IKe.name,PKe=ZKt(mw),DKe={};DKe[RKe]={valType:"subplotid",dflt:mw,editType:"calc"};function YKt(e){for(var t=e._fullLayout,r=e.calcdata,n=t._subplots[mw],i=0;i{"use strict";var JKt=Wo().hovertemplateAttrs,$Kt=Wo().texttemplateAttrs,h9=no().extendFlat,QKt=Eg(),h0=Uc(),eJt=vl(),jA=h0.line;FKe.exports={mode:h0.mode,r:{valType:"data_array",editType:"calc+clearAxisTypes"},theta:{valType:"data_array",editType:"calc+clearAxisTypes"},r0:{valType:"any",dflt:0,editType:"calc+clearAxisTypes"},dr:{valType:"number",dflt:1,editType:"calc"},theta0:{valType:"any",dflt:0,editType:"calc+clearAxisTypes"},dtheta:{valType:"number",editType:"calc"},thetaunit:{valType:"enumerated",values:["radians","degrees","gradians"],dflt:"degrees",editType:"calc+clearAxisTypes"},text:h0.text,texttemplate:$Kt({editType:"plot"},{keys:["r","theta","text"]}),hovertext:h0.hovertext,line:{color:jA.color,width:jA.width,dash:jA.dash,backoff:jA.backoff,shape:h9({},jA.shape,{values:["linear","spline"]}),smoothing:jA.smoothing,editType:"calc"},connectgaps:h0.connectgaps,marker:h0.marker,cliponaxis:h9({},h0.cliponaxis,{dflt:!1}),textposition:h0.textposition,textfont:h0.textfont,fill:h9({},h0.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:QKt(),hoverinfo:h9({},eJt.hoverinfo,{flags:["r","theta","text","name"]}),hoveron:h0.hoveron,hovertemplate:JKt(),selected:h0.selected,unselected:h0.unselected}});var v9=ye((jxr,BKe)=>{"use strict";var d9=Mr(),WA=lu(),tJt=$p(),rJt=R0(),qKe=J3(),iJt=D0(),nJt=Ig(),aJt=Sm().PTS_LINESONLY,oJt=iC();function sJt(e,t,r,n){function i(s,l){return d9.coerce(e,t,oJt,s,l)}var a=OKe(e,t,n,i);if(!a){t.visible=!1;return}i("thetaunit"),i("mode",a{"use strict";var lJt=Mr(),NKe=Qa();UKe.exports=function(t,r,n){var i={},a=n[r.subplot]._subplot,o,s;a?(o=a.radialAxis,s=a.angularAxis):(a=n[r.subplot],o=a.radialaxis,s=a.angularaxis);var l=o.c2l(t.r);i.rLabel=NKe.tickText(o,l,!0).text;var u=s.thetaunit==="degrees"?lJt.rad2deg(t.theta):t.theta;return i.thetaLabel=NKe.tickText(s,u,!0).text,i}});var GKe=ye((Zxr,HKe)=>{"use strict";var VKe=uo(),uJt=es().BADNUM,cJt=Qa(),fJt=z0(),hJt=km(),dJt=F0(),vJt=q0().calcMarkerSize;HKe.exports=function(t,r){for(var n=t._fullLayout,i=r.subplot,a=n[i].radialaxis,o=n[i].angularaxis,s=a.makeCalcdata(r,"r"),l=o.makeCalcdata(r,"theta"),u=r._length,c=new Array(u),f=0;f{"use strict";var pJt=iT(),jKe=es().BADNUM;WKe.exports=function(t,r,n){for(var i=r.layers.frontplot.select("g.scatterlayer"),a=r.xaxis,o=r.yaxis,s={xaxis:a,yaxis:o,plot:r.framework,layerClipId:r._hasClipOnAxisFalse?r.clipIds.forTraces:null},l=r.radialAxis,u=r.angularAxis,c=0;c{"use strict";var gJt=sT();function mJt(e,t,r,n){var i=gJt(e,t,r,n);if(!(!i||i[0].index===!1)){var a=i[0];if(a.index===void 0)return i;var o=e.subplot,s=a.cd[a.index],l=a.trace;if(o.isPtInside(s))return a.xLabelVal=void 0,a.yLabelVal=void 0,XKe(s,l,o,a),a.hovertemplate=l.hovertemplate,i}}function XKe(e,t,r,n){var i=r.radialAxis,a=r.angularAxis;i._hovertitle="r",a._hovertitle="\u03B8";var o={};o[t.subplot]={_subplot:r};var s=t._module.formatLabels(e,t,o);n.rLabel=s.rLabel,n.thetaLabel=s.thetaLabel;var l=e.hi||t.hoverinfo,u=[];function c(h,d){u.push(h._hovertitle+": "+d)}if(!t.hovertemplate){var f=l.split("+");f.indexOf("all")!==-1&&(f=["r","theta","text"]),f.indexOf("r")!==-1&&c(i,n.rLabel),f.indexOf("theta")!==-1&&c(a,n.thetaLabel),f.indexOf("text")!==-1&&n.text&&(u.push(n.text),delete n.text),n.extraText=u.join("
")}}YKe.exports={hoverPoints:mJt,makeHoverPointText:XKe}});var JKe=ye((Kxr,KKe)=>{"use strict";KKe.exports={moduleType:"trace",name:"scatterpolar",basePlotModule:f9(),categories:["polar","symbols","showLegend","scatter-like"],attributes:iC(),supplyDefaults:v9().supplyDefaults,colorbar:Kd(),formatLabels:p9(),calc:GKe(),plot:ZKe(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:g9().hoverPoints,selectPoints:lT(),meta:{}}});var QKe=ye((Jxr,$Ke)=>{"use strict";$Ke.exports=JKe()});var D$=ye(($xr,eJe)=>{"use strict";var Vp=iC(),x1=ek(),yJt=Wo().texttemplateAttrs;eJe.exports={mode:Vp.mode,r:Vp.r,theta:Vp.theta,r0:Vp.r0,dr:Vp.dr,theta0:Vp.theta0,dtheta:Vp.dtheta,thetaunit:Vp.thetaunit,text:Vp.text,texttemplate:yJt({editType:"plot"},{keys:["r","theta","text"]}),hovertext:Vp.hovertext,hovertemplate:Vp.hovertemplate,line:{color:x1.line.color,width:x1.line.width,dash:x1.line.dash,editType:"calc"},connectgaps:x1.connectgaps,marker:x1.marker,fill:x1.fill,fillcolor:x1.fillcolor,textposition:x1.textposition,textfont:x1.textfont,hoverinfo:Vp.hoverinfo,selected:Vp.selected,unselected:Vp.unselected}});var iJe=ye((Qxr,rJe)=>{"use strict";var tJe=Mr(),z$=lu(),_Jt=v9().handleRThetaDefaults,xJt=$p(),bJt=R0(),wJt=D0(),TJt=Ig(),AJt=Sm().PTS_LINESONLY,SJt=D$();rJe.exports=function(t,r,n,i){function a(s,l){return tJe.coerce(t,r,SJt,s,l)}var o=_Jt(t,r,i,a);if(!o){r.visible=!1;return}a("thetaunit"),a("mode",o{"use strict";var MJt=p9();nJe.exports=function(t,r,n){var i=t.i;return"r"in t||(t.r=r._r[i]),"theta"in t||(t.theta=r._theta[i]),MJt(t,r,n)}});var sJe=ye((tbr,oJe)=>{"use strict";var EJt=z0(),kJt=q0().calcMarkerSize,CJt=Y2(),LJt=Qa(),PJt=ox().TOO_MANY_POINTS;oJe.exports=function(t,r){var n=t._fullLayout,i=r.subplot,a=n[i].radialaxis,o=n[i].angularaxis,s=r._r=a.makeCalcdata(r,"r"),l=r._theta=o.makeCalcdata(r,"theta"),u=r._length,c={};u{"use strict";var IJt=zz(),RJt=g9().makeHoverPointText;function DJt(e,t,r,n){var i=e.cd,a=i[0].t,o=a.r,s=a.theta,l=IJt.hoverPoints(e,t,r,n);if(!(!l||l[0].index===!1)){var u=l[0];if(u.index===void 0)return l;var c=e.subplot,f=u.cd[u.index],h=u.trace;if(f.r=o[u.index],f.theta=s[u.index],!!c.isPtInside(f))return u.xLabelVal=void 0,u.yLabelVal=void 0,RJt(f,h,c,u),l}}lJe.exports={hoverPoints:DJt}});var fJe=ye((ibr,cJe)=>{"use strict";cJe.exports={moduleType:"trace",name:"scatterpolargl",basePlotModule:f9(),categories:["gl","regl","polar","symbols","showLegend","scatter-like"],attributes:D$(),supplyDefaults:iJe(),colorbar:Kd(),formatLabels:aJe(),calc:sJe(),hoverPoints:uJe().hoverPoints,selectPoints:KX(),meta:{}}});var hJe=ye((nbr,F$)=>{"use strict";var zJt=Oz(),FJt=uo(),qJt=QY(),OJt=ZX(),m9=Y2(),y9=Mr(),BJt=ox().TOO_MANY_POINTS,NJt={};F$.exports=function(t,r,n){if(n.length){var i=r.radialAxis,a=r.angularAxis,o=OJt(t,r);return n.forEach(function(s){if(!(!s||!s[0]||!s[0].trace)){var l=s[0],u=l.trace,c=l.t,f=u._length,h=c.r,d=c.theta,v=c.opts,x,b=h.slice(),g=d.slice();for(x=0;x=BJt&&(v.marker.cluster=c.tree),v.marker&&(v.markerSel.positions=v.markerUnsel.positions=v.marker.positions=E),v.line&&E.length>1&&y9.extendFlat(v.line,m9.linePositions(t,u,E)),v.text&&(y9.extendFlat(v.text,{positions:E},m9.textPosition(t,u,v.text,v.marker)),y9.extendFlat(v.textSel,{positions:E},m9.textPosition(t,u,v.text,v.markerSel)),y9.extendFlat(v.textUnsel,{positions:E},m9.textPosition(t,u,v.text,v.markerUnsel))),v.fill&&!o.fill2d&&(o.fill2d=!0),v.marker&&!o.scatter2d&&(o.scatter2d=!0),v.line&&!o.line2d&&(o.line2d=!0),v.text&&!o.glText&&(o.glText=!0),o.lineOptions.push(v.line),o.fillOptions.push(v.fill),o.markerOptions.push(v.marker),o.markerSelectedOptions.push(v.markerSel),o.markerUnselectedOptions.push(v.markerUnsel),o.textOptions.push(v.text),o.textSelectedOptions.push(v.textSel),o.textUnselectedOptions.push(v.textUnsel),o.selectBatch.push([]),o.unselectBatch.push([]),c.x=k,c.y=A,c.rawx=k,c.rawy=A,c.r=h,c.theta=d,c.positions=E,c._scene=o,c.index=o.count,o.count++}}),qJt(t,r,n)}};F$.exports.reglPrecompiled=NJt});var pJe=ye((abr,vJe)=>{"use strict";var dJe=fJe();dJe.plot=hJe();vJe.exports=dJe});var mJe=ye((obr,gJe)=>{"use strict";gJe.exports=pJe()});var q$=ye((sbr,yJe)=>{"use strict";var UJt=Wo().hovertemplateAttrs,ZA=no().extendFlat,Px=iC(),Ix=Lm();yJe.exports={r:Px.r,theta:Px.theta,r0:Px.r0,dr:Px.dr,theta0:Px.theta0,dtheta:Px.dtheta,thetaunit:Px.thetaunit,base:ZA({},Ix.base,{}),offset:ZA({},Ix.offset,{}),width:ZA({},Ix.width,{}),text:ZA({},Ix.text,{}),hovertext:ZA({},Ix.hovertext,{}),marker:VJt(),hoverinfo:Px.hoverinfo,hovertemplate:UJt(),selected:Ix.selected,unselected:Ix.unselected};function VJt(){var e=ZA({},Ix.marker);return delete e.cornerradius,e}});var O$=ye((lbr,_Je)=>{"use strict";_Je.exports={barmode:{valType:"enumerated",values:["stack","overlay"],dflt:"stack",editType:"calc"},bargap:{valType:"number",dflt:.1,min:0,max:1,editType:"calc"}}});var wJe=ye((ubr,bJe)=>{"use strict";var xJe=Mr(),HJt=v9().handleRThetaDefaults,GJt=zI(),jJt=q$();bJe.exports=function(t,r,n,i){function a(s,l){return xJe.coerce(t,r,jJt,s,l)}var o=HJt(t,r,i,a);if(!o){r.visible=!1;return}a("thetaunit"),a("base"),a("offset"),a("width"),a("text"),a("hovertext"),a("hovertemplate"),GJt(t,r,a,n,i),xJe.coerceSelectionMarkerOpacity(r,a)}});var AJe=ye((cbr,TJe)=>{"use strict";var WJt=Mr(),ZJt=O$();TJe.exports=function(e,t,r){var n={},i;function a(l,u){return WJt.coerce(e[i]||{},t[i],ZJt,l,u)}for(var o=0;o{"use strict";var SJe=Dv().hasColorscale,MJe=zv(),XJt=Mr().isArrayOrTypedArray,YJt=c4(),KJt=Gb().setGroupPositions,JJt=F0(),$Jt=ba().traceIs,QJt=Mr().extendFlat;function e$t(e,t){for(var r=e._fullLayout,n=t.subplot,i=r[n].radialaxis,a=r[n].angularaxis,o=i.makeCalcdata(t,"r"),s=a.makeCalcdata(t,"theta"),l=t._length,u=new Array(l),c=o,f=s,h=0;h{"use strict";var kJe=xa(),_9=uo(),XA=Mr(),r$t=ao(),N$=n9();CJe.exports=function(t,r,n){var i=t._context.staticPlot,a=r.xaxis,o=r.yaxis,s=r.radialAxis,l=r.angularAxis,u=i$t(r),c=r.layers.frontplot.select("g.barlayer");XA.makeTraceGroups(c,n,"trace bars").each(function(){var f=kJe.select(this),h=XA.ensureSingle(f,"g","points"),d=h.selectAll("g.point").data(XA.identity);d.enter().append("g").style("vector-effect",i?"none":"non-scaling-stroke").style("stroke-miterlimit",2).classed("point",!0),d.exit().remove(),d.each(function(v){var x=kJe.select(this),b=v.rp0=s.c2p(v.s0),g=v.rp1=s.c2p(v.s1),E=v.thetag0=l.c2g(v.p0),k=v.thetag1=l.c2g(v.p1),A;if(!_9(b)||!_9(g)||!_9(E)||!_9(k)||b===g||E===k)A="M0,0Z";else{var L=s.c2g(v.s1),_=(E+k)/2;v.ct=[a.c2p(L*Math.cos(_)),o.c2p(L*Math.sin(_))],A=u(b,g,E,k)}XA.ensureSingle(x,"path").attr("d",A)}),r$t.setClipUrl(f,r._hasClipOnAxisFalse?r.clipIds.forTraces:null,t)})};function i$t(e){var t=e.cxx,r=e.cyy;return e.vangles?function(n,i,a,o){var s,l;XA.angleDelta(a,o)>0?(s=a,l=o):(s=o,l=a);var u=N$.findEnclosingVertexAngles(s,e.vangles)[0],c=N$.findEnclosingVertexAngles(l,e.vangles)[1],f=[u,(s+l)/2,c];return N$.pathPolygonAnnulus(n,i,s,l,f,t,r)}:function(n,i,a,o){return XA.pathAnnulus(n,i,a,o,t,r)}}});var IJe=ye((dbr,PJe)=>{"use strict";var n$t=Nc(),U$=Mr(),a$t=TT().getTraceColor,o$t=U$.fillText,s$t=g9().makeHoverPointText,l$t=n9().isPtInsidePolygon;PJe.exports=function(t,r,n){var i=t.cd,a=i[0].trace,o=t.subplot,s=o.radialAxis,l=o.angularAxis,u=o.vangles,c=u?l$t:U$.isPtInsideSector,f=t.maxHoverDistance,h=l._period||2*Math.PI,d=Math.abs(s.g2p(Math.sqrt(r*r+n*n))),v=Math.atan2(n,r);s.range[0]>s.range[1]&&(v+=Math.PI);var x=function(k){return c(d,v,[k.rp0,k.rp1],[k.thetag0,k.thetag1],u)?f+Math.min(1,Math.abs(k.thetag1-k.thetag0)/h)-1+(k.rp1-d)/(k.rp1-k.rp0)-1:1/0};if(n$t.getClosest(i,x,t),t.index!==!1){var b=t.index,g=i[b];t.x0=t.x1=g.ct[0],t.y0=t.y1=g.ct[1];var E=U$.extendFlat({},g,{r:g.s,theta:g.p});return o$t(g,a,t),s$t(E,a,o,t),t.hovertemplate=a.hovertemplate,t.color=a$t(a,g),t.xLabelVal=t.yLabelVal=void 0,g.s<0&&(t.idealAlign="left"),[t]}}});var DJe=ye((vbr,RJe)=>{"use strict";RJe.exports={moduleType:"trace",name:"barpolar",basePlotModule:f9(),categories:["polar","bar","showLegend"],attributes:q$(),layoutAttributes:O$(),supplyDefaults:wJe(),supplyLayoutDefaults:AJe(),calc:B$().calc,crossTraceCalc:B$().crossTraceCalc,plot:LJe(),colorbar:Kd(),formatLabels:p9(),style:N0().style,styleOnSelect:N0().styleOnSelect,hoverPoints:IJe(),selectPoints:AT(),meta:{}}});var FJe=ye((pbr,zJe)=>{"use strict";zJe.exports=DJe()});var V$=ye((gbr,qJe)=>{"use strict";qJe.exports={attr:"subplot",name:"smith",axisNames:["realaxis","imaginaryaxis"],axisName2dataArray:{imaginaryaxis:"imag",realaxis:"real"}}});var H$=ye((mbr,UJe)=>{"use strict";var u$t=dh(),Mf=Cd(),c$t=Ju().attributes,Rx=Mr().extendFlat,OJe=Bu().overrideAll,BJe=OJe({color:Mf.color,showline:Rx({},Mf.showline,{dflt:!0}),linecolor:Mf.linecolor,linewidth:Mf.linewidth,showgrid:Rx({},Mf.showgrid,{dflt:!0}),gridcolor:Mf.gridcolor,gridwidth:Mf.gridwidth,griddash:Mf.griddash},"plot","from-root"),NJe=OJe({ticklen:Mf.ticklen,tickwidth:Rx({},Mf.tickwidth,{dflt:2}),tickcolor:Mf.tickcolor,showticklabels:Mf.showticklabels,labelalias:Mf.labelalias,showtickprefix:Mf.showtickprefix,tickprefix:Mf.tickprefix,showticksuffix:Mf.showticksuffix,ticksuffix:Mf.ticksuffix,tickfont:Mf.tickfont,tickformat:Mf.tickformat,hoverformat:Mf.hoverformat,layer:Mf.layer},"plot","from-root"),f$t=Rx({visible:Rx({},Mf.visible,{dflt:!0}),tickvals:{dflt:[.2,.5,1,2,5],valType:"data_array",editType:"plot"},tickangle:Rx({},Mf.tickangle,{dflt:90}),ticks:{valType:"enumerated",values:["top","bottom",""],editType:"ticks"},side:{valType:"enumerated",values:["top","bottom"],dflt:"top",editType:"plot"},editType:"calc"},BJe,NJe),h$t=Rx({visible:Rx({},Mf.visible,{dflt:!0}),tickvals:{valType:"data_array",editType:"plot"},ticks:Mf.ticks,editType:"calc"},BJe,NJe);UJe.exports={domain:c$t({name:"smith",editType:"plot"}),bgcolor:{valType:"color",editType:"plot",dflt:u$t.background},realaxis:f$t,imaginaryaxis:h$t,editType:"calc"}});var GJe=ye((ybr,HJe)=>{"use strict";var YA=Mr(),d$t=va(),v$t=Vs(),p$t=k_(),g$t=kd().getSubplotData,m$t=t_(),y$t=e_(),_$t=YM(),x$t=ym(),KA=H$(),G$=V$(),VJe=G$.axisNames,b$t=T$t(function(e){return YA.isTypedArray(e)&&(e=Array.from(e)),e.slice().reverse().map(function(t){return-t}).concat([0]).concat(e)},String);function w$t(e,t,r,n){var i=r("bgcolor");n.bgColor=d$t.combine(i,n.paper_bgcolor);var a=g$t(n.fullData,G$.name,n.id),o=n.layoutOut,s;function l(L,_){return r(s+"."+L,_)}for(var u=0;u{"use strict";var A$t=kd().getSubplotCalcData,S$t=Mr().counterRegex,M$t=I$(),WJe=V$(),ZJe=WJe.attr,yw=WJe.name,jJe=S$t(yw),XJe={};XJe[ZJe]={valType:"subplotid",dflt:yw,editType:"calc"};function E$t(e){for(var t=e._fullLayout,r=e.calcdata,n=t._subplots[yw],i=0;i{"use strict";var C$t=Wo().hovertemplateAttrs,L$t=Wo().texttemplateAttrs,x9=no().extendFlat,P$t=Eg(),d0=Uc(),I$t=vl(),JA=d0.line;JJe.exports={mode:d0.mode,real:{valType:"data_array",editType:"calc+clearAxisTypes"},imag:{valType:"data_array",editType:"calc+clearAxisTypes"},text:d0.text,texttemplate:L$t({editType:"plot"},{keys:["real","imag","text"]}),hovertext:d0.hovertext,line:{color:JA.color,width:JA.width,dash:JA.dash,backoff:JA.backoff,shape:x9({},JA.shape,{values:["linear","spline"]}),smoothing:JA.smoothing,editType:"calc"},connectgaps:d0.connectgaps,marker:d0.marker,cliponaxis:x9({},d0.cliponaxis,{dflt:!1}),textposition:d0.textposition,textfont:d0.textfont,fill:x9({},d0.fill,{values:["none","toself","tonext"],dflt:"none"}),fillcolor:P$t(),hoverinfo:x9({},I$t.hoverinfo,{flags:["real","imag","text","name"]}),hoveron:d0.hoveron,hovertemplate:C$t(),selected:d0.selected,unselected:d0.unselected}});var e$e=ye((bbr,QJe)=>{"use strict";var b9=Mr(),$A=lu(),R$t=$p(),D$t=R0(),$Je=J3(),z$t=D0(),F$t=Ig(),q$t=Sm().PTS_LINESONLY,O$t=j$();QJe.exports=function(t,r,n,i){function a(l,u){return b9.coerce(t,r,O$t,l,u)}var o=B$t(t,r,i,a);if(!o){r.visible=!1;return}a("mode",o{"use strict";var t$e=Qa();r$e.exports=function(t,r,n){var i={},a=n[r.subplot]._subplot;return i.realLabel=t$e.tickText(a.radialAxis,t.real,!0).text,i.imagLabel=t$e.tickText(a.angularAxis,t.imag,!0).text,i}});var o$e=ye((Tbr,a$e)=>{"use strict";var n$e=uo(),N$t=es().BADNUM,U$t=z0(),V$t=km(),H$t=F0(),G$t=q0().calcMarkerSize;a$e.exports=function(t,r){for(var n=t._fullLayout,i=r.subplot,a=n[i].realaxis,o=n[i].imaginaryaxis,s=a.makeCalcdata(r,"real"),l=o.makeCalcdata(r,"imag"),u=r._length,c=new Array(u),f=0;f{"use strict";var j$t=iT(),s$e=es().BADNUM,W$t=C$(),Z$t=W$t.smith;l$e.exports=function(t,r,n){for(var i=r.layers.frontplot.select("g.scatterlayer"),a=r.xaxis,o=r.yaxis,s={xaxis:a,yaxis:o,plot:r.framework,layerClipId:r._hasClipOnAxisFalse?r.clipIds.forTraces:null},l=0;l{"use strict";var X$t=sT();function Y$t(e,t,r,n){var i=X$t(e,t,r,n);if(!(!i||i[0].index===!1)){var a=i[0];if(a.index===void 0)return i;var o=e.subplot,s=a.cd[a.index],l=a.trace;if(o.isPtInside(s))return a.xLabelVal=void 0,a.yLabelVal=void 0,c$e(s,l,o,a),a.hovertemplate=l.hovertemplate,i}}function c$e(e,t,r,n){var i=r.radialAxis,a=r.angularAxis;i._hovertitle="real",a._hovertitle="imag";var o={};o[t.subplot]={_subplot:r};var s=t._module.formatLabels(e,t,o);n.realLabel=s.realLabel,n.imagLabel=s.imagLabel;var l=e.hi||t.hoverinfo,u=[];function c(h,d){u.push(h._hovertitle+": "+d)}if(!t.hovertemplate){var f=l.split("+");f.indexOf("all")!==-1&&(f=["real","imag","text"]),f.indexOf("real")!==-1&&c(i,n.realLabel),f.indexOf("imag")!==-1&&c(a,n.imagLabel),f.indexOf("text")!==-1&&n.text&&(u.push(n.text),delete n.text),n.extraText=u.join("
")}}f$e.exports={hoverPoints:Y$t,makeHoverPointText:c$e}});var v$e=ye((Mbr,d$e)=>{"use strict";d$e.exports={moduleType:"trace",name:"scattersmith",basePlotModule:KJe(),categories:["smith","symbols","showLegend","scatter-like"],attributes:j$(),supplyDefaults:e$e(),colorbar:Kd(),formatLabels:i$e(),calc:o$e(),plot:u$e(),style:op().style,styleOnSelect:op().styleOnSelect,hoverPoints:h$e().hoverPoints,selectPoints:lT(),meta:{}}});var g$e=ye((Ebr,p$e)=>{"use strict";p$e.exports=v$e()});var Sv=ye((kbr,y$e)=>{var T9=bh();function m$e(){this.regionalOptions=[],this.regionalOptions[""]={invalidCalendar:"Calendar {0} not found",invalidDate:"Invalid {0} date",invalidMonth:"Invalid {0} month",invalidYear:"Invalid {0} year",differentCalendars:"Cannot mix {0} and {1} dates"},this.local=this.regionalOptions[""],this.calendars={},this._localCals={}}T9(m$e.prototype,{instance:function(e,t){e=(e||"gregorian").toLowerCase(),t=t||"";var r=this._localCals[e+"-"+t];if(!r&&this.calendars[e]&&(r=new this.calendars[e](t),this._localCals[e+"-"+t]=r),!r)throw(this.local.invalidCalendar||this.regionalOptions[""].invalidCalendar).replace(/\{0\}/,e);return r},newDate:function(e,t,r,n,i){return n=(e!=null&&e.year?e.calendar():typeof n=="string"?this.instance(n,i):n)||this.instance(),n.newDate(e,t,r)},substituteDigits:function(e){return function(t){return(t+"").replace(/[0-9]/g,function(r){return e[r]})}},substituteChineseDigits:function(e,t){return function(r){for(var n="",i=0;r>0;){var a=r%10;n=(a===0?"":e[a]+t[i])+n,i++,r=Math.floor(r/10)}return n.indexOf(e[1]+t[1])===0&&(n=n.substr(1)),n||e[0]}}});function W$(e,t,r,n){if(this._calendar=e,this._year=t,this._month=r,this._day=n,this._calendar._validateLevel===0&&!this._calendar.isValid(this._year,this._month,this._day))throw(Es.local.invalidDate||Es.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name)}function w9(e,t){return e=""+e,"000000".substring(0,t-e.length)+e}T9(W$.prototype,{newDate:function(e,t,r){return this._calendar.newDate(e==null?this:e,t,r)},year:function(e){return arguments.length===0?this._year:this.set(e,"y")},month:function(e){return arguments.length===0?this._month:this.set(e,"m")},day:function(e){return arguments.length===0?this._day:this.set(e,"d")},date:function(e,t,r){if(!this._calendar.isValid(e,t,r))throw(Es.local.invalidDate||Es.regionalOptions[""].invalidDate).replace(/\{0\}/,this._calendar.local.name);return this._year=e,this._month=t,this._day=r,this},leapYear:function(){return this._calendar.leapYear(this)},epoch:function(){return this._calendar.epoch(this)},formatYear:function(){return this._calendar.formatYear(this)},monthOfYear:function(){return this._calendar.monthOfYear(this)},weekOfYear:function(){return this._calendar.weekOfYear(this)},daysInYear:function(){return this._calendar.daysInYear(this)},dayOfYear:function(){return this._calendar.dayOfYear(this)},daysInMonth:function(){return this._calendar.daysInMonth(this)},dayOfWeek:function(){return this._calendar.dayOfWeek(this)},weekDay:function(){return this._calendar.weekDay(this)},extraInfo:function(){return this._calendar.extraInfo(this)},add:function(e,t){return this._calendar.add(this,e,t)},set:function(e,t){return this._calendar.set(this,e,t)},compareTo:function(e){if(this._calendar.name!==e._calendar.name)throw(Es.local.differentCalendars||Es.regionalOptions[""].differentCalendars).replace(/\{0\}/,this._calendar.local.name).replace(/\{1\}/,e._calendar.local.name);var t=this._year!==e._year?this._year-e._year:this._month!==e._month?this.monthOfYear()-e.monthOfYear():this._day-e._day;return t===0?0:t<0?-1:1},calendar:function(){return this._calendar},toJD:function(){return this._calendar.toJD(this)},fromJD:function(e){return this._calendar.fromJD(e)},toJSDate:function(){return this._calendar.toJSDate(this)},fromJSDate:function(e){return this._calendar.fromJSDate(e)},toString:function(){return(this.year()<0?"-":"")+w9(Math.abs(this.year()),4)+"-"+w9(this.month(),2)+"-"+w9(this.day(),2)}});function Z$(){this.shortYearCutoff="+10"}T9(Z$.prototype,{_validateLevel:0,newDate:function(e,t,r){return e==null?this.today():(e.year&&(this._validate(e,t,r,Es.local.invalidDate||Es.regionalOptions[""].invalidDate),r=e.day(),t=e.month(),e=e.year()),new W$(this,e,t,r))},today:function(){return this.fromJSDate(new Date)},epoch:function(e){var t=this._validate(e,this.minMonth,this.minDay,Es.local.invalidYear||Es.regionalOptions[""].invalidYear);return t.year()<0?this.local.epochs[0]:this.local.epochs[1]},formatYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,Es.local.invalidYear||Es.regionalOptions[""].invalidYear);return(t.year()<0?"-":"")+w9(Math.abs(t.year()),4)},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,Es.local.invalidYear||Es.regionalOptions[""].invalidYear),12},monthOfYear:function(e,t){var r=this._validate(e,t,this.minDay,Es.local.invalidMonth||Es.regionalOptions[""].invalidMonth);return(r.month()+this.monthsInYear(r)-this.firstMonth)%this.monthsInYear(r)+this.minMonth},fromMonthOfYear:function(e,t){var r=(t+this.firstMonth-2*this.minMonth)%this.monthsInYear(e)+this.minMonth;return this._validate(e,r,this.minDay,Es.local.invalidMonth||Es.regionalOptions[""].invalidMonth),r},daysInYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,Es.local.invalidYear||Es.regionalOptions[""].invalidYear);return this.leapYear(t)?366:365},dayOfYear:function(e,t,r){var n=this._validate(e,t,r,Es.local.invalidDate||Es.regionalOptions[""].invalidDate);return n.toJD()-this.newDate(n.year(),this.fromMonthOfYear(n.year(),this.minMonth),this.minDay).toJD()+1},daysInWeek:function(){return 7},dayOfWeek:function(e,t,r){var n=this._validate(e,t,r,Es.local.invalidDate||Es.regionalOptions[""].invalidDate);return(Math.floor(this.toJD(n))+2)%this.daysInWeek()},extraInfo:function(e,t,r){return this._validate(e,t,r,Es.local.invalidDate||Es.regionalOptions[""].invalidDate),{}},add:function(e,t,r){return this._validate(e,this.minMonth,this.minDay,Es.local.invalidDate||Es.regionalOptions[""].invalidDate),this._correctAdd(e,this._add(e,t,r),t,r)},_add:function(e,t,r){if(this._validateLevel++,r==="d"||r==="w"){var n=e.toJD()+t*(r==="w"?this.daysInWeek():1),i=e.calendar().fromJD(n);return this._validateLevel--,[i.year(),i.month(),i.day()]}try{var a=e.year()+(r==="y"?t:0),o=e.monthOfYear()+(r==="m"?t:0),i=e.day(),s=function(c){for(;of-1+c.minMonth;)a++,o-=f,f=c.monthsInYear(a)};r==="y"?(e.month()!==this.fromMonthOfYear(a,o)&&(o=this.newDate(a,e.month(),this.minDay).monthOfYear()),o=Math.min(o,this.monthsInYear(a)),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o)))):r==="m"&&(s(this),i=Math.min(i,this.daysInMonth(a,this.fromMonthOfYear(a,o))));var l=[a,this.fromMonthOfYear(a,o),i];return this._validateLevel--,l}catch(u){throw this._validateLevel--,u}},_correctAdd:function(e,t,r,n){if(!this.hasYearZero&&(n==="y"||n==="m")&&(t[0]===0||e.year()>0!=t[0]>0)){var i={y:[1,1,"y"],m:[1,this.monthsInYear(-1),"m"],w:[this.daysInWeek(),this.daysInYear(-1),"d"],d:[1,this.daysInYear(-1),"d"]}[n],a=r<0?-1:1;t=this._add(e,r*i[0]+a*i[1],i[2])}return e.date(t[0],t[1],t[2])},set:function(e,t,r){this._validate(e,this.minMonth,this.minDay,Es.local.invalidDate||Es.regionalOptions[""].invalidDate);var n=r==="y"?t:e.year(),i=r==="m"?t:e.month(),a=r==="d"?t:e.day();return(r==="y"||r==="m")&&(a=Math.min(a,this.daysInMonth(n,i))),e.date(n,i,a)},isValid:function(e,t,r){this._validateLevel++;var n=this.hasYearZero||e!==0;if(n){var i=this.newDate(e,t,this.minDay);n=t>=this.minMonth&&t-this.minMonth=this.minDay&&r-this.minDay13.5?13:1),u=i-(l>2.5?4716:4715);return u<=0&&u--,this.newDate(u,l,s)},toJSDate:function(e,t,r){var n=this._validate(e,t,r,Es.local.invalidDate||Es.regionalOptions[""].invalidDate),i=new Date(n.year(),n.month()-1,n.day());return i.setHours(0),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0),i.setHours(i.getHours()>12?i.getHours()+2:0),i},fromJSDate:function(e){return this.newDate(e.getFullYear(),e.getMonth()+1,e.getDate())}});var Es=y$e.exports=new m$e;Es.cdate=W$;Es.baseCalendar=Z$;Es.calendars.gregorian=X$});var _$e=ye(()=>{var Y$=bh(),qd=Sv();Y$(qd.regionalOptions[""],{invalidArguments:"Invalid arguments",invalidFormat:"Cannot format a date from another calendar",missingNumberAt:"Missing number at position {0}",unknownNameAt:"Unknown name at position {0}",unexpectedLiteralAt:"Unexpected literal at position {0}",unexpectedText:"Additional text found at end"});qd.local=qd.regionalOptions[""];Y$(qd.cdate.prototype,{formatDate:function(e,t){return typeof e!="string"&&(t=e,e=""),this._calendar.formatDate(e||"",this,t)}});Y$(qd.baseCalendar.prototype,{UNIX_EPOCH:qd.instance().newDate(1970,1,1).toJD(),SECS_PER_DAY:24*60*60,TICKS_EPOCH:qd.instance().jdEpoch,TICKS_PER_DAY:24*60*60*1e7,ATOM:"yyyy-mm-dd",COOKIE:"D, dd M yyyy",FULL:"DD, MM d, yyyy",ISO_8601:"yyyy-mm-dd",JULIAN:"J",RFC_822:"D, d M yy",RFC_850:"DD, dd-M-yy",RFC_1036:"D, d M yy",RFC_1123:"D, d M yyyy",RFC_2822:"D, d M yyyy",RSS:"D, d M yy",TICKS:"!",TIMESTAMP:"@",W3C:"yyyy-mm-dd",formatDate:function(e,t,r){if(typeof e!="string"&&(r=t,t=e,e=""),!t)return"";if(t.calendar()!==this)throw qd.local.invalidFormat||qd.regionalOptions[""].invalidFormat;e=e||this.local.dateFormat,r=r||{};for(var n=r.dayNamesShort||this.local.dayNamesShort,i=r.dayNames||this.local.dayNames,a=r.monthNumbers||this.local.monthNumbers,o=r.monthNamesShort||this.local.monthNamesShort,s=r.monthNames||this.local.monthNames,l=r.calculateWeek||this.local.calculateWeek,u=function(A,L){for(var _=1;k+_1},c=function(A,L,_,C){var M=""+L;if(u(A,C))for(;M.length<_;)M="0"+M;return M},f=function(A,L,_,C){return u(A)?C[L]:_[L]},h=this,d=function(A){return typeof a=="function"?a.call(h,A,u("m")):b(c("m",A.month(),2))},v=function(A,L){return L?typeof s=="function"?s.call(h,A):s[A.month()-h.minMonth]:typeof o=="function"?o.call(h,A):o[A.month()-h.minMonth]},x=this.local.digits,b=function(A){return r.localNumbers&&x?x(A):A},g="",E=!1,k=0;k1},E=function(F,q){var V=g(F,q),H=[2,3,V?4:2,V?4:2,10,11,20]["oyYJ@!".indexOf(F)+1],X=new RegExp("^-?\\d{1,"+H+"}"),G=t.substring(M).match(X);if(!G)throw(qd.local.missingNumberAt||qd.regionalOptions[""].missingNumberAt).replace(/\{0\}/,M);return M+=G[0].length,parseInt(G[0],10)},k=this,A=function(){if(typeof s=="function"){g("m");var F=s.call(k,t.substring(M));return M+=F.length,F}return E("m")},L=function(F,q,V,H){for(var X=g(F,H)?V:q,G=0;G-1){h=1,d=v;for(var T=this.daysInMonth(f,h);d>T;T=this.daysInMonth(f,h))h++,d-=T}return c>-1?this.fromJD(c):this.newDate(f,h,d)},determineDate:function(e,t,r,n,i){r&&typeof r!="object"&&(i=n,n=r,r=null),typeof n!="string"&&(i=n,n="");var a=this,o=function(s){try{return a.parseDate(n,s,i)}catch(f){}s=s.toLowerCase();for(var l=(s.match(/^c/)&&r?r.newDate():null)||a.today(),u=/([+-]?[0-9]+)\s*(d|w|m|y)?/g,c=u.exec(s);c;)l.add(parseInt(c[1],10),c[2]||"d"),c=u.exec(s);return l};return t=t?t.newDate():null,e=e==null?t:typeof e=="string"?o(e):typeof e=="number"?isNaN(e)||e===1/0||e===-1/0?t:a.today().add(e,"d"):a.newDate(e),e}})});var x$e=ye(()=>{var Dx=Sv(),K$t=bh(),K$=Dx.instance();function A9(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}A9.prototype=new Dx.baseCalendar;K$t(A9.prototype,{name:"Chinese",jdEpoch:17214255e-1,hasYearZero:!1,minMonth:0,firstMonth:0,minDay:1,regionalOptions:{"":{name:"Chinese",epochs:["BEC","EC"],monthNumbers:function(e,t){if(typeof e=="string"){var r=e.match($$t);return r?r[0]:""}var n=this._validateYear(e),i=e.month(),a=""+this.toChineseMonth(n,i);return t&&a.length<2&&(a="0"+a),this.isIntercalaryMonth(n,i)&&(a+="i"),a},monthNames:function(e){if(typeof e=="string"){var t=e.match(Q$t);return t?t[0]:""}var r=this._validateYear(e),n=e.month(),i=this.toChineseMonth(r,n),a=["\u4E00\u6708","\u4E8C\u6708","\u4E09\u6708","\u56DB\u6708","\u4E94\u6708","\u516D\u6708","\u4E03\u6708","\u516B\u6708","\u4E5D\u6708","\u5341\u6708","\u5341\u4E00\u6708","\u5341\u4E8C\u6708"][i-1];return this.isIntercalaryMonth(r,n)&&(a="\u95F0"+a),a},monthNamesShort:function(e){if(typeof e=="string"){var t=e.match(eQt);return t?t[0]:""}var r=this._validateYear(e),n=e.month(),i=this.toChineseMonth(r,n),a=["\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D","\u4E03","\u516B","\u4E5D","\u5341","\u5341\u4E00","\u5341\u4E8C"][i-1];return this.isIntercalaryMonth(r,n)&&(a="\u95F0"+a),a},parseMonth:function(e,t){e=this._validateYear(e);var r=parseInt(t),n;if(isNaN(r))t[0]==="\u95F0"&&(n=!0,t=t.substring(1)),t[t.length-1]==="\u6708"&&(t=t.substring(0,t.length-1)),r=1+["\u4E00","\u4E8C","\u4E09","\u56DB","\u4E94","\u516D","\u4E03","\u516B","\u4E5D","\u5341","\u5341\u4E00","\u5341\u4E8C"].indexOf(t);else{var i=t[t.length-1];n=i==="i"||i==="I"}var a=this.toMonthIndex(e,r,n);return a},dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},_validateYear:function(e,t){if(e.year&&(e=e.year()),typeof e!="number"||e<1888||e>2111)throw t.replace(/\{0\}/,this.local.name);return e},toMonthIndex:function(e,t,r){var n=this.intercalaryMonth(e),i=r&&t!==n;if(i||t<1||t>12)throw Dx.local.invalidMonth.replace(/\{0\}/,this.local.name);var a;return n?!r&&t<=n?a=t-1:a=t:a=t-1,a},toChineseMonth:function(e,t){e.year&&(e=e.year(),t=e.month());var r=this.intercalaryMonth(e),n=r?12:11;if(t<0||t>n)throw Dx.local.invalidMonth.replace(/\{0\}/,this.local.name);var i;return r?t>13;return r},isIntercalaryMonth:function(e,t){e.year&&(e=e.year(),t=e.month());var r=this.intercalaryMonth(e);return!!r&&r===t},leapYear:function(e){return this.intercalaryMonth(e)!==0},weekOfYear:function(e,t,r){var n=this._validateYear(e,Dx.local.invalidyear),i=Fx[n-Fx[0]],a=i>>9&4095,o=i>>5&15,s=i&31,l;l=K$.newDate(a,o,s),l.add(4-(l.dayOfWeek()||7),"d");var u=this.toJD(e,t,r)-l.toJD();return 1+Math.floor(u/7)},monthsInYear:function(e){return this.leapYear(e)?13:12},daysInMonth:function(e,t){e.year&&(t=e.month(),e=e.year()),e=this._validateYear(e);var r=zx[e-zx[0]],n=r>>13,i=n?12:11;if(t>i)throw Dx.local.invalidMonth.replace(/\{0\}/,this.local.name);var a=r&1<<12-t?30:29;return a},weekDay:function(e,t,r){return(this.dayOfWeek(e,t,r)||7)<6},toJD:function(e,t,r){var n=this._validate(e,a,r,Dx.local.invalidDate);e=this._validateYear(n.year()),t=n.month(),r=n.day();var i=this.isIntercalaryMonth(e,t),a=this.toChineseMonth(e,t),o=rQt(e,a,r,i);return K$.toJD(o.year,o.month,o.day)},fromJD:function(e){var t=K$.fromJD(e),r=tQt(t.year(),t.month(),t.day()),n=this.toMonthIndex(r.year,r.month,r.isIntercalary);return this.newDate(r.year,n,r.day)},fromString:function(e){var t=e.match(J$t),r=this._validateYear(+t[1]),n=+t[2],i=!!t[3],a=this.toMonthIndex(r,n,i),o=+t[4];return this.newDate(r,a,o)},add:function(e,t,r){var n=e.year(),i=e.month(),a=this.isIntercalaryMonth(n,i),o=this.toChineseMonth(n,i),s=Object.getPrototypeOf(A9.prototype).add.call(this,e,t,r);if(r==="y"){var l=s.year(),u=s.month(),c=this.isIntercalaryMonth(l,o),f=a&&c?this.toMonthIndex(l,o,!0):this.toMonthIndex(l,o,!1);f!==u&&s.month(f)}return s}});var J$t=/^\s*(-?\d\d\d\d|\d\d)[-/](\d?\d)([iI]?)[-/](\d?\d)/m,$$t=/^\d?\d[iI]?/m,Q$t=/^闰?十?[一二三四五六七八九]?月/m,eQt=/^闰?十?[一二三四五六七八九]?/m;Dx.calendars.chinese=A9;var zx=[1887,5780,5802,19157,2742,50359,1198,2646,46378,7466,3412,30122,5482,67949,2396,5294,43597,6732,6954,36181,2772,4954,18781,2396,54427,5274,6730,47781,5800,6868,21210,4790,59703,2350,5270,46667,3402,3496,38325,1388,4782,18735,2350,52374,6804,7498,44457,2906,1388,29294,4700,63789,6442,6804,56138,5802,2772,38235,1210,4698,22827,5418,63125,3476,5802,43701,2484,5302,27223,2646,70954,7466,3412,54698,5482,2412,38062,5294,2636,32038,6954,60245,2772,4826,43357,2394,5274,39501,6730,72357,5800,5844,53978,4790,2358,38039,5270,87627,3402,3496,54708,5484,4782,43311,2350,3222,27978,7498,68965,2904,5484,45677,4700,6444,39573,6804,6986,19285,2772,62811,1210,4698,47403,5418,5780,38570,5546,76469,2420,5302,51799,2646,5414,36501,3412,5546,18869,2412,54446,5276,6732,48422,6822,2900,28010,4826,92509,2394,5274,55883,6730,6820,47956,5812,2778,18779,2358,62615,5270,5450,46757,3492,5556,27318,4718,67887,2350,3222,52554,7498,3428,38252,5468,4700,31022,6444,64149,6804,6986,43861,2772,5338,35421,2650,70955,5418,5780,54954,5546,2740,38074,5302,2646,29991,3366,61011,3412,5546,43445,2412,5294,35406,6732,72998,6820,6996,52586,2778,2396,38045,5274,6698,23333,6820,64338,5812,2746,43355,2358,5270,39499,5450,79525,3492,5548],Fx=[1887,966732,967231,967733,968265,968766,969297,969798,970298,970829,971330,971830,972362,972863,973395,973896,974397,974928,975428,975929,976461,976962,977462,977994,978494,979026,979526,980026,980558,981059,981559,982091,982593,983124,983624,984124,984656,985157,985656,986189,986690,987191,987722,988222,988753,989254,989754,990286,990788,991288,991819,992319,992851,993352,993851,994383,994885,995385,995917,996418,996918,997450,997949,998481,998982,999483,1000014,1000515,1001016,1001548,1002047,1002578,1003080,1003580,1004111,1004613,1005113,1005645,1006146,1006645,1007177,1007678,1008209,1008710,1009211,1009743,1010243,1010743,1011275,1011775,1012306,1012807,1013308,1013840,1014341,1014841,1015373,1015874,1016404,1016905,1017405,1017937,1018438,1018939,1019471,1019972,1020471,1021002,1021503,1022035,1022535,1023036,1023568,1024069,1024568,1025100,1025601,1026102,1026633,1027133,1027666,1028167,1028666,1029198,1029699,1030199,1030730,1031231,1031763,1032264,1032764,1033296,1033797,1034297,1034828,1035329,1035830,1036362,1036861,1037393,1037894,1038394,1038925,1039427,1039927,1040459,1040959,1041491,1041992,1042492,1043023,1043524,1044024,1044556,1045057,1045558,1046090,1046590,1047121,1047622,1048122,1048654,1049154,1049655,1050187,1050689,1051219,1051720,1052220,1052751,1053252,1053752,1054284,1054786,1055285,1055817,1056317,1056849,1057349,1057850,1058382,1058883,1059383,1059915,1060415,1060947,1061447,1061947,1062479,1062981,1063480,1064012,1064514,1065014,1065545,1066045,1066577,1067078,1067578,1068110,1068611,1069112,1069642,1070142,1070674,1071175,1071675,1072207,1072709,1073209,1073740,1074241,1074741,1075273,1075773,1076305,1076807,1077308,1077839,1078340,1078840,1079372,1079871,1080403,1080904];function tQt(e,t,r,n){var i,a;if(typeof e=="object")i=e,a=t||{};else{var o=typeof e=="number"&&e>=1888&&e<=2111;if(!o)throw new Error("Solar year outside range 1888-2111");var s=typeof t=="number"&&t>=1&&t<=12;if(!s)throw new Error("Solar month outside range 1 - 12");var l=typeof r=="number"&&r>=1&&r<=31;if(!l)throw new Error("Solar day outside range 1 - 31");i={year:e,month:t,day:r},a=n||{}}var u=Fx[i.year-Fx[0]],c=i.year<<9|i.month<<5|i.day;a.year=c>=u?i.year:i.year-1,u=Fx[a.year-Fx[0]];var f=u>>9&4095,h=u>>5&15,d=u&31,v,x=new Date(f,h-1,d),b=new Date(i.year,i.month-1,i.day);v=Math.round((b-x)/(24*3600*1e3));var g=zx[a.year-zx[0]],E;for(E=0;E<13;E++){var k=g&1<<12-E?30:29;if(v>13;return!A||E=1888&&e<=2111;if(!s)throw new Error("Lunar year outside range 1888-2111");var l=typeof t=="number"&&t>=1&&t<=12;if(!l)throw new Error("Lunar month outside range 1 - 12");var u=typeof r=="number"&&r>=1&&r<=30;if(!u)throw new Error("Lunar day outside range 1 - 30");var c;typeof n=="object"?(c=!1,a=n):(c=!!n,a=i||{}),o={year:e,month:t,day:r,isIntercalary:c}}var f;f=o.day-1;var h=zx[o.year-zx[0]],d=h>>13,v;d&&(o.month>d||o.isIntercalary)?v=o.month:v=o.month-1;for(var x=0;x>9&4095,k=g>>5&15,A=g&31,L=new Date(E,k-1,A+f);return a.year=L.getFullYear(),a.month=1+L.getMonth(),a.day=L.getDate(),a}});var b$e=ye(()=>{var _w=Sv(),iQt=bh();function J$(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}J$.prototype=new _w.baseCalendar;iQt(J$.prototype,{name:"Coptic",jdEpoch:18250295e-1,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Coptic",epochs:["BAM","AM"],monthNames:["Thout","Paopi","Hathor","Koiak","Tobi","Meshir","Paremhat","Paremoude","Pashons","Paoni","Epip","Mesori","Pi Kogi Enavot"],monthNamesShort:["Tho","Pao","Hath","Koi","Tob","Mesh","Pat","Pad","Pash","Pao","Epi","Meso","PiK"],dayNames:["Tkyriaka","Pesnau","Pshoment","Peftoou","Ptiou","Psoou","Psabbaton"],dayNamesShort:["Tky","Pes","Psh","Pef","Pti","Pso","Psa"],dayNamesMin:["Tk","Pes","Psh","Pef","Pt","Pso","Psa"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(r){var t=this._validate(r,this.minMonth,this.minDay,_w.local.invalidYear),r=t.year()+(t.year()<0?1:0);return r%4===3||r%4===-1},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,_w.local.invalidYear||_w.regionalOptions[""].invalidYear),13},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,_w.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(r.month()===13&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return(this.dayOfWeek(e,t,r)||7)<6},toJD:function(e,t,r){var n=this._validate(e,t,r,_w.local.invalidDate);return e=n.year(),e<0&&e++,n.day()+(n.month()-1)*30+(e-1)*365+Math.floor(e/4)+this.jdEpoch-1},fromJD:function(e){var t=Math.floor(e)+.5-this.jdEpoch,r=Math.floor((t-Math.floor((t+366)/1461))/365)+1;r<=0&&r--,t=Math.floor(e)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(t/30)+1,i=t-(n-1)*30+1;return this.newDate(r,n,i)}});_w.calendars.coptic=J$});var w$e=ye(()=>{var b1=Sv(),nQt=bh();function $$(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}$$.prototype=new b1.baseCalendar;nQt($$.prototype,{name:"Discworld",jdEpoch:17214255e-1,daysPerMonth:[16,32,32,32,32,32,32,32,32,32,32,32,32],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Discworld",epochs:["BUC","UC"],monthNames:["Ick","Offle","February","March","April","May","June","Grune","August","Spune","Sektober","Ember","December"],monthNamesShort:["Ick","Off","Feb","Mar","Apr","May","Jun","Gru","Aug","Spu","Sek","Emb","Dec"],dayNames:["Sunday","Octeday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Oct","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Oc","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:2,isRTL:!1}},leapYear:function(e){return this._validate(e,this.minMonth,this.minDay,b1.local.invalidYear),!1},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,b1.local.invalidYear),13},daysInYear:function(e){return this._validate(e,this.minMonth,this.minDay,b1.local.invalidYear),400},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/8)+1},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,b1.local.invalidMonth);return this.daysPerMonth[r.month()-1]},daysInWeek:function(){return 8},dayOfWeek:function(e,t,r){var n=this._validate(e,t,r,b1.local.invalidDate);return(n.day()+1)%8},weekDay:function(e,t,r){var n=this.dayOfWeek(e,t,r);return n>=2&&n<=6},extraInfo:function(e,t,r){var n=this._validate(e,t,r,b1.local.invalidDate);return{century:aQt[Math.floor((n.year()-1)/100)+1]||""}},toJD:function(e,t,r){var n=this._validate(e,t,r,b1.local.invalidDate);return e=n.year()+(n.year()<0?1:0),t=n.month(),r=n.day(),r+(t>1?16:0)+(t>2?(t-2)*32:0)+(e-1)*400+this.jdEpoch-1},fromJD:function(e){e=Math.floor(e+.5)-Math.floor(this.jdEpoch)-1;var t=Math.floor(e/400)+1;e-=(t-1)*400,e+=e>15?16:0;var r=Math.floor(e/32)+1,n=e-(r-1)*32+1;return this.newDate(t<=0?t-1:t,r,n)}});var aQt={20:"Fruitbat",21:"Anchovy"};b1.calendars.discworld=$$});var T$e=ye(()=>{var xw=Sv(),oQt=bh();function Q$(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}Q$.prototype=new xw.baseCalendar;oQt(Q$.prototype,{name:"Ethiopian",jdEpoch:17242205e-1,daysPerMonth:[30,30,30,30,30,30,30,30,30,30,30,30,5],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Ethiopian",epochs:["BEE","EE"],monthNames:["Meskerem","Tikemet","Hidar","Tahesas","Tir","Yekatit","Megabit","Miazia","Genbot","Sene","Hamle","Nehase","Pagume"],monthNamesShort:["Mes","Tik","Hid","Tah","Tir","Yek","Meg","Mia","Gen","Sen","Ham","Neh","Pag"],dayNames:["Ehud","Segno","Maksegno","Irob","Hamus","Arb","Kidame"],dayNamesShort:["Ehu","Seg","Mak","Iro","Ham","Arb","Kid"],dayNamesMin:["Eh","Se","Ma","Ir","Ha","Ar","Ki"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(r){var t=this._validate(r,this.minMonth,this.minDay,xw.local.invalidYear),r=t.year()+(t.year()<0?1:0);return r%4===3||r%4===-1},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,xw.local.invalidYear||xw.regionalOptions[""].invalidYear),13},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,xw.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(r.month()===13&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return(this.dayOfWeek(e,t,r)||7)<6},toJD:function(e,t,r){var n=this._validate(e,t,r,xw.local.invalidDate);return e=n.year(),e<0&&e++,n.day()+(n.month()-1)*30+(e-1)*365+Math.floor(e/4)+this.jdEpoch-1},fromJD:function(e){var t=Math.floor(e)+.5-this.jdEpoch,r=Math.floor((t-Math.floor((t+366)/1461))/365)+1;r<=0&&r--,t=Math.floor(e)+.5-this.newDate(r,1,1).toJD();var n=Math.floor(t/30)+1,i=t-(n-1)*30+1;return this.newDate(r,n,i)}});xw.calendars.ethiopian=Q$});var A$e=ye(()=>{var qx=Sv(),sQt=bh();function eQ(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}eQ.prototype=new qx.baseCalendar;sQt(eQ.prototype,{name:"Hebrew",jdEpoch:347995.5,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29,29],hasYearZero:!1,minMonth:1,firstMonth:7,minDay:1,regionalOptions:{"":{name:"Hebrew",epochs:["BAM","AM"],monthNames:["Nisan","Iyar","Sivan","Tammuz","Av","Elul","Tishrei","Cheshvan","Kislev","Tevet","Shevat","Adar","Adar II"],monthNamesShort:["Nis","Iya","Siv","Tam","Av","Elu","Tis","Che","Kis","Tev","She","Ada","Ad2"],dayNames:["Yom Rishon","Yom Sheni","Yom Shlishi","Yom Revi'i","Yom Chamishi","Yom Shishi","Yom Shabbat"],dayNamesShort:["Ris","She","Shl","Rev","Cha","Shi","Sha"],dayNamesMin:["Ri","She","Shl","Re","Ch","Shi","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,qx.local.invalidYear);return this._leapYear(t.year())},_leapYear:function(e){return e=e<0?e+1:e,S9(e*7+1,19)<7},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,qx.local.invalidYear),this._leapYear(e.year?e.year():e)?13:12},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,qx.local.invalidYear);return e=t.year(),this.toJD(e===-1?1:e+1,7,1)-this.toJD(e,7,1)},daysInMonth:function(e,t){return e.year&&(t=e.month(),e=e.year()),this._validate(e,t,this.minDay,qx.local.invalidMonth),t===12&&this.leapYear(e)||t===8&&S9(this.daysInYear(e),10)===5?30:t===9&&S9(this.daysInYear(e),10)===3?29:this.daysPerMonth[t-1]},weekDay:function(e,t,r){return this.dayOfWeek(e,t,r)!==6},extraInfo:function(e,t,r){var n=this._validate(e,t,r,qx.local.invalidDate);return{yearType:(this.leapYear(n)?"embolismic":"common")+" "+["deficient","regular","complete"][this.daysInYear(n)%10-3]}},toJD:function(e,t,r){var n=this._validate(e,t,r,qx.local.invalidDate);e=n.year(),t=n.month(),r=n.day();var i=e<=0?e+1:e,a=this.jdEpoch+this._delay1(i)+this._delay2(i)+r+1;if(t<7){for(var o=7;o<=this.monthsInYear(e);o++)a+=this.daysInMonth(e,o);for(var o=1;o=this.toJD(t===-1?1:t+1,7,1);)t++;for(var r=ethis.toJD(t,r,this.daysInMonth(t,r));)r++;var n=e-this.toJD(t,r,1)+1;return this.newDate(t,r,n)}});function S9(e,t){return e-t*Math.floor(e/t)}qx.calendars.hebrew=eQ});var S$e=ye(()=>{var nC=Sv(),lQt=bh();function tQ(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}tQ.prototype=new nC.baseCalendar;lQt(tQ.prototype,{name:"Islamic",jdEpoch:19484395e-1,daysPerMonth:[30,29,30,29,30,29,30,29,30,29,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Islamic",epochs:["BH","AH"],monthNames:["Muharram","Safar","Rabi' al-awwal","Rabi' al-thani","Jumada al-awwal","Jumada al-thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-ahad","Yawm al-ithnayn","Yawm ath-thulaathaa'","Yawm al-arbi'aa'","Yawm al-kham\u012Bs","Yawm al-jum'a","Yawm as-sabt"],dayNamesShort:["Aha","Ith","Thu","Arb","Kha","Jum","Sab"],dayNamesMin:["Ah","It","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!1}},leapYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,nC.local.invalidYear);return(t.year()*11+14)%30<11},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(e){return this.leapYear(e)?355:354},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,nC.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(r.month()===12&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return this.dayOfWeek(e,t,r)!==5},toJD:function(e,t,r){var n=this._validate(e,t,r,nC.local.invalidDate);return e=n.year(),t=n.month(),r=n.day(),e=e<=0?e+1:e,r+Math.ceil(29.5*(t-1))+(e-1)*354+Math.floor((3+11*e)/30)+this.jdEpoch-1},fromJD:function(e){e=Math.floor(e)+.5;var t=Math.floor((30*(e-this.jdEpoch)+10646)/10631);t=t<=0?t-1:t;var r=Math.min(12,Math.ceil((e-29-this.toJD(t,1,1))/29.5)+1),n=e-this.toJD(t,r,1)+1;return this.newDate(t,r,n)}});nC.calendars.islamic=tQ});var M$e=ye(()=>{var aC=Sv(),uQt=bh();function rQ(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}rQ.prototype=new aC.baseCalendar;uQt(rQ.prototype,{name:"Julian",jdEpoch:17214235e-1,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Julian",epochs:["BC","AD"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"mm/dd/yyyy",firstDay:0,isRTL:!1}},leapYear:function(r){var t=this._validate(r,this.minMonth,this.minDay,aC.local.invalidYear),r=t.year()<0?t.year()+1:t.year();return r%4===0},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(4-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,aC.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(r.month()===2&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return(this.dayOfWeek(e,t,r)||7)<6},toJD:function(e,t,r){var n=this._validate(e,t,r,aC.local.invalidDate);return e=n.year(),t=n.month(),r=n.day(),e<0&&e++,t<=2&&(e--,t+=12),Math.floor(365.25*(e+4716))+Math.floor(30.6001*(t+1))+r-1524.5},fromJD:function(e){var t=Math.floor(e+.5),r=t+1524,n=Math.floor((r-122.1)/365.25),i=Math.floor(365.25*n),a=Math.floor((r-i)/30.6001),o=a-Math.floor(a<14?1:13),s=n-Math.floor(o>2?4716:4715),l=r-i-Math.floor(30.6001*a);return s<=0&&s--,this.newDate(s,o,l)}});aC.calendars.julian=rQ});var k$e=ye(()=>{var ug=Sv(),cQt=bh();function nQ(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}nQ.prototype=new ug.baseCalendar;cQt(nQ.prototype,{name:"Mayan",jdEpoch:584282.5,hasYearZero:!0,minMonth:0,firstMonth:0,minDay:0,regionalOptions:{"":{name:"Mayan",epochs:["",""],monthNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],monthNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17"],dayNames:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesShort:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],dayNamesMin:["0","1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19"],digits:null,dateFormat:"YYYY.m.d",firstDay:0,isRTL:!1,haabMonths:["Pop","Uo","Zip","Zotz","Tzec","Xul","Yaxkin","Mol","Chen","Yax","Zac","Ceh","Mac","Kankin","Muan","Pax","Kayab","Cumku","Uayeb"],tzolkinMonths:["Imix","Ik","Akbal","Kan","Chicchan","Cimi","Manik","Lamat","Muluc","Oc","Chuen","Eb","Ben","Ix","Men","Cib","Caban","Etznab","Cauac","Ahau"]}},leapYear:function(e){return this._validate(e,this.minMonth,this.minDay,ug.local.invalidYear),!1},formatYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,ug.local.invalidYear);e=t.year();var r=Math.floor(e/400);e=e%400,e+=e<0?400:0;var n=Math.floor(e/20);return r+"."+n+"."+e%20},forYear:function(e){if(e=e.split("."),e.length<3)throw"Invalid Mayan year";for(var t=0,r=0;r19||r>0&&n<0)throw"Invalid Mayan year";t=t*20+n}return t},monthsInYear:function(e){return this._validate(e,this.minMonth,this.minDay,ug.local.invalidYear),18},weekOfYear:function(e,t,r){return this._validate(e,t,r,ug.local.invalidDate),0},daysInYear:function(e){return this._validate(e,this.minMonth,this.minDay,ug.local.invalidYear),360},daysInMonth:function(e,t){return this._validate(e,t,this.minDay,ug.local.invalidMonth),20},daysInWeek:function(){return 5},dayOfWeek:function(e,t,r){var n=this._validate(e,t,r,ug.local.invalidDate);return n.day()},weekDay:function(e,t,r){return this._validate(e,t,r,ug.local.invalidDate),!0},extraInfo:function(e,t,r){var n=this._validate(e,t,r,ug.local.invalidDate),i=n.toJD(),a=this._toHaab(i),o=this._toTzolkin(i);return{haabMonthName:this.local.haabMonths[a[0]-1],haabMonth:a[0],haabDay:a[1],tzolkinDayName:this.local.tzolkinMonths[o[0]-1],tzolkinDay:o[0],tzolkinTrecena:o[1]}},_toHaab:function(e){e-=this.jdEpoch;var t=iQ(e+8+17*20,365);return[Math.floor(t/20)+1,iQ(t,20)]},_toTzolkin:function(e){return e-=this.jdEpoch,[E$e(e+20,20),E$e(e+4,13)]},toJD:function(e,t,r){var n=this._validate(e,t,r,ug.local.invalidDate);return n.day()+n.month()*20+n.year()*360+this.jdEpoch},fromJD:function(e){e=Math.floor(e)+.5-this.jdEpoch;var t=Math.floor(e/360);e=e%360,e+=e<0?360:0;var r=Math.floor(e/20),n=e%20;return this.newDate(t,r,n)}});function iQ(e,t){return e-t*Math.floor(e/t)}function E$e(e,t){return iQ(e-1,t)+1}ug.calendars.mayan=nQ});var L$e=ye(()=>{var bw=Sv(),fQt=bh();function aQ(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}aQ.prototype=new bw.baseCalendar;var C$e=bw.instance("gregorian");fQt(aQ.prototype,{name:"Nanakshahi",jdEpoch:22576735e-1,daysPerMonth:[31,31,31,31,31,30,30,30,30,30,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Nanakshahi",epochs:["BN","AN"],monthNames:["Chet","Vaisakh","Jeth","Harh","Sawan","Bhadon","Assu","Katak","Maghar","Poh","Magh","Phagun"],monthNamesShort:["Che","Vai","Jet","Har","Saw","Bha","Ass","Kat","Mgr","Poh","Mgh","Pha"],dayNames:["Somvaar","Mangalvar","Budhvaar","Veervaar","Shukarvaar","Sanicharvaar","Etvaar"],dayNamesShort:["Som","Mangal","Budh","Veer","Shukar","Sanichar","Et"],dayNamesMin:["So","Ma","Bu","Ve","Sh","Sa","Et"],digits:null,dateFormat:"dd-mm-yyyy",firstDay:0,isRTL:!1}},leapYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,bw.local.invalidYear||bw.regionalOptions[""].invalidYear);return C$e.leapYear(t.year()+(t.year()<1?1:0)+1469)},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(1-(n.dayOfWeek()||7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,bw.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(r.month()===12&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return(this.dayOfWeek(e,t,r)||7)<6},toJD:function(i,t,r){var n=this._validate(i,t,r,bw.local.invalidMonth),i=n.year();i<0&&i++;for(var a=n.day(),o=1;o=this.toJD(t+1,1,1);)t++;for(var r=e-Math.floor(this.toJD(t,1,1)+.5)+1,n=1;r>this.daysInMonth(t,n);)r-=this.daysInMonth(t,n),n++;return this.newDate(t,n,r)}});bw.calendars.nanakshahi=aQ});var P$e=ye(()=>{var ww=Sv(),hQt=bh();function oQ(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}oQ.prototype=new ww.baseCalendar;hQt(oQ.prototype,{name:"Nepali",jdEpoch:17007095e-1,daysPerMonth:[31,31,32,32,31,30,30,29,30,29,30,30],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,daysPerYear:365,regionalOptions:{"":{name:"Nepali",epochs:["BBS","ABS"],monthNames:["Baisakh","Jestha","Ashadh","Shrawan","Bhadra","Ashwin","Kartik","Mangsir","Paush","Mangh","Falgun","Chaitra"],monthNamesShort:["Bai","Je","As","Shra","Bha","Ash","Kar","Mang","Pau","Ma","Fal","Chai"],dayNames:["Aaitabaar","Sombaar","Manglbaar","Budhabaar","Bihibaar","Shukrabaar","Shanibaar"],dayNamesShort:["Aaita","Som","Mangl","Budha","Bihi","Shukra","Shani"],dayNamesMin:["Aai","So","Man","Bu","Bi","Shu","Sha"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:1,isRTL:!1}},leapYear:function(e){return this.daysInYear(e)!==this.daysPerYear},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,ww.local.invalidYear);if(e=t.year(),typeof this.NEPALI_CALENDAR_DATA[e]=="undefined")return this.daysPerYear;for(var r=0,n=this.minMonth;n<=12;n++)r+=this.NEPALI_CALENDAR_DATA[e][n];return r},daysInMonth:function(e,t){return e.year&&(t=e.month(),e=e.year()),this._validate(e,t,this.minDay,ww.local.invalidMonth),typeof this.NEPALI_CALENDAR_DATA[e]=="undefined"?this.daysPerMonth[t-1]:this.NEPALI_CALENDAR_DATA[e][t]},weekDay:function(e,t,r){return this.dayOfWeek(e,t,r)!==6},toJD:function(e,t,r){var n=this._validate(e,t,r,ww.local.invalidDate);e=n.year(),t=n.month(),r=n.day();var i=ww.instance(),a=0,o=t,s=e;this._createMissingCalendarData(e);var l=e-(o>9||o===9&&r>=this.NEPALI_CALENDAR_DATA[s][0]?56:57);for(t!==9&&(a=r,o--);o!==9;)o<=0&&(o=12,s--),a+=this.NEPALI_CALENDAR_DATA[s][o],o--;return t===9?(a+=r-this.NEPALI_CALENDAR_DATA[s][0],a<0&&(a+=i.daysInYear(l))):a+=this.NEPALI_CALENDAR_DATA[s][9]-this.NEPALI_CALENDAR_DATA[s][0],i.newDate(l,1,1).add(a,"d").toJD()},fromJD:function(e){var t=ww.instance(),r=t.fromJD(e),n=r.year(),i=r.dayOfYear(),a=n+56;this._createMissingCalendarData(a);for(var o=9,s=this.NEPALI_CALENDAR_DATA[a][0],l=this.NEPALI_CALENDAR_DATA[a][o]-s+1;i>l;)o++,o>12&&(o=1,a++),l+=this.NEPALI_CALENDAR_DATA[a][o];var u=this.NEPALI_CALENDAR_DATA[a][o]-(l-i);return this.newDate(a,o,u)},_createMissingCalendarData:function(e){var t=this.daysPerMonth.slice(0);t.unshift(17);for(var r=e-1;r{var QA=Sv(),dQt=bh();function M9(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}M9.prototype=new QA.baseCalendar;dQt(M9.prototype,{name:"Persian",jdEpoch:19483205e-1,daysPerMonth:[31,31,31,31,31,31,30,30,30,30,30,29],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Persian",epochs:["BP","AP"],monthNames:["Farvardin","Ordibehesht","Khordad","Tir","Mordad","Shahrivar","Mehr","Aban","Azar","Day","Bahman","Esfand"],monthNamesShort:["Far","Ord","Kho","Tir","Mor","Sha","Meh","Aba","Aza","Day","Bah","Esf"],dayNames:["Yekshambe","Doshambe","Seshambe","Ch\xE6harshambe","Panjshambe","Jom'e","Shambe"],dayNamesShort:["Yek","Do","Se","Ch\xE6","Panj","Jom","Sha"],dayNamesMin:["Ye","Do","Se","Ch","Pa","Jo","Sh"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!1}},leapYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,QA.local.invalidYear);return((t.year()-(t.year()>0?474:473))%2820+474+38)*682%2816<682},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-((n.dayOfWeek()+1)%7),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,QA.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(r.month()===12&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return this.dayOfWeek(e,t,r)!==5},toJD:function(e,t,r){var n=this._validate(e,t,r,QA.local.invalidDate);e=n.year(),t=n.month(),r=n.day();var i=e-(e>=0?474:473),a=474+sQ(i,2820);return r+(t<=7?(t-1)*31:(t-1)*30+6)+Math.floor((a*682-110)/2816)+(a-1)*365+Math.floor(i/2820)*1029983+this.jdEpoch-1},fromJD:function(e){e=Math.floor(e)+.5;var t=e-this.toJD(475,1,1),r=Math.floor(t/1029983),n=sQ(t,1029983),i=2820;if(n!==1029982){var a=Math.floor(n/366),o=sQ(n,366);i=Math.floor((2134*a+2816*o+2815)/1028522)+a+1}var s=i+2820*r+474;s=s<=0?s-1:s;var l=e-this.toJD(s,1,1)+1,u=l<=186?Math.ceil(l/31):Math.ceil((l-6)/30),c=e-this.toJD(s,u,1)+1;return this.newDate(s,u,c)}});function sQ(e,t){return e-t*Math.floor(e/t)}QA.calendars.persian=M9;QA.calendars.jalali=M9});var R$e=ye(()=>{var Tw=Sv(),vQt=bh(),E9=Tw.instance();function lQ(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}lQ.prototype=new Tw.baseCalendar;vQt(lQ.prototype,{name:"Taiwan",jdEpoch:24194025e-1,yearsOffset:1911,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Taiwan",epochs:["BROC","ROC"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:1,isRTL:!1}},leapYear:function(r){var t=this._validate(r,this.minMonth,this.minDay,Tw.local.invalidYear),r=this._t2gYear(t.year());return E9.leapYear(r)},weekOfYear:function(i,t,r){var n=this._validate(i,this.minMonth,this.minDay,Tw.local.invalidYear),i=this._t2gYear(n.year());return E9.weekOfYear(i,n.month(),n.day())},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,Tw.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(r.month()===2&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return(this.dayOfWeek(e,t,r)||7)<6},toJD:function(i,t,r){var n=this._validate(i,t,r,Tw.local.invalidDate),i=this._t2gYear(n.year());return E9.toJD(i,n.month(),n.day())},fromJD:function(e){var t=E9.fromJD(e),r=this._g2tYear(t.year());return this.newDate(r,t.month(),t.day())},_t2gYear:function(e){return e+this.yearsOffset+(e>=-this.yearsOffset&&e<=-1?1:0)},_g2tYear:function(e){return e-this.yearsOffset-(e>=1&&e<=this.yearsOffset?1:0)}});Tw.calendars.taiwan=lQ});var D$e=ye(()=>{var Aw=Sv(),pQt=bh(),k9=Aw.instance();function uQ(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}uQ.prototype=new Aw.baseCalendar;pQt(uQ.prototype,{name:"Thai",jdEpoch:15230985e-1,yearsOffset:543,daysPerMonth:[31,28,31,30,31,30,31,31,30,31,30,31],hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Thai",epochs:["BBE","BE"],monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],digits:null,dateFormat:"dd/mm/yyyy",firstDay:0,isRTL:!1}},leapYear:function(r){var t=this._validate(r,this.minMonth,this.minDay,Aw.local.invalidYear),r=this._t2gYear(t.year());return k9.leapYear(r)},weekOfYear:function(i,t,r){var n=this._validate(i,this.minMonth,this.minDay,Aw.local.invalidYear),i=this._t2gYear(n.year());return k9.weekOfYear(i,n.month(),n.day())},daysInMonth:function(e,t){var r=this._validate(e,t,this.minDay,Aw.local.invalidMonth);return this.daysPerMonth[r.month()-1]+(r.month()===2&&this.leapYear(r.year())?1:0)},weekDay:function(e,t,r){return(this.dayOfWeek(e,t,r)||7)<6},toJD:function(i,t,r){var n=this._validate(i,t,r,Aw.local.invalidDate),i=this._t2gYear(n.year());return k9.toJD(i,n.month(),n.day())},fromJD:function(e){var t=k9.fromJD(e),r=this._g2tYear(t.year());return this.newDate(r,t.month(),t.day())},_t2gYear:function(e){return e-this.yearsOffset-(e>=1&&e<=this.yearsOffset?1:0)},_g2tYear:function(e){return e+this.yearsOffset+(e>=-this.yearsOffset&&e<=-1?1:0)}});Aw.calendars.thai=uQ});var z$e=ye(()=>{var Sw=Sv(),gQt=bh();function cQ(e){this.local=this.regionalOptions[e||""]||this.regionalOptions[""]}cQ.prototype=new Sw.baseCalendar;gQt(cQ.prototype,{name:"UmmAlQura",hasYearZero:!1,minMonth:1,firstMonth:1,minDay:1,regionalOptions:{"":{name:"Umm al-Qura",epochs:["BH","AH"],monthNames:["Al-Muharram","Safar","Rabi' al-awwal","Rabi' Al-Thani","Jumada Al-Awwal","Jumada Al-Thani","Rajab","Sha'aban","Ramadan","Shawwal","Dhu al-Qi'dah","Dhu al-Hijjah"],monthNamesShort:["Muh","Saf","Rab1","Rab2","Jum1","Jum2","Raj","Sha'","Ram","Shaw","DhuQ","DhuH"],dayNames:["Yawm al-Ahad","Yawm al-Ithnain","Yawm al-Thal\u0101th\u0101\u2019","Yawm al-Arba\u2018\u0101\u2019","Yawm al-Kham\u012Bs","Yawm al-Jum\u2018a","Yawm al-Sabt"],dayNamesMin:["Ah","Ith","Th","Ar","Kh","Ju","Sa"],digits:null,dateFormat:"yyyy/mm/dd",firstDay:6,isRTL:!0}},leapYear:function(e){var t=this._validate(e,this.minMonth,this.minDay,Sw.local.invalidYear);return this.daysInYear(t.year())===355},weekOfYear:function(e,t,r){var n=this.newDate(e,t,r);return n.add(-n.dayOfWeek(),"d"),Math.floor((n.dayOfYear()-1)/7)+1},daysInYear:function(e){for(var t=0,r=1;r<=12;r++)t+=this.daysInMonth(e,r);return t},daysInMonth:function(e,t){for(var r=this._validate(e,t,this.minDay,Sw.local.invalidMonth),n=r.toJD()-24e5+.5,i=0,a=0;an)return Ox[i]-Ox[i-1];i++}return 30},weekDay:function(e,t,r){return this.dayOfWeek(e,t,r)!==5},toJD:function(e,t,r){var n=this._validate(e,t,r,Sw.local.invalidDate),i=12*(n.year()-1)+n.month()-15292,a=n.day()+Ox[i-1]-1;return a+24e5-.5},fromJD:function(e){for(var t=e-24e5+.5,r=0,n=0;nt);n++)r++;var i=r+15292,a=Math.floor((i-1)/12),o=a+1,s=i-12*a,l=t-Ox[r-1]+1;return this.newDate(o,s,l)},isValid:function(e,t,r){var n=Sw.baseCalendar.prototype.isValid.apply(this,arguments);return n&&(e=e.year!=null?e.year:e,n=e>=1276&&e<=1500),n},_validate:function(e,t,r,n){var i=Sw.baseCalendar.prototype._validate.apply(this,arguments);if(i.year<1276||i.year>1500)throw n.replace(/\{0\}/,this.local.name);return i}});Sw.calendars.ummalqura=cQ;var Ox=[20,50,79,109,138,168,197,227,256,286,315,345,374,404,433,463,492,522,551,581,611,641,670,700,729,759,788,818,847,877,906,936,965,995,1024,1054,1083,1113,1142,1172,1201,1231,1260,1290,1320,1350,1379,1409,1438,1468,1497,1527,1556,1586,1615,1645,1674,1704,1733,1763,1792,1822,1851,1881,1910,1940,1969,1999,2028,2058,2087,2117,2146,2176,2205,2235,2264,2294,2323,2353,2383,2413,2442,2472,2501,2531,2560,2590,2619,2649,2678,2708,2737,2767,2796,2826,2855,2885,2914,2944,2973,3003,3032,3062,3091,3121,3150,3180,3209,3239,3268,3298,3327,3357,3386,3416,3446,3476,3505,3535,3564,3594,3623,3653,3682,3712,3741,3771,3800,3830,3859,3889,3918,3948,3977,4007,4036,4066,4095,4125,4155,4185,4214,4244,4273,4303,4332,4362,4391,4421,4450,4480,4509,4539,4568,4598,4627,4657,4686,4716,4745,4775,4804,4834,4863,4893,4922,4952,4981,5011,5040,5070,5099,5129,5158,5188,5218,5248,5277,5307,5336,5366,5395,5425,5454,5484,5513,5543,5572,5602,5631,5661,5690,5720,5749,5779,5808,5838,5867,5897,5926,5956,5985,6015,6044,6074,6103,6133,6162,6192,6221,6251,6281,6311,6340,6370,6399,6429,6458,6488,6517,6547,6576,6606,6635,6665,6694,6724,6753,6783,6812,6842,6871,6901,6930,6960,6989,7019,7048,7078,7107,7137,7166,7196,7225,7255,7284,7314,7344,7374,7403,7433,7462,7492,7521,7551,7580,7610,7639,7669,7698,7728,7757,7787,7816,7846,7875,7905,7934,7964,7993,8023,8053,8083,8112,8142,8171,8201,8230,8260,8289,8319,8348,8378,8407,8437,8466,8496,8525,8555,8584,8614,8643,8673,8702,8732,8761,8791,8821,8850,8880,8909,8938,8968,8997,9027,9056,9086,9115,9145,9175,9205,9234,9264,9293,9322,9352,9381,9410,9440,9470,9499,9529,9559,9589,9618,9648,9677,9706,9736,9765,9794,9824,9853,9883,9913,9943,9972,10002,10032,10061,10090,10120,10149,10178,10208,10237,10267,10297,10326,10356,10386,10415,10445,10474,10504,10533,10562,10592,10621,10651,10680,10710,10740,10770,10799,10829,10858,10888,10917,10947,10976,11005,11035,11064,11094,11124,11153,11183,11213,11242,11272,11301,11331,11360,11389,11419,11448,11478,11507,11537,11567,11596,11626,11655,11685,11715,11744,11774,11803,11832,11862,11891,11921,11950,11980,12010,12039,12069,12099,12128,12158,12187,12216,12246,12275,12304,12334,12364,12393,12423,12453,12483,12512,12542,12571,12600,12630,12659,12688,12718,12747,12777,12807,12837,12866,12896,12926,12955,12984,13014,13043,13072,13102,13131,13161,13191,13220,13250,13280,13310,13339,13368,13398,13427,13456,13486,13515,13545,13574,13604,13634,13664,13693,13723,13752,13782,13811,13840,13870,13899,13929,13958,13988,14018,14047,14077,14107,14136,14166,14195,14224,14254,14283,14313,14342,14372,14401,14431,14461,14490,14520,14550,14579,14609,14638,14667,14697,14726,14756,14785,14815,14844,14874,14904,14933,14963,14993,15021,15051,15081,15110,15140,15169,15199,15228,15258,15287,15317,15347,15377,15406,15436,15465,15494,15524,15553,15582,15612,15641,15671,15701,15731,15760,15790,15820,15849,15878,15908,15937,15966,15996,16025,16055,16085,16114,16144,16174,16204,16233,16262,16292,16321,16350,16380,16409,16439,16468,16498,16528,16558,16587,16617,16646,16676,16705,16734,16764,16793,16823,16852,16882,16912,16941,16971,17001,17030,17060,17089,17118,17148,17177,17207,17236,17266,17295,17325,17355,17384,17414,17444,17473,17502,17532,17561,17591,17620,17650,17679,17709,17738,17768,17798,17827,17857,17886,17916,17945,17975,18004,18034,18063,18093,18122,18152,18181,18211,18241,18270,18300,18330,18359,18388,18418,18447,18476,18506,18535,18565,18595,18625,18654,18684,18714,18743,18772,18802,18831,18860,18890,18919,18949,18979,19008,19038,19068,19098,19127,19156,19186,19215,19244,19274,19303,19333,19362,19392,19422,19452,19481,19511,19540,19570,19599,19628,19658,19687,19717,19746,19776,19806,19836,19865,19895,19924,19954,19983,20012,20042,20071,20101,20130,20160,20190,20219,20249,20279,20308,20338,20367,20396,20426,20455,20485,20514,20544,20573,20603,20633,20662,20692,20721,20751,20780,20810,20839,20869,20898,20928,20957,20987,21016,21046,21076,21105,21135,21164,21194,21223,21253,21282,21312,21341,21371,21400,21430,21459,21489,21519,21548,21578,21607,21637,21666,21696,21725,21754,21784,21813,21843,21873,21902,21932,21962,21991,22021,22050,22080,22109,22138,22168,22197,22227,22256,22286,22316,22346,22375,22405,22434,22464,22493,22522,22552,22581,22611,22640,22670,22700,22730,22759,22789,22818,22848,22877,22906,22936,22965,22994,23024,23054,23083,23113,23143,23173,23202,23232,23261,23290,23320,23349,23379,23408,23438,23467,23497,23527,23556,23586,23616,23645,23674,23704,23733,23763,23792,23822,23851,23881,23910,23940,23970,23999,24029,24058,24088,24117,24147,24176,24206,24235,24265,24294,24324,24353,24383,24413,24442,24472,24501,24531,24560,24590,24619,24648,24678,24707,24737,24767,24796,24826,24856,24885,24915,24944,24974,25003,25032,25062,25091,25121,25150,25180,25210,25240,25269,25299,25328,25358,25387,25416,25446,25475,25505,25534,25564,25594,25624,25653,25683,25712,25742,25771,25800,25830,25859,25888,25918,25948,25977,26007,26037,26067,26096,26126,26155,26184,26214,26243,26272,26302,26332,26361,26391,26421,26451,26480,26510,26539,26568,26598,26627,26656,26686,26715,26745,26775,26805,26834,26864,26893,26923,26952,26982,27011,27041,27070,27099,27129,27159,27188,27218,27248,27277,27307,27336,27366,27395,27425,27454,27484,27513,27542,27572,27602,27631,27661,27691,27720,27750,27779,27809,27838,27868,27897,27926,27956,27985,28015,28045,28074,28104,28134,28163,28193,28222,28252,28281,28310,28340,28369,28399,28428,28458,28488,28517,28547,28577,28607,28636,28665,28695,28724,28754,28783,28813,28843,28872,28901,28931,28960,28990,29019,29049,29078,29108,29137,29167,29196,29226,29255,29285,29315,29345,29375,29404,29434,29463,29492,29522,29551,29580,29610,29640,29669,29699,29729,29759,29788,29818,29847,29876,29906,29935,29964,29994,30023,30053,30082,30112,30141,30171,30200,30230,30259,30289,30318,30348,30378,30408,30437,30467,30496,30526,30555,30585,30614,30644,30673,30703,30732,30762,30791,30821,30850,30880,30909,30939,30968,30998,31027,31057,31086,31116,31145,31175,31204,31234,31263,31293,31322,31352,31381,31411,31441,31471,31500,31530,31559,31589,31618,31648,31676,31706,31736,31766,31795,31825,31854,31884,31913,31943,31972,32002,32031,32061,32090,32120,32150,32180,32209,32239,32268,32298,32327,32357,32386,32416,32445,32475,32504,32534,32563,32593,32622,32652,32681,32711,32740,32770,32799,32829,32858,32888,32917,32947,32976,33006,33035,33065,33094,33124,33153,33183,33213,33243,33272,33302,33331,33361,33390,33420,33450,33479,33509,33539,33568,33598,33627,33657,33686,33716,33745,33775,33804,33834,33863,33893,33922,33952,33981,34011,34040,34069,34099,34128,34158,34187,34217,34247,34277,34306,34336,34365,34395,34424,34454,34483,34512,34542,34571,34601,34631,34660,34690,34719,34749,34778,34808,34837,34867,34896,34926,34955,34985,35015,35044,35074,35103,35133,35162,35192,35222,35251,35280,35310,35340,35370,35399,35429,35458,35488,35517,35547,35576,35605,35635,35665,35694,35723,35753,35782,35811,35841,35871,35901,35930,35960,35989,36019,36048,36078,36107,36136,36166,36195,36225,36254,36284,36314,36343,36373,36403,36433,36462,36492,36521,36551,36580,36610,36639,36669,36698,36728,36757,36786,36816,36845,36875,36904,36934,36963,36993,37022,37052,37081,37111,37141,37170,37200,37229,37259,37288,37318,37347,37377,37406,37436,37465,37495,37524,37554,37584,37613,37643,37672,37701,37731,37760,37790,37819,37849,37878,37908,37938,37967,37997,38027,38056,38085,38115,38144,38174,38203,38233,38262,38292,38322,38351,38381,38410,38440,38469,38499,38528,38558,38587,38617,38646,38676,38705,38735,38764,38794,38823,38853,38882,38912,38941,38971,39001,39030,39059,39089,39118,39148,39178,39208,39237,39267,39297,39326,39355,39385,39414,39444,39473,39503,39532,39562,39592,39621,39650,39680,39709,39739,39768,39798,39827,39857,39886,39916,39946,39975,40005,40035,40064,40094,40123,40153,40182,40212,40241,40271,40300,40330,40359,40389,40418,40448,40477,40507,40536,40566,40595,40625,40655,40685,40714,40744,40773,40803,40832,40862,40892,40921,40951,40980,41009,41039,41068,41098,41127,41157,41186,41216,41245,41275,41304,41334,41364,41393,41422,41452,41481,41511,41540,41570,41599,41629,41658,41688,41718,41748,41777,41807,41836,41865,41894,41924,41953,41983,42012,42042,42072,42102,42131,42161,42190,42220,42249,42279,42308,42337,42367,42397,42426,42456,42485,42515,42545,42574,42604,42633,42662,42692,42721,42751,42780,42810,42839,42869,42899,42929,42958,42988,43017,43046,43076,43105,43135,43164,43194,43223,43253,43283,43312,43342,43371,43401,43430,43460,43489,43519,43548,43578,43607,43637,43666,43696,43726,43755,43785,43814,43844,43873,43903,43932,43962,43991,44021,44050,44080,44109,44139,44169,44198,44228,44258,44287,44317,44346,44375,44405,44434,44464,44493,44523,44553,44582,44612,44641,44671,44700,44730,44759,44788,44818,44847,44877,44906,44936,44966,44996,45025,45055,45084,45114,45143,45172,45202,45231,45261,45290,45320,45350,45380,45409,45439,45468,45498,45527,45556,45586,45615,45644,45674,45704,45733,45763,45793,45823,45852,45882,45911,45940,45970,45999,46028,46058,46088,46117,46147,46177,46206,46236,46265,46295,46324,46354,46383,46413,46442,46472,46501,46531,46560,46590,46620,46649,46679,46708,46738,46767,46797,46826,46856,46885,46915,46944,46974,47003,47033,47063,47092,47122,47151,47181,47210,47240,47269,47298,47328,47357,47387,47417,47446,47476,47506,47535,47565,47594,47624,47653,47682,47712,47741,47771,47800,47830,47860,47890,47919,47949,47978,48008,48037,48066,48096,48125,48155,48184,48214,48244,48273,48303,48333,48362,48392,48421,48450,48480,48509,48538,48568,48598,48627,48657,48687,48717,48746,48776,48805,48834,48864,48893,48922,48952,48982,49011,49041,49071,49100,49130,49160,49189,49218,49248,49277,49306,49336,49365,49395,49425,49455,49484,49514,49543,49573,49602,49632,49661,49690,49720,49749,49779,49809,49838,49868,49898,49927,49957,49986,50016,50045,50075,50104,50133,50163,50192,50222,50252,50281,50311,50340,50370,50400,50429,50459,50488,50518,50547,50576,50606,50635,50665,50694,50724,50754,50784,50813,50843,50872,50902,50931,50960,50990,51019,51049,51078,51108,51138,51167,51197,51227,51256,51286,51315,51345,51374,51403,51433,51462,51492,51522,51552,51582,51611,51641,51670,51699,51729,51758,51787,51816,51846,51876,51906,51936,51965,51995,52025,52054,52083,52113,52142,52171,52200,52230,52260,52290,52319,52349,52379,52408,52438,52467,52497,52526,52555,52585,52614,52644,52673,52703,52733,52762,52792,52822,52851,52881,52910,52939,52969,52998,53028,53057,53087,53116,53146,53176,53205,53235,53264,53294,53324,53353,53383,53412,53441,53471,53500,53530,53559,53589,53619,53648,53678,53708,53737,53767,53796,53825,53855,53884,53913,53943,53973,54003,54032,54062,54092,54121,54151,54180,54209,54239,54268,54297,54327,54357,54387,54416,54446,54476,54505,54535,54564,54593,54623,54652,54681,54711,54741,54770,54800,54830,54859,54889,54919,54948,54977,55007,55036,55066,55095,55125,55154,55184,55213,55243,55273,55302,55332,55361,55391,55420,55450,55479,55508,55538,55567,55597,55627,55657,55686,55716,55745,55775,55804,55834,55863,55892,55922,55951,55981,56011,56040,56070,56100,56129,56159,56188,56218,56247,56276,56306,56335,56365,56394,56424,56454,56483,56513,56543,56572,56601,56631,56660,56690,56719,56749,56778,56808,56837,56867,56897,56926,56956,56985,57015,57044,57074,57103,57133,57162,57192,57221,57251,57280,57310,57340,57369,57399,57429,57458,57487,57517,57546,57576,57605,57634,57664,57694,57723,57753,57783,57813,57842,57871,57901,57930,57959,57989,58018,58048,58077,58107,58137,58167,58196,58226,58255,58285,58314,58343,58373,58402,58432,58461,58491,58521,58551,58580,58610,58639,58669,58698,58727,58757,58786,58816,58845,58875,58905,58934,58964,58994,59023,59053,59082,59111,59141,59170,59200,59229,59259,59288,59318,59348,59377,59407,59436,59466,59495,59525,59554,59584,59613,59643,59672,59702,59731,59761,59791,59820,59850,59879,59909,59939,59968,59997,60027,60056,60086,60115,60145,60174,60204,60234,60264,60293,60323,60352,60381,60411,60440,60469,60499,60528,60558,60588,60618,60648,60677,60707,60736,60765,60795,60824,60853,60883,60912,60942,60972,61002,61031,61061,61090,61120,61149,61179,61208,61237,61267,61296,61326,61356,61385,61415,61445,61474,61504,61533,61563,61592,61621,61651,61680,61710,61739,61769,61799,61828,61858,61888,61917,61947,61976,62006,62035,62064,62094,62123,62153,62182,62212,62242,62271,62301,62331,62360,62390,62419,62448,62478,62507,62537,62566,62596,62625,62655,62685,62715,62744,62774,62803,62832,62862,62891,62921,62950,62980,63009,63039,63069,63099,63128,63157,63187,63216,63246,63275,63305,63334,63363,63393,63423,63453,63482,63512,63541,63571,63600,63630,63659,63689,63718,63747,63777,63807,63836,63866,63895,63925,63955,63984,64014,64043,64073,64102,64131,64161,64190,64220,64249,64279,64309,64339,64368,64398,64427,64457,64486,64515,64545,64574,64603,64633,64663,64692,64722,64752,64782,64811,64841,64870,64899,64929,64958,64987,65017,65047,65076,65106,65136,65166,65195,65225,65254,65283,65313,65342,65371,65401,65431,65460,65490,65520,65549,65579,65608,65638,65667,65697,65726,65755,65785,65815,65844,65874,65903,65933,65963,65992,66022,66051,66081,66110,66140,66169,66199,66228,66258,66287,66317,66346,66376,66405,66435,66465,66494,66524,66553,66583,66612,66641,66671,66700,66730,66760,66789,66819,66849,66878,66908,66937,66967,66996,67025,67055,67084,67114,67143,67173,67203,67233,67262,67292,67321,67351,67380,67409,67439,67468,67497,67527,67557,67587,67617,67646,67676,67705,67735,67764,67793,67823,67852,67882,67911,67941,67971,68e3,68030,68060,68089,68119,68148,68177,68207,68236,68266,68295,68325,68354,68384,68414,68443,68473,68502,68532,68561,68591,68620,68650,68679,68708,68738,68768,68797,68827,68857,68886,68916,68946,68975,69004,69034,69063,69092,69122,69152,69181,69211,69240,69270,69300,69330,69359,69388,69418,69447,69476,69506,69535,69565,69595,69624,69654,69684,69713,69743,69772,69802,69831,69861,69890,69919,69949,69978,70008,70038,70067,70097,70126,70156,70186,70215,70245,70274,70303,70333,70362,70392,70421,70451,70481,70510,70540,70570,70599,70629,70658,70687,70717,70746,70776,70805,70835,70864,70894,70924,70954,70983,71013,71042,71071,71101,71130,71159,71189,71218,71248,71278,71308,71337,71367,71397,71426,71455,71485,71514,71543,71573,71602,71632,71662,71691,71721,71751,71781,71810,71839,71869,71898,71927,71957,71986,72016,72046,72075,72105,72135,72164,72194,72223,72253,72282,72311,72341,72370,72400,72429,72459,72489,72518,72548,72577,72607,72637,72666,72695,72725,72754,72784,72813,72843,72872,72902,72931,72961,72991,73020,73050,73080,73109,73139,73168,73197,73227,73256,73286,73315,73345,73375,73404,73434,73464,73493,73523,73552,73581,73611,73640,73669,73699,73729,73758,73788,73818,73848,73877,73907,73936,73965,73995,74024,74053,74083,74113,74142,74172,74202,74231,74261,74291,74320,74349,74379,74408,74437,74467,74497,74526,74556,74586,74615,74645,74675,74704,74733,74763,74792,74822,74851,74881,74910,74940,74969,74999,75029,75058,75088,75117,75147,75176,75206,75235,75264,75294,75323,75353,75383,75412,75442,75472,75501,75531,75560,75590,75619,75648,75678,75707,75737,75766,75796,75826,75856,75885,75915,75944,75974,76003,76032,76062,76091,76121,76150,76180,76210,76239,76269,76299,76328,76358,76387,76416,76446,76475,76505,76534,76564,76593,76623,76653,76682,76712,76741,76771,76801,76830,76859,76889,76918,76948,76977,77007,77036,77066,77096,77125,77155,77185,77214,77243,77273,77302,77332,77361,77390,77420,77450,77479,77509,77539,77569,77598,77627,77657,77686,77715,77745,77774,77804,77833,77863,77893,77923,77952,77982,78011,78041,78070,78099,78129,78158,78188,78217,78247,78277,78307,78336,78366,78395,78425,78454,78483,78513,78542,78572,78601,78631,78661,78690,78720,78750,78779,78808,78838,78867,78897,78926,78956,78985,79015,79044,79074,79104,79133,79163,79192,79222,79251,79281,79310,79340,79369,79399,79428,79458,79487,79517,79546,79576,79606,79635,79665,79695,79724,79753,79783,79812,79841,79871,79900,79930,79960,79990]});var q$e=ye((a2r,F$e)=>{"use strict";F$e.exports=Sv();_$e();x$e();b$e();w$e();T$e();A$e();S$e();M$e();k$e();L$e();P$e();I$e();R$e();D$e();z$e()});var G$e=ye((o2r,H$e)=>{"use strict";var B$e=q$e(),oC=Mr(),N$e=es(),mQt=N$e.EPOCHJD,yQt=N$e.ONEDAY,dQ={valType:"enumerated",values:oC.sortObjectKeys(B$e.calendars),editType:"calc",dflt:"gregorian"},U$e=function(e,t,r,n){var i={};return i[r]=dQ,oC.coerce(e,t,i,r,n)},_Qt=function(e,t,r,n){for(var i=0;i{"use strict";j$e.exports=G$e()});var SQt=ye((l2r,X$e)=>{var Z$e=Ume();Z$e.register([Hye(),L1e(),V_e(),lxe(),bxe(),mbe(),Lbe(),g2e(),j2e(),Mwe(),h3e(),N4e(),kEe(),yCe(),a6e(),z6e(),nLe(),IPe(),JPe(),pIe(),EIe(),UIe(),r8e(),y8e(),jRe(),fDe(),MOe(),MBe(),CNe(),eUe(),uVe(),AVe(),XVe(),aGe(),xGe(),GGe(),$je(),wWe(),iZe(),SXe(),XXe(),pYe(),UYe(),tKe(),QKe(),mJe(),FJe(),g$e(),W$e()]);X$e.exports=Z$e});return SQt();})(); +/*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */ +/*! + * Determine if an object is a Buffer + * + * @author Feross Aboukhadijeh + * @license MIT + */ +/*! + * pad-left + * + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT license. + */ +/*! + * repeat-string + * + * Copyright (c) 2014-2015, Jon Schlinkert. + * Licensed under the MIT License. + */ +/*! Bundled license information: + +native-promise-only/lib/npo.src.js: + (*! Native Promise Only + v0.8.1 (c) Kyle Simpson + MIT License: http://getify.mit-license.org + *) + +polybooljs/index.js: + (* + * @copyright 2016 Sean Connelly (@voidqk), http://syntheti.cc + * @license MIT + * @preserve Project Home: https://github.com/voidqk/polybooljs + *) + +ieee754/index.js: + (*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh *) + +buffer/index.js: + (*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + *) + +safe-buffer/index.js: + (*! safe-buffer. MIT License. Feross Aboukhadijeh *) + +assert/build/internal/util/comparisons.js: + (*! + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + *) + +object-assign/index.js: + (* + object-assign + (c) Sindre Sorhus + @license MIT + *) + +maplibre-gl/dist/maplibre-gl.js: + (** + * MapLibre GL JS + * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v4.7.1/LICENSE.txt + *) +*/ + +window.Plotly = Plotly; +return Plotly; +})); \ No newline at end of file diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/backend.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/backend.py new file mode 100644 index 0000000000000000000000000000000000000000..6605e5ffd938c7fea466aea4c4696271078bc79f --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/backend.py @@ -0,0 +1,445 @@ +"""Backend for Plotly.""" + +from pathlib import Path +from typing import TYPE_CHECKING, Any, Dict, Optional, Union + +if TYPE_CHECKING: + from openbb_core.app.model.charts.charting_settings import ChartingSettings + from pandas import DataFrame + from plotly.graph_objs import Figure + +PLOTS_CORE_PATH = Path(__file__).parent.resolve() +PLOTLYJS_PATH = PLOTS_CORE_PATH / "assets" / "plotly-3.0.0.min.js" +BACKEND = None + +try: + from pywry import PyWry # pylint: disable=import-outside-toplevel +except ImportError: + from .dummy_backend import DummyBackend # pylint: disable=import-outside-toplevel + + class PyWry(DummyBackend): # type: ignore + """Dummy backend for charts.""" + + +class Backend(PyWry): + """Custom backend for Plotly.""" + + def __new__(cls, *args, **kwargs): # pylint: disable=W0613 + """Create a singleton instance of the backend.""" + if not hasattr(cls, "instance"): + cls.instance = super().__new__(cls) # pylint: disable=E1120 + return cls.instance + + def __init__( + self, + charting_settings: "ChartingSettings", + daemon: bool = True, + max_retries: int = 30, + proc_name: str = "OpenBB Platform", + ): + """Create a new instance of the backend.""" + # pylint: disable=import-outside-toplevel + import atexit # noqa + import sys # noqa + from multiprocessing import current_process # noqa + from packaging import version # noqa + + self.charting_settings = charting_settings + has_version = hasattr(PyWry, "__version__") + init_kwargs: Dict[str, Any] = dict(daemon=daemon, max_retries=max_retries) + + if has_version and version.parse(PyWry.__version__) >= version.parse("0.4.8"): + init_kwargs.update(dict(proc_name=proc_name)) + + super().__init__(**init_kwargs) + + try: + from IPython import get_ipython # pylint: disable=import-outside-toplevel + + if "IPKernelApp" not in get_ipython().config: + raise ImportError("console") + if ( + "parent_header" + in get_ipython().kernel._parent_ident # pylint: disable=protected-access + ): + raise ImportError("notebook") + except (ImportError, AttributeError): + JUPYTER_NOTEBOOK = False + else: + JUPYTER_NOTEBOOK = True + + self.plotly_html: Path = (PLOTS_CORE_PATH / "plotly.html").resolve() + self.table_html: Path = (PLOTS_CORE_PATH / "table.html").resolve() + self.isatty = ( + not JUPYTER_NOTEBOOK + and sys.stdin.isatty() + and current_process().name == "MainProcess" + ) + if has_version and PyWry.__version__ == "0.0.0": + self.isatty = False + + self.WIDTH, self.HEIGHT = 1400, 762 + self.logged_in: bool = False + + atexit.register(self.close) + + def set_window_dimensions(self): + """Set the window dimensions.""" + width = 1400 + height = 762 + + self.WIDTH, self.HEIGHT = int(width), int(height) + + def get_pending(self) -> list: + """Get the pending data that has not been sent to the backend.""" + # pylint: disable=W0201,E0203 + pending = self.outgoing + self.init_engine + self.outgoing: list = [] + self.init_engine: list = [] + return pending + + def get_plotly_html(self) -> Path: + """Get the plotly html file.""" + # pylint: disable=import-outside-toplevel + import warnings + + self.set_window_dimensions() + if self.plotly_html.exists(): + return self.plotly_html + + warnings.warn( + "[bold red]plotly.html file not found, check the path:[/]" + f"[green]{PLOTS_CORE_PATH / 'plotly.html'}[/]" + ) + self.max_retries = 0 # pylint: disable=W0201 + raise FileNotFoundError + + def get_table_html(self) -> Path: + """Get the table html file.""" + # pylint: disable=import-outside-toplevel + import warnings + + self.set_window_dimensions() + if self.table_html.exists(): + return self.table_html + warnings.warn( + "[bold red]table.html file not found, check the path:[/]" + f"[green]{PLOTS_CORE_PATH / 'table.html'}[/]" + ) + self.max_retries = 0 # pylint: disable=W0201 + raise FileNotFoundError + + def get_window_icon(self) -> Optional[Path]: + """Get the window icon.""" + icon_path = PLOTS_CORE_PATH / "assets" / "Terminal_icon.png" + if icon_path.exists(): + return icon_path + return None + + def get_json_update( + self, + cmd_loc: Optional[str] = None, + theme: Optional[str] = None, + ) -> dict: + """Get the json update for the backend.""" + if self.charting_settings.user_uuid and not self.logged_in: + self.logged_in = True + + return dict( + theme=theme or self.charting_settings.chart_style, + log_id=self.charting_settings.app_id, + pywry_version=self.__version__, + platform_version=self.charting_settings.version, + python_version=self.charting_settings.python_version, + command_location=cmd_loc, + ) + + def send_figure( + self, + fig: "Figure", + export_image: Optional[Union[Path, str]] = "", + command_location: Optional[str] = "", + ): + """Send a Plotly figure to the backend. + + Parameters + ---------- + fig : Figure + Plotly figure to send to backend. + export_image : str, optional + Path to export image to, by default "" + command_location : str, optional + Location of the command, by default "". + We can use the route here to display it on the chart title. + """ + # pylint: disable=import-outside-toplevel + import asyncio + import json + import re + + self.check_backend() + # pylint: disable=C0415 + + paper_bg = ( + "rgba(0,0,0,0)" + if self.charting_settings.chart_style == "dark" + else "rgba(255,255,255,0)" + ) + title = "OpenBB Platform" + fig.layout.title.text = re.sub( + r"<[^>]*>", "", fig.layout.title.text if fig.layout.title.text else title + ) + fig.layout.height += 69 + + export_image = Path(export_image).resolve() if export_image else None + + json_data = json.loads(fig.to_json()) + json_data.update(self.get_json_update(command_location)) + json_data["layout"]["paper_bgcolor"] = paper_bg + + outgoing = dict( + html=self.get_plotly_html(), + json_data=json_data, + export_image=export_image, + **self.get_kwargs(command_location), + ) + self.send_outgoing(outgoing) + + if export_image: + if self.loop.is_closed(): # type: ignore[has-type] + # Create a new event loop + self.loop = asyncio.new_event_loop() + asyncio.set_event_loop(self.loop) + + self.loop.run_until_complete(self.process_image(export_image)) + + async def process_image(self, export_image: Path): + """Check if the image has been exported to the path.""" + # pylint: disable=import-outside-toplevel + import asyncio + import subprocess + import sys + + img_path = export_image.resolve() + + checks = 0 + while not img_path.exists(): + await asyncio.sleep(0.2) + checks += 1 + if checks > 50: + break + + if img_path.exists(): # noqa: SIM102 + opener = "open" if sys.platform == "darwin" else "xdg-open" + subprocess.check_call([opener, export_image]) # nosec: B603 # noqa: S603 + + def send_table( # pylint: disable=too-many-positional-arguments + self, + df_table: "DataFrame", + title: str = "", + source: str = "", + theme: str = "dark", + command_location: Optional[str] = "", + ): + """Send table data to the backend to be displayed in a table. + + Parameters + ---------- + df_table : DataFrame + Dataframe to send to backend. + title : str, optional + Title to display in the window, by default "" + source : str, optional + Source of the data, by default "" + theme : light or dark, optional + Theme of the table, by default "light" + """ + # pylint: disable=import-outside-toplevel + import json + import re + + self.check_backend() + + if title: + # We remove any html tags and markdown from the title + title = re.sub(r"<[^>]*>", "", title) + title = re.sub(r"\[\/?[a-z]+\]", "", title) + + # we get the length of each column using the max length of the column + # name and the max length of the column values as the column width + columnwidth = [ + max( + len(str(df_table[col].name)), + df_table[col].astype(str).str.len().max(), + ) + for col in df_table.columns + if hasattr(df_table[col], "name") and hasattr(df_table[col], "dtype") + ] + + # we add a percentage of max to the min column width + columnwidth = [ + int(x + (max(columnwidth) - min(columnwidth)) * 0.2) for x in columnwidth + ] + + # in case of a very small table we set a min width + width = max(int(min(sum(columnwidth) * 9.7, self.WIDTH + 100)), 800) + + json_data = json.loads(df_table.to_json(orient="split", date_format="iso")) + json_data.update( + dict( + title=title, + source=source or "", + **self.get_json_update(command_location, theme or "dark"), + ) + ) + + outgoing = dict( + html=self.get_table_html(), + json_data=json.dumps(json_data), + width=width, + height=self.HEIGHT - 100, + **self.get_kwargs(command_location), + ) + self.send_outgoing(outgoing) + + def send_url( + self, + url: str, + title: str = "", + width: Optional[int] = None, + height: Optional[int] = None, + ): + """Send a URL to the backend to be displayed in a window. + + Parameters + ---------- + url : str + URL to display in the window. + title : str, optional + Title to display in the window, by default "" + width : int, optional + Width of the window, by default 1200 + height : int, optional + Height of the window, by default 800 + """ + self.check_backend() + script = f""" + + """ + outgoing = dict( + html=script, + **self.get_kwargs(title), + width=width or self.WIDTH, + height=height or self.HEIGHT, + ) + self.send_outgoing(outgoing) + + def get_kwargs(self, title: Optional[str] = "") -> dict: + """Get the kwargs for the backend.""" + return { + "title": "OpenBB Platform" + (f" - {title}" if title else ""), + "icon": self.get_window_icon(), + "download_path": str(self.charting_settings.user_exports_directory), + } + + def start(self, debug: bool = False, headless: bool = False): + """Start the backend WindowManager process.""" + if self.isatty: + super().start(debug, headless) + + def check_backend(self): + """Override to check if isatty.""" + # pylint: disable=import-outside-toplevel + import warnings # noqa + from packaging import version # noqa + + if not self.isatty: + return None + + message = ( + "[bold red]PyWry version 0.5.12 or higher is required to use the " + "OpenBB Plots backend.[/]\n" + "[yellow]Please update pywry with 'pip install pywry --upgrade'[/]" + ) + if not hasattr(PyWry, "__version__"): + try: + # pylint: disable=C0415 + from pywry import __version__ as pywry_version + except ImportError: + self.max_retries = 0 + return warnings.warn(message) + + PyWry.__version__ = pywry_version # pylint: disable=W0201 + + if version.parse(PyWry.__version__) < version.parse("0.5.12"): + self.max_retries = 0 # pylint: disable=W0201 + return warnings.warn(message) + + if version.parse(PyWry.__version__) > version.parse("0.5.12"): + return super().check_backend() + + try: + return self.loop.run_until_complete(super().check_backend()) + except Exception: + return None + + def close(self, reset: bool = False): + """Close the backend.""" + if reset: + self.max_retries = 50 # pylint: disable=W0201 + + super().close() + + +async def download_plotly_js(): + """Download or updates plotly.js to the assets folder.""" + # pylint: disable=import-outside-toplevel + import aiohttp # noqa + import warnings # noqa + + js_filename = PLOTLYJS_PATH.name + try: + # we use aiohttp to download plotly.js + # this is so we don't have to block the main thread + async with aiohttp.ClientSession( + connector=aiohttp.TCPConnector(verify_ssl=False), trust_env=True + ) as session, session.get(f"https://cdn.plot.ly/{js_filename}") as resp: + with open(str(PLOTLYJS_PATH), "wb") as f: + while True: + chunk = await resp.content.read(1024) + if not chunk: + break + f.write(chunk) + + # We delete the old version of plotly.js + for file in (PLOTS_CORE_PATH / "assets").glob("plotly*.js"): + if file.name != js_filename: + file.unlink(missing_ok=True) + + except Exception as err: # pylint: disable=W0703 + warnings.warn(f"Error downloading plotly.js: {err}") + + +def create_backend(charting_settings: Optional["ChartingSettings"] = None): + """Create the backend.""" + # pylint: disable=import-outside-toplevel + import importlib + + charting_module = importlib.import_module( + "openbb_core.app.model.charts.charting_settings", "charting_settings" + ) + + ChartingSettings = charting_module.ChartingSettings + charting_settings = charting_settings or ChartingSettings() + global BACKEND # pylint: disable=W0603 # noqa + if BACKEND is None: + BACKEND = Backend(charting_settings) + + +def get_backend(): + """Get the backend instance.""" + if BACKEND is None: + create_backend() + return BACKEND diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/chart_style.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/chart_style.py new file mode 100644 index 0000000000000000000000000000000000000000..f09fe5a84919e7c3071aaaef306d9e6286569a72 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/chart_style.py @@ -0,0 +1,229 @@ +"""Chart and style helpers for Plotly.""" + +# pylint: disable=C0302,R0902,W3301 +import json +import sys +from pathlib import Path +from typing import ( + Any, + Dict, + List, + Optional, + Union, +) +from warnings import warn + +import plotly.graph_objects as go +import plotly.io as pio + +from openbb_charting.core.config.openbb_styles import ( + PLT_COLORWAY, + PLT_DECREASING_COLORWAY, + PLT_INCREASING_COLORWAY, +) + + +class ChartStyle: + """The class that helps with handling of style configurations. + + It serves styles for 2 libraries. For `Plotly` this class serves absolute paths + to the .pltstyle files. For `Plotly` and `Rich` this class serves custom + styles as python dictionaries. + """ + + STYLES_REPO = Path(__file__).parent.parent / "styles" + user_styles_directory: Path = STYLES_REPO + + plt_styles_available: Dict[str, Path] = {} + plt_style: str = "dark" + plotly_template: Dict[str, Any] = {} + mapbox_style: str = "dark" + + line_color: str = "" + up_color: str = "" + down_color: str = "" + up_colorway: List[str] = [] + down_colorway: List[str] = [] + up_color_transparent: str = "" + down_color_transparent: str = "" + + line_width: float = 1.5 + + initialized: bool = False + + def __new__(cls, *args, **kwargs): # pylint: disable=W0613 + """Create a singleton.""" + if not hasattr(cls, "instance"): + cls.instance = super().__new__(cls) # pylint: disable=E1120 + return cls.instance + + def __init__( + self, + plt_style: Optional[str] = "", + user_styles_directory: Optional[Path] = None, + ): + """Initialize the class. + + Parameters + ---------- + plt_style : `str`, optional + The name of the Plotly style to use, by default "" + console_style : `str`, optional + The name of the Rich style to use, by default "" + """ + if self.initialized: + return + + self.initialized = True + self.user_styles_directory = user_styles_directory or self.user_styles_directory + self.plt_style = plt_style or self.plt_style + self.load_available_styles() + self.load_style(plt_style) + self.apply_style() + + def apply_style(self, style: Optional[str] = "") -> None: + """Apply the style to the libraries.""" + style = style or self.plt_style + + if style != self.plt_style: + self.load_style(style) + + style = style.lower().replace("light", "white") # type: ignore + + if self.plt_style and self.plotly_template: + self.plotly_template.setdefault("layout", {}).setdefault( + "mapbox", {} + ).setdefault("style", "dark") + if "tables" in self.plt_styles_available: + tables = self.load_json_style(self.plt_styles_available["tables"]) + pio.templates["openbb_tables"] = go.layout.Template(tables) + try: + pio.templates["openbb"] = go.layout.Template(self.plotly_template) + except ValueError as err: + if "plotly.graph_objs.Layout: 'legend2'" in str(err): + warn( + "[red]Warning: Plotly multiple legends are " + "not supported in currently installed version.[/]\n\n" + "[yellow]Please update plotly to version >= 5.15.0[/]\n" + "[green]pip install plotly --upgrade[/]" + ) + sys.exit(1) + + if style in ["dark", "white"]: + pio.templates.default = f"plotly_{style}+openbb" + return + + pio.templates.default = "openbb" + self.mapbox_style = ( + self.plotly_template.setdefault("layout", {}) + .setdefault("mapbox", {}) + .setdefault("style", "dark") + ) + + def load_available_styles_from_folder(self, folder: Union[Path, str]) -> None: + """Load custom styles from folder. + + Parses the styles/default and styles/user folders and loads style files. + To be recognized files need to follow a naming convention: + *.pltstyle - plotly stylesheets + *.richstyle.json - rich stylesheets + + Parameters + ---------- + folder : str + Path to the folder containing the stylesheets + """ + + if not isinstance(folder, Path) or not folder.exists(): + return + + for attr, ext in zip( + ["plt_styles_available", "console_styles_available"], + [".pltstyle.json", ".richstyle.json"], + ): + for file in folder.rglob(f"*{ext}"): + getattr(self, attr)[file.name.replace(ext, "")] = file + + def load_available_styles(self) -> None: + """Load custom styles from default and user folders.""" + self.load_available_styles_from_folder(self.STYLES_REPO) + self.load_available_styles_from_folder(self.user_styles_directory) + + def load_json_style(self, file: Path) -> Dict[str, Any]: + """Load style from json file. + + Parameters + ---------- + file : Path + Path to the file containing the style + + Returns + ------- + Dict[str, Any] + Style as a dictionary + """ + with open(file) as f: + return json.load(f) + + def load_style(self, style: Optional[str] = "") -> None: + """Load style from file. + + Parameters + ---------- + style : str + Name of the style to load + """ + style = style or self.plt_style + + if style not in self.plt_styles_available: + warn( + f"[red]Plot Style {style} not found. Using default style.[/red]", + ) + style = "dark" + + self.load_plt_style(style) + + def load_plt_style(self, style: str) -> None: + """Load Plotly style from file. + + Parameters + ---------- + style : str + Name of the style to load + """ + self.plt_style = style + self.plotly_template = self.load_json_style(self.plt_styles_available[style]) + line = self.plotly_template.pop("line", {}) + + self.up_color = line.get("up_color", "#00ACFF") + self.down_color = line.get("down_color", "#FF0000") + self.up_color_transparent = line.get( + "up_color_transparent", "rgba(0, 170, 255, 0.50)" + ) + self.down_color_transparent = line.get( + "down_color_transparent", "rgba(230, 0, 57, 0.50)" + ) + self.line_color = line.get("color", "#ffed00") + self.line_width = line.get("width", self.line_width) + self.down_colorway = line.get("down_colorway", PLT_DECREASING_COLORWAY) + self.up_colorway = line.get("up_colorway", PLT_INCREASING_COLORWAY) + + def get_colors(self, reverse: bool = False) -> list: + """Get colors for the plot. + + Parameters + ---------- + reverse : bool, optional + Whether to reverse the colors, by default False + + Returns + ------- + list + List of colors e.g. ["#00ACFF", "#FF0000"] + """ + colors = ( + self.plotly_template.get("layout", {}).get("colorway", PLT_COLORWAY).copy() + ) + if reverse: + colors.reverse() + return colors diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/config/__init__.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/config/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..9997eeed1a7cb5c14c61cba44f57dce0754db370 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/config/__init__.py @@ -0,0 +1 @@ +"""OpenBB Charting core configuration.""" diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/config/openbb_styles.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/config/openbb_styles.py new file mode 100644 index 0000000000000000000000000000000000000000..7950f4f02122cf844d369d6e4a430e71a5c785f0 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/config/openbb_styles.py @@ -0,0 +1,308 @@ +"""OpenBB Charting Styles.""" + +from typing import TYPE_CHECKING, Any, List, Optional + +if TYPE_CHECKING: + from pandas import DataFrame + +# Vsurf Plot Settings +PLT_3DMESH_COLORSCALE = "Jet" +PLT_3DMESH_SCENE = dict( + xaxis=dict( + backgroundcolor="rgb(94, 94, 94)", + gridcolor="white", + showbackground=True, + zerolinecolor="white", + ), + yaxis=dict( + backgroundcolor="rgb(94, 94, 94)", + gridcolor="white", + showbackground=True, + zerolinecolor="white", + ), + zaxis=dict( + backgroundcolor="rgb(94, 94, 94)", + gridcolor="white", + showbackground=True, + zerolinecolor="white", + ), + aspectratio=dict(x=1.2, y=1.2, z=0.8), +) +PLT_3DMESH_HOVERLABEL = dict(bgcolor="gold") + +# Chart Plots Settings +PLT_STYLE_TEMPLATE = "plotly_dark" +PLT_STYLE_INCREASING = "#00ACFF" +PLT_STYLE_DECREASING = "#e4003a" +PLT_CANDLESTICKS = dict( + increasing=dict(line_color=PLT_STYLE_INCREASING, fillcolor=PLT_STYLE_INCREASING), + decreasing=dict(line_color=PLT_STYLE_DECREASING, fillcolor=PLT_STYLE_DECREASING), +) +PLT_STYLE_INCREASING_GREEN = "#00ACFF" +PLT_STYLE_DECREASING_RED = "#e4003a" +PLT_FONT = dict(family="Arial", size=16) +PLOTLY_FONT = dict(family="Arial", size=16) + +PLT_COLORWAY = [ + "#ffed00", + "#ef7d00", + "#e4003a", + "#c13246", + "#822661", + "#48277c", + "#005ca9", + "#00aaff", + "#9b30d9", + "#af005f", + "#5f00af", + "#af87ff", +] + +PLT_FIB_COLORWAY: List[Any] = [ + "rgb(195, 50, 69)", # 0 + "rgb(130, 38, 96)", # 0.235 + "rgb(120, 70, 200)", # 0.382 + "rgb(0, 93, 168)", # 0.5 + "rgb(173, 0, 95)", # 0.618 + "rgb(235, 184, 0)", # 0.65 Golden Pocket + "rgb(162, 115, 206)", # 1 + dict(family="Arial Black", size=10), # Fib's Text + dict(color="rgb(0, 230, 195)", width=0.9, dash="dash"), # Fib Trendline +] + +PLT_INCREASING_COLORWAY = [ + "rgba(0, 150, 255, 1)", + "rgba(0, 170, 255, 0.92)", + "rgba(0, 170, 255, 0.90)", + "rgba(0, 170, 255, 0.80)", + "rgba(0, 170, 255, 0.70)", + "rgba(0, 170, 255, 0.60)", + "rgba(0, 170, 255, 0.50)", + "rgba(0, 170, 255, 0.40)", + "rgba(0, 170, 255, 0.34)", + "rgba(0, 170, 255, 0.22)", + "rgba(0, 170, 255, 0.10)", + "rgba(0, 170, 255, 0.05)", +] + +PLT_DECREASING_COLORWAY = [ + "rgba(230, 0, 57, 1)", + "rgba(230, 0, 57, 0.92)", + "rgba(230, 0, 57, 0.90)", + "rgba(230, 0, 57, 0.80)", + "rgba(230, 0, 57, 0.70)", + "rgba(230, 0, 57, 0.60)", + "rgba(230, 0, 57, 0.50)", + "rgba(230, 0, 57, 0.40)", + "rgba(230, 0, 57, 0.34)", + "rgba(230, 0, 57, 0.22)", + "rgba(230, 0, 57, 0.10)", + "rgba(230, 0, 57, 0.05)", +] + +PLT_INCREASING_COLORWAY_GREEN = [ + "rgba(0, 150, 0, 1)", + "rgba(0, 150, 0, 0.92)", + "rgba(0, 150, 0, 0.90)", + "rgba(0, 150, 0, 0.80)", + "rgba(0, 150, 0, 0.70)", + "rgba(0, 150, 0, 0.60)", + "rgba(0, 150, 0, 0.50)", + "rgba(0, 150, 0, 0.40)", + "rgba(0, 150, 0, 0.34)", + "rgba(0, 150, 0, 0.22)", + "rgba(0, 150, 0, 0.10)", + "rgba(0, 150, 0, 0.05)", +] + +PLT_DECREASING_COLORWAY_RED = [ + "rgba(200, 0, 0, 1)", + "rgba(200, 0, 0, 0.92)", + "rgba(200, 0, 0, 0.90)", + "rgba(200, 0, 0, 0.80)", + "rgba(200, 0, 0, 0.70)", + "rgba(200, 0, 0, 0.60)", + "rgba(200, 0, 0, 0.50)", + "rgba(200, 0, 0, 0.40)", + "rgba(200, 0, 0, 0.34)", + "rgba(200, 0, 0, 0.22)", + "rgba(200, 0, 0, 0.10)", + "rgba(200, 0, 0, 0.05)", +] + + +# Table Plots Settings +PLT_TBL_HEADER = dict( + fill_color="rgb(30, 30, 30)", + font_color="white", + line_color="#6e6e6e", + line_width=1, +) +PLT_TBL_CELLS = dict( + font_color="white", + line_color="#6e6e6e", + line_width=0, +) +PLT_TBL_ROW_COLORS = ( + "#333333", + "#242424", +) + + +def de_increasing_color_list( + df_column: Optional["DataFrame"] = None, + text: Optional[str] = None, + contains_str: str = "-", + increasing_color: str = PLT_STYLE_INCREASING, + decreasing_color: str = PLT_STYLE_DECREASING, +) -> List[str]: + """Make a colorlist for decrease/increase if value in df_column. + + Contains "{contains_str}" default is "-" + + Parameters + ---------- + df_column : DataFrame, optional + Dataframe column to create colorlist. by default None + text : str, optional + Search in a string, by default None + contains_str : str, optional + Decreasing String to search for in df_column. The default is "-". + increasing_color : str, optional + Color to use for increasing values. The default is PLT_STYLE_INCREASING. + decreasing_color : str, optional + Color to use for decreasing values. The default is PLT_STYLE_DECREASING. + + Returns + ------- + List[str] + List of colors for df_column + """ + if df_column is None: + colorlist = [decreasing_color if contains_str in text else increasing_color] # type: ignore + else: + colorlist = [ + decreasing_color if boolv else increasing_color + for boolv in df_column.astype(str).str.contains(contains_str) + ] + return colorlist + + +PLOTLY_THEME = dict( + # Layout + layout=dict( + colorway=PLT_COLORWAY, + font=PLOTLY_FONT, + yaxis=dict( + side="right", + zeroline=True, + fixedrange=False, + title_standoff=20, + nticks=15, + showline=True, + showgrid=True, + ticklen=0, + ), + yaxis2=dict( + side="left", + zeroline=False, + fixedrange=False, + anchor="x", + layer="above traces", + overlaying="y2", + nticks=6, + tick0=0.5, + title_standoff=10, + tickfont=dict(size=12), + showline=False, + ticklen=0, + ), + yaxis3=dict( + zeroline=False, + fixedrange=False, + anchor="x", + layer="above traces", + overlaying="y3", + nticks=6, + tick0=0.5, + title_standoff=10, + tickfont=dict(size=12), + showline=True, + ticklen=0, + ), + yaxis4=dict( + zeroline=False, + fixedrange=False, + anchor="x", + layer="above traces", + overlaying="y4", + nticks=6, + tick0=0.5, + title_standoff=10, + tickfont=dict(size=12), + showline=True, + ticklen=0, + ), + xaxis=dict( + showgrid=True, + zeroline=False, + showline=True, + rangeslider=dict(visible=False), + tickfont=dict(size=16), + title_standoff=20, + ticklen=0, + ), + xaxis2=dict( + showgrid=True, + zeroline=False, + showline=True, + rangeslider=dict(visible=False), + tickfont=dict(size=12), + title_standoff=20, + ticklen=0, + ), + xaxis3=dict( + showgrid=True, + zeroline=False, + showline=True, + rangeslider=dict(visible=False), + tickfont=dict(size=12), + title_standoff=20, + ticklen=0, + ), + xaxis4=dict( + showgrid=True, + zeroline=False, + showline=True, + rangeslider=dict(visible=False), + tickfont=dict(size=12), + title_standoff=20, + ticklen=0, + ), + legend=dict( + orientation="h", + yanchor="bottom", + y=1.02, + xanchor="right", + x=0.95, + font=dict(size=12), + ), + dragmode="pan", + hovermode="x", + hoverlabel=dict(align="left"), + ), + data=dict( + candlestick=[ + dict( + increasing=dict( + line=dict(color=PLT_STYLE_INCREASING), + fillcolor=PLT_STYLE_INCREASING, + ), + decreasing=dict( + line=dict(color=PLT_STYLE_DECREASING), + fillcolor=PLT_STYLE_DECREASING, + ), + ) + ] + ), +) diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/dummy_backend.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/dummy_backend.py new file mode 100644 index 0000000000000000000000000000000000000000..736a50bbcd4640b3a4cce2412ec9f7869268f99a --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/dummy_backend.py @@ -0,0 +1,56 @@ +"""Dummy backend for charting to avoid import errors.""" + +import asyncio +from queue import Queue +from typing import List + +import dotenv +from openbb_core.app.constants import OPENBB_DIRECTORY + +SETTINGS_ENV_FILE = OPENBB_DIRECTORY / ".env" + + +class DummyBackend: + """Dummy class to avoid import errors.""" + + __version__ = "0.0.0" + + max_retries = 0 + outgoing: List[str] = [] + init_engine: List[str] = [] + daemon = True + debug = False + shell = False + base = None + recv: Queue = Queue() + + def __new__(cls, *args, **kwargs): # pylint: disable=W0613 + """Create a singleton instance of the backend.""" + if not hasattr(cls, "instance"): + cls.instance = super().__new__(cls) # pylint: disable=E1120 + return cls.instance + + def __init__(self, daemon: bool = True, max_retries: int = 30): + """Use cummy init to avoid import errors.""" + self.daemon = daemon + self.max_retries = max_retries + try: + self.loop: asyncio.AbstractEventLoop = asyncio.get_event_loop() + except RuntimeError: + self.loop = asyncio.new_event_loop() + asyncio.set_event_loop(self.loop) + + dotenv.set_key(SETTINGS_ENV_FILE, "PLOT_ENABLE_PYWRY", "0") + + def close(self, reset: bool = False): # pylint: disable=W0613 + """Close the backend.""" + + def start(self, debug: bool = False): # pylint: disable=W0613 + """Start the backend.""" + + def send_outgoing(self, outgoing: dict): + """Send outgoing data to the backend.""" + + async def check_backend(self): + """Check backend method to avoid errors and revert to browser.""" + raise Exception diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/openbb_figure.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/openbb_figure.py new file mode 100644 index 0000000000000000000000000000000000000000..940636011be2181f9f36f184aebbfe0d0b57aafe --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/openbb_figure.py @@ -0,0 +1,1662 @@ +"""OpenBB Figure Class.""" + +# pylint: disable=C0302,R0902,W3301,R0917 +import json +import textwrap +from datetime import datetime, timedelta +from math import floor +from pathlib import Path +from typing import ( + TYPE_CHECKING, + Any, + Dict, + List, + Literal, + Optional, + Tuple, + TypeVar, + Union, +) +from warnings import warn + +import plotly.graph_objects as go +import plotly.io as pio +from plotly.subplots import make_subplots + +from openbb_charting.core.backend import PLOTLYJS_PATH, create_backend, get_backend +from openbb_charting.core.config.openbb_styles import ( + PLT_TBL_ROW_COLORS, +) + +if TYPE_CHECKING: + from numpy import ndarray + from openbb_core.app.model.charts.charting_settings import ChartingSettings + from pandas import DataFrame, Series + + try: # noqa: SIM105 + # pylint: disable=W0611 # noqa: F401 + from darts import TimeSeries + except ImportError: + pass + +TimeSeriesT = TypeVar("TimeSeriesT", bound="TimeSeries") + +pio.default_renderers = "notebook" + + +class OpenBBFigure(go.Figure): + """Custom Figure class for OpenBB Terminal. + + Parameters + ---------- + fig : `go.Figure`, optional + Figure to copy, by default None + **kwargs + Keyword arguments to pass to `go.Figure.update_layout` + + Attributes + ---------- + has_subplots : `bool` + Whether the figure has subplots + + Class Methods + ------------- + create_subplots(rows: `int`, cols: `int`, **kwargs) -> `OpenBBFigure` + Creates a subplots figure + to_table(data: `DataFrame`, columnwidth: `list`, print_index: `bool`, ...) + Converts a DataFrame to a table figure + + Methods + ------- + add_hline_legend(y: `float`, name: `str`, line: `dict`, legendrank: `int`, **kwargs) + Adds a horizontal line with a legend label + add_vline_legend(x: `float`, name: `str`, line: `dict`, legendrank: `int`, **kwargs) + Adds a vertical line with a legend label + add_legend_label(trace: `str`, label: `str`, mode: `str`, marker: `dict`, **kwargs) + Adds a legend label + add_histplot(x: `list`, name: `str`, colors: `list`, bins: `int`, show_curve: `str`, ...) + Adds a histogram plot + horizontal_legend(x: `float`, y: `float`, xanchor: `str`, yanchor: `str`, ...) + Moves the legend to a horizontal position + to_subplot(subplot: `OpenBBFigure`, row: `int`, col: `int`, secondary_y: `bool`, ...) + Returns the figure as a subplot of another figure + """ + + plotlyjs_path: Path = PLOTLYJS_PATH + + def __init__(self, fig: Optional[go.Figure] = None, **kwargs) -> None: + """Initialize the OpenBBFigure.""" + # pylint: disable=import-outside-toplevel + from openbb_charting.core.chart_style import ChartStyle + + super().__init__() + if fig: + self.__dict__ = fig.__dict__ + + self._charting_settings: Optional[ChartingSettings] = kwargs.pop( + "charting_settings", None + ) + self._has_secondary_y = kwargs.pop("has_secondary_y", False) + self._subplots_kwargs: Dict[str, Any] = kwargs.pop("subplots_kwargs", {}) + self._multi_rows = kwargs.pop("multi_rows", False) + self._added_logscale = False + self._date_xaxs: dict = {} + self._margin_adjusted = False + self._feature_flags_applied = False + self._exported = False + self._cmd_xshift = 0 + self._bar_width = 0.15 + self._export_image: Optional[Union[Path, str]] = "" + self._subplot_xdates: Dict[int, Dict[int, List[Any]]] = {} + + if kwargs.pop("create_backend", False): + create_backend(self._charting_settings) + get_backend().start( + debug=getattr(self._charting_settings, "debug_mode", False) + ) + self._theme = ChartStyle( + getattr(self._charting_settings, "plt_style", ""), + getattr(self._charting_settings, "user_styles_directory", None), + ) + + if xaxis := kwargs.pop("xaxis", None): + self.update_xaxes(xaxis) + if yaxis := kwargs.pop("yaxis", None): + self.update_yaxes(yaxis) + + self.update_layout(**kwargs) + + self._backend = get_backend() + + if self._backend.isatty: + self.update_layout( + margin=dict(l=0, r=0, t=0, b=0, pad=0, autoexpand=True), + height=self._backend.HEIGHT, + width=self._backend.WIDTH, + ) + + @property + def theme(self): + """Theme property.""" + return self._theme + + @property + def subplots_kwargs(self): + """Get subplots kwargs property.""" + return self._subplots_kwargs + + @subplots_kwargs.setter + def subplots_kwargs(self, value): + """Get subplots kwargs setter.""" + self._subplots_kwargs = value + + @property + def has_subplots(self): + """Has subplots property.""" + return self._has_subplots() + + @property + def bar_width(self): + """Bar width property.""" + return self._bar_width + + @bar_width.setter + def bar_width(self, value): + """Bar width setter.""" + self._bar_width = value + + @property + def cmd_xshift(self): + """Command line x shift property.""" + return self._cmd_xshift + + @cmd_xshift.setter + def cmd_xshift(self, value): + """Command line x shift setter.""" + self._cmd_xshift = value + + @classmethod + def create_subplots( # pylint: disable=too-many-arguments + cls, + rows: int = 1, + cols: int = 1, + shared_xaxes: bool = True, + vertical_spacing: Optional[float] = None, + horizontal_spacing: Optional[float] = None, + subplot_titles: Optional[Union[List[str], tuple]] = None, + row_width: Optional[List[Union[float, int]]] = None, + specs: Optional[List[List[Optional[Dict[Any, Any]]]]] = None, + **kwargs, + ) -> "OpenBBFigure": + """Create a new Plotly figure with subplots. + + Parameters + ---------- + rows : `int`, optional + Number of rows, by default 1 + cols : `int`, optional + Number of columns, by default 1 + shared_xaxes : `bool`, optional + Whether to share x axes, by default True + vertical_spacing : `float`, optional + Vertical spacing between subplots, by default None + horizontal_spacing : `float`, optional + Horizontal spacing between subplots, by default None + subplot_titles : `Union[List[str], tuple]`, optional + Titles for each subplot, by default None + row_width : `List[Union[float, int]]`, optional + Width of each row, by default [1] + specs : `List[List[dict]]`, optional + Subplot specs, by default `[[{}] * cols] * rows` (all subplots are the same size) + """ + # We save the original kwargs to store them in the figure for later use + subplots_kwargs = dict( + rows=rows, + cols=cols, + shared_xaxes=shared_xaxes, + vertical_spacing=vertical_spacing, + horizontal_spacing=horizontal_spacing, + subplot_titles=subplot_titles, + row_width=row_width or [1] * rows, + specs=specs or [[{}] * cols] * rows, + **kwargs, + ) + + fig = make_subplots(**subplots_kwargs) + + kwargs = { + "multi_rows": rows > 1, + "subplots_kwargs": subplots_kwargs, + } + if specs and any( + spec.get("secondary_y", False) for row in specs for spec in row if spec + ): + kwargs["has_secondary_y"] = True + + return cls(fig, **kwargs) + + def add_trend( + self, + data: "DataFrame", + row: int = 1, + col: int = 1, + secondary_y: bool = False, + **kwargs, + ): + """Add a trend line to the figure. + + Parameters + ---------- + data : `DataFrame` + Data to plot + row : `int`, optional + Row number, by default 1 + col : `int`, optional + Column number, by default 1 + secondary_y : `bool`, optional + Whether to plot on secondary y axis, by default None + """ + try: + for column, color in zip( + ["OC_High_trend", "OC_Low_trend"], + [self._theme.up_color, self._theme.down_color], + ): + if column in data.columns: + name = column.split("_")[1].title() + trend = data.copy().dropna() + self.add_shape( + type="line", + name=f"{name} Trend", + x0=trend.index[0], + y0=trend[column].iloc[0], + x1=trend.index[-1], + y1=trend[column].iloc[-1], + line=dict(color=color, width=2), + row=row, + col=col, + secondary_y=secondary_y, + **kwargs, + ) + + except Exception as e: + raise ValueError(f"Error adding trend line: {e}") from e + + def add_histplot( # pylint: disable=too-many-arguments,too-many-locals + self, + dataset: Union["ndarray", "Series", TimeSeriesT], + name: Optional[Union[str, List[str]]] = None, + colors: Optional[List[str]] = None, + bins: Union[int, str] = 15, + curve: Literal["normal", "kde"] = "normal", + show_curve: bool = True, + show_rug: bool = True, + show_hist: bool = True, + forecast: bool = False, + row: int = 1, + col: int = 1, + ) -> None: + """Add a histogram with a curve and rug plot if desired. + + Parameters + ---------- + dataset : `Union[ndarray, Series, TimeSeriesT]` + Data to plot + name : `Optional[Union[str, List[str]]]`, optional + Name of the plot, by default None + colors : `Optional[List[str]]`, optional + Colors of the plot, by default None + bins : `Union[int, str]`, optional + Number of bins, by default 15 + curve : `Literal["normal", "kde"]`, optional + Type of curve to plot, by default "normal" + show_curve : `bool`, optional + Whether to show the curve, by default True + show_rug : `bool`, optional + Whether to show the rug plot, by default True + show_hist : `bool`, optional + Whether to show the histogram, by default True + forecast : `bool`, optional + Whether the data is a darts forecast TimeSeries, by default False + row : `int`, optional + Row of the subplot, by default 1 + col : `int`, optional + Column of the subplot, by default 1 + """ + # pylint: disable=import-outside-toplevel + from numpy import linspace, mean, ndarray, std + from pandas import Series + from scipy import stats + + callback = stats.norm if curve == "normal" else stats.gaussian_kde + + def _validate_x(data: Union[ndarray, Series, type[TimeSeriesT]]): + if forecast: + data = data.univariate_values() # type: ignore + if isinstance(data, Series): + data = data.to_numpy() + if isinstance(data, ndarray): + data = data.tolist() + if isinstance(data, list): + data = [data] + + return data + + valid_x = _validate_x(dataset) + + if isinstance(name, str): + name = [name] + + if isinstance(colors, str): + colors = [colors] + if not name: + name = [None] * len(valid_x) # type: ignore + if not colors: + colors = [None] * len(valid_x) # type: ignore + + max_y = 0 + for i, (x_i, name_i, color_i) in enumerate(zip(valid_x, name, colors)): + if not color_i: + color_i = ( # noqa: PLW2901 + self._theme.up_color if i % 2 == 0 else self._theme.down_color + ) + + res_mean, res_std = mean(x_i), std(x_i) + res_min, res_max = min(x_i), max(x_i) + x = linspace(res_min, res_max, 100) + if show_hist: + if forecast: + components = list(dataset.components[:4]) # type: ignore + values = ( + dataset[components].all_values(copy=False).flatten(order="F") # type: ignore + ) + n_components = len(components) + n_entries = len(values) // n_components + for i2, label in zip(range(n_components), components): + self.add_histogram( + x=values[ + i2 * n_entries : (i2 + 1) * n_entries # noqa: E203 + ], # noqa: E203 + name=label, + marker_color=color_i, + nbinsx=bins, + opacity=0.7, + row=row, + col=col, + ) + else: + self.add_histogram( + x=x_i, + name=name_i, + marker_color=color_i, + nbinsx=bins, + histnorm="probability density", + histfunc="sum", + opacity=0.7, + row=row, + col=col, + ) + + if show_rug: + self.add_scatter( + x=x_i, + y=[0.00002] * len(x_i), + name=name_i if len(name) < 2 else name[1], + mode="markers", + marker=dict( + color=self._theme.down_color, + symbol="line-ns-open", + size=10, + ), + row=row, + col=col, + ) + if show_curve: + # type: ignore + if curve == "kde": + curve_x = [None] * len(valid_x) + curve_y = [None] * len(valid_x) + # pylint: disable=consider-using-enumerate + for index in range(len(valid_x)): + curve_x[index] = [ # type: ignore + res_min + xx * (res_max - res_min) / 500 + for xx in range(500) + ] + curve_y[index] = stats.gaussian_kde(valid_x[index])( + curve_x[index] + ) + for index in range(len(valid_x)): + self.add_scatter( + x=curve_x[index], # type: ignore + y=curve_y[index], # type: ignore + name=name_i, + mode="lines", + showlegend=False, + marker=dict(color=color_i), + row=row, + col=col, + ) + max_y = max(max_y, max(curve_y[index]) * 1.2) # type: ignore + + else: + y = ( + callback(res_mean, res_std).pdf(x) + * len(valid_x[0]) + * (res_max - res_min) + / bins + ) + + self.add_scatter( + x=x, + y=y, + name=name_i, + mode="lines", + marker=dict(color=color_i), + showlegend=False, + row=row, + col=col, + ) + + max_y = max(max_y, y * 2) + + self.update_yaxes( + position=0.0, + range=[0, max_y], + row=row, + col=col, + automargin=False, + autorange=False, + ) + + self.update_layout(barmode="overlay", bargap=0.01, bargroupgap=0) + + def set_title( + self, title: str, wrap: bool = False, wrap_width: int = 80, **kwargs + ) -> "OpenBBFigure": + """Set the main title of the figure. + + Parameters + ---------- + title : `str` + Title of the figure + wrap : `bool` + If True, the title will be wrapped according to the wrap_width parameter + wrap_width : `int` + Width in characters to wrap the title if wrap is True, default is 80 + """ + if wrap: + title = "
".join(textwrap.wrap(title, width=wrap_width)) + + if kwargs.get("row") is not None and kwargs.get("col") is not None: + self.add_annotation( + text=title, + xref="x domain", + yref="y domain", + x=0.5, + y=1.0, + xanchor="center", + yanchor="bottom", + **kwargs, + ) + return self + + self.update_layout(title=dict(text=title, **kwargs)) + return self + + def set_xaxis_title( + self, + title: str, + row: Optional[int] = None, + col: Optional[int] = None, + **kwargs, + ) -> "OpenBBFigure": + """Set the x axis title of the figure or subplot (if row and col are specified). + + Parameters + ---------- + title : `str` + Title of the x axis + row : `int`, optional + Row number, by default None + col : `int`, optional + Column number, by default None + """ + self.update_xaxes(title=title, row=row, col=col, **kwargs) + return self + + def set_yaxis_title( + self, title: str, row: Optional[int] = None, col: Optional[int] = None, **kwargs + ) -> "OpenBBFigure": + """Set the y axis title of the figure or subplot (if row and col are specified). + + Parameters + ---------- + title : `str` + Title of the x axis + row : `int`, optional + Row number, by default None + col : `int`, optional + Column number, by default None + """ + self.update_yaxes(title=title, row=row, col=col, **kwargs) + return self + + def add_hline_legend( + self, + y: float, + name: str, + line: Optional[dict] = None, + legendrank: Optional[int] = None, + **kwargs, + ) -> None: + """Add a horizontal line with a legend label. + + Parameters + ---------- + y : `float` + y value of the line + name : `str` + Name of the to display in the legend + line : `dict` + Line style + legendrank : `int`, optional + Legend rank, by default None (e.g. 1 is above 2) + """ + if line is None: + line = {} + + self.add_hline( + y, + line=line, + ) + self.add_legend_label( + label=name, + mode="lines", + line_dash=line.get("dash", "solid"), + marker=dict(color=line.get("color", self._theme.line_color)), + legendrank=legendrank, + **kwargs, + ) + + def add_vline_legend( + self, + x: float, + name: str, + line: Optional[dict] = None, + legendrank: Optional[int] = None, + **kwargs, + ) -> None: + """Add a vertical line with a legend label. + + Parameters + ---------- + x : `float` + x value of the line + name : `str` + Name of the to display in the legend + line : `dict` + Line style + legendrank : `int`, optional + Legend rank, by default None (e.g. 1 is above 2) + """ + if line is None: + line = {} + + self.add_vline( + x, + line=line, + ) + self.add_legend_label( + label=name, + mode="lines", + line_dash=line.get("dash", "solid"), + marker=dict(color=line.get("color", self._theme.line_color)), + legendrank=legendrank, + **kwargs, + ) + + def horizontal_legend( # noqa: PLR0913 + self, + x: float = 1, + y: float = 1.02, + xanchor: str = "right", + yanchor: str = "bottom", + orientation: str = "h", + **kwargs, + ) -> None: + """Set the legend to be horizontal. + + Parameters + ---------- + x : `float`, optional + The x position of the legend, by default 1 + y : `float`, optional + The y position of the legend, by default 1.02 + xanchor : `str`, optional + The x anchor of the legend, by default "right" + yanchor : `str`, optional + The y anchor of the legend, by default "bottom" + orientation : `str`, optional + The orientation of the legend, by default "h" + """ + self.update_layout( + legend=dict( + x=x, + y=y, + xanchor=xanchor, + yanchor=yanchor, + orientation=orientation, + **kwargs, + ) + ) + + @staticmethod + def chart_volume_scaling( + df_volume: "DataFrame", volume_ticks_x: int = 7 + ) -> Dict[str, list]: + """Take df_volume and returns volume_ticks, tickvals for chart volume scaling. + + Parameters + ---------- + df_volume : DataFrame + Dataframe of volume (e.g. df_volume = df["volume"]) + volume_ticks_x : int, optional + Number to multiply volume, by default 7 + + Returns + ------- + Dict[str, list] + {"range": volume_range, "ticks": tickvals} + """ + # pylint: disable=import-outside-toplevel + from pandas import Series, to_numeric + + df_volume = df_volume.apply(lambda x: f"{x:.1f}") + df_volume = to_numeric(df_volume.astype(float)) + + if isinstance(df_volume, Series): + df_volume = df_volume.to_frame() + + volume_ticks = int(df_volume.max().max()) + round_digits = -3 + first_val = round(volume_ticks * 0.20, round_digits) + + for x, y in zip([2, 5, 6, 7, 8, 9, 10], [1, 4, 5, 6, 7, 8, 9]): + if len(str(volume_ticks)) > x: + round_digits = -y + first_val = round(volume_ticks * 0.20, round_digits) + + tickvals = [ + floor(first_val), + floor(first_val * 2), + floor(first_val * 3), + floor(first_val * 4), + ] + volume_range = [0, floor(volume_ticks * volume_ticks_x)] + + return {"range": volume_range, "ticks": tickvals} + + def add_inchart_volume( # noqa: PLR0913 + self, + df_stock: "DataFrame", + close_col: Optional[str] = "close", + volume_col: Optional[str] = "volume", + row: Optional[int] = 1, + col: Optional[int] = 1, + volume_ticks_x: int = 7, + ) -> None: + """Add in-chart volume to a subplot. + + Parameters + ---------- + df_stock : `DataFrame` + Dataframe of the stock + close_col : `str`, optional + Name of the close column, by default "close" + volume_col : `str`, optional + Name of the volume column, by default "volume" + row : `int`, optional + Row number, by default 2 + col : `int`, optional + Column number, by default 1 + volume_ticks_x : int, optional + Number to multiply volume, by default 7 + """ + # pylint: disable=import-outside-toplevel + from numpy import where + + colors = where( + df_stock.open < df_stock[close_col], + self._theme.up_color, + self._theme.down_color, + ) + vol_scale = self.chart_volume_scaling(df_stock[volume_col], volume_ticks_x) + self.add_bar( + x=df_stock.index, + y=df_stock[volume_col], + name="Volume", + marker_color=colors, + yaxis="y2", + row=row, + col=col, + opacity=0.5, + secondary_y=True, + showlegend=False, + hovertemplate="%{y}", + ) + ticksize = 13 - (self.subplots_kwargs["rows"] // 2) + self.update_layout( + yaxis2=dict( + fixedrange=False, + side="left", + nticks=8, + autorange=False, + range=vol_scale["range"], + tickvals=vol_scale["ticks"], + showgrid=False, + showline=False, + zeroline=False, + tickfont=dict(size=ticksize), + overlaying="y", + ), + yaxis=dict( + autorange=True, + automargin=True, + side="right", + fixedrange=False, + anchor="x", + layer="above traces", + ), + ) + + def add_legend_label( # noqa: PLR0913 + self, + trace: Optional[str] = None, + label: Optional[str] = None, + mode: Optional[str] = None, + marker: Optional[dict] = None, + line_dash: Optional[str] = None, + legendrank: Optional[int] = None, + **kwargs, + ) -> None: + """Add a legend label. + + Parameters + ---------- + trace : `str`, optional + The name of the trace to use as a template, by default None + label : `str`, optional + The label to use, by default None (uses the trace name if trace is specified) + If trace is not specified, label must be specified + mode : `str`, optional + The mode to use, by default "lines" (uses the trace mode if trace is specified) + marker : `dict`, optional + The marker to use, by default dict() (uses the trace marker if trace is specified) + line_dash : `str`, optional + The line dash to use, by default "solid" (uses the trace line dash if trace is specified) + legendrank : `int`, optional + The legend rank, by default None (e.g. 1 is above 2) + + Raises + ------ + ValueError + If trace is not found + ValueError + If label is not specified and trace is not specified + """ + if trace: + for trace_ in self.data: + if trace_.name == trace: + for arg, default in zip( + [label, mode, marker, line_dash], + [trace, trace_.mode, trace_.marker, trace_.line_dash], + ): + if not arg and default: + arg = default # noqa: PLW2901 + + kwargs.update(dict(yaxis=trace_.yaxis)) + break + else: + raise ValueError(f"Trace '{trace}' not found") + + if not label: + raise ValueError("Label must be specified") + + self.add_scatter( + x=[None], + y=[None], + mode=mode or "lines", + name=label, + marker=marker or dict(), + line_dash=line_dash or "solid", + legendrank=legendrank, + **kwargs, + ) + + def show( # noqa: PLR0915 + self, + *args, + external: bool = False, + export_image: Optional[Union[Path, str]] = "", + **kwargs, + ) -> "OpenBBFigure": + """Show the figure. + + Parameters + ---------- + external : `bool`, optional + Whether to return the figure object instead of showing it, by default False + export_image : `Union[Path, str]`, optional + The path to export the figure image to, by default "" + cmd_xshift : `int`, optional + The x shift of the command source annotation, by default 0 + bar_width : `float`, optional + The width of the bars, by default 0.0001 + date_xaxis : `bool`, optional + Whether to check if the xaxis is a date axis, by default True + """ + self.cmd_xshift = kwargs.pop("cmd_xshift", self.cmd_xshift) + self.bar_width = kwargs.pop("bar_width", self.bar_width) + self._export_image = export_image + + if export_image and not self._backend.isatty: + if isinstance(export_image, str): + export_image = Path(export_image).resolve() + export_image.touch() + + if kwargs.pop("margin", True): + self._adjust_margins() + + self._apply_feature_flags() + if kwargs.pop("date_xaxis", True): + self.add_rangebreaks() + self._xaxis_tickformatstops() + + self.update_traces(marker_line_width=self.bar_width, selector=dict(type="bar")) + self.update_traces( + selector=dict(type="scatter", hovertemplate=None), + hovertemplate="%{y}", + ) + + # Set modebar style + if self._backend.isatty: + self.update_layout( # type: ignore + newshape_line_color=( + "gold" if self._theme.mapbox_style == "dark" else "#0d0887" + ), + modebar=dict( + orientation="v", + bgcolor="#2A2A2A" if self._theme.mapbox_style == "dark" else "gray", + color="#FFFFFF" if self._theme.mapbox_style == "dark" else "black", + activecolor=( + "#d1030d" if self._theme.mapbox_style == "dark" else "blue" + ), + ), + spikedistance=2, + hoverdistance=2, + ) + + if external or self._exported: + return self # type: ignore + + if getattr(self._charting_settings, "headless", False): + return self.to_json() + + kwargs.update(config=dict(scrollZoom=True, displaylogo=False)) + if self._backend.isatty: + try: + # We check if we need to export the image + # This is done to avoid opening after exporting + if export_image: + self._exported = True + + # We send the figure to the backend to be displayed + return self._backend.send_figure(fig=self, export_image=export_image) + except Exception as e: + # If the backend fails, we just show the figure normally + # This is a very rare case, but it's better to have a fallback + + warn(f"Failed to show figure with backend. {e}") + + # We check if any figures were initialized before the backend failed + # If so, we show them with the default plotly backend + queue = self._backend.get_pending() + for pending in queue: + data = json.loads(pending).get("json_data", {}) + if data.get("layout", {}): + pio.show(data, *args, **kwargs) + + return pio.show(self, *args, **kwargs) + + def _xaxis_tickformatstops(self) -> None: + """Set the datetickformatstops for the xaxis if the x data is datetime.""" + if (dateindex := self.get_dateindex()) is None or list( + self.select_xaxes(lambda x: hasattr(x, "tickformat") and x.tickformat) + ): + return + + tickformatstops = [ + dict(dtickrange=[None, 86_400_000], value="%I:%M%p\n%b,%d"), + dict(dtickrange=[86_400_000, 604_800_000], value="%Y-%m-%d"), + ] + xhoverformat = "%I:%M%p %Y-%m-%d" + + # We check if daily data if the first and second time are the same + # since daily data will have the same time (2021-01-01 00:00:00) + if ( + not hasattr(dateindex[-1], "time") + or dateindex[-1].time() == dateindex[-2].time() + ): + xhoverformat = "%Y-%m-%d" + tickformatstops = [dict(dtickrange=[None, 604_800_000], value="%Y-%m-%d")] + + for entry in self._date_xaxs.values(): + self.update_xaxes( + tickformatstops=[ + *tickformatstops, + dict(dtickrange=[604_800_000, "M1"], value="%Y-%m-%d"), + dict(dtickrange=["M1", None], value="%Y-%m-%d"), + ], + type="date", + row=entry["row"], + col=entry["col"], + tick0=0.5, + ) + self.update_traces( + xhoverformat=xhoverformat, selector=dict(name=entry["name"]) + ) + + def get_subplots_dict(self) -> Dict[str, Dict[str, List[Any]]]: + """Return the subplots dict. + + Returns + ------- + `dict` + The subplots dict + """ + subplots: Dict[str, Dict[str, List[Any]]] = {} + + if not self.has_subplots: + return subplots + + grid_ref = self._validate_get_grid_ref() # pylint: disable=protected-access + for r, plot_row in enumerate(grid_ref): + for c, plot_refs in enumerate(plot_row): + if not plot_refs: + continue + for subplot_ref in plot_refs: + if subplot_ref.subplot_type == "xy": + xaxis, yaxis = subplot_ref.layout_keys + xref = xaxis.replace("axis", "") + yref = yaxis.replace("axis", "") + row = r + 1 + col = c + 1 + subplots.setdefault(xref, {}).setdefault(yref, []).append( + (row, col) + ) + + return subplots + + def get_dateindex(self) -> Optional[List[datetime]]: + """Return the dateindex of the figure. + + Returns + ------- + `list` + The dateindex + """ + # pylint: disable=import-outside-toplevel + from numpy import datetime64 + from pandas import DatetimeIndex, to_datetime + + output: Optional[List[datetime]] = None + subplots = self.get_subplots_dict() + + try: + false_y = list(self.select_traces(secondary_y=False)) + true_y = list(self.select_traces(secondary_y=True)) + except Exception: + false_y = [] + true_y = [] + + for trace in self.select_traces(): + if not hasattr(trace, "xaxis"): + continue + xref, yref = trace.xaxis, trace.yaxis + row, col = subplots.get(xref, {}).get(yref, [(None, None)])[0] + + if trace.x is not None and len(trace.x) > 5: + for x in trace.x[:2]: + if isinstance(x, (datetime, datetime64, DatetimeIndex)): + output = trace.x + name = trace.name if hasattr(trace, "name") else f"{trace}" + + secondary_y: Optional[bool] = trace in true_y + if trace not in (false_y + true_y): + secondary_y = None + + self._date_xaxs[trace.xaxis] = { + "yaxis": trace.yaxis, + "name": name, + "row": row, + "col": col, + "secondary_y": secondary_y, + } + self._subplot_xdates.setdefault(row, {}).setdefault( + col, [] + ).append(trace.x) + + # We convert the dateindex to a list of datetime objects if it's a numpy array + if output is not None and isinstance(output[0], datetime64): + output = ( + to_datetime(output).to_pydatetime().astype("datetime64[ms]").tolist() + ) + + return output + + def hide_date_gaps( + self, + df_data: "DataFrame", + row: Optional[int] = None, + col: Optional[int] = None, + ) -> None: + """Add rangebreaks to hide datetime gaps on the xaxis. + + Parameters + ---------- + df_data : `DataFrame` + The dataframe with the data. + row : `int`, optional + The row of the subplot to hide the gaps, by default None + col : `int`, optional + The column of the subplot to hide the gaps, by default None + """ + # pylint: disable=import-outside-toplevel + from pandas import date_range, to_datetime + + # We get the min and max dates + dt_start, dt_end = df_data.index.min(), df_data.index.max() + rangebreaks: List[Dict[str, Any]] = [] + + # if weekly or monthly data, we don't need to hide gaps + # this prevents distortions in the plot + check_freq = df_data.index.to_series().diff(-5).dt.days.abs().mode().iloc[0] + if check_freq > 7: + return + + # We get the missing days + is_daily = df_data.index[-1].time() == df_data.index[-2].time() + dt_days = date_range(start=dt_start, end=dt_end, normalize=True) + + # We get the dates that are missing + dt_missing_days = list( + set(dt_days.strftime("%Y-%m-%d")) - set(df_data.index.strftime("%Y-%m-%d")) + ) + dt_missing_days = to_datetime(dt_missing_days) + + if len(dt_missing_days) < 2_000: + rangebreaks = [dict(values=dt_missing_days)] + + df_data = df_data.sort_index() + # We add a rangebreak if the first and second time are not the same + # since daily data will have the same time (00:00) + if not is_daily: + for i in range(len(df_data) - 1): + if df_data.index[i + 1] - df_data.index[i] > timedelta(hours=2): + rangebreaks.insert( + 0, + dict( + bounds=[ + df_data.index[i] + + timedelta(minutes=60 - df_data.index[i].minute), + df_data.index[i + 1], + ] + ), + ) + + self.update_xaxes(rangebreaks=rangebreaks, row=row, col=col) + + def add_rangebreaks(self) -> None: + """Add rangebreaks to hide datetime gaps on the xaxis.""" + # pylint: disable=import-outside-toplevel + from numpy import concatenate + from pandas import DataFrame, to_datetime + + if self.get_dateindex() is None: + return + + for row, row_dict in self._subplot_xdates.items(): + for col, values in row_dict.items(): + try: + x_values = to_datetime(concatenate(values)).to_pydatetime() + self.hide_date_gaps( + DataFrame(index=x_values.tolist()), + row=row, + col=col, + ) + except ValueError: + continue + + def to_subplot( + self, + subplot: "OpenBBFigure", + row: int, + col: int, + secondary_y: bool = False, + **kwargs, + ) -> "OpenBBFigure": + """Return the figure as a subplot of another figure. + + Parameters + ---------- + subplot : `plotly.graph_objects.Figure` + Figure object created with `OpenBBFigure.create_subplots` / `plotly.subplots.make_subplots` + row : `int` + Row number + col : `int` + Column number + secondary_y : `bool`, optional + Whether to use the secondary y axis, by default False + + Returns + ------- + `plotly.graph_objects.Figure` + The subplot with the figure added + """ + for trace in self.data: + if kwargs: + trace.update(**kwargs) + + subplot.add_trace(trace, row=row, col=col, secondary_y=secondary_y) + subplot.set_xaxis_title(self.layout.xaxis.title.text, row=row, col=col) + subplot.set_yaxis_title(self.layout.yaxis.title.text, row=row, col=col) + + return subplot + + def to_html(self, *args, **kwargs) -> str: + """Return the figure as HTML.""" + self.update_traces(marker_line_width=0.0001, selector=dict(type="bar")) + kwargs.update( + dict( + config={ + "scrollZoom": True, + "displaylogo": False, + "editable": True, + "displayModeBar": "hover", + }, + include_plotlyjs=kwargs.pop("include_plotlyjs", False), + full_html=False, + ) + ) + self._apply_feature_flags() + self._xaxis_tickformatstops() + + if not self._backend.isatty and self.data[0].type != "table": + for key, max_val in zip(["l", "r", "b", "t"], [60, 60, 80, 40]): + if key in self.layout.margin and ( + self.layout.margin[key] is None + or (self.layout.margin[key] > max_val) + ): + self.layout.margin[key] = max_val + + orientation = "v" if self.layout.legend.orientation is None else "h" + + for annotation in self.select_annotations( + selector=dict(x=0, xanchor="right") + ): + annotation.font.size = ( + annotation.font.size - 1.8 if annotation.font.size else 10 + ) + + for trace in self.select_traces( + lambda trace: hasattr(trace, "legend") and trace.legend is not None + ): + if trace.legend in self.layout: + self.layout[trace.legend].font.size = 12 + + self.update_layout( + legend=dict(orientation=orientation, font=dict(size=12)), + font=dict(size=14), + ) + self.update_xaxes(tickfont=dict(size=13)) + self.update_yaxes(tickfont=dict(size=13)) + + return super().to_html(*args, **kwargs) + + def to_plotly_json(self) -> dict: + """Serialize, then deserialize, the figure to JSON. Returns as a Python dictionary.""" + fig = json.loads(self.to_json()) + + fig.update( + { + "config": { + "displayModeBar": "hover", + "displaylogo": False, + "editable": True, + "scrollZoom": True, + } + } + ) + return fig + + @staticmethod + def row_colors(data: "DataFrame") -> Optional[List[str]]: + """Return the row colors of the table. + + Parameters + ---------- + data : `DataFrame` + The dataframe + + Returns + ------- + `list` + The list of colors + """ + row_count = len(data) + # we determine how many rows in `data` and then create a list with alternating + # row colors + row_odd_count = floor(row_count / 2) + row_count % 2 + row_even_count = floor(row_count / 2) + odd_list = [PLT_TBL_ROW_COLORS[0]] * row_odd_count + even_list = [PLT_TBL_ROW_COLORS[1]] * row_even_count + color_list = [x for y in zip(odd_list, even_list) for x in y] + if row_odd_count > row_even_count: + color_list.append(PLT_TBL_ROW_COLORS[0]) + + return color_list + + @staticmethod + def _tbl_values(data: "DataFrame", print_index: bool) -> Tuple[List[str], List]: + """Return the values of the table. + + Parameters + ---------- + data : `DataFrame` + The dataframe to convert + print_index : `bool` + Whether to print the index + + Returns + ------- + `tuple` + The header values and the cell values + """ + if print_index: + header_values = list( + [data.index.name if data.index.name is not None else "", *data.columns] + ) + cell_values = [data.index, *[data[col] for col in data]] + + else: + header_values = data.columns.to_list() + cell_values = [data[col] for col in data] + + header_values = [f"{x}" for x in header_values] + + return header_values, cell_values + + @classmethod + def to_table( + cls, + data: "DataFrame", + columnwidth: Optional[List[Union[int, float]]] = None, + print_index: bool = True, + **kwargs, + ) -> "OpenBBFigure": + """Convert a dataframe to a table figure. + + Parameters + ---------- + data : `DataFrame` + The dataframe to convert + columnwidth : `list`, optional + The width of each column, by default None (auto) + print_index : `bool`, optional + Whether to print the index, by default True + height : `int`, optional + The height of the table, by default len(data.index) * 28 + 25 + width : `int`, optional + The width of the table, by default sum(columnwidth) * 8.7 + + Returns + ------- + `plotly.graph_objects.Figure` + The figure as a table + """ + if not columnwidth: + # we get the length of each column using the max length of the column + # name and the max length of the column values as the column width + columnwidth = [ + max(len(str(data[col].name)), data[col].astype(str).str.len().max()) + for col in data.columns + ] + # we add the length of the index column if we are printing the index + if print_index: + columnwidth.insert( + 0, + max( + len(str(data.index.name)), + data.index.astype(str).str.len().max(), + ), + ) + + # we add a percentage of max to the min column width + columnwidth = [ + int(x + (max(columnwidth) - min(columnwidth)) * 0.2) + for x in columnwidth + ] + + header_values, cell_values = cls._tbl_values(data, print_index) + + if (height := kwargs.get("height")) and height < len(data.index) * 28 + 25: + kwargs.pop("height") + if (width := kwargs.get("width")) and width < sum(columnwidth) * 8.7: + kwargs.pop("width") + + height = kwargs.pop("height", len(data.index) * 28 + 25) + width = kwargs.pop("width", sum(columnwidth) * 8.7) + + fig = OpenBBFigure() + fig.add_table( + header=dict(values=header_values), + cells=dict( + values=cell_values, + align="left", + height=25, + ), + columnwidth=columnwidth, + **kwargs, + ) + fig.update_layout( + height=height, + width=width, + template="openbb_tables", + margin=dict(l=0, r=0, b=0, t=0, pad=0), + font=dict(size=14), + ) + + return fig + + def _adjust_margins(self) -> None: + """Adjust the margins of the figure.""" + if self._margin_adjusted: + return + + margin_add = ( + dict(l=80, r=60, b=80, t=40, pad=0) + if not self._has_secondary_y or not self.has_subplots + else dict(l=60, r=50, b=85, t=40, pad=0) + ) + + # We adjust margins + if self._backend.isatty: + for key in ["l", "r", "b", "t", "pad"]: + if key in self.layout.margin and self.layout.margin[key] is not None: + self.layout.margin[key] += margin_add.get(key, 0) + else: + self.layout.margin[key] = margin_add.get(key, 0) + + if not self._backend.isatty: + org_margin = self.layout.margin + margin = dict(l=40, r=60, b=80, t=50) + for key, max_val in zip(["l", "r", "b", "t"], [60, 50, 80, 50]): + org = org_margin[key] or 0 + if (org + margin[key]) > max_val: + self.layout.margin[key] = max_val + else: + self.layout.margin[key] = org + margin[key] + + self._margin_adjusted = True + + # pylint: disable=import-outside-toplevel + def _add_cmd_source(self, command_location: Optional[str] = "") -> None: + """Set the watermark for OpenBB Terminal.""" + if command_location: + yaxis = self.layout.yaxis + yaxis2 = self.layout.yaxis2 if hasattr(self.layout, "yaxis2") else None + xshift = -70 if yaxis.side == "right" else -80 + + if self.layout.margin["l"] > 100: + xshift -= 50 if self._added_logscale else 40 + + if ( + yaxis2 + and (yaxis.title.text and yaxis2.title.text) + and (yaxis.side == "left" or yaxis2.side == "left") + ): + self.layout.margin["l"] += 20 + + if (yaxis2 and yaxis2.side == "left") or yaxis.side == "left": + title = ( + yaxis.title.text + if not yaxis2 or yaxis2.side != "left" + else yaxis2.title.text + ) + xshift = -110 if not title else -135 + self.layout.margin["l"] += 60 + + self.add_annotation( + x=0, + y=0.5, + yref="paper", + xref="paper", + text=command_location, + textangle=-90, + font_size=24, + font_color="gray" if self._theme.mapbox_style == "dark" else "black", + opacity=0.5, + yanchor="middle", + xanchor="left", + xshift=xshift + self.cmd_xshift, + ) + + # pylint: disable=import-outside-toplevel + def _apply_feature_flags(self) -> None: + """Apply watermark and command source annotations.""" + if self._feature_flags_applied: + return + + self._add_cmd_source() + + self._feature_flags_applied = True + + def add_logscale_menus(self, yaxis: str = "yaxis") -> None: + """Set the menus for the figure.""" + self._added_logscale = True + bg_color = "#000000" if self._theme.mapbox_style == "dark" else "#FFFFFF" # type: ignore + font_color = "#FFFFFF" if self._theme.mapbox_style == "dark" else "#000000" # type: ignore + self.update_layout( + xaxis=dict( + rangeslider=dict(visible=False), + rangeselector=dict( + bgcolor=bg_color, + font=dict(color=font_color), + buttons=list( + [ + dict( + count=1, + label="1M", + step="month", + stepmode="backward", + ), + dict( + count=3, + label="3M", + step="month", + stepmode="backward", + ), + dict(count=1, label="YTD", step="year", stepmode="todate"), + dict( + count=1, + label="1y", + step="year", + stepmode="backward", + ), + dict(step="all"), + ] + ), + ), + ), + bargap=0, + bargroupgap=0, + ) + + self.update_layout( + updatemenus=[ + dict( + bgcolor=bg_color, + font=dict(color=font_color, size=14), + buttons=[ + dict( + label="linear ", + method="relayout", + args=[{f"{yaxis}.type": "linear"}], + ), + dict( + label="log", + method="relayout", + args=[{f"{yaxis}.type": "log"}], + ), + ], + y=1.07, + x=-0.01, + ) + ], + ) + + def add_corr_plot( # pylint: disable=too-many-arguments + self, + series: "DataFrame", + max_lag: int = 20, + m: Optional[int] = None, + alpha: Optional[float] = 0.05, + marker: Optional[dict] = None, + row: Optional[int] = None, + col: Optional[int] = None, + pacf: bool = False, + **kwargs, + ) -> None: + """Add a correlation plot to a figure object. + + Parameters + ---------- + fig : OpenBBFigure + Figure object to add plot to + series : DataFrame + Dataframe to look at + max_lag : int, optional + Number of lags to look at, by default 15 + m: Optional[int] + Optionally, a time lag to highlight on the plot. Default is none. + alpha: Optional[float] + Optionally, a significance level to highlight on the plot. Default is 0.05. + row : int, optional + Row to add plot to, by default None + col : int, optional + Column to add plot to, by default None + pacf : bool, optional + Flag to indicate whether to use partial autocorrelation or not, by default False + """ + # pylint: disable=import-outside-toplevel + import statsmodels.api as sm # noqa + from numpy import arange, asanyarray, ceil, log10, isscalar # noqa + + mode = "markers+lines" if marker else "lines" + line = kwargs.pop("line", None) + + def _prepare_data_corr_plot(x, lags): + zero = True + irregular = False + if lags is None: + # GH 4663 - use a sensible default value + nobs = x.shape[0] + lim = min(int(ceil(10 * log10(nobs))), nobs - 1) + lags = arange(not zero, lim + 1) + elif isscalar(lags): + lags = arange( + not zero, int(lags) + 1 # type: ignore + ) # +1 for zero lag + else: + irregular = True + lags = asanyarray(lags).astype(int) + nlags = lags.max(0) + + return lags, nlags, irregular + + lags, nlags, irregular = _prepare_data_corr_plot(series, max_lag) + + callback = sm.tsa.stattools.pacf if pacf else sm.tsa.stattools.acf + if not pacf: + kwargs.update(dict(fft=False)) + + acf_x = callback( + series, + nlags=nlags, + alpha=alpha, + **kwargs, + ) + + acf_x, confint = acf_x[:2] if not pacf else acf_x + + if irregular: + acf_x = acf_x[lags] + + try: + confint = confint[lags] + if lags[0] == 0: + lags = lags[1:] + confint = confint[1:] + acf_x = acf_x[1:] + lags = lags.astype(float) + lags[0] -= 0.5 + lags[-1] += 0.5 + + upp_band = confint[:, 0] - acf_x + low_band = confint[:, 1] - acf_x + + # pylint: disable=C0200 + for x in range(len(acf_x)): + self.add_scatter( + x=(x, x), + y=(0, acf_x[x]), + mode=mode, + marker=marker, + line=line, + line_width=(2 if m is not None and x == m else 1), + row=row, + col=col, + ) + + self.add_scatter( + x=lags, + y=upp_band, + mode="lines", + line_color="rgba(0, 0, 0, 0)", + opacity=0, + row=row, + col=col, + ) + + self.add_scatter( + x=lags, + y=low_band, + mode="lines", + fillcolor="rgba(255, 217, 0, 0.30)", + fill="tonexty", + line_color="rgba(0, 0, 0, 0.0)", + opacity=0, + row=row, + col=col, + ) + self.add_scatter( + x=[0, max_lag + 1], + y=[0, 0], + mode="lines", + line_color="white", + row=row, + col=col, + ) + self.update_traces(showlegend=False) + + except ValueError: + pass diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly.html b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly.html new file mode 100644 index 0000000000000000000000000000000000000000..3a21066d56cfb214e72c01a79219c3d0eea3f7f6 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly.html @@ -0,0 +1,4028 @@ + + + + + + + OpenBB Interactive Charts + + + + + +
+ + diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/__init__.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..4170e99482b00529bd7a17898325733ffb814755 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/__init__.py @@ -0,0 +1 @@ +"""Plotly TA core package.""" diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/base.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/base.py new file mode 100644 index 0000000000000000000000000000000000000000..fbba548de80ae5f39fac5e570259fe6127cbbef1 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/base.py @@ -0,0 +1,220 @@ +"""Base class for charting plugins.""" + +from typing import ( + TYPE_CHECKING, + Any, + Callable, + Dict, + Iterator, + List, + Optional, + Type, + Union, +) + +from .data_classes import ChartIndicators, TAIndicator + +if TYPE_CHECKING: + import pandas as pd + + +def columns_regex(df_ta: "pd.DataFrame", name: str) -> List[str]: + """Return columns that match regex name.""" + column_name = df_ta.filter(regex=rf"{name}(?=[^\d]|$)").columns.tolist() + + return column_name + + +class Indicator: + """Class for technical indicator.""" + + def __init__( + self, + func: Callable, + name: str = "", + **attrs: Any, + ) -> None: + """Initialize the indicator.""" + self.func = func + self.name = name + self.attrs = attrs + + def __call__(self, *args: Any, **kwargs: Any) -> Any: + """Call the indicator function.""" + return self.func(*args, **kwargs) + + +class PluginMeta(type): + """Metaclass for all Plotly plugins.""" + + __indicators__: List[Indicator] = [] + __static_methods__: list = [] + __ma_mode__: List[str] = [] + __inchart__: List[str] = [] + __subplots__: List[str] = [] + + def __new__(mcs: Type["PluginMeta"], *args: Any, **kwargs: Any) -> "PluginMeta": + """Create a new instance of the class.""" + name, bases, attrs = args + indicators: Dict[str, Indicator] = {} + cls_attrs: Dict[str, list] = { + "__ma_mode__": [], + "__inchart__": [], + "__subplots__": [], + } + new_cls = super().__new__(mcs, name, bases, attrs, **kwargs) + for base in reversed(new_cls.__mro__): + for elem, value in base.__dict__.items(): + if elem in indicators: + del indicators[elem] + + is_static_method = isinstance(value, staticmethod) + if is_static_method: + value = value.__func__ # noqa: PLW2901 + if isinstance(value, Indicator): + if is_static_method: + raise TypeError( + f"Indicator {value.name} can't be a static method" + ) + indicators[value.name] = value + elif is_static_method and elem not in new_cls.__static_methods__: + new_cls.__static_methods__.append(elem) + + if elem in ["__ma_mode__", "__inchart__", "__subplots__"]: + cls_attrs[elem].extend(value) + + new_cls.__indicators__ = list(indicators.values()) + new_cls.__static_methods__ = list(set(new_cls.__static_methods__)) + new_cls.__ma_mode__ = list(set(cls_attrs["__ma_mode__"])) + new_cls.__inchart__ = list(set(cls_attrs["__inchart__"])) + new_cls.__subplots__ = list(set(cls_attrs["__subplots__"])) + + return new_cls + + def __iter__(cls: Type["PluginMeta"]) -> Iterator[Indicator]: # type: ignore + """Iterate over the indicators.""" + return iter(cls.__indicators__) + + # pylint: disable=unused-argument + def __init__(cls, *args: Any, **kwargs: Any) -> None: + """Initialize the class.""" + super().__init__(*args, **kwargs) + + +class PltTA(metaclass=PluginMeta): + """The base class that all Plotly plugins must inherit from.""" + + indicators: ChartIndicators + intraday: bool = False + df_stock: Union["pd.DataFrame", "pd.Series"] + df_ta: Optional["pd.DataFrame"] = None + df_fib: "pd.DataFrame" + close_column: Optional[str] = "close" + params: Optional[Dict[str, TAIndicator]] = {} + inchart_colors: List[str] = [] + show_volume: bool = True + + __static_methods__: list = [] + __indicators__: List[Indicator] = [] + __ma_mode__: List[str] = [] + __inchart__: List[str] = [] + __subplots__: List[str] = [] + + # pylint: disable=unused-argument + def __new__(cls, *args: Any, **kwargs: Any) -> "PltTA": + """Create a new instance of the class.""" + if cls is PltTA: + raise TypeError("Can't instantiate abstract class Plugin directly") + self = super().__new__(cls) + + static_methods = cls.__static_methods__ + indicators = cls.__indicators__ + + for item in indicators: + # we make sure that the indicator is bound to the instance + if not hasattr(self, item.name): + setattr(self, item.name, item.func.__get__(self, cls)) + + for static_method in static_methods: + if not hasattr(self, static_method): + setattr(self, static_method, staticmethod(getattr(self, static_method))) + + for attr, value in cls.__dict__.items(): + if attr in [ + "__ma_mode__", + "__inchart__", + "__subplots__", + ] and value not in getattr(self, attr): + getattr(self, attr).extend(value) + + return self + + @property + def ma_mode(self) -> List[str]: + """Moving average mode.""" + return list(set(self.__ma_mode__)) + + @ma_mode.setter + def ma_mode(self, value: List[str]): + self.__ma_mode__ = value + + def add_plugins(self, plugins: List["PltTA"]) -> None: + """Add plugins to current instance.""" + for plugin in plugins: + for item in plugin.__indicators__: + # pylint: disable=unnecessary-dunder-call + if not hasattr(self, item.name): + setattr(self, item.name, item.func.__get__(self, type(self))) + self.__indicators__.append(item) + + for static_method in plugin.__static_methods__: + if not hasattr(self, static_method): + setattr( + self, static_method, staticmethod(getattr(self, static_method)) + ) + for attr, value in plugin.__dict__.items(): + if attr in [ + "__ma_mode__", + "__inchart__", + "__subplots__", + ] and value not in getattr(self, attr): + getattr(self, attr).extend(value) + + def remove_plugins(self, plugins: List["PltTA"]) -> None: + """Remove plugins from current instance.""" + for plugin in plugins: + for item in plugin.__indicators__: + delattr(self, item.name) + self.__indicators__.remove(item) + + for static_method in plugin.__static_methods__: + delattr(self, static_method) + + def __iter__(self) -> Iterator[Indicator]: + """Iterate over the indicators.""" + return iter(self.__indicators__) + + def get_float_precision(self) -> str: + """Return f-string precision format.""" + price = self.df_stock[self.close_column].tail(1).values[0] + float_precision = ( + ",.2f" if price > 1.10 else "" if len(str(price)) < 8 else ".6f" + ) + return float_precision + + +def indicator( + name: str = "", + **attrs: Any, +) -> Callable: + """Use this decorator for adding indicators to a plugin class.""" + attrs["name"] = name + + def decorator(func: Callable) -> Indicator: + if not attrs.pop("name", ""): + name = func.__name__ + + # pylint: disable=possibly-used-before-assignment + return Indicator(func, name, **attrs) + + return decorator diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/data_classes.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/data_classes.py new file mode 100644 index 0000000000000000000000000000000000000000..f596df04f7f0d6d905d0ebd83a1edbabc44b73c8 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/data_classes.py @@ -0,0 +1,395 @@ +"""Dataclasses for the charting extension.""" + +# pylint: disable=C0302,R0915,R0914,R0913,R0903,R0904 + +import sys +import warnings +from dataclasses import dataclass +from typing import TYPE_CHECKING, Any, Dict, List, Literal, Optional, Tuple, Union + +if TYPE_CHECKING: + from pandas import DataFrame, Series + +# pylint: disable=E1123 +datacls_kwargs = {"slots": True} if sys.version_info >= (3, 10) else {} + + +def columns_regex(df_ta: "DataFrame", name: str) -> List[str]: + """Return columns that match regex name.""" + column_name = df_ta.filter(regex=rf"{name}(?=[^\d]|$)").columns.tolist() + + return column_name + + +@dataclass(**datacls_kwargs) +class Arguments: + """Arguments for technical analysis indicators.""" + + label: str + values: Any + + def __post_init__(self): + """Post init.""" + if isinstance(self.values, list) and len(self.values) == 1: + self.values = self.values[0] + + +@dataclass(**datacls_kwargs) +class TAIndicator: + """Technical analysis indicator.""" + + name: Literal[ + "ad", + "adosc", + "adx", + "aroon", + "atr", + "cci", + "donchian", + "fisher", + "kc", + "obv", + "stoch", + "vwap", + "fib", + "srlines", + "clenow", + "demark", + "ichimoku", + "sma", + "ema", + "wma", + "hma", + "zlma", + "rma", + ] + args: List[Arguments] + + def __iter__(self): + """Return iterator.""" + return iter(self.args) + + def get_args(self, label: str) -> Union[Arguments, None]: + """Return arguments by label.""" + output = None + for opt in self.args: + if opt.label == label: + output = opt + return output + + def get_argument_values(self, label: str) -> Union[List[Any], Any]: + """Return arguments values by label.""" + output = [] + options = self.get_args(label) + if options is not None: + output = options.values + return output + + +@dataclass(**datacls_kwargs) +class ChartIndicators: + """Chart technical analysis indicators.""" + + indicators: Optional[List[TAIndicator]] = None + + def get_indicator(self, name: str) -> Union[TAIndicator, None]: + """Return indicator with given name.""" + output = None + for indicator in self.indicators: # type: ignore + if indicator.name == name: + output = indicator + return output + + def get_indicator_args(self, name: str, label: str) -> Union[Arguments, None]: + """Return argument values for given indicator and label.""" + output = None + indicator = self.get_indicator(name) + if indicator is not None: + output = indicator.get_args(label) + if output is not None: + output = output.values + return output + + def get_indicators(self) -> Optional[List[TAIndicator]]: + """Return active indicators and their arguments.""" + return self.indicators + + def get_params(self) -> Dict[str, TAIndicator]: + """Return dictionary of active indicators and their arguments.""" + output = {} + if self.indicators: + output = {str(indicator.name): indicator for indicator in self.indicators} + return output + + def get_active_ids(self) -> List[str]: + """Return list of names of active indicators.""" + active_ids = [] + if self.indicators: + active_ids = [str(indicator.name) for indicator in self.indicators] + return active_ids + + def get_arg_names(self, name: str) -> List[str]: + """Return list of argument labels for given indicator.""" + output = [] + indicator = self.get_indicator(name) + if indicator is not None: + for opt in indicator.args: + output.append(opt.label) + return output + + def get_options_dict(self, name: str) -> Dict[str, Optional[Arguments]]: + """Return dictionary of argument labels and values for given indicator.""" + output = None + options = self.get_arg_names(name) + if options: + output = {} + for opt in options: + output[opt] = self.get_indicator_args(name, opt) + + return output + + @staticmethod + def get_available_indicators() -> Tuple[str, ...]: + """Return tuple of available indicators.""" + return tuple( + TAIndicator.__annotations__["name"].__args__ # pylint: disable=E1101 + ) + + @classmethod + def from_dict( + cls, indicators: Dict[str, Dict[str, List[Dict[str, Any]]]] + ) -> "ChartIndicators": + """Return ChartIndicators from dictionary. + + Example + ------- + ChartIndicators.from_dict( + { + "ad": { + "args": [ + { + "label": "AD_LABEL", + "values": [1, 2, 3], + } + ] + } + } + ) + """ + return cls( + indicators=[ + TAIndicator( + name=name, # type: ignore[arg-type] + args=[ + Arguments(label=label, values=values) + for label, values in args.items() + ], + ) + for name, args in indicators.items() + ] + ) + + def to_dataframe( + self, df_ta: "DataFrame", ma_mode: Optional[List[str]] = None + ) -> "DataFrame": + """Calculate technical analysis indicators and return dataframe.""" + output = df_ta.copy() + if not output.empty and self.indicators: + try: + output = TA_Data(output, self, ma_mode).to_dataframe() + except Exception as err: + warnings.warn(str(err)) + + return output + + def get_indicator_data(self, df_ta: "DataFrame", indicator: TAIndicator, **kwargs): + """Return dataframe with technical analysis indicators.""" + output = None + if self.indicators: + try: + output = TA_Data(df_ta, self).get_indicator_data(indicator, **kwargs) + except Exception as err: + warnings.warn(str(err)) + + return output + + def remove_indicator(self, name: str) -> None: + """Remove indicator from active indicators.""" + if self.indicators: + for indicator in self.indicators: + if indicator.name == name: + self.indicators.remove(indicator) + + +class TA_DataException(Exception): + """Exception for TA_Data.""" + + +class TA_Data: + """ + Process technical analysis data. + + Parameters + ---------- + df_ta : DataFrame + Dataframe with OHLCV data + indicators : Union[ChartIndicators, Dict[str, Dict[str, Any]]] + ChartIndicators object or dictionary with indicators and arguments + Example: + dict( + sma=dict(length=[20, 50, 100]), + adx=dict(length=14), + macd=dict(fast=12, slow=26, signal=9), + rsi=dict(length=14), + ) + + Methods + ------- + to_dataframe() + Return dataframe with technical analysis indicators + get_indicator_data(indicator: TAIndicator, **kwargs) + Return dataframe given indicator and arguments + """ + + def __init__( + self, + df_ta: Union["DataFrame", "Series"], + indicators: Union[ChartIndicators, Dict[str, Dict[str, Any]]], + ma_mode: Optional[List[str]] = None, + ): + """Initialize.""" + # pylint: disable=import-outside-toplevel + from pandas import DataFrame, Series # noqa + from openbb_charting.core.plotly_ta.ta_helpers import check_columns # noqa + + if isinstance(df_ta, Series): + df_ta = df_ta.to_frame() + + if not isinstance(indicators, ChartIndicators): + indicators = ChartIndicators.from_dict(indicators) + + self.df_ta: DataFrame = df_ta + self.indicators: ChartIndicators = indicators + self.ma_mode: List[str] = ma_mode or ["sma", "ema", "wma", "hma", "zlma", "rma"] + self.close_col = check_columns(df_ta) + if self.close_col is None: + raise ValueError("No close column found in dataframe") + + self.columns: Dict[str, List[str]] = { + "ad": ["high", "low", self.close_col, "volume"], + "adosc": ["high", "low", self.close_col, "volume"], + "adx": ["high", "low", self.close_col], + "aroon": ["high", "low"], + "atr": ["high", "low", self.close_col], + "cci": ["high", "low", self.close_col], + "donchian": ["high", "low"], + "fisher": ["high", "low"], + "kc": ["high", "low", self.close_col], + "obv": [self.close_col, "volume"], + "stoch": ["high", "low", self.close_col], + "vwap": ["high", "low", self.close_col, "volume"], + } + + self.has_volume = "volume" in df_ta.columns and bool(df_ta["volume"].sum() > 0) + + def get_indicator_data(self, indicator: TAIndicator, **args) -> "DataFrame": + """ + Return dataframe with indicator data. + + Parameters + ---------- + indicator : TAIndicator + TAIndicator object + args : dict + Arguments for given indicator + + Return + ------- + DataFrame + Dataframe with indicator data + """ + # pylint: disable=import-outside-toplevel + import pandas_ta as ta + from pandas import DataFrame + + output = None + if indicator and indicator.name in self.ma_mode: + if isinstance(indicator.get_argument_values("length"), list): + df_ta = DataFrame() + + for length in indicator.get_argument_values("length"): + df_ma = getattr(ta, indicator.name)( + self.df_ta[self.close_col], length=length + ) + df_ta.insert(0, f"{indicator.name.upper()}_{length}", df_ma) + + output = df_ta + + else: + output = getattr(ta, indicator.name)( + self.df_ta[self.close_col], + length=indicator.get_argument_values("length"), + ) + if indicator.name == "zlma" and output is not None: + output.name = output.name.replace("ZL_EMA", "ZLMA") + + elif indicator.name == "vwap": + ta_columns = self.columns[indicator.name] + ta_columns = [self.df_ta[col] for col in ta_columns] # type: ignore + + output = getattr(ta, indicator.name)( + *ta_columns, + ) + elif indicator.name in self.columns: + ta_columns = self.columns[indicator.name] + ta_columns = [self.df_ta[col] for col in ta_columns] # type: ignore + + if indicator.get_argument_values("use_open") is True: + ta_columns.append(self.df_ta["open"]) + + output = getattr(ta, indicator.name)(*ta_columns, **args) + else: + output = getattr(ta, indicator.name)(self.df_ta[self.close_col], **args) + + # Drop NaN values from output and return None if empty + if output is not None: + output.dropna(inplace=True) + if output.empty: + output = None + + return output + + def to_dataframe(self) -> "DataFrame": + """Return dataframe with all indicators.""" + active_indicators = self.indicators.get_indicators() + + if not active_indicators: + return None + + output = self.df_ta + for indicator in active_indicators: + if ( + indicator.name in self.columns + and "volume" in self.columns[indicator.name] + and not self.has_volume + ): + continue + if indicator.name in ["fib", "srlines", "clenow", "demark", "ichimoku"]: + continue + try: + indicator_data = self.get_indicator_data( + indicator, + **self.indicators.get_options_dict(indicator.name) or {}, + ) + except Exception as e: + indicator_data = None + raise TA_DataException( + f"Error processing indicator {indicator.name}: {e}" + ) from e + + if indicator_data is not None: + output = output.join(indicator_data).infer_objects(copy=False) + numeric_cols = output.select_dtypes(include=["number"]).columns + output[numeric_cols] = output[numeric_cols].interpolate("linear") + + return output diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/__init__.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..8c9a5f24341de3ad3f66f583539c247ce9fbc0c8 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/__init__.py @@ -0,0 +1 @@ +"""Plotly TA Plugins.""" diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/custom_indicators_plugin.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/custom_indicators_plugin.py new file mode 100644 index 0000000000000000000000000000000000000000..57b565835b859faf0919a7df2383b8d99acafc29 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/custom_indicators_plugin.py @@ -0,0 +1,218 @@ +"""Custom technical indicators.""" + +import warnings +from datetime import datetime, timedelta + +import numpy as np +import pandas as pd + +from openbb_charting.core.config.openbb_styles import PLT_FIB_COLORWAY +from openbb_charting.core.openbb_figure import OpenBBFigure +from openbb_charting.core.plotly_ta.base import PltTA, indicator + + +class Custom(PltTA): + """Volatility technical indicators.""" + + @indicator() + def plot_srlines(self, fig: OpenBBFigure, df_ta: pd.DataFrame): + """Add support and resistance lines to plotly figure.""" + window = self.params["srlines"].get_argument_values("window") # type: ignore + window = window[0] if isinstance(window, list) and len(window) > 0 else 200 + + def is_far_from_level(value, levels, df_stock): + ave = np.mean(df_stock["high"] - df_stock["low"]) + return np.sum([abs(value - level) < ave for _, level in levels]) == 0 + + def is_support(df, i): + cond1 = df["low"][i] < df["low"][i - 1] + cond2 = df["low"][i] < df["low"][i + 1] + cond3 = df["low"][i + 1] < df["low"][i + 2] + cond4 = df["low"][i - 1] < df["low"][i - 2] + return cond1 and cond2 and cond3 and cond4 + + def is_resistance(df, i): + cond1 = df["high"][i] > df["high"][i - 1] + cond2 = df["high"][i] > df["high"][i + 1] + cond3 = df["high"][i + 1] > df["high"][i + 2] + cond4 = df["high"][i - 1] > df["high"][i - 2] + return cond1 and cond2 and cond3 and cond4 + + df_ta2 = df_ta.copy() + today = pd.to_datetime(datetime.now(), unit="ns") + start_date = pd.to_datetime(datetime.now() - timedelta(days=window), unit="ns") + + df_ta2 = df_ta2.loc[(df_ta2.index >= start_date) & (df_ta2.index < today)] + + if df_ta2.index[-2].date() != df_ta2.index[-1].date(): + interval = 1440 + else: + interval = (df_ta2.index[1] - df_ta2.index[0]).seconds / 60 + + if interval <= 15: + cut_days = 1 if interval < 15 else 2 + dt_unique_days = df_ta2.index.normalize().unique() # type: ignore + df_ta2 = df_ta2.loc[ + (df_ta2.index >= pd.to_datetime(dt_unique_days[-cut_days], unit="ns")) + & (df_ta2.index < today) + ].copy() + + levels: list = [] + x_range = df_ta2.index[-1].replace(hour=15, minute=59) + if interval > 15: + x_range = df_ta2.index[-1] + timedelta(days=15) + if x_range.weekday() > 4: + x_range = x_range + timedelta(days=7 - x_range.weekday()) + + elif df_ta2.index[-1] >= today.replace(hour=15, minute=0): + x_range = (df_ta2.index[-1] + timedelta(days=1)).replace(hour=11, minute=0) + if x_range.weekday() > 4: + x_range = x_range + timedelta(days=7 - x_range.weekday()) + + for i in range(2, len(df_ta2) - 2): + if is_support(df_ta2, i): + lv = df_ta2["low"][i] + if is_far_from_level(lv, levels, df_ta2): + levels.append((i, lv)) + fig.add_scatter( + x=[df_ta.index[0], x_range], + y=[lv, lv], + opacity=0.8, + mode="lines+text", + text=["", f"{lv:{self.get_float_precision()}}"], + textposition="top center", + textfont=dict( + family="Arial Black", color="rgb(120, 70, 200)", size=10 + ), + line=dict( + width=2, dash="dash", color="rgba(120, 70, 200, 0.70)" + ), + connectgaps=True, + showlegend=False, + row=1, + col=1, + secondary_y=False, + ) + elif is_resistance(df_ta2, i): + lv = df_ta2["high"][i] + if is_far_from_level(lv, levels, df_ta2): + levels.append((i, lv)) + fig.add_scatter( + x=[df_ta.index[0], x_range], + y=[lv, lv], + opacity=0.85, + mode="lines+text", + text=["", f"{lv:{self.get_float_precision()}}"], + textposition="top center", + textfont=dict( + family="Arial Black", color="rgb(120, 70, 200)", size=10 + ), + line=dict( + width=2, dash="dash", color="rgba(120, 70, 200, 0.70)" + ), + connectgaps=True, + showlegend=False, + row=1, + col=1, + secondary_y=False, + ) + + return fig + + @indicator() + def plot_fib(self, fig: OpenBBFigure, df_ta: pd.DataFrame): + """Add fibonacci to plotly figure.""" + try: + from openbb_technical.helpers import ( # pylint: disable=import-outside-toplevel + calculate_fib_levels, + ) + except ImportError: + warnings.warn( + "In order to use the Fibonacci indicator in your plot," + " you need to install the `openbb-technical` package." + ) + return fig + + limit = self.params["fib"].get_argument_values("limit") or 120 # type: ignore + start_date = self.params["fib"].get_argument_values("start_date") or None # type: ignore + end_date = self.params["fib"].get_argument_values("end_date") or None # type: ignore + close = self.params["fib"].get_argument_values("close") or "close" # type: ignore + ( + df_fib, + min_date, + max_date, + min_pr, + max_pr, + lvl_text, + ) = calculate_fib_levels( + df_ta, close, limit, start_date, end_date # type: ignore + ) + levels = df_fib.Price + fibs = [ + "0", + "0.235", + "0.382", + "0.5", + "0.618", + "0.65", + "1", + ] + min_date = pd.to_datetime(min_date).to_pydatetime() + max_date = pd.to_datetime(max_date).to_pydatetime() + self.df_fib = df_fib # pylint: disable=attribute-defined-outside-init + + fig.add_scatter( + x=[min_date, max_date], + y=[min_pr, max_pr], + opacity=0.85, + mode="lines", + connectgaps=True, + line=PLT_FIB_COLORWAY[8], + showlegend=False, + row=1, + col=1, + secondary_y=False, + ) + df_ta2 = df_ta.copy() + interval = 1440 + if df_ta2.index[-2].date() == df_ta2.index[-1].date(): + interval = (df_ta2.index[1] - df_ta2.index[0]).seconds / 60 + dt_unique_days = df_ta2.index.normalize().unique() # type: ignore + + if interval not in [15, 30, 60] and len(dt_unique_days) <= 3: + df_ta2 = df_ta2.loc[ + (df_ta2.index >= dt_unique_days[-1]) + & (df_ta2.index < datetime.now()) + ].copy() + df_ta2 = df_ta2.between_time("09:30", "20:00").copy() + + for i in range(7): + idx_int = 4 if lvl_text == "left" else 5 + text_pos = f"bottom {lvl_text}" if i != idx_int else f"top {lvl_text}" + + if fibs[i] == "0": + text_pos = ( + f"top {lvl_text}" if lvl_text != "right" else f"bottom {lvl_text}" + ) + text = ["", f"{fibs[i]} ({levels[i]:{self.get_float_precision()}})"] + if lvl_text == "right": + text = [text[1], text[0]] + + fig.add_scatter( + name=fibs[i], + x=[min_date, df_ta2.index.max()], + y=[levels[i], levels[i]], + opacity=0.85, + mode="lines+text", + text=text, + textposition=text_pos, + textfont=dict(PLT_FIB_COLORWAY[7], color=PLT_FIB_COLORWAY[i]), + line_color=PLT_FIB_COLORWAY[i], + line_width=1.5, + showlegend=False, + row=1, + col=1, + secondary_y=False, + ) + + return fig diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/momentum_plugin.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/momentum_plugin.py new file mode 100644 index 0000000000000000000000000000000000000000..577933cfd5710104a079c5f566a7df559e759b39 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/momentum_plugin.py @@ -0,0 +1,629 @@ +"""Momentum technical indicators.""" + +import warnings + +import numpy as np +import pandas as pd +import pandas_ta as ta + +from openbb_charting.core.openbb_figure import OpenBBFigure +from openbb_charting.core.plotly_ta.base import ( + PltTA, + indicator, +) +from openbb_charting.core.plotly_ta.data_classes import ( + columns_regex, +) + + +class Momentum(PltTA): + """Momentum technical indicators.""" + + __subplots__ = ["rsi", "macd", "stoch", "cci", "fisher", "cg"] + __inchart__ = ["clenow", "demark", "ichimoku"] + + @indicator() + def plot_cci(self, fig: OpenBBFigure, df_ta: pd.DataFrame, subplot_row: int): + """Add CCI to plotly figure.""" + cci_col = columns_regex(df_ta, "CCI")[0] + dmax = df_ta[cci_col].max() + dmin = df_ta[cci_col].min() + fig.add_scatter( + name="CCI", + mode="lines", + line=dict(width=1.5, color="#e0b700"), + x=df_ta.index, + y=df_ta[cci_col].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + + fig.add_hrect( + y0=100, + y1=dmax, + fillcolor=fig.theme.down_color, + opacity=0.2, + layer="below", + line_width=0, + row=subplot_row, # type: ignore + col=1, # type: ignore + secondary_y=False, + ) + fig.add_hrect( + y0=-100, + y1=dmin, + fillcolor=fig.theme.up_color, + opacity=0.2, + layer="below", + line_width=0, + row=subplot_row, # type: ignore + col=1, # type: ignore + secondary_y=False, + ) + fig.add_hline( + y=100, + opacity=1, + layer="below", + line=dict(width=2, color=fig.theme.down_color, dash="dash"), + row=subplot_row, # type: ignore + col=1, # type: ignore + secondary_y=False, + ) + fig.add_hline( + y=-100, + opacity=1, + layer="below", + line=dict(width=2, color=fig.theme.up_color, dash="dash"), + row=subplot_row, # type: ignore + col=1, # type: ignore + secondary_y=False, + ) + + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="CCI", + x=0, + xanchor="right", + xshift=-6, + y=0.97, + font_size=14, + font_color="#e0b700", + ) + fig["layout"][f"yaxis{subplot_row + 1}"].update(nticks=5, autorange=True) # type: ignore + + return fig, subplot_row + 1 + + @indicator() + def plot_cg(self, fig: OpenBBFigure, df_ta: pd.DataFrame, subplot_row: int): + """Add cg to plotly figure.""" + cg_col = columns_regex(df_ta, "CG")[0] + fig.add_scatter( + name="CG", + mode="lines", + line=dict(width=1.5, color="#ffed00"), + x=df_ta.index, + y=df_ta[cg_col].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + fig.add_scatter( + name="Signal", + mode="lines", + line=dict(width=1.5, color="#ef7d00"), + x=df_ta.index, + y=df_ta[cg_col].shift(1), + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="CG", + x=0, + xanchor="right", + xshift=-10, + y=0.97, + font_size=14, + font_color="#ffed00", + ) + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="Signal", + x=0, + xanchor="right", + xshift=-6, + y=0.97, + yshift=-20, + font_size=14, + font_color="#ef7d00", + ) + fig["layout"][f"yaxis{subplot_row + 1}"].update(nticks=5, autorange=True) # type: ignore + + return fig, subplot_row + 1 + + @indicator() + def plot_clenow(self, fig: OpenBBFigure, df_ta: pd.DataFrame, inchart_index: int): + """Add current close price to plotly figure.""" + try: + from openbb_technical.helpers import ( # pylint: disable=import-outside-toplevel + clenow_momentum, + ) + except ImportError: + warnings.warn( + "In order to use the Clenow momentum indicator in your plot," + " you need to install the `openbb-technical` package." + ) + return fig, inchart_index + + window = self.params["clenow"].get_argument_values("window") or 90 # type: ignore + _, _, fit_data = clenow_momentum(df_ta[self.close_column], window=window) # type: ignore + + fig.add_scatter( + x=df_ta.index[-window:], # type: ignore + y=pow(np.e, fit_data), + name="CLenow", + mode="lines", + line=dict(color=self.inchart_colors[inchart_index], width=2), + row=1, + col=1, + secondary_y=False, + ) + fig.add_annotation( + xref="paper", + yref="paper", + text="CLenow", + x=0, + xanchor="right", + xshift=-6, + yshift=-inchart_index * 18, + y=0.98, + font_size=14, + font_color=self.inchart_colors[inchart_index], + opacity=1, + ) + return fig, inchart_index + 1 + + @indicator() + def plot_demark(self, fig: OpenBBFigure, df_ta: pd.DataFrame, inchart_index: int): + """Add demark to plotly figure.""" + min_val = self.params["demark"].get_argument_values("min_val") or 5 # type: ignore + + demark = ta.td_seq(df_ta[self.close_column], asint=True) + demark = demark.set_index(df_ta.index) + + # pylint: disable=unsupported-assignment-operation + demark["up"] = demark.TD_SEQ_UPa.apply( + lambda x: f"{x}" if x >= min_val else None + ) + + # pylint: disable=unsupported-assignment-operation + demark["down"] = demark.TD_SEQ_DNa.apply( + lambda x: f"{x}" if x >= min_val else None + ) + + # we only keep the values that are not None in up/down columns + high = df_ta["high"][demark["up"].notnull()] + low = df_ta["low"][demark["down"].notnull()] + demark = demark[demark["up"].notnull() | demark["down"].notnull()] + + fig.add_scatter( + x=low.index, + y=low, + name="Demark Down", + mode="text", + text=demark["down"], + textposition="bottom center", + textfont=dict(color=fig.theme.down_color, size=14.5), + row=1, + col=1, + secondary_y=False, + ) + fig.add_scatter( + x=high.index, + y=high, + name="Demark Up", + mode="text", + text=demark["up"], + textposition="top center", + textfont=dict(color=fig.theme.up_color, size=14.5), + row=1, + col=1, + secondary_y=False, + ) + + fig.add_annotation( + xref="paper", + yref="paper", + text="Demark", + x=0, + xanchor="right", + xshift=-6, + yshift=-inchart_index * 18, + y=0.98, + font_size=14, + font_color=self.inchart_colors[inchart_index], + opacity=1, + ) + + return fig, inchart_index + 1 + + @indicator() + def plot_fisher(self, fig: OpenBBFigure, df_ta: pd.DataFrame, subplot_row: int): + """Add fisher to plotly figure.""" + fishert_col = columns_regex(df_ta, "FISHERT")[0] + fishers_col = columns_regex(df_ta, "FISHERTs")[0] + fig.add_scatter( + name="Fisher", + mode="lines", + line=dict(width=1.5, color="#e0b700"), + x=df_ta.index, + y=df_ta[fishert_col].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + fig.add_scatter( + name="Fisher Signal", + mode="lines", + line=dict(width=1.5, color="#9467bd"), + x=df_ta.index, + y=df_ta[fishers_col].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + dmax = df_ta[fishers_col].max() + dmin = df_ta[fishers_col].min() + + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="FISHER", + x=0, + xanchor="right", + xshift=-6, + y=0.98, + font_size=14, + font_color="#e0b700", + ) + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="SIGNAL", + x=0, + xanchor="right", + xshift=-6, + y=0.01, + font_size=13, + font_color="#9467bd", + ) + fig.add_hrect( + y0=2, + y1=(dmax + 4), + fillcolor=fig.theme.down_color, + opacity=0.2, + layer="below", + line_width=0, + row=subplot_row, # type: ignore + col=1, # type: ignore + secondary_y=False, + ) + fig.add_hrect( + y0=-2, + y1=(dmin - 4), + fillcolor=fig.theme.up_color, + opacity=0.2, + layer="below", + line_width=0, + row=subplot_row, # type: ignore + col=1, # type: ignore + secondary_y=False, + ) + fig.add_hline( + y=2, + fillcolor=fig.theme.down_color, + opacity=1, + layer="below", + line=dict(width=2, color=fig.theme.down_color, dash="dash"), + row=subplot_row, # type: ignore + col=1, # type: ignore + secondary_y=False, + ) + fig.add_hline( + y=-2, + fillcolor=fig.theme.up_color, + opacity=1, + layer="below", + line=dict(width=2, color=fig.theme.up_color, dash="dash"), + row=subplot_row, # type: ignore + col=1, # type: ignore + secondary_y=False, + ) + fig["layout"][f"yaxis{subplot_row + 1}"].update(nticks=5, autorange=True) # type: ignore + + return fig, subplot_row + 1 + + @indicator() + def plot_macd(self, fig: OpenBBFigure, df_ta: pd.DataFrame, subplot_row: int): + """Add macd to plotly figure.""" + fig.add_bar( + name="MACD Histogram", + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "MACDh")[0]].values, + opacity=0.9, + marker_color="#1a97ea", + row=subplot_row, + col=1, + secondary_y=False, + ) + fig.add_scatter( + name="MACD", + mode="lines", + line=dict(width=1.5, color="#9467bd"), + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "MACD")[0]].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + fig.add_scatter( + name="MACD Signal", + mode="lines", + line=dict(width=1.5, color="rgb(7, 166, 52)"), + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "MACDs")[0]].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="MACD", + x=0, + xanchor="right", + xshift=-6, + y=0.98, + font_size=14, + font_color="#9467bd", + ) + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="SIGNAL", + x=0, + xanchor="right", + y=0.70, + font_size=13, + xshift=-3, + font_color="rgb(7, 166, 52)", + ) + fig["layout"][f"yaxis{subplot_row + 1}"].update(autorange=True, nticks=5) # type: ignore + + return fig, subplot_row + 1 + + @indicator() + def plot_rsi(self, fig: OpenBBFigure, df_ta: pd.DataFrame, subplot_row: int): + """Add rsi to plotly figure.""" + rsi_col = columns_regex(df_ta, "RSI")[0] + fig.add_scatter( + name="RSI", + mode="lines", + line=dict(width=1.5, color="rgb(0, 122, 204, 1)"), + x=df_ta.index, + y=df_ta[rsi_col].values, + opacity=1, + row=subplot_row, + col=1, + secondary_y=False, + ) + + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="RSI", + x=0, + xanchor="right", + xshift=-6, + y=0.98, + font_size=14, + font_color="rgb(0, 122, 204, 1)", + ) + fig.add_hrect( + y0=70, + y1=100, + fillcolor=fig.theme.down_color, + opacity=0.2, + layer="below", + line_width=0, + row=subplot_row, # type: ignore + col=1, # type: ignore + secondary_y=False, + ) + fig.add_hrect( + y0=0, + y1=30, + fillcolor=fig.theme.up_color, + opacity=0.2, + layer="below", + line_width=0, + row=subplot_row, # type: ignore + col=1, # type: ignore + secondary_y=False, + ) + fig.add_hline( + y=70, + fillcolor=fig.theme.down_color, + opacity=1, + layer="below", + line=dict(width=2, color=fig.theme.down_color, dash="dash"), + row=subplot_row, # type: ignore + col=1, # type: ignore + secondary_y=False, + ) + fig.add_hline( + y=30, + fillcolor=fig.theme.up_color, + opacity=1, + layer="below", + line=dict(width=2, color=fig.theme.up_color, dash="dash"), + row=subplot_row, # type: ignore + col=1, # type: ignore + secondary_y=False, + ) + fig["layout"][f"yaxis{subplot_row + 1}"].update(tickvals=[0, 30, 70, 100]) # type: ignore + + return fig, subplot_row + 1 + + @indicator() + def plot_stoch(self, fig: OpenBBFigure, df_ta: pd.DataFrame, subplot_row: int): + """Add stoch to plotly figure.""" + fig.add_scatter( + name="STOCH %K", + mode="lines", + line=dict(width=1.5, color="#e0b700"), + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "STOCHk")[0]].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + fig.add_scatter( + name="STOCH %D", + mode="lines", + line=dict(width=1.5, color="#9467bd", dash="dash"), + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "STOCHd")[0]].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="STOCH", + x=0, + xanchor="right", + xshift=-6, + y=0.98, + font_size=14, + font_color="#e0b700", + ) + fig["layout"][f"yaxis{subplot_row + 1}"].update(nticks=5, autorange=True) # type: ignore + + return fig, subplot_row + 1 + + @indicator() + def plot_ichimoku(self, fig: OpenBBFigure, df_ta: pd.DataFrame, inchart_index: int): + """Calculate Ichimoku indicator.""" + conversion_period = ( + self.params["ichimoku"].get_argument_values("conversion_period") or 9 # type: ignore + ) + base_period = self.params["ichimoku"].get_argument_values("base_period") or 26 # type: ignore + lagging_line_period = ( + self.params["ichimoku"].get_argument_values("lagging_line_period") or 52 # type: ignore + ) + displacement = self.params["ichimoku"].get_argument_values("displacement") or 26 # type: ignore + + # Tenkan-sen (Conversion Line) + conversion_line = ( + df_ta["high"].rolling(window=conversion_period).max() # type: ignore + + df_ta["low"].rolling(window=conversion_period).min() # type: ignore + ) / 2 + + # Kijun-sen (Base Line) + base_line = ( + df_ta["high"].rolling(window=base_period).max() # type: ignore + + df_ta["low"].rolling(window=base_period).min() # type: ignore + ) / 2 + + # Senkou Span A (Leading Span A) + leading_span_a = ((conversion_line + base_line) / 2).shift(displacement) # type: ignore + + # Senkou Span B (Leading Span B) + lagging_line = df_ta[self.close_column].shift(-lagging_line_period) # type: ignore + leading_span_b = ( + ( + lagging_line.rolling(window=base_period).max() # type: ignore + + lagging_line.rolling(window=base_period).min() # type: ignore + ) + / 2 + ).shift( + displacement # type: ignore + ) + + # Plot Tenkan-sen and Kijun-sen + fig.add_scatter( + x=df_ta.index, + y=conversion_line, + line=dict(color="orange", width=1), + name="Tenkan-sen", + secondary_y=False, + showlegend=True, + opacity=1, + ) + fig.add_scatter( + x=df_ta.index, + y=base_line, + line=dict(color="blue", width=1), + name="Kijun-sen", + secondary_y=False, + showlegend=True, + opacity=1, + ) + + # Plot Senkou Span A and Senkou Span B as a filled area + fig.add_scatter( + x=df_ta.index, + y=leading_span_a, + line=dict(color="#009600", width=1), + fill="tonexty", + fillcolor="rgba(0, 150, 0, 0.1)", + name="Senkou Span A", + secondary_y=False, + showlegend=False, + opacity=0.2, + ) + fig.add_scatter( + x=df_ta.index, + y=leading_span_b, + line=dict(color="#c80000", width=1), + fill="tonexty", + fillcolor="rgba(200, 0, 0, 0.1)", + name="Senkou Span B", + showlegend=False, + secondary_y=False, + opacity=0.2, + ) + + fig.add_annotation( + xref="paper", + yref="paper", + text="Ichi" + "moku", + x=0, + xanchor="right", + xshift=-6, + yshift=-inchart_index * 18, + y=0.98, + font_size=14, + opacity=1, + ) + + return fig, inchart_index + 1 diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/overlap_plugin.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/overlap_plugin.py new file mode 100644 index 0000000000000000000000000000000000000000..67e7c1126066663c776b7964f5d28c54cfad2018 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/overlap_plugin.py @@ -0,0 +1,96 @@ +"""Overlap technical indicators plugin for Plotly TA.""" + +import warnings + +import pandas as pd + +from openbb_charting.core.openbb_figure import OpenBBFigure +from openbb_charting.core.plotly_ta.base import ( + PltTA, + indicator, +) +from openbb_charting.core.plotly_ta.data_classes import ( + columns_regex, +) + + +class Overlap(PltTA): + """Overlap technical indicators.""" + + __inchart__ = ["vwap"] + __ma_mode__ = ["sma", "ema", "wma", "hma", "zlma", "rma"] + + @indicator() + def plot_ma(self, fig: OpenBBFigure, df_ta: pd.DataFrame, inchart_index: int): + """Add moving average to plotly figure.""" + check_ma = [ma for ma in self.ma_mode if ma in self.indicators.get_active_ids()] + if check_ma: + for ma in check_ma: + column_names = columns_regex(df_ta, ma.upper()) + try: + for column in column_names: + if df_ta[column].empty: + continue + + fig.add_scatter( + name=column.replace("RMA", "MA"), + mode="lines", + line=dict( + width=1.2, color=self.inchart_colors[inchart_index] + ), + x=df_ta.index, + y=df_ta[column].values, + opacity=0.9, + connectgaps=True, + row=1, + col=1, + secondary_y=False, + ) + fig.add_annotation( + xref="paper", + yref="paper", + text=f"{column.replace('_', '').replace('RMA', 'MA')}", + x=0, + xanchor="right", + xshift=-6, + yshift=-inchart_index * 18, + y=0.98, + font_size=14, + font_color=self.inchart_colors[inchart_index], + opacity=1, + ) + inchart_index += 1 + + except Exception as e: + warnings.warn(f"Error adding {ma.upper()} to plot - {e}") + + return fig, inchart_index + + @indicator() + def plot_vwap(self, fig: OpenBBFigure, df_ta: pd.DataFrame, inchart_index: int): + """Add vwap to plotly figure.""" + fig.add_scatter( + name=columns_regex(df_ta, "VWAP_")[0], + mode="lines", + line=dict(width=1.5, color=self.inchart_colors[inchart_index]), + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "VWAP_")[0]].values, + opacity=0.8, + row=1, + col=1, + secondary_y=False, + ) + fig.add_annotation( + xref="paper", + yref="paper", + text="VWAP", + x=0, + xanchor="right", + xshift=-6, + yshift=-inchart_index * 18, + y=0.98, + font_size=14, + font_color=self.inchart_colors[inchart_index], + ) + + return fig, inchart_index + 1 diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/trend_indicators_plugin.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/trend_indicators_plugin.py new file mode 100644 index 0000000000000000000000000000000000000000..138a543b7969200f47406aa705fdc64b9f176eb4 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/trend_indicators_plugin.py @@ -0,0 +1,197 @@ +"""Trend technical indicators.""" + +import pandas as pd + +from openbb_charting.core.openbb_figure import OpenBBFigure +from openbb_charting.core.plotly_ta.base import ( + PltTA, + indicator, +) +from openbb_charting.core.plotly_ta.data_classes import ( + columns_regex, +) + + +class Trend(PltTA): + """Trend technical indicators.""" + + __subplots__ = ["adx", "aroon"] + + @indicator() + def plot_adx(self, fig: OpenBBFigure, df_ta: pd.DataFrame, subplot_row: int): + """Add ADX to plotly figure.""" + fig.add_scatter( + name="ADX", + mode="lines", + line=dict(width=1.5, color="#e0b700"), + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "ADX")[0]].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + fig.add_scatter( + name="+DI", + mode="lines", + line=dict(width=1.5, color=fig.theme.up_color), + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "DMP")[0]].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + fig.add_scatter( + name="-DI", + mode="lines", + line=dict(width=1.5, color=fig.theme.down_color), + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "DMN")[0]].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="ADX", + x=0, + xanchor="right", + xshift=-6, + y=0.97, + font_size=14, + font_color="#e0b700", + ) + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text=( + f"D+
" + f"D-" + ), + x=0, + xanchor="right", + xshift=-14, + y=0.97, + yshift=-20, + font_size=14, + font_color=fig.theme.up_color, + ) + fig.add_hline( + y=25, + fillcolor="white", + opacity=1, + layer="below", + line_width=1.5, + line=dict(color="white", dash="dash"), + row=subplot_row, + col=1, + secondary_y=False, + ) + fig["layout"][f"yaxis{subplot_row + 1}"].update(nticks=5, autorange=True) + + return fig, subplot_row + 1 + + @indicator() + def plot_aroon(self, fig: OpenBBFigure, df_ta: pd.DataFrame, subplot_row: int): + """Add aroon to plotly figure.""" + aroon_up_col = columns_regex(df_ta, "AROONU")[0] + aroon_down_col = columns_regex(df_ta, "AROOND")[0] + aroon_osc_col = columns_regex(df_ta, "AROONOSC")[0] + fig.add_scatter( + name="Aroon Up", + mode="lines", + line=dict(width=1.5, color=fig.theme.up_color), + x=df_ta.index, + y=df_ta[aroon_up_col].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + fig.add_scatter( + name="Aroon Down", + mode="lines", + line=dict(width=1.5, color=fig.theme.down_color), + x=df_ta.index, + y=df_ta[aroon_down_col].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="Aroon", + x=0, + xanchor="right", + xshift=-6, + y=1, + font_size=14, + font_color="#e0b700", + ) + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text=( + f"
" + f"" + ), + x=0, + xanchor="right", + xshift=-14, + y=0.75, + font_size=14, + font_color=fig.theme.down_color, + ) + fig.add_hline( + y=50, + fillcolor="white", + opacity=1, + layer="below", + line_width=1.5, + line=dict(color="white", dash="dash"), + row=subplot_row, + col=1, + secondary_y=False, + ) + + subplot_row += 1 + + fig.add_scatter( + name="Aroon Oscillator", + mode="lines", + line=dict(width=1.5, color="#e0b700"), + x=df_ta.index, + y=df_ta[aroon_osc_col].values, + connectgaps=True, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="Aroon
OSC
", + x=0, + xanchor="right", + xshift=-6, + y=0.98, + font_size=14, + font_color="#e0b700", + ) + fig["layout"][f"yaxis{subplot_row + 1}"].update( + tickvals=[-100, 0, 100], + ticktext=["-100", "0", "100"], + nticks=5, + autorange=True, + ) + + return fig, subplot_row + 1 diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/volatility_plugin.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/volatility_plugin.py new file mode 100644 index 0000000000000000000000000000000000000000..86c8c0abc33d8ff829e21264ef1cfaa96705cad3 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/volatility_plugin.py @@ -0,0 +1,223 @@ +"""Volatility technical indicators plugin for Plotly TA.""" + +import pandas as pd + +from openbb_charting.core.openbb_figure import OpenBBFigure +from openbb_charting.core.plotly_ta.base import ( + PltTA, + indicator, +) +from openbb_charting.core.plotly_ta.data_classes import ( + columns_regex, +) + + +class Volatility(PltTA): + """Volatility technical indicators.""" + + __inchart__ = ["bbands", "donchian", "kc"] + __subplots__ = ["atr"] + + @indicator() + def plot_atr(self, fig: OpenBBFigure, df_ta: pd.DataFrame, subplot_row: int): + """Add average true range to plotly figure.""" + fig.add_scatter( + name=f"{columns_regex(df_ta, 'ATR')[0]}", + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "ATR")[0]].values, + mode="lines", + line=dict(width=1, color=fig.theme.get_colors()[1]), + row=subplot_row, + col=1, + secondary_y=False, + ) + + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="ATR", + x=0, + xanchor="right", + xshift=-6, + y=0.98, + font_size=14, + font_color=fig.theme.get_colors()[1], + ) + fig["layout"][f"yaxis{subplot_row}"].update(nticks=5, autorange=True) + + return fig, subplot_row + 1 + + @indicator() + def plot_bbands(self, fig: OpenBBFigure, df_ta: pd.DataFrame, inchart_index: int): + """Add bollinger bands to plotly figure.""" + bbands_opacity = 0.8 if fig.theme.plt_style == "light" else 1 + + fig.add_scatter( + name=f"{columns_regex(df_ta, 'BBU')[0]}", + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "BBU")[0]].values, + opacity=bbands_opacity, + mode="lines", + line=dict(width=1, color=fig.theme.up_color), + row=1, + col=1, + secondary_y=False, + ) + fig.add_scatter( + name=f"{columns_regex(df_ta, 'BBL')[0]}", + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "BBL")[0]].values, + opacity=bbands_opacity, + mode="lines", + line=dict(width=1, color=fig.theme.down_color), + row=1, + col=1, + secondary_y=False, + ) + fig.add_scatter( + name=f"{columns_regex(df_ta, 'BBM')[0]}", + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "BBM")[0]].values, + opacity=1, + mode="lines", + line=dict(width=1, color=fig.theme.get_colors()[1], dash="dash"), + row=1, + col=1, + secondary_y=False, + ) + bbands_text = ( + columns_regex(df_ta, "BBL")[0].replace("BBL_", "BB").replace("_", ",") + ) + if float(bbands_text.split(",")[1]) % 1 == 0: + bbands_text = bbands_text.split(".")[0] + fig.add_annotation( + xref="paper", + yref="paper", + text=f"{bbands_text}", + x=0, + xanchor="right", + xshift=-6, + yshift=-inchart_index * 18, + y=0.98, + font_size=14, + font_color=fig.theme.get_colors()[1], + opacity=0.9, + ) + + return fig, inchart_index + 1 + + @indicator() + def plot_donchian(self, fig: OpenBBFigure, df_ta: pd.DataFrame, inchart_index: int): + """Add donchian channels to plotly figure.""" + if fig.theme.plt_style == "light": + fillcolor = "rgba(239, 103, 137, 0.05)" + donchian_opacity = 0.4 + else: + fillcolor = "rgba(239, 103, 137, 0.05)" + donchian_opacity = 0.4 + + fig.add_scatter( + name=f"{columns_regex(df_ta, 'DCU')[0]}", + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "DCU")[0]].values, + opacity=donchian_opacity, + mode="lines", + line=dict(width=0.3, color="#EF6689"), + row=1, + col=1, + secondary_y=False, + ) + fig.add_scatter( + name=f"{columns_regex(df_ta, 'DCL')[0]}", + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "DCL")[0]].values, + opacity=donchian_opacity, + mode="lines", + line=dict(width=0.3, color="#EF6689"), + fill="tonexty", + fillcolor=fillcolor, + row=1, + col=1, + secondary_y=False, + ) + + donchian_text = ( + columns_regex(df_ta, "DCL")[0] + .replace("DCL_", "DC") + .replace("_", ",") + .split(".")[0] + ) + + fig.add_annotation( + xref="paper", + yref="paper", + text=f"{donchian_text}", + x=0, + xanchor="right", + xshift=-6, + yshift=-inchart_index * 18, + y=0.98, + font_size=14, + font_color="#B47DA0", + opacity=0.9, + ) + + return fig, inchart_index + 1 + + @indicator() + def plot_kc(self, fig: OpenBBFigure, df_ta: pd.DataFrame, inchart_index: int): + """Add Keltner channels to plotly figure.""" + mamode = (self.params["kc"].get_argument_values("mamode") or "ema").lower() # type: ignore + + if fig.theme.plt_style == "light": + fillcolor = "rgba(239, 103, 137, 0.05)" + kc_opacity = 0.4 + else: + fillcolor = "rgba(239, 103, 137, 0.05)" + kc_opacity = 0.4 + + fig.add_scatter( + name=f"{columns_regex(df_ta, 'KCU')[0]}", + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "KCU")[0]].values, + opacity=kc_opacity, + mode="lines", + line=dict(width=0.3, color="#EF6689"), + row=1, + col=1, + secondary_y=False, + ) + fig.add_scatter( + name=f"{columns_regex(df_ta, 'KCL')[0]}", + x=df_ta.index, + y=df_ta[columns_regex(df_ta, "KCL")[0]].values, + opacity=kc_opacity, + mode="lines", + line=dict(width=0.3, color="#EF6689"), + fill="tonexty", + fillcolor=fillcolor, + row=1, + col=1, + secondary_y=False, + ) + kctext = ( + columns_regex(df_ta, "KCL")[0] + .replace(f"KCL{mamode[0]}_", "KC") + .replace("_", ",") + .split(".")[0] + ) + fig.add_annotation( + xref="paper", + yref="paper", + text=f"{kctext}", + x=0, + xanchor="right", + xshift=-6, + yshift=-inchart_index * 18, + y=0.98, + font_size=14, + font_color="#B47DA0", + opacity=0.9, + ) + + return fig, inchart_index + 1 diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/volume_plugin.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/volume_plugin.py new file mode 100644 index 0000000000000000000000000000000000000000..277f735f639418ba7a0a482d53d3ccf10cd98ec3 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/plugins/volume_plugin.py @@ -0,0 +1,125 @@ +"""Volume technical indicators.""" + +import pandas as pd + +from openbb_charting.core.openbb_figure import OpenBBFigure +from openbb_charting.core.plotly_ta.base import ( + PltTA, + indicator, +) +from openbb_charting.core.plotly_ta.data_classes import ( + columns_regex, +) + + +class Volume(PltTA): + """Volume technical indicators.""" + + __subplots__ = ["ad", "adosc", "obv"] + + # Useless super delegation + # def __init__(self, *args, **kwargs): + # super().__init__(*args, **kwargs) + + @indicator() + def plot_ad(self, fig: OpenBBFigure, df_ta: pd.DataFrame, subplot_row: int): + """Add ad to plotly figure.""" + ad_col = columns_regex(df_ta, "AD")[0] + fig.add_scatter( + name="AD", + mode="lines", + line=dict(width=1.5, color=fig.theme.get_colors()[1]), + x=df_ta.index, + y=df_ta[ad_col].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + + fig.add_hline( + y=0, + fillcolor="white", + opacity=1, + layer="below", + line=dict(color="white", dash="dash", width=2), + row=subplot_row, + col=1, + secondary_y=False, + ) + + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="AD", + x=0, + xanchor="right", + xshift=-6, + y=0.98, + font_size=14, + font_color=fig.theme.get_colors()[1], + ) + fig["layout"][f"yaxis{subplot_row + 1}"].update(nticks=3, autorange=True) + + return fig, subplot_row + 1 + + @indicator() + def plot_adosc(self, fig: OpenBBFigure, df_ta: pd.DataFrame, subplot_row: int): + """Add adosc to plotly figure.""" + ad_col = columns_regex(df_ta, "ADOSC")[0] + fig.add_scatter( + name="ADOSC", + mode="lines", + line=dict(width=1.5, color=fig.theme.get_colors()[1]), + x=df_ta.index, + y=df_ta[ad_col].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="ADOSC", + x=0, + xanchor="right", + xshift=-6, + y=0.98, + font_size=14, + font_color=fig.theme.get_colors()[1], + ) + + return fig, subplot_row + 1 + + @indicator() + def plot_obv(self, fig: OpenBBFigure, df_ta: pd.DataFrame, subplot_row: int): + """Add obv to plotly figure.""" + obv_col = columns_regex(df_ta, "OBV")[0] + fig.add_scatter( + name="OBV", + mode="lines", + line=dict(width=1.5, color=fig.theme.get_colors()[1]), + x=df_ta.index, + y=df_ta[obv_col].values, + opacity=0.9, + row=subplot_row, + col=1, + secondary_y=False, + ) + + fig.add_annotation( + xref=f"x{subplot_row} domain", + yref=f"y{subplot_row + 1} domain", + text="OBV", + x=0, + xanchor="right", + xshift=-6, + y=0.98, + font_size=14, + font_color=fig.theme.get_colors()[1], + ) + fig["layout"][f"yaxis{subplot_row + 1}"].update(nticks=5, autorange=True) + + return fig, subplot_row + 1 diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/ta_class.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/ta_class.py new file mode 100644 index 0000000000000000000000000000000000000000..cebc6ea7ceb654e88c7872b4fc2c03b351ec30e0 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/ta_class.py @@ -0,0 +1,676 @@ +"""Technical Analysis class for Plotly.""" + +# pylint: disable=R0902,R0916,R0912,R0917 # type: ignore[index, assignment] + +import importlib +import inspect +import sys +import warnings +from pathlib import Path +from typing import TYPE_CHECKING, Any, Dict, List, Optional, Type, Union + +from openbb_charting.core.chart_style import ChartStyle +from openbb_charting.core.openbb_figure import OpenBBFigure +from openbb_charting.core.plotly_ta.base import PltTA +from openbb_charting.core.plotly_ta.data_classes import ChartIndicators +from openbb_charting.core.plotly_ta.ta_helpers import check_columns + +charting_EXTENSION_PATH = Path(__file__).parent.parent.parent +CHARTING_INSTALL_PATH = charting_EXTENSION_PATH.parent +PLUGINS_PATH = Path(__file__).parent / "plugins" +PLOTLY_TA: Optional["PlotlyTA"] = None + +if TYPE_CHECKING: + import pandas as pd + from openbb_core.app.model.charts.charting_settings import ChartingSettings + + +class PlotlyTA(PltTA): + """Plotly Technical Analysis class. + + This class is a singleton. It is created and then reused, to assure + the plugins are only loaded once. This is done by overriding the __new__ + method. The __init__ method is overridden to do nothing, except to clear + the internal data structures. + + Attributes + ---------- + inchart_colors (List[str]): + List of colors for inchart indicators + show_volume (bool): + Whether to show the volume subplot + ma_mode (List[str]): + List of available moving average modes + inchart (List[str]): + List of available inchart indicators + subplots (List[str]): + List of available subplots + + StaticMethods + ------------- + plot( + df: pd.DataFrame, + indicators: ChartIndicators, + fig: Optional[OpenBBFigure] = None, + symbol: Optional[str] = "", + candles: bool = True, + volume: bool = True, + ) -> OpenBBFigure: + Plots the chart with the given indicators + + + Examples + -------- + >>> from openbb import obb + >>> from charting.core.plotly_ta.ta_class import PlotlyTA + + >>> df = obb.equity.price.historical("SPY") + >>> indicators = dict( + >>> sma=dict(length=[20, 50, 100]), + >>> adx=dict(length=14), + >>> macd=dict(fast=12, slow=26, signal=9), + >>> rsi=dict(length=14), + >>> ) + >>> fig = PlotlyTA.plot(df, indicators=indicators) + >>> fig.show() + + If you want to plot the chart with the same indicators, you can + reuse the same instance of the class as follows: + + >>> ta = PlotlyTA() + >>> fig = ta.plot(df, indicators=indicators) + >>> df2 = obb.equity.price.historical("AAPL") + >>> fig2 = ta.plot(df2) + >>> fig.show() + >>> fig2.show() + """ + + inchart_colors: List[str] = [] + plugins: List[Type[PltTA]] = [] + df_ta: Optional["pd.DataFrame"] = None + close_column: Optional[str] = "close" + has_volume: bool = True + show_volume: bool = True + prepost: bool = False + charting_settings: Optional["ChartingSettings"] = None + theme: Optional[ChartStyle] = None + + def __new__(cls, *args, **kwargs): + """Create a new instance of the class. + + Method is overridden to create a singleton instance of the class. + """ + cls.charting_settings = kwargs.pop("charting_settings", cls.charting_settings) + cls.theme = cls.setup_theme( + chart_style=getattr(cls.charting_settings, "chart_style", ""), + user_styles_directory=getattr( + cls.charting_settings, "user_styles_directory", "" + ), + ) + cls.inchart_colors = cls.theme.get_colors() + + global PLOTLY_TA # pylint: disable=global-statement # noqa + if PLOTLY_TA is None: + # Creates the instance of the class and loads the plugins + # We set the global variable to the instance of the class so that + # the plugins are only loaded once + PLOTLY_TA = super().__new__(cls) # type: ignore[attr-defined, assignment] + PLOTLY_TA._locate_plugins( # type: ignore[attr-defined] + getattr(cls.charting_settings, "debug_mode", False) + ) + PLOTLY_TA.add_plugins(PLOTLY_TA.plugins) # type: ignore[attr-defined, assignment] + + return PLOTLY_TA + + def __init__(self, *args, **kwargs): + """Initialize the class. + + Method is overridden to do nothing, except to clear the internal data structures. + """ + if not args and not kwargs: + self._clear_data() + else: + self.df_fib = None # type: ignore + super().__init__(*args, **kwargs) + + @staticmethod + def setup_theme(chart_style, user_styles_directory) -> ChartStyle: + """Set up theme for charting.""" + return ChartStyle(chart_style, user_styles_directory) + + @property + def ma_mode(self) -> List[str]: + """List of available moving average modes.""" + return list(set(self.__ma_mode__)) + + @ma_mode.setter + def ma_mode(self, value: List[str]): + """Set list of available moving average modes.""" + self.__ma_mode__ = value + + @property + def inchart(self) -> List[str]: + """List of available inchart indicators.""" + return list(set(self.__inchart__)) + + @inchart.setter + def inchart(self, value: List[str]): + """Set list of available inchart indicators.""" + self.__inchart__ = value + + @property + def subplots(self) -> List[str]: + """List of available subplots.""" + return list(set(self.__subplots__)) + + @subplots.setter + def subplots(self, value: List[str]): + """Set list of available subplots.""" + self.__subplots__ = value + + # pylint: disable=R0913 + def __plot__( + self, + df_stock: Union["pd.DataFrame", "pd.Series"], + indicators: Optional[Union[ChartIndicators, Dict[str, Dict[str, Any]]]] = None, + symbol: str = "", + candles: bool = True, + volume: bool = True, + prepost: bool = False, + fig: Optional[OpenBBFigure] = None, + volume_ticks_x: int = 7, + ) -> OpenBBFigure: + """Do not call this directly. + + Use the PlotlyTA.plot() static method instead. + """ + # pylint: disable=import-outside-toplevel + import pandas as pd + + if isinstance(df_stock, pd.Series): + df_stock = df_stock.to_frame() + + if not isinstance(indicators, ChartIndicators): + indicators = ChartIndicators.from_dict(indicators or {}) + + # Apply to_datetime to the index in a way that handles daylight savings. + df_stock.loc[:, "date"] = df_stock.index # type: ignore + df_stock["date"] = df_stock["date"].apply(pd.to_datetime) + df_stock.index = df_stock["date"] # type: ignore + df_stock.drop(columns=["date"], inplace=True) + + self.indicators = indicators + self.intraday = df_stock.index[-2].time() != df_stock.index[-1].time() + self.df_stock = df_stock.sort_index(ascending=True) + self.close_column = check_columns(self.df_stock) + self.params = self.indicators.get_params() + + self.has_volume = "volume" in self.df_stock.columns and bool( + self.df_stock["volume"].sum() > 0 + ) + self.show_volume = volume and self.has_volume + + self.prepost = prepost + + return self.plot_fig( + fig=fig, symbol=symbol, candles=candles, volume_ticks_x=volume_ticks_x + ) + + @staticmethod + def plot( + df_stock: Union["pd.DataFrame", "pd.Series"], + indicators: Optional[Union[ChartIndicators, Dict[str, Dict[str, Any]]]] = None, + symbol: str = "", + candles: bool = True, + volume: bool = True, + prepost: bool = False, + fig: Optional[OpenBBFigure] = None, + volume_ticks_x: int = 7, + ) -> OpenBBFigure: + """Plot a chart with the given indicators. + + Parameters + ---------- + df_stock : pd.DataFrame + Dataframe with stock data + indicators : Union[ChartIndicators, Dict[str, Dict[str, Any]]] + ChartIndicators object or dictionary with indicators and parameters to plot + Example: + dict( + sma=dict(length=[20, 50, 100]), + adx=dict(length=14), + macd=dict(fast=12, slow=26, signal=9), + rsi=dict(length=14), + ) + symbol : str, optional + Symbol to plot, by default uses the dataframe.name attribute if available or "" + candles : bool, optional + Plot a candlestick chart, by default True (if False, plots a line chart) + volume : bool, optional + Plot volume, by default True + prepost : bool, optional + Plot pre and post market data, by default False + fig : OpenBBFigure, optional + Plotly figure to plot on, by default None + volume_ticks_x : int, optional + Number to multiply volume, by default 7 + """ + if indicators is None and PLOTLY_TA is not None: + indicators = PLOTLY_TA.indicators + + return PlotlyTA().__plot__( # type: ignore + df_stock, indicators, symbol, candles, volume, prepost, fig, volume_ticks_x + ) + + @staticmethod + def _locate_plugins(debug: Optional[bool] = False) -> None: + """Locate all the plugins in the plugins folder.""" + path = ( + Path(sys.executable).parent + if hasattr(sys, "frozen") + else CHARTING_INSTALL_PATH + ) + if debug: + warnings.warn(f"[bold green]Loading plugins from {path}[/]") + warnings.warn("[bold green]Plugins found:[/]") + + for plugin in Path(__file__).parent.glob("plugins/*_plugin.py"): + python_path = plugin.relative_to(path).with_suffix("") + + if debug: + warnings.warn(f" [bold red]{plugin.name}[/]") + warnings.warn(f" [bold yellow]{python_path}[/]") + warnings.warn(f" [bold bright_cyan]{__package__}[/]") + warnings.warn(f" [bold magenta]{python_path.parts}[/]") + warnings.warn( + f" [bold bright_magenta]{'.'.join(python_path.parts)}[/]" + ) + + module = importlib.import_module( + ".".join(python_path.parts), package=__package__ + ) + for _, obj in inspect.getmembers(module): + if ( + inspect.isclass(obj) + and issubclass(obj, (PltTA)) + and obj != PlotlyTA.__class__ + ) and obj not in PlotlyTA.plugins: + PlotlyTA.plugins.append(obj) + + def _clear_data(self): + """Clear and reset all data to default values.""" + self.df_stock = None # type: ignore + self.indicators = ChartIndicators.from_dict({}) + self.params = None + self.intraday = False + self.show_volume = True + + def calculate_indicators(self): + """Return dataframe with all indicators.""" + return self.indicators.to_dataframe(self.df_stock.copy(), self.ma_mode) # type: ignore + + def get_subplot(self, subplot: str) -> bool: + """Return True if subplots will be able to be plotted with current data.""" + if subplot == "volume": + return self.show_volume + + if subplot in ["ad", "adosc", "obv", "vwap"] and not self.has_volume: + self.indicators.remove_indicator(subplot) + warnings.warn( + f"[bold red]Warning:[/] [yellow]{subplot.upper()}" + " requires volume data to be plotted but no volume data was found." + " Indicator will not be plotted.[/]" + ) + return False + + output = False + + try: + indicator = self.indicators.get_indicator(subplot) + if indicator is None: + return False + + output = self.indicators.get_indicator_data( + self.df_stock.copy(), # type: ignore + indicator, + **self.indicators.get_options_dict(indicator.name) or {}, + ) + if not isinstance(output, bool): + output = output.dropna() # type: ignore + + if output is None or output.empty: + output = False + + return True + + except Exception: + output = False + + return output + + def check_subplots(self, subplots: list) -> list: + """Return list of subplots that can be plotted with current data.""" + output = [] + for subplot in subplots: + if self.get_subplot(subplot): + output.append(subplot) + + return output + + def get_fig_settings_dict(self): + """Return dictionary with settings for plotly figure.""" + row_params = { + "0": dict(rows=1, row_width=[1]), + "1": dict(rows=2, row_width=[0.3, 0.7]), + "2": dict(rows=3, row_width=[0.15, 0.15, 0.7]), + "3": dict(rows=4, row_width=[0.2, 0.2, 0.2, 0.4]), + "4": dict(rows=5, row_width=[0.15, 0.15, 0.15, 0.15, 0.4]), + } + + check_active = self.indicators.get_active_ids() + subplots = [subplot for subplot in self.subplots if subplot in check_active] + + check_rows = min(len(self.check_subplots(subplots)), 4) + check_rows += 1 if "aroon" in subplots and (check_rows + 1) < 5 else 0 + + specs = [[{"secondary_y": True}]] + [[{"secondary_y": False}]] * check_rows + + output = row_params.get(str(check_rows), dict(rows=1, row_width=[1])) + output.update(dict(cols=1, vertical_spacing=0.04, specs=specs)) + + return output + + def init_plot(self, symbol: str = "", candles: bool = True) -> OpenBBFigure: + """Create plotly figure with subplots. + + Parameters + ---------- + symbol : str, optional + Symbol to plot, by default uses the dataframe.name attribute if available or "" + candles : bool, optional + Plot a candlestick chart, by default True (if False, plots a line chart) + + Returns + ------- + fig : OpenBBFigure + Plotly figure with candlestick/line chart and volume bar chart (if enabled) + """ + fig = OpenBBFigure(charting_settings=self.charting_settings) + fig = fig.create_subplots( + 1, + 1, + shared_xaxes=True, + vertical_spacing=0.06, + horizontal_spacing=0.01, + row_width=[1], + specs=[[{"secondary_y": True}]], + ) + cc_linewidth = ( + 0.8 if len(self.df_stock.index) > 500 else 0.9 if self.intraday else 1.1 + ) + if candles: + fig.add_candlestick( + x=self.df_stock.index, + open=self.df_stock.open, + high=self.df_stock.high, + low=self.df_stock.low, + close=self.df_stock.close, + decreasing=dict(line=dict(width=cc_linewidth)), + increasing=dict(line=dict(width=cc_linewidth)), + name=f"{symbol}", + showlegend=False, + row=1, + col=1, + secondary_y=False, + hoverinfo="x+y", + ) + else: + fig.add_scatter( + x=self.df_stock.index, + y=self.df_stock[self.close_column], # type: ignore + name=f"{symbol}", + connectgaps=True, + row=1, + col=1, + secondary_y=False, + ) + fig.update_layout(yaxis=dict(nticks=15)) + if self.theme: + self.inchart_colors = self.theme.get_colors()[1:] + + fig.set_title(symbol, x=0.5, y=0.98, xanchor="center", yanchor="top") + return fig + + def plot_fig( # noqa: PLR0912 + self, + fig: Optional[OpenBBFigure] = None, + symbol: str = "", + candles: bool = True, + volume_ticks_x: int = 7, + ) -> OpenBBFigure: + """Plot indicators on plotly figure. + + Parameters + ---------- + fig : OpenBBFigure, optional + Plotly figure to plot indicators on, by default None + symbol : str, optional + Symbol to plot, by default uses the dataframe.name attribute if available or "" + candles : bool, optional + Plot a candlestick chart, by default True (if False, plots a line chart) + volume_ticks_x : int, optional + Number to multiply volume, by default 7 + + Returns + ------- + fig : OpenBBFigure + Plotly figure with candlestick/line chart and volume bar chart (if enabled) + """ + self.df_ta = self.calculate_indicators() + + symbol = ( # type: ignore + self.df_stock.name + if hasattr(self.df_stock, "name") and not symbol + else symbol + ) + + figure = self.init_plot(symbol, candles) if fig is None else fig + subplot_row, fig_new = 2, {} + inchart_index, ma_done = 0, False + + figure = self.process_fig(figure, volume_ticks_x) + + # Aroon indicator is always plotted first since it has 2 subplot rows. + # ATR messes up the volume layout so we plot it last. + plot_indicators = sorted( + self.indicators.get_active_ids(), + key=lambda x: ( + 50 + if x == "aroon" + else 1000 if x == "atr" else 999 if x in self.subplots else 1 + ), + ) + + for indicator in plot_indicators: + try: + if indicator in self.subplots: + figure, subplot_row = getattr(self, f"plot_{indicator}")( + figure, self.df_ta, subplot_row + ) + elif indicator in self.ma_mode or indicator in self.inchart: + if indicator in self.ma_mode: + if ma_done: + continue + indicator, ma_done = "ma", True # noqa + + figure, inchart_index = getattr(self, f"plot_{indicator}")( + figure, self.df_ta, inchart_index + ) + figure.layout.annotations = None + elif indicator in ["fib", "srlines", "demark", "clenow", "ichimoku"]: + figure = getattr(self, f"plot_{indicator}")(figure, self.df_ta) + else: + raise ValueError(f"Unknown indicator: {indicator}") + + fig_new.update(figure.to_plotly_json()) + + remaining_subplots = ( + list( + set(plot_indicators[plot_indicators.index(indicator) + 1 :]) + - set(self.inchart) + ) + if indicator != "ma" + else [] + ) + if subplot_row > 5 and remaining_subplots: + warnings.warn( + f"[bold red]Reached max number of subplots. " + f"Skipping {', '.join(remaining_subplots)}[/]" + ) + break + except Exception as e: + warnings.warn(f"[bold red]Error plotting {indicator}: {e}[/]") + continue + + for row in range(0, subplot_row + 1): + figure.update_yaxes( + row=row, + col=1, + secondary_y=False, + nticks=15 if subplot_row < 3 else 6, + tickfont=dict(size=12), + ) + figure.update_traces( + selector=dict(type="scatter", mode="lines"), connectgaps=True + ) + if hasattr(figure, "hide_holidays"): + figure.hide_holidays(self.prepost) # type: ignore + + if not self.show_volume: + figure.update_layout(margin=dict(l=20)) + + # We remove xaxis labels from all but bottom subplot, + # and we make sure they all match the bottom one + xbottom = f"y{subplot_row+1}" + xaxes = list(figure.select_xaxes()) + for xa in xaxes: + if xa == xaxes[-1]: + xa.showticklabels = True + if not xa.showticklabels and xa.anchor != xbottom: + xa.showticklabels = False + if xa.anchor != xbottom: + xa.matches = xbottom.replace("y", "x") + + fib_legend_shown = False + sr_legend_shown = False + for item in figure.data: + if item.name: + item.name = item.name.replace("_", " ") + if "MA " not in item.name: + item.showlegend = False + if "" in item.name: + item.name = "Fib" + item.hoverinfo = "none" + item.hoveron = "fills" + item.pop("hovertemplate", None) + item.legendgroup = "Fib" + if not fib_legend_shown: + item.showlegend = True + fib_legend_shown = True + if ( + "Historical" not in item.name + and "Candlestick" not in item.name + and "Fib" not in item.name + and item.name is not None + ): + if ( + "MA " in item.name + or "VWAP" in item.name + or "DC" in item.name + or "KC" in item.name + or "-sen" in item.name + or "Senkou" in item.name + ): + item.showlegend = True + item.hoverinfo = "y" + item.hovertemplate = "%{fullData.name}:%{y}" + else: + item.hovertemplate = "%{y}" + if item.name is None: + item.name = "SR Lines" + item.hoverinfo = "none" + item.hoveron = "fills" + item.legendgroup = "SR Lines" + item.pop("hovertemplate", None) + item.opacity = 0.5 + if not sr_legend_shown: + item.showlegend = True + sr_legend_shown = True + + if "annotations" in figure.layout: + for item in figure.layout.annotations: # type: ignore + item["font"]["size"] = 14 + figure.update_layout(margin=dict(l=50, r=10, b=10, t=20)) + return figure + + def process_fig(self, fig: OpenBBFigure, volume_ticks_x: int = 7) -> OpenBBFigure: + """Process plotly figure before plotting indicators. + + Parameters + ---------- + fig : OpenBBFigure + Plotly figure to process + volume_ticks_x : int, optional + Number to multiply volume, by default 7 + + Returns + ------- + fig : OpenBBFigure + Processed plotly figure + """ + new_subplot = OpenBBFigure(charting_settings=self.charting_settings) + new_subplot = fig.create_subplots( + shared_xaxes=True, **self.get_fig_settings_dict() + ) + subplots: Dict[str, Dict[str, List[Any]]] = {} + grid_ref = fig._validate_get_grid_ref() # pylint: disable=protected-access + for r, plot_row in enumerate(grid_ref): + for c, plot_refs in enumerate(plot_row): + if not plot_refs: + continue + for subplot_ref in plot_refs: + if subplot_ref.subplot_type == "xy": + xaxis, yaxis = subplot_ref.layout_keys + xref = xaxis.replace("axis", "") + yref = yaxis.replace("axis", "") + row = r + 1 + col = c + 1 + subplots.setdefault(xref, {}).setdefault(yref, []).append( + (row, col) + ) + + for trace in fig.select_traces(): + xref, yref = trace.xaxis, trace.yaxis + row, col = subplots[xref][yref][0] + new_subplot.add_trace(trace, row=row, col=col, secondary_y=False) + + fig_json = fig.to_plotly_json()["layout"] + for layout in fig_json: + if ( + isinstance(fig_json[layout], dict) + and "domain" in fig_json[layout] + and any(x in layout for x in ["xaxis", "yaxis"]) + ): + fig_json[layout]["domain"] = new_subplot.to_plotly_json()["layout"][ + layout + ]["domain"] + + fig.layout.update({layout: fig_json[layout]}) # type: ignore + new_subplot.layout.update({layout: fig.layout[layout]}) # type: ignore + + if self.show_volume: + new_subplot.add_inchart_volume( + self.df_stock, self.close_column, volume_ticks_x=volume_ticks_x # type: ignore + ) + + return new_subplot diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/ta_helpers.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/ta_helpers.py new file mode 100644 index 0000000000000000000000000000000000000000..5b826867575c93c472e9299a2fd689cfd96cc327 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/plotly_ta/ta_helpers.py @@ -0,0 +1,53 @@ +"""Helper functions for technical analysis indicators.""" + +from typing import TYPE_CHECKING, Optional + +if TYPE_CHECKING: + from pandas import DataFrame + + +def check_columns( + data: "DataFrame", high: bool = True, low: bool = True, close: bool = True +) -> Optional[str]: + """Return the close columns, or None if the dataframe does not have required columns. + + Parameters + ---------- + data: DataFrame + The dataframe to check + high: bool + Whether to check for high column + low: bool + Whether to check for low column + close: bool + Whether to check for close column + + Returns + ------- + Optional[str] + The name of the close column, none if df is invalid + """ + # pylint: disable=import-outside-toplevel + import re + + close_regex = r"(Adj\sClose|adj_close|Close)" + # pylint: disable=too-many-boolean-expressions + if ( + (re.findall(r"High", str(data.columns), re.IGNORECASE) is None and high) + or (re.findall(r"Low", str(data.columns), re.IGNORECASE) is None and low) + or (close_col := re.findall(close_regex, str(data.columns), re.IGNORECASE)) + is None + and close + ): + raise ValueError( + " Please make sure that the columns 'High', 'Low', and 'Close'" + " are in the dataframe." + ) + + close_col = [col for col in close_col if col in data.columns] + + # giving priority to the standard close column + if "close" in close_col: + return "close" + + return close_col[-1] diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/table.html b/openbb_platform/obbject_extensions/charting/openbb_charting/core/table.html new file mode 100644 index 0000000000000000000000000000000000000000..934e7d4d62d34bcba91ea4f33b73a6a66787f1bc --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/table.html @@ -0,0 +1,171 @@ + + + + + + OpenBB Interactive Tables + + + + + +
+ + diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/core/to_chart.py b/openbb_platform/obbject_extensions/charting/openbb_charting/core/to_chart.py new file mode 100644 index 0000000000000000000000000000000000000000..c0618a7025ce7633f34f8d19e488c7ddfecf7c1d --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/core/to_chart.py @@ -0,0 +1,68 @@ +"""Module containing the to_chart function.""" + +from typing import TYPE_CHECKING, Any, Dict, Optional, Tuple, Union + +if TYPE_CHECKING: + from openbb_charting.core.plotly_ta.data_classes import ChartIndicators # noqa + from openbb_charting.core.openbb_figure import OpenBBFigure # noqa + from pandas import DataFrame, Series # noqa + + +def to_chart( + data: Union["DataFrame", "Series"], + indicators: Optional[Union["ChartIndicators", Dict[str, Dict[str, Any]]]] = None, + symbol: str = "", + candles: bool = True, + volume: bool = True, + prepost: bool = False, + volume_ticks_x: int = 7, +) -> Tuple["OpenBBFigure", Dict[str, Any]]: + """Return the plotly json representation of the chart. + + This function is used so it can be called at the module level and used out of the box, + which allows some more flexibility, ease of use and doesn't require the user to know + about the PlotlyTA class. + + Parameters + ---------- + data : Union[DataFrame, Series] + Data to be plotted. + indicators : Optional[Union[ChartIndicators, Dict[str, Dict[str, Any]]]], optional + Indicators to be plotted, by default None + symbol : str, optional + Symbol to be plotted, by default "" + candles : bool, optional + If True, candles will be plotted, by default True + volume : bool, optional + If True, volume will be plotted, by default True + prepost : bool, optional + If True, prepost will be plotted, by default False + volume_ticks_x : int, optional + Volume ticks, by default 7 + + Returns + ------- + Tuple[OpenBBFigure, Dict[str, Any]] + Tuple containing the OpenBBFigure and the plotly json representation of the chart. + """ + # pylint: disable=import-outside-toplevel + from openbb_charting.core.plotly_ta.ta_class import PlotlyTA + + try: + ta = PlotlyTA() + fig = ta.plot( + df_stock=data, + indicators=indicators, + symbol=symbol, + candles=candles, + volume=volume, + prepost=prepost, + volume_ticks_x=volume_ticks_x, + ) + content = fig.show(external=True).to_plotly_json() + + return fig, content + except Exception as e: + raise Exception( + f"Failed to convert results to chart. Ensure the provided data is a valid time series. {e}" + ) from e diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/query_params.py b/openbb_platform/obbject_extensions/charting/openbb_charting/query_params.py new file mode 100644 index 0000000000000000000000000000000000000000..82ada35af10b1a8e668786159d77ea944f5223e8 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/query_params.py @@ -0,0 +1,852 @@ +"""Charting Extension Query Params.""" + +# pylint: disable=unused-variable,unused-argument + +from typing import Any, Dict, List, Literal, Optional, Union + +from openbb_core.provider.abstract.data import Data +from openbb_core.provider.abstract.query_params import QueryParams +from pydantic import Field, model_validator + +from openbb_charting.core.plotly_ta.data_classes import ChartIndicators + +MAMODES = Literal["ema", "sma", "wma", "hna", "zlma", "rma"] + + +def _get_type_name(t): + """Get the type name of a type hint.""" + if hasattr(t, "__origin__"): + if hasattr(t.__origin__, "__name__"): + return f"{t.__origin__.__name__}[{', '.join([_get_type_name(arg) for arg in t.__args__])}]" + if hasattr(t.__origin__, "_name"): + return f"{t.__origin__._name}[{', '.join([_get_type_name(arg) for arg in t.__args__])}]" # pylint: disable=W0212 + if isinstance(t, str): + return t + if hasattr(t, "__name__"): + return t.__name__ + if hasattr(t, "_name"): + return t._name # pylint: disable=W0212 + return str(t) + + +class BaseQueryParams(QueryParams): + """Base Query Parmams Base Model.""" + + def __init__(self, **data): + """Initialize the BaseQueryParams.""" + super().__init__(**data) + self.__doc__ = self.__repr__() + + def __repr__(self): + """Return the string representation of the model.""" + fields = self.__class__.model_fields + repr_str = ( + "\n" + + self.__class__.__name__ + + "\n\n" + + " Parameters\n" + + " ----------\n" + + "\n".join( + [ + f"\n {k} : {_get_type_name(v.annotation)}\n {v.description}".replace( + ". ", ".\n " + ) + for k, v in fields.items() + ] + ) + ) + return repr_str + + +class ChartQueryParams(BaseQueryParams): + """ChartParams.""" + + data: Optional[Union[Data, List[Data]]] = Field( + default=None, + description="Filtered versions of the data contained in the original `self.results`." + + " Columns should be the same as the original data." + + " Example use is to reduce the number of columns, or the length of data, to plot.", + ) + + +class EquityPricePerformanceChartQueryParams(ChartQueryParams): + """Equity Price Performance Chart Query Params.""" + + title: Optional[str] = Field( + default=None, + description="Title of the chart.", + ) + orientation: Literal["v", "h"] = Field( + default="v", + description="Orientation of the bars.", + ) + limit: Optional[int] = Field( + default=None, + description="Limit the number of bars to plot, from the most recent." + + " If None, the periods from one-day to five-years will be plotted, if available.", + ) + layout_kwargs: Optional[Dict[str, Any]] = Field( + default=None, + description="Additional keyword arguments to pass to the Plotly `update_layout` method.", + ) + + +class EtfPricePerformanceChartQueryParams(EquityPricePerformanceChartQueryParams): + """ETF Price Performance Chart Query Params.""" + + +class EtfHoldingsChartQueryParams(ChartQueryParams): + """ETF Holdings Chart Query Params.""" + + title: Optional[str] = Field( + default=None, + description="Title of the chart.", + ) + orientation: Literal["v", "h"] = Field( + default="v", + description="Orientation of the bars.", + ) + limit: Optional[int] = Field( + default=20, + description="Limit the number of bars to plot, ranked by top weighting.", + ) + layout_kwargs: Optional[Dict[str, Any]] = Field( + default=None, + description="Additional keyword arguments to pass to the Plotly `update_layout` method.", + ) + + +class EquityPriceHistoricalChartQueryParams(ChartQueryParams): + """Equity Historical Price Chart Query Params.""" + + title: Optional[str] = Field( + default=None, + description="Title of the chart.", + ) + target: Optional[str] = Field( + default=None, + description="The specific column to target. If supplied, this will override the candles and volume parameters.", + ) + multi_symbol: bool = Field( + default=False, + description="Flag to indicate whether the data contains multiple symbols." + + " This is mostly handled automatically, but if the chart fails to generate try setting this to True.", + ) + same_axis: bool = Field( + default=False, + description="If True, forces all data to be plotted on the same axis.", + ) + normalize: bool = Field( + default=False, + description="If True, the data will be normalized and placed on the same axis.", + ) + returns: bool = Field( + default=False, + description="If True, the cumulative returns for the length of the time series will be calculated and plotted.", + ) + candles: bool = Field( + default=True, + description="If True, and OHLC exists, and there is only one symbol in the data, candles will be plotted.", + ) + heikin_ashi: bool = Field( + default=False, + description="If True, and `candles=True`, Heikin Ashi candles will be plotted.", + ) + volume: bool = Field( + default=True, + description="If True, and volume exists, and `candles=True`, volume will be plotted.", + ) + indicators: Optional[Union[ChartIndicators, Dict[str, Dict[str, Any]]]] = Field( + default=None, + description="Indicators to be plotted, formatted as a dictionary." + + " Data containing multiple symbols will ignore indicators." + + """ + Example: + indicators = dict( + sma=dict(length=[20,30,50]), + adx=dict(length=14), + rsi=dict(length=14), + )""", + ) + + +class EconomyFredSeriesChartQueryParams(ChartQueryParams): + """FRED Series Chart Query Params.""" + + title: Optional[str] = Field( + default=None, + description="Title of the chart.", + ) + y1title: Optional[str] = Field( + default=None, + description="Right Y-axis title.", + ) + y2title: Optional[str] = Field( + default=None, + description="Left Y-axis title.", + ) + xtitle: Optional[str] = Field( + default=None, + description="X-axis title.", + ) + dropnan: bool = Field( + default=True, + description="If True, rows containing NaN will be dropped.", + ) + normalize: bool = Field( + default=False, + description="If True, the data will be normalized and placed on the same axis.", + ) + allow_unsafe: bool = Field( + default=False, + description="If True, the method will attempt to pass all supplied data to the chart constructor." + + " This can result in unexpected behavior.", + ) + plot_bar: bool = Field( + default=False, + description="If True, a bar chart will be plotted instead of a line." + + " If multiple units of measure are present, they will be normalized and plotted on the same axis.", + ) + barmode: Literal["stack", "group", "relative"] = Field( + default="group", + description="The mode to use for the bar chart, by default is 'group'." + + " Has no effect if `bar=False`.", + ) + layout_kwargs: Optional[Dict[str, Any]] = Field( + default=None, + description="Additional keyword arguments to pass to the Plotly `update_layout` method.", + ) + + +class TechnicalConesChartQueryParams(ChartQueryParams): + """Technical Cones Chart Query Params.""" + + title: Optional[str] = Field( + default=None, + description="Title of the chart.", + ) + symbol: Optional[str] = Field( + default=None, + description="Symbol represented by the data. Used to label the chart.", + ) + + +class MAQueryParams(ChartQueryParams): + """Moving Average Query Params.""" + + target: str = Field( + default="close", + description="The column to calculate the moving average on.", + ) + index: str = Field( + default="date", + description="The index column.", + ) + length: Optional[Union[int, List[int]]] = Field( + default=50, + description="Window length for the moving average." + "+ The number is relative to the interval of the time series data.", + ) + offset: Optional[int] = Field( + default=0, + description="Number of periods to offset for the moving average.", + ) + dropnan: bool = Field( + default=False, + description="If True, rows containing NaN will be dropped." + + " This will reduce the length of the charted data by the longest window.", + ) + symbol: Optional[str] = Field( + default=None, + description="Symbol represented by the data. Used to label the chart.", + ) + + +class FixedincomeGovernmentYieldCurve(ChartQueryParams): + """Fixed Income Government Yield Curve Chart Query Params.""" + + title: Optional[str] = Field( + default=None, + description="Title of the chart.", + ) + colors: Optional[List[str]] = Field( + default=None, + description="List of colors to use for the lines.", + ) + layout_kwargs: Optional[Dict[str, Any]] = Field( + default=None, + description="Additional keyword arguments to pass to the Plotly `update_layout` method.", + ) + + +class TechnicalSMAChartQueryParams(MAQueryParams): + """Technical SMA Chart Query Params.""" + + +class TechnicalEMAChartQueryParams(MAQueryParams): + """Technical EMA Chart Query Params.""" + + +class TechnicalHMAChartQueryParams(MAQueryParams): + """Technical HMA Chart Query Params.""" + + +class TechnicalWMAChartQueryParams(MAQueryParams): + """Technical WMA Chart Query Params.""" + + +class TechnicalZLMAChartQueryParams(MAQueryParams): + """Technical ZLMA Chart Query Params.""" + + +class TechnicalADXChartQueryParams(ChartQueryParams): + """Technical ADX Chart Query Params.""" + + length: Optional[int] = Field( + default=50, + description="Window length for the ADX, by default is 50.", + ) + scalar: Optional[float] = Field( + default=100, + description="Scalar to multiply the ADX by, default is 100.", + ) + drift: Optional[int] = Field( + default=1, + description="Drift value for the ADX, by default is 1.", + ) + + +class TechnicalArooonChartQueryParams(ChartQueryParams): + """Technical Aroon Chart Query Params.""" + + length: Optional[int] = Field( + default=25, + description="Window length for the Aroon, by default is 50.", + ) + scalar: Optional[float] = Field( + default=100, + description="Scalar to multiply the Aroon by, default is 100.", + ) + + +class TechnicalMACDChartQueryParams(ChartQueryParams): + """Technical MACD Chart Query Params.""" + + fast: Optional[int] = Field( + default=12, + description="Window length for the fast EMA, by default is 12.", + ) + slow: Optional[int] = Field( + default=26, + description="Window length for the slow EMA, by default is 26.", + ) + signal: Optional[int] = Field( + default=9, + description="Window length for the signal line, by default is 9.", + ) + scalar: Optional[float] = Field( + default=100, + description="Scalar to multiply the MACD by, default is 100.", + ) + + +class TechnicalRSIChartQueryParams(ChartQueryParams): + """Technical RSI Chart Query Params.""" + + length: Optional[int] = Field( + default=14, + description="Window length for the RSI, by default is 14.", + ) + scalar: Optional[float] = Field( + default=100, + description="Scalar to multiply the RSI by, default is 100.", + ) + drift: Optional[int] = Field( + default=1, + description="Drift value for the RSI, by default is 1.", + ) + + +class TechnicalRelativeRotationChartQueryParams(ChartQueryParams): + """Technical Relative Rotation Chart Query Params.""" + + date: Optional[str] = Field( + default=None, + description="A target end date within the data to use for the chart, by default is the last date in the data.", + ) + show_tails: bool = Field( + default=True, + description="Show the tails on the chart, by default True.", + ) + tail_periods: Optional[int] = Field( + default=16, + description="Number of periods to show in the tails, by default 16.", + ) + tail_interval: Literal["day", "week", "month"] = Field( + default="week", + description="The interval to show the tails, by default 'week'.", + ) + title: Optional[str] = Field( + default=None, + description="Title of the chart.", + ) + + +class ChartParams: + """Chart Query Params.""" + + crypto_price_historical = EquityPriceHistoricalChartQueryParams + derivatives_futures_historical = EquityPriceHistoricalChartQueryParams + equity_price_historical = EquityPriceHistoricalChartQueryParams + economy_fred_series = EconomyFredSeriesChartQueryParams + equity_price_historical = EquityPriceHistoricalChartQueryParams + equity_price_performance = EquityPricePerformanceChartQueryParams + etf_historical = EtfPricePerformanceChartQueryParams + etf_holdings = EtfHoldingsChartQueryParams + etf_price_performance = EquityPricePerformanceChartQueryParams + index_price_historical = EquityPriceHistoricalChartQueryParams + technical_adx = TechnicalADXChartQueryParams + technical_aroon = TechnicalArooonChartQueryParams + technical_cones = TechnicalConesChartQueryParams + technical_ema = TechnicalEMAChartQueryParams + technical_hma = TechnicalHMAChartQueryParams + technical_macd = TechnicalMACDChartQueryParams + technical_relative_rotation = TechnicalRelativeRotationChartQueryParams + technical_rsi = TechnicalRSIChartQueryParams + technical_sma = TechnicalSMAChartQueryParams + technical_wma = TechnicalWMAChartQueryParams + technical_zlma = TechnicalZLMAChartQueryParams + + +class IndicatorsQueryParams(BaseQueryParams): + """Indicators Query Params.""" + + +class MAIndicatorsQueryParams(IndicatorsQueryParams): + """Moving Average Indicators Query Params.""" + + length: Union[int, List[int]] = Field( + default=50, + description="Window length for the moving average, by default is 50." + + " The number is relative to the interval of the time series data.", + ) + offset: int = Field( + default=0, + description="Number of periods to offset for the moving average, by default is 0.", + ) + + +class SMAIndicatorsQueryParams(MAIndicatorsQueryParams): + """Simple Moving Average Indicators Query Params.""" + + +class EMAIndicatorsQueryParams(MAIndicatorsQueryParams): + """Exponential Moving Average Indicators Query Params.""" + + +class HMAIndicatorsQueryParams(MAIndicatorsQueryParams): + """Hull Moving Average Indicators Query Params.""" + + +class WMAIndicatorsQueryParams(MAIndicatorsQueryParams): + """Weighted Moving Average Indicators Query Params.""" + + +class ZLMAIndicatorsQueryParams(MAIndicatorsQueryParams): + """Zero-Lag Moving Average Indicators Query Params.""" + + +class ADIndicatorsQueryParams(IndicatorsQueryParams): + """Accumulation/Distribution Indicators Query Params.""" + + offset: int = Field( + default=0, + description="Offset value for the AD, by default is 0.", + ) + + +class ADOscillatorIndicatorsQueryParams(IndicatorsQueryParams): + """Accumulation/Distribution Oscillator Indicators Query Params.""" + + fast: int = Field( + default=3, + description="Number of periods to use for the fast calculation, by default 3.", + ) + slow: int = Field( + default=10, + description="Number of periods to use for the slow calculation, by default 10.", + ) + offset: int = Field( + default=0, + description="Offset to be used for the calculation, by default is 0.", + ) + + +class ADXIndicatorsQueryParams(IndicatorsQueryParams): + """Average Directional Index Indicators Query Params.""" + + length: int = Field( + default=50, + description="Window length for the ADX, by default is 50.", + ) + scalar: float = Field( + default=100, + description="Scalar to multiply the ADX by, default is 100.", + ) + drift: int = Field( + default=1, + description="Drift value for the ADX, by default is 1.", + ) + + +class AroonIndicatorsQueryParams(IndicatorsQueryParams): + """Aroon Indicators Query Params.""" + + length: int = Field( + default=25, + description="Window length for the Aroon, by default is 50.", + ) + scalar: float = Field( + default=100, + description="Scalar to multiply the Aroon by, default is 100.", + ) + + +class ATRIndicatorsQueryParams(IndicatorsQueryParams): + """Average True Range Indicators Query Params.""" + + length: int = Field( + default=14, + description="Window length for the ATR, by default is 14.", + ) + mamode: Literal["rma", "ema", "sma", "wma"] = Field( + default="rma", + description="The mode to use for the moving average calculation.", + ) + drift: int = Field( + default=1, + description="The difference period.", + ) + offset: int = Field( + default=0, + description="Number of periods to offset the result, by default is 0.", + ) + + +class CCIIndicatorsQueryParams(IndicatorsQueryParams): + """Commodity Channel Index Indicators Query Params.""" + + length: int = Field( + default=14, + description="Window length for the CCI, by default is 14.", + ) + scalar: float = Field( + default=0.015, + description="Scalar to multiply the CCI by, default is 0.015.", + ) + + +class DonchianIndicatorsQueryParams(IndicatorsQueryParams): + """Donchian Channel Indicators Query Params.""" + + lower: Optional[int] = Field( + default=20, + description="Window length for the lower band, by default is 20.", + ) + upper: Optional[int] = Field( + default=20, + description="Window length for the upper band, by default is 20.", + ) + offset: Optional[int] = Field( + default=0, + description="Number of periods to offset the result, by default is 0.", + ) + + +class FisherIndicatorsQueryParams(IndicatorsQueryParams): + """Fisher Transform Indicators Query Params.""" + + length: int = Field( + default=14, + description="Window length for the Fisher Transform, by default is 14.", + ) + signal: int = Field( + default=1, + description="Fisher Signal Period", + ) + + +class KCIndicatorsQueryParams(IndicatorsQueryParams): + """Keltner Channel Indicators Query Params.""" + + length: int = Field( + default=20, + description="Window length for the Keltner Channel, by default is 20.", + ) + scalar: float = Field( + default=2, + description="Scalar to multiply the ATR, by default is 2.", + ) + mamode: MAMODES = Field( + default="rma", + description="The mode to use for the moving average calculation, by default is ema.", + ) + offset: int = Field( + default=0, + description="Number of periods to offset the result, by default is 0.", + ) + + +class MACDIndicatorsQueryParams(IndicatorsQueryParams): + """MACD Indicators Query Params.""" + + fast: Optional[int] = Field( + default=12, + description="Window length for the fast EMA, by default is 12.", + ) + slow: Optional[int] = Field( + default=26, + description="Window length for the slow EMA, by default is 26.", + ) + signal: Optional[int] = Field( + default=9, + description="Window length for the signal line, by default is 9.", + ) + scalar: Optional[float] = Field( + default=100, + description="Scalar to multiply the MACD by, default is 100.", + ) + + +class OBVIndicatorsQueryParams(IndicatorsQueryParams): + """On Balance Volume Indicators Query Params.""" + + offset: int = Field( + default=0, + description="Number of periods to offset the result, by default is 0.", + ) + + +class RSIIndicatorsQueryParams(IndicatorsQueryParams): + """RSI Indicators Query Params.""" + + length: int = Field( + default=14, + description="Window length for the RSI, by default is 14.", + ) + scalar: float = Field( + default=100, + description="Scalar to multiply the RSI by, default is 100.", + ) + drift: int = Field( + default=1, + description="Drift value for the RSI, by default is 1.", + ) + + +class StochIndicatorsQueryParams(IndicatorsQueryParams): + """Stochastic Oscillator Indicators Query Params.""" + + fast_k: int = Field( + default=14, + description="The fast K period, by default 14.", + ) + slow_d: int = Field( + default=3, + description="The slow D period, by default 3.", + ) + slow_k: int = Field( + default=3, + description="The slow K period, by default 3.", + ) + + +class FibIndicatorsQueryParams(IndicatorsQueryParams): + """Fibonacci Retracement Indicators Query Params.""" + + period: int = Field( + default=120, + description="The period to calculate the Fibonacci Retracement, by default 120.", + ) + start_date: Optional[str] = Field( + default=None, + description="The start date for the Fibonacci Retracement.", + ) + end_date: Optional[str] = Field( + default=None, + description="The end date for the Fibonacci Retracement.", + ) + + +class ClenowIndicatorsQueryParams(IndicatorsQueryParams): + """Clenow Volatility Adjusted Momentum Indicators Query Params.""" + + period: int = Field( + default=90, + description="The number of periods for the momentum, by default 90.", + ) + + +class DemarkIndicatorsQueryParams(IndicatorsQueryParams): + """Demark Indicators Query Params.""" + + show_all: bool = Field( + default=False, + description="Show 1 - 13. If set to False, show 6 - 9.", + ) + offset: int = Field( + default=0, + description="Number of periods to offset the result, by default is 0.", + ) + + +class IchimokuIndicatorsQueryParams(IndicatorsQueryParams): + """Ichimoku Cloud Indicators Query Params.""" + + conversion: int = Field( + default=9, + description="The conversion line period, by default 9.", + ) + base: int = Field( + default=26, + description="The base line period, by default 26.", + ) + lagging: int = Field( + default=52, + description="The lagging line period, by default 52.", + ) + offset: int = Field( + default=26, + description="The offset period, by default 26.", + ) + lookahead: bool = Field( + default=False, + description="Drops the Chikou Span Column to prevent potential data leak", + ) + + +class SRLinesIndicatorsQueryParams(IndicatorsQueryParams): + """Support and Resistance Lines Indicators Query Params.""" + + show: bool = Field( + default=True, + description="Show the support and resistance lines.", + ) + + +class IndicatorsParams(QueryParams): + """Indicators Query Params.""" + + sma: SMAIndicatorsQueryParams = Field( + default=SMAIndicatorsQueryParams(), + description=repr(SMAIndicatorsQueryParams()), + ) + ema: EMAIndicatorsQueryParams = Field( + default=EMAIndicatorsQueryParams(), + description=repr(EMAIndicatorsQueryParams()), + ) + hma: HMAIndicatorsQueryParams = Field( + default=HMAIndicatorsQueryParams(), + description=repr(HMAIndicatorsQueryParams()), + ) + wma: WMAIndicatorsQueryParams = Field( + default=WMAIndicatorsQueryParams(), + description=repr(WMAIndicatorsQueryParams()), + ) + zlma: ZLMAIndicatorsQueryParams = Field( + default=ZLMAIndicatorsQueryParams(), + description=repr(ZLMAIndicatorsQueryParams()), + ) + ad: ADIndicatorsQueryParams = Field( + default=ADIndicatorsQueryParams(), + description=repr(ADIndicatorsQueryParams()), + ) + adoscillator: ADOscillatorIndicatorsQueryParams = Field( + default=ADOscillatorIndicatorsQueryParams(), + description=repr(ADOscillatorIndicatorsQueryParams()), + ) + adx: ADXIndicatorsQueryParams = Field( + default=ADXIndicatorsQueryParams(), + description=repr(ADXIndicatorsQueryParams()), + ) + aroon: AroonIndicatorsQueryParams = Field( + default=AroonIndicatorsQueryParams(), + description=repr(AroonIndicatorsQueryParams()), + ) + atr: ATRIndicatorsQueryParams = Field( + default=ATRIndicatorsQueryParams(), + description=repr(ATRIndicatorsQueryParams()), + ) + cci: CCIIndicatorsQueryParams = Field( + default=CCIIndicatorsQueryParams(), + description=repr(CCIIndicatorsQueryParams()), + ) + clenow: ClenowIndicatorsQueryParams = Field( + default=ClenowIndicatorsQueryParams(), + description=repr(ClenowIndicatorsQueryParams()), + ) + demark: DemarkIndicatorsQueryParams = Field( + default=DemarkIndicatorsQueryParams(), + description=repr(DemarkIndicatorsQueryParams()), + ) + donchian: DonchianIndicatorsQueryParams = Field( + default=DonchianIndicatorsQueryParams(), + description=repr(DonchianIndicatorsQueryParams()), + ) + fib: FibIndicatorsQueryParams = Field( + default=FibIndicatorsQueryParams(), + description=repr(FibIndicatorsQueryParams()), + ) + fisher: FisherIndicatorsQueryParams = Field( + default=FisherIndicatorsQueryParams(), + description=repr(FisherIndicatorsQueryParams()), + ) + ichimoku: IchimokuIndicatorsQueryParams = Field( + default=IchimokuIndicatorsQueryParams(), + description=repr(IchimokuIndicatorsQueryParams()), + ) + kc: KCIndicatorsQueryParams = Field( + default=KCIndicatorsQueryParams(), + description=repr(KCIndicatorsQueryParams()), + ) + macd: MACDIndicatorsQueryParams = Field( + default=MACDIndicatorsQueryParams(), + description=repr(MACDIndicatorsQueryParams()), + ) + obv: OBVIndicatorsQueryParams = Field( + default=OBVIndicatorsQueryParams(), + description=repr(OBVIndicatorsQueryParams()), + ) + rsi: RSIIndicatorsQueryParams = Field( + default=RSIIndicatorsQueryParams(), + description=repr(RSIIndicatorsQueryParams()), + ) + srlines: SRLinesIndicatorsQueryParams = Field( + default=SRLinesIndicatorsQueryParams(), + description=repr(SRLinesIndicatorsQueryParams()), + ) + stoch: StochIndicatorsQueryParams = Field( + default=StochIndicatorsQueryParams(), + description=repr(StochIndicatorsQueryParams()), + ) + + def __repr__(self): + """Return the string representation of the model.""" + fields = self.__class__.model_fields + repr_str = "\n" + "\n".join( + [ + f"{str(v.description).replace('IndicatorsQueryParams', ':').replace('ADOs', 'AD Os')}" + for k, v in fields.items() + ] + ) + return repr_str + + @model_validator(mode="before") + @classmethod + def validate_model(cls, values): + """Validate the model.""" + indicators = list(ChartIndicators.get_available_indicators()) + for k, v in values.items(): + if k not in indicators: + raise ValueError(f"{k} is not a valid indicator.") + return values diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/styles/__init__.py b/openbb_platform/obbject_extensions/charting/openbb_charting/styles/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..05f805d0904177f65b28147a828b93f86bf2cbc6 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/styles/__init__.py @@ -0,0 +1 @@ +"""Charting Extension Styles""" diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/styles/colors.py b/openbb_platform/obbject_extensions/charting/openbb_charting/styles/colors.py new file mode 100644 index 0000000000000000000000000000000000000000..d904c0e7be02a0120299a798f6645ab8ce181b30 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/styles/colors.py @@ -0,0 +1,39 @@ +"""Color Palettes and Sequences for OpenBB Charting""" + +LARGE_CYCLER = [ + "#1f77b4", + "#7f7f7f", + "#ff7f0e", + "#2ca02c", + "#d62728", + "#9467bd", + "#8c564b", + "#e377c2", + "#bcbd22", + "#17becf", + "burlywood", + "magenta", + "cyan", + "yellowgreen", + "#aec7e8", + "#ffbb78", + "#ff9896", + "#c5b0d5", + "#c49c94", + "#f7b6d2", + "#c7c7c7", + "#dbdb8d", + "#9edae5", + "#7e7e7e", + "#1b9e77", + "#d95f02", + "#7570b3", + "#e7298a", + "#66a61e", + "#e6ab02", + "#a6761d", + "#666666", + "#f0027f", + "#bf5b17", + "#d9f202", +] diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/styles/default/dark.pltstyle.json b/openbb_platform/obbject_extensions/charting/openbb_charting/styles/default/dark.pltstyle.json new file mode 100644 index 0000000000000000000000000000000000000000..d5d75ac68260947e2b47a694de2944a351aea136 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/styles/default/dark.pltstyle.json @@ -0,0 +1,143 @@ +{ + "line": { + "up_color": "#00ACFF", + "down_color": "#e4003a", + "color": "#ffed00", + "width": 1.5 + }, + "data": { + "candlestick": [ + { + "decreasing": { + "fillcolor": "#e4003a", + "line": { + "color": "#e4003a" + } + }, + "increasing": { + "fillcolor": "#00ACFF", + "line": { + "color": "#00ACFF" + } + }, + "type": "candlestick" + } + ] + }, + "layout": { + "annotationdefaults": { + "showarrow": false + }, + "autotypenumbers": "strict", + "colorway": [ + "#1f77b4", + "#ff7f0e", + "#2ca02c", + "#d62728", + "#9467bd", + "#8c564b", + "#e377c2", + "#bcbd22", + "#17becf", + "#aec7e8", + "#ffbb78", + "#ff9896", + "#c5b0d5", + "#f7b6d2", + "#dbdb8d", + "#9edae5" + ], + "dragmode": "pan", + "font": { + "family": "Arial", + "size": 18 + }, + "hoverlabel": { + "align": "left" + }, + "mapbox": { + "style": "dark" + }, + "hovermode": "x", + "legend": { + "bgcolor": "rgba(0, 0, 0, 0)", + "x": 1, + "xanchor": "right", + "y": 1.02, + "yanchor": "bottom", + "font": { + "size": 12 + } + }, + "legend2": { + "bgcolor": "rgba(0, 0, 0, 0.5)", + "font": { + "size": 15 + } + }, + "legend3": { + "bgcolor": "rgba(0, 0, 0, 0.5)", + "font": { + "size": 15 + } + }, + "legend4": { + "bgcolor": "rgba(0, 0, 0, 0.5)", + "font": { + "size": 15 + } + }, + "legend5": { + "bgcolor": "rgba(0, 0, 0, 0.5)", + "font": { + "size": 15 + } + }, + "paper_bgcolor": "#000000", + "plot_bgcolor": "#000000", + "xaxis": { + "automargin": true, + "autorange": true, + "rangeslider": { + "visible": false + }, + "showgrid": true, + "showline": true, + "tickfont": { + "size": 14 + }, + "zeroline": false, + "tick0": 1, + "title": { + "standoff": 20, + "font": { + "size": 16 + } + }, + "linecolor": "#F5EFF3", + "mirror": true, + "ticks": "outside" + }, + "yaxis": { + "anchor": "x", + "automargin": true, + "fixedrange": false, + "zeroline": false, + "showgrid": true, + "showline": true, + "side": "right", + "tick0": 0.5, + "title": { + "standoff": 20, + "font": { + "size": 16 + } + }, + + "gridcolor": "rgba(128, 128, 128, 0.33)", + "linecolor": "#F5EFF3", + "mirror": true, + "ticks": "outside" + } + } +} diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/styles/default/light.pltstyle.json b/openbb_platform/obbject_extensions/charting/openbb_charting/styles/default/light.pltstyle.json new file mode 100644 index 0000000000000000000000000000000000000000..4f3198c498911c557861822d04a59942c81dc7fd --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/styles/default/light.pltstyle.json @@ -0,0 +1,142 @@ +{ + "line": { + "up_color": "#0074D9", + "down_color": "#FF4136", + "color": "#111111", + "width": 1.5 + }, + "data": { + "candlestick": [ + { + "decreasing": { + "fillcolor": "#e4003a", + "line": { + "color": "#e4003a" + } + }, + "increasing": { + "fillcolor": "#00ACFF", + "line": { + "color": "#00ACFF" + } + }, + "type": "candlestick" + } + ] + }, + "layout": { + "annotationdefaults": { + "showarrow": false + }, + "autotypenumbers": "strict", + "colorway": [ + "#1f77b4", + "#ff7f0e", + "#2ca02c", + "#d62728", + "#9467bd", + "#8c564b", + "#e377c2", + "#bcbd22", + "#17becf", + "#aec7e8", + "#ffbb78", + "#ff9896", + "#c5b0d5", + "#f7b6d2", + "#dbdb8d", + "#9edae5" + ], + "dragmode": "pan", + "font": { + "family": "Arial", + "size": 18 + }, + "hoverlabel": { + "align": "left" + }, + "mapbox": { + "style": "light" + }, + "hovermode": "x", + "legend": { + "bgcolor": "rgba(255, 255, 255, 0)", + "x": 1, + "xanchor": "right", + "y": 1.02, + "yanchor": "bottom", + "font": { + "size": 12 + } + }, + "legend2": { + "bgcolor": "rgba(255, 255, 255, 0.5)", + "font": { + "size": 15 + } + }, + "legend3": { + "bgcolor": "rgba(255, 255, 255, 0.5)", + "font": { + "size": 15 + } + }, + "legend4": { + "bgcolor": "rgba(255, 255, 255, 0.5)", + "font": { + "size": 15 + } + }, + "legend5": { + "bgcolor": "rgba(255, 255, 255, 0.5)", + "font": { + "size": 15 + } + }, + "paper_bgcolor": "#FFFFFF", + "plot_bgcolor": "#FFFFFF", + "xaxis": { + "automargin": true, + "autorange": true, + "rangeslider": { + "visible": false + }, + "showgrid": true, + "showline": true, + "tickfont": { + "size": 14 + }, + "zeroline": false, + "tick0": 1, + "title": { + "standoff": 20, + "font": { + "size": 16 + } + }, + "linecolor": "#A9A9A9", + "mirror": true, + "ticks": "outside" + }, + "yaxis": { + "anchor": "x", + "automargin": true, + "fixedrange": false, + "zeroline": false, + "showgrid": true, + "showline": true, + "side": "right", + "tick0": 0.5, + "title": { + "standoff": 20, + "font": { + "size": 16 + } + }, + "gridcolor": "rgba(128, 128, 128, 0.33)", + "linecolor": "#A9A9A9", + "mirror": true, + "ticks": "outside" + } + } +} \ No newline at end of file diff --git a/openbb_platform/obbject_extensions/charting/openbb_charting/styles/default/tables.pltstyle.json b/openbb_platform/obbject_extensions/charting/openbb_charting/styles/default/tables.pltstyle.json new file mode 100644 index 0000000000000000000000000000000000000000..69f80ef4d88cdf04d85492afd1b1cf4ce66e2b99 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/openbb_charting/styles/default/tables.pltstyle.json @@ -0,0 +1,102 @@ +{ + "data": { + "candlestick": [ + { + "decreasing": { + "fillcolor": "#e4003a", + "line": { + "color": "#e4003a" + } + }, + "increasing": { + "fillcolor": "#00ACFF", + "line": { + "color": "#00ACFF" + } + }, + "type": "candlestick" + } + ] + }, + "layout": { + "annotationdefaults": { + "showarrow": false + }, + "autotypenumbers": "strict", + "colorway": [ + "#ffed00", + "#ef7d00", + "#e4003a", + "#c13246", + "#822661", + "#48277c", + "#005ca9", + "#00aaff", + "#9b30d9", + "#af005f", + "#5f00af", + "#af87ff" + ], + "dragmode": "pan", + "font": { + "family": "Fira Code", + "size": 18 + }, + "hoverlabel": { + "align": "left" + }, + "mapbox": { + "style": "light" + }, + "hovermode": "x", + "legend": { + "bgcolor": "rgba(0, 0, 0, 0)", + "x": 0.01, + "xanchor": "left", + "y": 0.99, + "yanchor": "top", + "font": { + "size": 15 + } + }, + "paper_bgcolor": "white", + "plot_bgcolor": "white", + "xaxis": { + "automargin": true, + "autorange": true, + "rangeslider": { + "visible": false + }, + "showgrid": true, + "showline": true, + "tickfont": { + "size": 14 + }, + "zeroline": false, + "tick0": 1, + "title": { + "standoff": 20 + }, + "linecolor": "#F5EFF3", + "mirror": true, + "ticks": "outside" + }, + "yaxis": { + "anchor": "x", + "automargin": true, + "fixedrange": false, + "zeroline": false, + "showgrid": true, + "showline": true, + "side": "right", + "tick0": 0.5, + "title": { + "standoff": 20 + }, + "gridcolor": "#283442", + "linecolor": "#F5EFF3", + "mirror": true, + "ticks": "outside" + } + } +} diff --git a/openbb_platform/obbject_extensions/charting/poetry.lock b/openbb_platform/obbject_extensions/charting/poetry.lock new file mode 100644 index 0000000000000000000000000000000000000000..78b308e30fa8fa02cc6ca782169818ce4cc14aff --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/poetry.lock @@ -0,0 +1,2557 @@ +# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand. + +[[package]] +name = "aiohappyeyeballs" +version = "2.6.1" +description = "Happy Eyeballs for asyncio" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "aiohappyeyeballs-2.6.1-py3-none-any.whl", hash = "sha256:f349ba8f4b75cb25c99c5c2d84e997e485204d2902a9597802b0371f09331fb8"}, + {file = "aiohappyeyeballs-2.6.1.tar.gz", hash = "sha256:c3f9d0113123803ccadfdf3f0faa505bc78e6a72d1cc4806cbd719826e943558"}, +] + +[[package]] +name = "aiohttp" +version = "3.11.18" +description = "Async http client/server framework (asyncio)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "aiohttp-3.11.18-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:96264854fedbea933a9ca4b7e0c745728f01380691687b7365d18d9e977179c4"}, + {file = "aiohttp-3.11.18-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9602044ff047043430452bc3a2089743fa85da829e6fc9ee0025351d66c332b6"}, + {file = "aiohttp-3.11.18-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5691dc38750fcb96a33ceef89642f139aa315c8a193bbd42a0c33476fd4a1609"}, + {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:554c918ec43f8480b47a5ca758e10e793bd7410b83701676a4782672d670da55"}, + {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a4076a2b3ba5b004b8cffca6afe18a3b2c5c9ef679b4d1e9859cf76295f8d4f"}, + {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:767a97e6900edd11c762be96d82d13a1d7c4fc4b329f054e88b57cdc21fded94"}, + {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f0ddc9337a0fb0e727785ad4f41163cc314376e82b31846d3835673786420ef1"}, + {file = "aiohttp-3.11.18-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f414f37b244f2a97e79b98d48c5ff0789a0b4b4609b17d64fa81771ad780e415"}, + {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fdb239f47328581e2ec7744ab5911f97afb10752332a6dd3d98e14e429e1a9e7"}, + {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:f2c50bad73ed629cc326cc0f75aed8ecfb013f88c5af116f33df556ed47143eb"}, + {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0a8d8f20c39d3fa84d1c28cdb97f3111387e48209e224408e75f29c6f8e0861d"}, + {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:106032eaf9e62fd6bc6578c8b9e6dc4f5ed9a5c1c7fb2231010a1b4304393421"}, + {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:b491e42183e8fcc9901d8dcd8ae644ff785590f1727f76ca86e731c61bfe6643"}, + {file = "aiohttp-3.11.18-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ad8c745ff9460a16b710e58e06a9dec11ebc0d8f4dd82091cefb579844d69868"}, + {file = "aiohttp-3.11.18-cp310-cp310-win32.whl", hash = "sha256:8e57da93e24303a883146510a434f0faf2f1e7e659f3041abc4e3fb3f6702a9f"}, + {file = "aiohttp-3.11.18-cp310-cp310-win_amd64.whl", hash = "sha256:cc93a4121d87d9f12739fc8fab0a95f78444e571ed63e40bfc78cd5abe700ac9"}, + {file = "aiohttp-3.11.18-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:427fdc56ccb6901ff8088544bde47084845ea81591deb16f957897f0f0ba1be9"}, + {file = "aiohttp-3.11.18-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:2c828b6d23b984255b85b9b04a5b963a74278b7356a7de84fda5e3b76866597b"}, + {file = "aiohttp-3.11.18-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:5c2eaa145bb36b33af1ff2860820ba0589e165be4ab63a49aebfd0981c173b66"}, + {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d518ce32179f7e2096bf4e3e8438cf445f05fedd597f252de9f54c728574756"}, + {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0700055a6e05c2f4711011a44364020d7a10fbbcd02fbf3e30e8f7e7fddc8717"}, + {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8bd1cde83e4684324e6ee19adfc25fd649d04078179890be7b29f76b501de8e4"}, + {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:73b8870fe1c9a201b8c0d12c94fe781b918664766728783241a79e0468427e4f"}, + {file = "aiohttp-3.11.18-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:25557982dd36b9e32c0a3357f30804e80790ec2c4d20ac6bcc598533e04c6361"}, + {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7e889c9df381a2433802991288a61e5a19ceb4f61bd14f5c9fa165655dcb1fd1"}, + {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:9ea345fda05bae217b6cce2acf3682ce3b13d0d16dd47d0de7080e5e21362421"}, + {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9f26545b9940c4b46f0a9388fd04ee3ad7064c4017b5a334dd450f616396590e"}, + {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:3a621d85e85dccabd700294494d7179ed1590b6d07a35709bb9bd608c7f5dd1d"}, + {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:9c23fd8d08eb9c2af3faeedc8c56e134acdaf36e2117ee059d7defa655130e5f"}, + {file = "aiohttp-3.11.18-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d9e6b0e519067caa4fd7fb72e3e8002d16a68e84e62e7291092a5433763dc0dd"}, + {file = "aiohttp-3.11.18-cp311-cp311-win32.whl", hash = "sha256:122f3e739f6607e5e4c6a2f8562a6f476192a682a52bda8b4c6d4254e1138f4d"}, + {file = "aiohttp-3.11.18-cp311-cp311-win_amd64.whl", hash = "sha256:e6f3c0a3a1e73e88af384b2e8a0b9f4fb73245afd47589df2afcab6b638fa0e6"}, + {file = "aiohttp-3.11.18-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:63d71eceb9cad35d47d71f78edac41fcd01ff10cacaa64e473d1aec13fa02df2"}, + {file = "aiohttp-3.11.18-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d1929da615840969929e8878d7951b31afe0bac883d84418f92e5755d7b49508"}, + {file = "aiohttp-3.11.18-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d0aebeb2392f19b184e3fdd9e651b0e39cd0f195cdb93328bd124a1d455cd0e"}, + {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3849ead845e8444f7331c284132ab314b4dac43bfae1e3cf350906d4fff4620f"}, + {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5e8452ad6b2863709f8b3d615955aa0807bc093c34b8e25b3b52097fe421cb7f"}, + {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3b8d2b42073611c860a37f718b3d61ae8b4c2b124b2e776e2c10619d920350ec"}, + {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:40fbf91f6a0ac317c0a07eb328a1384941872f6761f2e6f7208b63c4cc0a7ff6"}, + {file = "aiohttp-3.11.18-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:44ff5625413fec55216da5eaa011cf6b0a2ed67a565914a212a51aa3755b0009"}, + {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7f33a92a2fde08e8c6b0c61815521324fc1612f397abf96eed86b8e31618fdb4"}, + {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:11d5391946605f445ddafda5eab11caf310f90cdda1fd99865564e3164f5cff9"}, + {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:3cc314245deb311364884e44242e00c18b5896e4fe6d5f942e7ad7e4cb640adb"}, + {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0f421843b0f70740772228b9e8093289924359d306530bcd3926f39acbe1adda"}, + {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e220e7562467dc8d589e31c1acd13438d82c03d7f385c9cd41a3f6d1d15807c1"}, + {file = "aiohttp-3.11.18-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ab2ef72f8605046115bc9aa8e9d14fd49086d405855f40b79ed9e5c1f9f4faea"}, + {file = "aiohttp-3.11.18-cp312-cp312-win32.whl", hash = "sha256:12a62691eb5aac58d65200c7ae94d73e8a65c331c3a86a2e9670927e94339ee8"}, + {file = "aiohttp-3.11.18-cp312-cp312-win_amd64.whl", hash = "sha256:364329f319c499128fd5cd2d1c31c44f234c58f9b96cc57f743d16ec4f3238c8"}, + {file = "aiohttp-3.11.18-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:474215ec618974054cf5dc465497ae9708543cbfc312c65212325d4212525811"}, + {file = "aiohttp-3.11.18-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:6ced70adf03920d4e67c373fd692123e34d3ac81dfa1c27e45904a628567d804"}, + {file = "aiohttp-3.11.18-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2d9f6c0152f8d71361905aaf9ed979259537981f47ad099c8b3d81e0319814bd"}, + {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a35197013ed929c0aed5c9096de1fc5a9d336914d73ab3f9df14741668c0616c"}, + {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:540b8a1f3a424f1af63e0af2d2853a759242a1769f9f1ab053996a392bd70118"}, + {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f9e6710ebebfce2ba21cee6d91e7452d1125100f41b906fb5af3da8c78b764c1"}, + {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f8af2ef3b4b652ff109f98087242e2ab974b2b2b496304063585e3d78de0b000"}, + {file = "aiohttp-3.11.18-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:28c3f975e5ae3dbcbe95b7e3dcd30e51da561a0a0f2cfbcdea30fc1308d72137"}, + {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:c28875e316c7b4c3e745172d882d8a5c835b11018e33432d281211af35794a93"}, + {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:13cd38515568ae230e1ef6919e2e33da5d0f46862943fcda74e7e915096815f3"}, + {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:0e2a92101efb9f4c2942252c69c63ddb26d20f46f540c239ccfa5af865197bb8"}, + {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e6d3e32b8753c8d45ac550b11a1090dd66d110d4ef805ffe60fa61495360b3b2"}, + {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ea4cf2488156e0f281f93cc2fd365025efcba3e2d217cbe3df2840f8c73db261"}, + {file = "aiohttp-3.11.18-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9d4df95ad522c53f2b9ebc07f12ccd2cb15550941e11a5bbc5ddca2ca56316d7"}, + {file = "aiohttp-3.11.18-cp313-cp313-win32.whl", hash = "sha256:cdd1bbaf1e61f0d94aced116d6e95fe25942f7a5f42382195fd9501089db5d78"}, + {file = "aiohttp-3.11.18-cp313-cp313-win_amd64.whl", hash = "sha256:bdd619c27e44382cf642223f11cfd4d795161362a5a1fc1fa3940397bc89db01"}, + {file = "aiohttp-3.11.18-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:469ac32375d9a716da49817cd26f1916ec787fc82b151c1c832f58420e6d3533"}, + {file = "aiohttp-3.11.18-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3cec21dd68924179258ae14af9f5418c1ebdbba60b98c667815891293902e5e0"}, + {file = "aiohttp-3.11.18-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b426495fb9140e75719b3ae70a5e8dd3a79def0ae3c6c27e012fc59f16544a4a"}, + {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad2f41203e2808616292db5d7170cccf0c9f9c982d02544443c7eb0296e8b0c7"}, + {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5bc0ae0a5e9939e423e065a3e5b00b24b8379f1db46046d7ab71753dfc7dd0e1"}, + {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:fe7cdd3f7d1df43200e1c80f1aed86bb36033bf65e3c7cf46a2b97a253ef8798"}, + {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5199be2a2f01ffdfa8c3a6f5981205242986b9e63eb8ae03fd18f736e4840721"}, + {file = "aiohttp-3.11.18-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ccec9e72660b10f8e283e91aa0295975c7bd85c204011d9f5eb69310555cf30"}, + {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1596ebf17e42e293cbacc7a24c3e0dc0f8f755b40aff0402cb74c1ff6baec1d3"}, + {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:eab7b040a8a873020113ba814b7db7fa935235e4cbaf8f3da17671baa1024863"}, + {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:5d61df4a05476ff891cff0030329fee4088d40e4dc9b013fac01bc3c745542c2"}, + {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:46533e6792e1410f9801d09fd40cbbff3f3518d1b501d6c3c5b218f427f6ff08"}, + {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c1b90407ced992331dd6d4f1355819ea1c274cc1ee4d5b7046c6761f9ec11829"}, + {file = "aiohttp-3.11.18-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a2fd04ae4971b914e54fe459dd7edbbd3f2ba875d69e057d5e3c8e8cac094935"}, + {file = "aiohttp-3.11.18-cp39-cp39-win32.whl", hash = "sha256:b2f317d1678002eee6fe85670039fb34a757972284614638f82b903a03feacdc"}, + {file = "aiohttp-3.11.18-cp39-cp39-win_amd64.whl", hash = "sha256:5e7007b8d1d09bce37b54111f593d173691c530b80f27c6493b928dabed9e6ef"}, + {file = "aiohttp-3.11.18.tar.gz", hash = "sha256:ae856e1138612b7e412db63b7708735cff4d38d0399f6a5435d3dac2669f558a"}, +] + +[package.dependencies] +aiohappyeyeballs = ">=2.3.0" +aiosignal = ">=1.1.2" +async-timeout = {version = ">=4.0,<6.0", markers = "python_version < \"3.11\""} +attrs = ">=17.3.0" +frozenlist = ">=1.1.1" +multidict = ">=4.5,<7.0" +propcache = ">=0.2.0" +yarl = ">=1.17.0,<2.0" + +[package.extras] +speedups = ["Brotli ; platform_python_implementation == \"CPython\"", "aiodns (>=3.2.0) ; sys_platform == \"linux\" or sys_platform == \"darwin\"", "brotlicffi ; platform_python_implementation != \"CPython\""] + +[[package]] +name = "aiosignal" +version = "1.3.2" +description = "aiosignal: a list of registered asynchronous callbacks" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"}, + {file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"}, +] + +[package.dependencies] +frozenlist = ">=1.1.0" + +[[package]] +name = "annotated-types" +version = "0.7.0" +description = "Reusable constraint types to use with typing.Annotated" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, + {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, +] + +[[package]] +name = "anyio" +version = "4.9.0" +description = "High level compatibility layer for multiple asynchronous event loop implementations" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c"}, + {file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"}, +] + +[package.dependencies] +exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""} +idna = ">=2.8" +sniffio = ">=1.1" +typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""} + +[package.extras] +doc = ["Sphinx (>=8.2,<9.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"] +test = ["anyio[trio]", "blockbuster (>=1.5.23)", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\" and python_version < \"3.14\""] +trio = ["trio (>=0.26.1)"] + +[[package]] +name = "async-timeout" +version = "5.0.1" +description = "Timeout context manager for asyncio programs" +optional = false +python-versions = ">=3.8" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c"}, + {file = "async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3"}, +] + +[[package]] +name = "attrs" +version = "25.3.0" +description = "Classes Without Boilerplate" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "attrs-25.3.0-py3-none-any.whl", hash = "sha256:427318ce031701fea540783410126f03899a97ffc6f61596ad581ac2e40e3bc3"}, + {file = "attrs-25.3.0.tar.gz", hash = "sha256:75d7cefc7fb576747b2c81b4442d4d4a1ce0900973527c011d1030fd3bf4af1b"}, +] + +[package.extras] +benchmark = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-codspeed", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +cov = ["cloudpickle ; platform_python_implementation == \"CPython\"", "coverage[toml] (>=5.3)", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +dev = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pre-commit-uv", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +docs = ["cogapp", "furo", "myst-parser", "sphinx", "sphinx-notfound-page", "sphinxcontrib-towncrier", "towncrier"] +tests = ["cloudpickle ; platform_python_implementation == \"CPython\"", "hypothesis", "mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pympler", "pytest (>=4.3.0)", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-xdist[psutil]"] +tests-mypy = ["mypy (>=1.11.1) ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\"", "pytest-mypy-plugins ; platform_python_implementation == \"CPython\" and python_version >= \"3.10\""] + +[[package]] +name = "backoff" +version = "2.2.1" +description = "Function decoration for backoff and retry" +optional = false +python-versions = ">=3.7,<4.0" +groups = ["main"] +files = [ + {file = "backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8"}, + {file = "backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba"}, +] + +[[package]] +name = "certifi" +version = "2025.4.26" +description = "Python package for providing Mozilla's CA Bundle." +optional = false +python-versions = ">=3.6" +groups = ["main"] +files = [ + {file = "certifi-2025.4.26-py3-none-any.whl", hash = "sha256:30350364dfe371162649852c63336a15c70c6510c2ad5015b21c2345311805f3"}, + {file = "certifi-2025.4.26.tar.gz", hash = "sha256:0a816057ea3cdefcef70270d2c515e4506bbc954f417fa5ade2021213bb8f0c6"}, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.2" +description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." +optional = false +python-versions = ">=3.7" +groups = ["main"] +files = [ + {file = "charset_normalizer-3.4.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7c48ed483eb946e6c04ccbe02c6b4d1d48e51944b6db70f697e089c193404941"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b2d318c11350e10662026ad0eb71bb51c7812fc8590825304ae0bdd4ac283acd"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9cbfacf36cb0ec2897ce0ebc5d08ca44213af24265bd56eca54bee7923c48fd6"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:18dd2e350387c87dabe711b86f83c9c78af772c748904d372ade190b5c7c9d4d"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8075c35cd58273fee266c58c0c9b670947c19df5fb98e7b66710e04ad4e9ff86"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5bf4545e3b962767e5c06fe1738f951f77d27967cb2caa64c28be7c4563e162c"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7a6ab32f7210554a96cd9e33abe3ddd86732beeafc7a28e9955cdf22ffadbab0"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:b33de11b92e9f75a2b545d6e9b6f37e398d86c3e9e9653c4864eb7e89c5773ef"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:8755483f3c00d6c9a77f490c17e6ab0c8729e39e6390328e42521ef175380ae6"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:68a328e5f55ec37c57f19ebb1fdc56a248db2e3e9ad769919a58672958e8f366"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:21b2899062867b0e1fde9b724f8aecb1af14f2778d69aacd1a5a1853a597a5db"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-win32.whl", hash = "sha256:e8082b26888e2f8b36a042a58307d5b917ef2b1cacab921ad3323ef91901c71a"}, + {file = "charset_normalizer-3.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:f69a27e45c43520f5487f27627059b64aaf160415589230992cec34c5e18a509"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:be1e352acbe3c78727a16a455126d9ff83ea2dfdcbc83148d2982305a04714c2"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa88ca0b1932e93f2d961bf3addbb2db902198dca337d88c89e1559e066e7645"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d524ba3f1581b35c03cb42beebab4a13e6cdad7b36246bd22541fa585a56cccd"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28a1005facc94196e1fb3e82a3d442a9d9110b8434fc1ded7a24a2983c9888d8"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fdb20a30fe1175ecabed17cbf7812f7b804b8a315a25f24678bcdf120a90077f"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0f5d9ed7f254402c9e7d35d2f5972c9bbea9040e99cd2861bd77dc68263277c7"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:efd387a49825780ff861998cd959767800d54f8308936b21025326de4b5a42b9"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:f0aa37f3c979cf2546b73e8222bbfa3dc07a641585340179d768068e3455e544"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e70e990b2137b29dc5564715de1e12701815dacc1d056308e2b17e9095372a82"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:0c8c57f84ccfc871a48a47321cfa49ae1df56cd1d965a09abe84066f6853b9c0"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6b66f92b17849b85cad91259efc341dce9c1af48e2173bf38a85c6329f1033e5"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-win32.whl", hash = "sha256:daac4765328a919a805fa5e2720f3e94767abd632ae410a9062dff5412bae65a"}, + {file = "charset_normalizer-3.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53efc7c7cee4c1e70661e2e112ca46a575f90ed9ae3fef200f2a25e954f4b28"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:0c29de6a1a95f24b9a1aa7aefd27d2487263f00dfd55a77719b530788f75cff7"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cddf7bd982eaa998934a91f69d182aec997c6c468898efe6679af88283b498d3"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fcbe676a55d7445b22c10967bceaaf0ee69407fbe0ece4d032b6eb8d4565982a"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d41c4d287cfc69060fa91cae9683eacffad989f1a10811995fa309df656ec214"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e594135de17ab3866138f496755f302b72157d115086d100c3f19370839dd3a"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf713fe9a71ef6fd5adf7a79670135081cd4431c2943864757f0fa3a65b1fafd"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:a370b3e078e418187da8c3674eddb9d983ec09445c99a3a263c2011993522981"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a955b438e62efdf7e0b7b52a64dc5c3396e2634baa62471768a64bc2adb73d5c"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:7222ffd5e4de8e57e03ce2cef95a4c43c98fcb72ad86909abdfc2c17d227fc1b"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:bee093bf902e1d8fc0ac143c88902c3dfc8941f7ea1d6a8dd2bcb786d33db03d"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dedb8adb91d11846ee08bec4c8236c8549ac721c245678282dcb06b221aab59f"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-win32.whl", hash = "sha256:db4c7bf0e07fc3b7d89ac2a5880a6a8062056801b83ff56d8464b70f65482b6c"}, + {file = "charset_normalizer-3.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:5a9979887252a82fefd3d3ed2a8e3b937a7a809f65dcb1e068b090e165bbe99e"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:926ca93accd5d36ccdabd803392ddc3e03e6d4cd1cf17deff3b989ab8e9dbcf0"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eba9904b0f38a143592d9fc0e19e2df0fa2e41c3c3745554761c5f6447eedabf"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3fddb7e2c84ac87ac3a947cb4e66d143ca5863ef48e4a5ecb83bd48619e4634e"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:98f862da73774290f251b9df8d11161b6cf25b599a66baf087c1ffe340e9bfd1"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c9379d65defcab82d07b2a9dfbfc2e95bc8fe0ebb1b176a3190230a3ef0e07c"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e635b87f01ebc977342e2697d05b56632f5f879a4f15955dfe8cef2448b51691"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:1c95a1e2902a8b722868587c0e1184ad5c55631de5afc0eb96bc4b0d738092c0"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ef8de666d6179b009dce7bcb2ad4c4a779f113f12caf8dc77f0162c29d20490b"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:32fc0341d72e0f73f80acb0a2c94216bd704f4f0bce10aedea38f30502b271ff"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:289200a18fa698949d2b39c671c2cc7a24d44096784e76614899a7ccf2574b7b"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4a476b06fbcf359ad25d34a057b7219281286ae2477cc5ff5e3f70a246971148"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-win32.whl", hash = "sha256:aaeeb6a479c7667fbe1099af9617c83aaca22182d6cf8c53966491a0f1b7ffb7"}, + {file = "charset_normalizer-3.4.2-cp313-cp313-win_amd64.whl", hash = "sha256:aa6af9e7d59f9c12b33ae4e9450619cf2488e2bbe9b44030905877f0b2324980"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1cad5f45b3146325bb38d6855642f6fd609c3f7cad4dbaf75549bf3b904d3184"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2680962a4848b3c4f155dc2ee64505a9c57186d0d56b43123b17ca3de18f0fa"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:36b31da18b8890a76ec181c3cf44326bf2c48e36d393ca1b72b3f484113ea344"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f4074c5a429281bf056ddd4c5d3b740ebca4d43ffffe2ef4bf4d2d05114299da"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c9e36a97bee9b86ef9a1cf7bb96747eb7a15c2f22bdb5b516434b00f2a599f02"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_aarch64.whl", hash = "sha256:1b1bde144d98e446b056ef98e59c256e9294f6b74d7af6846bf5ffdafd687a7d"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_i686.whl", hash = "sha256:915f3849a011c1f593ab99092f3cecfcb4d65d8feb4a64cf1bf2d22074dc0ec4"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_ppc64le.whl", hash = "sha256:fb707f3e15060adf5b7ada797624a6c6e0138e2a26baa089df64c68ee98e040f"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_s390x.whl", hash = "sha256:25a23ea5c7edc53e0f29bae2c44fcb5a1aa10591aae107f2a2b2583a9c5cbc64"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-musllinux_1_2_x86_64.whl", hash = "sha256:770cab594ecf99ae64c236bc9ee3439c3f46be49796e265ce0cc8bc17b10294f"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-win32.whl", hash = "sha256:6a0289e4589e8bdfef02a80478f1dfcb14f0ab696b5a00e1f4b8a14a307a3c58"}, + {file = "charset_normalizer-3.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:6fc1f5b51fa4cecaa18f2bd7a003f3dd039dd615cd69a2afd6d3b19aed6775f2"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:76af085e67e56c8816c3ccf256ebd136def2ed9654525348cfa744b6802b69eb"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e45ba65510e2647721e35323d6ef54c7974959f6081b58d4ef5d87c60c84919a"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:046595208aae0120559a67693ecc65dd75d46f7bf687f159127046628178dc45"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75d10d37a47afee94919c4fab4c22b9bc2a8bf7d4f46f87363bcf0573f3ff4f5"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6333b3aa5a12c26b2a4d4e7335a28f1475e0e5e17d69d55141ee3cab736f66d1"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e8323a9b031aa0393768b87f04b4164a40037fb2a3c11ac06a03ffecd3618027"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:24498ba8ed6c2e0b56d4acbf83f2d989720a93b41d712ebd4f4979660db4417b"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:844da2b5728b5ce0e32d863af26f32b5ce61bc4273a9c720a9f3aa9df73b1455"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:65c981bdbd3f57670af8b59777cbfae75364b483fa8a9f420f08094531d54a01"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_s390x.whl", hash = "sha256:3c21d4fca343c805a52c0c78edc01e3477f6dd1ad7c47653241cf2a206d4fc58"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:dc7039885fa1baf9be153a0626e337aa7ec8bf96b0128605fb0d77788ddc1681"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-win32.whl", hash = "sha256:8272b73e1c5603666618805fe821edba66892e2870058c94c53147602eab29c7"}, + {file = "charset_normalizer-3.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:70f7172939fdf8790425ba31915bfbe8335030f05b9913d7ae00a87d4395620a"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:005fa3432484527f9732ebd315da8da8001593e2cf46a3d817669f062c3d9ed4"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e92fca20c46e9f5e1bb485887d074918b13543b1c2a1185e69bb8d17ab6236a7"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:50bf98d5e563b83cc29471fa114366e6806bc06bc7a25fd59641e41445327836"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:721c76e84fe669be19c5791da68232ca2e05ba5185575086e384352e2c309597"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82d8fd25b7f4675d0c47cf95b594d4e7b158aca33b76aa63d07186e13c0e0ab7"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b3daeac64d5b371dea99714f08ffc2c208522ec6b06fbc7866a450dd446f5c0f"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:dccab8d5fa1ef9bfba0590ecf4d46df048d18ffe3eec01eeb73a42e0d9e7a8ba"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:aaf27faa992bfee0264dc1f03f4c75e9fcdda66a519db6b957a3f826e285cf12"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:eb30abc20df9ab0814b5a2524f23d75dcf83cde762c161917a2b4b7b55b1e518"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:c72fbbe68c6f32f251bdc08b8611c7b3060612236e960ef848e0a517ddbe76c5"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:982bb1e8b4ffda883b3d0a521e23abcd6fd17418f6d2c4118d257a10199c0ce3"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-win32.whl", hash = "sha256:43e0933a0eff183ee85833f341ec567c0980dae57c464d8a508e1b2ceb336471"}, + {file = "charset_normalizer-3.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:d11b54acf878eef558599658b0ffca78138c8c3655cf4f3a4a673c437e67732e"}, + {file = "charset_normalizer-3.4.2-py3-none-any.whl", hash = "sha256:7f56930ab0abd1c45cd15be65cc741c28b1c9a34876ce8c17a2fa107810c0af0"}, + {file = "charset_normalizer-3.4.2.tar.gz", hash = "sha256:5baececa9ecba31eff645232d59845c07aa030f0c81ee70184a90d35099a0e63"}, +] + +[[package]] +name = "click" +version = "8.1.8" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, + {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "click" +version = "8.2.0" +description = "Composable command line interface toolkit" +optional = false +python-versions = ">=3.10" +groups = ["main"] +markers = "python_version >= \"3.11\"" +files = [ + {file = "click-8.2.0-py3-none-any.whl", hash = "sha256:6b303f0b2aa85f1cb4e5303078fadcbcd4e476f114fab9b5007005711839325c"}, + {file = "click-8.2.0.tar.gz", hash = "sha256:f5452aeddd9988eefa20f90f05ab66f17fce1ee2a36907fd30b05bbb5953814d"}, +] + +[package.dependencies] +colorama = {version = "*", markers = "platform_system == \"Windows\""} + +[[package]] +name = "colorama" +version = "0.4.6" +description = "Cross-platform colored terminal text." +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" +groups = ["main"] +markers = "platform_system == \"Windows\"" +files = [ + {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, + {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, +] + +[[package]] +name = "distro" +version = "1.9.0" +description = "Distro - an OS platform information API" +optional = false +python-versions = ">=3.6" +groups = ["main"] +files = [ + {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"}, + {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"}, +] + +[[package]] +name = "exceptiongroup" +version = "1.3.0" +description = "Backport of PEP 654 (exception groups)" +optional = false +python-versions = ">=3.7" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"}, + {file = "exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} + +[package.extras] +test = ["pytest (>=6)"] + +[[package]] +name = "fastapi" +version = "0.115.12" +description = "FastAPI framework, high performance, easy to learn, fast to code, ready for production" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "fastapi-0.115.12-py3-none-any.whl", hash = "sha256:e94613d6c05e27be7ffebdd6ea5f388112e5e430c8f7d6494a9d1d88d43e814d"}, + {file = "fastapi-0.115.12.tar.gz", hash = "sha256:1e2c2a2646905f9e83d32f04a3f86aff4a286669c6c950ca95b5fd68c2602681"}, +] + +[package.dependencies] +pydantic = ">=1.7.4,<1.8 || >1.8,<1.8.1 || >1.8.1,<2.0.0 || >2.0.0,<2.0.1 || >2.0.1,<2.1.0 || >2.1.0,<3.0.0" +starlette = ">=0.40.0,<0.47.0" +typing-extensions = ">=4.8.0" + +[package.extras] +all = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "itsdangerous (>=1.1.0)", "jinja2 (>=3.1.5)", "orjson (>=3.2.1)", "pydantic-extra-types (>=2.0.0)", "pydantic-settings (>=2.0.0)", "python-multipart (>=0.0.18)", "pyyaml (>=5.3.1)", "ujson (>=4.0.1,!=4.0.2,!=4.1.0,!=4.2.0,!=4.3.0,!=5.0.0,!=5.1.0)", "uvicorn[standard] (>=0.12.0)"] +standard = ["email-validator (>=2.0.0)", "fastapi-cli[standard] (>=0.0.5)", "httpx (>=0.23.0)", "jinja2 (>=3.1.5)", "python-multipart (>=0.0.18)", "uvicorn[standard] (>=0.12.0)"] + +[[package]] +name = "fastjsonschema" +version = "2.21.1" +description = "Fastest Python implementation of JSON schema" +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "fastjsonschema-2.21.1-py3-none-any.whl", hash = "sha256:c9e5b7e908310918cf494a434eeb31384dd84a98b57a30bcb1f535015b554667"}, + {file = "fastjsonschema-2.21.1.tar.gz", hash = "sha256:794d4f0a58f848961ba16af7b9c85a3e88cd360df008c59aac6fc5ae9323b5d4"}, +] + +[package.extras] +devel = ["colorama", "json-spec", "jsonschema", "pylint", "pytest", "pytest-benchmark", "pytest-cache", "validictory"] + +[[package]] +name = "frozenlist" +version = "1.6.0" +description = "A list-like structure which implements collections.abc.MutableSequence" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "frozenlist-1.6.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:e6e558ea1e47fd6fa8ac9ccdad403e5dd5ecc6ed8dda94343056fa4277d5c65e"}, + {file = "frozenlist-1.6.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:f4b3cd7334a4bbc0c472164f3744562cb72d05002cc6fcf58adb104630bbc352"}, + {file = "frozenlist-1.6.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9799257237d0479736e2b4c01ff26b5c7f7694ac9692a426cb717f3dc02fff9b"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f3a7bb0fe1f7a70fb5c6f497dc32619db7d2cdd53164af30ade2f34673f8b1fc"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:36d2fc099229f1e4237f563b2a3e0ff7ccebc3999f729067ce4e64a97a7f2869"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f27a9f9a86dcf00708be82359db8de86b80d029814e6693259befe82bb58a106"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75ecee69073312951244f11b8627e3700ec2bfe07ed24e3a685a5979f0412d24"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f2c7d5aa19714b1b01a0f515d078a629e445e667b9da869a3cd0e6fe7dec78bd"}, + {file = "frozenlist-1.6.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69bbd454f0fb23b51cadc9bdba616c9678e4114b6f9fa372d462ff2ed9323ec8"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:7daa508e75613809c7a57136dec4871a21bca3080b3a8fc347c50b187df4f00c"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:89ffdb799154fd4d7b85c56d5fa9d9ad48946619e0eb95755723fffa11022d75"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:920b6bd77d209931e4c263223381d63f76828bec574440f29eb497cf3394c249"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:d3ceb265249fb401702fce3792e6b44c1166b9319737d21495d3611028d95769"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:52021b528f1571f98a7d4258c58aa8d4b1a96d4f01d00d51f1089f2e0323cb02"}, + {file = "frozenlist-1.6.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:0f2ca7810b809ed0f1917293050163c7654cefc57a49f337d5cd9de717b8fad3"}, + {file = "frozenlist-1.6.0-cp310-cp310-win32.whl", hash = "sha256:0e6f8653acb82e15e5443dba415fb62a8732b68fe09936bb6d388c725b57f812"}, + {file = "frozenlist-1.6.0-cp310-cp310-win_amd64.whl", hash = "sha256:f1a39819a5a3e84304cd286e3dc62a549fe60985415851b3337b6f5cc91907f1"}, + {file = "frozenlist-1.6.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ae8337990e7a45683548ffb2fee1af2f1ed08169284cd829cdd9a7fa7470530d"}, + {file = "frozenlist-1.6.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8c952f69dd524558694818a461855f35d36cc7f5c0adddce37e962c85d06eac0"}, + {file = "frozenlist-1.6.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8f5fef13136c4e2dee91bfb9a44e236fff78fc2cd9f838eddfc470c3d7d90afe"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:716bbba09611b4663ecbb7cd022f640759af8259e12a6ca939c0a6acd49eedba"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:7b8c4dc422c1a3ffc550b465090e53b0bf4839047f3e436a34172ac67c45d595"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b11534872256e1666116f6587a1592ef395a98b54476addb5e8d352925cb5d4a"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1c6eceb88aaf7221f75be6ab498dc622a151f5f88d536661af3ffc486245a626"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62c828a5b195570eb4b37369fcbbd58e96c905768d53a44d13044355647838ff"}, + {file = "frozenlist-1.6.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1c6bd2c6399920c9622362ce95a7d74e7f9af9bfec05fff91b8ce4b9647845a"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:49ba23817781e22fcbd45fd9ff2b9b8cdb7b16a42a4851ab8025cae7b22e96d0"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:431ef6937ae0f853143e2ca67d6da76c083e8b1fe3df0e96f3802fd37626e606"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:9d124b38b3c299ca68433597ee26b7819209cb8a3a9ea761dfe9db3a04bba584"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:118e97556306402e2b010da1ef21ea70cb6d6122e580da64c056b96f524fbd6a"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:fb3b309f1d4086b5533cf7bbcf3f956f0ae6469664522f1bde4feed26fba60f1"}, + {file = "frozenlist-1.6.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54dece0d21dce4fdb188a1ffc555926adf1d1c516e493c2914d7c370e454bc9e"}, + {file = "frozenlist-1.6.0-cp311-cp311-win32.whl", hash = "sha256:654e4ba1d0b2154ca2f096bed27461cf6160bc7f504a7f9a9ef447c293caf860"}, + {file = "frozenlist-1.6.0-cp311-cp311-win_amd64.whl", hash = "sha256:3e911391bffdb806001002c1f860787542f45916c3baf764264a52765d5a5603"}, + {file = "frozenlist-1.6.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:c5b9e42ace7d95bf41e19b87cec8f262c41d3510d8ad7514ab3862ea2197bfb1"}, + {file = "frozenlist-1.6.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ca9973735ce9f770d24d5484dcb42f68f135351c2fc81a7a9369e48cf2998a29"}, + {file = "frozenlist-1.6.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6ac40ec76041c67b928ca8aaffba15c2b2ee3f5ae8d0cb0617b5e63ec119ca25"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95b7a8a3180dfb280eb044fdec562f9b461614c0ef21669aea6f1d3dac6ee576"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c444d824e22da6c9291886d80c7d00c444981a72686e2b59d38b285617cb52c8"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb52c8166499a8150bfd38478248572c924c003cbb45fe3bcd348e5ac7c000f9"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b35298b2db9c2468106278537ee529719228950a5fdda686582f68f247d1dc6e"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d108e2d070034f9d57210f22fefd22ea0d04609fc97c5f7f5a686b3471028590"}, + {file = "frozenlist-1.6.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4e1be9111cb6756868ac242b3c2bd1f09d9aea09846e4f5c23715e7afb647103"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:94bb451c664415f02f07eef4ece976a2c65dcbab9c2f1705b7031a3a75349d8c"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d1a686d0b0949182b8faddea596f3fc11f44768d1f74d4cad70213b2e139d821"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:ea8e59105d802c5a38bdbe7362822c522230b3faba2aa35c0fa1765239b7dd70"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:abc4e880a9b920bc5020bf6a431a6bb40589d9bca3975c980495f63632e8382f"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:9a79713adfe28830f27a3c62f6b5406c37376c892b05ae070906f07ae4487046"}, + {file = "frozenlist-1.6.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:9a0318c2068e217a8f5e3b85e35899f5a19e97141a45bb925bb357cfe1daf770"}, + {file = "frozenlist-1.6.0-cp312-cp312-win32.whl", hash = "sha256:853ac025092a24bb3bf09ae87f9127de9fe6e0c345614ac92536577cf956dfcc"}, + {file = "frozenlist-1.6.0-cp312-cp312-win_amd64.whl", hash = "sha256:2bdfe2d7e6c9281c6e55523acd6c2bf77963cb422fdc7d142fb0cb6621b66878"}, + {file = "frozenlist-1.6.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:1d7fb014fe0fbfee3efd6a94fc635aeaa68e5e1720fe9e57357f2e2c6e1a647e"}, + {file = "frozenlist-1.6.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:01bcaa305a0fdad12745502bfd16a1c75b14558dabae226852f9159364573117"}, + {file = "frozenlist-1.6.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:8b314faa3051a6d45da196a2c495e922f987dc848e967d8cfeaee8a0328b1cd4"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:da62fecac21a3ee10463d153549d8db87549a5e77eefb8c91ac84bb42bb1e4e3"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:d1eb89bf3454e2132e046f9599fbcf0a4483ed43b40f545551a39316d0201cd1"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d18689b40cb3936acd971f663ccb8e2589c45db5e2c5f07e0ec6207664029a9c"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e67ddb0749ed066b1a03fba812e2dcae791dd50e5da03be50b6a14d0c1a9ee45"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fc5e64626e6682638d6e44398c9baf1d6ce6bc236d40b4b57255c9d3f9761f1f"}, + {file = "frozenlist-1.6.0-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:437cfd39564744ae32ad5929e55b18ebd88817f9180e4cc05e7d53b75f79ce85"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:62dd7df78e74d924952e2feb7357d826af8d2f307557a779d14ddf94d7311be8"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:a66781d7e4cddcbbcfd64de3d41a61d6bdde370fc2e38623f30b2bd539e84a9f"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:482fe06e9a3fffbcd41950f9d890034b4a54395c60b5e61fae875d37a699813f"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:e4f9373c500dfc02feea39f7a56e4f543e670212102cc2eeb51d3a99c7ffbde6"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:e69bb81de06827147b7bfbaeb284d85219fa92d9f097e32cc73675f279d70188"}, + {file = "frozenlist-1.6.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:7613d9977d2ab4a9141dde4a149f4357e4065949674c5649f920fec86ecb393e"}, + {file = "frozenlist-1.6.0-cp313-cp313-win32.whl", hash = "sha256:4def87ef6d90429f777c9d9de3961679abf938cb6b7b63d4a7eb8a268babfce4"}, + {file = "frozenlist-1.6.0-cp313-cp313-win_amd64.whl", hash = "sha256:37a8a52c3dfff01515e9bbbee0e6063181362f9de3db2ccf9bc96189b557cbfd"}, + {file = "frozenlist-1.6.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:46138f5a0773d064ff663d273b309b696293d7a7c00a0994c5c13a5078134b64"}, + {file = "frozenlist-1.6.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f88bc0a2b9c2a835cb888b32246c27cdab5740059fb3688852bf91e915399b91"}, + {file = "frozenlist-1.6.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:777704c1d7655b802c7850255639672e90e81ad6fa42b99ce5ed3fbf45e338dd"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:85ef8d41764c7de0dcdaf64f733a27352248493a85a80661f3c678acd27e31f2"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:da5cb36623f2b846fb25009d9d9215322318ff1c63403075f812b3b2876c8506"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cbb56587a16cf0fb8acd19e90ff9924979ac1431baea8681712716a8337577b0"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c6154c3ba59cda3f954c6333025369e42c3acd0c6e8b6ce31eb5c5b8116c07e0"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e8246877afa3f1ae5c979fe85f567d220f86a50dc6c493b9b7d8191181ae01e"}, + {file = "frozenlist-1.6.0-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7b0f6cce16306d2e117cf9db71ab3a9e8878a28176aeaf0dbe35248d97b28d0c"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:1b8e8cd8032ba266f91136d7105706ad57770f3522eac4a111d77ac126a25a9b"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:e2ada1d8515d3ea5378c018a5f6d14b4994d4036591a52ceaf1a1549dec8e1ad"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:cdb2c7f071e4026c19a3e32b93a09e59b12000751fc9b0b7758da899e657d215"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:03572933a1969a6d6ab509d509e5af82ef80d4a5d4e1e9f2e1cdd22c77a3f4d2"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:77effc978947548b676c54bbd6a08992759ea6f410d4987d69feea9cd0919911"}, + {file = "frozenlist-1.6.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:a2bda8be77660ad4089caf2223fdbd6db1858462c4b85b67fbfa22102021e497"}, + {file = "frozenlist-1.6.0-cp313-cp313t-win32.whl", hash = "sha256:a4d96dc5bcdbd834ec6b0f91027817214216b5b30316494d2b1aebffb87c534f"}, + {file = "frozenlist-1.6.0-cp313-cp313t-win_amd64.whl", hash = "sha256:e18036cb4caa17ea151fd5f3d70be9d354c99eb8cf817a3ccde8a7873b074348"}, + {file = "frozenlist-1.6.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:536a1236065c29980c15c7229fbb830dedf809708c10e159b8136534233545f0"}, + {file = "frozenlist-1.6.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ed5e3a4462ff25ca84fb09e0fada8ea267df98a450340ead4c91b44857267d70"}, + {file = "frozenlist-1.6.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:e19c0fc9f4f030fcae43b4cdec9e8ab83ffe30ec10c79a4a43a04d1af6c5e1ad"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7c608f833897501dac548585312d73a7dca028bf3b8688f0d712b7acfaf7fb3"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0dbae96c225d584f834b8d3cc688825911960f003a85cb0fd20b6e5512468c42"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:625170a91dd7261a1d1c2a0c1a353c9e55d21cd67d0852185a5fef86587e6f5f"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1db8b2fc7ee8a940b547a14c10e56560ad3ea6499dc6875c354e2335812f739d"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4da6fc43048b648275a220e3a61c33b7fff65d11bdd6dcb9d9c145ff708b804c"}, + {file = "frozenlist-1.6.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6ef8e7e8f2f3820c5f175d70fdd199b79e417acf6c72c5d0aa8f63c9f721646f"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:aa733d123cc78245e9bb15f29b44ed9e5780dc6867cfc4e544717b91f980af3b"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:ba7f8d97152b61f22d7f59491a781ba9b177dd9f318486c5fbc52cde2db12189"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:56a0b8dd6d0d3d971c91f1df75e824986667ccce91e20dca2023683814344791"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:5c9e89bf19ca148efcc9e3c44fd4c09d5af85c8a7dd3dbd0da1cb83425ef4983"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:1330f0a4376587face7637dfd245380a57fe21ae8f9d360c1c2ef8746c4195fa"}, + {file = "frozenlist-1.6.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2187248203b59625566cac53572ec8c2647a140ee2738b4e36772930377a533c"}, + {file = "frozenlist-1.6.0-cp39-cp39-win32.whl", hash = "sha256:2b8cf4cfea847d6c12af06091561a89740f1f67f331c3fa8623391905e878530"}, + {file = "frozenlist-1.6.0-cp39-cp39-win_amd64.whl", hash = "sha256:1255d5d64328c5a0d066ecb0f02034d086537925f1f04b50b1ae60d37afbf572"}, + {file = "frozenlist-1.6.0-py3-none-any.whl", hash = "sha256:535eec9987adb04701266b92745d6cdcef2e77669299359c3009c3404dd5d191"}, + {file = "frozenlist-1.6.0.tar.gz", hash = "sha256:b99655c32c1c8e06d111e7f41c06c29a5318cb1835df23a45518e02a47c63b68"}, +] + +[[package]] +name = "h11" +version = "0.16.0" +description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"}, + {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"}, +] + +[[package]] +name = "html5lib" +version = "1.1" +description = "HTML parser based on the WHATWG HTML specification" +optional = false +python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" +groups = ["main"] +files = [ + {file = "html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d"}, + {file = "html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f"}, +] + +[package.dependencies] +six = ">=1.9" +webencodings = "*" + +[package.extras] +all = ["chardet (>=2.2)", "genshi", "lxml ; platform_python_implementation == \"CPython\""] +chardet = ["chardet (>=2.2)"] +genshi = ["genshi"] +lxml = ["lxml ; platform_python_implementation == \"CPython\""] + +[[package]] +name = "idna" +version = "3.10" +description = "Internationalized Domain Names in Applications (IDNA)" +optional = false +python-versions = ">=3.6" +groups = ["main"] +files = [ + {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"}, + {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"}, +] + +[package.extras] +all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] + +[[package]] +name = "importlib-metadata" +version = "8.7.0" +description = "Read metadata from Python packages" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd"}, + {file = "importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000"}, +] + +[package.dependencies] +zipp = ">=3.20" + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +perf = ["ipython"] +test = ["flufl.flake8", "importlib_resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"] +type = ["pytest-mypy"] + +[[package]] +name = "jsonschema" +version = "4.23.0" +description = "An implementation of JSON Schema validation for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "jsonschema-4.23.0-py3-none-any.whl", hash = "sha256:fbadb6f8b144a8f8cf9f0b89ba94501d143e50411a1278633f56a7acf7fd5566"}, + {file = "jsonschema-4.23.0.tar.gz", hash = "sha256:d71497fef26351a33265337fa77ffeb82423f3ea21283cd9467bb03999266bc4"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +jsonschema-specifications = ">=2023.03.6" +referencing = ">=0.28.4" +rpds-py = ">=0.7.1" + +[package.extras] +format = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3987", "uri-template", "webcolors (>=1.11)"] +format-nongpl = ["fqdn", "idna", "isoduration", "jsonpointer (>1.13)", "rfc3339-validator", "rfc3986-validator (>0.1.0)", "uri-template", "webcolors (>=24.6.0)"] + +[[package]] +name = "jsonschema-specifications" +version = "2025.4.1" +description = "The JSON Schema meta-schemas and vocabularies, exposed as a Registry" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "jsonschema_specifications-2025.4.1-py3-none-any.whl", hash = "sha256:4653bffbd6584f7de83a67e0d620ef16900b390ddc7939d56684d6c81e33f1af"}, + {file = "jsonschema_specifications-2025.4.1.tar.gz", hash = "sha256:630159c9f4dbea161a6a2205c3011cc4f18ff381b189fff48bb39b9bf26ae608"}, +] + +[package.dependencies] +referencing = ">=0.31.0" + +[[package]] +name = "jupyter-core" +version = "5.7.2" +description = "Jupyter core package. A base package on which Jupyter projects rely." +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "jupyter_core-5.7.2-py3-none-any.whl", hash = "sha256:4f7315d2f6b4bcf2e3e7cb6e46772eba760ae459cd1f59d29eb57b0a01bd7409"}, + {file = "jupyter_core-5.7.2.tar.gz", hash = "sha256:aa5f8d32bbf6b431ac830496da7392035d6f61b4f54872f15c4bd2a9c3f536d9"}, +] + +[package.dependencies] +platformdirs = ">=2.5" +pywin32 = {version = ">=300", markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\""} +traitlets = ">=5.3" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx-autodoc-typehints", "sphinxcontrib-github-alt", "sphinxcontrib-spelling", "traitlets"] +test = ["ipykernel", "pre-commit", "pytest (<8)", "pytest-cov", "pytest-timeout"] + +[[package]] +name = "llvmlite" +version = "0.43.0" +description = "lightweight wrapper around basic LLVM functionality" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "llvmlite-0.43.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a289af9a1687c6cf463478f0fa8e8aa3b6fb813317b0d70bf1ed0759eab6f761"}, + {file = "llvmlite-0.43.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6d4fd101f571a31acb1559ae1af30f30b1dc4b3186669f92ad780e17c81e91bc"}, + {file = "llvmlite-0.43.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7d434ec7e2ce3cc8f452d1cd9a28591745de022f931d67be688a737320dfcead"}, + {file = "llvmlite-0.43.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6912a87782acdff6eb8bf01675ed01d60ca1f2551f8176a300a886f09e836a6a"}, + {file = "llvmlite-0.43.0-cp310-cp310-win_amd64.whl", hash = "sha256:14f0e4bf2fd2d9a75a3534111e8ebeb08eda2f33e9bdd6dfa13282afacdde0ed"}, + {file = "llvmlite-0.43.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3e8d0618cb9bfe40ac38a9633f2493d4d4e9fcc2f438d39a4e854f39cc0f5f98"}, + {file = "llvmlite-0.43.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0a9a1a39d4bf3517f2af9d23d479b4175ead205c592ceeb8b89af48a327ea57"}, + {file = "llvmlite-0.43.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c1da416ab53e4f7f3bc8d4eeba36d801cc1894b9fbfbf2022b29b6bad34a7df2"}, + {file = "llvmlite-0.43.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:977525a1e5f4059316b183fb4fd34fa858c9eade31f165427a3977c95e3ee749"}, + {file = "llvmlite-0.43.0-cp311-cp311-win_amd64.whl", hash = "sha256:d5bd550001d26450bd90777736c69d68c487d17bf371438f975229b2b8241a91"}, + {file = "llvmlite-0.43.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f99b600aa7f65235a5a05d0b9a9f31150c390f31261f2a0ba678e26823ec38f7"}, + {file = "llvmlite-0.43.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:35d80d61d0cda2d767f72de99450766250560399edc309da16937b93d3b676e7"}, + {file = "llvmlite-0.43.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:eccce86bba940bae0d8d48ed925f21dbb813519169246e2ab292b5092aba121f"}, + {file = "llvmlite-0.43.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:df6509e1507ca0760787a199d19439cc887bfd82226f5af746d6977bd9f66844"}, + {file = "llvmlite-0.43.0-cp312-cp312-win_amd64.whl", hash = "sha256:7a2872ee80dcf6b5dbdc838763d26554c2a18aa833d31a2635bff16aafefb9c9"}, + {file = "llvmlite-0.43.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9cd2a7376f7b3367019b664c21f0c61766219faa3b03731113ead75107f3b66c"}, + {file = "llvmlite-0.43.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:18e9953c748b105668487b7c81a3e97b046d8abf95c4ddc0cd3c94f4e4651ae8"}, + {file = "llvmlite-0.43.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:74937acd22dc11b33946b67dca7680e6d103d6e90eeaaaf932603bec6fe7b03a"}, + {file = "llvmlite-0.43.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc9efc739cc6ed760f795806f67889923f7274276f0eb45092a1473e40d9b867"}, + {file = "llvmlite-0.43.0-cp39-cp39-win_amd64.whl", hash = "sha256:47e147cdda9037f94b399bf03bfd8a6b6b1f2f90be94a454e3386f006455a9b4"}, + {file = "llvmlite-0.43.0.tar.gz", hash = "sha256:ae2b5b5c3ef67354824fb75517c8db5fbe93bc02cd9671f3c62271626bc041d5"}, +] + +[[package]] +name = "llvmlite" +version = "0.44.0" +description = "lightweight wrapper around basic LLVM functionality" +optional = false +python-versions = ">=3.10" +groups = ["main"] +markers = "python_version >= \"3.11\"" +files = [ + {file = "llvmlite-0.44.0-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:9fbadbfba8422123bab5535b293da1cf72f9f478a65645ecd73e781f962ca614"}, + {file = "llvmlite-0.44.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:cccf8eb28f24840f2689fb1a45f9c0f7e582dd24e088dcf96e424834af11f791"}, + {file = "llvmlite-0.44.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7202b678cdf904823c764ee0fe2dfe38a76981f4c1e51715b4cb5abb6cf1d9e8"}, + {file = "llvmlite-0.44.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:40526fb5e313d7b96bda4cbb2c85cd5374e04d80732dd36a282d72a560bb6408"}, + {file = "llvmlite-0.44.0-cp310-cp310-win_amd64.whl", hash = "sha256:41e3839150db4330e1b2716c0be3b5c4672525b4c9005e17c7597f835f351ce2"}, + {file = "llvmlite-0.44.0-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:eed7d5f29136bda63b6d7804c279e2b72e08c952b7c5df61f45db408e0ee52f3"}, + {file = "llvmlite-0.44.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ace564d9fa44bb91eb6e6d8e7754977783c68e90a471ea7ce913bff30bd62427"}, + {file = "llvmlite-0.44.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c5d22c3bfc842668168a786af4205ec8e3ad29fb1bc03fd11fd48460d0df64c1"}, + {file = "llvmlite-0.44.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f01a394e9c9b7b1d4e63c327b096d10f6f0ed149ef53d38a09b3749dcf8c9610"}, + {file = "llvmlite-0.44.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8489634d43c20cd0ad71330dde1d5bc7b9966937a263ff1ec1cebb90dc50955"}, + {file = "llvmlite-0.44.0-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:1d671a56acf725bf1b531d5ef76b86660a5ab8ef19bb6a46064a705c6ca80aad"}, + {file = "llvmlite-0.44.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:5f79a728e0435493611c9f405168682bb75ffd1fbe6fc360733b850c80a026db"}, + {file = "llvmlite-0.44.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c0143a5ef336da14deaa8ec26c5449ad5b6a2b564df82fcef4be040b9cacfea9"}, + {file = "llvmlite-0.44.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d752f89e31b66db6f8da06df8b39f9b91e78c5feea1bf9e8c1fba1d1c24c065d"}, + {file = "llvmlite-0.44.0-cp312-cp312-win_amd64.whl", hash = "sha256:eae7e2d4ca8f88f89d315b48c6b741dcb925d6a1042da694aa16ab3dd4cbd3a1"}, + {file = "llvmlite-0.44.0-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:319bddd44e5f71ae2689859b7203080716448a3cd1128fb144fe5c055219d516"}, + {file = "llvmlite-0.44.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:9c58867118bad04a0bb22a2e0068c693719658105e40009ffe95c7000fcde88e"}, + {file = "llvmlite-0.44.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46224058b13c96af1365290bdfebe9a6264ae62fb79b2b55693deed11657a8bf"}, + {file = "llvmlite-0.44.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:aa0097052c32bf721a4efc03bd109d335dfa57d9bffb3d4c24cc680711b8b4fc"}, + {file = "llvmlite-0.44.0-cp313-cp313-win_amd64.whl", hash = "sha256:2fb7c4f2fb86cbae6dca3db9ab203eeea0e22d73b99bc2341cdf9de93612e930"}, + {file = "llvmlite-0.44.0.tar.gz", hash = "sha256:07667d66a5d150abed9157ab6c0b9393c9356f229784a4385c02f99e94fc94d4"}, +] + +[[package]] +name = "monotonic" +version = "1.6" +description = "An implementation of time.monotonic() for Python 2 & < 3.3" +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "monotonic-1.6-py2.py3-none-any.whl", hash = "sha256:68687e19a14f11f26d140dd5c86f3dba4bf5df58003000ed467e0e2a69bca96c"}, + {file = "monotonic-1.6.tar.gz", hash = "sha256:3a55207bcfed53ddd5c5bae174524062935efed17792e9de2ad0205ce9ad63f7"}, +] + +[[package]] +name = "multidict" +version = "6.4.3" +description = "multidict implementation" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "multidict-6.4.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:32a998bd8a64ca48616eac5a8c1cc4fa38fb244a3facf2eeb14abe186e0f6cc5"}, + {file = "multidict-6.4.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a54ec568f1fc7f3c313c2f3b16e5db346bf3660e1309746e7fccbbfded856188"}, + {file = "multidict-6.4.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a7be07e5df178430621c716a63151165684d3e9958f2bbfcb644246162007ab7"}, + {file = "multidict-6.4.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b128dbf1c939674a50dd0b28f12c244d90e5015e751a4f339a96c54f7275e291"}, + {file = "multidict-6.4.3-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:b9cb19dfd83d35b6ff24a4022376ea6e45a2beba8ef3f0836b8a4b288b6ad685"}, + {file = "multidict-6.4.3-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3cf62f8e447ea2c1395afa289b332e49e13d07435369b6f4e41f887db65b40bf"}, + {file = "multidict-6.4.3-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:909f7d43ff8f13d1adccb6a397094adc369d4da794407f8dd592c51cf0eae4b1"}, + {file = "multidict-6.4.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0bb8f8302fbc7122033df959e25777b0b7659b1fd6bcb9cb6bed76b5de67afef"}, + {file = "multidict-6.4.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:224b79471b4f21169ea25ebc37ed6f058040c578e50ade532e2066562597b8a9"}, + {file = "multidict-6.4.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a7bd27f7ab3204f16967a6f899b3e8e9eb3362c0ab91f2ee659e0345445e0078"}, + {file = "multidict-6.4.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:99592bd3162e9c664671fd14e578a33bfdba487ea64bcb41d281286d3c870ad7"}, + {file = "multidict-6.4.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a62d78a1c9072949018cdb05d3c533924ef8ac9bcb06cbf96f6d14772c5cd451"}, + {file = "multidict-6.4.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:3ccdde001578347e877ca4f629450973c510e88e8865d5aefbcb89b852ccc666"}, + {file = "multidict-6.4.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:eccb67b0e78aa2e38a04c5ecc13bab325a43e5159a181a9d1a6723db913cbb3c"}, + {file = "multidict-6.4.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:8b6fcf6054fc4114a27aa865f8840ef3d675f9316e81868e0ad5866184a6cba5"}, + {file = "multidict-6.4.3-cp310-cp310-win32.whl", hash = "sha256:f92c7f62d59373cd93bc9969d2da9b4b21f78283b1379ba012f7ee8127b3152e"}, + {file = "multidict-6.4.3-cp310-cp310-win_amd64.whl", hash = "sha256:b57e28dbc031d13916b946719f213c494a517b442d7b48b29443e79610acd887"}, + {file = "multidict-6.4.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:f6f19170197cc29baccd33ccc5b5d6a331058796485857cf34f7635aa25fb0cd"}, + {file = "multidict-6.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f2882bf27037eb687e49591690e5d491e677272964f9ec7bc2abbe09108bdfb8"}, + {file = "multidict-6.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fbf226ac85f7d6b6b9ba77db4ec0704fde88463dc17717aec78ec3c8546c70ad"}, + {file = "multidict-6.4.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2e329114f82ad4b9dd291bef614ea8971ec119ecd0f54795109976de75c9a852"}, + {file = "multidict-6.4.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:1f4e0334d7a555c63f5c8952c57ab6f1c7b4f8c7f3442df689fc9f03df315c08"}, + {file = "multidict-6.4.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:740915eb776617b57142ce0bb13b7596933496e2f798d3d15a20614adf30d229"}, + {file = "multidict-6.4.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255dac25134d2b141c944b59a0d2f7211ca12a6d4779f7586a98b4b03ea80508"}, + {file = "multidict-6.4.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4e8535bd4d741039b5aad4285ecd9b902ef9e224711f0b6afda6e38d7ac02c7"}, + {file = "multidict-6.4.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:30c433a33be000dd968f5750722eaa0991037be0be4a9d453eba121774985bc8"}, + {file = "multidict-6.4.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4eb33b0bdc50acd538f45041f5f19945a1f32b909b76d7b117c0c25d8063df56"}, + {file = "multidict-6.4.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:75482f43465edefd8a5d72724887ccdcd0c83778ded8f0cb1e0594bf71736cc0"}, + {file = "multidict-6.4.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ce5b3082e86aee80b3925ab4928198450d8e5b6466e11501fe03ad2191c6d777"}, + {file = "multidict-6.4.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e413152e3212c4d39f82cf83c6f91be44bec9ddea950ce17af87fbf4e32ca6b2"}, + {file = "multidict-6.4.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:8aac2eeff69b71f229a405c0a4b61b54bade8e10163bc7b44fcd257949620618"}, + {file = "multidict-6.4.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ab583ac203af1d09034be41458feeab7863c0635c650a16f15771e1386abf2d7"}, + {file = "multidict-6.4.3-cp311-cp311-win32.whl", hash = "sha256:1b2019317726f41e81154df636a897de1bfe9228c3724a433894e44cd2512378"}, + {file = "multidict-6.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:43173924fa93c7486402217fab99b60baf78d33806af299c56133a3755f69589"}, + {file = "multidict-6.4.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:1f1c2f58f08b36f8475f3ec6f5aeb95270921d418bf18f90dffd6be5c7b0e676"}, + {file = "multidict-6.4.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:26ae9ad364fc61b936fb7bf4c9d8bd53f3a5b4417142cd0be5c509d6f767e2f1"}, + {file = "multidict-6.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:659318c6c8a85f6ecfc06b4e57529e5a78dfdd697260cc81f683492ad7e9435a"}, + {file = "multidict-6.4.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1eb72c741fd24d5a28242ce72bb61bc91f8451877131fa3fe930edb195f7054"}, + {file = "multidict-6.4.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3cd06d88cb7398252284ee75c8db8e680aa0d321451132d0dba12bc995f0adcc"}, + {file = "multidict-6.4.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4543d8dc6470a82fde92b035a92529317191ce993533c3c0c68f56811164ed07"}, + {file = "multidict-6.4.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:30a3ebdc068c27e9d6081fca0e2c33fdf132ecea703a72ea216b81a66860adde"}, + {file = "multidict-6.4.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b038f10e23f277153f86f95c777ba1958bcd5993194fda26a1d06fae98b2f00c"}, + {file = "multidict-6.4.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c605a2b2dc14282b580454b9b5d14ebe0668381a3a26d0ac39daa0ca115eb2ae"}, + {file = "multidict-6.4.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8bd2b875f4ca2bb527fe23e318ddd509b7df163407b0fb717df229041c6df5d3"}, + {file = "multidict-6.4.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:c2e98c840c9c8e65c0e04b40c6c5066c8632678cd50c8721fdbcd2e09f21a507"}, + {file = "multidict-6.4.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:66eb80dd0ab36dbd559635e62fba3083a48a252633164857a1d1684f14326427"}, + {file = "multidict-6.4.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c23831bdee0a2a3cf21be057b5e5326292f60472fb6c6f86392bbf0de70ba731"}, + {file = "multidict-6.4.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1535cec6443bfd80d028052e9d17ba6ff8a5a3534c51d285ba56c18af97e9713"}, + {file = "multidict-6.4.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3b73e7227681f85d19dec46e5b881827cd354aabe46049e1a61d2f9aaa4e285a"}, + {file = "multidict-6.4.3-cp312-cp312-win32.whl", hash = "sha256:8eac0c49df91b88bf91f818e0a24c1c46f3622978e2c27035bfdca98e0e18124"}, + {file = "multidict-6.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:11990b5c757d956cd1db7cb140be50a63216af32cd6506329c2c59d732d802db"}, + {file = "multidict-6.4.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:7a76534263d03ae0cfa721fea40fd2b5b9d17a6f85e98025931d41dc49504474"}, + {file = "multidict-6.4.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:805031c2f599eee62ac579843555ed1ce389ae00c7e9f74c2a1b45e0564a88dd"}, + {file = "multidict-6.4.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c56c179839d5dcf51d565132185409d1d5dd8e614ba501eb79023a6cab25576b"}, + {file = "multidict-6.4.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c64f4ddb3886dd8ab71b68a7431ad4aa01a8fa5be5b11543b29674f29ca0ba3"}, + {file = "multidict-6.4.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3002a856367c0b41cad6784f5b8d3ab008eda194ed7864aaa58f65312e2abcac"}, + {file = "multidict-6.4.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3d75e621e7d887d539d6e1d789f0c64271c250276c333480a9e1de089611f790"}, + {file = "multidict-6.4.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:995015cf4a3c0d72cbf453b10a999b92c5629eaf3a0c3e1efb4b5c1f602253bb"}, + {file = "multidict-6.4.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2b0fabae7939d09d7d16a711468c385272fa1b9b7fb0d37e51143585d8e72e0"}, + {file = "multidict-6.4.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:61ed4d82f8a1e67eb9eb04f8587970d78fe7cddb4e4d6230b77eda23d27938f9"}, + {file = "multidict-6.4.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:062428944a8dc69df9fdc5d5fc6279421e5f9c75a9ee3f586f274ba7b05ab3c8"}, + {file = "multidict-6.4.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:b90e27b4674e6c405ad6c64e515a505c6d113b832df52fdacb6b1ffd1fa9a1d1"}, + {file = "multidict-6.4.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7d50d4abf6729921e9613d98344b74241572b751c6b37feed75fb0c37bd5a817"}, + {file = "multidict-6.4.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:43fe10524fb0a0514be3954be53258e61d87341008ce4914f8e8b92bee6f875d"}, + {file = "multidict-6.4.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:236966ca6c472ea4e2d3f02f6673ebfd36ba3f23159c323f5a496869bc8e47c9"}, + {file = "multidict-6.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:422a5ec315018e606473ba1f5431e064cf8b2a7468019233dcf8082fabad64c8"}, + {file = "multidict-6.4.3-cp313-cp313-win32.whl", hash = "sha256:f901a5aace8e8c25d78960dcc24c870c8d356660d3b49b93a78bf38eb682aac3"}, + {file = "multidict-6.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:1c152c49e42277bc9a2f7b78bd5fa10b13e88d1b0328221e7aef89d5c60a99a5"}, + {file = "multidict-6.4.3-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:be8751869e28b9c0d368d94f5afcb4234db66fe8496144547b4b6d6a0645cfc6"}, + {file = "multidict-6.4.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0d4b31f8a68dccbcd2c0ea04f0e014f1defc6b78f0eb8b35f2265e8716a6df0c"}, + {file = "multidict-6.4.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:032efeab3049e37eef2ff91271884303becc9e54d740b492a93b7e7266e23756"}, + {file = "multidict-6.4.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9e78006af1a7c8a8007e4f56629d7252668344442f66982368ac06522445e375"}, + {file = "multidict-6.4.3-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:daeac9dd30cda8703c417e4fddccd7c4dc0c73421a0b54a7da2713be125846be"}, + {file = "multidict-6.4.3-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1f6f90700881438953eae443a9c6f8a509808bc3b185246992c4233ccee37fea"}, + {file = "multidict-6.4.3-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f84627997008390dd15762128dcf73c3365f4ec0106739cde6c20a07ed198ec8"}, + {file = "multidict-6.4.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3307b48cd156153b117c0ea54890a3bdbf858a5b296ddd40dc3852e5f16e9b02"}, + {file = "multidict-6.4.3-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ead46b0fa1dcf5af503a46e9f1c2e80b5d95c6011526352fa5f42ea201526124"}, + {file = "multidict-6.4.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:1748cb2743bedc339d63eb1bca314061568793acd603a6e37b09a326334c9f44"}, + {file = "multidict-6.4.3-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:acc9fa606f76fc111b4569348cc23a771cb52c61516dcc6bcef46d612edb483b"}, + {file = "multidict-6.4.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:31469d5832b5885adeb70982e531ce86f8c992334edd2f2254a10fa3182ac504"}, + {file = "multidict-6.4.3-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:ba46b51b6e51b4ef7bfb84b82f5db0dc5e300fb222a8a13b8cd4111898a869cf"}, + {file = "multidict-6.4.3-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:389cfefb599edf3fcfd5f64c0410da686f90f5f5e2c4d84e14f6797a5a337af4"}, + {file = "multidict-6.4.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:64bc2bbc5fba7b9db5c2c8d750824f41c6994e3882e6d73c903c2afa78d091e4"}, + {file = "multidict-6.4.3-cp313-cp313t-win32.whl", hash = "sha256:0ecdc12ea44bab2807d6b4a7e5eef25109ab1c82a8240d86d3c1fc9f3b72efd5"}, + {file = "multidict-6.4.3-cp313-cp313t-win_amd64.whl", hash = "sha256:7146a8742ea71b5d7d955bffcef58a9e6e04efba704b52a460134fefd10a8208"}, + {file = "multidict-6.4.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5427a2679e95a642b7f8b0f761e660c845c8e6fe3141cddd6b62005bd133fc21"}, + {file = "multidict-6.4.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:24a8caa26521b9ad09732972927d7b45b66453e6ebd91a3c6a46d811eeb7349b"}, + {file = "multidict-6.4.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6b5a272bc7c36a2cd1b56ddc6bff02e9ce499f9f14ee4a45c45434ef083f2459"}, + {file = "multidict-6.4.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edf74dc5e212b8c75165b435c43eb0d5e81b6b300a938a4eb82827119115e840"}, + {file = "multidict-6.4.3-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:9f35de41aec4b323c71f54b0ca461ebf694fb48bec62f65221f52e0017955b39"}, + {file = "multidict-6.4.3-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae93e0ff43b6f6892999af64097b18561691ffd835e21a8348a441e256592e1f"}, + {file = "multidict-6.4.3-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5e3929269e9d7eff905d6971d8b8c85e7dbc72c18fb99c8eae6fe0a152f2e343"}, + {file = "multidict-6.4.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fb6214fe1750adc2a1b801a199d64b5a67671bf76ebf24c730b157846d0e90d2"}, + {file = "multidict-6.4.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6d79cf5c0c6284e90f72123f4a3e4add52d6c6ebb4a9054e88df15b8d08444c6"}, + {file = "multidict-6.4.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:2427370f4a255262928cd14533a70d9738dfacadb7563bc3b7f704cc2360fc4e"}, + {file = "multidict-6.4.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:fbd8d737867912b6c5f99f56782b8cb81f978a97b4437a1c476de90a3e41c9a1"}, + {file = "multidict-6.4.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:0ee1bf613c448997f73fc4efb4ecebebb1c02268028dd4f11f011f02300cf1e8"}, + {file = "multidict-6.4.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:578568c4ba5f2b8abd956baf8b23790dbfdc953e87d5b110bce343b4a54fc9e7"}, + {file = "multidict-6.4.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:a059ad6b80de5b84b9fa02a39400319e62edd39d210b4e4f8c4f1243bdac4752"}, + {file = "multidict-6.4.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:dd53893675b729a965088aaadd6a1f326a72b83742b056c1065bdd2e2a42b4df"}, + {file = "multidict-6.4.3-cp39-cp39-win32.whl", hash = "sha256:abcfed2c4c139f25c2355e180bcc077a7cae91eefbb8b3927bb3f836c9586f1f"}, + {file = "multidict-6.4.3-cp39-cp39-win_amd64.whl", hash = "sha256:b1b389ae17296dd739015d5ddb222ee99fd66adeae910de21ac950e00979d897"}, + {file = "multidict-6.4.3-py3-none-any.whl", hash = "sha256:59fe01ee8e2a1e8ceb3f6dbb216b09c8d9f4ef1c22c4fc825d045a147fa2ebc9"}, + {file = "multidict-6.4.3.tar.gz", hash = "sha256:3ada0b058c9f213c5f95ba301f922d402ac234f1111a7d8fd70f1b99f3c281ec"}, +] + +[package.dependencies] +typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""} + +[[package]] +name = "narwhals" +version = "1.40.0" +description = "Extremely lightweight compatibility layer between dataframe libraries" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "narwhals-1.40.0-py3-none-any.whl", hash = "sha256:1e6c731811d01c61147c52433b4d4edfb6511aaf2c859aa01c2e8ca6ff4d27e5"}, + {file = "narwhals-1.40.0.tar.gz", hash = "sha256:17064abffd264ea1cfe6aefc8a0080f3a4ffb3659a98bcad5456ca80b88f2a0a"}, +] + +[package.extras] +cudf = ["cudf (>=24.10.0)"] +dask = ["dask[dataframe] (>=2024.8)"] +duckdb = ["duckdb (>=1.0)"] +ibis = ["ibis-framework (>=6.0.0)", "packaging", "pyarrow-hotfix", "rich"] +modin = ["modin"] +pandas = ["pandas (>=0.25.3)"] +polars = ["polars (>=0.20.3)"] +pyarrow = ["pyarrow (>=11.0.0)"] +pyspark = ["pyspark (>=3.5.0)"] +pyspark-connect = ["pyspark[connect] (>=3.5.0)"] +sqlframe = ["sqlframe (>=3.22.0)"] + +[[package]] +name = "nbformat" +version = "5.10.4" +description = "The Jupyter Notebook format" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "nbformat-5.10.4-py3-none-any.whl", hash = "sha256:3b48d6c8fbca4b299bf3982ea7db1af21580e4fec269ad087b9e81588891200b"}, + {file = "nbformat-5.10.4.tar.gz", hash = "sha256:322168b14f937a5d11362988ecac2a4952d3d8e3a2cbeb2319584631226d5b3a"}, +] + +[package.dependencies] +fastjsonschema = ">=2.15" +jsonschema = ">=2.6" +jupyter-core = ">=4.12,<5.0.dev0 || >=5.1.dev0" +traitlets = ">=5.1" + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx", "sphinxcontrib-github-alt", "sphinxcontrib-spelling"] +test = ["pep440", "pre-commit", "pytest", "testpath"] + +[[package]] +name = "numba" +version = "0.60.0" +description = "compiling Python code using LLVM" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "numba-0.60.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:5d761de835cd38fb400d2c26bb103a2726f548dc30368853121d66201672e651"}, + {file = "numba-0.60.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:159e618ef213fba758837f9837fb402bbe65326e60ba0633dbe6c7f274d42c1b"}, + {file = "numba-0.60.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:1527dc578b95c7c4ff248792ec33d097ba6bef9eda466c948b68dfc995c25781"}, + {file = "numba-0.60.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:fe0b28abb8d70f8160798f4de9d486143200f34458d34c4a214114e445d7124e"}, + {file = "numba-0.60.0-cp310-cp310-win_amd64.whl", hash = "sha256:19407ced081d7e2e4b8d8c36aa57b7452e0283871c296e12d798852bc7d7f198"}, + {file = "numba-0.60.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a17b70fc9e380ee29c42717e8cc0bfaa5556c416d94f9aa96ba13acb41bdece8"}, + {file = "numba-0.60.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3fb02b344a2a80efa6f677aa5c40cd5dd452e1b35f8d1c2af0dfd9ada9978e4b"}, + {file = "numba-0.60.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5f4fde652ea604ea3c86508a3fb31556a6157b2c76c8b51b1d45eb40c8598703"}, + {file = "numba-0.60.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:4142d7ac0210cc86432b818338a2bc368dc773a2f5cf1e32ff7c5b378bd63ee8"}, + {file = "numba-0.60.0-cp311-cp311-win_amd64.whl", hash = "sha256:cac02c041e9b5bc8cf8f2034ff6f0dbafccd1ae9590dc146b3a02a45e53af4e2"}, + {file = "numba-0.60.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d7da4098db31182fc5ffe4bc42c6f24cd7d1cb8a14b59fd755bfee32e34b8404"}, + {file = "numba-0.60.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:38d6ea4c1f56417076ecf8fc327c831ae793282e0ff51080c5094cb726507b1c"}, + {file = "numba-0.60.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:62908d29fb6a3229c242e981ca27e32a6e606cc253fc9e8faeb0e48760de241e"}, + {file = "numba-0.60.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0ebaa91538e996f708f1ab30ef4d3ddc344b64b5227b67a57aa74f401bb68b9d"}, + {file = "numba-0.60.0-cp312-cp312-win_amd64.whl", hash = "sha256:f75262e8fe7fa96db1dca93d53a194a38c46da28b112b8a4aca168f0df860347"}, + {file = "numba-0.60.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:01ef4cd7d83abe087d644eaa3d95831b777aa21d441a23703d649e06b8e06b74"}, + {file = "numba-0.60.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:819a3dfd4630d95fd574036f99e47212a1af41cbcb019bf8afac63ff56834449"}, + {file = "numba-0.60.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0b983bd6ad82fe868493012487f34eae8bf7dd94654951404114f23c3466d34b"}, + {file = "numba-0.60.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c151748cd269ddeab66334bd754817ffc0cabd9433acb0f551697e5151917d25"}, + {file = "numba-0.60.0-cp39-cp39-win_amd64.whl", hash = "sha256:3031547a015710140e8c87226b4cfe927cac199835e5bf7d4fe5cb64e814e3ab"}, + {file = "numba-0.60.0.tar.gz", hash = "sha256:5df6158e5584eece5fc83294b949fd30b9f1125df7708862205217e068aabf16"}, +] + +[package.dependencies] +llvmlite = "==0.43.*" +numpy = ">=1.22,<2.1" + +[[package]] +name = "numba" +version = "0.61.2" +description = "compiling Python code using LLVM" +optional = false +python-versions = ">=3.10" +groups = ["main"] +markers = "python_version >= \"3.11\"" +files = [ + {file = "numba-0.61.2-cp310-cp310-macosx_10_14_x86_64.whl", hash = "sha256:cf9f9fc00d6eca0c23fc840817ce9f439b9f03c8f03d6246c0e7f0cb15b7162a"}, + {file = "numba-0.61.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:ea0247617edcb5dd61f6106a56255baab031acc4257bddaeddb3a1003b4ca3fd"}, + {file = "numba-0.61.2-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ae8c7a522c26215d5f62ebec436e3d341f7f590079245a2f1008dfd498cc1642"}, + {file = "numba-0.61.2-cp310-cp310-manylinux_2_28_aarch64.whl", hash = "sha256:bd1e74609855aa43661edffca37346e4e8462f6903889917e9f41db40907daa2"}, + {file = "numba-0.61.2-cp310-cp310-win_amd64.whl", hash = "sha256:ae45830b129c6137294093b269ef0a22998ccc27bf7cf096ab8dcf7bca8946f9"}, + {file = "numba-0.61.2-cp311-cp311-macosx_10_14_x86_64.whl", hash = "sha256:efd3db391df53aaa5cfbee189b6c910a5b471488749fd6606c3f33fc984c2ae2"}, + {file = "numba-0.61.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:49c980e4171948ffebf6b9a2520ea81feed113c1f4890747ba7f59e74be84b1b"}, + {file = "numba-0.61.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3945615cd73c2c7eba2a85ccc9c1730c21cd3958bfcf5a44302abae0fb07bb60"}, + {file = "numba-0.61.2-cp311-cp311-manylinux_2_28_aarch64.whl", hash = "sha256:bbfdf4eca202cebade0b7d43896978e146f39398909a42941c9303f82f403a18"}, + {file = "numba-0.61.2-cp311-cp311-win_amd64.whl", hash = "sha256:76bcec9f46259cedf888041b9886e257ae101c6268261b19fda8cfbc52bec9d1"}, + {file = "numba-0.61.2-cp312-cp312-macosx_10_14_x86_64.whl", hash = "sha256:34fba9406078bac7ab052efbf0d13939426c753ad72946baaa5bf9ae0ebb8dd2"}, + {file = "numba-0.61.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:4ddce10009bc097b080fc96876d14c051cc0c7679e99de3e0af59014dab7dfe8"}, + {file = "numba-0.61.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:5b1bb509d01f23d70325d3a5a0e237cbc9544dd50e50588bc581ba860c213546"}, + {file = "numba-0.61.2-cp312-cp312-manylinux_2_28_aarch64.whl", hash = "sha256:48a53a3de8f8793526cbe330f2a39fe9a6638efcbf11bd63f3d2f9757ae345cd"}, + {file = "numba-0.61.2-cp312-cp312-win_amd64.whl", hash = "sha256:97cf4f12c728cf77c9c1d7c23707e4d8fb4632b46275f8f3397de33e5877af18"}, + {file = "numba-0.61.2-cp313-cp313-macosx_10_14_x86_64.whl", hash = "sha256:3a10a8fc9afac40b1eac55717cece1b8b1ac0b946f5065c89e00bde646b5b154"}, + {file = "numba-0.61.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7d3bcada3c9afba3bed413fba45845f2fb9cd0d2b27dd58a1be90257e293d140"}, + {file = "numba-0.61.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:bdbca73ad81fa196bd53dc12e3aaf1564ae036e0c125f237c7644fe64a4928ab"}, + {file = "numba-0.61.2-cp313-cp313-manylinux_2_28_aarch64.whl", hash = "sha256:5f154aaea625fb32cfbe3b80c5456d514d416fcdf79733dd69c0df3a11348e9e"}, + {file = "numba-0.61.2-cp313-cp313-win_amd64.whl", hash = "sha256:59321215e2e0ac5fa928a8020ab00b8e57cda8a97384963ac0dfa4d4e6aa54e7"}, + {file = "numba-0.61.2.tar.gz", hash = "sha256:8750ee147940a6637b80ecf7f95062185ad8726c8c28a2295b8ec1160a196f7d"}, +] + +[package.dependencies] +llvmlite = "==0.44.*" +numpy = ">=1.24,<2.3" + +[[package]] +name = "numpy" +version = "2.0.2" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "numpy-2.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:51129a29dbe56f9ca83438b706e2e69a39892b5eda6cedcb6b0c9fdc9b0d3ece"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f15975dfec0cf2239224d80e32c3170b1d168335eaedee69da84fbe9f1f9cd04"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:8c5713284ce4e282544c68d1c3b2c7161d38c256d2eefc93c1d683cf47683e66"}, + {file = "numpy-2.0.2-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:becfae3ddd30736fe1889a37f1f580e245ba79a5855bff5f2a29cb3ccc22dd7b"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2da5960c3cf0df7eafefd806d4e612c5e19358de82cb3c343631188991566ccd"}, + {file = "numpy-2.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:496f71341824ed9f3d2fd36cf3ac57ae2e0165c143b55c3a035ee219413f3318"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:a61ec659f68ae254e4d237816e33171497e978140353c0c2038d46e63282d0c8"}, + {file = "numpy-2.0.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:d731a1c6116ba289c1e9ee714b08a8ff882944d4ad631fd411106a30f083c326"}, + {file = "numpy-2.0.2-cp310-cp310-win32.whl", hash = "sha256:984d96121c9f9616cd33fbd0618b7f08e0cfc9600a7ee1d6fd9b239186d19d97"}, + {file = "numpy-2.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:c7b0be4ef08607dd04da4092faee0b86607f111d5ae68036f16cc787e250a131"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:49ca4decb342d66018b01932139c0961a8f9ddc7589611158cb3c27cbcf76448"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:11a76c372d1d37437857280aa142086476136a8c0f373b2e648ab2c8f18fb195"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:807ec44583fd708a21d4a11d94aedf2f4f3c3719035c76a2bbe1fe8e217bdc57"}, + {file = "numpy-2.0.2-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:8cafab480740e22f8d833acefed5cc87ce276f4ece12fdaa2e8903db2f82897a"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a15f476a45e6e5a3a79d8a14e62161d27ad897381fecfa4a09ed5322f2085669"}, + {file = "numpy-2.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:13e689d772146140a252c3a28501da66dfecd77490b498b168b501835041f951"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9ea91dfb7c3d1c56a0e55657c0afb38cf1eeae4544c208dc465c3c9f3a7c09f9"}, + {file = "numpy-2.0.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:c1c9307701fec8f3f7a1e6711f9089c06e6284b3afbbcd259f7791282d660a15"}, + {file = "numpy-2.0.2-cp311-cp311-win32.whl", hash = "sha256:a392a68bd329eafac5817e5aefeb39038c48b671afd242710b451e76090e81f4"}, + {file = "numpy-2.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:286cd40ce2b7d652a6f22efdfc6d1edf879440e53e76a75955bc0c826c7e64dc"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:df55d490dea7934f330006d0f81e8551ba6010a5bf035a249ef61a94f21c500b"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8df823f570d9adf0978347d1f926b2a867d5608f434a7cff7f7908c6570dcf5e"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:9a92ae5c14811e390f3767053ff54eaee3bf84576d99a2456391401323f4ec2c"}, + {file = "numpy-2.0.2-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:a842d573724391493a97a62ebbb8e731f8a5dcc5d285dfc99141ca15a3302d0c"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05e238064fc0610c840d1cf6a13bf63d7e391717d247f1bf0318172e759e692"}, + {file = "numpy-2.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0123ffdaa88fa4ab64835dcbde75dcdf89c453c922f18dced6e27c90d1d0ec5a"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:96a55f64139912d61de9137f11bf39a55ec8faec288c75a54f93dfd39f7eb40c"}, + {file = "numpy-2.0.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:ec9852fb39354b5a45a80bdab5ac02dd02b15f44b3804e9f00c556bf24b4bded"}, + {file = "numpy-2.0.2-cp312-cp312-win32.whl", hash = "sha256:671bec6496f83202ed2d3c8fdc486a8fc86942f2e69ff0e986140339a63bcbe5"}, + {file = "numpy-2.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:cfd41e13fdc257aa5778496b8caa5e856dc4896d4ccf01841daee1d96465467a"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9059e10581ce4093f735ed23f3b9d283b9d517ff46009ddd485f1747eb22653c"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:423e89b23490805d2a5a96fe40ec507407b8ee786d66f7328be214f9679df6dd"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_arm64.whl", hash = "sha256:2b2955fa6f11907cf7a70dab0d0755159bca87755e831e47932367fc8f2f2d0b"}, + {file = "numpy-2.0.2-cp39-cp39-macosx_14_0_x86_64.whl", hash = "sha256:97032a27bd9d8988b9a97a8c4d2c9f2c15a81f61e2f21404d7e8ef00cb5be729"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1e795a8be3ddbac43274f18588329c72939870a16cae810c2b73461c40718ab1"}, + {file = "numpy-2.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26b258c385842546006213344c50655ff1555a9338e2e5e02a0756dc3e803dd"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5fec9451a7789926bcf7c2b8d187292c9f93ea30284802a0ab3f5be8ab36865d"}, + {file = "numpy-2.0.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:9189427407d88ff25ecf8f12469d4d39d35bee1db5d39fc5c168c6f088a6956d"}, + {file = "numpy-2.0.2-cp39-cp39-win32.whl", hash = "sha256:905d16e0c60200656500c95b6b8dca5d109e23cb24abc701d41c02d74c6b3afa"}, + {file = "numpy-2.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:a3f4ab0caa7f053f6797fcd4e1e25caee367db3112ef2b6ef82d749530768c73"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7f0a0c6f12e07fa94133c8a67404322845220c06a9e80e85999afe727f7438b8"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-macosx_14_0_x86_64.whl", hash = "sha256:312950fdd060354350ed123c0e25a71327d3711584beaef30cdaa93320c392d4"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:26df23238872200f63518dd2aa984cfca675d82469535dc7162dc2ee52d9dd5c"}, + {file = "numpy-2.0.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a46288ec55ebbd58947d31d72be2c63cbf839f0a63b49cb755022310792a3385"}, + {file = "numpy-2.0.2.tar.gz", hash = "sha256:883c987dee1880e2a864ab0dc9892292582510604156762362d9326444636e78"}, +] + +[[package]] +name = "numpy" +version = "2.2.5" +description = "Fundamental package for array computing in Python" +optional = false +python-versions = ">=3.10" +groups = ["main"] +markers = "python_version >= \"3.11\"" +files = [ + {file = "numpy-2.2.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1f4a922da1729f4c40932b2af4fe84909c7a6e167e6e99f71838ce3a29f3fe26"}, + {file = "numpy-2.2.5-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b6f91524d31b34f4a5fee24f5bc16dcd1491b668798b6d85585d836c1e633a6a"}, + {file = "numpy-2.2.5-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:19f4718c9012e3baea91a7dba661dcab2451cda2550678dc30d53acb91a7290f"}, + {file = "numpy-2.2.5-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:eb7fd5b184e5d277afa9ec0ad5e4eb562ecff541e7f60e69ee69c8d59e9aeaba"}, + {file = "numpy-2.2.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6413d48a9be53e183eb06495d8e3b006ef8f87c324af68241bbe7a39e8ff54c3"}, + {file = "numpy-2.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7451f92eddf8503c9b8aa4fe6aa7e87fd51a29c2cfc5f7dbd72efde6c65acf57"}, + {file = "numpy-2.2.5-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0bcb1d057b7571334139129b7f941588f69ce7c4ed15a9d6162b2ea54ded700c"}, + {file = "numpy-2.2.5-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:36ab5b23915887543441efd0417e6a3baa08634308894316f446027611b53bf1"}, + {file = "numpy-2.2.5-cp310-cp310-win32.whl", hash = "sha256:422cc684f17bc963da5f59a31530b3936f57c95a29743056ef7a7903a5dbdf88"}, + {file = "numpy-2.2.5-cp310-cp310-win_amd64.whl", hash = "sha256:e4f0b035d9d0ed519c813ee23e0a733db81ec37d2e9503afbb6e54ccfdee0fa7"}, + {file = "numpy-2.2.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c42365005c7a6c42436a54d28c43fe0e01ca11eb2ac3cefe796c25a5f98e5e9b"}, + {file = "numpy-2.2.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:498815b96f67dc347e03b719ef49c772589fb74b8ee9ea2c37feae915ad6ebda"}, + {file = "numpy-2.2.5-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:6411f744f7f20081b1b4e7112e0f4c9c5b08f94b9f086e6f0adf3645f85d3a4d"}, + {file = "numpy-2.2.5-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:9de6832228f617c9ef45d948ec1cd8949c482238d68b2477e6f642c33a7b0a54"}, + {file = "numpy-2.2.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:369e0d4647c17c9363244f3468f2227d557a74b6781cb62ce57cf3ef5cc7c610"}, + {file = "numpy-2.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:262d23f383170f99cd9191a7c85b9a50970fe9069b2f8ab5d786eca8a675d60b"}, + {file = "numpy-2.2.5-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:aa70fdbdc3b169d69e8c59e65c07a1c9351ceb438e627f0fdcd471015cd956be"}, + {file = "numpy-2.2.5-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37e32e985f03c06206582a7323ef926b4e78bdaa6915095ef08070471865b906"}, + {file = "numpy-2.2.5-cp311-cp311-win32.whl", hash = "sha256:f5045039100ed58fa817a6227a356240ea1b9a1bc141018864c306c1a16d4175"}, + {file = "numpy-2.2.5-cp311-cp311-win_amd64.whl", hash = "sha256:b13f04968b46ad705f7c8a80122a42ae8f620536ea38cf4bdd374302926424dd"}, + {file = "numpy-2.2.5-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ee461a4eaab4f165b68780a6a1af95fb23a29932be7569b9fab666c407969051"}, + {file = "numpy-2.2.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ec31367fd6a255dc8de4772bd1658c3e926d8e860a0b6e922b615e532d320ddc"}, + {file = "numpy-2.2.5-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:47834cde750d3c9f4e52c6ca28a7361859fcaf52695c7dc3cc1a720b8922683e"}, + {file = "numpy-2.2.5-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:2c1a1c6ccce4022383583a6ded7bbcda22fc635eb4eb1e0a053336425ed36dfa"}, + {file = "numpy-2.2.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9d75f338f5f79ee23548b03d801d28a505198297534f62416391857ea0479571"}, + {file = "numpy-2.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3a801fef99668f309b88640e28d261991bfad9617c27beda4a3aec4f217ea073"}, + {file = "numpy-2.2.5-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:abe38cd8381245a7f49967a6010e77dbf3680bd3627c0fe4362dd693b404c7f8"}, + {file = "numpy-2.2.5-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5a0ac90e46fdb5649ab6369d1ab6104bfe5854ab19b645bf5cda0127a13034ae"}, + {file = "numpy-2.2.5-cp312-cp312-win32.whl", hash = "sha256:0cd48122a6b7eab8f06404805b1bd5856200e3ed6f8a1b9a194f9d9054631beb"}, + {file = "numpy-2.2.5-cp312-cp312-win_amd64.whl", hash = "sha256:ced69262a8278547e63409b2653b372bf4baff0870c57efa76c5703fd6543282"}, + {file = "numpy-2.2.5-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:059b51b658f4414fff78c6d7b1b4e18283ab5fa56d270ff212d5ba0c561846f4"}, + {file = "numpy-2.2.5-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:47f9ed103af0bc63182609044b0490747e03bd20a67e391192dde119bf43d52f"}, + {file = "numpy-2.2.5-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:261a1ef047751bb02f29dfe337230b5882b54521ca121fc7f62668133cb119c9"}, + {file = "numpy-2.2.5-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:4520caa3807c1ceb005d125a75e715567806fed67e315cea619d5ec6e75a4191"}, + {file = "numpy-2.2.5-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3d14b17b9be5f9c9301f43d2e2a4886a33b53f4e6fdf9ca2f4cc60aeeee76372"}, + {file = "numpy-2.2.5-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2ba321813a00e508d5421104464510cc962a6f791aa2fca1c97b1e65027da80d"}, + {file = "numpy-2.2.5-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4cbdef3ddf777423060c6f81b5694bad2dc9675f110c4b2a60dc0181543fac7"}, + {file = "numpy-2.2.5-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:54088a5a147ab71a8e7fdfd8c3601972751ded0739c6b696ad9cb0343e21ab73"}, + {file = "numpy-2.2.5-cp313-cp313-win32.whl", hash = "sha256:c8b82a55ef86a2d8e81b63da85e55f5537d2157165be1cb2ce7cfa57b6aef38b"}, + {file = "numpy-2.2.5-cp313-cp313-win_amd64.whl", hash = "sha256:d8882a829fd779f0f43998e931c466802a77ca1ee0fe25a3abe50278616b1471"}, + {file = "numpy-2.2.5-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:e8b025c351b9f0e8b5436cf28a07fa4ac0204d67b38f01433ac7f9b870fa38c6"}, + {file = "numpy-2.2.5-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:8dfa94b6a4374e7851bbb6f35e6ded2120b752b063e6acdd3157e4d2bb922eba"}, + {file = "numpy-2.2.5-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:97c8425d4e26437e65e1d189d22dff4a079b747ff9c2788057bfb8114ce1e133"}, + {file = "numpy-2.2.5-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:352d330048c055ea6db701130abc48a21bec690a8d38f8284e00fab256dc1376"}, + {file = "numpy-2.2.5-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b4c0773b6ada798f51f0f8e30c054d32304ccc6e9c5d93d46cb26f3d385ab19"}, + {file = "numpy-2.2.5-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:55f09e00d4dccd76b179c0f18a44f041e5332fd0e022886ba1c0bbf3ea4a18d0"}, + {file = "numpy-2.2.5-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:02f226baeefa68f7d579e213d0f3493496397d8f1cff5e2b222af274c86a552a"}, + {file = "numpy-2.2.5-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c26843fd58f65da9491165072da2cccc372530681de481ef670dcc8e27cfb066"}, + {file = "numpy-2.2.5-cp313-cp313t-win32.whl", hash = "sha256:1a161c2c79ab30fe4501d5a2bbfe8b162490757cf90b7f05be8b80bc02f7bb8e"}, + {file = "numpy-2.2.5-cp313-cp313t-win_amd64.whl", hash = "sha256:d403c84991b5ad291d3809bace5e85f4bbf44a04bdc9a88ed2bb1807b3360bb8"}, + {file = "numpy-2.2.5-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b4ea7e1cff6784e58fe281ce7e7f05036b3e1c89c6f922a6bfbc0a7e8768adbe"}, + {file = "numpy-2.2.5-pp310-pypy310_pp73-macosx_14_0_x86_64.whl", hash = "sha256:d7543263084a85fbc09c704b515395398d31d6395518446237eac219eab9e55e"}, + {file = "numpy-2.2.5-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0255732338c4fdd00996c0421884ea8a3651eea555c3a56b84892b66f696eb70"}, + {file = "numpy-2.2.5-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:d2e3bdadaba0e040d1e7ab39db73e0afe2c74ae277f5614dad53eadbecbbb169"}, + {file = "numpy-2.2.5.tar.gz", hash = "sha256:a9c0d994680cd991b1cb772e8b297340085466a6fe964bc9d4e80f5e2f43c291"}, +] + +[[package]] +name = "openbb-core" +version = "1.4.7" +description = "OpenBB package with core functionality." +optional = false +python-versions = "<3.13,>=3.9.21" +groups = ["main"] +files = [ + {file = "openbb_core-1.4.7-py3-none-any.whl", hash = "sha256:f46b3a1d354f02df1fb802bcbb6b1a0253b576607aeb7ecb9e47561e113b3dd4"}, + {file = "openbb_core-1.4.7.tar.gz", hash = "sha256:0c035cb2fdf7477d2d418ab08ca308d22696a45a9e5d571fd0c2b3797e0176ba"}, +] + +[package.dependencies] +aiohttp = ">=3.11.11,<4.0.0" +fastapi = ">=0.115,<0.116" +html5lib = ">=1.1,<2.0" +importlib-metadata = ">=6.8.0" +pandas = ">=1.5.3" +posthog = ">=3.3.1,<4.0.0" +pydantic = ">=2.5.1,<3.0.0" +pyjwt = ">=2.10.1,<3.0.0" +python-dotenv = ">=1.0.0,<2.0.0" +python-multipart = ">=0.0.20,<0.0.21" +requests = ">=2.32.1,<3.0.0" +ruff = ">=0.7,<0.8" +uuid7 = ">=0.1.0,<0.2.0" +uvicorn = ">=0.34.2,<0.35.0" +websockets = ">=15.0,<16.0" + +[[package]] +name = "packaging" +version = "25.0" +description = "Core utilities for Python packages" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"}, + {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"}, +] + +[[package]] +name = "pandas" +version = "2.2.3" +description = "Powerful data structures for data analysis, time series, and statistics" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "pandas-2.2.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:1948ddde24197a0f7add2bdc4ca83bf2b1ef84a1bc8ccffd95eda17fd836ecb5"}, + {file = "pandas-2.2.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:381175499d3802cde0eabbaf6324cce0c4f5d52ca6f8c377c29ad442f50f6348"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d9c45366def9a3dd85a6454c0e7908f2b3b8e9c138f5dc38fed7ce720d8453ed"}, + {file = "pandas-2.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86976a1c5b25ae3f8ccae3a5306e443569ee3c3faf444dfd0f41cda24667ad57"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b8661b0238a69d7aafe156b7fa86c44b881387509653fdf857bebc5e4008ad42"}, + {file = "pandas-2.2.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:37e0aced3e8f539eccf2e099f65cdb9c8aa85109b0be6e93e2baff94264bdc6f"}, + {file = "pandas-2.2.3-cp310-cp310-win_amd64.whl", hash = "sha256:56534ce0746a58afaf7942ba4863e0ef81c9c50d3f0ae93e9497d6a41a057645"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:66108071e1b935240e74525006034333f98bcdb87ea116de573a6a0dccb6c039"}, + {file = "pandas-2.2.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7c2875855b0ff77b2a64a0365e24455d9990730d6431b9e0ee18ad8acee13dbd"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:cd8d0c3be0515c12fed0bdbae072551c8b54b7192c7b1fda0ba56059a0179698"}, + {file = "pandas-2.2.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c124333816c3a9b03fbeef3a9f230ba9a737e9e5bb4060aa2107a86cc0a497fc"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:63cc132e40a2e084cf01adf0775b15ac515ba905d7dcca47e9a251819c575ef3"}, + {file = "pandas-2.2.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:29401dbfa9ad77319367d36940cd8a0b3a11aba16063e39632d98b0e931ddf32"}, + {file = "pandas-2.2.3-cp311-cp311-win_amd64.whl", hash = "sha256:3fc6873a41186404dad67245896a6e440baacc92f5b716ccd1bc9ed2995ab2c5"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:b1d432e8d08679a40e2a6d8b2f9770a5c21793a6f9f47fdd52c5ce1948a5a8a9"}, + {file = "pandas-2.2.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a5a1595fe639f5988ba6a8e5bc9649af3baf26df3998a0abe56c02609392e0a4"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:5de54125a92bb4d1c051c0659e6fcb75256bf799a732a87184e5ea503965bce3"}, + {file = "pandas-2.2.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fffb8ae78d8af97f849404f21411c95062db1496aeb3e56f146f0355c9989319"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6dfcb5ee8d4d50c06a51c2fffa6cff6272098ad6540aed1a76d15fb9318194d8"}, + {file = "pandas-2.2.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:062309c1b9ea12a50e8ce661145c6aab431b1e99530d3cd60640e255778bd43a"}, + {file = "pandas-2.2.3-cp312-cp312-win_amd64.whl", hash = "sha256:59ef3764d0fe818125a5097d2ae867ca3fa64df032331b7e0917cf5d7bf66b13"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f00d1345d84d8c86a63e476bb4955e46458b304b9575dcf71102b5c705320015"}, + {file = "pandas-2.2.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:3508d914817e153ad359d7e069d752cdd736a247c322d932eb89e6bc84217f28"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:22a9d949bfc9a502d320aa04e5d02feab689d61da4e7764b62c30b991c42c5f0"}, + {file = "pandas-2.2.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f3a255b2c19987fbbe62a9dfd6cff7ff2aa9ccab3fc75218fd4b7530f01efa24"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:800250ecdadb6d9c78eae4990da62743b857b470883fa27f652db8bdde7f6659"}, + {file = "pandas-2.2.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6374c452ff3ec675a8f46fd9ab25c4ad0ba590b71cf0656f8b6daa5202bca3fb"}, + {file = "pandas-2.2.3-cp313-cp313-win_amd64.whl", hash = "sha256:61c5ad4043f791b61dd4752191d9f07f0ae412515d59ba8f005832a532f8736d"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3b71f27954685ee685317063bf13c7709a7ba74fc996b84fc6821c59b0f06468"}, + {file = "pandas-2.2.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:38cf8125c40dae9d5acc10fa66af8ea6fdf760b2714ee482ca691fc66e6fcb18"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ba96630bc17c875161df3818780af30e43be9b166ce51c9a18c1feae342906c2"}, + {file = "pandas-2.2.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1db71525a1538b30142094edb9adc10be3f3e176748cd7acc2240c2f2e5aa3a4"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:15c0e1e02e93116177d29ff83e8b1619c93ddc9c49083f237d4312337a61165d"}, + {file = "pandas-2.2.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:ad5b65698ab28ed8d7f18790a0dc58005c7629f227be9ecc1072aa74c0c1d43a"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:bc6b93f9b966093cb0fd62ff1a7e4c09e6d546ad7c1de191767baffc57628f39"}, + {file = "pandas-2.2.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:5dbca4c1acd72e8eeef4753eeca07de9b1db4f398669d5994086f788a5d7cc30"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:8cd6d7cc958a3910f934ea8dbdf17b2364827bb4dafc38ce6eef6bb3d65ff09c"}, + {file = "pandas-2.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:99df71520d25fade9db7c1076ac94eb994f4d2673ef2aa2e86ee039b6746d20c"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:31d0ced62d4ea3e231a9f228366919a5ea0b07440d9d4dac345376fd8e1477ea"}, + {file = "pandas-2.2.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:7eee9e7cea6adf3e3d24e304ac6b8300646e2a5d1cd3a3c2abed9101b0846761"}, + {file = "pandas-2.2.3-cp39-cp39-win_amd64.whl", hash = "sha256:4850ba03528b6dd51d6c5d273c46f183f39a9baf3f0143e566b89450965b105e"}, + {file = "pandas-2.2.3.tar.gz", hash = "sha256:4f18ba62b61d7e192368b84517265a99b4d7ee8912f8708660fb4a366cc82667"}, +] + +[package.dependencies] +numpy = [ + {version = ">=1.22.4", markers = "python_version < \"3.11\""}, + {version = ">=1.23.2", markers = "python_version == \"3.11\""}, + {version = ">=1.26.0", markers = "python_version >= \"3.12\""}, +] +python-dateutil = ">=2.8.2" +pytz = ">=2020.1" +tzdata = ">=2022.7" + +[package.extras] +all = ["PyQt5 (>=5.15.9)", "SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)", "beautifulsoup4 (>=4.11.2)", "bottleneck (>=1.3.6)", "dataframe-api-compat (>=0.1.7)", "fastparquet (>=2022.12.0)", "fsspec (>=2022.11.0)", "gcsfs (>=2022.11.0)", "html5lib (>=1.1)", "hypothesis (>=6.46.1)", "jinja2 (>=3.1.2)", "lxml (>=4.9.2)", "matplotlib (>=3.6.3)", "numba (>=0.56.4)", "numexpr (>=2.8.4)", "odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "pandas-gbq (>=0.19.0)", "psycopg2 (>=2.9.6)", "pyarrow (>=10.0.1)", "pymysql (>=1.0.2)", "pyreadstat (>=1.2.0)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "qtpy (>=2.3.0)", "s3fs (>=2022.11.0)", "scipy (>=1.10.0)", "tables (>=3.8.0)", "tabulate (>=0.9.0)", "xarray (>=2022.12.0)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)", "zstandard (>=0.19.0)"] +aws = ["s3fs (>=2022.11.0)"] +clipboard = ["PyQt5 (>=5.15.9)", "qtpy (>=2.3.0)"] +compression = ["zstandard (>=0.19.0)"] +computation = ["scipy (>=1.10.0)", "xarray (>=2022.12.0)"] +consortium-standard = ["dataframe-api-compat (>=0.1.7)"] +excel = ["odfpy (>=1.4.1)", "openpyxl (>=3.1.0)", "python-calamine (>=0.1.7)", "pyxlsb (>=1.0.10)", "xlrd (>=2.0.1)", "xlsxwriter (>=3.0.5)"] +feather = ["pyarrow (>=10.0.1)"] +fss = ["fsspec (>=2022.11.0)"] +gcp = ["gcsfs (>=2022.11.0)", "pandas-gbq (>=0.19.0)"] +hdf5 = ["tables (>=3.8.0)"] +html = ["beautifulsoup4 (>=4.11.2)", "html5lib (>=1.1)", "lxml (>=4.9.2)"] +mysql = ["SQLAlchemy (>=2.0.0)", "pymysql (>=1.0.2)"] +output-formatting = ["jinja2 (>=3.1.2)", "tabulate (>=0.9.0)"] +parquet = ["pyarrow (>=10.0.1)"] +performance = ["bottleneck (>=1.3.6)", "numba (>=0.56.4)", "numexpr (>=2.8.4)"] +plot = ["matplotlib (>=3.6.3)"] +postgresql = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "psycopg2 (>=2.9.6)"] +pyarrow = ["pyarrow (>=10.0.1)"] +spss = ["pyreadstat (>=1.2.0)"] +sql-other = ["SQLAlchemy (>=2.0.0)", "adbc-driver-postgresql (>=0.8.0)", "adbc-driver-sqlite (>=0.8.0)"] +test = ["hypothesis (>=6.46.1)", "pytest (>=7.3.2)", "pytest-xdist (>=2.2.0)"] +xml = ["lxml (>=4.9.2)"] + +[[package]] +name = "pandas-ta-openbb" +version = "0.4.21" +description = "Fork of pandas-ta for use with NumPy 2 and OpenBB." +optional = false +python-versions = "<3.13,>=3.9.21" +groups = ["main"] +files = [ + {file = "pandas_ta_openbb-0.4.21-py3-none-any.whl", hash = "sha256:5628b6097d284ca72d65ce789ffb766ad4b3dfe66f6a380fdc635b4b548e719f"}, + {file = "pandas_ta_openbb-0.4.21.tar.gz", hash = "sha256:8161e22066f26f1fa4bd780f94252dd30a31857b4991563d1b6e109f552786d7"}, +] + +[package.dependencies] +numba = ">=0.59.0" +numpy = ">=1.26.4" +pandas = ">=2.2.0" +scipy = ">=1.13" +statsmodels = ">=0.14.0,<0.15.0" + +[[package]] +name = "patsy" +version = "1.0.1" +description = "A Python package for describing statistical models and for building design matrices." +optional = false +python-versions = ">=3.6" +groups = ["main"] +files = [ + {file = "patsy-1.0.1-py2.py3-none-any.whl", hash = "sha256:751fb38f9e97e62312e921a1954b81e1bb2bcda4f5eeabaf94db251ee791509c"}, + {file = "patsy-1.0.1.tar.gz", hash = "sha256:e786a9391eec818c054e359b737bbce692f051aee4c661f4141cc88fb459c0c4"}, +] + +[package.dependencies] +numpy = ">=1.4" + +[package.extras] +test = ["pytest", "pytest-cov", "scipy"] + +[[package]] +name = "platformdirs" +version = "4.3.8" +description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`." +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4"}, + {file = "platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc"}, +] + +[package.extras] +docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"] +test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.4)", "pytest-cov (>=6)", "pytest-mock (>=3.14)"] +type = ["mypy (>=1.14.1)"] + +[[package]] +name = "plotly" +version = "6.1.1" +description = "An open-source interactive data visualization library for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "plotly-6.1.1-py3-none-any.whl", hash = "sha256:9cca7167406ebf7ff541422738402159ec3621a608ff7b3e2f025573a1c76225"}, + {file = "plotly-6.1.1.tar.gz", hash = "sha256:84a4f3d36655f1328fa3155377c7e8a9533196697d5b79a4bc5e905bdd09a433"}, +] + +[package.dependencies] +narwhals = ">=1.15.1" +packaging = "*" + +[package.extras] +dev = ["black (==25.1.0)"] +express = ["numpy"] +kaleido = ["kaleido (==1.0.0rc13)"] + +[[package]] +name = "posthog" +version = "3.25.0" +description = "Integrate PostHog into any python application." +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "posthog-3.25.0-py2.py3-none-any.whl", hash = "sha256:85db78c13d1ecb11aed06fad53759c4e8fb3633442c2f3d0336bc0ce8a585d30"}, + {file = "posthog-3.25.0.tar.gz", hash = "sha256:9168f3e7a0a5571b6b1065c41b3c171fbc68bfe72c3ac0bfd6e3d2fcdb7df2ca"}, +] + +[package.dependencies] +backoff = ">=1.10.0" +distro = ">=1.5.0" +monotonic = ">=1.5" +python-dateutil = ">2.1" +requests = ">=2.7,<3.0" +six = ">=1.5" + +[package.extras] +dev = ["black", "django-stubs", "flake8", "flake8-print", "isort", "lxml", "mypy", "mypy-baseline", "pre-commit", "pydantic", "types-mock", "types-python-dateutil", "types-requests", "types-setuptools", "types-six"] +langchain = ["langchain (>=0.2.0)"] +sentry = ["django", "sentry-sdk"] +test = ["anthropic", "coverage", "django", "flake8", "freezegun (==1.5.1)", "langchain-anthropic (>=0.2.0)", "langchain-community (>=0.2.0)", "langchain-openai (>=0.2.0)", "langgraph", "mock (>=2.0.0)", "openai", "parameterized (>=0.8.1)", "pydantic", "pylint", "pytest", "pytest-asyncio", "pytest-timeout"] + +[[package]] +name = "propcache" +version = "0.3.1" +description = "Accelerated property cache" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "propcache-0.3.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f27785888d2fdd918bc36de8b8739f2d6c791399552333721b58193f68ea3e98"}, + {file = "propcache-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d4e89cde74154c7b5957f87a355bb9c8ec929c167b59c83d90654ea36aeb6180"}, + {file = "propcache-0.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:730178f476ef03d3d4d255f0c9fa186cb1d13fd33ffe89d39f2cda4da90ceb71"}, + {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:967a8eec513dbe08330f10137eacb427b2ca52118769e82ebcfcab0fba92a649"}, + {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b9145c35cc87313b5fd480144f8078716007656093d23059e8993d3a8fa730f"}, + {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9e64e948ab41411958670f1093c0a57acfdc3bee5cf5b935671bbd5313bcf229"}, + {file = "propcache-0.3.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:319fa8765bfd6a265e5fa661547556da381e53274bc05094fc9ea50da51bfd46"}, + {file = "propcache-0.3.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c66d8ccbc902ad548312b96ed8d5d266d0d2c6d006fd0f66323e9d8f2dd49be7"}, + {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:2d219b0dbabe75e15e581fc1ae796109b07c8ba7d25b9ae8d650da582bed01b0"}, + {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:cd6a55f65241c551eb53f8cf4d2f4af33512c39da5d9777694e9d9c60872f519"}, + {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:9979643ffc69b799d50d3a7b72b5164a2e97e117009d7af6dfdd2ab906cb72cd"}, + {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:4cf9e93a81979f1424f1a3d155213dc928f1069d697e4353edb8a5eba67c6259"}, + {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2fce1df66915909ff6c824bbb5eb403d2d15f98f1518e583074671a30fe0c21e"}, + {file = "propcache-0.3.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:4d0dfdd9a2ebc77b869a0b04423591ea8823f791293b527dc1bb896c1d6f1136"}, + {file = "propcache-0.3.1-cp310-cp310-win32.whl", hash = "sha256:1f6cc0ad7b4560e5637eb2c994e97b4fa41ba8226069c9277eb5ea7101845b42"}, + {file = "propcache-0.3.1-cp310-cp310-win_amd64.whl", hash = "sha256:47ef24aa6511e388e9894ec16f0fbf3313a53ee68402bc428744a367ec55b833"}, + {file = "propcache-0.3.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7f30241577d2fef2602113b70ef7231bf4c69a97e04693bde08ddab913ba0ce5"}, + {file = "propcache-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:43593c6772aa12abc3af7784bff4a41ffa921608dd38b77cf1dfd7f5c4e71371"}, + {file = "propcache-0.3.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a75801768bbe65499495660b777e018cbe90c7980f07f8aa57d6be79ea6f71da"}, + {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f6f1324db48f001c2ca26a25fa25af60711e09b9aaf4b28488602776f4f9a744"}, + {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5cdb0f3e1eb6dfc9965d19734d8f9c481b294b5274337a8cb5cb01b462dcb7e0"}, + {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1eb34d90aac9bfbced9a58b266f8946cb5935869ff01b164573a7634d39fbcb5"}, + {file = "propcache-0.3.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f35c7070eeec2cdaac6fd3fe245226ed2a6292d3ee8c938e5bb645b434c5f256"}, + {file = "propcache-0.3.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b23c11c2c9e6d4e7300c92e022046ad09b91fd00e36e83c44483df4afa990073"}, + {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:3e19ea4ea0bf46179f8a3652ac1426e6dcbaf577ce4b4f65be581e237340420d"}, + {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:bd39c92e4c8f6cbf5f08257d6360123af72af9f4da75a690bef50da77362d25f"}, + {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:b0313e8b923b3814d1c4a524c93dfecea5f39fa95601f6a9b1ac96cd66f89ea0"}, + {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:e861ad82892408487be144906a368ddbe2dc6297074ade2d892341b35c59844a"}, + {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:61014615c1274df8da5991a1e5da85a3ccb00c2d4701ac6f3383afd3ca47ab0a"}, + {file = "propcache-0.3.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:71ebe3fe42656a2328ab08933d420df5f3ab121772eef78f2dc63624157f0ed9"}, + {file = "propcache-0.3.1-cp311-cp311-win32.whl", hash = "sha256:58aa11f4ca8b60113d4b8e32d37e7e78bd8af4d1a5b5cb4979ed856a45e62005"}, + {file = "propcache-0.3.1-cp311-cp311-win_amd64.whl", hash = "sha256:9532ea0b26a401264b1365146c440a6d78269ed41f83f23818d4b79497aeabe7"}, + {file = "propcache-0.3.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:f78eb8422acc93d7b69964012ad7048764bb45a54ba7a39bb9e146c72ea29723"}, + {file = "propcache-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:89498dd49c2f9a026ee057965cdf8192e5ae070ce7d7a7bd4b66a8e257d0c976"}, + {file = "propcache-0.3.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:09400e98545c998d57d10035ff623266927cb784d13dd2b31fd33b8a5316b85b"}, + {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa8efd8c5adc5a2c9d3b952815ff8f7710cefdcaf5f2c36d26aff51aeca2f12f"}, + {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2fe5c910f6007e716a06d269608d307b4f36e7babee5f36533722660e8c4a70"}, + {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a0ab8cf8cdd2194f8ff979a43ab43049b1df0b37aa64ab7eca04ac14429baeb7"}, + {file = "propcache-0.3.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:563f9d8c03ad645597b8d010ef4e9eab359faeb11a0a2ac9f7b4bc8c28ebef25"}, + {file = "propcache-0.3.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:fb6e0faf8cb6b4beea5d6ed7b5a578254c6d7df54c36ccd3d8b3eb00d6770277"}, + {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:1c5c7ab7f2bb3f573d1cb921993006ba2d39e8621019dffb1c5bc94cdbae81e8"}, + {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:050b571b2e96ec942898f8eb46ea4bfbb19bd5502424747e83badc2d4a99a44e"}, + {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e1c4d24b804b3a87e9350f79e2371a705a188d292fd310e663483af6ee6718ee"}, + {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:e4fe2a6d5ce975c117a6bb1e8ccda772d1e7029c1cca1acd209f91d30fa72815"}, + {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:feccd282de1f6322f56f6845bf1207a537227812f0a9bf5571df52bb418d79d5"}, + {file = "propcache-0.3.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:ec314cde7314d2dd0510c6787326bbffcbdc317ecee6b7401ce218b3099075a7"}, + {file = "propcache-0.3.1-cp312-cp312-win32.whl", hash = "sha256:7d2d5a0028d920738372630870e7d9644ce437142197f8c827194fca404bf03b"}, + {file = "propcache-0.3.1-cp312-cp312-win_amd64.whl", hash = "sha256:88c423efef9d7a59dae0614eaed718449c09a5ac79a5f224a8b9664d603f04a3"}, + {file = "propcache-0.3.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:f1528ec4374617a7a753f90f20e2f551121bb558fcb35926f99e3c42367164b8"}, + {file = "propcache-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:dc1915ec523b3b494933b5424980831b636fe483d7d543f7afb7b3bf00f0c10f"}, + {file = "propcache-0.3.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a110205022d077da24e60b3df8bcee73971be9575dec5573dd17ae5d81751111"}, + {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d249609e547c04d190e820d0d4c8ca03ed4582bcf8e4e160a6969ddfb57b62e5"}, + {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5ced33d827625d0a589e831126ccb4f5c29dfdf6766cac441d23995a65825dcb"}, + {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4114c4ada8f3181af20808bedb250da6bae56660e4b8dfd9cd95d4549c0962f7"}, + {file = "propcache-0.3.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:975af16f406ce48f1333ec5e912fe11064605d5c5b3f6746969077cc3adeb120"}, + {file = "propcache-0.3.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a34aa3a1abc50740be6ac0ab9d594e274f59960d3ad253cd318af76b996dd654"}, + {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9cec3239c85ed15bfaded997773fdad9fb5662b0a7cbc854a43f291eb183179e"}, + {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:05543250deac8e61084234d5fc54f8ebd254e8f2b39a16b1dce48904f45b744b"}, + {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5cb5918253912e088edbf023788de539219718d3b10aef334476b62d2b53de53"}, + {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f3bbecd2f34d0e6d3c543fdb3b15d6b60dd69970c2b4c822379e5ec8f6f621d5"}, + {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:aca63103895c7d960a5b9b044a83f544b233c95e0dcff114389d64d762017af7"}, + {file = "propcache-0.3.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5a0a9898fdb99bf11786265468571e628ba60af80dc3f6eb89a3545540c6b0ef"}, + {file = "propcache-0.3.1-cp313-cp313-win32.whl", hash = "sha256:3a02a28095b5e63128bcae98eb59025924f121f048a62393db682f049bf4ac24"}, + {file = "propcache-0.3.1-cp313-cp313-win_amd64.whl", hash = "sha256:813fbb8b6aea2fc9659815e585e548fe706d6f663fa73dff59a1677d4595a037"}, + {file = "propcache-0.3.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a444192f20f5ce8a5e52761a031b90f5ea6288b1eef42ad4c7e64fef33540b8f"}, + {file = "propcache-0.3.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0fbe94666e62ebe36cd652f5fc012abfbc2342de99b523f8267a678e4dfdee3c"}, + {file = "propcache-0.3.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:f011f104db880f4e2166bcdcf7f58250f7a465bc6b068dc84c824a3d4a5c94dc"}, + {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e584b6d388aeb0001d6d5c2bd86b26304adde6d9bb9bfa9c4889805021b96de"}, + {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a17583515a04358b034e241f952f1715243482fc2c2945fd99a1b03a0bd77d6"}, + {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5aed8d8308215089c0734a2af4f2e95eeb360660184ad3912686c181e500b2e7"}, + {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d8e309ff9a0503ef70dc9a0ebd3e69cf7b3894c9ae2ae81fc10943c37762458"}, + {file = "propcache-0.3.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b655032b202028a582d27aeedc2e813299f82cb232f969f87a4fde491a233f11"}, + {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9f64d91b751df77931336b5ff7bafbe8845c5770b06630e27acd5dbb71e1931c"}, + {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:19a06db789a4bd896ee91ebc50d059e23b3639c25d58eb35be3ca1cbe967c3bf"}, + {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:bef100c88d8692864651b5f98e871fb090bd65c8a41a1cb0ff2322db39c96c27"}, + {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:87380fb1f3089d2a0b8b00f006ed12bd41bd858fabfa7330c954c70f50ed8757"}, + {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:e474fc718e73ba5ec5180358aa07f6aded0ff5f2abe700e3115c37d75c947e18"}, + {file = "propcache-0.3.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:17d1c688a443355234f3c031349da69444be052613483f3e4158eef751abcd8a"}, + {file = "propcache-0.3.1-cp313-cp313t-win32.whl", hash = "sha256:359e81a949a7619802eb601d66d37072b79b79c2505e6d3fd8b945538411400d"}, + {file = "propcache-0.3.1-cp313-cp313t-win_amd64.whl", hash = "sha256:e7fb9a84c9abbf2b2683fa3e7b0d7da4d8ecf139a1c635732a8bda29c5214b0e"}, + {file = "propcache-0.3.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ed5f6d2edbf349bd8d630e81f474d33d6ae5d07760c44d33cd808e2f5c8f4ae6"}, + {file = "propcache-0.3.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:668ddddc9f3075af019f784456267eb504cb77c2c4bd46cc8402d723b4d200bf"}, + {file = "propcache-0.3.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:0c86e7ceea56376216eba345aa1fc6a8a6b27ac236181f840d1d7e6a1ea9ba5c"}, + {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83be47aa4e35b87c106fc0c84c0fc069d3f9b9b06d3c494cd404ec6747544894"}, + {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:27c6ac6aa9fc7bc662f594ef380707494cb42c22786a558d95fcdedb9aa5d035"}, + {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64a956dff37080b352c1c40b2966b09defb014347043e740d420ca1eb7c9b908"}, + {file = "propcache-0.3.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:82de5da8c8893056603ac2d6a89eb8b4df49abf1a7c19d536984c8dd63f481d5"}, + {file = "propcache-0.3.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0c3c3a203c375b08fd06a20da3cf7aac293b834b6f4f4db71190e8422750cca5"}, + {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:b303b194c2e6f171cfddf8b8ba30baefccf03d36a4d9cab7fd0bb68ba476a3d7"}, + {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:916cd229b0150129d645ec51614d38129ee74c03293a9f3f17537be0029a9641"}, + {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:a461959ead5b38e2581998700b26346b78cd98540b5524796c175722f18b0294"}, + {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:069e7212890b0bcf9b2be0a03afb0c2d5161d91e1bf51569a64f629acc7defbf"}, + {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:ef2e4e91fb3945769e14ce82ed53007195e616a63aa43b40fb7ebaaf907c8d4c"}, + {file = "propcache-0.3.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:8638f99dca15b9dff328fb6273e09f03d1c50d9b6512f3b65a4154588a7595fe"}, + {file = "propcache-0.3.1-cp39-cp39-win32.whl", hash = "sha256:6f173bbfe976105aaa890b712d1759de339d8a7cef2fc0a1714cc1a1e1c47f64"}, + {file = "propcache-0.3.1-cp39-cp39-win_amd64.whl", hash = "sha256:603f1fe4144420374f1a69b907494c3acbc867a581c2d49d4175b0de7cc64566"}, + {file = "propcache-0.3.1-py3-none-any.whl", hash = "sha256:9a8ecf38de50a7f518c21568c80f985e776397b902f1ce0b01f799aba1608b40"}, + {file = "propcache-0.3.1.tar.gz", hash = "sha256:40d980c33765359098837527e18eddefc9a24cea5b45e078a7f3bb5b032c6ecf"}, +] + +[[package]] +name = "pydantic" +version = "2.11.4" +description = "Data validation using Python type hints" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "pydantic-2.11.4-py3-none-any.whl", hash = "sha256:d9615eaa9ac5a063471da949c8fc16376a84afb5024688b3ff885693506764eb"}, + {file = "pydantic-2.11.4.tar.gz", hash = "sha256:32738d19d63a226a52eed76645a98ee07c1f410ee41d93b4afbfa85ed8111c2d"}, +] + +[package.dependencies] +annotated-types = ">=0.6.0" +pydantic-core = "2.33.2" +typing-extensions = ">=4.12.2" +typing-inspection = ">=0.4.0" + +[package.extras] +email = ["email-validator (>=2.0.0)"] +timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""] + +[[package]] +name = "pydantic-core" +version = "2.33.2" +description = "Core functionality for Pydantic validation and serialization" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "pydantic_core-2.33.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2b3d326aaef0c0399d9afffeb6367d5e26ddc24d351dbc9c636840ac355dc5d8"}, + {file = "pydantic_core-2.33.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e5b2671f05ba48b94cb90ce55d8bdcaaedb8ba00cc5359f6810fc918713983d"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0069c9acc3f3981b9ff4cdfaf088e98d83440a4c7ea1bc07460af3d4dc22e72d"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d53b22f2032c42eaaf025f7c40c2e3b94568ae077a606f006d206a463bc69572"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0405262705a123b7ce9f0b92f123334d67b70fd1f20a9372b907ce1080c7ba02"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b25d91e288e2c4e0662b8038a28c6a07eaac3e196cfc4ff69de4ea3db992a1b"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bdfe4b3789761f3bcb4b1ddf33355a71079858958e3a552f16d5af19768fef2"}, + {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:efec8db3266b76ef9607c2c4c419bdb06bf335ae433b80816089ea7585816f6a"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:031c57d67ca86902726e0fae2214ce6770bbe2f710dc33063187a68744a5ecac"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:f8de619080e944347f5f20de29a975c2d815d9ddd8be9b9b7268e2e3ef68605a"}, + {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:73662edf539e72a9440129f231ed3757faab89630d291b784ca99237fb94db2b"}, + {file = "pydantic_core-2.33.2-cp310-cp310-win32.whl", hash = "sha256:0a39979dcbb70998b0e505fb1556a1d550a0781463ce84ebf915ba293ccb7e22"}, + {file = "pydantic_core-2.33.2-cp310-cp310-win_amd64.whl", hash = "sha256:b0379a2b24882fef529ec3b4987cb5d003b9cda32256024e6fe1586ac45fc640"}, + {file = "pydantic_core-2.33.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4c5b0a576fb381edd6d27f0a85915c6daf2f8138dc5c267a57c08a62900758c7"}, + {file = "pydantic_core-2.33.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e799c050df38a639db758c617ec771fd8fb7a5f8eaaa4b27b101f266b216a246"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc46a01bf8d62f227d5ecee74178ffc448ff4e5197c756331f71efcc66dc980f"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a144d4f717285c6d9234a66778059f33a89096dfb9b39117663fd8413d582dcc"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cf6373c21bc80b2e0dc88444f41ae60b2f070ed02095754eb5a01df12256de"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dc625f4aa79713512d1976fe9f0bc99f706a9dee21dfd1810b4bbbf228d0e8a"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b21b5549499972441da4758d662aeea93f1923f953e9cbaff14b8b9565aef"}, + {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bdc25f3681f7b78572699569514036afe3c243bc3059d3942624e936ec93450e"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fe5b32187cbc0c862ee201ad66c30cf218e5ed468ec8dc1cf49dec66e160cc4d"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:bc7aee6f634a6f4a95676fcb5d6559a2c2a390330098dba5e5a5f28a2e4ada30"}, + {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:235f45e5dbcccf6bd99f9f472858849f73d11120d76ea8707115415f8e5ebebf"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win32.whl", hash = "sha256:6368900c2d3ef09b69cb0b913f9f8263b03786e5b2a387706c5afb66800efd51"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e063337ef9e9820c77acc768546325ebe04ee38b08703244c1309cccc4f1bab"}, + {file = "pydantic_core-2.33.2-cp311-cp311-win_arm64.whl", hash = "sha256:6b99022f1d19bc32a4c2a0d544fc9a76e3be90f0b3f4af413f87d38749300e65"}, + {file = "pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc"}, + {file = "pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1"}, + {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6"}, + {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2"}, + {file = "pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab"}, + {file = "pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f"}, + {file = "pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d"}, + {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e"}, + {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9"}, + {file = "pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5"}, + {file = "pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9"}, + {file = "pydantic_core-2.33.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a2b911a5b90e0374d03813674bf0a5fbbb7741570dcd4b4e85a2e48d17def29d"}, + {file = "pydantic_core-2.33.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6fa6dfc3e4d1f734a34710f391ae822e0a8eb8559a85c6979e14e65ee6ba2954"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c54c939ee22dc8e2d545da79fc5381f1c020d6d3141d3bd747eab59164dc89fb"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53a57d2ed685940a504248187d5685e49eb5eef0f696853647bf37c418c538f7"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09fb9dd6571aacd023fe6aaca316bd01cf60ab27240d7eb39ebd66a3a15293b4"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0e6116757f7959a712db11f3e9c0a99ade00a5bbedae83cb801985aa154f071b"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d55ab81c57b8ff8548c3e4947f119551253f4e3787a7bbc0b6b3ca47498a9d3"}, + {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c20c462aa4434b33a2661701b861604913f912254e441ab8d78d30485736115a"}, + {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:44857c3227d3fb5e753d5fe4a3420d6376fa594b07b621e220cd93703fe21782"}, + {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:eb9b459ca4df0e5c87deb59d37377461a538852765293f9e6ee834f0435a93b9"}, + {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9fcd347d2cc5c23b06de6d3b7b8275be558a0c90549495c699e379a80bf8379e"}, + {file = "pydantic_core-2.33.2-cp39-cp39-win32.whl", hash = "sha256:83aa99b1285bc8f038941ddf598501a86f1536789740991d7d8756e34f1e74d9"}, + {file = "pydantic_core-2.33.2-cp39-cp39-win_amd64.whl", hash = "sha256:f481959862f57f29601ccced557cc2e817bce7533ab8e01a797a48b49c9692b3"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c4aa4e82353f65e548c476b37e64189783aa5384903bfea4f41580f255fddfa"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d946c8bf0d5c24bf4fe333af284c59a19358aa3ec18cb3dc4370080da1e8ad29"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87b31b6846e361ef83fedb187bb5b4372d0da3f7e28d85415efa92d6125d6e6d"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa9d91b338f2df0508606f7009fde642391425189bba6d8c653afd80fd6bb64e"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2058a32994f1fde4ca0480ab9d1e75a0e8c87c22b53a3ae66554f9af78f2fe8c"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:0e03262ab796d986f978f79c943fc5f620381be7287148b8010b4097f79a39ec"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1a8695a8d00c73e50bff9dfda4d540b7dee29ff9b8053e38380426a85ef10052"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:fa754d1850735a0b0e03bcffd9d4b4343eb417e47196e4485d9cca326073a42c"}, + {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a11c8d26a50bfab49002947d3d237abe4d9e4b5bdc8846a63537b6488e197808"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:dd14041875d09cc0f9308e37a6f8b65f5585cf2598a53aa0123df8b129d481f8"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d87c561733f66531dced0da6e864f44ebf89a8fba55f31407b00c2f7f9449593"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f82865531efd18d6e07a04a17331af02cb7a651583c418df8266f17a63c6612"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bfb5112df54209d820d7bf9317c7a6c9025ea52e49f46b6a2060104bba37de7"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64632ff9d614e5eecfb495796ad51b0ed98c453e447a76bcbeeb69615079fc7e"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f889f7a40498cc077332c7ab6b4608d296d852182211787d4f3ee377aaae66e8"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:de4b83bb311557e439b9e186f733f6c645b9417c84e2eb8203f3f820a4b988bf"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:82f68293f055f51b51ea42fafc74b6aad03e70e191799430b90c13d643059ebb"}, + {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:329467cecfb529c925cf2bbd4d60d2c509bc2fb52a20c1045bf09bb70971a9c1"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:87acbfcf8e90ca885206e98359d7dca4bcbb35abdc0ff66672a293e1d7a19101"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7f92c15cd1e97d4b12acd1cc9004fa092578acfa57b67ad5e43a197175d01a64"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3f26877a748dc4251cfcfda9dfb5f13fcb034f5308388066bcfe9031b63ae7d"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac89aea9af8cd672fa7b510e7b8c33b0bba9a43186680550ccf23020f32d535"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:970919794d126ba8645f3837ab6046fb4e72bbc057b3709144066204c19a455d"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3eb3fe62804e8f859c49ed20a8451342de53ed764150cb14ca71357c765dc2a6"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:3abcd9392a36025e3bd55f9bd38d908bd17962cc49bc6da8e7e96285336e2bca"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:3a1c81334778f9e3af2f8aeb7a960736e5cab1dfebfb26aabca09afd2906c039"}, + {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2807668ba86cb38c6817ad9bc66215ab8584d1d304030ce4f0887336f28a5e27"}, + {file = "pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc"}, +] + +[package.dependencies] +typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0" + +[[package]] +name = "pyjwt" +version = "2.10.1" +description = "JSON Web Token implementation in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "PyJWT-2.10.1-py3-none-any.whl", hash = "sha256:dcdd193e30abefd5debf142f9adfcdd2b58004e644f25406ffaebd50bd98dacb"}, + {file = "pyjwt-2.10.1.tar.gz", hash = "sha256:3cc5772eb20009233caf06e9d8a0577824723b44e6648ee0a2aedb6cf9381953"}, +] + +[package.extras] +crypto = ["cryptography (>=3.4.0)"] +dev = ["coverage[toml] (==5.0.4)", "cryptography (>=3.4.0)", "pre-commit", "pytest (>=6.0.0,<7.0.0)", "sphinx", "sphinx-rtd-theme", "zope.interface"] +docs = ["sphinx", "sphinx-rtd-theme", "zope.interface"] +tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +description = "Extensions to the standard Python datetime module" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +files = [ + {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, + {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, +] + +[package.dependencies] +six = ">=1.5" + +[[package]] +name = "python-dotenv" +version = "1.1.0" +description = "Read key-value pairs from a .env file and set them as environment variables" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "python_dotenv-1.1.0-py3-none-any.whl", hash = "sha256:d7c01d9e2293916c18baf562d95698754b0dbbb5e74d457c45d4f6561fb9d55d"}, + {file = "python_dotenv-1.1.0.tar.gz", hash = "sha256:41f90bc6f5f177fb41f53e87666db362025010eb28f60a01c9143bfa33a2b2d5"}, +] + +[package.extras] +cli = ["click (>=5.0)"] + +[[package]] +name = "python-multipart" +version = "0.0.20" +description = "A streaming multipart parser for Python" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "python_multipart-0.0.20-py3-none-any.whl", hash = "sha256:8a62d3a8335e06589fe01f2a3e178cdcc632f3fbe0d492ad9ee0ec35aab1f104"}, + {file = "python_multipart-0.0.20.tar.gz", hash = "sha256:8dd0cab45b8e23064ae09147625994d090fa46f5b0d1e13af944c331a7fa9d13"}, +] + +[[package]] +name = "pytz" +version = "2025.2" +description = "World timezone definitions, modern and historical" +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"}, + {file = "pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3"}, +] + +[[package]] +name = "pywin32" +version = "310" +description = "Python for Window Extensions" +optional = false +python-versions = "*" +groups = ["main"] +markers = "sys_platform == \"win32\" and platform_python_implementation != \"PyPy\"" +files = [ + {file = "pywin32-310-cp310-cp310-win32.whl", hash = "sha256:6dd97011efc8bf51d6793a82292419eba2c71cf8e7250cfac03bba284454abc1"}, + {file = "pywin32-310-cp310-cp310-win_amd64.whl", hash = "sha256:c3e78706e4229b915a0821941a84e7ef420bf2b77e08c9dae3c76fd03fd2ae3d"}, + {file = "pywin32-310-cp310-cp310-win_arm64.whl", hash = "sha256:33babed0cf0c92a6f94cc6cc13546ab24ee13e3e800e61ed87609ab91e4c8213"}, + {file = "pywin32-310-cp311-cp311-win32.whl", hash = "sha256:1e765f9564e83011a63321bb9d27ec456a0ed90d3732c4b2e312b855365ed8bd"}, + {file = "pywin32-310-cp311-cp311-win_amd64.whl", hash = "sha256:126298077a9d7c95c53823934f000599f66ec9296b09167810eb24875f32689c"}, + {file = "pywin32-310-cp311-cp311-win_arm64.whl", hash = "sha256:19ec5fc9b1d51c4350be7bb00760ffce46e6c95eaf2f0b2f1150657b1a43c582"}, + {file = "pywin32-310-cp312-cp312-win32.whl", hash = "sha256:8a75a5cc3893e83a108c05d82198880704c44bbaee4d06e442e471d3c9ea4f3d"}, + {file = "pywin32-310-cp312-cp312-win_amd64.whl", hash = "sha256:bf5c397c9a9a19a6f62f3fb821fbf36cac08f03770056711f765ec1503972060"}, + {file = "pywin32-310-cp312-cp312-win_arm64.whl", hash = "sha256:2349cc906eae872d0663d4d6290d13b90621eaf78964bb1578632ff20e152966"}, + {file = "pywin32-310-cp313-cp313-win32.whl", hash = "sha256:5d241a659c496ada3253cd01cfaa779b048e90ce4b2b38cd44168ad555ce74ab"}, + {file = "pywin32-310-cp313-cp313-win_amd64.whl", hash = "sha256:667827eb3a90208ddbdcc9e860c81bde63a135710e21e4cb3348968e4bd5249e"}, + {file = "pywin32-310-cp313-cp313-win_arm64.whl", hash = "sha256:e308f831de771482b7cf692a1f308f8fca701b2d8f9dde6cc440c7da17e47b33"}, + {file = "pywin32-310-cp38-cp38-win32.whl", hash = "sha256:0867beb8addefa2e3979d4084352e4ac6e991ca45373390775f7084cc0209b9c"}, + {file = "pywin32-310-cp38-cp38-win_amd64.whl", hash = "sha256:30f0a9b3138fb5e07eb4973b7077e1883f558e40c578c6925acc7a94c34eaa36"}, + {file = "pywin32-310-cp39-cp39-win32.whl", hash = "sha256:851c8d927af0d879221e616ae1f66145253537bbdd321a77e8ef701b443a9a1a"}, + {file = "pywin32-310-cp39-cp39-win_amd64.whl", hash = "sha256:96867217335559ac619f00ad70e513c0fcf84b8a3af9fc2bba3b59b97da70475"}, +] + +[[package]] +name = "pywry" +version = "0.6.2" +description = "" +optional = true +python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"pywry\"" +files = [ + {file = "pywry-0.6.2-py3-none-macosx_10_9_x86_64.macosx_11_0_arm64.macosx_10_9_universal2.whl", hash = "sha256:45d6bb827bf76b2532a9d70b539209d70f37dfb13e9862549b7bff8500ad2495"}, + {file = "pywry-0.6.2-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:1d9ffd826a3a08c132843340e6d896efb7b972b301d045e3239a7dc08d9cac2f"}, + {file = "pywry-0.6.2-py3-none-win_amd64.whl", hash = "sha256:4f0e5b502555ee8b8e799baeaebe63243a84b7ce51df01a1c439dbc4e8227b9e"}, + {file = "pywry-0.6.2.tar.gz", hash = "sha256:9bd88c36ab0860728d9e64360010f8abcede43645656030e4a63e69e81a98c95"}, +] + +[package.dependencies] +setproctitle = "*" + +[package.extras] +dev = ["auditwheel", "wheel"] + +[[package]] +name = "referencing" +version = "0.36.2" +description = "JSON Referencing + Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "referencing-0.36.2-py3-none-any.whl", hash = "sha256:e8699adbbf8b5c7de96d8ffa0eb5c158b3beafce084968e2ea8bb08c6794dcd0"}, + {file = "referencing-0.36.2.tar.gz", hash = "sha256:df2e89862cd09deabbdba16944cc3f10feb6b3e6f18e902f7cc25609a34775aa"}, +] + +[package.dependencies] +attrs = ">=22.2.0" +rpds-py = ">=0.7.0" +typing-extensions = {version = ">=4.4.0", markers = "python_version < \"3.13\""} + +[[package]] +name = "requests" +version = "2.32.3" +description = "Python HTTP for Humans." +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, +] + +[package.dependencies] +certifi = ">=2017.4.17" +charset-normalizer = ">=2,<4" +idna = ">=2.5,<4" +urllib3 = ">=1.21.1,<3" + +[package.extras] +socks = ["PySocks (>=1.5.6,!=1.5.7)"] +use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] + +[[package]] +name = "rpds-py" +version = "0.24.0" +description = "Python bindings to Rust's persistent data structures (rpds)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "rpds_py-0.24.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:006f4342fe729a368c6df36578d7a348c7c716be1da0a1a0f86e3021f8e98724"}, + {file = "rpds_py-0.24.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2d53747da70a4e4b17f559569d5f9506420966083a31c5fbd84e764461c4444b"}, + {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8acd55bd5b071156bae57b555f5d33697998752673b9de554dd82f5b5352727"}, + {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7e80d375134ddb04231a53800503752093dbb65dad8dabacce2c84cccc78e964"}, + {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:60748789e028d2a46fc1c70750454f83c6bdd0d05db50f5ae83e2db500b34da5"}, + {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6e1daf5bf6c2be39654beae83ee6b9a12347cb5aced9a29eecf12a2d25fff664"}, + {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b221c2457d92a1fb3c97bee9095c874144d196f47c038462ae6e4a14436f7bc"}, + {file = "rpds_py-0.24.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:66420986c9afff67ef0c5d1e4cdc2d0e5262f53ad11e4f90e5e22448df485bf0"}, + {file = "rpds_py-0.24.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:43dba99f00f1d37b2a0265a259592d05fcc8e7c19d140fe51c6e6f16faabeb1f"}, + {file = "rpds_py-0.24.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:a88c0d17d039333a41d9bf4616bd062f0bd7aa0edeb6cafe00a2fc2a804e944f"}, + {file = "rpds_py-0.24.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:cc31e13ce212e14a539d430428cd365e74f8b2d534f8bc22dd4c9c55b277b875"}, + {file = "rpds_py-0.24.0-cp310-cp310-win32.whl", hash = "sha256:fc2c1e1b00f88317d9de6b2c2b39b012ebbfe35fe5e7bef980fd2a91f6100a07"}, + {file = "rpds_py-0.24.0-cp310-cp310-win_amd64.whl", hash = "sha256:c0145295ca415668420ad142ee42189f78d27af806fcf1f32a18e51d47dd2052"}, + {file = "rpds_py-0.24.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:2d3ee4615df36ab8eb16c2507b11e764dcc11fd350bbf4da16d09cda11fcedef"}, + {file = "rpds_py-0.24.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e13ae74a8a3a0c2f22f450f773e35f893484fcfacb00bb4344a7e0f4f48e1f97"}, + {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cf86f72d705fc2ef776bb7dd9e5fbba79d7e1f3e258bf9377f8204ad0fc1c51e"}, + {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c43583ea8517ed2e780a345dd9960896afc1327e8cf3ac8239c167530397440d"}, + {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4cd031e63bc5f05bdcda120646a0d32f6d729486d0067f09d79c8db5368f4586"}, + {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:34d90ad8c045df9a4259c47d2e16a3f21fdb396665c94520dbfe8766e62187a4"}, + {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e838bf2bb0b91ee67bf2b889a1a841e5ecac06dd7a2b1ef4e6151e2ce155c7ae"}, + {file = "rpds_py-0.24.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04ecf5c1ff4d589987b4d9882872f80ba13da7d42427234fce8f22efb43133bc"}, + {file = "rpds_py-0.24.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:630d3d8ea77eabd6cbcd2ea712e1c5cecb5b558d39547ac988351195db433f6c"}, + {file = "rpds_py-0.24.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:ebcb786b9ff30b994d5969213a8430cbb984cdd7ea9fd6df06663194bd3c450c"}, + {file = "rpds_py-0.24.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:174e46569968ddbbeb8a806d9922f17cd2b524aa753b468f35b97ff9c19cb718"}, + {file = "rpds_py-0.24.0-cp311-cp311-win32.whl", hash = "sha256:5ef877fa3bbfb40b388a5ae1cb00636a624690dcb9a29a65267054c9ea86d88a"}, + {file = "rpds_py-0.24.0-cp311-cp311-win_amd64.whl", hash = "sha256:e274f62cbd274359eff63e5c7e7274c913e8e09620f6a57aae66744b3df046d6"}, + {file = "rpds_py-0.24.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:d8551e733626afec514b5d15befabea0dd70a343a9f23322860c4f16a9430205"}, + {file = "rpds_py-0.24.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0e374c0ce0ca82e5b67cd61fb964077d40ec177dd2c4eda67dba130de09085c7"}, + {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d69d003296df4840bd445a5d15fa5b6ff6ac40496f956a221c4d1f6f7b4bc4d9"}, + {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8212ff58ac6dfde49946bea57474a386cca3f7706fc72c25b772b9ca4af6b79e"}, + {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:528927e63a70b4d5f3f5ccc1fa988a35456eb5d15f804d276709c33fc2f19bda"}, + {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a824d2c7a703ba6daaca848f9c3d5cb93af0505be505de70e7e66829affd676e"}, + {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:44d51febb7a114293ffd56c6cf4736cb31cd68c0fddd6aa303ed09ea5a48e029"}, + {file = "rpds_py-0.24.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3fab5f4a2c64a8fb64fc13b3d139848817a64d467dd6ed60dcdd6b479e7febc9"}, + {file = "rpds_py-0.24.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:9be4f99bee42ac107870c61dfdb294d912bf81c3c6d45538aad7aecab468b6b7"}, + {file = "rpds_py-0.24.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:564c96b6076a98215af52f55efa90d8419cc2ef45d99e314fddefe816bc24f91"}, + {file = "rpds_py-0.24.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:75a810b7664c17f24bf2ffd7f92416c00ec84b49bb68e6a0d93e542406336b56"}, + {file = "rpds_py-0.24.0-cp312-cp312-win32.whl", hash = "sha256:f6016bd950be4dcd047b7475fdf55fb1e1f59fc7403f387be0e8123e4a576d30"}, + {file = "rpds_py-0.24.0-cp312-cp312-win_amd64.whl", hash = "sha256:998c01b8e71cf051c28f5d6f1187abbdf5cf45fc0efce5da6c06447cba997034"}, + {file = "rpds_py-0.24.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:3d2d8e4508e15fc05b31285c4b00ddf2e0eb94259c2dc896771966a163122a0c"}, + {file = "rpds_py-0.24.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:0f00c16e089282ad68a3820fd0c831c35d3194b7cdc31d6e469511d9bffc535c"}, + {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:951cc481c0c395c4a08639a469d53b7d4afa252529a085418b82a6b43c45c240"}, + {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c9ca89938dff18828a328af41ffdf3902405a19f4131c88e22e776a8e228c5a8"}, + {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed0ef550042a8dbcd657dfb284a8ee00f0ba269d3f2286b0493b15a5694f9fe8"}, + {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2b2356688e5d958c4d5cb964af865bea84db29971d3e563fb78e46e20fe1848b"}, + {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:78884d155fd15d9f64f5d6124b486f3d3f7fd7cd71a78e9670a0f6f6ca06fb2d"}, + {file = "rpds_py-0.24.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6a4a535013aeeef13c5532f802708cecae8d66c282babb5cd916379b72110cf7"}, + {file = "rpds_py-0.24.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:84e0566f15cf4d769dade9b366b7b87c959be472c92dffb70462dd0844d7cbad"}, + {file = "rpds_py-0.24.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:823e74ab6fbaa028ec89615ff6acb409e90ff45580c45920d4dfdddb069f2120"}, + {file = "rpds_py-0.24.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c61a2cb0085c8783906b2f8b1f16a7e65777823c7f4d0a6aaffe26dc0d358dd9"}, + {file = "rpds_py-0.24.0-cp313-cp313-win32.whl", hash = "sha256:60d9b630c8025b9458a9d114e3af579a2c54bd32df601c4581bd054e85258143"}, + {file = "rpds_py-0.24.0-cp313-cp313-win_amd64.whl", hash = "sha256:6eea559077d29486c68218178ea946263b87f1c41ae7f996b1f30a983c476a5a"}, + {file = "rpds_py-0.24.0-cp313-cp313t-macosx_10_12_x86_64.whl", hash = "sha256:d09dc82af2d3c17e7dd17120b202a79b578d79f2b5424bda209d9966efeed114"}, + {file = "rpds_py-0.24.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:5fc13b44de6419d1e7a7e592a4885b323fbc2f46e1f22151e3a8ed3b8b920405"}, + {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c347a20d79cedc0a7bd51c4d4b7dbc613ca4e65a756b5c3e57ec84bd43505b47"}, + {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:20f2712bd1cc26a3cc16c5a1bfee9ed1abc33d4cdf1aabd297fe0eb724df4272"}, + {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aad911555286884be1e427ef0dc0ba3929e6821cbeca2194b13dc415a462c7fd"}, + {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0aeb3329c1721c43c58cae274d7d2ca85c1690d89485d9c63a006cb79a85771a"}, + {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2a0f156e9509cee987283abd2296ec816225145a13ed0391df8f71bf1d789e2d"}, + {file = "rpds_py-0.24.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:aa6800adc8204ce898c8a424303969b7aa6a5e4ad2789c13f8648739830323b7"}, + {file = "rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:a18fc371e900a21d7392517c6f60fe859e802547309e94313cd8181ad9db004d"}, + {file = "rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:9168764133fd919f8dcca2ead66de0105f4ef5659cbb4fa044f7014bed9a1797"}, + {file = "rpds_py-0.24.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5f6e3cec44ba05ee5cbdebe92d052f69b63ae792e7d05f1020ac5e964394080c"}, + {file = "rpds_py-0.24.0-cp313-cp313t-win32.whl", hash = "sha256:8ebc7e65ca4b111d928b669713865f021b7773350eeac4a31d3e70144297baba"}, + {file = "rpds_py-0.24.0-cp313-cp313t-win_amd64.whl", hash = "sha256:675269d407a257b8c00a6b58205b72eec8231656506c56fd429d924ca00bb350"}, + {file = "rpds_py-0.24.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a36b452abbf29f68527cf52e181fced56685731c86b52e852053e38d8b60bc8d"}, + {file = "rpds_py-0.24.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:8b3b397eefecec8e8e39fa65c630ef70a24b09141a6f9fc17b3c3a50bed6b50e"}, + {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdabcd3beb2a6dca7027007473d8ef1c3b053347c76f685f5f060a00327b8b65"}, + {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5db385bacd0c43f24be92b60c857cf760b7f10d8234f4bd4be67b5b20a7c0b6b"}, + {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8097b3422d020ff1c44effc40ae58e67d93e60d540a65649d2cdaf9466030791"}, + {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:493fe54318bed7d124ce272fc36adbf59d46729659b2c792e87c3b95649cdee9"}, + {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8aa362811ccdc1f8dadcc916c6d47e554169ab79559319ae9fae7d7752d0d60c"}, + {file = "rpds_py-0.24.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d8f9a6e7fd5434817526815f09ea27f2746c4a51ee11bb3439065f5fc754db58"}, + {file = "rpds_py-0.24.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:8205ee14463248d3349131bb8099efe15cd3ce83b8ef3ace63c7e976998e7124"}, + {file = "rpds_py-0.24.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:921ae54f9ecba3b6325df425cf72c074cd469dea843fb5743a26ca7fb2ccb149"}, + {file = "rpds_py-0.24.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:32bab0a56eac685828e00cc2f5d1200c548f8bc11f2e44abf311d6b548ce2e45"}, + {file = "rpds_py-0.24.0-cp39-cp39-win32.whl", hash = "sha256:f5c0ed12926dec1dfe7d645333ea59cf93f4d07750986a586f511c0bc61fe103"}, + {file = "rpds_py-0.24.0-cp39-cp39-win_amd64.whl", hash = "sha256:afc6e35f344490faa8276b5f2f7cbf71f88bc2cda4328e00553bd451728c571f"}, + {file = "rpds_py-0.24.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:619ca56a5468f933d940e1bf431c6f4e13bef8e688698b067ae68eb4f9b30e3a"}, + {file = "rpds_py-0.24.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:4b28e5122829181de1898c2c97f81c0b3246d49f585f22743a1246420bb8d399"}, + {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8e5ab32cf9eb3647450bc74eb201b27c185d3857276162c101c0f8c6374e098"}, + {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:208b3a70a98cf3710e97cabdc308a51cd4f28aa6e7bb11de3d56cd8b74bab98d"}, + {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbc4362e06f950c62cad3d4abf1191021b2ffaf0b31ac230fbf0526453eee75e"}, + {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ebea2821cdb5f9fef44933617be76185b80150632736f3d76e54829ab4a3b4d1"}, + {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b9a4df06c35465ef4d81799999bba810c68d29972bf1c31db61bfdb81dd9d5bb"}, + {file = "rpds_py-0.24.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:d3aa13bdf38630da298f2e0d77aca967b200b8cc1473ea05248f6c5e9c9bdb44"}, + {file = "rpds_py-0.24.0-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:041f00419e1da7a03c46042453598479f45be3d787eb837af382bfc169c0db33"}, + {file = "rpds_py-0.24.0-pp310-pypy310_pp73-musllinux_1_2_i686.whl", hash = "sha256:d8754d872a5dfc3c5bf9c0e059e8107451364a30d9fd50f1f1a85c4fb9481164"}, + {file = "rpds_py-0.24.0-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:896c41007931217a343eff197c34513c154267636c8056fb409eafd494c3dcdc"}, + {file = "rpds_py-0.24.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:92558d37d872e808944c3c96d0423b8604879a3d1c86fdad508d7ed91ea547d5"}, + {file = "rpds_py-0.24.0-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:f9e0057a509e096e47c87f753136c9b10d7a91842d8042c2ee6866899a717c0d"}, + {file = "rpds_py-0.24.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d6e109a454412ab82979c5b1b3aee0604eca4bbf9a02693bb9df027af2bfa91a"}, + {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fc1c892b1ec1f8cbd5da8de287577b455e388d9c328ad592eabbdcb6fc93bee5"}, + {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c39438c55983d48f4bb3487734d040e22dad200dab22c41e331cee145e7a50d"}, + {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d7e8ce990ae17dda686f7e82fd41a055c668e13ddcf058e7fb5e9da20b57793"}, + {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9ea7f4174d2e4194289cb0c4e172d83e79a6404297ff95f2875cf9ac9bced8ba"}, + {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb2954155bb8f63bb19d56d80e5e5320b61d71084617ed89efedb861a684baea"}, + {file = "rpds_py-0.24.0-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04f2b712a2206e13800a8136b07aaedc23af3facab84918e7aa89e4be0260032"}, + {file = "rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:eda5c1e2a715a4cbbca2d6d304988460942551e4e5e3b7457b50943cd741626d"}, + {file = "rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:9abc80fe8c1f87218db116016de575a7998ab1629078c90840e8d11ab423ee25"}, + {file = "rpds_py-0.24.0-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:6a727fd083009bc83eb83d6950f0c32b3c94c8b80a9b667c87f4bd1274ca30ba"}, + {file = "rpds_py-0.24.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:e0f3ef95795efcd3b2ec3fe0a5bcfb5dadf5e3996ea2117427e524d4fbf309c6"}, + {file = "rpds_py-0.24.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:2c13777ecdbbba2077670285dd1fe50828c8742f6a4119dbef6f83ea13ad10fb"}, + {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79e8d804c2ccd618417e96720ad5cd076a86fa3f8cb310ea386a3e6229bae7d1"}, + {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd822f019ccccd75c832deb7aa040bb02d70a92eb15a2f16c7987b7ad4ee8d83"}, + {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0047638c3aa0dbcd0ab99ed1e549bbf0e142c9ecc173b6492868432d8989a046"}, + {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a5b66d1b201cc71bc3081bc2f1fc36b0c1f268b773e03bbc39066651b9e18391"}, + {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dbcbb6db5582ea33ce46a5d20a5793134b5365110d84df4e30b9d37c6fd40ad3"}, + {file = "rpds_py-0.24.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:63981feca3f110ed132fd217bf7768ee8ed738a55549883628ee3da75bb9cb78"}, + {file = "rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:3a55fc10fdcbf1a4bd3c018eea422c52cf08700cf99c28b5cb10fe97ab77a0d3"}, + {file = "rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_i686.whl", hash = "sha256:c30ff468163a48535ee7e9bf21bd14c7a81147c0e58a36c1078289a8ca7af0bd"}, + {file = "rpds_py-0.24.0-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:369d9c6d4c714e36d4a03957b4783217a3ccd1e222cdd67d464a3a479fc17796"}, + {file = "rpds_py-0.24.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:24795c099453e3721fda5d8ddd45f5dfcc8e5a547ce7b8e9da06fecc3832e26f"}, + {file = "rpds_py-0.24.0.tar.gz", hash = "sha256:772cc1b2cd963e7e17e6cc55fe0371fb9c704d63e44cacec7b9b7f523b78919e"}, +] + +[[package]] +name = "ruff" +version = "0.7.4" +description = "An extremely fast Python linter and code formatter, written in Rust." +optional = false +python-versions = ">=3.7" +groups = ["main"] +files = [ + {file = "ruff-0.7.4-py3-none-linux_armv6l.whl", hash = "sha256:a4919925e7684a3f18e18243cd6bea7cfb8e968a6eaa8437971f681b7ec51478"}, + {file = "ruff-0.7.4-py3-none-macosx_10_12_x86_64.whl", hash = "sha256:cfb365c135b830778dda8c04fb7d4280ed0b984e1aec27f574445231e20d6c63"}, + {file = "ruff-0.7.4-py3-none-macosx_11_0_arm64.whl", hash = "sha256:63a569b36bc66fbadec5beaa539dd81e0527cb258b94e29e0531ce41bacc1f20"}, + {file = "ruff-0.7.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0d06218747d361d06fd2fdac734e7fa92df36df93035db3dc2ad7aa9852cb109"}, + {file = "ruff-0.7.4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e0cea28d0944f74ebc33e9f934238f15c758841f9f5edd180b5315c203293452"}, + {file = "ruff-0.7.4-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:80094ecd4793c68b2571b128f91754d60f692d64bc0d7272ec9197fdd09bf9ea"}, + {file = "ruff-0.7.4-py3-none-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:997512325c6620d1c4c2b15db49ef59543ef9cd0f4aa8065ec2ae5103cedc7e7"}, + {file = "ruff-0.7.4-py3-none-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:00b4cf3a6b5fad6d1a66e7574d78956bbd09abfd6c8a997798f01f5da3d46a05"}, + {file = "ruff-0.7.4-py3-none-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7dbdc7d8274e1422722933d1edddfdc65b4336abf0b16dfcb9dedd6e6a517d06"}, + {file = "ruff-0.7.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0e92dfb5f00eaedb1501b2f906ccabfd67b2355bdf117fea9719fc99ac2145bc"}, + {file = "ruff-0.7.4-py3-none-musllinux_1_2_aarch64.whl", hash = "sha256:3bd726099f277d735dc38900b6a8d6cf070f80828877941983a57bca1cd92172"}, + {file = "ruff-0.7.4-py3-none-musllinux_1_2_armv7l.whl", hash = "sha256:2e32829c429dd081ee5ba39aef436603e5b22335c3d3fff013cd585806a6486a"}, + {file = "ruff-0.7.4-py3-none-musllinux_1_2_i686.whl", hash = "sha256:662a63b4971807623f6f90c1fb664613f67cc182dc4d991471c23c541fee62dd"}, + {file = "ruff-0.7.4-py3-none-musllinux_1_2_x86_64.whl", hash = "sha256:876f5e09eaae3eb76814c1d3b68879891d6fde4824c015d48e7a7da4cf066a3a"}, + {file = "ruff-0.7.4-py3-none-win32.whl", hash = "sha256:75c53f54904be42dd52a548728a5b572344b50d9b2873d13a3f8c5e3b91f5cac"}, + {file = "ruff-0.7.4-py3-none-win_amd64.whl", hash = "sha256:745775c7b39f914238ed1f1b0bebed0b9155a17cd8bc0b08d3c87e4703b990d6"}, + {file = "ruff-0.7.4-py3-none-win_arm64.whl", hash = "sha256:11bff065102c3ae9d3ea4dc9ecdfe5a5171349cdd0787c1fc64761212fc9cf1f"}, + {file = "ruff-0.7.4.tar.gz", hash = "sha256:cd12e35031f5af6b9b93715d8c4f40360070b2041f81273d0527683d5708fce2"}, +] + +[[package]] +name = "scipy" +version = "1.13.1" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +markers = "python_version < \"3.11\"" +files = [ + {file = "scipy-1.13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:20335853b85e9a49ff7572ab453794298bcf0354d8068c5f6775a0eabf350aca"}, + {file = "scipy-1.13.1-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:d605e9c23906d1994f55ace80e0125c587f96c020037ea6aa98d01b4bd2e222f"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cfa31f1def5c819b19ecc3a8b52d28ffdcc7ed52bb20c9a7589669dd3c250989"}, + {file = "scipy-1.13.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f26264b282b9da0952a024ae34710c2aff7d27480ee91a2e82b7b7073c24722f"}, + {file = "scipy-1.13.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:eccfa1906eacc02de42d70ef4aecea45415f5be17e72b61bafcfd329bdc52e94"}, + {file = "scipy-1.13.1-cp310-cp310-win_amd64.whl", hash = "sha256:2831f0dc9c5ea9edd6e51e6e769b655f08ec6db6e2e10f86ef39bd32eb11da54"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27e52b09c0d3a1d5b63e1105f24177e544a222b43611aaf5bc44d4a0979e32f9"}, + {file = "scipy-1.13.1-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:54f430b00f0133e2224c3ba42b805bfd0086fe488835effa33fa291561932326"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e89369d27f9e7b0884ae559a3a956e77c02114cc60a6058b4e5011572eea9299"}, + {file = "scipy-1.13.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a78b4b3345f1b6f68a763c6e25c0c9a23a9fd0f39f5f3d200efe8feda560a5fa"}, + {file = "scipy-1.13.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:45484bee6d65633752c490404513b9ef02475b4284c4cfab0ef946def50b3f59"}, + {file = "scipy-1.13.1-cp311-cp311-win_amd64.whl", hash = "sha256:5713f62f781eebd8d597eb3f88b8bf9274e79eeabf63afb4a737abc6c84ad37b"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:5d72782f39716b2b3509cd7c33cdc08c96f2f4d2b06d51e52fb45a19ca0c86a1"}, + {file = "scipy-1.13.1-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:017367484ce5498445aade74b1d5ab377acdc65e27095155e448c88497755a5d"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:949ae67db5fa78a86e8fa644b9a6b07252f449dcf74247108c50e1d20d2b4627"}, + {file = "scipy-1.13.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:de3ade0e53bc1f21358aa74ff4830235d716211d7d077e340c7349bc3542e884"}, + {file = "scipy-1.13.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:2ac65fb503dad64218c228e2dc2d0a0193f7904747db43014645ae139c8fad16"}, + {file = "scipy-1.13.1-cp312-cp312-win_amd64.whl", hash = "sha256:cdd7dacfb95fea358916410ec61bbc20440f7860333aee6d882bb8046264e949"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:436bbb42a94a8aeef855d755ce5a465479c721e9d684de76bf61a62e7c2b81d5"}, + {file = "scipy-1.13.1-cp39-cp39-macosx_12_0_arm64.whl", hash = "sha256:8335549ebbca860c52bf3d02f80784e91a004b71b059e3eea9678ba994796a24"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d533654b7d221a6a97304ab63c41c96473ff04459e404b83275b60aa8f4b7004"}, + {file = "scipy-1.13.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:637e98dcf185ba7f8e663e122ebf908c4702420477ae52a04f9908707456ba4d"}, + {file = "scipy-1.13.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a014c2b3697bde71724244f63de2476925596c24285c7a637364761f8710891c"}, + {file = "scipy-1.13.1-cp39-cp39-win_amd64.whl", hash = "sha256:392e4ec766654852c25ebad4f64e4e584cf19820b980bc04960bca0b0cd6eaa2"}, + {file = "scipy-1.13.1.tar.gz", hash = "sha256:095a87a0312b08dfd6a6155cbbd310a8c51800fc931b8c0b84003014b874ed3c"}, +] + +[package.dependencies] +numpy = ">=1.22.4,<2.3" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy", "pycodestyle", "pydevtool", "rich-click", "ruff", "types-psutil", "typing_extensions"] +doc = ["jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.12.0)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0)", "sphinx-design (>=0.4.0)"] +test = ["array-api-strict", "asv", "gmpy2", "hypothesis (>=6.30)", "mpmath", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "scipy" +version = "1.15.3" +description = "Fundamental algorithms for scientific computing in Python" +optional = false +python-versions = ">=3.10" +groups = ["main"] +markers = "python_version >= \"3.11\"" +files = [ + {file = "scipy-1.15.3-cp310-cp310-macosx_10_13_x86_64.whl", hash = "sha256:a345928c86d535060c9c2b25e71e87c39ab2f22fc96e9636bd74d1dbf9de448c"}, + {file = "scipy-1.15.3-cp310-cp310-macosx_12_0_arm64.whl", hash = "sha256:ad3432cb0f9ed87477a8d97f03b763fd1d57709f1bbde3c9369b1dff5503b253"}, + {file = "scipy-1.15.3-cp310-cp310-macosx_14_0_arm64.whl", hash = "sha256:aef683a9ae6eb00728a542b796f52a5477b78252edede72b8327a886ab63293f"}, + {file = "scipy-1.15.3-cp310-cp310-macosx_14_0_x86_64.whl", hash = "sha256:1c832e1bd78dea67d5c16f786681b28dd695a8cb1fb90af2e27580d3d0967e92"}, + {file = "scipy-1.15.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:263961f658ce2165bbd7b99fa5135195c3a12d9bef045345016b8b50c315cb82"}, + {file = "scipy-1.15.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9e2abc762b0811e09a0d3258abee2d98e0c703eee49464ce0069590846f31d40"}, + {file = "scipy-1.15.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:ed7284b21a7a0c8f1b6e5977ac05396c0d008b89e05498c8b7e8f4a1423bba0e"}, + {file = "scipy-1.15.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:5380741e53df2c566f4d234b100a484b420af85deb39ea35a1cc1be84ff53a5c"}, + {file = "scipy-1.15.3-cp310-cp310-win_amd64.whl", hash = "sha256:9d61e97b186a57350f6d6fd72640f9e99d5a4a2b8fbf4b9ee9a841eab327dc13"}, + {file = "scipy-1.15.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:993439ce220d25e3696d1b23b233dd010169b62f6456488567e830654ee37a6b"}, + {file = "scipy-1.15.3-cp311-cp311-macosx_12_0_arm64.whl", hash = "sha256:34716e281f181a02341ddeaad584205bd2fd3c242063bd3423d61ac259ca7eba"}, + {file = "scipy-1.15.3-cp311-cp311-macosx_14_0_arm64.whl", hash = "sha256:3b0334816afb8b91dab859281b1b9786934392aa3d527cd847e41bb6f45bee65"}, + {file = "scipy-1.15.3-cp311-cp311-macosx_14_0_x86_64.whl", hash = "sha256:6db907c7368e3092e24919b5e31c76998b0ce1684d51a90943cb0ed1b4ffd6c1"}, + {file = "scipy-1.15.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:721d6b4ef5dc82ca8968c25b111e307083d7ca9091bc38163fb89243e85e3889"}, + {file = "scipy-1.15.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:39cb9c62e471b1bb3750066ecc3a3f3052b37751c7c3dfd0fd7e48900ed52982"}, + {file = "scipy-1.15.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:795c46999bae845966368a3c013e0e00947932d68e235702b5c3f6ea799aa8c9"}, + {file = "scipy-1.15.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:18aaacb735ab38b38db42cb01f6b92a2d0d4b6aabefeb07f02849e47f8fb3594"}, + {file = "scipy-1.15.3-cp311-cp311-win_amd64.whl", hash = "sha256:ae48a786a28412d744c62fd7816a4118ef97e5be0bee968ce8f0a2fba7acf3bb"}, + {file = "scipy-1.15.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6ac6310fdbfb7aa6612408bd2f07295bcbd3fda00d2d702178434751fe48e019"}, + {file = "scipy-1.15.3-cp312-cp312-macosx_12_0_arm64.whl", hash = "sha256:185cd3d6d05ca4b44a8f1595af87f9c372bb6acf9c808e99aa3e9aa03bd98cf6"}, + {file = "scipy-1.15.3-cp312-cp312-macosx_14_0_arm64.whl", hash = "sha256:05dc6abcd105e1a29f95eada46d4a3f251743cfd7d3ae8ddb4088047f24ea477"}, + {file = "scipy-1.15.3-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:06efcba926324df1696931a57a176c80848ccd67ce6ad020c810736bfd58eb1c"}, + {file = "scipy-1.15.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c05045d8b9bfd807ee1b9f38761993297b10b245f012b11b13b91ba8945f7e45"}, + {file = "scipy-1.15.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:271e3713e645149ea5ea3e97b57fdab61ce61333f97cfae392c28ba786f9bb49"}, + {file = "scipy-1.15.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6cfd56fc1a8e53f6e89ba3a7a7251f7396412d655bca2aa5611c8ec9a6784a1e"}, + {file = "scipy-1.15.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0ff17c0bb1cb32952c09217d8d1eed9b53d1463e5f1dd6052c7857f83127d539"}, + {file = "scipy-1.15.3-cp312-cp312-win_amd64.whl", hash = "sha256:52092bc0472cfd17df49ff17e70624345efece4e1a12b23783a1ac59a1b728ed"}, + {file = "scipy-1.15.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:2c620736bcc334782e24d173c0fdbb7590a0a436d2fdf39310a8902505008759"}, + {file = "scipy-1.15.3-cp313-cp313-macosx_12_0_arm64.whl", hash = "sha256:7e11270a000969409d37ed399585ee530b9ef6aa99d50c019de4cb01e8e54e62"}, + {file = "scipy-1.15.3-cp313-cp313-macosx_14_0_arm64.whl", hash = "sha256:8c9ed3ba2c8a2ce098163a9bdb26f891746d02136995df25227a20e71c396ebb"}, + {file = "scipy-1.15.3-cp313-cp313-macosx_14_0_x86_64.whl", hash = "sha256:0bdd905264c0c9cfa74a4772cdb2070171790381a5c4d312c973382fc6eaf730"}, + {file = "scipy-1.15.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:79167bba085c31f38603e11a267d862957cbb3ce018d8b38f79ac043bc92d825"}, + {file = "scipy-1.15.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c9deabd6d547aee2c9a81dee6cc96c6d7e9a9b1953f74850c179f91fdc729cb7"}, + {file = "scipy-1.15.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:dde4fc32993071ac0c7dd2d82569e544f0bdaff66269cb475e0f369adad13f11"}, + {file = "scipy-1.15.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:f77f853d584e72e874d87357ad70f44b437331507d1c311457bed8ed2b956126"}, + {file = "scipy-1.15.3-cp313-cp313-win_amd64.whl", hash = "sha256:b90ab29d0c37ec9bf55424c064312930ca5f4bde15ee8619ee44e69319aab163"}, + {file = "scipy-1.15.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:3ac07623267feb3ae308487c260ac684b32ea35fd81e12845039952f558047b8"}, + {file = "scipy-1.15.3-cp313-cp313t-macosx_12_0_arm64.whl", hash = "sha256:6487aa99c2a3d509a5227d9a5e889ff05830a06b2ce08ec30df6d79db5fcd5c5"}, + {file = "scipy-1.15.3-cp313-cp313t-macosx_14_0_arm64.whl", hash = "sha256:50f9e62461c95d933d5c5ef4a1f2ebf9a2b4e83b0db374cb3f1de104d935922e"}, + {file = "scipy-1.15.3-cp313-cp313t-macosx_14_0_x86_64.whl", hash = "sha256:14ed70039d182f411ffc74789a16df3835e05dc469b898233a245cdfd7f162cb"}, + {file = "scipy-1.15.3-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a769105537aa07a69468a0eefcd121be52006db61cdd8cac8a0e68980bbb723"}, + {file = "scipy-1.15.3-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9db984639887e3dffb3928d118145ffe40eff2fa40cb241a306ec57c219ebbbb"}, + {file = "scipy-1.15.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:40e54d5c7e7ebf1aa596c374c49fa3135f04648a0caabcb66c52884b943f02b4"}, + {file = "scipy-1.15.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:5e721fed53187e71d0ccf382b6bf977644c533e506c4d33c3fb24de89f5c3ed5"}, + {file = "scipy-1.15.3-cp313-cp313t-win_amd64.whl", hash = "sha256:76ad1fb5f8752eabf0fa02e4cc0336b4e8f021e2d5f061ed37d6d264db35e3ca"}, + {file = "scipy-1.15.3.tar.gz", hash = "sha256:eae3cf522bc7df64b42cad3925c876e1b0b6c35c1337c93e12c0f366f55b0eaf"}, +] + +[package.dependencies] +numpy = ">=1.23.5,<2.5" + +[package.extras] +dev = ["cython-lint (>=0.12.2)", "doit (>=0.36.0)", "mypy (==1.10.0)", "pycodestyle", "pydevtool", "rich-click", "ruff (>=0.0.292)", "types-psutil", "typing_extensions"] +doc = ["intersphinx_registry", "jupyterlite-pyodide-kernel", "jupyterlite-sphinx (>=0.19.1)", "jupytext", "matplotlib (>=3.5)", "myst-nb", "numpydoc", "pooch", "pydata-sphinx-theme (>=0.15.2)", "sphinx (>=5.0.0,<8.0.0)", "sphinx-copybutton", "sphinx-design (>=0.4.0)"] +test = ["Cython", "array-api-strict (>=2.0,<2.1.1)", "asv", "gmpy2", "hypothesis (>=6.30)", "meson", "mpmath", "ninja ; sys_platform != \"emscripten\"", "pooch", "pytest", "pytest-cov", "pytest-timeout", "pytest-xdist", "scikit-umfpack", "threadpoolctl"] + +[[package]] +name = "setproctitle" +version = "1.3.6" +description = "A Python module to customize the process title" +optional = true +python-versions = ">=3.8" +groups = ["main"] +markers = "extra == \"pywry\"" +files = [ + {file = "setproctitle-1.3.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ebcf34b69df4ca0eabaaaf4a3d890f637f355fed00ba806f7ebdd2d040658c26"}, + {file = "setproctitle-1.3.6-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1aa1935aa2195b76f377e5cb018290376b7bf085f0b53f5a95c0c21011b74367"}, + {file = "setproctitle-1.3.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:13624d9925bb481bc0ccfbc7f533da38bfbfe6e80652314f789abc78c2e513bd"}, + {file = "setproctitle-1.3.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:97a138fa875c6f281df7720dac742259e85518135cd0e3551aba1c628103d853"}, + {file = "setproctitle-1.3.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c86e9e82bfab579327dbe9b82c71475165fbc8b2134d24f9a3b2edaf200a5c3d"}, + {file = "setproctitle-1.3.6-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6af330ddc2ec05a99c3933ab3cba9365357c0b8470a7f2fa054ee4b0984f57d1"}, + {file = "setproctitle-1.3.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:109fc07b1cd6cef9c245b2028e3e98e038283342b220def311d0239179810dbe"}, + {file = "setproctitle-1.3.6-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:7df5fcc48588f82b6cc8073db069609ddd48a49b1e9734a20d0efb32464753c4"}, + {file = "setproctitle-1.3.6-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:2407955dc359d735a20ac6e797ad160feb33d529a2ac50695c11a1ec680eafab"}, + {file = "setproctitle-1.3.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:38ca045626af693da042ac35d7332e7b9dbd52e6351d6973b310612e3acee6d6"}, + {file = "setproctitle-1.3.6-cp310-cp310-win32.whl", hash = "sha256:9483aa336687463f5497dd37a070094f3dff55e2c888994f8440fcf426a1a844"}, + {file = "setproctitle-1.3.6-cp310-cp310-win_amd64.whl", hash = "sha256:4efc91b437f6ff2578e89e3f17d010c0a0ff01736606473d082913ecaf7859ba"}, + {file = "setproctitle-1.3.6-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a1d856b0f4e4a33e31cdab5f50d0a14998f3a2d726a3fd5cb7c4d45a57b28d1b"}, + {file = "setproctitle-1.3.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:50706b9c0eda55f7de18695bfeead5f28b58aa42fd5219b3b1692d554ecbc9ec"}, + {file = "setproctitle-1.3.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:af188f3305f0a65c3217c30c6d4c06891e79144076a91e8b454f14256acc7279"}, + {file = "setproctitle-1.3.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cce0ed8b3f64c71c140f0ec244e5fdf8ecf78ddf8d2e591d4a8b6aa1c1214235"}, + {file = "setproctitle-1.3.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:70100e2087fe05359f249a0b5f393127b3a1819bf34dec3a3e0d4941138650c9"}, + {file = "setproctitle-1.3.6-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1065ed36bd03a3fd4186d6c6de5f19846650b015789f72e2dea2d77be99bdca1"}, + {file = "setproctitle-1.3.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4adf6a0013fe4e0844e3ba7583ec203ca518b9394c6cc0d3354df2bf31d1c034"}, + {file = "setproctitle-1.3.6-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:eb7452849f6615871eabed6560ffedfe56bc8af31a823b6be4ce1e6ff0ab72c5"}, + {file = "setproctitle-1.3.6-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a094b7ce455ca341b59a0f6ce6be2e11411ba6e2860b9aa3dbb37468f23338f4"}, + {file = "setproctitle-1.3.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ad1c2c2baaba62823a7f348f469a967ece0062140ca39e7a48e4bbb1f20d54c4"}, + {file = "setproctitle-1.3.6-cp311-cp311-win32.whl", hash = "sha256:8050c01331135f77ec99d99307bfbc6519ea24d2f92964b06f3222a804a3ff1f"}, + {file = "setproctitle-1.3.6-cp311-cp311-win_amd64.whl", hash = "sha256:9b73cf0fe28009a04a35bb2522e4c5b5176cc148919431dcb73fdbdfaab15781"}, + {file = "setproctitle-1.3.6-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:af44bb7a1af163806bbb679eb8432fa7b4fb6d83a5d403b541b675dcd3798638"}, + {file = "setproctitle-1.3.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3cca16fd055316a48f0debfcbfb6af7cea715429fc31515ab3fcac05abd527d8"}, + {file = "setproctitle-1.3.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ea002088d5554fd75e619742cefc78b84a212ba21632e59931b3501f0cfc8f67"}, + {file = "setproctitle-1.3.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bb465dd5825356c1191a038a86ee1b8166e3562d6e8add95eec04ab484cfb8a2"}, + {file = "setproctitle-1.3.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d2c8e20487b3b73c1fa72c56f5c89430617296cd380373e7af3a538a82d4cd6d"}, + {file = "setproctitle-1.3.6-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0d6252098e98129a1decb59b46920d4eca17b0395f3d71b0d327d086fefe77d"}, + {file = "setproctitle-1.3.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:cf355fbf0d4275d86f9f57be705d8e5eaa7f8ddb12b24ced2ea6cbd68fdb14dc"}, + {file = "setproctitle-1.3.6-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:e288f8a162d663916060beb5e8165a8551312b08efee9cf68302687471a6545d"}, + {file = "setproctitle-1.3.6-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:b2e54f4a2dc6edf0f5ea5b1d0a608d2af3dcb5aa8c8eeab9c8841b23e1b054fe"}, + {file = "setproctitle-1.3.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b6f4abde9a2946f57e8daaf1160b2351bcf64274ef539e6675c1d945dbd75e2a"}, + {file = "setproctitle-1.3.6-cp312-cp312-win32.whl", hash = "sha256:db608db98ccc21248370d30044a60843b3f0f3d34781ceeea67067c508cd5a28"}, + {file = "setproctitle-1.3.6-cp312-cp312-win_amd64.whl", hash = "sha256:082413db8a96b1f021088e8ec23f0a61fec352e649aba20881895815388b66d3"}, + {file = "setproctitle-1.3.6-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:e2a9e62647dc040a76d55563580bf3bb8fe1f5b6ead08447c2ed0d7786e5e794"}, + {file = "setproctitle-1.3.6-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:751ba352ed922e0af60458e961167fa7b732ac31c0ddd1476a2dfd30ab5958c5"}, + {file = "setproctitle-1.3.6-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7890e291bf4708e3b61db9069ea39b3ab0651e42923a5e1f4d78a7b9e4b18301"}, + {file = "setproctitle-1.3.6-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b2b17855ed7f994f3f259cf2dfbfad78814538536fa1a91b50253d84d87fd88d"}, + {file = "setproctitle-1.3.6-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e51ec673513465663008ce402171192a053564865c2fc6dc840620871a9bd7c"}, + {file = "setproctitle-1.3.6-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:63cc10352dc6cf35a33951656aa660d99f25f574eb78132ce41a85001a638aa7"}, + {file = "setproctitle-1.3.6-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0dba8faee2e4a96e934797c9f0f2d093f8239bf210406a99060b3eabe549628e"}, + {file = "setproctitle-1.3.6-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e3e44d08b61de0dd6f205528498f834a51a5c06689f8fb182fe26f3a3ce7dca9"}, + {file = "setproctitle-1.3.6-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:de004939fc3fd0c1200d26ea9264350bfe501ffbf46c8cf5dc7f345f2d87a7f1"}, + {file = "setproctitle-1.3.6-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:3f8194b4d631b003a1176a75d1acd545e04b1f54b821638e098a93e6e62830ef"}, + {file = "setproctitle-1.3.6-cp313-cp313-win32.whl", hash = "sha256:d714e002dd3638170fe7376dc1b686dbac9cb712cde3f7224440af722cc9866a"}, + {file = "setproctitle-1.3.6-cp313-cp313-win_amd64.whl", hash = "sha256:b70c07409d465f3a8b34d52f863871fb8a00755370791d2bd1d4f82b3cdaf3d5"}, + {file = "setproctitle-1.3.6-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:23a57d3b8f1549515c2dbe4a2880ebc1f27780dc126c5e064167563e015817f5"}, + {file = "setproctitle-1.3.6-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:81c443310831e29fabbd07b75ebbfa29d0740b56f5907c6af218482d51260431"}, + {file = "setproctitle-1.3.6-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d88c63bd395c787b0aa81d8bbc22c1809f311032ce3e823a6517b711129818e4"}, + {file = "setproctitle-1.3.6-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d73f14b86d0e2858ece6bf5807c9889670e392c001d414b4293d0d9b291942c3"}, + {file = "setproctitle-1.3.6-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3393859eb8f19f5804049a685bf286cb08d447e28ba5c6d8543c7bf5500d5970"}, + {file = "setproctitle-1.3.6-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:785cd210c0311d9be28a70e281a914486d62bfd44ac926fcd70cf0b4d65dff1c"}, + {file = "setproctitle-1.3.6-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:c051f46ed1e13ba8214b334cbf21902102807582fbfaf0fef341b9e52f0fafbf"}, + {file = "setproctitle-1.3.6-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:49498ebf68ca3e75321ffe634fcea5cc720502bfaa79bd6b03ded92ce0dc3c24"}, + {file = "setproctitle-1.3.6-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:4431629c178193f23c538cb1de3da285a99ccc86b20ee91d81eb5f1a80e0d2ba"}, + {file = "setproctitle-1.3.6-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:d136fbf8ad4321716e44d6d6b3d8dffb4872626010884e07a1db54b7450836cf"}, + {file = "setproctitle-1.3.6-cp313-cp313t-win32.whl", hash = "sha256:d483cc23cc56ab32911ea0baa0d2d9ea7aa065987f47de847a0a93a58bf57905"}, + {file = "setproctitle-1.3.6-cp313-cp313t-win_amd64.whl", hash = "sha256:74973aebea3543ad033b9103db30579ec2b950a466e09f9c2180089e8346e0ec"}, + {file = "setproctitle-1.3.6-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:3884002b3a9086f3018a32ab5d4e1e8214dd70695004e27b1a45c25a6243ad0b"}, + {file = "setproctitle-1.3.6-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:6a1d3aa13acfe81f355b0ce4968facc7a19b0d17223a0f80c011a1dba8388f37"}, + {file = "setproctitle-1.3.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f24d5b9383318cbd1a5cd969377937d66cf0542f24aa728a4f49d9f98f9c0da8"}, + {file = "setproctitle-1.3.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a4ae2ea9afcfdd2b931ddcebf1cf82532162677e00326637b31ed5dff7d985ca"}, + {file = "setproctitle-1.3.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:805bb33e92fc3d8aa05674db3068d14d36718e3f2c5c79b09807203f229bf4b5"}, + {file = "setproctitle-1.3.6-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c1b20a5f4164cec7007be55c9cf18d2cd08ed7c3bf6769b3cd6d044ad888d74b"}, + {file = "setproctitle-1.3.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:793a23e8d9cb6c231aa3023d700008224c6ec5b8fd622d50f3c51665e3d0a190"}, + {file = "setproctitle-1.3.6-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:57bc54763bf741813a99fbde91f6be138c8706148b7b42d3752deec46545d470"}, + {file = "setproctitle-1.3.6-cp38-cp38-musllinux_1_2_ppc64le.whl", hash = "sha256:b0174ca6f3018ddeaa49847f29b69612e590534c1d2186d54ab25161ecc42975"}, + {file = "setproctitle-1.3.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:807796fe301b7ed76cf100113cc008c119daf4fea2f9f43c578002aef70c3ebf"}, + {file = "setproctitle-1.3.6-cp38-cp38-win32.whl", hash = "sha256:5313a4e9380e46ca0e2c681ba739296f9e7c899e6f4d12a6702b2dc9fb846a31"}, + {file = "setproctitle-1.3.6-cp38-cp38-win_amd64.whl", hash = "sha256:d5a6c4864bb6fa9fcf7b57a830d21aed69fd71742a5ebcdbafda476be673d212"}, + {file = "setproctitle-1.3.6-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:391bb6a29c4fe7ccc9c30812e3744060802d89b39264cfa77f3d280d7f387ea5"}, + {file = "setproctitle-1.3.6-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:156795b3db976611d09252fc80761fcdb65bb7c9b9581148da900851af25ecf4"}, + {file = "setproctitle-1.3.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdd7315314b0744a7dd506f3bd0f2cf90734181529cdcf75542ee35ad885cab7"}, + {file = "setproctitle-1.3.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6d50bfcc1d1692dc55165b3dd2f0b9f8fb5b1f7b571a93e08d660ad54b9ca1a5"}, + {file = "setproctitle-1.3.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:163dba68f979c61e4e2e779c4d643e968973bdae7c33c3ec4d1869f7a9ba8390"}, + {file = "setproctitle-1.3.6-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9d5a369eb7ec5b2fdfa9927530b5259dd21893fa75d4e04a223332f61b84b586"}, + {file = "setproctitle-1.3.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:18d0667bafaaae4c1dee831e2e59841c411ff399b9b4766822ba2685d419c3be"}, + {file = "setproctitle-1.3.6-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:f33fbf96b52d51c23b6cff61f57816539c1c147db270cfc1cc3bc012f4a560a9"}, + {file = "setproctitle-1.3.6-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:543f59601a4e32daf44741b52f9a23e0ee374f9f13b39c41d917302d98fdd7b0"}, + {file = "setproctitle-1.3.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2156d55308431ac3b3ec4e5e05b1726d11a5215352d6a22bb933171dee292f8c"}, + {file = "setproctitle-1.3.6-cp39-cp39-win32.whl", hash = "sha256:17d7c833ed6545ada5ac4bb606b86a28f13a04431953d4beac29d3773aa00b1d"}, + {file = "setproctitle-1.3.6-cp39-cp39-win_amd64.whl", hash = "sha256:2940cf13f4fc11ce69ad2ed37a9f22386bfed314b98d8aebfd4f55459aa59108"}, + {file = "setproctitle-1.3.6-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:3cde5b83ec4915cd5e6ae271937fd60d14113c8f7769b4a20d51769fe70d8717"}, + {file = "setproctitle-1.3.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:797f2846b546a8741413c57d9fb930ad5aa939d925c9c0fa6186d77580035af7"}, + {file = "setproctitle-1.3.6-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4ac3eb04bcf0119aadc6235a2c162bae5ed5f740e3d42273a7228b915722de20"}, + {file = "setproctitle-1.3.6-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:0e6b5633c94c5111f7137f875e8f1ff48f53b991d5d5b90932f27dc8c1fa9ae4"}, + {file = "setproctitle-1.3.6-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:ded9e86397267732a0641d4776c7c663ea16b64d7dbc4d9cc6ad8536363a2d29"}, + {file = "setproctitle-1.3.6-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae82507fe458f7c0c8227017f2158111a4c9e7ce94de05178894a7ea9fefc8a1"}, + {file = "setproctitle-1.3.6-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3fc97805f9d74444b027babff710bf39df1541437a6a585a983d090ae00cedde"}, + {file = "setproctitle-1.3.6-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:83066ffbf77a5f82b7e96e59bdccbdda203c8dccbfc3f9f0fdad3a08d0001d9c"}, + {file = "setproctitle-1.3.6-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:9b50700785eccac0819bea794d968ed8f6055c88f29364776b7ea076ac105c5d"}, + {file = "setproctitle-1.3.6-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:92df0e70b884f5da35f2e01489dca3c06a79962fb75636985f1e3a17aec66833"}, + {file = "setproctitle-1.3.6-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8834ab7be6539f1bfadec7c8d12249bbbe6c2413b1d40ffc0ec408692232a0c6"}, + {file = "setproctitle-1.3.6-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:a5963b663da69ad25fa1559ee064584935570def665917918938c1f1289f5ebc"}, + {file = "setproctitle-1.3.6.tar.gz", hash = "sha256:c9f32b96c700bb384f33f7cf07954bb609d35dd82752cef57fb2ee0968409169"}, +] + +[package.extras] +test = ["pytest"] + +[[package]] +name = "six" +version = "1.17.0" +description = "Python 2 and 3 compatibility utilities" +optional = false +python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" +groups = ["main"] +files = [ + {file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"}, + {file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"}, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +description = "Sniff out which async library your code is running under" +optional = false +python-versions = ">=3.7" +groups = ["main"] +files = [ + {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"}, + {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"}, +] + +[[package]] +name = "starlette" +version = "0.46.2" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "starlette-0.46.2-py3-none-any.whl", hash = "sha256:595633ce89f8ffa71a015caed34a5b2dc1c0cdb3f0f1fbd1e69339cf2abeec35"}, + {file = "starlette-0.46.2.tar.gz", hash = "sha256:7f7361f34eed179294600af672f565727419830b54b7b084efe44bb82d2fccd5"}, +] + +[package.dependencies] +anyio = ">=3.6.2,<5" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[package.extras] +full = ["httpx (>=0.27.0,<0.29.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.18)", "pyyaml"] + +[[package]] +name = "statsmodels" +version = "0.14.4" +description = "Statistical computations and models for Python" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "statsmodels-0.14.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:7a62f1fc9086e4b7ee789a6f66b3c0fc82dd8de1edda1522d30901a0aa45e42b"}, + {file = "statsmodels-0.14.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:46ac7ddefac0c9b7b607eed1d47d11e26fe92a1bc1f4d9af48aeed4e21e87981"}, + {file = "statsmodels-0.14.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2a337b731aa365d09bb0eab6da81446c04fde6c31976b1d8e3d3a911f0f1e07b"}, + {file = "statsmodels-0.14.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:631bb52159117c5da42ba94bd94859276b68cab25dc4cac86475bc24671143bc"}, + {file = "statsmodels-0.14.4-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3bb2e580d382545a65f298589809af29daeb15f9da2eb252af8f79693e618abc"}, + {file = "statsmodels-0.14.4-cp310-cp310-win_amd64.whl", hash = "sha256:9729642884147ee9db67b5a06a355890663d21f76ed608a56ac2ad98b94d201a"}, + {file = "statsmodels-0.14.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5ed7e118e6e3e02d6723a079b8c97eaadeed943fa1f7f619f7148dfc7862670f"}, + {file = "statsmodels-0.14.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f5f537f7d000de4a1708c63400755152b862cd4926bb81a86568e347c19c364b"}, + {file = "statsmodels-0.14.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa74aaa26eaa5012b0a01deeaa8a777595d0835d3d6c7175f2ac65435a7324d2"}, + {file = "statsmodels-0.14.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e332c2d9b806083d1797231280602340c5c913f90d4caa0213a6a54679ce9331"}, + {file = "statsmodels-0.14.4-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:d9c8fa28dfd75753d9cf62769ba1fecd7e73a0be187f35cc6f54076f98aa3f3f"}, + {file = "statsmodels-0.14.4-cp311-cp311-win_amd64.whl", hash = "sha256:a6087ecb0714f7c59eb24c22781491e6f1cfffb660b4740e167625ca4f052056"}, + {file = "statsmodels-0.14.4-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5221dba7424cf4f2561b22e9081de85f5bb871228581124a0d1b572708545199"}, + {file = "statsmodels-0.14.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:17672b30c6b98afe2b095591e32d1d66d4372f2651428e433f16a3667f19eabb"}, + {file = "statsmodels-0.14.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ab5e6312213b8cfb9dca93dd46a0f4dccb856541f91d3306227c3d92f7659245"}, + {file = "statsmodels-0.14.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bbb150620b53133d6cd1c5d14c28a4f85701e6c781d9b689b53681effaa655f"}, + {file = "statsmodels-0.14.4-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:bb695c2025d122a101c2aca66d2b78813c321b60d3a7c86bb8ec4467bb53b0f9"}, + {file = "statsmodels-0.14.4-cp312-cp312-win_amd64.whl", hash = "sha256:7f7917a51766b4e074da283c507a25048ad29a18e527207883d73535e0dc6184"}, + {file = "statsmodels-0.14.4-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b5a24f5d2c22852d807d2b42daf3a61740820b28d8381daaf59dcb7055bf1a79"}, + {file = "statsmodels-0.14.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:df4f7864606fa843d7e7c0e6af288f034a2160dba14e6ccc09020a3cf67cb092"}, + {file = "statsmodels-0.14.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:91341cbde9e8bea5fb419a76e09114e221567d03f34ca26e6d67ae2c27d8fe3c"}, + {file = "statsmodels-0.14.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1322286a7bfdde2790bf72d29698a1b76c20b8423a55bdcd0d457969d0041f72"}, + {file = "statsmodels-0.14.4-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:e31b95ac603415887c9f0d344cb523889cf779bc52d68e27e2d23c358958fec7"}, + {file = "statsmodels-0.14.4-cp313-cp313-win_amd64.whl", hash = "sha256:81030108d27aecc7995cac05aa280cf8c6025f6a6119894eef648997936c2dd0"}, + {file = "statsmodels-0.14.4-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:4793b01b7a5f5424f5a1dbcefc614c83c7608aa2b035f087538253007c339d5d"}, + {file = "statsmodels-0.14.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:d330da34f59f1653c5193f9fe3a3a258977c880746db7f155fc33713ea858db5"}, + {file = "statsmodels-0.14.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6e9ddefba1d4e1107c1f20f601b0581421ea3ad9fd75ce3c2ba6a76b6dc4682c"}, + {file = "statsmodels-0.14.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6f43da7957e00190104c5dd0f661bfc6dfc68b87313e3f9c4dbd5e7d222e0aeb"}, + {file = "statsmodels-0.14.4-cp39-cp39-win_amd64.whl", hash = "sha256:8286f69a5e1d0e0b366ffed5691140c83d3efc75da6dbf34a3d06e88abfaaab6"}, + {file = "statsmodels-0.14.4.tar.gz", hash = "sha256:5d69e0f39060dc72c067f9bb6e8033b6dccdb0bae101d76a7ef0bcc94e898b67"}, +] + +[package.dependencies] +numpy = ">=1.22.3,<3" +packaging = ">=21.3" +pandas = ">=1.4,<2.1.0 || >2.1.0" +patsy = ">=0.5.6" +scipy = ">=1.8,<1.9.2 || >1.9.2" + +[package.extras] +build = ["cython (>=3.0.10)"] +develop = ["colorama", "cython (>=3.0.10)", "cython (>=3.0.10,<4)", "flake8", "isort", "joblib", "matplotlib (>=3)", "pytest (>=7.3.0,<8)", "pytest-cov", "pytest-randomly", "pytest-xdist", "pywinpty ; os_name == \"nt\"", "setuptools-scm[toml] (>=8.0,<9.0)"] +docs = ["ipykernel", "jupyter-client", "matplotlib", "nbconvert", "nbformat", "numpydoc", "pandas-datareader", "sphinx"] + +[[package]] +name = "traitlets" +version = "5.14.3" +description = "Traitlets Python configuration system" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f"}, + {file = "traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7"}, +] + +[package.extras] +docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] +test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] + +[[package]] +name = "typing-extensions" +version = "4.13.2" +description = "Backported and Experimental Type Hints for Python 3.8+" +optional = false +python-versions = ">=3.8" +groups = ["main"] +files = [ + {file = "typing_extensions-4.13.2-py3-none-any.whl", hash = "sha256:a439e7c04b49fec3e5d3e2beaa21755cadbbdc391694e28ccdd36ca4a1408f8c"}, + {file = "typing_extensions-4.13.2.tar.gz", hash = "sha256:e6c81219bd689f51865d9e372991c540bda33a0379d5573cddb9a3a23f7caaef"}, +] + +[[package]] +name = "typing-inspection" +version = "0.4.0" +description = "Runtime typing introspection tools" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "typing_inspection-0.4.0-py3-none-any.whl", hash = "sha256:50e72559fcd2a6367a19f7a7e610e6afcb9fac940c650290eed893d61386832f"}, + {file = "typing_inspection-0.4.0.tar.gz", hash = "sha256:9765c87de36671694a67904bf2c96e395be9c6439bb6c87b5142569dcdd65122"}, +] + +[package.dependencies] +typing-extensions = ">=4.12.0" + +[[package]] +name = "tzdata" +version = "2025.2" +description = "Provider of IANA time zone data" +optional = false +python-versions = ">=2" +groups = ["main"] +files = [ + {file = "tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8"}, + {file = "tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9"}, +] + +[[package]] +name = "urllib3" +version = "2.4.0" +description = "HTTP library with thread-safe connection pooling, file post, and more." +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "urllib3-2.4.0-py3-none-any.whl", hash = "sha256:4e16665048960a0900c702d4a66415956a584919c03361cac9f1df5c5dd7e813"}, + {file = "urllib3-2.4.0.tar.gz", hash = "sha256:414bc6535b787febd7567804cc015fee39daab8ad86268f1310a9250697de466"}, +] + +[package.extras] +brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""] +h2 = ["h2 (>=4,<5)"] +socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] +zstd = ["zstandard (>=0.18.0)"] + +[[package]] +name = "uuid7" +version = "0.1.0" +description = "UUID version 7, generating time-sorted UUIDs with 200ns time resolution and 48 bits of randomness" +optional = false +python-versions = ">=3.7" +groups = ["main"] +files = [ + {file = "uuid7-0.1.0-py2.py3-none-any.whl", hash = "sha256:5e259bb63c8cb4aded5927ff41b444a80d0c7124e8a0ced7cf44efa1f5cccf61"}, + {file = "uuid7-0.1.0.tar.gz", hash = "sha256:8c57aa32ee7456d3cc68c95c4530bc571646defac01895cfc73545449894a63c"}, +] + +[[package]] +name = "uvicorn" +version = "0.34.2" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "uvicorn-0.34.2-py3-none-any.whl", hash = "sha256:deb49af569084536d269fe0a6d67e3754f104cf03aba7c11c40f01aadf33c403"}, + {file = "uvicorn-0.34.2.tar.gz", hash = "sha256:0e929828f6186353a80b58ea719861d2629d766293b6d19baf086ba31d4f3328"}, +] + +[package.dependencies] +click = ">=7.0" +h11 = ">=0.8" +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[package.extras] +standard = ["colorama (>=0.4) ; sys_platform == \"win32\"", "httptools (>=0.6.3)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1) ; sys_platform != \"win32\" and sys_platform != \"cygwin\" and platform_python_implementation != \"PyPy\"", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "webencodings" +version = "0.5.1" +description = "Character encoding aliases for legacy web content" +optional = false +python-versions = "*" +groups = ["main"] +files = [ + {file = "webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78"}, + {file = "webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923"}, +] + +[[package]] +name = "websockets" +version = "15.0.1" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "websockets-15.0.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d63efaa0cd96cf0c5fe4d581521d9fa87744540d4bc999ae6e08595a1014b45b"}, + {file = "websockets-15.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:ac60e3b188ec7574cb761b08d50fcedf9d77f1530352db4eef1707fe9dee7205"}, + {file = "websockets-15.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:5756779642579d902eed757b21b0164cd6fe338506a8083eb58af5c372e39d9a"}, + {file = "websockets-15.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fdfe3e2a29e4db3659dbd5bbf04560cea53dd9610273917799f1cde46aa725e"}, + {file = "websockets-15.0.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c2529b320eb9e35af0fa3016c187dffb84a3ecc572bcee7c3ce302bfeba52bf"}, + {file = "websockets-15.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ac1e5c9054fe23226fb11e05a6e630837f074174c4c2f0fe442996112a6de4fb"}, + {file = "websockets-15.0.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5df592cd503496351d6dc14f7cdad49f268d8e618f80dce0cd5a36b93c3fc08d"}, + {file = "websockets-15.0.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:0a34631031a8f05657e8e90903e656959234f3a04552259458aac0b0f9ae6fd9"}, + {file = "websockets-15.0.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3d00075aa65772e7ce9e990cab3ff1de702aa09be3940d1dc88d5abf1ab8a09c"}, + {file = "websockets-15.0.1-cp310-cp310-win32.whl", hash = "sha256:1234d4ef35db82f5446dca8e35a7da7964d02c127b095e172e54397fb6a6c256"}, + {file = "websockets-15.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:39c1fec2c11dc8d89bba6b2bf1556af381611a173ac2b511cf7231622058af41"}, + {file = "websockets-15.0.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:823c248b690b2fd9303ba00c4f66cd5e2d8c3ba4aa968b2779be9532a4dad431"}, + {file = "websockets-15.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678999709e68425ae2593acf2e3ebcbcf2e69885a5ee78f9eb80e6e371f1bf57"}, + {file = "websockets-15.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:d50fd1ee42388dcfb2b3676132c78116490976f1300da28eb629272d5d93e905"}, + {file = "websockets-15.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d99e5546bf73dbad5bf3547174cd6cb8ba7273062a23808ffea025ecb1cf8562"}, + {file = "websockets-15.0.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:66dd88c918e3287efc22409d426c8f729688d89a0c587c88971a0faa2c2f3792"}, + {file = "websockets-15.0.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8dd8327c795b3e3f219760fa603dcae1dcc148172290a8ab15158cf85a953413"}, + {file = "websockets-15.0.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8fdc51055e6ff4adeb88d58a11042ec9a5eae317a0a53d12c062c8a8865909e8"}, + {file = "websockets-15.0.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:693f0192126df6c2327cce3baa7c06f2a117575e32ab2308f7f8216c29d9e2e3"}, + {file = "websockets-15.0.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:54479983bd5fb469c38f2f5c7e3a24f9a4e70594cd68cd1fa6b9340dadaff7cf"}, + {file = "websockets-15.0.1-cp311-cp311-win32.whl", hash = "sha256:16b6c1b3e57799b9d38427dda63edcbe4926352c47cf88588c0be4ace18dac85"}, + {file = "websockets-15.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:27ccee0071a0e75d22cb35849b1db43f2ecd3e161041ac1ee9d2352ddf72f065"}, + {file = "websockets-15.0.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:3e90baa811a5d73f3ca0bcbf32064d663ed81318ab225ee4f427ad4e26e5aff3"}, + {file = "websockets-15.0.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:592f1a9fe869c778694f0aa806ba0374e97648ab57936f092fd9d87f8bc03665"}, + {file = "websockets-15.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0701bc3cfcb9164d04a14b149fd74be7347a530ad3bbf15ab2c678a2cd3dd9a2"}, + {file = "websockets-15.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e8b56bdcdb4505c8078cb6c7157d9811a85790f2f2b3632c7d1462ab5783d215"}, + {file = "websockets-15.0.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0af68c55afbd5f07986df82831c7bff04846928ea8d1fd7f30052638788bc9b5"}, + {file = "websockets-15.0.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:64dee438fed052b52e4f98f76c5790513235efaa1ef7f3f2192c392cd7c91b65"}, + {file = "websockets-15.0.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d5f6b181bb38171a8ad1d6aa58a67a6aa9d4b38d0f8c5f496b9e42561dfc62fe"}, + {file = "websockets-15.0.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:5d54b09eba2bada6011aea5375542a157637b91029687eb4fdb2dab11059c1b4"}, + {file = "websockets-15.0.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3be571a8b5afed347da347bfcf27ba12b069d9d7f42cb8c7028b5e98bbb12597"}, + {file = "websockets-15.0.1-cp312-cp312-win32.whl", hash = "sha256:c338ffa0520bdb12fbc527265235639fb76e7bc7faafbb93f6ba80d9c06578a9"}, + {file = "websockets-15.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcd5cf9e305d7b8338754470cf69cf81f420459dbae8a3b40cee57417f4614a7"}, + {file = "websockets-15.0.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ee443ef070bb3b6ed74514f5efaa37a252af57c90eb33b956d35c8e9c10a1931"}, + {file = "websockets-15.0.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:5a939de6b7b4e18ca683218320fc67ea886038265fd1ed30173f5ce3f8e85675"}, + {file = "websockets-15.0.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:746ee8dba912cd6fc889a8147168991d50ed70447bf18bcda7039f7d2e3d9151"}, + {file = "websockets-15.0.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:595b6c3969023ecf9041b2936ac3827e4623bfa3ccf007575f04c5a6aa318c22"}, + {file = "websockets-15.0.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3c714d2fc58b5ca3e285461a4cc0c9a66bd0e24c5da9911e30158286c9b5be7f"}, + {file = "websockets-15.0.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0f3c1e2ab208db911594ae5b4f79addeb3501604a165019dd221c0bdcabe4db8"}, + {file = "websockets-15.0.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:229cf1d3ca6c1804400b0a9790dc66528e08a6a1feec0d5040e8b9eb14422375"}, + {file = "websockets-15.0.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:756c56e867a90fb00177d530dca4b097dd753cde348448a1012ed6c5131f8b7d"}, + {file = "websockets-15.0.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:558d023b3df0bffe50a04e710bc87742de35060580a293c2a984299ed83bc4e4"}, + {file = "websockets-15.0.1-cp313-cp313-win32.whl", hash = "sha256:ba9e56e8ceeeedb2e080147ba85ffcd5cd0711b89576b83784d8605a7df455fa"}, + {file = "websockets-15.0.1-cp313-cp313-win_amd64.whl", hash = "sha256:e09473f095a819042ecb2ab9465aee615bd9c2028e4ef7d933600a8401c79561"}, + {file = "websockets-15.0.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:5f4c04ead5aed67c8a1a20491d54cdfba5884507a48dd798ecaf13c74c4489f5"}, + {file = "websockets-15.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:abdc0c6c8c648b4805c5eacd131910d2a7f6455dfd3becab248ef108e89ab16a"}, + {file = "websockets-15.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a625e06551975f4b7ea7102bc43895b90742746797e2e14b70ed61c43a90f09b"}, + {file = "websockets-15.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d591f8de75824cbb7acad4e05d2d710484f15f29d4a915092675ad3456f11770"}, + {file = "websockets-15.0.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:47819cea040f31d670cc8d324bb6435c6f133b8c7a19ec3d61634e62f8d8f9eb"}, + {file = "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"}, + {file = "websockets-15.0.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4a9fac8e469d04ce6c25bb2610dc535235bd4aa14996b4e6dbebf5e007eba5ee"}, + {file = "websockets-15.0.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:363c6f671b761efcb30608d24925a382497c12c506b51661883c3e22337265ed"}, + {file = "websockets-15.0.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:2034693ad3097d5355bfdacfffcbd3ef5694f9718ab7f29c29689a9eae841880"}, + {file = "websockets-15.0.1-cp39-cp39-win32.whl", hash = "sha256:3b1ac0d3e594bf121308112697cf4b32be538fb1444468fb0a6ae4feebc83411"}, + {file = "websockets-15.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:b7643a03db5c95c799b89b31c036d5f27eeb4d259c798e878d6937d71832b1e4"}, + {file = "websockets-15.0.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:0c9e74d766f2818bb95f84c25be4dea09841ac0f734d1966f415e4edfc4ef1c3"}, + {file = "websockets-15.0.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:1009ee0c7739c08a0cd59de430d6de452a55e42d6b522de7aa15e6f67db0b8e1"}, + {file = "websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76d1f20b1c7a2fa82367e04982e708723ba0e7b8d43aa643d3dcd404d74f1475"}, + {file = "websockets-15.0.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f29d80eb9a9263b8d109135351caf568cc3f80b9928bccde535c235de55c22d9"}, + {file = "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"}, + {file = "websockets-15.0.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:cad21560da69f4ce7658ca2cb83138fb4cf695a2ba3e475e0559e05991aa8122"}, + {file = "websockets-15.0.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:7f493881579c90fc262d9cdbaa05a6b54b3811c2f300766748db79f098db9940"}, + {file = "websockets-15.0.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:47b099e1f4fbc95b701b6e85768e1fcdaf1630f3cbe4765fa216596f12310e2e"}, + {file = "websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:67f2b6de947f8c757db2db9c71527933ad0019737ec374a8a6be9a956786aaf9"}, + {file = "websockets-15.0.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d08eb4c2b7d6c41da6ca0600c077e93f5adcfd979cd777d747e9ee624556da4b"}, + {file = "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"}, + {file = "websockets-15.0.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:21c1fa28a6a7e3cbdc171c694398b6df4744613ce9b36b1a498e816787e28123"}, + {file = "websockets-15.0.1-py3-none-any.whl", hash = "sha256:f7a866fbc1e97b5c617ee4116daaa09b722101d4a3c170c787450ba409f9736f"}, + {file = "websockets-15.0.1.tar.gz", hash = "sha256:82544de02076bafba038ce055ee6412d68da13ab47f0c60cab827346de828dee"}, +] + +[[package]] +name = "yarl" +version = "1.20.0" +description = "Yet another URL library" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "yarl-1.20.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f1f6670b9ae3daedb325fa55fbe31c22c8228f6e0b513772c2e1c623caa6ab22"}, + {file = "yarl-1.20.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:85a231fa250dfa3308f3c7896cc007a47bc76e9e8e8595c20b7426cac4884c62"}, + {file = "yarl-1.20.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1a06701b647c9939d7019acdfa7ebbfbb78ba6aa05985bb195ad716ea759a569"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7595498d085becc8fb9203aa314b136ab0516c7abd97e7d74f7bb4eb95042abe"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:af5607159085dcdb055d5678fc2d34949bd75ae6ea6b4381e784bbab1c3aa195"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:95b50910e496567434cb77a577493c26bce0f31c8a305135f3bda6a2483b8e10"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b594113a301ad537766b4e16a5a6750fcbb1497dcc1bc8a4daae889e6402a634"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:083ce0393ea173cd37834eb84df15b6853b555d20c52703e21fbababa8c129d2"}, + {file = "yarl-1.20.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f1a350a652bbbe12f666109fbddfdf049b3ff43696d18c9ab1531fbba1c977a"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:fb0caeac4a164aadce342f1597297ec0ce261ec4532bbc5a9ca8da5622f53867"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:d88cc43e923f324203f6ec14434fa33b85c06d18d59c167a0637164863b8e995"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e52d6ed9ea8fd3abf4031325dc714aed5afcbfa19ee4a89898d663c9976eb487"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:ce360ae48a5e9961d0c730cf891d40698a82804e85f6e74658fb175207a77cb2"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:06d06c9d5b5bc3eb56542ceeba6658d31f54cf401e8468512447834856fb0e61"}, + {file = "yarl-1.20.0-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c27d98f4e5c4060582f44e58309c1e55134880558f1add7a87c1bc36ecfade19"}, + {file = "yarl-1.20.0-cp310-cp310-win32.whl", hash = "sha256:f4d3fa9b9f013f7050326e165c3279e22850d02ae544ace285674cb6174b5d6d"}, + {file = "yarl-1.20.0-cp310-cp310-win_amd64.whl", hash = "sha256:bc906b636239631d42eb8a07df8359905da02704a868983265603887ed68c076"}, + {file = "yarl-1.20.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:fdb5204d17cb32b2de2d1e21c7461cabfacf17f3645e4b9039f210c5d3378bf3"}, + {file = "yarl-1.20.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:eaddd7804d8e77d67c28d154ae5fab203163bd0998769569861258e525039d2a"}, + {file = "yarl-1.20.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:634b7ba6b4a85cf67e9df7c13a7fb2e44fa37b5d34501038d174a63eaac25ee2"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6d409e321e4addf7d97ee84162538c7258e53792eb7c6defd0c33647d754172e"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:ea52f7328a36960ba3231c6677380fa67811b414798a6e071c7085c57b6d20a9"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c8703517b924463994c344dcdf99a2d5ce9eca2b6882bb640aa555fb5efc706a"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:077989b09ffd2f48fb2d8f6a86c5fef02f63ffe6b1dd4824c76de7bb01e4f2e2"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0acfaf1da020253f3533526e8b7dd212838fdc4109959a2c53cafc6db611bff2"}, + {file = "yarl-1.20.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b4230ac0b97ec5eeb91d96b324d66060a43fd0d2a9b603e3327ed65f084e41f8"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:0a6a1e6ae21cdd84011c24c78d7a126425148b24d437b5702328e4ba640a8902"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:86de313371ec04dd2531f30bc41a5a1a96f25a02823558ee0f2af0beaa7ca791"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:dd59c9dd58ae16eaa0f48c3d0cbe6be8ab4dc7247c3ff7db678edecbaf59327f"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a0bc5e05f457b7c1994cc29e83b58f540b76234ba6b9648a4971ddc7f6aa52da"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:c9471ca18e6aeb0e03276b5e9b27b14a54c052d370a9c0c04a68cefbd1455eb4"}, + {file = "yarl-1.20.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:40ed574b4df723583a26c04b298b283ff171bcc387bc34c2683235e2487a65a5"}, + {file = "yarl-1.20.0-cp311-cp311-win32.whl", hash = "sha256:db243357c6c2bf3cd7e17080034ade668d54ce304d820c2a58514a4e51d0cfd6"}, + {file = "yarl-1.20.0-cp311-cp311-win_amd64.whl", hash = "sha256:8c12cd754d9dbd14204c328915e23b0c361b88f3cffd124129955e60a4fbfcfb"}, + {file = "yarl-1.20.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:e06b9f6cdd772f9b665e5ba8161968e11e403774114420737f7884b5bd7bdf6f"}, + {file = "yarl-1.20.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b9ae2fbe54d859b3ade40290f60fe40e7f969d83d482e84d2c31b9bff03e359e"}, + {file = "yarl-1.20.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6d12b8945250d80c67688602c891237994d203d42427cb14e36d1a732eda480e"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:087e9731884621b162a3e06dc0d2d626e1542a617f65ba7cc7aeab279d55ad33"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:69df35468b66c1a6e6556248e6443ef0ec5f11a7a4428cf1f6281f1879220f58"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:3b2992fe29002fd0d4cbaea9428b09af9b8686a9024c840b8a2b8f4ea4abc16f"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4c903e0b42aab48abfbac668b5a9d7b6938e721a6341751331bcd7553de2dcae"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bf099e2432131093cc611623e0b0bcc399b8cddd9a91eded8bfb50402ec35018"}, + {file = "yarl-1.20.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8a7f62f5dc70a6c763bec9ebf922be52aa22863d9496a9a30124d65b489ea672"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:54ac15a8b60382b2bcefd9a289ee26dc0920cf59b05368c9b2b72450751c6eb8"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:25b3bc0763a7aca16a0f1b5e8ef0f23829df11fb539a1b70476dcab28bd83da7"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:b2586e36dc070fc8fad6270f93242124df68b379c3a251af534030a4a33ef594"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:866349da9d8c5290cfefb7fcc47721e94de3f315433613e01b435473be63daa6"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:33bb660b390a0554d41f8ebec5cd4475502d84104b27e9b42f5321c5192bfcd1"}, + {file = "yarl-1.20.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:737e9f171e5a07031cbee5e9180f6ce21a6c599b9d4b2c24d35df20a52fabf4b"}, + {file = "yarl-1.20.0-cp312-cp312-win32.whl", hash = "sha256:839de4c574169b6598d47ad61534e6981979ca2c820ccb77bf70f4311dd2cc64"}, + {file = "yarl-1.20.0-cp312-cp312-win_amd64.whl", hash = "sha256:3d7dbbe44b443b0c4aa0971cb07dcb2c2060e4a9bf8d1301140a33a93c98e18c"}, + {file = "yarl-1.20.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2137810a20b933b1b1b7e5cf06a64c3ed3b4747b0e5d79c9447c00db0e2f752f"}, + {file = "yarl-1.20.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:447c5eadd750db8389804030d15f43d30435ed47af1313303ed82a62388176d3"}, + {file = "yarl-1.20.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:42fbe577272c203528d402eec8bf4b2d14fd49ecfec92272334270b850e9cd7d"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18e321617de4ab170226cd15006a565d0fa0d908f11f724a2c9142d6b2812ab0"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4345f58719825bba29895011e8e3b545e6e00257abb984f9f27fe923afca2501"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5d9b980d7234614bc4674468ab173ed77d678349c860c3af83b1fffb6a837ddc"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:af4baa8a445977831cbaa91a9a84cc09debb10bc8391f128da2f7bd070fc351d"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:123393db7420e71d6ce40d24885a9e65eb1edefc7a5228db2d62bcab3386a5c0"}, + {file = "yarl-1.20.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ab47acc9332f3de1b39e9b702d9c916af7f02656b2a86a474d9db4e53ef8fd7a"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4a34c52ed158f89876cba9c600b2c964dfc1ca52ba7b3ab6deb722d1d8be6df2"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:04d8cfb12714158abf2618f792c77bc5c3d8c5f37353e79509608be4f18705c9"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:7dc63ad0d541c38b6ae2255aaa794434293964677d5c1ec5d0116b0e308031f5"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:f9d02b591a64e4e6ca18c5e3d925f11b559c763b950184a64cf47d74d7e41877"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:95fc9876f917cac7f757df80a5dda9de59d423568460fe75d128c813b9af558e"}, + {file = "yarl-1.20.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bb769ae5760cd1c6a712135ee7915f9d43f11d9ef769cb3f75a23e398a92d384"}, + {file = "yarl-1.20.0-cp313-cp313-win32.whl", hash = "sha256:70e0c580a0292c7414a1cead1e076c9786f685c1fc4757573d2967689b370e62"}, + {file = "yarl-1.20.0-cp313-cp313-win_amd64.whl", hash = "sha256:4c43030e4b0af775a85be1fa0433119b1565673266a70bf87ef68a9d5ba3174c"}, + {file = "yarl-1.20.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:b6c4c3d0d6a0ae9b281e492b1465c72de433b782e6b5001c8e7249e085b69051"}, + {file = "yarl-1.20.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:8681700f4e4df891eafa4f69a439a6e7d480d64e52bf460918f58e443bd3da7d"}, + {file = "yarl-1.20.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:84aeb556cb06c00652dbf87c17838eb6d92cfd317799a8092cee0e570ee11229"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f166eafa78810ddb383e930d62e623d288fb04ec566d1b4790099ae0f31485f1"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5d3d6d14754aefc7a458261027a562f024d4f6b8a798adb472277f675857b1eb"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2a8f64df8ed5d04c51260dbae3cc82e5649834eebea9eadfd829837b8093eb00"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4d9949eaf05b4d30e93e4034a7790634bbb41b8be2d07edd26754f2e38e491de"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c366b254082d21cc4f08f522ac201d0d83a8b8447ab562732931d31d80eb2a5"}, + {file = "yarl-1.20.0-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:91bc450c80a2e9685b10e34e41aef3d44ddf99b3a498717938926d05ca493f6a"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9c2aa4387de4bc3a5fe158080757748d16567119bef215bec643716b4fbf53f9"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:d2cbca6760a541189cf87ee54ff891e1d9ea6406079c66341008f7ef6ab61145"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:798a5074e656f06b9fad1a162be5a32da45237ce19d07884d0b67a0aa9d5fdda"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:f106e75c454288472dbe615accef8248c686958c2e7dd3b8d8ee2669770d020f"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:3b60a86551669c23dc5445010534d2c5d8a4e012163218fc9114e857c0586fdd"}, + {file = "yarl-1.20.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3e429857e341d5e8e15806118e0294f8073ba9c4580637e59ab7b238afca836f"}, + {file = "yarl-1.20.0-cp313-cp313t-win32.whl", hash = "sha256:65a4053580fe88a63e8e4056b427224cd01edfb5f951498bfefca4052f0ce0ac"}, + {file = "yarl-1.20.0-cp313-cp313t-win_amd64.whl", hash = "sha256:53b2da3a6ca0a541c1ae799c349788d480e5144cac47dba0266c7cb6c76151fe"}, + {file = "yarl-1.20.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:119bca25e63a7725b0c9d20ac67ca6d98fa40e5a894bd5d4686010ff73397914"}, + {file = "yarl-1.20.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:35d20fb919546995f1d8c9e41f485febd266f60e55383090010f272aca93edcc"}, + {file = "yarl-1.20.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:484e7a08f72683c0f160270566b4395ea5412b4359772b98659921411d32ad26"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8d8a3d54a090e0fff5837cd3cc305dd8a07d3435a088ddb1f65e33b322f66a94"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:f0cf05ae2d3d87a8c9022f3885ac6dea2b751aefd66a4f200e408a61ae9b7f0d"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a884b8974729e3899d9287df46f015ce53f7282d8d3340fa0ed57536b440621c"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f8d8aa8dd89ffb9a831fedbcb27d00ffd9f4842107d52dc9d57e64cb34073d5c"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b4e88d6c3c8672f45a30867817e4537df1bbc6f882a91581faf1f6d9f0f1b5a"}, + {file = "yarl-1.20.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bdb77efde644d6f1ad27be8a5d67c10b7f769804fff7a966ccb1da5a4de4b656"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:4ba5e59f14bfe8d261a654278a0f6364feef64a794bd456a8c9e823071e5061c"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:d0bf955b96ea44ad914bc792c26a0edcd71b4668b93cbcd60f5b0aeaaed06c64"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:27359776bc359ee6eaefe40cb19060238f31228799e43ebd3884e9c589e63b20"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:04d9c7a1dc0a26efb33e1acb56c8849bd57a693b85f44774356c92d610369efa"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:faa709b66ae0e24c8e5134033187a972d849d87ed0a12a0366bedcc6b5dc14a5"}, + {file = "yarl-1.20.0-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:44869ee8538208fe5d9342ed62c11cc6a7a1af1b3d0bb79bb795101b6e77f6e0"}, + {file = "yarl-1.20.0-cp39-cp39-win32.whl", hash = "sha256:b7fa0cb9fd27ffb1211cde944b41f5c67ab1c13a13ebafe470b1e206b8459da8"}, + {file = "yarl-1.20.0-cp39-cp39-win_amd64.whl", hash = "sha256:d4fad6e5189c847820288286732075f213eabf81be4d08d6cc309912e62be5b7"}, + {file = "yarl-1.20.0-py3-none-any.whl", hash = "sha256:5d0fe6af927a47a230f31e6004621fd0959eaa915fc62acfafa67ff7229a3124"}, + {file = "yarl-1.20.0.tar.gz", hash = "sha256:686d51e51ee5dfe62dec86e4866ee0e9ed66df700d55c828a615640adc885307"}, +] + +[package.dependencies] +idna = ">=2.0" +multidict = ">=4.0" +propcache = ">=0.2.1" + +[[package]] +name = "zipp" +version = "3.21.0" +description = "Backport of pathlib-compatible object wrapper for zip files" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"}, + {file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["big-O", "importlib-resources ; python_version < \"3.9\"", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"] +type = ["pytest-mypy"] + +[extras] +pywry = ["pywry"] + +[metadata] +lock-version = "2.1" +python-versions = ">=3.9.21,<3.13" +content-hash = "616ee1579ce9ccfbcd1a2f90a6723f1de0f53d3f59dbbdbc8ca0aab604da7990" diff --git a/openbb_platform/obbject_extensions/charting/pyproject.toml b/openbb_platform/obbject_extensions/charting/pyproject.toml new file mode 100644 index 0000000000000000000000000000000000000000..f2ff22983acc3959b548ae2095df240a14accf2c --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/pyproject.toml @@ -0,0 +1,26 @@ +[tool.poetry] +name = "openbb-charting" +version = "2.3.4" +description = "Charting extension for OpenBB" +authors = ["OpenBB Team "] +license = "AGPL-3.0-only" +readme = "README.md" +packages = [{ include = "openbb_charting" }] + +[tool.poetry.dependencies] +python = ">=3.9.21,<3.13" # scipy forces python <4.0 explicitly +openbb-core = "^1.4.7" +pandas-ta-openbb = "^0.4.20" +plotly = "^6.1.1" +pywry = { version = "^0.6.2", optional = true } +nbformat = "^5.10.0" + +[tool.poetry.extras] +pywry = ["pywry"] + +[build-system] +requires = ["poetry-core"] +build-backend = "poetry.core.masonry.api" + +[tool.poetry.plugins."openbb_obbject_extension"] +openbb_charting = "openbb_charting:ext" diff --git a/openbb_platform/obbject_extensions/charting/tests/__init__.py b/openbb_platform/obbject_extensions/charting/tests/__init__.py new file mode 100644 index 0000000000000000000000000000000000000000..6108752fdf4ae3aae2d12d2883554dbb5ef93860 --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/tests/__init__.py @@ -0,0 +1 @@ +"""OBBject Extensions Charting Tests Module.""" diff --git a/openbb_platform/obbject_extensions/charting/tests/test_charting.py b/openbb_platform/obbject_extensions/charting/tests/test_charting.py new file mode 100644 index 0000000000000000000000000000000000000000..74611c59c8e82a6562337cf13a38274866d09bbf --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/tests/test_charting.py @@ -0,0 +1,175 @@ +"""Test Charting class.""" + +from unittest.mock import MagicMock, patch + +import pytest +from openbb_charting.charting import Charting +from openbb_core.app.model.system_settings import SystemSettings +from openbb_core.app.model.user_settings import UserSettings +from pydantic import BaseModel + +# pylint: disable=redefined-outer-name, protected-access + + +class MockDataframe: + """Mock Dataframe.""" + + def __init__(self): + """Mock Dataframe.""" + self.columns = ["column1", "column2"] + + +mock_dataframe = MockDataframe() + + +@pytest.fixture() +def obbject(): + """Mock OBBject.""" + + class MockStdParams(BaseModel): + """Mock Standard Parameters.""" + + param1: str + param2: str + + class MockOBBject: + """Mock OBBject.""" + + def __init__(self): + """Mock OBBject.""" + self._user_settings = UserSettings() + self._system_settings = SystemSettings() + self._route = "mock/route" + self._standard_params = MockStdParams( + param1="mock_param1", param2="mock_param2" + ) + self._extra_params = {} + self.results = "mock_results" + + self.provider = "mock_provider" + self.extra = {} + self.warnings = "mock_warnings" + self.chart = MagicMock() + + def to_dataframe(self): + """Mock to_dataframe.""" + return mock_dataframe + + return MockOBBject() + + +def test_charting_settings(obbject): + """Test charting_settings.""" + cm = Charting(obbject) + assert isinstance(cm, Charting) + + +def test_indicators(obbject): + """Test indicators method.""" + obj = Charting(obbject) + indicators = list(obj.indicators().model_dump().keys()) + + assert indicators == [ + "sma", + "ema", + "hma", + "wma", + "zlma", + "ad", + "adoscillator", + "adx", + "aroon", + "atr", + "cci", + "clenow", + "demark", + "donchian", + "fib", + "fisher", + "ichimoku", + "kc", + "macd", + "obv", + "rsi", + "srlines", + "stoch", + ] + + +@patch("openbb_charting.charting.get_charting_functions_list") +def test_functions(get_charting_functions_list): + """Test functions method.""" + # Arrange + get_charting_functions_list.return_value = ["function1", "function2", "function3"] + + # Act + result = Charting.functions() + + # Assert + assert set(result) == {"function1", "function2", "function3"} + assert get_charting_functions_list.call_count >= 1 + + +@patch("openbb_charting.charting.Charting._handle_backend") +def test_handle_backend(mock_handle_backend, obbject): + """Test _handle_backend method.""" + # Act -> _handle backend is called in the constructor + _ = Charting(obbject) + + # Assert + mock_handle_backend.assert_called_once() + + +def test_get_chart_function(obbject): + """Test _get_chart_function method.""" + # Arrange + mock_function = MagicMock() + charting = Charting(obbject) + charting._functions = {"some_function": mock_function} + route = "/some/function" + + # Act + result = charting._get_chart_function(route) + + # Assert + assert result == mock_function + + +@patch("openbb_charting.charting.Charting._get_chart_function") +@patch("openbb_charting.charting.Chart") +def test_show(_, mock_get_chart_function, obbject): + """Test show method.""" + # Arrange + mock_function = MagicMock() + mock_get_chart_function.return_value = mock_function + mock_fig = MagicMock() + mock_function.return_value = (mock_fig, {"content": "mock_content"}) + obj = Charting(obbject) + + # Act + obj.show() + + # Assert + mock_get_chart_function.assert_called_once() + mock_function.assert_called_once() + + +@patch("openbb_charting.charting.Charting._prepare_data_as_df") +@patch("openbb_charting.charting.Charting._get_chart_function") +@patch("openbb_charting.charting.Chart") +def test_to_chart(_, mock_get_chart_function, mock_prepare_data_as_df, obbject): + """Test to_chart method.""" + # Arrange + mock_prepare_data_as_df.return_value = (mock_dataframe, True) + mock_function = MagicMock() + mock_get_chart_function.return_value = mock_function + mock_fig = MagicMock() + mock_function.return_value = (mock_fig, {"content": "mock_content"}) + obj = Charting(obbject) + + # Act + obj.to_chart() + + # Assert + mock_get_chart_function.assert_called_once() + mock_function.assert_called_once() diff --git a/openbb_platform/obbject_extensions/charting/tests/test_charting_core_ta_helpers.py b/openbb_platform/obbject_extensions/charting/tests/test_charting_core_ta_helpers.py new file mode 100644 index 0000000000000000000000000000000000000000..1804a9df3a4a8275cb703c02871f4e8b92c51f0b --- /dev/null +++ b/openbb_platform/obbject_extensions/charting/tests/test_charting_core_ta_helpers.py @@ -0,0 +1,34 @@ +"""Test the charting core ta helpers.""" + +import pandas as pd +import pytest +from obbject_extensions.charting.openbb_charting.core.plotly_ta.ta_helpers import ( + check_columns, +) + + +def test_check_columns(): + """Test check_columns.""" + data = pd.DataFrame( + { + "open": [1, 2, 3, 4, 5], + "high": [1, 2, 3, 4, 5], + "low": [1, 2, 3, 4, 5], + "close": [1, 2, 3, 4, 5], + "volume": [1, 2, 3, 4, 5], + } + ) + result = check_columns(data) + assert result + + +def test_check_columns_fail(): + """Test check_columns.""" + data = pd.DataFrame( + { + "open": [1, 2, 3, 4, 5], + "volume": [1, 2, 3, 4, 5], + } + ) + with pytest.raises(IndexError): + check_columns(data)